obsidian-dev-utils 92.1.0 → 93.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/demo-vault-helper/main.js +30 -44
  3. package/dist/integration-test-plugin/main.js +10029 -9743
  4. package/dist/lib/cjs/__merged.cjs +9 -1
  5. package/dist/lib/cjs/__merged.d.cts +2 -2
  6. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  7. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +118 -36
  8. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +88 -19
  9. package/dist/lib/cjs/obsidian/demo-vault-helper-settings.cjs +120 -0
  10. package/dist/lib/cjs/obsidian/demo-vault-helper-settings.d.cts +29 -0
  11. package/dist/lib/cjs/obsidian/demo-vault-helper.cjs +31 -32
  12. package/dist/lib/cjs/obsidian/demo-vault-helper.d.cts +7 -3
  13. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +4 -2
  14. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  15. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  16. package/dist/lib/cjs/obsidian/workspace.cjs +28 -3
  17. package/dist/lib/cjs/obsidian/workspace.d.cts +50 -0
  18. package/dist/lib/cjs/script-utils/demo-vault.cjs +8 -3
  19. package/dist/lib/esm/__merged.d.mts +2 -2
  20. package/dist/lib/esm/__merged.mjs +13 -3
  21. package/dist/lib/esm/generated-during-build.mjs +1 -1
  22. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +88 -19
  23. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +116 -35
  24. package/dist/lib/esm/obsidian/demo-vault-helper-settings.d.mts +29 -0
  25. package/dist/lib/esm/obsidian/demo-vault-helper-settings.mjs +24 -0
  26. package/dist/lib/esm/obsidian/demo-vault-helper.d.mts +7 -3
  27. package/dist/lib/esm/obsidian/demo-vault-helper.mjs +32 -36
  28. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +4 -2
  29. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  30. package/dist/lib/esm/obsidian/index.mjs +3 -1
  31. package/dist/lib/esm/obsidian/workspace.d.mts +50 -0
  32. package/dist/lib/esm/obsidian/workspace.mjs +24 -2
  33. package/dist/lib/esm/script-utils/demo-vault.mjs +10 -4
  34. package/obsidian/demo-vault-helper-settings/package.json +6 -0
  35. package/package.json +1 -1
@@ -22,11 +22,8 @@ if you want to view the source, please visit the github repository of this plugi
22
22
  })();
23
23
 
24
24
  import { Notice } from "obsidian";
25
- import {
26
- basename,
27
- join
28
- } from "../path.mjs";
29
- import { ensureNonNullable } from "../type-guards.mjs";
25
+ import { join } from "../path.mjs";
26
+ import { EMPTY } from "../string.mjs";
30
27
  import {
31
28
  configureCommunityPlugin,
32
29
  ConfigureCommunityPluginResult,
@@ -45,6 +42,8 @@ const CODE_SCRIPT_TOOLKIT_SETTINGS = {
45
42
  };
46
43
  const DEMO_VAULT_HELPER_PLUGIN_ID = "demo-vault-helper";
47
44
  const PLUGINS_FOLDER_NAME = "plugins";
45
+ const DATA_JSON_FILE_NAME = "data.json";
46
+ const INVALID_DEMO_VAULT_ERROR_MESSAGE = "Invalid demo vault";
48
47
  const OPEN_DEMO_VAULT_COMMAND_NAME = "Open demo vault";
49
48
  const SANDBOX_NOTICE_DURATION_IN_MILLISECONDS = 0;
50
49
  async function bootstrapDemoVault(params) {
@@ -65,23 +64,17 @@ async function bootstrapDemoVault(params) {
65
64
  }
66
65
  showSandboxNotice(app, demoedPluginId);
67
66
  }
68
- function buildSandboxNoticeFragment(pluginName, basePath) {
67
+ function buildSandboxNoticeFragment(pluginName) {
69
68
  return createFragment((fragment) => {
70
- if (pluginName === null) {
71
- fragment.appendText("This is a demo vault.");
72
- } else {
73
- fragment.appendText("This is a demo vault for ");
74
- fragment.createEl("b", { text: pluginName });
75
- fragment.appendText(".");
76
- }
77
- fragment.appendText(" It is a temporary sandbox");
78
- if (basePath !== null) {
79
- fragment.appendText(" at ");
80
- fragment.createEl("code", { text: basePath });
81
- }
82
- fragment.appendText(", cleaned up automatically about a day after you last use it \u2014 copy anything you want to keep into your own vault. Running ");
83
- fragment.createEl("b", { text: pluginName === null ? OPEN_DEMO_VAULT_COMMAND_NAME : `${pluginName}: ${OPEN_DEMO_VAULT_COMMAND_NAME}` });
84
- fragment.appendText(" again creates a new copy with the latest plugin version, so your notes will not appear in it.");
69
+ fragment.appendText("This is a demo vault for ");
70
+ fragment.createEl("b", { text: pluginName });
71
+ fragment.appendText(".");
72
+ fragment.createEl("br");
73
+ fragment.appendText("It is a temporary sandbox, cleaned up automatically about a day after you last use it.");
74
+ fragment.createEl("br");
75
+ fragment.appendText("Executing ");
76
+ fragment.createEl("b", { text: `${pluginName}: ${OPEN_DEMO_VAULT_COMMAND_NAME}` });
77
+ fragment.appendText(" command again creates a new copy with the latest plugin version, so your notes will not appear in it.");
85
78
  });
86
79
  }
87
80
  async function ensureInvocableScriptsFolder(app) {
@@ -91,26 +84,29 @@ async function ensureInvocableScriptsFolder(app) {
91
84
  }
92
85
  }
93
86
  async function getDemoedPluginId(app) {
94
- const pluginsFolderPath = join(app.vault.configDir, PLUGINS_FOLDER_NAME);
95
- if (!await app.vault.adapter.exists(pluginsFolderPath)) {
96
- return null;
87
+ const settingsPath = join(app.vault.configDir, PLUGINS_FOLDER_NAME, DEMO_VAULT_HELPER_PLUGIN_ID, DATA_JSON_FILE_NAME);
88
+ if (!await app.vault.adapter.exists(settingsPath)) {
89
+ throw new Error(INVALID_DEMO_VAULT_ERROR_MESSAGE);
97
90
  }
98
- const listedFiles = await app.vault.adapter.list(pluginsFolderPath);
99
- const demoedPluginIds = listedFiles.folders.map((folderPath) => basename(folderPath)).filter((pluginId) => pluginId !== DEMO_VAULT_HELPER_PLUGIN_ID);
100
- return demoedPluginIds.length === 1 ? ensureNonNullable(demoedPluginIds[0]) : null;
101
- }
102
- function getVaultBasePath(app) {
103
- return isBasePathAdapter(app.vault.adapter) ? app.vault.adapter.getBasePath() : null;
104
- }
105
- function isBasePathAdapter(adapter) {
106
- return typeof Reflect.get(adapter, "getBasePath") === "function";
91
+ let parsed;
92
+ try {
93
+ parsed = JSON.parse(await app.vault.adapter.read(settingsPath));
94
+ } catch (error) {
95
+ throw new Error(INVALID_DEMO_VAULT_ERROR_MESSAGE, { cause: error });
96
+ }
97
+ const demoedPluginId = parsed?.demoedPluginId;
98
+ if (typeof demoedPluginId !== "string" || demoedPluginId === EMPTY) {
99
+ throw new Error(INVALID_DEMO_VAULT_ERROR_MESSAGE);
100
+ }
101
+ return demoedPluginId;
107
102
  }
108
103
  function showSandboxNotice(app, demoedPluginId) {
109
- const pluginName = demoedPluginId === null ? null : app.plugins.manifests[demoedPluginId]?.name ?? demoedPluginId;
110
- const fragment = buildSandboxNoticeFragment(pluginName, getVaultBasePath(app));
104
+ const pluginName = app.plugins.manifests[demoedPluginId]?.name ?? demoedPluginId;
105
+ const fragment = buildSandboxNoticeFragment(pluginName);
106
+ app.setting.close();
111
107
  new Notice(fragment, SANDBOX_NOTICE_DURATION_IN_MILLISECONDS);
112
108
  }
113
109
  export {
114
110
  bootstrapDemoVault
115
111
  };
116
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQm9vdHN0cmFwcyBhIGRlbW8gdmF1bHQgYnkgaW5zdGFsbGluZywgY29uZmlndXJpbmcsIGFuZCBlbmFibGluZyBDb2RlU2NyaXB0IFRvb2xraXQuXG4gKlxuICogQSBwbHVnaW4ncyBkZW1vIHZhdWx0IHNob3djYXNlcyB0aGUgcGx1Z2luIHRocm91Z2ggbm90ZXMgd2hvc2UgYGNvZGUtYnV0dG9uYHMgcnVuIFR5cGVTY3JpcHQgdmlhXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQuIEEgZGVtbyB2YXVsdCB0aGF0IGRvZXMgbm90IGl0c2VsZiBzaGlwIENvZGVTY3JpcHQgVG9vbGtpdCB0aGVyZWZvcmUgbmVlZHMgaXRcbiAqIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIGVuYWJsZWQgYmVmb3JlIHRob3NlIGJ1dHRvbnMgd29yay4ge0BsaW5rIGJvb3RzdHJhcERlbW9WYXVsdH0gZG9lcyBleGFjdGx5XG4gKiB0aGF0IHdpdGggbm8gY29tbWl0dGVkIENvZGVTY3JpcHQgVG9vbGtpdCBjb25maWcgYW5kIG5vIG1hbnVhbCBzZXR1cCwgc28gaXQgY2FuIGJlIGRyaXZlbiBmcm9tIGEgdGlueVxuICogY29tbWl0dGVkIGJvb3RzdHJhcCBwbHVnaW4gKGBkZW1vLXZhdWx0LWhlbHBlcmApIHRoYXQgaXMgaW5qZWN0ZWQgaW50byBldmVyeSBkZW1vIHZhdWx0IGF0IHJlbGVhc2VcbiAqIHRpbWUuXG4gKlxuICogSXQgd3JpdGVzIENvZGVTY3JpcHQgVG9vbGtpdCdzIHNldHRpbmdzIEJFRk9SRSBlbmFibGluZyBpdCwgc28gdGhlIHBsdWdpbiBsb2FkcyBhbHJlYWR5IGNvbmZpZ3VyZWQgXHUyMDE0XG4gKiBubyByZWxvYWQuIENvZGVTY3JpcHQgVG9vbGtpdCB0aGVuIHJ1bnMgdGhlIHZhdWx0J3MgYHN0YXJ0dXAudHNgICh2aWEgaXRzIGBzdGFydHVwU2NyaXB0UGF0aGBcbiAqIHNldHRpbmcpLCB3aGljaCBpcyB3aGVyZSBlYWNoIHZhdWx0IG9wZW5zIGl0cyBzdGFydCBub3RlIGFuZCBkb2VzIGFueSBwbHVnaW4tc3BlY2lmaWMgc2V0dXAuXG4gKlxuICogSXQgYWxzbyBjcmVhdGVzIENvZGVTY3JpcHQgVG9vbGtpdCdzIGludm9jYWJsZS1zY3JpcHRzIGZvbGRlciBpZiBpdCBpcyBtaXNzaW5nLCBzbyBldmVyeSBkZW1vIHZhdWx0XG4gKiBoYXMgdGhlIHNhbWUgbGF5b3V0IGV2ZW4gd2hlbiB0aGUgdmF1bHQgc2hpcHMgbm8gaW52b2NhYmxlIHNjcmlwdHMgXHUyMDE0IHRoZSB2YXVsdHMgdGhlbXNlbHZlcyBjb21taXQgbm9cbiAqIGVtcHR5IGZvbGRlciBmb3IgaXQuXG4gKlxuICogRmluYWxseSBpdCByYWlzZXMgdGhlIHNhbmRib3ggbm90aWNlIGV4cGxhaW5pbmcgdGhhdCB0aGUgb3BlbmVkIHZhdWx0IGlzIGEgdGhyb3dhd2F5IGNvcHksIHNvIGEgdXNlclxuICogd2hvIHdyaXRlcyB0aGVpciBvd24gbm90ZXMgaW4gaXQgaXMgbmV2ZXIgc3VycHJpc2VkIGJ5IHRoZW0gYmVpbmcgYWJzZW50IGZyb20gdGhlIG5leHQgY29weS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRGF0YUFkYXB0ZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBqb2luXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQge1xuICBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4sXG4gIENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdCxcbiAgZGlzYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBpbnN0YWxsQ29tbXVuaXR5UGx1Z2luXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBib290c3RyYXBEZW1vVmF1bHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcERlbW9WYXVsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG59XG5cbi8qKlxuICogVGhlIHNsaWNlIG9mIHRoZSBkZXNrdG9wIHZhdWx0IGFkYXB0ZXIgdGhhdCBrbm93cyB0aGUgdmF1bHQncyBhYnNvbHV0ZSBwYXRoLlxuICovXG5pbnRlcmZhY2UgQmFzZVBhdGhBZGFwdGVyIHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIGdldEJhc2VQYXRoKCk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQncyBzZXR0aW5ncywgd3JpdHRlbiBpbnRvIGl0cyBgZGF0YS5qc29uYCBiZWZvcmUgaXQgaXMgZW5hYmxlZC5cbiAqL1xuaW50ZXJmYWNlIENvZGVTY3JpcHRUb29sa2l0U2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIFlBTUwgZnJvbnRtYXR0ZXIgbWVyZ2VkIGludG8gZXZlcnkgYGNvZGUtYnV0dG9uYCBibG9jaydzIG93biBjb25maWcsIHVzZWQgaGVyZSB0byB0dXJuIHRoZVxuICAgKiBzb3VyY2Ugdmlld2VyIG9uIGZvciBldmVyeSBidXR0b24gaW4gZXZlcnkgZGVtbyB2YXVsdCB3aXRob3V0IGVkaXRpbmcgYSBzaW5nbGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb2RlQnV0dG9uQ29uZmlnOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgKHVuZGVyIHtAbGluayBDb2RlU2NyaXB0VG9vbGtpdFNldHRpbmdzLm1vZHVsZXNSb290fSkgaG9sZGluZyBpbnZvY2FibGUgc2NyaXB0cy5cbiAgICovXG4gIHJlYWRvbmx5IGludm9jYWJsZVNjcmlwdHNGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIGZvbGRlciB0aGF0IGByZXF1aXJlKCcvXHUyMDI2JylgIHJlc29sdmVzIG1vZHVsZSBwYXRocyBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlc1Jvb3Q6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBDb2RlU2NyaXB0IFRvb2xraXQgaGFuZGxlcyBgb2JzaWRpYW46Ly9gIHByb3RvY29sIFVSTHMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRIYW5kbGVQcm90b2NvbFVybHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoICh1bmRlciB7QGxpbmsgQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncy5tb2R1bGVzUm9vdH0pIG9mIHRoZSBzY3JpcHQgcnVuIG9uIGxvYWQuXG4gICAqL1xuICByZWFkb25seSBzdGFydHVwU2NyaXB0UGF0aDogc3RyaW5nO1xufVxuXG5jb25zdCBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCA9ICdmaXgtcmVxdWlyZS1tb2R1bGVzJztcbmNvbnN0IENPREVfU0NSSVBUX1RPT0xLSVRfTU9EVUxFU19ST09UID0gJ19hc3NldHMvQ29kZVNjcmlwdFRvb2xraXQnO1xuY29uc3QgQ09ERV9TQ1JJUFRfVE9PTEtJVF9TRVRUSU5HUzogQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncyA9IHtcbiAgZGVmYXVsdENvZGVCdXR0b25Db25maWc6ICctLS1cXG5zb3VyY2VWaXNpYmlsaXR5OiBjb2xsYXBzZWRcXG4tLS0nLFxuICBpbnZvY2FibGVTY3JpcHRzRm9sZGVyOiAnSW52b2NhYmxlcycsXG4gIG1vZHVsZXNSb290OiBDT0RFX1NDUklQVF9UT09MS0lUX01PRFVMRVNfUk9PVCxcbiAgc2hvdWxkSGFuZGxlUHJvdG9jb2xVcmxzOiB0cnVlLFxuICBzdGFydHVwU2NyaXB0UGF0aDogJ3N0YXJ0dXAudHMnXG59O1xuXG5jb25zdCBERU1PX1ZBVUxUX0hFTFBFUl9QTFVHSU5fSUQgPSAnZGVtby12YXVsdC1oZWxwZXInO1xuY29uc3QgUExVR0lOU19GT0xERVJfTkFNRSA9ICdwbHVnaW5zJztcbmNvbnN0IE9QRU5fREVNT19WQVVMVF9DT01NQU5EX05BTUUgPSAnT3BlbiBkZW1vIHZhdWx0Jztcbi8vIGAwYCBhc2tzIE9ic2lkaWFuIHRvIGtlZXAgdGhlIG5vdGljZSB1cCB1bnRpbCB0aGUgdXNlciBjbGlja3MgaXQgXHUyMDE0IHRoZSBzYW1lIHRyZWF0bWVudCBPYnNpZGlhbiBnaXZlc1xuLy8gSXRzIG93biBzYW5kYm94LXZhdWx0IG5vdGljZSwgYW5kIHdoYXQgdGhlIGRlbW8tdmF1bHQgbm90aWNlIGlzIG1vZGVsbGVkIG9uLlxuY29uc3QgU0FOREJPWF9OT1RJQ0VfRFVSQVRJT05fSU5fTUlMTElTRUNPTkRTID0gMDtcblxuLyoqXG4gKiBCb290c3RyYXBzIGEgZGVtbyB2YXVsdCBzbyBpdHMgbm90ZXMnIGBjb2RlLWJ1dHRvbmBzIHdvcmsgd2l0aCBubyBtYW51YWwgc2V0dXA6IGluc3RhbGxzIENvZGVTY3JpcHRcbiAqIFRvb2xraXQgZnJvbSB0aGUgY29tbXVuaXR5IHN0b3JlIChpZiBpdCBpcyBub3QgYWxyZWFkeSBpbnN0YWxsZWQpLCB3cml0ZXMgaXRzIHNldHRpbmdzLCB0aGVuIGVuYWJsZXNcbiAqIGl0IFx1MjAxNCB3cml0aW5nIHRoZSBzZXR0aW5ncyBCRUZPUkUgZW5hYmxpbmcgc28gYSBmcmVzaCBlbmFibGUgbG9hZHMgaXQgYWxyZWFkeSBjb25maWd1cmVkLCB3aXRoIG5vXG4gKiByZWxvYWQuIElmIENvZGVTY3JpcHQgVG9vbGtpdCBpcyBhbHJlYWR5IGVuYWJsZWQgYnV0IHRoZSBzZXR0aW5ncyBqdXN0IGNoYW5nZWQsIGl0IGlzIHJlbG9hZGVkXG4gKiAoZGlzYWJsZWQgdGhlbiBlbmFibGVkKSBzbyBpdCByZS1yZWFkcyBgZGF0YS5qc29uYDsgd2hlbiB0aGUgc2V0dGluZ3Mgd2VyZSBhbHJlYWR5IGluIHBsYWNlLCBub3RoaW5nIGlzXG4gKiByZWxvYWRlZCAoc28gYSByb3V0aW5lIHZhdWx0IHJlLW9wZW4gZG9lcyBub3QgcmUtcnVuIENvZGVTY3JpcHQgVG9vbGtpdCdzIHN0YXJ0dXApLiBDb2RlU2NyaXB0IFRvb2xraXRcbiAqIHRoZW4gcnVucyB0aGUgdmF1bHQncyBgc3RhcnR1cC50c2AuIEZpbmFsbHkgaXQgcmFpc2VzIHRoZSBzYW5kYm94IG5vdGljZSBkZXNjcmliaW5nIHRoZSBvcGVuZWQgdmF1bHRcbiAqIGFzIGEgdGhyb3dhd2F5IGNvcHkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgQm9vdHN0cmFwRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSBDb2RlU2NyaXB0IFRvb2xraXQgaXMgaW5zdGFsbGVkLCBjb25maWd1cmVkLCBhbmQgZW5hYmxlZFxuICogYW5kIHRoZSBzYW5kYm94IG5vdGljZSBoYXMgYmVlbiBzaG93bi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcERlbW9WYXVsdChwYXJhbXM6IEJvb3RzdHJhcERlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCB9ID0gcGFyYW1zO1xuICAvLyBSZXNvbHZlZCBCRUZPUkUgQ29kZVNjcmlwdCBUb29sa2l0IGlzIGluc3RhbGxlZC4gQXQgcmVsZWFzZSB0aW1lIHRoZSB2YXVsdCBjYXJyaWVzIGV4YWN0bHkgdHdvXG4gIC8vIFBsdWdpbiBmb2xkZXJzIFx1MjAxNCB0aGlzIGhlbHBlciBhbmQgdGhlIHBsdWdpbiBiZWluZyBkZW1vbnN0cmF0ZWQgXHUyMDE0IHNvIGRyb3BwaW5nIHRoZSBoZWxwZXIgbGVhdmVzIHRoZVxuICAvLyBEZW1vbnN0cmF0ZWQgb25lLiBSZWFkaW5nIHRoZSBmb2xkZXIgbGF0ZXIgd291bGQgYWxzbyBzZWUgQ29kZVNjcmlwdCBUb29sa2l0IGFuZCBhbnl0aGluZyBhIGRlbW9cbiAgLy8gTm90ZSdzIHByZXJlcXVpc2l0ZXMgaW5zdGFsbGVkLCBsZWF2aW5nIG5vIHdheSB0byB0ZWxsIHdoaWNoIHBsdWdpbiB0aGUgdmF1bHQgaXMgZm9yLlxuICBjb25zdCBkZW1vZWRQbHVnaW5JZCA9IGF3YWl0IGdldERlbW9lZFBsdWdpbklkKGFwcCk7XG4gIGF3YWl0IGluc3RhbGxDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29uZmlndXJlQ29tbXVuaXR5UGx1Z2luKHtcbiAgICBhcHAsXG4gICAgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lELFxuICAgIHNldHRpbmdzOiBDT0RFX1NDUklQVF9UT09MS0lUX1NFVFRJTkdTXG4gIH0pO1xuICBhd2FpdCBlbnN1cmVJbnZvY2FibGVTY3JpcHRzRm9sZGVyKGFwcCk7XG5cbiAgaWYgKCFhcHAucGx1Z2lucy5lbmFibGVkUGx1Z2lucy5oYXMoQ09ERV9TQ1JJUFRfVE9PTEtJVF9QTFVHSU5fSUQpKSB7XG4gICAgYXdhaXQgZW5hYmxlQ29tbXVuaXR5UGx1Z2luKHsgYXBwLCBwbHVnaW5JZDogQ09ERV9TQ1JJUFRfVE9PTEtJVF9QTFVHSU5fSUQgfSk7XG4gIH0gZWxzZSBpZiAocmVzdWx0ID09PSBDb25maWd1cmVDb21tdW5pdHlQbHVnaW5SZXN1bHQuU3VjY2Vzcykge1xuICAgIC8vIEFscmVhZHkgZW5hYmxlZCB3aXRoIHN0YWxlIHNldHRpbmdzIFx1MjAxNCByZWxvYWQgc28gQ29kZVNjcmlwdCBUb29sa2l0IHJlLXJlYWRzIHRoZSBmcmVzaGx5IHdyaXR0ZW4gZGF0YS5qc29uLlxuICAgIGF3YWl0IGRpc2FibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgfVxuXG4gIHNob3dTYW5kYm94Tm90aWNlKGFwcCwgZGVtb2VkUGx1Z2luSWQpO1xufVxuXG4vLyBCdWlsZHMgdGhlIHNhbmRib3ggbm90aWNlIGNvbnRlbnQ6IHdoYXQgdGhpcyB2YXVsdCBpcywgd2hlcmUgaXQgbGl2ZXMsIGhvdyBsb25nIGl0IGxpdmVzLCBhbmQgd2h5XG4vLyBSZS1ydW5uaW5nIHRoZSBjb21tYW5kIHByb2R1Y2VzIGEgdmF1bHQgd2l0aG91dCB0aGUgbm90ZXMganVzdCB3cml0dGVuIGhlcmUuXG4vL1xuLy8gRXZlcnkgY2xhaW0gaGFzIHRvIHN0YXkgdHJ1ZSBvZiB0aGUgb3BlbmVyIChgZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50c2ApOiBpdCBleHRyYWN0cyBhIEZSRVNIIGNvcHlcbi8vIEludG8gaXRzIG93biBmb2xkZXIgb24gZXZlcnkgb3BlbiwgYW5kIGRlbGV0ZXMgZXh0cmFjdGVkIGZvbGRlcnMgb2xkZXIgdGhhbiBhIGRheSBvbiBlYWNoIGxhdGVyIG9wZW4uXG4vLyBTbyB0aGUgdmF1bHQgaXMgYSB0ZW1wb3Jhcnkgc2FuZGJveCBcdTIwMTQgaXQgbXVzdCBuZXZlciBiZSBkZXNjcmliZWQgYXMgYSBwbGFjZSB3b3JrIGNhbiBiZSBsZWZ0LlxuZnVuY3Rpb24gYnVpbGRTYW5kYm94Tm90aWNlRnJhZ21lbnQocGx1Z2luTmFtZTogbnVsbCB8IHN0cmluZywgYmFzZVBhdGg6IG51bGwgfCBzdHJpbmcpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50KChmcmFnbWVudCkgPT4ge1xuICAgIGlmIChwbHVnaW5OYW1lID09PSBudWxsKSB7XG4gICAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCdUaGlzIGlzIGEgZGVtbyB2YXVsdC4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnVGhpcyBpcyBhIGRlbW8gdmF1bHQgZm9yICcpO1xuICAgICAgZnJhZ21lbnQuY3JlYXRlRWwoJ2InLCB7IHRleHQ6IHBsdWdpbk5hbWUgfSk7XG4gICAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCcuJyk7XG4gICAgfVxuXG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnIEl0IGlzIGEgdGVtcG9yYXJ5IHNhbmRib3gnKTtcbiAgICBpZiAoYmFzZVBhdGggIT09IG51bGwpIHtcbiAgICAgIGZyYWdtZW50LmFwcGVuZFRleHQoJyBhdCAnKTtcbiAgICAgIGZyYWdtZW50LmNyZWF0ZUVsKCdjb2RlJywgeyB0ZXh0OiBiYXNlUGF0aCB9KTtcbiAgICB9XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnLCBjbGVhbmVkIHVwIGF1dG9tYXRpY2FsbHkgYWJvdXQgYSBkYXkgYWZ0ZXIgeW91IGxhc3QgdXNlIGl0IFx1MjAxNCBjb3B5IGFueXRoaW5nIHlvdSB3YW50IHRvIGtlZXAgaW50byB5b3VyIG93biB2YXVsdC4gUnVubmluZyAnKTtcbiAgICBmcmFnbWVudC5jcmVhdGVFbCgnYicsIHsgdGV4dDogcGx1Z2luTmFtZSA9PT0gbnVsbCA/IE9QRU5fREVNT19WQVVMVF9DT01NQU5EX05BTUUgOiBgJHtwbHVnaW5OYW1lfTogJHtPUEVOX0RFTU9fVkFVTFRfQ09NTUFORF9OQU1FfWAgfSk7XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnIGFnYWluIGNyZWF0ZXMgYSBuZXcgY29weSB3aXRoIHRoZSBsYXRlc3QgcGx1Z2luIHZlcnNpb24sIHNvIHlvdXIgbm90ZXMgd2lsbCBub3QgYXBwZWFyIGluIGl0LicpO1xuICB9KTtcbn1cblxuLy8gQ3JlYXRlcyBDb2RlU2NyaXB0IFRvb2xraXQncyBpbnZvY2FibGUtc2NyaXB0cyBmb2xkZXIgKHVuZGVyIGBtb2R1bGVzUm9vdGApIGlmIGl0IGlzIG1pc3NpbmcuXG4vLyBFdmVyeSBkZW1vIHZhdWx0IHRoZW4gaGFzIHRoZSBzYW1lIENvZGVTY3JpcHQgVG9vbGtpdCBsYXlvdXQgZXZlbiB3aGVuIGl0IHNoaXBzIG5vIGludm9jYWJsZSBzY3JpcHRzLlxuLy8gVGhlIGNvbW1pdHRlZCB2YXVsdCB0aGVyZWZvcmUgY2FycmllcyBubyBvdGhlcndpc2UtZW1wdHkgcGxhY2Vob2xkZXIgZm9sZGVyLlxuYXN5bmMgZnVuY3Rpb24gZW5zdXJlSW52b2NhYmxlU2NyaXB0c0ZvbGRlcihhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBpbnZvY2FibGVTY3JpcHRzRm9sZGVyUGF0aCA9IGpvaW4oQ09ERV9TQ1JJUFRfVE9PTEtJVF9NT0RVTEVTX1JPT1QsIENPREVfU0NSSVBUX1RPT0xLSVRfU0VUVElOR1MuaW52b2NhYmxlU2NyaXB0c0ZvbGRlcik7XG4gIGlmICghYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKGludm9jYWJsZVNjcmlwdHNGb2xkZXJQYXRoKSkge1xuICAgIGF3YWl0IGFwcC52YXVsdC5hZGFwdGVyLm1rZGlyKGludm9jYWJsZVNjcmlwdHNGb2xkZXJQYXRoKTtcbiAgfVxufVxuXG4vLyBJZGVudGlmaWVzIHRoZSBwbHVnaW4gdGhlIHZhdWx0IGRlbW9uc3RyYXRlcyBhcyB0aGUgb25seSBpbnN0YWxsZWQgcGx1Z2luIHRoYXQgaXMgbm90IHRoaXMgaGVscGVyLlxuLy8gQ2FsbCBpdCBCRUZPUkUgYW55dGhpbmcgZWxzZSBpcyBpbnN0YWxsZWQgKHNlZSBgYm9vdHN0cmFwRGVtb1ZhdWx0YCkuIEFueSBvdGhlciBjb3VudCBcdTIwMTQgYSB2YXVsdFxuLy8gT3BlbmVkIGFmdGVyIHRoZSBwbHVnaW4gZm9sZGVyIHdhcyBoYW5kLWVkaXRlZCwgb3Igb25lIHRoYXQgc2hpcHMgbm90aGluZyBidXQgdGhlIGhlbHBlciBcdTIwMTQgaXNcbi8vIEFtYmlndW91cywgYW5kIGFuIGFtYmlndW91cyBhbnN3ZXIgYmVjb21lcyBnZW5lcmljIG5vdGljZSB3b3JkaW5nIHJhdGhlciB0aGFuIGEgd3JvbmcgcGx1Z2luIG5hbWUuXG5hc3luYyBmdW5jdGlvbiBnZXREZW1vZWRQbHVnaW5JZChhcHA6IEFwcCk6IFByb21pc2U8bnVsbCB8IHN0cmluZz4ge1xuICBjb25zdCBwbHVnaW5zRm9sZGVyUGF0aCA9IGpvaW4oYXBwLnZhdWx0LmNvbmZpZ0RpciwgUExVR0lOU19GT0xERVJfTkFNRSk7XG4gIGlmICghYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHBsdWdpbnNGb2xkZXJQYXRoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGlzdGVkRmlsZXMgPSBhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5saXN0KHBsdWdpbnNGb2xkZXJQYXRoKTtcbiAgY29uc3QgZGVtb2VkUGx1Z2luSWRzID0gbGlzdGVkRmlsZXMuZm9sZGVyc1xuICAgIC5tYXAoKGZvbGRlclBhdGgpID0+IGJhc2VuYW1lKGZvbGRlclBhdGgpKVxuICAgIC5maWx0ZXIoKHBsdWdpbklkKSA9PiBwbHVnaW5JZCAhPT0gREVNT19WQVVMVF9IRUxQRVJfUExVR0lOX0lEKTtcbiAgcmV0dXJuIGRlbW9lZFBsdWdpbklkcy5sZW5ndGggPT09IDEgPyBlbnN1cmVOb25OdWxsYWJsZShkZW1vZWRQbHVnaW5JZHNbMF0pIDogbnVsbDtcbn1cblxuLy8gUmVzb2x2ZXMgdGhlIHZhdWx0J3MgYWJzb2x1dGUgcGF0aCBmb3IgdGhlIG5vdGljZS4gT25seSB0aGUgZGVza3RvcCBhZGFwdGVyIGtub3dzIGl0OiBgRGF0YUFkYXB0ZXJgXG4vLyBEb2VzIG5vdCBkZWNsYXJlIGBnZXRCYXNlUGF0aGAsIGFuZCBgRmlsZVN5c3RlbUFkYXB0ZXJgIGlzIGEgZGVza3RvcC1vbmx5IGNsYXNzIHRoYXQgaXMgbm90IGd1YXJhbnRlZWRcbi8vIFRvIGV4aXN0IGVsc2V3aGVyZSBcdTIwMTQgc28gYGluc3RhbmNlb2ZgIHdvdWxkIHRocm93IHJhdGhlciB0aGFuIGFuc3dlci4gSXQgaXMgcmVhY2hlZCBpbnN0ZWFkIHRocm91Z2ggYVxuLy8gTmFycm93IGhhbmQtZGVjbGFyZWQgc2hhcGUgcGx1cyBhIHJ1bnRpbWUgY2hlY2sgKHNlZSBMOSkuIEFuIGFkYXB0ZXIgd2l0aG91dCBpdCB5aWVsZHMgbm8gcGF0aCwgYW5kXG4vLyBUaGUgbm90aWNlIHRoZW4gb21pdHMgdGhlIHNlbnRlbmNlIG5hbWluZyBpdCByYXRoZXIgdGhhbiByZW5kZXJpbmcgYHVuZGVmaW5lZGAuXG5mdW5jdGlvbiBnZXRWYXVsdEJhc2VQYXRoKGFwcDogQXBwKTogbnVsbCB8IHN0cmluZyB7XG4gIHJldHVybiBpc0Jhc2VQYXRoQWRhcHRlcihhcHAudmF1bHQuYWRhcHRlcikgPyBhcHAudmF1bHQuYWRhcHRlci5nZXRCYXNlUGF0aCgpIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNCYXNlUGF0aEFkYXB0ZXIoYWRhcHRlcjogRGF0YUFkYXB0ZXIpOiBhZGFwdGVyIGlzIEJhc2VQYXRoQWRhcHRlciAmIERhdGFBZGFwdGVyIHtcbiAgcmV0dXJuIHR5cGVvZiBSZWZsZWN0LmdldChhZGFwdGVyLCAnZ2V0QmFzZVBhdGgnKSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLy8gVGVsbHMgdGhlIHVzZXIgdGhpcyB2YXVsdCBpcyBhIHNhbmRib3gsIHVzaW5nIE9ic2lkaWFuJ3Mgb3duIHNhbmRib3gtdmF1bHQgdHJlYXRtZW50OiBhbiBpbmZpbml0ZVxuLy8gRHVyYXRpb24sIGRpc21pc3NlZCBieSBjbGlja2luZyBpdC4gUmFpc2VkIGxhc3QsIHNvIGl0IGlzIHRoZSBuZXdlc3Qgbm90aWNlIG9uIHNjcmVlbiBvbmNlXG4vLyBDb2RlU2NyaXB0IFRvb2xraXQncyBzdGFydHVwIHNjcmlwdCBoYXMgZG9uZSBpdHMgb3duIHdvcmsuXG5mdW5jdGlvbiBzaG93U2FuZGJveE5vdGljZShhcHA6IEFwcCwgZGVtb2VkUGx1Z2luSWQ6IG51bGwgfCBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcGx1Z2luTmFtZSA9IGRlbW9lZFBsdWdpbklkID09PSBudWxsID8gbnVsbCA6IGFwcC5wbHVnaW5zLm1hbmlmZXN0c1tkZW1vZWRQbHVnaW5JZF0/Lm5hbWUgPz8gZGVtb2VkUGx1Z2luSWQ7XG4gIGNvbnN0IGZyYWdtZW50ID0gYnVpbGRTYW5kYm94Tm90aWNlRnJhZ21lbnQocGx1Z2luTmFtZSwgZ2V0VmF1bHRCYXNlUGF0aChhcHApKTtcbiAgbmV3IE5vdGljZShmcmFnbWVudCwgU0FOREJPWF9OT1RJQ0VfRFVSQVRJT05fSU5fTUlMTElTRUNPTkRTKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkJBLFNBQVMsY0FBYztBQUV2QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBQ2xDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBcURQLE1BQU0sZ0NBQWdDO0FBQ3RDLE1BQU0sbUNBQW1DO0FBQ3pDLE1BQU0sK0JBQTBEO0FBQUEsRUFDOUQseUJBQXlCO0FBQUEsRUFDekIsd0JBQXdCO0FBQUEsRUFDeEIsYUFBYTtBQUFBLEVBQ2IsMEJBQTBCO0FBQUEsRUFDMUIsbUJBQW1CO0FBQ3JCO0FBRUEsTUFBTSw4QkFBOEI7QUFDcEMsTUFBTSxzQkFBc0I7QUFDNUIsTUFBTSwrQkFBK0I7QUFHckMsTUFBTSwwQ0FBMEM7QUFnQmhELGVBQXNCLG1CQUFtQixRQUFpRDtBQUN4RixRQUFNLEVBQUUsSUFBSSxJQUFJO0FBS2hCLFFBQU0saUJBQWlCLE1BQU0sa0JBQWtCLEdBQUc7QUFDbEQsUUFBTSx1QkFBdUIsRUFBRSxLQUFLLFVBQVUsOEJBQThCLENBQUM7QUFDN0UsUUFBTSxTQUFTLE1BQU0seUJBQXlCO0FBQUEsSUFDNUM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxFQUNaLENB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
112
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQm9vdHN0cmFwcyBhIGRlbW8gdmF1bHQgYnkgaW5zdGFsbGluZywgY29uZmlndXJpbmcsIGFuZCBlbmFibGluZyBDb2RlU2NyaXB0IFRvb2xraXQuXG4gKlxuICogQSBwbHVnaW4ncyBkZW1vIHZhdWx0IHNob3djYXNlcyB0aGUgcGx1Z2luIHRocm91Z2ggbm90ZXMgd2hvc2UgYGNvZGUtYnV0dG9uYHMgcnVuIFR5cGVTY3JpcHQgdmlhXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQuIEEgZGVtbyB2YXVsdCB0aGF0IGRvZXMgbm90IGl0c2VsZiBzaGlwIENvZGVTY3JpcHQgVG9vbGtpdCB0aGVyZWZvcmUgbmVlZHMgaXRcbiAqIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIGVuYWJsZWQgYmVmb3JlIHRob3NlIGJ1dHRvbnMgd29yay4ge0BsaW5rIGJvb3RzdHJhcERlbW9WYXVsdH0gZG9lcyBleGFjdGx5XG4gKiB0aGF0IHdpdGggbm8gY29tbWl0dGVkIENvZGVTY3JpcHQgVG9vbGtpdCBjb25maWcgYW5kIG5vIG1hbnVhbCBzZXR1cCwgc28gaXQgY2FuIGJlIGRyaXZlbiBmcm9tIGEgdGlueVxuICogY29tbWl0dGVkIGJvb3RzdHJhcCBwbHVnaW4gKGBkZW1vLXZhdWx0LWhlbHBlcmApIHRoYXQgaXMgaW5qZWN0ZWQgaW50byBldmVyeSBkZW1vIHZhdWx0IGF0IHJlbGVhc2VcbiAqIHRpbWUuXG4gKlxuICogVGhlIHBsdWdpbiB0aGUgdmF1bHQgZGVtb25zdHJhdGVzIGlzIHJlYWQgZnJvbSB0aGUgaGVscGVyJ3Mgb3duIGBkYXRhLmpzb25gLCB3cml0dGVuIGJ5IHRoZSBwYWNrYWdpbmdcbiAqIHN0ZXAgKHtAbGluayBEZW1vVmF1bHRIZWxwZXJTZXR0aW5nc30pOyBhIHZhdWx0IHdpdGhvdXQgdGhhdCBtYXJrZXIgaXMgcmVmdXNlZCBhcyBub3QgYSBkZW1vIHZhdWx0LlxuICpcbiAqIEl0IHdyaXRlcyBDb2RlU2NyaXB0IFRvb2xraXQncyBzZXR0aW5ncyBCRUZPUkUgZW5hYmxpbmcgaXQsIHNvIHRoZSBwbHVnaW4gbG9hZHMgYWxyZWFkeSBjb25maWd1cmVkIFx1MjAxNFxuICogbm8gcmVsb2FkLiBDb2RlU2NyaXB0IFRvb2xraXQgdGhlbiBydW5zIHRoZSB2YXVsdCdzIGBzdGFydHVwLnRzYCAodmlhIGl0cyBgc3RhcnR1cFNjcmlwdFBhdGhgXG4gKiBzZXR0aW5nKSwgd2hpY2ggaXMgd2hlcmUgZWFjaCB2YXVsdCBvcGVucyBpdHMgc3RhcnQgbm90ZSBhbmQgZG9lcyBhbnkgcGx1Z2luLXNwZWNpZmljIHNldHVwLlxuICpcbiAqIEl0IGFsc28gY3JlYXRlcyBDb2RlU2NyaXB0IFRvb2xraXQncyBpbnZvY2FibGUtc2NyaXB0cyBmb2xkZXIgaWYgaXQgaXMgbWlzc2luZywgc28gZXZlcnkgZGVtbyB2YXVsdFxuICogaGFzIHRoZSBzYW1lIGxheW91dCBldmVuIHdoZW4gdGhlIHZhdWx0IHNoaXBzIG5vIGludm9jYWJsZSBzY3JpcHRzIFx1MjAxNCB0aGUgdmF1bHRzIHRoZW1zZWx2ZXMgY29tbWl0IG5vXG4gKiBlbXB0eSBmb2xkZXIgZm9yIGl0LlxuICpcbiAqIEZpbmFsbHkgaXQgcmFpc2VzIHRoZSBzYW5kYm94IG5vdGljZSBleHBsYWluaW5nIHRoYXQgdGhlIG9wZW5lZCB2YXVsdCBpcyBhIHRocm93YXdheSBjb3B5LCBzbyBhIHVzZXJcbiAqIHdobyB3cml0ZXMgdGhlaXIgb3duIG5vdGVzIGluIGl0IGlzIG5ldmVyIHN1cnByaXNlZCBieSB0aGVtIGJlaW5nIGFic2VudCBmcm9tIHRoZSBuZXh0IGNvcHkuIFNldHRpbmdzXG4gKiBpcyBjbG9zZWQgZmlyc3QsIHNvIHRoZSBub3RpY2UgbGFuZHMgaW4gdGhlIHZhdWx0J3MgbWFpbiB3aW5kb3cgcmF0aGVyIHRoYW4gaW4gdGhlIHNldHRpbmdzIHBvcG91dC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgTm90aWNlIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IERlbW9WYXVsdEhlbHBlclNldHRpbmdzIH0gZnJvbSAnLi9kZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncy50cyc7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7IEVNUFRZIH0gZnJvbSAnLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGNvbmZpZ3VyZUNvbW11bml0eVBsdWdpbixcbiAgQ29uZmlndXJlQ29tbXVuaXR5UGx1Z2luUmVzdWx0LFxuICBkaXNhYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBlbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIGluc3RhbGxDb21tdW5pdHlQbHVnaW5cbn0gZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGJvb3RzdHJhcERlbW9WYXVsdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwRGVtb1ZhdWx0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcbn1cblxuLyoqXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQncyBzZXR0aW5ncywgd3JpdHRlbiBpbnRvIGl0cyBgZGF0YS5qc29uYCBiZWZvcmUgaXQgaXMgZW5hYmxlZC5cbiAqL1xuaW50ZXJmYWNlIENvZGVTY3JpcHRUb29sa2l0U2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIFlBTUwgZnJvbnRtYXR0ZXIgbWVyZ2VkIGludG8gZXZlcnkgYGNvZGUtYnV0dG9uYCBibG9jaydzIG93biBjb25maWcsIHVzZWQgaGVyZSB0byB0dXJuIHRoZVxuICAgKiBzb3VyY2Ugdmlld2VyIG9uIGZvciBldmVyeSBidXR0b24gaW4gZXZlcnkgZGVtbyB2YXVsdCB3aXRob3V0IGVkaXRpbmcgYSBzaW5nbGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb2RlQnV0dG9uQ29uZmlnOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgKHVuZGVyIHtAbGluayBDb2RlU2NyaXB0VG9vbGtpdFNldHRpbmdzLm1vZHVsZXNSb290fSkgaG9sZGluZyBpbnZvY2FibGUgc2NyaXB0cy5cbiAgICovXG4gIHJlYWRvbmx5IGludm9jYWJsZVNjcmlwdHNGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIGZvbGRlciB0aGF0IGByZXF1aXJlKCcvXHUyMDI2JylgIHJlc29sdmVzIG1vZHVsZSBwYXRocyBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlc1Jvb3Q6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBDb2RlU2NyaXB0IFRvb2xraXQgaGFuZGxlcyBgb2JzaWRpYW46Ly9gIHByb3RvY29sIFVSTHMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRIYW5kbGVQcm90b2NvbFVybHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoICh1bmRlciB7QGxpbmsgQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncy5tb2R1bGVzUm9vdH0pIG9mIHRoZSBzY3JpcHQgcnVuIG9uIGxvYWQuXG4gICAqL1xuICByZWFkb25seSBzdGFydHVwU2NyaXB0UGF0aDogc3RyaW5nO1xufVxuXG5jb25zdCBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCA9ICdmaXgtcmVxdWlyZS1tb2R1bGVzJztcbmNvbnN0IENPREVfU0NSSVBUX1RPT0xLSVRfTU9EVUxFU19ST09UID0gJ19hc3NldHMvQ29kZVNjcmlwdFRvb2xraXQnO1xuY29uc3QgQ09ERV9TQ1JJUFRfVE9PTEtJVF9TRVRUSU5HUzogQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncyA9IHtcbiAgZGVmYXVsdENvZGVCdXR0b25Db25maWc6ICctLS1cXG5zb3VyY2VWaXNpYmlsaXR5OiBjb2xsYXBzZWRcXG4tLS0nLFxuICBpbnZvY2FibGVTY3JpcHRzRm9sZGVyOiAnSW52b2NhYmxlcycsXG4gIG1vZHVsZXNSb290OiBDT0RFX1NDUklQVF9UT09MS0lUX01PRFVMRVNfUk9PVCxcbiAgc2hvdWxkSGFuZGxlUHJvdG9jb2xVcmxzOiB0cnVlLFxuICBzdGFydHVwU2NyaXB0UGF0aDogJ3N0YXJ0dXAudHMnXG59O1xuXG5jb25zdCBERU1PX1ZBVUxUX0hFTFBFUl9QTFVHSU5fSUQgPSAnZGVtby12YXVsdC1oZWxwZXInO1xuY29uc3QgUExVR0lOU19GT0xERVJfTkFNRSA9ICdwbHVnaW5zJztcbmNvbnN0IERBVEFfSlNPTl9GSUxFX05BTUUgPSAnZGF0YS5qc29uJztcbmNvbnN0IElOVkFMSURfREVNT19WQVVMVF9FUlJPUl9NRVNTQUdFID0gJ0ludmFsaWQgZGVtbyB2YXVsdCc7XG5jb25zdCBPUEVOX0RFTU9fVkFVTFRfQ09NTUFORF9OQU1FID0gJ09wZW4gZGVtbyB2YXVsdCc7XG4vLyBgMGAgYXNrcyBPYnNpZGlhbiB0byBrZWVwIHRoZSBub3RpY2UgdXAgdW50aWwgdGhlIHVzZXIgY2xpY2tzIGl0IFx1MjAxNCB0aGUgc2FtZSB0cmVhdG1lbnQgT2JzaWRpYW4gZ2l2ZXNcbi8vIEl0cyBvd24gc2FuZGJveC12YXVsdCBub3RpY2UsIGFuZCB3aGF0IHRoZSBkZW1vLXZhdWx0IG5vdGljZSBpcyBtb2RlbGxlZCBvbi5cbmNvbnN0IFNBTkRCT1hfTk9USUNFX0RVUkFUSU9OX0lOX01JTExJU0VDT05EUyA9IDA7XG5cbi8qKlxuICogQm9vdHN0cmFwcyBhIGRlbW8gdmF1bHQgc28gaXRzIG5vdGVzJyBgY29kZS1idXR0b25gcyB3b3JrIHdpdGggbm8gbWFudWFsIHNldHVwOiBpbnN0YWxscyBDb2RlU2NyaXB0XG4gKiBUb29sa2l0IGZyb20gdGhlIGNvbW11bml0eSBzdG9yZSAoaWYgaXQgaXMgbm90IGFscmVhZHkgaW5zdGFsbGVkKSwgd3JpdGVzIGl0cyBzZXR0aW5ncywgdGhlbiBlbmFibGVzXG4gKiBpdCBcdTIwMTQgd3JpdGluZyB0aGUgc2V0dGluZ3MgQkVGT1JFIGVuYWJsaW5nIHNvIGEgZnJlc2ggZW5hYmxlIGxvYWRzIGl0IGFscmVhZHkgY29uZmlndXJlZCwgd2l0aCBub1xuICogcmVsb2FkLiBJZiBDb2RlU2NyaXB0IFRvb2xraXQgaXMgYWxyZWFkeSBlbmFibGVkIGJ1dCB0aGUgc2V0dGluZ3MganVzdCBjaGFuZ2VkLCBpdCBpcyByZWxvYWRlZFxuICogKGRpc2FibGVkIHRoZW4gZW5hYmxlZCkgc28gaXQgcmUtcmVhZHMgYGRhdGEuanNvbmA7IHdoZW4gdGhlIHNldHRpbmdzIHdlcmUgYWxyZWFkeSBpbiBwbGFjZSwgbm90aGluZyBpc1xuICogcmVsb2FkZWQgKHNvIGEgcm91dGluZSB2YXVsdCByZS1vcGVuIGRvZXMgbm90IHJlLXJ1biBDb2RlU2NyaXB0IFRvb2xraXQncyBzdGFydHVwKS4gQ29kZVNjcmlwdCBUb29sa2l0XG4gKiB0aGVuIHJ1bnMgdGhlIHZhdWx0J3MgYHN0YXJ0dXAudHNgLiBGaW5hbGx5IGl0IGNsb3NlcyBTZXR0aW5ncyAoc28gdGhlIG5vdGljZSBjYW5ub3QgYmUgcmFpc2VkIGluc2lkZVxuICogdGhlIHNldHRpbmdzIHBvcG91dCkgYW5kIHJhaXNlcyB0aGUgc2FuZGJveCBub3RpY2UgZGVzY3JpYmluZyB0aGUgb3BlbmVkIHZhdWx0IGFzIGEgdGhyb3dhd2F5IGNvcHkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgQm9vdHN0cmFwRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSBDb2RlU2NyaXB0IFRvb2xraXQgaXMgaW5zdGFsbGVkLCBjb25maWd1cmVkLCBhbmQgZW5hYmxlZFxuICogYW5kIHRoZSBzYW5kYm94IG5vdGljZSBoYXMgYmVlbiBzaG93bi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcERlbW9WYXVsdChwYXJhbXM6IEJvb3RzdHJhcERlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCB9ID0gcGFyYW1zO1xuICAvLyBSZXNvbHZlZCBmaXJzdCwgc28gYSB2YXVsdCB0aGF0IGlzIG5vdCBhIGRlbW8gdmF1bHQgaXMgcmVmdXNlZCBiZWZvcmUgYW55dGhpbmcgaXMgaW5zdGFsbGVkIGludG8gaXQuXG4gIGNvbnN0IGRlbW9lZFBsdWdpbklkID0gYXdhaXQgZ2V0RGVtb2VkUGx1Z2luSWQoYXBwKTtcbiAgYXdhaXQgaW5zdGFsbENvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lEIH0pO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4oe1xuICAgIGFwcCxcbiAgICBwbHVnaW5JZDogQ09ERV9TQ1JJUFRfVE9PTEtJVF9QTFVHSU5fSUQsXG4gICAgc2V0dGluZ3M6IENPREVfU0NSSVBUX1RPT0xLSVRfU0VUVElOR1NcbiAgfSk7XG4gIGF3YWl0IGVuc3VyZUludm9jYWJsZVNjcmlwdHNGb2xkZXIoYXBwKTtcblxuICBpZiAoIWFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCkpIHtcbiAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgfSBlbHNlIGlmIChyZXN1bHQgPT09IENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdC5TdWNjZXNzKSB7XG4gICAgLy8gQWxyZWFkeSBlbmFibGVkIHdpdGggc3RhbGUgc2V0dGluZ3MgXHUyMDE0IHJlbG9hZCBzbyBDb2RlU2NyaXB0IFRvb2xraXQgcmUtcmVhZHMgdGhlIGZyZXNobHkgd3JpdHRlbiBkYXRhLmpzb24uXG4gICAgYXdhaXQgZGlzYWJsZUNvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lEIH0pO1xuICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lEIH0pO1xuICB9XG5cbiAgc2hvd1NhbmRib3hOb3RpY2UoYXBwLCBkZW1vZWRQbHVnaW5JZCk7XG59XG5cbi8vIEJ1aWxkcyB0aGUgc2FuZGJveCBub3RpY2UgY29udGVudDogd2hhdCB0aGlzIHZhdWx0IGlzLCB3aGVyZSBpdCBsaXZlcywgaG93IGxvbmcgaXQgbGl2ZXMsIGFuZCB3aHlcbi8vIFJlLXJ1bm5pbmcgdGhlIGNvbW1hbmQgcHJvZHVjZXMgYSB2YXVsdCB3aXRob3V0IHRoZSBub3RlcyBqdXN0IHdyaXR0ZW4gaGVyZS5cbi8vXG4vLyBFdmVyeSBjbGFpbSBoYXMgdG8gc3RheSB0cnVlIG9mIHRoZSBvcGVuZXIgKGBkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyLnRzYCk6IGl0IGV4dHJhY3RzIGEgRlJFU0ggY29weVxuLy8gSW50byBpdHMgb3duIGZvbGRlciBvbiBldmVyeSBvcGVuLCBhbmQgZGVsZXRlcyBleHRyYWN0ZWQgZm9sZGVycyBvbGRlciB0aGFuIGEgZGF5IG9uIGVhY2ggbGF0ZXIgb3Blbi5cbi8vIFNvIHRoZSB2YXVsdCBpcyBhIHRlbXBvcmFyeSBzYW5kYm94IFx1MjAxNCBpdCBtdXN0IG5ldmVyIGJlIGRlc2NyaWJlZCBhcyBhIHBsYWNlIHdvcmsgY2FuIGJlIGxlZnQuXG5mdW5jdGlvbiBidWlsZFNhbmRib3hOb3RpY2VGcmFnbWVudChwbHVnaW5OYW1lOiBzdHJpbmcpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50KChmcmFnbWVudCkgPT4ge1xuICAgIGZyYWdtZW50LmFwcGVuZFRleHQoJ1RoaXMgaXMgYSBkZW1vIHZhdWx0IGZvciAnKTtcbiAgICBmcmFnbWVudC5jcmVhdGVFbCgnYicsIHsgdGV4dDogcGx1Z2luTmFtZSB9KTtcbiAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCcuJyk7XG5cbiAgICBmcmFnbWVudC5jcmVhdGVFbCgnYnInKTtcbiAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCdJdCBpcyBhIHRlbXBvcmFyeSBzYW5kYm94LCBjbGVhbmVkIHVwIGF1dG9tYXRpY2FsbHkgYWJvdXQgYSBkYXkgYWZ0ZXIgeW91IGxhc3QgdXNlIGl0LicpO1xuXG4gICAgZnJhZ21lbnQuY3JlYXRlRWwoJ2JyJyk7XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnRXhlY3V0aW5nICcpO1xuICAgIGZyYWdtZW50LmNyZWF0ZUVsKCdiJywgeyB0ZXh0OiBgJHtwbHVnaW5OYW1lfTogJHtPUEVOX0RFTU9fVkFVTFRfQ09NTUFORF9OQU1FfWAgfSk7XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnIGNvbW1hbmQgYWdhaW4gY3JlYXRlcyBhIG5ldyBjb3B5IHdpdGggdGhlIGxhdGVzdCBwbHVnaW4gdmVyc2lvbiwgc28geW91ciBub3RlcyB3aWxsIG5vdCBhcHBlYXIgaW4gaXQuJyk7XG4gIH0pO1xufVxuXG4vLyBDcmVhdGVzIENvZGVTY3JpcHQgVG9vbGtpdCdzIGludm9jYWJsZS1zY3JpcHRzIGZvbGRlciAodW5kZXIgYG1vZHVsZXNSb290YCkgaWYgaXQgaXMgbWlzc2luZy5cbi8vIEV2ZXJ5IGRlbW8gdmF1bHQgdGhlbiBoYXMgdGhlIHNhbWUgQ29kZVNjcmlwdCBUb29sa2l0IGxheW91dCBldmVuIHdoZW4gaXQgc2hpcHMgbm8gaW52b2NhYmxlIHNjcmlwdHMuXG4vLyBUaGUgY29tbWl0dGVkIHZhdWx0IHRoZXJlZm9yZSBjYXJyaWVzIG5vIG90aGVyd2lzZS1lbXB0eSBwbGFjZWhvbGRlciBmb2xkZXIuXG5hc3luYyBmdW5jdGlvbiBlbnN1cmVJbnZvY2FibGVTY3JpcHRzRm9sZGVyKGFwcDogQXBwKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGludm9jYWJsZVNjcmlwdHNGb2xkZXJQYXRoID0gam9pbihDT0RFX1NDUklQVF9UT09MS0lUX01PRFVMRVNfUk9PVCwgQ09ERV9TQ1JJUFRfVE9PTEtJVF9TRVRUSU5HUy5pbnZvY2FibGVTY3JpcHRzRm9sZGVyKTtcbiAgaWYgKCFhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5leGlzdHMoaW52b2NhYmxlU2NyaXB0c0ZvbGRlclBhdGgpKSB7XG4gICAgYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIubWtkaXIoaW52b2NhYmxlU2NyaXB0c0ZvbGRlclBhdGgpO1xuICB9XG59XG5cbi8vIFJlYWRzIHRoZSBwbHVnaW4gdGhlIHZhdWx0IGRlbW9uc3RyYXRlcyBvdXQgb2YgdGhpcyBoZWxwZXIncyBvd24gYGRhdGEuanNvbmAsIHdyaXR0ZW4gYnkgdGhlXG4vLyBQYWNrYWdpbmcgc3RlcCAoc2VlIGBEZW1vVmF1bHRIZWxwZXJTZXR0aW5nc2ApLiBBIHZhdWx0IHdpdGhvdXQgYSByZWFkYWJsZSBtYXJrZXIgd2FzIG5vdCBwcm9kdWNlZCBieVxuLy8gVGhhdCBzdGVwIFx1MjAxNCBoYW5kLWFzc2VtYmxlZCwgb3IgdW5wYWNrZWQgZnJvbSBzb21ldGhpbmcgdGhhdCBpcyBub3QgYSBkZW1vIHZhdWx0IFx1MjAxNCBzbyBpdCBpcyByZWZ1c2VkXG4vLyBSYXRoZXIgdGhhbiBib290c3RyYXBwZWQgYWdhaW5zdCBhIGd1ZXNzLlxuYXN5bmMgZnVuY3Rpb24gZ2V0RGVtb2VkUGx1Z2luSWQoYXBwOiBBcHApOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZXR0aW5nc1BhdGggPSBqb2luKGFwcC52YXVsdC5jb25maWdEaXIsIFBMVUdJTlNfRk9MREVSX05BTUUsIERFTU9fVkFVTFRfSEVMUEVSX1BMVUdJTl9JRCwgREFUQV9KU09OX0ZJTEVfTkFNRSk7XG4gIGlmICghYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHNldHRpbmdzUGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoSU5WQUxJRF9ERU1PX1ZBVUxUX0VSUk9SX01FU1NBR0UpO1xuICB9XG5cbiAgbGV0IHBhcnNlZDogdW5rbm93bjtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGF3YWl0IGFwcC52YXVsdC5hZGFwdGVyLnJlYWQoc2V0dGluZ3NQYXRoKSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKElOVkFMSURfREVNT19WQVVMVF9FUlJPUl9NRVNTQUdFLCB7IGNhdXNlOiBlcnJvciB9KTtcbiAgfVxuXG4gIGNvbnN0IGRlbW9lZFBsdWdpbklkID0gKHBhcnNlZCBhcyBudWxsIHwgUGFydGlhbDxEZW1vVmF1bHRIZWxwZXJTZXR0aW5ncz4pPy5kZW1vZWRQbHVnaW5JZDtcbiAgaWYgKHR5cGVvZiBkZW1vZWRQbHVnaW5JZCAhPT0gJ3N0cmluZycgfHwgZGVtb2VkUGx1Z2luSWQgPT09IEVNUFRZKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKElOVkFMSURfREVNT19WQVVMVF9FUlJPUl9NRVNTQUdFKTtcbiAgfVxuICByZXR1cm4gZGVtb2VkUGx1Z2luSWQ7XG59XG5cbi8vIFRlbGxzIHRoZSB1c2VyIHRoaXMgdmF1bHQgaXMgYSBzYW5kYm94LCB1c2luZyBPYnNpZGlhbidzIG93biBzYW5kYm94LXZhdWx0IHRyZWF0bWVudDogYW4gaW5maW5pdGVcbi8vIER1cmF0aW9uLCBkaXNtaXNzZWQgYnkgY2xpY2tpbmcgaXQuIFJhaXNlZCBsYXN0LCBzbyBpdCBpcyB0aGUgbmV3ZXN0IG5vdGljZSBvbiBzY3JlZW4gb25jZVxuLy8gQ29kZVNjcmlwdCBUb29sa2l0J3Mgc3RhcnR1cCBzY3JpcHQgaGFzIGRvbmUgaXRzIG93biB3b3JrLlxuLy9cbi8vIEEgYE5vdGljZWAgaXMgYnVpbHQgaW5zaWRlIHdoYXRldmVyIHdpbmRvdyBpcyBhY3RpdmUgYXQgdGhhdCBtb21lbnQsIGFuZCBTZXR0aW5ncyBpcyBhIFBPUE9VVCBXSU5ET1dcbi8vICh2ZXJpZmllZCBvbiAxLjEzLjYpIHRoYXQgYmVjb21lcyB0aGUgYWN0aXZlIG9uZSB3aGlsZSBpdCBpcyBvcGVuIFx1MjAxNCBzbyBhIG5vdGljZSByYWlzZWQgdGhlbiB3b3VsZCBiZVxuLy8gQ3JlYXRlZCBpbiB0aGUgc2V0dGluZ3Mgd2luZG93IGFuZCB2YW5pc2ggd2l0aCBpdC4gU2V0dGluZ3MgaXMgdGhlcmVmb3JlIGNsb3NlZCBmaXJzdDogT2JzaWRpYW4gaGFuZHNcbi8vIFRoZSBtYWluIHdpbmRvdyBiYWNrIGFzIHRoZSBwb3BvdXQgZ29lcyBhd2F5IChzeW5jaHJvbm91c2x5LCBiZWZvcmUgdGhlIG5vdGljZSBpcyBidWlsdCksIGFuZCBhIHVzZXJcbi8vIFdobyBoYXMganVzdCBvcGVuZWQgYSBkZW1vIHZhdWx0IHdhbnRzIHRvIHNlZSB0aGUgdmF1bHQgcmF0aGVyIHRoYW4gYSBzZXR0aW5ncyB3aW5kb3cgYW55d2F5LiBDbG9zaW5nXG4vLyBBbiBhbHJlYWR5LWNsb3NlZCBTZXR0aW5ncyBpcyBhIG5vLW9wLCBzbyBubyBvcGVuLXN0YXRlIHByb2JlIGlzIG5lZWRlZC5cbmZ1bmN0aW9uIHNob3dTYW5kYm94Tm90aWNlKGFwcDogQXBwLCBkZW1vZWRQbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IHBsdWdpbk5hbWUgPSBhcHAucGx1Z2lucy5tYW5pZmVzdHNbZGVtb2VkUGx1Z2luSWRdPy5uYW1lID8/IGRlbW9lZFBsdWdpbklkO1xuICBjb25zdCBmcmFnbWVudCA9IGJ1aWxkU2FuZGJveE5vdGljZUZyYWdtZW50KHBsdWdpbk5hbWUpO1xuICBhcHAuc2V0dGluZy5jbG9zZSgpO1xuICBuZXcgTm90aWNlKGZyYWdtZW50LCBTQU5EQk9YX05PVElDRV9EVVJBVElPTl9JTl9NSUxMSVNFQ09ORFMpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsU0FBUyxjQUFjO0FBSXZCLFNBQVMsWUFBWTtBQUNyQixTQUFTLGFBQWE7QUFDdEI7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
@@ -86,6 +86,7 @@ import {
86
86
  getCommunityPluginRepo,
87
87
  getLatestReleaseVersion
88
88
  } from "./community-plugins.mjs";
89
+ import { PluginNoticeMode } from "./components/plugin-notice-component.mjs";
89
90
  import { selectOption } from "./modals/select-option.mjs";
90
91
  const DEMO_VAULTS_CACHE_FOLDER = "obsidian-demo-vaults";
91
92
  const ARCHIVES_SUBFOLDER = "archives";
@@ -104,7 +105,8 @@ async function openDemoVault(params) {
104
105
  } = params;
105
106
  const progressNotice = __using(_stack, pluginNoticeComponent.showNoticeAfterDelay({
106
107
  content: `Opening demo vault for ${pluginName}\u2026`,
107
- delayInMilliseconds: 0
108
+ delayInMilliseconds: 0,
109
+ mode: PluginNoticeMode.Separate
108
110
  }));
109
111
  const repo = await getCommunityPluginRepo(pluginId);
110
112
  if (!repo) {
@@ -231,4 +233,4 @@ async function resolveDemoVaultArchive(params) {
231
233
  export {
232
234
  openDemoVault
233
235
  };
234
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQtPHZlcnNpb24+LnppcGAgYXJjaGl2ZSB0byBlYWNoIEdpdEh1YiByZWxlYXNlIChzZWVcbiAqIGBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0YCBpbiBgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKS4gVGhpcyByZXNvbHZlcyB0aGUgcGx1Z2luJ3MgcmVwb3NpdG9yeVxuICogZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSwgZG93bmxvYWRzIHRoZSBhcmNoaXZlIGZvciB0aGUgY2hvc2VuIHZlcnNpb24sIGFuZCBvcGVucyBpdCBhcyBhXG4gKiB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyBiZWhpbmQgdGhlIGxhdGVzdCByZWxlYXNlLCB0aGUgdXNlciBpc1xuICogb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d28gdmVyc2lvbnMuXG4gKlxuICogQSBwcm9ncmVzcyBub3RpY2UgaXMgc2hvd24gaW1tZWRpYXRlbHkgKGRvd25sb2FkICsgZXh0cmFjdGlvbiBjYW4gdGFrZSBhIHdoaWxlLCBzbyB0aGUgdXNlciBtdXN0IHNlZVxuICogc29tZXRoaW5nIGlzIGhhcHBlbmluZyByaWdodCBhd2F5KS4gT25seSB0aGUgZG93bmxvYWRlZCBBUkNISVZFIGlzIGNhY2hlZCAodW5kZXIgdGhlIE9TIHRlbXBcbiAqIGRpcmVjdG9yeSk7IGV2ZXJ5IGludm9jYXRpb24gZXh0cmFjdHMgYSBGUkVTSCBjb3B5IGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIGFuZCBvcGVucyB0aGF0LCBzbyBhXG4gKiBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbnRvIGEgbmV3IG9uZS4gVGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIgaXMgbmFtZWRcbiAqIGA8cGx1Z2luLWlkPi08dmVyc2lvbj4uZGVtby12YXVsdGAgc28gaXQgcmVhZHMgbmljZWx5IGluIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIuIE9ycGhhbmVkXG4gKiBleHRyYWN0ZWQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZmVhdHVyZSBnYXRlZCBieSBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYDsgdGhlIGNvbW1hbmQgaXMgaGlkZGVuIG9uIG1vYmlsZSBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgdGhlcmUuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBmZWF0dXJlIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgOyB0aGUgY29tbWFuZCBpcyBoaWRkZW4gb24gbW9iaWxlIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCB0aGVyZS4gKi9cbmltcG9ydCB7IHJlcXVlc3RVcmwgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7XG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuaW1wb3J0IHsgc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9tb2RhbHMvc2VsZWN0LW9wdGlvbi50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG9wZW5EZW1vVmF1bHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5EZW1vVmF1bHRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGlkLCB1c2VkIHRvIGxvY2F0ZSB0aGUgR2l0SHViIHJlcG9zaXRvcnksIHRvIG5hbWUgdGhlIGFyY2hpdmUgYXNzZXQsIGFuZCB0byBuYW1lIHRoZVxuICAgKiBjYWNoZWQgYXJjaGl2ZSBhbmQgdGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGRpc3BsYXkgbmFtZSwgdXNlZCB0byBsYWJlbCB0aGUgbm90aWNlcyBhbmQgdGhlIHZlcnNpb24tY2hvaWNlIGRpYWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQgdXNlZCB0byByZXBvcnQgcHJvZ3Jlc3MgYW5kIHByb2JsZW1zIChwbHVnaW4gbm90IGluIHRoZSByZWdpc3RyeSwgbWlzc2luZ1xuICAgKiBhcmNoaXZlKS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiwgb2ZmZXJlZCBhcyBvbmUgb2YgdGhlIHZlcnNpb24gY2hvaWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXJjaGl2ZTogQnVmZmVyO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyB7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHJlYWRvbmx5IHByb2dyZXNzTm90aWNlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlO1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuY29uc3QgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSID0gJ29ic2lkaWFuLWRlbW8tdmF1bHRzJztcbmNvbnN0IEFSQ0hJVkVTX1NVQkZPTERFUiA9ICdhcmNoaXZlcyc7XG5jb25zdCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUiA9ICdleHRyYWN0ZWQnO1xuY29uc3QgSFRUUF9TVEFUVVNfT0sgPSAyMDA7XG4vLyBPbmUgZGF5IGluIG1pbGxpc2Vjb25kcyAoMjQgKiA2MCAqIDYwICogMTAwMCkuXG5jb25zdCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMgPSA4Nl80MDBfMDAwO1xuXG4vKipcbiAqIERvd25sb2FkcyBhbmQgb3BlbnMgdGhlIHBsdWdpbidzIGRlbW8gdmF1bHQgaW4gYSBuZXcgT2JzaWRpYW4gd2luZG93LiBEZXNrdG9wIG9ubHkuXG4gKlxuICogSWYgdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyB0aGUgbGF0ZXN0IChvciBuZXdlciksIGl0cyBkZW1vIHZhdWx0IG9wZW5zIGRpcmVjdGx5OyBvdGhlcndpc2VcbiAqIHRoZSB1c2VyIGNob29zZXMgYmV0d2VlbiB0aGUgbGF0ZXN0IGFuZCB0aGUgY3VycmVudGx5LWluc3RhbGxlZCB2ZXJzaW9uLiBBIHByb2dyZXNzIG5vdGljZSBpcyBzaG93blxuICogaW1tZWRpYXRlbHkuIFRoZSBjaG9zZW4gdmVyc2lvbidzIGFyY2hpdmUgaXMgZG93bmxvYWRlZCBvbmNlICh0aGVuIHJldXNlZCBmcm9tIHRoZSBhcmNoaXZlIGNhY2hlKSxcbiAqIGJ1dCBhIGZyZXNoIGNvcHkgaXMgZXh0cmFjdGVkIGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIG9uIGV2ZXJ5IG9wZW4gXHUyMDE0IHRoZSB2YXVsdCBpcyBuZXZlciByZXVzZWRcbiAqIGFjcm9zcyBzZXNzaW9ucy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBPcGVuRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgdmF1bHQgaGFzIGJlZW4gb3BlbmVkLCBvciBvbmNlIHRoZSBvcGVyYXRpb24gaGFzXG4gKiBiZWVuIHJlcG9ydGVkIGFzIG5vdCBwb3NzaWJsZSAobm90aWNlIHNob3duKSBvciBjYW5jZWxsZWQgYnkgdGhlIHVzZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuRGVtb1ZhdWx0KHBhcmFtczogT3BlbkRlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHBsdWdpblZlcnNpb25cbiAgfSA9IHBhcmFtcztcblxuICAvLyBTaG93biBpbW1lZGlhdGVseSAoYGRlbGF5SW5NaWxsaXNlY29uZHM6IDBgKTogcmVzb2x2aW5nIHRoZSByZWxlYXNlLCBkb3dubG9hZGluZyBhbmQgZXh0cmFjdGluZyBjYW5cbiAgLy8gRWFjaCB0YWtlIGEgd2hpbGUsIHNvIHRoZSB1c2VyIG11c3Qgc2VlIHByb2dyZXNzIHRoZSBtb21lbnQgdGhlIGNvbW1hbmQgaXMgaW52b2tlZC5cbiAgdXNpbmcgcHJvZ3Jlc3NOb3RpY2UgPSBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZUFmdGVyRGVsYXkoe1xuICAgIGNvbnRlbnQ6IGBPcGVuaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX1cdTIwMjZgLFxuICAgIGRlbGF5SW5NaWxsaXNlY29uZHM6IDBcbiAgfSk7XG5cbiAgY29uc3QgcmVwbyA9IGF3YWl0IGdldENvbW11bml0eVBsdWdpblJlcG8ocGx1Z2luSWQpO1xuICBpZiAoIXJlcG8pIHtcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShgQ291bGQgbm90IGZpbmQgcGx1Z2luICR7cGx1Z2luTmFtZX0gaW4gdGhlIGNvbW11bml0eSBwbHVnaW5zIHJlZ2lzdHJ5LmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gcGx1Z2luVmVyc2lvbjtcbiAgY29uc3QgbGF0ZXN0VmVyc2lvbiA9IGF3YWl0IGdldExhdGVzdFJlbGVhc2VWZXJzaW9uKHJlcG8pO1xuXG4gIGxldCB2ZXJzaW9uVG9PcGVuOiBzdHJpbmc7XG4gIGlmIChjb21wYXJlVmVyc2lvbnMoY3VycmVudFZlcnNpb24sIGxhdGVzdFZlcnNpb24pID49IDApIHtcbiAgICB2ZXJzaW9uVG9PcGVuID0gY3VycmVudFZlcnNpb247XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2hvc2VuVmVyc2lvbiA9IGF3YWl0IHNlbGVjdE9wdGlvbjxudWxsIHwgc3RyaW5nPih7XG4gICAgICBhcHAsXG4gICAgICBtZXNzYWdlOiBgQ3VycmVudCB2ZXJzaW9uIG9mIHBsdWdpbiAke3BsdWdpbk5hbWV9IHYke2N1cnJlbnRWZXJzaW9ufSBpcyBub3QgdGhlIGxhdGVzdCAodiR7bGF0ZXN0VmVyc2lvbn0pYCxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlzQ3RhOiB0cnVlLFxuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGxhdGVzdCB2ZXJzaW9uICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBsYXRlc3RWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBgT3BlbiBkZW1vIHZhdWx0IGZvciBjdXJyZW50IHZlcnNpb24gKHYke2N1cnJlbnRWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50VmVyc2lvblxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ0NhbmNlbCcsXG4gICAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHRpdGxlOiBwbHVnaW5OYW1lXG4gICAgfSk7XG4gICAgaWYgKGNob3NlblZlcnNpb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmVyc2lvblRvT3BlbiA9IGNob3NlblZlcnNpb247XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gYXdhaXQgcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUoe1xuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHByb2dyZXNzTm90aWNlLFxuICAgIHJlcG8sXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcbiAgaWYgKCFhcmNoaXZlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRXh0cmFjdGluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb25Ub09wZW59XHUyMDI2YCk7XG4gIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpO1xuICBjb25zdCB2YXVsdERpcmVjdG9yeSA9IGV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyKHtcbiAgICBhcmNoaXZlLFxuICAgIHBsdWdpbklkLFxuICAgIHZlcnNpb246IHZlcnNpb25Ub09wZW5cbiAgfSk7XG5cbiAgd2luZG93LmVsZWN0cm9uLmlwY1JlbmRlcmVyLnNlbmRTeW5jKCd2YXVsdC1vcGVuJywgdmF1bHREaXJlY3RvcnksIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGV4dHJhY3RlZCBkZW1vLXZhdWx0IGZvbGRlcnMgbGVmdCBvdmVyIGZyb20gZWFybGllciBzZXNzaW9ucyAoYmVzdC1lZmZvcnQpLlxuICpcbiAqIEV2ZXJ5IG9wZW4gZXh0cmFjdHMgYSBmcmVzaCBjb3B5IGludG8gaXRzIG93biBmb2xkZXIgYW5kIG5ldmVyIGRlbGV0ZXMgaXQgYWZ0ZXJ3YXJkcyAodGhlIHZhdWx0IHN0YXlzXG4gKiBvcGVuIGluIGl0cyB3aW5kb3cpLCBzbyB0aGVzZSBhY2N1bXVsYXRlLiBUaGlzIGRyb3BzIGZvbGRlcnMgb2xkZXIgdGhhblxuICoge0BsaW5rIE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EU30uIEEgZm9sZGVyIHdob3NlIHZhdWx0IGlzIHN0aWxsIG9wZW4gaW4gYW5vdGhlclxuICogd2luZG93IGlzIGxvY2tlZCBvbiBXaW5kb3dzIGFuZCBjYW5ub3QgYmUgcmVtb3ZlZCBcdTIwMTQgdGhlIHJlbW92YWwgaXMgd3JhcHBlZCBzbyBzdWNoIGEgZm9sZGVyIGlzIHNpbXBseVxuICogc2tpcHBlZCBhbmQgcmV0cmllZCBvbiBhIGxhdGVyIG9wZW4uXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpOiB2b2lkIHtcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBpZiAoIWV4aXN0c1N5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBmb3IgKGNvbnN0IGVudHJ5TmFtZSBvZiByZWFkZGlyU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIGNvbnN0IGVudHJ5UGF0aCA9IGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgZW50cnlOYW1lKTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBzdGF0U3luYyhlbnRyeVBhdGgpO1xuICAgICAgaWYgKG5vdyAtIHN0YXRzLm10aW1lTXMgPCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBybVN5bmMoZW50cnlQYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBCZXN0LWVmZm9ydCBjbGVhbnVwOiBhbiBvcnBoYW4gd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiAobG9ja2VkIG9uIFdpbmRvd3MpIGNhbm5vdCBiZSByZW1vdmVkOyBza2lwIGl0IGFuZCByZXRyeSBvbiBhIGxhdGVyIG9wZW4uXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBkb3dubG9hZGVkIGRlbW8tdmF1bHQgYXJjaGl2ZSB0byBkaXNrLlxuICpcbiAqIEVsZWN0cm9uJ3MgYXNhciBsYXllciBpbnRlcmNlcHRzIGBmc2Agb3BlcmF0aW9ucyBvbiBhbnkgcGF0aCBjb250YWluaW5nIGAuYXNhcmAgYW5kIHRocm93cyBgRU5PRU5UYFxuICogd2hlbiBgY2htb2RgLWluZyBhbiBgLmFzYXJgIGZpbGUgKGl0IHRyZWF0cyBpdCBhcyBhbiBhcmNoaXZlIHJvb3QgcmF0aGVyIHRoYW4gYSBwbGFpbiBmaWxlKS4gQSBkZW1vXG4gKiB2YXVsdCBtYXkgc2hpcCBzdWNoIGEgZmlsZSAoZS5nLiBgX2Fzc2V0cy9Db2RlU2NyaXB0VG9vbGtpdC9tb2R1bGUuYXNhcmAgZGVtb25zdHJhdGluZyB0aGUgQVNBUlxuICogcmVxdWlyZSBmZWF0dXJlKSwgYW5kIGFkbS16aXAgYGNobW9kYHMgZXZlcnkgZXh0cmFjdGVkIGZpbGUsIHNvIGV4dHJhY3Rpb24gd291bGQgb3RoZXJ3aXNlIGNyYXNoLlxuICogSGFuZCBhZG0temlwIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCBcdTIwMTQgdGhlIHJlYWwgYGZzYCB3aXRoIGFzYXIgaW50ZXJjZXB0aW9uIGRpc2FibGVkIFx1MjAxNCBzbyB0aGVcbiAqIGAuYXNhcmAgZmlsZSBpcyB0cmVhdGVkIGFzIGEgcGxhaW4gZmlsZSBhbmQgYGNobW9kYCBzdWNjZWVkcy4gSXQgaXMgYSBkZXNrdG9wLW9ubHkgRWxlY3Ryb24gbW9kdWxlXG4gKiB3aXRoIG5vIGJ1bmRsZWQgdHlwZXMsIHNvIGl0IGlzIGxvYWRlZCB2aWEgYHdpbmRvdy5yZXF1aXJlYCBhbmQgdHlwZWQgYXMgYG5vZGU6ZnNgJ3Mgc2hhcGUuXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IHppcCBhcmNoaXZlIGJ5dGVzLlxuICogQHBhcmFtIHRhcmdldERpcmVjdG9yeSAtIFRoZSBkaXJlY3RvcnkgdG8gZXh0cmFjdCBpbnRvLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVtb1ZhdWx0QXJjaGl2ZShhcmNoaXZlOiBCdWZmZXIsIHRhcmdldERpcmVjdG9yeTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG9yaWdpbmFsRnMgPSB3aW5kb3cucmVxdWlyZSgnbm9kZTpvcmlnaW5hbC1mcycpIGFzIHR5cGVvZiBpbXBvcnQoJ25vZGU6ZnMnKTtcbiAgY29uc3QgemlwID0gbmV3IEFkbVppcChhcmNoaXZlLCB7IGZzOiBvcmlnaW5hbEZzIH0pO1xuICB6aXAuZXh0cmFjdEFsbFRvKHRhcmdldERpcmVjdG9yeSwgdHJ1ZSk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGFyY2hpdmUgaW50byBhIGZyZXNoLCB1bmlxdWVseS1uYW1lZCB0ZW1wb3JhcnkgZm9sZGVyIGFuZCByZXR1cm5zIHRoZSB2YXVsdCBwYXRoLlxuICpcbiAqIEEgdW5pcXVlIHBhcmVudCBmb2xkZXIgKGBta2R0ZW1wU3luY2ApIGd1YXJhbnRlZXMgYSBicmFuZC1uZXcgZXh0cmFjdGlvbiBldmVyeSB0aW1lIFx1MjAxNCB0aGUgZGVtbyB2YXVsdFxuICogaXMgbmV2ZXIgcmV1c2VkIGFjcm9zcyBvcGVucywgc28gYSBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbi4gSW5zaWRlIGl0LCB0aGUgdmF1bHQgZm9sZGVyXG4gKiBpcyBuYW1lZCBgPHBsdWdpbi1pZD4tPHZlcnNpb24+LmRlbW8tdmF1bHRgIHNvIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIgc2hvd3MgYSBmcmllbmRseSBuYW1lIChpdHNcbiAqIGJhc2VuYW1lKSByYXRoZXIgdGhhbiB0aGUgcmFuZG9tIHRlbXAgaWQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXN9LlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGZyZXNobHkgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIocGFyYW1zOiBFeHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlclBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgYXJjaGl2ZSwgcGx1Z2luSWQsIHZlcnNpb24gfSA9IHBhcmFtcztcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBta2RpclN5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGNvbnN0IHVuaXF1ZVBhcmVudERpcmVjdG9yeSA9IG1rZHRlbXBTeW5jKGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0tYCkpO1xuICBjb25zdCB2YXVsdERpcmVjdG9yeSA9IGpvaW4odW5pcXVlUGFyZW50RGlyZWN0b3J5LCBgJHtwbHVnaW5JZH0tJHt2ZXJzaW9ufS5kZW1vLXZhdWx0YCk7XG4gIGV4dHJhY3REZW1vVmF1bHRBcmNoaXZlKGFyY2hpdmUsIHZhdWx0RGlyZWN0b3J5KTtcbiAgcmV0dXJuIHZhdWx0RGlyZWN0b3J5O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBkZW1vLXZhdWx0IGFyY2hpdmUgYnl0ZXMgZm9yIGEgdmVyc2lvbiwgZG93bmxvYWRpbmcgYW5kIGNhY2hpbmcgdGhlbSBvbiBmaXJzdCB1c2UuXG4gKlxuICogT25seSB0aGUgYXJjaGl2ZSBpcyBjYWNoZWQgKGtleWVkIGJ5IHBsdWdpbiBpZCArIHZlcnNpb24pOyB0aGUgZXh0cmFjdGVkIHZhdWx0IGlzIG5vdC4gQSBjYWNoZSBoaXQgaXNcbiAqIHJldHVybmVkIHdpdGhvdXQgYW55IG5ldHdvcmsgcmVxdWVzdDsgYSBtaXNzIGRvd25sb2FkcyB0aGUgcmVsZWFzZSBhc3NldCwgd3JpdGVzIGl0IHRvIHRoZSBhcmNoaXZlXG4gKiBjYWNoZSwgYW5kIHJldHVybnMgdGhlIGZyZXNobHkgZG93bmxvYWRlZCBieXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIGFyY2hpdmUgYnl0ZXMsIG9yIGBudWxsYCB3aGVuIG5vIGFyY2hpdmUgaXMgYXZhaWxhYmxlIGZvclxuICogdGhlIHZlcnNpb24gKGEgbm90aWNlIGhhcyBiZWVuIHNob3duKS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUocGFyYW1zOiBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyk6IFByb21pc2U8QnVmZmVyIHwgbnVsbD4ge1xuICBjb25zdCB7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgYXJjaGl2ZXNEaXJlY3RvcnkgPSBqb2luKHRtcGRpcigpLCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIsIEFSQ0hJVkVTX1NVQkZPTERFUik7XG4gIGNvbnN0IGFyY2hpdmVQYXRoID0gam9pbihhcmNoaXZlc0RpcmVjdG9yeSwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0uemlwYCk7XG4gIGlmIChleGlzdHNTeW5jKGFyY2hpdmVQYXRoKSkge1xuICAgIHJldHVybiByZWFkRmlsZVN5bmMoYXJjaGl2ZVBhdGgpO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRG93bmxvYWRpbmcgZGVtbyB2YXVsdCBmb3IgJHtwbHVnaW5OYW1lfSB2JHt2ZXJzaW9ufVx1MjAyNmApO1xuICBjb25zdCBhc3NldFVybCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtyZXBvfS9yZWxlYXNlcy9kb3dubG9hZC8ke3ZlcnNpb259LyR7cGx1Z2luSWR9LWRlbW8tdmF1bHQtJHt2ZXJzaW9ufS56aXBgO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RVcmwoe1xuICAgIHRocm93OiBmYWxzZSxcbiAgICB1cmw6IGFzc2V0VXJsXG4gIH0pO1xuICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBIVFRQX1NUQVRVU19PSykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBObyBkZW1vIHZhdWx0IGlzIGF2YWlsYWJsZSBmb3IgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvbn0uYCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gQnVmZmVyLmZyb20ocmVzcG9uc2UuYXJyYXlCdWZmZXIpO1xuICBta2RpclN5bmMoYXJjaGl2ZXNEaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKGFyY2hpdmVQYXRoLCBhcmNoaXZlKTtcbiAgcmV0dXJuIGFyY2hpdmU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxPQUFPLFlBQVk7QUFDbkIsU0FBUyx1QkFBdUI7QUFFaEMsU0FBUyxVQUFBQSxlQUFjO0FBQ3ZCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxF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Uyx3QkFBd0IsU0FBaUIsaUJBQStCO0FBQy9FLFFBQU0sYUFBYSxPQUFPLFFBQVEsa0JBQWtCO0FBQ3BELFFBQU0sTUFBTSxJQUFJLE9BQU8sU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDO0FBQ2xELE1BQUksYUFBYSxpQkFBaUIsSUFBSTtBQUN4QztBQWFBLFNBQVMsOEJBQThCLFFBQXFEO0FBQzFGLFFBQU0sRUFBRSxTQUFTLFVBQVUsUUFBUSxJQUFJO0FBQ3ZDLFFBQU0sc0JBQXNCLEtBQUssT0FBTyxHQUFHLDBCQUEwQiwwQkFBMEI7QUFDL0YsWUFBVSxxQkFBcUIsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUNsRCxRQUFNLHdCQUF3QixZQUFZLEtBQUsscUJBQXFCLEdBQUcsUUFBUSxJQUFJLE9BQU8sR0FBRyxDQUFDO0FBQzlGLFFBQU0saUJBQWlCLEtBQUssdUJBQXVCLEdBQUcsUUFBUSxJQUFJLE9BQU8sYUFBYTtBQUN0RiwwQkFBd0IsU0FBUyxjQUFjO0FBQy9DLFNBQU87QUFDVDtBQWFBLGVBQWUsd0JBQXdCLFFBQStEO0FBQ3BHLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLG9CQUFvQixLQUFLLE9BQU8sR0FBRywwQkFBMEIsa0JBQWtCO0FBQ3JGLFFBQU0sY0FBYyxLQUFLLG1CQUFtQixHQUFHLFFBQVEsSUFBSSxPQUFPLE1BQU07QUFDeEUsTUFBSSxXQUFXLFdBQVcsR0FBRztBQUMzQixXQUFPLGFBQWEsV0FBVztBQUFBLEVBQ2pDO0FBRUEsaUJBQWUsV0FBVyw4QkFBOEIsVUFBVSxLQUFLLE9BQU8sUUFBRztBQUNqRixRQUFNLFdBQVcsc0JBQXNCLElBQUksc0JBQXNCLE9BQU8sSUFBSSxRQUFRLGVBQWUsT0FBTztBQUMxRyxRQUFNLFdBQVcsTUFBTSxXQUFXO0FBQUEsSUFDaEMsT0FBTztBQUFBLElBQ1AsS0FBSztBQUFBLEVBQ1AsQ0FBQztBQUNELE1BQUksU0FBUyxXQUFXLGdCQUFnQjtBQUN0QywwQkFBc0IsV0FBVyx5Q0FBeUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUNuRyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sVUFBVUMsUUFBTyxLQUFLLFNBQVMsV0FBVztBQUNoRCxZQUFVLG1CQUFtQixFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQ2hELGdCQUFjLGFBQWEsT0FBTztBQUNsQyxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbIkJ1ZmZlciIsICJCdWZmZXIiXQp9Cg==
236
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQtPHZlcnNpb24+LnppcGAgYXJjaGl2ZSB0byBlYWNoIEdpdEh1YiByZWxlYXNlIChzZWVcbiAqIGBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0YCBpbiBgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKS4gVGhpcyByZXNvbHZlcyB0aGUgcGx1Z2luJ3MgcmVwb3NpdG9yeVxuICogZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSwgZG93bmxvYWRzIHRoZSBhcmNoaXZlIGZvciB0aGUgY2hvc2VuIHZlcnNpb24sIGFuZCBvcGVucyBpdCBhcyBhXG4gKiB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyBiZWhpbmQgdGhlIGxhdGVzdCByZWxlYXNlLCB0aGUgdXNlciBpc1xuICogb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d28gdmVyc2lvbnMuXG4gKlxuICogQSBwcm9ncmVzcyBub3RpY2UgaXMgc2hvd24gaW1tZWRpYXRlbHkgKGRvd25sb2FkICsgZXh0cmFjdGlvbiBjYW4gdGFrZSBhIHdoaWxlLCBzbyB0aGUgdXNlciBtdXN0IHNlZVxuICogc29tZXRoaW5nIGlzIGhhcHBlbmluZyByaWdodCBhd2F5KS4gT25seSB0aGUgZG93bmxvYWRlZCBBUkNISVZFIGlzIGNhY2hlZCAodW5kZXIgdGhlIE9TIHRlbXBcbiAqIGRpcmVjdG9yeSk7IGV2ZXJ5IGludm9jYXRpb24gZXh0cmFjdHMgYSBGUkVTSCBjb3B5IGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIGFuZCBvcGVucyB0aGF0LCBzbyBhXG4gKiBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbnRvIGEgbmV3IG9uZS4gVGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIgaXMgbmFtZWRcbiAqIGA8cGx1Z2luLWlkPi08dmVyc2lvbj4uZGVtby12YXVsdGAgc28gaXQgcmVhZHMgbmljZWx5IGluIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIuIE9ycGhhbmVkXG4gKiBleHRyYWN0ZWQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZmVhdHVyZSBnYXRlZCBieSBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYDsgdGhlIGNvbW1hbmQgaXMgaGlkZGVuIG9uIG1vYmlsZSBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgdGhlcmUuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBmZWF0dXJlIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgOyB0aGUgY29tbWFuZCBpcyBoaWRkZW4gb24gbW9iaWxlIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCB0aGVyZS4gKi9cbmltcG9ydCB7IHJlcXVlc3RVcmwgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7XG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlTW9kZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgb3BlbkRlbW9WYXVsdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkRlbW9WYXVsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gaWQsIHVzZWQgdG8gbG9jYXRlIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSwgdG8gbmFtZSB0aGUgYXJjaGl2ZSBhc3NldCwgYW5kIHRvIG5hbWUgdGhlXG4gICAqIGNhY2hlZCBhcmNoaXZlIGFuZCB0aGUgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gZGlzcGxheSBuYW1lLCB1c2VkIHRvIGxhYmVsIHRoZSBub3RpY2VzIGFuZCB0aGUgdmVyc2lvbi1jaG9pY2UgZGlhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90aWNlIGNvbXBvbmVudCB1c2VkIHRvIHJlcG9ydCBwcm9ncmVzcyBhbmQgcHJvYmxlbXMgKHBsdWdpbiBub3QgaW4gdGhlIHJlZ2lzdHJ5LCBtaXNzaW5nXG4gICAqIGFyY2hpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uLCBvZmZlcmVkIGFzIG9uZSBvZiB0aGUgdmVyc2lvbiBjaG9pY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXMge1xuICByZWFkb25seSBhcmNoaXZlOiBCdWZmZXI7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcbiAgcmVhZG9ubHkgcHJvZ3Jlc3NOb3RpY2U6IFBsdWdpbk5vdGljZUNvbXBvbmVudERlbGF5ZWROb3RpY2U7XG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5jb25zdCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIgPSAnb2JzaWRpYW4tZGVtby12YXVsdHMnO1xuY29uc3QgQVJDSElWRVNfU1VCRk9MREVSID0gJ2FyY2hpdmVzJztcbmNvbnN0IEVYVFJBQ1RFRF9WQVVMVFNfU1VCRk9MREVSID0gJ2V4dHJhY3RlZCc7XG5jb25zdCBIVFRQX1NUQVRVU19PSyA9IDIwMDtcbi8vIE9uZSBkYXkgaW4gbWlsbGlzZWNvbmRzICgyNCAqIDYwICogNjAgKiAxMDAwKS5cbmNvbnN0IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUyA9IDg2XzQwMF8wMDA7XG5cbi8qKlxuICogRG93bmxvYWRzIGFuZCBvcGVucyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCBpbiBhIG5ldyBPYnNpZGlhbiB3aW5kb3cuIERlc2t0b3Agb25seS5cbiAqXG4gKiBJZiB0aGUgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uIGlzIHRoZSBsYXRlc3QgKG9yIG5ld2VyKSwgaXRzIGRlbW8gdmF1bHQgb3BlbnMgZGlyZWN0bHk7IG90aGVyd2lzZVxuICogdGhlIHVzZXIgY2hvb3NlcyBiZXR3ZWVuIHRoZSBsYXRlc3QgYW5kIHRoZSBjdXJyZW50bHktaW5zdGFsbGVkIHZlcnNpb24uIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duXG4gKiBpbW1lZGlhdGVseS4gVGhlIGNob3NlbiB2ZXJzaW9uJ3MgYXJjaGl2ZSBpcyBkb3dubG9hZGVkIG9uY2UgKHRoZW4gcmV1c2VkIGZyb20gdGhlIGFyY2hpdmUgY2FjaGUpLFxuICogYnV0IGEgZnJlc2ggY29weSBpcyBleHRyYWN0ZWQgaW50byBpdHMgb3duIHRlbXBvcmFyeSBmb2xkZXIgb24gZXZlcnkgb3BlbiBcdTIwMTQgdGhlIHZhdWx0IGlzIG5ldmVyIHJldXNlZFxuICogYWNyb3NzIHNlc3Npb25zLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIE9wZW5EZW1vVmF1bHRQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB2YXVsdCBoYXMgYmVlbiBvcGVuZWQsIG9yIG9uY2UgdGhlIG9wZXJhdGlvbiBoYXNcbiAqIGJlZW4gcmVwb3J0ZWQgYXMgbm90IHBvc3NpYmxlIChub3RpY2Ugc2hvd24pIG9yIGNhbmNlbGxlZCBieSB0aGUgdXNlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5EZW1vVmF1bHQocGFyYW1zOiBPcGVuRGVtb1ZhdWx0UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcGx1Z2luVmVyc2lvblxuICB9ID0gcGFyYW1zO1xuXG4gIC8vIFNob3duIGltbWVkaWF0ZWx5IChgZGVsYXlJbk1pbGxpc2Vjb25kczogMGApOiByZXNvbHZpbmcgdGhlIHJlbGVhc2UsIGRvd25sb2FkaW5nIGFuZCBleHRyYWN0aW5nIGNhblxuICAvLyBFYWNoIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWUgcHJvZ3Jlc3MgdGhlIG1vbWVudCB0aGUgY29tbWFuZCBpcyBpbnZva2VkLlxuICAvL1xuICAvLyBLZXB0IG91dCBvZiB0aGUgc2hhcmVkIHNsb3QgKGBTZXBhcmF0ZWApLCBiZWNhdXNlIHRoaXMgdmVyeSBmdW5jdGlvbiByYWlzZXMgb3JkaW5hcnkgbm90aWNlcyB3aGlsZVxuICAvLyBUaGUgb3BlcmF0aW9uIGlzIHN0aWxsIHJ1bm5pbmcgXHUyMDE0IFwibm90IGluIHRoZSByZWdpc3RyeVwiLCBcIm5vIGRlbW8gdmF1bHQgZm9yIHRoaXMgdmVyc2lvblwiIFx1MjAxNCBhbmQgYVxuICAvLyBTbG90IG5vdGljZSB3b3VsZCBoaWRlIHRoZSBwcm9ncmVzcyBub3RpY2UgcmF0aGVyIHRoYW4gYXBwZWFyIGJlc2lkZSBpdC5cbiAgdXNpbmcgcHJvZ3Jlc3NOb3RpY2UgPSBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZUFmdGVyRGVsYXkoe1xuICAgIGNvbnRlbnQ6IGBPcGVuaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX1cdTIwMjZgLFxuICAgIGRlbGF5SW5NaWxsaXNlY29uZHM6IDAsXG4gICAgbW9kZTogUGx1Z2luTm90aWNlTW9kZS5TZXBhcmF0ZVxuICB9KTtcblxuICBjb25zdCByZXBvID0gYXdhaXQgZ2V0Q29tbXVuaXR5UGx1Z2luUmVwbyhwbHVnaW5JZCk7XG4gIGlmICghcmVwbykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBDb3VsZCBub3QgZmluZCBwbHVnaW4gJHtwbHVnaW5OYW1lfSBpbiB0aGUgY29tbXVuaXR5IHBsdWdpbnMgcmVnaXN0cnkuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwbHVnaW5WZXJzaW9uO1xuICBjb25zdCBsYXRlc3RWZXJzaW9uID0gYXdhaXQgZ2V0TGF0ZXN0UmVsZWFzZVZlcnNpb24ocmVwbyk7XG5cbiAgbGV0IHZlcnNpb25Ub09wZW46IHN0cmluZztcbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhjdXJyZW50VmVyc2lvbiwgbGF0ZXN0VmVyc2lvbikgPj0gMCkge1xuICAgIHZlcnNpb25Ub09wZW4gPSBjdXJyZW50VmVyc2lvbjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjaG9zZW5WZXJzaW9uID0gYXdhaXQgc2VsZWN0T3B0aW9uPG51bGwgfCBzdHJpbmc+KHtcbiAgICAgIGFwcCxcbiAgICAgIG1lc3NhZ2U6IGBDdXJyZW50IHZlcnNpb24gb2YgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7Y3VycmVudFZlcnNpb259IGlzIG5vdCB0aGUgbGF0ZXN0ICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaXNDdGE6IHRydWUsXG4gICAgICAgICAgdGV4dDogYE9wZW4gZGVtbyB2YXVsdCBmb3IgbGF0ZXN0IHZlcnNpb24gKHYke2xhdGVzdFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGxhdGVzdFZlcnNpb25cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGN1cnJlbnQgdmVyc2lvbiAodiR7Y3VycmVudFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGN1cnJlbnRWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnQ2FuY2VsJyxcbiAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgdGl0bGU6IHBsdWdpbk5hbWVcbiAgICB9KTtcbiAgICBpZiAoY2hvc2VuVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2ZXJzaW9uVG9PcGVuID0gY2hvc2VuVmVyc2lvbjtcbiAgfVxuXG4gIGNvbnN0IGFyY2hpdmUgPSBhd2FpdCByZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZSh7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uOiB2ZXJzaW9uVG9PcGVuXG4gIH0pO1xuICBpZiAoIWFyY2hpdmUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwcm9ncmVzc05vdGljZS5zZXRDb250ZW50KGBFeHRyYWN0aW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvblRvT3Blbn1cdTIwMjZgKTtcbiAgY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk7XG4gIGNvbnN0IHZhdWx0RGlyZWN0b3J5ID0gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIoe1xuICAgIGFyY2hpdmUsXG4gICAgcGx1Z2luSWQsXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcblxuICB3aW5kb3cuZWxlY3Ryb24uaXBjUmVuZGVyZXIuc2VuZFN5bmMoJ3ZhdWx0LW9wZW4nLCB2YXVsdERpcmVjdG9yeSwgZmFsc2UpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgZXh0cmFjdGVkIGRlbW8tdmF1bHQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIChiZXN0LWVmZm9ydCkuXG4gKlxuICogRXZlcnkgb3BlbiBleHRyYWN0cyBhIGZyZXNoIGNvcHkgaW50byBpdHMgb3duIGZvbGRlciBhbmQgbmV2ZXIgZGVsZXRlcyBpdCBhZnRlcndhcmRzICh0aGUgdmF1bHQgc3RheXNcbiAqIG9wZW4gaW4gaXRzIHdpbmRvdyksIHNvIHRoZXNlIGFjY3VtdWxhdGUuIFRoaXMgZHJvcHMgZm9sZGVycyBvbGRlciB0aGFuXG4gKiB7QGxpbmsgT1JQSEFORURfRVhUUkFDVEVEX1ZBVUxUX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTfS4gQSBmb2xkZXIgd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiBpbiBhbm90aGVyXG4gKiB3aW5kb3cgaXMgbG9ja2VkIG9uIFdpbmRvd3MgYW5kIGNhbm5vdCBiZSByZW1vdmVkIFx1MjAxNCB0aGUgcmVtb3ZhbCBpcyB3cmFwcGVkIHNvIHN1Y2ggYSBmb2xkZXIgaXMgc2ltcGx5XG4gKiBza2lwcGVkIGFuZCByZXRyaWVkIG9uIGEgbGF0ZXIgb3Blbi5cbiAqL1xuZnVuY3Rpb24gY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk6IHZvaWQge1xuICBjb25zdCBleHRyYWN0ZWRWYXVsdHNSb290ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUik7XG4gIGlmICghZXhpc3RzU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGZvciAoY29uc3QgZW50cnlOYW1lIG9mIHJlYWRkaXJTeW5jKGV4dHJhY3RlZFZhdWx0c1Jvb3QpKSB7XG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbihleHRyYWN0ZWRWYXVsdHNSb290LCBlbnRyeU5hbWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IHN0YXRTeW5jKGVudHJ5UGF0aCk7XG4gICAgICBpZiAobm93IC0gc3RhdHMubXRpbWVNcyA8IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJtU3luYyhlbnRyeVBhdGgsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEJlc3QtZWZmb3J0IGNsZWFudXA6IGFuIG9ycGhhbiB3aG9zZSB2YXVsdCBpcyBzdGlsbCBvcGVuIChsb2NrZWQgb24gV2luZG93cykgY2Fubm90IGJlIHJlbW92ZWQ7IHNraXAgaXQgYW5kIHJldHJ5IG9uIGEgbGF0ZXIgb3Blbi5cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBhIGRvd25sb2FkZWQgZGVtby12YXVsdCBhcmNoaXZlIHRvIGRpc2suXG4gKlxuICogRWxlY3Ryb24ncyBhc2FyIGxheWVyIGludGVyY2VwdHMgYGZzYCBvcGVyYXRpb25zIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCBhbmQgdGhyb3dzIGBFTk9FTlRgXG4gKiB3aGVuIGBjaG1vZGAtaW5nIGFuIGAuYXNhcmAgZmlsZSAoaXQgdHJlYXRzIGl0IGFzIGFuIGFyY2hpdmUgcm9vdCByYXRoZXIgdGhhbiBhIHBsYWluIGZpbGUpLiBBIGRlbW9cbiAqIHZhdWx0IG1heSBzaGlwIHN1Y2ggYSBmaWxlIChlLmcuIGBfYXNzZXRzL0NvZGVTY3JpcHRUb29sa2l0L21vZHVsZS5hc2FyYCBkZW1vbnN0cmF0aW5nIHRoZSBBU0FSXG4gKiByZXF1aXJlIGZlYXR1cmUpLCBhbmQgYWRtLXppcCBgY2htb2RgcyBldmVyeSBleHRyYWN0ZWQgZmlsZSwgc28gZXh0cmFjdGlvbiB3b3VsZCBvdGhlcndpc2UgY3Jhc2guXG4gKiBIYW5kIGFkbS16aXAgRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIFx1MjAxNCB0aGUgcmVhbCBgZnNgIHdpdGggYXNhciBpbnRlcmNlcHRpb24gZGlzYWJsZWQgXHUyMDE0IHNvIHRoZVxuICogYC5hc2FyYCBmaWxlIGlzIHRyZWF0ZWQgYXMgYSBwbGFpbiBmaWxlIGFuZCBgY2htb2RgIHN1Y2NlZWRzLiBJdCBpcyBhIGRlc2t0b3Atb25seSBFbGVjdHJvbiBtb2R1bGVcbiAqIHdpdGggbm8gYnVuZGxlZCB0eXBlcywgc28gaXQgaXMgbG9hZGVkIHZpYSBgd2luZG93LnJlcXVpcmVgIGFuZCB0eXBlZCBhcyBgbm9kZTpmc2AncyBzaGFwZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgemlwIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcGFyYW0gdGFyZ2V0RGlyZWN0b3J5IC0gVGhlIGRpcmVjdG9yeSB0byBleHRyYWN0IGludG8uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REZW1vVmF1bHRBcmNoaXZlKGFyY2hpdmU6IEJ1ZmZlciwgdGFyZ2V0RGlyZWN0b3J5OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgb3JpZ2luYWxGcyA9IHdpbmRvdy5yZXF1aXJlKCdub2RlOm9yaWdpbmFsLWZzJykgYXMgdHlwZW9mIGltcG9ydCgnbm9kZTpmcycpO1xuICBjb25zdCB6aXAgPSBuZXcgQWRtWmlwKGFyY2hpdmUsIHsgZnM6IG9yaWdpbmFsRnMgfSk7XG4gIHppcC5leHRyYWN0QWxsVG8odGFyZ2V0RGlyZWN0b3J5LCB0cnVlKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYXJjaGl2ZSBpbnRvIGEgZnJlc2gsIHVuaXF1ZWx5LW5hbWVkIHRlbXBvcmFyeSBmb2xkZXIgYW5kIHJldHVybnMgdGhlIHZhdWx0IHBhdGguXG4gKlxuICogQSB1bmlxdWUgcGFyZW50IGZvbGRlciAoYG1rZHRlbXBTeW5jYCkgZ3VhcmFudGVlcyBhIGJyYW5kLW5ldyBleHRyYWN0aW9uIGV2ZXJ5IHRpbWUgXHUyMDE0IHRoZSBkZW1vIHZhdWx0XG4gKiBpcyBuZXZlciByZXVzZWQgYWNyb3NzIG9wZW5zLCBzbyBhIHByZXZpb3VzIHNlc3Npb24ncyBlZGl0cyBuZXZlciBsZWFrIGluLiBJbnNpZGUgaXQsIHRoZSB2YXVsdCBmb2xkZXJcbiAqIGlzIG5hbWVkIGA8cGx1Z2luLWlkPi08dmVyc2lvbj4uZGVtby12YXVsdGAgc28gT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlciBzaG93cyBhIGZyaWVuZGx5IG5hbWUgKGl0c1xuICogYmFzZW5hbWUpIHJhdGhlciB0aGFuIHRoZSByYW5kb20gdGVtcCBpZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBFeHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlclBhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgZnJlc2hseSBleHRyYWN0ZWQgdmF1bHQgZm9sZGVyLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlcihwYXJhbXM6IEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3QgeyBhcmNoaXZlLCBwbHVnaW5JZCwgdmVyc2lvbiB9ID0gcGFyYW1zO1xuICBjb25zdCBleHRyYWN0ZWRWYXVsdHNSb290ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUik7XG4gIG1rZGlyU3luYyhleHRyYWN0ZWRWYXVsdHNSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgY29uc3QgdW5pcXVlUGFyZW50RGlyZWN0b3J5ID0gbWtkdGVtcFN5bmMoam9pbihleHRyYWN0ZWRWYXVsdHNSb290LCBgJHtwbHVnaW5JZH0tJHt2ZXJzaW9ufS1gKSk7XG4gIGNvbnN0IHZhdWx0RGlyZWN0b3J5ID0gam9pbih1bmlxdWVQYXJlbnREaXJlY3RvcnksIGAke3BsdWdpbklkfS0ke3ZlcnNpb259LmRlbW8tdmF1bHRgKTtcbiAgZXh0cmFjdERlbW9WYXVsdEFyY2hpdmUoYXJjaGl2ZSwgdmF1bHREaXJlY3RvcnkpO1xuICByZXR1cm4gdmF1bHREaXJlY3Rvcnk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGRlbW8tdmF1bHQgYXJjaGl2ZSBieXRlcyBmb3IgYSB2ZXJzaW9uLCBkb3dubG9hZGluZyBhbmQgY2FjaGluZyB0aGVtIG9uIGZpcnN0IHVzZS5cbiAqXG4gKiBPbmx5IHRoZSBhcmNoaXZlIGlzIGNhY2hlZCAoa2V5ZWQgYnkgcGx1Z2luIGlkICsgdmVyc2lvbik7IHRoZSBleHRyYWN0ZWQgdmF1bHQgaXMgbm90LiBBIGNhY2hlIGhpdCBpc1xuICogcmV0dXJuZWQgd2l0aG91dCBhbnkgbmV0d29yayByZXF1ZXN0OyBhIG1pc3MgZG93bmxvYWRzIHRoZSByZWxlYXNlIGFzc2V0LCB3cml0ZXMgaXQgdG8gdGhlIGFyY2hpdmVcbiAqIGNhY2hlLCBhbmQgcmV0dXJucyB0aGUgZnJlc2hseSBkb3dubG9hZGVkIGJ5dGVzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgYXJjaGl2ZSBieXRlcywgb3IgYG51bGxgIHdoZW4gbm8gYXJjaGl2ZSBpcyBhdmFpbGFibGUgZm9yXG4gKiB0aGUgdmVyc2lvbiAoYSBub3RpY2UgaGFzIGJlZW4gc2hvd24pLlxuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZShwYXJhbXM6IFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zKTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gIGNvbnN0IHtcbiAgICBwbHVnaW5JZCxcbiAgICBwbHVnaW5OYW1lLFxuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgICBwcm9ncmVzc05vdGljZSxcbiAgICByZXBvLFxuICAgIHZlcnNpb25cbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBhcmNoaXZlc0RpcmVjdG9yeSA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgQVJDSElWRVNfU1VCRk9MREVSKTtcbiAgY29uc3QgYXJjaGl2ZVBhdGggPSBqb2luKGFyY2hpdmVzRGlyZWN0b3J5LCBgJHtwbHVnaW5JZH0tJHt2ZXJzaW9ufS56aXBgKTtcbiAgaWYgKGV4aXN0c1N5bmMoYXJjaGl2ZVBhdGgpKSB7XG4gICAgcmV0dXJuIHJlYWRGaWxlU3luYyhhcmNoaXZlUGF0aCk7XG4gIH1cblxuICBwcm9ncmVzc05vdGljZS5zZXRDb250ZW50KGBEb3dubG9hZGluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb259XHUyMDI2YCk7XG4gIGNvbnN0IGFzc2V0VXJsID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3JlcG99L3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0vJHtwbHVnaW5JZH0tZGVtby12YXVsdC0ke3ZlcnNpb259LnppcGA7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdFVybCh7XG4gICAgdGhyb3c6IGZhbHNlLFxuICAgIHVybDogYXNzZXRVcmxcbiAgfSk7XG4gIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IEhUVFBfU1RBVFVTX09LKSB7XG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UoYE5vIGRlbW8gdmF1bHQgaXMgYXZhaWxhYmxlIGZvciBwbHVnaW4gJHtwbHVnaW5OYW1lfSB2JHt2ZXJzaW9ufS5gKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGFyY2hpdmUgPSBCdWZmZXIuZnJvbShyZXNwb25zZS5hcnJheUJ1ZmZlcik7XG4gIG1rZGlyU3luYyhhcmNoaXZlc0RpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIHdyaXRlRmlsZVN5bmMoYXJjaGl2ZVBhdGgsIGFyY2hpdmUpO1xuICByZXR1cm4gYXJjaGl2ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJBLE9BQU8sWUFBWTtBQUNuQixTQUFTLHVCQUF1QjtBQUVoQyxTQUFTLFVBQUFBLGVBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGNBQWM7QUFFdkIsU0FBUyxrQkFBa0I7QUFPM0IsU0FBUyxZQUFZO0FBQ3JCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxvQkFBb0I7QUFpRDdCLE1BQU0sMkJBQTJCO0FBQ2pDLE1BQU0scUJBQXFCO0FBQzNCLE1BQU0sNkJBQTZCO0FBQ25DLE1BQU0saUJBQWlCO0FBRXZCLE1BQU0sbURBQW1EO0FBZXpELGVBQXNCLGNBQWMsUUFBNEM7QUFlOUU7QUFBQTtBQWRBLFVBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQVFKLFVBQU0saUJBQWlCLHNDQUFzQixxQkFBcUI7QUFBQSxNQUNoRSxTQUFTLDBCQUEwQixVQUFVO0FBQUEsTUFDN0MscUJBQXFCO0FBQUEsTUFDckIsTUFBTSxpQkFBaUI7QUFBQSxJQUN6QixDQUFDO0FBRUQsVUFB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
@@ -19,6 +19,7 @@ export * as 'css-class' from './css-class.mjs';
19
19
  export * as 'data-handler' from './data-handler.mjs';
20
20
  export * as 'dataview-link' from './dataview-link.mjs';
21
21
  export * as 'dataview' from './dataview.mjs';
22
+ export * as 'demo-vault-helper-settings' from './demo-vault-helper-settings.mjs';
22
23
  export * as 'demo-vault-helper' from './demo-vault-helper.mjs';
23
24
  export * as 'desktop-demo-vault-opener' from './desktop-demo-vault-opener.mjs';
24
25
  export * as 'desktop-trusted-input' from './desktop-trusted-input.mjs';
@@ -41,6 +41,7 @@ import * as css_class from "./css-class.mjs";
41
41
  import * as data_handler from "./data-handler.mjs";
42
42
  import * as dataview_link from "./dataview-link.mjs";
43
43
  import * as dataview from "./dataview.mjs";
44
+ import * as demo_vault_helper_settings from "./demo-vault-helper-settings.mjs";
44
45
  import * as demo_vault_helper from "./demo-vault-helper.mjs";
45
46
  import * as desktop_demo_vault_opener from "./desktop-demo-vault-opener.mjs";
46
47
  import * as desktop_trusted_input from "./desktop-trusted-input.mjs";
@@ -117,6 +118,7 @@ export {
117
118
  dataview,
118
119
  dataview_link as "dataview-link",
119
120
  demo_vault_helper as "demo-vault-helper",
121
+ demo_vault_helper_settings as "demo-vault-helper-settings",
120
122
  desktop_demo_vault_opener as "desktop-demo-vault-opener",
121
123
  desktop_trusted_input as "desktop-trusted-input",
122
124
  editor,
@@ -171,4 +173,4 @@ export {
171
173
  view_registrar as "view-registrar",
172
174
  workspace
173
175
  };
174
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1oYW5kbGVycycgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLXJlZ2lzdHJhcicgZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnY29tbXVuaXR5LXBsdWdpbnMnIGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbXBvbmVudHMnIGZyb20gJy4vY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29uc3RydWN0b3JzJyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGF0YS1oYW5kbGVyJyBmcm9tICcuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXInIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXInIGZyb20gJy4vZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC10cnVzdGVkLWlucHV0JyBmcm9tICcuL2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhcicgZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvcicgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2V2ZW50cycgZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2V4dGVuc2lvbnMtcmVnaXN0cmFyJyBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWNoYW5nZScgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1tYW5hZ2VyJyBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1zeXN0ZW0nIGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzJyBmcm9tICcuL2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlcicgZnJvbSAnLi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgKiBhcyAnaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyJyBmcm9tICcuL2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnaHRtbC1lbGVtZW50JyBmcm9tICcuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQgKiBhcyAnaTE4bicgZnJvbSAnLi9pMThuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdpcy1pbi1vYnNpZGlhbicgZnJvbSAnLi9pcy1pbi1vYnNpZGlhbi50cyc7XG5leHBvcnQgKiBhcyAnbGluay11cGRhdGUtcHJvZ3Jlc3MnIGZyb20gJy4vbGluay11cGRhdGUtcHJvZ3Jlc3MudHMnO1xuZXhwb3J0ICogYXMgJ2xpbmsnIGZyb20gJy4vbGluay50cyc7XG5leHBvcnQgKiBhcyAnbG9nZ2VyJyBmcm9tICcuL2xvZ2dlci50cyc7XG5leHBvcnQgKiBhcyAnbG9vcCcgZnJvbSAnLi9sb29wLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXInIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3NvcicgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tdmlldycgZnJvbSAnLi9tYXJrZG93bi12aWV3LnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bicgZnJvbSAnLi9tYXJrZG93bi50cyc7XG5leHBvcnQgKiBhcyAnbWVudS1ldmVudC1yZWdpc3RyYXInIGZyb20gJy4vbWVudS1ldmVudC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21ldGFkYXRhLWNhY2hlJyBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCAqIGFzICdtb2RhbHMnIGZyb20gJy4vbW9kYWxzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdub3RlYm9vay1uYXZpZ2F0b3InIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tc2V0dGluZ3MnIGZyb20gJy4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ3BhcnNlLWxpbmsnIGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQgKiBhcyAncGF0aC1zZXR0aW5ncycgZnJvbSAnLi9wYXRoLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwZGYnIGZyb20gJy4vcGRmLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4nIGZyb20gJy4vcGx1Z2luL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3BvcG92ZXJzJyBmcm9tICcuL3BvcG92ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdxdWV1ZScgZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQgKiBhcyAncmVhY3QnIGZyb20gJy4vcmVhY3QvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3JlZmVyZW5jZScgZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLWxvY2snIGZyb20gJy4vcmVzb3VyY2UtbG9jay50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtdXJsJyBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgKiBhcyAncmliYm9uLWljb24tcmVnaXN0cmFyJyBmcm9tICcuL3JpYmJvbi1pY29uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1jb21wb25lbnRzJyBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1leCcgZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWdyb3VwLWV4JyBmcm9tICcuL3NldHRpbmctZ3JvdXAtZXgudHMnO1xuZXhwb3J0ICogYXMgJ3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXInIGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGlvbicgZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC1kZWxldGUnIGZyb20gJy4vdmF1bHQtZGVsZXRlLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC10cmFuc2FjdGlvbicgZnJvbSAnLi92YXVsdC10cmFuc2FjdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQnIGZyb20gJy4vdmF1bHQudHMnO1xuZXhwb3J0ICogYXMgJ3ZpZXctcmVnaXN0cmFyJyBmcm9tICcuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd3b3Jrc3BhY2UnIGZyb20gJy4vd29ya3NwYWNlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsWUFBWUEsMEJBQTRCO0FBQ3hDLFlBQVksU0FBVztBQUN2QixZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksYUFBZTtBQUMzQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWSxZQUFjO0FBQzFCLFlBQVksWUFBYztBQUMxQixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVksaUJBQW1CO0FBQy9CLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQywwQkFBNEI7QUFDeEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVksWUFBYztBQUMxQixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsNkNBQStDO0FBQzNELFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyx1Q0FBeUM7QUFDckQsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHlDQUEyQztBQUN2RCxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZLFdBQWE7QUFDekIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksZUFBaUI7IiwKICAibmFtZXMiOiBbImFjdGl2ZS1maWxlLXByb3ZpZGVyIiwgImFzeW5jLXdpdGgtbm90aWNlIiwgImF0dGFjaG1lbnQtcGF0aCIsICJiYXNlcy12aWV3LXJlZ2lzdHJhciIsICJjYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgiLCAiY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbiIsICJjb2RlLWJsb2NrLXJlZy1leHAiLCAiY29tbWFuZC1oYW5kbGVycyIsICJjb21tYW5kLXJlZ2lzdHJhciIsICJjb21tdW5pdHktcGx1Z2lucyIsICJjc3MtY2xhc3MiLCAiZGF0YS1oYW5kbGVyIiwgImRhdGF2aWV3LWxpbmsiLCAiZGVtby12YXVsdC1oZWxwZXIiLCAiZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lciIsICJkZXNrdG9wLXRydXN0ZWQtaW5wdXQiLCAiZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIiLCAiZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyIiwgImV4dGVuc2lvbnMtcmVnaXN0cmFyIiwgImZpbGUtY2hhbmdlIiwgImZpbGUtbWFuYWdlciIsICJmaWxlLXN5c3RlbSIsICJmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cyIsICJob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIiLCAiaHRtbC1lbGVtZW50IiwgImlzLWluLW9ic2lkaWFuIiwgImxpbmstdXBkYXRlLXByb2dyZXNzIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3NvciIsICJtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tdmlldyIsICJtZW51LWV2ZW50LXJlZ2lzdHJhciIsICJtZXRhZGF0YS1jYWNoZSIsICJub3RlYm9vay1uYXZpZ2F0b3IiLCAib2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIiLCAib2JzaWRpYW4tc2V0dGluZ3MiLCAicGFyc2UtbGluayIsICJwYXRoLXNldHRpbmdzIiwgInBsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIiLCAicmVzb3VyY2UtbG9jayIsICJyZXNvdXJjZS11cmwiLCAicmliYm9uLWljb24tcmVnaXN0cmFyIiwgInNldHRpbmctY29tcG9uZW50cyIsICJzZXR0aW5nLWV4IiwgInNldHRpbmctZ3JvdXAtZXgiLCAic3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhciIsICJ2YXVsdC1kZWxldGUiLCAidmF1bHQtdHJhbnNhY3Rpb24iLCAidmlldy1yZWdpc3RyYXIiXQp9Cg==
176
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1oYW5kbGVycycgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLXJlZ2lzdHJhcicgZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnY29tbXVuaXR5LXBsdWdpbnMnIGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbXBvbmVudHMnIGZyb20gJy4vY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29uc3RydWN0b3JzJyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGF0YS1oYW5kbGVyJyBmcm9tICcuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MnIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3InIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzICdldmVudHMnIGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzICdleHRlbnNpb25zLXJlZ2lzdHJhcicgZnJvbSAnLi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1jaGFuZ2UnIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtbWFuYWdlcicgZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtc3lzdGVtJyBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cycgZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXInIGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstdXBkYXRlLXByb2dyZXNzJyBmcm9tICcuL2xpbmstdXBkYXRlLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rJyBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2xvZ2dlcicgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2xvb3AnIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3InIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXZpZXcnIGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24nIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyJyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtZXRhZGF0YS1jYWNoZScgZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWxzJyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZWJvb2stbmF2aWdhdG9yJyBmcm9tICcuL25vdGVib29rLW5hdmlnYXRvci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXNldHRpbmdzJyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwYXJzZS1saW5rJyBmcm9tICcuL3BhcnNlLWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ3BhdGgtc2V0dGluZ3MnIGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGRmJyBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luJyBmcm9tICcuL3BsdWdpbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdwb3BvdmVycycgZnJvbSAnLi9wb3BvdmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncXVldWUnIGZyb20gJy4vcXVldWUudHMnO1xuZXhwb3J0ICogYXMgJ3JlYWN0JyBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdyZWZlcmVuY2UnIGZyb20gJy4vcmVmZXJlbmNlLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS1sb2NrJyBmcm9tICcuL3Jlc291cmNlLWxvY2sudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLXVybCcgZnJvbSAnLi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0ICogYXMgJ3JpYmJvbi1pY29uLXJlZ2lzdHJhcicgZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctY29tcG9uZW50cycgZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZXgnIGZyb20gJy4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1ncm91cC1leCcgZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyJyBmcm9tICcuL3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRpb24nIGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtZGVsZXRlJyBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtdHJhbnNhY3Rpb24nIGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0JyBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzICd2aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi92aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnd29ya3NwYWNlJyBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVlBLDBCQUE0QjtBQUN4QyxZQUFZLFNBQVc7QUFDdkIsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLHFCQUF1QjtBQUNuQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLGFBQWU7QUFDM0IsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxxQ0FBdUM7QUFDbkQsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVksa0JBQW9CO0FBQ2hDLFlBQVlDLGVBQWlCO0FBQzdCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQyxnQ0FBa0M7QUFDOUMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZLFlBQWM7QUFDMUIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyx5Q0FBMkM7QUFDdkQsWUFBWSxpQkFBbUI7QUFDL0IsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFVBQVk7QUFDeEIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFVBQVk7QUFDeEIsWUFBWSxZQUFjO0FBQzFCLFlBQVksVUFBWTtBQUN4QixZQUFZQyw2Q0FBK0M7QUFDM0QsWUFBWUMsbUNBQXFDO0FBQ2pELFlBQVlDLHVDQUF5QztBQUNyRCxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksWUFBYztBQUMxQixZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksU0FBVztBQUN2QixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsa0NBQW9DO0FBQ2hELFlBQVksY0FBZ0I7QUFDNUIsWUFBWSxXQUFhO0FBQ3pCLFlBQVksV0FBYTtBQUN6QixZQUFZLGVBQWlCO0FBQzdCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZLGdCQUFrQjtBQUM5QixZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVksV0FBYTtBQUN6QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWSxlQUFpQjsiLAogICJuYW1lcyI6IFsiYWN0aXZlLWZpbGUtcHJvdmlkZXIiLCAiYXN5bmMtd2l0aC1ub3RpY2UiLCAiYXR0YWNobWVudC1wYXRoIiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3AtdHJ1c3RlZC1pbnB1dCIsICJlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIiLCAiZXh0ZW5zaW9ucy1yZWdpc3RyYXIiLCAiZmlsZS1jaGFuZ2UiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzIiwgImhvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhciIsICJodG1sLWVsZW1lbnQiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGluay11cGRhdGUtcHJvZ3Jlc3MiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yIiwgIm1hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi12aWV3IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyIiwgIm1ldGFkYXRhLWNhY2hlIiwgIm5vdGVib29rLW5hdmlnYXRvciIsICJvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhciIsICJvYnNpZGlhbi1zZXR0aW5ncyIsICJwYXJzZS1saW5rIiwgInBhdGgtc2V0dGluZ3MiLCAicGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhciIsICJyZXNvdXJjZS1sb2NrIiwgInJlc291cmNlLXVybCIsICJyaWJib24taWNvbi1yZWdpc3RyYXIiLCAic2V0dGluZy1jb21wb25lbnRzIiwgInNldHRpbmctZXgiLCAic2V0dGluZy1ncm91cC1leCIsICJzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyIiwgInZhdWx0LWRlbGV0ZSIsICJ2YXVsdC10cmFuc2FjdGlvbiIsICJ2aWV3LXJlZ2lzdHJhciJdCn0K
@@ -5,6 +5,7 @@
5
5
  * This module provides additional utilities for working with the Obsidian {@link Workspace}.
6
6
  */
7
7
  import type { App, WorkspaceContainer } from 'obsidian';
8
+ import type { DisposableEx } from '../disposable.mjs';
8
9
  /**
9
10
  * Waits until the workspace layout is ready.
10
11
  *
@@ -29,3 +30,52 @@ export declare function getAllContainers(app: App): WorkspaceContainer[];
29
30
  * @returns All DOM windows in the workspace.
30
31
  */
31
32
  export declare function getAllDomWindows(app: App): Window[];
33
+ /**
34
+ * Returns the app's main window — the one the vault opened in, as opposed to any popout window.
35
+ *
36
+ * Read from the root split, which is the one workspace container that always lives in the main window
37
+ * (every popout is a {@link WorkspaceWindow} under `floatingSplit`). Prefer this over the global
38
+ * `window`, which only happens to be the main window because plugin code runs in its context.
39
+ *
40
+ * @param app - The Obsidian app.
41
+ * @returns The app's main window.
42
+ */
43
+ export declare function getMainWindow(app: App): Window;
44
+ /**
45
+ * Makes the app's main window the active one until the returned {@link DisposableEx} is disposed.
46
+ *
47
+ * See {@link switchToWindow} for why this is needed and what it changes, and {@link getMainWindow} for
48
+ * what counts as the main window.
49
+ *
50
+ * @param app - The Obsidian app.
51
+ * @returns A {@link DisposableEx} that restores the previously active window when disposed.
52
+ * @example
53
+ * ```ts
54
+ * // Raise a notice in the main window even while the settings window is open.
55
+ * using _mainWindowSwitch = switchToMainWindow(app);
56
+ * new Notice('This vault is a temporary sandbox.');
57
+ * ```
58
+ */
59
+ export declare function switchToMainWindow(app: App): DisposableEx;
60
+ /**
61
+ * Makes the given window the active one until the returned {@link DisposableEx} is disposed.
62
+ *
63
+ * Obsidian tracks the focused window in the `activeWindow` / `activeDocument` globals and updates them
64
+ * whenever a window takes focus — including when a popout such as the settings window opens. UI it
65
+ * creates for "the current window" reads those globals at creation time and offers no way to name a
66
+ * window: `new Notice(...)`, for instance, is built inside whatever window `activeWindow` points at,
67
+ * and cannot be moved afterwards. Pointing the globals at the wanted window for exactly that creation,
68
+ * then putting them back, is what this does.
69
+ *
70
+ * Restore is what makes it safe, so always bind it with `using` (or dispose it in a `finally`): leaving
71
+ * the globals pointed at the wrong window would misplace every later window-sensitive Obsidian call.
72
+ *
73
+ * @param win - The window to make active.
74
+ * @returns A {@link DisposableEx} that restores the previously active window when disposed.
75
+ * @example
76
+ * ```ts
77
+ * using _windowSwitch = switchToWindow(otherWindow);
78
+ * new Notice('This notice belongs to the other window.');
79
+ * ```
80
+ */
81
+ export declare function switchToWindow(win: Window): DisposableEx;
@@ -21,6 +21,7 @@ if you want to view the source, please visit the github repository of this plugi
21
21
  globalThis.process = browserProcess;
22
22
  })();
23
23
 
24
+ import { CallbackDisposable } from "../disposable.mjs";
24
25
  async function ensureLayoutReady(app) {
25
26
  await new Promise((resolve) => {
26
27
  app.workspace.onLayoutReady(resolve);
@@ -36,9 +37,30 @@ function getAllContainers(app) {
36
37
  function getAllDomWindows(app) {
37
38
  return getAllContainers(app).map((container) => container.win);
38
39
  }
40
+ function getMainWindow(app) {
41
+ return app.workspace.rootSplit.win;
42
+ }
43
+ function switchToMainWindow(app) {
44
+ return switchToWindow(getMainWindow(app));
45
+ }
46
+ function switchToWindow(win) {
47
+ const previousActiveWindow = activeWindow;
48
+ const previousActiveDocument = activeDocument;
49
+ window.activeWindow = win;
50
+ window.activeDocument = win.document;
51
+ return new CallbackDisposable({
52
+ callback: () => {
53
+ window.activeWindow = previousActiveWindow;
54
+ window.activeDocument = previousActiveDocument;
55
+ }
56
+ });
57
+ }
39
58
  export {
40
59
  ensureLayoutReady,
41
60
  getAllContainers,
42
- getAllDomWindows
61
+ getAllDomWindows,
62
+ getMainWindow,
63
+ switchToMainWindow,
64
+ switchToWindow
43
65
  };
44
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3dvcmtzcGFjZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIE9ic2lkaWFuIHtAbGluayBXb3Jrc3BhY2V9LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBXb3Jrc3BhY2VgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuICBXb3Jrc3BhY2UsXG4gIFdvcmtzcGFjZUNvbnRhaW5lclxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogV2FpdHMgdW50aWwgdGhlIHdvcmtzcGFjZSBsYXlvdXQgaXMgcmVhZHkuXG4gKlxuICogUmVzb2x2ZXMgaW1tZWRpYXRlbHkgd2hlbiB0aGUgbGF5b3V0IGlzIGFscmVhZHkgcmVhZHk7IG90aGVyd2lzZSByZXNvbHZlcyBvbmNlIE9ic2lkaWFuIGZpcmVzIHRoZVxuICogbGF5b3V0LXJlYWR5IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB3b3Jrc3BhY2UgbGF5b3V0IGlzIHJlYWR5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlTGF5b3V0UmVhZHkoYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICBhcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkocmVzb2x2ZSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIGNvbnRhaW5lcnMgaW4gdGhlIHdvcmtzcGFjZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcC5cbiAqIEByZXR1cm5zIEFsbCBjb250YWluZXJzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxDb250YWluZXJzKGFwcDogQXBwKTogV29ya3NwYWNlQ29udGFpbmVyW10ge1xuICBjb25zdCBjb250YWluZXJzID0gbmV3IFNldDxXb3Jrc3BhY2VDb250YWluZXI+KCk7XG4gIGFwcC53b3Jrc3BhY2UuaXRlcmF0ZUFsbExlYXZlcygobGVhZikgPT4ge1xuICAgIGNvbnRhaW5lcnMuYWRkKGxlYWYuZ2V0Q29udGFpbmVyKCkpO1xuICB9KTtcbiAgcmV0dXJuIFsuLi5jb250YWluZXJzXTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBET00gd2luZG93cyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIERPTSB3aW5kb3dzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxEb21XaW5kb3dzKGFwcDogQXBwKTogV2luZG93W10ge1xuICByZXR1cm4gZ2V0QWxsQ29udGFpbmVycyhhcHApLm1hcCgoY29udGFpbmVyKSA9PiBjb250YWluZXIud2luKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBLGVBQXNCLGtCQUFrQixLQUF5QjtBQUMvRCxRQUFNLElBQUksUUFBYyxDQUFDLFlBQVk7QUFDbkMsUUFBSSxVQUFVLGNBQWMsT0FBTztBQUFBLEVBQ3JDLENBQUM7QUFDSDtBQVFPLFNBQVMsaUJBQWlCLEtBQWdDO0FBQy9ELFFBQU0sYUFBYSxvQkFBSSxJQUF3QjtBQUMvQyxNQUFJLFVBQVUsaUJBQWlCLENBQUMsU0FBUztBQUN2QyxlQUFXLElBQUksS0FBSyxhQUFhLENBQUM7QUFBQSxFQUNwQyxDQUFDO0FBQ0QsU0FBTyxDQUFDLEdBQUcsVUFBVTtBQUN2QjtBQVFPLFNBQVMsaUJBQWlCLEtBQW9CO0FBQ25ELFNBQU8saUJBQWlCLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxVQUFVLEdBQUc7QUFDL0Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
66
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3dvcmtzcGFjZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIE9ic2lkaWFuIHtAbGluayBXb3Jrc3BhY2V9LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBXb3Jrc3BhY2VgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuICBXb3Jrc3BhY2UsXG4gIFdvcmtzcGFjZUNvbnRhaW5lcixcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgV29ya3NwYWNlV2luZG93YCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbiAgV29ya3NwYWNlV2luZG93XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBEaXNwb3NhYmxlRXggfSBmcm9tICcuLi9kaXNwb3NhYmxlLnRzJztcblxuaW1wb3J0IHsgQ2FsbGJhY2tEaXNwb3NhYmxlIH0gZnJvbSAnLi4vZGlzcG9zYWJsZS50cyc7XG5cbi8qKlxuICogV2FpdHMgdW50aWwgdGhlIHdvcmtzcGFjZSBsYXlvdXQgaXMgcmVhZHkuXG4gKlxuICogUmVzb2x2ZXMgaW1tZWRpYXRlbHkgd2hlbiB0aGUgbGF5b3V0IGlzIGFscmVhZHkgcmVhZHk7IG90aGVyd2lzZSByZXNvbHZlcyBvbmNlIE9ic2lkaWFuIGZpcmVzIHRoZVxuICogbGF5b3V0LXJlYWR5IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB3b3Jrc3BhY2UgbGF5b3V0IGlzIHJlYWR5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlTGF5b3V0UmVhZHkoYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICBhcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkocmVzb2x2ZSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIGNvbnRhaW5lcnMgaW4gdGhlIHdvcmtzcGFjZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcC5cbiAqIEByZXR1cm5zIEFsbCBjb250YWluZXJzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxDb250YWluZXJzKGFwcDogQXBwKTogV29ya3NwYWNlQ29udGFpbmVyW10ge1xuICBjb25zdCBjb250YWluZXJzID0gbmV3IFNldDxXb3Jrc3BhY2VDb250YWluZXI+KCk7XG4gIGFwcC53b3Jrc3BhY2UuaXRlcmF0ZUFsbExlYXZlcygobGVhZikgPT4ge1xuICAgIGNvbnRhaW5lcnMuYWRkKGxlYWYuZ2V0Q29udGFpbmVyKCkpO1xuICB9KTtcbiAgcmV0dXJuIFsuLi5jb250YWluZXJzXTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBET00gd2luZG93cyBpbiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgQWxsIERPTSB3aW5kb3dzIGluIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxEb21XaW5kb3dzKGFwcDogQXBwKTogV2luZG93W10ge1xuICByZXR1cm4gZ2V0QWxsQ29udGFpbmVycyhhcHApLm1hcCgoY29udGFpbmVyKSA9PiBjb250YWluZXIud2luKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBhcHAncyBtYWluIHdpbmRvdyBcdTIwMTQgdGhlIG9uZSB0aGUgdmF1bHQgb3BlbmVkIGluLCBhcyBvcHBvc2VkIHRvIGFueSBwb3BvdXQgd2luZG93LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgcm9vdCBzcGxpdCwgd2hpY2ggaXMgdGhlIG9uZSB3b3Jrc3BhY2UgY29udGFpbmVyIHRoYXQgYWx3YXlzIGxpdmVzIGluIHRoZSBtYWluIHdpbmRvd1xuICogKGV2ZXJ5IHBvcG91dCBpcyBhIHtAbGluayBXb3Jrc3BhY2VXaW5kb3d9IHVuZGVyIGBmbG9hdGluZ1NwbGl0YCkuIFByZWZlciB0aGlzIG92ZXIgdGhlIGdsb2JhbFxuICogYHdpbmRvd2AsIHdoaWNoIG9ubHkgaGFwcGVucyB0byBiZSB0aGUgbWFpbiB3aW5kb3cgYmVjYXVzZSBwbHVnaW4gY29kZSBydW5zIGluIGl0cyBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwLlxuICogQHJldHVybnMgVGhlIGFwcCdzIG1haW4gd2luZG93LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFpbldpbmRvdyhhcHA6IEFwcCk6IFdpbmRvdyB7XG4gIHJldHVybiBhcHAud29ya3NwYWNlLnJvb3RTcGxpdC53aW47XG59XG5cbi8qKlxuICogTWFrZXMgdGhlIGFwcCdzIG1haW4gd2luZG93IHRoZSBhY3RpdmUgb25lIHVudGlsIHRoZSByZXR1cm5lZCB7QGxpbmsgRGlzcG9zYWJsZUV4fSBpcyBkaXNwb3NlZC5cbiAqXG4gKiBTZWUge0BsaW5rIHN3aXRjaFRvV2luZG93fSBmb3Igd2h5IHRoaXMgaXMgbmVlZGVkIGFuZCB3aGF0IGl0IGNoYW5nZXMsIGFuZCB7QGxpbmsgZ2V0TWFpbldpbmRvd30gZm9yXG4gKiB3aGF0IGNvdW50cyBhcyB0aGUgbWFpbiB3aW5kb3cuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAuXG4gKiBAcmV0dXJucyBBIHtAbGluayBEaXNwb3NhYmxlRXh9IHRoYXQgcmVzdG9yZXMgdGhlIHByZXZpb3VzbHkgYWN0aXZlIHdpbmRvdyB3aGVuIGRpc3Bvc2VkLlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBSYWlzZSBhIG5vdGljZSBpbiB0aGUgbWFpbiB3aW5kb3cgZXZlbiB3aGlsZSB0aGUgc2V0dGluZ3Mgd2luZG93IGlzIG9wZW4uXG4gKiB1c2luZyBfbWFpbldpbmRvd1N3aXRjaCA9IHN3aXRjaFRvTWFpbldpbmRvdyhhcHApO1xuICogbmV3IE5vdGljZSgnVGhpcyB2YXVsdCBpcyBhIHRlbXBvcmFyeSBzYW5kYm94LicpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hUb01haW5XaW5kb3coYXBwOiBBcHApOiBEaXNwb3NhYmxlRXgge1xuICByZXR1cm4gc3dpdGNoVG9XaW5kb3coZ2V0TWFpbldpbmRvdyhhcHApKTtcbn1cblxuLyoqXG4gKiBNYWtlcyB0aGUgZ2l2ZW4gd2luZG93IHRoZSBhY3RpdmUgb25lIHVudGlsIHRoZSByZXR1cm5lZCB7QGxpbmsgRGlzcG9zYWJsZUV4fSBpcyBkaXNwb3NlZC5cbiAqXG4gKiBPYnNpZGlhbiB0cmFja3MgdGhlIGZvY3VzZWQgd2luZG93IGluIHRoZSBgYWN0aXZlV2luZG93YCAvIGBhY3RpdmVEb2N1bWVudGAgZ2xvYmFscyBhbmQgdXBkYXRlcyB0aGVtXG4gKiB3aGVuZXZlciBhIHdpbmRvdyB0YWtlcyBmb2N1cyBcdTIwMTQgaW5jbHVkaW5nIHdoZW4gYSBwb3BvdXQgc3VjaCBhcyB0aGUgc2V0dGluZ3Mgd2luZG93IG9wZW5zLiBVSSBpdFxuICogY3JlYXRlcyBmb3IgXCJ0aGUgY3VycmVudCB3aW5kb3dcIiByZWFkcyB0aG9zZSBnbG9iYWxzIGF0IGNyZWF0aW9uIHRpbWUgYW5kIG9mZmVycyBubyB3YXkgdG8gbmFtZSBhXG4gKiB3aW5kb3c6IGBuZXcgTm90aWNlKC4uLilgLCBmb3IgaW5zdGFuY2UsIGlzIGJ1aWx0IGluc2lkZSB3aGF0ZXZlciB3aW5kb3cgYGFjdGl2ZVdpbmRvd2AgcG9pbnRzIGF0LFxuICogYW5kIGNhbm5vdCBiZSBtb3ZlZCBhZnRlcndhcmRzLiBQb2ludGluZyB0aGUgZ2xvYmFscyBhdCB0aGUgd2FudGVkIHdpbmRvdyBmb3IgZXhhY3RseSB0aGF0IGNyZWF0aW9uLFxuICogdGhlbiBwdXR0aW5nIHRoZW0gYmFjaywgaXMgd2hhdCB0aGlzIGRvZXMuXG4gKlxuICogUmVzdG9yZSBpcyB3aGF0IG1ha2VzIGl0IHNhZmUsIHNvIGFsd2F5cyBiaW5kIGl0IHdpdGggYHVzaW5nYCAob3IgZGlzcG9zZSBpdCBpbiBhIGBmaW5hbGx5YCk6IGxlYXZpbmdcbiAqIHRoZSBnbG9iYWxzIHBvaW50ZWQgYXQgdGhlIHdyb25nIHdpbmRvdyB3b3VsZCBtaXNwbGFjZSBldmVyeSBsYXRlciB3aW5kb3ctc2Vuc2l0aXZlIE9ic2lkaWFuIGNhbGwuXG4gKlxuICogQHBhcmFtIHdpbiAtIFRoZSB3aW5kb3cgdG8gbWFrZSBhY3RpdmUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBEaXNwb3NhYmxlRXh9IHRoYXQgcmVzdG9yZXMgdGhlIHByZXZpb3VzbHkgYWN0aXZlIHdpbmRvdyB3aGVuIGRpc3Bvc2VkLlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiB1c2luZyBfd2luZG93U3dpdGNoID0gc3dpdGNoVG9XaW5kb3cob3RoZXJXaW5kb3cpO1xuICogbmV3IE5vdGljZSgnVGhpcyBub3RpY2UgYmVsb25ncyB0byB0aGUgb3RoZXIgd2luZG93LicpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hUb1dpbmRvdyh3aW46IFdpbmRvdyk6IERpc3Bvc2FibGVFeCB7XG4gIGNvbnN0IHByZXZpb3VzQWN0aXZlV2luZG93ID0gYWN0aXZlV2luZG93O1xuICBjb25zdCBwcmV2aW91c0FjdGl2ZURvY3VtZW50ID0gYWN0aXZlRG9jdW1lbnQ7XG4gIHdpbmRvdy5hY3RpdmVXaW5kb3cgPSB3aW47XG4gIHdpbmRvdy5hY3RpdmVEb2N1bWVudCA9IHdpbi5kb2N1bWVudDtcblxuICByZXR1cm4gbmV3IENhbGxiYWNrRGlzcG9zYWJsZSh7XG4gICAgY2FsbGJhY2s6ICgpOiB2b2lkID0+IHtcbiAgICAgIHdpbmRvdy5hY3RpdmVXaW5kb3cgPSBwcmV2aW91c0FjdGl2ZVdpbmRvdztcbiAgICAgIHdpbmRvdy5hY3RpdmVEb2N1bWVudCA9IHByZXZpb3VzQWN0aXZlRG9jdW1lbnQ7XG4gICAgfVxuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLFNBQVMsMEJBQTBCO0FBV25DLGVBQXNCLGtCQUFrQixLQUF5QjtBQUMvRCxRQUFNLElBQUksUUFBYyxDQUFDLFlBQVk7QUFDbkMsUUFBSSxVQUFVLGNBQWMsT0FBTztBQUFBLEVBQ3JDLENBQUM7QUFDSDtBQVFPLFNBQVMsaUJBQWlCLEtBQWdDO0FBQy9ELFFBQU0sYUFBYSxvQkFBSSxJQUF3QjtBQUMvQyxNQUFJLFVBQVUsaUJBQWlCLENBQUMsU0FBUztBQUN2QyxlQUFXLElBQUksS0FBSyxhQUFhLENBQUM7QUFBQSxFQUNwQyxDQUFDO0FBQ0QsU0FBTyxDQUFDLEdBQUcsVUFBVTtBQUN2QjtBQVFPLFNBQVMsaUJBQWlCLEtBQW9CO0FBQ25ELFNBQU8saUJBQWlCLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxVQUFVLEdBQUc7QUFDL0Q7QUFZTyxTQUFTLGNBQWMsS0FBa0I7QUFDOUMsU0FBTyxJQUFJLFVBQVUsVUFBVTtBQUNqQztBQWlCTyxTQUFTLG1CQUFtQixLQUF3QjtBQUN6RCxTQUFPLGVBQWUsY0FBYyxHQUFHLENBQUM7QUFDMUM7QUF1Qk8sU0FBUyxlQUFlLEtBQTJCO0FBQ3hELFFBQU0sdUJBQXVCO0FBQzdCLFFBQU0seUJBQXlCO0FBQy9CLFNBQU8sZUFBZTtBQUN0QixTQUFPLGlCQUFpQixJQUFJO0FBRTVCLFNBQU8sSUFBSSxtQkFBbUI7QUFBQSxJQUM1QixVQUFVLE1BQVk7QUFDcEIsYUFBTyxlQUFlO0FBQ3RCLGFBQU8saUJBQWlCO0FBQUEsSUFDMUI7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -26,7 +26,8 @@ import { existsSync } from "node:fs";
26
26
  import {
27
27
  cp,
28
28
  mkdir,
29
- readFile
29
+ readFile,
30
+ writeFile
30
31
  } from "node:fs/promises";
31
32
  import { ObsidianPluginRepoPaths } from "../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
32
33
  import {
@@ -39,6 +40,8 @@ import {
39
40
  resolvePathFromRootSafe
40
41
  } from "./root.mjs";
41
42
  const DEMO_VAULT_HELPER_PLUGIN_ID = "demo-vault-helper";
43
+ const DATA_JSON_FILE_NAME = "data.json";
44
+ const DATA_JSON_INDENT = 2;
42
45
  async function archivePluginDemoVault() {
43
46
  const demoVaultPath = resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.DemoVault });
44
47
  if (!existsSync(demoVaultPath)) {
@@ -57,7 +60,7 @@ async function archivePluginDemoVault() {
57
60
  await mkdir(pluginFolder, { recursive: true });
58
61
  const distBuildPath = resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.DistBuild });
59
62
  await cp(distBuildPath, pluginFolder, { recursive: true });
60
- await injectDemoVaultHelper();
63
+ await injectDemoVaultHelper(manifest.id);
61
64
  const zipPath = resolvePathFromRootSafe({
62
65
  path: join(ObsidianPluginRepoPaths.DistBuild, `${manifest.id}-demo-vault-${manifest.version}.zip`)
63
66
  });
@@ -66,7 +69,7 @@ async function archivePluginDemoVault() {
66
69
  await zip.writeZipPromise(zipPath);
67
70
  return zipPath;
68
71
  }
69
- async function injectDemoVaultHelper() {
72
+ async function injectDemoVaultHelper(demoedPluginId) {
70
73
  const packageFolder = getRootFolder(getFolderName(import.meta.url));
71
74
  if (!packageFolder) {
72
75
  throw new Error("Could not resolve the obsidian-dev-utils package folder to inject the demo-vault-helper plugin.");
@@ -82,8 +85,11 @@ async function injectDemoVaultHelper() {
82
85
  });
83
86
  await mkdir(helperFolder, { recursive: true });
84
87
  await cp(helperSourcePath, helperFolder, { recursive: true });
88
+ const settings = { demoedPluginId };
89
+ await writeFile(join(helperFolder, DATA_JSON_FILE_NAME), `${JSON.stringify(settings, null, DATA_JSON_INDENT)}
90
+ `, "utf-8");
85
91
  }
86
92
  export {
87
93
  archivePluginDemoVault
88
94
  };
89
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9kZW1vLXZhdWx0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXJjaGl2ZXMgYSBwbHVnaW4ncyBkZW1vIHZhdWx0IGFzIGEgcmVsZWFzZSBhcnRpZmFjdC5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gc2hpcCBhIGN1cmF0ZWQgZGVtbyB2YXVsdCBhdCBgZGVtby12YXVsdC9gIGluIGl0cyByZXBvIHJvb3QuIEF0IHJlbGVhc2UgdGltZSB0aGlzXG4gKiBtb2R1bGUgaW5zdGFsbHMgdGhlIGZyZXNobHkgYnVpbHQgcGx1Z2luIGludG8gdGhhdCB2YXVsdCdzIGAub2JzaWRpYW4vcGx1Z2lucy88aWQ+L2AgZm9sZGVyIGFuZFxuICogemlwcyB0aGUgd2hvbGUgdmF1bHQgaW50byBgZGlzdC9idWlsZC88cGx1Z2luLWlkPi1kZW1vLXZhdWx0LTx2ZXJzaW9uPi56aXBgLCBzbyB0aGUgZXhpc3RpbmdcbiAqIEdpdEh1Yi1yZWxlYXNlIHN0ZXAgKHdoaWNoIHVwbG9hZHMgZXZlcnkgZmlsZSBpbiBgZGlzdC9idWlsZC9gKSBhdHRhY2hlcyBpdCBhdXRvbWF0aWNhbGx5LiBUaGVcbiAqIGFyY2hpdmUgbmFtZSBjYXJyaWVzIHRoZSBwbHVnaW4gaWQgKHNvIHNldmVyYWwgcGx1Z2lucycgZGVtbyB2YXVsdHMgbmV2ZXIgY29sbGlkZSkgYW5kIHRoZSB2ZXJzaW9uXG4gKiAoc28gZWFjaCByZWxlYXNlIHNoaXBzIGl0cyBvd24gZGlzdGluY3RseSBuYW1lZCBhcnRpZmFjdCkuXG4gKi9cblxuaW1wb3J0IEFkbVppcCBmcm9tICdhZG0temlwJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBta2RpcixcbiAgcmVhZEZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBnZXRSb290Rm9sZGVyLFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuL3Jvb3QudHMnO1xuXG5jb25zdCBERU1PX1ZBVUxUX0hFTFBFUl9QTFVHSU5fSUQgPSAnZGVtby12YXVsdC1oZWxwZXInO1xuXG4vKipcbiAqIFRoZSBtaW5pbWFsIHNoYXBlIG9mIGEgcGx1Z2luIGBtYW5pZmVzdC5qc29uYCByZWFkIGJ5IHtAbGluayBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0fS5cbiAqL1xuaW50ZXJmYWNlIFBsdWdpbk1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gaWQsIHVzZWQgYXMgdGhlIGZvbGRlciBuYW1lIHVuZGVyIGBkZW1vLXZhdWx0Ly5vYnNpZGlhbi9wbHVnaW5zL2AuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIHZlcnNpb24sIGVtYmVkZGVkIGluIHRoZSBhcmNoaXZlIGZpbGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBBcmNoaXZlcyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCAoYGRlbW8tdmF1bHQvYCBpbiB0aGUgcmVwbyByb290KSBhcyBhIHJlbGVhc2UgYXJ0aWZhY3QuXG4gKlxuICogSW5zdGFsbHMgdGhlIGZyZXNobHkgYnVpbHQgcGx1Z2luIGZyb20gYGRpc3QvYnVpbGQvYCBpbnRvIHRoZSB2YXVsdCdzXG4gKiBgLm9ic2lkaWFuL3BsdWdpbnMvPGlkPi9gIGZvbGRlciwgdGhlbiB6aXBzIHRoZSB3aG9sZSB2YXVsdCB0b1xuICogYGRpc3QvYnVpbGQvPHBsdWdpbi1pZD4tZGVtby12YXVsdC08dmVyc2lvbj4uemlwYC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBjcmVhdGVkIHppcCBhcmNoaXZlLCBvclxuICogYG51bGxgIGlmIHRoZSByZXBvIGhhcyBubyBgZGVtby12YXVsdC9gIGZvbGRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFyY2hpdmVQbHVnaW5EZW1vVmF1bHQoKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIGNvbnN0IGRlbW9WYXVsdFBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRlbW9WYXVsdCB9KTtcbiAgaWYgKCFleGlzdHNTeW5jKGRlbW9WYXVsdFBhdGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiB9KTtcbiAgY29uc3QgbWFuaWZlc3QgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKG1hbmlmZXN0UGF0aCwgJ3V0Zi04JykpIGFzIFBsdWdpbk1hbmlmZXN0O1xuXG4gIGNvbnN0IHBsdWdpbkZvbGRlciA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHtcbiAgICBwYXRoOiBqb2luKFxuICAgICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGVtb1ZhdWx0LFxuICAgICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRG90T2JzaWRpYW4sXG4gICAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QbHVnaW5zLFxuICAgICAgbWFuaWZlc3QuaWRcbiAgICApXG4gIH0pO1xuICBhd2FpdCBta2RpcihwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGNvbnN0IGRpc3RCdWlsZFBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCB9KTtcbiAgYXdhaXQgY3AoZGlzdEJ1aWxkUGF0aCwgcGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBhd2FpdCBpbmplY3REZW1vVmF1bHRIZWxwZXIoKTtcblxuICAvLyBBcmNoaXZlIG5hbWUgaXMgaGFuZC1zeW5jZWQgd2l0aCB0aGUgcnVudGltZSBgb3BlbkRlbW9WYXVsdGAgb3BlbmVyLCB3aGljaCBkb3dubG9hZHMgdGhpcyBleGFjdCBhc3NldCBuYW1lLlxuICBjb25zdCB6aXBQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoe1xuICAgIHBhdGg6IGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkLCBgJHttYW5pZmVzdC5pZH0tZGVtby12YXVsdC0ke21hbmlmZXN0LnZlcnNpb259LnppcGApXG4gIH0pO1xuICBjb25zdCB6aXAgPSBuZXcgQWRtWmlwKCk7XG4gIHppcC5hZGRMb2NhbEZvbGRlcihkZW1vVmF1bHRQYXRoKTtcbiAgYXdhaXQgemlwLndyaXRlWmlwUHJvbWlzZSh6aXBQYXRoKTtcbiAgcmV0dXJuIHppcFBhdGg7XG59XG5cbi8vIEluamVjdHMgdGhlIGJ1aWx0LCBgb2JzaWRpYW4tZGV2LXV0aWxzYC1vd25lZCBgZGVtby12YXVsdC1oZWxwZXJgIGJvb3RzdHJhcCBwbHVnaW4gKHNoaXBwZWQgaW4gdGhpcyBwYWNrYWdlKSBpbnRvIHRoZSBkZW1vIHZhdWx0LCBzbyBubyBwZXItdmF1bHQgY29weSBpcyBjb21taXR0ZWQgYW5kIGFuIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGJ1bXAgcHJvcGFnYXRlcyBmaXhlcy5cbmFzeW5jIGZ1bmN0aW9uIGluamVjdERlbW9WYXVsdEhlbHBlcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGFja2FnZUZvbGRlciA9IGdldFJvb3RGb2xkZXIoZ2V0Rm9sZGVyTmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgaWYgKCFwYWNrYWdlRm9sZGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgcmVzb2x2ZSB0aGUgb2JzaWRpYW4tZGV2LXV0aWxzIHBhY2thZ2UgZm9sZGVyIHRvIGluamVjdCB0aGUgZGVtby12YXVsdC1oZWxwZXIgcGx1Z2luLicpO1xuICB9XG5cbiAgY29uc3QgaGVscGVyU291cmNlUGF0aCA9IGpvaW4ocGFja2FnZUZvbGRlciwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0RGVtb1ZhdWx0SGVscGVyKTtcbiAgY29uc3QgaGVscGVyRm9sZGVyID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoe1xuICAgIHBhdGg6IGpvaW4oXG4gICAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EZW1vVmF1bHQsXG4gICAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Eb3RPYnNpZGlhbixcbiAgICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlBsdWdpbnMsXG4gICAgICBERU1PX1ZBVUxUX0hFTFBFUl9QTFVHSU5fSURcbiAgICApXG4gIH0pO1xuICBhd2FpdCBta2RpcihoZWxwZXJGb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBhd2FpdCBjcChoZWxwZXJTb3VyY2VQYXRoLCBoZWxwZXJGb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxPQUFPLFlBQVk7QUFDbkIsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUywrQkFBK0I7QUFDeEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGlDQUFpQztBQUMxQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLE1BQU0sOEJBQThCO0FBMkJwQyxlQUFzQix5QkFBaUQ7QUFDckUsUUFBTSxnQkFBZ0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsVUFBVSxDQUFDO0FBQ3pGLE1BQUksQ0FBQyxXQUFXLGFBQWEsR0FBRztBQUM5QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZUFBZSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixhQUFhLENBQUM7QUFDM0YsUUFBTSxXQUFXLEtBQUssTUFBTSxNQUFNLFNBQVMsY0FBYyxPQUFPLENBQUM7QUFFakUsUUFBTSxlQUFlLHdCQUF3QjtBQUFBLElBQzNDLE1BQU07QUFBQSxNQUNKLHdCQUF3QjtBQUFBLE1BQ3hCLHdCQUF3QjtBQUFBLE1BQ3hCLHdCQUF3QjtBQUFBLE1BQ3hCLFNBQVM7QUFBQSxJQUNYO0FBQUEsRUFDRixDQUFDO0FBQ0QsUUFBTSxNQUFNLGNBQWMsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUU3QyxRQUFNLGdCQUFnQix3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixVQUFVLENBQUM7QUFDekYsUUFBTSxHQUFHLGVBQWUsY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRXpELFFBQU0sc0JBQXNCO0FBRzVCLFFBQU0sVUFBVSx3QkFBd0I7QUFBQSxJQUN0QyxNQUFNLEtBQUssd0JBQXdCLFdBQVcsR0FBRyxTQUFTLEVBQUUsZUFBZSxTQUFTLE9BQU8sTUFBTTtBQUFBLEVBQ25HLENBQUM7QUFDRCxRQUFNLE1BQU0sSUFBSSxPQUFPO0FBQ3ZCLE1BQUksZUFBZSxhQUFhO0FBQ2hDLFFBQU0sSUFBSSxnQkFBZ0IsT0FBTztBQUNqQyxTQUFPO0FBQ1Q7QUFHQSxlQUFlLHdCQUF1QztBQUNwRCxRQUFNLGdCQUFnQixjQUFjLGNBQWMsWUFBWSxHQUFHLENBQUM7QUFDbEUsTUFBSSxDQUFDLGVBQWU7QUFDbEIsVUFBTSxJQUFJLE1BQU0saUdBQWlHO0FBQUEsRUFDbkg7QUFFQSxRQUFNLG1CQUFtQixLQUFLLGVBQWUsMEJBQTBCLG1CQUFtQjtBQUMxRixRQUFNLGVBQWUsd0JBQXdCO0FBQUEsSUFDM0MsTUFBTTtBQUFBLE1BQ0osd0JBQXdCO0FBQUEsTUFDeEIsd0JBQXdCO0FBQUEsTUFDeEIsd0JBQXdCO0FBQUEsTUFDeEI7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0QsUUFBTSxNQUFNLGNBQWMsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUM3QyxRQUFNLEdBQUcsa0JBQWtCLGNBQWMsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUM5RDsiLAogICJuYW1lcyI6IFtdCn0K
95
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9kZW1vLXZhdWx0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXJjaGl2ZXMgYSBwbHVnaW4ncyBkZW1vIHZhdWx0IGFzIGEgcmVsZWFzZSBhcnRpZmFjdC5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gc2hpcCBhIGN1cmF0ZWQgZGVtbyB2YXVsdCBhdCBgZGVtby12YXVsdC9gIGluIGl0cyByZXBvIHJvb3QuIEF0IHJlbGVhc2UgdGltZSB0aGlzXG4gKiBtb2R1bGUgaW5zdGFsbHMgdGhlIGZyZXNobHkgYnVpbHQgcGx1Z2luIGludG8gdGhhdCB2YXVsdCdzIGAub2JzaWRpYW4vcGx1Z2lucy88aWQ+L2AgZm9sZGVyIGFuZFxuICogemlwcyB0aGUgd2hvbGUgdmF1bHQgaW50byBgZGlzdC9idWlsZC88cGx1Z2luLWlkPi1kZW1vLXZhdWx0LTx2ZXJzaW9uPi56aXBgLCBzbyB0aGUgZXhpc3RpbmdcbiAqIEdpdEh1Yi1yZWxlYXNlIHN0ZXAgKHdoaWNoIHVwbG9hZHMgZXZlcnkgZmlsZSBpbiBgZGlzdC9idWlsZC9gKSBhdHRhY2hlcyBpdCBhdXRvbWF0aWNhbGx5LiBUaGVcbiAqIGFyY2hpdmUgbmFtZSBjYXJyaWVzIHRoZSBwbHVnaW4gaWQgKHNvIHNldmVyYWwgcGx1Z2lucycgZGVtbyB2YXVsdHMgbmV2ZXIgY29sbGlkZSkgYW5kIHRoZSB2ZXJzaW9uXG4gKiAoc28gZWFjaCByZWxlYXNlIHNoaXBzIGl0cyBvd24gZGlzdGluY3RseSBuYW1lZCBhcnRpZmFjdCkuXG4gKi9cblxuaW1wb3J0IEFkbVppcCBmcm9tICdhZG0temlwJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBta2RpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHR5cGUgeyBEZW1vVmF1bHRIZWxwZXJTZXR0aW5ncyB9IGZyb20gJy4uL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLXNldHRpbmdzLnRzJztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgam9pblxufSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4vcm9vdC50cyc7XG5cbmNvbnN0IERFTU9fVkFVTFRfSEVMUEVSX1BMVUdJTl9JRCA9ICdkZW1vLXZhdWx0LWhlbHBlcic7XG5jb25zdCBEQVRBX0pTT05fRklMRV9OQU1FID0gJ2RhdGEuanNvbic7XG5jb25zdCBEQVRBX0pTT05fSU5ERU5UID0gMjtcblxuLyoqXG4gKiBUaGUgbWluaW1hbCBzaGFwZSBvZiBhIHBsdWdpbiBgbWFuaWZlc3QuanNvbmAgcmVhZCBieSB7QGxpbmsgYXJjaGl2ZVBsdWdpbkRlbW9WYXVsdH0uXG4gKi9cbmludGVyZmFjZSBQbHVnaW5NYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGlkLCB1c2VkIGFzIHRoZSBmb2xkZXIgbmFtZSB1bmRlciBgZGVtby12YXVsdC8ub2JzaWRpYW4vcGx1Z2lucy9gLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiB2ZXJzaW9uLCBlbWJlZGRlZCBpbiB0aGUgYXJjaGl2ZSBmaWxlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXJjaGl2ZXMgdGhlIHBsdWdpbidzIGRlbW8gdmF1bHQgKGBkZW1vLXZhdWx0L2AgaW4gdGhlIHJlcG8gcm9vdCkgYXMgYSByZWxlYXNlIGFydGlmYWN0LlxuICpcbiAqIEluc3RhbGxzIHRoZSBmcmVzaGx5IGJ1aWx0IHBsdWdpbiBmcm9tIGBkaXN0L2J1aWxkL2AgaW50byB0aGUgdmF1bHQnc1xuICogYC5vYnNpZGlhbi9wbHVnaW5zLzxpZD4vYCBmb2xkZXIsIHRoZW4gemlwcyB0aGUgd2hvbGUgdmF1bHQgdG9cbiAqIGBkaXN0L2J1aWxkLzxwbHVnaW4taWQ+LWRlbW8tdmF1bHQtPHZlcnNpb24+LnppcGAuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgY3JlYXRlZCB6aXAgYXJjaGl2ZSwgb3JcbiAqIGBudWxsYCBpZiB0aGUgcmVwbyBoYXMgbm8gYGRlbW8tdmF1bHQvYCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0KCk6IFByb21pc2U8bnVsbCB8IHN0cmluZz4ge1xuICBjb25zdCBkZW1vVmF1bHRQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EZW1vVmF1bHQgfSk7XG4gIGlmICghZXhpc3RzU3luYyhkZW1vVmF1bHRQYXRoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24gfSk7XG4gIGNvbnN0IG1hbmlmZXN0ID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShtYW5pZmVzdFBhdGgsICd1dGYtOCcpKSBhcyBQbHVnaW5NYW5pZmVzdDtcblxuICBjb25zdCBwbHVnaW5Gb2xkZXIgPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7XG4gICAgcGF0aDogam9pbihcbiAgICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRlbW9WYXVsdCxcbiAgICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRvdE9ic2lkaWFuLFxuICAgICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuUGx1Z2lucyxcbiAgICAgIG1hbmlmZXN0LmlkXG4gICAgKVxuICB9KTtcbiAgYXdhaXQgbWtkaXIocGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBjb25zdCBkaXN0QnVpbGRQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQgfSk7XG4gIGF3YWl0IGNwKGRpc3RCdWlsZFBhdGgsIHBsdWdpbkZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgYXdhaXQgaW5qZWN0RGVtb1ZhdWx0SGVscGVyKG1hbmlmZXN0LmlkKTtcblxuICAvLyBBcmNoaXZlIG5hbWUgaXMgaGFuZC1zeW5jZWQgd2l0aCB0aGUgcnVudGltZSBgb3BlbkRlbW9WYXVsdGAgb3BlbmVyLCB3aGljaCBkb3dubG9hZHMgdGhpcyBleGFjdCBhc3NldCBuYW1lLlxuICBjb25zdCB6aXBQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoe1xuICAgIHBhdGg6IGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkLCBgJHttYW5pZmVzdC5pZH0tZGVtby12YXVsdC0ke21hbmlmZXN0LnZlcnNpb259LnppcGApXG4gIH0pO1xuICBjb25zdCB6aXAgPSBuZXcgQWRtWmlwKCk7XG4gIHppcC5hZGRMb2NhbEZvbGRlcihkZW1vVmF1bHRQYXRoKTtcbiAgYXdhaXQgemlwLndyaXRlWmlwUHJvbWlzZSh6aXBQYXRoKTtcbiAgcmV0dXJuIHppcFBhdGg7XG59XG5cbi8vIEluamVjdHMgdGhlIGJ1aWx0LCBgb2JzaWRpYW4tZGV2LXV0aWxzYC1vd25lZCBgZGVtby12YXVsdC1oZWxwZXJgIGJvb3RzdHJhcCBwbHVnaW4gKHNoaXBwZWQgaW4gdGhpcyBwYWNrYWdlKSBpbnRvIHRoZSBkZW1vIHZhdWx0LCBzbyBubyBwZXItdmF1bHQgY29weSBpcyBjb21taXR0ZWQgYW5kIGFuIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGJ1bXAgcHJvcGFnYXRlcyBmaXhlcy5cbi8vXG4vLyBBbG9uZ3NpZGUgdGhlIGJpbmFyaWVzIGl0IHdyaXRlcyB0aGUgaGVscGVyJ3Mgb3duIGBkYXRhLmpzb25gIG5hbWluZyB0aGUgZGVtb25zdHJhdGVkIHBsdWdpbi4gVGhhdCBpc1xuLy8gVGhlIG9uZSBtb21lbnQgdGhlIGlkIGlzIGtub3duIGZvciBjZXJ0YWluIFx1MjAxNCBpdCBjb21lcyBmcm9tIHRoZSBwbHVnaW4ncyBvd24gbWFuaWZlc3QgXHUyMDE0IHdoZXJlYXMgdGhlXG4vLyBPcGVuZWQgdmF1bHQgb25seSBvZmZlcnMgcGx1Z2luIGZvbGRlcnMgdG8gY291bnQsIHdoaWNoIHRoZSBib290c3RyYXAgaXRzZWxmIGFkZHMgdG8gKHNlZVxuLy8gYERlbW9WYXVsdEhlbHBlclNldHRpbmdzYCkuXG5hc3luYyBmdW5jdGlvbiBpbmplY3REZW1vVmF1bHRIZWxwZXIoZGVtb2VkUGx1Z2luSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwYWNrYWdlRm9sZGVyID0gZ2V0Um9vdEZvbGRlcihnZXRGb2xkZXJOYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICBpZiAoIXBhY2thZ2VGb2xkZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCByZXNvbHZlIHRoZSBvYnNpZGlhbi1kZXYtdXRpbHMgcGFja2FnZSBmb2xkZXIgdG8gaW5qZWN0IHRoZSBkZW1vLXZhdWx0LWhlbHBlciBwbHVnaW4uJyk7XG4gIH1cblxuICBjb25zdCBoZWxwZXJTb3VyY2VQYXRoID0gam9pbihwYWNrYWdlRm9sZGVyLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3REZW1vVmF1bHRIZWxwZXIpO1xuICBjb25zdCBoZWxwZXJGb2xkZXIgPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7XG4gICAgcGF0aDogam9pbihcbiAgICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRlbW9WYXVsdCxcbiAgICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRvdE9ic2lkaWFuLFxuICAgICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuUGx1Z2lucyxcbiAgICAgIERFTU9fVkFVTFRfSEVMUEVSX1BMVUdJTl9JRFxuICAgIClcbiAgfSk7XG4gIGF3YWl0IG1rZGlyKGhlbHBlckZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IGNwKGhlbHBlclNvdXJjZVBhdGgsIGhlbHBlckZvbGRlciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgY29uc3Qgc2V0dGluZ3M6IERlbW9WYXVsdEhlbHBlclNldHRpbmdzID0geyBkZW1vZWRQbHVnaW5JZCB9O1xuICBhd2FpdCB3cml0ZUZpbGUoam9pbihoZWxwZXJGb2xkZXIsIERBVEFfSlNPTl9GSUxFX05BTUUpLCBgJHtKU09OLnN0cmluZ2lmeShzZXR0aW5ncywgbnVsbCwgREFUQV9KU09OX0lOREVOVCl9XFxuYCwgJ3V0Zi04Jyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLE9BQU8sWUFBWTtBQUNuQixTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBSVAsU0FBUywrQkFBK0I7QUFDeEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGlDQUFpQztBQUMxQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLE1BQU0sOEJBQThCO0FBQ3BDLE1BQU0sc0JBQXNCO0FBQzVCLE1BQU0sbUJBQW1CO0FBMkJ6QixlQUFzQix5QkFBaUQ7QUFDckUsUUFBTSxnQkFBZ0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsVUFBVSxDQUFDO0FBQ3pGLE1BQUksQ0FBQyxXQUFXLGFBQWEsR0FBRztBQUM5QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZUFBZSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixhQUFhLENBQUM7QUFDM0YsUUFBTSxXQUFXLEtBQUssTUFBTSxNQUFNLFNBQVMsY0FBYyxPQUFPLENBQUM7QUFFakUsUUFBTSxlQUFlLHdCQUF3QjtBQUFBLElBQzNDLE1BQU07QUFBQSxNQUNKLHdCQUF3QjtBQUFBLE1BQ3hCLHdCQUF3QjtBQUFBLE1BQ3hCLHdCQUF3QjtBQUFBLE1BQ3hCLFNBQVM7QUFBQSxJQUNYO0FBQUEsRUFDRixDQUFDO0FBQ0QsUUFBTSxNQUFNLGNBQWMsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUU3QyxRQUFNLGdCQUFnQix3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixVQUFVLENBQUM7QUFDekYsUUFBTSxHQUFHLGVBQWUsY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRXpELFFBQU0sc0JBQXNCLFNBQVMsRUFBRTtBQUd2QyxRQUFNLFVBQVUsd0JBQXdCO0FBQUEsSUFDdEMsTUFBTSxLQUFLLHdCQUF3QixXQUFXLEdBQUcsU0FBUyxFQUFFLGVBQWUsU0FBUyxPQUFPLE1BQU07QUFBQSxFQUNuRyxDQUFDO0FBQ0QsUUFBTSxNQUFNLElBQUksT0FBTztBQUN2QixNQUFJLGVBQWUsYUFBYTtBQUNoQyxRQUFNLElBQUksZ0JBQWdCLE9BQU87QUFDakMsU0FBTztBQUNUO0FBUUEsZUFBZSxzQkFBc0IsZ0JBQXVDO0FBQzFFLFFBQU0sZ0JBQWdCLGNBQWMsY0FBYyxZQUFZLEdBQUcsQ0FBQztBQUNsRSxNQUFJLENBQUMsZUFBZTtBQUNsQixVQUFNLElBQUksTUFBTSxpR0FBaUc7QUFBQSxFQUNuSDtBQUVBLFFBQU0sbUJBQW1CLEtBQUssZUFBZSwwQkFBMEIsbUJBQW1CO0FBQzFGLFFBQU0sZUFBZSx3QkFBd0I7QUFBQSxJQUMzQyxNQUFNO0FBQUEsTUFDSix3QkFBd0I7QUFBQSxNQUN4Qix3QkFBd0I7QUFBQSxNQUN4Qix3QkFBd0I7QUFBQSxNQUN4QjtBQUFBLElBQ0Y7QUFBQSxFQUNGLENBQUM7QUFDRCxRQUFNLE1BQU0sY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQzdDLFFBQU0sR0FBRyxrQkFBa0IsY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRTVELFFBQU0sV0FBb0MsRUFBRSxlQUFlO0FBQzNELFFBQU0sVUFBVSxLQUFLLGNBQWMsbUJBQW1CLEdBQUcsR0FBRyxLQUFLLFVBQVUsVUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQUEsR0FBTSxPQUFPO0FBQzNIOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/obsidian/demo-vault-helper-settings.cjs",
3
+ "module": "../../dist/lib/esm/obsidian/demo-vault-helper-settings.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/obsidian/demo-vault-helper-settings.d.cts"
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-dev-utils",
3
- "version": "92.1.0",
3
+ "version": "93.0.0",
4
4
  "description": "This is the collection of useful functions that you can use for your Obsidian plugin development.",
5
5
  "keywords": [
6
6
  "obsidian"