@dbx-tools/search 0.6.89 → 0.6.91

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 CHANGED
@@ -2,6 +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
 
5
+ export const PACKAGE_IDENTIFIER = "@dbx-tools/search";
5
6
  export * as client from "./src/client.ts";
6
7
  export * as config from "./src/config.ts";
7
8
  export * as indexTools from "./src/index-tools.ts";
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export declare const PACKAGE_IDENTIFIER = "@dbx-tools/search";
1
2
  export * as client from "./src/client.ts";
2
3
  export * as config from "./src/config.ts";
3
4
  export * as indexTools from "./src/index-tools.ts";
package/lib/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // GENERATED by projen watch - DO NOT EDIT.
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
+ export const PACKAGE_IDENTIFIER = "@dbx-tools/search";
4
5
  export * as client from "./src/client.js";
5
6
  export * as config from "./src/config.js";
6
7
  export * as indexTools from "./src/index-tools.js";
@@ -15,4 +16,4 @@ export { INDEX_ENV, DATABRICKS_INDEX_ENV, ENDPOINT_ENV, DEFAULT_MODE, DEFAULT_PA
15
16
  export { LakebaseSearchBackend } from "./src/lakebase.js";
16
17
  export { SearchPlugin, search } from "./src/plugin.js";
17
18
  export { SEARCH_TOOL_DESCRIPTION, UNIVERSAL_SEARCH_TOOL_DESCRIPTION, ADD_DOCUMENTS_TOOL_DESCRIPTION, CREATE_INDEX_TOOL_DESCRIPTION, SYNC_INDEX_TOOL_DESCRIPTION, searchToolSchema, universalSearchToolSchema, searchResultSchema, createIndexToolSchema, indexInfoSchema, syncIndexToolSchema } from "./src/schema.js";
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5SyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQ0FBaUMsRUFBRSw4QkFBOEIsRUFBRSw2QkFBNkIsRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCAqIGFzIGNsaWVudCBmcm9tIFwiLi9zcmMvY2xpZW50LnRzXCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgaW5kZXhUb29scyBmcm9tIFwiLi9zcmMvaW5kZXgtdG9vbHMudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlIGZyb20gXCIuL3NyYy9sYWtlYmFzZS50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luIGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCAqIGFzIHF1ZXJ5IGZyb20gXCIuL3NyYy9xdWVyeS50c1wiO1xuZXhwb3J0ICogYXMgcnVudGltZSBmcm9tIFwiLi9zcmMvcnVudGltZS50c1wiO1xuZXhwb3J0ICogYXMgc2NoZW1hIGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2wgZnJvbSBcIi4vc3JjL3Rvb2wudHNcIjtcbmV4cG9ydCB7IFNlYXJjaEluZGV4LCBTZWFyY2hDbGllbnQgfSBmcm9tIFwiLi9zcmMvY2xpZW50LnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlYXJjaE9wdGlvbnMsIFVuaXZlcnNhbFNlYXJjaE9wdGlvbnMsIEluZGV4SW5mbywgQ3JlYXRlSW5kZXhPcHRpb25zLCBFbnN1cmVFbmRwb2ludE9wdGlvbnMsIFByb3Zpc2lvbk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvY2xpZW50LnRzXCI7XG5leHBvcnQgeyBJTkRFWF9FTlYsIERBVEFCUklDS1NfSU5ERVhfRU5WLCBFTkRQT0lOVF9FTlYsIERFRkFVTFRfTU9ERSwgREVGQVVMVF9QQUdFX1NJWkUsIERFRkFVTFRfVElNRU9VVF9NUywgREVGQVVMVF9CQVNFX1BBVEgsIFNFQVJDSF9DT05GSUdfU0NIRU1BIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBTZWFyY2hJbmRleENvbmZpZywgU2VhcmNoUGx1Z2luQ29uZmlnLCBFbnN1cmVPblNldHVwQ29uZmlnLCBSZXNvbHZlZEluZGV4Q29uZmlnLCBSZXNvbHZlZFNlYXJjaENvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IExha2ViYXNlU2VhcmNoQmFja2VuZCB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBMYWtlYmFzZVNlYXJjaE9wdGlvbnMsIExha2ViYXNlUHJvdmlzaW9uT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9sYWtlYmFzZS50c1wiO1xuZXhwb3J0IHsgU2VhcmNoUGx1Z2luLCBzZWFyY2ggfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgdHlwZSB7IFF1ZXJ5UmVzcG9uc2VMaWtlIH0gZnJvbSBcIi4vc3JjL3F1ZXJ5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlYXJjaFJ1bnRpbWVPcHRpb25zLCBTZWFyY2hSdW50aW1lIH0gZnJvbSBcIi4vc3JjL3J1bnRpbWUudHNcIjtcbmV4cG9ydCB7IFNFQVJDSF9UT09MX0RFU0NSSVBUSU9OLCBVTklWRVJTQUxfU0VBUkNIX1RPT0xfREVTQ1JJUFRJT04sIEFERF9ET0NVTUVOVFNfVE9PTF9ERVNDUklQVElPTiwgQ1JFQVRFX0lOREVYX1RPT0xfREVTQ1JJUFRJT04sIFNZTkNfSU5ERVhfVE9PTF9ERVNDUklQVElPTiwgc2VhcmNoVG9vbFNjaGVtYSwgdW5pdmVyc2FsU2VhcmNoVG9vbFNjaGVtYSwgc2VhcmNoUmVzdWx0U2NoZW1hLCBjcmVhdGVJbmRleFRvb2xTY2hlbWEsIGluZGV4SW5mb1NjaGVtYSwgc3luY0luZGV4VG9vbFNjaGVtYSB9IGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2VhcmNoVG9vbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvdG9vbC50c1wiO1xuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5SyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQ0FBaUMsRUFBRSw4QkFBOEIsRUFBRSw2QkFBNkIsRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2VhcmNoXCI7XG5leHBvcnQgKiBhcyBjbGllbnQgZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGluZGV4VG9vbHMgZnJvbSBcIi4vc3JjL2luZGV4LXRvb2xzLnRzXCI7XG5leHBvcnQgKiBhcyBsYWtlYmFzZSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UudHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpbiBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgKiBhcyBxdWVyeSBmcm9tIFwiLi9zcmMvcXVlcnkudHNcIjtcbmV4cG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSBcIi4vc3JjL3J1bnRpbWUudHNcIjtcbmV4cG9ydCAqIGFzIHNjaGVtYSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyB0b29sIGZyb20gXCIuL3NyYy90b29sLnRzXCI7XG5leHBvcnQgeyBTZWFyY2hJbmRleCwgU2VhcmNoQ2xpZW50IH0gZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0IHR5cGUgeyBTZWFyY2hPcHRpb25zLCBVbml2ZXJzYWxTZWFyY2hPcHRpb25zLCBJbmRleEluZm8sIENyZWF0ZUluZGV4T3B0aW9ucywgRW5zdXJlRW5kcG9pbnRPcHRpb25zLCBQcm92aXNpb25PcHRpb25zIH0gZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0IHsgSU5ERVhfRU5WLCBEQVRBQlJJQ0tTX0lOREVYX0VOViwgRU5EUE9JTlRfRU5WLCBERUZBVUxUX01PREUsIERFRkFVTFRfUEFHRV9TSVpFLCBERUZBVUxUX1RJTUVPVVRfTVMsIERFRkFVTFRfQkFTRV9QQVRILCBTRUFSQ0hfQ09ORklHX1NDSEVNQSB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2VhcmNoSW5kZXhDb25maWcsIFNlYXJjaFBsdWdpbkNvbmZpZywgRW5zdXJlT25TZXR1cENvbmZpZywgUmVzb2x2ZWRJbmRleENvbmZpZywgUmVzb2x2ZWRTZWFyY2hDb25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBMYWtlYmFzZVNlYXJjaEJhY2tlbmQgfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgTGFrZWJhc2VTZWFyY2hPcHRpb25zLCBMYWtlYmFzZVByb3Zpc2lvbk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UudHNcIjtcbmV4cG9ydCB7IFNlYXJjaFBsdWdpbiwgc2VhcmNoIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBRdWVyeVJlc3BvbnNlTGlrZSB9IGZyb20gXCIuL3NyYy9xdWVyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTZWFyY2hSdW50aW1lT3B0aW9ucywgU2VhcmNoUnVudGltZSB9IGZyb20gXCIuL3NyYy9ydW50aW1lLnRzXCI7XG5leHBvcnQgeyBTRUFSQ0hfVE9PTF9ERVNDUklQVElPTiwgVU5JVkVSU0FMX1NFQVJDSF9UT09MX0RFU0NSSVBUSU9OLCBBRERfRE9DVU1FTlRTX1RPT0xfREVTQ1JJUFRJT04sIENSRUFURV9JTkRFWF9UT09MX0RFU0NSSVBUSU9OLCBTWU5DX0lOREVYX1RPT0xfREVTQ1JJUFRJT04sIHNlYXJjaFRvb2xTY2hlbWEsIHVuaXZlcnNhbFNlYXJjaFRvb2xTY2hlbWEsIHNlYXJjaFJlc3VsdFNjaGVtYSwgY3JlYXRlSW5kZXhUb29sU2NoZW1hLCBpbmRleEluZm9TY2hlbWEsIHN5bmNJbmRleFRvb2xTY2hlbWEgfSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlYXJjaFRvb2xPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3Rvb2wudHNcIjtcbiJdfQ==
package/lib/src/config.js CHANGED
@@ -199,4 +199,4 @@ export function resolveIndexName(config, reference) {
199
199
  export function indexConfigFor(config, name) {
200
200
  return config.indexes.find((i) => i.name === name || i.alias === name);
201
201
  }
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJeEQsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUM7QUFFeEMsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGdDQUFnQyxDQUFDO0FBRXJFLG9GQUFvRjtBQUNwRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUM7QUFFOUMsMkZBQTJGO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZSxRQUFRLENBQUM7QUFFakQseUZBQXlGO0FBQ3pGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUVwQywrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBRXpDLHVFQUF1RTtBQUN2RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUM7QUFxRy9DLGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBZ0I7SUFDL0MsSUFBSSxFQUFFLFFBQVE7SUFDZCxvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsV0FBVyxFQUFFLHVFQUF1RTtTQUNyRjtRQUNELE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRSxPQUFPO1lBQ2IsV0FBVyxFQUFFLDRF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Q0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUM1RCxPQUFPLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO0FBQ3JDLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsTUFBNEIsRUFDNUIsSUFBWTtJQUVaLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDekUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIEFJIFNlYXJjaCBwbHVnaW46IHRoZSB0eXBlZFxuICoge0BsaW5rIFNlYXJjaFBsdWdpbkNvbmZpZ30gKHRoZSBwbHVnaW4ncyBzbGljZSBvZiBBcHBLaXQgY29uZmlnKSwgdGhlIEpTT05cbiAqIFNjaGVtYSB0aGUgbWFuaWZlc3QgcHVibGlzaGVzIGZvciBpdCwgYW5kIHtAbGluayByZXNvbHZlU2VhcmNoQ29uZmlnfVxuICogd2hpY2ggbGF5ZXJzIHRoYXQgY29uZmlnIG92ZXIgZW52aXJvbm1lbnQgZGVmYXVsdHMgaW50byB0aGUgY29uY3JldGVcbiAqIHtAbGluayBSZXNvbHZlZFNlYXJjaENvbmZpZ30gdGhlIHJ1bnRpbWUsIGNsaWVudCwgdG9vbHMsIGFuZCByb3V0ZXMgcmVhZC5cbiAqXG4gKiBUaGUgZGVzaWduIGdvYWwgaXMgXCJvbmUgaW5kZXgsIHplcm8gY29uZmlnXCI6IG5hbWUgYSBkZWZhdWx0IGluZGV4IChvciBzZXRcbiAqIGBEQVRBQlJJQ0tTX1ZFQ1RPUl9TRUFSQ0hfSU5ERVhgKSBhbmQgZXZlcnl0aGluZyBlbHNlIC0gdGhlIGNvbHVtbnMgdG9cbiAqIHJldHVybiwgdGhlIHBhZ2Ugc2l6ZSwgdGhlIG1hdGNoIG1vZGUsIHRoZSBtb3VudGVkIHJvdXRlIHBhdGgsIHRoZSBlbWJlZGRpbmdcbiAqIG1vZGVsIHVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbmRleCAtIGhhcyBhIHNlbnNpYmxlIGRlZmF1bHQgdGhhdCBjYW4gYmVcbiAqIG92ZXJyaWRkZW4gd2hlbiBhIGRlcGxveW1lbnQgbmVlZHMgdG8gZ28gZGVlcGVyLlxuICpcbiAqIFdoaWNoIGluZGV4IC8gZW5kcG9pbnQgaXMgdXNlZCBmb2xsb3dzIHRoZSBzdGFuZGFyZCBwcmVjZWRlbmNlOiBleHBsaWNpdFxuICogcGx1Z2luIGNvbmZpZywgdGhlbiBlbnZpcm9ubWVudCwgdGhlbiBhIGRlZmF1bHQuXG4gKlxuICogRW52IGZhbGxiYWNrczogYERBVEFCUklDS1NfVkVDVE9SX1NFQVJDSF9JTkRFWGAgKHRoZSBkZWZhdWx0IGluZGV4KSxcbiAqIGBTRUFSQ0hfSU5ERVhgLCBgU0VBUkNIX0VORFBPSU5UYCwgYFNFQVJDSF9DT0xVTU5TYCxcbiAqIGBTRUFSQ0hfUEFHRV9TSVpFYCwgYFNFQVJDSF9NT0RFYCwgYFNFQVJDSF9FTUJFRERJTkdfTU9ERUxgLFxuICogYFNFQVJDSF9USU1FT1VUX01TYCwgYFNFQVJDSF9XUklURWAuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IENvbmZpZ3VyYXRpb25FcnJvciwgdHlwZSBCYXNlUGx1Z2luQ29uZmlnIH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgY29uZmlnIGFzIGNvcmVDb25maWcgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBvYmplY3QsIHN0cmluZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IFNlYXJjaERvY3VtZW50LCBTZWFyY2hNb2RlIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLXNlYXJjaFwiO1xuaW1wb3J0IHR5cGUgeyBKU09OU2NoZW1hNyB9IGZyb20gXCJqc29uLXNjaGVtYVwiO1xuXG4vKiogVGhlIGRlZmF1bHQgaW5kZXgsIGhvbm9yaW5nIEFwcEtpdCdzIHN0YW5kYXJkIFZlY3RvciBTZWFyY2ggYmluZGluZyBuYW1lLiAqL1xuZXhwb3J0IGNvbnN0IElOREVYX0VOViA9IFwiU0VBUkNIX0lOREVYXCI7XG5cbi8qKiBBcHBLaXQncyBzdGFuZGFyZCBlbnZpcm9ubWVudCBuYW1lIGZvciBhIFZlY3RvciBTZWFyY2ggaW5kZXggYmluZGluZy4gKi9cbmV4cG9ydCBjb25zdCBEQVRBQlJJQ0tTX0lOREVYX0VOViA9IFwiREFUQUJSSUNLU19WRUNUT1JfU0VBUkNIX0lOREVYXCI7XG5cbi8qKiBEZWRpY2F0ZWQgb3ZlcnJpZGUgZm9yIHRoZSBWZWN0b3IgU2VhcmNoIHNlcnZpbmcgZW5kcG9pbnQgdGhhdCBob3N0cyBpbmRleGVzLiAqL1xuZXhwb3J0IGNvbnN0IEVORFBPSU5UX0VOViA9IFwiU0VBUkNIX0VORFBPSU5UXCI7XG5cbi8qKiBEZWZhdWx0IG1hdGNoIG1vZGUgd2hlbiBhIHJlcXVlc3QgZG9lcyBub3QgbmFtZSBvbmUuIEh5YnJpZCBzdWl0cyBtb3N0IHNlYXJjaCBib3hlcy4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01PREU6IFNlYXJjaE1vZGUgPSBcImh5YnJpZFwiO1xuXG4vKiogRGVmYXVsdCBudW1iZXIgb2YgaGl0cyBhIHNlYXJjaCByZXR1cm5zIChhIGdvb2QgYXV0b2NvbXBsZXRlIC8gcmVzdWx0cy1saXN0IHNpemUpLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFHRV9TSVpFID0gMTA7XG5cbi8qKiBEZWZhdWx0IHBlci1jYWxsIHRpbWVvdXQgZm9yIGEgc2VhcmNoIC8gaW5kZXggb3BlcmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDMwXzAwMDtcblxuLyoqIEJhc2UgcGF0aCB0aGUgcGx1Z2luIG1vdW50cyBpdHMgcm91dGVzIHVuZGVyLCB1bmxlc3Mgb3ZlcnJpZGRlbi4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBU0VfUEFUSCA9IFwiL2FwaS9zZWFyY2hcIjtcblxuLyoqXG4gKiBBIGNvbmZpZ3VyZWQgaW5kZXggdGhlIHBsdWdpbiBrbm93cyBhYm91dCBhaGVhZCBvZiB0aW1lLiBPbmx5IGBuYW1lYCAob3JcbiAqIGBhbGlhc2ApIGlzIHJlcXVpcmVkOyB0aGUgcmVzdCBpcyByZXNvbHZlZCBmcm9tIHRoZSBsaXZlIGluZGV4IGRlZmluaXRpb25cbiAqIHdoZW4gb21pdHRlZCwgc28gYSBkZXBsb3ltZW50IGNhbiByZWdpc3RlciBgeyBuYW1lIH1gIGFuZCBsZXQgdGhlIHBsdWdpbiBmaWxsXG4gKiBpbiB0aGUgcHJpbWFyeSBrZXkgYW5kIGNvbHVtbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoSW5kZXhDb25maWcge1xuICAvKiogVW5pdHkgQ2F0YWxvZyBuYW1lIG9mIHRoZSBpbmRleCAoY2F0YWxvZy5zY2hlbWEuaW5kZXgpLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTaG9ydCBhbGlhcyBhIGNhbGxlciBtYXkgdXNlIGluIHBsYWNlIG9mIGBuYW1lYCAoZGVmYXVsdHMgdG8gdGhlIGxhc3QgbmFtZSBzZWdtZW50KS4gKi9cbiAgYWxpYXM/OiBzdHJpbmc7XG4gIC8qKiBQcmltYXJ5LWtleSBjb2x1bW4uIFJlc29sdmVkIGZyb20gdGhlIGluZGV4IGRlZmluaXRpb24gd2hlbiBvbWl0dGVkLiAqL1xuICBwcmltYXJ5S2V5Pzogc3RyaW5nO1xuICAvKiogQ29sdW1ucyB0byByZXR1cm4gcGVyIGhpdCwgaW4gZGlzcGxheSBvcmRlci4gRGVmYXVsdHMgdG8gZXZlcnkgaW5kZXhlZCBjb2x1bW4uICovXG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaGUgQUkgU2VhcmNoIHBsdWdpbidzIHNsaWNlIG9mIEFwcEtpdCBjb25maWcuIEV2ZXJ5IGZpZWxkIGlzIG9wdGlvbmFsIC0gdGhlXG4gKiBwbHVnaW4gd29ya3Mgd2l0aCBub3RoaW5nIGJ1dCBhbiBpbmRleCBuYW1lIGluIHRoZSBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hQbHVnaW5Db25maWcgZXh0ZW5kcyBCYXNlUGx1Z2luQ29uZmlnIHtcbiAgLyoqIFRoZSBkZWZhdWx0IGluZGV4IHNlYXJjaGVkIHdoZW4gYSByZXF1ZXN0IG9taXRzIG9uZSAobmFtZSBvciBhbGlhcykuICovXG4gIGluZGV4Pzogc3RyaW5nO1xuICAvKiogSW5kZXhlcyB0aGUgcGx1Z2luIHNob3VsZCBrbm93IGFib3V0IChmb3IgYWxpYXNlcywgdW5pdmVyc2FsIHNlYXJjaCwgYW5kIHRoZSBVSSBjYXRhbG9ndWUpLiAqL1xuICBpbmRleGVzPzogQXJyYXk8c3RyaW5nIHwgU2VhcmNoSW5kZXhDb25maWc+O1xuICAvKiogVGhlIFZlY3RvciBTZWFyY2ggc2VydmluZyBlbmRwb2ludCBpbmRleGVzIGxpdmUgb24gKG9ubHkgbmVlZGVkIHRvIGNyZWF0ZSBhbiBpbmRleCkuICovXG4gIGVuZHBvaW50Pzogc3RyaW5nO1xuICAvKiogRGVmYXVsdCBjb2x1bW5zIHRvIHJldHVybiBwZXIgaGl0LiBGYWxscyBiYWNrIHRvIGVhY2ggaW5kZXgncyBvd24gY29sdW1ucy4gKi9cbiAgY29sdW1ucz86IHN0cmluZ1tdO1xuICAvKiogRGVmYXVsdCBudW1iZXIgb2YgaGl0cyBhIHNlYXJjaCByZXR1cm5zLiAqL1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqIERlZmF1bHQgbWF0Y2ggbW9kZS4gKi9cbiAgbW9kZT86IFNlYXJjaE1vZGU7XG4gIC8qKiBFbWJlZGRpbmcgbW9kZWwgZW5kcG9pbnQgdXNlZCB3aGVuIHRoZSBwbHVnaW4gQ1JFQVRFUyBhIERlbHRhIFN5bmMgaW5kZXguIEZ1enp5LXJlc29sdmVkLiAqL1xuICBlbWJlZGRpbmdNb2RlbD86IHN0cmluZztcbiAgLyoqIFBlci1jYWxsIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiAqL1xuICB0aW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKiBFbmFibGUgdGhlIHdyaXRlIHN1cmZhY2UgKGBhZGRfZG9jdW1lbnRzYCB0b29sICsgYFBPU1QgL2RvY3VtZW50c2ApLiBPZmYgYnkgZGVmYXVsdC4gKi9cbiAgYWxsb3dXcml0ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQcm92aXNpb24gYSBSRUFMIGluZGV4IGF0IGJvb3Q6IGVuc3VyZSB0aGUgZW5kcG9pbnQgKyBpbmRleCBleGlzdCBhbmQgc2VlZFxuICAgKiBkb2N1bWVudHMgd2hlbiB0aGUgaW5kZXggaXMgZW1wdHkuIFJ1bnMgaW4gdGhlIGJhY2tncm91bmQgZHVyaW5nIGBzZXR1cCgpYFxuICAgKiAoYSBzbG93IGZpcnN0LXRpbWUgZW5kcG9pbnQvaW5kZXggYnVpbGQgbmV2ZXIgYmxvY2tzIHRoZSBzZXJ2ZXIpIHVzaW5nIHRoZVxuICAgKiBib290LXRpbWUgU0RLIGF1dGggKGVudiAvIGNvbmZpZyBwcm9maWxlKS4gSWRlbXBvdGVudCAtIHNhZmUgZXZlcnkgYm9vdC5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgYSBNQU5BR0VEIGRpcmVjdC1hY2Nlc3MgaW5kZXggKERhdGFicmlja3MgZW1iZWRzIHRoZSB0ZXh0XG4gICAqIGNvbHVtbiksIHNvIGBkb2N1bWVudHNgIGFyZSBwbGFpbiByb3dzIGFuZCBzZWFyY2gtYnktdGV4dCB3b3JrcyB3aXRoIG5vXG4gICAqIERlbHRhIHRhYmxlLCBubyB3YXJlaG91c2UsIGFuZCBubyB2ZWN0b3JzIHRvIGNvbXB1dGUuIFBvaW50IGl0IGF0IGFcbiAgICogYHNvdXJjZVRhYmxlYCB0byBwcm92aXNpb24gYSBEZWx0YSBTeW5jIGluZGV4IGluc3RlYWQuXG4gICAqL1xuICBlbnN1cmVPblNldHVwPzogRW5zdXJlT25TZXR1cENvbmZpZztcbn1cblxuLyoqIEJvb3QtdGltZSBwcm92aXNpb25pbmcgKyBzZWVkaW5nIGZvciBhIHNpbmdsZSBpbmRleCAoc2VlIGBlbnN1cmVPblNldHVwYCkuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuc3VyZU9uU2V0dXBDb25maWcge1xuICAvKiogVUMgbmFtZSBvZiB0aGUgaW5kZXggdG8gZW5zdXJlIChjYXRhbG9nLnNjaGVtYS5pbmRleCkuIERlZmF1bHRzIHRvIHRoZSBwbHVnaW4ncyBgaW5kZXhgLiAqL1xuICBpbmRleD86IHN0cmluZztcbiAgLyoqIFZlY3RvciBTZWFyY2ggZW5kcG9pbnQgdG8gaG9zdCBpdCBvbi4gRGVmYXVsdHMgdG8gdGhlIHBsdWdpbidzIGBlbmRwb2ludGAuICovXG4gIGVuZHBvaW50Pzogc3RyaW5nO1xuICAvKiogUHJpbWFyeS1rZXkgY29sdW1uLiBEZWZhdWx0cyB0byBgaWRgLiAqL1xuICBwcmltYXJ5S2V5Pzogc3RyaW5nO1xuICAvKiogVGV4dCBjb2x1bW4gRGF0YWJyaWNrcyBlbWJlZHMgKG1hbmFnZWQgZGlyZWN0LWFjY2VzcykuIERlZmF1bHRzIHRvIGB0ZXh0YC4gKi9cbiAgdGV4dENvbHVtbj86IHN0cmluZztcbiAgLyoqIEVtYmVkZGluZyBtb2RlbCBlbmRwb2ludC4gRnV6enktbWF0Y2hlZDsgZGVmYXVsdHMgdG8gdGhlIGJlc3QgZW1iZWRkaW5nIGVuZHBvaW50LiAqL1xuICBlbWJlZGRpbmdNb2RlbD86IHN0cmluZztcbiAgLyoqIEZvciBhIERlbHRhIFN5bmMgaW5kZXggaW5zdGVhZCBvZiBtYW5hZ2VkIGRpcmVjdC1hY2Nlc3M6IHRoZSBzb3VyY2UgRGVsdGEgdGFibGUuICovXG4gIHNvdXJjZVRhYmxlPzogc3RyaW5nO1xuICAvKiogQ29sdW1uIC0+IHR5cGUgbWFwIGZvciB0aGUgbWFuYWdlZCBkaXJlY3QtYWNjZXNzIGBzY2hlbWFfanNvbmAuIEluZmVycmVkIGZyb20gYGRvY3VtZW50c2Agd2hlbiBvbWl0dGVkLiAqL1xuICBzY2hlbWE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogRG9jdW1lbnRzIHRvIHNlZWQgd2hlbiB0aGUgaW5kZXggaXMgZW1wdHkuIFBsYWluIGB7IGlkLCB0ZXh0LCAuLi4gfWAgcm93cyBmb3IgYSBtYW5hZ2VkIGluZGV4LiAqL1xuICBkb2N1bWVudHM/OiBTZWFyY2hEb2N1bWVudFtdO1xuICAvKiogTWF4IHRpbWUgdG8gd2FpdCBmb3IgZW5kcG9pbnQgKyBpbmRleCByZWFkaW5lc3MuIERlZmF1bHRzIHRvIDIwIG1pbnV0ZXMuICovXG4gIHRpbWVvdXRNcz86IG51bWJlcjtcbn1cblxuLyoqIEEgZnVsbHkgcmVzb2x2ZWQgaW5kZXggZW50cnkgKHRoZSBwbHVnaW4ta25vd24gZm9ybSkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkSW5kZXhDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFsaWFzOiBzdHJpbmc7XG4gIHByaW1hcnlLZXk/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqIFRoZSBjb25jcmV0ZSBjb25maWcgdGhlIHJ1bnRpbWUsIGNsaWVudCwgdG9vbHMsIGFuZCByb3V0ZXMgcmVhZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRTZWFyY2hDb25maWcge1xuICBkZWZhdWx0SW5kZXg/OiBzdHJpbmc7XG4gIGluZGV4ZXM6IFJlc29sdmVkSW5kZXhDb25maWdbXTtcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbiAgcGFnZVNpemU6IG51bWJlcjtcbiAgbW9kZTogU2VhcmNoTW9kZTtcbiAgZW1iZWRkaW5nTW9kZWw/OiBzdHJpbmc7XG4gIGJhc2VQYXRoOiBzdHJpbmc7XG4gIHRpbWVvdXRNczogbnVtYmVyO1xuICBhbGxvd1dyaXRlOiBib29sZWFuO1xuICBlbnN1cmVPblNldHVwPzogRW5zdXJlT25TZXR1cENvbmZpZztcbn1cblxuLyoqIEpTT04gU2NoZW1hIHRoZSBwbHVnaW4gbWFuaWZlc3QgcHVibGlzaGVzIGZvciB7QGxpbmsgU2VhcmNoUGx1Z2luQ29uZmlnfS4gKi9cbmV4cG9ydCBjb25zdCBTRUFSQ0hfQ09ORklHX1NDSEVNQTogSlNPTlNjaGVtYTcgPSB7XG4gIHR5cGU6IFwib2JqZWN0XCIsXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgaW5kZXg6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJEZWZhdWx0IGluZGV4IHRvIHNlYXJjaCAoY2F0YWxvZy5zY2hlbWEuaW5kZXggb3IgYSBjb25maWd1cmVkIGFsaWFzKS5cIixcbiAgICB9LFxuICAgIGluZGV4ZXM6IHtcbiAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkluZGV4ZXMgdGhlIHBsdWdpbiBrbm93cyBhYm91dCwgZm9yIGFsaWFzZXMsIHVuaXZlcnNhbCBzZWFyY2gsIGFuZCB0aGUgVUkuXCIsXG4gICAgICBpdGVtczoge1xuICAgICAgICBvbmVPZjogW1xuICAgICAgICAgIHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICByZXF1aXJlZDogW1wibmFtZVwiXSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGFsaWFzOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgcHJpbWFyeUtleTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGNvbHVtbnM6IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0gfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlbmRwb2ludDoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlZlY3RvciBTZWFyY2ggc2VydmluZyBlbmRwb2ludCBpbmRleGVzIGxpdmUgb24gKG5lZWRlZCBvbmx5IHRvIGNyZWF0ZSBvbmUpLlwiLFxuICAgIH0sXG4gICAgY29sdW1uczoge1xuICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgaXRlbXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgZGVzY3JpcHRpb246IFwiRGVmYXVsdCBjb2x1bW5zIHRvIHJldHVybi5cIixcbiAgICB9LFxuICAgIHBhZ2VTaXplOiB7IHR5cGU6IFwibnVtYmVyXCIsIGRlc2NyaXB0aW9uOiBcIkRlZmF1bHQgbnVtYmVyIG9mIGhpdHMgcGVyIHNlYXJjaC5cIiB9LFxuICAgIG1vZGU6IHsgZW51bTogW1wiaHlicmlkXCIsIFwidmVjdG9yXCIsIFwia2V5d29yZFwiXSwgZGVzY3JpcHRpb246IFwiRGVmYXVsdCBtYXRjaCBtb2RlLlwiIH0sXG4gICAgZW1iZWRkaW5nTW9kZWw6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJFbWJlZGRpbmcgZW5kcG9pbnQgdXNlZCB3aGVuIGNyZWF0aW5nIGEgRGVsdGEgU3luYyBpbmRleCAoZnV6enktbWF0Y2hlZCkuXCIsXG4gICAgfSxcbiAgICB0aW1lb3V0TXM6IHsgdHlwZTogXCJudW1iZXJcIiwgZGVzY3JpcHRpb246IFwiUGVyLWNhbGwgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXCIgfSxcbiAgICBhbGxvd1dyaXRlOiB7XG4gICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVuYWJsZSB0aGUgZG9jdW1lbnQgd3JpdGUgc3VyZmFjZSAoYWRkX2RvY3VtZW50cyB0b29sICsgcm91dGUpLlwiLFxuICAgIH0sXG4gICAgZW5zdXJlT25TZXR1cDoge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlByb3Zpc2lvbiBhIHJlYWwgaW5kZXggYXQgYm9vdDogZW5zdXJlIHRoZSBlbmRwb2ludCArIGluZGV4IGV4aXN0IGFuZCBzZWVkIFwiICtcbiAgICAgICAgXCJkb2N1bWVudHMgd2hlbiBlbXB0eS4gUnVucyBpbiB0aGUgYmFja2dyb3VuZCBkdXJpbmcgc2V0dXAgdXNpbmcgYm9vdC10aW1lIGF1dGguXCIsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW5kZXg6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBlbmRwb2ludDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHByaW1hcnlLZXk6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICB0ZXh0Q29sdW1uOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgZW1iZWRkaW5nTW9kZWw6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBzb3VyY2VUYWJsZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHNjaGVtYTogeyB0eXBlOiBcIm9iamVjdFwiLCBhZGRpdGlvbmFsUHJvcGVydGllczogeyB0eXBlOiBcInN0cmluZ1wiIH0gfSxcbiAgICAgICAgZG9jdW1lbnRzOiB7IHR5cGU6IFwiYXJyYXlcIiwgaXRlbXM6IHsgdHlwZTogXCJvYmplY3RcIiwgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUgfSB9LFxuICAgICAgICB0aW1lb3V0TXM6IHsgdHlwZTogXCJudW1iZXJcIiB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuLyoqIERlcml2ZSB0aGUgZGVmYXVsdCBhbGlhcyBmb3IgYW4gaW5kZXggbmFtZSAoaXRzIGxhc3QgZG90dGVkIHNlZ21lbnQpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRBbGlhcyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzZWdtZW50cyA9IG5hbWUuc3BsaXQoXCIuXCIpLmZpbHRlcihCb29sZWFuKTtcbiAgcmV0dXJuIHNlZ21lbnRzLmxlbmd0aCA+IDAgPyBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXSA6IG5hbWU7XG59XG5cbi8qKiBOb3JtYWxpemUgYSBjb25maWcgaW5kZXggZW50cnkgKHN0cmluZyBvciBvYmplY3QpIGludG8gYSB7QGxpbmsgUmVzb2x2ZWRJbmRleENvbmZpZ30uICovXG5mdW5jdGlvbiB0b1Jlc29sdmVkSW5kZXgoZW50cnk6IHN0cmluZyB8IFNlYXJjaEluZGV4Q29uZmlnKTogUmVzb2x2ZWRJbmRleENvbmZpZyB8IG51bGwge1xuICBjb25zdCByYXcgPSB0eXBlb2YgZW50cnkgPT09IFwic3RyaW5nXCIgPyB7IG5hbWU6IGVudHJ5IH0gOiBlbnRyeTtcbiAgY29uc3QgbmFtZSA9IHN0cmluZy50cmltVG9OdWxsKHJhdy5uYW1lKTtcbiAgaWYgKG5hbWUgPT09IG51bGwpIHJldHVybiBudWxsO1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgYWxpYXM6IHN0cmluZy50cmltVG9OdWxsKHJhdy5hbGlhcykgPz8gZGVmYXVsdEFsaWFzKG5hbWUpLFxuICAgIC4uLihyYXcucHJpbWFyeUtleSA/IHsgcHJpbWFyeUtleTogcmF3LnByaW1hcnlLZXkgfSA6IHt9KSxcbiAgICAuLi4ocmF3LmNvbHVtbnMgJiYgcmF3LmNvbHVtbnMubGVuZ3RoID4gMCA/IHsgY29sdW1uczogWy4uLnJhdy5jb2x1bW5zXSB9IDoge30pLFxuICB9O1xufVxuXG4vKiogUGFyc2UgYW5kIHZhbGlkYXRlIGEge0BsaW5rIFNlYXJjaE1vZGV9IGZyb20gY29uZmlnIG9yIGFuIGVudiB2YXIuICovXG5mdW5jdGlvbiByZXNvbHZlTW9kZShjb25maWd1cmVkOiBTZWFyY2hNb2RlIHwgdW5kZWZpbmVkKTogU2VhcmNoTW9kZSB7XG4gIGNvbnN0IHJhdyA9IGNvbmZpZ3VyZWQgPz8gY29yZUNvbmZpZy50ZXh0KFwiU0VBUkNIX01PREVcIiwgY29yZUNvbmZpZy5FTlZfT05MWSk7XG4gIGlmIChyYXcgPT09IHVuZGVmaW5lZCkgcmV0dXJuIERFRkFVTFRfTU9ERTtcbiAgaWYgKHJhdyAhPT0gXCJoeWJyaWRcIiAmJiByYXcgIT09IFwidmVjdG9yXCIgJiYgcmF3ICE9PSBcImtleXdvcmRcIikge1xuICAgIHRocm93IG5ldyBDb25maWd1cmF0aW9uRXJyb3IoXG4gICAgICAnbW9kZSBtdXN0IGJlIFwiaHlicmlkXCIsIFwidmVjdG9yXCIgb3IgXCJrZXl3b3JkXCIgKGVudjogU0VBUkNIX01PREUpJyxcbiAgICAgIHsgY29udGV4dDogeyBmaWVsZDogXCJtb2RlXCIsIGVudlZhcjogXCJTRUFSQ0hfTU9ERVwiIH0gfSxcbiAgICApO1xuICB9XG4gIHJldHVybiByYXc7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBwbHVnaW4gY29uZmlnIG92ZXIgZW52aXJvbm1lbnQgZGVmYXVsdHMgaW50byB0aGUgY29uY3JldGVcbiAqIHtAbGluayBSZXNvbHZlZFNlYXJjaENvbmZpZ30uIFRoZSBkZWZhdWx0IGluZGV4IGlzIHVuaW9uZWQgaW50byB0aGUga25vd25cbiAqIGluZGV4ZXMgc28gaXQgYWx3YXlzIGFwcGVhcnMgaW4gdGhlIGNhdGFsb2d1ZSwgYWxpYXNlcyBhcmUgZGUtZHVwbGljYXRlZCxcbiAqIGFuZCBhIGJhZCBtb2RlIHRocm93cyBhIHtAbGluayBDb25maWd1cmF0aW9uRXJyb3J9IG5hbWluZyB0aGUgZmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlU2VhcmNoQ29uZmlnKGNvbmZpZzogU2VhcmNoUGx1Z2luQ29uZmlnID0ge30pOiBSZXNvbHZlZFNlYXJjaENvbmZpZyB7XG4gIGNvbnN0IGRlZmF1bHRJbmRleFJhdyA9IGNvcmVDb25maWcuc3RyaW5nKFxuICAgIGNvbmZpZy5pbmRleCxcbiAgICBbSU5ERVhfRU5WLCBEQVRBQlJJQ0tTX0lOREVYX0VOVl0sXG4gICAgY29yZUNvbmZpZy5FTlZfT05MWSxcbiAgKTtcblxuICBjb25zdCBjb25maWd1cmVkID0gKGNvbmZpZy5pbmRleGVzID8/IFtdKVxuICAgIC5tYXAodG9SZXNvbHZlZEluZGV4KVxuICAgIC5maWx0ZXIoKGVudHJ5KTogZW50cnkgaXMgUmVzb2x2ZWRJbmRleENvbmZpZyA9PiBlbnRyeSAhPT0gbnVsbCk7XG5cbiAgLy8gRW5zdXJlIHRoZSBkZWZhdWx0IGluZGV4IGlzIHJlcHJlc2VudGVkIGluIHRoZSBrbm93biBzZXQuXG4gIGlmIChkZWZhdWx0SW5kZXhSYXcgJiYgIWNvbmZpZ3VyZWQuc29tZSgoaSkgPT4gaS5uYW1lID09PSBkZWZhdWx0SW5kZXhSYXcpKSB7XG4gICAgY29uc3QgZW52Q29sdW1ucyA9IGNvcmVDb25maWcubGlzdChcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIFwiU0VBUkNIX0NPTFVNTlNcIixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNvcmVDb25maWcuRU5WX09OTFksXG4gICAgKTtcbiAgICBjb25maWd1cmVkLnVuc2hpZnQoe1xuICAgICAgbmFtZTogZGVmYXVsdEluZGV4UmF3LFxuICAgICAgYWxpYXM6IGRlZmF1bHRBbGlhcyhkZWZhdWx0SW5kZXhSYXcpLFxuICAgICAgLi4uKGVudkNvbHVtbnMubGVuZ3RoID4gMCA/IHsgY29sdW1uczogZW52Q29sdW1ucyB9IDoge30pLFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3Qgc2VlbkFsaWFzZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgaW5kZXhlcyA9IGNvbmZpZ3VyZWQubWFwKChlbnRyeSkgPT4ge1xuICAgIGxldCBhbGlhcyA9IGVudHJ5LmFsaWFzO1xuICAgIHdoaWxlIChzZWVuQWxpYXNlcy5oYXMoYWxpYXMpKSBhbGlhcyA9IGAke2FsaWFzfV9gO1xuICAgIHNlZW5BbGlhc2VzLmFkZChhbGlhcyk7XG4gICAgcmV0dXJuIHsgLi4uZW50cnksIGFsaWFzIH07XG4gIH0pO1xuXG4gIGNvbnN0IGRlZmF1bHRJbmRleCA9IGRlZmF1bHRJbmRleFJhdyA/PyBpbmRleGVzWzBdPy5uYW1lO1xuICBjb25zdCBjb2x1bW5zID0gY29yZUNvbmZpZy5saXN0KFxuICAgIGNvbmZpZy5jb2x1bW5zLFxuICAgIFwiU0VBUkNIX0NPTFVNTlNcIixcbiAgICB1bmRlZmluZWQsXG4gICAgY29yZUNvbmZpZy5FTlZfT05MWSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm9iamVjdC5vcHRpb25hbChcImRlZmF1bHRJbmRleFwiLCBkZWZhdWx0SW5kZXgpLFxuICAgIGluZGV4ZXMsXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgXCJlbmRwb2ludFwiLFxuICAgICAgY29yZUNvbmZpZy5zdHJpbmcoY29uZmlnLmVuZHBvaW50LCBFTkRQT0lOVF9FTlYsIGNvcmVDb25maWcuRU5WX09OTFkpLFxuICAgICksXG4gICAgLi4uKGNvbHVtbnMubGVuZ3RoID4gMCA/IHsgY29sdW1ucyB9IDoge30pLFxuICAgIHBhZ2VTaXplOiBjb3JlQ29uZmlnLnBvc2l0aXZlSW50KFxuICAgICAgY29uZmlnLnBhZ2VTaXplLFxuICAgICAgXCJTRUFSQ0hfUEFHRV9TSVpFXCIsXG4gICAgICBERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgIGNvcmVDb25maWcuRU5WX09OTFksXG4gICAgKSxcbiAgICBtb2RlOiByZXNvbHZlTW9kZShjb25maWcubW9kZSksXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgXCJlbWJlZGRpbmdNb2RlbFwiLFxuICAgICAgY29yZUNvbmZpZy5zdHJpbmcoY29uZmlnLmVtYmVkZGluZ01vZGVsLCBcIlNFQVJDSF9FTUJFRERJTkdfTU9ERUxcIiwgY29yZUNvbmZpZy5FTlZfT05MWSksXG4gICAgKSxcbiAgICBiYXNlUGF0aDogREVGQVVMVF9CQVNFX1BBVEgsXG4gICAgdGltZW91dE1zOiBjb3JlQ29uZmlnLnBvc2l0aXZlSW50KFxuICAgICAgY29uZmlnLnRpbWVvdXRNcyxcbiAgICAgIFwiU0VBUkNIX1RJTUVPVVRfTVNcIixcbiAgICAgIERFRkFVTFRfVElNRU9VVF9NUyxcbiAgICAgIGNvcmVDb25maWcuRU5WX09OTFksXG4gICAgKSxcbiAgICBhbGxvd1dyaXRlOlxuICAgICAgY29yZUNvbmZpZy5ib29sZWFuKGNvbmZpZy5hbGxvd1dyaXRlLCBcIlNFQVJDSF9XUklURVwiLCBjb3JlQ29uZmlnLkVOVl9PTkxZKSA/PyBmYWxzZSxcbiAgICAuLi4oY29uZmlnLmVuc3VyZU9uU2V0dXAgPyB7IGVuc3VyZU9uU2V0dXA6IGNvbmZpZy5lbnN1cmVPblNldHVwIH0gOiB7fSksXG4gIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIGNhbGxlci1zdXBwbGllZCBpbmRleCByZWZlcmVuY2UgKGEgZnVsbCBVQyBuYW1lIG9yIGEgY29uZmlndXJlZFxuICogYWxpYXMpIGludG8gYSBjb25jcmV0ZSBpbmRleCBuYW1lLiBGYWxscyBiYWNrIHRvIHRoZSBkZWZhdWx0IGluZGV4IHdoZW4gdGhlXG4gKiByZWZlcmVuY2UgaXMgZW1wdHkuIFJldHVybnMgYG51bGxgIHdoZW4gbm90aGluZyBjYW4gYmUgcmVzb2x2ZWQgc28gY2FsbGVyc1xuICogcmFpc2UgYSBzdGFibGUsIHVzZXItZmFjaW5nIGVycm9yIHJhdGhlciB0aGFuIGNhbGxpbmcgYSBwaGFudG9tIGluZGV4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUluZGV4TmFtZShcbiAgY29uZmlnOiBSZXNvbHZlZFNlYXJjaENvbmZpZyxcbiAgcmVmZXJlbmNlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgcmVmID0gc3RyaW5nLnRyaW1Ub051bGwocmVmZXJlbmNlKTtcbiAgaWYgKHJlZiA9PT0gbnVsbCkgcmV0dXJuIGNvbmZpZy5kZWZhdWx0SW5kZXggPz8gbnVsbDtcbiAgY29uc3QgYnlBbGlhcyA9IGNvbmZpZy5pbmRleGVzLmZpbmQoKGkpID0+IGkuYWxpYXMgPT09IHJlZiB8fCBpLm5hbWUgPT09IHJlZik7XG4gIGlmIChieUFsaWFzKSByZXR1cm4gYnlBbGlhcy5uYW1lO1xuICAvLyBBY2NlcHQgYW4gdW5yZWdpc3RlcmVkIGJ1dCBmdWxseS1xdWFsaWZpZWQgVUMgbmFtZSAodGhyZWUgZG90dGVkIHBhcnRzKS5cbiAgaWYgKHJlZi5zcGxpdChcIi5cIikuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aCA9PT0gMykgcmV0dXJuIHJlZjtcbiAgcmV0dXJuIGNvbmZpZy5kZWZhdWx0SW5kZXggPz8gbnVsbDtcbn1cblxuLyoqIFRoZSBrbm93biBjb25maWcgZm9yIGFuIGluZGV4IG5hbWUsIHdoZW4gdGhlIHBsdWdpbiB3YXMgdG9sZCBhYm91dCBpdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleENvbmZpZ0ZvcihcbiAgY29uZmlnOiBSZXNvbHZlZFNlYXJjaENvbmZpZyxcbiAgbmFtZTogc3RyaW5nLFxuKTogUmVzb2x2ZWRJbmRleENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjb25maWcuaW5kZXhlcy5maW5kKChpKSA9PiBpLm5hbWUgPT09IG5hbWUgfHwgaS5hbGlhcyA9PT0gbmFtZSk7XG59XG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJeEQsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUM7QUFFeEMsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGdDQUFnQyxDQUFDO0FBRXJFLG9GQUFvRjtBQUNwRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUM7QUFFOUMsMkZBQTJGO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZSxRQUFRLENBQUM7QUFFakQseUZBQXlGO0FBQ3pGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUVwQywrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO0FBRXpDLHVFQUF1RTtBQUN2RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUM7QUFxRy9DLGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBZ0I7SUFDL0MsSUFBSSxFQUFFLFFBQVE7SUFDZCxvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsV0FBVyxFQUFFLHVFQUF1RTtTQUNyRjtRQUNELE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRSxPQUFPO1lBQ2IsV0FBVyxFQUFFLDRF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LE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQzVELE9BQU8sTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7QUFDckMsQ0FBQztBQUVELDZFQUE2RTtBQUM3RSxNQUFNLFVBQVUsY0FBYyxDQUM1QixNQUE0QixFQUM1QixJQUFZO0lBRVosT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgQUkgU2VhcmNoIHBsdWdpbjogdGhlIHR5cGVkXG4gKiB7QGxpbmsgU2VhcmNoUGx1Z2luQ29uZmlnfSAodGhlIHBsdWdpbidzIHNsaWNlIG9mIEFwcEtpdCBjb25maWcpLCB0aGUgSlNPTlxuICogU2NoZW1hIHRoZSBtYW5pZmVzdCBwdWJsaXNoZXMgZm9yIGl0LCBhbmQge0BsaW5rIHJlc29sdmVTZWFyY2hDb25maWd9XG4gKiB3aGljaCBsYXllcnMgdGhhdCBjb25maWcgb3ZlciBlbnZpcm9ubWVudCBkZWZhdWx0cyBpbnRvIHRoZSBjb25jcmV0ZVxuICoge0BsaW5rIFJlc29sdmVkU2VhcmNoQ29uZmlnfSB0aGUgcnVudGltZSwgY2xpZW50LCB0b29scywgYW5kIHJvdXRlcyByZWFkLlxuICpcbiAqIFRoZSBkZXNpZ24gZ29hbCBpcyBcIm9uZSBpbmRleCwgemVybyBjb25maWdcIjogbmFtZSBhIGRlZmF1bHQgaW5kZXggKG9yIHNldFxuICogYERBVEFCUklDS1NfVkVDVE9SX1NFQVJDSF9JTkRFWGApIGFuZCBldmVyeXRoaW5nIGVsc2UgLSB0aGUgY29sdW1ucyB0b1xuICogcmV0dXJuLCB0aGUgcGFnZSBzaXplLCB0aGUgbWF0Y2ggbW9kZSwgdGhlIG1vdW50ZWQgcm91dGUgcGF0aCwgdGhlIGVtYmVkZGluZ1xuICogbW9kZWwgdXNlZCB3aGVuIGNyZWF0aW5nIGFuIGluZGV4IC0gaGFzIGEgc2Vuc2libGUgZGVmYXVsdCB0aGF0IGNhbiBiZVxuICogb3ZlcnJpZGRlbiB3aGVuIGEgZGVwbG95bWVudCBuZWVkcyB0byBnbyBkZWVwZXIuXG4gKlxuICogV2hpY2ggaW5kZXggLyBlbmRwb2ludCBpcyB1c2VkIGZvbGxvd3MgdGhlIHN0YW5kYXJkIHByZWNlZGVuY2U6IGV4cGxpY2l0XG4gKiBwbHVnaW4gY29uZmlnLCB0aGVuIGVudmlyb25tZW50LCB0aGVuIGEgZGVmYXVsdC5cbiAqXG4gKiBFbnYgZmFsbGJhY2tzOiBgREFUQUJSSUNLU19WRUNUT1JfU0VBUkNIX0lOREVYYCAodGhlIGRlZmF1bHQgaW5kZXgpLFxuICogYFNFQVJDSF9JTkRFWGAsIGBTRUFSQ0hfRU5EUE9JTlRgLCBgU0VBUkNIX0NPTFVNTlNgLFxuICogYFNFQVJDSF9QQUdFX1NJWkVgLCBgU0VBUkNIX01PREVgLCBgU0VBUkNIX0VNQkVERElOR19NT0RFTGAsXG4gKiBgU0VBUkNIX1RJTUVPVVRfTVNgLCBgU0VBUkNIX1dSSVRFYC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkVycm9yLCB0eXBlIEJhc2VQbHVnaW5Db25maWcgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBjb25maWcgYXMgY29yZUNvbmZpZyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IG9iamVjdCwgc3RyaW5nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB0eXBlIHsgU2VhcmNoRG9jdW1lbnQsIFNlYXJjaE1vZGUgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtc2VhcmNoXCI7XG5pbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE3IH0gZnJvbSBcImpzb24tc2NoZW1hXCI7XG5cbi8qKiBUaGUgZGVmYXVsdCBpbmRleCwgaG9ub3JpbmcgQXBwS2l0J3Mgc3RhbmRhcmQgVmVjdG9yIFNlYXJjaCBiaW5kaW5nIG5hbWUuICovXG5leHBvcnQgY29uc3QgSU5ERVhfRU5WID0gXCJTRUFSQ0hfSU5ERVhcIjtcblxuLyoqIEFwcEtpdCdzIHN0YW5kYXJkIGVudmlyb25tZW50IG5hbWUgZm9yIGEgVmVjdG9yIFNlYXJjaCBpbmRleCBiaW5kaW5nLiAqL1xuZXhwb3J0IGNvbnN0IERBVEFCUklDS1NfSU5ERVhfRU5WID0gXCJEQVRBQlJJQ0tTX1ZFQ1RPUl9TRUFSQ0hfSU5ERVhcIjtcblxuLyoqIERlZGljYXRlZCBvdmVycmlkZSBmb3IgdGhlIFZlY3RvciBTZWFyY2ggc2VydmluZyBlbmRwb2ludCB0aGF0IGhvc3RzIGluZGV4ZXMuICovXG5leHBvcnQgY29uc3QgRU5EUE9JTlRfRU5WID0gXCJTRUFSQ0hfRU5EUE9JTlRcIjtcblxuLyoqIERlZmF1bHQgbWF0Y2ggbW9kZSB3aGVuIGEgcmVxdWVzdCBkb2VzIG5vdCBuYW1lIG9uZS4gSHlicmlkIHN1aXRzIG1vc3Qgc2VhcmNoIGJveGVzLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERTogU2VhcmNoTW9kZSA9IFwiaHlicmlkXCI7XG5cbi8qKiBEZWZhdWx0IG51bWJlciBvZiBoaXRzIGEgc2VhcmNoIHJldHVybnMgKGEgZ29vZCBhdXRvY29tcGxldGUgLyByZXN1bHRzLWxpc3Qgc2l6ZSkuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1NJWkUgPSAxMDtcblxuLyoqIERlZmF1bHQgcGVyLWNhbGwgdGltZW91dCBmb3IgYSBzZWFyY2ggLyBpbmRleCBvcGVyYXRpb24uICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FT1VUX01TID0gMzBfMDAwO1xuXG4vKiogQmFzZSBwYXRoIHRoZSBwbHVnaW4gbW91bnRzIGl0cyByb3V0ZXMgdW5kZXIsIHVubGVzcyBvdmVycmlkZGVuLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFTRV9QQVRIID0gXCIvYXBpL3NlYXJjaFwiO1xuXG4vKipcbiAqIEEgY29uZmlndXJlZCBpbmRleCB0aGUgcGx1Z2luIGtub3dzIGFib3V0IGFoZWFkIG9mIHRpbWUuIE9ubHkgYG5hbWVgIChvclxuICogYGFsaWFzYCkgaXMgcmVxdWlyZWQ7IHRoZSByZXN0IGlzIHJlc29sdmVkIGZyb20gdGhlIGxpdmUgaW5kZXggZGVmaW5pdGlvblxuICogd2hlbiBvbWl0dGVkLCBzbyBhIGRlcGxveW1lbnQgY2FuIHJlZ2lzdGVyIGB7IG5hbWUgfWAgYW5kIGxldCB0aGUgcGx1Z2luIGZpbGxcbiAqIGluIHRoZSBwcmltYXJ5IGtleSBhbmQgY29sdW1ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hJbmRleENvbmZpZyB7XG4gIC8qKiBVbml0eSBDYXRhbG9nIG5hbWUgb2YgdGhlIGluZGV4IChjYXRhbG9nLnNjaGVtYS5pbmRleCkuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFNob3J0IGFsaWFzIGEgY2FsbGVyIG1heSB1c2UgaW4gcGxhY2Ugb2YgYG5hbWVgIChkZWZhdWx0cyB0byB0aGUgbGFzdCBuYW1lIHNlZ21lbnQpLiAqL1xuICBhbGlhcz86IHN0cmluZztcbiAgLyoqIFByaW1hcnkta2V5IGNvbHVtbi4gUmVzb2x2ZWQgZnJvbSB0aGUgaW5kZXggZGVmaW5pdGlvbiB3aGVuIG9taXR0ZWQuICovXG4gIHByaW1hcnlLZXk/OiBzdHJpbmc7XG4gIC8qKiBDb2x1bW5zIHRvIHJldHVybiBwZXIgaGl0LCBpbiBkaXNwbGF5IG9yZGVyLiBEZWZhdWx0cyB0byBldmVyeSBpbmRleGVkIGNvbHVtbi4gKi9cbiAgY29sdW1ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBBSSBTZWFyY2ggcGx1Z2luJ3Mgc2xpY2Ugb2YgQXBwS2l0IGNvbmZpZy4gRXZlcnkgZmllbGQgaXMgb3B0aW9uYWwgLSB0aGVcbiAqIHBsdWdpbiB3b3JrcyB3aXRoIG5vdGhpbmcgYnV0IGFuIGluZGV4IG5hbWUgaW4gdGhlIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFBsdWdpbkNvbmZpZyBleHRlbmRzIEJhc2VQbHVnaW5Db25maWcge1xuICAvKiogVGhlIGRlZmF1bHQgaW5kZXggc2VhcmNoZWQgd2hlbiBhIHJlcXVlc3Qgb21pdHMgb25lIChuYW1lIG9yIGFsaWFzKS4gKi9cbiAgaW5kZXg/OiBzdHJpbmc7XG4gIC8qKiBJbmRleGVzIHRoZSBwbHVnaW4gc2hvdWxkIGtub3cgYWJvdXQgKGZvciBhbGlhc2VzLCB1bml2ZXJzYWwgc2VhcmNoLCBhbmQgdGhlIFVJIGNhdGFsb2d1ZSkuICovXG4gIGluZGV4ZXM/OiBBcnJheTxzdHJpbmcgfCBTZWFyY2hJbmRleENvbmZpZz47XG4gIC8qKiBUaGUgVmVjdG9yIFNlYXJjaCBzZXJ2aW5nIGVuZHBvaW50IGluZGV4ZXMgbGl2ZSBvbiAob25seSBuZWVkZWQgdG8gY3JlYXRlIGFuIGluZGV4KS4gKi9cbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0IGNvbHVtbnMgdG8gcmV0dXJuIHBlciBoaXQuIEZhbGxzIGJhY2sgdG8gZWFjaCBpbmRleCdzIG93biBjb2x1bW5zLiAqL1xuICBjb2x1bW5zPzogc3RyaW5nW107XG4gIC8qKiBEZWZhdWx0IG51bWJlciBvZiBoaXRzIGEgc2VhcmNoIHJldHVybnMuICovXG4gIHBhZ2VTaXplPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBtYXRjaCBtb2RlLiAqL1xuICBtb2RlPzogU2VhcmNoTW9kZTtcbiAgLyoqIEVtYmVkZGluZyBtb2RlbCBlbmRwb2ludCB1c2VkIHdoZW4gdGhlIHBsdWdpbiBDUkVBVEVTIGEgRGVsdGEgU3luYyBpbmRleC4gRnV6enktcmVzb2x2ZWQuICovXG4gIGVtYmVkZGluZ01vZGVsPzogc3RyaW5nO1xuICAvKiogUGVyLWNhbGwgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuICovXG4gIHRpbWVvdXRNcz86IG51bWJlcjtcbiAgLyoqIEVuYWJsZSB0aGUgd3JpdGUgc3VyZmFjZSAoYGFkZF9kb2N1bWVudHNgIHRvb2wgKyBgUE9TVCAvZG9jdW1lbnRzYCkuIE9mZiBieSBkZWZhdWx0LiAqL1xuICBhbGxvd1dyaXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFByb3Zpc2lvbiBhIFJFQUwgaW5kZXggYXQgYm9vdDogZW5zdXJlIHRoZSBlbmRwb2ludCArIGluZGV4IGV4aXN0IGFuZCBzZWVkXG4gICAqIGRvY3VtZW50cyB3aGVuIHRoZSBpbmRleCBpcyBlbXB0eS4gUnVucyBpbiB0aGUgYmFja2dyb3VuZCBkdXJpbmcgYHNldHVwKClgXG4gICAqIChhIHNsb3cgZmlyc3QtdGltZSBlbmRwb2ludC9pbmRleCBidWlsZCBuZXZlciBibG9ja3MgdGhlIHNlcnZlcikgdXNpbmcgdGhlXG4gICAqIGJvb3QtdGltZSBTREsgYXV0aCAoZW52IC8gY29uZmlnIHByb2ZpbGUpLiBJZGVtcG90ZW50IC0gc2FmZSBldmVyeSBib290LlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCBpcyBhIE1BTkFHRUQgZGlyZWN0LWFjY2VzcyBpbmRleCAoRGF0YWJyaWNrcyBlbWJlZHMgdGhlIHRleHRcbiAgICogY29sdW1uKSwgc28gYGRvY3VtZW50c2AgYXJlIHBsYWluIHJvd3MgYW5kIHNlYXJjaC1ieS10ZXh0IHdvcmtzIHdpdGggbm9cbiAgICogRGVsdGEgdGFibGUsIG5vIHdhcmVob3VzZSwgYW5kIG5vIHZlY3RvcnMgdG8gY29tcHV0ZS4gUG9pbnQgaXQgYXQgYVxuICAgKiBgc291cmNlVGFibGVgIHRvIHByb3Zpc2lvbiBhIERlbHRhIFN5bmMgaW5kZXggaW5zdGVhZC5cbiAgICovXG4gIGVuc3VyZU9uU2V0dXA/OiBFbnN1cmVPblNldHVwQ29uZmlnO1xufVxuXG4vKiogQm9vdC10aW1lIHByb3Zpc2lvbmluZyArIHNlZWRpbmcgZm9yIGEgc2luZ2xlIGluZGV4IChzZWUgYGVuc3VyZU9uU2V0dXBgKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5zdXJlT25TZXR1cENvbmZpZyB7XG4gIC8qKiBVQyBuYW1lIG9mIHRoZSBpbmRleCB0byBlbnN1cmUgKGNhdGFsb2cuc2NoZW1hLmluZGV4KS4gRGVmYXVsdHMgdG8gdGhlIHBsdWdpbidzIGBpbmRleGAuICovXG4gIGluZGV4Pzogc3RyaW5nO1xuICAvKiogVmVjdG9yIFNlYXJjaCBlbmRwb2ludCB0byBob3N0IGl0IG9uLiBEZWZhdWx0cyB0byB0aGUgcGx1Z2luJ3MgYGVuZHBvaW50YC4gKi9cbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKiBQcmltYXJ5LWtleSBjb2x1bW4uIERlZmF1bHRzIHRvIGBpZGAuICovXG4gIHByaW1hcnlLZXk/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGNvbHVtbiBEYXRhYnJpY2tzIGVtYmVkcyAobWFuYWdlZCBkaXJlY3QtYWNjZXNzKS4gRGVmYXVsdHMgdG8gYHRleHRgLiAqL1xuICB0ZXh0Q29sdW1uPzogc3RyaW5nO1xuICAvKiogRW1iZWRkaW5nIG1vZGVsIGVuZHBvaW50LiBGdXp6eS1tYXRjaGVkOyBkZWZhdWx0cyB0byB0aGUgYmVzdCBlbWJlZGRpbmcgZW5kcG9pbnQuICovXG4gIGVtYmVkZGluZ01vZGVsPzogc3RyaW5nO1xuICAvKiogRm9yIGEgRGVsdGEgU3luYyBpbmRleCBpbnN0ZWFkIG9mIG1hbmFnZWQgZGlyZWN0LWFjY2VzczogdGhlIHNvdXJjZSBEZWx0YSB0YWJsZS4gKi9cbiAgc291cmNlVGFibGU/OiBzdHJpbmc7XG4gIC8qKiBDb2x1bW4gLT4gdHlwZSBtYXAgZm9yIHRoZSBtYW5hZ2VkIGRpcmVjdC1hY2Nlc3MgYHNjaGVtYV9qc29uYC4gSW5mZXJyZWQgZnJvbSBgZG9jdW1lbnRzYCB3aGVuIG9taXR0ZWQuICovXG4gIHNjaGVtYT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBEb2N1bWVudHMgdG8gc2VlZCB3aGVuIHRoZSBpbmRleCBpcyBlbXB0eS4gUGxhaW4gYHsgaWQsIHRleHQsIC4uLiB9YCByb3dzIGZvciBhIG1hbmFnZWQgaW5kZXguICovXG4gIGRvY3VtZW50cz86IFNlYXJjaERvY3VtZW50W107XG4gIC8qKiBNYXggdGltZSB0byB3YWl0IGZvciBlbmRwb2ludCArIGluZGV4IHJlYWRpbmVzcy4gRGVmYXVsdHMgdG8gMjAgbWludXRlcy4gKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xufVxuXG4vKiogQSBmdWxseSByZXNvbHZlZCBpbmRleCBlbnRyeSAodGhlIHBsdWdpbi1rbm93biBmb3JtKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRJbmRleENvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYWxpYXM6IHN0cmluZztcbiAgcHJpbWFyeUtleT86IHN0cmluZztcbiAgY29sdW1ucz86IHN0cmluZ1tdO1xufVxuXG4vKiogVGhlIGNvbmNyZXRlIGNvbmZpZyB0aGUgcnVudGltZSwgY2xpZW50LCB0b29scywgYW5kIHJvdXRlcyByZWFkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFNlYXJjaENvbmZpZyB7XG4gIGRlZmF1bHRJbmRleD86IHN0cmluZztcbiAgaW5kZXhlczogUmVzb2x2ZWRJbmRleENvbmZpZ1tdO1xuICBlbmRwb2ludD86IHN0cmluZztcbiAgY29sdW1ucz86IHN0cmluZ1tdO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICBtb2RlOiBTZWFyY2hNb2RlO1xuICBlbWJlZGRpbmdNb2RlbD86IHN0cmluZztcbiAgYmFzZVBhdGg6IHN0cmluZztcbiAgdGltZW91dE1zOiBudW1iZXI7XG4gIGFsbG93V3JpdGU6IGJvb2xlYW47XG4gIGVuc3VyZU9uU2V0dXA/OiBFbnN1cmVPblNldHVwQ29uZmlnO1xufVxuXG4vKiogSlNPTiBTY2hlbWEgdGhlIHBsdWdpbiBtYW5pZmVzdCBwdWJsaXNoZXMgZm9yIHtAbGluayBTZWFyY2hQbHVnaW5Db25maWd9LiAqL1xuZXhwb3J0IGNvbnN0IFNFQVJDSF9DT05GSUdfU0NIRU1BOiBKU09OU2NoZW1hNyA9IHtcbiAgdHlwZTogXCJvYmplY3RcIixcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsXG4gIHByb3BlcnRpZXM6IHtcbiAgICBpbmRleDoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRlZmF1bHQgaW5kZXggdG8gc2VhcmNoIChjYXRhbG9nLnNjaGVtYS5pbmRleCBvciBhIGNvbmZpZ3VyZWQgYWxpYXMpLlwiLFxuICAgIH0sXG4gICAgaW5kZXhlczoge1xuICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiSW5kZXhlcyB0aGUgcGx1Z2luIGtub3dzIGFib3V0LCBmb3IgYWxpYXNlcywgdW5pdmVyc2FsIHNlYXJjaCwgYW5kIHRoZSBVSS5cIixcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCJdLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgYWxpYXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBwcmltYXJ5S2V5OiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgY29sdW1uczogeyB0eXBlOiBcImFycmF5XCIsIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGVuZHBvaW50OiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiVmVjdG9yIFNlYXJjaCBzZXJ2aW5nIGVuZHBvaW50IGluZGV4ZXMgbGl2ZSBvbiAobmVlZGVkIG9ubHkgdG8gY3JlYXRlIG9uZSkuXCIsXG4gICAgfSxcbiAgICBjb2x1bW5zOiB7XG4gICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICBkZXNjcmlwdGlvbjogXCJEZWZhdWx0IGNvbHVtbnMgdG8gcmV0dXJuLlwiLFxuICAgIH0sXG4gICAgcGFnZVNpemU6IHsgdHlwZTogXCJudW1iZXJcIiwgZGVzY3JpcHRpb246IFwiRGVmYXVsdCBudW1iZXIgb2YgaGl0cyBwZXIgc2VhcmNoLlwiIH0sXG4gICAgbW9kZTogeyBlbnVtOiBbXCJoeWJyaWRcIiwgXCJ2ZWN0b3JcIiwgXCJrZXl3b3JkXCJdLCBkZXNjcmlwdGlvbjogXCJEZWZhdWx0IG1hdGNoIG1vZGUuXCIgfSxcbiAgICBlbWJlZGRpbmdNb2RlbDoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVtYmVkZGluZyBlbmRwb2ludCB1c2VkIHdoZW4gY3JlYXRpbmcgYSBEZWx0YSBTeW5jIGluZGV4IChmdXp6eS1tYXRjaGVkKS5cIixcbiAgICB9LFxuICAgIHRpbWVvdXRNczogeyB0eXBlOiBcIm51bWJlclwiLCBkZXNjcmlwdGlvbjogXCJQZXItY2FsbCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cIiB9LFxuICAgIGFsbG93V3JpdGU6IHtcbiAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIHRoZSBkb2N1bWVudCB3cml0ZSBzdXJmYWNlIChhZGRfZG9jdW1lbnRzIHRvb2wgKyByb3V0ZSkuXCIsXG4gICAgfSxcbiAgICBlbnN1cmVPblNldHVwOiB7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUHJvdmlzaW9uIGEgcmVhbCBpbmRleCBhdCBib290OiBlbnN1cmUgdGhlIGVuZHBvaW50ICsgaW5kZXggZXhpc3QgYW5kIHNlZWQgXCIgK1xuICAgICAgICBcImRvY3VtZW50cyB3aGVuIGVtcHR5LiBSdW5zIGluIHRoZSBiYWNrZ3JvdW5kIGR1cmluZyBzZXR1cCB1c2luZyBib290LXRpbWUgYXV0aC5cIixcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpbmRleDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIGVuZHBvaW50OiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgcHJpbWFyeUtleTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHRleHRDb2x1bW46IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBlbWJlZGRpbmdNb2RlbDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHNvdXJjZVRhYmxlOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgc2NoZW1hOiB7IHR5cGU6IFwib2JqZWN0XCIsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6IFwic3RyaW5nXCIgfSB9LFxuICAgICAgICBkb2N1bWVudHM6IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBcIm9iamVjdFwiLCBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZSB9IH0sXG4gICAgICAgIHRpbWVvdXRNczogeyB0eXBlOiBcIm51bWJlclwiIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59O1xuXG4vKiogRGVyaXZlIHRoZSBkZWZhdWx0IGFsaWFzIGZvciBhbiBpbmRleCBuYW1lIChpdHMgbGFzdCBkb3R0ZWQgc2VnbWVudCkuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEFsaWFzKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNlZ21lbnRzID0gbmFtZS5zcGxpdChcIi5cIikuZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gc2VnbWVudHMubGVuZ3RoID4gMCA/IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdIDogbmFtZTtcbn1cblxuLyoqIE5vcm1hbGl6ZSBhIGNvbmZpZyBpbmRleCBlbnRyeSAoc3RyaW5nIG9yIG9iamVjdCkgaW50byBhIHtAbGluayBSZXNvbHZlZEluZGV4Q29uZmlnfS4gKi9cbmZ1bmN0aW9uIHRvUmVzb2x2ZWRJbmRleChlbnRyeTogc3RyaW5nIHwgU2VhcmNoSW5kZXhDb25maWcpOiBSZXNvbHZlZEluZGV4Q29uZmlnIHwgbnVsbCB7XG4gIGNvbnN0IHJhdyA9IHR5cGVvZiBlbnRyeSA9PT0gXCJzdHJpbmdcIiA/IHsgbmFtZTogZW50cnkgfSA6IGVudHJ5O1xuICBjb25zdCBuYW1lID0gc3RyaW5nLnRyaW1Ub051bGwocmF3Lm5hbWUpO1xuICBpZiAobmFtZSA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBhbGlhczogc3RyaW5nLnRyaW1Ub051bGwocmF3LmFsaWFzKSA/PyBkZWZhdWx0QWxpYXMobmFtZSksXG4gICAgLi4uKHJhdy5wcmltYXJ5S2V5ID8geyBwcmltYXJ5S2V5OiByYXcucHJpbWFyeUtleSB9IDoge30pLFxuICAgIC4uLihyYXcuY29sdW1ucyAmJiByYXcuY29sdW1ucy5sZW5ndGggPiAwID8geyBjb2x1bW5zOiBbLi4ucmF3LmNvbHVtbnNdIH0gOiB7fSksXG4gIH07XG59XG5cbi8qKiBQYXJzZSBhbmQgdmFsaWRhdGUgYSB7QGxpbmsgU2VhcmNoTW9kZX0gZnJvbSBjb25maWcgb3IgYW4gZW52IHZhci4gKi9cbmZ1bmN0aW9uIHJlc29sdmVNb2RlKGNvbmZpZ3VyZWQ6IFNlYXJjaE1vZGUgfCB1bmRlZmluZWQpOiBTZWFyY2hNb2RlIHtcbiAgY29uc3QgcmF3ID0gY29uZmlndXJlZCA/PyBjb3JlQ29uZmlnLnRleHQoXCJTRUFSQ0hfTU9ERVwiLCBjb3JlQ29uZmlnLkVOVl9PTkxZKTtcbiAgaWYgKHJhdyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gREVGQVVMVF9NT0RFO1xuICBpZiAocmF3ICE9PSBcImh5YnJpZFwiICYmIHJhdyAhPT0gXCJ2ZWN0b3JcIiAmJiByYXcgIT09IFwia2V5d29yZFwiKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25FcnJvcihcbiAgICAgICdtb2RlIG11c3QgYmUgXCJoeWJyaWRcIiwgXCJ2ZWN0b3JcIiBvciBcImtleXdvcmRcIiAoZW52OiBTRUFSQ0hfTU9ERSknLFxuICAgICAgeyBjb250ZXh0OiB7IGZpZWxkOiBcIm1vZGVcIiwgZW52VmFyOiBcIlNFQVJDSF9NT0RFXCIgfSB9LFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJhdztcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHBsdWdpbiBjb25maWcgb3ZlciBlbnZpcm9ubWVudCBkZWZhdWx0cyBpbnRvIHRoZSBjb25jcmV0ZVxuICoge0BsaW5rIFJlc29sdmVkU2VhcmNoQ29uZmlnfS4gVGhlIGRlZmF1bHQgaW5kZXggaXMgdW5pb25lZCBpbnRvIHRoZSBrbm93blxuICogaW5kZXhlcyBzbyBpdCBhbHdheXMgYXBwZWFycyBpbiB0aGUgY2F0YWxvZ3VlLCBhbGlhc2VzIGFyZSBkZS1kdXBsaWNhdGVkLFxuICogYW5kIGEgYmFkIG1vZGUgdGhyb3dzIGEge0BsaW5rIENvbmZpZ3VyYXRpb25FcnJvcn0gbmFtaW5nIHRoZSBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTZWFyY2hDb25maWcoY29uZmlnOiBTZWFyY2hQbHVnaW5Db25maWcgPSB7fSk6IFJlc29sdmVkU2VhcmNoQ29uZmlnIHtcbiAgY29uc3QgZGVmYXVsdEluZGV4UmF3ID0gY29yZUNvbmZpZy5zdHJpbmcoXG4gICAgY29uZmlnLmluZGV4LFxuICAgIFtJTkRFWF9FTlYsIERBVEFCUklDS1NfSU5ERVhfRU5WXSxcbiAgICBjb3JlQ29uZmlnLkVOVl9PTkxZLFxuICApO1xuXG4gIGNvbnN0IGNvbmZpZ3VyZWQgPSAoY29uZmlnLmluZGV4ZXMgPz8gW10pXG4gICAgLm1hcCh0b1Jlc29sdmVkSW5kZXgpXG4gICAgLmZpbHRlcigoZW50cnkpOiBlbnRyeSBpcyBSZXNvbHZlZEluZGV4Q29uZmlnID0+IGVudHJ5ICE9PSBudWxsKTtcblxuICAvLyBFbnN1cmUgdGhlIGRlZmF1bHQgaW5kZXggaXMgcmVwcmVzZW50ZWQgaW4gdGhlIGtub3duIHNldC5cbiAgaWYgKGRlZmF1bHRJbmRleFJhdyAmJiAhY29uZmlndXJlZC5zb21lKChpKSA9PiBpLm5hbWUgPT09IGRlZmF1bHRJbmRleFJhdykpIHtcbiAgICBjb25zdCBlbnZDb2x1bW5zID0gY29yZUNvbmZpZy5saXN0KHVuZGVmaW5lZCwgXCJTRUFSQ0hfQ09MVU1OU1wiLCB1bmRlZmluZWQsIGNvcmVDb25maWcuRU5WX09OTFkpO1xuICAgIGNvbmZpZ3VyZWQudW5zaGlmdCh7XG4gICAgICBuYW1lOiBkZWZhdWx0SW5kZXhSYXcsXG4gICAgICBhbGlhczogZGVmYXVsdEFsaWFzKGRlZmF1bHRJbmRleFJhdyksXG4gICAgICAuLi4oZW52Q29sdW1ucy5sZW5ndGggPiAwID8geyBjb2x1bW5zOiBlbnZDb2x1bW5zIH0gOiB7fSksXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBzZWVuQWxpYXNlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBpbmRleGVzID0gY29uZmlndXJlZC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgbGV0IGFsaWFzID0gZW50cnkuYWxpYXM7XG4gICAgd2hpbGUgKHNlZW5BbGlhc2VzLmhhcyhhbGlhcykpIGFsaWFzID0gYCR7YWxpYXN9X2A7XG4gICAgc2VlbkFsaWFzZXMuYWRkKGFsaWFzKTtcbiAgICByZXR1cm4geyAuLi5lbnRyeSwgYWxpYXMgfTtcbiAgfSk7XG5cbiAgY29uc3QgZGVmYXVsdEluZGV4ID0gZGVmYXVsdEluZGV4UmF3ID8/IGluZGV4ZXNbMF0/Lm5hbWU7XG4gIGNvbnN0IGNvbHVtbnMgPSBjb3JlQ29uZmlnLmxpc3QoY29uZmlnLmNvbHVtbnMsIFwiU0VBUkNIX0NPTFVNTlNcIiwgdW5kZWZpbmVkLCBjb3JlQ29uZmlnLkVOVl9PTkxZKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm9iamVjdC5vcHRpb25hbChcImRlZmF1bHRJbmRleFwiLCBkZWZhdWx0SW5kZXgpLFxuICAgIGluZGV4ZXMsXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgXCJlbmRwb2ludFwiLFxuICAgICAgY29yZUNvbmZpZy5zdHJpbmcoY29uZmlnLmVuZHBvaW50LCBFTkRQT0lOVF9FTlYsIGNvcmVDb25maWcuRU5WX09OTFkpLFxuICAgICksXG4gICAgLi4uKGNvbHVtbnMubGVuZ3RoID4gMCA/IHsgY29sdW1ucyB9IDoge30pLFxuICAgIHBhZ2VTaXplOiBjb3JlQ29uZmlnLnBvc2l0aXZlSW50KFxuICAgICAgY29uZmlnLnBhZ2VTaXplLFxuICAgICAgXCJTRUFSQ0hfUEFHRV9TSVpFXCIsXG4gICAgICBERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgIGNvcmVDb25maWcuRU5WX09OTFksXG4gICAgKSxcbiAgICBtb2RlOiByZXNvbHZlTW9kZShjb25maWcubW9kZSksXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgXCJlbWJlZGRpbmdNb2RlbFwiLFxuICAgICAgY29yZUNvbmZpZy5zdHJpbmcoY29uZmlnLmVtYmVkZGluZ01vZGVsLCBcIlNFQVJDSF9FTUJFRERJTkdfTU9ERUxcIiwgY29yZUNvbmZpZy5FTlZfT05MWSksXG4gICAgKSxcbiAgICBiYXNlUGF0aDogREVGQVVMVF9CQVNFX1BBVEgsXG4gICAgdGltZW91dE1zOiBjb3JlQ29uZmlnLnBvc2l0aXZlSW50KFxuICAgICAgY29uZmlnLnRpbWVvdXRNcyxcbiAgICAgIFwiU0VBUkNIX1RJTUVPVVRfTVNcIixcbiAgICAgIERFRkFVTFRfVElNRU9VVF9NUyxcbiAgICAgIGNvcmVDb25maWcuRU5WX09OTFksXG4gICAgKSxcbiAgICBhbGxvd1dyaXRlOiBjb3JlQ29uZmlnLmJvb2xlYW4oY29uZmlnLmFsbG93V3JpdGUsIFwiU0VBUkNIX1dSSVRFXCIsIGNvcmVDb25maWcuRU5WX09OTFkpID8/IGZhbHNlLFxuICAgIC4uLihjb25maWcuZW5zdXJlT25TZXR1cCA/IHsgZW5zdXJlT25TZXR1cDogY29uZmlnLmVuc3VyZU9uU2V0dXAgfSA6IHt9KSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgY2FsbGVyLXN1cHBsaWVkIGluZGV4IHJlZmVyZW5jZSAoYSBmdWxsIFVDIG5hbWUgb3IgYSBjb25maWd1cmVkXG4gKiBhbGlhcykgaW50byBhIGNvbmNyZXRlIGluZGV4IG5hbWUuIEZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHQgaW5kZXggd2hlbiB0aGVcbiAqIHJlZmVyZW5jZSBpcyBlbXB0eS4gUmV0dXJucyBgbnVsbGAgd2hlbiBub3RoaW5nIGNhbiBiZSByZXNvbHZlZCBzbyBjYWxsZXJzXG4gKiByYWlzZSBhIHN0YWJsZSwgdXNlci1mYWNpbmcgZXJyb3IgcmF0aGVyIHRoYW4gY2FsbGluZyBhIHBoYW50b20gaW5kZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSW5kZXhOYW1lKFxuICBjb25maWc6IFJlc29sdmVkU2VhcmNoQ29uZmlnLFxuICByZWZlcmVuY2U6IHN0cmluZyB8IHVuZGVmaW5lZCxcbik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCByZWYgPSBzdHJpbmcudHJpbVRvTnVsbChyZWZlcmVuY2UpO1xuICBpZiAocmVmID09PSBudWxsKSByZXR1cm4gY29uZmlnLmRlZmF1bHRJbmRleCA/PyBudWxsO1xuICBjb25zdCBieUFsaWFzID0gY29uZmlnLmluZGV4ZXMuZmluZCgoaSkgPT4gaS5hbGlhcyA9PT0gcmVmIHx8IGkubmFtZSA9PT0gcmVmKTtcbiAgaWYgKGJ5QWxpYXMpIHJldHVybiBieUFsaWFzLm5hbWU7XG4gIC8vIEFjY2VwdCBhbiB1bnJlZ2lzdGVyZWQgYnV0IGZ1bGx5LXF1YWxpZmllZCBVQyBuYW1lICh0aHJlZSBkb3R0ZWQgcGFydHMpLlxuICBpZiAocmVmLnNwbGl0KFwiLlwiKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoID09PSAzKSByZXR1cm4gcmVmO1xuICByZXR1cm4gY29uZmlnLmRlZmF1bHRJbmRleCA/PyBudWxsO1xufVxuXG4vKiogVGhlIGtub3duIGNvbmZpZyBmb3IgYW4gaW5kZXggbmFtZSwgd2hlbiB0aGUgcGx1Z2luIHdhcyB0b2xkIGFib3V0IGl0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluZGV4Q29uZmlnRm9yKFxuICBjb25maWc6IFJlc29sdmVkU2VhcmNoQ29uZmlnLFxuICBuYW1lOiBzdHJpbmcsXG4pOiBSZXNvbHZlZEluZGV4Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNvbmZpZy5pbmRleGVzLmZpbmQoKGkpID0+IGkubmFtZSA9PT0gbmFtZSB8fCBpLmFsaWFzID09PSBuYW1lKTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -28,12 +28,12 @@
28
28
  "dependencies": {
29
29
  "@databricks/appkit": "^0.43.0",
30
30
  "@databricks/sdk-experimental": "^0.17.0",
31
- "@dbx-tools/appkit": "0.6.89",
32
- "@dbx-tools/core": "0.6.89",
33
- "@dbx-tools/model": "0.6.89",
34
- "@dbx-tools/shared-core": "0.6.89",
35
- "@dbx-tools/shared-model": "0.6.89",
36
- "@dbx-tools/shared-search": "0.6.89",
31
+ "@dbx-tools/appkit": "0.6.91",
32
+ "@dbx-tools/core": "0.6.91",
33
+ "@dbx-tools/model": "0.6.91",
34
+ "@dbx-tools/shared-core": "0.6.91",
35
+ "@dbx-tools/shared-model": "0.6.91",
36
+ "@dbx-tools/shared-search": "0.6.91",
37
37
  "@mastra/core": "^1.47.0",
38
38
  "pg": "^8.22.0",
39
39
  "zod": "4.3.6"
@@ -52,7 +52,7 @@
52
52
  "./package.json": "./package.json"
53
53
  }
54
54
  },
55
- "version": "0.6.89",
55
+ "version": "0.6.91",
56
56
  "types": "./lib/index.d.ts",
57
57
  "type": "module",
58
58
  "exports": {
package/src/config.ts CHANGED
@@ -268,12 +268,7 @@ export function resolveSearchConfig(config: SearchPluginConfig = {}): ResolvedSe
268
268
 
269
269
  // Ensure the default index is represented in the known set.
270
270
  if (defaultIndexRaw && !configured.some((i) => i.name === defaultIndexRaw)) {
271
- const envColumns = coreConfig.list(
272
- undefined,
273
- "SEARCH_COLUMNS",
274
- undefined,
275
- coreConfig.ENV_ONLY,
276
- );
271
+ const envColumns = coreConfig.list(undefined, "SEARCH_COLUMNS", undefined, coreConfig.ENV_ONLY);
277
272
  configured.unshift({
278
273
  name: defaultIndexRaw,
279
274
  alias: defaultAlias(defaultIndexRaw),
@@ -290,12 +285,7 @@ export function resolveSearchConfig(config: SearchPluginConfig = {}): ResolvedSe
290
285
  });
291
286
 
292
287
  const defaultIndex = defaultIndexRaw ?? indexes[0]?.name;
293
- const columns = coreConfig.list(
294
- config.columns,
295
- "SEARCH_COLUMNS",
296
- undefined,
297
- coreConfig.ENV_ONLY,
298
- );
288
+ const columns = coreConfig.list(config.columns, "SEARCH_COLUMNS", undefined, coreConfig.ENV_ONLY);
299
289
 
300
290
  return {
301
291
  ...object.optional("defaultIndex", defaultIndex),
@@ -323,8 +313,7 @@ export function resolveSearchConfig(config: SearchPluginConfig = {}): ResolvedSe
323
313
  DEFAULT_TIMEOUT_MS,
324
314
  coreConfig.ENV_ONLY,
325
315
  ),
326
- allowWrite:
327
- coreConfig.boolean(config.allowWrite, "SEARCH_WRITE", coreConfig.ENV_ONLY) ?? false,
316
+ allowWrite: coreConfig.boolean(config.allowWrite, "SEARCH_WRITE", coreConfig.ENV_ONLY) ?? false,
328
317
  ...(config.ensureOnSetup ? { ensureOnSetup: config.ensureOnSetup } : {}),
329
318
  };
330
319
  }