@dbx-tools/shared-genie 0.4.0 → 0.5.0
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 +5 -5
- package/lib/index.d.ts +5 -5
- package/lib/index.js +1 -1
- package/lib/src/event.d.ts +1 -1
- package/lib/src/event.js +1 -1
- package/package.json +3 -3
- package/src/event.ts +1 -1
package/index.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
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
|
|
|
5
|
-
export * as event from "./src/event";
|
|
6
|
-
export * as genieModel from "./src/genie-model";
|
|
7
|
-
export { eventDetector, detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions, eventsFromMessage } from "./src/event";
|
|
8
|
-
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, isTerminalStatus, humanizeStatus, detectAttachmentType, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model";
|
|
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";
|
|
5
|
+
export * as event from "./src/event.ts";
|
|
6
|
+
export * as genieModel from "./src/genie-model.ts";
|
|
7
|
+
export { eventDetector, detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions, eventsFromMessage } from "./src/event.ts";
|
|
8
|
+
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, isTerminalStatus, humanizeStatus, detectAttachmentType, 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";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as event from "./src/event.
|
|
2
|
-
export * as genieModel from "./src/genie-model.
|
|
3
|
-
export { eventDetector, detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions, eventsFromMessage } from "./src/event.
|
|
4
|
-
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, isTerminalStatus, humanizeStatus, detectAttachmentType, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.
|
|
5
|
-
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.
|
|
1
|
+
export * as event from "./src/event.ts";
|
|
2
|
+
export * as genieModel from "./src/genie-model.ts";
|
|
3
|
+
export { eventDetector, detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions, eventsFromMessage } from "./src/event.ts";
|
|
4
|
+
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, isTerminalStatus, humanizeStatus, detectAttachmentType, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
|
|
5
|
+
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";
|
package/lib/index.js
CHANGED
|
@@ -5,4 +5,4 @@ export * as event from "./src/event.js";
|
|
|
5
5
|
export * as genieModel from "./src/genie-model.js";
|
|
6
6
|
export { eventDetector, detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions, eventsFromMessage } from "./src/event.js";
|
|
7
7
|
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, isTerminalStatus, humanizeStatus, detectAttachmentType, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.js";
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZNLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSwwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0ICogYXMgZXZlbnQgZnJvbSBcIi4vc3JjL2V2ZW50LnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZU1vZGVsIGZyb20gXCIuL3NyYy9nZW5pZS1tb2RlbC50c1wiO1xuZXhwb3J0IHsgZXZlbnREZXRlY3RvciwgZGV0ZWN0U3RhdHVzLCBkZXRlY3RBdHRhY2htZW50QWRkZWQsIGRldGVjdFRoaW5raW5nLCBkZXRlY3RUZXh0LCBkZXRlY3RRdWVyeSwgZGV0ZWN0U3RhdGVtZW50LCBkZXRlY3RSb3dzLCBkZXRlY3RTdWdnZXN0ZWRRdWVzdGlvbnMsIGV2ZW50c0Zyb21NZXNzYWdlIH0gZnJvbSBcIi4vc3JjL2V2ZW50LnRzXCI7XG5leHBvcnQgeyBNZXNzYWdlU3RhdHVzU2NoZW1hLCBHZW5pZVRob3VnaHRTY2hlbWEsIEFUVEFDSE1FTlRfVFlQRVMsIEdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLCBHZW5pZUF0dGFjaG1lbnRTY2hlbWEsIEdlbmllTWVzc2FnZVNjaGVtYSwgR2VuaWVSZXNwb25zZVNjaGVtYSwgR2VuaWVTcGFjZVNjaGVtYSwgVEVSTUlOQUxfU1RBVFVTRVMsIGlzVGVybWluYWxTdGF0dXMsIGh1bWFuaXplU3RhdHVzLCBkZXRlY3RBdHRhY2htZW50VHlwZSwgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEsIFF1ZXN0aW9uRXZlbnRTY2hlbWEsIE1lc3NhZ2VFdmVudFNjaGVtYSwgU3RhdHVzRXZlbnRTY2hlbWEsIEF0dGFjaG1lbnRFdmVudFNjaGVtYSwgVGhpbmtpbmdFdmVudFNjaGVtYSwgVGV4dEV2ZW50U2NoZW1hLCBRdWVyeUV2ZW50U2NoZW1hLCBTdGF0ZW1lbnRFdmVudFNjaGVtYSwgUm93c0V2ZW50U2NoZW1hLCBTdWdnZXN0ZWRRdWVzdGlvbnNFdmVudFNjaGVtYSwgUmVzdWx0RXZlbnRTY2hlbWEsIEdlbmllQ2hhdEV2ZW50U2NoZW1hIH0gZnJvbSBcIi4vc3JjL2dlbmllLW1vZGVsLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1lc3NhZ2VTdGF0dXMsIEdlbmllVGhvdWdodFR5cGUsIEdlbmllVGhvdWdodCwgS25vd25BdHRhY2htZW50VHlwZSwgQXR0YWNobWVudFR5cGUsIEdlbmllUXVlcnlBdHRhY2htZW50LCBHZW5pZUF0dGFjaG1lbnQsIEdlbmllTWVzc2FnZSwgR2VuaWVSZXNwb25zZSwgR2VuaWVTcGFjZSwgVGVybWluYWxTdGF0dXMsIEdlbmllQ2hhdExvY2F0aW9uLCBRdWVzdGlvbkV2ZW50LCBNZXNzYWdlRXZlbnQsIFN0YXR1c0V2ZW50LCBBdHRhY2htZW50RXZlbnQsIFRoaW5raW5nRXZlbnQsIFRleHRFdmVudCwgUXVlcnlFdmVudCwgU3RhdGVtZW50RXZlbnQsIFJvd3NFdmVudCwgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnQsIFJlc3VsdEV2ZW50LCBHZW5pZUNoYXRFdmVudCwgR2VuaWVDaGF0RXZlbnRUeXBlLCBHZW5pZUNoYXRFdmVudEZpZWxkcyB9IGZyb20gXCIuL3NyYy9nZW5pZS1tb2RlbC50c1wiO1xuIl19
|
package/lib/src/event.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*
|
|
25
25
|
* @module
|
|
26
26
|
*/
|
|
27
|
-
import { type GenieAttachment, type GenieChatEvent, type GenieChatEventFields, type GenieChatEventType, type GenieChatLocation, type GenieMessage } from "./genie-model.
|
|
27
|
+
import { type GenieAttachment, type GenieChatEvent, type GenieChatEventFields, type GenieChatEventType, type GenieChatLocation, type GenieMessage } from "./genie-model.ts";
|
|
28
28
|
/**
|
|
29
29
|
* What a single detector call returns: zero (`undefined`), one
|
|
30
30
|
* (fields object), or many (`fields[]`) events of the same type.
|
package/lib/src/event.js
CHANGED
|
@@ -245,4 +245,4 @@ function matchPrevAttachment(curr, prevAtts, i) {
|
|
|
245
245
|
function thoughtKey(t) {
|
|
246
246
|
return `${t.thought_type}|${t.content}`;
|
|
247
247
|
}
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEQsT0FBTyxFQUNMLG9CQUFvQixHQVFyQixNQUFNLGVBQWUsQ0FBQztBQXVFdkIsc0VBQXNFO0FBRXRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixJQUFPLEVBQ1AsTUFBbUI7SUFFbkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMxQixDQUFDO0FBRUQseUVBQXlFO0FBRXpFLCtDQUErQztBQUMvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUU7SUFDbEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsTUFBTTtRQUFFLE9BQU87SUFDbkUsT0FBTztRQUNMLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU07UUFDakMsUUFBUTtRQUNSLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtRQUN4QyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7S0FDL0IsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FDaEQsWUFBWSxFQUNaLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDckMsSUFBSSxRQUFRO1FBQUUsT0FBTztJQUNyQixPQUFPO1FBQ0wsR0FBRyxR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LENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7QUFDSCxDQUFDO0FBRUQseUVBQXlFO0FBRXpFOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixJQUFxQixFQUNyQixRQUEyQixFQUMzQixDQUFTO0lBRVQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0MsQ0FBQztBQUVELG9FQUFvRTtBQUNwRSxTQUFTLFVBQVUsQ0FBQyxDQUFlO0lBQ2pDLE9BQU8sR0FBRyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQdXJlIGV2ZW50LWRldGVjdGlvbiBmb3IgYGdlbmllRXZlbnRDaGF0YC4gR2l2ZW4gdHdvXG4gKiBgR2VuaWVNZXNzYWdlYCBzbmFwc2hvdHMgKGN1cnJlbnQgKyBwcmlvcikgYW5kIHRoZSBzdXJyb3VuZGluZ1xuICogYHNwYWNlX2lkYCwgZGVyaXZlIHRoZSBzZW1hbnRpYyBkZWx0YXMgKHN0YXR1cyB0cmFuc2l0aW9ucywgbmV3XG4gKiBhdHRhY2htZW50cywgbmV3IHRob3VnaHRzLCBTUUwgZW1pc3Npb24sIHdhcmVob3VzZSBzdWJtaXNzaW9uLFxuICogcm93LWNvdW50IHByb2dyZXNzLCBmb2xsb3ctdXAgc3VnZ2VzdGlvbnMsIHRleHQgZGVsdGFzKSBhbmRcbiAqIHlpZWxkIHRoZW0gYXMgdHlwZWQge0BsaW5rIEdlbmllQ2hhdEV2ZW50fXMuXG4gKlxuICogRGV0ZWN0b3JzIGFyZSBidWlsdCB0aHJvdWdoIGEgc2luZ2xlIHR5cGVkIGZhY3RvcnkgdGhhdCB0aWVzXG4gKiBlYWNoIGV2ZW50J3MgbmFtZSB0byBpdHMgc2NvcGUgKHdob2xlLW1lc3NhZ2UgdnMgcGVyLWF0dGFjaG1lbnQpXG4gKiBhbmQgcGF5bG9hZCBzaGFwZSwgc28gYSBtaXNuYW1lZCBldmVudCBvciBhIHBheWxvYWQgdGhhdCBkb2Vzbid0XG4gKiBtYXRjaCBpdHMgZXZlbnQgZmFpbHMgdG8gY29tcGlsZS4gQW4gb3JjaGVzdHJhdG9yIHdhbGtzIHRoZVxuICogc25hcHNob3QgZGlmZiBhbmQgeWllbGRzIGV2ZXJ5IGRldGVjdG9yIHRoYXQgZmlyZXMgaW4gYSBzdGFibGVcbiAqIG9yZGVyIChzdGF0dXMgZmlyc3QsIHRoZW4gcGVyLWF0dGFjaG1lbnQgZmllbGQgZGVsdGFzKSBzbyBhXG4gKiBzdWJzY3JpYmVyIHRoYXQgbG9ncyBldmVudHMgYXMgdGhleSBhcnJpdmUgc2VlcyBhIHNlbnNpYmxlXG4gKiBzZXF1ZW5jZS5cbiAqXG4gKiBUaGUgbW9kdWxlIGlzIGludGVudGlvbmFsbHkgcHVyZTogbm8gYEV2ZW50RW1pdHRlcmAsIG5vIGB0aGlzYCxcbiAqIG5vIEkvTywgbm8gbW9kdWxlLWxldmVsIG11dGFibGUgc3RhdGUuIFRoZSBgbWVzc2FnZWAgYW5kXG4gKiBgcmVzdWx0YCBldmVudHMgYXJlIE5PVCBkZXJpdmVkIGhlcmUgLSB0aGV5IGJlbG9uZyB0byB0aGUgY2hhdFxuICogbGlmZWN5Y2xlIGxheWVyICh0aGUgYGdlbmllRXZlbnRDaGF0YCBkcml2ZXIpIGJlY2F1c2UgdGhleSB0cmFja1xuICogcGVyLXlpZWxkIC8gcGVyLXR1cm4tY29tcGxldGlvbiBzZW1hbnRpY3MgcmF0aGVyIHRoYW4gYVxuICogZmllbGQtbGV2ZWwgc25hcHNob3QgZGlmZi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb2JqZWN0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcblxuaW1wb3J0IHtcbiAgZGV0ZWN0QXR0YWNobWVudFR5cGUsXG4gIHR5cGUgR2VuaWVBdHRhY2htZW50LFxuICB0eXBlIEdlbmllQ2hhdEV2ZW50LFxuICB0eXBlIEdlbmllQ2hhdEV2ZW50RmllbGRzLFxuICB0eXBlIEdlbmllQ2hhdEV2ZW50VHlwZSxcbiAgdHlwZSBHZW5pZUNoYXRMb2NhdGlvbixcbiAgdHlwZSBHZW5pZU1lc3NhZ2UsXG4gIHR5cGUgR2VuaWVUaG91Z2h0LFxufSBmcm9tIFwiLi9nZW5pZS1tb2RlbFwiO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjb250cmFjdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogV2hhdCBhIHNpbmdsZSBkZXRlY3RvciBjYWxsIHJldHVybnM6IHplcm8gKGB1bmRlZmluZWRgKSwgb25lXG4gKiAoZmllbGRzIG9iamVjdCksIG9yIG1hbnkgKGBmaWVsZHNbXWApIGV2ZW50cyBvZiB0aGUgc2FtZSB0eXBlLlxuICogRWFjaCByZXN1bHQgaXMgdGhlIHZhcmlhbnQncyBwYXlsb2FkIGZpZWxkcyAqKndpdGhvdXQqKiB0aGVcbiAqIGB0eXBlYCBkaXNjcmltaW5hdG9yIC0gdGhlIG9yY2hlc3RyYXRvciBzdGFtcHMgYHR5cGVgIHdoZW4gaXRcbiAqIHlpZWxkcyB0aGUgZXZlbnQuXG4gKi9cbnR5cGUgRGV0ZWN0b3JSZXN1bHQ8VCBleHRlbmRzIEdlbmllQ2hhdEV2ZW50VHlwZT4gPVxuICBHZW5pZUNoYXRFdmVudEZpZWxkczxUPiB8IEdlbmllQ2hhdEV2ZW50RmllbGRzPFQ+W10gfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogV2hlcmUgaW4gdGhlIHdpcmUgc2hhcGUgYSBnaXZlbiBldmVudCBpcyBkZXJpdmVkIGZyb20uIERyaXZlc1xuICogd2hpY2ggYXJndW1lbnRzIGBkZXRlY3RgIHJlY2VpdmVzLiBgXCJtZXNzYWdlXCJgIGV2ZW50cyB3YXRjaFxuICogYEdlbmllTWVzc2FnZWAgaXRzZWxmOyBgXCJhdHRhY2htZW50XCJgIGV2ZW50cyB3YXRjaCBvbmUgc2xvdCBvZlxuICogYG1lc3NhZ2UuYXR0YWNobWVudHNbXWAuIGBcImxpZmVjeWNsZVwiYCBldmVudHMgKGBtZXNzYWdlYCxcbiAqIGByZXN1bHRgKSBhcmUgZW1pdHRlZCBieSB0aGUgY2hhdCBkcml2ZXIgZGlyZWN0bHkgYW5kIGNhbid0IGJlXG4gKiBidWlsdCB3aXRoIHtAbGluayBldmVudERldGVjdG9yfSAtIHRoZXkgaGF2ZSBubyBkaWZmIHNpZ25hdHVyZS5cbiAqL1xuaW50ZXJmYWNlIERldGVjdG9yU2NvcGUge1xuICAvLyBNZXNzYWdlLXNjb3BlZDogdG9wLWxldmVsIGZpZWxkIGRpZmYgb24gYEdlbmllTWVzc2FnZWAuXG4gIHN0YXR1czogXCJtZXNzYWdlXCI7XG4gIC8vIFBlci1hdHRhY2htZW50OiBmaWVsZCBkaWZmIG9uIG9uZSBgR2VuaWVBdHRhY2htZW50YCBzbG90LlxuICBhdHRhY2htZW50OiBcImF0dGFjaG1lbnRcIjtcbiAgdGhpbmtpbmc6IFwiYXR0YWNobWVudFwiO1xuICB0ZXh0OiBcImF0dGFjaG1lbnRcIjtcbiAgcXVlcnk6IFwiYXR0YWNobWVudFwiO1xuICBzdGF0ZW1lbnQ6IFwiYXR0YWNobWVudFwiO1xuICByb3dzOiBcImF0dGFjaG1lbnRcIjtcbiAgc3VnZ2VzdGVkX3F1ZXN0aW9uczogXCJhdHRhY2htZW50XCI7XG4gIC8vIExpZmVjeWNsZTogbm90IGRlcml2ZWQgdmlhIGRpZmYsIGhhbmRsZWQgYnkgdGhlIGNoYXQgZHJpdmVyLlxuICBxdWVzdGlvbjogXCJsaWZlY3ljbGVcIjtcbiAgbWVzc2FnZTogXCJsaWZlY3ljbGVcIjtcbiAgcmVzdWx0OiBcImxpZmVjeWNsZVwiO1xufVxuXG4vKipcbiAqIGBkZXRlY3RgIGNhbGxiYWNrIHNpZ25hdHVyZSBmb3IgYSBnaXZlbiBldmVudCB0eXBlLiBSZXNvbHZlZFxuICogZnJvbSB7QGxpbmsgRGV0ZWN0b3JTY29wZX06IGBcIm1lc3NhZ2VcImAgZXZlbnRzIGdldCB0aGUgdG9wLWxldmVsXG4gKiBzbmFwc2hvdCB0cmlwbGUsIGBcImF0dGFjaG1lbnRcImAgZXZlbnRzIGdldCB0aGUgcGVyLXNsb3QgcXVhZCxcbiAqIGBcImxpZmVjeWNsZVwiYCBldmVudHMgcmVzb2x2ZSB0byBgbmV2ZXJgIChubyBkaWZmLWJhc2VkIGRldGVjdG9yXG4gKiBleGlzdHMgZm9yIHRoZW0pLlxuICovXG50eXBlIERldGVjdEZuPFQgZXh0ZW5kcyBHZW5pZUNoYXRFdmVudFR5cGU+ID0gRGV0ZWN0b3JTY29wZVtUXSBleHRlbmRzIFwibWVzc2FnZVwiXG4gID8gKFxuICAgICAgY3VycmVudDogR2VuaWVNZXNzYWdlLFxuICAgICAgcHJldmlvdXM6IEdlbmllTWVzc2FnZSB8IHVuZGVmaW5lZCxcbiAgICAgIHNwYWNlX2lkOiBzdHJpbmcsXG4gICAgKSA9PiBEZXRlY3RvclJlc3VsdDxUPlxuICA6IERldGVjdG9yU2NvcGVbVF0gZXh0ZW5kcyBcImF0dGFjaG1lbnRcIlxuICAgID8gKFxuICAgICAgICBjdXJyZW50OiBHZW5pZUF0dGFjaG1lbnQsXG4gICAgICAgIHByZXZpb3VzOiBHZW5pZUF0dGFjaG1lbnQgfCB1bmRlZmluZWQsXG4gICAgICAgIGxvY2F0aW9uOiBHZW5pZUNoYXRMb2NhdGlvbixcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgICkgPT4gRGV0ZWN0b3JSZXN1bHQ8VD5cbiAgICA6IG5ldmVyO1xuXG4vKipcbiAqIFR5cGVkIGRldGVjdG9yIGZvciBvbmUgZXZlbnQgaW4gdGhlIHtAbGluayBHZW5pZUNoYXRFdmVudH1cbiAqIHVuaW9uLiBUaGUgYHR5cGVgIGZpZWxkIGlzIHRoZSBldmVudCBuYW1lOyBgZGV0ZWN0YCdzIHNpZ25hdHVyZVxuICogaXMgcGlja2VkIGZyb20ge0BsaW5rIERldGVjdG9yU2NvcGV9IGJhc2VkIG9uIGBUYC5cbiAqL1xuaW50ZXJmYWNlIEV2ZW50RGV0ZWN0b3I8VCBleHRlbmRzIEdlbmllQ2hhdEV2ZW50VHlwZT4ge1xuICByZWFkb25seSB0eXBlOiBUO1xuICBkZXRlY3Q6IERldGVjdEZuPFQ+O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBkZXRlY3RvciBmYWN0b3J5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQnVpbGQgYW4ge0BsaW5rIEV2ZW50RGV0ZWN0b3J9LiBQYXNzIHRoZSBldmVudCBuYW1lIGFzIHRoZVxuICogbGl0ZXJhbCBmaXJzdCBhcmcgYW5kIHRoZSBtYXRjaGluZyBgZGV0ZWN0YCBjYWxsYmFjayBhcyB0aGVcbiAqIHNlY29uZC4gVFMgaW5mZXJzIGBUYCBmcm9tIHRoZSBsaXRlcmFsLCBuYXJyb3dzIGBkZXRlY3RgJ3NcbiAqIHNpZ25hdHVyZSBhY2NvcmRpbmdseSwgYW5kIHR5cGVzIHRoZSByZXR1cm4gYXNcbiAqIGBFdmVudERldGVjdG9yPFQ+YC5cbiAqXG4gKiBCdWlsZC10aW1lIGd1YXJhbnRlZXM6XG4gKlxuICogICAtIGBldmVudERldGVjdG9yKFwic3RhdHVzMlwiLCAuLi4pYCBmYWlscyAtIHRoZSBuYW1lIGlzbid0IGluXG4gKiAgICAge0BsaW5rIEdlbmllQ2hhdEV2ZW50fS5cbiAqICAgLSBgZXZlbnREZXRlY3RvcihcInN0YXR1c1wiLCBhdHRhY2htZW50QXJnc0NhbGxiYWNrKWAgZmFpbHMgLVxuICogICAgIGBcInN0YXR1c1wiYCBpcyBtZXNzYWdlLXNjb3BlZCwgc28gYGRldGVjdGAgbXVzdCB0YWtlXG4gKiAgICAgYChHZW5pZU1lc3NhZ2UsIEdlbmllTWVzc2FnZSB8IHVuZGVmaW5lZCwgc3RyaW5nKWAuXG4gKiAgIC0gUmV0dXJuaW5nIGEgYFRoaW5raW5nRXZlbnRgLXNoYXBlZCBmaWVsZHMgb2JqZWN0IGZyb20gYVxuICogICAgIGBcInN0YXR1c1wiYCBkZXRlY3RvciBmYWlscyAtIHRoZSByZXR1cm4gdHlwZSBpcyBjb25zdHJhaW5lZFxuICogICAgIHRvIGBEZXRlY3RvclJlc3VsdDxcInN0YXR1c1wiPmAuXG4gKlxuICogTGlmZWN5Y2xlIGV2ZW50IG5hbWVzIChgXCJtZXNzYWdlXCJgLCBgXCJyZXN1bHRcImApIHJlc29sdmUgYGRldGVjdGBcbiAqIHRvIGBuZXZlcmAgYW5kIHdvbid0IGNvbXBpbGUsIHdoaWNoIGlzIGludGVudGlvbmFsOiB0aG9zZSBoYXZlXG4gKiBubyBkaWZmIHNpZ25hdHVyZSBhbmQgYXJlIGVtaXR0ZWQgZGlyZWN0bHkgYnkgdGhlIGNoYXQgZHJpdmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXZlbnREZXRlY3RvcjxUIGV4dGVuZHMgR2VuaWVDaGF0RXZlbnRUeXBlPihcbiAgdHlwZTogVCxcbiAgZGV0ZWN0OiBEZXRlY3RGbjxUPixcbik6IEV2ZW50RGV0ZWN0b3I8VD4ge1xuICByZXR1cm4geyB0eXBlLCBkZXRlY3QgfTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBkZXRlY3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiogVG9wLWxldmVsIGBtZXNzYWdlLnN0YXR1c2AgdHJhbnNpdGlvbmVkLiAqL1xuZXhwb3J0IGNvbnN0IGRldGVjdFN0YXR1cyA9IGV2ZW50RGV0ZWN0b3IoXCJzdGF0dXNcIiwgKGN1cnJlbnQsIHByZXZpb3VzLCBzcGFjZV9pZCkgPT4ge1xuICBpZiAoIWN1cnJlbnQuc3RhdHVzIHx8IGN1cnJlbnQuc3RhdHVzID09PSBwcmV2aW91cz8uc3RhdHVzKSByZXR1cm47XG4gIHJldHVybiB7XG4gICAgc3RhdHVzOiBjdXJyZW50LnN0YXR1cyxcbiAgICBwcmV2aW91c19zdGF0dXM6IHByZXZpb3VzPy5zdGF0dXMsXG4gICAgc3BhY2VfaWQsXG4gICAgY29udmVyc2F0aW9uX2lkOiBjdXJyZW50LmNvbnZlcnNhdGlvbl9pZCxcbiAgICBtZXNzYWdlX2lkOiBjdXJyZW50Lm1lc3NhZ2VfaWQsXG4gIH07XG59KTtcblxuLyoqIEZpcnN0IHRpbWUgd2Ugc2VlIGFuIGF0dGFjaG1lbnQgc2xvdC4gKi9cbmV4cG9ydCBjb25zdCBkZXRlY3RBdHRhY2htZW50QWRkZWQgPSBldmVudERldGVjdG9yKFxuICBcImF0dGFjaG1lbnRcIixcbiAgKGN1cnJlbnQsIHByZXZpb3VzLCBsb2NhdGlvbiwgaW5kZXgpID0+IHtcbiAgICBpZiAocHJldmlvdXMpIHJldHVybjtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubG9jYXRpb24sXG4gICAgICBpbmRleCxcbiAgICAgIGF0dGFjaG1lbnRfdHlwZTogZGV0ZWN0QXR0YWNobWVudFR5cGUoY3VycmVudCksXG4gICAgfTtcbiAgfSxcbik7XG5cbi8qKlxuICogT25lIGVtaXQgcGVyIG5ldyBgKHRob3VnaHRfdHlwZSwgY29udGVudClgIHR1cGxlIG9uIGEgcXVlcnlcbiAqIGF0dGFjaG1lbnQuIFZhbHVlLWJhc2VkIHNldCBkaWZmOiBHZW5pZSBjYW4gbXV0YXRlIGV4aXN0aW5nXG4gKiB0aG91Z2h0IHNsb3RzIGluIHBsYWNlIChlLmcuIHJlLXR5cGluZyBpbmRleCAwIGZyb21cbiAqIGBEQVRBX1NPVVJDSU5HYCB0byBgREVTQ1JJUFRJT05gIHdoaWxlIHJlLWFwcGVuZGluZyB0aGVcbiAqIG9yaWdpbmFsIGF0IGluZGV4IDEpLCBzbyBwb3NpdGlvbmFsIC8gYXBwZW5kLW9ubHkgZGlmZiB3b3VsZFxuICogbWlzcyByZS10eXBlcyBhbmQgZG91YmxlLWNvdW50IHJlLW9yZGVycy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRldGVjdFRoaW5raW5nID0gZXZlbnREZXRlY3RvcihcInRoaW5raW5nXCIsIChjdXJyZW50LCBwcmV2aW91cywgbG9jYXRpb24pID0+IHtcbiAgY29uc3QgY3VyclRob3VnaHRzID0gY3VycmVudC5xdWVyeT8udGhvdWdodHMgPz8gW107XG4gIGlmIChjdXJyVGhvdWdodHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0KChwcmV2aW91cz8ucXVlcnk/LnRob3VnaHRzID8/IFtdKS5tYXAodGhvdWdodEtleSkpO1xuICBjb25zdCBvdXQ6IEdlbmllQ2hhdEV2ZW50RmllbGRzPFwidGhpbmtpbmdcIj5bXSA9IFtdO1xuICBmb3IgKGNvbnN0IHQgb2YgY3VyclRob3VnaHRzKSB7XG4gICAgY29uc3Qga2V5ID0gdGhvdWdodEtleSh0KTtcbiAgICBpZiAoc2Vlbi5oYXMoa2V5KSkgY29udGludWU7XG4gICAgLy8gRGVmZW5zaXZlOiBkZWR1cGUgd2l0aGluIGEgc2luZ2xlIHNuYXBzaG90IGluIGNhc2UgR2VuaWVcbiAgICAvLyBldmVyIHNoaXBzIHRoZSBzYW1lIHRob3VnaHQgdHdpY2UgaW4gb25lIGB0aG91Z2h0c1tdYC5cbiAgICBzZWVuLmFkZChrZXkpO1xuICAgIG91dC5wdXNoKHsgLi4ubG9jYXRpb24sIHRleHQ6IHQuY29udGVudCwgdGhvdWdodF90eXBlOiB0LnRob3VnaHRfdHlwZSB9KTtcbiAgfVxuICByZXR1cm4gb3V0O1xufSk7XG5cbi8qKiBUZXh0LWF0dGFjaG1lbnQgYGNvbnRlbnRgIGFwcGVhcmVkIG9yIGNoYW5nZWQuICovXG5leHBvcnQgY29uc3QgZGV0ZWN0VGV4dCA9IGV2ZW50RGV0ZWN0b3IoXCJ0ZXh0XCIsIChjdXJyZW50LCBwcmV2aW91cywgbG9jYXRpb24pID0+IHtcbiAgY29uc3QgY3VyciA9IGN1cnJlbnQudGV4dD8uY29udGVudDtcbiAgY29uc3QgcHJldiA9IHByZXZpb3VzPy50ZXh0Py5jb250ZW50O1xuICBpZiAoY3VyciA9PT0gdW5kZWZpbmVkIHx8IGN1cnIgPT09IHByZXYpIHJldHVybjtcbiAgcmV0dXJuIHsgLi4ubG9jYXRpb24sIHRleHQ6IGN1cnIgfTtcbn0pO1xuXG4vKiogU1FMIHRyYW5zaXRpb25lZCB1bmRlZmluZWQgLT4gc3RyaW5nLCBvciBjaGFuZ2VkLiAqL1xuZXhwb3J0IGNvbnN0IGRldGVjdFF1ZXJ5ID0gZXZlbnREZXRlY3RvcihcInF1ZXJ5XCIsIChjdXJyZW50LCBwcmV2aW91cywgbG9jYXRpb24pID0+IHtcbiAgY29uc3QgY3VyciA9IGN1cnJlbnQucXVlcnk/LnF1ZXJ5O1xuICBjb25zdCBwcmV2ID0gcHJldmlvdXM/LnF1ZXJ5Py5xdWVyeTtcbiAgaWYgKCFjdXJyIHx8IGN1cnIgPT09IHByZXYpIHJldHVybjtcbiAgcmV0dXJuIHtcbiAgICAuLi5sb2NhdGlvbixcbiAgICBzcWw6IGN1cnIsXG4gICAgdGl0bGU6IGN1cnJlbnQucXVlcnk/LnRpdGxlLFxuICAgIGRlc2NyaXB0aW9uOiBjdXJyZW50LnF1ZXJ5Py5kZXNjcmlwdGlvbixcbiAgfTtcbn0pO1xuXG4vKiogV2FyZWhvdXNlLXN0YXRlbWVudCBpZCBhc3NpZ25lZC4gKi9cbmV4cG9ydCBjb25zdCBkZXRlY3RTdGF0ZW1lbnQgPSBldmVudERldGVjdG9yKFwic3RhdGVtZW50XCIsIChjdXJyZW50LCBwcmV2aW91cywgbG9jYXRpb24pID0+IHtcbiAgY29uc3QgY3VyciA9IGN1cnJlbnQucXVlcnk/LnN0YXRlbWVudF9pZDtcbiAgY29uc3QgcHJldiA9IHByZXZpb3VzPy5xdWVyeT8uc3RhdGVtZW50X2lkO1xuICBpZiAoIWN1cnIgfHwgY3VyciA9PT0gcHJldikgcmV0dXJuO1xuICByZXR1cm4geyAuLi5sb2NhdGlvbiwgc3RhdGVtZW50X2lkOiBjdXJyIH07XG59KTtcblxuLyoqXG4gKiBgcm93X2NvdW50YCBjaGFuZ2VkIC0gZmlyZXMgb24gZXZlcnkgdHJhbnNpdGlvbiBpbmNsdWRpbmcgdGhlXG4gKiBpbml0aWFsIGB1bmRlZmluZWQgLT4gMGAgYW5kIHRoZSBwb3N0LWV4ZWN1dGlvbiBgMCAtPiBOYC5cbiAqIENhcnJpZXMgdGhlIHN0YXRlbWVudCBpZCB3aGVuIGF2YWlsYWJsZSBmb3IgY29ycmVsYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBkZXRlY3RSb3dzID0gZXZlbnREZXRlY3RvcihcInJvd3NcIiwgKGN1cnJlbnQsIHByZXZpb3VzLCBsb2NhdGlvbikgPT4ge1xuICBjb25zdCBjdXJyID0gY3VycmVudC5xdWVyeT8ucXVlcnlfcmVzdWx0X21ldGFkYXRhPy5yb3dfY291bnQ7XG4gIGNvbnN0IHByZXYgPSBwcmV2aW91cz8ucXVlcnk/LnF1ZXJ5X3Jlc3VsdF9tZXRhZGF0YT8ucm93X2NvdW50O1xuICBpZiAoY3VyciA9PT0gdW5kZWZpbmVkIHx8IGN1cnIgPT09IHByZXYpIHJldHVybjtcbiAgcmV0dXJuIHtcbiAgICAuLi5sb2NhdGlvbixcbiAgICByb3dfY291bnQ6IGN1cnIsXG4gICAgcHJldmlvdXNfcm93X2NvdW50OiBwcmV2LFxuICAgIHN0YXRlbWVudF9pZDogY3VycmVudC5xdWVyeT8uc3RhdGVtZW50X2lkID8/IHByZXZpb3VzPy5xdWVyeT8uc3RhdGVtZW50X2lkLFxuICB9O1xufSk7XG5cbi8qKlxuICogRm9sbG93LXVwIHN1Z2dlc3RlZC1xdWVzdGlvbnMgYXJyYXkgYXBwZWFyZWQgb3IgY2hhbmdlZC5cbiAqIENvbXBhcmVzIHN0cnVjdHVyYWxseSBzbyBhIGxlbmd0aC1wcmVzZXJ2aW5nIGNvbnRlbnQgcmV3cml0ZSBzdGlsbCBmaXJlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRldGVjdFN1Z2dlc3RlZFF1ZXN0aW9ucyA9IGV2ZW50RGV0ZWN0b3IoXG4gIFwic3VnZ2VzdGVkX3F1ZXN0aW9uc1wiLFxuICAoY3VycmVudCwgcHJldmlvdXMsIGxvY2F0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VyciA9IGN1cnJlbnQuc3VnZ2VzdGVkX3F1ZXN0aW9ucz8ucXVlc3Rpb25zO1xuICAgIGNvbnN0IHByZXYgPSBwcmV2aW91cz8uc3VnZ2VzdGVkX3F1ZXN0aW9ucz8ucXVlc3Rpb25zO1xuICAgIGlmICghY3VyciB8fCBjdXJyLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChvYmplY3QuZGVlcEVxdWFsKGN1cnIsIHByZXYpKSByZXR1cm47XG4gICAgcmV0dXJuIHsgLi4ubG9jYXRpb24sIHF1ZXN0aW9uczogY3VyciB9O1xuICB9LFxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG9yY2hlc3RyYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBXYWxrIHRoZSBkaWZmIGJldHdlZW4gYGN1cnJlbnRgIGFuZCBgcHJldmlvdXNgIGFuZCB5aWVsZCBldmVyeVxuICogZGVyaXZlZCBldmVudCB0aGUgc25hcHNob3QgcHJvZHVjZWQuIERldGVjdG9yIG9yZGVyIG1pcnJvcnNcbiAqIEdlbmllJ3Mgd2lyZSBvcmRlcmluZyAoc3RhdHVzIGZpcnN0LCB0aGVuIHBlci1hdHRhY2htZW50IGZpZWxkXG4gKiBkZWx0YXMpIHNvIGEgc3Vic2NyaWJlciB0aGF0IHNpbXBseSBsb2dzIGV2ZW50cyBhcyB0aGV5IGFycml2ZVxuICogc2VlcyB0aGVtIGluIGEgc2Vuc2libGUgc2VxdWVuY2UuXG4gKlxuICogQ2FsbGVyIHJlc3BvbnNpYmlsaXRpZXMgKG5vdCBoYW5kbGVkIGhlcmUpOlxuICpcbiAqICAgLSBZaWVsZCBgeyB0eXBlOiBcIm1lc3NhZ2VcIiwgbWVzc2FnZTogY3VycmVudCB9YCBCRUZPUkVcbiAqICAgICBjYWxsaW5nIHRoaXMsIG9uY2UgcGVyIHBvbGwgeWllbGQuXG4gKiAgIC0gWWllbGQgYHsgdHlwZTogXCJyZXN1bHRcIiwgLi4uIH1gIEFGVEVSIGNhbGxpbmcgdGhpcyB3aGVuXG4gKiAgICAgYGlzVGVybWluYWxTdGF0dXMoY3VycmVudC5zdGF0dXMpYCAtIHBlci10dXJuIGxpZmVjeWNsZSxcbiAqICAgICBub3QgYSBwZXItc25hcHNob3QgZmllbGQgZGlmZi5cbiAqICAgLSBEZWNpZGUgd2hhdCBjb3VudHMgYXMgYSBcImZyZXNoIHR1cm5cIiBhbmQgcGFzcyBgdW5kZWZpbmVkYFxuICogICAgIGZvciBgcHJldmlvdXNgIG9uIHR1cm4gYm91bmRhcmllcywgc28gYW5vbnltb3VzLWF0dGFjaG1lbnRcbiAqICAgICBzdGF0ZSBmcm9tIGEgcHJpb3IgdHVybiBkb2Vzbid0IGJsZWVkIGluLlxuICpcbiAqIFN5bmMgZ2VuZXJhdG9yOiB0aGUgZGlmZiBpcyBwdXJlIENQVSB3b3JrLCBubyBhd2FpdHMuIFVzZVxuICogYHlpZWxkKmAgZnJvbSBhbiBhc3luYyBnZW5lcmF0b3IgdG8gc3BsaWNlIHRoZSBldmVudHMgaW50byBhXG4gKiBzdHJlYW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiogZXZlbnRzRnJvbU1lc3NhZ2UoXG4gIGN1cnJlbnQ6IEdlbmllTWVzc2FnZSxcbiAgcHJldmlvdXM6IEdlbmllTWVzc2FnZSB8IHVuZGVmaW5lZCxcbiAgc3BhY2VfaWQ6IHN0cmluZyxcbik6IEdlbmVyYXRvcjxHZW5pZUNoYXRFdmVudCwgdm9pZCwgdm9pZD4ge1xuICAvLyBTdGFtcCBgdHlwZWAgb250byBlYWNoIGRldGVjdG9yIHJlc3VsdCBhbmQgeWllbGQgaXQuIFJldHVybmluZ1xuICAvLyBhIHR5cGVkIGdlbmVyYXRvciBrZWVwcyB0aGUgYHlpZWxkKmAgY2FsbHNpdGUgdGlkeS4gVGhlIGRvdWJsZVxuICAvLyBjYXN0IChgdW5rbm93bmAgLT4gYEdlbmllQ2hhdEV2ZW50YCkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlXG4gIC8vIGdlbmVyaWMgbWVyZ2UgYHt0eXBlOiBUfSAmIEdlbmllQ2hhdEV2ZW50RmllbGRzPFQ+YCBkb2Vzbid0XG4gIC8vIHN0cnVjdHVyYWxseSBuYXJyb3cgYmFjayB0byBhIGRpc2NyaW1pbmF0ZWQtdW5pb24gbWVtYmVyIC1cbiAgLy8gZWFjaCBkZXRlY3RvcidzIHJ1bnRpbWUgb3V0cHV0IGlzIHNoYXBlZCBjb3JyZWN0bHkgYnlcbiAgLy8gY29uc3RydWN0aW9uLCBzbyB0aGUgY2FzdCBpcyBzb3VuZC5cbiAgZnVuY3Rpb24qIGVtaXQ8VCBleHRlbmRzIEdlbmllQ2hhdEV2ZW50VHlwZT4oXG4gICAgZGV0ZWN0b3I6IEV2ZW50RGV0ZWN0b3I8VD4sXG4gICAgcmVzdWx0OiBEZXRlY3RvclJlc3VsdDxUPixcbiAgKTogR2VuZXJhdG9yPEdlbmllQ2hhdEV2ZW50LCB2b2lkLCB2b2lkPiB7XG4gICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgZm9yIChjb25zdCBmaWVsZHMgb2YgcmVzdWx0KSB7XG4gICAgICAgIHlpZWxkIHsgdHlwZTogZGV0ZWN0b3IudHlwZSwgLi4uZmllbGRzIH0gYXMgdW5rbm93biBhcyBHZW5pZUNoYXRFdmVudDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgeyB0eXBlOiBkZXRlY3Rvci50eXBlLCAuLi5yZXN1bHQgfSBhcyB1bmtub3duIGFzIEdlbmllQ2hhdEV2ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIE1lc3NhZ2Utc2NvcGVkIGRldGVjdG9ycyBydW4gb25jZSBwZXIgc25hcHNob3QuXG4gIHlpZWxkKiBlbWl0KGRldGVjdFN0YXR1cywgZGV0ZWN0U3RhdHVzLmRldGVjdChjdXJyZW50LCBwcmV2aW91cywgc3BhY2VfaWQpKTtcblxuICAvLyBQZXItYXR0YWNobWVudCBkZXRlY3RvcnMgcnVuIG9uY2UgcGVyIGF0dGFjaG1lbnQgc2xvdC5cbiAgY29uc3QgY3VyckF0dHMgPSBjdXJyZW50LmF0dGFjaG1lbnRzID8/IFtdO1xuICBjb25zdCBwcmV2QXR0cyA9IHByZXZpb3VzPy5hdHRhY2htZW50cyA/PyBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyQXR0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnIgPSBjdXJyQXR0c1tpXSE7XG4gICAgY29uc3QgcHJldiA9IG1hdGNoUHJldkF0dGFjaG1lbnQoY3VyciwgcHJldkF0dHMsIGkpO1xuICAgIGNvbnN0IGxvY2F0aW9uOiBHZW5pZUNoYXRMb2NhdGlvbiA9IHtcbiAgICAgIHNwYWNlX2lkLFxuICAgICAgY29udmVyc2F0aW9uX2lkOiBjdXJyZW50LmNvbnZlcnNhdGlvbl9pZCxcbiAgICAgIG1lc3NhZ2VfaWQ6IGN1cnJlbnQubWVzc2FnZV9pZCxcbiAgICAgIGF0dGFjaG1lbnRfaWQ6IGN1cnIuYXR0YWNobWVudF9pZCxcbiAgICB9O1xuICAgIHlpZWxkKiBlbWl0KGRldGVjdEF0dGFjaG1lbnRBZGRlZCwgZGV0ZWN0QXR0YWNobWVudEFkZGVkLmRldGVjdChjdXJyLCBwcmV2LCBsb2NhdGlvbiwgaSkpO1xuICAgIHlpZWxkKiBlbWl0KGRldGVjdFRoaW5raW5nLCBkZXRlY3RUaGlua2luZy5kZXRlY3QoY3VyciwgcHJldiwgbG9jYXRpb24sIGkpKTtcbiAgICB5aWVsZCogZW1pdChkZXRlY3RUZXh0LCBkZXRlY3RUZXh0LmRldGVjdChjdXJyLCBwcmV2LCBsb2NhdGlvbiwgaSkpO1xuICAgIHlpZWxkKiBlbWl0KGRldGVjdFF1ZXJ5LCBkZXRlY3RRdWVyeS5kZXRlY3QoY3VyciwgcHJldiwgbG9jYXRpb24sIGkpKTtcbiAgICB5aWVsZCogZW1pdChkZXRlY3RTdGF0ZW1lbnQsIGRldGVjdFN0YXRlbWVudC5kZXRlY3QoY3VyciwgcHJldiwgbG9jYXRpb24sIGkpKTtcbiAgICB5aWVsZCogZW1pdChkZXRlY3RSb3dzLCBkZXRlY3RSb3dzLmRldGVjdChjdXJyLCBwcmV2LCBsb2NhdGlvbiwgaSkpO1xuICAgIHlpZWxkKiBlbWl0KGRldGVjdFN1Z2dlc3RlZFF1ZXN0aW9ucywgZGV0ZWN0U3VnZ2VzdGVkUXVlc3Rpb25zLmRldGVjdChjdXJyLCBwcmV2LCBsb2NhdGlvbiwgaSkpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBGaW5kIHRoZSBwcmlvciB2ZXJzaW9uIG9mIGBjdXJyYCBpbiBgcHJldkF0dHNgLiBBdHRhY2htZW50c1xuICogd2l0aCBpZHMgbWF0Y2ggYnkgaWQgKEdlbmllIGtlZXBzIGlkcyBzdGFibGUgYWNyb3NzIHBvbGxzKTtcbiAqIGFub255bW91cyBhdHRhY2htZW50cyAoR2VuaWUncyBtYWluLWFuc3dlciB0ZXh0IGRvZXNuJ3QgZ2V0XG4gKiBvbmUpIG1hdGNoIHBvc2l0aW9uYWxseSBhZ2FpbnN0IGFuIGFub255bW91cyBwcmV2IGF0IHRoZSBzYW1lXG4gKiBpbmRleCwgc28gdGhleSBkb24ndCBhY2NpZGVudGFsbHkgYmluZCB0byBhbiBpZCdkIHByZWRlY2Vzc29yXG4gKiB0aGF0IGhhcHBlbmVkIHRvIHNoYXJlIHRoZSBzbG90LlxuICovXG5mdW5jdGlvbiBtYXRjaFByZXZBdHRhY2htZW50KFxuICBjdXJyOiBHZW5pZUF0dGFjaG1lbnQsXG4gIHByZXZBdHRzOiBHZW5pZUF0dGFjaG1lbnRbXSxcbiAgaTogbnVtYmVyLFxuKTogR2VuaWVBdHRhY2htZW50IHwgdW5kZWZpbmVkIHtcbiAgaWYgKGN1cnIuYXR0YWNobWVudF9pZCkge1xuICAgIHJldHVybiBwcmV2QXR0cy5maW5kKChhKSA9PiBhLmF0dGFjaG1lbnRfaWQgPT09IGN1cnIuYXR0YWNobWVudF9pZCk7XG4gIH1cbiAgY29uc3QgcCA9IHByZXZBdHRzW2ldO1xuICByZXR1cm4gcCAmJiAhcC5hdHRhY2htZW50X2lkID8gcCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqIFN0YWJsZSBrZXkgZm9yIHtAbGluayBkZXRlY3RUaGlua2luZ30ncyB2YWx1ZS1iYXNlZCBzZXQgZGlmZi4gKi9cbmZ1bmN0aW9uIHRob3VnaHRLZXkodDogR2VuaWVUaG91Z2h0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3QudGhvdWdodF90eXBlfXwke3QuY29udGVudH1gO1xufVxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEQsT0FBTyxFQUNMLG9CQUFvQixHQVFyQixNQUFNLGtCQUFrQixDQUFDO0FBdUUxQixzRUFBc0U7QUFFdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLElBQU8sRUFDUCxNQUFtQjtJQUVuQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzFCLENBQUM7QUFFRCx5RUFBeUU7QUFFekUsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxNQUFNO1FBQUUsT0FBTztJQUNuRSxPQUFPO1FBQ0wsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNqQyxRQUFRO1FBQ1IsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1FBQ3hDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtLQUMvQixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUNoRCxZQUFZLEVBQ1osQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNyQyxJQUFJLFFBQVE7UUFBRSxPQUFPO0lBQ3JCLE9BQU87UUFDTCxHQUFH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QVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztBQUNILENBQUM7QUFFRCx5RUFBeUU7QUFFekU7Ozs7Ozs7R0FPRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLElBQXFCLEVBQ3JCLFFBQTJCLEVBQzNCLENBQVM7SUFFVCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLFNBQVMsVUFBVSxDQUFDLENBQWU7SUFDakMsT0FBTyxHQUFHLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1cmUgZXZlbnQtZGV0ZWN0aW9uIGZvciBgZ2VuaWVFdmVudENoYXRgLiBHaXZlbiB0d29cbiAqIGBHZW5pZU1lc3NhZ2VgIHNuYXBzaG90cyAoY3VycmVudCArIHByaW9yKSBhbmQgdGhlIHN1cnJvdW5kaW5nXG4gKiBgc3BhY2VfaWRgLCBkZXJpdmUgdGhlIHNlbWFudGljIGRlbHRhcyAoc3RhdHVzIHRyYW5zaXRpb25zLCBuZXdcbiAqIGF0dGFjaG1lbnRzLCBuZXcgdGhvdWdodHMsIFNRTCBlbWlzc2lvbiwgd2FyZWhvdXNlIHN1Ym1pc3Npb24sXG4gKiByb3ctY291bnQgcHJvZ3Jlc3MsIGZvbGxvdy11cCBzdWdnZXN0aW9ucywgdGV4dCBkZWx0YXMpIGFuZFxuICogeWllbGQgdGhlbSBhcyB0eXBlZCB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9cy5cbiAqXG4gKiBEZXRlY3RvcnMgYXJlIGJ1aWx0IHRocm91Z2ggYSBzaW5nbGUgdHlwZWQgZmFjdG9yeSB0aGF0IHRpZXNcbiAqIGVhY2ggZXZlbnQncyBuYW1lIHRvIGl0cyBzY29wZSAod2hvbGUtbWVzc2FnZSB2cyBwZXItYXR0YWNobWVudClcbiAqIGFuZCBwYXlsb2FkIHNoYXBlLCBzbyBhIG1pc25hbWVkIGV2ZW50IG9yIGEgcGF5bG9hZCB0aGF0IGRvZXNuJ3RcbiAqIG1hdGNoIGl0cyBldmVudCBmYWlscyB0byBjb21waWxlLiBBbiBvcmNoZXN0cmF0b3Igd2Fsa3MgdGhlXG4gKiBzbmFwc2hvdCBkaWZmIGFuZCB5aWVsZHMgZXZlcnkgZGV0ZWN0b3IgdGhhdCBmaXJlcyBpbiBhIHN0YWJsZVxuICogb3JkZXIgKHN0YXR1cyBmaXJzdCwgdGhlbiBwZXItYXR0YWNobWVudCBmaWVsZCBkZWx0YXMpIHNvIGFcbiAqIHN1YnNjcmliZXIgdGhhdCBsb2dzIGV2ZW50cyBhcyB0aGV5IGFycml2ZSBzZWVzIGEgc2Vuc2libGVcbiAqIHNlcXVlbmNlLlxuICpcbiAqIFRoZSBtb2R1bGUgaXMgaW50ZW50aW9uYWxseSBwdXJlOiBubyBgRXZlbnRFbWl0dGVyYCwgbm8gYHRoaXNgLFxuICogbm8gSS9PLCBubyBtb2R1bGUtbGV2ZWwgbXV0YWJsZSBzdGF0ZS4gVGhlIGBtZXNzYWdlYCBhbmRcbiAqIGByZXN1bHRgIGV2ZW50cyBhcmUgTk9UIGRlcml2ZWQgaGVyZSAtIHRoZXkgYmVsb25nIHRvIHRoZSBjaGF0XG4gKiBsaWZlY3ljbGUgbGF5ZXIgKHRoZSBgZ2VuaWVFdmVudENoYXRgIGRyaXZlcikgYmVjYXVzZSB0aGV5IHRyYWNrXG4gKiBwZXIteWllbGQgLyBwZXItdHVybi1jb21wbGV0aW9uIHNlbWFudGljcyByYXRoZXIgdGhhbiBhXG4gKiBmaWVsZC1sZXZlbCBzbmFwc2hvdCBkaWZmLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvYmplY3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG5pbXBvcnQge1xuICBkZXRlY3RBdHRhY2htZW50VHlwZSxcbiAgdHlwZSBHZW5pZUF0dGFjaG1lbnQsXG4gIHR5cGUgR2VuaWVDaGF0RXZlbnQsXG4gIHR5cGUgR2VuaWVDaGF0RXZlbnRGaWVsZHMsXG4gIHR5cGUgR2VuaWVDaGF0RXZlbnRUeXBlLFxuICB0eXBlIEdlbmllQ2hhdExvY2F0aW9uLFxuICB0eXBlIEdlbmllTWVzc2FnZSxcbiAgdHlwZSBHZW5pZVRob3VnaHQsXG59IGZyb20gXCIuL2dlbmllLW1vZGVsLnRzXCI7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvbnRyYWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBXaGF0IGEgc2luZ2xlIGRldGVjdG9yIGNhbGwgcmV0dXJuczogemVybyAoYHVuZGVmaW5lZGApLCBvbmVcbiAqIChmaWVsZHMgb2JqZWN0KSwgb3IgbWFueSAoYGZpZWxkc1tdYCkgZXZlbnRzIG9mIHRoZSBzYW1lIHR5cGUuXG4gKiBFYWNoIHJlc3VsdCBpcyB0aGUgdmFyaWFudCdzIHBheWxvYWQgZmllbGRzICoqd2l0aG91dCoqIHRoZVxuICogYHR5cGVgIGRpc2NyaW1pbmF0b3IgLSB0aGUgb3JjaGVzdHJhdG9yIHN0YW1wcyBgdHlwZWAgd2hlbiBpdFxuICogeWllbGRzIHRoZSBldmVudC5cbiAqL1xudHlwZSBEZXRlY3RvclJlc3VsdDxUIGV4dGVuZHMgR2VuaWVDaGF0RXZlbnRUeXBlPiA9XG4gIEdlbmllQ2hhdEV2ZW50RmllbGRzPFQ+IHwgR2VuaWVDaGF0RXZlbnRGaWVsZHM8VD5bXSB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBXaGVyZSBpbiB0aGUgd2lyZSBzaGFwZSBhIGdpdmVuIGV2ZW50IGlzIGRlcml2ZWQgZnJvbS4gRHJpdmVzXG4gKiB3aGljaCBhcmd1bWVudHMgYGRldGVjdGAgcmVjZWl2ZXMuIGBcIm1lc3NhZ2VcImAgZXZlbnRzIHdhdGNoXG4gKiBgR2VuaWVNZXNzYWdlYCBpdHNlbGY7IGBcImF0dGFjaG1lbnRcImAgZXZlbnRzIHdhdGNoIG9uZSBzbG90IG9mXG4gKiBgbWVzc2FnZS5hdHRhY2htZW50c1tdYC4gYFwibGlmZWN5Y2xlXCJgIGV2ZW50cyAoYG1lc3NhZ2VgLFxuICogYHJlc3VsdGApIGFyZSBlbWl0dGVkIGJ5IHRoZSBjaGF0IGRyaXZlciBkaXJlY3RseSBhbmQgY2FuJ3QgYmVcbiAqIGJ1aWx0IHdpdGgge0BsaW5rIGV2ZW50RGV0ZWN0b3J9IC0gdGhleSBoYXZlIG5vIGRpZmYgc2lnbmF0dXJlLlxuICovXG5pbnRlcmZhY2UgRGV0ZWN0b3JTY29wZSB7XG4gIC8vIE1lc3NhZ2Utc2NvcGVkOiB0b3AtbGV2ZWwgZmllbGQgZGlmZiBvbiBgR2VuaWVNZXNzYWdlYC5cbiAgc3RhdHVzOiBcIm1lc3NhZ2VcIjtcbiAgLy8gUGVyLWF0dGFjaG1lbnQ6IGZpZWxkIGRpZmYgb24gb25lIGBHZW5pZUF0dGFjaG1lbnRgIHNsb3QuXG4gIGF0dGFjaG1lbnQ6IFwiYXR0YWNobWVudFwiO1xuICB0aGlua2luZzogXCJhdHRhY2htZW50XCI7XG4gIHRleHQ6IFwiYXR0YWNobWVudFwiO1xuICBxdWVyeTogXCJhdHRhY2htZW50XCI7XG4gIHN0YXRlbWVudDogXCJhdHRhY2htZW50XCI7XG4gIHJvd3M6IFwiYXR0YWNobWVudFwiO1xuICBzdWdnZXN0ZWRfcXVlc3Rpb25zOiBcImF0dGFjaG1lbnRcIjtcbiAgLy8gTGlmZWN5Y2xlOiBub3QgZGVyaXZlZCB2aWEgZGlmZiwgaGFuZGxlZCBieSB0aGUgY2hhdCBkcml2ZXIuXG4gIHF1ZXN0aW9uOiBcImxpZmVjeWNsZVwiO1xuICBtZXNzYWdlOiBcImxpZmVjeWNsZVwiO1xuICByZXN1bHQ6IFwibGlmZWN5Y2xlXCI7XG59XG5cbi8qKlxuICogYGRldGVjdGAgY2FsbGJhY2sgc2lnbmF0dXJlIGZvciBhIGdpdmVuIGV2ZW50IHR5cGUuIFJlc29sdmVkXG4gKiBmcm9tIHtAbGluayBEZXRlY3RvclNjb3BlfTogYFwibWVzc2FnZVwiYCBldmVudHMgZ2V0IHRoZSB0b3AtbGV2ZWxcbiAqIHNuYXBzaG90IHRyaXBsZSwgYFwiYXR0YWNobWVudFwiYCBldmVudHMgZ2V0IHRoZSBwZXItc2xvdCBxdWFkLFxuICogYFwibGlmZWN5Y2xlXCJgIGV2ZW50cyByZXNvbHZlIHRvIGBuZXZlcmAgKG5vIGRpZmYtYmFzZWQgZGV0ZWN0b3JcbiAqIGV4aXN0cyBmb3IgdGhlbSkuXG4gKi9cbnR5cGUgRGV0ZWN0Rm48VCBleHRlbmRzIEdlbmllQ2hhdEV2ZW50VHlwZT4gPSBEZXRlY3RvclNjb3BlW1RdIGV4dGVuZHMgXCJtZXNzYWdlXCJcbiAgPyAoXG4gICAgICBjdXJyZW50OiBHZW5pZU1lc3NhZ2UsXG4gICAgICBwcmV2aW91czogR2VuaWVNZXNzYWdlIHwgdW5kZWZpbmVkLFxuICAgICAgc3BhY2VfaWQ6IHN0cmluZyxcbiAgICApID0+IERldGVjdG9yUmVzdWx0PFQ+XG4gIDogRGV0ZWN0b3JTY29wZVtUXSBleHRlbmRzIFwiYXR0YWNobWVudFwiXG4gICAgPyAoXG4gICAgICAgIGN1cnJlbnQ6IEdlbmllQXR0YWNobWVudCxcbiAgICAgICAgcHJldmlvdXM6IEdlbmllQXR0YWNobWVudCB8IHVuZGVmaW5lZCxcbiAgICAgICAgbG9jYXRpb246IEdlbmllQ2hhdExvY2F0aW9uLFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgKSA9PiBEZXRlY3RvclJlc3VsdDxUPlxuICAgIDogbmV2ZXI7XG5cbi8qKlxuICogVHlwZWQgZGV0ZWN0b3IgZm9yIG9uZSBldmVudCBpbiB0aGUge0BsaW5rIEdlbmllQ2hhdEV2ZW50fVxuICogdW5pb24uIFRoZSBgdHlwZWAgZmllbGQgaXMgdGhlIGV2ZW50IG5hbWU7IGBkZXRlY3RgJ3Mgc2lnbmF0dXJlXG4gKiBpcyBwaWNrZWQgZnJvbSB7QGxpbmsgRGV0ZWN0b3JTY29wZX0gYmFzZWQgb24gYFRgLlxuICovXG5pbnRlcmZhY2UgRXZlbnREZXRlY3RvcjxUIGV4dGVuZHMgR2VuaWVDaGF0RXZlbnRUeXBlPiB7XG4gIHJlYWRvbmx5IHR5cGU6IFQ7XG4gIGRldGVjdDogRGV0ZWN0Rm48VD47XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGRldGVjdG9yIGZhY3RvcnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBCdWlsZCBhbiB7QGxpbmsgRXZlbnREZXRlY3Rvcn0uIFBhc3MgdGhlIGV2ZW50IG5hbWUgYXMgdGhlXG4gKiBsaXRlcmFsIGZpcnN0IGFyZyBhbmQgdGhlIG1hdGNoaW5nIGBkZXRlY3RgIGNhbGxiYWNrIGFzIHRoZVxuICogc2Vjb25kLiBUUyBpbmZlcnMgYFRgIGZyb20gdGhlIGxpdGVyYWwsIG5hcnJvd3MgYGRldGVjdGAnc1xuICogc2lnbmF0dXJlIGFjY29yZGluZ2x5LCBhbmQgdHlwZXMgdGhlIHJldHVybiBhc1xuICogYEV2ZW50RGV0ZWN0b3I8VD5gLlxuICpcbiAqIEJ1aWxkLXRpbWUgZ3VhcmFudGVlczpcbiAqXG4gKiAgIC0gYGV2ZW50RGV0ZWN0b3IoXCJzdGF0dXMyXCIsIC4uLilgIGZhaWxzIC0gdGhlIG5hbWUgaXNuJ3QgaW5cbiAqICAgICB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9LlxuICogICAtIGBldmVudERldGVjdG9yKFwic3RhdHVzXCIsIGF0dGFjaG1lbnRBcmdzQ2FsbGJhY2spYCBmYWlscyAtXG4gKiAgICAgYFwic3RhdHVzXCJgIGlzIG1lc3NhZ2Utc2NvcGVkLCBzbyBgZGV0ZWN0YCBtdXN0IHRha2VcbiAqICAgICBgKEdlbmllTWVzc2FnZSwgR2VuaWVNZXNzYWdlIHwgdW5kZWZpbmVkLCBzdHJpbmcpYC5cbiAqICAgLSBSZXR1cm5pbmcgYSBgVGhpbmtpbmdFdmVudGAtc2hhcGVkIGZpZWxkcyBvYmplY3QgZnJvbSBhXG4gKiAgICAgYFwic3RhdHVzXCJgIGRldGVjdG9yIGZhaWxzIC0gdGhlIHJldHVybiB0eXBlIGlzIGNvbnN0cmFpbmVkXG4gKiAgICAgdG8gYERldGVjdG9yUmVzdWx0PFwic3RhdHVzXCI+YC5cbiAqXG4gKiBMaWZlY3ljbGUgZXZlbnQgbmFtZXMgKGBcIm1lc3NhZ2VcImAsIGBcInJlc3VsdFwiYCkgcmVzb2x2ZSBgZGV0ZWN0YFxuICogdG8gYG5ldmVyYCBhbmQgd29uJ3QgY29tcGlsZSwgd2hpY2ggaXMgaW50ZW50aW9uYWw6IHRob3NlIGhhdmVcbiAqIG5vIGRpZmYgc2lnbmF0dXJlIGFuZCBhcmUgZW1pdHRlZCBkaXJlY3RseSBieSB0aGUgY2hhdCBkcml2ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVudERldGVjdG9yPFQgZXh0ZW5kcyBHZW5pZUNoYXRFdmVudFR5cGU+KFxuICB0eXBlOiBULFxuICBkZXRlY3Q6IERldGVjdEZuPFQ+LFxuKTogRXZlbnREZXRlY3RvcjxUPiB7XG4gIHJldHVybiB7IHR5cGUsIGRldGVjdCB9O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGRldGVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKiBUb3AtbGV2ZWwgYG1lc3NhZ2Uuc3RhdHVzYCB0cmFuc2l0aW9uZWQuICovXG5leHBvcnQgY29uc3QgZGV0ZWN0U3RhdHVzID0gZXZlbnREZXRlY3RvcihcInN0YXR1c1wiLCAoY3VycmVudCwgcHJldmlvdXMsIHNwYWNlX2lkKSA9PiB7XG4gIGlmICghY3VycmVudC5zdGF0dXMgfHwgY3VycmVudC5zdGF0dXMgPT09IHByZXZpb3VzPy5zdGF0dXMpIHJldHVybjtcbiAgcmV0dXJuIHtcbiAgICBzdGF0dXM6IGN1cnJlbnQuc3RhdHVzLFxuICAgIHByZXZpb3VzX3N0YXR1czogcHJldmlvdXM/LnN0YXR1cyxcbiAgICBzcGFjZV9pZCxcbiAgICBjb252ZXJzYXRpb25faWQ6IGN1cnJlbnQuY29udmVyc2F0aW9uX2lkLFxuICAgIG1lc3NhZ2VfaWQ6IGN1cnJlbnQubWVzc2FnZV9pZCxcbiAgfTtcbn0pO1xuXG4vKiogRmlyc3QgdGltZSB3ZSBzZWUgYW4gYXR0YWNobWVudCBzbG90LiAqL1xuZXhwb3J0IGNvbnN0IGRldGVjdEF0dGFjaG1lbnRBZGRlZCA9IGV2ZW50RGV0ZWN0b3IoXG4gIFwiYXR0YWNobWVudFwiLFxuICAoY3VycmVudCwgcHJldmlvdXMsIGxvY2F0aW9uLCBpbmRleCkgPT4ge1xuICAgIGlmIChwcmV2aW91cykgcmV0dXJuO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5sb2NhdGlvbixcbiAgICAgIGluZGV4LFxuICAgICAgYXR0YWNobWVudF90eXBlOiBkZXRlY3RBdHRhY2htZW50VHlwZShjdXJyZW50KSxcbiAgICB9O1xuICB9LFxuKTtcblxuLyoqXG4gKiBPbmUgZW1pdCBwZXIgbmV3IGAodGhvdWdodF90eXBlLCBjb250ZW50KWAgdHVwbGUgb24gYSBxdWVyeVxuICogYXR0YWNobWVudC4gVmFsdWUtYmFzZWQgc2V0IGRpZmY6IEdlbmllIGNhbiBtdXRhdGUgZXhpc3RpbmdcbiAqIHRob3VnaHQgc2xvdHMgaW4gcGxhY2UgKGUuZy4gcmUtdHlwaW5nIGluZGV4IDAgZnJvbVxuICogYERBVEFfU09VUkNJTkdgIHRvIGBERVNDUklQVElPTmAgd2hpbGUgcmUtYXBwZW5kaW5nIHRoZVxuICogb3JpZ2luYWwgYXQgaW5kZXggMSksIHNvIHBvc2l0aW9uYWwgLyBhcHBlbmQtb25seSBkaWZmIHdvdWxkXG4gKiBtaXNzIHJlLXR5cGVzIGFuZCBkb3VibGUtY291bnQgcmUtb3JkZXJzLlxuICovXG5leHBvcnQgY29uc3QgZGV0ZWN0VGhpbmtpbmcgPSBldmVudERldGVjdG9yKFwidGhpbmtpbmdcIiwgKGN1cnJlbnQsIHByZXZpb3VzLCBsb2NhdGlvbikgPT4ge1xuICBjb25zdCBjdXJyVGhvdWdodHMgPSBjdXJyZW50LnF1ZXJ5Py50aG91Z2h0cyA/PyBbXTtcbiAgaWYgKGN1cnJUaG91Z2h0cy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQoKHByZXZpb3VzPy5xdWVyeT8udGhvdWdodHMgPz8gW10pLm1hcCh0aG91Z2h0S2V5KSk7XG4gIGNvbnN0IG91dDogR2VuaWVDaGF0RXZlbnRGaWVsZHM8XCJ0aGlua2luZ1wiPltdID0gW107XG4gIGZvciAoY29uc3QgdCBvZiBjdXJyVGhvdWdodHMpIHtcbiAgICBjb25zdCBrZXkgPSB0aG91Z2h0S2V5KHQpO1xuICAgIGlmIChzZWVuLmhhcyhrZXkpKSBjb250aW51ZTtcbiAgICAvLyBEZWZlbnNpdmU6IGRlZHVwZSB3aXRoaW4gYSBzaW5nbGUgc25hcHNob3QgaW4gY2FzZSBHZW5pZVxuICAgIC8vIGV2ZXIgc2hpcHMgdGhlIHNhbWUgdGhvdWdodCB0d2ljZSBpbiBvbmUgYHRob3VnaHRzW11gLlxuICAgIHNlZW4uYWRkKGtleSk7XG4gICAgb3V0LnB1c2goeyAuLi5sb2NhdGlvbiwgdGV4dDogdC5jb250ZW50LCB0aG91Z2h0X3R5cGU6IHQudGhvdWdodF90eXBlIH0pO1xuICB9XG4gIHJldHVybiBvdXQ7XG59KTtcblxuLyoqIFRleHQtYXR0YWNobWVudCBgY29udGVudGAgYXBwZWFyZWQgb3IgY2hhbmdlZC4gKi9cbmV4cG9ydCBjb25zdCBkZXRlY3RUZXh0ID0gZXZlbnREZXRlY3RvcihcInRleHRcIiwgKGN1cnJlbnQsIHByZXZpb3VzLCBsb2NhdGlvbikgPT4ge1xuICBjb25zdCBjdXJyID0gY3VycmVudC50ZXh0Py5jb250ZW50O1xuICBjb25zdCBwcmV2ID0gcHJldmlvdXM/LnRleHQ/LmNvbnRlbnQ7XG4gIGlmIChjdXJyID09PSB1bmRlZmluZWQgfHwgY3VyciA9PT0gcHJldikgcmV0dXJuO1xuICByZXR1cm4geyAuLi5sb2NhdGlvbiwgdGV4dDogY3VyciB9O1xufSk7XG5cbi8qKiBTUUwgdHJhbnNpdGlvbmVkIHVuZGVmaW5lZCAtPiBzdHJpbmcsIG9yIGNoYW5nZWQuICovXG5leHBvcnQgY29uc3QgZGV0ZWN0UXVlcnkgPSBldmVudERldGVjdG9yKFwicXVlcnlcIiwgKGN1cnJlbnQsIHByZXZpb3VzLCBsb2NhdGlvbikgPT4ge1xuICBjb25zdCBjdXJyID0gY3VycmVudC5xdWVyeT8ucXVlcnk7XG4gIGNvbnN0IHByZXYgPSBwcmV2aW91cz8ucXVlcnk/LnF1ZXJ5O1xuICBpZiAoIWN1cnIgfHwgY3VyciA9PT0gcHJldikgcmV0dXJuO1xuICByZXR1cm4ge1xuICAgIC4uLmxvY2F0aW9uLFxuICAgIHNxbDogY3VycixcbiAgICB0aXRsZTogY3VycmVudC5xdWVyeT8udGl0bGUsXG4gICAgZGVzY3JpcHRpb246IGN1cnJlbnQucXVlcnk/LmRlc2NyaXB0aW9uLFxuICB9O1xufSk7XG5cbi8qKiBXYXJlaG91c2Utc3RhdGVtZW50IGlkIGFzc2lnbmVkLiAqL1xuZXhwb3J0IGNvbnN0IGRldGVjdFN0YXRlbWVudCA9IGV2ZW50RGV0ZWN0b3IoXCJzdGF0ZW1lbnRcIiwgKGN1cnJlbnQsIHByZXZpb3VzLCBsb2NhdGlvbikgPT4ge1xuICBjb25zdCBjdXJyID0gY3VycmVudC5xdWVyeT8uc3RhdGVtZW50X2lkO1xuICBjb25zdCBwcmV2ID0gcHJldmlvdXM/LnF1ZXJ5Py5zdGF0ZW1lbnRfaWQ7XG4gIGlmICghY3VyciB8fCBjdXJyID09PSBwcmV2KSByZXR1cm47XG4gIHJldHVybiB7IC4uLmxvY2F0aW9uLCBzdGF0ZW1lbnRfaWQ6IGN1cnIgfTtcbn0pO1xuXG4vKipcbiAqIGByb3dfY291bnRgIGNoYW5nZWQgLSBmaXJlcyBvbiBldmVyeSB0cmFuc2l0aW9uIGluY2x1ZGluZyB0aGVcbiAqIGluaXRpYWwgYHVuZGVmaW5lZCAtPiAwYCBhbmQgdGhlIHBvc3QtZXhlY3V0aW9uIGAwIC0+IE5gLlxuICogQ2FycmllcyB0aGUgc3RhdGVtZW50IGlkIHdoZW4gYXZhaWxhYmxlIGZvciBjb3JyZWxhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGRldGVjdFJvd3MgPSBldmVudERldGVjdG9yKFwicm93c1wiLCAoY3VycmVudCwgcHJldmlvdXMsIGxvY2F0aW9uKSA9PiB7XG4gIGNvbnN0IGN1cnIgPSBjdXJyZW50LnF1ZXJ5Py5xdWVyeV9yZXN1bHRfbWV0YWRhdGE/LnJvd19jb3VudDtcbiAgY29uc3QgcHJldiA9IHByZXZpb3VzPy5xdWVyeT8ucXVlcnlfcmVzdWx0X21ldGFkYXRhPy5yb3dfY291bnQ7XG4gIGlmIChjdXJyID09PSB1bmRlZmluZWQgfHwgY3VyciA9PT0gcHJldikgcmV0dXJuO1xuICByZXR1cm4ge1xuICAgIC4uLmxvY2F0aW9uLFxuICAgIHJvd19jb3VudDogY3VycixcbiAgICBwcmV2aW91c19yb3dfY291bnQ6IHByZXYsXG4gICAgc3RhdGVtZW50X2lkOiBjdXJyZW50LnF1ZXJ5Py5zdGF0ZW1lbnRfaWQgPz8gcHJldmlvdXM/LnF1ZXJ5Py5zdGF0ZW1lbnRfaWQsXG4gIH07XG59KTtcblxuLyoqXG4gKiBGb2xsb3ctdXAgc3VnZ2VzdGVkLXF1ZXN0aW9ucyBhcnJheSBhcHBlYXJlZCBvciBjaGFuZ2VkLlxuICogQ29tcGFyZXMgc3RydWN0dXJhbGx5IHNvIGEgbGVuZ3RoLXByZXNlcnZpbmcgY29udGVudCByZXdyaXRlIHN0aWxsIGZpcmVzLlxuICovXG5leHBvcnQgY29uc3QgZGV0ZWN0U3VnZ2VzdGVkUXVlc3Rpb25zID0gZXZlbnREZXRlY3RvcihcbiAgXCJzdWdnZXN0ZWRfcXVlc3Rpb25zXCIsXG4gIChjdXJyZW50LCBwcmV2aW91cywgbG9jYXRpb24pID0+IHtcbiAgICBjb25zdCBjdXJyID0gY3VycmVudC5zdWdnZXN0ZWRfcXVlc3Rpb25zPy5xdWVzdGlvbnM7XG4gICAgY29uc3QgcHJldiA9IHByZXZpb3VzPy5zdWdnZXN0ZWRfcXVlc3Rpb25zPy5xdWVzdGlvbnM7XG4gICAgaWYgKCFjdXJyIHx8IGN1cnIubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgaWYgKG9iamVjdC5kZWVwRXF1YWwoY3VyciwgcHJldikpIHJldHVybjtcbiAgICByZXR1cm4geyAuLi5sb2NhdGlvbiwgcXVlc3Rpb25zOiBjdXJyIH07XG4gIH0sXG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gb3JjaGVzdHJhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFdhbGsgdGhlIGRpZmYgYmV0d2VlbiBgY3VycmVudGAgYW5kIGBwcmV2aW91c2AgYW5kIHlpZWxkIGV2ZXJ5XG4gKiBkZXJpdmVkIGV2ZW50IHRoZSBzbmFwc2hvdCBwcm9kdWNlZC4gRGV0ZWN0b3Igb3JkZXIgbWlycm9yc1xuICogR2VuaWUncyB3aXJlIG9yZGVyaW5nIChzdGF0dXMgZmlyc3QsIHRoZW4gcGVyLWF0dGFjaG1lbnQgZmllbGRcbiAqIGRlbHRhcykgc28gYSBzdWJzY3JpYmVyIHRoYXQgc2ltcGx5IGxvZ3MgZXZlbnRzIGFzIHRoZXkgYXJyaXZlXG4gKiBzZWVzIHRoZW0gaW4gYSBzZW5zaWJsZSBzZXF1ZW5jZS5cbiAqXG4gKiBDYWxsZXIgcmVzcG9uc2liaWxpdGllcyAobm90IGhhbmRsZWQgaGVyZSk6XG4gKlxuICogICAtIFlpZWxkIGB7IHR5cGU6IFwibWVzc2FnZVwiLCBtZXNzYWdlOiBjdXJyZW50IH1gIEJFRk9SRVxuICogICAgIGNhbGxpbmcgdGhpcywgb25jZSBwZXIgcG9sbCB5aWVsZC5cbiAqICAgLSBZaWVsZCBgeyB0eXBlOiBcInJlc3VsdFwiLCAuLi4gfWAgQUZURVIgY2FsbGluZyB0aGlzIHdoZW5cbiAqICAgICBgaXNUZXJtaW5hbFN0YXR1cyhjdXJyZW50LnN0YXR1cylgIC0gcGVyLXR1cm4gbGlmZWN5Y2xlLFxuICogICAgIG5vdCBhIHBlci1zbmFwc2hvdCBmaWVsZCBkaWZmLlxuICogICAtIERlY2lkZSB3aGF0IGNvdW50cyBhcyBhIFwiZnJlc2ggdHVyblwiIGFuZCBwYXNzIGB1bmRlZmluZWRgXG4gKiAgICAgZm9yIGBwcmV2aW91c2Agb24gdHVybiBib3VuZGFyaWVzLCBzbyBhbm9ueW1vdXMtYXR0YWNobWVudFxuICogICAgIHN0YXRlIGZyb20gYSBwcmlvciB0dXJuIGRvZXNuJ3QgYmxlZWQgaW4uXG4gKlxuICogU3luYyBnZW5lcmF0b3I6IHRoZSBkaWZmIGlzIHB1cmUgQ1BVIHdvcmssIG5vIGF3YWl0cy4gVXNlXG4gKiBgeWllbGQqYCBmcm9tIGFuIGFzeW5jIGdlbmVyYXRvciB0byBzcGxpY2UgdGhlIGV2ZW50cyBpbnRvIGFcbiAqIHN0cmVhbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uKiBldmVudHNGcm9tTWVzc2FnZShcbiAgY3VycmVudDogR2VuaWVNZXNzYWdlLFxuICBwcmV2aW91czogR2VuaWVNZXNzYWdlIHwgdW5kZWZpbmVkLFxuICBzcGFjZV9pZDogc3RyaW5nLFxuKTogR2VuZXJhdG9yPEdlbmllQ2hhdEV2ZW50LCB2b2lkLCB2b2lkPiB7XG4gIC8vIFN0YW1wIGB0eXBlYCBvbnRvIGVhY2ggZGV0ZWN0b3IgcmVzdWx0IGFuZCB5aWVsZCBpdC4gUmV0dXJuaW5nXG4gIC8vIGEgdHlwZWQgZ2VuZXJhdG9yIGtlZXBzIHRoZSBgeWllbGQqYCBjYWxsc2l0ZSB0aWR5LiBUaGUgZG91YmxlXG4gIC8vIGNhc3QgKGB1bmtub3duYCAtPiBgR2VuaWVDaGF0RXZlbnRgKSBpcyBuZWVkZWQgYmVjYXVzZSB0aGVcbiAgLy8gZ2VuZXJpYyBtZXJnZSBge3R5cGU6IFR9ICYgR2VuaWVDaGF0RXZlbnRGaWVsZHM8VD5gIGRvZXNuJ3RcbiAgLy8gc3RydWN0dXJhbGx5IG5hcnJvdyBiYWNrIHRvIGEgZGlzY3JpbWluYXRlZC11bmlvbiBtZW1iZXIgLVxuICAvLyBlYWNoIGRldGVjdG9yJ3MgcnVudGltZSBvdXRwdXQgaXMgc2hhcGVkIGNvcnJlY3RseSBieVxuICAvLyBjb25zdHJ1Y3Rpb24sIHNvIHRoZSBjYXN0IGlzIHNvdW5kLlxuICBmdW5jdGlvbiogZW1pdDxUIGV4dGVuZHMgR2VuaWVDaGF0RXZlbnRUeXBlPihcbiAgICBkZXRlY3RvcjogRXZlbnREZXRlY3RvcjxUPixcbiAgICByZXN1bHQ6IERldGVjdG9yUmVzdWx0PFQ+LFxuICApOiBHZW5lcmF0b3I8R2VuaWVDaGF0RXZlbnQsIHZvaWQsIHZvaWQ+IHtcbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpZWxkcyBvZiByZXN1bHQpIHtcbiAgICAgICAgeWllbGQgeyB0eXBlOiBkZXRlY3Rvci50eXBlLCAuLi5maWVsZHMgfSBhcyB1bmtub3duIGFzIEdlbmllQ2hhdEV2ZW50O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB5aWVsZCB7IHR5cGU6IGRldGVjdG9yLnR5cGUsIC4uLnJlc3VsdCB9IGFzIHVua25vd24gYXMgR2VuaWVDaGF0RXZlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gTWVzc2FnZS1zY29wZWQgZGV0ZWN0b3JzIHJ1biBvbmNlIHBlciBzbmFwc2hvdC5cbiAgeWllbGQqIGVtaXQoZGV0ZWN0U3RhdHVzLCBkZXRlY3RTdGF0dXMuZGV0ZWN0KGN1cnJlbnQsIHByZXZpb3VzLCBzcGFjZV9pZCkpO1xuXG4gIC8vIFBlci1hdHRhY2htZW50IGRldGVjdG9ycyBydW4gb25jZSBwZXIgYXR0YWNobWVudCBzbG90LlxuICBjb25zdCBjdXJyQXR0cyA9IGN1cnJlbnQuYXR0YWNobWVudHMgPz8gW107XG4gIGNvbnN0IHByZXZBdHRzID0gcHJldmlvdXM/LmF0dGFjaG1lbnRzID8/IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGN1cnJBdHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY3VyciA9IGN1cnJBdHRzW2ldITtcbiAgICBjb25zdCBwcmV2ID0gbWF0Y2hQcmV2QXR0YWNobWVudChjdXJyLCBwcmV2QXR0cywgaSk7XG4gICAgY29uc3QgbG9jYXRpb246IEdlbmllQ2hhdExvY2F0aW9uID0ge1xuICAgICAgc3BhY2VfaWQsXG4gICAgICBjb252ZXJzYXRpb25faWQ6IGN1cnJlbnQuY29udmVyc2F0aW9uX2lkLFxuICAgICAgbWVzc2FnZV9pZDogY3VycmVudC5tZXNzYWdlX2lkLFxuICAgICAgYXR0YWNobWVudF9pZDogY3Vyci5hdHRhY2htZW50X2lkLFxuICAgIH07XG4gICAgeWllbGQqIGVtaXQoZGV0ZWN0QXR0YWNobWVudEFkZGVkLCBkZXRlY3RBdHRhY2htZW50QWRkZWQuZGV0ZWN0KGN1cnIsIHByZXYsIGxvY2F0aW9uLCBpKSk7XG4gICAgeWllbGQqIGVtaXQoZGV0ZWN0VGhpbmtpbmcsIGRldGVjdFRoaW5raW5nLmRldGVjdChjdXJyLCBwcmV2LCBsb2NhdGlvbiwgaSkpO1xuICAgIHlpZWxkKiBlbWl0KGRldGVjdFRleHQsIGRldGVjdFRleHQuZGV0ZWN0KGN1cnIsIHByZXYsIGxvY2F0aW9uLCBpKSk7XG4gICAgeWllbGQqIGVtaXQoZGV0ZWN0UXVlcnksIGRldGVjdFF1ZXJ5LmRldGVjdChjdXJyLCBwcmV2LCBsb2NhdGlvbiwgaSkpO1xuICAgIHlpZWxkKiBlbWl0KGRldGVjdFN0YXRlbWVudCwgZGV0ZWN0U3RhdGVtZW50LmRldGVjdChjdXJyLCBwcmV2LCBsb2NhdGlvbiwgaSkpO1xuICAgIHlpZWxkKiBlbWl0KGRldGVjdFJvd3MsIGRldGVjdFJvd3MuZGV0ZWN0KGN1cnIsIHByZXYsIGxvY2F0aW9uLCBpKSk7XG4gICAgeWllbGQqIGVtaXQoZGV0ZWN0U3VnZ2VzdGVkUXVlc3Rpb25zLCBkZXRlY3RTdWdnZXN0ZWRRdWVzdGlvbnMuZGV0ZWN0KGN1cnIsIHByZXYsIGxvY2F0aW9uLCBpKSk7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gaGVscGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEZpbmQgdGhlIHByaW9yIHZlcnNpb24gb2YgYGN1cnJgIGluIGBwcmV2QXR0c2AuIEF0dGFjaG1lbnRzXG4gKiB3aXRoIGlkcyBtYXRjaCBieSBpZCAoR2VuaWUga2VlcHMgaWRzIHN0YWJsZSBhY3Jvc3MgcG9sbHMpO1xuICogYW5vbnltb3VzIGF0dGFjaG1lbnRzIChHZW5pZSdzIG1haW4tYW5zd2VyIHRleHQgZG9lc24ndCBnZXRcbiAqIG9uZSkgbWF0Y2ggcG9zaXRpb25hbGx5IGFnYWluc3QgYW4gYW5vbnltb3VzIHByZXYgYXQgdGhlIHNhbWVcbiAqIGluZGV4LCBzbyB0aGV5IGRvbid0IGFjY2lkZW50YWxseSBiaW5kIHRvIGFuIGlkJ2QgcHJlZGVjZXNzb3JcbiAqIHRoYXQgaGFwcGVuZWQgdG8gc2hhcmUgdGhlIHNsb3QuXG4gKi9cbmZ1bmN0aW9uIG1hdGNoUHJldkF0dGFjaG1lbnQoXG4gIGN1cnI6IEdlbmllQXR0YWNobWVudCxcbiAgcHJldkF0dHM6IEdlbmllQXR0YWNobWVudFtdLFxuICBpOiBudW1iZXIsXG4pOiBHZW5pZUF0dGFjaG1lbnQgfCB1bmRlZmluZWQge1xuICBpZiAoY3Vyci5hdHRhY2htZW50X2lkKSB7XG4gICAgcmV0dXJuIHByZXZBdHRzLmZpbmQoKGEpID0+IGEuYXR0YWNobWVudF9pZCA9PT0gY3Vyci5hdHRhY2htZW50X2lkKTtcbiAgfVxuICBjb25zdCBwID0gcHJldkF0dHNbaV07XG4gIHJldHVybiBwICYmICFwLmF0dGFjaG1lbnRfaWQgPyBwIDogdW5kZWZpbmVkO1xufVxuXG4vKiogU3RhYmxlIGtleSBmb3Ige0BsaW5rIGRldGVjdFRoaW5raW5nfSdzIHZhbHVlLWJhc2VkIHNldCBkaWZmLiAqL1xuZnVuY3Rpb24gdGhvdWdodEtleSh0OiBHZW5pZVRob3VnaHQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7dC50aG91Z2h0X3R5cGV9fCR7dC5jb250ZW50fWA7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"zod": "4.3.6",
|
|
15
|
-
"@dbx-tools/shared-core": "0.
|
|
16
|
-
"@dbx-tools/shared-sdk-model": "0.
|
|
15
|
+
"@dbx-tools/shared-core": "0.5.0",
|
|
16
|
+
"@dbx-tools/shared-sdk-model": "0.5.0"
|
|
17
17
|
},
|
|
18
18
|
"main": "./lib/index.js",
|
|
19
19
|
"license": "UNLICENSED",
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"access": "public"
|
|
22
22
|
},
|
|
23
|
-
"version": "0.
|
|
23
|
+
"version": "0.5.0",
|
|
24
24
|
"types": "./lib/index.d.ts",
|
|
25
25
|
"type": "module",
|
|
26
26
|
"exports": {
|