@dbx-tools/model 0.9.36 → 0.9.38
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/metadata-cache.js +10 -2
- package/lib/src/policy.d.ts +2 -0
- package/lib/src/policy.js +15 -10
- package/package.json +6 -6
- package/src/metadata-cache.ts +16 -1
- package/src/policy.ts +15 -9
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/model";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.38";
|
|
7
7
|
export * as classes from "./src/classes.ts";
|
|
8
8
|
export * as classify from "./src/classify.ts";
|
|
9
9
|
export * as fallback from "./src/fallback.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/model";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.38";
|
|
3
3
|
export * as classes from "./src/classes.ts";
|
|
4
4
|
export * as classify from "./src/classify.ts";
|
|
5
5
|
export * as fallback from "./src/fallback.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/model";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.38";
|
|
6
6
|
export * as classes from "./src/classes.js";
|
|
7
7
|
export * as classify from "./src/classify.js";
|
|
8
8
|
export * as fallback from "./src/fallback.js";
|
|
@@ -23,4 +23,4 @@ export { DEFAULT_MODEL_CACHE_TTL_MS, DEFAULT_FUZZY_THRESHOLD } from "./src/model
|
|
|
23
23
|
export { DEFAULT_MODEL_CLIENT_CACHE_TTL_MS } from "./src/model-client.js";
|
|
24
24
|
export { REASONING_LEVELS } from "./src/reasoning-translation.js";
|
|
25
25
|
export * from "./exports.js";
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxvQkFBb0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNLLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxMLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSWxFLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9tb2RlbFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjM4XCI7XG5leHBvcnQgKiBhcyBjbGFzc2VzIGZyb20gXCIuL3NyYy9jbGFzc2VzLnRzXCI7XG5leHBvcnQgKiBhcyBjbGFzc2lmeSBmcm9tIFwiLi9zcmMvY2xhc3NpZnkudHNcIjtcbmV4cG9ydCAqIGFzIGZhbGxiYWNrIGZyb20gXCIuL3NyYy9mYWxsYmFjay50c1wiO1xuZXhwb3J0ICogYXMgaW52b2tlIGZyb20gXCIuL3NyYy9pbnZva2UudHNcIjtcbmV4cG9ydCAqIGFzIG1ldGFkYXRhIGZyb20gXCIuL3NyYy9tZXRhZGF0YS50c1wiO1xuZXhwb3J0ICogYXMgbWV0YWRhdGFDYWNoZSBmcm9tIFwiLi9zcmMvbWV0YWRhdGEtY2FjaGUudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsQ2F0YWxvZyBmcm9tIFwiLi9zcmMvbW9kZWwtY2F0YWxvZy50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWxDbGllbnQgZnJvbSBcIi4vc3JjL21vZGVsLWNsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgcG9saWN5IGZyb20gXCIuL3NyYy9wb2xpY3kudHNcIjtcbmV4cG9ydCAqIGFzIHJlYXNvbmluZ1RyYW5zbGF0aW9uIGZyb20gXCIuL3NyYy9yZWFzb25pbmctdHJhbnNsYXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIHJlc29sdmUgZnJvbSBcIi4vc3JjL3Jlc29sdmUudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmdXaXJlIGZyb20gXCIuL3NyYy9zZXJ2aW5nLXdpcmUudHNcIjtcbmV4cG9ydCB7IENIQVRfQ0xBU1NfT1JERVIsIE1PREVMX0NMQVNTX09SREVSIH0gZnJvbSBcIi4vc3JjL2NsYXNzZXMudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX01PREVMX0lEUyB9IGZyb20gXCIuL3NyYy9mYWxsYmFjay50c1wiO1xuZXhwb3J0IHsgSU5WT0NBVElPTlNfU1VGRklYLCBSRVNQT05TRVNfUEFUSCwgT1BFTl9SRVNQT05TRVNfUEFUSCwgQ0hBVF9DT01QTEVUSU9OU19QQVRILCBBSV9HQVRFV0FZX0NPREVYX1JFU1BPTlNFU19QQVRILCBBTlRIUk9QSUNfTUVTU0FHRVNfUEFUSCB9IGZyb20gXCIuL3NyYy9pbnZva2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aGVudGljYXRpbmdDbGllbnRMaWtlIH0gZnJvbSBcIi4vc3JjL2ludm9rZS50c1wiO1xuZXhwb3J0IHsgTU9ERUxfTUVUQURBVEFfVFRMX01TLCBNT0RFTF9SQVRFX0xJTUlUU19VUkwsIE9QRU5BSV9SRVNQT05TRVNfTU9ERUxTX1VSTCwgUVVFUllfUkVBU09OX01PREVMU19VUkwsIFJFVElSRURfTU9ERUxTX1VSTCwgV0VCX1NFQVJDSF9NT0RFTFNfVVJMIH0gZnJvbSBcIi4vc3JjL21ldGFkYXRhLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1ldGFkYXRhQ2FjaGVSZWNvcmQsIE1ldGFkYXRhQ2FjaGVPcHRpb25zLCBNZXRhZGF0YUNhY2hlTWVyZ2VJbnB1dCwgTWV0YWRhdGFDYWNoZSB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jYWNoZS50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9NT0RFTF9DQUNIRV9UVExfTVMsIERFRkFVTFRfRlVaWllfVEhSRVNIT0xEIH0gZnJvbSBcIi4vc3JjL21vZGVsLWNhdGFsb2cudHNcIjtcbmV4cG9ydCB0eXBlIHsgV29ya3NwYWNlQ2xpZW50TGlrZSwgTGlzdFNlcnZpbmdFbmRwb2ludHNPcHRpb25zIH0gZnJvbSBcIi4vc3JjL21vZGVsLWNhdGFsb2cudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfTU9ERUxfQ0xJRU5UX0NBQ0hFX1RUTF9NUyB9IGZyb20gXCIuL3NyYy9tb2RlbC1jbGllbnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxBdXRoT3B0aW9ucywgTW9kZWxDbGllbnRPcHRpb25zLCBNb2RlbENsaWVudFN0YXR1cywgTW9kZWxQcm90b2NvbCwgTW9kZWxSb3V0ZUlucHV0LCBNb2RlbFJvdXRlLCBNb2RlbENsaWVudCB9IGZyb20gXCIuL3NyYy9tb2RlbC1jbGllbnQudHNcIjtcbmV4cG9ydCB7IFJFQVNPTklOR19MRVZFTFMgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlYXNvbmluZ0xldmVsLCBSZWFzb25pbmdNb2RlbENhdGFsb2d1ZSwgQWRhcHRlZFJlcXVlc3RSZWFzb25pbmcgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlbGVjdE1vZGVsSW5wdXQsIFNlYXJjaE1vZGVsc0lucHV0IH0gZnJvbSBcIi4vc3JjL3Jlc29sdmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2VydmluZ0NoYXRNZXNzYWdlLCBSZXdyaXR0ZW5TZXJ2aW5nUmVxdWVzdCB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLXdpcmUudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
|
|
@@ -20,6 +20,14 @@ import cacache from "cacache";
|
|
|
20
20
|
import envPaths from "env-paths";
|
|
21
21
|
import { MODEL_METADATA_TTL_MS } from "./_metadata-contract.js";
|
|
22
22
|
const logger = log.logger("model/metadata-cache");
|
|
23
|
+
let packageIdentityPromise;
|
|
24
|
+
function packageIdentity() {
|
|
25
|
+
packageIdentityPromise ??= import("../index.js").then((mod) => ({
|
|
26
|
+
identifier: mod.PACKAGE_IDENTIFIER,
|
|
27
|
+
version: mod.PACKAGE_VERSION,
|
|
28
|
+
}));
|
|
29
|
+
return packageIdentityPromise;
|
|
30
|
+
}
|
|
23
31
|
const inflight = new Map();
|
|
24
32
|
/** Default cacache root for a package version under the dbx-tools cache dir. */
|
|
25
33
|
export function defaultMetadataCacheDir(version) {
|
|
@@ -156,7 +164,7 @@ export function createMetadataCache(options) {
|
|
|
156
164
|
async function resolveCacheDir(options) {
|
|
157
165
|
if (options.cacheDir)
|
|
158
166
|
return options.cacheDir;
|
|
159
|
-
const version = options.version ?? (await
|
|
167
|
+
const version = options.version ?? (await packageIdentity()).version;
|
|
160
168
|
return defaultMetadataCacheDir(version);
|
|
161
169
|
}
|
|
162
170
|
/** Prefer a non-empty fresh array, else previous, else fallback. */
|
|
@@ -223,4 +231,4 @@ function isCacheMiss(error) {
|
|
|
223
231
|
"code" in error &&
|
|
224
232
|
error.code === "ENOENT");
|
|
225
233
|
}
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0YWRhdGEtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEtBQUssR0FBRyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBMERsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztBQUVyRCxnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE9BQWU7SUFDckQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNuRSxPQUFPLE9BQU8sQ0FBQyxjQUFjLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxzRUFBc0U7QUFDdEUsTUFBTSxVQUFVLHdCQUF3QixDQUFDLGNBQWlDLE9BQU8sQ0FBQyxHQUFHO0lBQ25GLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUksT0FBZ0M7SUFDckUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FBQztJQUNyRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLHdCQUF3QixFQUFFLENBQUM7SUFDL0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBaUIsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFVLEVBQUUsQ0FDM0QsR0FBRyxTQUFTLEtBQUssT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUUxQyxtRUFBbUU7SUFDbkUsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7SUFFN0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQyxFQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBGLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBMEMsRUFBVyxFQUFFLENBQ3RFLE9BQU8sQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUV4RCxNQUFNLFNBQVMsR0FBRyxLQUFLLElBQXFCLEVBQUU7UUFDNUMsSUFBSSxLQUFLLE1BQU0sV0FBVyxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFpRCxFQUFFO1FBQ3pFLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxNQUFNLFlBQVksR0FBRyxNQUFNLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQztZQUNILGlFQUFpRTtZQUNqRSxNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzRCxPQUFPLFlBQVksQ0FBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRTtnQkFDaEQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsTUFBOEIsRUFBaUIsRUFBRTtRQUMxRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxTQUFTLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQzFFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFO2FBQzlDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsRUFBRTtnQkFDakQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBUSxFQUFFLFdBQVcsR0FBRyxHQUFHLEVBQUUsRUFBYyxFQUFFO1FBQ2xFLE1BQU0sV0FBVyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBYyxFQUFjLEVBQUU7UUFDbkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxTQUFTLEVBQUUsQ0FBQztRQUN2QyxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLFlBQVksQ0FBQztvQkFDbEIsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSztvQkFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2lCQUMzQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsSUFBSSxLQUFvQixDQUFDO1lBQ3pCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUM7b0JBQ0gsS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMvQixDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyx3REFBd0QsRUFBRTt3QkFDcEUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO3dCQUNoQixLQUFLO3dCQUNMLElBQUksRUFBRSxZQUFZO3dCQUNsQixXQUFXO3FCQUNaLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQztnQkFDekIsS0FBSztnQkFDTCxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUs7Z0JBQ3pCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTthQUMzQixDQUFDLENBQUM7WUFDSCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsSUFBSSxJQUFJO1lBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztZQUNwRixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsV0FBVztRQUNYLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUs7UUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDNUIsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN4QixNQUFNLFlBQVksR0FBRyxNQUFNLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQztvQkFDNUIsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSztvQkFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFDLE9BRzlCO0lBQ0MsSUFBSSxPQUFPLENBQUMsUUFBUTtRQUFFLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFDakYsT0FBTyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxLQUE0QztJQUNsRixJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsS0FBMkQ7SUFFM0QsT0FBTztRQUNMLEdBQUcsS0FBSyxDQUFDLFFBQVE7UUFDakIsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVELHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUFDLFFBQWdCO0lBQzFELElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLGdDQUFnQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxJQUFJLENBQUM7WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUksR0FBVyxFQUFFLElBQXNCO0lBQ3RELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsSUFBSSxRQUFRO1FBQUUsT0FBTyxRQUFzQixDQUFDO0lBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDbEMsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE9BQU87WUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0IsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFJLElBQVk7SUFDbkMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFZLENBQUM7UUFDNUQsSUFDRSxDQUFDLE1BQU07WUFDUCxPQUFPLE1BQU0sS0FBSyxRQUFRO1lBQzFCLE9BQVEsTUFBaUMsQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUNsRSxDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sTUFBZ0MsQ0FBQztJQUMxQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLE9BQU8sT0FBTyxDQUNaLEtBQUs7UUFDTCxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLE1BQU0sSUFBSSxLQUFLO1FBQ2QsS0FBMkIsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUMvQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWdub3N0aWMgZGFpbHkgbWV0YWRhdGEgY2FjaGUgb24ge0BsaW5rIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2NhY2FjaGUgfCBjYWNhY2hlfS5cbiAqXG4gKiBVc2VzIGNhY2FjaGUncyBidWlsdC1pbiBtZW1vcnkgbWVtb2l6YXRpb24gKGBtZW1vaXplOiB0cnVlYCBvbiBwdXQ7IGdldHMgcmVhZFxuICogdGhlIGluLW1lbW9yeSBsYXllciBieSBkZWZhdWx0KSB3aXRoIGNvbnRlbnQtYWRkcmVzc2VkIGRpc2sgdW5kZXJcbiAqIGBlbnYtcGF0aHMoXCJkYngtdG9vbHNcIikuY2FjaGUvbW9kZWwtZ2F0ZXdheS88dmVyc2lvbj4vYC4gRGlzayBwZXJzaXN0ZW5jZSBpc1xuICogZGlzYWJsZWQgaW5zaWRlIGEgRGF0YWJyaWNrcyBBcHAgKHtAbGluayBlbnZpcm9ubWVudFV0aWxzLmlzRGF0YWJyaWNrc0FwcEVudn0pO1xuICogdGhvc2UgcHJvY2Vzc2VzIGtlZXAgYSBwcm9jZXNzLWxvY2FsIE1hcCBvbmx5LlxuICpcbiAqIEVhY2ggY2FjaGUgb3ducyBhIGtleSwgaGFyZC1jb2RlZCBmYWxsYmFjaywgb3B0aW9uYWwgbmV0d29yayBsb2FkZXIsIGFuZCBhXG4gKiBtZXJnZXIgdGhhdCBjb21iaW5lcyBmcmVzaCAvIHByZXZpb3VzIC8gZmFsbGJhY2sgdmFsdWVzLiBGcmVzaG5lc3MgaXMgdGhlXG4gKiBlbnZlbG9wZSBgcmVmcmVzaGVkQXRgIHdpbmRvdyAoZGVmYXVsdCBvbmUgZGF5KSwgbm90IGNhY2FjaGUncyBzaG9ydCBMUlUgVFRMLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuXG5pbXBvcnQgKiBhcyBlbnZpcm9ubWVudFV0aWxzIGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlL2Vudmlyb25tZW50LXV0aWxzXCI7XG5pbXBvcnQgKiBhcyBsb2cgZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmUvbG9nXCI7XG5pbXBvcnQgY2FjYWNoZSBmcm9tIFwiY2FjYWNoZVwiO1xuaW1wb3J0IGVudlBhdGhzIGZyb20gXCJlbnYtcGF0aHNcIjtcblxuaW1wb3J0IHsgTU9ERUxfTUVUQURBVEFfVFRMX01TIH0gZnJvbSBcIi4vX21ldGFkYXRhLWNvbnRyYWN0LnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJtb2RlbC9tZXRhZGF0YS1jYWNoZVwiKTtcblxuLyoqIEVudmVsb3BlIHN0b3JlZCBhcyBKU09OIGJ5dGVzIGluIGNhY2FjaGUgZm9yIGV2ZXJ5IGtleS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFDYWNoZVJlY29yZDxUPiB7XG4gIHJlYWRvbmx5IHJlZnJlc2hlZEF0OiBudW1iZXI7XG4gIHJlYWRvbmx5IHZhbHVlOiBUO1xufVxuXG4vKiogRmFjdG9yeSBpbnB1dHMgZm9yIG9uZSBuYW1lZCBtZXRhZGF0YSBjYWNoZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFDYWNoZU9wdGlvbnM8VD4ge1xuICAvKiogU3RhYmxlIGNhY2FjaGUga2V5LiAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcbiAgLyoqIEhhcmQtY29kZWQgLyBjb21taXR0ZWQgYmFzZWxpbmUgdXNlZCB3aGVuIHN0b3JlIGFuZCBsb2FkIGJvdGggbWlzcy4gKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2s6IFQ7XG4gIC8qKlxuICAgKiBSZWZyZXNoIHNvdXJjZS4gV2hlbiBvbWl0dGVkIHRoZSBjYWNoZSBvbmx5IHNlcnZlcyBzdG9yZSArIGZhbGxiYWNrIGFuZFxuICAgKiB7QGxpbmsgTWV0YWRhdGFDYWNoZS51cGRhdGV9IG11dGF0aW9ucyAoZm9yIGV4YW1wbGUgZXJyb3ItbGVhcm5lZCB2YWx1ZXMpLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZD86ICgpID0+IFByb21pc2U8VD47XG4gIC8qKiBDb21iaW5lIGEgZnJlc2ggbG9hZCwgcHJpb3Igc3RvcmUgdmFsdWUsIGFuZCB0aGUgaGFyZC1jb2RlZCBmYWxsYmFjay4gKi9cbiAgcmVhZG9ubHkgbWVyZ2U6IChpbnB1dDogTWV0YWRhdGFDYWNoZU1lcmdlSW5wdXQ8VD4pID0+IFQ7XG4gIC8qKiBGcmVzaG5lc3Mgd2luZG93OyBkZWZhdWx0cyB0byB7QGxpbmsgTU9ERUxfTUVUQURBVEFfVFRMX01TfSAob25lIGRheSkuICovXG4gIHJlYWRvbmx5IHR0bE1zPzogbnVtYmVyO1xuICAvKiogUGFja2FnZSB2ZXJzaW9uIHNlZ21lbnQgaW4gdGhlIGNhY2hlIHBhdGguIERlZmF1bHRzIHRvIHRoaXMgcGFja2FnZS4gKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqIE92ZXJyaWRlIHRoZSBjYWNhY2hlIHJvb3QgZGlyZWN0b3J5ICh0ZXN0cykuICovXG4gIHJlYWRvbmx5IGNhY2hlRGlyPzogc3RyaW5nO1xuICAvKipcbiAgICogRm9yY2UgZGlzayBvbi9vZmYuIERlZmF1bHRzIHRvIG9mZiBpbnNpZGUgRGF0YWJyaWNrcyBBcHBzLCBvbiBvdGhlcndpc2UuXG4gICAqL1xuICByZWFkb25seSBkaXNrPzogYm9vbGVhbjtcbiAgLyoqIENsb2NrIG92ZXJyaWRlIGZvciB0ZXN0cy4gKi9cbiAgcmVhZG9ubHkgbm93PzogKCkgPT4gbnVtYmVyO1xufVxuXG4vKiogQXJndW1lbnRzIHBhc3NlZCB0byBhIGNhY2hlIG1lcmdlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFDYWNoZU1lcmdlSW5wdXQ8VD4ge1xuICByZWFkb25seSBmcmVzaDogVCB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgcHJldmlvdXM6IFQgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGZhbGxiYWNrOiBUO1xufVxuXG4vKiogT25lIHZlcnNpb25lZCBtZXRhZGF0YSBjYWNoZSAoY2FjYWNoZSBtZW1vcnkgKyBvcHRpb25hbCBkaXNrKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFDYWNoZTxUPiB7XG4gIC8qKiBBYnNvbHV0ZSBjYWNhY2hlIHJvb3QgZm9yIHRoaXMgcGFja2FnZSB2ZXJzaW9uICh1bnVzZWQgd2hlbiBkaXNrIGlzIG9mZikuICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgY2FjYWNoZSBkaXNrIHBlcnNpc3RlbmNlIGlzIGVuYWJsZWQgZm9yIHRoaXMgaW5zdGFuY2UuICovXG4gIHJlYWRvbmx5IGRpc2tFbmFibGVkOiBib29sZWFuO1xuICAvKiogUmV0dXJuIGEgZnJlc2gtb3ItZmFsbGJhY2sgdmFsdWUsIHJlZnJlc2hpbmcgd2hlbiBzdGFsZS4gKi9cbiAgZ2V0KCk6IFByb21pc2U8VD47XG4gIC8qKiBSZWFkIG1lbW9yeSAvIGRpc2sgd2l0aG91dCByZWZyZXNoaW5nLiAqL1xuICBwZWVrKCk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG4gIC8qKiBNdXRhdGUgdGhlIGNhY2hlZCB2YWx1ZSBhbmQgcGVyc2lzdCBpdC4gKi9cbiAgdXBkYXRlKG11dGF0b3I6IChjdXJyZW50OiBUKSA9PiBUKTogUHJvbWlzZTxUPjtcbiAgLyoqIEZvcmNlIGEgcmVmcmVzaCBhdHRlbXB0IGV2ZW4gd2hlbiB0aGUgZW50cnkgaXMgc3RpbGwgZnJlc2guICovXG4gIHJlZnJlc2goKTogUHJvbWlzZTxUPjtcbn1cblxuY29uc3QgaW5mbGlnaHQgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTx1bmtub3duPj4oKTtcblxuLyoqIERlZmF1bHQgY2FjYWNoZSByb290IGZvciBhIHBhY2thZ2UgdmVyc2lvbiB1bmRlciB0aGUgZGJ4LXRvb2xzIGNhY2hlIGRpci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0TWV0YWRhdGFDYWNoZURpcih2ZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjYWNoZURpcmVjdG9yeSA9IGVudlBhdGhzKFwiZGJ4LXRvb2xzXCIsIHsgc3VmZml4OiBcIlwiIH0pLmNhY2hlO1xuICByZXR1cm4gcmVzb2x2ZShjYWNoZURpcmVjdG9yeSwgXCJtb2RlbC1nYXRld2F5XCIsIHZlcnNpb24pO1xufVxuXG4vKiogV2hldGhlciBtZXRhZGF0YSBjYWNoZXMgc2hvdWxkIHBlcnNpc3QgdG8gZGlzayBpbiB0aGlzIHByb2Nlc3MuICovXG5leHBvcnQgZnVuY3Rpb24gbWV0YWRhdGFDYWNoZURpc2tFbmFibGVkKGVudmlyb25tZW50OiBOb2RlSlMuUHJvY2Vzc0VudiA9IHByb2Nlc3MuZW52KTogYm9vbGVhbiB7XG4gIHJldHVybiAhZW52aXJvbm1lbnRVdGlscy5pc0RhdGFicmlja3NBcHBFbnYoZW52aXJvbm1lbnQpO1xufVxuXG4vKipcbiAqIENyZWF0ZSBvbmUgZGFpbHkgY2FjaGUgYmFja2VkIGJ5IGNhY2FjaGUgbWVtb2l6YXRpb24sIHdpdGggb3B0aW9uYWwgZGlzay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1ldGFkYXRhQ2FjaGU8VD4ob3B0aW9uczogTWV0YWRhdGFDYWNoZU9wdGlvbnM8VD4pOiBNZXRhZGF0YUNhY2hlPFQ+IHtcbiAgY29uc3QgdHRsTXMgPSBvcHRpb25zLnR0bE1zID8/IE1PREVMX01FVEFEQVRBX1RUTF9NUztcbiAgY29uc3QgZGlza0VuYWJsZWQgPSBvcHRpb25zLmRpc2sgPz8gbWV0YWRhdGFDYWNoZURpc2tFbmFibGVkKCk7XG4gIGNvbnN0IG5vdyA9IG9wdGlvbnMubm93ID8/IERhdGUubm93O1xuICBjb25zdCBwYXRoUHJvbWlzZSA9IHJlc29sdmVDYWNoZURpcihvcHRpb25zKTtcbiAgbGV0IHBhdGggPSBvcHRpb25zLmNhY2hlRGlyO1xuXG4gIGNvbnN0IGZsaWdodEtleSA9IChjYWNoZVBhdGg6IHN0cmluZywgc3VmZml4ID0gXCJcIik6IHN0cmluZyA9PlxuICAgIGAke2NhY2hlUGF0aH06OiR7b3B0aW9ucy5rZXl9JHtzdWZmaXh9YDtcblxuICAvKiogUHJvY2Vzcy1sb2NhbCBzdG9yZSB1c2VkIHdoZW4gZGlzayBpcyBvZmYgKERhdGFicmlja3MgQXBwcykuICovXG4gIGNvbnN0IG1lbW9yeU9ubHkgPSBuZXcgTWFwPHN0cmluZywgTWV0YWRhdGFDYWNoZVJlY29yZDxUPj4oKTtcblxuICBjb25zdCByZXNvbHZlVmFsdWUgPSAoaW5wdXQ6IE1ldGFkYXRhQ2FjaGVNZXJnZUlucHV0PFQ+KTogVCA9PiBvcHRpb25zLm1lcmdlKGlucHV0KTtcblxuICBjb25zdCBpc0ZyZXNoID0gKHJlY29yZDogTWV0YWRhdGFDYWNoZVJlY29yZDxUPiB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgICBCb29sZWFuKHJlY29yZCAmJiBub3coKSAtIHJlY29yZC5yZWZyZXNoZWRBdCA8IHR0bE1zKTtcblxuICBjb25zdCBjYWNoZVBhdGggPSBhc3luYyAoKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICBwYXRoID8/PSBhd2FpdCBwYXRoUHJvbWlzZTtcbiAgICByZXR1cm4gcGF0aDtcbiAgfTtcblxuICBjb25zdCByZWFkUmVjb3JkID0gYXN5bmMgKCk6IFByb21pc2U8TWV0YWRhdGFDYWNoZVJlY29yZDxUPiB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGlmICghZGlza0VuYWJsZWQpIHJldHVybiBtZW1vcnlPbmx5LmdldChvcHRpb25zLmtleSk7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gYXdhaXQgY2FjaGVQYXRoKCk7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGNhY2FjaGUgcmVhZHMgaXRzIGluLW1lbW9yeSBtZW1vIGZpcnN0IHVubGVzcyBtZW1vaXplIGlzIGZhbHNlXG4gICAgICBjb25zdCBlbnRyeSA9IGF3YWl0IGNhY2FjaGUuZ2V0KHJlc29sdmVkUGF0aCwgb3B0aW9ucy5rZXkpO1xuICAgICAgcmV0dXJuIGRlY29kZVJlY29yZDxUPihlbnRyeS5kYXRhKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGlzQ2FjaGVNaXNzKGVycm9yKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGxvZ2dlci53YXJuKFwibWV0YWRhdGEgY2FjaGUgY2FjYWNoZSByZWFkIGZhaWxlZFwiLCB7XG4gICAgICAgIGtleTogb3B0aW9ucy5rZXksXG4gICAgICAgIHBhdGg6IHJlc29sdmVkUGF0aCxcbiAgICAgICAgZXJyb3IsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHdyaXRlUmVjb3JkID0gYXN5bmMgKHJlY29yZDogTWV0YWRhdGFDYWNoZVJlY29yZDxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmICghZGlza0VuYWJsZWQpIHtcbiAgICAgIG1lbW9yeU9ubHkuc2V0KG9wdGlvbnMua2V5LCByZWNvcmQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZFBhdGggPSBhd2FpdCBjYWNoZVBhdGgoKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2FjYWNoZS5wdXQocmVzb2x2ZWRQYXRoLCBvcHRpb25zLmtleSwgYCR7SlNPTi5zdHJpbmdpZnkocmVjb3JkKX1cXG5gLCB7XG4gICAgICAgIG1lbW9pemU6IHRydWUsXG4gICAgICAgIG1ldGFkYXRhOiB7IHJlZnJlc2hlZEF0OiByZWNvcmQucmVmcmVzaGVkQXQgfSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIud2FybihcIm1ldGFkYXRhIGNhY2hlIGNhY2FjaGUgd3JpdGUgZmFpbGVkXCIsIHtcbiAgICAgICAga2V5OiBvcHRpb25zLmtleSxcbiAgICAgICAgcGF0aDogcmVzb2x2ZWRQYXRoLFxuICAgICAgICBlcnJvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBwZXJzaXN0ID0gYXN5bmMgKHZhbHVlOiBULCByZWZyZXNoZWRBdCA9IG5vdygpKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgYXdhaXQgd3JpdGVSZWNvcmQoeyByZWZyZXNoZWRBdCwgdmFsdWUgfSk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuXG4gIGNvbnN0IHJlZnJlc2ggPSBhc3luYyAoZm9yY2U6IGJvb2xlYW4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgICBjb25zdCByZXNvbHZlZFBhdGggPSBhd2FpdCBjYWNoZVBhdGgoKTtcbiAgICByZXR1cm4gY29hbGVzY2UoZmxpZ2h0S2V5KHJlc29sdmVkUGF0aCksIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByZXZpb3VzID0gYXdhaXQgcmVhZFJlY29yZCgpO1xuICAgICAgaWYgKCFmb3JjZSAmJiBpc0ZyZXNoKHByZXZpb3VzKSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHtcbiAgICAgICAgICBmcmVzaDogdW5kZWZpbmVkLFxuICAgICAgICAgIHByZXZpb3VzOiBwcmV2aW91cz8udmFsdWUsXG4gICAgICAgICAgZmFsbGJhY2s6IG9wdGlvbnMuZmFsbGJhY2ssXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBsZXQgZnJlc2g6IFQgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAob3B0aW9ucy5sb2FkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnJlc2ggPSBhd2FpdCBvcHRpb25zLmxvYWQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2dnZXIud2FybihcIm1ldGFkYXRhIGNhY2hlIHJlZnJlc2ggZmFpbGVkOyBrZWVwaW5nIGxhc3Qga25vd24gZ29vZFwiLCB7XG4gICAgICAgICAgICBrZXk6IG9wdGlvbnMua2V5LFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBwYXRoOiByZXNvbHZlZFBhdGgsXG4gICAgICAgICAgICBkaXNrRW5hYmxlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVWYWx1ZSh7XG4gICAgICAgIGZyZXNoLFxuICAgICAgICBwcmV2aW91czogcHJldmlvdXM/LnZhbHVlLFxuICAgICAgICBmYWxsYmFjazogb3B0aW9ucy5mYWxsYmFjayxcbiAgICAgIH0pO1xuICAgICAgaWYgKGZyZXNoICE9PSB1bmRlZmluZWQgfHwgIXByZXZpb3VzKSB7XG4gICAgICAgIGF3YWl0IHBlcnNpc3QodmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgZ2V0IHBhdGgoKSB7XG4gICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibWV0YWRhdGEgY2FjaGUgcGF0aCBpcyBub3QgcmVzb2x2ZWQgdW50aWwgdGhlIGZpcnN0IGNhY2hlIHJlYWRcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9LFxuICAgIGRpc2tFbmFibGVkLFxuICAgIGdldDogKCkgPT4gcmVmcmVzaChmYWxzZSksXG4gICAgcGVlazogYXN5bmMgKCkgPT4gKGF3YWl0IHJlYWRSZWNvcmQoKSk/LnZhbHVlLFxuICAgIHJlZnJlc2g6ICgpID0+IHJlZnJlc2godHJ1ZSksXG4gICAgdXBkYXRlOiBhc3luYyAobXV0YXRvcikgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gYXdhaXQgY2FjaGVQYXRoKCk7XG4gICAgICByZXR1cm4gY29hbGVzY2UoZmxpZ2h0S2V5KHJlc29sdmVkUGF0aCwgXCI6dXBkYXRlXCIpLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gYXdhaXQgcmVhZFJlY29yZCgpO1xuICAgICAgICBjb25zdCBiYXNlbGluZSA9IHJlc29sdmVWYWx1ZSh7XG4gICAgICAgICAgZnJlc2g6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwcmV2aW91czogcHJldmlvdXM/LnZhbHVlLFxuICAgICAgICAgIGZhbGxiYWNrOiBvcHRpb25zLmZhbGxiYWNrLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBlcnNpc3QobXV0YXRvcihiYXNlbGluZSkpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNhY2hlRGlyKG9wdGlvbnM6IHtcbiAgcmVhZG9ubHkgY2FjaGVEaXI/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG59KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgaWYgKG9wdGlvbnMuY2FjaGVEaXIpIHJldHVybiBvcHRpb25zLmNhY2hlRGlyO1xuICBjb25zdCB2ZXJzaW9uID0gb3B0aW9ucy52ZXJzaW9uID8/IChhd2FpdCBpbXBvcnQoXCIuLi9pbmRleC50c1wiKSkuUEFDS0FHRV9WRVJTSU9OO1xuICByZXR1cm4gZGVmYXVsdE1ldGFkYXRhQ2FjaGVEaXIodmVyc2lvbik7XG59XG5cbi8qKiBQcmVmZXIgYSBub24tZW1wdHkgZnJlc2ggYXJyYXksIGVsc2UgcHJldmlvdXMsIGVsc2UgZmFsbGJhY2suICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VQcmVmZXJGcmVzaExpc3Q8VD4oaW5wdXQ6IE1ldGFkYXRhQ2FjaGVNZXJnZUlucHV0PHJlYWRvbmx5IFRbXT4pOiBUW10ge1xuICBpZiAoaW5wdXQuZnJlc2ggJiYgaW5wdXQuZnJlc2gubGVuZ3RoID4gMCkgcmV0dXJuIFsuLi5pbnB1dC5mcmVzaF07XG4gIGlmIChpbnB1dC5wcmV2aW91cyAmJiBpbnB1dC5wcmV2aW91cy5sZW5ndGggPiAwKSByZXR1cm4gWy4uLmlucHV0LnByZXZpb3VzXTtcbiAgcmV0dXJuIFsuLi5pbnB1dC5mYWxsYmFja107XG59XG5cbi8qKlxuICogU2hhbGxvdy1tZXJnZSByZWNvcmQgY2F0YWxvZ3VlczogZmFsbGJhY2ssIHRoZW4gcHJldmlvdXMsIHRoZW4gZnJlc2gga2V5cy5cbiAqIEZyZXNoIHZhbHVlcyB3aW4gcGVyIGtleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlUHJlZmVyRnJlc2hSZWNvcmQ8VD4oXG4gIGlucHV0OiBNZXRhZGF0YUNhY2hlTWVyZ2VJbnB1dDxSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBUPj4+LFxuKTogUmVjb3JkPHN0cmluZywgVD4ge1xuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LmZhbGxiYWNrLFxuICAgIC4uLihpbnB1dC5wcmV2aW91cyA/PyB7fSksXG4gICAgLi4uKGlucHV0LmZyZXNoID8/IHt9KSxcbiAgfTtcbn1cblxuLyoqIFRlc3QgaGVscGVyOiB3aXBlIGEgY2FjYWNoZSByb290IGFuZCBjbGVhciBjYWNhY2hlIG1lbW9pemF0aW9uLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2V0TWV0YWRhdGFDYWNoZURpcihjYWNoZURpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgY2FjYWNoZS5ybS5hbGwoY2FjaGVEaXIpO1xuICB9IGNhdGNoIHtcbiAgICAvLyBlbXB0eSAvIG1pc3NpbmcgY2FjaGUgaXMgZmluZVxuICB9XG4gIGNhY2FjaGUuY2xlYXJNZW1vaXplZCgpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBbLi4uaW5mbGlnaHQua2V5cygpXSkge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aChgJHtjYWNoZURpcn06OmApKSBpbmZsaWdodC5kZWxldGUoa2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2FsZXNjZTxUPihrZXk6IHN0cmluZywgd29yazogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICBjb25zdCBleGlzdGluZyA9IGluZmxpZ2h0LmdldChrZXkpO1xuICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZyBhcyBQcm9taXNlPFQ+O1xuICBjb25zdCBwZW5kaW5nID0gd29yaygpLmZpbmFsbHkoKCkgPT4ge1xuICAgIGlmIChpbmZsaWdodC5nZXQoa2V5KSA9PT0gcGVuZGluZykgaW5mbGlnaHQuZGVsZXRlKGtleSk7XG4gIH0pO1xuICBpbmZsaWdodC5zZXQoa2V5LCBwZW5kaW5nKTtcbiAgcmV0dXJuIHBlbmRpbmc7XG59XG5cbmZ1bmN0aW9uIGRlY29kZVJlY29yZDxUPihkYXRhOiBCdWZmZXIpOiBNZXRhZGF0YUNhY2hlUmVjb3JkPFQ+IHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoXCJ1dGY4XCIpKSBhcyB1bmtub3duO1xuICAgIGlmIChcbiAgICAgICFwYXJzZWQgfHxcbiAgICAgIHR5cGVvZiBwYXJzZWQgIT09IFwib2JqZWN0XCIgfHxcbiAgICAgIHR5cGVvZiAocGFyc2VkIGFzIE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD4pLnJlZnJlc2hlZEF0ICE9PSBcIm51bWJlclwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkIGFzIE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD47XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDYWNoZU1pc3MoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgZXJyb3IgJiZcbiAgICB0eXBlb2YgZXJyb3IgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcImNvZGVcIiBpbiBlcnJvciAmJlxuICAgIChlcnJvciBhcyB7IGNvZGU/OiBzdHJpbmcgfSkuY29kZSA9PT0gXCJFTk9FTlRcIixcbiAgKTtcbn1cblxuIl19
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0YWRhdGEtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEtBQUssR0FBRyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBT2xELElBQUksc0JBQTRELENBQUM7QUFFakUsU0FBUyxlQUFlO0lBQ3RCLHNCQUFzQixLQUFLLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUQsVUFBVSxFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7UUFDbEMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxlQUFlO0tBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0osT0FBTyxzQkFBc0IsQ0FBQztBQUNoQyxDQUFDO0FBMERELE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO0FBRXJELGdGQUFnRjtBQUNoRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBZTtJQUNyRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25FLE9BQU8sT0FBTyxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFD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QU8sQ0FBQyxDQUFDO0lBQzNCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBSSxJQUFZO0lBQ25DLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBWSxDQUFDO1FBQzVELElBQ0UsQ0FBQyxNQUFNO1lBQ1AsT0FBTyxNQUFNLEtBQUssUUFBUTtZQUMxQixPQUFRLE1BQWlDLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFDbEUsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLE1BQWdDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYztJQUNqQyxPQUFPLE9BQU8sQ0FDWixLQUFLO1FBQ0wsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixNQUFNLElBQUksS0FBSztRQUNkLEtBQTJCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDL0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFnbm9zdGljIGRhaWx5IG1ldGFkYXRhIGNhY2hlIG9uIHtAbGluayBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9jYWNhY2hlIHwgY2FjYWNoZX0uXG4gKlxuICogVXNlcyBjYWNhY2hlJ3MgYnVpbHQtaW4gbWVtb3J5IG1lbW9pemF0aW9uIChgbWVtb2l6ZTogdHJ1ZWAgb24gcHV0OyBnZXRzIHJlYWRcbiAqIHRoZSBpbi1tZW1vcnkgbGF5ZXIgYnkgZGVmYXVsdCkgd2l0aCBjb250ZW50LWFkZHJlc3NlZCBkaXNrIHVuZGVyXG4gKiBgZW52LXBhdGhzKFwiZGJ4LXRvb2xzXCIpLmNhY2hlL21vZGVsLWdhdGV3YXkvPHZlcnNpb24+L2AuIERpc2sgcGVyc2lzdGVuY2UgaXNcbiAqIGRpc2FibGVkIGluc2lkZSBhIERhdGFicmlja3MgQXBwICh7QGxpbmsgZW52aXJvbm1lbnRVdGlscy5pc0RhdGFicmlja3NBcHBFbnZ9KTtcbiAqIHRob3NlIHByb2Nlc3NlcyBrZWVwIGEgcHJvY2Vzcy1sb2NhbCBNYXAgb25seS5cbiAqXG4gKiBFYWNoIGNhY2hlIG93bnMgYSBrZXksIGhhcmQtY29kZWQgZmFsbGJhY2ssIG9wdGlvbmFsIG5ldHdvcmsgbG9hZGVyLCBhbmQgYVxuICogbWVyZ2VyIHRoYXQgY29tYmluZXMgZnJlc2ggLyBwcmV2aW91cyAvIGZhbGxiYWNrIHZhbHVlcy4gRnJlc2huZXNzIGlzIHRoZVxuICogZW52ZWxvcGUgYHJlZnJlc2hlZEF0YCB3aW5kb3cgKGRlZmF1bHQgb25lIGRheSksIG5vdCBjYWNhY2hlJ3Mgc2hvcnQgTFJVIFRUTC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0ICogYXMgZW52aXJvbm1lbnRVdGlscyBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZS9lbnZpcm9ubWVudC11dGlsc1wiO1xuaW1wb3J0ICogYXMgbG9nIGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlL2xvZ1wiO1xuaW1wb3J0IGNhY2FjaGUgZnJvbSBcImNhY2FjaGVcIjtcbmltcG9ydCBlbnZQYXRocyBmcm9tIFwiZW52LXBhdGhzXCI7XG5cbmltcG9ydCB7IE1PREVMX01FVEFEQVRBX1RUTF9NUyB9IGZyb20gXCIuL19tZXRhZGF0YS1jb250cmFjdC50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwibW9kZWwvbWV0YWRhdGEtY2FjaGVcIik7XG5cbmludGVyZmFjZSBQYWNrYWdlSWRlbnRpdHkge1xuICByZWFkb25seSBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxubGV0IHBhY2thZ2VJZGVudGl0eVByb21pc2U6IFByb21pc2U8UGFja2FnZUlkZW50aXR5PiB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gcGFja2FnZUlkZW50aXR5KCk6IFByb21pc2U8UGFja2FnZUlkZW50aXR5PiB7XG4gIHBhY2thZ2VJZGVudGl0eVByb21pc2UgPz89IGltcG9ydChcIi4uL2luZGV4LnRzXCIpLnRoZW4oKG1vZCkgPT4gKHtcbiAgICBpZGVudGlmaWVyOiBtb2QuUEFDS0FHRV9JREVOVElGSUVSLFxuICAgIHZlcnNpb246IG1vZC5QQUNLQUdFX1ZFUlNJT04sXG4gIH0pKTtcbiAgcmV0dXJuIHBhY2thZ2VJZGVudGl0eVByb21pc2U7XG59XG5cbi8qKiBFbnZlbG9wZSBzdG9yZWQgYXMgSlNPTiBieXRlcyBpbiBjYWNhY2hlIGZvciBldmVyeSBrZXkuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD4ge1xuICByZWFkb25seSByZWZyZXNoZWRBdDogbnVtYmVyO1xuICByZWFkb25seSB2YWx1ZTogVDtcbn1cblxuLyoqIEZhY3RvcnkgaW5wdXRzIGZvciBvbmUgbmFtZWQgbWV0YWRhdGEgY2FjaGUuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhQ2FjaGVPcHRpb25zPFQ+IHtcbiAgLyoqIFN0YWJsZSBjYWNhY2hlIGtleS4gKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIC8qKiBIYXJkLWNvZGVkIC8gY29tbWl0dGVkIGJhc2VsaW5lIHVzZWQgd2hlbiBzdG9yZSBhbmQgbG9hZCBib3RoIG1pc3MuICovXG4gIHJlYWRvbmx5IGZhbGxiYWNrOiBUO1xuICAvKipcbiAgICogUmVmcmVzaCBzb3VyY2UuIFdoZW4gb21pdHRlZCB0aGUgY2FjaGUgb25seSBzZXJ2ZXMgc3RvcmUgKyBmYWxsYmFjayBhbmRcbiAgICoge0BsaW5rIE1ldGFkYXRhQ2FjaGUudXBkYXRlfSBtdXRhdGlvbnMgKGZvciBleGFtcGxlIGVycm9yLWxlYXJuZWQgdmFsdWVzKS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWQ/OiAoKSA9PiBQcm9taXNlPFQ+O1xuICAvKiogQ29tYmluZSBhIGZyZXNoIGxvYWQsIHByaW9yIHN0b3JlIHZhbHVlLCBhbmQgdGhlIGhhcmQtY29kZWQgZmFsbGJhY2suICovXG4gIHJlYWRvbmx5IG1lcmdlOiAoaW5wdXQ6IE1ldGFkYXRhQ2FjaGVNZXJnZUlucHV0PFQ+KSA9PiBUO1xuICAvKiogRnJlc2huZXNzIHdpbmRvdzsgZGVmYXVsdHMgdG8ge0BsaW5rIE1PREVMX01FVEFEQVRBX1RUTF9NU30gKG9uZSBkYXkpLiAqL1xuICByZWFkb25seSB0dGxNcz86IG51bWJlcjtcbiAgLyoqIFBhY2thZ2UgdmVyc2lvbiBzZWdtZW50IGluIHRoZSBjYWNoZSBwYXRoLiBEZWZhdWx0cyB0byB0aGlzIHBhY2thZ2UuICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKiBPdmVycmlkZSB0aGUgY2FjYWNoZSByb290IGRpcmVjdG9yeSAodGVzdHMpLiAqL1xuICByZWFkb25seSBjYWNoZURpcj86IHN0cmluZztcbiAgLyoqXG4gICAqIEZvcmNlIGRpc2sgb24vb2ZmLiBEZWZhdWx0cyB0byBvZmYgaW5zaWRlIERhdGFicmlja3MgQXBwcywgb24gb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzaz86IGJvb2xlYW47XG4gIC8qKiBDbG9jayBvdmVycmlkZSBmb3IgdGVzdHMuICovXG4gIHJlYWRvbmx5IG5vdz86ICgpID0+IG51bWJlcjtcbn1cblxuLyoqIEFyZ3VtZW50cyBwYXNzZWQgdG8gYSBjYWNoZSBtZXJnZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhQ2FjaGVNZXJnZUlucHV0PFQ+IHtcbiAgcmVhZG9ubHkgZnJlc2g6IFQgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IHByZXZpb3VzOiBUIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBmYWxsYmFjazogVDtcbn1cblxuLyoqIE9uZSB2ZXJzaW9uZWQgbWV0YWRhdGEgY2FjaGUgKGNhY2FjaGUgbWVtb3J5ICsgb3B0aW9uYWwgZGlzaykuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhQ2FjaGU8VD4ge1xuICAvKiogQWJzb2x1dGUgY2FjYWNoZSByb290IGZvciB0aGlzIHBhY2thZ2UgdmVyc2lvbiAodW51c2VkIHdoZW4gZGlzayBpcyBvZmYpLiAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIGNhY2FjaGUgZGlzayBwZXJzaXN0ZW5jZSBpcyBlbmFibGVkIGZvciB0aGlzIGluc3RhbmNlLiAqL1xuICByZWFkb25seSBkaXNrRW5hYmxlZDogYm9vbGVhbjtcbiAgLyoqIFJldHVybiBhIGZyZXNoLW9yLWZhbGxiYWNrIHZhbHVlLCByZWZyZXNoaW5nIHdoZW4gc3RhbGUuICovXG4gIGdldCgpOiBQcm9taXNlPFQ+O1xuICAvKiogUmVhZCBtZW1vcnkgLyBkaXNrIHdpdGhvdXQgcmVmcmVzaGluZy4gKi9cbiAgcGVlaygpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+O1xuICAvKiogTXV0YXRlIHRoZSBjYWNoZWQgdmFsdWUgYW5kIHBlcnNpc3QgaXQuICovXG4gIHVwZGF0ZShtdXRhdG9yOiAoY3VycmVudDogVCkgPT4gVCk6IFByb21pc2U8VD47XG4gIC8qKiBGb3JjZSBhIHJlZnJlc2ggYXR0ZW1wdCBldmVuIHdoZW4gdGhlIGVudHJ5IGlzIHN0aWxsIGZyZXNoLiAqL1xuICByZWZyZXNoKCk6IFByb21pc2U8VD47XG59XG5cbmNvbnN0IGluZmxpZ2h0ID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8dW5rbm93bj4+KCk7XG5cbi8qKiBEZWZhdWx0IGNhY2FjaGUgcm9vdCBmb3IgYSBwYWNrYWdlIHZlcnNpb24gdW5kZXIgdGhlIGRieC10b29scyBjYWNoZSBkaXIuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE1ldGFkYXRhQ2FjaGVEaXIodmVyc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgY2FjaGVEaXJlY3RvcnkgPSBlbnZQYXRocyhcImRieC10b29sc1wiLCB7IHN1ZmZpeDogXCJcIiB9KS5jYWNoZTtcbiAgcmV0dXJuIHJlc29sdmUoY2FjaGVEaXJlY3RvcnksIFwibW9kZWwtZ2F0ZXdheVwiLCB2ZXJzaW9uKTtcbn1cblxuLyoqIFdoZXRoZXIgbWV0YWRhdGEgY2FjaGVzIHNob3VsZCBwZXJzaXN0IHRvIGRpc2sgaW4gdGhpcyBwcm9jZXNzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ldGFkYXRhQ2FjaGVEaXNrRW5hYmxlZChlbnZpcm9ubWVudDogTm9kZUpTLlByb2Nlc3NFbnYgPSBwcm9jZXNzLmVudik6IGJvb2xlYW4ge1xuICByZXR1cm4gIWVudmlyb25tZW50VXRpbHMuaXNEYXRhYnJpY2tzQXBwRW52KGVudmlyb25tZW50KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgb25lIGRhaWx5IGNhY2hlIGJhY2tlZCBieSBjYWNhY2hlIG1lbW9pemF0aW9uLCB3aXRoIG9wdGlvbmFsIGRpc2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZXRhZGF0YUNhY2hlPFQ+KG9wdGlvbnM6IE1ldGFkYXRhQ2FjaGVPcHRpb25zPFQ+KTogTWV0YWRhdGFDYWNoZTxUPiB7XG4gIGNvbnN0IHR0bE1zID0gb3B0aW9ucy50dGxNcyA/PyBNT0RFTF9NRVRBREFUQV9UVExfTVM7XG4gIGNvbnN0IGRpc2tFbmFibGVkID0gb3B0aW9ucy5kaXNrID8/IG1ldGFkYXRhQ2FjaGVEaXNrRW5hYmxlZCgpO1xuICBjb25zdCBub3cgPSBvcHRpb25zLm5vdyA/PyBEYXRlLm5vdztcbiAgY29uc3QgcGF0aFByb21pc2UgPSByZXNvbHZlQ2FjaGVEaXIob3B0aW9ucyk7XG4gIGxldCBwYXRoID0gb3B0aW9ucy5jYWNoZURpcjtcblxuICBjb25zdCBmbGlnaHRLZXkgPSAoY2FjaGVQYXRoOiBzdHJpbmcsIHN1ZmZpeCA9IFwiXCIpOiBzdHJpbmcgPT5cbiAgICBgJHtjYWNoZVBhdGh9Ojoke29wdGlvbnMua2V5fSR7c3VmZml4fWA7XG5cbiAgLyoqIFByb2Nlc3MtbG9jYWwgc3RvcmUgdXNlZCB3aGVuIGRpc2sgaXMgb2ZmIChEYXRhYnJpY2tzIEFwcHMpLiAqL1xuICBjb25zdCBtZW1vcnlPbmx5ID0gbmV3IE1hcDxzdHJpbmcsIE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD4+KCk7XG5cbiAgY29uc3QgcmVzb2x2ZVZhbHVlID0gKGlucHV0OiBNZXRhZGF0YUNhY2hlTWVyZ2VJbnB1dDxUPik6IFQgPT4gb3B0aW9ucy5tZXJnZShpbnB1dCk7XG5cbiAgY29uc3QgaXNGcmVzaCA9IChyZWNvcmQ6IE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD4gfCB1bmRlZmluZWQpOiBib29sZWFuID0+XG4gICAgQm9vbGVhbihyZWNvcmQgJiYgbm93KCkgLSByZWNvcmQucmVmcmVzaGVkQXQgPCB0dGxNcyk7XG5cbiAgY29uc3QgY2FjaGVQYXRoID0gYXN5bmMgKCk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgcGF0aCA/Pz0gYXdhaXQgcGF0aFByb21pc2U7XG4gICAgcmV0dXJuIHBhdGg7XG4gIH07XG5cbiAgY29uc3QgcmVhZFJlY29yZCA9IGFzeW5jICgpOiBQcm9taXNlPE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD4gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBpZiAoIWRpc2tFbmFibGVkKSByZXR1cm4gbWVtb3J5T25seS5nZXQob3B0aW9ucy5rZXkpO1xuICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IGF3YWl0IGNhY2hlUGF0aCgpO1xuICAgIHRyeSB7XG4gICAgICAvLyBjYWNhY2hlIHJlYWRzIGl0cyBpbi1tZW1vcnkgbWVtbyBmaXJzdCB1bmxlc3MgbWVtb2l6ZSBpcyBmYWxzZVxuICAgICAgY29uc3QgZW50cnkgPSBhd2FpdCBjYWNhY2hlLmdldChyZXNvbHZlZFBhdGgsIG9wdGlvbnMua2V5KTtcbiAgICAgIHJldHVybiBkZWNvZGVSZWNvcmQ8VD4oZW50cnkuZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChpc0NhY2hlTWlzcyhlcnJvcikpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICBsb2dnZXIud2FybihcIm1ldGFkYXRhIGNhY2hlIGNhY2FjaGUgcmVhZCBmYWlsZWRcIiwge1xuICAgICAgICBrZXk6IG9wdGlvbnMua2V5LFxuICAgICAgICBwYXRoOiByZXNvbHZlZFBhdGgsXG4gICAgICAgIGVycm9yLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB3cml0ZVJlY29yZCA9IGFzeW5jIChyZWNvcmQ6IE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAoIWRpc2tFbmFibGVkKSB7XG4gICAgICBtZW1vcnlPbmx5LnNldChvcHRpb25zLmtleSwgcmVjb3JkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gYXdhaXQgY2FjaGVQYXRoKCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNhY2FjaGUucHV0KHJlc29sdmVkUGF0aCwgb3B0aW9ucy5rZXksIGAke0pTT04uc3RyaW5naWZ5KHJlY29yZCl9XFxuYCwge1xuICAgICAgICBtZW1vaXplOiB0cnVlLFxuICAgICAgICBtZXRhZGF0YTogeyByZWZyZXNoZWRBdDogcmVjb3JkLnJlZnJlc2hlZEF0IH0sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLndhcm4oXCJtZXRhZGF0YSBjYWNoZSBjYWNhY2hlIHdyaXRlIGZhaWxlZFwiLCB7XG4gICAgICAgIGtleTogb3B0aW9ucy5rZXksXG4gICAgICAgIHBhdGg6IHJlc29sdmVkUGF0aCxcbiAgICAgICAgZXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcGVyc2lzdCA9IGFzeW5jICh2YWx1ZTogVCwgcmVmcmVzaGVkQXQgPSBub3coKSk6IFByb21pc2U8VD4gPT4ge1xuICAgIGF3YWl0IHdyaXRlUmVjb3JkKHsgcmVmcmVzaGVkQXQsIHZhbHVlIH0pO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcblxuICBjb25zdCByZWZyZXNoID0gYXN5bmMgKGZvcmNlOiBib29sZWFuKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gYXdhaXQgY2FjaGVQYXRoKCk7XG4gICAgcmV0dXJuIGNvYWxlc2NlKGZsaWdodEtleShyZXNvbHZlZFBhdGgpLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcmV2aW91cyA9IGF3YWl0IHJlYWRSZWNvcmQoKTtcbiAgICAgIGlmICghZm9yY2UgJiYgaXNGcmVzaChwcmV2aW91cykpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZSh7XG4gICAgICAgICAgZnJlc2g6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwcmV2aW91czogcHJldmlvdXM/LnZhbHVlLFxuICAgICAgICAgIGZhbGxiYWNrOiBvcHRpb25zLmZhbGxiYWNrLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IGZyZXNoOiBUIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG9wdGlvbnMubG9hZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZyZXNoID0gYXdhaXQgb3B0aW9ucy5sb2FkKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLndhcm4oXCJtZXRhZGF0YSBjYWNoZSByZWZyZXNoIGZhaWxlZDsga2VlcGluZyBsYXN0IGtub3duIGdvb2RcIiwge1xuICAgICAgICAgICAga2V5OiBvcHRpb25zLmtleSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgcGF0aDogcmVzb2x2ZWRQYXRoLFxuICAgICAgICAgICAgZGlza0VuYWJsZWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlVmFsdWUoe1xuICAgICAgICBmcmVzaCxcbiAgICAgICAgcHJldmlvdXM6IHByZXZpb3VzPy52YWx1ZSxcbiAgICAgICAgZmFsbGJhY2s6IG9wdGlvbnMuZmFsbGJhY2ssXG4gICAgICB9KTtcbiAgICAgIGlmIChmcmVzaCAhPT0gdW5kZWZpbmVkIHx8ICFwcmV2aW91cykge1xuICAgICAgICBhd2FpdCBwZXJzaXN0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGdldCBwYXRoKCkge1xuICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm1ldGFkYXRhIGNhY2hlIHBhdGggaXMgbm90IHJlc29sdmVkIHVudGlsIHRoZSBmaXJzdCBjYWNoZSByZWFkXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfSxcbiAgICBkaXNrRW5hYmxlZCxcbiAgICBnZXQ6ICgpID0+IHJlZnJlc2goZmFsc2UpLFxuICAgIHBlZWs6IGFzeW5jICgpID0+IChhd2FpdCByZWFkUmVjb3JkKCkpPy52YWx1ZSxcbiAgICByZWZyZXNoOiAoKSA9PiByZWZyZXNoKHRydWUpLFxuICAgIHVwZGF0ZTogYXN5bmMgKG11dGF0b3IpID0+IHtcbiAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IGF3YWl0IGNhY2hlUGF0aCgpO1xuICAgICAgcmV0dXJuIGNvYWxlc2NlKGZsaWdodEtleShyZXNvbHZlZFBhdGgsIFwiOnVwZGF0ZVwiKSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91cyA9IGF3YWl0IHJlYWRSZWNvcmQoKTtcbiAgICAgICAgY29uc3QgYmFzZWxpbmUgPSByZXNvbHZlVmFsdWUoe1xuICAgICAgICAgIGZyZXNoOiB1bmRlZmluZWQsXG4gICAgICAgICAgcHJldmlvdXM6IHByZXZpb3VzPy52YWx1ZSxcbiAgICAgICAgICBmYWxsYmFjazogb3B0aW9ucy5mYWxsYmFjayxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwZXJzaXN0KG11dGF0b3IoYmFzZWxpbmUpKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVDYWNoZURpcihvcHRpb25zOiB7XG4gIHJlYWRvbmx5IGNhY2hlRGlyPzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChvcHRpb25zLmNhY2hlRGlyKSByZXR1cm4gb3B0aW9ucy5jYWNoZURpcjtcbiAgY29uc3QgdmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbiA/PyAoYXdhaXQgcGFja2FnZUlkZW50aXR5KCkpLnZlcnNpb247XG4gIHJldHVybiBkZWZhdWx0TWV0YWRhdGFDYWNoZURpcih2ZXJzaW9uKTtcbn1cblxuLyoqIFByZWZlciBhIG5vbi1lbXB0eSBmcmVzaCBhcnJheSwgZWxzZSBwcmV2aW91cywgZWxzZSBmYWxsYmFjay4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVByZWZlckZyZXNoTGlzdDxUPihpbnB1dDogTWV0YWRhdGFDYWNoZU1lcmdlSW5wdXQ8cmVhZG9ubHkgVFtdPik6IFRbXSB7XG4gIGlmIChpbnB1dC5mcmVzaCAmJiBpbnB1dC5mcmVzaC5sZW5ndGggPiAwKSByZXR1cm4gWy4uLmlucHV0LmZyZXNoXTtcbiAgaWYgKGlucHV0LnByZXZpb3VzICYmIGlucHV0LnByZXZpb3VzLmxlbmd0aCA+IDApIHJldHVybiBbLi4uaW5wdXQucHJldmlvdXNdO1xuICByZXR1cm4gWy4uLmlucHV0LmZhbGxiYWNrXTtcbn1cblxuLyoqXG4gKiBTaGFsbG93LW1lcmdlIHJlY29yZCBjYXRhbG9ndWVzOiBmYWxsYmFjaywgdGhlbiBwcmV2aW91cywgdGhlbiBmcmVzaCBrZXlzLlxuICogRnJlc2ggdmFsdWVzIHdpbiBwZXIga2V5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VQcmVmZXJGcmVzaFJlY29yZDxUPihcbiAgaW5wdXQ6IE1ldGFkYXRhQ2FjaGVNZXJnZUlucHV0PFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFQ+Pj4sXG4pOiBSZWNvcmQ8c3RyaW5nLCBUPiB7XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQuZmFsbGJhY2ssXG4gICAgLi4uKGlucHV0LnByZXZpb3VzID8/IHt9KSxcbiAgICAuLi4oaW5wdXQuZnJlc2ggPz8ge30pLFxuICB9O1xufVxuXG4vKiogVGVzdCBoZWxwZXI6IHdpcGUgYSBjYWNhY2hlIHJvb3QgYW5kIGNsZWFyIGNhY2FjaGUgbWVtb2l6YXRpb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzZXRNZXRhZGF0YUNhY2hlRGlyKGNhY2hlRGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBjYWNhY2hlLnJtLmFsbChjYWNoZURpcik7XG4gIH0gY2F0Y2gge1xuICAgIC8vIGVtcHR5IC8gbWlzc2luZyBjYWNoZSBpcyBmaW5lXG4gIH1cbiAgY2FjYWNoZS5jbGVhck1lbW9pemVkKCk7XG4gIGZvciAoY29uc3Qga2V5IG9mIFsuLi5pbmZsaWdodC5rZXlzKCldKSB7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKGAke2NhY2hlRGlyfTo6YCkpIGluZmxpZ2h0LmRlbGV0ZShrZXkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvYWxlc2NlPFQ+KGtleTogc3RyaW5nLCB3b3JrOiAoKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IGV4aXN0aW5nID0gaW5mbGlnaHQuZ2V0KGtleSk7XG4gIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nIGFzIFByb21pc2U8VD47XG4gIGNvbnN0IHBlbmRpbmcgPSB3b3JrKCkuZmluYWxseSgoKSA9PiB7XG4gICAgaWYgKGluZmxpZ2h0LmdldChrZXkpID09PSBwZW5kaW5nKSBpbmZsaWdodC5kZWxldGUoa2V5KTtcbiAgfSk7XG4gIGluZmxpZ2h0LnNldChrZXksIHBlbmRpbmcpO1xuICByZXR1cm4gcGVuZGluZztcbn1cblxuZnVuY3Rpb24gZGVjb2RlUmVjb3JkPFQ+KGRhdGE6IEJ1ZmZlcik6IE1ldGFkYXRhQ2FjaGVSZWNvcmQ8VD4gfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoZGF0YS50b1N0cmluZyhcInV0ZjhcIikpIGFzIHVua25vd247XG4gICAgaWYgKFxuICAgICAgIXBhcnNlZCB8fFxuICAgICAgdHlwZW9mIHBhcnNlZCAhPT0gXCJvYmplY3RcIiB8fFxuICAgICAgdHlwZW9mIChwYXJzZWQgYXMgTWV0YWRhdGFDYWNoZVJlY29yZDxUPikucmVmcmVzaGVkQXQgIT09IFwibnVtYmVyXCJcbiAgICApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWQgYXMgTWV0YWRhdGFDYWNoZVJlY29yZDxUPjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NhY2hlTWlzcyhlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICBlcnJvciAmJlxuICAgIHR5cGVvZiBlcnJvciA9PT0gXCJvYmplY3RcIiAmJlxuICAgIFwiY29kZVwiIGluIGVycm9yICYmXG4gICAgKGVycm9yIGFzIHsgY29kZT86IHN0cmluZyB9KS5jb2RlID09PSBcIkVOT0VOVFwiLFxuICApO1xufVxuXG4iXX0=
|
package/lib/src/policy.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { type ReasoningEffort, type ServingEndpointSummary } from "@dbx-tools/shared-model/contracts";
|
|
3
3
|
/** Return the normalized family parsed from a model identity. */
|
|
4
4
|
export declare function modelFamily(name: string): string | undefined;
|
|
5
|
+
/** Rank a family by how major it is; unrecognized families sort last. */
|
|
6
|
+
export declare function modelFamilyRank(family: string): number;
|
|
5
7
|
/** Normalize a recognized model identity into family, version, and variant tokens. */
|
|
6
8
|
export declare function modelSearchQuery(name: string): string | undefined;
|
|
7
9
|
/** Return the reasoning efforts accepted by a model family. */
|
package/lib/src/policy.js
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
import { ModelClass, } from "@dbx-tools/shared-model/contracts";
|
|
3
3
|
import { supportsToolsByFamily } from "./classify.js";
|
|
4
4
|
const FAMILIES = [
|
|
5
|
-
"bge",
|
|
6
5
|
"claude",
|
|
7
|
-
"deepseek",
|
|
8
|
-
"gemini",
|
|
9
|
-
"gemma",
|
|
10
|
-
"glm",
|
|
11
6
|
"gpt",
|
|
12
|
-
"
|
|
13
|
-
"gte",
|
|
14
|
-
"inkling",
|
|
15
|
-
"kimi",
|
|
7
|
+
"gemini",
|
|
16
8
|
"llama",
|
|
9
|
+
"grok",
|
|
10
|
+
"deepseek",
|
|
17
11
|
"qwen",
|
|
12
|
+
"glm",
|
|
13
|
+
"kimi",
|
|
14
|
+
"gemma",
|
|
15
|
+
"inkling",
|
|
16
|
+
"bge",
|
|
17
|
+
"gte",
|
|
18
18
|
];
|
|
19
19
|
const STANDARD = ["low", "medium", "high"];
|
|
20
20
|
const GPT_5_6 = ["none", "low", "medium", "high", "xhigh", "max"];
|
|
@@ -25,6 +25,11 @@ const GEMINI = ["minimal", "low", "medium", "high"];
|
|
|
25
25
|
export function modelFamily(name) {
|
|
26
26
|
return parseModelName(name)?.family;
|
|
27
27
|
}
|
|
28
|
+
/** Rank a family by how major it is; unrecognized families sort last. */
|
|
29
|
+
export function modelFamilyRank(family) {
|
|
30
|
+
const index = FAMILIES.indexOf(family);
|
|
31
|
+
return index >= 0 ? index : FAMILIES.length;
|
|
32
|
+
}
|
|
28
33
|
/** Normalize a recognized model identity into family, version, and variant tokens. */
|
|
29
34
|
export function modelSearchQuery(name) {
|
|
30
35
|
const parsed = parseModelName(name);
|
|
@@ -182,4 +187,4 @@ function parseModelName(name) {
|
|
|
182
187
|
model: [...remainder.slice(0, versionStart), ...remainder.slice(cursor)],
|
|
183
188
|
};
|
|
184
189
|
}
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtRUFBbUU7QUFFbkUsT0FBTyxFQUNMLFVBQVUsR0FHWCxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxNQUFNLFFBQVEsR0FBRztJQUNmLEtBQUs7SUFDTCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFFBQVE7SUFDUixPQUFPO0lBQ1AsS0FBSztJQUNMLEtBQUs7SUFDTCxNQUFNO0lBQ04sS0FBSztJQUNMLFNBQVM7SUFDVCxNQUFNO0lBQ04sT0FBTztJQUNQLE1BQU07Q0FDRSxDQUFDO0FBRVgsTUFBTSxRQUFRLEdBQXNCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5RCxNQUFNLE9BQU8sR0FBc0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JGLE1BQU0sV0FBVyxHQUFzQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkUsTUFBTSxNQUFNLEdBQXNCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0YsTUFBTSxNQUFNLEdBQXNCLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFRdkUsaUVBQWlFO0FBQ2pFLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7QUFDdEMsQ0FBQztBQUVELHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBRUQsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFZO0lBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxJQUFJLE1BQU0sRUFBRSxNQUFNLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2YsT0FBTztnQkFDTCxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUN4RCxDQUFDLENBQUMsV0FBVztvQkFDYixDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQzt3QkFDMUIsQ0FBQyxDQUFDLE9BQU87d0JBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksTUFBTSxFQUFFLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxHQUFHLFFBQVEsQ0FBQztJQUNqRixJQUFJLE1BQU0sRUFBRSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNqRSxDQUFDO0lBQ0QsSUFBSSxNQUFNLEVBQUUsTUFBTSxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ2xELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNyRixPQUFPLEdBQUcsUUFBUSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQseUVBQXlFO0FBQ3pFLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFZO0lBQzdDLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVELGdGQUFnRjtBQUNoRixNQUFNLFVBQVUscUJBQXFCLENBQUMsUUFBZ0M7SUFDcEUsTUFBTSxTQUFTLEdBQ2IsUUFBUSxDQUFDLElBQUksS0FBSyxtQkFBbUIsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDbkYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQzdGLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBWTtJQUMxQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdEQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDckYsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDOUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELG9FQUFvRTtBQUNwRSxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVk7SUFDMUMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3RELENBQUM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQVk7SUFDbEQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDekQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDOUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3pELENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVk7SUFDNUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3ZFLFFBQVEsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLEtBQUssS0FBSztZQUNSLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxPQUFPLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNuRixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDZCxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN4QyxPQUFPLE9BQU87Z0JBQ1osQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsT0FBTyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3pGLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDVCxDQUFDO1FBQ0QsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLE9BQU87WUFDVixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUM1RCxLQUFLLEtBQUs7WUFDUixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDOUMsS0FBSyxNQUFNO1lBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLE9BQU8sR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQzdDLEtBQUssT0FBTztZQUNWLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxPQUFPLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU07WUFDVCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDaEQsS0FBSyxVQUFVO1lBQ2IsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDdkUsS0FBSyxNQUFNO1lBQ1QsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDbkU7WUFDRSxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1RCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQixJQUFJLE1BQTZDLENBQUM7SUFDbEQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUM3QixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUNwQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQWtDLENBQUMsRUFBRSxDQUFDO1lBQzFELFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDcEIsTUFBTSxHQUFHLEtBQWtDLENBQUM7WUFDNUMsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxXQUFXLEdBQUcsQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ2pELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBRSxDQUFDLEVBQUUsQ0FBQztRQUNoRSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMxQixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksQ0FBQztZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN0QixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksQ0FBQztZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLFlBQVksR0FBRyxDQUFDO1FBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN2RSxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDN0IsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQzFCLE9BQU8sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNO1FBQ04sT0FBTztRQUNQLEtBQUssRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3pFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFR5cGVTY3JpcHQtb3duZWQgbW9kZWwtZmFtaWx5IGFuZCBzZXJ2aW5nIGNhcGFiaWxpdHkgcG9saWN5LiAqL1xuXG5pbXBvcnQge1xuICBNb2RlbENsYXNzLFxuICB0eXBlIFJlYXNvbmluZ0VmZm9ydCxcbiAgdHlwZSBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5LFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwvY29udHJhY3RzXCI7XG5cbmltcG9ydCB7IHN1cHBvcnRzVG9vbHNCeUZhbWlseSB9IGZyb20gXCIuL2NsYXNzaWZ5LnRzXCI7XG5cbmNvbnN0IEZBTUlMSUVTID0gW1xuICBcImJnZVwiLFxuICBcImNsYXVkZVwiLFxuICBcImRlZXBzZWVrXCIsXG4gIFwiZ2VtaW5pXCIsXG4gIFwiZ2VtbWFcIixcbiAgXCJnbG1cIixcbiAgXCJncHRcIixcbiAgXCJncm9rXCIsXG4gIFwiZ3RlXCIsXG4gIFwiaW5rbGluZ1wiLFxuICBcImtpbWlcIixcbiAgXCJsbGFtYVwiLFxuICBcInF3ZW5cIixcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IFNUQU5EQVJEOiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5jb25zdCBHUFRfNV82OiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcIm5vbmVcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHUFRfNV81X1BSTzogUmVhc29uaW5nRWZmb3J0W10gPSBbXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIl07XG5jb25zdCBDTEFVREU6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibm9uZVwiLCBcIm1pbmltYWxcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHRU1JTkk6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibWluaW1hbFwiLCBcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5cbmludGVyZmFjZSBQYXJzZWRNb2RlbE5hbWUge1xuICBmYW1pbHk6ICh0eXBlb2YgRkFNSUxJRVMpW251bWJlcl07XG4gIHZlcnNpb246IG51bWJlcltdO1xuICBtb2RlbDogc3RyaW5nW107XG59XG5cbi8qKiBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgZmFtaWx5IHBhcnNlZCBmcm9tIGEgbW9kZWwgaWRlbnRpdHkuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxGYW1pbHkobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhcnNlTW9kZWxOYW1lKG5hbWUpPy5mYW1pbHk7XG59XG5cbi8qKiBOb3JtYWxpemUgYSByZWNvZ25pemVkIG1vZGVsIGlkZW50aXR5IGludG8gZmFtaWx5LCB2ZXJzaW9uLCBhbmQgdmFyaWFudCB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTZWFyY2hRdWVyeShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgaWYgKCFwYXJzZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBbcGFyc2VkLmZhbWlseSwgLi4ucGFyc2VkLnZlcnNpb24ubWFwKFN0cmluZyksIC4uLnBhcnNlZC5tb2RlbF0uam9pbihcIiBcIik7XG59XG5cbi8qKiBSZXR1cm4gdGhlIHJlYXNvbmluZyBlZmZvcnRzIGFjY2VwdGVkIGJ5IGEgbW9kZWwgZmFtaWx5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsUmVhc29uaW5nRWZmb3J0cyhuYW1lOiBzdHJpbmcpOiBSZWFzb25pbmdFZmZvcnRbXSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlTW9kZWxOYW1lKG5hbWUpO1xuICBsZXQgZWZmb3J0czogUmVhc29uaW5nRWZmb3J0W10gPSBbXTtcbiAgaWYgKHBhcnNlZD8uZmFtaWx5ID09PSBcImdwdFwiICYmIHBhcnNlZC52ZXJzaW9uLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBbbWFqb3IgPSAwLCBtaW5vciA9IDBdID0gcGFyc2VkLnZlcnNpb247XG4gICAgaWYgKG1ham9yID49IDUpIHtcbiAgICAgIGVmZm9ydHMgPVxuICAgICAgICBtYWpvciA9PT0gNSAmJiBtaW5vciA9PT0gNSAmJiBwYXJzZWQubW9kZWwuaW5jbHVkZXMoXCJwcm9cIilcbiAgICAgICAgICA/IEdQVF81XzVfUFJPXG4gICAgICAgICAgOiBtYWpvciA9PT0gNSAmJiBtaW5vciA9PT0gNlxuICAgICAgICAgICAgPyBHUFRfNV82XG4gICAgICAgICAgICA6IFNUQU5EQVJEO1xuICAgIH1cbiAgfVxuICBpZiAocGFyc2VkPy5mYW1pbHkgPT09IFwiZ3B0XCIgJiYgcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwib3NzXCIpKSBlZmZvcnRzID0gU1RBTkRBUkQ7XG4gIGlmIChwYXJzZWQ/LmZhbWlseSA9PT0gXCJjbGF1ZGVcIikge1xuICAgIGNvbnN0IFttYWpvciA9IDAsIG1pbm9yID0gMF0gPSBwYXJzZWQudmVyc2lvbjtcbiAgICBpZiAobWFqb3IgPiAzIHx8IChtYWpvciA9PT0gMyAmJiBtaW5vciA+PSA3KSkgZWZmb3J0cyA9IENMQVVERTtcbiAgfVxuICBpZiAocGFyc2VkPy5mYW1pbHkgPT09IFwiZ2VtaW5pXCIpIGVmZm9ydHMgPSBHRU1JTkk7XG4gIGlmIChub3JtYWxpemVkLmluY2x1ZGVzKFwiY29kZXhcIikgfHwgLyg/Ol58Wy1fLi9dKW8oPzoxfDN8NCkoPzpbLV8uL118JCkvaS50ZXN0KG5hbWUpKSB7XG4gICAgZWZmb3J0cyA9IFNUQU5EQVJEO1xuICB9XG4gIHJldHVybiBlZmZvcnRzO1xufVxuXG4vKiogUmV0dXJuIHdoZXRoZXIgcG9saWN5IHZlcmlmaWVzIGEgY29tcGxldGUgdG9vbC1jYWxsaW5nIHJvdW5kIHRyaXAuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTdXBwb3J0c1Rvb2xzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3VwcG9ydHNUb29sc0J5RmFtaWx5KG5hbWUpO1xufVxuXG4vKiogUmV0dXJuIHdoZXRoZXIgYSBkaXNjb3ZlcmVkIGVuZHBvaW50IGNhbiBiZSB1c2VkIGZvciBhIHRvb2wtY2FsbGluZyBjaGF0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuZHBvaW50U3VwcG9ydHNUb29scyhlbmRwb2ludDogU2VydmluZ0VuZHBvaW50U3VtbWFyeSk6IGJvb2xlYW4ge1xuICBjb25zdCBlbWJlZGRpbmcgPVxuICAgIGVuZHBvaW50LnRhc2sgPT09IFwibGxtL3YxL2VtYmVkZGluZ3NcIiB8fCBlbmRwb2ludC5jbGFzcyA9PT0gTW9kZWxDbGFzcy5FbWJlZGRpbmc7XG4gIGNvbnN0IGNoYXQgPSAhZW1iZWRkaW5nICYmIChlbmRwb2ludC50YXNrID09PSBcImxsbS92MS9jaGF0XCIgfHwgZW5kcG9pbnQuY2xhc3MgIT09IHVuZGVmaW5lZCk7XG4gIHJldHVybiBjaGF0ICYmIChlbmRwb2ludC5zdXBwb3J0c1Rvb2xzID8/IG1vZGVsU3VwcG9ydHNUb29scyhlbmRwb2ludC5uYW1lKSk7XG59XG5cbi8qKiBSZXR1cm4gd2hldGhlciBhIG1vZGVsIHJlcXVpcmVzIERhdGFicmlja3MnIG5hdGl2ZSBSZXNwb25zZXMgZW5kcG9pbnQuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZXNwb25zZXNPbmx5KG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29kZXhcIikpIHJldHVybiB0cnVlO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgaWYgKCFwYXJzZWQgfHwgcGFyc2VkLmZhbWlseSAhPT0gXCJncHRcIiB8fCBwYXJzZWQubW9kZWwuaW5jbHVkZXMoXCJvc3NcIikpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgW21ham9yID0gMCwgbWlub3IgPSAwXSA9IHBhcnNlZC52ZXJzaW9uO1xuICByZXR1cm4gbWFqb3IgPiA1IHx8IChtYWpvciA9PT0gNSAmJiBtaW5vciA+PSA0KTtcbn1cblxuLyoqIFJldHVybiB0aGUgRGF0YWJyaWNrcyBpbmZlcmVuY2UgcHJvdG9jb2wgcmVxdWlyZWQgYnkgYSBtb2RlbC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFNlcnZpbmdBcGkobmFtZTogc3RyaW5nKTogXCJjaGF0XCIgfCBcInJlc3BvbnNlc1wiIHtcbiAgcmV0dXJuIGlzUmVzcG9uc2VzT25seShuYW1lKSA/IFwicmVzcG9uc2VzXCIgOiBcImNoYXRcIjtcbn1cblxuLyoqIFJldHVybiB0aGUgQ2hhdCBDb21wbGV0aW9ucyBlZmZvcnQgcmVxdWlyZWQgd2hlbiBmdW5jdGlvbiB0b29scyBhcmUgcHJlc2VudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGF0VG9vbFJlYXNvbmluZ0VmZm9ydChuYW1lOiBzdHJpbmcpOiBSZWFzb25pbmdFZmZvcnQgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgaWYgKCFwYXJzZWQgfHwgcGFyc2VkLmZhbWlseSAhPT0gXCJncHRcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgW21ham9yID0gMCwgbWlub3IgPSAwXSA9IHBhcnNlZC52ZXJzaW9uO1xuICByZXR1cm4gbWFqb3IgPT09IDUgJiYgbWlub3IgPT09IDYgPyBcIm5vbmVcIiA6IHVuZGVmaW5lZDtcbn1cblxuLyoqIERlcml2ZSBwcm92aWRlci1zcGVjaWZpYyBtb2RlbCBuYW1lcyBmcm9tIGEgRGF0YWJyaWNrcyBtb2RlbCBpZGVudGl0eS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFNlcnZpY2VOYW1lcyhuYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkKSByZXR1cm4ge307XG4gIGNvbnN0IHZlcnNpb24gPSBwYXJzZWQudmVyc2lvbi5qb2luKFwiLlwiKTtcbiAgY29uc3Qgc3VmZml4ID0gcGFyc2VkLm1vZGVsLmxlbmd0aCA/IGAtJHtwYXJzZWQubW9kZWwuam9pbihcIi1cIil9YCA6IFwiXCI7XG4gIHN3aXRjaCAocGFyc2VkLmZhbWlseSkge1xuICAgIGNhc2UgXCJncHRcIjpcbiAgICAgIHJldHVybiBwYXJzZWQubW9kZWwuaW5jbHVkZXMoXCJvc3NcIikgPyB7fSA6IHsgb3BlbmFpOiBgZ3B0LSR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImNsYXVkZVwiOiB7XG4gICAgICBjb25zdCBbdmFyaWFudCwgLi4ucmVzdF0gPSBwYXJzZWQubW9kZWw7XG4gICAgICByZXR1cm4gdmFyaWFudFxuICAgICAgICA/IHsgYW50aHJvcGljOiBgY2xhdWRlLSR7dmFyaWFudH0tJHt2ZXJzaW9ufSR7cmVzdC5sZW5ndGggPyBgLSR7cmVzdC5qb2luKFwiLVwiKX1gIDogXCJcIn1gIH1cbiAgICAgICAgOiB7fTtcbiAgICB9XG4gICAgY2FzZSBcImdlbWluaVwiOlxuICAgIGNhc2UgXCJnZW1tYVwiOlxuICAgICAgcmV0dXJuIHsgZ29vZ2xlOiBgJHtwYXJzZWQuZmFtaWx5fS0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJnbG1cIjpcbiAgICAgIHJldHVybiB7IHpoaXB1OiBgZ2xtLSR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImdyb2tcIjpcbiAgICAgIHJldHVybiB7IHhhaTogYGdyb2stJHt2ZXJzaW9ufSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwibGxhbWFcIjpcbiAgICAgIHJldHVybiB7IG1ldGE6IGBsbGFtYS0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJxd2VuXCI6XG4gICAgICByZXR1cm4geyBhbGliYWJhOiBgcXdlbiR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImRlZXBzZWVrXCI6XG4gICAgICByZXR1cm4geyBkZWVwc2VlazogYGRlZXBzZWVrLXYke3BhcnNlZC52ZXJzaW9uWzBdID8/IFwiXCJ9JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJraW1pXCI6XG4gICAgICByZXR1cm4geyBtb29uc2hvdDogYGtpbWktayR7cGFyc2VkLnZlcnNpb25bMF0gPz8gXCJcIn0ke3N1ZmZpeH1gIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZU1vZGVsTmFtZShuYW1lOiBzdHJpbmcpOiBQYXJzZWRNb2RlbE5hbWUgfCB1bmRlZmluZWQge1xuICBjb25zdCB0b2tlbnMgPSBuYW1lLnRvTG93ZXJDYXNlKCkubWF0Y2goL1thLXowLTldKy9nKSA/PyBbXTtcbiAgbGV0IGZhbWlseUluZGV4ID0gLTE7XG4gIGxldCBmYW1pbHk6IFBhcnNlZE1vZGVsTmFtZVtcImZhbWlseVwiXSB8IHVuZGVmaW5lZDtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRva2Vucy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tpbmRleF0hO1xuICAgIGNvbnN0IGNvbXBhY3RRd2VuID0gL15xd2VuKFxcZCspJC8uZXhlYyh0b2tlbik7XG4gICAgaWYgKGNvbXBhY3RRd2VuKSB7XG4gICAgICBmYW1pbHlJbmRleCA9IGluZGV4O1xuICAgICAgZmFtaWx5ID0gXCJxd2VuXCI7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKEZBTUlMSUVTLmluY2x1ZGVzKHRva2VuIGFzIFBhcnNlZE1vZGVsTmFtZVtcImZhbWlseVwiXSkpIHtcbiAgICAgIGZhbWlseUluZGV4ID0gaW5kZXg7XG4gICAgICBmYW1pbHkgPSB0b2tlbiBhcyBQYXJzZWRNb2RlbE5hbWVbXCJmYW1pbHlcIl07XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFmYW1pbHkgfHwgZmFtaWx5SW5kZXggPCAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCByZW1haW5kZXIgPSB0b2tlbnMuc2xpY2UoZmFtaWx5SW5kZXggKyAxKTtcbiAgY29uc3QgbnVtZXJpYyA9ICh2YWx1ZTogc3RyaW5nKSA9PiAvXlxcZCskLy50ZXN0KHZhbHVlKTtcbiAgbGV0IHZlcnNpb25TdGFydCA9IHJlbWFpbmRlci5maW5kSW5kZXgobnVtZXJpYyk7XG4gIGlmIChmYW1pbHkgPT09IFwicXdlblwiICYmIC9ecXdlblxcZCskLy50ZXN0KHRva2Vuc1tmYW1pbHlJbmRleF0hKSkge1xuICAgIHZlcnNpb25TdGFydCA9IDA7XG4gICAgcmVtYWluZGVyLnVuc2hpZnQodG9rZW5zW2ZhbWlseUluZGV4XSEuc2xpY2UoNCkpO1xuICB9XG4gIGlmIChmYW1pbHkgPT09IFwiZGVlcHNlZWtcIikge1xuICAgIGNvbnN0IHByZWZpeGVkID0gcmVtYWluZGVyLmZpbmRJbmRleCgodmFsdWUpID0+IC9edlxcZCskLy50ZXN0KHZhbHVlKSk7XG4gICAgaWYgKHByZWZpeGVkID49IDApIHJlbWFpbmRlcltwcmVmaXhlZF0gPSByZW1haW5kZXJbcHJlZml4ZWRdIS5zbGljZSgxKTtcbiAgICB2ZXJzaW9uU3RhcnQgPSByZW1haW5kZXIuZmluZEluZGV4KG51bWVyaWMpO1xuICB9XG4gIGlmIChmYW1pbHkgPT09IFwia2ltaVwiKSB7XG4gICAgY29uc3QgcHJlZml4ZWQgPSByZW1haW5kZXIuZmluZEluZGV4KCh2YWx1ZSkgPT4gL15rXFxkKyQvLnRlc3QodmFsdWUpKTtcbiAgICBpZiAocHJlZml4ZWQgPj0gMCkgcmVtYWluZGVyW3ByZWZpeGVkXSA9IHJlbWFpbmRlcltwcmVmaXhlZF0hLnNsaWNlKDEpO1xuICAgIHZlcnNpb25TdGFydCA9IHJlbWFpbmRlci5maW5kSW5kZXgobnVtZXJpYyk7XG4gIH1cbiAgaWYgKHZlcnNpb25TdGFydCA8IDApIHJldHVybiB7IGZhbWlseSwgdmVyc2lvbjogW10sIG1vZGVsOiByZW1haW5kZXIgfTtcbiAgY29uc3QgdmVyc2lvbjogbnVtYmVyW10gPSBbXTtcbiAgbGV0IGN1cnNvciA9IHZlcnNpb25TdGFydDtcbiAgd2hpbGUgKGN1cnNvciA8IHJlbWFpbmRlci5sZW5ndGggJiYgdmVyc2lvbi5sZW5ndGggPCAyICYmIG51bWVyaWMocmVtYWluZGVyW2N1cnNvcl0hKSkge1xuICAgIHZlcnNpb24ucHVzaChOdW1iZXIocmVtYWluZGVyW2N1cnNvcl0pKTtcbiAgICBjdXJzb3IgKz0gMTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGZhbWlseSxcbiAgICB2ZXJzaW9uLFxuICAgIG1vZGVsOiBbLi4ucmVtYWluZGVyLnNsaWNlKDAsIHZlcnNpb25TdGFydCksIC4uLnJlbWFpbmRlci5zbGljZShjdXJzb3IpXSxcbiAgfTtcbn1cbiJdfQ==
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtRUFBbUU7QUFFbkUsT0FBTyxFQUNMLFVBQVUsR0FHWCxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxNQUFNLFFBQVEsR0FBRztJQUNmLFFBQVE7SUFDUixLQUFLO0lBQ0wsUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0lBQ04sVUFBVTtJQUNWLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtJQUNOLE9BQU87SUFDUCxTQUFTO0lBQ1QsS0FBSztJQUNMLEtBQUs7Q0FDRyxDQUFDO0FBRVgsTUFBTSxRQUFRLEdBQXNCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5RCxNQUFNLE9BQU8sR0FBc0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JGLE1BQU0sV0FBVyxHQUFzQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkUsTUFBTSxNQUFNLEdBQXNCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0YsTUFBTSxNQUFNLEdBQXNCLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFRdkUsaUVBQWlFO0FBQ2pFLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7QUFDdEMsQ0FBQztBQUVELHlFQUF5RTtBQUN6RSxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFtQyxDQUFDLENBQUM7SUFDcEUsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDOUMsQ0FBQztBQUVELHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBRUQsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFZO0lBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxJQUFJLE1BQU0sRUFBRSxNQUFNLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2YsT0FBTztnQkFDTCxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUN4RCxDQUFDLENBQUMsV0FBVztvQkFDYixDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQzt3QkFDMUIsQ0FBQyxDQUFDLE9BQU87d0JBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksTUFBTSxFQUFFLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxHQUFHLFFBQVEsQ0FBQztJQUNqRixJQUFJLE1BQU0sRUFBRSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNqRSxDQUFDO0lBQ0QsSUFBSSxNQUFNLEVBQUUsTUFBTSxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ2xELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNyRixPQUFPLEdBQUcsUUFBUSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQseUVBQXlFO0FBQ3pFLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFZO0lBQzdDLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVELGdGQUFnRjtBQUNoRixNQUFNLFVBQVUscUJBQXFCLENBQUMsUUFBZ0M7SUFDcEUsTUFBTSxTQUFTLEdBQ2IsUUFBUSxDQUFDLElBQUksS0FBSyxtQkFBbUIsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDbkYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQzdGLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBWTtJQUMxQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdEQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDckYsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDOUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELG9FQUFvRTtBQUNwRSxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVk7SUFDMUMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3RELENBQUM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQVk7SUFDbEQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDekQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDOUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3pELENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVk7SUFDNUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3ZFLFFBQVEsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLEtBQUssS0FBSztZQUNSLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxPQUFPLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNuRixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDZCxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN4QyxPQUFPLE9BQU87Z0JBQ1osQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsT0FBTyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3pGLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDVCxDQUFDO1FBQ0QsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLE9BQU87WUFDVixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUM1RCxLQUFLLEtBQUs7WUFDUixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDOUMsS0FBSyxNQUFNO1lBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLE9BQU8sR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQzdDLEtBQUssT0FBTztZQUNWLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxPQUFPLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU07WUFDVCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDaEQsS0FBSyxVQUFVO1lBQ2IsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDdkUsS0FBSyxNQUFNO1lBQ1QsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDbkU7WUFDRSxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1RCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQixJQUFJLE1BQTZDLENBQUM7SUFDbEQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUM3QixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUNwQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQWtDLENBQUMsRUFBRSxDQUFDO1lBQzFELFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDcEIsTUFBTSxHQUFHLEtBQWtDLENBQUM7WUFDNUMsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxXQUFXLEdBQUcsQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ2pELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBRSxDQUFDLEVBQUUsQ0FBQztRQUNoRSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMxQixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksQ0FBQztZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN0QixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksQ0FBQztZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLFlBQVksR0FBRyxDQUFDO1FBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN2RSxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDN0IsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQzFCLE9BQU8sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNO1FBQ04sT0FBTztRQUNQLEtBQUssRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3pFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFR5cGVTY3JpcHQtb3duZWQgbW9kZWwtZmFtaWx5IGFuZCBzZXJ2aW5nIGNhcGFiaWxpdHkgcG9saWN5LiAqL1xuXG5pbXBvcnQge1xuICBNb2RlbENsYXNzLFxuICB0eXBlIFJlYXNvbmluZ0VmZm9ydCxcbiAgdHlwZSBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5LFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwvY29udHJhY3RzXCI7XG5cbmltcG9ydCB7IHN1cHBvcnRzVG9vbHNCeUZhbWlseSB9IGZyb20gXCIuL2NsYXNzaWZ5LnRzXCI7XG5cbmNvbnN0IEZBTUlMSUVTID0gW1xuICBcImNsYXVkZVwiLFxuICBcImdwdFwiLFxuICBcImdlbWluaVwiLFxuICBcImxsYW1hXCIsXG4gIFwiZ3Jva1wiLFxuICBcImRlZXBzZWVrXCIsXG4gIFwicXdlblwiLFxuICBcImdsbVwiLFxuICBcImtpbWlcIixcbiAgXCJnZW1tYVwiLFxuICBcImlua2xpbmdcIixcbiAgXCJiZ2VcIixcbiAgXCJndGVcIixcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IFNUQU5EQVJEOiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5jb25zdCBHUFRfNV82OiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcIm5vbmVcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHUFRfNV81X1BSTzogUmVhc29uaW5nRWZmb3J0W10gPSBbXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIl07XG5jb25zdCBDTEFVREU6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibm9uZVwiLCBcIm1pbmltYWxcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHRU1JTkk6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibWluaW1hbFwiLCBcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5cbmludGVyZmFjZSBQYXJzZWRNb2RlbE5hbWUge1xuICBmYW1pbHk6ICh0eXBlb2YgRkFNSUxJRVMpW251bWJlcl07XG4gIHZlcnNpb246IG51bWJlcltdO1xuICBtb2RlbDogc3RyaW5nW107XG59XG5cbi8qKiBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgZmFtaWx5IHBhcnNlZCBmcm9tIGEgbW9kZWwgaWRlbnRpdHkuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxGYW1pbHkobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhcnNlTW9kZWxOYW1lKG5hbWUpPy5mYW1pbHk7XG59XG5cbi8qKiBSYW5rIGEgZmFtaWx5IGJ5IGhvdyBtYWpvciBpdCBpczsgdW5yZWNvZ25pemVkIGZhbWlsaWVzIHNvcnQgbGFzdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbEZhbWlseVJhbmsoZmFtaWx5OiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCBpbmRleCA9IEZBTUlMSUVTLmluZGV4T2YoZmFtaWx5IGFzICh0eXBlb2YgRkFNSUxJRVMpW251bWJlcl0pO1xuICByZXR1cm4gaW5kZXggPj0gMCA/IGluZGV4IDogRkFNSUxJRVMubGVuZ3RoO1xufVxuXG4vKiogTm9ybWFsaXplIGEgcmVjb2duaXplZCBtb2RlbCBpZGVudGl0eSBpbnRvIGZhbWlseSwgdmVyc2lvbiwgYW5kIHZhcmlhbnQgdG9rZW5zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsU2VhcmNoUXVlcnkobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gW3BhcnNlZC5mYW1pbHksIC4uLnBhcnNlZC52ZXJzaW9uLm1hcChTdHJpbmcpLCAuLi5wYXJzZWQubW9kZWxdLmpvaW4oXCIgXCIpO1xufVxuXG4vKiogUmV0dXJuIHRoZSByZWFzb25pbmcgZWZmb3J0cyBhY2NlcHRlZCBieSBhIG1vZGVsIGZhbWlseS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFJlYXNvbmluZ0VmZm9ydHMobmFtZTogc3RyaW5nKTogUmVhc29uaW5nRWZmb3J0W10ge1xuICBjb25zdCBub3JtYWxpemVkID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgbGV0IGVmZm9ydHM6IFJlYXNvbmluZ0VmZm9ydFtdID0gW107XG4gIGlmIChwYXJzZWQ/LmZhbWlseSA9PT0gXCJncHRcIiAmJiBwYXJzZWQudmVyc2lvbi5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgW21ham9yID0gMCwgbWlub3IgPSAwXSA9IHBhcnNlZC52ZXJzaW9uO1xuICAgIGlmIChtYWpvciA+PSA1KSB7XG4gICAgICBlZmZvcnRzID1cbiAgICAgICAgbWFqb3IgPT09IDUgJiYgbWlub3IgPT09IDUgJiYgcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwicHJvXCIpXG4gICAgICAgICAgPyBHUFRfNV81X1BST1xuICAgICAgICAgIDogbWFqb3IgPT09IDUgJiYgbWlub3IgPT09IDZcbiAgICAgICAgICAgID8gR1BUXzVfNlxuICAgICAgICAgICAgOiBTVEFOREFSRDtcbiAgICB9XG4gIH1cbiAgaWYgKHBhcnNlZD8uZmFtaWx5ID09PSBcImdwdFwiICYmIHBhcnNlZC5tb2RlbC5pbmNsdWRlcyhcIm9zc1wiKSkgZWZmb3J0cyA9IFNUQU5EQVJEO1xuICBpZiAocGFyc2VkPy5mYW1pbHkgPT09IFwiY2xhdWRlXCIpIHtcbiAgICBjb25zdCBbbWFqb3IgPSAwLCBtaW5vciA9IDBdID0gcGFyc2VkLnZlcnNpb247XG4gICAgaWYgKG1ham9yID4gMyB8fCAobWFqb3IgPT09IDMgJiYgbWlub3IgPj0gNykpIGVmZm9ydHMgPSBDTEFVREU7XG4gIH1cbiAgaWYgKHBhcnNlZD8uZmFtaWx5ID09PSBcImdlbWluaVwiKSBlZmZvcnRzID0gR0VNSU5JO1xuICBpZiAobm9ybWFsaXplZC5pbmNsdWRlcyhcImNvZGV4XCIpIHx8IC8oPzpefFstXy4vXSlvKD86MXwzfDQpKD86Wy1fLi9dfCQpL2kudGVzdChuYW1lKSkge1xuICAgIGVmZm9ydHMgPSBTVEFOREFSRDtcbiAgfVxuICByZXR1cm4gZWZmb3J0cztcbn1cblxuLyoqIFJldHVybiB3aGV0aGVyIHBvbGljeSB2ZXJpZmllcyBhIGNvbXBsZXRlIHRvb2wtY2FsbGluZyByb3VuZCB0cmlwLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsU3VwcG9ydHNUb29scyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHN1cHBvcnRzVG9vbHNCeUZhbWlseShuYW1lKTtcbn1cblxuLyoqIFJldHVybiB3aGV0aGVyIGEgZGlzY292ZXJlZCBlbmRwb2ludCBjYW4gYmUgdXNlZCBmb3IgYSB0b29sLWNhbGxpbmcgY2hhdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmRwb2ludFN1cHBvcnRzVG9vbHMoZW5kcG9pbnQ6IFNlcnZpbmdFbmRwb2ludFN1bW1hcnkpOiBib29sZWFuIHtcbiAgY29uc3QgZW1iZWRkaW5nID1cbiAgICBlbmRwb2ludC50YXNrID09PSBcImxsbS92MS9lbWJlZGRpbmdzXCIgfHwgZW5kcG9pbnQuY2xhc3MgPT09IE1vZGVsQ2xhc3MuRW1iZWRkaW5nO1xuICBjb25zdCBjaGF0ID0gIWVtYmVkZGluZyAmJiAoZW5kcG9pbnQudGFzayA9PT0gXCJsbG0vdjEvY2hhdFwiIHx8IGVuZHBvaW50LmNsYXNzICE9PSB1bmRlZmluZWQpO1xuICByZXR1cm4gY2hhdCAmJiAoZW5kcG9pbnQuc3VwcG9ydHNUb29scyA/PyBtb2RlbFN1cHBvcnRzVG9vbHMoZW5kcG9pbnQubmFtZSkpO1xufVxuXG4vKiogUmV0dXJuIHdoZXRoZXIgYSBtb2RlbCByZXF1aXJlcyBEYXRhYnJpY2tzJyBuYXRpdmUgUmVzcG9uc2VzIGVuZHBvaW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzcG9uc2VzT25seShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvZGV4XCIpKSByZXR1cm4gdHJ1ZTtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkIHx8IHBhcnNlZC5mYW1pbHkgIT09IFwiZ3B0XCIgfHwgcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwib3NzXCIpKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IFttYWpvciA9IDAsIG1pbm9yID0gMF0gPSBwYXJzZWQudmVyc2lvbjtcbiAgcmV0dXJuIG1ham9yID4gNSB8fCAobWFqb3IgPT09IDUgJiYgbWlub3IgPj0gNCk7XG59XG5cbi8qKiBSZXR1cm4gdGhlIERhdGFicmlja3MgaW5mZXJlbmNlIHByb3RvY29sIHJlcXVpcmVkIGJ5IGEgbW9kZWwuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTZXJ2aW5nQXBpKG5hbWU6IHN0cmluZyk6IFwiY2hhdFwiIHwgXCJyZXNwb25zZXNcIiB7XG4gIHJldHVybiBpc1Jlc3BvbnNlc09ubHkobmFtZSkgPyBcInJlc3BvbnNlc1wiIDogXCJjaGF0XCI7XG59XG5cbi8qKiBSZXR1cm4gdGhlIENoYXQgQ29tcGxldGlvbnMgZWZmb3J0IHJlcXVpcmVkIHdoZW4gZnVuY3Rpb24gdG9vbHMgYXJlIHByZXNlbnQuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhdFRvb2xSZWFzb25pbmdFZmZvcnQobmFtZTogc3RyaW5nKTogUmVhc29uaW5nRWZmb3J0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkIHx8IHBhcnNlZC5mYW1pbHkgIT09IFwiZ3B0XCIpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IFttYWpvciA9IDAsIG1pbm9yID0gMF0gPSBwYXJzZWQudmVyc2lvbjtcbiAgcmV0dXJuIG1ham9yID09PSA1ICYmIG1pbm9yID09PSA2ID8gXCJub25lXCIgOiB1bmRlZmluZWQ7XG59XG5cbi8qKiBEZXJpdmUgcHJvdmlkZXItc3BlY2lmaWMgbW9kZWwgbmFtZXMgZnJvbSBhIERhdGFicmlja3MgbW9kZWwgaWRlbnRpdHkuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTZXJ2aWNlTmFtZXMobmFtZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlTW9kZWxOYW1lKG5hbWUpO1xuICBpZiAoIXBhcnNlZCkgcmV0dXJuIHt9O1xuICBjb25zdCB2ZXJzaW9uID0gcGFyc2VkLnZlcnNpb24uam9pbihcIi5cIik7XG4gIGNvbnN0IHN1ZmZpeCA9IHBhcnNlZC5tb2RlbC5sZW5ndGggPyBgLSR7cGFyc2VkLm1vZGVsLmpvaW4oXCItXCIpfWAgOiBcIlwiO1xuICBzd2l0Y2ggKHBhcnNlZC5mYW1pbHkpIHtcbiAgICBjYXNlIFwiZ3B0XCI6XG4gICAgICByZXR1cm4gcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwib3NzXCIpID8ge30gOiB7IG9wZW5haTogYGdwdC0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJjbGF1ZGVcIjoge1xuICAgICAgY29uc3QgW3ZhcmlhbnQsIC4uLnJlc3RdID0gcGFyc2VkLm1vZGVsO1xuICAgICAgcmV0dXJuIHZhcmlhbnRcbiAgICAgICAgPyB7IGFudGhyb3BpYzogYGNsYXVkZS0ke3ZhcmlhbnR9LSR7dmVyc2lvbn0ke3Jlc3QubGVuZ3RoID8gYC0ke3Jlc3Quam9pbihcIi1cIil9YCA6IFwiXCJ9YCB9XG4gICAgICAgIDoge307XG4gICAgfVxuICAgIGNhc2UgXCJnZW1pbmlcIjpcbiAgICBjYXNlIFwiZ2VtbWFcIjpcbiAgICAgIHJldHVybiB7IGdvb2dsZTogYCR7cGFyc2VkLmZhbWlseX0tJHt2ZXJzaW9ufSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwiZ2xtXCI6XG4gICAgICByZXR1cm4geyB6aGlwdTogYGdsbS0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJncm9rXCI6XG4gICAgICByZXR1cm4geyB4YWk6IGBncm9rLSR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImxsYW1hXCI6XG4gICAgICByZXR1cm4geyBtZXRhOiBgbGxhbWEtJHt2ZXJzaW9ufSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwicXdlblwiOlxuICAgICAgcmV0dXJuIHsgYWxpYmFiYTogYHF3ZW4ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJkZWVwc2Vla1wiOlxuICAgICAgcmV0dXJuIHsgZGVlcHNlZWs6IGBkZWVwc2Vlay12JHtwYXJzZWQudmVyc2lvblswXSA/PyBcIlwifSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwia2ltaVwiOlxuICAgICAgcmV0dXJuIHsgbW9vbnNob3Q6IGBraW1pLWske3BhcnNlZC52ZXJzaW9uWzBdID8/IFwiXCJ9JHtzdWZmaXh9YCB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VNb2RlbE5hbWUobmFtZTogc3RyaW5nKTogUGFyc2VkTW9kZWxOYW1lIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdG9rZW5zID0gbmFtZS50b0xvd2VyQ2FzZSgpLm1hdGNoKC9bYS16MC05XSsvZykgPz8gW107XG4gIGxldCBmYW1pbHlJbmRleCA9IC0xO1xuICBsZXQgZmFtaWx5OiBQYXJzZWRNb2RlbE5hbWVbXCJmYW1pbHlcIl0gfCB1bmRlZmluZWQ7XG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0b2tlbnMubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaW5kZXhdITtcbiAgICBjb25zdCBjb21wYWN0UXdlbiA9IC9ecXdlbihcXGQrKSQvLmV4ZWModG9rZW4pO1xuICAgIGlmIChjb21wYWN0UXdlbikge1xuICAgICAgZmFtaWx5SW5kZXggPSBpbmRleDtcbiAgICAgIGZhbWlseSA9IFwicXdlblwiO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChGQU1JTElFUy5pbmNsdWRlcyh0b2tlbiBhcyBQYXJzZWRNb2RlbE5hbWVbXCJmYW1pbHlcIl0pKSB7XG4gICAgICBmYW1pbHlJbmRleCA9IGluZGV4O1xuICAgICAgZmFtaWx5ID0gdG9rZW4gYXMgUGFyc2VkTW9kZWxOYW1lW1wiZmFtaWx5XCJdO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmICghZmFtaWx5IHx8IGZhbWlseUluZGV4IDwgMCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgcmVtYWluZGVyID0gdG9rZW5zLnNsaWNlKGZhbWlseUluZGV4ICsgMSk7XG4gIGNvbnN0IG51bWVyaWMgPSAodmFsdWU6IHN0cmluZykgPT4gL15cXGQrJC8udGVzdCh2YWx1ZSk7XG4gIGxldCB2ZXJzaW9uU3RhcnQgPSByZW1haW5kZXIuZmluZEluZGV4KG51bWVyaWMpO1xuICBpZiAoZmFtaWx5ID09PSBcInF3ZW5cIiAmJiAvXnF3ZW5cXGQrJC8udGVzdCh0b2tlbnNbZmFtaWx5SW5kZXhdISkpIHtcbiAgICB2ZXJzaW9uU3RhcnQgPSAwO1xuICAgIHJlbWFpbmRlci51bnNoaWZ0KHRva2Vuc1tmYW1pbHlJbmRleF0hLnNsaWNlKDQpKTtcbiAgfVxuICBpZiAoZmFtaWx5ID09PSBcImRlZXBzZWVrXCIpIHtcbiAgICBjb25zdCBwcmVmaXhlZCA9IHJlbWFpbmRlci5maW5kSW5kZXgoKHZhbHVlKSA9PiAvXnZcXGQrJC8udGVzdCh2YWx1ZSkpO1xuICAgIGlmIChwcmVmaXhlZCA+PSAwKSByZW1haW5kZXJbcHJlZml4ZWRdID0gcmVtYWluZGVyW3ByZWZpeGVkXSEuc2xpY2UoMSk7XG4gICAgdmVyc2lvblN0YXJ0ID0gcmVtYWluZGVyLmZpbmRJbmRleChudW1lcmljKTtcbiAgfVxuICBpZiAoZmFtaWx5ID09PSBcImtpbWlcIikge1xuICAgIGNvbnN0IHByZWZpeGVkID0gcmVtYWluZGVyLmZpbmRJbmRleCgodmFsdWUpID0+IC9ea1xcZCskLy50ZXN0KHZhbHVlKSk7XG4gICAgaWYgKHByZWZpeGVkID49IDApIHJlbWFpbmRlcltwcmVmaXhlZF0gPSByZW1haW5kZXJbcHJlZml4ZWRdIS5zbGljZSgxKTtcbiAgICB2ZXJzaW9uU3RhcnQgPSByZW1haW5kZXIuZmluZEluZGV4KG51bWVyaWMpO1xuICB9XG4gIGlmICh2ZXJzaW9uU3RhcnQgPCAwKSByZXR1cm4geyBmYW1pbHksIHZlcnNpb246IFtdLCBtb2RlbDogcmVtYWluZGVyIH07XG4gIGNvbnN0IHZlcnNpb246IG51bWJlcltdID0gW107XG4gIGxldCBjdXJzb3IgPSB2ZXJzaW9uU3RhcnQ7XG4gIHdoaWxlIChjdXJzb3IgPCByZW1haW5kZXIubGVuZ3RoICYmIHZlcnNpb24ubGVuZ3RoIDwgMiAmJiBudW1lcmljKHJlbWFpbmRlcltjdXJzb3JdISkpIHtcbiAgICB2ZXJzaW9uLnB1c2goTnVtYmVyKHJlbWFpbmRlcltjdXJzb3JdKSk7XG4gICAgY3Vyc29yICs9IDE7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBmYW1pbHksXG4gICAgdmVyc2lvbixcbiAgICBtb2RlbDogWy4uLnJlbWFpbmRlci5zbGljZSgwLCB2ZXJzaW9uU3RhcnQpLCAuLi5yZW1haW5kZXIuc2xpY2UoY3Vyc29yKV0sXG4gIH07XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@databricks/appkit": "0.81.0",
|
|
30
|
-
"@dbx-tools/appkit": "^0.9.
|
|
31
|
-
"@dbx-tools/auth": "^0.9.
|
|
32
|
-
"@dbx-tools/shared-auth": "^0.9.
|
|
33
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
34
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
30
|
+
"@dbx-tools/appkit": "^0.9.38",
|
|
31
|
+
"@dbx-tools/auth": "^0.9.38",
|
|
32
|
+
"@dbx-tools/shared-auth": "^0.9.38",
|
|
33
|
+
"@dbx-tools/shared-core": "^0.9.38",
|
|
34
|
+
"@dbx-tools/shared-model": "^0.9.38",
|
|
35
35
|
"cacache": "^21.0.1",
|
|
36
36
|
"env-paths": "^4.0.0",
|
|
37
37
|
"fuse.js": "^7.4.2"
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"./package.json": "./package.json"
|
|
99
99
|
}
|
|
100
100
|
},
|
|
101
|
-
"version": "0.9.
|
|
101
|
+
"version": "0.9.38",
|
|
102
102
|
"types": "./lib/index.d.ts",
|
|
103
103
|
"dbxToolsConfig": {
|
|
104
104
|
"tags": [
|
package/src/metadata-cache.ts
CHANGED
|
@@ -25,6 +25,21 @@ import { MODEL_METADATA_TTL_MS } from "./_metadata-contract.ts";
|
|
|
25
25
|
|
|
26
26
|
const logger = log.logger("model/metadata-cache");
|
|
27
27
|
|
|
28
|
+
interface PackageIdentity {
|
|
29
|
+
readonly identifier: string;
|
|
30
|
+
readonly version: string;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let packageIdentityPromise: Promise<PackageIdentity> | undefined;
|
|
34
|
+
|
|
35
|
+
function packageIdentity(): Promise<PackageIdentity> {
|
|
36
|
+
packageIdentityPromise ??= import("../index.ts").then((mod) => ({
|
|
37
|
+
identifier: mod.PACKAGE_IDENTIFIER,
|
|
38
|
+
version: mod.PACKAGE_VERSION,
|
|
39
|
+
}));
|
|
40
|
+
return packageIdentityPromise;
|
|
41
|
+
}
|
|
42
|
+
|
|
28
43
|
/** Envelope stored as JSON bytes in cacache for every key. */
|
|
29
44
|
export interface MetadataCacheRecord<T> {
|
|
30
45
|
readonly refreshedAt: number;
|
|
@@ -232,7 +247,7 @@ async function resolveCacheDir(options: {
|
|
|
232
247
|
readonly version?: string;
|
|
233
248
|
}): Promise<string> {
|
|
234
249
|
if (options.cacheDir) return options.cacheDir;
|
|
235
|
-
const version = options.version ?? (await
|
|
250
|
+
const version = options.version ?? (await packageIdentity()).version;
|
|
236
251
|
return defaultMetadataCacheDir(version);
|
|
237
252
|
}
|
|
238
253
|
|
package/src/policy.ts
CHANGED
|
@@ -9,19 +9,19 @@ import {
|
|
|
9
9
|
import { supportsToolsByFamily } from "./classify.ts";
|
|
10
10
|
|
|
11
11
|
const FAMILIES = [
|
|
12
|
-
"bge",
|
|
13
12
|
"claude",
|
|
14
|
-
"deepseek",
|
|
15
|
-
"gemini",
|
|
16
|
-
"gemma",
|
|
17
|
-
"glm",
|
|
18
13
|
"gpt",
|
|
19
|
-
"
|
|
20
|
-
"gte",
|
|
21
|
-
"inkling",
|
|
22
|
-
"kimi",
|
|
14
|
+
"gemini",
|
|
23
15
|
"llama",
|
|
16
|
+
"grok",
|
|
17
|
+
"deepseek",
|
|
24
18
|
"qwen",
|
|
19
|
+
"glm",
|
|
20
|
+
"kimi",
|
|
21
|
+
"gemma",
|
|
22
|
+
"inkling",
|
|
23
|
+
"bge",
|
|
24
|
+
"gte",
|
|
25
25
|
] as const;
|
|
26
26
|
|
|
27
27
|
const STANDARD: ReasoningEffort[] = ["low", "medium", "high"];
|
|
@@ -41,6 +41,12 @@ export function modelFamily(name: string): string | undefined {
|
|
|
41
41
|
return parseModelName(name)?.family;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
/** Rank a family by how major it is; unrecognized families sort last. */
|
|
45
|
+
export function modelFamilyRank(family: string): number {
|
|
46
|
+
const index = FAMILIES.indexOf(family as (typeof FAMILIES)[number]);
|
|
47
|
+
return index >= 0 ? index : FAMILIES.length;
|
|
48
|
+
}
|
|
49
|
+
|
|
44
50
|
/** Normalize a recognized model identity into family, version, and variant tokens. */
|
|
45
51
|
export function modelSearchQuery(name: string): string | undefined {
|
|
46
52
|
const parsed = parseModelName(name);
|