@mnaoumov/obsidian-lib 5.2.1 → 6.0.1

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 (147) hide show
  1. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +1 -1
  2. package/dist/lib/cjs/__merged.cjs +10 -24
  3. package/dist/lib/cjs/__merged.d.cts +5 -5
  4. package/dist/lib/cjs/async-with-notice.cjs +7 -7
  5. package/dist/lib/cjs/backlink-index.cjs +3 -3
  6. package/dist/lib/cjs/callout.cjs +2 -2
  7. package/dist/lib/cjs/case-insensitive-file-index.cjs +5 -5
  8. package/dist/lib/cjs/community-plugins.cjs +3 -3
  9. package/dist/lib/cjs/components/async-error-handler-component.cjs +2 -2
  10. package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
  11. package/dist/lib/cjs/components/plugin-context-component.cjs +1 -3
  12. package/dist/lib/cjs/components/plugin-context-component.d.cts +1 -2
  13. package/dist/lib/cjs/components/plugin-gate-component.cjs +15 -15
  14. package/dist/lib/cjs/components/plugin-notice-component.cjs +5 -5
  15. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +5 -5
  16. package/dist/lib/cjs/components/release-notes-component.cjs +2 -2
  17. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +10 -10
  18. package/dist/lib/cjs/css-class.cjs +1 -2
  19. package/dist/lib/cjs/css-class.d.cts +3 -11
  20. package/dist/lib/cjs/dataview.cjs +4 -4
  21. package/dist/lib/cjs/debug.cjs +2 -22
  22. package/dist/lib/cjs/debug.d.cts +0 -5
  23. package/dist/lib/cjs/demo-vault-helper.cjs +5 -1
  24. package/dist/lib/cjs/demo-vault-helper.d.cts +8 -2
  25. package/dist/lib/cjs/frontmatter.cjs +3 -3
  26. package/dist/lib/cjs/frontmatter.d.cts +1 -1
  27. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  28. package/dist/lib/cjs/html-element.cjs +1 -1
  29. package/dist/lib/cjs/html-element.d.cts +1 -1
  30. package/dist/lib/cjs/i18n/i18n.cjs +1 -1
  31. package/dist/lib/cjs/i18n/i18n.d.cts +1 -1
  32. package/dist/lib/cjs/i18n/locales/en.cjs +2 -2
  33. package/dist/lib/cjs/i18n/locales/en.d.cts +1 -1
  34. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +1 -1
  35. package/dist/lib/cjs/index.cjs +4 -4
  36. package/dist/lib/cjs/index.d.cts +1 -1
  37. package/dist/lib/cjs/library-styles.cjs +7 -14
  38. package/dist/lib/cjs/library-styles.d.cts +9 -23
  39. package/dist/lib/cjs/library.cjs +1 -4
  40. package/dist/lib/cjs/library.d.cts +3 -11
  41. package/dist/lib/cjs/link.cjs +11 -10
  42. package/dist/lib/cjs/markdown.cjs +3 -3
  43. package/dist/lib/cjs/metadata-cache.cjs +5 -5
  44. package/dist/lib/cjs/modals/alert.cjs +2 -2
  45. package/dist/lib/cjs/modals/confirm.cjs +3 -3
  46. package/dist/lib/cjs/modals/prompt.cjs +3 -3
  47. package/dist/lib/cjs/obsidian-lib-state.cjs +148 -0
  48. package/dist/lib/cjs/obsidian-lib-state.d.cts +30 -0
  49. package/dist/lib/cjs/path-settings.cjs +6 -6
  50. package/dist/lib/cjs/plugin/index.cjs +1 -4
  51. package/dist/lib/cjs/plugin/index.d.cts +0 -1
  52. package/dist/lib/cjs/plugin/plugin-api.cjs +3 -3
  53. package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -41
  54. package/dist/lib/cjs/plugin/plugin-context.cjs +1 -6
  55. package/dist/lib/cjs/plugin/plugin-install-state.cjs +5 -5
  56. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -40
  57. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +8 -62
  58. package/dist/lib/cjs/plugin/plugin.cjs +2 -2
  59. package/dist/lib/cjs/plugin/plugin.d.cts +1 -1
  60. package/dist/lib/cjs/popovers/popover.cjs +3 -3
  61. package/dist/lib/cjs/queue.cjs +4 -4
  62. package/dist/lib/cjs/reference.cjs +7 -2
  63. package/dist/lib/cjs/reference.d.cts +12 -0
  64. package/dist/lib/cjs/resource-lock.cjs +9 -9
  65. package/dist/lib/cjs/vault-delete.cjs +2 -2
  66. package/dist/lib/cjs/vault-transaction.cjs +17 -2
  67. package/dist/lib/cjs/vault-transaction.d.cts +2 -1
  68. package/dist/lib/cjs/vault.cjs +2 -2
  69. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +1 -1
  70. package/dist/lib/esm/__merged.d.mts +5 -5
  71. package/dist/lib/esm/__merged.mjs +10 -24
  72. package/dist/lib/esm/async-with-notice.mjs +7 -7
  73. package/dist/lib/esm/backlink-index.mjs +3 -3
  74. package/dist/lib/esm/callout.mjs +2 -2
  75. package/dist/lib/esm/case-insensitive-file-index.mjs +5 -5
  76. package/dist/lib/esm/community-plugins.mjs +3 -3
  77. package/dist/lib/esm/components/async-error-handler-component.mjs +2 -2
  78. package/dist/lib/esm/components/monkey-around-component.mjs +3 -3
  79. package/dist/lib/esm/components/plugin-context-component.d.mts +1 -2
  80. package/dist/lib/esm/components/plugin-context-component.mjs +1 -3
  81. package/dist/lib/esm/components/plugin-gate-component.mjs +15 -15
  82. package/dist/lib/esm/components/plugin-notice-component.mjs +5 -5
  83. package/dist/lib/esm/components/plugin-suggestion-component.mjs +5 -5
  84. package/dist/lib/esm/components/release-notes-component.mjs +2 -2
  85. package/dist/lib/esm/components/rename-delete-handler-component.mjs +10 -10
  86. package/dist/lib/esm/css-class.d.mts +3 -11
  87. package/dist/lib/esm/css-class.mjs +1 -2
  88. package/dist/lib/esm/dataview.mjs +4 -4
  89. package/dist/lib/esm/debug.d.mts +0 -5
  90. package/dist/lib/esm/debug.mjs +3 -26
  91. package/dist/lib/esm/demo-vault-helper.d.mts +8 -2
  92. package/dist/lib/esm/demo-vault-helper.mjs +5 -1
  93. package/dist/lib/esm/frontmatter.d.mts +1 -1
  94. package/dist/lib/esm/frontmatter.mjs +3 -3
  95. package/dist/lib/esm/generated-during-build.mjs +2 -2
  96. package/dist/lib/esm/html-element.d.mts +1 -1
  97. package/dist/lib/esm/html-element.mjs +1 -1
  98. package/dist/lib/esm/i18n/i18n.d.mts +1 -1
  99. package/dist/lib/esm/i18n/i18n.mjs +1 -1
  100. package/dist/lib/esm/i18n/locales/en.d.mts +1 -1
  101. package/dist/lib/esm/i18n/locales/en.mjs +2 -2
  102. package/dist/lib/esm/i18n/locales/translations-map.d.mts +1 -1
  103. package/dist/lib/esm/index.d.mts +1 -1
  104. package/dist/lib/esm/index.mjs +3 -3
  105. package/dist/lib/esm/library-styles.d.mts +9 -23
  106. package/dist/lib/esm/library-styles.mjs +7 -12
  107. package/dist/lib/esm/library.d.mts +3 -11
  108. package/dist/lib/esm/library.mjs +1 -3
  109. package/dist/lib/esm/link.mjs +12 -10
  110. package/dist/lib/esm/markdown.mjs +3 -3
  111. package/dist/lib/esm/metadata-cache.mjs +9 -6
  112. package/dist/lib/esm/modals/alert.mjs +2 -2
  113. package/dist/lib/esm/modals/confirm.mjs +3 -3
  114. package/dist/lib/esm/modals/prompt.mjs +3 -3
  115. package/dist/lib/esm/obsidian-lib-state.d.mts +30 -0
  116. package/dist/lib/esm/obsidian-lib-state.mjs +59 -0
  117. package/dist/lib/esm/path-settings.mjs +6 -6
  118. package/dist/lib/esm/plugin/index.d.mts +0 -1
  119. package/dist/lib/esm/plugin/index.mjs +1 -3
  120. package/dist/lib/esm/plugin/plugin-api.d.mts +5 -41
  121. package/dist/lib/esm/plugin/plugin-api.mjs +3 -3
  122. package/dist/lib/esm/plugin/plugin-context.mjs +1 -7
  123. package/dist/lib/esm/plugin/plugin-install-state.mjs +5 -5
  124. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +8 -62
  125. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -37
  126. package/dist/lib/esm/plugin/plugin.d.mts +1 -1
  127. package/dist/lib/esm/plugin/plugin.mjs +2 -2
  128. package/dist/lib/esm/popovers/popover.mjs +3 -3
  129. package/dist/lib/esm/queue.mjs +4 -4
  130. package/dist/lib/esm/reference.d.mts +12 -0
  131. package/dist/lib/esm/reference.mjs +6 -2
  132. package/dist/lib/esm/resource-lock.mjs +9 -9
  133. package/dist/lib/esm/vault-delete.mjs +2 -2
  134. package/dist/lib/esm/vault-transaction.d.mts +2 -1
  135. package/dist/lib/esm/vault-transaction.mjs +17 -2
  136. package/dist/lib/esm/vault.mjs +2 -2
  137. package/dist/styles.css +169 -169
  138. package/package.json +1 -1
  139. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +0 -177
  140. package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +0 -50
  141. package/dist/lib/cjs/plugin/plugin-api-schema.cjs +0 -127
  142. package/dist/lib/cjs/plugin/plugin-api-schema.d.cts +0 -37
  143. package/dist/lib/esm/obsidian-dev-utils-state.d.mts +0 -50
  144. package/dist/lib/esm/obsidian-dev-utils-state.mjs +0 -86
  145. package/dist/lib/esm/plugin/plugin-api-schema.d.mts +0 -37
  146. package/dist/lib/esm/plugin/plugin-api-schema.mjs +0 -41
  147. package/plugin/plugin-api-schema/package.json +0 -6
@@ -38,7 +38,7 @@ import {
38
38
  parseYaml,
39
39
  stringifyYaml
40
40
  } from "obsidian";
41
- import { getObsidianDevUtilsState } from "./obsidian-dev-utils-state.mjs";
41
+ import { getObsidianLibState } from "./obsidian-lib-state.mjs";
42
42
  const FRONTMATTER_FORMATTING_PRESERVER_STATE_KEY = "frontmatterFormattingPreserver";
43
43
  const KEY_PATH_SEPARATOR = ".";
44
44
  class EmptyFrontmatterValueRemover {
@@ -141,7 +141,7 @@ ${newFrontmatterString}---
141
141
  ${content}`;
142
142
  }
143
143
  function getFrontmatterFormattingPreserverWrapper() {
144
- return getObsidianDevUtilsState(FRONTMATTER_FORMATTING_PRESERVER_STATE_KEY, null);
144
+ return getObsidianLibState(FRONTMATTER_FORMATTING_PRESERVER_STATE_KEY, null);
145
145
  }
146
146
  function preserveFormatting(content, newFrontmatter) {
147
147
  const preserver = getFrontmatterFormattingPreserverWrapper().value;
@@ -162,4 +162,4 @@ export {
162
162
  removeEmptyFrontmatterValues,
163
163
  setFrontmatter
164
164
  };
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mcm9udG1hdHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgYW5kIG1hbmFnaW5nIFlBTUwgZnJvbnQgbWF0dGVyIGluIE9ic2lkaWFuIG5vdGVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS13cmFwcGVyJztcblxuaW1wb3J0IHsgZmlsdGVySW5QbGFjZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hcnJheSc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7IGluc2VydEF0IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQge1xuICBnZXRGcm9udE1hdHRlckluZm8sXG4gIHBhcnNlWWFtbCxcbiAgc3RyaW5naWZ5WWFtbFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcblxuLyoqXG4gKiBBIGNvbWJpbmVkIGZyb250IG1hdHRlciBvZiBhIGRvY3VtZW50LlxuICogSXQgaXMgYSB1bmlvbiBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLCBPYnNpZGlhbiBmcm9udCBtYXR0ZXIsIGFuZCBhZGRpdGlvbmFsIHByb3BlcnRpZXMuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udG1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIENvbWJpbmVkRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+ID0gR2VuZXJpY09iamVjdDxDdXN0b21Gcm9udG1hdHRlciAmIE9ic2lkaWFuRnJvbnRtYXR0ZXI+O1xuXG4vKipcbiAqIEEgcmV3cml0ZSBvZiBhIG5vdGUncyBmcm9udCBtYXR0ZXIgdGhhdCBrZWVwcyB0aGUgYXV0aG9yJ3Mgb3JpZ2luYWwgZm9ybWF0dGluZyB3aGVyZXZlciB0aGUgY2hhbmdlIGRvZXMgbm90IHJlYWNoIGl0LlxuICpcbiAqIEl0IGlzIGhhbmRlZCB0aGUgd2hvbGUgbm90ZSBhbmQgdGhlIGZyb250IG1hdHRlciB0byB3cml0ZSwgYW5kIHJldHVybnMgdGhlIHdob2xlIG5ldyBub3RlIOKAlCBvciBgbnVsbGAgd2hlbiBpdCBjYW5ub3QgYmUgZmFpdGhmdWwsIHdoaWNoIGhhbmRzIHRoZSB3cml0ZSBiYWNrIHRvIHtAbGluayBzZXRGcm9udG1hdHRlcn0ncyBvd24gcGFyc2UtYW5kLXN0cmluZ2lmeSBwYXRoLiBSZXR1cm5pbmcgYG51bGxgIGlzIG5ldmVyIGFuIGVycm9yOiBpdCBpcyBob3cgdGhlIHByZXNlcnZlciBndWFyYW50ZWVzIGl0IGNhbiBvbmx5IGV2ZXIgbWF0Y2ggb3IgaW1wcm92ZSBvbiB0aGF0IHBhdGgsIG5ldmVyIGRvIHdvcnNlIHRoYW4gaXQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgbm90ZSB0byByZXdyaXRlIHRoZSBmcm9udCBtYXR0ZXIgb2YuXG4gKiBAcGFyYW0gbmV3RnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnQgbWF0dGVyIHRvIHdyaXRlLlxuICogQHJldHVybnMgVGhlIG5ldyBub3RlLCBvciBgbnVsbGAgdG8gbGV0IHtAbGluayBzZXRGcm9udG1hdHRlcn0gd3JpdGUgaXQgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyID0gKHRoaXM6IHZvaWQsIGNvbnRlbnQ6IHN0cmluZywgbmV3RnJvbnRtYXR0ZXI6IG9iamVjdCkgPT4gbnVsbCB8IHN0cmluZztcblxuLyoqXG4gKiBBIGZyb250IG1hdHRlciBvZiBhbiBPYnNpZGlhbiBmaWxlLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaGVscC5vYnNpZGlhbi5tZC9FZGl0aW5nK2FuZCtmb3JtYXR0aW5nL1Byb3BlcnRpZXMjRGVmYXVsdCtwcm9wZXJ0aWVzfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuRnJvbnRtYXR0ZXIge1xuICAvKipcbiAgICogQW4gYXJyYXkgb2YgYWxpYXNlcyBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBhbGlhc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBub3RlLlxuICAgKi9cbiAgY3NzY2xhc3Nlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiB0YWdzIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGZyb250IG1hdHRlciBmb3IgcHVibGlzaGluZyBpbiBPYnNpZGlhbi5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2hlbHAub2JzaWRpYW4ubWQvRWRpdGluZythbmQrZm9ybWF0dGluZy9Qcm9wZXJ0aWVzI1Byb3BlcnRpZXMrZm9yK09ic2lkaWFuK1B1Ymxpc2h9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5QdWJsaXNoRnJvbnRtYXR0ZXIge1xuICAvKipcbiAgICogQSBjb3ZlciBpbWFnZSBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBjb3Zlcj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gaW1hZ2UgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgcGVybWFuZW50IGxpbmsgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgcGVybWFsaW5rPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBub3RlIGlzIHB1Ymxpc2hlZC5cbiAgICovXG4gIHB1Ymxpc2g/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZW1vdmVFbXB0eUZyb250bWF0dGVyVmFsdWVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW1vdmVFbXB0eUZyb250bWF0dGVyVmFsdWVzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBmcm9udCBtYXR0ZXIgb2JqZWN0IHRvIHJlbW92ZSB0aGUgZW1wdHkgdmFsdWVzIGZyb20uIEl0IGlzIG1vZGlmaWVkIGluIHBsYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJvbnRtYXR0ZXI6IEdlbmVyaWNPYmplY3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVtb3ZlIGFycmF5cyB0aGF0IGFyZSBlbXB0eSwgaW5jbHVkaW5nIHRoZSBvbmVzIHRoYXQgYmVjYW1lIGVtcHR5IGFmdGVyIHRoZWlyIG93biBpdGVtcyB3ZXJlIHJlbW92ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJlbW92ZUVtcHR5QXJyYXlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZW1vdmUgcGxhaW4gb2JqZWN0cyB0aGF0IGFyZSBlbXB0eSwgaW5jbHVkaW5nIHRoZSBvbmVzIHRoYXQgYmVjYW1lIGVtcHR5IGFmdGVyIHRoZWlyIG93biBwcm9wZXJ0aWVzIHdlcmUgcmVtb3ZlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVtb3ZlRW1wdHlPYmplY3RzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZW1vdmUgYG51bGxgIGFuZCBgdW5kZWZpbmVkYCB2YWx1ZXMuIEJvdGggYXJlIHRyZWF0ZWQgdGhlIHNhbWU6IHRoZXkgYXJlIHRoZSB0d28gd2F5cyBhIGtleSBjYW4gYmUgcHJlc2VudCBidXQgY2Fycnkgbm8gdmFsdWUsIGFuZCBgdW5kZWZpbmVkYCBjYW5ub3Qgc3Vydml2ZSBhIFlBTUwgcm91bmQtdHJpcCBhbnl3YXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJlbW92ZU51bGxzPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRlJPTlRNQVRURVJfRk9STUFUVElOR19QUkVTRVJWRVJfU1RBVEVfS0VZID0gJ2Zyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlcic7XG5jb25zdCBLRVlfUEFUSF9TRVBBUkFUT1IgPSAnLic7XG5cbi8qKlxuICogUmVtb3ZlcyBlbXB0eSB2YWx1ZXMgZnJvbSBhIGZyb250IG1hdHRlciBvYmplY3QsIHJlY3Vyc2luZyBpbnRvIG5lc3RlZCBvYmplY3RzIGFuZCBhcnJheXMuXG4gKlxuICogVGhlIHRyYXZlcnNhbCBpcyBib3R0b20tdXA6IGEgY29udGFpbmVyIGlzIHBydW5lZCBiZWZvcmUgaXQgaXMgaXRzZWxmIHRlc3RlZCBmb3IgZW1wdGluZXNzLCBzbyBhIGNvbnRhaW5lciB0aGF0IGhvbGRzIG5vdGhpbmcgYnV0IGVtcHR5IHZhbHVlcyBpcyByZW1vdmVkIGFzIHdlbGwgd2hlbiB0aGUgbWF0Y2hpbmcgb3B0aW9uIGlzIGVuYWJsZWQuXG4gKi9cbmNsYXNzIEVtcHR5RnJvbnRtYXR0ZXJWYWx1ZVJlbW92ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbW92ZWRLZXlQYXRoczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBzaG91bGRSZW1vdmVFbXB0eUFycmF5czogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaG91bGRSZW1vdmVFbXB0eU9iamVjdHM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvdWxkUmVtb3ZlTnVsbHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcmVtb3ZlciwgcmVzb2x2aW5nIHRoZSBwcm92aWRlZCBvcHRpb25zIGFnYWluc3QgdGhlIGRlZmF1bHRzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlbW92aW5nIHRoZSBlbXB0eSBmcm9udCBtYXR0ZXIgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogUmVtb3ZlRW1wdHlGcm9udG1hdHRlclZhbHVlc1BhcmFtcykge1xuICAgIHRoaXMuc2hvdWxkUmVtb3ZlRW1wdHlBcnJheXMgPSBwYXJhbXMuc2hvdWxkUmVtb3ZlRW1wdHlBcnJheXMgPz8gZmFsc2U7XG4gICAgdGhpcy5zaG91bGRSZW1vdmVFbXB0eU9iamVjdHMgPSBwYXJhbXMuc2hvdWxkUmVtb3ZlRW1wdHlPYmplY3RzID8/IGZhbHNlO1xuICAgIHRoaXMuc2hvdWxkUmVtb3ZlTnVsbHMgPSBwYXJhbXMuc2hvdWxkUmVtb3ZlTnVsbHMgPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgZW1wdHkgdmFsdWVzIGZyb20gdGhlIGdpdmVuIGZyb250IG1hdHRlciBvYmplY3QsIG1vZGlmeWluZyBpdCBpbiBwbGFjZS5cbiAgICpcbiAgICogQHBhcmFtIGZyb250bWF0dGVyIC0gVGhlIGZyb250IG1hdHRlciBvYmplY3QgdG8gcmVtb3ZlIHRoZSBlbXB0eSB2YWx1ZXMgZnJvbS5cbiAgICogQHJldHVybnMgVGhlIGtleSBwYXRocyBvZiB0aGUgcmVtb3ZlZCB2YWx1ZXMsIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgcmVtb3ZlZC5cbiAgICovXG4gIHB1YmxpYyByZW1vdmUoZnJvbnRtYXR0ZXI6IEdlbmVyaWNPYmplY3QpOiBzdHJpbmdbXSB7XG4gICAgdGhpcy5wcnVuZU9iamVjdChmcm9udG1hdHRlciwgJycpO1xuICAgIHJldHVybiB0aGlzLnJlbW92ZWRLZXlQYXRocztcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tJc0VtcHR5KHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnNob3VsZFJlbW92ZU51bGxzO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB2YWx1ZS5sZW5ndGggPT09IDAgJiYgdGhpcy5zaG91bGRSZW1vdmVFbXB0eUFycmF5c1xuICAgICAgOiBjaGVja0lzUGxhaW5PYmplY3QodmFsdWUpICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDAgJiYgdGhpcy5zaG91bGRSZW1vdmVFbXB0eU9iamVjdHM7XG4gIH1cblxuICBwcml2YXRlIGpvaW5LZXlQYXRoKGtleVBhdGg6IHN0cmluZywga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBrZXlQYXRoID8gYCR7a2V5UGF0aH0ke0tFWV9QQVRIX1NFUEFSQVRPUn0ke2tleX1gIDoga2V5O1xuICB9XG5cbiAgcHJpdmF0ZSBwcnVuZSh2YWx1ZTogdW5rbm93biwga2V5UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aGlzLnBydW5lQXJyYXkodmFsdWUsIGtleVBhdGgpO1xuICAgIH0gZWxzZSBpZiAoY2hlY2tJc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgdGhpcy5wcnVuZU9iamVjdCh2YWx1ZSwga2V5UGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcnVuZUFycmF5KGFycmF5OiB1bmtub3duW10sIGtleVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGZpbHRlckluUGxhY2UoYXJyYXksIChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgaXRlbUtleVBhdGggPSB0aGlzLmpvaW5LZXlQYXRoKGtleVBhdGgsIFN0cmluZyhpbmRleCkpO1xuICAgICAgdGhpcy5wcnVuZShpdGVtLCBpdGVtS2V5UGF0aCk7XG4gICAgICBpZiAoIXRoaXMuY2hlY2tJc0VtcHR5KGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlbW92ZWRLZXlQYXRocy5wdXNoKGl0ZW1LZXlQYXRoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJ1bmVPYmplY3QoJG9iamVjdDogR2VuZXJpY09iamVjdCwga2V5UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoJG9iamVjdCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlS2V5UGF0aCA9IHRoaXMuam9pbktleVBhdGgoa2V5UGF0aCwga2V5KTtcbiAgICAgIHRoaXMucHJ1bmUodmFsdWUsIHZhbHVlS2V5UGF0aCk7XG4gICAgICBpZiAoIXRoaXMuY2hlY2tJc0VtcHR5KHZhbHVlKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZW1vdmVkS2V5UGF0aHMucHVzaCh2YWx1ZUtleVBhdGgpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1keW5hbWljLWRlbGV0ZSAtLSBXZSBoYXZlIG5vIG90aGVyIHdheSB0byBkZWxldGUgdGhlIHByb3BlcnR5LlxuICAgICAgZGVsZXRlICRvYmplY3Rba2V5XTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QsIGkuZS4gYW4gb2JqZWN0IGxpdGVyYWwgcmF0aGVyIHRoYW4gYW4gYXJyYXkgb3IgYSBjbGFzcyBpbnN0YW5jZS5cbiAqXG4gKiBgcGFyc2VZYW1sKClgIHR1cm5zIGEgWUFNTCB0aW1lc3RhbXAgaW50byBhIHtAbGluayBEYXRlfSwgd2hpY2ggaGFzIG5vIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMsIHNvIGEgcGxhaW4gYHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdgIHRlc3Qgd291bGQgcmVwb3J0IGV2ZXJ5IGRhdGUgYXMgYW4gZW1wdHkgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHZhbHVlIGlzIGEgcGxhaW4gb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJc1BsYWluT2JqZWN0KHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgR2VuZXJpY09iamVjdCB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSkgPT09IE9iamVjdC5wcm90b3R5cGU7XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBjb250ZW50IHN0cmluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIEN1c3RvbUZyb250bWF0dGVyIC0gVGhlIHR5cGUgb2YgdGhlIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKiBAcGFyYW0gY29udGVudCAtIFRoZSBjb250ZW50IHN0cmluZyB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KGNvbnRlbnQ6IHN0cmluZyk6IENvbWJpbmVkRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+IHtcbiAgY29uc3QgZnJvbnRtYXR0ZXJJbmZvID0gZ2V0RnJvbnRNYXR0ZXJJbmZvKGNvbnRlbnQpO1xuICByZXR1cm4gKHBhcnNlWWFtbChmcm9udG1hdHRlckluZm8uZnJvbnRtYXR0ZXIpID8/IHt9KSBhcyBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIHtAbGluayBGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXJ9IGV2ZXJ5IGZyb250LW1hdHRlciB3cml0ZSBpbiB0aGlzIGxpYnJhcnkgcm91dGVzIHRocm91Z2guXG4gKlxuICogVGhlcmUgaXMgYXQgbW9zdCBvbmUsIHNoYXJlZCBieSBldmVyeSBwbHVnaW4gbG9hZGVkIGluIHRoZSBzYW1lIHJlYWxtIOKAlCBsaWtlIGV2ZXJ5IG90aGVyIHJlZ2lzdHJhdGlvbiBpbiB0aGlzIGxpYnJhcnkgaXQgbGl2ZXMgaW4gdGhlIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5EZXZVdGlsc2AgYmFnIOKAlCBzbyBhIHNpbmdsZSBjYWxsIG1ha2VzIGV2ZXJ5IHdyaXRlIHRoaXMgbGlicmFyeSBwZXJmb3JtcyBmb3JtYXR0aW5nLXByZXNlcnZpbmcsIGBwcm9jZXNzRnJvbnRtYXR0ZXIoKWAgYW5kIGBhcHBseUZpbGVDaGFuZ2VzKClgIGluY2x1ZGVkLiBQYXNzIGBudWxsYCB0byB1bnJlZ2lzdGVyLlxuICpcbiAqIFRoZSBwcmVzZXJ2ZXIgaXMgTk9UIHJlZ2lzdGVyZWQgYnkgZGVmYXVsdCwgYW5kIHRoYXQgaXMgYSBidW5kbGUtc2l6ZSBkZWNpc2lvbiByYXRoZXIgdGhhbiBhIGRvdWJ0IGFib3V0IHRoZSBlbmdpbmU6IHRoZSBvbmUgdGhpcyBsaWJyYXJ5IHNoaXBzIG5lZWRzIHRoZSBgeWFtbGAgcGFja2FnZSdzIENTVCBBUEksIHdoaWNoIE9ic2lkaWFuIGRvZXMgbm90IGhhbmQgdG8gcGx1Z2lucyBhbmQgd2hpY2ggY29zdHMgYWJvdXQgMTAwIEtCIG9mIGEgcGx1Z2luJ3MgYG1haW4uanNgLiBBIHBsdWdpbiB0aGF0IHdhbnRzIGl0IGNhbGxzIGBlbmFibGVGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2YXRpb24oKWAgZnJvbSBgQG1uYW91bW92L29ic2lkaWFuLWxpYi9mcm9udG1hdHRlci1mb3JtYXR0aW5nYCwgYW5kIHBheXMgZm9yIGl0IG9ubHkgdGhlbi5cbiAqXG4gKiBAcGFyYW0gcHJlc2VydmVyIC0gVGhlIHByZXNlcnZlciB0byByb3V0ZSBmcm9udC1tYXR0ZXIgd3JpdGVzIHRocm91Z2gsIG9yIGBudWxsYCB0byB1bnJlZ2lzdGVyIHRoZSBjdXJyZW50IG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyKHByZXNlcnZlcjogRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyIHwgbnVsbCk6IHZvaWQge1xuICBnZXRGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXJXcmFwcGVyKCkudmFsdWUgPSBwcmVzZXJ2ZXI7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgZW1wdHkgdmFsdWVzIGZyb20gYSBmcm9udCBtYXR0ZXIgb2JqZWN0LCBhdCBhbnkgbmVzdGluZyBkZXB0aC5cbiAqXG4gKiBCeSBkZWZhdWx0IG9ubHkgZW1wdHkgc3RyaW5ncyBhcmUgcmVtb3ZlZCDigJQgYm90aCBhcyBwcm9wZXJ0eSB2YWx1ZXMgYW5kIGFzIGFycmF5IGl0ZW1zLiBgbnVsbGAsIGB1bmRlZmluZWRgLCBlbXB0eSBhcnJheXMgYW5kIGVtcHR5IG9iamVjdHMgYXJlIGtlcHQgdW5sZXNzIHRoZSBjb3JyZXNwb25kaW5nIG9wdGlvbiBpcyBlbmFibGVkLlxuICpcbiAqIFRoZSBvYmplY3QgaXMgbW9kaWZpZWQgaW4gcGxhY2UsIHNvIHRoZSBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHN0cmFpZ2h0IGZyb20gYSBgcHJvY2Vzc0Zyb250bWF0dGVyKClgIGNhbGxiYWNrLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVtb3ZpbmcgdGhlIGVtcHR5IGZyb250IG1hdHRlciB2YWx1ZXMuXG4gKiBAcmV0dXJucyBUaGUgZG90LXNlcGFyYXRlZCBrZXkgcGF0aHMgb2YgdGhlIHJlbW92ZWQgdmFsdWVzLCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHJlbW92ZWQuIEFuIGFycmF5IGl0ZW0gaXMgcmVwb3J0ZWQgYnkgaXRzIGluZGV4IHdpdGhpbiB0aGUgYXJyYXkgYXMgaXQgd2FzIGJlZm9yZSBhbnkgb2YgaXRzIHNpYmxpbmdzIHdlcmUgcmVtb3ZlZCwgZS5nLiBgdGFncy4wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVtcHR5RnJvbnRtYXR0ZXJWYWx1ZXMocGFyYW1zOiBSZW1vdmVFbXB0eUZyb250bWF0dGVyVmFsdWVzUGFyYW1zKTogc3RyaW5nW10ge1xuICByZXR1cm4gbmV3IEVtcHR5RnJvbnRtYXR0ZXJWYWx1ZVJlbW92ZXIocGFyYW1zKS5yZW1vdmUocGFyYW1zLmZyb250bWF0dGVyKTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBjb250ZW50IHN0cmluZy5cbiAqXG4gKiBXaGVuIGEge0BsaW5rIEZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlcn0gaXMgcmVnaXN0ZXJlZCAoc2VlIHtAbGluayByZWdpc3RlckZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlcn0pIHRoZSB3cml0ZSBnb2VzIHRocm91Z2ggaXQgZmlyc3QsIHNvIHRoZSBwYXJ0cyBvZiB0aGUgYmxvY2sgdGhlIGNoYW5nZSBkb2VzIG5vdCByZWFjaCBrZWVwIHRoZSBieXRlcyB0aGVpciBhdXRob3Igd3JvdGUg4oCUIHRoZWlyIGNvbW1lbnRzLCBxdW90aW5nLCBibGFuayBsaW5lcyBhbmQgaW5kZW50YXRpb24uIFdpdGhvdXQgb25lLCBhbmQgd2hlbmV2ZXIgdGhlIHByZXNlcnZlciByZXBvcnRzIGl0IGNhbm5vdCBiZSBmYWl0aGZ1bCwgdGhlIHdob2xlIGJsb2NrIGlzIHBhcnNlZCBhbmQgd3JpdHRlbiBvdXQgYWdhaW4sIHdoaWNoIGlzIHdoYXQgT2JzaWRpYW4ncyBvd24gYHByb2Nlc3NGcm9udE1hdHRlcigpYCBkb2VzLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbnRlbnQgc3RyaW5nIHRvIHNldCB0aGUgZnJvbnQgbWF0dGVyIGluLlxuICogQHBhcmFtIG5ld0Zyb250bWF0dGVyIC0gVGhlIG5ldyBmcm9udCBtYXR0ZXIgdG8gc2V0LlxuICogQHJldHVybnMgVGhlIG5ldyBjb250ZW50IHN0cmluZyB3aXRoIHRoZSBmcm9udCBtYXR0ZXIgc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RnJvbnRtYXR0ZXIoY29udGVudDogc3RyaW5nLCBuZXdGcm9udG1hdHRlcjogb2JqZWN0KTogc3RyaW5nIHtcbiAgY29uc3QgcHJlc2VydmVkQ29udGVudCA9IHByZXNlcnZlRm9ybWF0dGluZyhjb250ZW50LCBuZXdGcm9udG1hdHRlcik7XG4gIGlmIChwcmVzZXJ2ZWRDb250ZW50ICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIHByZXNlcnZlZENvbnRlbnQ7XG4gIH1cblxuICBjb25zdCBmcm9udG1hdHRlckluZm8gPSBnZXRGcm9udE1hdHRlckluZm8oY29udGVudCk7XG4gIGlmIChPYmplY3Qua2V5cyhuZXdGcm9udG1hdHRlcikubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQuc2xpY2UoZnJvbnRtYXR0ZXJJbmZvLmNvbnRlbnRTdGFydCk7XG4gIH1cblxuICBjb25zdCBuZXdGcm9udG1hdHRlclN0cmluZyA9IHN0cmluZ2lmeVlhbWwobmV3RnJvbnRtYXR0ZXIpO1xuXG4gIHJldHVybiBmcm9udG1hdHRlckluZm8uZXhpc3RzXG4gICAgPyBpbnNlcnRBdCh7XG4gICAgICAkc3RyaW5nOiBjb250ZW50LFxuICAgICAgZW5kSW5kZXg6IGZyb250bWF0dGVySW5mby50byxcbiAgICAgIHN0YXJ0SW5kZXg6IGZyb250bWF0dGVySW5mby5mcm9tLFxuICAgICAgc3Vic3RyaW5nOiBuZXdGcm9udG1hdHRlclN0cmluZ1xuICAgIH0pXG4gICAgOiBgLS0tXFxuJHtuZXdGcm9udG1hdHRlclN0cmluZ30tLS1cXG4ke2NvbnRlbnR9YDtcbn1cblxuZnVuY3Rpb24gZ2V0RnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyV3JhcHBlcigpOiBWYWx1ZVdyYXBwZXI8RnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyIHwgbnVsbD4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlPEZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlciB8IG51bGw+KEZST05UTUFUVEVSX0ZPUk1BVFRJTkdfUFJFU0VSVkVSX1NUQVRFX0tFWSwgbnVsbCk7XG59XG5cbmZ1bmN0aW9uIHByZXNlcnZlRm9ybWF0dGluZyhjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250bWF0dGVyOiBvYmplY3QpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgcHJlc2VydmVyID0gZ2V0RnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyV3JhcHBlcigpLnZhbHVlO1xuICBpZiAoIXByZXNlcnZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQSBwcmVzZXJ2ZXIgY2FuIGJlIHN1cHBsaWVkIGJ5IGFueSBwbHVnaW4sIGFuZCB0aGlzIHJ1bnMgaW5zaWRlIHRoZSB3cml0ZSBxdWV1ZSwgd2hlcmUgYSB0aHJvdyB3ZWRnZXMgZXZlcnkgd3JpdGVcbiAgLy8gYmVoaW5kIGl0LiBTbyBhIGJyb2tlbiBwcmVzZXJ2ZXIgaXMgcmVwb3J0ZWQgYW5kIHN0ZXBwZWQgYXJvdW5kIHJhdGhlciB0aGFuIGFsbG93ZWQgdG8gdGFrZSB0aGUgd3JpdGUgZG93bi5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcHJlc2VydmVyKGNvbnRlbnQsIG5ld0Zyb250bWF0dGVyKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBwcmludEVycm9yKG5ldyBFcnJvcignVGhlIHJlZ2lzdGVyZWQgZnJvbnQgbWF0dGVyIGZvcm1hdHRpbmcgcHJlc2VydmVyIHRocmV3LiBGYWxsaW5nIGJhY2sgdG8gcmV3cml0aW5nIHRoZSB3aG9sZSBibG9jay4nLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGdCQUFnQjtBQUN6QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLGdDQUFnQztBQTBHekMsTUFBTSw2Q0FBNkM7QUFDbkQsTUFBTSxxQkFBcUI7QUFPM0IsTUFBTSw2QkFBNkI7QUFBQSxFQUNoQixrQkFBNEIsQ0FBQztBQUFBLEVBQzdCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVixZQUFZLFFBQTRDO0FBQzdELFNBQUssMEJBQTBCLE9BQU8sMkJBQTJCO0FBQ2pFLFNBQUssMkJBQTJCLE9BQU8sNEJBQTRCO0FBQ25FLFNBQUssb0JBQW9CLE9BQU8scUJBQXFCO0FBQUEsRUFDdkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLE9BQU8sYUFBc0M7QUFDbEQsU0FBSyxZQUFZLGFBQWEsRUFBRTtBQUNoQyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFUSxhQUFhLE9BQXlCO0FBQzVDLFFBQUksVUFBVSxJQUFJO0FBQ2hCLGFBQU87QUFBQSxJQUNUO0FBRUEsUUFBSSxVQUFVLFFBQVEsVUFBVSxRQUFXO0FBQ3pDLGFBQU8sS0FBSztBQUFBLElBQ2Q7QUFFQSxXQUFPLE1BQU0sUUFBUSxLQUFLLElBQ3RCLE1BQU0sV0FBVyxLQUFLLEtBQUssMEJBQzNCLG1CQUFtQixLQUFLLEtBQUssT0FBTyxLQUFLLEtBQUssRUFBRSxXQUFXLEtBQUssS0FBSztBQUFBLEVBQzNFO0FBQUEsRUFFUSxZQUFZLFNBQWlCLEtBQXFCO0FBQ3hELFdBQU8sVUFBVSxHQUFHLE9BQU8sR0FBRyxrQkFBa0IsR0FBRyxHQUFHLEtBQUs7QUFBQSxFQUM3RDtBQUFBLEVBRVEsTUFBTSxPQUFnQixTQUF1QjtBQUNuRCxRQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsV0FBSyxXQUFXLE9BQU8sT0FBTztBQUFBLElBQ2hDLFdBQVcsbUJBQW1CLEtBQUssR0FBRztBQUNwQyxXQUFLLFlBQVksT0FBTyxPQUFPO0FBQUEsSUFDakM7QUFBQSxFQUNGO0FBQUEsRUFFUSxXQUFXLE9BQWtCLFNBQXVCO0FBQzFELGtCQUFjLE9BQU8sQ0FBQyxNQUFNLFVBQVU7QUFDcEMsWUFBTSxjQUFjLEtBQUssWUFBWSxTQUFTLE9BQU8sS0FBSyxDQUFDO0FBQzNELFdBQUssTUFBTSxNQUFNLFdBQVc7QUFDNUIsVUFBSSxDQUFDLEtBQUssYUFBYSxJQUFJLEdBQUc7QUFDNUIsZUFBTztBQUFBLE1BQ1Q7QUFFQSxXQUFLLGdCQUFnQixLQUFLLFdBQVc7QUFDckMsYUFBTztBQUFBLElBQ1QsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVRLFlBQVksU0FBd0IsU0FBdUI7QUFDakUsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxPQUFPLEdBQUc7QUFDbEQsWUFBTSxlQUFlLEtBQUssWUFBWSxTQUFTLEdBQUc7QUFDbEQsV0FBSyxNQUFNLE9BQU8sWUFBWTtBQUM5QixVQUFJLENBQUMsS0FBSyxhQUFhLEtBQUssR0FBRztBQUM3QjtBQUFBLE1BQ0Y7QUFFQSxXQUFLLGdCQUFnQixLQUFLLFlBQVk7QUFFdEMsYUFBTyxRQUFRLEdBQUc7QUFBQSxJQUNwQjtBQUFBLEVBQ0Y7QUFDRjtBQVVPLFNBQVMsbUJBQW1CLE9BQXdDO0FBQ3pFLFNBQU8sT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLE9BQU8sZUFBZSxLQUFLLE1BQU0sT0FBTztBQUNoRztBQVNPLFNBQVMsaUJBQThDLFNBQXlEO0FBQ3JILFFBQU0sa0JBQWtCLG1CQUFtQixPQUFPO0FBQ2xELFNBQVEsVUFBVSxnQkFBZ0IsV0FBVyxLQUFLLENBQUM7QUFDckQ7QUFXTyxTQUFTLHVDQUF1QyxXQUF3RDtBQUM3RywyQ0FBeUMsRUFBRSxRQUFRO0FBQ3JEO0FBWU8sU0FBUyw2QkFBNkIsUUFBc0Q7QUFDakcsU0FBTyxJQUFJLDZCQUE2QixNQUFNLEVBQUUsT0FBTyxPQUFPLFdBQVc7QUFDM0U7QUFXTyxTQUFTLGVBQWUsU0FBaUIsZ0JBQWdDO0FBQzlFLFFBQU0sbUJBQW1CLG1CQUFtQixTQUFTLGNBQWM7QUFDbkUsTUFBSSxxQkFBcUIsTUFBTTtBQUM3QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sa0JBQWtCLG1CQUFtQixPQUFPO0FBQ2xELE1BQUksT0FBTyxLQUFLLGNBQWMsRUFBRSxXQUFXLEdBQUc7QUFDNUMsV0FBTyxRQUFRLE1BQU0sZ0JBQWdCLFlBQVk7QUFBQSxFQUNuRDtBQUVBLFFBQU0sdUJBQXVCLGNBQWMsY0FBYztBQUV6RCxTQUFPLGdCQUFnQixTQUNuQixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxVQUFVLGdCQUFnQjtBQUFBLElBQzFCLFlBQVksZ0JBQWdCO0FBQUEsSUFDNUIsV0FBVztBQUFBLEVBQ2IsQ0FBQyxJQUNDO0FBQUEsRUFBUSxvQkFBb0I7QUFBQSxFQUFRLE9BQU87QUFDakQ7QUFFQSxTQUFTLDJDQUFnRztBQUN2RyxTQUFPLHlCQUFnRSw0Q0FBNEMsSUFBSTtBQUN6SDtBQUVBLFNBQVMsbUJBQW1CLFNBQWlCLGdCQUF1QztBQUNsRixRQUFNLFlBQVkseUNBQXlDLEVBQUU7QUFDN0QsTUFBSSxDQUFDLFdBQVc7QUFDZCxXQUFPO0FBQUEsRUFDVDtBQUlBLE1BQUk7QUFDRixXQUFPLFVBQVUsU0FBUyxjQUFjO0FBQUEsRUFDMUMsU0FBUyxPQUFPO0FBQ2QsZUFBVyxJQUFJLE1BQU0sc0dBQXNHLEVBQUUsT0FBTyxNQUFNLENBQUMsQ0FBQztBQUM1SSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsIm5hbWVzIjpbXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mcm9udG1hdHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgYW5kIG1hbmFnaW5nIFlBTUwgZnJvbnQgbWF0dGVyIGluIE9ic2lkaWFuIG5vdGVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi92YWx1ZS13cmFwcGVyJztcblxuaW1wb3J0IHsgZmlsdGVySW5QbGFjZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hcnJheSc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7IGluc2VydEF0IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQge1xuICBnZXRGcm9udE1hdHRlckluZm8sXG4gIHBhcnNlWWFtbCxcbiAgc3RyaW5naWZ5WWFtbFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldE9ic2lkaWFuTGliU3RhdGUgfSBmcm9tICcuL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5cbi8qKlxuICogQSBjb21iaW5lZCBmcm9udCBtYXR0ZXIgb2YgYSBkb2N1bWVudC5cbiAqIEl0IGlzIGEgdW5pb24gb2YgY3VzdG9tIGZyb250IG1hdHRlciwgT2JzaWRpYW4gZnJvbnQgbWF0dGVyLCBhbmQgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRtYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgdHlwZSBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiA9IEdlbmVyaWNPYmplY3Q8Q3VzdG9tRnJvbnRtYXR0ZXIgJiBPYnNpZGlhbkZyb250bWF0dGVyPjtcblxuLyoqXG4gKiBBIHJld3JpdGUgb2YgYSBub3RlJ3MgZnJvbnQgbWF0dGVyIHRoYXQga2VlcHMgdGhlIGF1dGhvcidzIG9yaWdpbmFsIGZvcm1hdHRpbmcgd2hlcmV2ZXIgdGhlIGNoYW5nZSBkb2VzIG5vdCByZWFjaCBpdC5cbiAqXG4gKiBJdCBpcyBoYW5kZWQgdGhlIHdob2xlIG5vdGUgYW5kIHRoZSBmcm9udCBtYXR0ZXIgdG8gd3JpdGUsIGFuZCByZXR1cm5zIHRoZSB3aG9sZSBuZXcgbm90ZSDigJQgb3IgYG51bGxgIHdoZW4gaXQgY2Fubm90IGJlIGZhaXRoZnVsLCB3aGljaCBoYW5kcyB0aGUgd3JpdGUgYmFjayB0byB7QGxpbmsgc2V0RnJvbnRtYXR0ZXJ9J3Mgb3duIHBhcnNlLWFuZC1zdHJpbmdpZnkgcGF0aC4gUmV0dXJuaW5nIGBudWxsYCBpcyBuZXZlciBhbiBlcnJvcjogaXQgaXMgaG93IHRoZSBwcmVzZXJ2ZXIgZ3VhcmFudGVlcyBpdCBjYW4gb25seSBldmVyIG1hdGNoIG9yIGltcHJvdmUgb24gdGhhdCBwYXRoLCBuZXZlciBkbyB3b3JzZSB0aGFuIGl0LlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIG5vdGUgdG8gcmV3cml0ZSB0aGUgZnJvbnQgbWF0dGVyIG9mLlxuICogQHBhcmFtIG5ld0Zyb250bWF0dGVyIC0gVGhlIGZyb250IG1hdHRlciB0byB3cml0ZS5cbiAqIEByZXR1cm5zIFRoZSBuZXcgbm90ZSwgb3IgYG51bGxgIHRvIGxldCB7QGxpbmsgc2V0RnJvbnRtYXR0ZXJ9IHdyaXRlIGl0IGluc3RlYWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlciA9ICh0aGlzOiB2b2lkLCBjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250bWF0dGVyOiBvYmplY3QpID0+IG51bGwgfCBzdHJpbmc7XG5cbi8qKlxuICogQSBmcm9udCBtYXR0ZXIgb2YgYW4gT2JzaWRpYW4gZmlsZS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2hlbHAub2JzaWRpYW4ubWQvRWRpdGluZythbmQrZm9ybWF0dGluZy9Qcm9wZXJ0aWVzI0RlZmF1bHQrcHJvcGVydGllc31cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhbkZyb250bWF0dGVyIHtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGFsaWFzZXMgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgYWxpYXNlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgbm90ZS5cbiAgICovXG4gIGNzc2NsYXNzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgdGFncyBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICB0YWdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBmcm9udCBtYXR0ZXIgZm9yIHB1Ymxpc2hpbmcgaW4gT2JzaWRpYW4uXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL0VkaXRpbmcrYW5kK2Zvcm1hdHRpbmcvUHJvcGVydGllcyNQcm9wZXJ0aWVzK2ZvcitPYnNpZGlhbitQdWJsaXNofVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuUHVibGlzaEZyb250bWF0dGVyIHtcbiAgLyoqXG4gICAqIEEgY292ZXIgaW1hZ2UgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgY292ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGltYWdlIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHBlcm1hbmVudCBsaW5rIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIHBlcm1hbGluaz86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbm90ZSBpcyBwdWJsaXNoZWQuXG4gICAqL1xuICBwdWJsaXNoPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVtb3ZlRW1wdHlGcm9udG1hdHRlclZhbHVlc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3ZlRW1wdHlGcm9udG1hdHRlclZhbHVlc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZnJvbnQgbWF0dGVyIG9iamVjdCB0byByZW1vdmUgdGhlIGVtcHR5IHZhbHVlcyBmcm9tLiBJdCBpcyBtb2RpZmllZCBpbiBwbGFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGZyb250bWF0dGVyOiBHZW5lcmljT2JqZWN0O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbW92ZSBhcnJheXMgdGhhdCBhcmUgZW1wdHksIGluY2x1ZGluZyB0aGUgb25lcyB0aGF0IGJlY2FtZSBlbXB0eSBhZnRlciB0aGVpciBvd24gaXRlbXMgd2VyZSByZW1vdmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRSZW1vdmVFbXB0eUFycmF5cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVtb3ZlIHBsYWluIG9iamVjdHMgdGhhdCBhcmUgZW1wdHksIGluY2x1ZGluZyB0aGUgb25lcyB0aGF0IGJlY2FtZSBlbXB0eSBhZnRlciB0aGVpciBvd24gcHJvcGVydGllcyB3ZXJlIHJlbW92ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJlbW92ZUVtcHR5T2JqZWN0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVtb3ZlIGBudWxsYCBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBCb3RoIGFyZSB0cmVhdGVkIHRoZSBzYW1lOiB0aGV5IGFyZSB0aGUgdHdvIHdheXMgYSBrZXkgY2FuIGJlIHByZXNlbnQgYnV0IGNhcnJ5IG5vIHZhbHVlLCBhbmQgYHVuZGVmaW5lZGAgY2Fubm90IHN1cnZpdmUgYSBZQU1MIHJvdW5kLXRyaXAgYW55d2F5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRSZW1vdmVOdWxscz86IGJvb2xlYW47XG59XG5cbmNvbnN0IEZST05UTUFUVEVSX0ZPUk1BVFRJTkdfUFJFU0VSVkVSX1NUQVRFX0tFWSA9ICdmcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXInO1xuY29uc3QgS0VZX1BBVEhfU0VQQVJBVE9SID0gJy4nO1xuXG4vKipcbiAqIFJlbW92ZXMgZW1wdHkgdmFsdWVzIGZyb20gYSBmcm9udCBtYXR0ZXIgb2JqZWN0LCByZWN1cnNpbmcgaW50byBuZXN0ZWQgb2JqZWN0cyBhbmQgYXJyYXlzLlxuICpcbiAqIFRoZSB0cmF2ZXJzYWwgaXMgYm90dG9tLXVwOiBhIGNvbnRhaW5lciBpcyBwcnVuZWQgYmVmb3JlIGl0IGlzIGl0c2VsZiB0ZXN0ZWQgZm9yIGVtcHRpbmVzcywgc28gYSBjb250YWluZXIgdGhhdCBob2xkcyBub3RoaW5nIGJ1dCBlbXB0eSB2YWx1ZXMgaXMgcmVtb3ZlZCBhcyB3ZWxsIHdoZW4gdGhlIG1hdGNoaW5nIG9wdGlvbiBpcyBlbmFibGVkLlxuICovXG5jbGFzcyBFbXB0eUZyb250bWF0dGVyVmFsdWVSZW1vdmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZW1vdmVkS2V5UGF0aHM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvdWxkUmVtb3ZlRW1wdHlBcnJheXM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvdWxkUmVtb3ZlRW1wdHlPYmplY3RzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHNob3VsZFJlbW92ZU51bGxzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHJlbW92ZXIsIHJlc29sdmluZyB0aGUgcHJvdmlkZWQgb3B0aW9ucyBhZ2FpbnN0IHRoZSBkZWZhdWx0cy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW1vdmluZyB0aGUgZW1wdHkgZnJvbnQgbWF0dGVyIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFJlbW92ZUVtcHR5RnJvbnRtYXR0ZXJWYWx1ZXNQYXJhbXMpIHtcbiAgICB0aGlzLnNob3VsZFJlbW92ZUVtcHR5QXJyYXlzID0gcGFyYW1zLnNob3VsZFJlbW92ZUVtcHR5QXJyYXlzID8/IGZhbHNlO1xuICAgIHRoaXMuc2hvdWxkUmVtb3ZlRW1wdHlPYmplY3RzID0gcGFyYW1zLnNob3VsZFJlbW92ZUVtcHR5T2JqZWN0cyA/PyBmYWxzZTtcbiAgICB0aGlzLnNob3VsZFJlbW92ZU51bGxzID0gcGFyYW1zLnNob3VsZFJlbW92ZU51bGxzID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGVtcHR5IHZhbHVlcyBmcm9tIHRoZSBnaXZlbiBmcm9udCBtYXR0ZXIgb2JqZWN0LCBtb2RpZnlpbmcgaXQgaW4gcGxhY2UuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9udG1hdHRlciAtIFRoZSBmcm9udCBtYXR0ZXIgb2JqZWN0IHRvIHJlbW92ZSB0aGUgZW1wdHkgdmFsdWVzIGZyb20uXG4gICAqIEByZXR1cm5zIFRoZSBrZXkgcGF0aHMgb2YgdGhlIHJlbW92ZWQgdmFsdWVzLCBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIHJlbW92ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlKGZyb250bWF0dGVyOiBHZW5lcmljT2JqZWN0KTogc3RyaW5nW10ge1xuICAgIHRoaXMucHJ1bmVPYmplY3QoZnJvbnRtYXR0ZXIsICcnKTtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVkS2V5UGF0aHM7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSXNFbXB0eSh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaG91bGRSZW1vdmVOdWxscztcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubGVuZ3RoID09PSAwICYmIHRoaXMuc2hvdWxkUmVtb3ZlRW1wdHlBcnJheXNcbiAgICAgIDogY2hlY2tJc1BsYWluT2JqZWN0KHZhbHVlKSAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwICYmIHRoaXMuc2hvdWxkUmVtb3ZlRW1wdHlPYmplY3RzO1xuICB9XG5cbiAgcHJpdmF0ZSBqb2luS2V5UGF0aChrZXlQYXRoOiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4ga2V5UGF0aCA/IGAke2tleVBhdGh9JHtLRVlfUEFUSF9TRVBBUkFUT1J9JHtrZXl9YCA6IGtleTtcbiAgfVxuXG4gIHByaXZhdGUgcHJ1bmUodmFsdWU6IHVua25vd24sIGtleVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhpcy5wcnVuZUFycmF5KHZhbHVlLCBrZXlQYXRoKTtcbiAgICB9IGVsc2UgaWYgKGNoZWNrSXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMucHJ1bmVPYmplY3QodmFsdWUsIGtleVBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJ1bmVBcnJheShhcnJheTogdW5rbm93bltdLCBrZXlQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBmaWx0ZXJJblBsYWNlKGFycmF5LCAoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1LZXlQYXRoID0gdGhpcy5qb2luS2V5UGF0aChrZXlQYXRoLCBTdHJpbmcoaW5kZXgpKTtcbiAgICAgIHRoaXMucHJ1bmUoaXRlbSwgaXRlbUtleVBhdGgpO1xuICAgICAgaWYgKCF0aGlzLmNoZWNrSXNFbXB0eShpdGVtKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZW1vdmVkS2V5UGF0aHMucHVzaChpdGVtS2V5UGF0aCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBydW5lT2JqZWN0KCRvYmplY3Q6IEdlbmVyaWNPYmplY3QsIGtleVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKCRvYmplY3QpKSB7XG4gICAgICBjb25zdCB2YWx1ZUtleVBhdGggPSB0aGlzLmpvaW5LZXlQYXRoKGtleVBhdGgsIGtleSk7XG4gICAgICB0aGlzLnBydW5lKHZhbHVlLCB2YWx1ZUtleVBhdGgpO1xuICAgICAgaWYgKCF0aGlzLmNoZWNrSXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVtb3ZlZEtleVBhdGhzLnB1c2godmFsdWVLZXlQYXRoKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgLS0gV2UgaGF2ZSBubyBvdGhlciB3YXkgdG8gZGVsZXRlIHRoZSBwcm9wZXJ0eS5cbiAgICAgIGRlbGV0ZSAkb2JqZWN0W2tleV07XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHZhbHVlIGlzIGEgcGxhaW4gb2JqZWN0LCBpLmUuIGFuIG9iamVjdCBsaXRlcmFsIHJhdGhlciB0aGFuIGFuIGFycmF5IG9yIGEgY2xhc3MgaW5zdGFuY2UuXG4gKlxuICogYHBhcnNlWWFtbCgpYCB0dXJucyBhIFlBTUwgdGltZXN0YW1wIGludG8gYSB7QGxpbmsgRGF0ZX0sIHdoaWNoIGhhcyBubyBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzLCBzbyBhIHBsYWluIGB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnYCB0ZXN0IHdvdWxkIHJlcG9ydCBldmVyeSBkYXRlIGFzIGFuIGVtcHR5IG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSXNQbGFpbk9iamVjdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEdlbmVyaWNPYmplY3Qge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpID09PSBPYmplY3QucHJvdG90eXBlO1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gY29udGVudCBzdHJpbmcuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udG1hdHRlciAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPihjb250ZW50OiBzdHJpbmcpOiBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiB7XG4gIGNvbnN0IGZyb250bWF0dGVySW5mbyA9IGdldEZyb250TWF0dGVySW5mbyhjb250ZW50KTtcbiAgcmV0dXJuIChwYXJzZVlhbWwoZnJvbnRtYXR0ZXJJbmZvLmZyb250bWF0dGVyKSA/PyB7fSkgYXMgQ29tYmluZWRGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj47XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSB7QGxpbmsgRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyfSBldmVyeSBmcm9udC1tYXR0ZXIgd3JpdGUgaW4gdGhpcyBsaWJyYXJ5IHJvdXRlcyB0aHJvdWdoLlxuICpcbiAqIFRoZXJlIGlzIGF0IG1vc3Qgb25lLCBzaGFyZWQgYnkgZXZlcnkgcGx1Z2luIGxvYWRlZCBpbiB0aGUgc2FtZSByZWFsbSDigJQgbGlrZSBldmVyeSBvdGhlciByZWdpc3RyYXRpb24gaW4gdGhpcyBsaWJyYXJ5IGl0IGxpdmVzIGluIHRoZSBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuTGliYCBiYWcg4oCUIHNvIGEgc2luZ2xlIGNhbGwgbWFrZXMgZXZlcnkgd3JpdGUgdGhpcyBsaWJyYXJ5IHBlcmZvcm1zIGZvcm1hdHRpbmctcHJlc2VydmluZywgYHByb2Nlc3NGcm9udG1hdHRlcigpYCBhbmQgYGFwcGx5RmlsZUNoYW5nZXMoKWAgaW5jbHVkZWQuIFBhc3MgYG51bGxgIHRvIHVucmVnaXN0ZXIuXG4gKlxuICogVGhlIHByZXNlcnZlciBpcyBOT1QgcmVnaXN0ZXJlZCBieSBkZWZhdWx0LCBhbmQgdGhhdCBpcyBhIGJ1bmRsZS1zaXplIGRlY2lzaW9uIHJhdGhlciB0aGFuIGEgZG91YnQgYWJvdXQgdGhlIGVuZ2luZTogdGhlIG9uZSB0aGlzIGxpYnJhcnkgc2hpcHMgbmVlZHMgdGhlIGB5YW1sYCBwYWNrYWdlJ3MgQ1NUIEFQSSwgd2hpY2ggT2JzaWRpYW4gZG9lcyBub3QgaGFuZCB0byBwbHVnaW5zIGFuZCB3aGljaCBjb3N0cyBhYm91dCAxMDAgS0Igb2YgYSBwbHVnaW4ncyBgbWFpbi5qc2AuIEEgcGx1Z2luIHRoYXQgd2FudHMgaXQgY2FsbHMgYGVuYWJsZUZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZhdGlvbigpYCBmcm9tIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliL2Zyb250bWF0dGVyLWZvcm1hdHRpbmdgLCBhbmQgcGF5cyBmb3IgaXQgb25seSB0aGVuLlxuICpcbiAqIEBwYXJhbSBwcmVzZXJ2ZXIgLSBUaGUgcHJlc2VydmVyIHRvIHJvdXRlIGZyb250LW1hdHRlciB3cml0ZXMgdGhyb3VnaCwgb3IgYG51bGxgIHRvIHVucmVnaXN0ZXIgdGhlIGN1cnJlbnQgb25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXIocHJlc2VydmVyOiBGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXIgfCBudWxsKTogdm9pZCB7XG4gIGdldEZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlcldyYXBwZXIoKS52YWx1ZSA9IHByZXNlcnZlcjtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBlbXB0eSB2YWx1ZXMgZnJvbSBhIGZyb250IG1hdHRlciBvYmplY3QsIGF0IGFueSBuZXN0aW5nIGRlcHRoLlxuICpcbiAqIEJ5IGRlZmF1bHQgb25seSBlbXB0eSBzdHJpbmdzIGFyZSByZW1vdmVkIOKAlCBib3RoIGFzIHByb3BlcnR5IHZhbHVlcyBhbmQgYXMgYXJyYXkgaXRlbXMuIGBudWxsYCwgYHVuZGVmaW5lZGAsIGVtcHR5IGFycmF5cyBhbmQgZW1wdHkgb2JqZWN0cyBhcmUga2VwdCB1bmxlc3MgdGhlIGNvcnJlc3BvbmRpbmcgb3B0aW9uIGlzIGVuYWJsZWQuXG4gKlxuICogVGhlIG9iamVjdCBpcyBtb2RpZmllZCBpbiBwbGFjZSwgc28gdGhlIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgc3RyYWlnaHQgZnJvbSBhIGBwcm9jZXNzRnJvbnRtYXR0ZXIoKWAgY2FsbGJhY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW1vdmluZyB0aGUgZW1wdHkgZnJvbnQgbWF0dGVyIHZhbHVlcy5cbiAqIEByZXR1cm5zIFRoZSBkb3Qtc2VwYXJhdGVkIGtleSBwYXRocyBvZiB0aGUgcmVtb3ZlZCB2YWx1ZXMsIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgcmVtb3ZlZC4gQW4gYXJyYXkgaXRlbSBpcyByZXBvcnRlZCBieSBpdHMgaW5kZXggd2l0aGluIHRoZSBhcnJheSBhcyBpdCB3YXMgYmVmb3JlIGFueSBvZiBpdHMgc2libGluZ3Mgd2VyZSByZW1vdmVkLCBlLmcuIGB0YWdzLjBgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRW1wdHlGcm9udG1hdHRlclZhbHVlcyhwYXJhbXM6IFJlbW92ZUVtcHR5RnJvbnRtYXR0ZXJWYWx1ZXNQYXJhbXMpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBuZXcgRW1wdHlGcm9udG1hdHRlclZhbHVlUmVtb3ZlcihwYXJhbXMpLnJlbW92ZShwYXJhbXMuZnJvbnRtYXR0ZXIpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGNvbnRlbnQgc3RyaW5nLlxuICpcbiAqIFdoZW4gYSB7QGxpbmsgRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyfSBpcyByZWdpc3RlcmVkIChzZWUge0BsaW5rIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyfSkgdGhlIHdyaXRlIGdvZXMgdGhyb3VnaCBpdCBmaXJzdCwgc28gdGhlIHBhcnRzIG9mIHRoZSBibG9jayB0aGUgY2hhbmdlIGRvZXMgbm90IHJlYWNoIGtlZXAgdGhlIGJ5dGVzIHRoZWlyIGF1dGhvciB3cm90ZSDigJQgdGhlaXIgY29tbWVudHMsIHF1b3RpbmcsIGJsYW5rIGxpbmVzIGFuZCBpbmRlbnRhdGlvbi4gV2l0aG91dCBvbmUsIGFuZCB3aGVuZXZlciB0aGUgcHJlc2VydmVyIHJlcG9ydHMgaXQgY2Fubm90IGJlIGZhaXRoZnVsLCB0aGUgd2hvbGUgYmxvY2sgaXMgcGFyc2VkIGFuZCB3cml0dGVuIG91dCBhZ2Fpbiwgd2hpY2ggaXMgd2hhdCBPYnNpZGlhbidzIG93biBgcHJvY2Vzc0Zyb250TWF0dGVyKClgIGRvZXMuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gc2V0IHRoZSBmcm9udCBtYXR0ZXIgaW4uXG4gKiBAcGFyYW0gbmV3RnJvbnRtYXR0ZXIgLSBUaGUgbmV3IGZyb250IG1hdHRlciB0byBzZXQuXG4gKiBAcmV0dXJucyBUaGUgbmV3IGNvbnRlbnQgc3RyaW5nIHdpdGggdGhlIGZyb250IG1hdHRlciBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRGcm9udG1hdHRlcihjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250bWF0dGVyOiBvYmplY3QpOiBzdHJpbmcge1xuICBjb25zdCBwcmVzZXJ2ZWRDb250ZW50ID0gcHJlc2VydmVGb3JtYXR0aW5nKGNvbnRlbnQsIG5ld0Zyb250bWF0dGVyKTtcbiAgaWYgKHByZXNlcnZlZENvbnRlbnQgIT09IG51bGwpIHtcbiAgICByZXR1cm4gcHJlc2VydmVkQ29udGVudDtcbiAgfVxuXG4gIGNvbnN0IGZyb250bWF0dGVySW5mbyA9IGdldEZyb250TWF0dGVySW5mbyhjb250ZW50KTtcbiAgaWYgKE9iamVjdC5rZXlzKG5ld0Zyb250bWF0dGVyKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gY29udGVudC5zbGljZShmcm9udG1hdHRlckluZm8uY29udGVudFN0YXJ0KTtcbiAgfVxuXG4gIGNvbnN0IG5ld0Zyb250bWF0dGVyU3RyaW5nID0gc3RyaW5naWZ5WWFtbChuZXdGcm9udG1hdHRlcik7XG5cbiAgcmV0dXJuIGZyb250bWF0dGVySW5mby5leGlzdHNcbiAgICA/IGluc2VydEF0KHtcbiAgICAgICRzdHJpbmc6IGNvbnRlbnQsXG4gICAgICBlbmRJbmRleDogZnJvbnRtYXR0ZXJJbmZvLnRvLFxuICAgICAgc3RhcnRJbmRleDogZnJvbnRtYXR0ZXJJbmZvLmZyb20sXG4gICAgICBzdWJzdHJpbmc6IG5ld0Zyb250bWF0dGVyU3RyaW5nXG4gICAgfSlcbiAgICA6IGAtLS1cXG4ke25ld0Zyb250bWF0dGVyU3RyaW5nfS0tLVxcbiR7Y29udGVudH1gO1xufVxuXG5mdW5jdGlvbiBnZXRGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXJXcmFwcGVyKCk6IFZhbHVlV3JhcHBlcjxGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2ZXIgfCBudWxsPiB7XG4gIHJldHVybiBnZXRPYnNpZGlhbkxpYlN0YXRlPEZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZlciB8IG51bGw+KEZST05UTUFUVEVSX0ZPUk1BVFRJTkdfUFJFU0VSVkVSX1NUQVRFX0tFWSwgbnVsbCk7XG59XG5cbmZ1bmN0aW9uIHByZXNlcnZlRm9ybWF0dGluZyhjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250bWF0dGVyOiBvYmplY3QpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgcHJlc2VydmVyID0gZ2V0RnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyV3JhcHBlcigpLnZhbHVlO1xuICBpZiAoIXByZXNlcnZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQSBwcmVzZXJ2ZXIgY2FuIGJlIHN1cHBsaWVkIGJ5IGFueSBwbHVnaW4sIGFuZCB0aGlzIHJ1bnMgaW5zaWRlIHRoZSB3cml0ZSBxdWV1ZSwgd2hlcmUgYSB0aHJvdyB3ZWRnZXMgZXZlcnkgd3JpdGVcbiAgLy8gYmVoaW5kIGl0LiBTbyBhIGJyb2tlbiBwcmVzZXJ2ZXIgaXMgcmVwb3J0ZWQgYW5kIHN0ZXBwZWQgYXJvdW5kIHJhdGhlciB0aGFuIGFsbG93ZWQgdG8gdGFrZSB0aGUgd3JpdGUgZG93bi5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcHJlc2VydmVyKGNvbnRlbnQsIG5ld0Zyb250bWF0dGVyKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBwcmludEVycm9yKG5ldyBFcnJvcignVGhlIHJlZ2lzdGVyZWQgZnJvbnQgbWF0dGVyIGZvcm1hdHRpbmcgcHJlc2VydmVyIHRocmV3LiBGYWxsaW5nIGJhY2sgdG8gcmV3cml0aW5nIHRoZSB3aG9sZSBibG9jay4nLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGdCQUFnQjtBQUN6QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLDJCQUEyQjtBQTBHcEMsTUFBTSw2Q0FBNkM7QUFDbkQsTUFBTSxxQkFBcUI7QUFPM0IsTUFBTSw2QkFBNkI7QUFBQSxFQUNoQixrQkFBNEIsQ0FBQztBQUFBLEVBQzdCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVixZQUFZLFFBQTRDO0FBQzdELFNBQUssMEJBQTBCLE9BQU8sMkJBQTJCO0FBQ2pFLFNBQUssMkJBQTJCLE9BQU8sNEJBQTRCO0FBQ25FLFNBQUssb0JBQW9CLE9BQU8scUJBQXFCO0FBQUEsRUFDdkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLE9BQU8sYUFBc0M7QUFDbEQsU0FBSyxZQUFZLGFBQWEsRUFBRTtBQUNoQyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFUSxhQUFhLE9BQXlCO0FBQzVDLFFBQUksVUFBVSxJQUFJO0FBQ2hCLGFBQU87QUFBQSxJQUNUO0FBRUEsUUFBSSxVQUFVLFFBQVEsVUFBVSxRQUFXO0FBQ3pDLGFBQU8sS0FBSztBQUFBLElBQ2Q7QUFFQSxXQUFPLE1BQU0sUUFBUSxLQUFLLElBQ3RCLE1BQU0sV0FBVyxLQUFLLEtBQUssMEJBQzNCLG1CQUFtQixLQUFLLEtBQUssT0FBTyxLQUFLLEtBQUssRUFBRSxXQUFXLEtBQUssS0FBSztBQUFBLEVBQzNFO0FBQUEsRUFFUSxZQUFZLFNBQWlCLEtBQXFCO0FBQ3hELFdBQU8sVUFBVSxHQUFHLE9BQU8sR0FBRyxrQkFBa0IsR0FBRyxHQUFHLEtBQUs7QUFBQSxFQUM3RDtBQUFBLEVBRVEsTUFBTSxPQUFnQixTQUF1QjtBQUNuRCxRQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsV0FBSyxXQUFXLE9BQU8sT0FBTztBQUFBLElBQ2hDLFdBQVcsbUJBQW1CLEtBQUssR0FBRztBQUNwQyxXQUFLLFlBQVksT0FBTyxPQUFPO0FBQUEsSUFDakM7QUFBQSxFQUNGO0FBQUEsRUFFUSxXQUFXLE9BQWtCLFNBQXVCO0FBQzFELGtCQUFjLE9BQU8sQ0FBQyxNQUFNLFVBQVU7QUFDcEMsWUFBTSxjQUFjLEtBQUssWUFBWSxTQUFTLE9BQU8sS0FBSyxDQUFDO0FBQzNELFdBQUssTUFBTSxNQUFNLFdBQVc7QUFDNUIsVUFBSSxDQUFDLEtBQUssYUFBYSxJQUFJLEdBQUc7QUFDNUIsZUFBTztBQUFBLE1BQ1Q7QUFFQSxXQUFLLGdCQUFnQixLQUFLLFdBQVc7QUFDckMsYUFBTztBQUFBLElBQ1QsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVRLFlBQVksU0FBd0IsU0FBdUI7QUFDakUsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxPQUFPLEdBQUc7QUFDbEQsWUFBTSxlQUFlLEtBQUssWUFBWSxTQUFTLEdBQUc7QUFDbEQsV0FBSyxNQUFNLE9BQU8sWUFBWTtBQUM5QixVQUFJLENBQUMsS0FBSyxhQUFhLEtBQUssR0FBRztBQUM3QjtBQUFBLE1BQ0Y7QUFFQSxXQUFLLGdCQUFnQixLQUFLLFlBQVk7QUFFdEMsYUFBTyxRQUFRLEdBQUc7QUFBQSxJQUNwQjtBQUFBLEVBQ0Y7QUFDRjtBQVVPLFNBQVMsbUJBQW1CLE9BQXdDO0FBQ3pFLFNBQU8sT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFRLE9BQU8sZUFBZSxLQUFLLE1BQU0sT0FBTztBQUNoRztBQVNPLFNBQVMsaUJBQThDLFNBQXlEO0FBQ3JILFFBQU0sa0JBQWtCLG1CQUFtQixPQUFPO0FBQ2xELFNBQVEsVUFBVSxnQkFBZ0IsV0FBVyxLQUFLLENBQUM7QUFDckQ7QUFXTyxTQUFTLHVDQUF1QyxXQUF3RDtBQUM3RywyQ0FBeUMsRUFBRSxRQUFRO0FBQ3JEO0FBWU8sU0FBUyw2QkFBNkIsUUFBc0Q7QUFDakcsU0FBTyxJQUFJLDZCQUE2QixNQUFNLEVBQUUsT0FBTyxPQUFPLFdBQVc7QUFDM0U7QUFXTyxTQUFTLGVBQWUsU0FBaUIsZ0JBQWdDO0FBQzlFLFFBQU0sbUJBQW1CLG1CQUFtQixTQUFTLGNBQWM7QUFDbkUsTUFBSSxxQkFBcUIsTUFBTTtBQUM3QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sa0JBQWtCLG1CQUFtQixPQUFPO0FBQ2xELE1BQUksT0FBTyxLQUFLLGNBQWMsRUFBRSxXQUFXLEdBQUc7QUFDNUMsV0FBTyxRQUFRLE1BQU0sZ0JBQWdCLFlBQVk7QUFBQSxFQUNuRDtBQUVBLFFBQU0sdUJBQXVCLGNBQWMsY0FBYztBQUV6RCxTQUFPLGdCQUFnQixTQUNuQixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxVQUFVLGdCQUFnQjtBQUFBLElBQzFCLFlBQVksZ0JBQWdCO0FBQUEsSUFDNUIsV0FBVztBQUFBLEVBQ2IsQ0FBQyxJQUNDO0FBQUEsRUFBUSxvQkFBb0I7QUFBQSxFQUFRLE9BQU87QUFDakQ7QUFFQSxTQUFTLDJDQUFnRztBQUN2RyxTQUFPLG9CQUEyRCw0Q0FBNEMsSUFBSTtBQUNwSDtBQUVBLFNBQVMsbUJBQW1CLFNBQWlCLGdCQUF1QztBQUNsRixRQUFNLFlBQVkseUNBQXlDLEVBQUU7QUFDN0QsTUFBSSxDQUFDLFdBQVc7QUFDZCxXQUFPO0FBQUEsRUFDVDtBQUlBLE1BQUk7QUFDRixXQUFPLFVBQVUsU0FBUyxjQUFjO0FBQUEsRUFDMUMsU0FBUyxPQUFPO0FBQ2QsZUFBVyxJQUFJLE1BQU0sc0dBQXNHLEVBQUUsT0FBTyxNQUFNLENBQUMsQ0FBQztBQUM1SSxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsIm5hbWVzIjpbXX0=
@@ -3,8 +3,8 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- const LIBRARY_VERSION = "5.2.1";
7
- const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils-lock-indicator {\n display: inline-flex;\n align-items: center;\n color: var(--text-muted);\n}\n.obsidian-dev-utils-lock-indicator .svg-icon {\n width: var(--icon-s);\n height: var(--icon-s);\n}\n\n@keyframes obsidian-dev-utils-lock-indicator-flash {\n 40% {\n color: var(--text-error);\n transform: scale(1.4);\n }\n}\n.obsidian-dev-utils-lock-indicator-flash {\n animation: obsidian-dev-utils-lock-indicator-flash 0.35s ease-in-out;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\nprogress.obsidian-dev-utils.loop {\n min-width: 200px;\n}\n\n@keyframes obsidian-dev-utils-minimized-modal-bar-pulse {\n 0%, 100% {\n box-shadow: var(--shadow-s);\n }\n 50% {\n box-shadow: 0 0 0 2px var(--interactive-accent);\n }\n}\n@keyframes obsidian-dev-utils-minimized-modal-bar-attention {\n 0% {\n box-shadow: 0 0 0 0 var(--interactive-accent);\n }\n 40% {\n box-shadow: 0 0 0 4px var(--interactive-accent);\n }\n 100% {\n box-shadow: var(--shadow-s);\n }\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button {\n position: absolute;\n top: var(--size-4-2);\n right: calc(var(--size-4-2) + var(--size-4-9));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n.obsidian-dev-utils.minimized-modal-bar {\n position: fixed;\n right: var(--size-4-4);\n bottom: calc(var(--size-4-4) + var(--size-4-8));\n z-index: var(--layer-modal);\n display: flex;\n align-items: center;\n gap: var(--size-4-2);\n padding: var(--size-4-2) var(--size-4-3);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-m);\n background: var(--background-secondary);\n box-shadow: var(--shadow-s);\n cursor: pointer;\n animation: obsidian-dev-utils-minimized-modal-bar-pulse 2s ease-in-out infinite;\n}\n.obsidian-dev-utils.minimized-modal-bar:hover {\n background-image: linear-gradient(var(--background-modifier-hover), var(--background-modifier-hover));\n}\n.obsidian-dev-utils.minimized-modal-bar.minimized-modal-bar-attention {\n animation: obsidian-dev-utils-minimized-modal-bar-attention 0.35s ease-out;\n}\n.obsidian-dev-utils.minimized-modal-bar .minimized-modal-bar-title {\n font-weight: var(--font-medium);\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button,\n.obsidian-dev-utils.minimized-modal-bar .cancel-button {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button:hover,\n.obsidian-dev-utils.minimized-modal-bar .cancel-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n\n.obsidian-dev-utils.modal-commands {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-2-2);\n padding: var(--size-4-2) var(--size-4-3);\n border-top: 1px solid var(--background-modifier-border);\n}\n.obsidian-dev-utils.modal-command-control {\n margin-inline-start: var(--size-2-2);\n vertical-align: middle;\n}\n.obsidian-dev-utils.modal-command {\n display: inline-flex;\n align-items: baseline;\n gap: var(--size-2-2);\n min-height: var(--size-4-8);\n padding: var(--size-2-1) var(--size-4-2);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-s);\n background-color: var(--background-secondary);\n color: var(--text-muted);\n font-size: var(--font-ui-smaller);\n white-space: nowrap;\n cursor: pointer;\n}\n.obsidian-dev-utils.modal-command:hover:not(:disabled) {\n background-color: var(--background-modifier-hover);\n color: var(--text-normal);\n}\n.obsidian-dev-utils.modal-command.is-active {\n border-color: var(--interactive-accent);\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n.obsidian-dev-utils.modal-command:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.obsidian-dev-utils.modal-command-hotkey {\n color: var(--text-faint);\n font-size: var(--font-smallest);\n}\n.modal-command.is-active .obsidian-dev-utils.modal-command-hotkey {\n opacity: 0.7;\n color: var(--text-on-accent);\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils.multiple-dropdown-component select,\n.obsidian-dev-utils.multiple-dropdown-component select:focus,\n.obsidian-dev-utils.multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils.multiple-dropdown-component select option:checked,\n.obsidian-dev-utils.multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils.multiple-dropdown-component .dropdown option:checked {\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n\n.obsidian-dev-utils.plugin-notice-name {\n color: var(--text-accent);\n display: inline-block;\n font-weight: var(--font-bold);\n margin-bottom: var(--size-4-2);\n}\n.obsidian-dev-utils.plugin-notice-name code {\n color: inherit;\n}\n.obsidian-dev-utils.plugin-notice-content {\n padding-right: var(--size-4-5);\n position: relative;\n}\n.obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.cancel-button {\n display: block;\n margin-top: var(--size-4-2);\n width: fit-content;\n}\n.obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.plugin-notice-close-button {\n position: absolute;\n right: var(--size-4-3);\n top: var(--size-4-3);\n}\n.obsidian-dev-utils.plugin-notice-requires-explicit-close.notice {\n padding: 0;\n}\n.obsidian-dev-utils.plugin-notice-requires-explicit-close.notice .obsidian-dev-utils.plugin-notice-content {\n padding: var(--size-4-3) var(--size-4-4);\n}\n\n.obsidian-dev-utils.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-dev-utils.plugin-suggestion-banner {\n background-color: var(--background-secondary);\n border-left: var(--size-2-1) solid var(--text-accent);\n border-radius: var(--radius-s);\n display: flex;\n flex-direction: column;\n gap: var(--size-4-2);\n margin-bottom: var(--size-4-4);\n padding: var(--size-4-3) var(--size-4-4);\n}\n.obsidian-dev-utils.plugin-suggestion-banner button {\n width: fit-content;\n}\n.obsidian-dev-utils.plugin-suggestion-notice-buttons {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-4-2);\n margin-top: var(--size-4-2);\n}\n\n.obsidian-dev-utils.popover {\n max-width: min(420px, 90vw);\n min-width: 320px;\n padding: var(--size-4-2) var(--size-4-3);\n position: absolute;\n z-index: var(--layer-menu);\n}\n.obsidian-dev-utils.popover .setting-item {\n align-items: center;\n border-top: none;\n gap: var(--size-4-2);\n padding: var(--size-2-1) 0;\n}\n.obsidian-dev-utils.popover .setting-item-info {\n margin-right: 0;\n}\n.obsidian-dev-utils.popover .setting-item-control {\n flex-grow: 1;\n justify-content: flex-end;\n}\n.obsidian-dev-utils.popover input[type=text] {\n width: 100%;\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-dev-utils button:not(.clickable-icon) {\n color: var(--text-color);\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:focus:invalid:not(.untouched),\n.obsidian-dev-utils textarea:active:invalid:not(.untouched),\n.obsidian-dev-utils textarea:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils textarea:focus:invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-commands.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/plugin-suggestion.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AC/CK;EACP;;;ACJJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;;AAMF;EACE;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;;;ACpEF;EACE;EACA;;;ACCF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACZN;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;ACrCF;EACE;;;ACFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;;;ACjBF;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACUN;EACE;;;ACZE;EACE;;;ACKJ;EAPA;;AAuBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAvBJ;;AA6BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-dev-utils%60.%5Cn.obsidian-dev-utils-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-dev-utils-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20Not%20%60&progress%60:%20that%20APPENDS%20the%20element%20name%20to%20the%20parent%20class,%20producing%20one%20long%20class%20that%20matches%5Cn%20%20//%20nothing.%20The%20element%20type%20has%20to%20lead%20the%20compound%20selector%20instead.%5Cn%20%20@at-root%20progress%23%7B&%7D.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-dev-utils-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-dev-utils-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20strip%20of%20commands%20along%20the%20bottom%20of%20a%20modal.%5Cn%20%20//%5Cn%20%20//%20In%20%60Instructions%60%20render%20mode%20it%20also%20carries%20Obsidian's%20own%20%60.prompt-instructions%60%20%E2%80%94%20whose%20rule%20is%5Cn%20%20//%20unscoped,%20so%20it%20applies%20to%20a%20plain%20%60Modal%60%20too%20%E2%80%94%20and%20this%20one%20only%20re-tunes%20that%20rule's%20%60gap%60%20and%5Cn%20%20//%20%60padding%60%20and%20adds%20the%20separator;%20in%20%60Buttons%60%20mode%20it%20is%20the%20whole%20strip.%5Cn%20%20&.modal-commands%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border-top:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20control%20the%20%60Instructions%60%20renderer%20injects%20into%20an%20instruction's%20purpose%20text%20%E2%80%94%20a%20checkbox,%20a%5Cn%20%20//%20dropdown.%20Obsidian%20styles%20the%20instruction%20bar%20itself,%20but%20its%20own%20bar%20never%20contains%20a%20control,%20so%5Cn%20%20//%20nothing%20upstream%20separates%20one%20from%20the%20label%20it%20belongs%20to.%20Sits%20on%20the%20control%20rather%20than%20on%20the%5Cn%20%20//%20strip,%20so%20it%20reaches%20a%20%60SuggestModal%60's%20native%20bar%20as%20well%20as%20a%20self-created%20one.%5Cn%20%20&.modal-command-control%20%7B%5Cn%20%20%20%20margin-inline-start:%20var(--size-2-2);%5Cn%20%20%20%20vertical-align:%20middle;%5Cn%20%20%7D%5Cn%5Cn%20%20//%20One%20command%20button.%20Replaces%20the%20instruction%20bar%20rather%20than%20supplementing%20it:%20the%20bar%20can%20only%20ever%5Cn%20%20//%20say%20which%20key%20to%20press,%20and%20on%20a%20phone%20there%20is%20no%20modifier%20key%20to%20press,%20so%20every%20control%20it%20names%5Cn%20%20//%20is%20unreachable%20there.%5Cn%20%20&.modal-command%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%5Cn%20%20%20%20//%20Comfortably%20tappable%20on%20a%20phone,%20where%20this%20strip%20is%20the%20only%20way%20in.%5Cn%20%20%20%20min-height:%20var(--size-4-8);%5Cn%20%20%20%20padding:%20var(--size-2-1)%20var(--size-4-2);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20color:%20var(--text-muted);%5Cn%20%20%20%20font-size:%20var(--font-ui-smaller);%5Cn%20%20%20%20white-space:%20nowrap;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20&:hover:not(:disabled)%20%7B%5Cn%20%20%20%20%20%20background-color:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20toggle%20that%20is%20ON.%20An%20action%20never%20carries%20it%20%E2%80%94%20it%20does%20something%20and%20is%20done,%20so%20there%20is%20no%5Cn%20%20%20%20//%20state%20for%20it%20to%20show.%5Cn%20%20%20%20&.is-active%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20Disabled%20rather%20than%20removed:%20a%20strip%20that%20lost%20buttons%20as%20modes%20change%20would%20reflow%20under%20the%5Cn%20%20%20%20//%20pointer,%20which%20on%20a%20phone%20means%20a%20mis-tap.%5Cn%20%20%20%20&:disabled%20%7B%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.modal-command-hotkey%20%7B%5Cn%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20font-size:%20var(--font-smallest);%5Cn%5Cn%20%20%20%20//%20Faint%20against%20the%20surface%20is%20right;%20faint%20against%20the%20accent%20fill%20is%20invisible.%5Cn%20%20%20%20.modal-command.is-active%20&%20%7B%5Cn%20%20%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20Compound,%20not%20nested:%20%60addPluginCssClasses%60%20puts%20%60obsidian-dev-utils%60%20and%20%60multiple-dropdown-component%60%20on%20the%5Cn%20%20//%20SAME%20element%20(the%20setting's%20control%20container),%20so%20a%20descendant%20selector%20matched%20nothing%20and%20every%20multiple%5Cn%20%20//%20dropdown%20rendered%20one%20row%20tall%20%E2%80%94%20Obsidian's%20%60.dropdown%60%20height,%20with%20no%20popup%20behind%20it%20to%20pick%20from.%5Cn%20%20&.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%5Cn%20%20%20%20//%20The%20name%20is%20inline%20code;%20it%20keeps%20the%20code%20background%20and%20font%20but%20takes%20the%20prefix's%20accent%20color.%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20color:%20inherit;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-suggestion-banner%20%7B%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20border-left:%20var(--size-2-1)%20solid%20var(--text-accent);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-4);%5Cn%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20notice%20lays%20its%20buttons%20out%20inline%20with%20no%20spacing,%20so%20the%20action%20button%20would%20touch%20the%20decline%20button.%5Cn%20%20&.plugin-suggestion-notice-buttons%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20inside%20the%5Cn//%20Library's%20own%20UI%20(specificity%200,2,1),%20which%20wins%20over%20tldraw's%20(0,1,1)%20while%20staying%20correct%5Cn//%20For%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20It%20MUST%20stay%20scoped%20to%20%60.obsidian-dev-utils%60:%20an%20unscoped%20re-assert%20(it%20was%20%60body%20button%E2%80%A6%60,%5Cn//%200,1,2)%20lands%20on%20every%20button%20in%20the%20app%20and%20beats%20any%20other%20plugin's%20own%20button%20color%5Cn//%20Written%20at%200,1,1,%20which%20Obsidian's%20own%20rule%20used%20to%20lose%20to%20(obsidian-custom-attachment-location%2395).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cn.obsidian-dev-utils%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn//%20An%20input%20the%20user%20has%20not%20interacted%20with%20yet%20carries%20%60.untouched%60%20(set%20by%20%60PromptModal%60),%20so%20a%20modal%20that%5Cn//%20opens%20invalid%20by%20design%20does%20not%20greet%20the%20user%20in%20red.%20Both%20blocks%20below%20must%20be%20gated:%20the%20input%20is%5Cn//%20focused%20on%20open,%20so%20the%20focus%20block%20alone%20would%20keep%20painting%20it.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
6
+ const LIBRARY_VERSION = "6.0.1";
7
+ const LIBRARY_STYLES = ".obsidian-lib.code-highlighter-component textarea, .obsidian-lib.code-highlighter-component pre, .obsidian-lib.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-lib.code-highlighter-component textarea, .obsidian-lib.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-lib.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-lib.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-lib.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-lib.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-lib.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-lib-lock-indicator {\n display: inline-flex;\n align-items: center;\n color: var(--text-muted);\n}\n.obsidian-lib-lock-indicator .svg-icon {\n width: var(--icon-s);\n height: var(--icon-s);\n}\n\n@keyframes obsidian-lib-lock-indicator-flash {\n 40% {\n color: var(--text-error);\n transform: scale(1.4);\n }\n}\n.obsidian-lib-lock-indicator-flash {\n animation: obsidian-lib-lock-indicator-flash 0.35s ease-in-out;\n}\n\n.obsidian-lib input[type=url] {\n height: var(--input-height);\n}\n.obsidian-lib input[type=month],\n.obsidian-lib input[type=tel],\n.obsidian-lib input[type=time],\n.obsidian-lib input[type=url],\n.obsidian-lib input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-lib input[type=month]:hover,\n .obsidian-lib input[type=tel]:hover,\n .obsidian-lib input[type=time]:hover,\n .obsidian-lib input[type=url]:hover,\n .obsidian-lib input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-lib input[type=month]:active, .obsidian-lib input[type=month]:focus,\n.obsidian-lib input[type=tel]:active,\n.obsidian-lib input[type=tel]:focus,\n.obsidian-lib input[type=time]:active,\n.obsidian-lib input[type=time]:focus,\n.obsidian-lib input[type=url]:active,\n.obsidian-lib input[type=url]:focus,\n.obsidian-lib input[type=week]:active,\n.obsidian-lib input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-lib input[type=month]:active, .obsidian-lib input[type=month]:focus, .obsidian-lib input[type=month]:focus-visible,\n.obsidian-lib input[type=tel]:active,\n.obsidian-lib input[type=tel]:focus,\n.obsidian-lib input[type=tel]:focus-visible,\n.obsidian-lib input[type=time]:active,\n.obsidian-lib input[type=time]:focus,\n.obsidian-lib input[type=time]:focus-visible,\n.obsidian-lib input[type=url]:active,\n.obsidian-lib input[type=url]:focus,\n.obsidian-lib input[type=url]:focus-visible,\n.obsidian-lib input[type=week]:active,\n.obsidian-lib input[type=week]:focus,\n.obsidian-lib input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-lib input[type=month]::placeholder,\n.obsidian-lib input[type=tel]::placeholder,\n.obsidian-lib input[type=time]::placeholder,\n.obsidian-lib input[type=url]::placeholder,\n.obsidian-lib input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-lib input[type=month],\n.obsidian-lib input[type=time],\n.obsidian-lib input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-lib input[type=month]::-webkit-datetime-edit-text,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-text,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-lib input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-lib input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-lib input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-lib input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-lib input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-lib input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-lib input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-lib input[type=month], .is-rtl .obsidian-lib input[type=month], .rtl .obsidian-lib input[type=month],\n.mod-rtl .obsidian-lib input[type=time],\n.is-rtl .obsidian-lib input[type=time],\n.rtl .obsidian-lib input[type=time],\n.mod-rtl .obsidian-lib input[type=week],\n.is-rtl .obsidian-lib input[type=week],\n.rtl .obsidian-lib input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-lib input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-lib input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-lib input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-lib input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\nprogress.obsidian-lib.loop {\n min-width: 200px;\n}\n\n@keyframes obsidian-lib-minimized-modal-bar-pulse {\n 0%, 100% {\n box-shadow: var(--shadow-s);\n }\n 50% {\n box-shadow: 0 0 0 2px var(--interactive-accent);\n }\n}\n@keyframes obsidian-lib-minimized-modal-bar-attention {\n 0% {\n box-shadow: 0 0 0 0 var(--interactive-accent);\n }\n 40% {\n box-shadow: 0 0 0 4px var(--interactive-accent);\n }\n 100% {\n box-shadow: var(--shadow-s);\n }\n}\n.obsidian-lib.minimizable-modal .minimize-button {\n position: absolute;\n top: var(--size-4-2);\n right: calc(var(--size-4-2) + var(--size-4-9));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-lib.minimizable-modal .minimize-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n.obsidian-lib.minimized-modal-bar {\n position: fixed;\n right: var(--size-4-4);\n bottom: calc(var(--size-4-4) + var(--size-4-8));\n z-index: var(--layer-modal);\n display: flex;\n align-items: center;\n gap: var(--size-4-2);\n padding: var(--size-4-2) var(--size-4-3);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-m);\n background: var(--background-secondary);\n box-shadow: var(--shadow-s);\n cursor: pointer;\n animation: obsidian-lib-minimized-modal-bar-pulse 2s ease-in-out infinite;\n}\n.obsidian-lib.minimized-modal-bar:hover {\n background-image: linear-gradient(var(--background-modifier-hover), var(--background-modifier-hover));\n}\n.obsidian-lib.minimized-modal-bar.minimized-modal-bar-attention {\n animation: obsidian-lib-minimized-modal-bar-attention 0.35s ease-out;\n}\n.obsidian-lib.minimized-modal-bar .minimized-modal-bar-title {\n font-weight: var(--font-medium);\n}\n.obsidian-lib.minimized-modal-bar .restore-button,\n.obsidian-lib.minimized-modal-bar .cancel-button {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-lib.minimized-modal-bar .restore-button:hover,\n.obsidian-lib.minimized-modal-bar .cancel-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n\n.obsidian-lib.modal-commands {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-2-2);\n padding: var(--size-4-2) var(--size-4-3);\n border-top: 1px solid var(--background-modifier-border);\n}\n.obsidian-lib.modal-command-control {\n margin-inline-start: var(--size-2-2);\n vertical-align: middle;\n}\n.obsidian-lib.modal-command {\n display: inline-flex;\n align-items: baseline;\n gap: var(--size-2-2);\n min-height: var(--size-4-8);\n padding: var(--size-2-1) var(--size-4-2);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-s);\n background-color: var(--background-secondary);\n color: var(--text-muted);\n font-size: var(--font-ui-smaller);\n white-space: nowrap;\n cursor: pointer;\n}\n.obsidian-lib.modal-command:hover:not(:disabled) {\n background-color: var(--background-modifier-hover);\n color: var(--text-normal);\n}\n.obsidian-lib.modal-command.is-active {\n border-color: var(--interactive-accent);\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n.obsidian-lib.modal-command:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.obsidian-lib.modal-command-hotkey {\n color: var(--text-faint);\n font-size: var(--font-smallest);\n}\n.modal-command.is-active .obsidian-lib.modal-command-hotkey {\n opacity: 0.7;\n color: var(--text-on-accent);\n}\n\n.obsidian-lib.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-lib.multiple-dropdown-component select,\n.obsidian-lib.multiple-dropdown-component select:focus,\n.obsidian-lib.multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-lib.multiple-dropdown-component select option:checked,\n.obsidian-lib.multiple-dropdown-component select:focus option:checked,\n.obsidian-lib.multiple-dropdown-component .dropdown option:checked {\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n\n.obsidian-lib.plugin-notice-name {\n color: var(--text-accent);\n display: inline-block;\n font-weight: var(--font-bold);\n margin-bottom: var(--size-4-2);\n}\n.obsidian-lib.plugin-notice-name code {\n color: inherit;\n}\n.obsidian-lib.plugin-notice-content {\n padding-right: var(--size-4-5);\n position: relative;\n}\n.obsidian-lib.plugin-notice-content .obsidian-lib.cancel-button {\n display: block;\n margin-top: var(--size-4-2);\n width: fit-content;\n}\n.obsidian-lib.plugin-notice-content .obsidian-lib.plugin-notice-close-button {\n position: absolute;\n right: var(--size-4-3);\n top: var(--size-4-3);\n}\n.obsidian-lib.plugin-notice-requires-explicit-close.notice {\n padding: 0;\n}\n.obsidian-lib.plugin-notice-requires-explicit-close.notice .obsidian-lib.plugin-notice-content {\n padding: var(--size-4-3) var(--size-4-4);\n}\n\n.obsidian-lib.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-lib.plugin-suggestion-banner {\n background-color: var(--background-secondary);\n border-left: var(--size-2-1) solid var(--text-accent);\n border-radius: var(--radius-s);\n display: flex;\n flex-direction: column;\n gap: var(--size-4-2);\n margin-bottom: var(--size-4-4);\n padding: var(--size-4-3) var(--size-4-4);\n}\n.obsidian-lib.plugin-suggestion-banner button {\n width: fit-content;\n}\n.obsidian-lib.plugin-suggestion-notice-buttons {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-4-2);\n margin-top: var(--size-4-2);\n}\n\n.obsidian-lib.popover {\n max-width: min(420px, 90vw);\n min-width: 320px;\n padding: var(--size-4-2) var(--size-4-3);\n position: absolute;\n z-index: var(--layer-menu);\n}\n.obsidian-lib.popover .setting-item {\n align-items: center;\n border-top: none;\n gap: var(--size-4-2);\n padding: var(--size-2-1) 0;\n}\n.obsidian-lib.popover .setting-item-info {\n margin-right: 0;\n}\n.obsidian-lib.popover .setting-item-control {\n flex-grow: 1;\n justify-content: flex-end;\n}\n.obsidian-lib.popover input[type=text] {\n width: 100%;\n}\n\n.obsidian-lib.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-lib button:not(.clickable-icon) {\n color: var(--text-color);\n}\n\n.obsidian-lib.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-lib :invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-lib input.metadata-input-text:active:invalid:not(.untouched), .obsidian-lib input.metadata-input-text:focus-visible:invalid:not(.untouched), .obsidian-lib input.metadata-input-text:focus:invalid:not(.untouched),\n.obsidian-lib input[type=date]:active:invalid:not(.untouched),\n.obsidian-lib input[type=date]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=date]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=datetime-local]:active:invalid:not(.untouched),\n.obsidian-lib input[type=datetime-local]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=datetime-local]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=email]:active:invalid:not(.untouched),\n.obsidian-lib input[type=email]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=email]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=number]:active:invalid:not(.untouched),\n.obsidian-lib input[type=number]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=number]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=password]:active:invalid:not(.untouched),\n.obsidian-lib input[type=password]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=password]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=search]:active:invalid:not(.untouched),\n.obsidian-lib input[type=search]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=search]:focus:invalid:not(.untouched),\n.obsidian-lib input[type=text]:active:invalid:not(.untouched),\n.obsidian-lib input[type=text]:focus-visible:invalid:not(.untouched),\n.obsidian-lib input[type=text]:focus:invalid:not(.untouched),\n.obsidian-lib textarea:active:invalid:not(.untouched),\n.obsidian-lib textarea:focus-visible:invalid:not(.untouched),\n.obsidian-lib textarea:focus:invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-lib.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-lib.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-lib.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-commands.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/plugin-suggestion.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AC/CK;EACP;;;ACJJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;;AAMF;EACE;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;;;ACpEF;EACE;EACA;;;ACCF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACZN;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;ACrCF;EACE;;;ACFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;;;ACjBF;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACUN;EACE;;;ACZE;EACE;;;ACKJ;EAPA;;AAuBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAvBJ;;AA6BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-lib%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-lib%60.%5Cn.obsidian-lib-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-lib-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-lib-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-lib-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20Not%20%60&progress%60:%20that%20APPENDS%20the%20element%20name%20to%20the%20parent%20class,%20producing%20one%20long%20class%20that%20matches%5Cn%20%20//%20nothing.%20The%20element%20type%20has%20to%20lead%20the%20compound%20selector%20instead.%5Cn%20%20@at-root%20progress%23%7B&%7D.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-lib-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-lib-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-lib%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-lib-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-lib-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20The%20strip%20of%20commands%20along%20the%20bottom%20of%20a%20modal.%5Cn%20%20//%5Cn%20%20//%20In%20%60Instructions%60%20render%20mode%20it%20also%20carries%20Obsidian's%20own%20%60.prompt-instructions%60%20%E2%80%94%20whose%20rule%20is%5Cn%20%20//%20unscoped,%20so%20it%20applies%20to%20a%20plain%20%60Modal%60%20too%20%E2%80%94%20and%20this%20one%20only%20re-tunes%20that%20rule's%20%60gap%60%20and%5Cn%20%20//%20%60padding%60%20and%20adds%20the%20separator;%20in%20%60Buttons%60%20mode%20it%20is%20the%20whole%20strip.%5Cn%20%20&.modal-commands%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border-top:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20control%20the%20%60Instructions%60%20renderer%20injects%20into%20an%20instruction's%20purpose%20text%20%E2%80%94%20a%20checkbox,%20a%5Cn%20%20//%20dropdown.%20Obsidian%20styles%20the%20instruction%20bar%20itself,%20but%20its%20own%20bar%20never%20contains%20a%20control,%20so%5Cn%20%20//%20nothing%20upstream%20separates%20one%20from%20the%20label%20it%20belongs%20to.%20Sits%20on%20the%20control%20rather%20than%20on%20the%5Cn%20%20//%20strip,%20so%20it%20reaches%20a%20%60SuggestModal%60's%20native%20bar%20as%20well%20as%20a%20self-created%20one.%5Cn%20%20&.modal-command-control%20%7B%5Cn%20%20%20%20margin-inline-start:%20var(--size-2-2);%5Cn%20%20%20%20vertical-align:%20middle;%5Cn%20%20%7D%5Cn%5Cn%20%20//%20One%20command%20button.%20Replaces%20the%20instruction%20bar%20rather%20than%20supplementing%20it:%20the%20bar%20can%20only%20ever%5Cn%20%20//%20say%20which%20key%20to%20press,%20and%20on%20a%20phone%20there%20is%20no%20modifier%20key%20to%20press,%20so%20every%20control%20it%20names%5Cn%20%20//%20is%20unreachable%20there.%5Cn%20%20&.modal-command%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%5Cn%20%20%20%20//%20Comfortably%20tappable%20on%20a%20phone,%20where%20this%20strip%20is%20the%20only%20way%20in.%5Cn%20%20%20%20min-height:%20var(--size-4-8);%5Cn%20%20%20%20padding:%20var(--size-2-1)%20var(--size-4-2);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20color:%20var(--text-muted);%5Cn%20%20%20%20font-size:%20var(--font-ui-smaller);%5Cn%20%20%20%20white-space:%20nowrap;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20&:hover:not(:disabled)%20%7B%5Cn%20%20%20%20%20%20background-color:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20toggle%20that%20is%20ON.%20An%20action%20never%20carries%20it%20%E2%80%94%20it%20does%20something%20and%20is%20done,%20so%20there%20is%20no%5Cn%20%20%20%20//%20state%20for%20it%20to%20show.%5Cn%20%20%20%20&.is-active%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20Disabled%20rather%20than%20removed:%20a%20strip%20that%20lost%20buttons%20as%20modes%20change%20would%20reflow%20under%20the%5Cn%20%20%20%20//%20pointer,%20which%20on%20a%20phone%20means%20a%20mis-tap.%5Cn%20%20%20%20&:disabled%20%7B%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.modal-command-hotkey%20%7B%5Cn%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20font-size:%20var(--font-smallest);%5Cn%5Cn%20%20%20%20//%20Faint%20against%20the%20surface%20is%20right;%20faint%20against%20the%20accent%20fill%20is%20invisible.%5Cn%20%20%20%20.modal-command.is-active%20&%20%7B%5Cn%20%20%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20Compound,%20not%20nested:%20%60addPluginCssClasses%60%20puts%20%60obsidian-lib%60%20and%20%60multiple-dropdown-component%60%20on%20the%5Cn%20%20//%20SAME%20element%20(the%20setting's%20control%20container),%20so%20a%20descendant%20selector%20matched%20nothing%20and%20every%20multiple%5Cn%20%20//%20dropdown%20rendered%20one%20row%20tall%20%E2%80%94%20Obsidian's%20%60.dropdown%60%20height,%20with%20no%20popup%20behind%20it%20to%20pick%20from.%5Cn%20%20&.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%5Cn%20%20%20%20//%20The%20name%20is%20inline%20code;%20it%20keeps%20the%20code%20background%20and%20font%20but%20takes%20the%20prefix's%20accent%20color.%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20color:%20inherit;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-lib.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-lib.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-lib.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-suggestion-banner%20%7B%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20border-left:%20var(--size-2-1)%20solid%20var(--text-accent);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-4);%5Cn%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20notice%20lays%20its%20buttons%20out%20inline%20with%20no%20spacing,%20so%20the%20action%20button%20would%20touch%20the%20decline%20button.%5Cn%20%20&.plugin-suggestion-notice-buttons%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-lib%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20inside%20the%5Cn//%20Library's%20own%20UI%20(specificity%200,2,1),%20which%20wins%20over%20tldraw's%20(0,1,1)%20while%20staying%20correct%5Cn//%20For%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20It%20MUST%20stay%20scoped%20to%20%60.obsidian-lib%60:%20an%20unscoped%20re-assert%20(it%20was%20%60body%20button%E2%80%A6%60,%5Cn//%200,1,2)%20lands%20on%20every%20button%20in%20the%20app%20and%20beats%20any%20other%20plugin's%20own%20button%20color%5Cn//%20Written%20at%200,1,1,%20which%20Obsidian's%20own%20rule%20used%20to%20lose%20to%20(obsidian-custom-attachment-location%2395).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cn.obsidian-lib%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn//%20An%20input%20the%20user%20has%20not%20interacted%20with%20yet%20carries%20%60.untouched%60%20(set%20by%20%60PromptModal%60),%20so%20a%20modal%20that%5Cn//%20opens%20invalid%20by%20design%20does%20not%20greet%20the%20user%20in%20red.%20Both%20blocks%20below%20must%20be%20gated:%20the%20input%20is%5Cn//%20focused%20on%20open,%20so%20the%20focus%20block%20alone%20would%20keep%20painting%20it.%5Cn.obsidian-lib%20%7B%5Cn%20%20:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
8
8
  export {
9
9
  LIBRARY_STYLES,
10
10
  LIBRARY_VERSION
@@ -79,7 +79,7 @@ export declare function applySpellcheckMode(params: ApplySpellcheckModeParams):
79
79
  * already in place, delimited:
80
80
  *
81
81
  * ```ts
82
- * createFragmentWithCodeBlocks(t(($) => $.obsidianDevUtils.pluginSuggestion.installed, {
82
+ * createFragmentWithCodeBlocks(t(($) => $.obsidianLib.pluginSuggestion.installed, {
83
83
  * pluginName: asCodeBlock(pluginName)
84
84
  * }));
85
85
  * ```
@@ -51,4 +51,4 @@ export {
51
51
  asCodeBlock,
52
52
  createFragmentWithCodeBlocks
53
53
  };
54
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0bWwtZWxlbWVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIE9ic2lkaWFuLXNwZWNpZmljIEhUTUwgZWxlbWVudCBoZWxwZXJzLlxuICpcbiAqIFVubGlrZSB0aGUgT2JzaWRpYW4tcnVudGltZS1hZ25vc3RpYyBoZWxwZXJzIGluIGBzcmMvaHRtbC1lbGVtZW50LnRzYCwgdGhlc2UgZGVwZW5kIG9uXG4gKiBPYnNpZGlhbi1zcGVjaWZpYyBwcmVzZW50YXRpb24gXHUyMDE0IHRoZSBgbWFya2Rvd24tcmVuZGVyZWRgIENTUyBjbGFzcyB0aGF0IHN0eWxlcyByZW5kZXJlZCBtYXJrZG93biwgYW5kXG4gKiB0aGUgYEVkaXRvciA+IFNwZWxsY2hlY2tgIHZhdWx0IHNldHRpbmcgXHUyMDE0IHNvIHRoZXkgbGl2ZSBpbiB0aGUgT2JzaWRpYW4gbGF5ZXIgYW5kIHVzZSBPYnNpZGlhbidzXG4gKiBgY3JlYXRlRWxgIERPTSBhdWdtZW50YXRpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHtcbiAgaXNTcGVsbGNoZWNrRW5hYmxlZEZvck1vZGUsXG4gIFNwZWxsY2hlY2tNb2RlXG59IGZyb20gJy4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuXG4vLyBUaGUgZmlyc3QgY29kZSBwb2ludCBvZiB0aGUgQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lJ3MgUHJpdmF0ZSBVc2UgQXJlYS4gV3JpdHRlbiBhcyBhIGNvZGUgcG9pbnQgYW5kXG4vLyBjb21wb3NlZCBhdCBydW50aW1lIHJhdGhlciB0aGFuIGFzIGEgc3RyaW5nIGVzY2FwZSwgc28gdGhlIGNvbnN0YW50IGJlbG93IHN0YXlzIGxlZ2libGUgaW4gdGhlIHNvdXJjZVxuLy8gaW5zdGVhZCBvZiBiZWluZyBhbiBpbnZpc2libGUgY2hhcmFjdGVyIG5vIHJlYWRlciBjYW4gaWRlbnRpZnkuXG5jb25zdCBQUklWQVRFX1VTRV9BUkVBX0ZJUlNUX0NPREVfUE9JTlQgPSAweEUwXzAwO1xuXG4vLyBXcmFwcyBhIHZhbHVlIHRoYXQgc2hvdWxkIHJlbmRlciBhcyBhIGNvZGUgYmxvY2suIEEgcHJpdmF0ZS11c2UgY29kZSBwb2ludCwgc28gaXQgY2Fubm90IGNvbGxpZGUgd2l0aFxuLy8gYW55dGhpbmcgYSB0cmFuc2xhdG9yIHdvdWxkIGxlZ2l0aW1hdGVseSB3cml0ZSwgYW5kIHNvIGEgbWVzc2FnZSB0aGF0IHNvbWVob3cgcmVhY2hlcyB0aGUgdXNlciB3aXRoXG4vLyBpdHMgZGVsaW1pdGVycyBpbnRhY3QgaXMgdmlzaWJseSB3cm9uZyByYXRoZXIgdGhhbiBwbGF1c2libHkgaW50ZW50aW9uYWwuXG5jb25zdCBDT0RFX0JMT0NLX0RFTElNSVRFUiA9IFN0cmluZy5mcm9tQ29kZVBvaW50KFBSSVZBVEVfVVNFX0FSRUFfRklSU1RfQ09ERV9QT0lOVCk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGFwcGx5U3BlbGxjaGVja01vZGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGx5U3BlbGxjaGVja01vZGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0byBzZXQgdGhlIGBzcGVsbGNoZWNrYCBhdHRyaWJ1dGUgb24uXG4gICAqL1xuICByZWFkb25seSBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIG1vZGUgZGVjaWRpbmcgd2hldGhlciB0aGUgZWxlbWVudCBpcyBzcGVsbC1jaGVja2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgU3BlbGxjaGVja01vZGUuT2ZmYFxuICAgKi9cbiAgcmVhZG9ubHkgc3BlbGxjaGVja01vZGU/OiBTcGVsbGNoZWNrTW9kZTtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIGEgY29kZSBibG9jayB0byB0aGUgZ2l2ZW4gRG9jdW1lbnRGcmFnbWVudCBvciBIVE1MRWxlbWVudCwgc3R5bGVkIHRvIG1hdGNoIE9ic2lkaWFuJ3NcbiAqIHJlbmRlcmVkLW1hcmtkb3duIGlubGluZSBjb2RlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIERvY3VtZW50RnJhZ21lbnQgb3IgSFRNTEVsZW1lbnQgdG8gYXBwZW5kIHRoZSBjb2RlIGJsb2NrIHRvLlxuICogQHBhcmFtIGNvZGUgLSBUaGUgY29kZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNvZGUgYmxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb2RlQmxvY2soZWxlbWVudDogRG9jdW1lbnRGcmFnbWVudCB8IEhUTUxFbGVtZW50LCBjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgZWxlbWVudC5jcmVhdGVFbCgnc3Ryb25nJywgeyBjbHM6IGAke0Nzc0NsYXNzLk1hcmtkb3duUmVuZGVyZWR9ICR7Q3NzQ2xhc3MuQ29kZX1gIH0sIChzdHJvbmcpID0+IHtcbiAgICBzdHJvbmcuY3JlYXRlRWwoJ2NvZGUnLCB7IHRleHQ6IGNvZGUgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEFwcGVuZHMgYSBzdHJpbmcgYXMgdGV4dCwgb3IgYSBmcmVzaCBkZWVwIGNsb25lIG9mIGEge0BsaW5rIERvY3VtZW50RnJhZ21lbnR9LCB0byB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBBcHBlbmRpbmcgYSBmcmFnbWVudCBtb3ZlcyBpdHMgY2hpbGRyZW4gb3V0IG9mIGl0LCBzbyBhIGZyYWdtZW50IHJlbmRlcmVkIG1vcmUgdGhhbiBvbmNlIFx1MjAxNCBhIG5vdGljZSBhbmRcbiAqIGEgc2V0dGluZ3MgYmFubmVyLCBvciBhIGJhbm5lciByZW5kZXJlZCBhZ2FpbiBvbiBldmVyeSByZWZyZXNoIFx1MjAxNCB3b3VsZCBiZSBlbXB0eSBmcm9tIHRoZSBzZWNvbmQgcmVuZGVyXG4gKiBvbi4gQ2xvbmluZyBsZWF2ZXMgdGhlIGNhbGxlcidzIGZyYWdtZW50IGludGFjdCBmb3IgdGhlIG5leHQgcmVuZGVyLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIERvY3VtZW50RnJhZ21lbnQgb3IgSFRNTEVsZW1lbnQgdG8gYXBwZW5kIHRvLlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgdGV4dCwgb3IgdGhlIGZyYWdtZW50IHRvIGFwcGVuZCBhIGNsb25lIG9mLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kVGV4dE9yRnJhZ21lbnRDbG9uZShlbGVtZW50OiBEb2N1bWVudEZyYWdtZW50IHwgSFRNTEVsZW1lbnQsIGNvbnRlbnQ6IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmcpOiB2b2lkIHtcbiAgZWxlbWVudC5hcHBlbmQodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnID8gY29udGVudCA6IGNvbnRlbnQuY2xvbmVOb2RlKHRydWUpKTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBgc3BlbGxjaGVja2AgYXR0cmlidXRlIG9uIGFuIGVsZW1lbnQgZnJvbSBhIHtAbGluayBTcGVsbGNoZWNrTW9kZX0uXG4gKlxuICogVGhlIGF0dHJpYnV0ZSBoYXMgdG8gYmUgc2V0IGV4cGxpY2l0bHksIGJlY2F1c2UgYm90aCBvZiB0aGUgc3VyZmFjZXMgdGhhdCBuZWVkIHRoaXMgYXJlIGJvcm4gd2l0aFxuICogYHNwZWxsY2hlY2s9XCJmYWxzZVwiYDogYEFic3RyYWN0VGV4dENvbXBvbmVudGAgZm9yY2VzIGl0IG9udG8gZXZlcnkgdGV4dCBjb21wb25lbnQsIGFuZCBPYnNpZGlhbiBidWlsZHNcbiAqIGV2ZXJ5IGBTdWdnZXN0TW9kYWxgIGlucHV0IHdpdGggaXQgd2l0aG91dCBjb25zdWx0aW5nIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCBhdCBhbGwuXG4gKlxuICogV2hpY2ggb2YgdGhvc2UgYSBnaXZlbiBib3ggd2FudHMgaXMgYSBjYWxsLXNpdGUgZGVjaXNpb24sIGFuZCB0aGUgZGlzdGluY3Rpb24gdGhhdCBob2xkcyB1cCBpcyB3aGF0IHRoZVxuICogYm94IGlzIEZPUjogb25lIHRoYXQgb25seSBGSU5EUyBzb21ldGhpbmcgaXMgYSBzZWFyY2ggZmllbGQgYW5kIHN0YXlzIHVuY2hlY2tlZCwgYmVjYXVzZSBzcXVpZ2dsZXMgdW5kZXJcbiAqIGhhbGYtdHlwZWQgZnJhZ21lbnRzIGFyZSBub2lzZTsgb25lIHRoYXQgTkFNRVMgc29tZXRoaW5nIGlzIGEgcHJvc2UgZmllbGQgYW5kIGZvbGxvd3MgdGhlIHNldHRpbmcsIHRoZVxuICogd2F5IE9ic2lkaWFuJ3Mgb3duIGlubGluZSB0aXRsZSBhbmQgZmlsZS1leHBsb3JlciByZW5hbWUgZG8uXG4gKlxuICogQ2FsbCBpdCBhZ2FpbiB3aGVuZXZlciB0aGF0IGFuc3dlciBjaGFuZ2VzIFx1MjAxNCBhIHBpY2tlciB0aGF0IHN3aXRjaGVzIGJldHdlZW4gZmluZGluZyBhbmQgY3JlYXRpbmcgZmxpcHNcbiAqIG1vZGVzIG1pZC1vcGVuLCBhbmQgdGhlIGF0dHJpYnV0ZSBoYXMgdG8gZm9sbG93LlxuICpcbiAqIFRoZSBuYW1lIGJlaW5nIHR5cGVkIG1heSBiZSBhIFBBVEggcmF0aGVyIHRoYW4gYSBiYXJlIGJhc2VuYW1lLCBzbyBmb2xkZXIgc2VnbWVudHMgZ2V0IGNoZWNrZWQgdG9vLlxuICogVGhhdCBpcyB3aGF0IE9ic2lkaWFuJ3Mgb3duIGlubGluZSByZW5hbWUgZG9lcywgYW5kIHRoZSBhbHRlcm5hdGl2ZSBcdTIwMTQgY2hlY2tpbmcgb25seSB0aGUgbGFzdCBzZWdtZW50IFx1MjAxNFxuICogY2Fubm90IGJlIGV4cHJlc3NlZCBhcyBhbiBhdHRyaWJ1dGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBhcHBseWluZyB0aGUgc3BlbGxjaGVjayBtb2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTcGVsbGNoZWNrTW9kZShwYXJhbXM6IEFwcGx5U3BlbGxjaGVja01vZGVQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBlbGVtZW50LFxuICAgIHNwZWxsY2hlY2tNb2RlID0gU3BlbGxjaGVja01vZGUuT2ZmXG4gIH0gPSBwYXJhbXM7XG4gIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzcGVsbGNoZWNrJywgU3RyaW5nKGlzU3BlbGxjaGVja0VuYWJsZWRGb3JNb2RlKGFwcCwgc3BlbGxjaGVja01vZGUpKSk7XG59XG5cbi8qKlxuICogTWFya3MgYSB2YWx1ZSBzbyB0aGF0IHtAbGluayBjcmVhdGVGcmFnbWVudFdpdGhDb2RlQmxvY2tzfSByZW5kZXJzIGl0IGFzIGFuIGlubGluZSBjb2RlIGJsb2NrLlxuICpcbiAqIFdyYXAgYSB2YWx1ZSB3aXRoIHRoaXMgYmVmb3JlIGhhbmRpbmcgaXQgdG8gYHQoKWAsIGFuZCB0aGUgdHJhbnNsYXRlZCBtZXNzYWdlIGNvbWVzIGJhY2sgd2l0aCB0aGUgdmFsdWVcbiAqIGFscmVhZHkgaW4gcGxhY2UsIGRlbGltaXRlZDpcbiAqXG4gKiBgYGB0c1xuICogY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrcyh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMucGx1Z2luU3VnZ2VzdGlvbi5pbnN0YWxsZWQsIHtcbiAqICAgcGx1Z2luTmFtZTogYXNDb2RlQmxvY2socGx1Z2luTmFtZSlcbiAqIH0pKTtcbiAqIGBgYFxuICpcbiAqIFRoZSBtYXJrZXIgdHJhdmVscyBXSVRIIHRoZSB2YWx1ZSByYXRoZXIgdGhhbiBiZWluZyBhIHBvc2l0aW9uYWwgcGxhY2Vob2xkZXIgdGhlIGNhbGxlciBtYXRjaGVzIHVwXG4gKiBhZnRlcndhcmRzLiBUaGF0IGRpc3RpbmN0aW9uIGlzIHRoZSB3aG9sZSBwb2ludDogYSBtZXNzYWdlIG5hbWluZyB0d28gcGx1Z2lucyBpcyBpbnRlcnBvbGF0ZWQgYnkgbmFtZSxcbiAqIGFuZCBhIHRyYW5zbGF0aW9uIGlzIGZyZWUgdG8gcHV0IHRoZW0gaW4gZWl0aGVyIG9yZGVyLCBzbyBhbnl0aGluZyB0aGF0IHJlLWFzc29jaWF0ZWQgdmFsdWVzIHdpdGhcbiAqIHBsYWNlaG9sZGVycyBieSBwb3NpdGlvbiB3b3VsZCBzaWxlbnRseSBzd2FwIHRoZW0gdGhlIG1vbWVudCBhIHNlbnRlbmNlIHJlYWQgdGhlIG90aGVyIHdheSByb3VuZC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gcmVuZGVyIGFzIGEgY29kZSBibG9jay5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSwgZGVsaW1pdGVkIGZvciB7QGxpbmsgY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc0NvZGVCbG9jayh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke0NPREVfQkxPQ0tfREVMSU1JVEVSfSR7dmFsdWV9JHtDT0RFX0JMT0NLX0RFTElNSVRFUn1gO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIHtAbGluayBEb2N1bWVudEZyYWdtZW50fSBmcm9tIGFuIGFscmVhZHktdHJhbnNsYXRlZCBtZXNzYWdlLCByZW5kZXJpbmcgZXZlcnkgdmFsdWUgdGhhdCB3YXNcbiAqIHdyYXBwZWQgaW4ge0BsaW5rIGFzQ29kZUJsb2NrfSBhcyBhbiBpbmxpbmUgY29kZSBibG9jayBhbmQgdGhlIHJlc3QgYXMgcGxhaW4gdGV4dC5cbiAqXG4gKiBUaGUgbWVzc2FnZSBzdGF5cyBPTkUgdHJhbnNsYXRhYmxlIHVuaXQuIFNwbGl0dGluZyBhIHNlbnRlbmNlIGludG8gYSBwcmVmaXggYW5kIGEgc3VmZml4IGFyb3VuZCB0aGUgdmFsdWVcbiAqIGlzIHRoZSBvYnZpb3VzIGFsdGVybmF0aXZlIGFuZCBpdCBkb2VzIG5vdCBzdXJ2aXZlIHRyYW5zbGF0aW9uOiBhIGxhbmd1YWdlIHRoYXQgcmVvcmRlcnMgdGhlIGNsYXVzZSwgb3JcbiAqIHRoYXQgbmVlZHMgZGlmZmVyZW50IGNhc2Ugb24gdGhlIHN1cnJvdW5kaW5nIHdvcmRzLCBjYW5ub3QgZXhwcmVzcyB0aGF0IHRocm91Z2ggdHdvIGZpeGVkIGhhbHZlcy4gSGVyZVxuICogdGhlIHZhbHVlIHNpdHMgd2hlcmV2ZXIgdGhlIHRyYW5zbGF0aW9uIHB1dHMgaXQsIGFuZCBvbmx5IGl0cyByZW5kZXJpbmcgaXMgZGVjaWRlZC5cbiAqXG4gKiBBIG1lc3NhZ2Ugd2l0aCBub3RoaW5nIG1hcmtlZCBjb21lcyBiYWNrIGFzIHBsYWluIHRleHQsIHNvIHRoaXMgaXMgc2FmZSB0byBhcHBseSB0byBhbnkgbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSB0cmFuc2xhdGVkIG1lc3NhZ2UsIHdpdGggaXRzIGNvZGUgdmFsdWVzIHdyYXBwZWQgYnkge0BsaW5rIGFzQ29kZUJsb2NrfS5cbiAqIEByZXR1cm5zIFRoZSBmcmFnbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyYWdtZW50V2l0aENvZGVCbG9ja3MobWVzc2FnZTogc3RyaW5nKTogRG9jdW1lbnRGcmFnbWVudCB7XG4gIGNvbnN0IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnQoKTtcblxuICAvLyBEZWxpbWl0ZXJzIGNvbWUgaW4gcGFpcnMsIHNvIHRoZSBzZWdtZW50cyBiZXR3ZWVuIHRoZW0gYWx0ZXJuYXRlOiBwbGFpbiB0ZXh0LCBjb2RlIHZhbHVlLCBwbGFpbiB0ZXh0LlxuICBsZXQgaXNDb2RlU2VnbWVudCA9IGZhbHNlO1xuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgbWVzc2FnZS5zcGxpdChDT0RFX0JMT0NLX0RFTElNSVRFUikpIHtcbiAgICBpZiAoc2VnbWVudCAhPT0gJycpIHtcbiAgICAgIGlmIChpc0NvZGVTZWdtZW50KSB7XG4gICAgICAgIGFwcGVuZENvZGVCbG9jayhmcmFnbWVudCwgc2VnbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmcmFnbWVudC5hcHBlbmRUZXh0KHNlZ21lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlzQ29kZVNlZ21lbnQgPSAhaXNDb2RlU2VnbWVudDtcbiAgfVxuXG4gIHJldHVybiBmcmFnbWVudDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBYUEsU0FBUyxnQkFBZ0I7QUFDekI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFLUCxNQUFNLG9DQUFvQztBQUsxQyxNQUFNLHVCQUF1QixPQUFPLGNBQWMsaUNBQWlDO0FBK0I1RSxTQUFTLGdCQUFnQixTQUF5QyxNQUFvQjtBQUMzRixVQUFRLFNBQVMsVUFBVSxFQUFFLEtBQUssR0FBRyxTQUFTLGdCQUFnQixJQUFJLFNBQVMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXO0FBQy9GLFdBQU8sU0FBUyxRQUFRLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFBQSxFQUN4QyxDQUFDO0FBQ0g7QUFZTyxTQUFTLDBCQUEwQixTQUF5QyxTQUEwQztBQUMzSCxVQUFRLE9BQU8sT0FBTyxZQUFZLFdBQVcsVUFBVSxRQUFRLFVBQVUsSUFBSSxDQUFDO0FBQ2hGO0FBdUJPLFNBQVMsb0JBQW9CLFFBQXlDO0FBQzNFLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0EsaUJBQWlCLGVBQWU7QUFBQSxFQUNsQyxJQUFJO0FBQ0osVUFBUSxhQUFhLGNBQWMsT0FBTywyQkFBMkIsS0FBSyxjQUFjLENBQUMsQ0FBQztBQUM1RjtBQXNCTyxTQUFTLFlBQVksT0FBdUI7QUFDakQsU0FBTyxHQUFHLG9CQUFvQixHQUFHLEtBQUssR0FBRyxvQkFBb0I7QUFDL0Q7QUFnQk8sU0FBUyw2QkFBNkIsU0FBbUM7QUFDOUUsUUFBTSxXQUFXLGVBQWU7QUFHaEMsTUFBSSxnQkFBZ0I7QUFDcEIsYUFBVyxXQUFXLFFBQVEsTUFBTSxvQkFBb0IsR0FBRztBQUN6RCxRQUFJLFlBQVksSUFBSTtBQUNsQixVQUFJLGVBQWU7QUFDakIsd0JBQWdCLFVBQVUsT0FBTztBQUFBLE1BQ25DLE9BQU87QUFDTCxpQkFBUyxXQUFXLE9BQU87QUFBQSxNQUM3QjtBQUFBLElBQ0Y7QUFFQSxvQkFBZ0IsQ0FBQztBQUFBLEVBQ25CO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
54
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0bWwtZWxlbWVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIE9ic2lkaWFuLXNwZWNpZmljIEhUTUwgZWxlbWVudCBoZWxwZXJzLlxuICpcbiAqIFVubGlrZSB0aGUgT2JzaWRpYW4tcnVudGltZS1hZ25vc3RpYyBoZWxwZXJzIGluIGBzcmMvaHRtbC1lbGVtZW50LnRzYCwgdGhlc2UgZGVwZW5kIG9uXG4gKiBPYnNpZGlhbi1zcGVjaWZpYyBwcmVzZW50YXRpb24gXHUyMDE0IHRoZSBgbWFya2Rvd24tcmVuZGVyZWRgIENTUyBjbGFzcyB0aGF0IHN0eWxlcyByZW5kZXJlZCBtYXJrZG93biwgYW5kXG4gKiB0aGUgYEVkaXRvciA+IFNwZWxsY2hlY2tgIHZhdWx0IHNldHRpbmcgXHUyMDE0IHNvIHRoZXkgbGl2ZSBpbiB0aGUgT2JzaWRpYW4gbGF5ZXIgYW5kIHVzZSBPYnNpZGlhbidzXG4gKiBgY3JlYXRlRWxgIERPTSBhdWdtZW50YXRpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHtcbiAgaXNTcGVsbGNoZWNrRW5hYmxlZEZvck1vZGUsXG4gIFNwZWxsY2hlY2tNb2RlXG59IGZyb20gJy4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuXG4vLyBUaGUgZmlyc3QgY29kZSBwb2ludCBvZiB0aGUgQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lJ3MgUHJpdmF0ZSBVc2UgQXJlYS4gV3JpdHRlbiBhcyBhIGNvZGUgcG9pbnQgYW5kXG4vLyBjb21wb3NlZCBhdCBydW50aW1lIHJhdGhlciB0aGFuIGFzIGEgc3RyaW5nIGVzY2FwZSwgc28gdGhlIGNvbnN0YW50IGJlbG93IHN0YXlzIGxlZ2libGUgaW4gdGhlIHNvdXJjZVxuLy8gaW5zdGVhZCBvZiBiZWluZyBhbiBpbnZpc2libGUgY2hhcmFjdGVyIG5vIHJlYWRlciBjYW4gaWRlbnRpZnkuXG5jb25zdCBQUklWQVRFX1VTRV9BUkVBX0ZJUlNUX0NPREVfUE9JTlQgPSAweEUwXzAwO1xuXG4vLyBXcmFwcyBhIHZhbHVlIHRoYXQgc2hvdWxkIHJlbmRlciBhcyBhIGNvZGUgYmxvY2suIEEgcHJpdmF0ZS11c2UgY29kZSBwb2ludCwgc28gaXQgY2Fubm90IGNvbGxpZGUgd2l0aFxuLy8gYW55dGhpbmcgYSB0cmFuc2xhdG9yIHdvdWxkIGxlZ2l0aW1hdGVseSB3cml0ZSwgYW5kIHNvIGEgbWVzc2FnZSB0aGF0IHNvbWVob3cgcmVhY2hlcyB0aGUgdXNlciB3aXRoXG4vLyBpdHMgZGVsaW1pdGVycyBpbnRhY3QgaXMgdmlzaWJseSB3cm9uZyByYXRoZXIgdGhhbiBwbGF1c2libHkgaW50ZW50aW9uYWwuXG5jb25zdCBDT0RFX0JMT0NLX0RFTElNSVRFUiA9IFN0cmluZy5mcm9tQ29kZVBvaW50KFBSSVZBVEVfVVNFX0FSRUFfRklSU1RfQ09ERV9QT0lOVCk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGFwcGx5U3BlbGxjaGVja01vZGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGx5U3BlbGxjaGVja01vZGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0byBzZXQgdGhlIGBzcGVsbGNoZWNrYCBhdHRyaWJ1dGUgb24uXG4gICAqL1xuICByZWFkb25seSBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIG1vZGUgZGVjaWRpbmcgd2hldGhlciB0aGUgZWxlbWVudCBpcyBzcGVsbC1jaGVja2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgU3BlbGxjaGVja01vZGUuT2ZmYFxuICAgKi9cbiAgcmVhZG9ubHkgc3BlbGxjaGVja01vZGU/OiBTcGVsbGNoZWNrTW9kZTtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIGEgY29kZSBibG9jayB0byB0aGUgZ2l2ZW4gRG9jdW1lbnRGcmFnbWVudCBvciBIVE1MRWxlbWVudCwgc3R5bGVkIHRvIG1hdGNoIE9ic2lkaWFuJ3NcbiAqIHJlbmRlcmVkLW1hcmtkb3duIGlubGluZSBjb2RlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIERvY3VtZW50RnJhZ21lbnQgb3IgSFRNTEVsZW1lbnQgdG8gYXBwZW5kIHRoZSBjb2RlIGJsb2NrIHRvLlxuICogQHBhcmFtIGNvZGUgLSBUaGUgY29kZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNvZGUgYmxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb2RlQmxvY2soZWxlbWVudDogRG9jdW1lbnRGcmFnbWVudCB8IEhUTUxFbGVtZW50LCBjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgZWxlbWVudC5jcmVhdGVFbCgnc3Ryb25nJywgeyBjbHM6IGAke0Nzc0NsYXNzLk1hcmtkb3duUmVuZGVyZWR9ICR7Q3NzQ2xhc3MuQ29kZX1gIH0sIChzdHJvbmcpID0+IHtcbiAgICBzdHJvbmcuY3JlYXRlRWwoJ2NvZGUnLCB7IHRleHQ6IGNvZGUgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEFwcGVuZHMgYSBzdHJpbmcgYXMgdGV4dCwgb3IgYSBmcmVzaCBkZWVwIGNsb25lIG9mIGEge0BsaW5rIERvY3VtZW50RnJhZ21lbnR9LCB0byB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBBcHBlbmRpbmcgYSBmcmFnbWVudCBtb3ZlcyBpdHMgY2hpbGRyZW4gb3V0IG9mIGl0LCBzbyBhIGZyYWdtZW50IHJlbmRlcmVkIG1vcmUgdGhhbiBvbmNlIFx1MjAxNCBhIG5vdGljZSBhbmRcbiAqIGEgc2V0dGluZ3MgYmFubmVyLCBvciBhIGJhbm5lciByZW5kZXJlZCBhZ2FpbiBvbiBldmVyeSByZWZyZXNoIFx1MjAxNCB3b3VsZCBiZSBlbXB0eSBmcm9tIHRoZSBzZWNvbmQgcmVuZGVyXG4gKiBvbi4gQ2xvbmluZyBsZWF2ZXMgdGhlIGNhbGxlcidzIGZyYWdtZW50IGludGFjdCBmb3IgdGhlIG5leHQgcmVuZGVyLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIERvY3VtZW50RnJhZ21lbnQgb3IgSFRNTEVsZW1lbnQgdG8gYXBwZW5kIHRvLlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgdGV4dCwgb3IgdGhlIGZyYWdtZW50IHRvIGFwcGVuZCBhIGNsb25lIG9mLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kVGV4dE9yRnJhZ21lbnRDbG9uZShlbGVtZW50OiBEb2N1bWVudEZyYWdtZW50IHwgSFRNTEVsZW1lbnQsIGNvbnRlbnQ6IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmcpOiB2b2lkIHtcbiAgZWxlbWVudC5hcHBlbmQodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnID8gY29udGVudCA6IGNvbnRlbnQuY2xvbmVOb2RlKHRydWUpKTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBgc3BlbGxjaGVja2AgYXR0cmlidXRlIG9uIGFuIGVsZW1lbnQgZnJvbSBhIHtAbGluayBTcGVsbGNoZWNrTW9kZX0uXG4gKlxuICogVGhlIGF0dHJpYnV0ZSBoYXMgdG8gYmUgc2V0IGV4cGxpY2l0bHksIGJlY2F1c2UgYm90aCBvZiB0aGUgc3VyZmFjZXMgdGhhdCBuZWVkIHRoaXMgYXJlIGJvcm4gd2l0aFxuICogYHNwZWxsY2hlY2s9XCJmYWxzZVwiYDogYEFic3RyYWN0VGV4dENvbXBvbmVudGAgZm9yY2VzIGl0IG9udG8gZXZlcnkgdGV4dCBjb21wb25lbnQsIGFuZCBPYnNpZGlhbiBidWlsZHNcbiAqIGV2ZXJ5IGBTdWdnZXN0TW9kYWxgIGlucHV0IHdpdGggaXQgd2l0aG91dCBjb25zdWx0aW5nIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCBhdCBhbGwuXG4gKlxuICogV2hpY2ggb2YgdGhvc2UgYSBnaXZlbiBib3ggd2FudHMgaXMgYSBjYWxsLXNpdGUgZGVjaXNpb24sIGFuZCB0aGUgZGlzdGluY3Rpb24gdGhhdCBob2xkcyB1cCBpcyB3aGF0IHRoZVxuICogYm94IGlzIEZPUjogb25lIHRoYXQgb25seSBGSU5EUyBzb21ldGhpbmcgaXMgYSBzZWFyY2ggZmllbGQgYW5kIHN0YXlzIHVuY2hlY2tlZCwgYmVjYXVzZSBzcXVpZ2dsZXMgdW5kZXJcbiAqIGhhbGYtdHlwZWQgZnJhZ21lbnRzIGFyZSBub2lzZTsgb25lIHRoYXQgTkFNRVMgc29tZXRoaW5nIGlzIGEgcHJvc2UgZmllbGQgYW5kIGZvbGxvd3MgdGhlIHNldHRpbmcsIHRoZVxuICogd2F5IE9ic2lkaWFuJ3Mgb3duIGlubGluZSB0aXRsZSBhbmQgZmlsZS1leHBsb3JlciByZW5hbWUgZG8uXG4gKlxuICogQ2FsbCBpdCBhZ2FpbiB3aGVuZXZlciB0aGF0IGFuc3dlciBjaGFuZ2VzIFx1MjAxNCBhIHBpY2tlciB0aGF0IHN3aXRjaGVzIGJldHdlZW4gZmluZGluZyBhbmQgY3JlYXRpbmcgZmxpcHNcbiAqIG1vZGVzIG1pZC1vcGVuLCBhbmQgdGhlIGF0dHJpYnV0ZSBoYXMgdG8gZm9sbG93LlxuICpcbiAqIFRoZSBuYW1lIGJlaW5nIHR5cGVkIG1heSBiZSBhIFBBVEggcmF0aGVyIHRoYW4gYSBiYXJlIGJhc2VuYW1lLCBzbyBmb2xkZXIgc2VnbWVudHMgZ2V0IGNoZWNrZWQgdG9vLlxuICogVGhhdCBpcyB3aGF0IE9ic2lkaWFuJ3Mgb3duIGlubGluZSByZW5hbWUgZG9lcywgYW5kIHRoZSBhbHRlcm5hdGl2ZSBcdTIwMTQgY2hlY2tpbmcgb25seSB0aGUgbGFzdCBzZWdtZW50IFx1MjAxNFxuICogY2Fubm90IGJlIGV4cHJlc3NlZCBhcyBhbiBhdHRyaWJ1dGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBhcHBseWluZyB0aGUgc3BlbGxjaGVjayBtb2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTcGVsbGNoZWNrTW9kZShwYXJhbXM6IEFwcGx5U3BlbGxjaGVja01vZGVQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBlbGVtZW50LFxuICAgIHNwZWxsY2hlY2tNb2RlID0gU3BlbGxjaGVja01vZGUuT2ZmXG4gIH0gPSBwYXJhbXM7XG4gIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzcGVsbGNoZWNrJywgU3RyaW5nKGlzU3BlbGxjaGVja0VuYWJsZWRGb3JNb2RlKGFwcCwgc3BlbGxjaGVja01vZGUpKSk7XG59XG5cbi8qKlxuICogTWFya3MgYSB2YWx1ZSBzbyB0aGF0IHtAbGluayBjcmVhdGVGcmFnbWVudFdpdGhDb2RlQmxvY2tzfSByZW5kZXJzIGl0IGFzIGFuIGlubGluZSBjb2RlIGJsb2NrLlxuICpcbiAqIFdyYXAgYSB2YWx1ZSB3aXRoIHRoaXMgYmVmb3JlIGhhbmRpbmcgaXQgdG8gYHQoKWAsIGFuZCB0aGUgdHJhbnNsYXRlZCBtZXNzYWdlIGNvbWVzIGJhY2sgd2l0aCB0aGUgdmFsdWVcbiAqIGFscmVhZHkgaW4gcGxhY2UsIGRlbGltaXRlZDpcbiAqXG4gKiBgYGB0c1xuICogY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrcyh0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnBsdWdpblN1Z2dlc3Rpb24uaW5zdGFsbGVkLCB7XG4gKiAgIHBsdWdpbk5hbWU6IGFzQ29kZUJsb2NrKHBsdWdpbk5hbWUpXG4gKiB9KSk7XG4gKiBgYGBcbiAqXG4gKiBUaGUgbWFya2VyIHRyYXZlbHMgV0lUSCB0aGUgdmFsdWUgcmF0aGVyIHRoYW4gYmVpbmcgYSBwb3NpdGlvbmFsIHBsYWNlaG9sZGVyIHRoZSBjYWxsZXIgbWF0Y2hlcyB1cFxuICogYWZ0ZXJ3YXJkcy4gVGhhdCBkaXN0aW5jdGlvbiBpcyB0aGUgd2hvbGUgcG9pbnQ6IGEgbWVzc2FnZSBuYW1pbmcgdHdvIHBsdWdpbnMgaXMgaW50ZXJwb2xhdGVkIGJ5IG5hbWUsXG4gKiBhbmQgYSB0cmFuc2xhdGlvbiBpcyBmcmVlIHRvIHB1dCB0aGVtIGluIGVpdGhlciBvcmRlciwgc28gYW55dGhpbmcgdGhhdCByZS1hc3NvY2lhdGVkIHZhbHVlcyB3aXRoXG4gKiBwbGFjZWhvbGRlcnMgYnkgcG9zaXRpb24gd291bGQgc2lsZW50bHkgc3dhcCB0aGVtIHRoZSBtb21lbnQgYSBzZW50ZW5jZSByZWFkIHRoZSBvdGhlciB3YXkgcm91bmQuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHJlbmRlciBhcyBhIGNvZGUgYmxvY2suXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUsIGRlbGltaXRlZCBmb3Ige0BsaW5rIGNyZWF0ZUZyYWdtZW50V2l0aENvZGVCbG9ja3N9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNDb2RlQmxvY2sodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtDT0RFX0JMT0NLX0RFTElNSVRFUn0ke3ZhbHVlfSR7Q09ERV9CTE9DS19ERUxJTUlURVJ9YDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSB7QGxpbmsgRG9jdW1lbnRGcmFnbWVudH0gZnJvbSBhbiBhbHJlYWR5LXRyYW5zbGF0ZWQgbWVzc2FnZSwgcmVuZGVyaW5nIGV2ZXJ5IHZhbHVlIHRoYXQgd2FzXG4gKiB3cmFwcGVkIGluIHtAbGluayBhc0NvZGVCbG9ja30gYXMgYW4gaW5saW5lIGNvZGUgYmxvY2sgYW5kIHRoZSByZXN0IGFzIHBsYWluIHRleHQuXG4gKlxuICogVGhlIG1lc3NhZ2Ugc3RheXMgT05FIHRyYW5zbGF0YWJsZSB1bml0LiBTcGxpdHRpbmcgYSBzZW50ZW5jZSBpbnRvIGEgcHJlZml4IGFuZCBhIHN1ZmZpeCBhcm91bmQgdGhlIHZhbHVlXG4gKiBpcyB0aGUgb2J2aW91cyBhbHRlcm5hdGl2ZSBhbmQgaXQgZG9lcyBub3Qgc3Vydml2ZSB0cmFuc2xhdGlvbjogYSBsYW5ndWFnZSB0aGF0IHJlb3JkZXJzIHRoZSBjbGF1c2UsIG9yXG4gKiB0aGF0IG5lZWRzIGRpZmZlcmVudCBjYXNlIG9uIHRoZSBzdXJyb3VuZGluZyB3b3JkcywgY2Fubm90IGV4cHJlc3MgdGhhdCB0aHJvdWdoIHR3byBmaXhlZCBoYWx2ZXMuIEhlcmVcbiAqIHRoZSB2YWx1ZSBzaXRzIHdoZXJldmVyIHRoZSB0cmFuc2xhdGlvbiBwdXRzIGl0LCBhbmQgb25seSBpdHMgcmVuZGVyaW5nIGlzIGRlY2lkZWQuXG4gKlxuICogQSBtZXNzYWdlIHdpdGggbm90aGluZyBtYXJrZWQgY29tZXMgYmFjayBhcyBwbGFpbiB0ZXh0LCBzbyB0aGlzIGlzIHNhZmUgdG8gYXBwbHkgdG8gYW55IG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgdHJhbnNsYXRlZCBtZXNzYWdlLCB3aXRoIGl0cyBjb2RlIHZhbHVlcyB3cmFwcGVkIGJ5IHtAbGluayBhc0NvZGVCbG9ja30uXG4gKiBAcmV0dXJucyBUaGUgZnJhZ21lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGcmFnbWVudFdpdGhDb2RlQmxvY2tzKG1lc3NhZ2U6IHN0cmluZyk6IERvY3VtZW50RnJhZ21lbnQge1xuICBjb25zdCBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50KCk7XG5cbiAgLy8gRGVsaW1pdGVycyBjb21lIGluIHBhaXJzLCBzbyB0aGUgc2VnbWVudHMgYmV0d2VlbiB0aGVtIGFsdGVybmF0ZTogcGxhaW4gdGV4dCwgY29kZSB2YWx1ZSwgcGxhaW4gdGV4dC5cbiAgbGV0IGlzQ29kZVNlZ21lbnQgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIG1lc3NhZ2Uuc3BsaXQoQ09ERV9CTE9DS19ERUxJTUlURVIpKSB7XG4gICAgaWYgKHNlZ21lbnQgIT09ICcnKSB7XG4gICAgICBpZiAoaXNDb2RlU2VnbWVudCkge1xuICAgICAgICBhcHBlbmRDb2RlQmxvY2soZnJhZ21lbnQsIHNlZ21lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kVGV4dChzZWdtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpc0NvZGVTZWdtZW50ID0gIWlzQ29kZVNlZ21lbnQ7XG4gIH1cblxuICByZXR1cm4gZnJhZ21lbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQWFBLFNBQVMsZ0JBQWdCO0FBQ3pCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBS1AsTUFBTSxvQ0FBb0M7QUFLMUMsTUFBTSx1QkFBdUIsT0FBTyxjQUFjLGlDQUFpQztBQStCNUUsU0FBUyxnQkFBZ0IsU0FBeUMsTUFBb0I7QUFDM0YsVUFBUSxTQUFTLFVBQVUsRUFBRSxLQUFLLEdBQUcsU0FBUyxnQkFBZ0IsSUFBSSxTQUFTLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVztBQUMvRixXQUFPLFNBQVMsUUFBUSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQUEsRUFDeEMsQ0FBQztBQUNIO0FBWU8sU0FBUywwQkFBMEIsU0FBeUMsU0FBMEM7QUFDM0gsVUFBUSxPQUFPLE9BQU8sWUFBWSxXQUFXLFVBQVUsUUFBUSxVQUFVLElBQUksQ0FBQztBQUNoRjtBQXVCTyxTQUFTLG9CQUFvQixRQUF5QztBQUMzRSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBLGlCQUFpQixlQUFlO0FBQUEsRUFDbEMsSUFBSTtBQUNKLFVBQVEsYUFBYSxjQUFjLE9BQU8sMkJBQTJCLEtBQUssY0FBYyxDQUFDLENBQUM7QUFDNUY7QUFzQk8sU0FBUyxZQUFZLE9BQXVCO0FBQ2pELFNBQU8sR0FBRyxvQkFBb0IsR0FBRyxLQUFLLEdBQUcsb0JBQW9CO0FBQy9EO0FBZ0JPLFNBQVMsNkJBQTZCLFNBQW1DO0FBQzlFLFFBQU0sV0FBVyxlQUFlO0FBR2hDLE1BQUksZ0JBQWdCO0FBQ3BCLGFBQVcsV0FBVyxRQUFRLE1BQU0sb0JBQW9CLEdBQUc7QUFDekQsUUFBSSxZQUFZLElBQUk7QUFDbEIsVUFBSSxlQUFlO0FBQ2pCLHdCQUFnQixVQUFVLE9BQU87QUFBQSxNQUNuQyxPQUFPO0FBQ0wsaUJBQVMsV0FBVyxPQUFPO0FBQUEsTUFDN0I7QUFBQSxJQUNGO0FBRUEsb0JBQWdCLENBQUM7QUFBQSxFQUNuQjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -31,7 +31,7 @@ export declare function initI18N(translationsMap: TranslationsMap, isAsync?: boo
31
31
  * If {@link initI18N} has not been called yet — which is the case for a plugin that extends Obsidian's raw `Plugin`
32
32
  * instead of `PluginBase`, since `PluginBase.onload` is the only caller of {@link initI18N} — the first call lazily
33
33
  * initializes the library's default translations and still returns the correct string. That fallback is a
34
- * supported path, so it is reported through the `obsidian-dev-utils:I18N:t` debug namespace rather than the console:
34
+ * supported path, so it is reported through the `obsidian-lib:I18N:t` debug namespace rather than the console:
35
35
  * it stays silent unless debug messages are enabled. See
36
36
  * {@link https://mnaoumov.dev/obsidian-lib/guides/debugging/}.
37
37
  */
@@ -77,4 +77,4 @@ export {
77
77
  initI18N,
78
78
  t
79
79
  };
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pMThuL2kxOG4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBgaTE4bmAgbW9kdWxlIGZvciBgaTE4bmV4dGAuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBTZWxlY3RvckZuLFxuICBTZWxlY3Rvck9wdGlvbnMsXG4gIFRGdW5jdGlvblxufSBmcm9tICdpMThuZXh0JztcbmltcG9ydCB0eXBlIHsgUmVhZG9ubHlEZWVwIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMnO1xuaW1wb3J0IGkxOG5leHQsIHtcbiAgaW5pdCxcbiAgdCBhcyB0TGliXG59IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHsgZ2V0TGFuZ3VhZ2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgRGVmYXVsdFRyYW5zbGF0aW9uc0Jhc2UgfSBmcm9tICcuL2RlZmF1bHQtdHJhbnNsYXRpb25zLnRzJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IGVuIH0gZnJvbSAnLi9sb2NhbGVzL2VuLnRzJztcbmltcG9ydCB7XG4gIERFRkFVTFRfTEFOR1VBR0UsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXBcbn0gZnJvbSAnLi9sb2NhbGVzL3RyYW5zbGF0aW9ucy1tYXAudHMnO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IG5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTlMgPSAndHJhbnNsYXRpb24nO1xuXG4vKipcbiAqIFRoZSB0cmFuc2xhdGlvbnMgbWFwLlxuICovXG5leHBvcnQgdHlwZSBUcmFuc2xhdGlvbnNNYXAgPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG5cbmludGVyZmFjZSBUT3B0aW9ucyBleHRlbmRzIFNlbGVjdG9yT3B0aW9uczxbdHlwZW9mIERFRkFVTFRfTlNdPiB7XG4gIHJlYWRvbmx5IG5zOiBbdHlwZW9mIERFRkFVTFRfTlNdO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBgaTE4bmAgbW9kdWxlLlxuICpcbiAqIENhbGxpbmcgdGhpcyBhZ2FpbiByZS1ydW5zIGBpMThuZXh0LmluaXQoKWAsIHdoaWNoIGZ1bGx5IHJlcGxhY2VzIHRoZSByZXNvdXJjZSBzdG9yZSBhbmQgbGFuZ3VhZ2UsIHNvIGEgcmVsb2FkIHBpY2tzXG4gKiB1cCBhIGNoYW5nZWQgbGFuZ3VhZ2Ugb3IgdHJhbnNsYXRpb25zIG1hcC4gVGhlIGxhenkgZmFsbGJhY2sgaW4ge0BsaW5rIHR9IGFuZCBleHRlcm5hbCBjYWxsZXJzIHJlbHkgb25cbiAqIGBpMThuZXh0LmlzSW5pdGlhbGl6ZWRgIChzZXQgYnkgYGkxOG5leHQuaW5pdCgpYCkgYXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgsIHNvIG5vIHNlcGFyYXRlIGd1YXJkIGlzIGtlcHQgaGVyZS5cbiAqXG4gKiBAcGFyYW0gdHJhbnNsYXRpb25zTWFwIC0gVGhlIHRyYW5zbGF0aW9ucyBtYXAuXG4gKiBAcGFyYW0gaXNBc3luYyAtIFdoZXRoZXIgdGhlIGluaXRpYWxpemF0aW9uIGlzIGFzeW5jaHJvbm91cy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYGkxOG5gIG1vZHVsZSBpcyBpbml0aWFsaXplZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRJMThOKHRyYW5zbGF0aW9uc01hcDogVHJhbnNsYXRpb25zTWFwLCBpc0FzeW5jID0gdHJ1ZSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBpbml0KHtcbiAgICBmYWxsYmFja0xuZzogREVGQVVMVF9MQU5HVUFHRSxcbiAgICBpbml0QXN5bmM6IGlzQXN5bmMsXG4gICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgZXNjYXBlVmFsdWU6IGZhbHNlXG4gICAgfSxcbiAgICBsbmc6IGdldExhbmd1YWdlKCksXG4gICAgcmVzb3VyY2VzOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh0cmFuc2xhdGlvbnNNYXApLm1hcCgoW2xhbmd1YWdlLCB0cmFuc2xhdGlvbnNdKSA9PiBbXG4gICAgICAgIGxhbmd1YWdlLFxuICAgICAgICB7XG4gICAgICAgICAgW0RFRkFVTFRfTlNdOiB0cmFuc2xhdGlvbnNcbiAgICAgICAgfVxuICAgICAgXSlcbiAgICApLFxuICAgIHJldHVybkVtcHR5U3RyaW5nOiBmYWxzZSxcbiAgICByZXR1cm5OdWxsOiBmYWxzZVxuICB9KTtcblxuICBpMThuZXh0LmFkZFJlc291cmNlQnVuZGxlKERFRkFVTFRfTEFOR1VBR0UsIERFRkFVTFRfTlMsIGVuLCB0cnVlLCBmYWxzZSk7XG59XG5cbmZ1bmN0aW9uIHRJbXBsKFxuICBzZWxlY3RvcjogU2VsZWN0b3JGbjxSZWFkb25seURlZXA8RGVmYXVsdFRyYW5zbGF0aW9uc0Jhc2U+LCBzdHJpbmcsIFNlbGVjdG9yT3B0aW9uczxbdHlwZW9mIERFRkFVTFRfTlNdPj4sXG4gIG9wdGlvbnM/OiBUT3B0aW9uc1xuKTogc3RyaW5nIHtcbiAgaWYgKCFpMThuZXh0LmlzSW5pdGlhbGl6ZWQpIHtcbiAgICBnZXRPYnNpZGlhbkxpYkRlYnVnZ2VyKCdJMThOOnQnKSgnSTE4TiB3YXMgbm90IGluaXRpYWxpemVkLCBpbml0aWFsaXppbmcgZGVmYXVsdCBvYnNpZGlhbi1saWIgdHJhbnNsYXRpb25zJyk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gaW5pdEkxOE4oZGVmYXVsdFRyYW5zbGF0aW9uc01hcCwgZmFsc2UpKTtcbiAgfVxuXG4gIHJldHVybiBvcHRpb25zID8gdExpYihzZWxlY3Rvciwgb3B0aW9ucykgOiB0TGliKHNlbGVjdG9yKTtcbn1cblxuLyoqXG4gKiBUaGUgYHRgIGZ1bmN0aW9uLlxuICpcbiAqIElmIHtAbGluayBpbml0STE4Tn0gaGFzIG5vdCBiZWVuIGNhbGxlZCB5ZXQg4oCUIHdoaWNoIGlzIHRoZSBjYXNlIGZvciBhIHBsdWdpbiB0aGF0IGV4dGVuZHMgT2JzaWRpYW4ncyByYXcgYFBsdWdpbmBcbiAqIGluc3RlYWQgb2YgYFBsdWdpbkJhc2VgLCBzaW5jZSBgUGx1Z2luQmFzZS5vbmxvYWRgIGlzIHRoZSBvbmx5IGNhbGxlciBvZiB7QGxpbmsgaW5pdEkxOE59IOKAlCB0aGUgZmlyc3QgY2FsbCBsYXppbHlcbiAqIGluaXRpYWxpemVzIHRoZSBsaWJyYXJ5J3MgZGVmYXVsdCB0cmFuc2xhdGlvbnMgYW5kIHN0aWxsIHJldHVybnMgdGhlIGNvcnJlY3Qgc3RyaW5nLiBUaGF0IGZhbGxiYWNrIGlzIGFcbiAqIHN1cHBvcnRlZCBwYXRoLCBzbyBpdCBpcyByZXBvcnRlZCB0aHJvdWdoIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzOkkxOE46dGAgZGVidWcgbmFtZXNwYWNlIHJhdGhlciB0aGFuIHRoZSBjb25zb2xlOlxuICogaXQgc3RheXMgc2lsZW50IHVubGVzcyBkZWJ1ZyBtZXNzYWdlcyBhcmUgZW5hYmxlZC4gU2VlXG4gKiB7QGxpbmsgaHR0cHM6Ly9tbmFvdW1vdi5kZXYvb2JzaWRpYW4tbGliL2d1aWRlcy9kZWJ1Z2dpbmcvfS5cbiAqL1xuZXhwb3J0IGNvbnN0IHQgPSB0SW1wbCBhcyBURnVuY3Rpb247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUEsU0FBUyx5QkFBeUI7QUFDbEMsT0FBTztBQUFBLEVBQ0w7QUFBQSxFQUNBLEtBQUs7QUFBQSxPQUNBO0FBQ1AsU0FBUyxtQkFBbUI7QUFJNUIsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyxVQUFVO0FBQ25CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBS0EsTUFBTSxhQUFhO0FBc0IxQixlQUFzQixTQUFTLGlCQUFrQyxVQUFVLE1BQXFCO0FBQzlGLFFBQU0sS0FBSztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLE1BQ2IsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEtBQUssWUFBWTtBQUFBLElBQ2pCLFdBQVcsT0FBTztBQUFBLE1BQ2hCLE9BQU8sUUFBUSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsVUFBVSxZQUFZLE1BQU07QUFBQSxRQUNoRTtBQUFBLFFBQ0E7QUFBQSxVQUNFLENBQUMsVUFBVSxHQUFHO0FBQUEsUUFDaEI7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFDQSxtQkFBbUI7QUFBQSxJQUNuQixZQUFZO0FBQUEsRUFDZCxDQUFDO0FBRUQsVUFBUSxrQkFBa0Isa0JBQWtCLFlBQVksSUFBSSxNQUFNLEtBQUs7QUFDekU7QUFFQSxTQUFTLE1BQ1AsVUFDQSxTQUNRO0FBQ1IsTUFBSSxDQUFDLFFBQVEsZUFBZTtBQUMxQiwyQkFBdUIsUUFBUSxFQUFFLDBFQUEwRTtBQUMzRyxzQkFBa0IsTUFBTSxTQUFTLHdCQUF3QixLQUFLLENBQUM7QUFBQSxFQUNqRTtBQUVBLFNBQU8sVUFBVSxLQUFLLFVBQVUsT0FBTyxJQUFJLEtBQUssUUFBUTtBQUMxRDtBQVlPLE1BQU0sSUFBSTsiLCJuYW1lcyI6W119
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pMThuL2kxOG4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBgaTE4bmAgbW9kdWxlIGZvciBgaTE4bmV4dGAuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBTZWxlY3RvckZuLFxuICBTZWxlY3Rvck9wdGlvbnMsXG4gIFRGdW5jdGlvblxufSBmcm9tICdpMThuZXh0JztcbmltcG9ydCB0eXBlIHsgUmVhZG9ubHlEZWVwIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMnO1xuaW1wb3J0IGkxOG5leHQsIHtcbiAgaW5pdCxcbiAgdCBhcyB0TGliXG59IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHsgZ2V0TGFuZ3VhZ2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgRGVmYXVsdFRyYW5zbGF0aW9uc0Jhc2UgfSBmcm9tICcuL2RlZmF1bHQtdHJhbnNsYXRpb25zLnRzJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IGVuIH0gZnJvbSAnLi9sb2NhbGVzL2VuLnRzJztcbmltcG9ydCB7XG4gIERFRkFVTFRfTEFOR1VBR0UsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXBcbn0gZnJvbSAnLi9sb2NhbGVzL3RyYW5zbGF0aW9ucy1tYXAudHMnO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IG5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTlMgPSAndHJhbnNsYXRpb24nO1xuXG4vKipcbiAqIFRoZSB0cmFuc2xhdGlvbnMgbWFwLlxuICovXG5leHBvcnQgdHlwZSBUcmFuc2xhdGlvbnNNYXAgPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG5cbmludGVyZmFjZSBUT3B0aW9ucyBleHRlbmRzIFNlbGVjdG9yT3B0aW9uczxbdHlwZW9mIERFRkFVTFRfTlNdPiB7XG4gIHJlYWRvbmx5IG5zOiBbdHlwZW9mIERFRkFVTFRfTlNdO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBgaTE4bmAgbW9kdWxlLlxuICpcbiAqIENhbGxpbmcgdGhpcyBhZ2FpbiByZS1ydW5zIGBpMThuZXh0LmluaXQoKWAsIHdoaWNoIGZ1bGx5IHJlcGxhY2VzIHRoZSByZXNvdXJjZSBzdG9yZSBhbmQgbGFuZ3VhZ2UsIHNvIGEgcmVsb2FkIHBpY2tzXG4gKiB1cCBhIGNoYW5nZWQgbGFuZ3VhZ2Ugb3IgdHJhbnNsYXRpb25zIG1hcC4gVGhlIGxhenkgZmFsbGJhY2sgaW4ge0BsaW5rIHR9IGFuZCBleHRlcm5hbCBjYWxsZXJzIHJlbHkgb25cbiAqIGBpMThuZXh0LmlzSW5pdGlhbGl6ZWRgIChzZXQgYnkgYGkxOG5leHQuaW5pdCgpYCkgYXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgsIHNvIG5vIHNlcGFyYXRlIGd1YXJkIGlzIGtlcHQgaGVyZS5cbiAqXG4gKiBAcGFyYW0gdHJhbnNsYXRpb25zTWFwIC0gVGhlIHRyYW5zbGF0aW9ucyBtYXAuXG4gKiBAcGFyYW0gaXNBc3luYyAtIFdoZXRoZXIgdGhlIGluaXRpYWxpemF0aW9uIGlzIGFzeW5jaHJvbm91cy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYGkxOG5gIG1vZHVsZSBpcyBpbml0aWFsaXplZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRJMThOKHRyYW5zbGF0aW9uc01hcDogVHJhbnNsYXRpb25zTWFwLCBpc0FzeW5jID0gdHJ1ZSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBpbml0KHtcbiAgICBmYWxsYmFja0xuZzogREVGQVVMVF9MQU5HVUFHRSxcbiAgICBpbml0QXN5bmM6IGlzQXN5bmMsXG4gICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgZXNjYXBlVmFsdWU6IGZhbHNlXG4gICAgfSxcbiAgICBsbmc6IGdldExhbmd1YWdlKCksXG4gICAgcmVzb3VyY2VzOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh0cmFuc2xhdGlvbnNNYXApLm1hcCgoW2xhbmd1YWdlLCB0cmFuc2xhdGlvbnNdKSA9PiBbXG4gICAgICAgIGxhbmd1YWdlLFxuICAgICAgICB7XG4gICAgICAgICAgW0RFRkFVTFRfTlNdOiB0cmFuc2xhdGlvbnNcbiAgICAgICAgfVxuICAgICAgXSlcbiAgICApLFxuICAgIHJldHVybkVtcHR5U3RyaW5nOiBmYWxzZSxcbiAgICByZXR1cm5OdWxsOiBmYWxzZVxuICB9KTtcblxuICBpMThuZXh0LmFkZFJlc291cmNlQnVuZGxlKERFRkFVTFRfTEFOR1VBR0UsIERFRkFVTFRfTlMsIGVuLCB0cnVlLCBmYWxzZSk7XG59XG5cbmZ1bmN0aW9uIHRJbXBsKFxuICBzZWxlY3RvcjogU2VsZWN0b3JGbjxSZWFkb25seURlZXA8RGVmYXVsdFRyYW5zbGF0aW9uc0Jhc2U+LCBzdHJpbmcsIFNlbGVjdG9yT3B0aW9uczxbdHlwZW9mIERFRkFVTFRfTlNdPj4sXG4gIG9wdGlvbnM/OiBUT3B0aW9uc1xuKTogc3RyaW5nIHtcbiAgaWYgKCFpMThuZXh0LmlzSW5pdGlhbGl6ZWQpIHtcbiAgICBnZXRPYnNpZGlhbkxpYkRlYnVnZ2VyKCdJMThOOnQnKSgnSTE4TiB3YXMgbm90IGluaXRpYWxpemVkLCBpbml0aWFsaXppbmcgZGVmYXVsdCBvYnNpZGlhbi1saWIgdHJhbnNsYXRpb25zJyk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gaW5pdEkxOE4oZGVmYXVsdFRyYW5zbGF0aW9uc01hcCwgZmFsc2UpKTtcbiAgfVxuXG4gIHJldHVybiBvcHRpb25zID8gdExpYihzZWxlY3Rvciwgb3B0aW9ucykgOiB0TGliKHNlbGVjdG9yKTtcbn1cblxuLyoqXG4gKiBUaGUgYHRgIGZ1bmN0aW9uLlxuICpcbiAqIElmIHtAbGluayBpbml0STE4Tn0gaGFzIG5vdCBiZWVuIGNhbGxlZCB5ZXQg4oCUIHdoaWNoIGlzIHRoZSBjYXNlIGZvciBhIHBsdWdpbiB0aGF0IGV4dGVuZHMgT2JzaWRpYW4ncyByYXcgYFBsdWdpbmBcbiAqIGluc3RlYWQgb2YgYFBsdWdpbkJhc2VgLCBzaW5jZSBgUGx1Z2luQmFzZS5vbmxvYWRgIGlzIHRoZSBvbmx5IGNhbGxlciBvZiB7QGxpbmsgaW5pdEkxOE59IOKAlCB0aGUgZmlyc3QgY2FsbCBsYXppbHlcbiAqIGluaXRpYWxpemVzIHRoZSBsaWJyYXJ5J3MgZGVmYXVsdCB0cmFuc2xhdGlvbnMgYW5kIHN0aWxsIHJldHVybnMgdGhlIGNvcnJlY3Qgc3RyaW5nLiBUaGF0IGZhbGxiYWNrIGlzIGFcbiAqIHN1cHBvcnRlZCBwYXRoLCBzbyBpdCBpcyByZXBvcnRlZCB0aHJvdWdoIHRoZSBgb2JzaWRpYW4tbGliOkkxOE46dGAgZGVidWcgbmFtZXNwYWNlIHJhdGhlciB0aGFuIHRoZSBjb25zb2xlOlxuICogaXQgc3RheXMgc2lsZW50IHVubGVzcyBkZWJ1ZyBtZXNzYWdlcyBhcmUgZW5hYmxlZC4gU2VlXG4gKiB7QGxpbmsgaHR0cHM6Ly9tbmFvdW1vdi5kZXYvb2JzaWRpYW4tbGliL2d1aWRlcy9kZWJ1Z2dpbmcvfS5cbiAqL1xuZXhwb3J0IGNvbnN0IHQgPSB0SW1wbCBhcyBURnVuY3Rpb247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUEsU0FBUyx5QkFBeUI7QUFDbEMsT0FBTztBQUFBLEVBQ0w7QUFBQSxFQUNBLEtBQUs7QUFBQSxPQUNBO0FBQ1AsU0FBUyxtQkFBbUI7QUFJNUIsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyxVQUFVO0FBQ25CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBS0EsTUFBTSxhQUFhO0FBc0IxQixlQUFzQixTQUFTLGlCQUFrQyxVQUFVLE1BQXFCO0FBQzlGLFFBQU0sS0FBSztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLE1BQ2IsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEtBQUssWUFBWTtBQUFBLElBQ2pCLFdBQVcsT0FBTztBQUFBLE1BQ2hCLE9BQU8sUUFBUSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsVUFBVSxZQUFZLE1BQU07QUFBQSxRQUNoRTtBQUFBLFFBQ0E7QUFBQSxVQUNFLENBQUMsVUFBVSxHQUFHO0FBQUEsUUFDaEI7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFDQSxtQkFBbUI7QUFBQSxJQUNuQixZQUFZO0FBQUEsRUFDZCxDQUFDO0FBRUQsVUFBUSxrQkFBa0Isa0JBQWtCLFlBQVksSUFBSSxNQUFNLEtBQUs7QUFDekU7QUFFQSxTQUFTLE1BQ1AsVUFDQSxTQUNRO0FBQ1IsTUFBSSxDQUFDLFFBQVEsZUFBZTtBQUMxQiwyQkFBdUIsUUFBUSxFQUFFLDBFQUEwRTtBQUMzRyxzQkFBa0IsTUFBTSxTQUFTLHdCQUF3QixLQUFLLENBQUM7QUFBQSxFQUNqRTtBQUVBLFNBQU8sVUFBVSxLQUFLLFVBQVUsT0FBTyxJQUFJLEtBQUssUUFBUTtBQUMxRDtBQVlPLE1BQU0sSUFBSTsiLCJuYW1lcyI6W119
@@ -8,7 +8,7 @@
8
8
  * The English translations.
9
9
  */
10
10
  export declare const en: {
11
- readonly obsidianDevUtils: {
11
+ readonly obsidianLib: {
12
12
  readonly asyncWithNotice: {
13
13
  readonly milliseconds: "milliseconds...";
14
14
  readonly operation: "Operation";
@@ -4,7 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  const en = {
7
- obsidianDevUtils: {
7
+ obsidianLib: {
8
8
  asyncWithNotice: {
9
9
  milliseconds: "milliseconds...",
10
10
  operation: "Operation",
@@ -95,4 +95,4 @@ const en = {
95
95
  export {
96
96
  en
97
97
  };
98
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2kxOG4vbG9jYWxlcy9lbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBFbmdsaXNoIHRyYW5zbGF0aW9ucyBmb3IgdGhlIGBpMThuYCBtb2R1bGUuXG4gKi9cblxuLyoqXG4gKiBUaGUgRW5nbGlzaCB0cmFuc2xhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBlbiA9IHtcbiAgb2JzaWRpYW5EZXZVdGlsczoge1xuICAgIGFzeW5jV2l0aE5vdGljZToge1xuICAgICAgbWlsbGlzZWNvbmRzOiAnbWlsbGlzZWNvbmRzLi4uJyxcbiAgICAgIG9wZXJhdGlvbjogJ09wZXJhdGlvbicsXG4gICAgICBydW5uaW5nRm9yOiAnUnVubmluZyBmb3InLFxuICAgICAgdGVybWluYXRlT3BlcmF0aW9uOiAnWW91IGNhbiB0ZXJtaW5hdGUgdGhlIG9wZXJhdGlvbiBieSBjbGlja2luZyB0aGUgYnV0dG9uIGJlbG93LCBidXQgYmUgYXdhcmUgaXQgbWlnaHQgbGVhdmUgdGhlIHZhdWx0IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4nLFxuICAgICAgdGltZWRPdXQ6ICdUaGUgb3BlcmF0aW9uIHRpbWVkIG91dCBhZnRlciB7e2R1cmF0aW9uLCBudW1iZXJ9fSBtaWxsaXNlY29uZHMuJ1xuICAgIH0sXG4gICAgYnV0dG9uczoge1xuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIG9rOiAnT0snXG4gICAgfSxcbiAgICBjYWxsb3V0OiB7XG4gICAgICBsb2FkQ29udGVudDogJ0xvYWQgY29udGVudCBmb3IgY2FsbG91dCdcbiAgICB9LFxuICAgIGRhdGF2aWV3OiB7XG4gICAgICBpdGVtc1BlclBhZ2U6ICdJdGVtcyBwZXIgcGFnZTonLFxuICAgICAganVtcFRvUGFnZTogJ0p1bXAgdG8gcGFnZTonLFxuICAgICAgcGFnZUhlYWRlcjogJ1BhZ2Uge3twYWdlTnVtYmVyLCBudW1iZXJ9fSBvZiB7e3RvdGFsUGFnZXMsIG51bWJlcn19LCBUb3RhbCBpdGVtczoge3t0b3RhbEl0ZW1zLCBudW1iZXJ9fSdcbiAgICB9LFxuICAgIG1lbnU6IHtcbiAgICAgIGNvcHk6ICdDb3B5J1xuICAgIH0sXG4gICAgbWV0YWRhdGFDYWNoZToge1xuICAgICAgZ2V0QmFja2xpbmtzRm9yRmlsZVBhdGg6ICdHZXQgYmFja2xpbmtzIGZvciB7e2ZpbGVQYXRofX0nXG4gICAgfSxcbiAgICBub3RpY2VzOiB7XG4gICAgICBhdHRhY2htZW50SXNTdGlsbFVzZWQ6ICdBdHRhY2htZW50IHt7YXR0YWNobWVudFBhdGh9fSBpcyBzdGlsbCB1c2VkIGJ5IG90aGVyIG5vdGVzLiBJdCB3aWxsIG5vdCBiZSBkZWxldGVkLicsXG4gICAgICBhdHRhY2htZW50UmVzY3VlZDogJ0F0dGFjaG1lbnQge3thdHRhY2htZW50UGF0aH19IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuIEl0IHdhcyBtb3ZlZCB0byB7e25ld0F0dGFjaG1lbnRQYXRofX0uJyxcbiAgICAgIGNsb3NlQXJpYUxhYmVsOiAnQ2xvc2UnLFxuICAgICAgZmFpbGVkVG9PcGVuVXJsOiAnRmFpbGVkIHRvIG9wZW4ge3t1cmx9fScsXG4gICAgICB1bmhhbmRsZWRFcnJvcjogJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLidcbiAgICB9LFxuICAgIHBhdGhTZXR0aW5nczoge1xuICAgICAgaW52YWxpZEdsb2I6ICdJbnZhbGlkIGdsb2IgcGF0dGVybjoge3tnbG9ifX0gKHt7cmVhc29ufX0pJyxcbiAgICAgIGludmFsaWRSZWd1bGFyRXhwcmVzc2lvbjogJ0ludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiB7e3JlZ0V4cH19ICh7e3JlYXNvbn19KScsXG4gICAgICB0cmFpbGluZ0VzY2FwZTogJ2l0IGVuZHMgd2l0aCBhbiB1bmVzY2FwZWQgXFxcXCcsXG4gICAgICB1bmNsb3NlZENoYXJhY3RlckNsYXNzOiAnYSBbIGNoYXJhY3RlciBjbGFzcyBpcyBuZXZlciBjbG9zZWQgd2l0aCBdJ1xuICAgIH0sXG4gICAgcGx1Z2luQ29uZmxpY3Q6IHtcbiAgICAgIGJsb2NrZWROb3RpY2U6ICd7e3BsdWdpbk5hbWV9fSBkb2VzIG5vdGhpbmcgd2hpbGUge3tjb25mbGljdGluZ1BsdWdpbk5hbWV9fSBpcyBlbmFibGVkLiBVcGRhdGUgb3IgZGlzYWJsZSBpdCB0byBjb250aW51ZS4nLFxuICAgICAgY29uZmxpY3RBcHBlYXJlZE5vdGljZTogJ3t7Y29uZmxpY3RpbmdQbHVnaW5OYW1lfX0gaXMgbm93IGVuYWJsZWQsIHNvIHt7cGx1Z2luTmFtZX19IGhhcyBzdG9wcGVkIHdvcmtpbmcuIFVwZGF0ZSBvciBkaXNhYmxlIGl0IHRvIHJlc3VtZS4nLFxuICAgICAgZGlzYWJsZTogJ0Rpc2FibGUge3tjb25mbGljdGluZ1BsdWdpbk5hbWV9fScsXG4gICAgICBzZXR0aW5nc0hlYWRpbmc6ICdDb25mbGljdGluZyBwbHVnaW4nLFxuICAgICAgd2FybmluZ05vdGljZTogJ3t7cGx1Z2luTmFtZX19IGFuZCB7e2NvbmZsaWN0aW5nUGx1Z2luTmFtZX19IG92ZXJsYXAsIGFuZCBib3RoIGFyZSBydW5uaW5nLidcbiAgICB9LFxuICAgIHBsdWdpbkRlcGVuZGVuY3k6IHtcbiAgICAgIGFscmVhZHlVcFRvRGF0ZTogJ3t7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBpcyBhbHJlYWR5IGF0IGl0cyBsYXRlc3QgcmVsZWFzZS4ge3twbHVnaW5OYW1lfX0gbmVlZHMgYSB2ZXJzaW9uIHRoYXQgaGFzIG5vdCBiZWVuIHJlbGVhc2VkIHlldC4nLFxuICAgICAgYmxvY2tlZE5vdGljZTogJ3t7cGx1Z2luTmFtZX19IGRvZXMgbm90aGluZyB1bnRpbCB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gaXMgaW5zdGFsbGVkIGFuZCBlbmFibGVkLicsXG4gICAgICBkZXBlbmRlbmN5TG9zdE5vdGljZTogJ3t7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLCBzbyB7e3BsdWdpbk5hbWV9fSBoYXMgc3RvcHBlZCB3b3JraW5nLiBCcmluZyBpdCBiYWNrIHRvIHJlc3VtZS4nLFxuICAgICAgb3BlbkRlcGVuZGVuY3lTZXR0aW5nczogJ09wZW4ge3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19IHNldHRpbmdzJyxcbiAgICAgIHNldHRpbmdzSGVhZGluZzogJ1JlcXVpcmVkIHBsdWdpbiBtaXNzaW5nJyxcbiAgICAgIHVwZGF0ZTogJ1VwZGF0ZSB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0nLFxuICAgICAgdXBkYXRlZDogJ3t7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBpcyB1cGRhdGVkLicsXG4gICAgICB1cGRhdGVGYWlsZWQ6ICdGYWlsZWQgdG8gdXBkYXRlIHt7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fS4gQ2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyxcbiAgICAgIHZlcnNpb25NaXNtYXRjaE5vdGljZTogJ3t7cGx1Z2luTmFtZX19IG5lZWRzIGEgbmV3ZXIgdmVyc2lvbiBvZiB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0uIFVwZGF0ZSBpdCB0byByZXN1bWUuJ1xuICAgIH0sXG4gICAgcGx1Z2luU3VnZ2VzdGlvbjoge1xuICAgICAgZW5hYmxlOiAnRW5hYmxlJyxcbiAgICAgIGluc3RhbGw6ICdJbnN0YWxsIGFuZCBlbmFibGUnLFxuICAgICAgaW5zdGFsbGVkOiAne3twbHVnaW5OYW1lfX0gaXMgaW5zdGFsbGVkIGFuZCBlbmFibGVkLicsXG4gICAgICBpbnN0YWxsRmFpbGVkOiAnRmFpbGVkIHRvIGluc3RhbGwge3twbHVnaW5OYW1lfX0uIENoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicsXG4gICAgICBub3ROb3c6ICdOb3Qgbm93J1xuICAgIH0sXG4gICAgcXVldWU6IHtcbiAgICAgIGZsdXNoUXVldWU6ICdGbHVzaCBxdWV1ZSdcbiAgICB9LFxuICAgIHJlbGVhc2VOb3Rlczoge1xuICAgICAgdGl0bGU6ICd7e3BsdWdpbk5hbWV9fSByZWxlYXNlIG5vdGVzJ1xuICAgIH0sXG4gICAgcmVuYW1lRGVsZXRlSGFuZGxlcjoge1xuICAgICAgaGFuZGxlRGVsZXRlOiAnSGFuZGxlIGRlbGV0ZToge3tmaWxlUGF0aH19JyxcbiAgICAgIGhhbmRsZU9ycGhhbmVkUmVuYW1lczogJ0hhbmRsZSBvcnBoYW5lZCByZW5hbWVzJyxcbiAgICAgIGhhbmRsZVJlbmFtZTogJ0hhbmRsZSByZW5hbWU6IHt7b2xkUGF0aH19IC0+IHt7bmV3UGF0aH19JyxcbiAgICAgIHVwZGF0ZWRMaW5rczogJ1VwZGF0ZWQge3tsaW5rc0NvdW50LCBudW1iZXJ9fSBsaW5rcyBpbiB7e2ZpbGVzQ291bnQsIG51bWJlcn19IGZpbGVzLidcbiAgICB9LFxuICAgIHJlc291cmNlTG9jazoge1xuICAgICAgbG9ja2VkQnlUb29sdGlwOiAnTG9ja2VkIGJ5JyxcbiAgICAgIGxvY2tlZE5vdGVUb29sdGlwOiAnVGhpcyBub3RlIGlzIGxvY2tlZCB3aGlsZSBhbiBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MuJyxcbiAgICAgIHVubG9ja0NvbmZpcm1NZXNzYWdlOiAnVGhpcyB3aWxsIGNhbmNlbCB0aGUgb3BlcmF0aW9uKHMpIGN1cnJlbnRseSBob2xkaW5nIGEgbG9jayBvbiB0aGlzIG5vdGUgYW5kIG1heSBsZWF2ZSB0aGUgdmF1bHQgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBUaGUgbm90ZSBpcyBsb2NrZWQgYnk6JyxcbiAgICAgIHVubG9ja0NvbmZpcm1UaXRsZTogJ1VubG9jayBub3RlPycsXG4gICAgICB1bmxvY2tNZW51SXRlbTogJ1VubG9jaydcbiAgICB9LFxuICAgIHZhdWx0OiB7XG4gICAgICBwcm9jZXNzRmlsZTogJ1Byb2Nlc3MgZmlsZSB7e2ZpbGVQYXRofX0nXG4gICAgfVxuICB9XG59IGFzIGNvbnN0O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFTTyxNQUFNLEtBQUs7QUFBQSxFQUNoQixrQkFBa0I7QUFBQSxJQUNoQixpQkFBaUI7QUFBQSxNQUNmLGNBQWM7QUFBQSxNQUNkLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxNQUNaLG9CQUFvQjtBQUFBLE1BQ3BCLFVBQVU7QUFBQSxJQUNaO0FBQUEsSUFDQSxTQUFTO0FBQUEsTUFDUCxRQUFRO0FBQUEsTUFDUixJQUFJO0FBQUEsSUFDTjtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLGNBQWM7QUFBQSxNQUNkLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxJQUNkO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsZUFBZTtBQUFBLE1BQ2IseUJBQXlCO0FBQUEsSUFDM0I7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLHVCQUF1QjtBQUFBLE1BQ3ZCLG1CQUFtQjtBQUFBLE1BQ25CLGdCQUFnQjtBQUFBLE1BQ2hCLGlCQUFpQjtBQUFBLE1BQ2pCLGdCQUFnQjtBQUFBLElBQ2xCO0FBQUEsSUFDQSxjQUFjO0FBQUEsTUFDWixhQUFhO0FBQUEsTUFDYiwwQkFBMEI7QUFBQSxNQUMxQixnQkFBZ0I7QUFBQSxNQUNoQix3QkFBd0I7QUFBQSxJQUMxQjtBQUFBLElBQ0EsZ0JBQWdCO0FBQUEsTUFDZCxlQUFlO0FBQUEsTUFDZix3QkFBd0I7QUFBQSxNQUN4QixTQUFTO0FBQUEsTUFDVCxpQkFBaUI7QUFBQSxNQUNqQixlQUFlO0FBQUEsSUFDakI7QUFBQSxJQUNBLGtCQUFrQjtBQUFBLE1BQ2hCLGlCQUFpQjtBQUFBLE1BQ2pCLGVBQWU7QUFBQSxNQUNmLHNCQUFzQjtBQUFBLE1BQ3RCLHdCQUF3QjtBQUFBLE1BQ3hCLGlCQUFpQjtBQUFBLE1BQ2pCLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUNULGNBQWM7QUFBQSxNQUNkLHVCQUF1QjtBQUFBLElBQ3pCO0FBQUEsSUFDQSxrQkFBa0I7QUFBQSxNQUNoQixRQUFRO0FBQUEsTUFDUixTQUFTO0FBQUEsTUFDVCxXQUFXO0FBQUEsTUFDWCxlQUFlO0FBQUEsTUFDZixRQUFRO0FBQUEsSUFDVjtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsWUFBWTtBQUFBLElBQ2Q7QUFBQSxJQUNBLGNBQWM7QUFBQSxNQUNaLE9BQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxxQkFBcUI7QUFBQSxNQUNuQixjQUFjO0FBQUEsTUFDZCx1QkFBdUI7QUFBQSxNQUN2QixjQUFjO0FBQUEsTUFDZCxjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLGNBQWM7QUFBQSxNQUNaLGlCQUFpQjtBQUFBLE1BQ2pCLG1CQUFtQjtBQUFBLE1BQ25CLHNCQUFzQjtBQUFBLE1BQ3RCLG9CQUFvQjtBQUFBLE1BQ3BCLGdCQUFnQjtBQUFBLElBQ2xCO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTCxhQUFhO0FBQUEsSUFDZjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
98
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2kxOG4vbG9jYWxlcy9lbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBFbmdsaXNoIHRyYW5zbGF0aW9ucyBmb3IgdGhlIGBpMThuYCBtb2R1bGUuXG4gKi9cblxuLyoqXG4gKiBUaGUgRW5nbGlzaCB0cmFuc2xhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBlbiA9IHtcbiAgb2JzaWRpYW5MaWI6IHtcbiAgICBhc3luY1dpdGhOb3RpY2U6IHtcbiAgICAgIG1pbGxpc2Vjb25kczogJ21pbGxpc2Vjb25kcy4uLicsXG4gICAgICBvcGVyYXRpb246ICdPcGVyYXRpb24nLFxuICAgICAgcnVubmluZ0ZvcjogJ1J1bm5pbmcgZm9yJyxcbiAgICAgIHRlcm1pbmF0ZU9wZXJhdGlvbjogJ1lvdSBjYW4gdGVybWluYXRlIHRoZSBvcGVyYXRpb24gYnkgY2xpY2tpbmcgdGhlIGJ1dHRvbiBiZWxvdywgYnV0IGJlIGF3YXJlIGl0IG1pZ2h0IGxlYXZlIHRoZSB2YXVsdCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuJyxcbiAgICAgIHRpbWVkT3V0OiAnVGhlIG9wZXJhdGlvbiB0aW1lZCBvdXQgYWZ0ZXIge3tkdXJhdGlvbiwgbnVtYmVyfX0gbWlsbGlzZWNvbmRzLidcbiAgICB9LFxuICAgIGJ1dHRvbnM6IHtcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBvazogJ09LJ1xuICAgIH0sXG4gICAgY2FsbG91dDoge1xuICAgICAgbG9hZENvbnRlbnQ6ICdMb2FkIGNvbnRlbnQgZm9yIGNhbGxvdXQnXG4gICAgfSxcbiAgICBkYXRhdmlldzoge1xuICAgICAgaXRlbXNQZXJQYWdlOiAnSXRlbXMgcGVyIHBhZ2U6JyxcbiAgICAgIGp1bXBUb1BhZ2U6ICdKdW1wIHRvIHBhZ2U6JyxcbiAgICAgIHBhZ2VIZWFkZXI6ICdQYWdlIHt7cGFnZU51bWJlciwgbnVtYmVyfX0gb2Yge3t0b3RhbFBhZ2VzLCBudW1iZXJ9fSwgVG90YWwgaXRlbXM6IHt7dG90YWxJdGVtcywgbnVtYmVyfX0nXG4gICAgfSxcbiAgICBtZW51OiB7XG4gICAgICBjb3B5OiAnQ29weSdcbiAgICB9LFxuICAgIG1ldGFkYXRhQ2FjaGU6IHtcbiAgICAgIGdldEJhY2tsaW5rc0ZvckZpbGVQYXRoOiAnR2V0IGJhY2tsaW5rcyBmb3Ige3tmaWxlUGF0aH19J1xuICAgIH0sXG4gICAgbm90aWNlczoge1xuICAgICAgYXR0YWNobWVudElzU3RpbGxVc2VkOiAnQXR0YWNobWVudCB7e2F0dGFjaG1lbnRQYXRofX0gaXMgc3RpbGwgdXNlZCBieSBvdGhlciBub3Rlcy4gSXQgd2lsbCBub3QgYmUgZGVsZXRlZC4nLFxuICAgICAgYXR0YWNobWVudFJlc2N1ZWQ6ICdBdHRhY2htZW50IHt7YXR0YWNobWVudFBhdGh9fSBpcyBzdGlsbCB1c2VkIGJ5IG90aGVyIG5vdGVzLiBJdCB3YXMgbW92ZWQgdG8ge3tuZXdBdHRhY2htZW50UGF0aH19LicsXG4gICAgICBjbG9zZUFyaWFMYWJlbDogJ0Nsb3NlJyxcbiAgICAgIGZhaWxlZFRvT3BlblVybDogJ0ZhaWxlZCB0byBvcGVuIHt7dXJsfX0nLFxuICAgICAgdW5oYW5kbGVkRXJyb3I6ICdBbiB1bmhhbmRsZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSBjaGVjayB0aGUgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nXG4gICAgfSxcbiAgICBwYXRoU2V0dGluZ3M6IHtcbiAgICAgIGludmFsaWRHbG9iOiAnSW52YWxpZCBnbG9iIHBhdHRlcm46IHt7Z2xvYn19ICh7e3JlYXNvbn19KScsXG4gICAgICBpbnZhbGlkUmVndWxhckV4cHJlc3Npb246ICdJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjoge3tyZWdFeHB9fSAoe3tyZWFzb259fSknLFxuICAgICAgdHJhaWxpbmdFc2NhcGU6ICdpdCBlbmRzIHdpdGggYW4gdW5lc2NhcGVkIFxcXFwnLFxuICAgICAgdW5jbG9zZWRDaGFyYWN0ZXJDbGFzczogJ2EgWyBjaGFyYWN0ZXIgY2xhc3MgaXMgbmV2ZXIgY2xvc2VkIHdpdGggXSdcbiAgICB9LFxuICAgIHBsdWdpbkNvbmZsaWN0OiB7XG4gICAgICBibG9ja2VkTm90aWNlOiAne3twbHVnaW5OYW1lfX0gZG9lcyBub3RoaW5nIHdoaWxlIHt7Y29uZmxpY3RpbmdQbHVnaW5OYW1lfX0gaXMgZW5hYmxlZC4gVXBkYXRlIG9yIGRpc2FibGUgaXQgdG8gY29udGludWUuJyxcbiAgICAgIGNvbmZsaWN0QXBwZWFyZWROb3RpY2U6ICd7e2NvbmZsaWN0aW5nUGx1Z2luTmFtZX19IGlzIG5vdyBlbmFibGVkLCBzbyB7e3BsdWdpbk5hbWV9fSBoYXMgc3RvcHBlZCB3b3JraW5nLiBVcGRhdGUgb3IgZGlzYWJsZSBpdCB0byByZXN1bWUuJyxcbiAgICAgIGRpc2FibGU6ICdEaXNhYmxlIHt7Y29uZmxpY3RpbmdQbHVnaW5OYW1lfX0nLFxuICAgICAgc2V0dGluZ3NIZWFkaW5nOiAnQ29uZmxpY3RpbmcgcGx1Z2luJyxcbiAgICAgIHdhcm5pbmdOb3RpY2U6ICd7e3BsdWdpbk5hbWV9fSBhbmQge3tjb25mbGljdGluZ1BsdWdpbk5hbWV9fSBvdmVybGFwLCBhbmQgYm90aCBhcmUgcnVubmluZy4nXG4gICAgfSxcbiAgICBwbHVnaW5EZXBlbmRlbmN5OiB7XG4gICAgICBhbHJlYWR5VXBUb0RhdGU6ICd7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gaXMgYWxyZWFkeSBhdCBpdHMgbGF0ZXN0IHJlbGVhc2UuIHt7cGx1Z2luTmFtZX19IG5lZWRzIGEgdmVyc2lvbiB0aGF0IGhhcyBub3QgYmVlbiByZWxlYXNlZCB5ZXQuJyxcbiAgICAgIGJsb2NrZWROb3RpY2U6ICd7e3BsdWdpbk5hbWV9fSBkb2VzIG5vdGhpbmcgdW50aWwge3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19IGlzIGluc3RhbGxlZCBhbmQgZW5hYmxlZC4nLFxuICAgICAgZGVwZW5kZW5jeUxvc3ROb3RpY2U6ICd7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSwgc28ge3twbHVnaW5OYW1lfX0gaGFzIHN0b3BwZWQgd29ya2luZy4gQnJpbmcgaXQgYmFjayB0byByZXN1bWUuJyxcbiAgICAgIG9wZW5EZXBlbmRlbmN5U2V0dGluZ3M6ICdPcGVuIHt7ZGVwZW5kZW5jeVBsdWdpbk5hbWV9fSBzZXR0aW5ncycsXG4gICAgICBzZXR0aW5nc0hlYWRpbmc6ICdSZXF1aXJlZCBwbHVnaW4gbWlzc2luZycsXG4gICAgICB1cGRhdGU6ICdVcGRhdGUge3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19JyxcbiAgICAgIHVwZGF0ZWQ6ICd7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0gaXMgdXBkYXRlZC4nLFxuICAgICAgdXBkYXRlRmFpbGVkOiAnRmFpbGVkIHRvIHVwZGF0ZSB7e2RlcGVuZGVuY3lQbHVnaW5OYW1lfX0uIENoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicsXG4gICAgICB2ZXJzaW9uTWlzbWF0Y2hOb3RpY2U6ICd7e3BsdWdpbk5hbWV9fSBuZWVkcyBhIG5ld2VyIHZlcnNpb24gb2Yge3tkZXBlbmRlbmN5UGx1Z2luTmFtZX19LiBVcGRhdGUgaXQgdG8gcmVzdW1lLidcbiAgICB9LFxuICAgIHBsdWdpblN1Z2dlc3Rpb246IHtcbiAgICAgIGVuYWJsZTogJ0VuYWJsZScsXG4gICAgICBpbnN0YWxsOiAnSW5zdGFsbCBhbmQgZW5hYmxlJyxcbiAgICAgIGluc3RhbGxlZDogJ3t7cGx1Z2luTmFtZX19IGlzIGluc3RhbGxlZCBhbmQgZW5hYmxlZC4nLFxuICAgICAgaW5zdGFsbEZhaWxlZDogJ0ZhaWxlZCB0byBpbnN0YWxsIHt7cGx1Z2luTmFtZX19LiBDaGVjayB0aGUgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLFxuICAgICAgbm90Tm93OiAnTm90IG5vdydcbiAgICB9LFxuICAgIHF1ZXVlOiB7XG4gICAgICBmbHVzaFF1ZXVlOiAnRmx1c2ggcXVldWUnXG4gICAgfSxcbiAgICByZWxlYXNlTm90ZXM6IHtcbiAgICAgIHRpdGxlOiAne3twbHVnaW5OYW1lfX0gcmVsZWFzZSBub3RlcydcbiAgICB9LFxuICAgIHJlbmFtZURlbGV0ZUhhbmRsZXI6IHtcbiAgICAgIGhhbmRsZURlbGV0ZTogJ0hhbmRsZSBkZWxldGU6IHt7ZmlsZVBhdGh9fScsXG4gICAgICBoYW5kbGVPcnBoYW5lZFJlbmFtZXM6ICdIYW5kbGUgb3JwaGFuZWQgcmVuYW1lcycsXG4gICAgICBoYW5kbGVSZW5hbWU6ICdIYW5kbGUgcmVuYW1lOiB7e29sZFBhdGh9fSAtPiB7e25ld1BhdGh9fScsXG4gICAgICB1cGRhdGVkTGlua3M6ICdVcGRhdGVkIHt7bGlua3NDb3VudCwgbnVtYmVyfX0gbGlua3MgaW4ge3tmaWxlc0NvdW50LCBudW1iZXJ9fSBmaWxlcy4nXG4gICAgfSxcbiAgICByZXNvdXJjZUxvY2s6IHtcbiAgICAgIGxvY2tlZEJ5VG9vbHRpcDogJ0xvY2tlZCBieScsXG4gICAgICBsb2NrZWROb3RlVG9vbHRpcDogJ1RoaXMgbm90ZSBpcyBsb2NrZWQgd2hpbGUgYW4gb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLicsXG4gICAgICB1bmxvY2tDb25maXJtTWVzc2FnZTogJ1RoaXMgd2lsbCBjYW5jZWwgdGhlIG9wZXJhdGlvbihzKSBjdXJyZW50bHkgaG9sZGluZyBhIGxvY2sgb24gdGhpcyBub3RlIGFuZCBtYXkgbGVhdmUgdGhlIHZhdWx0IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4gVGhlIG5vdGUgaXMgbG9ja2VkIGJ5OicsXG4gICAgICB1bmxvY2tDb25maXJtVGl0bGU6ICdVbmxvY2sgbm90ZT8nLFxuICAgICAgdW5sb2NrTWVudUl0ZW06ICdVbmxvY2snXG4gICAgfSxcbiAgICB2YXVsdDoge1xuICAgICAgcHJvY2Vzc0ZpbGU6ICdQcm9jZXNzIGZpbGUge3tmaWxlUGF0aH19J1xuICAgIH1cbiAgfVxufSBhcyBjb25zdDtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBU08sTUFBTSxLQUFLO0FBQUEsRUFDaEIsYUFBYTtBQUFBLElBQ1gsaUJBQWlCO0FBQUEsTUFDZixjQUFjO0FBQUEsTUFDZCxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsTUFDWixvQkFBb0I7QUFBQSxNQUNwQixVQUFVO0FBQUEsSUFDWjtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsUUFBUTtBQUFBLE1BQ1IsSUFBSTtBQUFBLElBQ047QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixjQUFjO0FBQUEsTUFDZCxZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsSUFDZDtBQUFBLElBQ0EsTUFBTTtBQUFBLE1BQ0osTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLGVBQWU7QUFBQSxNQUNiLHlCQUF5QjtBQUFBLElBQzNCO0FBQUEsSUFDQSxTQUFTO0FBQUEsTUFDUCx1QkFBdUI7QUFBQSxNQUN2QixtQkFBbUI7QUFBQSxNQUNuQixnQkFBZ0I7QUFBQSxNQUNoQixpQkFBaUI7QUFBQSxNQUNqQixnQkFBZ0I7QUFBQSxJQUNsQjtBQUFBLElBQ0EsY0FBYztBQUFBLE1BQ1osYUFBYTtBQUFBLE1BQ2IsMEJBQTBCO0FBQUEsTUFDMUIsZ0JBQWdCO0FBQUEsTUFDaEIsd0JBQXdCO0FBQUEsSUFDMUI7QUFBQSxJQUNBLGdCQUFnQjtBQUFBLE1BQ2QsZUFBZTtBQUFBLE1BQ2Ysd0JBQXdCO0FBQUEsTUFDeEIsU0FBUztBQUFBLE1BQ1QsaUJBQWlCO0FBQUEsTUFDakIsZUFBZTtBQUFBLElBQ2pCO0FBQUEsSUFDQSxrQkFBa0I7QUFBQSxNQUNoQixpQkFBaUI7QUFBQSxNQUNqQixlQUFlO0FBQUEsTUFDZixzQkFBc0I7QUFBQSxNQUN0Qix3QkFBd0I7QUFBQSxNQUN4QixpQkFBaUI7QUFBQSxNQUNqQixRQUFRO0FBQUEsTUFDUixTQUFTO0FBQUEsTUFDVCxjQUFjO0FBQUEsTUFDZCx1QkFBdUI7QUFBQSxJQUN6QjtBQUFBLElBQ0Esa0JBQWtCO0FBQUEsTUFDaEIsUUFBUTtBQUFBLE1BQ1IsU0FBUztBQUFBLE1BQ1QsV0FBVztBQUFBLE1BQ1gsZUFBZTtBQUFBLE1BQ2YsUUFBUTtBQUFBLElBQ1Y7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLFlBQVk7QUFBQSxJQUNkO0FBQUEsSUFDQSxjQUFjO0FBQUEsTUFDWixPQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EscUJBQXFCO0FBQUEsTUFDbkIsY0FBYztBQUFBLE1BQ2QsdUJBQXVCO0FBQUEsTUFDdkIsY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQSxjQUFjO0FBQUEsTUFDWixpQkFBaUI7QUFBQSxNQUNqQixtQkFBbUI7QUFBQSxNQUNuQixzQkFBc0I7QUFBQSxNQUN0QixvQkFBb0I7QUFBQSxNQUNwQixnQkFBZ0I7QUFBQSxJQUNsQjtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsYUFBYTtBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -11,7 +11,7 @@ import type { TranslationsMap } from '../i18n.mjs';
11
11
  export declare const DEFAULT_LANGUAGE: keyof typeof translationsMapImpl;
12
12
  declare const translationsMapImpl: {
13
13
  readonly en: {
14
- readonly obsidianDevUtils: {
14
+ readonly obsidianLib: {
15
15
  readonly asyncWithNotice: {
16
16
  readonly milliseconds: "milliseconds...";
17
17
  readonly operation: "Operation";
@@ -65,7 +65,7 @@ export * as 'mobile-trusted-input' from './mobile-trusted-input.mjs';
65
65
  export * as 'modals' from './modals/index.mjs';
66
66
  export * as 'note-priority' from './note-priority.mjs';
67
67
  export * as 'notebook-navigator' from './notebook-navigator.mjs';
68
- export * as 'obsidian-dev-utils-state' from './obsidian-dev-utils-state.mjs';
68
+ export * as 'obsidian-lib-state' from './obsidian-lib-state.mjs';
69
69
  export * as 'obsidian-protocol-handler-registrar' from './obsidian-protocol-handler-registrar.mjs';
70
70
  export * as 'obsidian-settings' from './obsidian-settings.mjs';
71
71
  export * as 'parse-link' from './parse-link.mjs';