@dbx-tools/shared-genie 0.9.131 → 0.9.133
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -43
- package/index.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/src/agent-mode.js +9 -3
- package/package.json +2 -2
- package/src/agent-mode.ts +8 -2
package/README.md
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# @dbx-tools/shared-genie
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Validate AI/BI Genie wire payloads and derive UI events from raw message
|
|
4
|
+
snapshots without importing the Databricks SDK. Use the browser-safe schemas,
|
|
5
|
+
event vocabulary, and snapshot diff helpers in clients, routes, and tests. The
|
|
6
|
+
Node driver that calls Genie is [@dbx-tools/genie](../../node/genie).
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
snapshots without importing the Databricks SDK. The Node driver that calls Genie is
|
|
7
|
-
[`@dbx-tools/genie`](../../node/genie).
|
|
8
|
-
|
|
9
|
-
## Quick Start
|
|
8
|
+
## Quick start
|
|
10
9
|
|
|
11
10
|
```ts
|
|
12
11
|
import { genieModel } from "@dbx-tools/shared-genie";
|
|
@@ -14,12 +13,12 @@ import { genieModel } from "@dbx-tools/shared-genie";
|
|
|
14
13
|
const response = genieModel.GenieResponseSchema.parse(await request.json());
|
|
15
14
|
```
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
Use the contracts for:
|
|
18
17
|
|
|
19
18
|
- Runtime schemas for Genie messages, responses, spaces, attachments, and
|
|
20
19
|
statuses, including fields observed on the live wire.
|
|
21
20
|
- Forward-compatible Agent Mode SSE schemas plus a pure reducer that projects
|
|
22
|
-
reasoning, SQL, Markdown output, statement
|
|
21
|
+
reasoning, SQL, Markdown output, statement IDs, visualization metadata, and
|
|
23
22
|
terminal status into `GenieMessage`.
|
|
24
23
|
- A flat `GenieChatEvent` vocabulary for thinking, SQL, rows, result, status,
|
|
25
24
|
and error rendering.
|
|
@@ -27,23 +26,24 @@ Key features:
|
|
|
27
26
|
- Attachment and status helpers for UI display logic.
|
|
28
27
|
- Browser-safe types that allow clients to validate Genie payloads without
|
|
29
28
|
bundling Databricks SDK runtime code.
|
|
30
|
-
- Generated
|
|
29
|
+
- Generated Zod schemas for the upstream SDK Dashboard/Genie shapes, so
|
|
31
30
|
validating an unwidened SDK payload needs no SDK import either.
|
|
32
31
|
|
|
33
|
-
##
|
|
32
|
+
## Choose between AppKit and shared Genie types
|
|
34
33
|
|
|
35
|
-
Use AppKit's Genie plugin and UI types when you
|
|
34
|
+
Use AppKit's Genie plugin and UI types when you build directly against
|
|
36
35
|
the native AppKit Genie routes. Use this package when you need a browser-safe
|
|
37
36
|
event vocabulary independent of AppKit transport:
|
|
38
37
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
|
|
38
|
+
- Validate raw Genie messages captured from the Databricks SDK.
|
|
39
|
+
- Replay persisted snapshots as semantic events.
|
|
40
|
+
- Share a flat event union between
|
|
41
|
+
[@dbx-tools/genie](../../node/genie),
|
|
42
|
+
[@dbx-tools/appkit-mastra](../../node/appkit-mastra), and custom clients.
|
|
43
|
+
- Detect attachment and status shapes that are present on the wire but aren't
|
|
44
|
+
convenient in generated SDK types.
|
|
45
45
|
|
|
46
|
-
## Validate
|
|
46
|
+
## Validate message snapshots
|
|
47
47
|
|
|
48
48
|
```ts
|
|
49
49
|
import { genieModel } from "@dbx-tools/shared-genie";
|
|
@@ -56,7 +56,7 @@ The schemas extend generated Databricks SDK Genie types with fields observed on
|
|
|
56
56
|
the wire, including query thoughts, visualization attachments, attachment
|
|
57
57
|
discriminators, and serialized space data.
|
|
58
58
|
|
|
59
|
-
## Handle
|
|
59
|
+
## Handle typed chat events
|
|
60
60
|
|
|
61
61
|
```ts
|
|
62
62
|
import { type GenieChatEvent } from "@dbx-tools/shared-genie";
|
|
@@ -76,7 +76,7 @@ function render(event: GenieChatEvent) {
|
|
|
76
76
|
The event union is flat: every variant has `type` plus its own fields and shared
|
|
77
77
|
location fields such as `space_id`, `conversation_id`, and `message_id`.
|
|
78
78
|
|
|
79
|
-
## Derive
|
|
79
|
+
## Derive events from snapshots
|
|
80
80
|
|
|
81
81
|
```ts
|
|
82
82
|
import { event } from "@dbx-tools/shared-genie";
|
|
@@ -92,23 +92,26 @@ shared vocabulary, or building a custom polling loop. Individual detectors are
|
|
|
92
92
|
also exported for targeted checks: `detectStatus`, `detectThinking`,
|
|
93
93
|
`detectQuery`, `detectRows`, and the other event-specific helpers.
|
|
94
94
|
|
|
95
|
-
## Work
|
|
95
|
+
## Work with status and attachments
|
|
96
96
|
|
|
97
97
|
```ts
|
|
98
98
|
import { genieModel } from "@dbx-tools/shared-genie";
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
export function describeMessage(input: unknown) {
|
|
101
|
+
const message = genieModel.GenieMessageSchema.parse(input);
|
|
102
|
+
const statusLabel = genieModel.isTerminalStatus(message.status)
|
|
103
|
+
? genieModel.humanizeStatus(message.status)
|
|
104
|
+
: undefined;
|
|
105
|
+
const attachmentType = genieModel.detectAttachmentType(message.attachments?.[0]);
|
|
106
|
+
return { statusLabel, attachmentType };
|
|
102
107
|
}
|
|
103
|
-
|
|
104
|
-
const kind = genieModel.detectAttachmentType(message.attachments?.[0]);
|
|
105
108
|
```
|
|
106
109
|
|
|
107
110
|
`humanizeStatus()` is the shared display-label function. `detectAttachmentType()`
|
|
108
111
|
lets consumers switch on `query`, `text`, `suggested_questions`, or `viz`
|
|
109
112
|
instead of probing optional fields.
|
|
110
113
|
|
|
111
|
-
## Event
|
|
114
|
+
## Event model
|
|
112
115
|
|
|
113
116
|
The event detector compares the current Genie message with the previous snapshot
|
|
114
117
|
from the same turn. This keeps streaming UIs from re-rendering duplicate thought
|
|
@@ -116,9 +119,9 @@ or query fragments while still allowing full history replay from persisted raw
|
|
|
116
119
|
messages. Consumers can use the full `eventsFromMessage()` helper or individual
|
|
117
120
|
detectors when a test needs to assert one specific behavior.
|
|
118
121
|
|
|
119
|
-
##
|
|
122
|
+
## Validate generated SDK shapes
|
|
120
123
|
|
|
121
|
-
`dashboards` holds
|
|
124
|
+
`dashboards` holds Zod schemas generated from the upstream
|
|
122
125
|
`@databricks/sdk-experimental` dashboards declarations. Import it when code needs
|
|
123
126
|
to validate a raw Databricks Genie/Dashboard payload against the SDK's own shape:
|
|
124
127
|
|
|
@@ -128,25 +131,22 @@ import { dashboards } from "@dbx-tools/shared-genie";
|
|
|
128
131
|
const space = dashboards.genieSpaceSchema.parse(rawSpace);
|
|
129
132
|
```
|
|
130
133
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
The module is generated at synth time and is read-only: the
|
|
136
|
-
`dbxToolsConfig.codegenInputs` field in `package.json` names the input
|
|
137
|
-
declaration file. To change what is generated, change that input and re-synth;
|
|
138
|
-
never hand-edit `src/dashboards.ts`.
|
|
139
|
-
The SDK itself is a dev dependency, so importing this package pulls in zod only.
|
|
134
|
+
Use `genieModel` for schemas that include fields observed on the Genie wire. Use
|
|
135
|
+
`dashboards` only when the unwidened Databricks SDK shape is the required
|
|
136
|
+
contract. The SDK is a development dependency, so browser bundles include Zod
|
|
137
|
+
but not the Databricks SDK runtime.
|
|
140
138
|
|
|
141
|
-
##
|
|
139
|
+
## Package exports
|
|
142
140
|
|
|
143
|
-
- `agentMode
|
|
141
|
+
- `agentMode`: forward-compatible Zod schemas plus the pure Agent Mode event
|
|
144
142
|
reducer and live/history `GenieMessage` projectors.
|
|
145
|
-
- `genieModel
|
|
143
|
+
- `genieModel`: Genie schemas, status helpers, attachment helpers, and event
|
|
146
144
|
union schemas/types.
|
|
147
|
-
- `event
|
|
145
|
+
- `event`: event detector factory, individual detectors, and
|
|
148
146
|
`eventsFromMessage()`.
|
|
149
|
-
- `dashboards
|
|
147
|
+
- `dashboards`: generated, read-only Zod schemas and inferred types for the
|
|
150
148
|
upstream SDK Dashboard/Genie shapes that `genieModel` extends.
|
|
151
149
|
|
|
152
|
-
|
|
150
|
+
This package doesn't call Genie, manage credentials, or own conversation
|
|
151
|
+
lifecycle. Server-side streaming is in
|
|
152
|
+
[@dbx-tools/genie](../../node/genie).
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-genie";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.133";
|
|
7
7
|
export * as agentMode from "./src/agent-mode.ts";
|
|
8
8
|
export * as dashboards from "./src/dashboards.ts";
|
|
9
9
|
export * as event from "./src/event.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-genie";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.133";
|
|
3
3
|
export * as agentMode from "./src/agent-mode.ts";
|
|
4
4
|
export * as dashboards from "./src/dashboards.ts";
|
|
5
5
|
export * as event from "./src/event.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-genie";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.133";
|
|
6
6
|
export * as agentMode from "./src/agent-mode.js";
|
|
7
7
|
export * as dashboards from "./src/dashboards.js";
|
|
8
8
|
export * as event from "./src/event.js";
|
|
@@ -11,4 +11,4 @@ export { GenieAgentContentSchema, GenieAgentOutputItemSchema, GenieAgentConversa
|
|
|
11
11
|
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";
|
|
12
12
|
export { detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions } from "./src/event.js";
|
|
13
13
|
export { MessageStatusSchema, GenieThoughtTypeSchema, GenieThoughtSchema, ATTACHMENT_TYPES, KnownAttachmentTypeSchema, AttachmentTypeSchema, GenieQueryAttachmentSchema, GenieTextAttachmentPurposeSchema, GenieTextAttachmentSchema, GenieVizAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, TerminalStatusSchema, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.js";
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLGlDQUFpQyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNU0sT0FBTyxFQUFFLG1DQUFtQyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLHVDQUF1QyxFQUFFLHVCQUF1QixFQUFFLDhCQUE4QixFQUFFLDJDQUEyQyxFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLCtDQUErQyxFQUFFLHFDQUFxQyxFQUFFLHlCQUF5QixFQUFFLHdDQUF3QyxFQUFFLGlEQUFpRCxFQUFFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLDRDQUE0QyxFQUFFLDBCQUEwQixFQUFFLDBDQUEwQyxFQUFFLG1DQUFtQyxFQUFFLG9DQUFvQyxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSx5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSwwQ0FBMEMsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSxrQ0FBa0MsRUFBRSwyQ0FBMkMsRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUUsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsdUNBQXVDLEVBQUUsZ0NBQWdDLEVBQUUsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLDRDQUE0QyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN3lFLE9BQU8sRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxnQ0FBZ0MsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzMVwiO1xuZXhwb3J0ICogYXMgYWdlbnRNb2RlIGZyb20gXCIuL3NyYy9hZ2VudC1tb2RlLnRzXCI7XG5leHBvcnQgKiBhcyBkYXNoYm9hcmRzIGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgKiBhcyBldmVudCBmcm9tIFwiLi9zcmMvZXZlbnQudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllTW9kZWwgZnJvbSBcIi4vc3JjL2dlbmllLW1vZGVsLnRzXCI7XG5leHBvcnQgeyBHZW5pZUFnZW50Q29udGVudFNjaGVtYSwgR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEsIEdlbmllQWdlbnRDb252ZXJzYXRpb25JdGVtc1NjaGVtYSwgR2VuaWVBZ2VudFJlc3BvbnNlU2NoZW1hLCBHZW5pZUFnZW50TW9kZUV2ZW50U2NoZW1hLCBHZW5pZUFnZW50TW9kZVByb2plY3Rpb24gfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUFnZW50Q29udmVyc2F0aW9uSXRlbXMsIEdlbmllQWdlbnRPdXRwdXRJdGVtLCBHZW5pZUFnZW50UmVzcG9uc2UsIEdlbmllQWdlbnRNb2RlRXZlbnQgfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHsgYXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGVTY2hlbWEsIGNyb25TY2hlZHVsZVNjaGVtYSwgbGlmZWN5Y2xlU3RhdGVTY2hlbWEsIGRhc2hib2FyZFZpZXdTY2hlbWEsIGRlbGV0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgZGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50U2NoZW1hLCBnZW5pZUNvbnZlcnNhdGlvblNjaGVtYSwgZ2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5U2NoZW1hLCBnZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RTY2hlbWEsIGdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUZlZWRiYWNrUmF0aW5nU2NoZW1hLCBnZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3RTY2hlbWEsIGdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2VTY2hlbWEsIGdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldFNwYWNlUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlU2NoZW1hLCBnZW5pZUxpc3RTcGFjZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZVNwYWNlU2NoZW1hLCBnZW5pZUZlZWRiYWNrU2NoZW1hLCByZXN1bHRTY2hlbWEsIG1lc3NhZ2VTdGF0dXNTY2hlbWEsIHF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlclNjaGVtYSwgZ2VuaWVSZXN1bHRNZXRhZGF0YVNjaGVtYSwgZ2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZVRyYXNoU3BhY2VSZXF1ZXN0U2NoZW1hLCBnZXREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0U2NoZW1hLCBhdXRob3JpemF0aW9uRGV0YWlsc1NjaGVtYSwgZ2V0U2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBnZXRTdWJzY3JpcHRpb25SZXF1ZXN0U2NoZW1hLCBsaXN0RGFzaGJvYXJkc1JlcXVlc3RTY2hlbWEsIGRhc2hib2FyZFNjaGVtYSwgbGlzdFNjaGVkdWxlc1JlcXVlc3RTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdFNjaGVtYSwgbWVzc2FnZUVycm9yVHlwZVNjaGVtYSwgbWlncmF0ZURhc2hib2FyZFJlcXVlc3RTY2hlbWEsIHB1Ymxpc2hSZXF1ZXN0U2NoZW1hLCBwdWJsaXNoZWREYXNoYm9hcmRTY2hlbWEsIHNjaGVkdWxlUGF1c2VTdGF0dXNTY2hlbWEsIHN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvblNjaGVtYSwgc3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXJTY2hlbWEsIHN1YnNjcmliZXJTY2hlbWEsIHRleHRBdHRhY2htZW50UHVycG9zZVNjaGVtYSwgdHJhc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1bnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1cGRhdGVEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBzY2hlZHVsZVNjaGVtYSwgY3JlYXRlRGFzaGJvYXJkUmVxdWVzdFNjaGVtYSwgY3JlYXRlU2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBzdWJzY3JpcHRpb25TY2hlbWEsIGdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLCB0ZXh0QXR0YWNobWVudFNjaGVtYSwgZ2VuaWVMaXN0U3BhY2VzUmVzcG9uc2VTY2hlbWEsIGdlbmllQXR0YWNobWVudFNjaGVtYSwgbWVzc2FnZUVycm9yU2NoZW1hLCBnZW5pZU1lc3NhZ2VTY2hlbWEsIGdldFB1Ymxpc2hlZERhc2hib2FyZFRva2VuSW5mb1Jlc3BvbnNlU2NoZW1hLCBsaXN0RGFzaGJvYXJkc1Jlc3BvbnNlU2NoZW1hLCBsaXN0U2NoZWR1bGVzUmVzcG9uc2VTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VTY2hlbWEsIHVwZGF0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgY3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXNwb25zZVNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2Rhc2hib2FyZHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGUsIENyb25TY2hlZHVsZSwgTGlmZWN5Y2xlU3RhdGUsIERhc2hib2FyZFZpZXcsIERlbGV0ZVNjaGVkdWxlUmVxdWVzdCwgRGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdCwgR2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50LCBHZW5pZUNvbnZlcnNhdGlvbiwgR2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5LCBHZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3QsIEdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0LCBHZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrUmF0aW5nLCBHZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3QsIEdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2UsIEdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0LCBHZW5pZUdldFNwYWNlUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0LCBHZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlLCBHZW5pZUxpc3RTcGFjZXNSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrLCBSZXN1bHQsIFF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlciwgR2VuaWVSZXN1bHRNZXRhZGF0YSwgR2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdCwgR2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZVRyYXNoU3BhY2VSZXF1ZXN0LCBHZXREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0LCBBdXRob3JpemF0aW9uRGV0YWlscywgR2V0U2NoZWR1bGVSZXF1ZXN0LCBHZXRTdWJzY3JpcHRpb25SZXF1ZXN0LCBMaXN0RGFzaGJvYXJkc1JlcXVlc3QsIERhc2hib2FyZCwgTGlzdFNjaGVkdWxlc1JlcXVlc3QsIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCwgTWVzc2FnZUVycm9yVHlwZSwgTWlncmF0ZURhc2hib2FyZFJlcXVlc3QsIFB1Ymxpc2hSZXF1ZXN0LCBQdWJsaXNoZWREYXNoYm9hcmQsIFNjaGVkdWxlUGF1c2VTdGF0dXMsIFN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvbiwgU3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXIsIFN1YnNjcmliZXIsIFRleHRBdHRhY2htZW50UHVycG9zZSwgVHJhc2hEYXNoYm9hcmRSZXF1ZXN0LCBVbnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0LCBVcGRhdGVEYXNoYm9hcmRSZXF1ZXN0LCBTY2hlZHVsZSwgQ3JlYXRlRGFzaGJvYXJkUmVxdWVzdCwgQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0LCBTdWJzY3JpcHRpb24sIFRleHRBdHRhY2htZW50LCBHZW5pZUxpc3RTcGFjZXNSZXNwb25zZSwgTWVzc2FnZUVycm9yLCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXNwb25zZSwgTGlzdERhc2hib2FyZHNSZXNwb25zZSwgTGlzdFNjaGVkdWxlc1Jlc3BvbnNlLCBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlLCBVcGRhdGVTY2hlZHVsZVJlcXVlc3QsIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsIEdlbmllTGlzdENvbnZlcnNhdGlvbk1lc3NhZ2VzUmVzcG9uc2UsIEdlbmllU3RhcnRDb252ZXJzYXRpb25SZXNwb25zZSB9IGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgeyBkZXRlY3RTdGF0dXMsIGRldGVjdEF0dGFjaG1lbnRBZGRlZCwgZGV0ZWN0VGhpbmtpbmcsIGRldGVjdFRleHQsIGRldGVjdFF1ZXJ5LCBkZXRlY3RTdGF0ZW1lbnQsIGRldGVjdFJvd3MsIGRldGVjdFN1Z2dlc3RlZFF1ZXN0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmVudC50c1wiO1xuZXhwb3J0IHsgTWVzc2FnZVN0YXR1c1NjaGVtYSwgR2VuaWVUaG91Z2h0VHlwZVNjaGVtYSwgR2VuaWVUaG91Z2h0U2NoZW1hLCBBVFRBQ0hNRU5UX1RZUEVTLCBLbm93bkF0dGFjaG1lbnRUeXBlU2NoZW1hLCBBdHRhY2htZW50VHlwZVNjaGVtYSwgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEsIEdlbmllVGV4dEF0dGFjaG1lbnRQdXJwb3NlU2NoZW1hLCBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hLCBHZW5pZVZpekF0dGFjaG1lbnRTY2hlbWEsIEdlbmllQXR0YWNobWVudFNjaGVtYSwgR2VuaWVNZXNzYWdlU2NoZW1hLCBHZW5pZVJlc3BvbnNlU2NoZW1hLCBHZW5pZVNwYWNlU2NoZW1hLCBURVJNSU5BTF9TVEFUVVNFUywgVGVybWluYWxTdGF0dXNTY2hlbWEsIEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLCBRdWVzdGlvbkV2ZW50U2NoZW1hLCBNZXNzYWdlRXZlbnRTY2hlbWEsIFN0YXR1c0V2ZW50U2NoZW1hLCBBdHRhY2htZW50RXZlbnRTY2hlbWEsIFRoaW5raW5nRXZlbnRTY2hlbWEsIFRleHRFdmVudFNjaGVtYSwgUXVlcnlFdmVudFNjaGVtYSwgU3RhdGVtZW50RXZlbnRTY2hlbWEsIFJvd3NFdmVudFNjaGVtYSwgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEsIFJlc3VsdEV2ZW50U2NoZW1hLCBHZW5pZUNoYXRFdmVudFNjaGVtYSB9IGZyb20gXCIuL3NyYy9nZW5pZS1tb2RlbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBNZXNzYWdlU3RhdHVzLCBHZW5pZVRob3VnaHRUeXBlLCBHZW5pZVRob3VnaHQsIEtub3duQXR0YWNobWVudFR5cGUsIEF0dGFjaG1lbnRUeXBlLCBHZW5pZVF1ZXJ5QXR0YWNobWVudCwgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2UsIEdlbmllVGV4dEF0dGFjaG1lbnQsIEdlbmllVml6QXR0YWNobWVudCwgR2VuaWVBdHRhY2htZW50LCBHZW5pZU1lc3NhZ2UsIEdlbmllUmVzcG9uc2UsIEdlbmllU3BhY2UsIFRlcm1pbmFsU3RhdHVzLCBHZW5pZUNoYXRMb2NhdGlvbiwgUXVlc3Rpb25FdmVudCwgTWVzc2FnZUV2ZW50LCBTdGF0dXNFdmVudCwgQXR0YWNobWVudEV2ZW50LCBUaGlua2luZ0V2ZW50LCBUZXh0RXZlbnQsIFF1ZXJ5RXZlbnQsIFN0YXRlbWVudEV2ZW50LCBSb3dzRXZlbnQsIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50LCBSZXN1bHRFdmVudCwgR2VuaWVDaGF0RXZlbnQsIEdlbmllQ2hhdEV2ZW50VHlwZSwgR2VuaWVDaGF0RXZlbnRGaWVsZHMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtbW9kZWwudHNcIjtcbiJdfQ==
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLGlDQUFpQyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNU0sT0FBTyxFQUFFLG1DQUFtQyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLHVDQUF1QyxFQUFFLHVCQUF1QixFQUFFLDhCQUE4QixFQUFFLDJDQUEyQyxFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLCtDQUErQyxFQUFFLHFDQUFxQyxFQUFFLHlCQUF5QixFQUFFLHdDQUF3QyxFQUFFLGlEQUFpRCxFQUFFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLDRDQUE0QyxFQUFFLDBCQUEwQixFQUFFLDBDQUEwQyxFQUFFLG1DQUFtQyxFQUFFLG9DQUFvQyxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSx5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSwwQ0FBMEMsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSxrQ0FBa0MsRUFBRSwyQ0FBMkMsRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUUsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsdUNBQXVDLEVBQUUsZ0NBQWdDLEVBQUUsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLDRDQUE0QyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN3lFLE9BQU8sRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxnQ0FBZ0MsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzM1wiO1xuZXhwb3J0ICogYXMgYWdlbnRNb2RlIGZyb20gXCIuL3NyYy9hZ2VudC1tb2RlLnRzXCI7XG5leHBvcnQgKiBhcyBkYXNoYm9hcmRzIGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgKiBhcyBldmVudCBmcm9tIFwiLi9zcmMvZXZlbnQudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllTW9kZWwgZnJvbSBcIi4vc3JjL2dlbmllLW1vZGVsLnRzXCI7XG5leHBvcnQgeyBHZW5pZUFnZW50Q29udGVudFNjaGVtYSwgR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEsIEdlbmllQWdlbnRDb252ZXJzYXRpb25JdGVtc1NjaGVtYSwgR2VuaWVBZ2VudFJlc3BvbnNlU2NoZW1hLCBHZW5pZUFnZW50TW9kZUV2ZW50U2NoZW1hLCBHZW5pZUFnZW50TW9kZVByb2plY3Rpb24gfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUFnZW50Q29udmVyc2F0aW9uSXRlbXMsIEdlbmllQWdlbnRPdXRwdXRJdGVtLCBHZW5pZUFnZW50UmVzcG9uc2UsIEdlbmllQWdlbnRNb2RlRXZlbnQgfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHsgYXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGVTY2hlbWEsIGNyb25TY2hlZHVsZVNjaGVtYSwgbGlmZWN5Y2xlU3RhdGVTY2hlbWEsIGRhc2hib2FyZFZpZXdTY2hlbWEsIGRlbGV0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgZGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50U2NoZW1hLCBnZW5pZUNvbnZlcnNhdGlvblNjaGVtYSwgZ2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5U2NoZW1hLCBnZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RTY2hlbWEsIGdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUZlZWRiYWNrUmF0aW5nU2NoZW1hLCBnZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3RTY2hlbWEsIGdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2VTY2hlbWEsIGdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldFNwYWNlUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlU2NoZW1hLCBnZW5pZUxpc3RTcGFjZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZVNwYWNlU2NoZW1hLCBnZW5pZUZlZWRiYWNrU2NoZW1hLCByZXN1bHRTY2hlbWEsIG1lc3NhZ2VTdGF0dXNTY2hlbWEsIHF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlclNjaGVtYSwgZ2VuaWVSZXN1bHRNZXRhZGF0YVNjaGVtYSwgZ2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZVRyYXNoU3BhY2VSZXF1ZXN0U2NoZW1hLCBnZXREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0U2NoZW1hLCBhdXRob3JpemF0aW9uRGV0YWlsc1NjaGVtYSwgZ2V0U2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBnZXRTdWJzY3JpcHRpb25SZXF1ZXN0U2NoZW1hLCBsaXN0RGFzaGJvYXJkc1JlcXVlc3RTY2hlbWEsIGRhc2hib2FyZFNjaGVtYSwgbGlzdFNjaGVkdWxlc1JlcXVlc3RTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdFNjaGVtYSwgbWVzc2FnZUVycm9yVHlwZVNjaGVtYSwgbWlncmF0ZURhc2hib2FyZFJlcXVlc3RTY2hlbWEsIHB1Ymxpc2hSZXF1ZXN0U2NoZW1hLCBwdWJsaXNoZWREYXNoYm9hcmRTY2hlbWEsIHNjaGVkdWxlUGF1c2VTdGF0dXNTY2hlbWEsIHN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvblNjaGVtYSwgc3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXJTY2hlbWEsIHN1YnNjcmliZXJTY2hlbWEsIHRleHRBdHRhY2htZW50UHVycG9zZVNjaGVtYSwgdHJhc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1bnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1cGRhdGVEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBzY2hlZHVsZVNjaGVtYSwgY3JlYXRlRGFzaGJvYXJkUmVxdWVzdFNjaGVtYSwgY3JlYXRlU2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBzdWJzY3JpcHRpb25TY2hlbWEsIGdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLCB0ZXh0QXR0YWNobWVudFNjaGVtYSwgZ2VuaWVMaXN0U3BhY2VzUmVzcG9uc2VTY2hlbWEsIGdlbmllQXR0YWNobWVudFNjaGVtYSwgbWVzc2FnZUVycm9yU2NoZW1hLCBnZW5pZU1lc3NhZ2VTY2hlbWEsIGdldFB1Ymxpc2hlZERhc2hib2FyZFRva2VuSW5mb1Jlc3BvbnNlU2NoZW1hLCBsaXN0RGFzaGJvYXJkc1Jlc3BvbnNlU2NoZW1hLCBsaXN0U2NoZWR1bGVzUmVzcG9uc2VTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VTY2hlbWEsIHVwZGF0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgY3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXNwb25zZVNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2Rhc2hib2FyZHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGUsIENyb25TY2hlZHVsZSwgTGlmZWN5Y2xlU3RhdGUsIERhc2hib2FyZFZpZXcsIERlbGV0ZVNjaGVkdWxlUmVxdWVzdCwgRGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdCwgR2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50LCBHZW5pZUNvbnZlcnNhdGlvbiwgR2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5LCBHZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3QsIEdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0LCBHZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrUmF0aW5nLCBHZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3QsIEdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2UsIEdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0LCBHZW5pZUdldFNwYWNlUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0LCBHZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlLCBHZW5pZUxpc3RTcGFjZXNSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrLCBSZXN1bHQsIFF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlciwgR2VuaWVSZXN1bHRNZXRhZGF0YSwgR2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdCwgR2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZVRyYXNoU3BhY2VSZXF1ZXN0LCBHZXREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0LCBBdXRob3JpemF0aW9uRGV0YWlscywgR2V0U2NoZWR1bGVSZXF1ZXN0LCBHZXRTdWJzY3JpcHRpb25SZXF1ZXN0LCBMaXN0RGFzaGJvYXJkc1JlcXVlc3QsIERhc2hib2FyZCwgTGlzdFNjaGVkdWxlc1JlcXVlc3QsIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCwgTWVzc2FnZUVycm9yVHlwZSwgTWlncmF0ZURhc2hib2FyZFJlcXVlc3QsIFB1Ymxpc2hSZXF1ZXN0LCBQdWJsaXNoZWREYXNoYm9hcmQsIFNjaGVkdWxlUGF1c2VTdGF0dXMsIFN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvbiwgU3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXIsIFN1YnNjcmliZXIsIFRleHRBdHRhY2htZW50UHVycG9zZSwgVHJhc2hEYXNoYm9hcmRSZXF1ZXN0LCBVbnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0LCBVcGRhdGVEYXNoYm9hcmRSZXF1ZXN0LCBTY2hlZHVsZSwgQ3JlYXRlRGFzaGJvYXJkUmVxdWVzdCwgQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0LCBTdWJzY3JpcHRpb24sIFRleHRBdHRhY2htZW50LCBHZW5pZUxpc3RTcGFjZXNSZXNwb25zZSwgTWVzc2FnZUVycm9yLCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXNwb25zZSwgTGlzdERhc2hib2FyZHNSZXNwb25zZSwgTGlzdFNjaGVkdWxlc1Jlc3BvbnNlLCBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlLCBVcGRhdGVTY2hlZHVsZVJlcXVlc3QsIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsIEdlbmllTGlzdENvbnZlcnNhdGlvbk1lc3NhZ2VzUmVzcG9uc2UsIEdlbmllU3RhcnRDb252ZXJzYXRpb25SZXNwb25zZSB9IGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgeyBkZXRlY3RTdGF0dXMsIGRldGVjdEF0dGFjaG1lbnRBZGRlZCwgZGV0ZWN0VGhpbmtpbmcsIGRldGVjdFRleHQsIGRldGVjdFF1ZXJ5LCBkZXRlY3RTdGF0ZW1lbnQsIGRldGVjdFJvd3MsIGRldGVjdFN1Z2dlc3RlZFF1ZXN0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmVudC50c1wiO1xuZXhwb3J0IHsgTWVzc2FnZVN0YXR1c1NjaGVtYSwgR2VuaWVUaG91Z2h0VHlwZVNjaGVtYSwgR2VuaWVUaG91Z2h0U2NoZW1hLCBBVFRBQ0hNRU5UX1RZUEVTLCBLbm93bkF0dGFjaG1lbnRUeXBlU2NoZW1hLCBBdHRhY2htZW50VHlwZVNjaGVtYSwgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEsIEdlbmllVGV4dEF0dGFjaG1lbnRQdXJwb3NlU2NoZW1hLCBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hLCBHZW5pZVZpekF0dGFjaG1lbnRTY2hlbWEsIEdlbmllQXR0YWNobWVudFNjaGVtYSwgR2VuaWVNZXNzYWdlU2NoZW1hLCBHZW5pZVJlc3BvbnNlU2NoZW1hLCBHZW5pZVNwYWNlU2NoZW1hLCBURVJNSU5BTF9TVEFUVVNFUywgVGVybWluYWxTdGF0dXNTY2hlbWEsIEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLCBRdWVzdGlvbkV2ZW50U2NoZW1hLCBNZXNzYWdlRXZlbnRTY2hlbWEsIFN0YXR1c0V2ZW50U2NoZW1hLCBBdHRhY2htZW50RXZlbnRTY2hlbWEsIFRoaW5raW5nRXZlbnRTY2hlbWEsIFRleHRFdmVudFNjaGVtYSwgUXVlcnlFdmVudFNjaGVtYSwgU3RhdGVtZW50RXZlbnRTY2hlbWEsIFJvd3NFdmVudFNjaGVtYSwgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEsIFJlc3VsdEV2ZW50U2NoZW1hLCBHZW5pZUNoYXRFdmVudFNjaGVtYSB9IGZyb20gXCIuL3NyYy9nZW5pZS1tb2RlbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBNZXNzYWdlU3RhdHVzLCBHZW5pZVRob3VnaHRUeXBlLCBHZW5pZVRob3VnaHQsIEtub3duQXR0YWNobWVudFR5cGUsIEF0dGFjaG1lbnRUeXBlLCBHZW5pZVF1ZXJ5QXR0YWNobWVudCwgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2UsIEdlbmllVGV4dEF0dGFjaG1lbnQsIEdlbmllVml6QXR0YWNobWVudCwgR2VuaWVBdHRhY2htZW50LCBHZW5pZU1lc3NhZ2UsIEdlbmllUmVzcG9uc2UsIEdlbmllU3BhY2UsIFRlcm1pbmFsU3RhdHVzLCBHZW5pZUNoYXRMb2NhdGlvbiwgUXVlc3Rpb25FdmVudCwgTWVzc2FnZUV2ZW50LCBTdGF0dXNFdmVudCwgQXR0YWNobWVudEV2ZW50LCBUaGlua2luZ0V2ZW50LCBUZXh0RXZlbnQsIFF1ZXJ5RXZlbnQsIFN0YXRlbWVudEV2ZW50LCBSb3dzRXZlbnQsIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50LCBSZXN1bHRFdmVudCwgR2VuaWVDaGF0RXZlbnQsIEdlbmllQ2hhdEV2ZW50VHlwZSwgR2VuaWVDaGF0RXZlbnRGaWVsZHMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtbW9kZWwudHNcIjtcbiJdfQ==
|
package/lib/src/agent-mode.js
CHANGED
|
@@ -258,12 +258,18 @@ function itemAttachments(item) {
|
|
|
258
258
|
return [textAttachment(id, item.output, item.metadata)];
|
|
259
259
|
}
|
|
260
260
|
if (item.type === "message") {
|
|
261
|
-
return (item.content ?? []).flatMap((part) => part.type === "output_text" &&
|
|
262
|
-
|
|
261
|
+
return (item.content ?? []).flatMap((part) => part.type === "output_text" &&
|
|
262
|
+
(part.text !== undefined || visualizationAttachmentId(part.metadata))
|
|
263
|
+
? [textAttachment(id, part.text ?? "", part.metadata)]
|
|
263
264
|
: []);
|
|
264
265
|
}
|
|
265
266
|
return [];
|
|
266
267
|
}
|
|
268
|
+
function visualizationAttachmentId(metadata) {
|
|
269
|
+
if (!object.isRecord(metadata) || !object.isRecord(metadata.viz))
|
|
270
|
+
return undefined;
|
|
271
|
+
return typeof metadata.viz.attachment_id === "string" ? metadata.viz.attachment_id : undefined;
|
|
272
|
+
}
|
|
267
273
|
function contentText(value, type) {
|
|
268
274
|
if (!value)
|
|
269
275
|
return [];
|
|
@@ -281,4 +287,4 @@ function textAttachment(id, content, metadata) {
|
|
|
281
287
|
},
|
|
282
288
|
};
|
|
283
289
|
}
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtbW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZ2VudC1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUNMLGtCQUFrQixHQUluQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLHFFQUFxRTtBQUNyRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDO0tBQ3JDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2pDLENBQUM7S0FDRCxLQUFLLEVBQUUsQ0FBQztBQUVYLG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDO0tBQ3hDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMs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QUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUk7WUFDdEMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsRUFBRSxDQUNQLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2xCLEtBQTRELEVBQzVELElBQVk7SUFFWixJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN2RixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQ3JCLEVBQXNCLEVBQ3RCLE9BQWUsRUFDZixRQUFrQjtJQUVsQixPQUFPO1FBQ0wsYUFBYSxFQUFFLEVBQUU7UUFDakIsZUFBZSxFQUFFLE1BQU07UUFDdkIsSUFBSSxFQUFFO1lBQ0osRUFBRTtZQUNGLE9BQU87WUFDUCxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDaEQ7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1zYWZlIEdlbmllIEFnZW50IE1vZGUgU1NFIGNvbnRyYWN0cy5cbiAqXG4gKiBTY2hlbWFzIHZhbGlkYXRlIHRoZSBzdGFibGUgUmVzcG9uc2VzLXN0eWxlIGV2ZW50IGVudmVsb3BlIHdoaWxlIHByZXNlcnZpbmdcbiAqIGFkZGl0aXZlIGZpZWxkcyBhbmQgb3V0cHV0LWl0ZW0gdmFyaWFudHMgaW50cm9kdWNlZCBieSB0aGUgYmV0YSBBUEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGpzb24sIG9iamVjdCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQge1xuICBHZW5pZU1lc3NhZ2VTY2hlbWEsXG4gIHR5cGUgR2VuaWVBdHRhY2htZW50LFxuICB0eXBlIEdlbmllTWVzc2FnZSxcbiAgdHlwZSBHZW5pZVRob3VnaHQsXG59IGZyb20gXCIuL2dlbmllLW1vZGVsLnRzXCI7XG5cbi8qKiBBZ2VudCBNb2RlIG91dHB1dCBjb250ZW50IGl0ZW0gd2l0aCBmb3J3YXJkLWNvbXBhdGlibGUgZmllbGRzLiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRDb250ZW50U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICB0eXBlOiB6LnN0cmluZygpLFxuICAgIHRleHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBtZXRhZGF0YTogei51bmtub3duKCkub3B0aW9uYWwoKSxcbiAgfSlcbiAgLmxvb3NlKCk7XG5cbi8qKiBBZ2VudCBNb2RlIHJlc3BvbnNlIG91dHB1dCBpdGVtIHdpdGgga25vd24gcHJvamVjdGlvbiBmaWVsZHMuICovXG5leHBvcnQgY29uc3QgR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjYWxsX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGFyZ3VtZW50czogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIG91dHB1dDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHN0YXR1czogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHJvbGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjb250ZW50OiB6LmFycmF5KEdlbmllQWdlbnRDb250ZW50U2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIG1ldGFkYXRhOiB6LnVua25vd24oKS5vcHRpb25hbCgpLFxuICAgIGNyZWF0ZWRfYXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgfSlcbiAgLmxvb3NlKCk7XG5cbi8qKiBPbmUgcGFnZSBvZiBhbiBBZ2VudCBNb2RlIGNvbnZlcnNhdGlvbidzIGl0ZW0gaGlzdG9yeS4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZUFnZW50Q29udmVyc2F0aW9uSXRlbXNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGRhdGE6IHouYXJyYXkoR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEpLmRlc2NyaWJlKFwiQ29udmVyc2F0aW9uIGl0ZW1zLCBvbGRlc3QgZmlyc3QuXCIpLFxuICAgIGhhc19tb3JlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiV2hldGhlciBhbm90aGVyIHBhZ2UgZm9sbG93cyBgbGFzdF9pZGAuXCIpLFxuICAgIGxhc3RfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkl0ZW0gaWQgdGhhdCB0aGUgbmV4dCBwYWdlIHN0YXJ0cyBhZnRlci5cIiksXG4gICAgc3RhdHVzOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJDdXJyZW50IHN0YXR1cyBvZiB0aGUgY29udmVyc2F0aW9uJ3MgbGF0ZXN0IHJlc3BvbnNlLlwiKSxcbiAgfSlcbiAgLmxvb3NlKClcbiAgLmRlc2NyaWJlKFwiUGFnZSBvZiBBZ2VudCBNb2RlIGNvbnZlcnNhdGlvbiBpdGVtcy5cIik7XG5cbi8qKiBWYWxpZGF0ZWQgQWdlbnQgTW9kZSBjb252ZXJzYXRpb24gaXRlbSBwYWdlLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudENvbnZlcnNhdGlvbkl0ZW1zID0gei5pbmZlcjx0eXBlb2YgR2VuaWVBZ2VudENvbnZlcnNhdGlvbkl0ZW1zU2NoZW1hPjtcblxuLyoqIEdlbmllIEFnZW50IE1vZGUgcmVzcG9uc2UgY2FycmllZCBieSBsaWZlY3ljbGUgZXZlbnRzLiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRSZXNwb25zZVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgb2JqZWN0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbW9kZWw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBzdGF0dXM6IHouc3RyaW5nKCksXG4gICAgb3V0cHV0OiB6LmFycmF5KEdlbmllQWdlbnRPdXRwdXRJdGVtU2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIGNvbnZlcnNhdGlvbl9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNyZWF0ZWRfYXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICBlcnJvcjogei51bmtub3duKCkub3B0aW9uYWwoKSxcbiAgfSlcbiAgLmxvb3NlKCk7XG5cbi8qKiBPbmUgU1NFIGV2ZW50IGZyb20gdGhlIEdlbmllIEFnZW50IE1vZGUgcmVzcG9uc2Ugc3RyZWFtLiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRNb2RlRXZlbnRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgc2VxdWVuY2VfbnVtYmVyOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgb3V0cHV0X2luZGV4OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgcmVzcG9uc2U6IEdlbmllQWdlbnRSZXNwb25zZVNjaGVtYS5vcHRpb25hbCgpLFxuICAgIGl0ZW06IEdlbmllQWdlbnRPdXRwdXRJdGVtU2NoZW1hLm9wdGlvbmFsKCksXG4gIH0pXG4gIC5sb29zZSgpO1xuXG4vKiogVmFsaWRhdGVkIEFnZW50IE1vZGUgcmVzcG9uc2Ugb3V0cHV0IGl0ZW0uICovXG5leHBvcnQgdHlwZSBHZW5pZUFnZW50T3V0cHV0SXRlbSA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRPdXRwdXRJdGVtU2NoZW1hPjtcbi8qKiBWYWxpZGF0ZWQgQWdlbnQgTW9kZSByZXNwb25zZS4gKi9cbmV4cG9ydCB0eXBlIEdlbmllQWdlbnRSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRSZXNwb25zZVNjaGVtYT47XG4vKiogVmFsaWRhdGVkIEFnZW50IE1vZGUgU1NFIGV2ZW50LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudE1vZGVFdmVudCA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRNb2RlRXZlbnRTY2hlbWE+O1xuXG4vKiogU3RhdGVmdWwgcHVyZSByZWR1Y2VyIGZyb20gQWdlbnQgTW9kZSBTU0UgZXZlbnRzIHRvIEdlbmllIG1lc3NhZ2Ugc25hcHNob3RzLiAqL1xuZXhwb3J0IGNsYXNzIEdlbmllQWdlbnRNb2RlUHJvamVjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbXMgPSBuZXcgTWFwPHN0cmluZywgR2VuaWVBZ2VudE91dHB1dEl0ZW0+KCk7XG4gIHByaXZhdGUgcmVzcG9uc2U6IEdlbmllQWdlbnRSZXNwb25zZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNwYWNlSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZyxcbiAgKSB7fVxuXG4gIC8qKiBBcHBseSBvbmUgdmFsaWRhdGVkIFNTRSBldmVudCBhbmQgcmV0dXJuIGl0cyBwcm9qZWN0ZWQgc25hcHNob3QuICovXG4gIGFwcGx5KGV2ZW50OiBHZW5pZUFnZW50TW9kZUV2ZW50KTogR2VuaWVNZXNzYWdlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZXZlbnQucmVzcG9uc2UpIHtcbiAgICAgIHRoaXMucmVzcG9uc2UgPSBldmVudC5yZXNwb25zZTtcbiAgICAgIGlmIChldmVudC5yZXNwb25zZS5vdXRwdXQpIHtcbiAgICAgICAgdGhpcy5pdGVtcy5jbGVhcigpO1xuICAgICAgICBldmVudC5yZXNwb25zZS5vdXRwdXQuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zLnNldChhZ2VudEl0ZW1LZXkoaXRlbSwgaW5kZXgpLCBpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChldmVudC5pdGVtKSB7XG4gICAgICB0aGlzLml0ZW1zLnNldChhZ2VudEl0ZW1LZXkoZXZlbnQuaXRlbSwgZXZlbnQub3V0cHV0X2luZGV4KSwgZXZlbnQuaXRlbSk7XG4gICAgfVxuICAgIGlmICgoIWV2ZW50LnJlc3BvbnNlICYmICFldmVudC5pdGVtKSB8fCAhdGhpcy5yZXNwb25zZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcHJvamVjdEFnZW50TW9kZU1lc3NhZ2UodGhpcy5zcGFjZUlkLCB0aGlzLmNvbnRlbnQsIHRoaXMucmVzcG9uc2UsIFtcbiAgICAgIC4uLnRoaXMuaXRlbXMudmFsdWVzKCksXG4gICAgXSk7XG4gIH1cblxuICAvKiogQ3VycmVudCByZXNwb25zZSBpZCwgb25jZSBgcmVzcG9uc2UuY3JlYXRlZGAgaGFzIGFycml2ZWQuICovXG4gIGdldCByZXNwb25zZUlkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2U/LmlkO1xuICB9XG5cbiAgLyoqIEN1cnJlbnQgY29udmVyc2F0aW9uIGlkLCBvbmNlIGFzc2lnbmVkIGJ5IEdlbmllLiAqL1xuICBnZXQgY29udmVyc2F0aW9uSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZT8uY29udmVyc2F0aW9uX2lkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGxhdGVzdCByZXNwb25zZSBzdGF0dXMgaXMgdGVybWluYWwuICovXG4gIGdldCB0ZXJtaW5hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZSA/IGlzVGVybWluYWxTdGF0dXModGhpcy5yZXNwb25zZS5zdGF0dXMpIDogZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNUZXJtaW5hbFN0YXR1cyhzdGF0dXM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3RhdHVzID09PSBcImNvbXBsZXRlZFwiIHx8IHN0YXR1cyA9PT0gXCJmYWlsZWRcIiB8fCBzdGF0dXMgPT09IFwiY2FuY2VsbGVkXCI7XG59XG5cbmZ1bmN0aW9uIGFnZW50SXRlbUtleShpdGVtOiBHZW5pZUFnZW50T3V0cHV0SXRlbSwgaW5kZXg6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGl0ZW0uaWQgPT09IFwic3RyaW5nXCIpIHJldHVybiBpdGVtLmlkO1xuICBpZiAodHlwZW9mIGl0ZW0uY2FsbF9pZCA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGl0ZW0uY2FsbF9pZDtcbiAgcmV0dXJuIFN0cmluZyh0eXBlb2YgaW5kZXggPT09IFwibnVtYmVyXCIgPyBpbmRleCA6IChpdGVtLnR5cGUgPz8gXCJpdGVtXCIpKTtcbn1cblxuLyoqIFByb2plY3Qgb25lIEFnZW50IE1vZGUgcmVzcG9uc2Ugc25hcHNob3Qgb250byB0aGUgc2hhcmVkIEdlbmllIG1lc3NhZ2Ugc2hhcGUuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvamVjdEFnZW50TW9kZU1lc3NhZ2UoXG4gIHNwYWNlSWQ6IHN0cmluZyxcbiAgY29udGVudDogc3RyaW5nLFxuICByZXNwb25zZTogR2VuaWVBZ2VudFJlc3BvbnNlLFxuICBpdGVtczogR2VuaWVBZ2VudE91dHB1dEl0ZW1bXSxcbik6IEdlbmllTWVzc2FnZSB7XG4gIGNvbnN0IGVycm9yVmFsdWUgPSBvYmplY3QuaXNSZWNvcmQocmVzcG9uc2UuZXJyb3IpID8gcmVzcG9uc2UuZXJyb3IgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgdHlwZW9mIGVycm9yVmFsdWU/Lm1lc3NhZ2UgPT09IFwic3RyaW5nXCJcbiAgICAgID8gZXJyb3JWYWx1ZS5tZXNzYWdlXG4gICAgICA6IHR5cGVvZiByZXNwb25zZS5lcnJvciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IHJlc3BvbnNlLmVycm9yXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBtZXNzYWdlSWQgPSBpdGVtcy5tYXAoaXRlbU1lc3NhZ2VJZCkuZmluZCgoaWQpID0+IGlkICE9PSB1bmRlZmluZWQpID8/IHJlc3BvbnNlLmlkO1xuICByZXR1cm4gR2VuaWVNZXNzYWdlU2NoZW1hLnBhcnNlKHtcbiAgICBpZDogbWVzc2FnZUlkLFxuICAgIG1lc3NhZ2VfaWQ6IG1lc3NhZ2VJZCxcbiAgICBzcGFjZV9pZDogc3BhY2VJZCxcbiAgICBjb252ZXJzYXRpb25faWQ6IHJlc3BvbnNlLmNvbnZlcnNhdGlvbl9pZCA/PyBcIlwiLFxuICAgIGNvbnRlbnQsXG4gICAgc3RhdHVzOiBhZ2VudE1vZGVTdGF0dXMocmVzcG9uc2Uuc3RhdHVzLCBpdGVtcyksXG4gICAgYXR0YWNobWVudHM6IHdpdGhTdGF0ZW1lbnRJZHMoaXRlbXMuZmxhdE1hcChpdGVtQXR0YWNobWVudHMpLCBpdGVtcyksXG4gICAgLi4uKHJlc3BvbnNlLmNyZWF0ZWRfYXQgIT09IHVuZGVmaW5lZCA/IHsgY3JlYXRlZF90aW1lc3RhbXA6IHJlc3BvbnNlLmNyZWF0ZWRfYXQgfSA6IHt9KSxcbiAgICAuLi4oZXJyb3JNZXNzYWdlID8geyBlcnJvcjogeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0gfSA6IHt9KSxcbiAgfSk7XG59XG5cbi8qKlxuICogUHJvamVjdCBhbiBBZ2VudCBNb2RlIGNvbnZlcnNhdGlvbidzIGl0ZW0gaGlzdG9yeSBvbnRvIG9uZSBHZW5pZSBtZXNzYWdlIHBlclxuICogdHVybi4gSXRlbXMgYXJlIGdyb3VwZWQgYnkgdGhlaXIgYG1ldGFkYXRhLm1lc3NhZ2VfaWRgOyBlYWNoIHR1cm4ncyB1c2VyXG4gKiBgbWVzc2FnZWAgaXRlbSBzdXBwbGllcyB0aGUgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9qZWN0QWdlbnRNb2RlQ29udmVyc2F0aW9uKFxuICBzcGFjZUlkOiBzdHJpbmcsXG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gIGl0ZW1zOiBHZW5pZUFnZW50T3V0cHV0SXRlbVtdLFxuICBzdGF0dXMgPSBcImNvbXBsZXRlZFwiLFxuKTogR2VuaWVNZXNzYWdlW10ge1xuICBjb25zdCB0dXJuczogQXJyYXk8e1xuICAgIG1lc3NhZ2VJZDogc3RyaW5nO1xuICAgIHF1ZXN0aW9uOiBHZW5pZUFnZW50T3V0cHV0SXRlbTtcbiAgICBpdGVtczogR2VuaWVBZ2VudE91dHB1dEl0ZW1bXTtcbiAgfT4gPSBbXTtcbiAgbGV0IGN1cnJlbnQ6ICh0eXBlb2YgdHVybnMpW251bWJlcl0gfCB1bmRlZmluZWQ7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgIGlmIChpdGVtLnR5cGUgPT09IFwibWVzc2FnZVwiICYmIGl0ZW0ucm9sZSA9PT0gXCJ1c2VyXCIpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9XG4gICAgICAgIGl0ZW1NZXNzYWdlSWQoaXRlbSkgPz9cbiAgICAgICAgKGl0ZW0uaWQ/LmVuZHNXaXRoKFwiX2lucHV0XCIpID8gaXRlbS5pZC5zbGljZSgwLCAtXCJfaW5wdXRcIi5sZW5ndGgpIDogaXRlbS5pZCk7XG4gICAgICBpZiAoIW1lc3NhZ2VJZCkgY29udGludWU7XG4gICAgICBjdXJyZW50ID0geyBtZXNzYWdlSWQsIHF1ZXN0aW9uOiBpdGVtLCBpdGVtczogW10gfTtcbiAgICAgIHR1cm5zLnB1c2goY3VycmVudCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY3VycmVudD8uaXRlbXMucHVzaChpdGVtKTtcbiAgfVxuICByZXR1cm4gdHVybnMubWFwKCh0dXJuLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGZhaWxlZCA9IHR1cm4uaXRlbXMuc29tZSgoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09IFwiZmFpbGVkXCIpO1xuICAgIGNvbnN0IHR1cm5TdGF0dXMgPSBmYWlsZWQgPyBcImZhaWxlZFwiIDogaW5kZXggPT09IHR1cm5zLmxlbmd0aCAtIDEgPyBzdGF0dXMgOiBcImNvbXBsZXRlZFwiO1xuICAgIHJldHVybiBwcm9qZWN0QWdlbnRNb2RlTWVzc2FnZShcbiAgICAgIHNwYWNlSWQsXG4gICAgICBjb250ZW50VGV4dCh0dXJuLnF1ZXN0aW9uLmNvbnRlbnQsIFwiaW5wdXRfdGV4dFwiKS5qb2luKFwiXFxuXCIpLFxuICAgICAge1xuICAgICAgICBpZDogdHVybi5tZXNzYWdlSWQsXG4gICAgICAgIHN0YXR1czogdHVyblN0YXR1cyxcbiAgICAgICAgY29udmVyc2F0aW9uX2lkOiBjb252ZXJzYXRpb25JZCxcbiAgICAgICAgLi4uKHR1cm4ucXVlc3Rpb24uY3JlYXRlZF9hdCAhPT0gdW5kZWZpbmVkID8geyBjcmVhdGVkX2F0OiB0dXJuLnF1ZXN0aW9uLmNyZWF0ZWRfYXQgfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICB0dXJuLml0ZW1zLFxuICAgICk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpdGVtTWV0YWRhdGEoaXRlbTogR2VuaWVBZ2VudE91dHB1dEl0ZW0pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvYmplY3QuaXNSZWNvcmQoaXRlbS5tZXRhZGF0YSkgPyBpdGVtLm1ldGFkYXRhIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpdGVtTWVzc2FnZUlkKGl0ZW06IEdlbmllQWdlbnRPdXRwdXRJdGVtKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWVzc2FnZUlkID0gaXRlbU1ldGFkYXRhKGl0ZW0pPy5tZXNzYWdlX2lkO1xuICByZXR1cm4gdHlwZW9mIG1lc3NhZ2VJZCA9PT0gXCJzdHJpbmdcIiA/IG1lc3NhZ2VJZCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqIENvcHkgZWFjaCBxdWVyeSBvdXRwdXQncyBgc3RhdGVtZW50X2lkYCBvbnRvIHRoZSBxdWVyeSBhdHRhY2htZW50IGl0IGFuc3dlcnMuICovXG5mdW5jdGlvbiB3aXRoU3RhdGVtZW50SWRzKFxuICBhdHRhY2htZW50czogR2VuaWVBdHRhY2htZW50W10sXG4gIGl0ZW1zOiBHZW5pZUFnZW50T3V0cHV0SXRlbVtdLFxuKTogR2VuaWVBdHRhY2htZW50W10ge1xuICBjb25zdCBzdGF0ZW1lbnRzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SWQgPSBpdGVtTWV0YWRhdGEoaXRlbSk/LnN0YXRlbWVudF9pZDtcbiAgICBpZiAoaXRlbS50eXBlID09PSBcImZ1bmN0aW9uX2NhbGxfb3V0cHV0XCIgJiYgaXRlbS5jYWxsX2lkICYmIHR5cGVvZiBzdGF0ZW1lbnRJZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc3RhdGVtZW50cy5zZXQoaXRlbS5jYWxsX2lkLCBzdGF0ZW1lbnRJZCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBhdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQpID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRJZCA9IGF0dGFjaG1lbnQucXVlcnkgJiYgc3RhdGVtZW50cy5nZXQoYXR0YWNobWVudC5hdHRhY2htZW50X2lkID8/IFwiXCIpO1xuICAgIHJldHVybiBzdGF0ZW1lbnRJZCAmJiBhdHRhY2htZW50LnF1ZXJ5XG4gICAgICA/IHsgLi4uYXR0YWNobWVudCwgcXVlcnk6IHsgLi4uYXR0YWNobWVudC5xdWVyeSwgc3RhdGVtZW50X2lkOiBzdGF0ZW1lbnRJZCB9IH1cbiAgICAgIDogYXR0YWNobWVudDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFnZW50TW9kZVN0YXR1cyh2YWx1ZTogc3RyaW5nLCBpdGVtczogR2VuaWVBZ2VudE91dHB1dEl0ZW1bXSk6IEdlbmllTWVzc2FnZVtcInN0YXR1c1wiXSB7XG4gIGlmICh2YWx1ZSA9PT0gXCJjb21wbGV0ZWRcIikgcmV0dXJuIFwiQ09NUExFVEVEXCI7XG4gIGlmICh2YWx1ZSA9PT0gXCJmYWlsZWRcIikgcmV0dXJuIFwiRkFJTEVEXCI7XG4gIGlmICh2YWx1ZSA9PT0gXCJjYW5jZWxsZWRcIikgcmV0dXJuIFwiQ0FOQ0VMTEVEXCI7XG4gIGlmIChpdGVtcy5zb21lKChpdGVtKSA9PiBpdGVtLnR5cGUgPT09IFwiZnVuY3Rpb25fY2FsbFwiKSkgcmV0dXJuIFwiRVhFQ1VUSU5HX1FVRVJZXCI7XG4gIHJldHVybiBcIkFTS0lOR19BSVwiO1xufVxuXG5mdW5jdGlvbiBpdGVtQXR0YWNobWVudHMoaXRlbTogR2VuaWVBZ2VudE91dHB1dEl0ZW0pOiBHZW5pZUF0dGFjaG1lbnRbXSB7XG4gIGNvbnN0IGlkID0gaXRlbS5pZCA/PyBpdGVtLmNhbGxfaWQ7XG4gIGlmIChpdGVtLnR5cGUgPT09IFwicmVhc29uaW5nXCIpIHtcbiAgICBjb25zdCB0aG91Z2h0cyA9IGNvbnRlbnRUZXh0KGl0ZW0uY29udGVudCwgXCJyZWFzb25pbmdfdGV4dFwiKS5tYXAoXG4gICAgICAodGhvdWdodENvbnRlbnQpOiBHZW5pZVRob3VnaHQgPT4gKHtcbiAgICAgICAgdGhvdWdodF90eXBlOiBcIlRIT1VHSFRfVFlQRV9TVEVQU1wiLFxuICAgICAgICBjb250ZW50OiB0aG91Z2h0Q29udGVudCxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIHRob3VnaHRzLmxlbmd0aCA9PT0gMFxuICAgICAgPyBbXVxuICAgICAgOiBbeyBhdHRhY2htZW50X2lkOiBpZCwgYXR0YWNobWVudF90eXBlOiBcInF1ZXJ5XCIsIHF1ZXJ5OiB7IGlkLCB0aG91Z2h0cyB9IH1dO1xuICB9XG4gIGlmIChpdGVtLnR5cGUgPT09IFwiZnVuY3Rpb25fY2FsbFwiKSB7XG4gICAgY29uc3QgY2FsbElkID0gaXRlbS5jYWxsX2lkID8/IGl0ZW0uaWQ7XG4gICAgY29uc3QgYXJndW1lbnRzVmFsdWUgPSBqc29uLnBhcnNlUmVjb3JkKGl0ZW0uYXJndW1lbnRzKTtcbiAgICBjb25zdCBxdWVyeSA9XG4gICAgICB0eXBlb2YgYXJndW1lbnRzVmFsdWU/LnNxbCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGFyZ3VtZW50c1ZhbHVlLnNxbFxuICAgICAgICA6IHR5cGVvZiBhcmd1bWVudHNWYWx1ZT8ucXVlcnkgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IGFyZ3VtZW50c1ZhbHVlLnF1ZXJ5XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGl0bGUgPSB0eXBlb2YgYXJndW1lbnRzVmFsdWU/LnRpdGxlID09PSBcInN0cmluZ1wiID8gYXJndW1lbnRzVmFsdWUudGl0bGUgOiBpdGVtLm5hbWU7XG4gICAgcmV0dXJuIHF1ZXJ5XG4gICAgICA/IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhdHRhY2htZW50X2lkOiBjYWxsSWQsXG4gICAgICAgICAgICBhdHRhY2htZW50X3R5cGU6IFwicXVlcnlcIixcbiAgICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICAgIGlkOiBjYWxsSWQsXG4gICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAuLi4odGl0bGUgPyB7IHRpdGxlIH0gOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW107XG4gIH1cbiAgaWYgKGl0ZW0udHlwZSA9PT0gXCJmdW5jdGlvbl9jYWxsX291dHB1dFwiICYmIGl0ZW0ub3V0cHV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCB2aXogPSBpdGVtTWV0YWRhdGEoaXRlbSk/LnZpejtcbiAgICBpZiAob2JqZWN0LmlzUmVjb3JkKHZpeikgJiYgdHlwZW9mIHZpei5hdHRhY2htZW50X2lkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgYXR0YWNobWVudF9pZDogdml6LmF0dGFjaG1lbnRfaWQsXG4gICAgICAgICAgYXR0YWNobWVudF90eXBlOiBcInZpelwiLFxuICAgICAgICAgIHZpejoge1xuICAgICAgICAgICAgLi4uKGl0ZW0ub3V0cHV0ID8geyB0aXRsZTogaXRlbS5vdXRwdXQgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLih0eXBlb2Ygdml6LnF1ZXJ5X2F0dGFjaG1lbnRfaWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyB7IHF1ZXJ5X2F0dGFjaG1lbnRfaWQ6IHZpei5xdWVyeV9hdHRhY2htZW50X2lkIH1cbiAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBbdGV4dEF0dGFjaG1lbnQoaWQsIGl0ZW0ub3V0cHV0LCBpdGVtLm1ldGFkYXRhKV07XG4gIH1cbiAgaWYgKGl0ZW0udHlwZSA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICByZXR1cm4gKGl0ZW0uY29udGVudCA/PyBbXSkuZmxhdE1hcCgocGFydCkgPT5cbiAgICAgIHBhcnQudHlwZSA9PT0gXCJvdXRwdXRfdGV4dFwiICYmIHBhcnQudGV4dFxuICAgICAgICA/IFt0ZXh0QXR0YWNobWVudChpZCwgcGFydC50ZXh0LCBwYXJ0Lm1ldGFkYXRhKV1cbiAgICAgICAgOiBbXSxcbiAgICApO1xuICB9XG4gIHJldHVybiBbXTtcbn1cblxuZnVuY3Rpb24gY29udGVudFRleHQoXG4gIHZhbHVlOiB6LmluZmVyPHR5cGVvZiBHZW5pZUFnZW50Q29udGVudFNjaGVtYT5bXSB8IHVuZGVmaW5lZCxcbiAgdHlwZTogc3RyaW5nLFxuKTogc3RyaW5nW10ge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gW107XG4gIHJldHVybiB2YWx1ZS5mbGF0TWFwKChwYXJ0KSA9PiAocGFydC50eXBlID09PSB0eXBlICYmIHBhcnQudGV4dCA/IFtwYXJ0LnRleHRdIDogW10pKTtcbn1cblxuZnVuY3Rpb24gdGV4dEF0dGFjaG1lbnQoXG4gIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgbWV0YWRhdGE/OiB1bmtub3duLFxuKTogR2VuaWVBdHRhY2htZW50IHtcbiAgcmV0dXJuIHtcbiAgICBhdHRhY2htZW50X2lkOiBpZCxcbiAgICBhdHRhY2htZW50X3R5cGU6IFwidGV4dFwiLFxuICAgIHRleHQ6IHtcbiAgICAgIGlkLFxuICAgICAgY29udGVudCxcbiAgICAgIHB1cnBvc2U6IFwiVEVYVF9BVFRBQ0hNRU5UX1BVUlBPU0VfQU5TV0VSXCIsXG4gICAgICAuLi4obWV0YWRhdGEgIT09IHVuZGVmaW5lZCA/IHsgbWV0YWRhdGEgfSA6IHt9KSxcbiAgICB9LFxuICB9O1xufVxuIl19
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtbW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZ2VudC1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUNMLGtCQUFrQixHQUluQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLHFFQUFxRTtBQUNyRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDO0tBQ3JDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2pDLENBQUM7S0FDRCxLQUFLLEVBQUUsQ0FBQztBQUVYLG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDO0tBQ3hDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMs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QUVsQixPQUFPO1FBQ0wsYUFBYSxFQUFFLEVBQUU7UUFDakIsZUFBZSxFQUFFLE1BQU07UUFDdkIsSUFBSSxFQUFFO1lBQ0osRUFBRTtZQUNGLE9BQU87WUFDUCxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDaEQ7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1zYWZlIEdlbmllIEFnZW50IE1vZGUgU1NFIGNvbnRyYWN0cy5cbiAqXG4gKiBTY2hlbWFzIHZhbGlkYXRlIHRoZSBzdGFibGUgUmVzcG9uc2VzLXN0eWxlIGV2ZW50IGVudmVsb3BlIHdoaWxlIHByZXNlcnZpbmdcbiAqIGFkZGl0aXZlIGZpZWxkcyBhbmQgb3V0cHV0LWl0ZW0gdmFyaWFudHMgaW50cm9kdWNlZCBieSB0aGUgYmV0YSBBUEkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGpzb24sIG9iamVjdCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQge1xuICBHZW5pZU1lc3NhZ2VTY2hlbWEsXG4gIHR5cGUgR2VuaWVBdHRhY2htZW50LFxuICB0eXBlIEdlbmllTWVzc2FnZSxcbiAgdHlwZSBHZW5pZVRob3VnaHQsXG59IGZyb20gXCIuL2dlbmllLW1vZGVsLnRzXCI7XG5cbi8qKiBBZ2VudCBNb2RlIG91dHB1dCBjb250ZW50IGl0ZW0gd2l0aCBmb3J3YXJkLWNvbXBhdGlibGUgZmllbGRzLiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRDb250ZW50U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICB0eXBlOiB6LnN0cmluZygpLFxuICAgIHRleHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBtZXRhZGF0YTogei51bmtub3duKCkub3B0aW9uYWwoKSxcbiAgfSlcbiAgLmxvb3NlKCk7XG5cbi8qKiBBZ2VudCBNb2RlIHJlc3BvbnNlIG91dHB1dCBpdGVtIHdpdGgga25vd24gcHJvamVjdGlvbiBmaWVsZHMuICovXG5leHBvcnQgY29uc3QgR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjYWxsX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGFyZ3VtZW50czogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIG91dHB1dDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHN0YXR1czogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHJvbGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjb250ZW50OiB6LmFycmF5KEdlbmllQWdlbnRDb250ZW50U2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIG1ldGFkYXRhOiB6LnVua25vd24oKS5vcHRpb25hbCgpLFxuICAgIGNyZWF0ZWRfYXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgfSlcbiAgLmxvb3NlKCk7XG5cbi8qKiBPbmUgcGFnZSBvZiBhbiBBZ2VudCBNb2RlIGNvbnZlcnNhdGlvbidzIGl0ZW0gaGlzdG9yeS4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZUFnZW50Q29udmVyc2F0aW9uSXRlbXNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGRhdGE6IHouYXJyYXkoR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEpLmRlc2NyaWJlKFwiQ29udmVyc2F0aW9uIGl0ZW1zLCBvbGRlc3QgZmlyc3QuXCIpLFxuICAgIGhhc19tb3JlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiV2hldGhlciBhbm90aGVyIHBhZ2UgZm9sbG93cyBgbGFzdF9pZGAuXCIpLFxuICAgIGxhc3RfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkl0ZW0gaWQgdGhhdCB0aGUgbmV4dCBwYWdlIHN0YXJ0cyBhZnRlci5cIiksXG4gICAgc3RhdHVzOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJDdXJyZW50IHN0YXR1cyBvZiB0aGUgY29udmVyc2F0aW9uJ3MgbGF0ZXN0IHJlc3BvbnNlLlwiKSxcbiAgfSlcbiAgLmxvb3NlKClcbiAgLmRlc2NyaWJlKFwiUGFnZSBvZiBBZ2VudCBNb2RlIGNvbnZlcnNhdGlvbiBpdGVtcy5cIik7XG5cbi8qKiBWYWxpZGF0ZWQgQWdlbnQgTW9kZSBjb252ZXJzYXRpb24gaXRlbSBwYWdlLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudENvbnZlcnNhdGlvbkl0ZW1zID0gei5pbmZlcjx0eXBlb2YgR2VuaWVBZ2VudENvbnZlcnNhdGlvbkl0ZW1zU2NoZW1hPjtcblxuLyoqIEdlbmllIEFnZW50IE1vZGUgcmVzcG9uc2UgY2FycmllZCBieSBsaWZlY3ljbGUgZXZlbnRzLiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRSZXNwb25zZVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgb2JqZWN0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbW9kZWw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBzdGF0dXM6IHouc3RyaW5nKCksXG4gICAgb3V0cHV0OiB6LmFycmF5KEdlbmllQWdlbnRPdXRwdXRJdGVtU2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIGNvbnZlcnNhdGlvbl9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNyZWF0ZWRfYXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICBlcnJvcjogei51bmtub3duKCkub3B0aW9uYWwoKSxcbiAgfSlcbiAgLmxvb3NlKCk7XG5cbi8qKiBPbmUgU1NFIGV2ZW50IGZyb20gdGhlIEdlbmllIEFnZW50IE1vZGUgcmVzcG9uc2Ugc3RyZWFtLiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRNb2RlRXZlbnRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgc2VxdWVuY2VfbnVtYmVyOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgb3V0cHV0X2luZGV4OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgcmVzcG9uc2U6IEdlbmllQWdlbnRSZXNwb25zZVNjaGVtYS5vcHRpb25hbCgpLFxuICAgIGl0ZW06IEdlbmllQWdlbnRPdXRwdXRJdGVtU2NoZW1hLm9wdGlvbmFsKCksXG4gIH0pXG4gIC5sb29zZSgpO1xuXG4vKiogVmFsaWRhdGVkIEFnZW50IE1vZGUgcmVzcG9uc2Ugb3V0cHV0IGl0ZW0uICovXG5leHBvcnQgdHlwZSBHZW5pZUFnZW50T3V0cHV0SXRlbSA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRPdXRwdXRJdGVtU2NoZW1hPjtcbi8qKiBWYWxpZGF0ZWQgQWdlbnQgTW9kZSByZXNwb25zZS4gKi9cbmV4cG9ydCB0eXBlIEdlbmllQWdlbnRSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRSZXNwb25zZVNjaGVtYT47XG4vKiogVmFsaWRhdGVkIEFnZW50IE1vZGUgU1NFIGV2ZW50LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudE1vZGVFdmVudCA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRNb2RlRXZlbnRTY2hlbWE+O1xuXG4vKiogU3RhdGVmdWwgcHVyZSByZWR1Y2VyIGZyb20gQWdlbnQgTW9kZSBTU0UgZXZlbnRzIHRvIEdlbmllIG1lc3NhZ2Ugc25hcHNob3RzLiAqL1xuZXhwb3J0IGNsYXNzIEdlbmllQWdlbnRNb2RlUHJvamVjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbXMgPSBuZXcgTWFwPHN0cmluZywgR2VuaWVBZ2VudE91dHB1dEl0ZW0+KCk7XG4gIHByaXZhdGUgcmVzcG9uc2U6IEdlbmllQWdlbnRSZXNwb25zZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNwYWNlSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZyxcbiAgKSB7fVxuXG4gIC8qKiBBcHBseSBvbmUgdmFsaWRhdGVkIFNTRSBldmVudCBhbmQgcmV0dXJuIGl0cyBwcm9qZWN0ZWQgc25hcHNob3QuICovXG4gIGFwcGx5KGV2ZW50OiBHZW5pZUFnZW50TW9kZUV2ZW50KTogR2VuaWVNZXNzYWdlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZXZlbnQucmVzcG9uc2UpIHtcbiAgICAgIHRoaXMucmVzcG9uc2UgPSBldmVudC5yZXNwb25zZTtcbiAgICAgIGlmIChldmVudC5yZXNwb25zZS5vdXRwdXQpIHtcbiAgICAgICAgdGhpcy5pdGVtcy5jbGVhcigpO1xuICAgICAgICBldmVudC5yZXNwb25zZS5vdXRwdXQuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zLnNldChhZ2VudEl0ZW1LZXkoaXRlbSwgaW5kZXgpLCBpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChldmVudC5pdGVtKSB7XG4gICAgICB0aGlzLml0ZW1zLnNldChhZ2VudEl0ZW1LZXkoZXZlbnQuaXRlbSwgZXZlbnQub3V0cHV0X2luZGV4KSwgZXZlbnQuaXRlbSk7XG4gICAgfVxuICAgIGlmICgoIWV2ZW50LnJlc3BvbnNlICYmICFldmVudC5pdGVtKSB8fCAhdGhpcy5yZXNwb25zZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcHJvamVjdEFnZW50TW9kZU1lc3NhZ2UodGhpcy5zcGFjZUlkLCB0aGlzLmNvbnRlbnQsIHRoaXMucmVzcG9uc2UsIFtcbiAgICAgIC4uLnRoaXMuaXRlbXMudmFsdWVzKCksXG4gICAgXSk7XG4gIH1cblxuICAvKiogQ3VycmVudCByZXNwb25zZSBpZCwgb25jZSBgcmVzcG9uc2UuY3JlYXRlZGAgaGFzIGFycml2ZWQuICovXG4gIGdldCByZXNwb25zZUlkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2U/LmlkO1xuICB9XG5cbiAgLyoqIEN1cnJlbnQgY29udmVyc2F0aW9uIGlkLCBvbmNlIGFzc2lnbmVkIGJ5IEdlbmllLiAqL1xuICBnZXQgY29udmVyc2F0aW9uSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZT8uY29udmVyc2F0aW9uX2lkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGxhdGVzdCByZXNwb25zZSBzdGF0dXMgaXMgdGVybWluYWwuICovXG4gIGdldCB0ZXJtaW5hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZSA/IGlzVGVybWluYWxTdGF0dXModGhpcy5yZXNwb25zZS5zdGF0dXMpIDogZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNUZXJtaW5hbFN0YXR1cyhzdGF0dXM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3RhdHVzID09PSBcImNvbXBsZXRlZFwiIHx8IHN0YXR1cyA9PT0gXCJmYWlsZWRcIiB8fCBzdGF0dXMgPT09IFwiY2FuY2VsbGVkXCI7XG59XG5cbmZ1bmN0aW9uIGFnZW50SXRlbUtleShpdGVtOiBHZW5pZUFnZW50T3V0cHV0SXRlbSwgaW5kZXg6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGl0ZW0uaWQgPT09IFwic3RyaW5nXCIpIHJldHVybiBpdGVtLmlkO1xuICBpZiAodHlwZW9mIGl0ZW0uY2FsbF9pZCA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGl0ZW0uY2FsbF9pZDtcbiAgcmV0dXJuIFN0cmluZyh0eXBlb2YgaW5kZXggPT09IFwibnVtYmVyXCIgPyBpbmRleCA6IChpdGVtLnR5cGUgPz8gXCJpdGVtXCIpKTtcbn1cblxuLyoqIFByb2plY3Qgb25lIEFnZW50IE1vZGUgcmVzcG9uc2Ugc25hcHNob3Qgb250byB0aGUgc2hhcmVkIEdlbmllIG1lc3NhZ2Ugc2hhcGUuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvamVjdEFnZW50TW9kZU1lc3NhZ2UoXG4gIHNwYWNlSWQ6IHN0cmluZyxcbiAgY29udGVudDogc3RyaW5nLFxuICByZXNwb25zZTogR2VuaWVBZ2VudFJlc3BvbnNlLFxuICBpdGVtczogR2VuaWVBZ2VudE91dHB1dEl0ZW1bXSxcbik6IEdlbmllTWVzc2FnZSB7XG4gIGNvbnN0IGVycm9yVmFsdWUgPSBvYmplY3QuaXNSZWNvcmQocmVzcG9uc2UuZXJyb3IpID8gcmVzcG9uc2UuZXJyb3IgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgdHlwZW9mIGVycm9yVmFsdWU/Lm1lc3NhZ2UgPT09IFwic3RyaW5nXCJcbiAgICAgID8gZXJyb3JWYWx1ZS5tZXNzYWdlXG4gICAgICA6IHR5cGVvZiByZXNwb25zZS5lcnJvciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IHJlc3BvbnNlLmVycm9yXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBtZXNzYWdlSWQgPSBpdGVtcy5tYXAoaXRlbU1lc3NhZ2VJZCkuZmluZCgoaWQpID0+IGlkICE9PSB1bmRlZmluZWQpID8/IHJlc3BvbnNlLmlkO1xuICByZXR1cm4gR2VuaWVNZXNzYWdlU2NoZW1hLnBhcnNlKHtcbiAgICBpZDogbWVzc2FnZUlkLFxuICAgIG1lc3NhZ2VfaWQ6IG1lc3NhZ2VJZCxcbiAgICBzcGFjZV9pZDogc3BhY2VJZCxcbiAgICBjb252ZXJzYXRpb25faWQ6IHJlc3BvbnNlLmNvbnZlcnNhdGlvbl9pZCA/PyBcIlwiLFxuICAgIGNvbnRlbnQsXG4gICAgc3RhdHVzOiBhZ2VudE1vZGVTdGF0dXMocmVzcG9uc2Uuc3RhdHVzLCBpdGVtcyksXG4gICAgYXR0YWNobWVudHM6IHdpdGhTdGF0ZW1lbnRJZHMoaXRlbXMuZmxhdE1hcChpdGVtQXR0YWNobWVudHMpLCBpdGVtcyksXG4gICAgLi4uKHJlc3BvbnNlLmNyZWF0ZWRfYXQgIT09IHVuZGVmaW5lZCA/IHsgY3JlYXRlZF90aW1lc3RhbXA6IHJlc3BvbnNlLmNyZWF0ZWRfYXQgfSA6IHt9KSxcbiAgICAuLi4oZXJyb3JNZXNzYWdlID8geyBlcnJvcjogeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0gfSA6IHt9KSxcbiAgfSk7XG59XG5cbi8qKlxuICogUHJvamVjdCBhbiBBZ2VudCBNb2RlIGNvbnZlcnNhdGlvbidzIGl0ZW0gaGlzdG9yeSBvbnRvIG9uZSBHZW5pZSBtZXNzYWdlIHBlclxuICogdHVybi4gSXRlbXMgYXJlIGdyb3VwZWQgYnkgdGhlaXIgYG1ldGFkYXRhLm1lc3NhZ2VfaWRgOyBlYWNoIHR1cm4ncyB1c2VyXG4gKiBgbWVzc2FnZWAgaXRlbSBzdXBwbGllcyB0aGUgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9qZWN0QWdlbnRNb2RlQ29udmVyc2F0aW9uKFxuICBzcGFjZUlkOiBzdHJpbmcsXG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gIGl0ZW1zOiBHZW5pZUFnZW50T3V0cHV0SXRlbVtdLFxuICBzdGF0dXMgPSBcImNvbXBsZXRlZFwiLFxuKTogR2VuaWVNZXNzYWdlW10ge1xuICBjb25zdCB0dXJuczogQXJyYXk8e1xuICAgIG1lc3NhZ2VJZDogc3RyaW5nO1xuICAgIHF1ZXN0aW9uOiBHZW5pZUFnZW50T3V0cHV0SXRlbTtcbiAgICBpdGVtczogR2VuaWVBZ2VudE91dHB1dEl0ZW1bXTtcbiAgfT4gPSBbXTtcbiAgbGV0IGN1cnJlbnQ6ICh0eXBlb2YgdHVybnMpW251bWJlcl0gfCB1bmRlZmluZWQ7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgIGlmIChpdGVtLnR5cGUgPT09IFwibWVzc2FnZVwiICYmIGl0ZW0ucm9sZSA9PT0gXCJ1c2VyXCIpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9XG4gICAgICAgIGl0ZW1NZXNzYWdlSWQoaXRlbSkgPz9cbiAgICAgICAgKGl0ZW0uaWQ/LmVuZHNXaXRoKFwiX2lucHV0XCIpID8gaXRlbS5pZC5zbGljZSgwLCAtXCJfaW5wdXRcIi5sZW5ndGgpIDogaXRlbS5pZCk7XG4gICAgICBpZiAoIW1lc3NhZ2VJZCkgY29udGludWU7XG4gICAgICBjdXJyZW50ID0geyBtZXNzYWdlSWQsIHF1ZXN0aW9uOiBpdGVtLCBpdGVtczogW10gfTtcbiAgICAgIHR1cm5zLnB1c2goY3VycmVudCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY3VycmVudD8uaXRlbXMucHVzaChpdGVtKTtcbiAgfVxuICByZXR1cm4gdHVybnMubWFwKCh0dXJuLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGZhaWxlZCA9IHR1cm4uaXRlbXMuc29tZSgoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09IFwiZmFpbGVkXCIpO1xuICAgIGNvbnN0IHR1cm5TdGF0dXMgPSBmYWlsZWQgPyBcImZhaWxlZFwiIDogaW5kZXggPT09IHR1cm5zLmxlbmd0aCAtIDEgPyBzdGF0dXMgOiBcImNvbXBsZXRlZFwiO1xuICAgIHJldHVybiBwcm9qZWN0QWdlbnRNb2RlTWVzc2FnZShcbiAgICAgIHNwYWNlSWQsXG4gICAgICBjb250ZW50VGV4dCh0dXJuLnF1ZXN0aW9uLmNvbnRlbnQsIFwiaW5wdXRfdGV4dFwiKS5qb2luKFwiXFxuXCIpLFxuICAgICAge1xuICAgICAgICBpZDogdHVybi5tZXNzYWdlSWQsXG4gICAgICAgIHN0YXR1czogdHVyblN0YXR1cyxcbiAgICAgICAgY29udmVyc2F0aW9uX2lkOiBjb252ZXJzYXRpb25JZCxcbiAgICAgICAgLi4uKHR1cm4ucXVlc3Rpb24uY3JlYXRlZF9hdCAhPT0gdW5kZWZpbmVkID8geyBjcmVhdGVkX2F0OiB0dXJuLnF1ZXN0aW9uLmNyZWF0ZWRfYXQgfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICB0dXJuLml0ZW1zLFxuICAgICk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpdGVtTWV0YWRhdGEoaXRlbTogR2VuaWVBZ2VudE91dHB1dEl0ZW0pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvYmplY3QuaXNSZWNvcmQoaXRlbS5tZXRhZGF0YSkgPyBpdGVtLm1ldGFkYXRhIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpdGVtTWVzc2FnZUlkKGl0ZW06IEdlbmllQWdlbnRPdXRwdXRJdGVtKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWVzc2FnZUlkID0gaXRlbU1ldGFkYXRhKGl0ZW0pPy5tZXNzYWdlX2lkO1xuICByZXR1cm4gdHlwZW9mIG1lc3NhZ2VJZCA9PT0gXCJzdHJpbmdcIiA/IG1lc3NhZ2VJZCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqIENvcHkgZWFjaCBxdWVyeSBvdXRwdXQncyBgc3RhdGVtZW50X2lkYCBvbnRvIHRoZSBxdWVyeSBhdHRhY2htZW50IGl0IGFuc3dlcnMuICovXG5mdW5jdGlvbiB3aXRoU3RhdGVtZW50SWRzKFxuICBhdHRhY2htZW50czogR2VuaWVBdHRhY2htZW50W10sXG4gIGl0ZW1zOiBHZW5pZUFnZW50T3V0cHV0SXRlbVtdLFxuKTogR2VuaWVBdHRhY2htZW50W10ge1xuICBjb25zdCBzdGF0ZW1lbnRzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50SWQgPSBpdGVtTWV0YWRhdGEoaXRlbSk/LnN0YXRlbWVudF9pZDtcbiAgICBpZiAoaXRlbS50eXBlID09PSBcImZ1bmN0aW9uX2NhbGxfb3V0cHV0XCIgJiYgaXRlbS5jYWxsX2lkICYmIHR5cGVvZiBzdGF0ZW1lbnRJZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc3RhdGVtZW50cy5zZXQoaXRlbS5jYWxsX2lkLCBzdGF0ZW1lbnRJZCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBhdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQpID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRJZCA9IGF0dGFjaG1lbnQucXVlcnkgJiYgc3RhdGVtZW50cy5nZXQoYXR0YWNobWVudC5hdHRhY2htZW50X2lkID8/IFwiXCIpO1xuICAgIHJldHVybiBzdGF0ZW1lbnRJZCAmJiBhdHRhY2htZW50LnF1ZXJ5XG4gICAgICA/IHsgLi4uYXR0YWNobWVudCwgcXVlcnk6IHsgLi4uYXR0YWNobWVudC5xdWVyeSwgc3RhdGVtZW50X2lkOiBzdGF0ZW1lbnRJZCB9IH1cbiAgICAgIDogYXR0YWNobWVudDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFnZW50TW9kZVN0YXR1cyh2YWx1ZTogc3RyaW5nLCBpdGVtczogR2VuaWVBZ2VudE91dHB1dEl0ZW1bXSk6IEdlbmllTWVzc2FnZVtcInN0YXR1c1wiXSB7XG4gIGlmICh2YWx1ZSA9PT0gXCJjb21wbGV0ZWRcIikgcmV0dXJuIFwiQ09NUExFVEVEXCI7XG4gIGlmICh2YWx1ZSA9PT0gXCJmYWlsZWRcIikgcmV0dXJuIFwiRkFJTEVEXCI7XG4gIGlmICh2YWx1ZSA9PT0gXCJjYW5jZWxsZWRcIikgcmV0dXJuIFwiQ0FOQ0VMTEVEXCI7XG4gIGlmIChpdGVtcy5zb21lKChpdGVtKSA9PiBpdGVtLnR5cGUgPT09IFwiZnVuY3Rpb25fY2FsbFwiKSkgcmV0dXJuIFwiRVhFQ1VUSU5HX1FVRVJZXCI7XG4gIHJldHVybiBcIkFTS0lOR19BSVwiO1xufVxuXG5mdW5jdGlvbiBpdGVtQXR0YWNobWVudHMoaXRlbTogR2VuaWVBZ2VudE91dHB1dEl0ZW0pOiBHZW5pZUF0dGFjaG1lbnRbXSB7XG4gIGNvbnN0IGlkID0gaXRlbS5pZCA/PyBpdGVtLmNhbGxfaWQ7XG4gIGlmIChpdGVtLnR5cGUgPT09IFwicmVhc29uaW5nXCIpIHtcbiAgICBjb25zdCB0aG91Z2h0cyA9IGNvbnRlbnRUZXh0KGl0ZW0uY29udGVudCwgXCJyZWFzb25pbmdfdGV4dFwiKS5tYXAoXG4gICAgICAodGhvdWdodENvbnRlbnQpOiBHZW5pZVRob3VnaHQgPT4gKHtcbiAgICAgICAgdGhvdWdodF90eXBlOiBcIlRIT1VHSFRfVFlQRV9TVEVQU1wiLFxuICAgICAgICBjb250ZW50OiB0aG91Z2h0Q29udGVudCxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIHRob3VnaHRzLmxlbmd0aCA9PT0gMFxuICAgICAgPyBbXVxuICAgICAgOiBbeyBhdHRhY2htZW50X2lkOiBpZCwgYXR0YWNobWVudF90eXBlOiBcInF1ZXJ5XCIsIHF1ZXJ5OiB7IGlkLCB0aG91Z2h0cyB9IH1dO1xuICB9XG4gIGlmIChpdGVtLnR5cGUgPT09IFwiZnVuY3Rpb25fY2FsbFwiKSB7XG4gICAgY29uc3QgY2FsbElkID0gaXRlbS5jYWxsX2lkID8/IGl0ZW0uaWQ7XG4gICAgY29uc3QgYXJndW1lbnRzVmFsdWUgPSBqc29uLnBhcnNlUmVjb3JkKGl0ZW0uYXJndW1lbnRzKTtcbiAgICBjb25zdCBxdWVyeSA9XG4gICAgICB0eXBlb2YgYXJndW1lbnRzVmFsdWU/LnNxbCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGFyZ3VtZW50c1ZhbHVlLnNxbFxuICAgICAgICA6IHR5cGVvZiBhcmd1bWVudHNWYWx1ZT8ucXVlcnkgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IGFyZ3VtZW50c1ZhbHVlLnF1ZXJ5XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGl0bGUgPSB0eXBlb2YgYXJndW1lbnRzVmFsdWU/LnRpdGxlID09PSBcInN0cmluZ1wiID8gYXJndW1lbnRzVmFsdWUudGl0bGUgOiBpdGVtLm5hbWU7XG4gICAgcmV0dXJuIHF1ZXJ5XG4gICAgICA/IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhdHRhY2htZW50X2lkOiBjYWxsSWQsXG4gICAgICAgICAgICBhdHRhY2htZW50X3R5cGU6IFwicXVlcnlcIixcbiAgICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICAgIGlkOiBjYWxsSWQsXG4gICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAuLi4odGl0bGUgPyB7IHRpdGxlIH0gOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW107XG4gIH1cbiAgaWYgKGl0ZW0udHlwZSA9PT0gXCJmdW5jdGlvbl9jYWxsX291dHB1dFwiICYmIGl0ZW0ub3V0cHV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCB2aXogPSBpdGVtTWV0YWRhdGEoaXRlbSk/LnZpejtcbiAgICBpZiAob2JqZWN0LmlzUmVjb3JkKHZpeikgJiYgdHlwZW9mIHZpei5hdHRhY2htZW50X2lkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgYXR0YWNobWVudF9pZDogdml6LmF0dGFjaG1lbnRfaWQsXG4gICAgICAgICAgYXR0YWNobWVudF90eXBlOiBcInZpelwiLFxuICAgICAgICAgIHZpejoge1xuICAgICAgICAgICAgLi4uKGl0ZW0ub3V0cHV0ID8geyB0aXRsZTogaXRlbS5vdXRwdXQgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLih0eXBlb2Ygdml6LnF1ZXJ5X2F0dGFjaG1lbnRfaWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyB7IHF1ZXJ5X2F0dGFjaG1lbnRfaWQ6IHZpei5xdWVyeV9hdHRhY2htZW50X2lkIH1cbiAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBbdGV4dEF0dGFjaG1lbnQoaWQsIGl0ZW0ub3V0cHV0LCBpdGVtLm1ldGFkYXRhKV07XG4gIH1cbiAgaWYgKGl0ZW0udHlwZSA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICByZXR1cm4gKGl0ZW0uY29udGVudCA/PyBbXSkuZmxhdE1hcCgocGFydCkgPT5cbiAgICAgIHBhcnQudHlwZSA9PT0gXCJvdXRwdXRfdGV4dFwiICYmXG4gICAgICAocGFydC50ZXh0ICE9PSB1bmRlZmluZWQgfHwgdmlzdWFsaXphdGlvbkF0dGFjaG1lbnRJZChwYXJ0Lm1ldGFkYXRhKSlcbiAgICAgICAgPyBbdGV4dEF0dGFjaG1lbnQoaWQsIHBhcnQudGV4dCA/PyBcIlwiLCBwYXJ0Lm1ldGFkYXRhKV1cbiAgICAgICAgOiBbXSxcbiAgICApO1xuICB9XG4gIHJldHVybiBbXTtcbn1cblxuZnVuY3Rpb24gdmlzdWFsaXphdGlvbkF0dGFjaG1lbnRJZChtZXRhZGF0YTogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghb2JqZWN0LmlzUmVjb3JkKG1ldGFkYXRhKSB8fCAhb2JqZWN0LmlzUmVjb3JkKG1ldGFkYXRhLnZpeikpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiB0eXBlb2YgbWV0YWRhdGEudml6LmF0dGFjaG1lbnRfaWQgPT09IFwic3RyaW5nXCIgPyBtZXRhZGF0YS52aXouYXR0YWNobWVudF9pZCA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY29udGVudFRleHQoXG4gIHZhbHVlOiB6LmluZmVyPHR5cGVvZiBHZW5pZUFnZW50Q29udGVudFNjaGVtYT5bXSB8IHVuZGVmaW5lZCxcbiAgdHlwZTogc3RyaW5nLFxuKTogc3RyaW5nW10ge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gW107XG4gIHJldHVybiB2YWx1ZS5mbGF0TWFwKChwYXJ0KSA9PiAocGFydC50eXBlID09PSB0eXBlICYmIHBhcnQudGV4dCA/IFtwYXJ0LnRleHRdIDogW10pKTtcbn1cblxuZnVuY3Rpb24gdGV4dEF0dGFjaG1lbnQoXG4gIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgbWV0YWRhdGE/OiB1bmtub3duLFxuKTogR2VuaWVBdHRhY2htZW50IHtcbiAgcmV0dXJuIHtcbiAgICBhdHRhY2htZW50X2lkOiBpZCxcbiAgICBhdHRhY2htZW50X3R5cGU6IFwidGV4dFwiLFxuICAgIHRleHQ6IHtcbiAgICAgIGlkLFxuICAgICAgY29udGVudCxcbiAgICAgIHB1cnBvc2U6IFwiVEVYVF9BVFRBQ0hNRU5UX1BVUlBPU0VfQU5TV0VSXCIsXG4gICAgICAuLi4obWV0YWRhdGEgIT09IHVuZGVmaW5lZCA/IHsgbWV0YWRhdGEgfSA6IHt9KSxcbiAgICB9LFxuICB9O1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"typescript": "^5.9.3"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
26
|
+
"@dbx-tools/shared-core": "^0.9.133",
|
|
27
27
|
"zod": "4.3.6"
|
|
28
28
|
},
|
|
29
29
|
"main": "./lib/index.js",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"./package.json": "./package.json"
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
|
-
"version": "0.9.
|
|
63
|
+
"version": "0.9.133",
|
|
64
64
|
"types": "./lib/index.d.ts",
|
|
65
65
|
"dbxToolsConfig": {
|
|
66
66
|
"tags": [
|
package/src/agent-mode.ts
CHANGED
|
@@ -313,14 +313,20 @@ function itemAttachments(item: GenieAgentOutputItem): GenieAttachment[] {
|
|
|
313
313
|
}
|
|
314
314
|
if (item.type === "message") {
|
|
315
315
|
return (item.content ?? []).flatMap((part) =>
|
|
316
|
-
part.type === "output_text" &&
|
|
317
|
-
|
|
316
|
+
part.type === "output_text" &&
|
|
317
|
+
(part.text !== undefined || visualizationAttachmentId(part.metadata))
|
|
318
|
+
? [textAttachment(id, part.text ?? "", part.metadata)]
|
|
318
319
|
: [],
|
|
319
320
|
);
|
|
320
321
|
}
|
|
321
322
|
return [];
|
|
322
323
|
}
|
|
323
324
|
|
|
325
|
+
function visualizationAttachmentId(metadata: unknown): string | undefined {
|
|
326
|
+
if (!object.isRecord(metadata) || !object.isRecord(metadata.viz)) return undefined;
|
|
327
|
+
return typeof metadata.viz.attachment_id === "string" ? metadata.viz.attachment_id : undefined;
|
|
328
|
+
}
|
|
329
|
+
|
|
324
330
|
function contentText(
|
|
325
331
|
value: z.infer<typeof GenieAgentContentSchema>[] | undefined,
|
|
326
332
|
type: string,
|