@dbx-tools/appkit-mastra 0.9.143 → 0.9.144
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 +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/src/follow-up-suggestions.js +32 -11
- package/package.json +16 -16
- package/src/follow-up-suggestions.ts +29 -10
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/appkit-mastra";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.144";
|
|
7
7
|
export * as agents from "./src/agents.ts";
|
|
8
8
|
export * as chart from "./src/chart.ts";
|
|
9
9
|
export * as chat from "./src/chat.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-mastra";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.144";
|
|
3
3
|
export * as agents from "./src/agents.ts";
|
|
4
4
|
export * as chart from "./src/chart.ts";
|
|
5
5
|
export * as chat from "./src/chat.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/appkit-mastra";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.144";
|
|
6
6
|
export * as agents from "./src/agents.js";
|
|
7
7
|
export * as chart from "./src/chart.js";
|
|
8
8
|
export * as chat from "./src/chat.js";
|
|
@@ -63,4 +63,4 @@ export { TITLE_INSTRUCTIONS } from "./src/summarize.js";
|
|
|
63
63
|
export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR, CHAT_MESSAGES_ATTR, CHAT_RESPONSE_ATTR, CHAT_IDENTITY_ATTR, CHAT_GENIE_USED_ATTR, MLFLOW_SPAN_TYPE_ATTR, GEN_AI_OPERATION_NAME_ATTR, MLFLOW_USER_ATTR, MLFLOW_SESSION_ATTR, MLFLOW_SPAN_TYPE_AGENT, MLFLOW_SPAN_TYPE_GENIE, AppMlflowTraceInfoSpanProcessor } from "./src/telemetry.js";
|
|
64
64
|
export { MLFLOW_TRACE_TAG_PREFIX, MLFLOW_AGENT_TAG, MLFLOW_GENIE_TAG, MLFLOW_OBO_AUTH_TAG, MLFLOW_SP_AUTH_TAG, MLFLOW_LOCAL_TAG, MLFLOW_AGENT_TAG_ATTR, MLFLOW_GENIE_TAG_ATTR, APPKIT_AGENT_TRACE_ROOT_ATTR, MLFLOW_OBO_AUTH_TAG_ATTR, MLFLOW_SP_AUTH_TAG_ATTR, MLFLOW_LOCAL_TAG_ATTR } from "./src/trace-attributes.js";
|
|
65
65
|
export { DEFAULT_DATABRICKS_WORKSPACE_PATHS } from "./src/workspaces.js";
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLG1CQUFtQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLGFBQWEsTUFBTSx3QkFBd0IsQ0FB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LE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcFcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFelQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tYXN0cmFcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xNDNcIjtcbmV4cG9ydCAqIGFzIGFnZW50cyBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgKiBhcyBjaGFydCBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXQgZnJvbSBcIi4vc3JjL2NoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCAqIGFzIGV2YWx1YXRpb24gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZlZWRiYWNrTW9kZSBmcm9tIFwiLi9zcmMvZmVlZGJhY2stbW9kZS50c1wiO1xuZXhwb3J0ICogYXMgZmlsZXN5c3RlbXMgZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgKiBhcyBmb2xsb3dVcFN1Z2dlc3Rpb25zIGZyb20gXCIuL3NyYy9mb2xsb3ctdXAtc3VnZ2VzdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDaGF0IGZyb20gXCIuL3NyYy9nZW5pZS1jaGF0LnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIG1jcCBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgKiBhcyBtZW1vcnkgZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0ICogYXMgbWxmbG93IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0ICogYXMgbW9udHlTYW5kYm94IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0ICogYXMgcmVtb3RlU2tpbGxzIGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgKiBhcyByZXF1ZXN0Q29udGV4dCBmcm9tIFwiLi9zcmMvcmVxdWVzdC1jb250ZXh0LnRzXCI7XG5leHBvcnQgKiBhcyByZXN0IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZyBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9UT09MX1dPUktGTE9XX0lOU1RSVUNUSU9OUywgQ09ERV9NT0RFX1JPVVRJTkdfSU5TVFJVQ1RJT05TLCBERUZBVUxUX1NUWUxFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhVG9vbHMsIEFwcEtpdFRvb2xPcHRpb25zLCBUb29sa2l0T3B0aW9ucywgTWFzdHJhUGx1Z2luVG9vbGtpdFByb3ZpZGVyLCBNYXN0cmFQbHVnaW5zLCBNYXN0cmFUb29sc0ZuLCBNYXN0cmFBZ2VudFdvcmtzcGFjZVJlc29sdmVyLCBNYXN0cmFBZ2VudERlZmluaXRpb24sIEFueU1hc3RyYUFnZW50RGVmaW5pdGlvbiwgTWFzdHJhU3RvcmFnZUNvbmZpZ092ZXJyaWRlLCBNYXN0cmFNZW1vcnlDb25maWdPdmVycmlkZSwgQWdlbnREZWZhdWx0TW9kZWwsIEJ1aWx0QWdlbnRzLCBNYXN0cmFPdXRwdXRQcm9jZXNzb3JGYWN0b3J5IH0gZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0IHsgY2hhcnRQbGFuU2NoZW1hLCBjaGFydFBsYW5uZXJSZXF1ZXN0U2NoZW1hLCBjaGFydFRvb2xPdXRwdXRTY2hlbWEgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhcnRQbGFubmVyUmVxdWVzdCwgQ2hhcnRUb29sT3V0cHV0LCBQcmVwYXJlQ2hhcnRPcHRpb25zLCBGZXRjaENoYXJ0T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0IHsgTUFTVFJBX1VTRVJfS0VZLCBNQVNUUkFfVVNFUl9OQU1FX0tFWSwgTUFTVFJBX1VTRVJfRU1BSUxfS0VZLCBNQVNUUkFfQVVUSF9NT0RFX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVdvcmtzcGFjZVNraWxsc0NvbmZpZywgTWFzdHJhQ29kZU1vZGVUcmFuc3BvcnQsIE1hc3RyYUNvZGVNb2RlQ29uZmlnLCBNYXN0cmFNY3BDb25maWcsIEZvbGxvd1VwU3VnZ2VzdGlvbnNDb25maWcsIE1hc3RyYVBsdWdpbkNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IG1vZGVsQ2F0YWxvZ3VlRGVmYXVsdHMsIGdlbmllU3VnZ2VzdGlvbkRlZmF1bHRzLCBnZW5pZUNvbnZlcnNhdGlvblJlYWREZWZhdWx0cywgZ2VuaWVDb252ZXJzYXRpb25Xcml0ZURlZmF1bHRzLCBzdGF0ZW1lbnREYXRhRGVmYXVsdHMsIGNoYXJ0RmV0Y2hEZWZhdWx0cywgZmVlZGJhY2tXcml0ZURlZmF1bHRzIH0gZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUV2YWxEcml2ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgRmVlZGJhY2tBdmFpbGFiaWxpdHkgfSBmcm9tIFwiLi9zcmMvZmVlZGJhY2stbW9kZS50c1wiO1xuZXhwb3J0IHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXIsIE1vdW50ZWRDb21wb3NpdGVGaWxlc3lzdGVtIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUZpbGVTeXN0ZW1BZGFwdGVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0IHsgRk9MTE9XX1VQX1VTRVJfVEVYVF9LRVksIEZPTExPV19VUF9OQVRJVkVfUVVFU1RJT05TX0tFWSwgRk9MTE9XX1VQX1JVTl9JRF9LRVkgfSBmcm9tIFwiLi9zcmMvZm9sbG93LXVwLXN1Z2dlc3Rpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkRm9sbG93VXBTdWdnZXN0aW9uc0NvbmZpZywgU3VnZ2VzdEZvbGxvd1Vwc09wdGlvbnMsIEZvbGxvd1VwU3VnZ2VzdGVyIH0gZnJvbSBcIi4vc3JjL2ZvbGxvdy11cC1zdWdnZXN0aW9ucy50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9HRU5JRV9BTElBUywgR0VOSUVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllU3BhY2VDb25maWcsIEdlbmllU3BhY2VzQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllQ2hhdFNwYWNlIH0gZnJvbSBcIi4vc3JjL2dlbmllLWNoYXQudHNcIjtcbmV4cG9ydCB7IElERU5USVRZX0VOViwgSURFTlRJVFlfTU9ERVMsIERFRkFVTFRfSURFTlRJVFlfTU9ERSwgVVNFUl9JRF9IRUFERVIsIFVTRVJfRU1BSUxfSEVBREVSLCByZXF1ZXN0VXNlcklkLCByZXF1ZXN0VXNlckVtYWlsLCB1c2VTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUlkZW50aXR5TW9kZSB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXNvbHZlZE1jcCB9IGZyb20gXCIuL3NyYy9tY3AudHNcIjtcbmV4cG9ydCB7IE1lbW9yeUJ1aWxkZXIgfSBmcm9tIFwiLi9zcmMvbWVtb3J5LnRzXCI7XG5leHBvcnQgeyBBZ2VudFRyYWNlU3BhblByb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwTWxmbG93VHJhY2VJbmZvLCBMb2dGZWVkYmFja1BhcmFtcyB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB7IFJFU1BPTlNFU19QUk9WSURFUl9PUFRJT05TIH0gZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkTW9kZWxPdmVycmlkZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB7IE1vbnR5U2FuZGJveCB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vbnR5U2FuZGJveE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdWlsZE9ic2VydmFiaWxpdHlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29ic2VydmFiaWxpdHkudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVBsdWdpbiwgbWFzdHJhIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0IHsgc3RyaXBTdGFsZUNoYXJ0c1Byb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9wcm9jZXNzb3JzLnRzXCI7XG5leHBvcnQgeyBBSVRPT0xTX1NLSUxMU19NT1VOVCwgUkVNT1RFX1NLSUxMU19NT1VOVCwgQUlUT09MU19SRUZSRVNIX1RUTF9NUywgQUlUT09MU19TT1VSQ0UgfSBmcm9tIFwiLi9zcmMvcmVtb3RlLXNraWxscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBaVRvb2xzU291cmNlLCBSZW1vdGVTa2lsbFNvdXJjZU9wdGlvbnMsIFJlbW90ZVNraWxsU291cmNlLCBSZW1vdGVTa2lsbHNPcHRpb24sIExvY2FsU2tpbGxEaXJlY3RvcnlNb3VudCwgTWVtb3J5U2tpbGxNb3VudCwgTG9jYWxTa2lsbE1vdW50LCBQcm92aXNpb25SZW1vdGVTa2lsbHNPcHRpb25zLCBQcm92aXNpb25lZFJlbW90ZVNraWxscywgUmVtb3RlU2tpbGxDYWNoZUVudHJ5LCBSZW1vdGVTa2lsbHNNZXRhZGF0YSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfT1JJR0lOX0tFWSB9IGZyb20gXCIuL3NyYy9yZXF1ZXN0LWNvbnRleHQudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc0ZldGNoSW5pdCB9IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgeyBNYXN0cmFTZXJ2ZXIgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF0dHJpYnV0ZWRJZGVudGl0eSwgTWFzdHJhQXBpR2F0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZLCBNQVNUUkFfUkVTT0xWRURfTU9ERUxfS0VZIH0gZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxPdmVycmlkZVJlcXVlc3QgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHsgT1JHQU5JWkFUSU9OX0FTU0lTVEFOVF9QQVRILCBPUkdBTklaQVRJT05fU0tJTExTX1BBVEggfSBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCB7IFNUQVRFTUVOVF9ST1dfQ0FQIH0gZnJvbSBcIi4vc3JjL3N0YXRlbWVudC50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdGF0ZW1lbnRFbWJlZERhdGEgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgeyBUWVBPR1JBUEhZX1JVTEUgfSBmcm9tIFwiLi9zcmMvc3R5bGUudHNcIjtcbmV4cG9ydCB7IFRJVExFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB0eXBlIHsgU3VtbWFyaXplT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB7IFRSQUNFX0lPX0xJTUlULCBNTEZMT1dfU1BBTl9JTlBVVFNfQVRUUiwgTUxGTE9XX1NQQU5fT1VUUFVUU19BVFRSLCBDSEFUX01FU1NBR0VTX0FUVFIsIENIQVRfUkVTUE9OU0VfQVRUUiwgQ0hBVF9JREVOVElUWV9BVFRSLCBDSEFUX0dFTklFX1VTRURfQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BVFRSLCBHRU5fQUlfT1BFUkFUSU9OX05BTUVfQVRUUiwgTUxGTE9XX1VTRVJfQVRUUiwgTUxGTE9XX1NFU1NJT05fQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BR0VOVCwgTUxGTE9XX1NQQU5fVFlQRV9HRU5JRSwgQXBwTWxmbG93VHJhY2VJbmZvU3BhblByb2Nlc3NvciB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhdFR1cm5UZWxlbWV0cnlPcHRpb25zLCBDaGF0VHJhY2VUYWdWYWx1ZSB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB7IE1MRkxPV19UUkFDRV9UQUdfUFJFRklYLCBNTEZMT1dfQUdFTlRfVEFHLCBNTEZMT1dfR0VOSUVfVEFHLCBNTEZMT1dfT0JPX0FVVEhfVEFHLCBNTEZMT1dfU1BfQVVUSF9UQUcsIE1MRkxPV19MT0NBTF9UQUcsIE1MRkxPV19BR0VOVF9UQUdfQVRUUiwgTUxGTE9XX0dFTklFX1RBR19BVFRSLCBBUFBLSVRfQUdFTlRfVFJBQ0VfUk9PVF9BVFRSLCBNTEZMT1dfT0JPX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19TUF9BVVRIX1RBR19BVFRSLCBNTEZMT1dfTE9DQUxfVEFHX0FUVFIgfSBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBTY2hlbWFJc3N1ZXMgfSBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9EQVRBQlJJQ0tTX1dPUktTUEFDRV9QQVRIUyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NXb3Jrc3BhY2VDb250ZXh0LCBEYXRhYnJpY2tzV29ya3NwYWNlUGF0aE9wdGlvbnMsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoLCBEYXRhYnJpY2tzV29ya3NwYWNlUGF0aFZhbHVlLCBEYXRhYnJpY2tzV29ya3NwYWNlQ2FjaGVGaWx0ZXIsIERhdGFicmlja3NXb3Jrc3BhY2VDYWNoZSwgV29ya3NwYWNlU2FuZGJveFNlbGVjdGlvbiwgRGF0YWJyaWNrc1dvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuIl19
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLG1CQUFtQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLGFBQWEsTUFBTSx3QkFBd0IsQ0FB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LE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcFcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFelQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tYXN0cmFcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xNDRcIjtcbmV4cG9ydCAqIGFzIGFnZW50cyBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgKiBhcyBjaGFydCBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXQgZnJvbSBcIi4vc3JjL2NoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCAqIGFzIGV2YWx1YXRpb24gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZlZWRiYWNrTW9kZSBmcm9tIFwiLi9zcmMvZmVlZGJhY2stbW9kZS50c1wiO1xuZXhwb3J0ICogYXMgZmlsZXN5c3RlbXMgZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgKiBhcyBmb2xsb3dVcFN1Z2dlc3Rpb25zIGZyb20gXCIuL3NyYy9mb2xsb3ctdXAtc3VnZ2VzdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWVDaGF0IGZyb20gXCIuL3NyYy9nZW5pZS1jaGF0LnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIG1jcCBmcm9tIFwiLi9zcmMvbWNwLnRzXCI7XG5leHBvcnQgKiBhcyBtZW1vcnkgZnJvbSBcIi4vc3JjL21lbW9yeS50c1wiO1xuZXhwb3J0ICogYXMgbWxmbG93IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0ICogYXMgbW9udHlTYW5kYm94IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0ICogYXMgcmVtb3RlU2tpbGxzIGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgKiBhcyByZXF1ZXN0Q29udGV4dCBmcm9tIFwiLi9zcmMvcmVxdWVzdC1jb250ZXh0LnRzXCI7XG5leHBvcnQgKiBhcyByZXN0IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZyBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0ICogYXMgc2tpbGxQYXRocyBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCAqIGFzIHN0YXRlbWVudCBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgKiBhcyBzdG9yYWdlU2NoZW1hIGZyb20gXCIuL3NyYy9zdG9yYWdlLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgc3R5bGUgZnJvbSBcIi4vc3JjL3N0eWxlLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRyYWNlQXR0cmlidXRlcyBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXIudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX0FHRU5UX0lELCBERUZBVUxUX0FHRU5UX01BWF9TVEVQUywgREVGQVVMVF9UT09MX1dPUktGTE9XX0lOU1RSVUNUSU9OUywgQ09ERV9NT0RFX1JPVVRJTkdfSU5TVFJVQ1RJT05TLCBERUZBVUxUX1NUWUxFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhVG9vbHMsIEFwcEtpdFRvb2xPcHRpb25zLCBUb29sa2l0T3B0aW9ucywgTWFzdHJhUGx1Z2luVG9vbGtpdFByb3ZpZGVyLCBNYXN0cmFQbHVnaW5zLCBNYXN0cmFUb29sc0ZuLCBNYXN0cmFBZ2VudFdvcmtzcGFjZVJlc29sdmVyLCBNYXN0cmFBZ2VudERlZmluaXRpb24sIEFueU1hc3RyYUFnZW50RGVmaW5pdGlvbiwgTWFzdHJhU3RvcmFnZUNvbmZpZ092ZXJyaWRlLCBNYXN0cmFNZW1vcnlDb25maWdPdmVycmlkZSwgQWdlbnREZWZhdWx0TW9kZWwsIEJ1aWx0QWdlbnRzLCBNYXN0cmFPdXRwdXRQcm9jZXNzb3JGYWN0b3J5IH0gZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0IHsgY2hhcnRQbGFuU2NoZW1hLCBjaGFydFBsYW5uZXJSZXF1ZXN0U2NoZW1hLCBjaGFydFRvb2xPdXRwdXRTY2hlbWEgfSBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhcnRQbGFubmVyUmVxdWVzdCwgQ2hhcnRUb29sT3V0cHV0LCBQcmVwYXJlQ2hhcnRPcHRpb25zLCBGZXRjaENoYXJ0T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0IHsgTUFTVFJBX1VTRVJfS0VZLCBNQVNUUkFfVVNFUl9OQU1FX0tFWSwgTUFTVFJBX1VTRVJfRU1BSUxfS0VZLCBNQVNUUkFfQVVUSF9NT0RFX0tFWSwgTUFTVFJBX1JFUVVFU1RfSURfS0VZLCBNQVNUUkFfU0NPUEVTX0tFWSwgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMsIE1BU1RSQV9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVc2VyLCBNYXN0cmFNZW1vcnlDb25maWcsIE1hc3RyYVdvcmtzcGFjZVNraWxsc0NvbmZpZywgTWFzdHJhQ29kZU1vZGVUcmFuc3BvcnQsIE1hc3RyYUNvZGVNb2RlQ29uZmlnLCBNYXN0cmFNY3BDb25maWcsIEZvbGxvd1VwU3VnZ2VzdGlvbnNDb25maWcsIE1hc3RyYVBsdWdpbkNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IG1vZGVsQ2F0YWxvZ3VlRGVmYXVsdHMsIGdlbmllU3VnZ2VzdGlvbkRlZmF1bHRzLCBnZW5pZUNvbnZlcnNhdGlvblJlYWREZWZhdWx0cywgZ2VuaWVDb252ZXJzYXRpb25Xcml0ZURlZmF1bHRzLCBzdGF0ZW1lbnREYXRhRGVmYXVsdHMsIGNoYXJ0RmV0Y2hEZWZhdWx0cywgZmVlZGJhY2tXcml0ZURlZmF1bHRzIH0gZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUV2YWxEcml2ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgRmVlZGJhY2tBdmFpbGFiaWxpdHkgfSBmcm9tIFwiLi9zcmMvZmVlZGJhY2stbW9kZS50c1wiO1xuZXhwb3J0IHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXIsIE1vdW50ZWRDb21wb3NpdGVGaWxlc3lzdGVtIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUZpbGVTeXN0ZW1BZGFwdGVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0IHsgRk9MTE9XX1VQX1VTRVJfVEVYVF9LRVksIEZPTExPV19VUF9OQVRJVkVfUVVFU1RJT05TX0tFWSwgRk9MTE9XX1VQX1JVTl9JRF9LRVkgfSBmcm9tIFwiLi9zcmMvZm9sbG93LXVwLXN1Z2dlc3Rpb25zLnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkRm9sbG93VXBTdWdnZXN0aW9uc0NvbmZpZywgU3VnZ2VzdEZvbGxvd1Vwc09wdGlvbnMsIEZvbGxvd1VwU3VnZ2VzdGVyIH0gZnJvbSBcIi4vc3JjL2ZvbGxvdy11cC1zdWdnZXN0aW9ucy50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9HRU5JRV9BTElBUywgR0VOSUVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllU3BhY2VDb25maWcsIEdlbmllU3BhY2VzQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllQ2hhdFNwYWNlIH0gZnJvbSBcIi4vc3JjL2dlbmllLWNoYXQudHNcIjtcbmV4cG9ydCB7IElERU5USVRZX0VOViwgSURFTlRJVFlfTU9ERVMsIERFRkFVTFRfSURFTlRJVFlfTU9ERSwgVVNFUl9JRF9IRUFERVIsIFVTRVJfRU1BSUxfSEVBREVSLCByZXF1ZXN0VXNlcklkLCByZXF1ZXN0VXNlckVtYWlsLCB1c2VTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUlkZW50aXR5TW9kZSB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXNvbHZlZE1jcCB9IGZyb20gXCIuL3NyYy9tY3AudHNcIjtcbmV4cG9ydCB7IE1lbW9yeUJ1aWxkZXIgfSBmcm9tIFwiLi9zcmMvbWVtb3J5LnRzXCI7XG5leHBvcnQgeyBBZ2VudFRyYWNlU3BhblByb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwTWxmbG93VHJhY2VJbmZvLCBMb2dGZWVkYmFja1BhcmFtcyB9IGZyb20gXCIuL3NyYy9tbGZsb3cudHNcIjtcbmV4cG9ydCB7IFJFU1BPTlNFU19QUk9WSURFUl9PUFRJT05TIH0gZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkTW9kZWxPdmVycmlkZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB7IE1vbnR5U2FuZGJveCB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IE1vbnR5U2FuZGJveE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbW9udHktc2FuZGJveC50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdWlsZE9ic2VydmFiaWxpdHlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29ic2VydmFiaWxpdHkudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVBsdWdpbiwgbWFzdHJhIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0IHsgc3RyaXBTdGFsZUNoYXJ0c1Byb2Nlc3NvciB9IGZyb20gXCIuL3NyYy9wcm9jZXNzb3JzLnRzXCI7XG5leHBvcnQgeyBBSVRPT0xTX1NLSUxMU19NT1VOVCwgUkVNT1RFX1NLSUxMU19NT1VOVCwgQUlUT09MU19SRUZSRVNIX1RUTF9NUywgQUlUT09MU19TT1VSQ0UgfSBmcm9tIFwiLi9zcmMvcmVtb3RlLXNraWxscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBaVRvb2xzU291cmNlLCBSZW1vdGVTa2lsbFNvdXJjZU9wdGlvbnMsIFJlbW90ZVNraWxsU291cmNlLCBSZW1vdGVTa2lsbHNPcHRpb24sIExvY2FsU2tpbGxEaXJlY3RvcnlNb3VudCwgTWVtb3J5U2tpbGxNb3VudCwgTG9jYWxTa2lsbE1vdW50LCBQcm92aXNpb25SZW1vdGVTa2lsbHNPcHRpb25zLCBQcm92aXNpb25lZFJlbW90ZVNraWxscywgUmVtb3RlU2tpbGxDYWNoZUVudHJ5LCBSZW1vdGVTa2lsbHNNZXRhZGF0YSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfT1JJR0lOX0tFWSB9IGZyb20gXCIuL3NyYy9yZXF1ZXN0LWNvbnRleHQudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc0ZldGNoSW5pdCB9IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgeyBNYXN0cmFTZXJ2ZXIgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF0dHJpYnV0ZWRJZGVudGl0eSwgTWFzdHJhQXBpR2F0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZLCBNQVNUUkFfUkVTT0xWRURfTU9ERUxfS0VZIH0gZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxPdmVycmlkZVJlcXVlc3QgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHsgT1JHQU5JWkFUSU9OX0FTU0lTVEFOVF9QQVRILCBPUkdBTklaQVRJT05fU0tJTExTX1BBVEggfSBmcm9tIFwiLi9zcmMvc2tpbGwtcGF0aHMudHNcIjtcbmV4cG9ydCB7IFNUQVRFTUVOVF9ST1dfQ0FQIH0gZnJvbSBcIi4vc3JjL3N0YXRlbWVudC50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdGF0ZW1lbnRFbWJlZERhdGEgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgeyBUWVBPR1JBUEhZX1JVTEUgfSBmcm9tIFwiLi9zcmMvc3R5bGUudHNcIjtcbmV4cG9ydCB7IFRJVExFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB0eXBlIHsgU3VtbWFyaXplT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zdW1tYXJpemUudHNcIjtcbmV4cG9ydCB7IFRSQUNFX0lPX0xJTUlULCBNTEZMT1dfU1BBTl9JTlBVVFNfQVRUUiwgTUxGTE9XX1NQQU5fT1VUUFVUU19BVFRSLCBDSEFUX01FU1NBR0VTX0FUVFIsIENIQVRfUkVTUE9OU0VfQVRUUiwgQ0hBVF9JREVOVElUWV9BVFRSLCBDSEFUX0dFTklFX1VTRURfQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BVFRSLCBHRU5fQUlfT1BFUkFUSU9OX05BTUVfQVRUUiwgTUxGTE9XX1VTRVJfQVRUUiwgTUxGTE9XX1NFU1NJT05fQVRUUiwgTUxGTE9XX1NQQU5fVFlQRV9BR0VOVCwgTUxGTE9XX1NQQU5fVFlQRV9HRU5JRSwgQXBwTWxmbG93VHJhY2VJbmZvU3BhblByb2Nlc3NvciB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2hhdFR1cm5UZWxlbWV0cnlPcHRpb25zLCBDaGF0VHJhY2VUYWdWYWx1ZSB9IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCB7IE1MRkxPV19UUkFDRV9UQUdfUFJFRklYLCBNTEZMT1dfQUdFTlRfVEFHLCBNTEZMT1dfR0VOSUVfVEFHLCBNTEZMT1dfT0JPX0FVVEhfVEFHLCBNTEZMT1dfU1BfQVVUSF9UQUcsIE1MRkxPV19MT0NBTF9UQUcsIE1MRkxPV19BR0VOVF9UQUdfQVRUUiwgTUxGTE9XX0dFTklFX1RBR19BVFRSLCBBUFBLSVRfQUdFTlRfVFJBQ0VfUk9PVF9BVFRSLCBNTEZMT1dfT0JPX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19TUF9BVVRIX1RBR19BVFRSLCBNTEZMT1dfTE9DQUxfVEFHX0FUVFIgfSBmcm9tIFwiLi9zcmMvdHJhY2UtYXR0cmlidXRlcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBTY2hlbWFJc3N1ZXMgfSBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9EQVRBQlJJQ0tTX1dPUktTUEFDRV9QQVRIUyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NXb3Jrc3BhY2VDb250ZXh0LCBEYXRhYnJpY2tzV29ya3NwYWNlUGF0aE9wdGlvbnMsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoLCBEYXRhYnJpY2tzV29ya3NwYWNlUGF0aFZhbHVlLCBEYXRhYnJpY2tzV29ya3NwYWNlQ2FjaGVGaWx0ZXIsIERhdGFicmlja3NXb3Jrc3BhY2VDYWNoZSwgV29ya3NwYWNlU2FuZGJveFNlbGVjdGlvbiwgRGF0YWJyaWNrc1dvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvd29ya3NwYWNlcy50c1wiO1xuIl19
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import { asyncUtils, errorUtils, log, stringUtils } from "@dbx-tools/shared-core";
|
|
6
|
+
import { asyncUtils, errorUtils, log, object, stringUtils } from "@dbx-tools/shared-core";
|
|
7
7
|
import { FOLLOW_UP_SUGGESTIONS_PART_TYPE, FollowUpSuggestionsPartDataSchema, } from "@dbx-tools/shared-mastra/wire";
|
|
8
8
|
import { model } from "@dbx-tools/shared-model";
|
|
9
9
|
import { Agent } from "@mastra/core/agent";
|
|
@@ -136,17 +136,38 @@ function acceptedQuestions(questions, options, maxQuestions) {
|
|
|
136
136
|
}
|
|
137
137
|
return accepted;
|
|
138
138
|
}
|
|
139
|
+
function toolActivityValue(value) {
|
|
140
|
+
if (!object.isRecord(value))
|
|
141
|
+
return undefined;
|
|
142
|
+
return object.isRecord(value.payload) ? value.payload : value;
|
|
143
|
+
}
|
|
144
|
+
function toolActivityName(value) {
|
|
145
|
+
if (typeof value.toolName === "string")
|
|
146
|
+
return value.toolName;
|
|
147
|
+
return typeof value.name === "string" ? value.name : undefined;
|
|
148
|
+
}
|
|
139
149
|
function serializedTurnContext(steps) {
|
|
140
150
|
const activity = steps.flatMap((step) => [
|
|
141
|
-
...step.toolCalls.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
tool:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
151
|
+
...(step.toolCalls ?? []).flatMap((call) => {
|
|
152
|
+
const value = toolActivityValue(call);
|
|
153
|
+
const tool = value ? toolActivityName(value) : undefined;
|
|
154
|
+
if (!value || !tool)
|
|
155
|
+
return [];
|
|
156
|
+
return [{ tool, input: value.args ?? value.input }];
|
|
157
|
+
}),
|
|
158
|
+
...(step.toolResults ?? []).flatMap((result) => {
|
|
159
|
+
const value = toolActivityValue(result);
|
|
160
|
+
const tool = value ? toolActivityName(value) : undefined;
|
|
161
|
+
if (!value || !tool)
|
|
162
|
+
return [];
|
|
163
|
+
return [
|
|
164
|
+
{
|
|
165
|
+
tool,
|
|
166
|
+
output: value.result ?? value.output,
|
|
167
|
+
...(value.isError || value.error ? { isError: true } : {}),
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
}),
|
|
150
171
|
]);
|
|
151
172
|
if (activity.length === 0)
|
|
152
173
|
return undefined;
|
|
@@ -319,4 +340,4 @@ export function buildSuggestFollowUpsTool(config) {
|
|
|
319
340
|
},
|
|
320
341
|
});
|
|
321
342
|
}
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sbG93LXVwLXN1Z2dlc3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZvbGxvdy11cC1zdWdnZXN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFDTCwrQkFBK0IsRUFFL0IsaUNBQWlDLEdBQ2xDLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU0zQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUd4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBQzFELE1BQU0scUJBQXFCLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFDeEQsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFDakMsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFDOUIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUM7QUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNoQyxlQUFlO0lBQ2Ysc0JBQXNCO0lBQ3RCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsNkJBQTZCO0NBQzlCLENBQUMsQ0FBQztBQUNILE1BQU0sNEJBQTRCLEdBQUc7SUFDbkMsMENBQTBDO0lBQzFDLHNDQUFzQztJQUN0Qyx1QkFBdUI7SUFDdkIsNEZBQTRGO0NBQ3BGLENBQUM7QUFFWCxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsNkJBQTZCLENBQUM7QUFDckUsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLG9DQUFvQyxDQUFDO0FBQ25GLHdGQUF3RjtBQUN4RixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRywwQkFBMEIsQ0FBQztBQTJCL0QsTUFBTSxvQkFBb0IsR0FBRyxDQUFDO0tBQzNCLE1BQU0sQ0FBQztJQUNOLFNBQVMsRUFBRSxDQUFDO1NBQ1QsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDO1NBQ3ZCLFFBQVEsQ0FBQyx5REFBeUQsQ0FBQztDQUN2RSxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUM7QUFFWixNQUFNLHVCQUF1QixHQUFHLENBQUM7S0FDOUIsTUFBTSxDQUFDO0lBQ04sUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLCtDQUErQyxDQUFDO0lBQzVGLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQywyQ0FBMkMsQ0FBQztJQUN0RixXQUFXLEVBQUUsQ0FBQztTQUNYLE1BQU0sRUFBRTtTQUNSLElBQUksRUFBRTtTQUNOLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztTQUMzQixRQUFRLEVBQUU7U0FDVixRQUFRLENBQUMsMkRBQTJELENBQUM7SUFDeEUsZUFBZSxFQUFFLENBQUM7U0FDZixLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQixRQUFRLEVBQUU7U0FDVixRQUFRLENBQUMsa0RBQWtELENBQUM7Q0FDaEUsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFDO0FBRVosTUFBTSxzQkFBc0IsR0FBRztJQUM3QixpR0FBaUc7SUFDakcsNkZBQTZGO0lBQzdGLDZHQUE2RztJQUM3Ryw4RkFBOEY7SUFDOUYsK0ZBQStGO0lBQy9GLHdHQUF3RztJQUN4RyxpR0FBaUc7SUFDakcsbUxBQW1MO0lBQ25MLDJFQUEyRTtJQUMzRSxpRkFBaUY7SUFDakYsaUVBQWlFO0lBQ2pFLGVBQWU7Q0FDaEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFWixNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUE2QixDQUFDO0FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7QUFDekUsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBRTdDLDJFQUEyRTtBQUMzRSxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLEtBQWdEO0lBRWhELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDN0IsTUFBTSxVQUFVLEdBQThCLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNsRyxPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3pELEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxLQUFLLElBQUksc0JBQXNCLENBQUMsQ0FBQztRQUM1RixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFNBQVMsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hGLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVSxJQUFJLEtBQUs7S0FDM0MsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FDcEIsTUFBMEI7SUFFMUIsT0FBTyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUM1QixVQUFVLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE1BQTBCO0lBQ2pELElBQUksS0FBSyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUM7WUFDaEIsRUFBRSxFQUFFLHVCQUF1QjtZQUMzQixJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFdBQVcsRUFBRSw4REFBOEQ7WUFDM0UsWUFBWSxFQUFFLHNCQUFzQjtZQUNwQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQztTQUM3QixDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEtBQWE7SUFDdkMsT0FBTyxLQUFLO1NBQ1QsSUFBSSxFQUFFO1NBQ04sV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztTQUNqQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUN4QixTQUE0QixFQUM1QixPQUFnQyxFQUNoQyxZQUFvQjtJQUVwQixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUN2QixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztLQUMzRCxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7SUFDOUIsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFDRSxDQUFDLFVBQVU7WUFDWCxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDeEIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNqQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFDeEUsQ0FBQztZQUNELFNBQVM7UUFDWCxDQUFDO1FBQ0QsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxZQUFZO1lBQUUsTUFBTTtJQUM3QyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsS0FBK0I7SUFDNUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDdkMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQzdCLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDN0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3JELENBQUMsQ0FBQztLQUNKLENBQUMsQ0FBQztJQUNILElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDNUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsc0JBQXNCO1lBQy9DLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztZQUM3QyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxNQUEwQixFQUMxQixPQUFnQztJQUVoQyxNQUFNLFFBQVEsR0FBRyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM5RSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3RELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDdkMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxRQUFRO1FBQ2hDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ2xDLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pFLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU07WUFDakMsQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDckUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQzVDLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDNUQsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUU7WUFDbEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdFLFdBQVc7U0FDWixDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsV0FBd0I7SUFDckQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDL0MsS0FBSyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxPQUFPLEVBQUUsSUFBSSxLQUFLLFdBQVc7WUFBRSxPQUFPLE9BQU8sQ0FBQztJQUNwRCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsV0FBd0I7SUFDckQsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMvQixLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLCtCQUErQixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1lBQUUsU0FBUztRQUNqRixNQUFNLE1BQU0sR0FBRyxpQ0FBaUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLElBQUksTUFBTSxDQUFDLE9BQU87WUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLFdBQXdCLEVBQUUsSUFBaUM7SUFDdEYsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPO0lBQ3JCLFdBQVcsQ0FBQyxHQUFHLENBQ2I7UUFDRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDZCxJQUFJLEVBQUUsV0FBVztRQUNqQixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSwrQkFBK0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztLQUN6RCxFQUNELFVBQVUsRUFDVixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLEtBQXlCLEVBQUUsSUFBaUM7SUFDNUYsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPO0lBQ25CLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQzNGLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNoQixDQUFDO0FBRUQsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSxpQ0FBaUMsQ0FDL0MsTUFBMEIsRUFDMUIsWUFBK0IsZ0JBQWdCO0lBRS9DLE1BQU0sUUFBUSxHQUFHLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzlFLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDN0QsT0FBTztRQUNMLEVBQUUsRUFBRSx1QkFBdUI7UUFDM0IsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQ3hCLE1BQU0sRUFDTixXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsR0FDWjtZQUNDLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFlBQVksS0FBSyxPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDMUYsT0FBTyxXQUFXLENBQUM7WUFDckIsQ0FBQztZQUNELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMvRCxNQUFNLEtBQUssR0FBRyxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3RFLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JELElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2Qsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUFFLE9BQU8sV0FBVyxDQUFDO1lBQ2hFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUMxRSxNQUFNLGVBQWUsR0FDbkIsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFtQixFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO2dCQUMzRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1QsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hELE1BQU0saUJBQWlCLEdBQTRCO2dCQUNqRCxRQUFRO2dCQUNSLE1BQU07Z0JBQ04sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDMUQsY0FBYztnQkFDZCxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDeEMsQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdELE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEYsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsT0FBTyxXQUFXLENBQUM7WUFDL0MsTUFBTSxJQUFJLEdBQUcsaUNBQWlDLENBQUMsS0FBSyxDQUFDO2dCQUNuRCxTQUFTO2dCQUNULE1BQU0sRUFBRSxPQUFPO2FBQ2hCLENBQUMsQ0FBQztZQUNILG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2Qyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEMsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsK0VBQStFO0FBQy9FLE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxLQUFhO0lBQzdELE9BQU8sR0FBRyxFQUFFLENBQ1YsSUFBSSxlQUFlLENBQUM7UUFDbEIsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVO1lBQ3pCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNULE1BQU0sSUFBSSxHQUFrQjt3QkFDMUIsSUFBSSxFQUFFLCtCQUErQjt3QkFDckMsSUFBSTtxQkFDTCxDQUFDO29CQUNGLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBYSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDO1lBQ0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELHdFQUF3RTtBQUN4RSxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBMEI7SUFDbEUsT0FBTyxVQUFVLENBQUM7UUFDaEIsRUFBRSxFQUFFLG9CQUFvQjtRQUN4QixXQUFXLEVBQ1QsZ0dBQWdHO1FBQ2xHLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsWUFBWSxFQUFFLG9CQUFvQjtRQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQy9DLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xFLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDOUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5RSxHQUFHLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDdEUsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGF0RmFzdCBwb3N0LXR1cm4gZm9sbG93LXVwIHN1Z2dlc3Rpb24gZ2VuZXJhdGlvbi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgYXN5bmNVdGlscywgZXJyb3JVdGlscywgbG9nLCBzdHJpbmdVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBGT0xMT1dfVVBfU1VHR0VTVElPTlNfUEFSVF9UWVBFLFxuICB0eXBlIEZvbGxvd1VwU3VnZ2VzdGlvbnNQYXJ0RGF0YSxcbiAgRm9sbG93VXBTdWdnZXN0aW9uc1BhcnREYXRhU2NoZW1hLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbWFzdHJhL3dpcmVcIjtcbmltcG9ydCB7IG1vZGVsIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLW1vZGVsXCI7XG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gXCJAbWFzdHJhL2NvcmUvYWdlbnRcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZUxpc3QgfSBmcm9tIFwiQG1hc3RyYS9jb3JlL2FnZW50L21lc3NhZ2UtbGlzdFwiO1xuaW1wb3J0IHR5cGUgeyBNYXN0cmFNb2RlbENvbmZpZyB9IGZyb20gXCJAbWFzdHJhL2NvcmUvbGxtXCI7XG5pbXBvcnQgdHlwZSB7IE91dHB1dFByb2Nlc3NvciB9IGZyb20gXCJAbWFzdHJhL2NvcmUvcHJvY2Vzc29yc1wiO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0Q29udGV4dCB9IGZyb20gXCJAbWFzdHJhL2NvcmUvcmVxdWVzdC1jb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IERhdGFDaHVua1R5cGUsIExMTVN0ZXBSZXN1bHQsIE1hc3RyYVN0cmVhbVRyYW5zZm9ybSB9IGZyb20gXCJAbWFzdHJhL2NvcmUvc3RyZWFtXCI7XG5pbXBvcnQgeyBjcmVhdGVUb29sIH0gZnJvbSBcIkBtYXN0cmEvY29yZS90b29sc1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHR5cGUgeyBGb2xsb3dVcFN1Z2dlc3Rpb25zQ29uZmlnLCBNYXN0cmFQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9jb25maWcudHNcIjtcbmltcG9ydCB7IGJ1aWxkTW9kZWwgfSBmcm9tIFwiLi9tb2RlbC50c1wiO1xuaW1wb3J0IHsgVFlQT0dSQVBIWV9SVUxFIH0gZnJvbSBcIi4vc3R5bGUudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIm1hc3RyYS9mb2xsb3ctdXAtc3VnZ2VzdGlvbnNcIik7XG5jb25zdCBGT0xMT1dfVVBfTU9ERUxfQ0xBU1MgPSBtb2RlbC5Nb2RlbENsYXNzLkNoYXRGYXN0O1xuY29uc3QgREVGQVVMVF9RVUVTVElPTl9MSU1JVCA9IDM7XG5jb25zdCBNQVhfUVVFU1RJT05fTElNSVQgPSAxMDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDEwXzAwMDtcbmNvbnN0IE1BWF9UVVJOX0NPTlRFWFRfQ0hBUlMgPSAxNl8wMDA7XG5jb25zdCBHRU5FUklDX1FVRVNUSU9OUyA9IG5ldyBTZXQoW1xuICBcImFueXRoaW5nIGVsc2VcIixcbiAgXCJjYW4geW91IHRlbGwgbWUgbW9yZVwiLFxuICBcInRlbGwgbWUgbW9yZVwiLFxuICBcIndoYXQgZWxzZVwiLFxuICBcIndoYXQgd291bGQgeW91IGxpa2UgdG8ga25vd1wiLFxuXSk7XG5jb25zdCBBU1NJU1RBTlRfRElSRUNURURfUVVFU1RJT05TID0gW1xuICAvXig/OndvdWxkfGRvKSB5b3UgKD86bGlrZXx3YW50fHByZWZlcilcXGIvLFxuICAvXig/OnNob3VsZHxzaGFsbHxjYW58bWF5KSAoPzppfHdlKVxcYi8sXG4gIC9eYXJlIHlvdSBpbnRlcmVzdGVkXFxiLyxcbiAgL15zaG91bGQgKD86dGhlIHx0aGlzICk/KD86Y2hhcnR8Z3JhcGh8dGFibGV8dmlzdWFsaXphdGlvbnxyZXNwb25zZXxvdXRwdXR8cmVzdWx0cz98ZGF0YSlcXGIvLFxuXSBhcyBjb25zdDtcblxuLyoqIFRydXN0ZWQgcmVxdWVzdC1jb250ZXh0IGtleSBjYXJyeWluZyB0aGUgY3VycmVudCB1c2VyIG1lc3NhZ2UuICovXG5leHBvcnQgY29uc3QgRk9MTE9XX1VQX1VTRVJfVEVYVF9LRVkgPSBcIm1hc3RyYV9fZm9sbG93X3VwX3VzZXJfdGV4dFwiO1xuLyoqIFRydXN0ZWQgcmVxdWVzdC1jb250ZXh0IGtleSBjYXJyeWluZyBuYXRpdmUgR2VuaWUgZm9sbG93LXVwIHF1ZXN0aW9ucy4gKi9cbmV4cG9ydCBjb25zdCBGT0xMT1dfVVBfTkFUSVZFX1FVRVNUSU9OU19LRVkgPSBcIm1hc3RyYV9fZm9sbG93X3VwX25hdGl2ZV9xdWVzdGlvbnNcIjtcbi8qKiBUcnVzdGVkIHJlcXVlc3QtY29udGV4dCBrZXkgY29vcmRpbmF0aW5nIG9uZSBwb3N0LXR1cm4gc3RyZWFtIHdpdGggaXRzIHByb2Nlc3Nvci4gKi9cbmV4cG9ydCBjb25zdCBGT0xMT1dfVVBfUlVOX0lEX0tFWSA9IFwibWFzdHJhX19mb2xsb3dfdXBfcnVuX2lkXCI7XG5cbi8qKiBGdWxseSByZXNvbHZlZCBmb2xsb3ctdXAgc3VnZ2VzdGlvbiBzZXR0aW5ncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRGb2xsb3dVcFN1Z2dlc3Rpb25zQ29uZmlnIHtcbiAgbW9kZTogXCJhdXRvXCIgfCBcImdlbmVyYXRlZFwiIHwgXCJnZW5pZVwiO1xuICBsaW1pdDogbnVtYmVyO1xuICB0aW1lb3V0TXM6IG51bWJlcjtcbiAgZXhwb3NlVG9vbDogYm9vbGVhbjtcbn1cblxuLyoqIElucHV0cyBmb3Igb25lIGZvbGxvdy11cCBnZW5lcmF0aW9uIHBhc3MuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zIHtcbiAgdXNlclRleHQ6IHN0cmluZztcbiAgYW5zd2VyOiBzdHJpbmc7XG4gIC8qKiBCb3VuZGVkIHNlcmlhbGl6ZWQgdG9vbCBpbnB1dHMgYW5kIG91dHB1dHMgdGhhdCBncm91bmQgdGhlIG5leHQgcXVlc3Rpb25zLiAqL1xuICB0dXJuQ29udGV4dD86IHN0cmluZztcbiAgbmF0aXZlUXVlc3Rpb25zPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHJlcXVlc3RDb250ZXh0PzogUmVxdWVzdENvbnRleHQ7XG4gIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWw7XG59XG5cbi8qKiBSZXBsYWNlYWJsZSBzdWdnZXN0aW9uIGJvdW5kYXJ5IHVzZWQgYnkgdGhlIGZpbmlzaCBjYWxsYmFjayBhbmQgdGVzdHMuICovXG5leHBvcnQgdHlwZSBGb2xsb3dVcFN1Z2dlc3RlciA9IChcbiAgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4gIG9wdGlvbnM6IFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zLFxuKSA9PiBQcm9taXNlPHN0cmluZ1tdPjtcblxuY29uc3QgRm9sbG93VXBPdXRwdXRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHF1ZXN0aW9uczogelxuICAgICAgLmFycmF5KHouc3RyaW5nKCkudHJpbSgpLm1pbigxKSlcbiAgICAgIC5tYXgoTUFYX1FVRVNUSU9OX0xJTUlUKVxuICAgICAgLmRlc2NyaWJlKFwiU3BlY2lmaWMgbmV4dCBxdWVzdGlvbnMgZ3JvdW5kZWQgaW4gdGhlIGNvbXBsZXRlZCB0dXJuLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5jb25zdCBGb2xsb3dVcFRvb2xJbnB1dFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdXNlclRleHQ6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5kZXNjcmliZShcIlVzZXIgbWVzc2FnZSB0aGF0IHN0YXJ0ZWQgdGhlIGNvbXBsZXRlZCB0dXJuLlwiKSxcbiAgICBhbnN3ZXI6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5kZXNjcmliZShcIkFzc2lzdGFudCBhbnN3ZXIgZnJvbSB0aGUgY29tcGxldGVkIHR1cm4uXCIpLFxuICAgIHR1cm5Db250ZXh0OiB6XG4gICAgICAuc3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICAgIC5tYXgoTUFYX1RVUk5fQ09OVEVYVF9DSEFSUylcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoXCJSZWxldmFudCB0b29sIGlucHV0cyBhbmQgb3V0cHV0cyBmcm9tIHRoZSBjb21wbGV0ZWQgdHVybi5cIiksXG4gICAgbmF0aXZlUXVlc3Rpb25zOiB6XG4gICAgICAuYXJyYXkoei5zdHJpbmcoKS50cmltKCkubWluKDEpKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIkV4aXN0aW5nIGZvbGxvdy11cCBxdWVzdGlvbnMgdG8gYXZvaWQgcmVwZWF0aW5nLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5jb25zdCBGT0xMT1dfVVBfSU5TVFJVQ1RJT05TID0gW1xuICBcIkdlbmVyYXRlIGNvbmNpc2UgcXVlc3Rpb25zIHRoYXQgYSB1c2VyIGNhbiBzZW5kIHRvIGRpZyBmdXJ0aGVyIGludG8gYSBjb21wbGV0ZWQgYXNzaXN0YW50IHR1cm4uXCIsXG4gIFwiV3JpdGUgZXZlcnkgaXRlbSBpbiB0aGUgdXNlcidzIHZvaWNlIGFzIGEgbWVzc2FnZSBmb3IgdGhlIGFzc2lzdGFudCB0byBhbnN3ZXIgd2hlbiBjbGlja2VkLlwiLFxuICBcIk5ldmVyIGFkZHJlc3MgdGhlIHVzZXIgb3IgYXNrIHdoYXQgdGhleSB3b3VsZCBsaWtlLCB3YW50LCBwcmVmZXIsIG9yIGhvdyB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIGN1c3RvbWl6ZWQuXCIsXG4gIFwiRXZlcnkgcXVlc3Rpb24gbXVzdCBiZSBhbnN3ZXJhYmxlIGZyb20gdGhlIHNhbWUgdG9vbHMgYW5kIGRhdGEgZG9tYWluIGFzIHRoZSBjb21wbGV0ZWQgdHVybi5cIixcbiAgXCJHcm91bmQgcXVlc3Rpb25zIGluIHRoZSBhbnN3ZXIgYW5kIHR1cm4gdG9vbCBkYXRhLCBpbmNsdWRpbmcgZGlzcGxheWVkIGNoYXJ0IG9yIHRhYmxlIHZhbHVlcy5cIixcbiAgXCJQcmVmZXIgY29uY3JldGUgYW5hbHlzZXMsIGNvbXBhcmlzb25zLCByYW5raW5ncywgY2FsY3VsYXRpb25zLCBmaWx0ZXJzLCBvciBleHBsYW5hdGlvbnMgb2YgdGhlIHJlc3VsdC5cIixcbiAgXCJGb3IgYSBjaGFydCBvciB0YWJsZSwgYXNrIGFib3V0IHRoZSB2YWx1ZXMgYW5kIHBhdHRlcm5zIGJlZm9yZSBzdWdnZXN0aW5nIHByZXNlbnRhdGlvbiBjaGFuZ2VzLlwiLFxuICBcIkdvb2QgZXhhbXBsZXMgaW5jbHVkZSAnV2hpY2ggY2F0ZWdvcnkgaGFzIHRoZSBoaWdoZXN0IHZhbHVlPycsICdIb3cgbGFyZ2UgaXMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBoaWdoZXN0IGFuZCBsb3dlc3QgY2F0ZWdvcmllcz8nLCBhbmQgJ1doYXQgcGF0dGVybiBzdGFuZHMgb3V0IGluIHRoZXNlIHZhbHVlcz8nLlwiLFxuICBcIkRvIG5vdCByZXBlYXQgdGhlIHVzZXIncyBxdWVzdGlvbiwgdGhlIGFuc3dlciwgb3IgYW4gZXhpc3Rpbmcgc3VnZ2VzdGlvbi5cIixcbiAgXCJEbyBub3QgYXNrIGdlbmVyaWMgZmlsbGVyIHN1Y2ggYXMgJ0FueXRoaW5nIGVsc2U/JyBvciByZXF1ZXN0IHVuc3VwcG9ydGVkIGRhdGEuXCIsXG4gIFwiUmV0dXJuIHplcm8gcXVlc3Rpb25zIHdoZW4gbm8gdXNlZnVsIGdyb3VuZGVkIGZvbGxvdy11cCBleGlzdHMuXCIsXG4gIFRZUE9HUkFQSFlfUlVMRSxcbl0uam9pbihcIiBcIik7XG5cbmNvbnN0IHN1Z2dlc3Rpb25BZ2VudHMgPSBuZXcgV2Vha01hcDxNYXN0cmFQbHVnaW5Db25maWcsIEFnZW50PigpO1xuY29uc3QgZ2VuZXJhdGVkUnVuUGFydHMgPSBuZXcgTWFwPHN0cmluZywgRm9sbG93VXBTdWdnZXN0aW9uc1BhcnREYXRhPigpO1xuY29uc3QgR0VORVJBVEVEX1JVTl9QQVJUX1RUTF9NUyA9IDUgKiA2MF8wMDA7XG5cbi8qKiBSZXNvbHZlIGRpc2FibGVkLCBzaG9ydGhhbmQsIGFuZCBjb25maWd1cmVkIHN1Z2dlc3Rpb24gcG9saWN5IGZvcm1zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGb2xsb3dVcFN1Z2dlc3Rpb25zQ29uZmlnKFxuICB2YWx1ZTogTWFzdHJhUGx1Z2luQ29uZmlnW1wiZm9sbG93VXBTdWdnZXN0aW9uc1wiXSxcbik6IFJlc29sdmVkRm9sbG93VXBTdWdnZXN0aW9uc0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghdmFsdWUpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IGNvbmZpZ3VyZWQ6IEZvbGxvd1VwU3VnZ2VzdGlvbnNDb25maWcgPSB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgPyB2YWx1ZSA6IHsgbW9kZTogdmFsdWUgfTtcbiAgcmV0dXJuIHtcbiAgICBtb2RlOiBjb25maWd1cmVkLm1vZGUgPT09IHRydWUgPyBcImF1dG9cIiA6IGNvbmZpZ3VyZWQubW9kZSxcbiAgICBsaW1pdDogTWF0aC5taW4oTUFYX1FVRVNUSU9OX0xJTUlULCBNYXRoLm1heCgxLCBjb25maWd1cmVkLmxpbWl0ID8/IERFRkFVTFRfUVVFU1RJT05fTElNSVQpKSxcbiAgICB0aW1lb3V0TXM6IE1hdGgubWluKDMwXzAwMCwgTWF0aC5tYXgoMV8wMDAsIGNvbmZpZ3VyZWQudGltZW91dE1zID8/IERFRkFVTFRfVElNRU9VVF9NUykpLFxuICAgIGV4cG9zZVRvb2w6IGNvbmZpZ3VyZWQuZXhwb3NlVG9vbCA/PyBmYWxzZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZm9sbG93VXBNb2RlbChcbiAgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4pOiAoYXJnczogeyByZXF1ZXN0Q29udGV4dDogUmVxdWVzdENvbnRleHQgfSkgPT4gUHJvbWlzZTxNYXN0cmFNb2RlbENvbmZpZz4ge1xuICByZXR1cm4gKHsgcmVxdWVzdENvbnRleHQgfSkgPT5cbiAgICBidWlsZE1vZGVsKGNvbmZpZywgcmVxdWVzdENvbnRleHQsIHsgbW9kZWxDbGFzczogRk9MTE9XX1VQX01PREVMX0NMQVNTIH0pO1xufVxuXG5mdW5jdGlvbiBzdWdnZXN0aW9uQWdlbnQoY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcpOiBBZ2VudCB7XG4gIGxldCBhZ2VudCA9IHN1Z2dlc3Rpb25BZ2VudHMuZ2V0KGNvbmZpZyk7XG4gIGlmICghYWdlbnQpIHtcbiAgICBhZ2VudCA9IG5ldyBBZ2VudCh7XG4gICAgICBpZDogXCJmb2xsb3ctdXAtc3VnZ2VzdGlvbnNcIixcbiAgICAgIG5hbWU6IFwiRm9sbG93LXVwIHN1Z2dlc3Rpb25zXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZXMgZ3JvdW5kZWQgbmV4dCBxdWVzdGlvbnMgdXNpbmcgdGhlIGZhc3QgY2hhdCBtb2RlbC5cIixcbiAgICAgIGluc3RydWN0aW9uczogRk9MTE9XX1VQX0lOU1RSVUNUSU9OUyxcbiAgICAgIG1vZGVsOiBmb2xsb3dVcE1vZGVsKGNvbmZpZyksXG4gICAgfSk7XG4gICAgc3VnZ2VzdGlvbkFnZW50cy5zZXQoY29uZmlnLCBhZ2VudCk7XG4gIH1cbiAgcmV0dXJuIGFnZW50O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVkUXVlc3Rpb24odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZVxuICAgIC50cmltKClcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXlxccHtMfVxccHtOfVxcc10vZ3UsIFwiIFwiKVxuICAgIC5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKTtcbn1cblxuZnVuY3Rpb24gYWNjZXB0ZWRRdWVzdGlvbnMoXG4gIHF1ZXN0aW9uczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zLFxuICBtYXhRdWVzdGlvbnM6IG51bWJlcixcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXhjbHVkZWQgPSBuZXcgU2V0KFtcbiAgICBub3JtYWxpemVkUXVlc3Rpb24ob3B0aW9ucy51c2VyVGV4dCksXG4gICAgLi4uKG9wdGlvbnMubmF0aXZlUXVlc3Rpb25zID8/IFtdKS5tYXAobm9ybWFsaXplZFF1ZXN0aW9uKSxcbiAgXSk7XG4gIGNvbnN0IGFjY2VwdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9ucykge1xuICAgIGNvbnN0IHRyaW1tZWQgPSBxdWVzdGlvbi50cmltKCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWRRdWVzdGlvbih0cmltbWVkKTtcbiAgICBpZiAoXG4gICAgICAhbm9ybWFsaXplZCB8fFxuICAgICAgbm9ybWFsaXplZC5sZW5ndGggPCA4IHx8XG4gICAgICBleGNsdWRlZC5oYXMobm9ybWFsaXplZCkgfHxcbiAgICAgIEdFTkVSSUNfUVVFU1RJT05TLmhhcyhub3JtYWxpemVkKSB8fFxuICAgICAgQVNTSVNUQU5UX0RJUkVDVEVEX1FVRVNUSU9OUy5zb21lKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnRlc3Qobm9ybWFsaXplZCkpXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgZXhjbHVkZWQuYWRkKG5vcm1hbGl6ZWQpO1xuICAgIGFjY2VwdGVkLnB1c2godHJpbW1lZCk7XG4gICAgaWYgKGFjY2VwdGVkLmxlbmd0aCA+PSBtYXhRdWVzdGlvbnMpIGJyZWFrO1xuICB9XG4gIHJldHVybiBhY2NlcHRlZDtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplZFR1cm5Db250ZXh0KHN0ZXBzOiByZWFkb25seSBMTE1TdGVwUmVzdWx0W10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBhY3Rpdml0eSA9IHN0ZXBzLmZsYXRNYXAoKHN0ZXApID0+IFtcbiAgICAuLi5zdGVwLnRvb2xDYWxscy5tYXAoKGNhbGwpID0+ICh7XG4gICAgICB0b29sOiBjYWxsLnBheWxvYWQudG9vbE5hbWUsXG4gICAgICBpbnB1dDogY2FsbC5wYXlsb2FkLmFyZ3MsXG4gICAgfSkpLFxuICAgIC4uLnN0ZXAudG9vbFJlc3VsdHMubWFwKChyZXN1bHQpID0+ICh7XG4gICAgICB0b29sOiByZXN1bHQucGF5bG9hZC50b29sTmFtZSxcbiAgICAgIG91dHB1dDogcmVzdWx0LnBheWxvYWQucmVzdWx0LFxuICAgICAgLi4uKHJlc3VsdC5wYXlsb2FkLmlzRXJyb3IgPyB7IGlzRXJyb3I6IHRydWUgfSA6IHt9KSxcbiAgICB9KSksXG4gIF0pO1xuICBpZiAoYWN0aXZpdHkubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBKU09OLnN0cmluZ2lmeShhY3Rpdml0eS5zbGljZSgtMTIpKTtcbiAgICByZXR1cm4gc2VyaWFsaXplZC5sZW5ndGggPiBNQVhfVFVSTl9DT05URVhUX0NIQVJTXG4gICAgICA/IHNlcmlhbGl6ZWQuc2xpY2UoMCwgTUFYX1RVUk5fQ09OVEVYVF9DSEFSUylcbiAgICAgIDogc2VyaWFsaXplZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogR2VuZXJhdGUgZ3JvdW5kZWQgZm9sbG93LXVwcyB0aHJvdWdoIENoYXRGYXN0LCBmYWlsaW5nIG9wZW4gdG8gYW4gZW1wdHkgbGlzdC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdWdnZXN0Rm9sbG93VXBzKFxuICBjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyxcbiAgb3B0aW9uczogU3VnZ2VzdEZvbGxvd1Vwc09wdGlvbnMsXG4pOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IHNldHRpbmdzID0gcmVzb2x2ZUZvbGxvd1VwU3VnZ2VzdGlvbnNDb25maWcoY29uZmlnLmZvbGxvd1VwU3VnZ2VzdGlvbnMpO1xuICBpZiAoIXNldHRpbmdzIHx8IHNldHRpbmdzLm1vZGUgPT09IFwiZ2VuaWVcIikgcmV0dXJuIFtdO1xuICBjb25zdCB0aW1lb3V0ID0gQWJvcnRTaWduYWwudGltZW91dChzZXR0aW5ncy50aW1lb3V0TXMpO1xuICBjb25zdCBhYm9ydFNpZ25hbCA9IGFzeW5jVXRpbHMuY29tYmluZUFib3J0U2lnbmFscyhvcHRpb25zLmFib3J0U2lnbmFsLCB0aW1lb3V0KTtcbiAgY29uc3QgcHJvbXB0ID0gc3RyaW5nVXRpbHMudG9EZXNjcmlwdGlvbih7XG4gICAgXCJVc2VyIG1lc3NhZ2VcIjogb3B0aW9ucy51c2VyVGV4dCxcbiAgICBcIkFzc2lzdGFudCBhbnN3ZXJcIjogb3B0aW9ucy5hbnN3ZXIsXG4gICAgLi4uKG9wdGlvbnMudHVybkNvbnRleHQgPyB7IFwiVHVybiB0b29sIGRhdGFcIjogb3B0aW9ucy50dXJuQ29udGV4dCB9IDoge30pLFxuICAgIC4uLihvcHRpb25zLm5hdGl2ZVF1ZXN0aW9ucz8ubGVuZ3RoXG4gICAgICA/IHsgXCJFeGlzdGluZyBzdWdnZXN0aW9uc1wiOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLm5hdGl2ZVF1ZXN0aW9ucykgfVxuICAgICAgOiB7fSksXG4gICAgXCJNYXhpbXVtIHF1ZXN0aW9uc1wiOiBTdHJpbmcoc2V0dGluZ3MubGltaXQpLFxuICB9KTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdWdnZXN0aW9uQWdlbnQoY29uZmlnKS5nZW5lcmF0ZShwcm9tcHQsIHtcbiAgICAgIHN0cnVjdHVyZWRPdXRwdXQ6IHsgc2NoZW1hOiBGb2xsb3dVcE91dHB1dFNjaGVtYSB9LFxuICAgICAgLi4uKG9wdGlvbnMucmVxdWVzdENvbnRleHQgPyB7IHJlcXVlc3RDb250ZXh0OiBvcHRpb25zLnJlcXVlc3RDb250ZXh0IH0gOiB7fSksXG4gICAgICBhYm9ydFNpZ25hbCxcbiAgICB9KTtcbiAgICBjb25zdCBwYXJzZWQgPSBGb2xsb3dVcE91dHB1dFNjaGVtYS5wYXJzZShyZXN1bHQub2JqZWN0KTtcbiAgICByZXR1cm4gYWNjZXB0ZWRRdWVzdGlvbnMocGFyc2VkLnF1ZXN0aW9ucywgb3B0aW9ucywgc2V0dGluZ3MubGltaXQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmICghb3B0aW9ucy5hYm9ydFNpZ25hbD8uYWJvcnRlZCkge1xuICAgICAgbG9nZ2VyLndhcm4oXCJnZW5lcmF0aW9uLWZhaWxlZFwiLCB7IGVycm9yOiBlcnJvclV0aWxzLmVycm9yTWVzc2FnZShlcnJvcikgfSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsYXN0QXNzaXN0YW50UmVzcG9uc2UobWVzc2FnZUxpc3Q6IE1lc3NhZ2VMaXN0KSB7XG4gIGNvbnN0IG1lc3NhZ2VzID0gbWVzc2FnZUxpc3QuZ2V0LnJlc3BvbnNlLmRiKCk7XG4gIGZvciAobGV0IGluZGV4ID0gbWVzc2FnZXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBtZXNzYWdlc1tpbmRleF07XG4gICAgaWYgKG1lc3NhZ2U/LnJvbGUgPT09IFwiYXNzaXN0YW50XCIpIHJldHVybiBtZXNzYWdlO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHBlcnNpc3RlZEZvbGxvd1VwRGF0YShtZXNzYWdlTGlzdDogTWVzc2FnZUxpc3QpOiBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGEgfCB1bmRlZmluZWQge1xuICBjb25zdCBtZXNzYWdlID0gbGFzdEFzc2lzdGFudFJlc3BvbnNlKG1lc3NhZ2VMaXN0KTtcbiAgaWYgKCFtZXNzYWdlKSByZXR1cm4gdW5kZWZpbmVkO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgbWVzc2FnZS5jb250ZW50LnBhcnRzKSB7XG4gICAgaWYgKHBhcnQudHlwZSAhPT0gRk9MTE9XX1VQX1NVR0dFU1RJT05TX1BBUlRfVFlQRSB8fCAhKFwiZGF0YVwiIGluIHBhcnQpKSBjb250aW51ZTtcbiAgICBjb25zdCBwYXJzZWQgPSBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGFTY2hlbWEuc2FmZVBhcnNlKHBhcnQuZGF0YSk7XG4gICAgaWYgKHBhcnNlZC5zdWNjZXNzKSByZXR1cm4gcGFyc2VkLmRhdGE7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcGVyc2lzdEZvbGxvd1VwRGF0YShtZXNzYWdlTGlzdDogTWVzc2FnZUxpc3QsIGRhdGE6IEZvbGxvd1VwU3VnZ2VzdGlvbnNQYXJ0RGF0YSk6IHZvaWQge1xuICBjb25zdCBtZXNzYWdlID0gbGFzdEFzc2lzdGFudFJlc3BvbnNlKG1lc3NhZ2VMaXN0KTtcbiAgaWYgKCFtZXNzYWdlKSByZXR1cm47XG4gIG1lc3NhZ2VMaXN0LmFkZChcbiAgICB7XG4gICAgICBpZDogbWVzc2FnZS5pZCxcbiAgICAgIHJvbGU6IFwiYXNzaXN0YW50XCIsXG4gICAgICBwYXJ0czogW3sgdHlwZTogRk9MTE9XX1VQX1NVR0dFU1RJT05TX1BBUlRfVFlQRSwgZGF0YSB9XSxcbiAgICB9LFxuICAgIFwicmVzcG9uc2VcIixcbiAgICB7IG1lcmdlOiB0cnVlIH0sXG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbWVtYmVyR2VuZXJhdGVkUnVuUGFydChydW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBkYXRhOiBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGEpIHtcbiAgaWYgKCFydW5JZCkgcmV0dXJuO1xuICBnZW5lcmF0ZWRSdW5QYXJ0cy5zZXQocnVuSWQsIGRhdGEpO1xuICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gZ2VuZXJhdGVkUnVuUGFydHMuZGVsZXRlKHJ1bklkKSwgR0VORVJBVEVEX1JVTl9QQVJUX1RUTF9NUyk7XG4gIHRpbWVyLnVucmVmKCk7XG59XG5cbi8qKiBCdWlsZCBNYXN0cmEncyBmaW5hbCBvdXRwdXQgcHJvY2Vzc29yIGZvciBjb25maWd1cmVkIGdlbmVyYXRlZCBmb2xsb3ctdXBzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9sbG93VXBTdWdnZXN0aW9uc1Byb2Nlc3NvcihcbiAgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4gIHN1Z2dlc3RlcjogRm9sbG93VXBTdWdnZXN0ZXIgPSBzdWdnZXN0Rm9sbG93VXBzLFxuKTogT3V0cHV0UHJvY2Vzc29yIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSByZXNvbHZlRm9sbG93VXBTdWdnZXN0aW9uc0NvbmZpZyhjb25maWcuZm9sbG93VXBTdWdnZXN0aW9ucyk7XG4gIGlmICghc2V0dGluZ3MgfHwgc2V0dGluZ3MubW9kZSA9PT0gXCJnZW5pZVwiKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4ge1xuICAgIGlkOiBcImZvbGxvdy11cC1zdWdnZXN0aW9uc1wiLFxuICAgIGFzeW5jIHByb2Nlc3NPdXRwdXRSZXN1bHQoe1xuICAgICAgcmVzdWx0LFxuICAgICAgbWVzc2FnZUxpc3QsXG4gICAgICByZXF1ZXN0Q29udGV4dCxcbiAgICAgIGFib3J0U2lnbmFsLFxuICAgIH0pOiBQcm9taXNlPE1lc3NhZ2VMaXN0PiB7XG4gICAgICBpZiAoIXJlcXVlc3RDb250ZXh0IHx8IHJlc3VsdC5maW5pc2hSZWFzb24gPT09IFwiYWJvcnRcIiB8fCByZXN1bHQuZmluaXNoUmVhc29uID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VMaXN0O1xuICAgICAgfVxuICAgICAgY29uc3QgcnVuSWRWYWx1ZSA9IHJlcXVlc3RDb250ZXh0LmdldFJhdyhGT0xMT1dfVVBfUlVOX0lEX0tFWSk7XG4gICAgICBjb25zdCBydW5JZCA9IHR5cGVvZiBydW5JZFZhbHVlID09PSBcInN0cmluZ1wiID8gcnVuSWRWYWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHBlcnNpc3RlZCA9IHBlcnNpc3RlZEZvbGxvd1VwRGF0YShtZXNzYWdlTGlzdCk7XG4gICAgICBpZiAocGVyc2lzdGVkKSB7XG4gICAgICAgIHJlbWVtYmVyR2VuZXJhdGVkUnVuUGFydChydW5JZCwgcGVyc2lzdGVkKTtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VMaXN0O1xuICAgICAgfVxuICAgICAgY29uc3QgYW5zd2VyID0gcmVzdWx0LnRleHQudHJpbSgpO1xuICAgICAgY29uc3QgdXNlclRleHQgPSByZXF1ZXN0Q29udGV4dC5nZXRSYXcoRk9MTE9XX1VQX1VTRVJfVEVYVF9LRVkpO1xuICAgICAgaWYgKCFhbnN3ZXIgfHwgdHlwZW9mIHVzZXJUZXh0ICE9PSBcInN0cmluZ1wiKSByZXR1cm4gbWVzc2FnZUxpc3Q7XG4gICAgICBjb25zdCBuYXRpdmVWYWx1ZSA9IHJlcXVlc3RDb250ZXh0LmdldFJhdyhGT0xMT1dfVVBfTkFUSVZFX1FVRVNUSU9OU19LRVkpO1xuICAgICAgY29uc3QgbmF0aXZlUXVlc3Rpb25zID1cbiAgICAgICAgc2V0dGluZ3MubW9kZSA9PT0gXCJhdXRvXCIgJiYgQXJyYXkuaXNBcnJheShuYXRpdmVWYWx1ZSlcbiAgICAgICAgICA/IG5hdGl2ZVZhbHVlLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBzdHJpbmcgPT4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgIDogW107XG4gICAgICBjb25zdCB0dXJuQ29udGV4dCA9IHNlcmlhbGl6ZWRUdXJuQ29udGV4dChyZXN1bHQuc3RlcHMpO1xuICAgICAgY29uc3Qgc3VnZ2VzdGlvbk9wdGlvbnM6IFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zID0ge1xuICAgICAgICB1c2VyVGV4dCxcbiAgICAgICAgYW5zd2VyLFxuICAgICAgICAuLi4odHVybkNvbnRleHQgPyB7IHR1cm5Db250ZXh0IH0gOiB7fSksXG4gICAgICAgIC4uLihuYXRpdmVRdWVzdGlvbnMubGVuZ3RoID4gMCA/IHsgbmF0aXZlUXVlc3Rpb25zIH0gOiB7fSksXG4gICAgICAgIHJlcXVlc3RDb250ZXh0LFxuICAgICAgICAuLi4oYWJvcnRTaWduYWwgPyB7IGFib3J0U2lnbmFsIH0gOiB7fSksXG4gICAgICB9O1xuICAgICAgY29uc3Qgc3VnZ2VzdGVkID0gYXdhaXQgc3VnZ2VzdGVyKGNvbmZpZywgc3VnZ2VzdGlvbk9wdGlvbnMpO1xuICAgICAgY29uc3QgcXVlc3Rpb25zID0gYWNjZXB0ZWRRdWVzdGlvbnMoc3VnZ2VzdGVkLCBzdWdnZXN0aW9uT3B0aW9ucywgc2V0dGluZ3MubGltaXQpO1xuICAgICAgaWYgKHF1ZXN0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiBtZXNzYWdlTGlzdDtcbiAgICAgIGNvbnN0IGRhdGEgPSBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGFTY2hlbWEucGFyc2Uoe1xuICAgICAgICBxdWVzdGlvbnMsXG4gICAgICAgIHNvdXJjZTogXCJtb2RlbFwiLFxuICAgICAgfSk7XG4gICAgICBwZXJzaXN0Rm9sbG93VXBEYXRhKG1lc3NhZ2VMaXN0LCBkYXRhKTtcbiAgICAgIHJlbWVtYmVyR2VuZXJhdGVkUnVuUGFydChydW5JZCwgZGF0YSk7XG4gICAgICByZXR1cm4gbWVzc2FnZUxpc3Q7XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqIEluamVjdCB0aGUgcHJvY2Vzc29yJ3MgcGVyc2lzdGVkIGRhdGEgcGFydCBiZWZvcmUgTWFzdHJhJ3MgZmluaXNoIGNodW5rLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9sbG93VXBTdWdnZXN0aW9uc1RyYW5zZm9ybShydW5JZDogc3RyaW5nKTogTWFzdHJhU3RyZWFtVHJhbnNmb3JtIHtcbiAgcmV0dXJuICgpID0+XG4gICAgbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgaWYgKGNodW5rLnR5cGUgPT09IFwiZmluaXNoXCIpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gZ2VuZXJhdGVkUnVuUGFydHMuZ2V0KHJ1bklkKTtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgY29uc3QgcGFydDogRGF0YUNodW5rVHlwZSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogRk9MTE9XX1VQX1NVR0dFU1RJT05TX1BBUlRfVFlQRSxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUocGFydCBhcyBuZXZlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICB9LFxuICAgIH0pO1xufVxuXG4vKiogQnVpbGQgdGhlIG9wdGlvbmFsIGV4cGxpY2l0bHkgY2FsbGFibGUgZm9sbG93LXVwIHN1Z2dlc3Rpb24gdG9vbC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN1Z2dlc3RGb2xsb3dVcHNUb29sKGNvbmZpZzogTWFzdHJhUGx1Z2luQ29uZmlnKSB7XG4gIHJldHVybiBjcmVhdGVUb29sKHtcbiAgICBpZDogXCJzdWdnZXN0X2ZvbGxvd191cHNcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiR2VuZXJhdGUgYSBzaG9ydCBsaXN0IG9mIGdyb3VuZGVkIGZvbGxvdy11cCBxdWVzdGlvbnMgZm9yIGEgY29tcGxldGVkIHVzZXIgbWVzc2FnZSBhbmQgYW5zd2VyLlwiLFxuICAgIGlucHV0U2NoZW1hOiBGb2xsb3dVcFRvb2xJbnB1dFNjaGVtYSxcbiAgICBvdXRwdXRTY2hlbWE6IEZvbGxvd1VwT3V0cHV0U2NoZW1hLFxuICAgIGV4ZWN1dGU6IGFzeW5jIChpbnB1dCwgY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gRm9sbG93VXBUb29sSW5wdXRTY2hlbWEucGFyc2UoaW5wdXQpO1xuICAgICAgY29uc3QgcXVlc3Rpb25zID0gYXdhaXQgc3VnZ2VzdEZvbGxvd1Vwcyhjb25maWcsIHtcbiAgICAgICAgdXNlclRleHQ6IHZhbHVlcy51c2VyVGV4dCxcbiAgICAgICAgYW5zd2VyOiB2YWx1ZXMuYW5zd2VyLFxuICAgICAgICAuLi4odmFsdWVzLnR1cm5Db250ZXh0ID8geyB0dXJuQ29udGV4dDogdmFsdWVzLnR1cm5Db250ZXh0IH0gOiB7fSksXG4gICAgICAgIC4uLih2YWx1ZXMubmF0aXZlUXVlc3Rpb25zID8geyBuYXRpdmVRdWVzdGlvbnM6IHZhbHVlcy5uYXRpdmVRdWVzdGlvbnMgfSA6IHt9KSxcbiAgICAgICAgLi4uKGNvbnRleHQ/LnJlcXVlc3RDb250ZXh0ID8geyByZXF1ZXN0Q29udGV4dDogY29udGV4dC5yZXF1ZXN0Q29udGV4dCB9IDoge30pLFxuICAgICAgICAuLi4oY29udGV4dD8uYWJvcnRTaWduYWwgPyB7IGFib3J0U2lnbmFsOiBjb250ZXh0LmFib3J0U2lnbmFsIH0gOiB7fSksXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IHF1ZXN0aW9ucyB9O1xuICAgIH0sXG4gIH0pO1xufVxuIl19
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sbG93LXVwLXN1Z2dlc3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZvbGxvdy11cC1zdWdnZXN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRixPQUFPLEVBQ0wsK0JBQStCLEVBRS9CLGlDQUFpQyxHQUNsQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFHeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUMxRCxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0FBQ3hELE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDaEMsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixjQUFjO0lBQ2QsV0FBVztJQUNYLDZCQUE2QjtDQUM5QixDQUFDLENBQUM7QUFDSCxN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QUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNsRSxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDOUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3RFLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hhdEZhc3QgcG9zdC10dXJuIGZvbGxvdy11cCBzdWdnZXN0aW9uIGdlbmVyYXRpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGFzeW5jVXRpbHMsIGVycm9yVXRpbHMsIGxvZywgb2JqZWN0LCBzdHJpbmdVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBGT0xMT1dfVVBfU1VHR0VTVElPTlNfUEFSVF9UWVBFLFxuICB0eXBlIEZvbGxvd1VwU3VnZ2VzdGlvbnNQYXJ0RGF0YSxcbiAgRm9sbG93VXBTdWdnZXN0aW9uc1BhcnREYXRhU2NoZW1hLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbWFzdHJhL3dpcmVcIjtcbmltcG9ydCB7IG1vZGVsIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLW1vZGVsXCI7XG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gXCJAbWFzdHJhL2NvcmUvYWdlbnRcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZUxpc3QgfSBmcm9tIFwiQG1hc3RyYS9jb3JlL2FnZW50L21lc3NhZ2UtbGlzdFwiO1xuaW1wb3J0IHR5cGUgeyBNYXN0cmFNb2RlbENvbmZpZyB9IGZyb20gXCJAbWFzdHJhL2NvcmUvbGxtXCI7XG5pbXBvcnQgdHlwZSB7IE91dHB1dFByb2Nlc3NvciB9IGZyb20gXCJAbWFzdHJhL2NvcmUvcHJvY2Vzc29yc1wiO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0Q29udGV4dCB9IGZyb20gXCJAbWFzdHJhL2NvcmUvcmVxdWVzdC1jb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IERhdGFDaHVua1R5cGUsIExMTVN0ZXBSZXN1bHQsIE1hc3RyYVN0cmVhbVRyYW5zZm9ybSB9IGZyb20gXCJAbWFzdHJhL2NvcmUvc3RyZWFtXCI7XG5pbXBvcnQgeyBjcmVhdGVUb29sIH0gZnJvbSBcIkBtYXN0cmEvY29yZS90b29sc1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHR5cGUgeyBGb2xsb3dVcFN1Z2dlc3Rpb25zQ29uZmlnLCBNYXN0cmFQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9jb25maWcudHNcIjtcbmltcG9ydCB7IGJ1aWxkTW9kZWwgfSBmcm9tIFwiLi9tb2RlbC50c1wiO1xuaW1wb3J0IHsgVFlQT0dSQVBIWV9SVUxFIH0gZnJvbSBcIi4vc3R5bGUudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIm1hc3RyYS9mb2xsb3ctdXAtc3VnZ2VzdGlvbnNcIik7XG5jb25zdCBGT0xMT1dfVVBfTU9ERUxfQ0xBU1MgPSBtb2RlbC5Nb2RlbENsYXNzLkNoYXRGYXN0O1xuY29uc3QgREVGQVVMVF9RVUVTVElPTl9MSU1JVCA9IDM7XG5jb25zdCBNQVhfUVVFU1RJT05fTElNSVQgPSAxMDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDEwXzAwMDtcbmNvbnN0IE1BWF9UVVJOX0NPTlRFWFRfQ0hBUlMgPSAxNl8wMDA7XG5jb25zdCBHRU5FUklDX1FVRVNUSU9OUyA9IG5ldyBTZXQoW1xuICBcImFueXRoaW5nIGVsc2VcIixcbiAgXCJjYW4geW91IHRlbGwgbWUgbW9yZVwiLFxuICBcInRlbGwgbWUgbW9yZVwiLFxuICBcIndoYXQgZWxzZVwiLFxuICBcIndoYXQgd291bGQgeW91IGxpa2UgdG8ga25vd1wiLFxuXSk7XG5jb25zdCBBU1NJU1RBTlRfRElSRUNURURfUVVFU1RJT05TID0gW1xuICAvXig/OndvdWxkfGRvKSB5b3UgKD86bGlrZXx3YW50fHByZWZlcilcXGIvLFxuICAvXig/OnNob3VsZHxzaGFsbHxjYW58bWF5KSAoPzppfHdlKVxcYi8sXG4gIC9eYXJlIHlvdSBpbnRlcmVzdGVkXFxiLyxcbiAgL15zaG91bGQgKD86dGhlIHx0aGlzICk/KD86Y2hhcnR8Z3JhcGh8dGFibGV8dmlzdWFsaXphdGlvbnxyZXNwb25zZXxvdXRwdXR8cmVzdWx0cz98ZGF0YSlcXGIvLFxuXSBhcyBjb25zdDtcblxuLyoqIFRydXN0ZWQgcmVxdWVzdC1jb250ZXh0IGtleSBjYXJyeWluZyB0aGUgY3VycmVudCB1c2VyIG1lc3NhZ2UuICovXG5leHBvcnQgY29uc3QgRk9MTE9XX1VQX1VTRVJfVEVYVF9LRVkgPSBcIm1hc3RyYV9fZm9sbG93X3VwX3VzZXJfdGV4dFwiO1xuLyoqIFRydXN0ZWQgcmVxdWVzdC1jb250ZXh0IGtleSBjYXJyeWluZyBuYXRpdmUgR2VuaWUgZm9sbG93LXVwIHF1ZXN0aW9ucy4gKi9cbmV4cG9ydCBjb25zdCBGT0xMT1dfVVBfTkFUSVZFX1FVRVNUSU9OU19LRVkgPSBcIm1hc3RyYV9fZm9sbG93X3VwX25hdGl2ZV9xdWVzdGlvbnNcIjtcbi8qKiBUcnVzdGVkIHJlcXVlc3QtY29udGV4dCBrZXkgY29vcmRpbmF0aW5nIG9uZSBwb3N0LXR1cm4gc3RyZWFtIHdpdGggaXRzIHByb2Nlc3Nvci4gKi9cbmV4cG9ydCBjb25zdCBGT0xMT1dfVVBfUlVOX0lEX0tFWSA9IFwibWFzdHJhX19mb2xsb3dfdXBfcnVuX2lkXCI7XG5cbi8qKiBGdWxseSByZXNvbHZlZCBmb2xsb3ctdXAgc3VnZ2VzdGlvbiBzZXR0aW5ncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRGb2xsb3dVcFN1Z2dlc3Rpb25zQ29uZmlnIHtcbiAgbW9kZTogXCJhdXRvXCIgfCBcImdlbmVyYXRlZFwiIHwgXCJnZW5pZVwiO1xuICBsaW1pdDogbnVtYmVyO1xuICB0aW1lb3V0TXM6IG51bWJlcjtcbiAgZXhwb3NlVG9vbDogYm9vbGVhbjtcbn1cblxuLyoqIElucHV0cyBmb3Igb25lIGZvbGxvdy11cCBnZW5lcmF0aW9uIHBhc3MuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zIHtcbiAgdXNlclRleHQ6IHN0cmluZztcbiAgYW5zd2VyOiBzdHJpbmc7XG4gIC8qKiBCb3VuZGVkIHNlcmlhbGl6ZWQgdG9vbCBpbnB1dHMgYW5kIG91dHB1dHMgdGhhdCBncm91bmQgdGhlIG5leHQgcXVlc3Rpb25zLiAqL1xuICB0dXJuQ29udGV4dD86IHN0cmluZztcbiAgbmF0aXZlUXVlc3Rpb25zPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHJlcXVlc3RDb250ZXh0PzogUmVxdWVzdENvbnRleHQ7XG4gIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWw7XG59XG5cbi8qKiBSZXBsYWNlYWJsZSBzdWdnZXN0aW9uIGJvdW5kYXJ5IHVzZWQgYnkgdGhlIGZpbmlzaCBjYWxsYmFjayBhbmQgdGVzdHMuICovXG5leHBvcnQgdHlwZSBGb2xsb3dVcFN1Z2dlc3RlciA9IChcbiAgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4gIG9wdGlvbnM6IFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zLFxuKSA9PiBQcm9taXNlPHN0cmluZ1tdPjtcblxuY29uc3QgRm9sbG93VXBPdXRwdXRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHF1ZXN0aW9uczogelxuICAgICAgLmFycmF5KHouc3RyaW5nKCkudHJpbSgpLm1pbigxKSlcbiAgICAgIC5tYXgoTUFYX1FVRVNUSU9OX0xJTUlUKVxuICAgICAgLmRlc2NyaWJlKFwiU3BlY2lmaWMgbmV4dCBxdWVzdGlvbnMgZ3JvdW5kZWQgaW4gdGhlIGNvbXBsZXRlZCB0dXJuLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5jb25zdCBGb2xsb3dVcFRvb2xJbnB1dFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdXNlclRleHQ6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5kZXNjcmliZShcIlVzZXIgbWVzc2FnZSB0aGF0IHN0YXJ0ZWQgdGhlIGNvbXBsZXRlZCB0dXJuLlwiKSxcbiAgICBhbnN3ZXI6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5kZXNjcmliZShcIkFzc2lzdGFudCBhbnN3ZXIgZnJvbSB0aGUgY29tcGxldGVkIHR1cm4uXCIpLFxuICAgIHR1cm5Db250ZXh0OiB6XG4gICAgICAuc3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICAgIC5tYXgoTUFYX1RVUk5fQ09OVEVYVF9DSEFSUylcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoXCJSZWxldmFudCB0b29sIGlucHV0cyBhbmQgb3V0cHV0cyBmcm9tIHRoZSBjb21wbGV0ZWQgdHVybi5cIiksXG4gICAgbmF0aXZlUXVlc3Rpb25zOiB6XG4gICAgICAuYXJyYXkoei5zdHJpbmcoKS50cmltKCkubWluKDEpKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIkV4aXN0aW5nIGZvbGxvdy11cCBxdWVzdGlvbnMgdG8gYXZvaWQgcmVwZWF0aW5nLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5jb25zdCBGT0xMT1dfVVBfSU5TVFJVQ1RJT05TID0gW1xuICBcIkdlbmVyYXRlIGNvbmNpc2UgcXVlc3Rpb25zIHRoYXQgYSB1c2VyIGNhbiBzZW5kIHRvIGRpZyBmdXJ0aGVyIGludG8gYSBjb21wbGV0ZWQgYXNzaXN0YW50IHR1cm4uXCIsXG4gIFwiV3JpdGUgZXZlcnkgaXRlbSBpbiB0aGUgdXNlcidzIHZvaWNlIGFzIGEgbWVzc2FnZSBmb3IgdGhlIGFzc2lzdGFudCB0byBhbnN3ZXIgd2hlbiBjbGlja2VkLlwiLFxuICBcIk5ldmVyIGFkZHJlc3MgdGhlIHVzZXIgb3IgYXNrIHdoYXQgdGhleSB3b3VsZCBsaWtlLCB3YW50LCBwcmVmZXIsIG9yIGhvdyB0aGUgcmVzcG9uc2Ugc2hvdWxkIGJlIGN1c3RvbWl6ZWQuXCIsXG4gIFwiRXZlcnkgcXVlc3Rpb24gbXVzdCBiZSBhbnN3ZXJhYmxlIGZyb20gdGhlIHNhbWUgdG9vbHMgYW5kIGRhdGEgZG9tYWluIGFzIHRoZSBjb21wbGV0ZWQgdHVybi5cIixcbiAgXCJHcm91bmQgcXVlc3Rpb25zIGluIHRoZSBhbnN3ZXIgYW5kIHR1cm4gdG9vbCBkYXRhLCBpbmNsdWRpbmcgZGlzcGxheWVkIGNoYXJ0IG9yIHRhYmxlIHZhbHVlcy5cIixcbiAgXCJQcmVmZXIgY29uY3JldGUgYW5hbHlzZXMsIGNvbXBhcmlzb25zLCByYW5raW5ncywgY2FsY3VsYXRpb25zLCBmaWx0ZXJzLCBvciBleHBsYW5hdGlvbnMgb2YgdGhlIHJlc3VsdC5cIixcbiAgXCJGb3IgYSBjaGFydCBvciB0YWJsZSwgYXNrIGFib3V0IHRoZSB2YWx1ZXMgYW5kIHBhdHRlcm5zIGJlZm9yZSBzdWdnZXN0aW5nIHByZXNlbnRhdGlvbiBjaGFuZ2VzLlwiLFxuICBcIkdvb2QgZXhhbXBsZXMgaW5jbHVkZSAnV2hpY2ggY2F0ZWdvcnkgaGFzIHRoZSBoaWdoZXN0IHZhbHVlPycsICdIb3cgbGFyZ2UgaXMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBoaWdoZXN0IGFuZCBsb3dlc3QgY2F0ZWdvcmllcz8nLCBhbmQgJ1doYXQgcGF0dGVybiBzdGFuZHMgb3V0IGluIHRoZXNlIHZhbHVlcz8nLlwiLFxuICBcIkRvIG5vdCByZXBlYXQgdGhlIHVzZXIncyBxdWVzdGlvbiwgdGhlIGFuc3dlciwgb3IgYW4gZXhpc3Rpbmcgc3VnZ2VzdGlvbi5cIixcbiAgXCJEbyBub3QgYXNrIGdlbmVyaWMgZmlsbGVyIHN1Y2ggYXMgJ0FueXRoaW5nIGVsc2U/JyBvciByZXF1ZXN0IHVuc3VwcG9ydGVkIGRhdGEuXCIsXG4gIFwiUmV0dXJuIHplcm8gcXVlc3Rpb25zIHdoZW4gbm8gdXNlZnVsIGdyb3VuZGVkIGZvbGxvdy11cCBleGlzdHMuXCIsXG4gIFRZUE9HUkFQSFlfUlVMRSxcbl0uam9pbihcIiBcIik7XG5cbmNvbnN0IHN1Z2dlc3Rpb25BZ2VudHMgPSBuZXcgV2Vha01hcDxNYXN0cmFQbHVnaW5Db25maWcsIEFnZW50PigpO1xuY29uc3QgZ2VuZXJhdGVkUnVuUGFydHMgPSBuZXcgTWFwPHN0cmluZywgRm9sbG93VXBTdWdnZXN0aW9uc1BhcnREYXRhPigpO1xuY29uc3QgR0VORVJBVEVEX1JVTl9QQVJUX1RUTF9NUyA9IDUgKiA2MF8wMDA7XG5cbi8qKiBSZXNvbHZlIGRpc2FibGVkLCBzaG9ydGhhbmQsIGFuZCBjb25maWd1cmVkIHN1Z2dlc3Rpb24gcG9saWN5IGZvcm1zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGb2xsb3dVcFN1Z2dlc3Rpb25zQ29uZmlnKFxuICB2YWx1ZTogTWFzdHJhUGx1Z2luQ29uZmlnW1wiZm9sbG93VXBTdWdnZXN0aW9uc1wiXSxcbik6IFJlc29sdmVkRm9sbG93VXBTdWdnZXN0aW9uc0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghdmFsdWUpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IGNvbmZpZ3VyZWQ6IEZvbGxvd1VwU3VnZ2VzdGlvbnNDb25maWcgPSB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgPyB2YWx1ZSA6IHsgbW9kZTogdmFsdWUgfTtcbiAgcmV0dXJuIHtcbiAgICBtb2RlOiBjb25maWd1cmVkLm1vZGUgPT09IHRydWUgPyBcImF1dG9cIiA6IGNvbmZpZ3VyZWQubW9kZSxcbiAgICBsaW1pdDogTWF0aC5taW4oTUFYX1FVRVNUSU9OX0xJTUlULCBNYXRoLm1heCgxLCBjb25maWd1cmVkLmxpbWl0ID8/IERFRkFVTFRfUVVFU1RJT05fTElNSVQpKSxcbiAgICB0aW1lb3V0TXM6IE1hdGgubWluKDMwXzAwMCwgTWF0aC5tYXgoMV8wMDAsIGNvbmZpZ3VyZWQudGltZW91dE1zID8/IERFRkFVTFRfVElNRU9VVF9NUykpLFxuICAgIGV4cG9zZVRvb2w6IGNvbmZpZ3VyZWQuZXhwb3NlVG9vbCA/PyBmYWxzZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZm9sbG93VXBNb2RlbChcbiAgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4pOiAoYXJnczogeyByZXF1ZXN0Q29udGV4dDogUmVxdWVzdENvbnRleHQgfSkgPT4gUHJvbWlzZTxNYXN0cmFNb2RlbENvbmZpZz4ge1xuICByZXR1cm4gKHsgcmVxdWVzdENvbnRleHQgfSkgPT5cbiAgICBidWlsZE1vZGVsKGNvbmZpZywgcmVxdWVzdENvbnRleHQsIHsgbW9kZWxDbGFzczogRk9MTE9XX1VQX01PREVMX0NMQVNTIH0pO1xufVxuXG5mdW5jdGlvbiBzdWdnZXN0aW9uQWdlbnQoY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcpOiBBZ2VudCB7XG4gIGxldCBhZ2VudCA9IHN1Z2dlc3Rpb25BZ2VudHMuZ2V0KGNvbmZpZyk7XG4gIGlmICghYWdlbnQpIHtcbiAgICBhZ2VudCA9IG5ldyBBZ2VudCh7XG4gICAgICBpZDogXCJmb2xsb3ctdXAtc3VnZ2VzdGlvbnNcIixcbiAgICAgIG5hbWU6IFwiRm9sbG93LXVwIHN1Z2dlc3Rpb25zXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZXMgZ3JvdW5kZWQgbmV4dCBxdWVzdGlvbnMgdXNpbmcgdGhlIGZhc3QgY2hhdCBtb2RlbC5cIixcbiAgICAgIGluc3RydWN0aW9uczogRk9MTE9XX1VQX0lOU1RSVUNUSU9OUyxcbiAgICAgIG1vZGVsOiBmb2xsb3dVcE1vZGVsKGNvbmZpZyksXG4gICAgfSk7XG4gICAgc3VnZ2VzdGlvbkFnZW50cy5zZXQoY29uZmlnLCBhZ2VudCk7XG4gIH1cbiAgcmV0dXJuIGFnZW50O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVkUXVlc3Rpb24odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZVxuICAgIC50cmltKClcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXlxccHtMfVxccHtOfVxcc10vZ3UsIFwiIFwiKVxuICAgIC5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKTtcbn1cblxuZnVuY3Rpb24gYWNjZXB0ZWRRdWVzdGlvbnMoXG4gIHF1ZXN0aW9uczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIG9wdGlvbnM6IFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zLFxuICBtYXhRdWVzdGlvbnM6IG51bWJlcixcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXhjbHVkZWQgPSBuZXcgU2V0KFtcbiAgICBub3JtYWxpemVkUXVlc3Rpb24ob3B0aW9ucy51c2VyVGV4dCksXG4gICAgLi4uKG9wdGlvbnMubmF0aXZlUXVlc3Rpb25zID8/IFtdKS5tYXAobm9ybWFsaXplZFF1ZXN0aW9uKSxcbiAgXSk7XG4gIGNvbnN0IGFjY2VwdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9ucykge1xuICAgIGNvbnN0IHRyaW1tZWQgPSBxdWVzdGlvbi50cmltKCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWRRdWVzdGlvbih0cmltbWVkKTtcbiAgICBpZiAoXG4gICAgICAhbm9ybWFsaXplZCB8fFxuICAgICAgbm9ybWFsaXplZC5sZW5ndGggPCA4IHx8XG4gICAgICBleGNsdWRlZC5oYXMobm9ybWFsaXplZCkgfHxcbiAgICAgIEdFTkVSSUNfUVVFU1RJT05TLmhhcyhub3JtYWxpemVkKSB8fFxuICAgICAgQVNTSVNUQU5UX0RJUkVDVEVEX1FVRVNUSU9OUy5zb21lKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnRlc3Qobm9ybWFsaXplZCkpXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgZXhjbHVkZWQuYWRkKG5vcm1hbGl6ZWQpO1xuICAgIGFjY2VwdGVkLnB1c2godHJpbW1lZCk7XG4gICAgaWYgKGFjY2VwdGVkLmxlbmd0aCA+PSBtYXhRdWVzdGlvbnMpIGJyZWFrO1xuICB9XG4gIHJldHVybiBhY2NlcHRlZDtcbn1cblxuZnVuY3Rpb24gdG9vbEFjdGl2aXR5VmFsdWUodmFsdWU6IHVua25vd24pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghb2JqZWN0LmlzUmVjb3JkKHZhbHVlKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIG9iamVjdC5pc1JlY29yZCh2YWx1ZS5wYXlsb2FkKSA/IHZhbHVlLnBheWxvYWQgOiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gdG9vbEFjdGl2aXR5TmFtZSh2YWx1ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIHZhbHVlLnRvb2xOYW1lID09PSBcInN0cmluZ1wiKSByZXR1cm4gdmFsdWUudG9vbE5hbWU7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUubmFtZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlLm5hbWUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZWRUdXJuQ29udGV4dChzdGVwczogcmVhZG9ubHkgTExNU3RlcFJlc3VsdFtdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgYWN0aXZpdHkgPSBzdGVwcy5mbGF0TWFwKChzdGVwKSA9PiBbXG4gICAgLi4uKHN0ZXAudG9vbENhbGxzID8/IFtdKS5mbGF0TWFwKChjYWxsKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRvb2xBY3Rpdml0eVZhbHVlKGNhbGwpO1xuICAgICAgY29uc3QgdG9vbCA9IHZhbHVlID8gdG9vbEFjdGl2aXR5TmFtZSh2YWx1ZSkgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoIXZhbHVlIHx8ICF0b29sKSByZXR1cm4gW107XG4gICAgICByZXR1cm4gW3sgdG9vbCwgaW5wdXQ6IHZhbHVlLmFyZ3MgPz8gdmFsdWUuaW5wdXQgfV07XG4gICAgfSksXG4gICAgLi4uKHN0ZXAudG9vbFJlc3VsdHMgPz8gW10pLmZsYXRNYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0b29sQWN0aXZpdHlWYWx1ZShyZXN1bHQpO1xuICAgICAgY29uc3QgdG9vbCA9IHZhbHVlID8gdG9vbEFjdGl2aXR5TmFtZSh2YWx1ZSkgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoIXZhbHVlIHx8ICF0b29sKSByZXR1cm4gW107XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdG9vbCxcbiAgICAgICAgICBvdXRwdXQ6IHZhbHVlLnJlc3VsdCA/PyB2YWx1ZS5vdXRwdXQsXG4gICAgICAgICAgLi4uKHZhbHVlLmlzRXJyb3IgfHwgdmFsdWUuZXJyb3IgPyB7IGlzRXJyb3I6IHRydWUgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfSksXG4gIF0pO1xuICBpZiAoYWN0aXZpdHkubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBKU09OLnN0cmluZ2lmeShhY3Rpdml0eS5zbGljZSgtMTIpKTtcbiAgICByZXR1cm4gc2VyaWFsaXplZC5sZW5ndGggPiBNQVhfVFVSTl9DT05URVhUX0NIQVJTXG4gICAgICA/IHNlcmlhbGl6ZWQuc2xpY2UoMCwgTUFYX1RVUk5fQ09OVEVYVF9DSEFSUylcbiAgICAgIDogc2VyaWFsaXplZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogR2VuZXJhdGUgZ3JvdW5kZWQgZm9sbG93LXVwcyB0aHJvdWdoIENoYXRGYXN0LCBmYWlsaW5nIG9wZW4gdG8gYW4gZW1wdHkgbGlzdC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdWdnZXN0Rm9sbG93VXBzKFxuICBjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyxcbiAgb3B0aW9uczogU3VnZ2VzdEZvbGxvd1Vwc09wdGlvbnMsXG4pOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IHNldHRpbmdzID0gcmVzb2x2ZUZvbGxvd1VwU3VnZ2VzdGlvbnNDb25maWcoY29uZmlnLmZvbGxvd1VwU3VnZ2VzdGlvbnMpO1xuICBpZiAoIXNldHRpbmdzIHx8IHNldHRpbmdzLm1vZGUgPT09IFwiZ2VuaWVcIikgcmV0dXJuIFtdO1xuICBjb25zdCB0aW1lb3V0ID0gQWJvcnRTaWduYWwudGltZW91dChzZXR0aW5ncy50aW1lb3V0TXMpO1xuICBjb25zdCBhYm9ydFNpZ25hbCA9IGFzeW5jVXRpbHMuY29tYmluZUFib3J0U2lnbmFscyhvcHRpb25zLmFib3J0U2lnbmFsLCB0aW1lb3V0KTtcbiAgY29uc3QgcHJvbXB0ID0gc3RyaW5nVXRpbHMudG9EZXNjcmlwdGlvbih7XG4gICAgXCJVc2VyIG1lc3NhZ2VcIjogb3B0aW9ucy51c2VyVGV4dCxcbiAgICBcIkFzc2lzdGFudCBhbnN3ZXJcIjogb3B0aW9ucy5hbnN3ZXIsXG4gICAgLi4uKG9wdGlvbnMudHVybkNvbnRleHQgPyB7IFwiVHVybiB0b29sIGRhdGFcIjogb3B0aW9ucy50dXJuQ29udGV4dCB9IDoge30pLFxuICAgIC4uLihvcHRpb25zLm5hdGl2ZVF1ZXN0aW9ucz8ubGVuZ3RoXG4gICAgICA/IHsgXCJFeGlzdGluZyBzdWdnZXN0aW9uc1wiOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLm5hdGl2ZVF1ZXN0aW9ucykgfVxuICAgICAgOiB7fSksXG4gICAgXCJNYXhpbXVtIHF1ZXN0aW9uc1wiOiBTdHJpbmcoc2V0dGluZ3MubGltaXQpLFxuICB9KTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdWdnZXN0aW9uQWdlbnQoY29uZmlnKS5nZW5lcmF0ZShwcm9tcHQsIHtcbiAgICAgIHN0cnVjdHVyZWRPdXRwdXQ6IHsgc2NoZW1hOiBGb2xsb3dVcE91dHB1dFNjaGVtYSB9LFxuICAgICAgLi4uKG9wdGlvbnMucmVxdWVzdENvbnRleHQgPyB7IHJlcXVlc3RDb250ZXh0OiBvcHRpb25zLnJlcXVlc3RDb250ZXh0IH0gOiB7fSksXG4gICAgICBhYm9ydFNpZ25hbCxcbiAgICB9KTtcbiAgICBjb25zdCBwYXJzZWQgPSBGb2xsb3dVcE91dHB1dFNjaGVtYS5wYXJzZShyZXN1bHQub2JqZWN0KTtcbiAgICByZXR1cm4gYWNjZXB0ZWRRdWVzdGlvbnMocGFyc2VkLnF1ZXN0aW9ucywgb3B0aW9ucywgc2V0dGluZ3MubGltaXQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmICghb3B0aW9ucy5hYm9ydFNpZ25hbD8uYWJvcnRlZCkge1xuICAgICAgbG9nZ2VyLndhcm4oXCJnZW5lcmF0aW9uLWZhaWxlZFwiLCB7IGVycm9yOiBlcnJvclV0aWxzLmVycm9yTWVzc2FnZShlcnJvcikgfSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsYXN0QXNzaXN0YW50UmVzcG9uc2UobWVzc2FnZUxpc3Q6IE1lc3NhZ2VMaXN0KSB7XG4gIGNvbnN0IG1lc3NhZ2VzID0gbWVzc2FnZUxpc3QuZ2V0LnJlc3BvbnNlLmRiKCk7XG4gIGZvciAobGV0IGluZGV4ID0gbWVzc2FnZXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBtZXNzYWdlc1tpbmRleF07XG4gICAgaWYgKG1lc3NhZ2U/LnJvbGUgPT09IFwiYXNzaXN0YW50XCIpIHJldHVybiBtZXNzYWdlO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHBlcnNpc3RlZEZvbGxvd1VwRGF0YShtZXNzYWdlTGlzdDogTWVzc2FnZUxpc3QpOiBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGEgfCB1bmRlZmluZWQge1xuICBjb25zdCBtZXNzYWdlID0gbGFzdEFzc2lzdGFudFJlc3BvbnNlKG1lc3NhZ2VMaXN0KTtcbiAgaWYgKCFtZXNzYWdlKSByZXR1cm4gdW5kZWZpbmVkO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgbWVzc2FnZS5jb250ZW50LnBhcnRzKSB7XG4gICAgaWYgKHBhcnQudHlwZSAhPT0gRk9MTE9XX1VQX1NVR0dFU1RJT05TX1BBUlRfVFlQRSB8fCAhKFwiZGF0YVwiIGluIHBhcnQpKSBjb250aW51ZTtcbiAgICBjb25zdCBwYXJzZWQgPSBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGFTY2hlbWEuc2FmZVBhcnNlKHBhcnQuZGF0YSk7XG4gICAgaWYgKHBhcnNlZC5zdWNjZXNzKSByZXR1cm4gcGFyc2VkLmRhdGE7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcGVyc2lzdEZvbGxvd1VwRGF0YShtZXNzYWdlTGlzdDogTWVzc2FnZUxpc3QsIGRhdGE6IEZvbGxvd1VwU3VnZ2VzdGlvbnNQYXJ0RGF0YSk6IHZvaWQge1xuICBjb25zdCBtZXNzYWdlID0gbGFzdEFzc2lzdGFudFJlc3BvbnNlKG1lc3NhZ2VMaXN0KTtcbiAgaWYgKCFtZXNzYWdlKSByZXR1cm47XG4gIG1lc3NhZ2VMaXN0LmFkZChcbiAgICB7XG4gICAgICBpZDogbWVzc2FnZS5pZCxcbiAgICAgIHJvbGU6IFwiYXNzaXN0YW50XCIsXG4gICAgICBwYXJ0czogW3sgdHlwZTogRk9MTE9XX1VQX1NVR0dFU1RJT05TX1BBUlRfVFlQRSwgZGF0YSB9XSxcbiAgICB9LFxuICAgIFwicmVzcG9uc2VcIixcbiAgICB7IG1lcmdlOiB0cnVlIH0sXG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbWVtYmVyR2VuZXJhdGVkUnVuUGFydChydW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBkYXRhOiBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGEpIHtcbiAgaWYgKCFydW5JZCkgcmV0dXJuO1xuICBnZW5lcmF0ZWRSdW5QYXJ0cy5zZXQocnVuSWQsIGRhdGEpO1xuICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gZ2VuZXJhdGVkUnVuUGFydHMuZGVsZXRlKHJ1bklkKSwgR0VORVJBVEVEX1JVTl9QQVJUX1RUTF9NUyk7XG4gIHRpbWVyLnVucmVmKCk7XG59XG5cbi8qKiBCdWlsZCBNYXN0cmEncyBmaW5hbCBvdXRwdXQgcHJvY2Vzc29yIGZvciBjb25maWd1cmVkIGdlbmVyYXRlZCBmb2xsb3ctdXBzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9sbG93VXBTdWdnZXN0aW9uc1Byb2Nlc3NvcihcbiAgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4gIHN1Z2dlc3RlcjogRm9sbG93VXBTdWdnZXN0ZXIgPSBzdWdnZXN0Rm9sbG93VXBzLFxuKTogT3V0cHV0UHJvY2Vzc29yIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSByZXNvbHZlRm9sbG93VXBTdWdnZXN0aW9uc0NvbmZpZyhjb25maWcuZm9sbG93VXBTdWdnZXN0aW9ucyk7XG4gIGlmICghc2V0dGluZ3MgfHwgc2V0dGluZ3MubW9kZSA9PT0gXCJnZW5pZVwiKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4ge1xuICAgIGlkOiBcImZvbGxvdy11cC1zdWdnZXN0aW9uc1wiLFxuICAgIGFzeW5jIHByb2Nlc3NPdXRwdXRSZXN1bHQoe1xuICAgICAgcmVzdWx0LFxuICAgICAgbWVzc2FnZUxpc3QsXG4gICAgICByZXF1ZXN0Q29udGV4dCxcbiAgICAgIGFib3J0U2lnbmFsLFxuICAgIH0pOiBQcm9taXNlPE1lc3NhZ2VMaXN0PiB7XG4gICAgICBpZiAoIXJlcXVlc3RDb250ZXh0IHx8IHJlc3VsdC5maW5pc2hSZWFzb24gPT09IFwiYWJvcnRcIiB8fCByZXN1bHQuZmluaXNoUmVhc29uID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VMaXN0O1xuICAgICAgfVxuICAgICAgY29uc3QgcnVuSWRWYWx1ZSA9IHJlcXVlc3RDb250ZXh0LmdldFJhdyhGT0xMT1dfVVBfUlVOX0lEX0tFWSk7XG4gICAgICBjb25zdCBydW5JZCA9IHR5cGVvZiBydW5JZFZhbHVlID09PSBcInN0cmluZ1wiID8gcnVuSWRWYWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHBlcnNpc3RlZCA9IHBlcnNpc3RlZEZvbGxvd1VwRGF0YShtZXNzYWdlTGlzdCk7XG4gICAgICBpZiAocGVyc2lzdGVkKSB7XG4gICAgICAgIHJlbWVtYmVyR2VuZXJhdGVkUnVuUGFydChydW5JZCwgcGVyc2lzdGVkKTtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VMaXN0O1xuICAgICAgfVxuICAgICAgY29uc3QgYW5zd2VyID0gcmVzdWx0LnRleHQudHJpbSgpO1xuICAgICAgY29uc3QgdXNlclRleHQgPSByZXF1ZXN0Q29udGV4dC5nZXRSYXcoRk9MTE9XX1VQX1VTRVJfVEVYVF9LRVkpO1xuICAgICAgaWYgKCFhbnN3ZXIgfHwgdHlwZW9mIHVzZXJUZXh0ICE9PSBcInN0cmluZ1wiKSByZXR1cm4gbWVzc2FnZUxpc3Q7XG4gICAgICBjb25zdCBuYXRpdmVWYWx1ZSA9IHJlcXVlc3RDb250ZXh0LmdldFJhdyhGT0xMT1dfVVBfTkFUSVZFX1FVRVNUSU9OU19LRVkpO1xuICAgICAgY29uc3QgbmF0aXZlUXVlc3Rpb25zID1cbiAgICAgICAgc2V0dGluZ3MubW9kZSA9PT0gXCJhdXRvXCIgJiYgQXJyYXkuaXNBcnJheShuYXRpdmVWYWx1ZSlcbiAgICAgICAgICA/IG5hdGl2ZVZhbHVlLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBzdHJpbmcgPT4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgIDogW107XG4gICAgICBjb25zdCB0dXJuQ29udGV4dCA9IHNlcmlhbGl6ZWRUdXJuQ29udGV4dChyZXN1bHQuc3RlcHMpO1xuICAgICAgY29uc3Qgc3VnZ2VzdGlvbk9wdGlvbnM6IFN1Z2dlc3RGb2xsb3dVcHNPcHRpb25zID0ge1xuICAgICAgICB1c2VyVGV4dCxcbiAgICAgICAgYW5zd2VyLFxuICAgICAgICAuLi4odHVybkNvbnRleHQgPyB7IHR1cm5Db250ZXh0IH0gOiB7fSksXG4gICAgICAgIC4uLihuYXRpdmVRdWVzdGlvbnMubGVuZ3RoID4gMCA/IHsgbmF0aXZlUXVlc3Rpb25zIH0gOiB7fSksXG4gICAgICAgIHJlcXVlc3RDb250ZXh0LFxuICAgICAgICAuLi4oYWJvcnRTaWduYWwgPyB7IGFib3J0U2lnbmFsIH0gOiB7fSksXG4gICAgICB9O1xuICAgICAgY29uc3Qgc3VnZ2VzdGVkID0gYXdhaXQgc3VnZ2VzdGVyKGNvbmZpZywgc3VnZ2VzdGlvbk9wdGlvbnMpO1xuICAgICAgY29uc3QgcXVlc3Rpb25zID0gYWNjZXB0ZWRRdWVzdGlvbnMoc3VnZ2VzdGVkLCBzdWdnZXN0aW9uT3B0aW9ucywgc2V0dGluZ3MubGltaXQpO1xuICAgICAgaWYgKHF1ZXN0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiBtZXNzYWdlTGlzdDtcbiAgICAgIGNvbnN0IGRhdGEgPSBGb2xsb3dVcFN1Z2dlc3Rpb25zUGFydERhdGFTY2hlbWEucGFyc2Uoe1xuICAgICAgICBxdWVzdGlvbnMsXG4gICAgICAgIHNvdXJjZTogXCJtb2RlbFwiLFxuICAgICAgfSk7XG4gICAgICBwZXJzaXN0Rm9sbG93VXBEYXRhKG1lc3NhZ2VMaXN0LCBkYXRhKTtcbiAgICAgIHJlbWVtYmVyR2VuZXJhdGVkUnVuUGFydChydW5JZCwgZGF0YSk7XG4gICAgICByZXR1cm4gbWVzc2FnZUxpc3Q7XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqIEluamVjdCB0aGUgcHJvY2Vzc29yJ3MgcGVyc2lzdGVkIGRhdGEgcGFydCBiZWZvcmUgTWFzdHJhJ3MgZmluaXNoIGNodW5rLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9sbG93VXBTdWdnZXN0aW9uc1RyYW5zZm9ybShydW5JZDogc3RyaW5nKTogTWFzdHJhU3RyZWFtVHJhbnNmb3JtIHtcbiAgcmV0dXJuICgpID0+XG4gICAgbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgaWYgKGNodW5rLnR5cGUgPT09IFwiZmluaXNoXCIpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gZ2VuZXJhdGVkUnVuUGFydHMuZ2V0KHJ1bklkKTtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgY29uc3QgcGFydDogRGF0YUNodW5rVHlwZSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogRk9MTE9XX1VQX1NVR0dFU1RJT05TX1BBUlRfVFlQRSxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUocGFydCBhcyBuZXZlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICB9LFxuICAgIH0pO1xufVxuXG4vKiogQnVpbGQgdGhlIG9wdGlvbmFsIGV4cGxpY2l0bHkgY2FsbGFibGUgZm9sbG93LXVwIHN1Z2dlc3Rpb24gdG9vbC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN1Z2dlc3RGb2xsb3dVcHNUb29sKGNvbmZpZzogTWFzdHJhUGx1Z2luQ29uZmlnKSB7XG4gIHJldHVybiBjcmVhdGVUb29sKHtcbiAgICBpZDogXCJzdWdnZXN0X2ZvbGxvd191cHNcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiR2VuZXJhdGUgYSBzaG9ydCBsaXN0IG9mIGdyb3VuZGVkIGZvbGxvdy11cCBxdWVzdGlvbnMgZm9yIGEgY29tcGxldGVkIHVzZXIgbWVzc2FnZSBhbmQgYW5zd2VyLlwiLFxuICAgIGlucHV0U2NoZW1hOiBGb2xsb3dVcFRvb2xJbnB1dFNjaGVtYSxcbiAgICBvdXRwdXRTY2hlbWE6IEZvbGxvd1VwT3V0cHV0U2NoZW1hLFxuICAgIGV4ZWN1dGU6IGFzeW5jIChpbnB1dCwgY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gRm9sbG93VXBUb29sSW5wdXRTY2hlbWEucGFyc2UoaW5wdXQpO1xuICAgICAgY29uc3QgcXVlc3Rpb25zID0gYXdhaXQgc3VnZ2VzdEZvbGxvd1Vwcyhjb25maWcsIHtcbiAgICAgICAgdXNlclRleHQ6IHZhbHVlcy51c2VyVGV4dCxcbiAgICAgICAgYW5zd2VyOiB2YWx1ZXMuYW5zd2VyLFxuICAgICAgICAuLi4odmFsdWVzLnR1cm5Db250ZXh0ID8geyB0dXJuQ29udGV4dDogdmFsdWVzLnR1cm5Db250ZXh0IH0gOiB7fSksXG4gICAgICAgIC4uLih2YWx1ZXMubmF0aXZlUXVlc3Rpb25zID8geyBuYXRpdmVRdWVzdGlvbnM6IHZhbHVlcy5uYXRpdmVRdWVzdGlvbnMgfSA6IHt9KSxcbiAgICAgICAgLi4uKGNvbnRleHQ/LnJlcXVlc3RDb250ZXh0ID8geyByZXF1ZXN0Q29udGV4dDogY29udGV4dC5yZXF1ZXN0Q29udGV4dCB9IDoge30pLFxuICAgICAgICAuLi4oY29udGV4dD8uYWJvcnRTaWduYWwgPyB7IGFib3J0U2lnbmFsOiBjb250ZXh0LmFib3J0U2lnbmFsIH0gOiB7fSksXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IHF1ZXN0aW9ucyB9O1xuICAgIH0sXG4gIH0pO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -36,21 +36,21 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@databricks/appkit": "0.81.0",
|
|
39
|
-
"@dbx-tools/appkit": "^0.9.
|
|
40
|
-
"@dbx-tools/cache": "^0.9.
|
|
41
|
-
"@dbx-tools/core": "^0.9.
|
|
42
|
-
"@dbx-tools/databricks": "^0.9.
|
|
43
|
-
"@dbx-tools/fs": "^0.9.
|
|
44
|
-
"@dbx-tools/genie": "^0.9.
|
|
45
|
-
"@dbx-tools/model": "^0.9.
|
|
46
|
-
"@dbx-tools/model-protocol": "^0.9.
|
|
47
|
-
"@dbx-tools/path": "^0.9.
|
|
48
|
-
"@dbx-tools/postgres": "^0.9.
|
|
49
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
50
|
-
"@dbx-tools/shared-fs": "^0.9.
|
|
51
|
-
"@dbx-tools/shared-genie": "^0.9.
|
|
52
|
-
"@dbx-tools/shared-mastra": "^0.9.
|
|
53
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
39
|
+
"@dbx-tools/appkit": "^0.9.144",
|
|
40
|
+
"@dbx-tools/cache": "^0.9.144",
|
|
41
|
+
"@dbx-tools/core": "^0.9.144",
|
|
42
|
+
"@dbx-tools/databricks": "^0.9.144",
|
|
43
|
+
"@dbx-tools/fs": "^0.9.144",
|
|
44
|
+
"@dbx-tools/genie": "^0.9.144",
|
|
45
|
+
"@dbx-tools/model": "^0.9.144",
|
|
46
|
+
"@dbx-tools/model-protocol": "^0.9.144",
|
|
47
|
+
"@dbx-tools/path": "^0.9.144",
|
|
48
|
+
"@dbx-tools/postgres": "^0.9.144",
|
|
49
|
+
"@dbx-tools/shared-core": "^0.9.144",
|
|
50
|
+
"@dbx-tools/shared-fs": "^0.9.144",
|
|
51
|
+
"@dbx-tools/shared-genie": "^0.9.144",
|
|
52
|
+
"@dbx-tools/shared-mastra": "^0.9.144",
|
|
53
|
+
"@dbx-tools/shared-model": "^0.9.144",
|
|
54
54
|
"@mastra/ai-sdk": "1.10.5",
|
|
55
55
|
"@mastra/core": "1.71.0",
|
|
56
56
|
"@mastra/express": "1.5.15",
|
|
@@ -231,7 +231,7 @@
|
|
|
231
231
|
"./package.json": "./package.json"
|
|
232
232
|
}
|
|
233
233
|
},
|
|
234
|
-
"version": "0.9.
|
|
234
|
+
"version": "0.9.144",
|
|
235
235
|
"types": "./lib/index.d.ts",
|
|
236
236
|
"dbxToolsConfig": {
|
|
237
237
|
"tags": [
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { asyncUtils, errorUtils, log, stringUtils } from "@dbx-tools/shared-core";
|
|
7
|
+
import { asyncUtils, errorUtils, log, object, stringUtils } from "@dbx-tools/shared-core";
|
|
8
8
|
import {
|
|
9
9
|
FOLLOW_UP_SUGGESTIONS_PART_TYPE,
|
|
10
10
|
type FollowUpSuggestionsPartData,
|
|
@@ -194,17 +194,36 @@ function acceptedQuestions(
|
|
|
194
194
|
return accepted;
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
+
function toolActivityValue(value: unknown): Record<string, unknown> | undefined {
|
|
198
|
+
if (!object.isRecord(value)) return undefined;
|
|
199
|
+
return object.isRecord(value.payload) ? value.payload : value;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
function toolActivityName(value: Record<string, unknown>): string | undefined {
|
|
203
|
+
if (typeof value.toolName === "string") return value.toolName;
|
|
204
|
+
return typeof value.name === "string" ? value.name : undefined;
|
|
205
|
+
}
|
|
206
|
+
|
|
197
207
|
function serializedTurnContext(steps: readonly LLMStepResult[]): string | undefined {
|
|
198
208
|
const activity = steps.flatMap((step) => [
|
|
199
|
-
...step.toolCalls.
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
209
|
+
...(step.toolCalls ?? []).flatMap((call) => {
|
|
210
|
+
const value = toolActivityValue(call);
|
|
211
|
+
const tool = value ? toolActivityName(value) : undefined;
|
|
212
|
+
if (!value || !tool) return [];
|
|
213
|
+
return [{ tool, input: value.args ?? value.input }];
|
|
214
|
+
}),
|
|
215
|
+
...(step.toolResults ?? []).flatMap((result) => {
|
|
216
|
+
const value = toolActivityValue(result);
|
|
217
|
+
const tool = value ? toolActivityName(value) : undefined;
|
|
218
|
+
if (!value || !tool) return [];
|
|
219
|
+
return [
|
|
220
|
+
{
|
|
221
|
+
tool,
|
|
222
|
+
output: value.result ?? value.output,
|
|
223
|
+
...(value.isError || value.error ? { isError: true } : {}),
|
|
224
|
+
},
|
|
225
|
+
];
|
|
226
|
+
}),
|
|
208
227
|
]);
|
|
209
228
|
if (activity.length === 0) return undefined;
|
|
210
229
|
try {
|