obsidian-dev-utils 54.0.2 → 55.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (643) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/lib/cjs/@types/debug.d.cts +4 -1
  3. package/dist/lib/cjs/abort-controller.cjs +1 -1
  4. package/dist/lib/cjs/abort-controller.d.cts +1 -1
  5. package/dist/lib/cjs/array.cjs +1 -1
  6. package/dist/lib/cjs/array.d.cts +1 -1
  7. package/dist/lib/cjs/async-events.cjs +1 -1
  8. package/dist/lib/cjs/async-events.d.cts +1 -1
  9. package/dist/lib/cjs/async.cjs +1 -1
  10. package/dist/lib/cjs/async.d.cts +1 -1
  11. package/dist/lib/cjs/blob.cjs +1 -1
  12. package/dist/lib/cjs/blob.d.cts +1 -1
  13. package/dist/lib/cjs/codemirror/state-field-spec.cjs +1 -1
  14. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +1 -1
  15. package/dist/lib/cjs/css-class.cjs +1 -1
  16. package/dist/lib/cjs/css-class.d.cts +1 -1
  17. package/dist/lib/cjs/debug-controller.cjs +1 -1
  18. package/dist/lib/cjs/debug-controller.d.cts +1 -1
  19. package/dist/lib/cjs/debug.cjs +1 -1
  20. package/dist/lib/cjs/debug.d.cts +1 -1
  21. package/dist/lib/cjs/enum.cjs +1 -1
  22. package/dist/lib/cjs/enum.d.cts +1 -1
  23. package/dist/lib/cjs/error.cjs +1 -1
  24. package/dist/lib/cjs/error.d.cts +1 -1
  25. package/dist/lib/cjs/function.cjs +1 -1
  26. package/dist/lib/cjs/function.d.cts +1 -1
  27. package/dist/lib/cjs/html-element.cjs +1 -1
  28. package/dist/lib/cjs/html-element.d.cts +1 -1
  29. package/dist/lib/cjs/library.cjs +2 -2
  30. package/dist/lib/cjs/library.d.cts +1 -1
  31. package/dist/lib/cjs/object-utils.cjs +2 -2
  32. package/dist/lib/cjs/object-utils.d.cts +1 -1
  33. package/dist/lib/cjs/obsidian/@types/i18next.d.cts +1 -1
  34. package/dist/lib/cjs/obsidian/app.cjs +1 -1
  35. package/dist/lib/cjs/obsidian/app.d.cts +1 -1
  36. package/dist/lib/cjs/obsidian/async-with-notice.cjs +1 -1
  37. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +1 -1
  38. package/dist/lib/cjs/obsidian/attachment-path.cjs +1 -1
  39. package/dist/lib/cjs/obsidian/attachment-path.d.cts +1 -1
  40. package/dist/lib/cjs/obsidian/backlink.cjs +1 -1
  41. package/dist/lib/cjs/obsidian/backlink.d.cts +1 -1
  42. package/dist/lib/cjs/obsidian/callout.cjs +1 -1
  43. package/dist/lib/cjs/obsidian/callout.d.cts +1 -1
  44. package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +1 -1
  45. package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +1 -1
  46. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.cjs +1 -1
  47. package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.d.cts +1 -1
  48. package/dist/lib/cjs/obsidian/commands/command-base.cjs +1 -1
  49. package/dist/lib/cjs/obsidian/commands/command-base.d.cts +1 -1
  50. package/dist/lib/cjs/obsidian/commands/editor-command-base.cjs +1 -1
  51. package/dist/lib/cjs/obsidian/commands/editor-command-base.d.cts +1 -1
  52. package/dist/lib/cjs/obsidian/commands/file-command-base.cjs +1 -1
  53. package/dist/lib/cjs/obsidian/commands/file-command-base.d.cts +1 -1
  54. package/dist/lib/cjs/obsidian/commands/folder-command-base.cjs +1 -1
  55. package/dist/lib/cjs/obsidian/commands/folder-command-base.d.cts +1 -1
  56. package/dist/lib/cjs/obsidian/commands/non-editor-command-base.cjs +1 -1
  57. package/dist/lib/cjs/obsidian/commands/non-editor-command-base.d.cts +1 -1
  58. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +1 -1
  59. package/dist/lib/cjs/obsidian/components/all-windows-event-handler.d.cts +1 -1
  60. package/dist/lib/cjs/obsidian/components/async-events-component.cjs +1 -1
  61. package/dist/lib/cjs/obsidian/components/async-events-component.d.cts +1 -1
  62. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +1 -1
  63. package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.d.cts +1 -1
  64. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +1 -1
  65. package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.d.cts +1 -1
  66. package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +1 -1
  67. package/dist/lib/cjs/obsidian/components/setting-components/date-component.d.cts +1 -1
  68. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +1 -1
  69. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.d.cts +1 -1
  70. package/dist/lib/cjs/obsidian/components/setting-components/email-component.cjs +1 -1
  71. package/dist/lib/cjs/obsidian/components/setting-components/email-component.d.cts +1 -1
  72. package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +1 -1
  73. package/dist/lib/cjs/obsidian/components/setting-components/file-component.d.cts +1 -1
  74. package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +1 -1
  75. package/dist/lib/cjs/obsidian/components/setting-components/month-component.d.cts +1 -1
  76. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +1 -1
  77. package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.d.cts +1 -1
  78. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +1 -1
  79. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.d.cts +1 -1
  80. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +1 -1
  81. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.d.cts +1 -1
  82. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +1 -1
  83. package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.d.cts +1 -1
  84. package/dist/lib/cjs/obsidian/components/setting-components/number-component.cjs +1 -1
  85. package/dist/lib/cjs/obsidian/components/setting-components/number-component.d.cts +1 -1
  86. package/dist/lib/cjs/obsidian/components/setting-components/password-component.cjs +1 -1
  87. package/dist/lib/cjs/obsidian/components/setting-components/password-component.d.cts +1 -1
  88. package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.cjs +1 -1
  89. package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.d.cts +1 -1
  90. package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.cjs +1 -1
  91. package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.d.cts +1 -1
  92. package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.cjs +1 -1
  93. package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.d.cts +1 -1
  94. package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +1 -1
  95. package/dist/lib/cjs/obsidian/components/setting-components/time-component.d.cts +1 -1
  96. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +1 -1
  97. package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.d.cts +1 -1
  98. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +1 -1
  99. package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.d.cts +1 -1
  100. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +1 -1
  101. package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.d.cts +1 -1
  102. package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.cjs +1 -1
  103. package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.d.cts +1 -1
  104. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +1 -1
  105. package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.d.cts +1 -1
  106. package/dist/lib/cjs/obsidian/components/setting-components/url-component.cjs +1 -1
  107. package/dist/lib/cjs/obsidian/components/setting-components/url-component.d.cts +1 -1
  108. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +1 -1
  109. package/dist/lib/cjs/obsidian/components/setting-components/validator-component.d.cts +1 -1
  110. package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.cjs +1 -1
  111. package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.d.cts +1 -1
  112. package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +1 -1
  113. package/dist/lib/cjs/obsidian/components/setting-components/week-component.d.cts +1 -1
  114. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +1 -1
  115. package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.d.cts +1 -1
  116. package/dist/lib/cjs/obsidian/dataview-link.cjs +1 -1
  117. package/dist/lib/cjs/obsidian/dataview-link.d.cts +1 -1
  118. package/dist/lib/cjs/obsidian/dataview.cjs +1 -1
  119. package/dist/lib/cjs/obsidian/dataview.d.cts +1 -1
  120. package/dist/lib/cjs/obsidian/editor.cjs +1 -1
  121. package/dist/lib/cjs/obsidian/editor.d.cts +1 -1
  122. package/dist/lib/cjs/obsidian/file-change.cjs +4 -4
  123. package/dist/lib/cjs/obsidian/file-change.d.cts +4 -4
  124. package/dist/lib/cjs/obsidian/file-manager.cjs +2 -2
  125. package/dist/lib/cjs/obsidian/file-manager.d.cts +1 -1
  126. package/dist/lib/cjs/obsidian/file-system.cjs +1 -1
  127. package/dist/lib/cjs/obsidian/file-system.d.cts +1 -1
  128. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +1 -1
  129. package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.d.cts +1 -1
  130. package/dist/lib/cjs/obsidian/frontmatter.cjs +1 -1
  131. package/dist/lib/cjs/obsidian/frontmatter.d.cts +1 -1
  132. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.cjs +1 -1
  133. package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +1 -1
  134. package/dist/lib/cjs/obsidian/i18n/default-translations-base.cjs +1 -1
  135. package/dist/lib/cjs/obsidian/i18n/default-translations-base.d.cts +1 -1
  136. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +1 -1
  137. package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +1 -1
  138. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +1 -1
  139. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +1 -1
  140. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +1 -1
  141. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -1
  142. package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +1 -1
  143. package/dist/lib/cjs/obsidian/is-in-obsidian.d.cts +1 -1
  144. package/dist/lib/cjs/obsidian/link.cjs +16 -12
  145. package/dist/lib/cjs/obsidian/link.d.cts +1 -1
  146. package/dist/lib/cjs/obsidian/logger.cjs +1 -1
  147. package/dist/lib/cjs/obsidian/logger.d.cts +1 -1
  148. package/dist/lib/cjs/obsidian/loop.cjs +1 -1
  149. package/dist/lib/cjs/obsidian/loop.d.cts +1 -1
  150. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +5 -5
  151. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +3 -2
  152. package/dist/lib/cjs/obsidian/markdown-view.cjs +1 -1
  153. package/dist/lib/cjs/obsidian/markdown-view.d.cts +1 -1
  154. package/dist/lib/cjs/obsidian/markdown.cjs +1 -1
  155. package/dist/lib/cjs/obsidian/markdown.d.cts +1 -1
  156. package/dist/lib/cjs/obsidian/metadata-cache.cjs +1 -1
  157. package/dist/lib/cjs/obsidian/metadata-cache.d.cts +1 -1
  158. package/dist/lib/cjs/obsidian/modals/alert.cjs +1 -1
  159. package/dist/lib/cjs/obsidian/modals/alert.d.cts +1 -1
  160. package/dist/lib/cjs/obsidian/modals/confirm.cjs +1 -1
  161. package/dist/lib/cjs/obsidian/modals/confirm.d.cts +1 -1
  162. package/dist/lib/cjs/obsidian/modals/modal-base.cjs +1 -1
  163. package/dist/lib/cjs/obsidian/modals/modal-base.d.cts +1 -1
  164. package/dist/lib/cjs/obsidian/modals/prompt.cjs +1 -1
  165. package/dist/lib/cjs/obsidian/modals/prompt.d.cts +1 -1
  166. package/dist/lib/cjs/obsidian/modals/select-item.cjs +1 -1
  167. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -1
  168. package/dist/lib/cjs/obsidian/monkey-around.cjs +1 -1
  169. package/dist/lib/cjs/obsidian/monkey-around.d.cts +1 -1
  170. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +1 -1
  171. package/dist/lib/cjs/obsidian/obsidian-settings.d.cts +1 -1
  172. package/dist/lib/cjs/obsidian/pdf.cjs +1 -1
  173. package/dist/lib/cjs/obsidian/pdf.d.cts +1 -1
  174. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +1 -1
  175. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +1 -1
  176. package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +1 -1
  177. package/dist/lib/cjs/obsidian/plugin/path-settings.d.cts +1 -1
  178. package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +1 -1
  179. package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +1 -1
  180. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +1 -1
  181. package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +1 -1
  182. package/dist/lib/cjs/obsidian/plugin/plugin-id.cjs +1 -1
  183. package/dist/lib/cjs/obsidian/plugin/plugin-id.d.cts +1 -1
  184. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +1 -1
  185. package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.d.cts +1 -1
  186. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +1 -1
  187. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.d.cts +1 -1
  188. package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.cjs +1 -1
  189. package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.d.cts +1 -1
  190. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.cjs +1 -1
  191. package/dist/lib/cjs/obsidian/plugin/plugin-types-base.d.cts +1 -1
  192. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +1 -1
  193. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +1 -1
  194. package/dist/lib/cjs/obsidian/queue.cjs +1 -1
  195. package/dist/lib/cjs/obsidian/queue.d.cts +1 -1
  196. package/dist/lib/cjs/obsidian/react/app-context.cjs +1 -1
  197. package/dist/lib/cjs/obsidian/react/app-context.d.cts +1 -1
  198. package/dist/lib/cjs/obsidian/reference.cjs +1 -1
  199. package/dist/lib/cjs/obsidian/reference.d.cts +1 -1
  200. package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +1 -1
  201. package/dist/lib/cjs/obsidian/rename-delete-handler.d.cts +1 -1
  202. package/dist/lib/cjs/obsidian/resource-url.cjs +1 -1
  203. package/dist/lib/cjs/obsidian/resource-url.d.cts +1 -1
  204. package/dist/lib/cjs/obsidian/setting-ex.cjs +1 -1
  205. package/dist/lib/cjs/obsidian/setting-ex.d.cts +1 -1
  206. package/dist/lib/cjs/obsidian/setting-group-ex.cjs +1 -1
  207. package/dist/lib/cjs/obsidian/setting-group-ex.d.cts +1 -1
  208. package/dist/lib/cjs/obsidian/validation.cjs +1 -1
  209. package/dist/lib/cjs/obsidian/validation.d.cts +1 -1
  210. package/dist/lib/cjs/obsidian/vault-delete.cjs +1 -1
  211. package/dist/lib/cjs/obsidian/vault-delete.d.cts +1 -1
  212. package/dist/lib/cjs/obsidian/vault.cjs +2 -2
  213. package/dist/lib/cjs/obsidian/vault.d.cts +8 -2
  214. package/dist/lib/cjs/obsidian/workspace.cjs +1 -1
  215. package/dist/lib/cjs/obsidian/workspace.d.cts +1 -1
  216. package/dist/lib/cjs/path.cjs +1 -1
  217. package/dist/lib/cjs/path.d.cts +1 -1
  218. package/dist/lib/cjs/reg-exp.cjs +1 -1
  219. package/dist/lib/cjs/reg-exp.d.cts +1 -1
  220. package/dist/lib/cjs/script-utils/build.cjs +1 -1
  221. package/dist/lib/cjs/script-utils/build.d.cts +1 -1
  222. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +3 -3
  223. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.d.cts +1 -1
  224. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +1 -1
  225. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.cts +1 -1
  226. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +1 -1
  227. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.cts +1 -1
  228. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +1 -1
  229. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.d.cts +1 -1
  230. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +1 -1
  231. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.d.cts +1 -1
  232. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +2 -2
  233. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.cts +1 -1
  234. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +1 -1
  235. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +1 -1
  236. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +1 -1
  237. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
  238. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +1 -1
  239. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.d.cts +1 -1
  240. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +1 -1
  241. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +1 -1
  242. package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +1 -1
  243. package/dist/lib/cjs/script-utils/bundlers/esbuild.d.cts +1 -1
  244. package/dist/lib/cjs/script-utils/cli-utils.cjs +1 -1
  245. package/dist/lib/cjs/script-utils/cli-utils.d.cts +1 -1
  246. package/dist/lib/cjs/script-utils/code-generator.cjs +1 -1
  247. package/dist/lib/cjs/script-utils/code-generator.d.cts +1 -1
  248. package/dist/lib/cjs/script-utils/commitlint-config.cjs +1 -1
  249. package/dist/lib/cjs/script-utils/commitlint-config.d.cts +1 -1
  250. package/dist/lib/cjs/script-utils/exec.cjs +1 -1
  251. package/dist/lib/cjs/script-utils/exec.d.cts +1 -1
  252. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +1 -1
  253. package/dist/lib/cjs/script-utils/formatters/dprint.d.cts +1 -1
  254. package/dist/lib/cjs/script-utils/fs.cjs +1 -1
  255. package/dist/lib/cjs/script-utils/fs.d.cts +1 -1
  256. package/dist/lib/cjs/script-utils/json.cjs +1 -1
  257. package/dist/lib/cjs/script-utils/json.d.cts +1 -1
  258. package/dist/lib/cjs/script-utils/linters/cspell.cjs +1 -1
  259. package/dist/lib/cjs/script-utils/linters/cspell.d.cts +1 -1
  260. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +1 -1
  261. package/dist/lib/cjs/script-utils/linters/eslint-config.d.cts +1 -1
  262. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +1 -1
  263. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +1 -1
  264. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +1 -1
  265. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +1 -1
  266. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +1 -1
  267. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +1 -1
  268. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts +1 -1
  269. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +3 -1
  270. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.cts +3 -1
  271. package/dist/lib/cjs/script-utils/linters/eslint.cjs +1 -1
  272. package/dist/lib/cjs/script-utils/linters/eslint.d.cts +1 -1
  273. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +1 -1
  274. package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.d.cts +1 -1
  275. package/dist/lib/cjs/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1 -1
  276. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +1 -1
  277. package/dist/lib/cjs/script-utils/linters/markdownlint.d.cts +1 -1
  278. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +1 -1
  279. package/dist/lib/cjs/script-utils/nano-staged-config.d.cts +1 -1
  280. package/dist/lib/cjs/script-utils/npm-publish.cjs +1 -1
  281. package/dist/lib/cjs/script-utils/npm-publish.d.cts +1 -1
  282. package/dist/lib/cjs/script-utils/npm-run.cjs +1 -1
  283. package/dist/lib/cjs/script-utils/npm-run.d.cts +1 -1
  284. package/dist/lib/cjs/script-utils/npm.cjs +1 -1
  285. package/dist/lib/cjs/script-utils/npm.d.cts +1 -1
  286. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +1 -1
  287. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +1 -1
  288. package/dist/lib/cjs/script-utils/root.cjs +1 -1
  289. package/dist/lib/cjs/script-utils/root.d.cts +1 -1
  290. package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +1 -1
  291. package/dist/lib/cjs/script-utils/test-runners/vitest.d.cts +1 -1
  292. package/dist/lib/cjs/script-utils/version.cjs +1 -1
  293. package/dist/lib/cjs/script-utils/version.d.cts +1 -1
  294. package/dist/lib/cjs/string.cjs +14 -14
  295. package/dist/lib/cjs/string.d.cts +9 -5
  296. package/dist/lib/cjs/transformers/date-transformer.cjs +1 -1
  297. package/dist/lib/cjs/transformers/date-transformer.d.cts +1 -1
  298. package/dist/lib/cjs/transformers/duration-transformer.cjs +1 -1
  299. package/dist/lib/cjs/transformers/duration-transformer.d.cts +1 -1
  300. package/dist/lib/cjs/transformers/group-transformer.cjs +1 -1
  301. package/dist/lib/cjs/transformers/group-transformer.d.cts +1 -1
  302. package/dist/lib/cjs/transformers/map-transformer.cjs +1 -1
  303. package/dist/lib/cjs/transformers/map-transformer.d.cts +1 -1
  304. package/dist/lib/cjs/transformers/set-transformer.cjs +1 -1
  305. package/dist/lib/cjs/transformers/set-transformer.d.cts +1 -1
  306. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +1 -1
  307. package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +1 -1
  308. package/dist/lib/cjs/transformers/transformer.cjs +1 -1
  309. package/dist/lib/cjs/transformers/transformer.d.cts +1 -1
  310. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +1 -1
  311. package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +1 -1
  312. package/dist/lib/cjs/transformers/typed-transformer.cjs +1 -1
  313. package/dist/lib/cjs/transformers/typed-transformer.d.cts +1 -1
  314. package/dist/lib/cjs/two-way-map.cjs +1 -1
  315. package/dist/lib/cjs/two-way-map.d.cts +1 -1
  316. package/dist/lib/cjs/type-guards.cjs +1 -1
  317. package/dist/lib/cjs/type-guards.d.cts +1 -1
  318. package/dist/lib/cjs/type.cjs +1 -1
  319. package/dist/lib/cjs/type.d.cts +1 -1
  320. package/dist/lib/cjs/url.cjs +1 -1
  321. package/dist/lib/cjs/url.d.cts +1 -1
  322. package/dist/lib/cjs/value-provider.cjs +5 -5
  323. package/dist/lib/cjs/value-provider.d.cts +7 -4
  324. package/dist/lib/esm/@types/debug.d.mts +4 -1
  325. package/dist/lib/esm/abort-controller.d.mts +1 -1
  326. package/dist/lib/esm/abort-controller.mjs +1 -1
  327. package/dist/lib/esm/array.d.mts +1 -1
  328. package/dist/lib/esm/array.mjs +1 -1
  329. package/dist/lib/esm/async-events.d.mts +1 -1
  330. package/dist/lib/esm/async-events.mjs +1 -1
  331. package/dist/lib/esm/async.d.mts +1 -1
  332. package/dist/lib/esm/async.mjs +1 -1
  333. package/dist/lib/esm/blob.d.mts +1 -1
  334. package/dist/lib/esm/blob.mjs +1 -1
  335. package/dist/lib/esm/codemirror/state-field-spec.d.mts +1 -1
  336. package/dist/lib/esm/css-class.d.mts +1 -1
  337. package/dist/lib/esm/css-class.mjs +1 -1
  338. package/dist/lib/esm/debug-controller.d.mts +1 -1
  339. package/dist/lib/esm/debug.d.mts +1 -1
  340. package/dist/lib/esm/debug.mjs +1 -1
  341. package/dist/lib/esm/enum.d.mts +1 -1
  342. package/dist/lib/esm/enum.mjs +1 -1
  343. package/dist/lib/esm/error.d.mts +1 -1
  344. package/dist/lib/esm/error.mjs +1 -1
  345. package/dist/lib/esm/function.d.mts +1 -1
  346. package/dist/lib/esm/function.mjs +1 -1
  347. package/dist/lib/esm/html-element.d.mts +1 -1
  348. package/dist/lib/esm/html-element.mjs +1 -1
  349. package/dist/lib/esm/library.d.mts +1 -1
  350. package/dist/lib/esm/library.mjs +2 -2
  351. package/dist/lib/esm/object-utils.d.mts +1 -1
  352. package/dist/lib/esm/object-utils.mjs +2 -2
  353. package/dist/lib/esm/obsidian/@types/i18next.d.mts +1 -1
  354. package/dist/lib/esm/obsidian/app.d.mts +1 -1
  355. package/dist/lib/esm/obsidian/app.mjs +1 -1
  356. package/dist/lib/esm/obsidian/async-with-notice.d.mts +1 -1
  357. package/dist/lib/esm/obsidian/async-with-notice.mjs +1 -1
  358. package/dist/lib/esm/obsidian/attachment-path.d.mts +1 -1
  359. package/dist/lib/esm/obsidian/attachment-path.mjs +1 -1
  360. package/dist/lib/esm/obsidian/backlink.d.mts +1 -1
  361. package/dist/lib/esm/obsidian/backlink.mjs +1 -1
  362. package/dist/lib/esm/obsidian/callout.d.mts +1 -1
  363. package/dist/lib/esm/obsidian/callout.mjs +1 -1
  364. package/dist/lib/esm/obsidian/code-block-markdown-information.d.mts +1 -1
  365. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.d.mts +1 -1
  366. package/dist/lib/esm/obsidian/commands/abstract-file-command-base.mjs +1 -1
  367. package/dist/lib/esm/obsidian/commands/command-base.d.mts +1 -1
  368. package/dist/lib/esm/obsidian/commands/command-base.mjs +1 -1
  369. package/dist/lib/esm/obsidian/commands/editor-command-base.d.mts +1 -1
  370. package/dist/lib/esm/obsidian/commands/editor-command-base.mjs +1 -1
  371. package/dist/lib/esm/obsidian/commands/file-command-base.d.mts +1 -1
  372. package/dist/lib/esm/obsidian/commands/file-command-base.mjs +1 -1
  373. package/dist/lib/esm/obsidian/commands/folder-command-base.d.mts +1 -1
  374. package/dist/lib/esm/obsidian/commands/folder-command-base.mjs +1 -1
  375. package/dist/lib/esm/obsidian/commands/non-editor-command-base.d.mts +1 -1
  376. package/dist/lib/esm/obsidian/commands/non-editor-command-base.mjs +1 -1
  377. package/dist/lib/esm/obsidian/components/all-windows-event-handler.d.mts +1 -1
  378. package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +1 -1
  379. package/dist/lib/esm/obsidian/components/async-events-component.d.mts +1 -1
  380. package/dist/lib/esm/obsidian/components/async-events-component.mjs +1 -1
  381. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.d.mts +1 -1
  382. package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +1 -1
  383. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.d.mts +1 -1
  384. package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +1 -1
  385. package/dist/lib/esm/obsidian/components/setting-components/date-component.d.mts +1 -1
  386. package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +1 -1
  387. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.d.mts +1 -1
  388. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +1 -1
  389. package/dist/lib/esm/obsidian/components/setting-components/email-component.d.mts +1 -1
  390. package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +1 -1
  391. package/dist/lib/esm/obsidian/components/setting-components/file-component.d.mts +1 -1
  392. package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +1 -1
  393. package/dist/lib/esm/obsidian/components/setting-components/month-component.d.mts +1 -1
  394. package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +1 -1
  395. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.d.mts +1 -1
  396. package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +1 -1
  397. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.d.mts +1 -1
  398. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +1 -1
  399. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.d.mts +1 -1
  400. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +1 -1
  401. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.d.mts +1 -1
  402. package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +1 -1
  403. package/dist/lib/esm/obsidian/components/setting-components/number-component.d.mts +1 -1
  404. package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +1 -1
  405. package/dist/lib/esm/obsidian/components/setting-components/password-component.d.mts +1 -1
  406. package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +1 -1
  407. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.d.mts +1 -1
  408. package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +1 -1
  409. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.d.mts +1 -1
  410. package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +1 -1
  411. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.d.mts +1 -1
  412. package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +1 -1
  413. package/dist/lib/esm/obsidian/components/setting-components/time-component.d.mts +1 -1
  414. package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +1 -1
  415. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.d.mts +1 -1
  416. package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +1 -1
  417. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.d.mts +1 -1
  418. package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +1 -1
  419. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.d.mts +1 -1
  420. package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +1 -1
  421. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.d.mts +1 -1
  422. package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +1 -1
  423. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.d.mts +1 -1
  424. package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +1 -1
  425. package/dist/lib/esm/obsidian/components/setting-components/url-component.d.mts +1 -1
  426. package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +1 -1
  427. package/dist/lib/esm/obsidian/components/setting-components/validator-component.d.mts +1 -1
  428. package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +1 -1
  429. package/dist/lib/esm/obsidian/components/setting-components/value-component-with-change-tracking.d.mts +1 -1
  430. package/dist/lib/esm/obsidian/components/setting-components/week-component.d.mts +1 -1
  431. package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +1 -1
  432. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.d.mts +1 -1
  433. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +1 -1
  434. package/dist/lib/esm/obsidian/dataview-link.d.mts +1 -1
  435. package/dist/lib/esm/obsidian/dataview-link.mjs +1 -1
  436. package/dist/lib/esm/obsidian/dataview.d.mts +1 -1
  437. package/dist/lib/esm/obsidian/dataview.mjs +1 -1
  438. package/dist/lib/esm/obsidian/editor.d.mts +1 -1
  439. package/dist/lib/esm/obsidian/editor.mjs +1 -1
  440. package/dist/lib/esm/obsidian/file-change.d.mts +4 -4
  441. package/dist/lib/esm/obsidian/file-change.mjs +4 -4
  442. package/dist/lib/esm/obsidian/file-manager.d.mts +1 -1
  443. package/dist/lib/esm/obsidian/file-manager.mjs +2 -2
  444. package/dist/lib/esm/obsidian/file-system.d.mts +1 -1
  445. package/dist/lib/esm/obsidian/file-system.mjs +1 -1
  446. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.d.mts +1 -1
  447. package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.mjs +1 -1
  448. package/dist/lib/esm/obsidian/frontmatter.d.mts +1 -1
  449. package/dist/lib/esm/obsidian/frontmatter.mjs +1 -1
  450. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +1 -1
  451. package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +1 -1
  452. package/dist/lib/esm/obsidian/i18n/default-translations-base.d.mts +1 -1
  453. package/dist/lib/esm/obsidian/i18n/default-translations-base.mjs +1 -1
  454. package/dist/lib/esm/obsidian/i18n/i18n.d.mts +1 -1
  455. package/dist/lib/esm/obsidian/i18n/i18n.mjs +1 -1
  456. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +1 -1
  457. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +1 -1
  458. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -1
  459. package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +1 -1
  460. package/dist/lib/esm/obsidian/is-in-obsidian.d.mts +1 -1
  461. package/dist/lib/esm/obsidian/is-in-obsidian.mjs +1 -1
  462. package/dist/lib/esm/obsidian/link.d.mts +1 -1
  463. package/dist/lib/esm/obsidian/link.mjs +16 -12
  464. package/dist/lib/esm/obsidian/logger.d.mts +1 -1
  465. package/dist/lib/esm/obsidian/logger.mjs +1 -1
  466. package/dist/lib/esm/obsidian/loop.d.mts +1 -1
  467. package/dist/lib/esm/obsidian/loop.mjs +1 -1
  468. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +3 -2
  469. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +5 -5
  470. package/dist/lib/esm/obsidian/markdown-view.d.mts +1 -1
  471. package/dist/lib/esm/obsidian/markdown-view.mjs +1 -1
  472. package/dist/lib/esm/obsidian/markdown.d.mts +1 -1
  473. package/dist/lib/esm/obsidian/markdown.mjs +1 -1
  474. package/dist/lib/esm/obsidian/metadata-cache.d.mts +1 -1
  475. package/dist/lib/esm/obsidian/metadata-cache.mjs +1 -1
  476. package/dist/lib/esm/obsidian/modals/alert.d.mts +1 -1
  477. package/dist/lib/esm/obsidian/modals/alert.mjs +1 -1
  478. package/dist/lib/esm/obsidian/modals/confirm.d.mts +1 -1
  479. package/dist/lib/esm/obsidian/modals/confirm.mjs +1 -1
  480. package/dist/lib/esm/obsidian/modals/modal-base.d.mts +1 -1
  481. package/dist/lib/esm/obsidian/modals/modal-base.mjs +1 -1
  482. package/dist/lib/esm/obsidian/modals/prompt.d.mts +1 -1
  483. package/dist/lib/esm/obsidian/modals/prompt.mjs +1 -1
  484. package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -1
  485. package/dist/lib/esm/obsidian/modals/select-item.mjs +1 -1
  486. package/dist/lib/esm/obsidian/monkey-around.d.mts +1 -1
  487. package/dist/lib/esm/obsidian/monkey-around.mjs +1 -1
  488. package/dist/lib/esm/obsidian/obsidian-settings.d.mts +1 -1
  489. package/dist/lib/esm/obsidian/obsidian-settings.mjs +1 -1
  490. package/dist/lib/esm/obsidian/pdf.d.mts +1 -1
  491. package/dist/lib/esm/obsidian/pdf.mjs +1 -1
  492. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +1 -1
  493. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +1 -1
  494. package/dist/lib/esm/obsidian/plugin/path-settings.d.mts +1 -1
  495. package/dist/lib/esm/obsidian/plugin/path-settings.mjs +1 -1
  496. package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +1 -1
  497. package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +1 -1
  498. package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +1 -1
  499. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +1 -1
  500. package/dist/lib/esm/obsidian/plugin/plugin-id.d.mts +1 -1
  501. package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +1 -1
  502. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.d.mts +1 -1
  503. package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +1 -1
  504. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.d.mts +1 -1
  505. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +1 -1
  506. package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.d.mts +1 -1
  507. package/dist/lib/esm/obsidian/plugin/plugin-types-base.d.mts +1 -1
  508. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +1 -1
  509. package/dist/lib/esm/obsidian/plugin/plugin.mjs +1 -1
  510. package/dist/lib/esm/obsidian/queue.d.mts +1 -1
  511. package/dist/lib/esm/obsidian/queue.mjs +1 -1
  512. package/dist/lib/esm/obsidian/react/app-context.d.mts +1 -1
  513. package/dist/lib/esm/obsidian/react/app-context.mjs +1 -1
  514. package/dist/lib/esm/obsidian/reference.d.mts +1 -1
  515. package/dist/lib/esm/obsidian/reference.mjs +1 -1
  516. package/dist/lib/esm/obsidian/rename-delete-handler.d.mts +1 -1
  517. package/dist/lib/esm/obsidian/rename-delete-handler.mjs +1 -1
  518. package/dist/lib/esm/obsidian/resource-url.d.mts +1 -1
  519. package/dist/lib/esm/obsidian/resource-url.mjs +1 -1
  520. package/dist/lib/esm/obsidian/setting-ex.d.mts +1 -1
  521. package/dist/lib/esm/obsidian/setting-ex.mjs +1 -1
  522. package/dist/lib/esm/obsidian/setting-group-ex.d.mts +1 -1
  523. package/dist/lib/esm/obsidian/setting-group-ex.mjs +1 -1
  524. package/dist/lib/esm/obsidian/validation.d.mts +1 -1
  525. package/dist/lib/esm/obsidian/validation.mjs +1 -1
  526. package/dist/lib/esm/obsidian/vault-delete.d.mts +1 -1
  527. package/dist/lib/esm/obsidian/vault-delete.mjs +1 -1
  528. package/dist/lib/esm/obsidian/vault.d.mts +8 -2
  529. package/dist/lib/esm/obsidian/vault.mjs +2 -2
  530. package/dist/lib/esm/obsidian/workspace.d.mts +1 -1
  531. package/dist/lib/esm/obsidian/workspace.mjs +1 -1
  532. package/dist/lib/esm/path.d.mts +1 -1
  533. package/dist/lib/esm/path.mjs +1 -1
  534. package/dist/lib/esm/reg-exp.d.mts +1 -1
  535. package/dist/lib/esm/reg-exp.mjs +1 -1
  536. package/dist/lib/esm/script-utils/build.d.mts +1 -1
  537. package/dist/lib/esm/script-utils/build.mjs +1 -1
  538. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.d.mts +1 -1
  539. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +3 -3
  540. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.mts +1 -1
  541. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +1 -1
  542. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.mts +1 -1
  543. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +1 -1
  544. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.d.mts +1 -1
  545. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +1 -1
  546. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.d.mts +1 -1
  547. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +1 -1
  548. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.d.mts +1 -1
  549. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +2 -2
  550. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +1 -1
  551. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +1 -1
  552. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -1
  553. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +1 -1
  554. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.d.mts +1 -1
  555. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +1 -1
  556. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +1 -1
  557. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +1 -1
  558. package/dist/lib/esm/script-utils/bundlers/esbuild.d.mts +1 -1
  559. package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +1 -1
  560. package/dist/lib/esm/script-utils/cli-utils.d.mts +1 -1
  561. package/dist/lib/esm/script-utils/cli-utils.mjs +1 -1
  562. package/dist/lib/esm/script-utils/code-generator.d.mts +1 -1
  563. package/dist/lib/esm/script-utils/code-generator.mjs +1 -1
  564. package/dist/lib/esm/script-utils/commitlint-config.d.mts +1 -1
  565. package/dist/lib/esm/script-utils/commitlint-config.mjs +1 -1
  566. package/dist/lib/esm/script-utils/exec.d.mts +1 -1
  567. package/dist/lib/esm/script-utils/exec.mjs +1 -1
  568. package/dist/lib/esm/script-utils/formatters/dprint.d.mts +1 -1
  569. package/dist/lib/esm/script-utils/formatters/dprint.mjs +1 -1
  570. package/dist/lib/esm/script-utils/fs.d.mts +1 -1
  571. package/dist/lib/esm/script-utils/fs.mjs +1 -1
  572. package/dist/lib/esm/script-utils/json.d.mts +1 -1
  573. package/dist/lib/esm/script-utils/json.mjs +1 -1
  574. package/dist/lib/esm/script-utils/linters/cspell.d.mts +1 -1
  575. package/dist/lib/esm/script-utils/linters/cspell.mjs +1 -1
  576. package/dist/lib/esm/script-utils/linters/eslint-config.d.mts +1 -1
  577. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +1 -1
  578. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +1 -1
  579. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +1 -1
  580. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +1 -1
  581. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.mts +1 -1
  582. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +1 -1
  583. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.d.mts +1 -1
  584. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +1 -1
  585. package/dist/lib/esm/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +3 -1
  586. package/dist/lib/esm/script-utils/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.mts +3 -1
  587. package/dist/lib/esm/script-utils/linters/eslint.d.mts +1 -1
  588. package/dist/lib/esm/script-utils/linters/eslint.mjs +1 -1
  589. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.d.mts +1 -1
  590. package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +1 -1
  591. package/dist/lib/esm/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1 -1
  592. package/dist/lib/esm/script-utils/linters/markdownlint.d.mts +1 -1
  593. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +1 -1
  594. package/dist/lib/esm/script-utils/nano-staged-config.d.mts +1 -1
  595. package/dist/lib/esm/script-utils/nano-staged-config.mjs +1 -1
  596. package/dist/lib/esm/script-utils/npm-publish.d.mts +1 -1
  597. package/dist/lib/esm/script-utils/npm-publish.mjs +1 -1
  598. package/dist/lib/esm/script-utils/npm-run.d.mts +1 -1
  599. package/dist/lib/esm/script-utils/npm-run.mjs +1 -1
  600. package/dist/lib/esm/script-utils/npm.d.mts +1 -1
  601. package/dist/lib/esm/script-utils/npm.mjs +1 -1
  602. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +1 -1
  603. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +1 -1
  604. package/dist/lib/esm/script-utils/root.d.mts +1 -1
  605. package/dist/lib/esm/script-utils/root.mjs +1 -1
  606. package/dist/lib/esm/script-utils/test-runners/vitest.d.mts +1 -1
  607. package/dist/lib/esm/script-utils/test-runners/vitest.mjs +1 -1
  608. package/dist/lib/esm/script-utils/version.d.mts +1 -1
  609. package/dist/lib/esm/script-utils/version.mjs +1 -1
  610. package/dist/lib/esm/string.d.mts +9 -5
  611. package/dist/lib/esm/string.mjs +14 -14
  612. package/dist/lib/esm/transformers/date-transformer.d.mts +1 -1
  613. package/dist/lib/esm/transformers/date-transformer.mjs +1 -1
  614. package/dist/lib/esm/transformers/duration-transformer.d.mts +1 -1
  615. package/dist/lib/esm/transformers/duration-transformer.mjs +1 -1
  616. package/dist/lib/esm/transformers/group-transformer.d.mts +1 -1
  617. package/dist/lib/esm/transformers/group-transformer.mjs +1 -1
  618. package/dist/lib/esm/transformers/map-transformer.d.mts +1 -1
  619. package/dist/lib/esm/transformers/map-transformer.mjs +1 -1
  620. package/dist/lib/esm/transformers/set-transformer.d.mts +1 -1
  621. package/dist/lib/esm/transformers/set-transformer.mjs +1 -1
  622. package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +1 -1
  623. package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +1 -1
  624. package/dist/lib/esm/transformers/transformer.d.mts +1 -1
  625. package/dist/lib/esm/transformers/transformer.mjs +1 -1
  626. package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +1 -1
  627. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +1 -1
  628. package/dist/lib/esm/transformers/typed-transformer.d.mts +1 -1
  629. package/dist/lib/esm/transformers/typed-transformer.mjs +1 -1
  630. package/dist/lib/esm/two-way-map.d.mts +1 -1
  631. package/dist/lib/esm/two-way-map.mjs +1 -1
  632. package/dist/lib/esm/type-guards.d.mts +1 -1
  633. package/dist/lib/esm/type-guards.mjs +1 -1
  634. package/dist/lib/esm/type.d.mts +1 -1
  635. package/dist/lib/esm/type.mjs +1 -1
  636. package/dist/lib/esm/url.d.mts +1 -1
  637. package/dist/lib/esm/url.mjs +1 -1
  638. package/dist/lib/esm/value-provider.d.mts +7 -4
  639. package/dist/lib/esm/value-provider.mjs +5 -5
  640. package/package.json +1 -1
  641. package/dist/lib/cjs/script-utils/linters/eslint-types/@types/eslint-plugin-modules-newlines.d.cts +0 -14
  642. package/dist/lib/esm/script-utils/linters/eslint-types/@types/eslint-plugin-modules-newlines.d.mts +0 -14
  643. package/script-utils/linters/eslint-types/@types/eslint-plugin-modules-newlines/package.json +0 -4
@@ -299,4 +299,4 @@ export {
299
299
  PluginSettingsTabBase,
300
300
  SAVE_TO_FILE_CONTEXT
301
301
  };
302
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tc2V0dGluZ3MtdGFiLWJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWVwbHkgY291cGxlZCB0byBPYnNpZGlhbiBydW50aW1lOyByZXF1aXJlcyBydW5uaW5nIHZhdWx0IGZvciBtZWFuaW5nZnVsIHRlc3RpbmcuICovXG5cbmltcG9ydCB0eXBlIHsgRGVib3VuY2VyIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUge1xuICBDb25kaXRpb25hbEtleXMsXG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBkZWJvdW5jZSxcbiAgUGx1Z2luU2V0dGluZ1RhYixcbiAgc2V0VG9vbHRpcFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgQXN5bmNFdmVudFJlZiB9IGZyb20gJy4uLy4uL2FzeW5jLWV2ZW50cy50cyc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0tleXMgfSBmcm9tICcuLi8uLi90eXBlLnRzJztcbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcgfSBmcm9tICcuLi9jb21wb25lbnRzL3NldHRpbmctY29tcG9uZW50cy92YWx1ZS1jb21wb25lbnQtd2l0aC1jaGFuZ2UtdHJhY2tpbmcudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB9IGZyb20gJy4uL3ZhbGlkYXRpb24udHMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZWAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzTWFuYWdlckJhc2UgfSBmcm9tICcuL3BsdWdpbi1zZXR0aW5ncy1tYW5hZ2VyLWJhc2UudHMnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0UGx1Z2luLFxuICBFeHRyYWN0UGx1Z2luU2V0dGluZ3MsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXMsXG4gIEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcixcbiAgUGx1Z2luVHlwZXNCYXNlXG59IGZyb20gJy4vcGx1Z2luLXR5cGVzLWJhc2UudHMnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uLy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7XG4gIG5vb3AsXG4gIG5vb3BBc3luY1xufSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tICcuLi8uLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHsgQXN5bmNFdmVudHNDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgZW5zdXJlV3JhcHBlZCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnRzL3NldHRpbmctY29tcG9uZW50LXdyYXBwZXIudHMnO1xuaW1wb3J0IHsgZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUgfSBmcm9tICcuLi9jb21wb25lbnRzL3NldHRpbmctY29tcG9uZW50cy90ZXh0LWJhc2VkLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3NldHRpbmctY29tcG9uZW50cy92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIgfSBmcm9tICcuLi92YWxpZGF0aW9uLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuL3BsdWdpbi1jb250ZXh0LnRzJztcblxuLyoqXG4gKiBBIGNvbnRleHQgcGFzc2VkIHRvIHRoZSB7QGxpbmsgUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZS5zYXZlVG9GaWxlfSBtZXRob2QuXG4gKi9cbmV4cG9ydCBjb25zdCBTQVZFX1RPX0ZJTEVfQ09OVEVYVCA9ICdQbHVnaW5TZXR0aW5nc1RhYic7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYFBsdWdpblNldHRpbmdzVGFiQmFzZS5iaW5kYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kT3B0aW9uczxUPiB7XG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9uQ2hhbmdlZD86IChuZXdWYWx1ZTogUmVhZG9ubHlEZWVwPFQ+LCBvbGRWYWx1ZTogUmVhZG9ubHlEZWVwPFQ+KSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlc2V0IHRoZSBzZXR0aW5nIHdoZW4gdGhlIGNvbXBvbmVudCB2YWx1ZSBpcyBlbXB0eS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqIEFwcGxpY2FibGUgb25seSB0byB0ZXh0LWJhc2VkIGNvbXBvbmVudHMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRSZXNldFNldHRpbmdXaGVuQ29tcG9uZW50SXNFbXB0eT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgcGxhY2Vob2xkZXIgZm9yIGRlZmF1bHQgdmFsdWVzLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICogQXBwbGljYWJsZSBvbmx5IHRvIHRleHQtYmFzZWQgY29tcG9uZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNob3dQbGFjZWhvbGRlckZvckRlZmF1bHRWYWx1ZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIHZhbGlkYXRpb24gbWVzc2FnZSB3aGVuIHRoZSBjb21wb25lbnQgdmFsdWUgaXMgaW52YWxpZC4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VmFsaWRhdGlvbk1lc3NhZ2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV4dGVuZGVkIG9wdGlvbnMgZm9yIGBQbHVnaW5TZXR0aW5nc1RhYkJhc2UuYmluZGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluZE9wdGlvbnNFeHRlbmRlZDxcbiAgUGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsXG4gIFVJVmFsdWUsXG4gIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+XG4+IGV4dGVuZHMgQmluZE9wdGlvbnM8UGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXT4ge1xuICAvKipcbiAgICogQ29udmVydHMgdGhlIFVJIGNvbXBvbmVudCdzIHZhbHVlIGJhY2sgdG8gdGhlIHBsdWdpbiBzZXR0aW5ncyB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHVpVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIHRvIHNldCBvbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyOiAodWlWYWx1ZTogVUlWYWx1ZSkgPT4gUGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXSB8IFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlIHRvIHRoZSB2YWx1ZSB1c2VkIGJ5IHRoZSBVSSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW5TZXR0aW5nc1ZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBVSSBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXI6IChwbHVnaW5TZXR0aW5nc1ZhbHVlOiBSZWFkb25seURlZXA8UGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXT4pID0+IFVJVmFsdWU7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgcGx1Z2luIHNldHRpbmdzIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBQcm92aWRlcyBhIG1ldGhvZCBmb3IgYmluZGluZyB2YWx1ZSBjb21wb25lbnRzIHRvIHBsdWdpbiBzZXR0aW5ncyBhbmQgaGFuZGxpbmcgY2hhbmdlcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblR5cGVzIC0gUGx1Z2luLXNwZWNpZmljIHR5cGVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NUYWJCYXNlPFBsdWdpblR5cGVzIGV4dGVuZHMgUGx1Z2luVHlwZXNCYXNlPiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYiBpcyBvcGVuLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiIGlzIG9wZW4uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZGVib3VuY2UgdGltZW91dCBmb3Igc2F2aW5nIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZGVib3VuY2UgdGltZW91dCBmb3Igc2F2aW5nIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBzYXZlU2V0dGluZ3NEZWJvdW5jZVRpbWVvdXRJbk1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgIGNvbnN0IERFRkFVTFQgPSAyXzAwMDtcbiAgICByZXR1cm4gREVGQVVMVDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGFzeW5jRXZlbnRzQ29tcG9uZW50OiBBc3luY0V2ZW50c0NvbXBvbmVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBzYXZlU2V0dGluZ3NEZWJvdW5jZWQ6IERlYm91bmNlcjxbXSwgdm9pZD47XG5cbiAgcHJpdmF0ZSBnZXQgcGx1Z2luU2V0dGluZ3MoKTogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPiB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MgYXMgRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBvdmVycmlkZSBwbHVnaW46IEV4dHJhY3RQbHVnaW48UGx1Z2luVHlwZXM+KSB7XG4gICAgc3VwZXIocGx1Z2luLmFwcCwgcGx1Z2luKTtcbiAgICBhZGRQbHVnaW5Dc3NDbGFzc2VzKHRoaXMuY29udGFpbmVyRWwsIENzc0NsYXNzLlBsdWdpblNldHRpbmdzVGFiKTtcbiAgICB0aGlzLnNhdmVTZXR0aW5nc0RlYm91bmNlZCA9IGRlYm91bmNlKFxuICAgICAgY29udmVydEFzeW5jVG9TeW5jKCgpID0+IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zYXZlVG9GaWxlKFNBVkVfVE9fRklMRV9DT05URVhUKSksXG4gICAgICB0aGlzLnNhdmVTZXR0aW5nc0RlYm91bmNlVGltZW91dEluTWlsbGlzZWNvbmRzXG4gICAgKTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50ID0gbmV3IEFzeW5jRXZlbnRzQ29tcG9uZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBiaW5kLlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnRcbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBDb25kaXRpb25hbEtleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPiwgVUlWYWx1ZT4sXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPFVJVmFsdWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgb3B0aW9uczogQmluZE9wdGlvbnNFeHRlbmRlZDxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+LCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz5bUHJvcGVydHlOYW1lXT5cbiAgKTogVFZhbHVlQ29tcG9uZW50IHtcbiAgICB0eXBlIFBsdWdpblNldHRpbmdzID0gRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPjtcbiAgICB0eXBlIFByb3BlcnR5VHlwZSA9IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+PiA9IHtcbiAgICAgIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBVSVZhbHVlKTogUHJvcGVydHlUeXBlID0+IHZhbHVlIGFzIFByb3BlcnR5VHlwZSxcbiAgICAgIG9uQ2hhbmdlZDogbm9vcCxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPik6IFVJVmFsdWUgPT4gdmFsdWUgYXMgVUlWYWx1ZSxcbiAgICAgIHNob3VsZFJlc2V0U2V0dGluZ1doZW5Db21wb25lbnRJc0VtcHR5OiB0cnVlLFxuICAgICAgc2hvdWxkU2hvd1BsYWNlaG9sZGVyRm9yRGVmYXVsdFZhbHVlczogdHJ1ZSxcbiAgICAgIHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZTogdHJ1ZVxuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zRXh0OiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+PiA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG5cbiAgICBjb25zdCB2YWxpZGF0b3JFbCA9IGdldFZhbGlkYXRvckNvbXBvbmVudCh2YWx1ZUNvbXBvbmVudCk/LnZhbGlkYXRvckVsO1xuXG4gICAgY29uc3QgdGV4dEJhc2VkQ29tcG9uZW50ID0gZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUodmFsdWVDb21wb25lbnQpO1xuXG4gICAgY29uc3QgcmVhZG9ubHlWYWx1ZSA9IHRoaXMucGx1Z2luU2V0dGluZ3NbcHJvcGVydHlOYW1lXSBhcyBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPjtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSAodGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLmRlZmF1bHRTZXR0aW5ncyBhcyBQbHVnaW5TZXR0aW5ncylbcHJvcGVydHlOYW1lXSBhcyBQcm9wZXJ0eVR5cGU7XG4gICAgY29uc3QgZGVmYXVsdENvbXBvbmVudFZhbHVlID0gb3B0aW9uc0V4dC5wbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXIoZGVmYXVsdFZhbHVlIGFzIFJlYWRvbmx5RGVlcDxQcm9wZXJ0eVR5cGU+KTtcbiAgICB0ZXh0QmFzZWRDb21wb25lbnQ/LnNldFBsYWNlaG9sZGVyVmFsdWUoZGVmYXVsdENvbXBvbmVudFZhbHVlKTtcblxuICAgIGxldCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nO1xuICAgIGxldCB0b29sdGlwRWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHRvb2x0aXBDb250ZW50RWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKHZhbGlkYXRvckVsKSB7XG4gICAgICBjb25zdCB3cmFwcGVyID0gZW5zdXJlV3JhcHBlZCh2YWxpZGF0b3JFbCk7XG4gICAgICB0b29sdGlwRWwgPSB3cmFwcGVyLmNyZWF0ZURpdigpO1xuICAgICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0b29sdGlwRWwsIENzc0NsYXNzLlRvb2x0aXAsIENzc0NsYXNzLlRvb2x0aXBWYWxpZGF0b3IpO1xuICAgICAgdG9vbHRpcENvbnRlbnRFbCA9IHRvb2x0aXBFbC5jcmVhdGVTcGFuKCk7XG4gICAgICBjb25zdCB0b29sdGlwQXJyb3dFbCA9IHRvb2x0aXBFbC5jcmVhdGVEaXYoKTtcbiAgICAgIGFkZFBsdWdpbkNzc0NsYXNzZXModG9vbHRpcEFycm93RWwsIENzc0NsYXNzLlRvb2x0aXBBcnJvdyk7XG4gICAgICB0b29sdGlwRWwuaGlkZSgpO1xuICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0b29sdGlwRWwpO1xuICAgIH1cblxuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQucmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMub24oJ3ZhbGlkYXRpb25NZXNzYWdlQ2hhbmdlZCcsIChhbm90aGVyUHJvcGVydHlOYW1lLCBhbm90aGVyVmFsaWRhdGlvbk1lc3NhZ2UpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgIT09IGFub3RoZXJQcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGFub3RoZXJWYWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG4gICAgfSkpO1xuXG4gICAgbGV0IHNob3VsZEVtcHR5T25CbHVyID0gZmFsc2U7XG4gICAgbGV0IHNob3VsZFJldmVydFRvRGVmYXVsdFZhbHVlT25CbHVyID0gZmFsc2U7XG5cbiAgICBpZiAodGV4dEJhc2VkQ29tcG9uZW50ICYmIG9wdGlvbnNFeHQuc2hvdWxkU2hvd1BsYWNlaG9sZGVyRm9yRGVmYXVsdFZhbHVlcyAmJiBkZWVwRXF1YWwocmVhZG9ubHlWYWx1ZSwgZGVmYXVsdFZhbHVlKSkge1xuICAgICAgdGV4dEJhc2VkQ29tcG9uZW50LmVtcHR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlQ29tcG9uZW50LnNldFZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKHJlYWRvbmx5VmFsdWUpKTtcbiAgICB9XG5cbiAgICBsZXQgc2hvdWxkU2tpcE9uQ2hhbmdlID0gZmFsc2U7XG4gICAgY29uc3QgVVBEQVRFX1ZBTElEQVRPUl9FTF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEwMDtcbiAgICBjb25zdCB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCA9IGRlYm91bmNlKCgpID0+IHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVZhbGlkYXRvckVsKCk7XG4gICAgICB9KTtcbiAgICB9LCBVUERBVEVfVkFMSURBVE9SX0VMX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTKTtcblxuICAgIHZhbHVlQ29tcG9uZW50Lm9uQ2hhbmdlKGFzeW5jICh1aVZhbHVlKSA9PiB7XG4gICAgICBpZiAoc2hvdWxkU2tpcE9uQ2hhbmdlKSB7XG4gICAgICAgIHNob3VsZFNraXBPbkNoYW5nZSA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNob3VsZEVtcHR5T25CbHVyID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5wbHVnaW5TZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgbGV0IG5ld1ZhbHVlOiBQcm9wZXJ0eVR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICBsZXQgc2hvdWxkU2V0UHJvcGVydHkgPSB0cnVlO1xuICAgICAgc2hvdWxkUmV2ZXJ0VG9EZWZhdWx0VmFsdWVPbkJsdXIgPSAhIXRleHRCYXNlZENvbXBvbmVudD8uaXNFbXB0eSgpICYmIG9wdGlvbnNFeHQuc2hvdWxkUmVzZXRTZXR0aW5nV2hlbkNvbXBvbmVudElzRW1wdHk7XG4gICAgICBpZiAoc2hvdWxkUmV2ZXJ0VG9EZWZhdWx0VmFsdWVPbkJsdXIpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBpZiAoaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcihjb252ZXJ0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGNvbnZlcnRlZFZhbHVlLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgICAgIHNob3VsZFNldFByb3BlcnR5ID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBjb252ZXJ0ZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkU2V0UHJvcGVydHkpIHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSBhd2FpdCB0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuc2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCBuZXdWYWx1ZSk7XG4gICAgICAgIGlmICh0ZXh0QmFzZWRDb21wb25lbnQgJiYgb3B0aW9uc0V4dC5zaG91bGRTaG93UGxhY2Vob2xkZXJGb3JEZWZhdWx0VmFsdWVzICYmICF0ZXh0QmFzZWRDb21wb25lbnQuaXNFbXB0eSgpICYmIGRlZXBFcXVhbChuZXdWYWx1ZSwgZGVmYXVsdFZhbHVlKSkge1xuICAgICAgICAgIHNob3VsZEVtcHR5T25CbHVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuICAgICAgaWYgKHNob3VsZFNldFByb3BlcnR5KSB7XG4gICAgICAgIGF3YWl0IG9wdGlvbnNFeHQub25DaGFuZ2VkKG5ld1ZhbHVlIGFzIFJlYWRvbmx5RGVlcDxQcm9wZXJ0eVR5cGU+LCBvbGRWYWx1ZSBhcyBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPik7XG4gICAgICB9XG4gICAgICB0aGlzLnNhdmVTZXR0aW5nc0RlYm91bmNlZCgpO1xuICAgIH0pO1xuXG4gICAgdmFsaWRhdG9yRWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcbiAgICB9KTtcbiAgICB2YWxpZGF0b3JFbD8uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG4gICAgfSk7XG4gICAgdmFsaWRhdG9yRWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSB0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuc2V0dGluZ3NXcmFwcGVyLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdID8/ICcnO1xuICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG5cbiAgICByZXR1cm4gdmFsdWVDb21wb25lbnQ7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVWYWxpZGF0b3JFbCgpOiB2b2lkIHtcbiAgICAgIGlmICghdmFsaWRhdG9yRWw/LmlzQWN0aXZlRWxlbWVudCgpKSB7XG4gICAgICAgIGlmIChzaG91bGRFbXB0eU9uQmx1cikge1xuICAgICAgICAgIHNob3VsZEVtcHR5T25CbHVyID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAoIXRleHRCYXNlZENvbXBvbmVudD8uaXNFbXB0eSgpKSB7XG4gICAgICAgICAgICBzaG91bGRTa2lwT25DaGFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgdGV4dEJhc2VkQ29tcG9uZW50Py5lbXB0eSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRSZXZlcnRUb0RlZmF1bHRWYWx1ZU9uQmx1cikge1xuICAgICAgICAgIHNob3VsZFJldmVydFRvRGVmYXVsdFZhbHVlT25CbHVyID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAodGV4dEJhc2VkQ29tcG9uZW50Py5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIHNob3VsZFNraXBPbkNoYW5nZSA9IHRydWU7XG4gICAgICAgICAgICB2YWx1ZUNvbXBvbmVudC5zZXRWYWx1ZShkZWZhdWx0Q29tcG9uZW50VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXZhbGlkYXRvckVsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkYXRpb25NZXNzYWdlID09PSAnJykge1xuICAgICAgICB2YWxpZGF0b3JFbC5zZXRDdXN0b21WYWxpZGl0eSgnJyk7XG4gICAgICAgIHZhbGlkYXRvckVsLmNoZWNrVmFsaWRpdHkoKTtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSB2YWxpZGF0b3JFbC52YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgIH1cblxuICAgICAgdmFsaWRhdG9yRWwuc2V0Q3VzdG9tVmFsaWRpdHkodmFsaWRhdGlvbk1lc3NhZ2UpO1xuICAgICAgaWYgKG9wdGlvbnNFeHQuc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIGlmICh0b29sdGlwQ29udGVudEVsKSB7XG4gICAgICAgICAgdG9vbHRpcENvbnRlbnRFbC50ZXh0Q29udGVudCA9IHZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgICB9XG4gICAgICAgIHRvb2x0aXBFbD8udG9nZ2xlKCEhdmFsaWRhdGlvbk1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIGlmICh2YWxpZGF0aW9uTWVzc2FnZSkge1xuICAgICAgICBzZXRUb29sdGlwKHZhbGlkYXRvckVsLCB2YWxpZGF0aW9uTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZGlzcGxheSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRhaW5lckVsLmVtcHR5KCk7XG4gICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LmxvYWQoKTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LnJlZ2lzdGVyQXN5bmNFdmVudCh0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIub24oJ2xvYWRTZXR0aW5ncycsIHRoaXMub25Mb2FkU2V0dGluZ3MuYmluZCh0aGlzKSkpO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQucmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5vbignc2F2ZVNldHRpbmdzJywgdGhpcy5vblNhdmVTZXR0aW5ncy5iaW5kKHRoaXMpKSk7XG4gIH1cblxuICAvKipcbiAgICogSGlkZXMgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgaGlkZSgpOiB2b2lkIHtcbiAgICBzdXBlci5oaWRlKCk7XG4gICAgdGhpcy5zYXZlU2V0dGluZ3NEZWJvdW5jZWQuY2FuY2VsKCk7XG4gICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC51bmxvYWQoKTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LmxvYWQoKTtcbiAgICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiB0aGlzLmhpZGVBc3luYygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3luYyBhY3Rpb25zIHRvIHBlcmZvcm0gd2hlbiB0aGUgc2V0dGluZ3MgdGFiIGlzIGJlaW5nIGhpZGRlbi5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyB0YWIgaXMgaGlkZGVuLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhpZGVBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuc2F2ZVRvRmlsZShTQVZFX1RPX0ZJTEVfQ09OVEVYVCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLmFwcC5zZXR0aW5nLm9wZW5UYWIodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gX2xvYWRlZFNldHRpbmdzIC0gVGhlIGxvYWRlZCBzZXR0aW5ncy5cbiAgICogQHBhcmFtIF9pc0luaXRpYWxMb2FkIC0gV2hldGhlciB0aGUgc2V0dGluZ3MgYXJlIGJlaW5nIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbkxvYWRTZXR0aW5ncyhfbG9hZGVkU2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sIF9pc0luaXRpYWxMb2FkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5kaXNwbGF5KCk7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV2YWxpZGF0ZXMgdGhlIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSByZXZhbGlkYXRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyByZXZhbGlkYXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlcyA9IGF3YWl0IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5yZXZhbGlkYXRlKCk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVWYWxpZGF0aW9ucyh2YWxpZGF0aW9uTWVzc2FnZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbihcbiAgICBuYW1lOiAndmFsaWRhdGlvbk1lc3NhZ2VDaGFuZ2VkJyxcbiAgICBjYWxsYmFjazogKFxuICAgICAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nXG4gICAgKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICAgIHRoaXNBcmc/OiB1bmtub3duXG4gICk6IEFzeW5jRXZlbnRSZWY7XG4gIHByaXZhdGUgb248QXJncyBleHRlbmRzIHVua25vd25bXT4oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5hc3luY0V2ZW50cy5vbihuYW1lLCBjYWxsYmFjaywgdGhpc0FyZyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uU2F2ZVNldHRpbmdzKFxuICAgIG5ld1NldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LFxuICAgIF9vbGRTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICBjb250ZXh0OiB1bmtub3duXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChjb250ZXh0ID09PSBTQVZFX1RPX0ZJTEVfQ09OVEVYVCkge1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVWYWxpZGF0aW9ucyhuZXdTZXR0aW5ncy52YWxpZGF0aW9uTWVzc2FnZXMgYXMgUmVjb3JkPEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+LCBzdHJpbmc+KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlVmFsaWRhdGlvbnModmFsaWRhdGlvbk1lc3NhZ2VzOiBSZWNvcmQ8RXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4sIHN0cmluZz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbGlkYXRpb25NZXNzYWdlXSBvZiBPYmplY3QuZW50cmllcyh2YWxpZGF0aW9uTWVzc2FnZXMpKSB7XG4gICAgICBhd2FpdCB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LmFzeW5jRXZlbnRzLnRyaWdnZXJBc3luYygndmFsaWRhdGlvbk1lc3NhZ2VDaGFuZ2VkJywgcHJvcGVydHlOYW1lLCB2YWxpZGF0aW9uTWVzc2FnZSk7XG4gICAgfVxuICB9XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQWdCUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZ0JBQWdCO0FBQ3pCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxxQkFBcUI7QUFDOUIsU0FBUyxrQ0FBa0M7QUFDM0MsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUyxpQ0FBaUM7QUFDMUMsU0FBUywyQkFBMkI7QUFLN0IsTUFBTSx1QkFB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
302
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tc2V0dGluZ3MtdGFiLWJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgYmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgcGx1Z2luIHNldHRpbmcgdGFicyBpbiBPYnNpZGlhbi5cbiAqIEl0IHByb3ZpZGVzIGEgdXRpbGl0eSBtZXRob2QgdG8gYmluZCB2YWx1ZSBjb21wb25lbnRzIHRvIHBsdWdpbiBzZXR0aW5ncyBhbmQgaGFuZGxlIGNoYW5nZXMuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUgeyBEZWJvdW5jZXIgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gIENvbmRpdGlvbmFsS2V5cyxcbiAgUHJvbWlzYWJsZSxcbiAgUmVhZG9ubHlEZWVwXG59IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIGRlYm91bmNlLFxuICBQbHVnaW5TZXR0aW5nVGFiLFxuICBzZXRUb29sdGlwXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBBc3luY0V2ZW50UmVmIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nS2V5cyB9IGZyb20gJy4uLy4uL3R5cGUudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZyB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnRzL3ZhbHVlLWNvbXBvbmVudC13aXRoLWNoYW5nZS10cmFja2luZy50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBQbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlYCB0byB1c2UgaXQgaW4gdGhlIHRzZG9jcy5cbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZSB9IGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLW1hbmFnZXItYmFzZS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW4sXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lcyxcbiAgRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyLFxuICBQbHVnaW5UeXBlc0Jhc2Vcbn0gZnJvbSAnLi9wbHVnaW4tdHlwZXMtYmFzZS50cyc7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHlcbn0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHtcbiAgbm9vcCxcbiAgbm9vcEFzeW5jXG59IGZyb20gJy4uLy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJy4uLy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQgeyBBc3luY0V2ZW50c0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBlbnN1cmVXcmFwcGVkIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zZXR0aW5nLWNvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnQtd3JhcHBlci50cyc7XG5pbXBvcnQgeyBnZXRUZXh0QmFzZWRDb21wb25lbnRWYWx1ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnRzL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnRzL3ZhbGlkYXRvci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB9IGZyb20gJy4uL3ZhbGlkYXRpb24udHMnO1xuaW1wb3J0IHsgYWRkUGx1Z2luQ3NzQ2xhc3NlcyB9IGZyb20gJy4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIEEgY29udGV4dCBwYXNzZWQgdG8gdGhlIHtAbGluayBQbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlLnNhdmVUb0ZpbGV9IG1ldGhvZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNBVkVfVE9fRklMRV9DT05URVhUID0gJ1BsdWdpblNldHRpbmdzVGFiJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgUGx1Z2luU2V0dGluZ3NUYWJCYXNlLmJpbmRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBjaGFuZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgb25DaGFuZ2VkPzogKG5ld1ZhbHVlOiBSZWFkb25seURlZXA8VD4sIG9sZFZhbHVlOiBSZWFkb25seURlZXA8VD4pID0+IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVzZXQgdGhlIHNldHRpbmcgd2hlbiB0aGUgY29tcG9uZW50IHZhbHVlIGlzIGVtcHR5LiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICogQXBwbGljYWJsZSBvbmx5IHRvIHRleHQtYmFzZWQgY29tcG9uZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJlc2V0U2V0dGluZ1doZW5Db21wb25lbnRJc0VtcHR5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBwbGFjZWhvbGRlciBmb3IgZGVmYXVsdCB2YWx1ZXMuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKiBBcHBsaWNhYmxlIG9ubHkgdG8gdGV4dC1iYXNlZCBjb21wb25lbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1BsYWNlaG9sZGVyRm9yRGVmYXVsdFZhbHVlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlIHdoZW4gdGhlIGNvbXBvbmVudCB2YWx1ZSBpcyBpbnZhbGlkLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXh0ZW5kZWQgb3B0aW9ucyBmb3IgYFBsdWdpblNldHRpbmdzVGFiQmFzZS5iaW5kYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kT3B0aW9uc0V4dGVuZGVkPFxuICBQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdCxcbiAgVUlWYWx1ZSxcbiAgUHJvcGVydHlOYW1lIGV4dGVuZHMgU3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz5cbj4gZXh0ZW5kcyBCaW5kT3B0aW9uczxQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdPiB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgVUkgY29tcG9uZW50J3MgdmFsdWUgYmFjayB0byB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdWlWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh1aVZhbHVlOiBVSVZhbHVlKSA9PiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdIHwgVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXI7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUgdG8gdGhlIHZhbHVlIHVzZWQgYnkgdGhlIFVJIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpblNldHRpbmdzVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIFVJIGNvbXBvbmVudC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHBsdWdpblNldHRpbmdzVmFsdWU6IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdPikgPT4gVUlWYWx1ZTtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBwbHVnaW4gc2V0dGluZ3MgdGFicyBpbiBPYnNpZGlhbi5cbiAqIFByb3ZpZGVzIGEgbWV0aG9kIGZvciBiaW5kaW5nIHZhbHVlIGNvbXBvbmVudHMgdG8gcGx1Z2luIHNldHRpbmdzIGFuZCBoYW5kbGluZyBjaGFuZ2VzLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luVHlwZXMgLSBQbHVnaW4tc3BlY2lmaWMgdHlwZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8UGx1Z2luVHlwZXMgZXh0ZW5kcyBQbHVnaW5UeXBlc0Jhc2U+IGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiIGlzIG9wZW4uXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIgaXMgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc09wZW47XG4gIH1cblxuICAvKipcbiAgICogQSBkZWJvdW5jZSB0aW1lb3V0IGZvciBzYXZpbmcgc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBkZWJvdW5jZSB0aW1lb3V0IGZvciBzYXZpbmcgc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNhdmVTZXR0aW5nc0RlYm91bmNlVGltZW91dEluTWlsbGlzZWNvbmRzKCk6IG51bWJlciB7XG4gICAgY29uc3QgREVGQVVMVCA9IDJfMDAwO1xuICAgIHJldHVybiBERUZBVUxUO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXN5bmNFdmVudHNDb21wb25lbnQ6IEFzeW5jRXZlbnRzQ29tcG9uZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IHNhdmVTZXR0aW5nc0RlYm91bmNlZDogRGVib3VuY2VyPFtdLCB2b2lkPjtcblxuICBwcml2YXRlIGdldCBwbHVnaW5TZXR0aW5ncygpOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+IHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyBhcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4uXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIHBsdWdpbjogRXh0cmFjdFBsdWdpbjxQbHVnaW5UeXBlcz4pIHtcbiAgICBzdXBlcihwbHVnaW4uYXBwLCBwbHVnaW4pO1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXModGhpcy5jb250YWluZXJFbCwgQ3NzQ2xhc3MuUGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VkID0gZGVib3VuY2UoXG4gICAgICBjb252ZXJ0QXN5bmNUb1N5bmMoKCkgPT4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNhdmVUb0ZpbGUoU0FWRV9UT19GSUxFX0NPTlRFWFQpKSxcbiAgICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VUaW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICApO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQgPSBuZXcgQXN5bmNFdmVudHNDb21wb25lbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kcyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFVJVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgb2YgdGhlIFVJIGNvbXBvbmVudC5cbiAgICogQHR5cGVQYXJhbSBUVmFsdWVDb21wb25lbnQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBiaW5kaW5nIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYmluZDxcbiAgICBVSVZhbHVlLFxuICAgIFRWYWx1ZUNvbXBvbmVudFxuICA+KFxuICAgIHZhbHVlQ29tcG9uZW50OiBUVmFsdWVDb21wb25lbnQgJiBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPixcbiAgICBwcm9wZXJ0eU5hbWU6IENvbmRpdGlvbmFsS2V5czxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+LCBVSVZhbHVlPixcbiAgICBvcHRpb25zPzogQmluZE9wdGlvbnM8VUlWYWx1ZT5cbiAgKTogVFZhbHVlQ29tcG9uZW50O1xuICAvKipcbiAgICogQmluZHMgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gYmluZC5cbiAgICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnQsXG4gICAgUHJvcGVydHlOYW1lIGV4dGVuZHMgU3RyaW5nS2V5czxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PlxuICA+KFxuICAgIHZhbHVlQ29tcG9uZW50OiBUVmFsdWVDb21wb25lbnQgJiBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPixcbiAgICBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZSxcbiAgICBvcHRpb25zOiBCaW5kT3B0aW9uc0V4dGVuZGVkPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4sIFVJVmFsdWUsIFByb3BlcnR5TmFtZT5cbiAgKTogVFZhbHVlQ29tcG9uZW50O1xuICAvKipcbiAgICogQmluZHMgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSB2YWx1ZUNvbXBvbmVudCAtIFRoZSB2YWx1ZSBjb21wb25lbnQgdG8gYmluZC5cbiAgICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnQsXG4gICAgUHJvcGVydHlOYW1lIGV4dGVuZHMgU3RyaW5nS2V5czxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PlxuICA+KFxuICAgIHZhbHVlQ29tcG9uZW50OiBUVmFsdWVDb21wb25lbnQgJiBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZzxVSVZhbHVlPixcbiAgICBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZSxcbiAgICBvcHRpb25zPzogQmluZE9wdGlvbnM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPltQcm9wZXJ0eU5hbWVdPlxuICApOiBUVmFsdWVDb21wb25lbnQge1xuICAgIHR5cGUgUGx1Z2luU2V0dGluZ3MgPSBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+O1xuICAgIHR5cGUgUHJvcGVydHlUeXBlID0gUGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXTtcbiAgICBjb25zdCBERUZBVUxUX09QVElPTlM6IFJlcXVpcmVkPEJpbmRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5TmFtZT4+ID0ge1xuICAgICAgY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyOiAodmFsdWU6IFVJVmFsdWUpOiBQcm9wZXJ0eVR5cGUgPT4gdmFsdWUgYXMgUHJvcGVydHlUeXBlLFxuICAgICAgb25DaGFuZ2VkOiBub29wLFxuICAgICAgcGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyOiAodmFsdWU6IFJlYWRvbmx5RGVlcDxQcm9wZXJ0eVR5cGU+KTogVUlWYWx1ZSA9PiB2YWx1ZSBhcyBVSVZhbHVlLFxuICAgICAgc2hvdWxkUmVzZXRTZXR0aW5nV2hlbkNvbXBvbmVudElzRW1wdHk6IHRydWUsXG4gICAgICBzaG91bGRTaG93UGxhY2Vob2xkZXJGb3JEZWZhdWx0VmFsdWVzOiB0cnVlLFxuICAgICAgc2hvdWxkU2hvd1ZhbGlkYXRpb25NZXNzYWdlOiB0cnVlXG4gICAgfTtcblxuICAgIGNvbnN0IG9wdGlvbnNFeHQ6IFJlcXVpcmVkPEJpbmRPcHRpb25zRXh0ZW5kZWQ8UGx1Z2luU2V0dGluZ3MsIFVJVmFsdWUsIFByb3BlcnR5TmFtZT4+ID0geyAuLi5ERUZBVUxUX09QVElPTlMsIC4uLm9wdGlvbnMgfTtcblxuICAgIGNvbnN0IHZhbGlkYXRvckVsID0gZ2V0VmFsaWRhdG9yQ29tcG9uZW50KHZhbHVlQ29tcG9uZW50KT8udmFsaWRhdG9yRWw7XG5cbiAgICBjb25zdCB0ZXh0QmFzZWRDb21wb25lbnQgPSBnZXRUZXh0QmFzZWRDb21wb25lbnRWYWx1ZSh2YWx1ZUNvbXBvbmVudCk7XG5cbiAgICBjb25zdCByZWFkb25seVZhbHVlID0gdGhpcy5wbHVnaW5TZXR0aW5nc1twcm9wZXJ0eU5hbWVdIGFzIFJlYWRvbmx5RGVlcDxQcm9wZXJ0eVR5cGU+O1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9ICh0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuZGVmYXVsdFNldHRpbmdzIGFzIFBsdWdpblNldHRpbmdzKVtwcm9wZXJ0eU5hbWVdIGFzIFByb3BlcnR5VHlwZTtcbiAgICBjb25zdCBkZWZhdWx0Q29tcG9uZW50VmFsdWUgPSBvcHRpb25zRXh0LnBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcihkZWZhdWx0VmFsdWUgYXMgUmVhZG9ubHlEZWVwPFByb3BlcnR5VHlwZT4pO1xuICAgIHRleHRCYXNlZENvbXBvbmVudD8uc2V0UGxhY2Vob2xkZXJWYWx1ZShkZWZhdWx0Q29tcG9uZW50VmFsdWUpO1xuXG4gICAgbGV0IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7XG4gICAgbGV0IHRvb2x0aXBFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgdG9vbHRpcENvbnRlbnRFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBpZiAodmFsaWRhdG9yRWwpIHtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBlbnN1cmVXcmFwcGVkKHZhbGlkYXRvckVsKTtcbiAgICAgIHRvb2x0aXBFbCA9IHdyYXBwZXIuY3JlYXRlRGl2KCk7XG4gICAgICBhZGRQbHVnaW5Dc3NDbGFzc2VzKHRvb2x0aXBFbCwgQ3NzQ2xhc3MuVG9vbHRpcCwgQ3NzQ2xhc3MuVG9vbHRpcFZhbGlkYXRvcik7XG4gICAgICB0b29sdGlwQ29udGVudEVsID0gdG9vbHRpcEVsLmNyZWF0ZVNwYW4oKTtcbiAgICAgIGNvbnN0IHRvb2x0aXBBcnJvd0VsID0gdG9vbHRpcEVsLmNyZWF0ZURpdigpO1xuICAgICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0b29sdGlwQXJyb3dFbCwgQ3NzQ2xhc3MuVG9vbHRpcEFycm93KTtcbiAgICAgIHRvb2x0aXBFbC5oaWRlKCk7XG4gICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRvb2x0aXBFbCk7XG4gICAgfVxuXG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5yZWdpc3RlckFzeW5jRXZlbnQodGhpcy5vbigndmFsaWRhdGlvbk1lc3NhZ2VDaGFuZ2VkJywgKGFub3RoZXJQcm9wZXJ0eU5hbWUsIGFub3RoZXJWYWxpZGF0aW9uTWVzc2FnZSkgPT4ge1xuICAgICAgaWYgKHByb3BlcnR5TmFtZSAhPT0gYW5vdGhlclByb3BlcnR5TmFtZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gYW5vdGhlclZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcbiAgICB9KSk7XG5cbiAgICBsZXQgc2hvdWxkRW1wdHlPbkJsdXIgPSBmYWxzZTtcbiAgICBsZXQgc2hvdWxkUmV2ZXJ0VG9EZWZhdWx0VmFsdWVPbkJsdXIgPSBmYWxzZTtcblxuICAgIGlmICh0ZXh0QmFzZWRDb21wb25lbnQgJiYgb3B0aW9uc0V4dC5zaG91bGRTaG93UGxhY2Vob2xkZXJGb3JEZWZhdWx0VmFsdWVzICYmIGRlZXBFcXVhbChyZWFkb25seVZhbHVlLCBkZWZhdWx0VmFsdWUpKSB7XG4gICAgICB0ZXh0QmFzZWRDb21wb25lbnQuZW1wdHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVDb21wb25lbnQuc2V0VmFsdWUob3B0aW9uc0V4dC5wbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXIocmVhZG9ubHlWYWx1ZSkpO1xuICAgIH1cblxuICAgIGxldCBzaG91bGRTa2lwT25DaGFuZ2UgPSBmYWxzZTtcbiAgICBjb25zdCBVUERBVEVfVkFMSURBVE9SX0VMX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMTAwO1xuICAgIGNvbnN0IHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkID0gZGVib3VuY2UoKCkgPT4ge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdXBkYXRlVmFsaWRhdG9yRWwoKTtcbiAgICAgIH0pO1xuICAgIH0sIFVQREFURV9WQUxJREFUT1JfRUxfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMpO1xuXG4gICAgdmFsdWVDb21wb25lbnQub25DaGFuZ2UoYXN5bmMgKHVpVmFsdWUpID0+IHtcbiAgICAgIGlmIChzaG91bGRTa2lwT25DaGFuZ2UpIHtcbiAgICAgICAgc2hvdWxkU2tpcE9uQ2hhbmdlID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2hvdWxkRW1wdHlPbkJsdXIgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnBsdWdpblNldHRpbmdzW3Byb3BlcnR5TmFtZV07XG4gICAgICBsZXQgbmV3VmFsdWU6IFByb3BlcnR5VHlwZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgIGxldCBzaG91bGRTZXRQcm9wZXJ0eSA9IHRydWU7XG4gICAgICBzaG91bGRSZXZlcnRUb0RlZmF1bHRWYWx1ZU9uQmx1ciA9ICEhdGV4dEJhc2VkQ29tcG9uZW50Py5pc0VtcHR5KCkgJiYgb3B0aW9uc0V4dC5zaG91bGRSZXNldFNldHRpbmdXaGVuQ29tcG9uZW50SXNFbXB0eTtcbiAgICAgIGlmIChzaG91bGRSZXZlcnRUb0RlZmF1bHRWYWx1ZU9uQmx1cikge1xuICAgICAgICBuZXdWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZFZhbHVlID0gb3B0aW9uc0V4dC5jb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXIodWlWYWx1ZSk7XG4gICAgICAgIGlmIChpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyKGNvbnZlcnRlZFZhbHVlKSkge1xuICAgICAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gY29udmVydGVkVmFsdWUudmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgICAgc2hvdWxkU2V0UHJvcGVydHkgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IGNvbnZlcnRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRTZXRQcm9wZXJ0eSkge1xuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGF3YWl0IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgaWYgKHRleHRCYXNlZENvbXBvbmVudCAmJiBvcHRpb25zRXh0LnNob3VsZFNob3dQbGFjZWhvbGRlckZvckRlZmF1bHRWYWx1ZXMgJiYgIXRleHRCYXNlZENvbXBvbmVudC5pc0VtcHR5KCkgJiYgZGVlcEVxdWFsKG5ld1ZhbHVlLCBkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgICAgc2hvdWxkRW1wdHlPbkJsdXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG4gICAgICBpZiAoc2hvdWxkU2V0UHJvcGVydHkpIHtcbiAgICAgICAgYXdhaXQgb3B0aW9uc0V4dC5vbkNoYW5nZWQobmV3VmFsdWUgYXMgUmVhZG9ubHlEZWVwPFByb3BlcnR5VHlwZT4sIG9sZFZhbHVlIGFzIFJlYWRvbmx5RGVlcDxQcm9wZXJ0eVR5cGU+KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VkKCk7XG4gICAgfSk7XG5cbiAgICB2YWxpZGF0b3JFbD8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuICAgIH0pO1xuICAgIHZhbGlkYXRvckVsPy5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4ge1xuICAgICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcbiAgICB9KTtcbiAgICB2YWxpZGF0b3JFbD8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zZXR0aW5nc1dyYXBwZXIudmFsaWRhdGlvbk1lc3NhZ2VzW3Byb3BlcnR5TmFtZV0gPz8gJyc7XG4gICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcblxuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudDtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbGlkYXRvckVsKCk6IHZvaWQge1xuICAgICAgaWYgKCF2YWxpZGF0b3JFbD8uaXNBY3RpdmVFbGVtZW50KCkpIHtcbiAgICAgICAgaWYgKHNob3VsZEVtcHR5T25CbHVyKSB7XG4gICAgICAgICAgc2hvdWxkRW1wdHlPbkJsdXIgPSBmYWxzZTtcblxuICAgICAgICAgIGlmICghdGV4dEJhc2VkQ29tcG9uZW50Py5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIHNob3VsZFNraXBPbkNoYW5nZSA9IHRydWU7XG4gICAgICAgICAgICB0ZXh0QmFzZWRDb21wb25lbnQ/LmVtcHR5KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHNob3VsZFJldmVydFRvRGVmYXVsdFZhbHVlT25CbHVyKSB7XG4gICAgICAgICAgc2hvdWxkUmV2ZXJ0VG9EZWZhdWx0VmFsdWVPbkJsdXIgPSBmYWxzZTtcblxuICAgICAgICAgIGlmICh0ZXh0QmFzZWRDb21wb25lbnQ/LmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgc2hvdWxkU2tpcE9uQ2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhbHVlQ29tcG9uZW50LnNldFZhbHVlKGRlZmF1bHRDb21wb25lbnRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdmFsaWRhdG9yRWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGlvbk1lc3NhZ2UgPT09ICcnKSB7XG4gICAgICAgIHZhbGlkYXRvckVsLnNldEN1c3RvbVZhbGlkaXR5KCcnKTtcbiAgICAgICAgdmFsaWRhdG9yRWwuY2hlY2tWYWxpZGl0eSgpO1xuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IHZhbGlkYXRvckVsLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICB2YWxpZGF0b3JFbC5zZXRDdXN0b21WYWxpZGl0eSh2YWxpZGF0aW9uTWVzc2FnZSk7XG4gICAgICBpZiAob3B0aW9uc0V4dC5zaG91bGRTaG93VmFsaWRhdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHRvb2x0aXBDb250ZW50RWwpIHtcbiAgICAgICAgICB0b29sdGlwQ29udGVudEVsLnRleHRDb250ZW50ID0gdmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgdG9vbHRpcEVsPy50b2dnbGUoISF2YWxpZGF0aW9uTWVzc2FnZSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHNldFRvb2x0aXAodmFsaWRhdG9yRWwsIHZhbGlkYXRpb25NZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGFpbmVyRWwuZW1wdHkoKTtcbiAgICB0aGlzLl9pc09wZW4gPSB0cnVlO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQubG9hZCgpO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQucmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5vbignbG9hZFNldHRpbmdzJywgdGhpcy5vbkxvYWRTZXR0aW5ncy5iaW5kKHRoaXMpKSk7XG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5yZWdpc3RlckFzeW5jRXZlbnQodGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLm9uKCdzYXZlU2V0dGluZ3MnLCB0aGlzLm9uU2F2ZVNldHRpbmdzLmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBoaWRlKCk6IHZvaWQge1xuICAgIHN1cGVyLmhpZGUoKTtcbiAgICB0aGlzLnNhdmVTZXR0aW5nc0RlYm91bmNlZC5jYW5jZWwoKTtcbiAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LnVubG9hZCgpO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQubG9hZCgpO1xuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHRoaXMuaGlkZUFzeW5jKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzeW5jIGFjdGlvbnMgdG8gcGVyZm9ybSB3aGVuIHRoZSBzZXR0aW5ncyB0YWIgaXMgYmVpbmcgaGlkZGVuLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIHRhYiBpcyBoaWRkZW4uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGlkZUFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zYXZlVG9GaWxlKFNBVkVfVE9fRklMRV9DT05URVhUKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICovXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwLnNldHRpbmcub3BlblRhYih0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIHNldHRpbmdzIGFyZSBsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBfbG9hZGVkU2V0dGluZ3MgLSBUaGUgbG9hZGVkIHNldHRpbmdzLlxuICAgKiBAcGFyYW0gX2lzSW5pdGlhbExvYWQgLSBXaGV0aGVyIHRoZSBzZXR0aW5ncyBhcmUgYmVpbmcgbG9hZGVkIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTG9hZFNldHRpbmdzKF9sb2FkZWRTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPiwgX2lzSW5pdGlhbExvYWQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlcyB0aGUgc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHJldmFsaWRhdGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHJldmFsaWRhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2VzID0gYXdhaXQgdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnJldmFsaWRhdGUoKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVZhbGlkYXRpb25zKHZhbGlkYXRpb25NZXNzYWdlcyk7XG4gIH1cblxuICBwcml2YXRlIG9uKFxuICAgIG5hbWU6ICd2YWxpZGF0aW9uTWVzc2FnZUNoYW5nZWQnLFxuICAgIGNhbGxiYWNrOiAoXG4gICAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmdcbiAgICApID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZjtcbiAgcHJpdmF0ZSBvbjxBcmdzIGV4dGVuZHMgdW5rbm93bltdPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY2FsbGJhY2s6ICguLi5hcmdzOiBBcmdzKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICAgIHRoaXNBcmc/OiB1bmtub3duXG4gICk6IEFzeW5jRXZlbnRSZWYge1xuICAgIHJldHVybiB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LmFzeW5jRXZlbnRzLm9uKG5hbWUsIGNhbGxiYWNrLCB0aGlzQXJnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25TYXZlU2V0dGluZ3MoXG4gICAgbmV3U2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sXG4gICAgX29sZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LFxuICAgIGNvbnRleHQ6IHVua25vd25cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNvbnRleHQgPT09IFNBVkVfVE9fRklMRV9DT05URVhUKSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVZhbGlkYXRpb25zKG5ld1NldHRpbmdzLnZhbGlkYXRpb25NZXNzYWdlcyBhcyBSZWNvcmQ8RXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4sIHN0cmluZz4pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVWYWxpZGF0aW9ucyh2YWxpZGF0aW9uTWVzc2FnZXM6IFJlY29yZDxFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPiwgc3RyaW5nPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgdmFsaWRhdGlvbk1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKHZhbGlkYXRpb25NZXNzYWdlcykpIHtcbiAgICAgIGF3YWl0IHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQuYXN5bmNFdmVudHMudHJpZ2dlckFzeW5jKCd2YWxpZGF0aW9uTWVzc2FnZUNoYW5nZWQnLCBwcm9wZXJ0eU5hbWUsIHZhbGlkYXRpb25NZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBZ0JQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxnQkFBZ0I7QUFDekI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLGtDQUFrQztBQUMzQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGlDQUFpQztBQUMxQyxTQUFTLDJCQUEyQjtBQUs3QixNQUFNLHVCQUF1QjtBQTREN0IsTUFBZSw4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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Plugin settings wrapper.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Types helpers for plugin types.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * This module provides utility functions for managing Obsidian plugins,
5
5
  * including displaying error messages, disabling plugins, and reloading them.
@@ -36,4 +36,4 @@ export {
36
36
  reloadPlugin,
37
37
  showErrorAndDisablePlugin
38
38
  };
39
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIE9ic2lkaWFuIHBsdWdpbnMsXG4gKiBpbmNsdWRpbmcgZGlzcGxheWluZyBlcnJvciBtZXNzYWdlcywgZGlzYWJsaW5nIHBsdWdpbnMsIGFuZCByZWxvYWRpbmcgdGhlbS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgTm90aWNlIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3IudHMnO1xuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpbihwbHVnaW46IFBsdWdpbiwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIG5ldyBOb3RpY2UobWVzc2FnZSk7XG4gIHByaW50RXJyb3IobmV3IEVycm9yKG1lc3NhZ2UpKTtcbiAgYXdhaXQgcGx1Z2luLmFwcC5wbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luLm1hbmlmZXN0LmlkKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLFNBQVMsY0FBYztBQUV2QixTQUFTLGtCQUFrQjtBQVEzQixlQUFzQixhQUFhLFFBQStCO0FBQ2hFLFFBQU0sVUFBVSxPQUFPLElBQUk7QUFDM0IsUUFBTSxXQUFXLE9BQU8sU0FBUztBQUNqQyxRQUFNLFFBQVEsY0FBYyxRQUFRO0FBQ3BDLFFBQU0sUUFBUSxhQUFhLFFBQVE7QUFDckM7QUFTQSxlQUFzQiwwQkFBMEIsUUFBZ0IsU0FBZ0M7QUFDOUYsTUFBSSxPQUFPLE9BQU87QUFDbEIsYUFBVyxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQzdCLFFBQU0sT0FBTyxJQUFJLFFBQVEsY0FBYyxPQUFPLFNBQVMsRUFBRTtBQUMzRDsiLAogICJuYW1lcyI6IFtdCn0K
39
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgT2JzaWRpYW4gcGx1Z2lucyxcbiAqIGluY2x1ZGluZyBkaXNwbGF5aW5nIGVycm9yIG1lc3NhZ2VzLCBkaXNhYmxpbmcgcGx1Z2lucywgYW5kIHJlbG9hZGluZyB0aGVtLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvci50cyc7XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRQbHVnaW4ocGx1Z2luOiBQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogUGx1Z2luLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbmV3IE5vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0EsU0FBUyxjQUFjO0FBRXZCLFNBQVMsa0JBQWtCO0FBUTNCLGVBQXNCLGFBQWEsUUFBK0I7QUFDaEUsUUFBTSxVQUFVLE9BQU8sSUFBSTtBQUMzQixRQUFNLFdBQVcsT0FBTyxTQUFTO0FBQ2pDLFFBQU0sUUFBUSxjQUFjLFFBQVE7QUFDcEMsUUFBTSxRQUFRLGFBQWEsUUFBUTtBQUNyQztBQVNBLGVBQXNCLDBCQUEwQixRQUFnQixTQUFnQztBQUM5RixNQUFJLE9BQU8sT0FBTztBQUNsQixhQUFXLElBQUksTUFBTSxPQUFPLENBQUM7QUFDN0IsUUFBTSxPQUFPLElBQUksUUFBUSxjQUFjLE9BQU8sU0FBUyxFQUFFO0FBQzNEOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Contains utility functions for enqueuing and processing functions in Obsidian.
5
5
  */
@@ -96,4 +96,4 @@ export {
96
96
  addToQueueAndWait,
97
97
  flushQueue
98
98
  };
99
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBlbnF1ZXVpbmcgYW5kIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGluIE9ic2lkaWFuLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHR5cGUgeyBWYWx1ZVdyYXBwZXIgfSBmcm9tICcuL2FwcC50cyc7XG5cbmltcG9ydCB7XG4gIGFib3J0U2lnbmFsQW55LFxuICBhYm9ydFNpZ25hbE5ldmVyXG59IGZyb20gJy4uL2Fib3J0LWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHtcbiAgYWRkRXJyb3JIYW5kbGVyLFxuICBpbnZva2VBc3luY1NhZmVseVxufSBmcm9tICcuLi9hc3luYy50cyc7XG5pbXBvcnQgeyBnZXRTdGFja1RyYWNlIH0gZnJvbSAnLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSB9IGZyb20gJy4vYXBwLnRzJztcbmltcG9ydCB7IHJ1bldpdGhUaW1lb3V0Tm90aWNlIH0gZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgaW52b2tlQXN5bmNBbmRMb2cgfSBmcm9tICcuL2xvZ2dlci50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIHtAbGluayBhZGRUb1F1ZXVlQW5kV2FpdH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkVG9RdWV1ZUFuZFdhaXRQYXJhbXMge1xuICAvKipcbiAgICogT3B0aW9uYWwgYWJvcnQgc2lnbmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBhZGQuXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWV9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZFRvUXVldWVQYXJhbXMge1xuICAvKipcbiAgICogT3B0aW9uYWwgYWJvcnQgc2lnbmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBhZGQuXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFF1ZXVlIHtcbiAgaXRlbXM6IFF1ZXVlSXRlbVtdO1xuICBwcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5pbnRlcmZhY2UgUXVldWVJdGVtIHtcbiAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsO1xuICBvcGVyYXRpb25Gbih0aGlzOiB2b2lkLCBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNhYmxlPHZvaWQ+O1xuICBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG4gIHNob3VsZFNob3dUaW1lb3V0Tm90aWNlOiBib29sZWFuO1xuICBzdGFja1RyYWNlOiBzdHJpbmc7XG4gIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBwcmV2aW91cyBmdW5jdGlvbiBjb21wbGV0ZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRUb1F1ZXVlKHBhcmFtczogQWRkVG9RdWV1ZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCBzdGFja1RyYWNlID0gcGFyYW1zLnN0YWNrVHJhY2UgPz8gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zKSwgc3RhY2tUcmFjZSk7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFRvUXVldWVBbmRXYWl0KHBhcmFtczogQWRkVG9RdWV1ZUFuZFdhaXRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYWJvcnRTaWduYWwgPSBwYXJhbXMuYWJvcnRTaWduYWwgPz8gYWJvcnRTaWduYWxOZXZlcigpO1xuICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSA2MDAwMDtcbiAgY29uc3QgdGltZW91dEluTWlsbGlzZWNvbmRzID0gcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBzdGFja1RyYWNlID0gcGFyYW1zLnN0YWNrVHJhY2UgPz8gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IHBhcmFtcy5vcGVyYXRpb25OYW1lID8/ICcnO1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKHBhcmFtcy5hcHApLnZhbHVlO1xuICBxdWV1ZS5pdGVtcy5wdXNoKHtcbiAgICBhYm9ydFNpZ25hbCxcbiAgICBvcGVyYXRpb25GbjogcGFyYW1zLm9wZXJhdGlvbkZuLFxuICAgIG9wZXJhdGlvbk5hbWUsXG4gICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IHBhcmFtcy5zaG91bGRTaG93VGltZW91dE5vdGljZSA/PyB0cnVlLFxuICAgIHN0YWNrVHJhY2UsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzXG4gIH0pO1xuICBxdWV1ZS5wcm9taXNlID0gcXVldWUucHJvbWlzZS50aGVuKCgpID0+IHByb2Nlc3NOZXh0UXVldWVJdGVtKHBhcmFtcy5hcHApKTtcbiAgYXdhaXQgcXVldWUucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBGbHVzaGVzIHRoZSBxdWV1ZTtcbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmx1c2hRdWV1ZShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBhZGRUb1F1ZXVlQW5kV2FpdCh7XG4gICAgYXBwLFxuICAgIG9wZXJhdGlvbkZuOiBub29wLFxuICAgIG9wZXJhdGlvbk5hbWU6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5xdWV1ZS5mbHVzaFF1ZXVlKVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0UXVldWUoYXBwOiBBcHApOiBWYWx1ZVdyYXBwZXI8UXVldWU+IHtcbiAgcmV0dXJuIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZShhcHAsICdxdWV1ZScsIHsgaXRlbXM6IFtdLCBwcm9taXNlOiBQcm9taXNlLnJlc29sdmUoKSB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05leHRRdWV1ZUl0ZW0oYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcXVldWUgPSBnZXRRdWV1ZShhcHApLnZhbHVlO1xuICBjb25zdCBpdGVtID0gcXVldWUuaXRlbXNbMF07XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWZlbnNpdmUgY2hlY2s7IHByb2Nlc3NOZXh0UXVldWVJdGVtIGlzIG9ubHkgY2FsbGVkIGFmdGVyIGFuIGl0ZW0gaXMgcHVzaGVkLiAqL1xuICBpZiAoIWl0ZW0pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLyogdjggaWdub3JlIHN0b3AgKi9cblxuICBhd2FpdCBhZGRFcnJvckhhbmRsZXIoKCkgPT5cbiAgICBydW5XaXRoVGltZW91dE5vdGljZSh7XG4gICAgICBjb250ZXh0OiB7IHF1ZXVlZEZuOiBpdGVtLm9wZXJhdGlvbkZuIH0sXG4gICAgICBhc3luYyBvcGVyYXRpb25GbihhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgaW52b2tlQXN5bmNBbmRMb2coXG4gICAgICAgICAgaXRlbS5vcGVyYXRpb25OYW1lIHx8IHByb2Nlc3NOZXh0UXVldWVJdGVtLm5hbWUsXG4gICAgICAgICAgaXRlbS5vcGVyYXRpb25GbixcbiAgICAgICAgICBhYm9ydFNpZ25hbEFueShhYm9ydFNpZ25hbCwgaXRlbS5hYm9ydFNpZ25hbCksXG4gICAgICAgICAgaXRlbS5zdGFja1RyYWNlXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgb3BlcmF0aW9uTmFtZTogaXRlbS5vcGVyYXRpb25OYW1lLFxuICAgICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGl0ZW0uc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UsXG4gICAgICBzdGFja1RyYWNlOiBpdGVtLnN0YWNrVHJhY2UsXG4gICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IGl0ZW0udGltZW91dEluTWlsbGlz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
99
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVucXVldWluZyBhbmQgcHJvY2Vzc2luZyBmdW5jdGlvbnMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vYXBwLnRzJztcblxuaW1wb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXJcbn0gZnJvbSAnLi4vYWJvcnQtY29udHJvbGxlci50cyc7XG5pbXBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IGdldFN0YWNrVHJhY2UgfSBmcm9tICcuLi9lcnJvci50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi9hcHAudHMnO1xuaW1wb3J0IHsgcnVuV2l0aFRpbWVvdXROb3RpY2UgfSBmcm9tICcuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBpbnZva2VBc3luY0FuZExvZyB9IGZyb20gJy4vbG9nZ2VyLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWVBbmRXYWl0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSB7QGxpbmsgYWRkVG9RdWV1ZX0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkVG9RdWV1ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUXVldWUge1xuICBpdGVtczogUXVldWVJdGVtW107XG4gIHByb21pc2U6IFByb21pc2U8dm9pZD47XG59XG5cbmludGVyZmFjZSBRdWV1ZUl0ZW0ge1xuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWw7XG4gIG9wZXJhdGlvbkZuKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2FibGU8dm9pZD47XG4gIG9wZXJhdGlvbk5hbWU6IHN0cmluZztcbiAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IGJvb2xlYW47XG4gIHN0YWNrVHJhY2U6IHN0cmluZztcbiAgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvUXVldWUocGFyYW1zOiBBZGRUb1F1ZXVlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiBhZGRUb1F1ZXVlQW5kV2FpdChwYXJhbXMpLCBzdGFja1RyYWNlKTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgcHJldmlvdXMgZnVuY3Rpb24gY29tcGxldGVzIGFuZCByZXR1cm5zIGEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gY29tcGxldGVzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zOiBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBhYm9ydFNpZ25hbCA9IHBhcmFtcy5hYm9ydFNpZ25hbCA/PyBhYm9ydFNpZ25hbE5ldmVyKCk7XG4gIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG5cbiAgY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDYwMDAwO1xuICBjb25zdCB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBwYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFM7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBwYXJhbXMuc3RhY2tUcmFjZSA/PyBnZXRTdGFja1RyYWNlKDEpO1xuICBjb25zdCBvcGVyYXRpb25OYW1lID0gcGFyYW1zLm9wZXJhdGlvbk5hbWUgPz8gJyc7XG4gIGNvbnN0IHF1ZXVlID0gZ2V0UXVldWUocGFyYW1zLmFwcCkudmFsdWU7XG4gIHF1ZXVlLml0ZW1zLnB1c2goe1xuICAgIGFib3J0U2lnbmFsLFxuICAgIG9wZXJhdGlvbkZuOiBwYXJhbXMub3BlcmF0aW9uRm4sXG4gICAgb3BlcmF0aW9uTmFtZSxcbiAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogcGFyYW1zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8/IHRydWUsXG4gICAgc3RhY2tUcmFjZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgfSk7XG4gIHF1ZXVlLnByb21pc2UgPSBxdWV1ZS5wcm9taXNlLnRoZW4oKCkgPT4gcHJvY2Vzc05leHRRdWV1ZUl0ZW0ocGFyYW1zLmFwcCkpO1xuICBhd2FpdCBxdWV1ZS5wcm9taXNlO1xufVxuXG4vKipcbiAqIEZsdXNoZXMgdGhlIHF1ZXVlO1xuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmbHVzaFF1ZXVlKGFwcDogQXBwKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGFkZFRvUXVldWVBbmRXYWl0KHtcbiAgICBhcHAsXG4gICAgb3BlcmF0aW9uRm46IG5vb3AsXG4gICAgb3BlcmF0aW9uTmFtZTogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnF1ZXVlLmZsdXNoUXVldWUpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRRdWV1ZShhcHA6IEFwcCk6IFZhbHVlV3JhcHBlcjxRdWV1ZT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKGFwcCwgJ3F1ZXVlJywgeyBpdGVtczogW10sIHByb21pc2U6IFByb21pc2UucmVzb2x2ZSgpIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzTmV4dFF1ZXVlSXRlbShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKGFwcCkudmFsdWU7XG4gIGNvbnN0IGl0ZW0gPSBxdWV1ZS5pdGVtc1swXTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBjaGVjazsgcHJvY2Vzc05leHRRdWV1ZUl0ZW0gaXMgb25seSBjYWxsZWQgYWZ0ZXIgYW4gaXRlbSBpcyBwdXNoZWQuICovXG4gIGlmICghaXRlbSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGF3YWl0IGFkZEVycm9ySGFuZGxlcigoKSA9PlxuICAgIHJ1bldpdGhUaW1lb3V0Tm90aWNlKHtcbiAgICAgIGNvbnRleHQ6IHsgcXVldWVkRm46IGl0ZW0ub3BlcmF0aW9uRm4gfSxcbiAgICAgIGFzeW5jIG9wZXJhdGlvbkZuKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBpbnZva2VBc3luY0FuZExvZyhcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbk5hbWUgfHwgcHJvY2Vzc05leHRRdWV1ZUl0ZW0ubmFtZSxcbiAgICAgICAgICBpdGVtLm9wZXJhdGlvbkZuLFxuICAgICAgICAgIGFib3J0U2lnbmFsQW55KGFib3J0U2lnbmFsLCBpdGVtLmFib3J0U2lnbmFsKSxcbiAgICAgICAgICBpdGVtLnN0YWNrVHJhY2VcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvcGVyYXRpb25OYW1lOiBpdGVtLm9wZXJhdGlvbk5hbWUsXG4gICAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogaXRlbS5zaG91bGRTaG93VGltZW91dE5vdGljZSxcbiAgICAgIHN0YWNrVHJhY2U6IGl0ZW0uc3RhY2tUcmFjZSxcbiAgICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogaXRlbS50aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICB9KVxu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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Passes obsidian {@link App} instance to React components.
5
5
  */
@@ -33,4 +33,4 @@ export {
33
33
  AppContext,
34
34
  useApp
35
35
  };
36
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlYWN0L2FwcC1jb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFBhc3NlcyBvYnNpZGlhbiB7QGxpbmsgQXBwfSBpbnN0YW5jZSB0byBSZWFjdCBjb21wb25lbnRzLlxuICovXG5cbmltcG9ydCB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNvbnRleHRcbn0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqXG4gKiBBIGNvbnRleHQgZm9yIHRoZSBhcHAuXG4gKlxuICogVXNhZ2U6XG4gKiBgYGB0c3hcbiAqIDxBcHBDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXthcHB9PlxuICogICA8WW91ckNvbXBvbmVudCAvPlxuICogPC9BcHBDb250ZXh0LlByb3ZpZGVyPlxuICogYGBgXG4gKi9cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBSZWFjdCBjb250ZXh0IHJlcXVpcmVzIFJlYWN0IHRlc3Rpbmcgc2V0dXAgdGhhdCBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgcHJvamVjdC4gKi9cbmV4cG9ydCBjb25zdCBBcHBDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxBcHAgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogQSBob29rIHRvIHVzZSB0aGUgYXBwIGNvbnRleHQuXG4gKlxuICogQHJldHVybnMgVGhlIGFwcCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUFwcCgpOiBBcHAge1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodXNlQ29udGV4dChBcHBDb250ZXh0KSwgJ0FwcENvbnRleHQgbm90IGZvdW5kJyk7XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxXQUFXO0FBQ3BCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyx5QkFBeUI7QUFhM0IsTUFBTSxhQUFhLGNBQStCLE1BQVM7QUFPM0QsU0FBUyxTQUFjO0FBQzVCLFNBQU8sa0JBQWtCLFdBQVcsVUFBVSxHQUFHLHNCQUFzQjtBQUN6RTsiLAogICJuYW1lcyI6IFtdCn0K
36
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlYWN0L2FwcC1jb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUGFzc2VzIG9ic2lkaWFuIHtAbGluayBBcHB9IGluc3RhbmNlIHRvIFJlYWN0IGNvbXBvbmVudHMuXG4gKi9cblxuaW1wb3J0IHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuXG4vKipcbiAqIEEgY29udGV4dCBmb3IgdGhlIGFwcC5cbiAqXG4gKiBVc2FnZTpcbiAqIGBgYHRzeFxuICogPEFwcENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FwcH0+XG4gKiAgIDxZb3VyQ29tcG9uZW50IC8+XG4gKiA8L0FwcENvbnRleHQuUHJvdmlkZXI+XG4gKiBgYGBcbiAqL1xuLyogdjggaWdub3JlIHN0YXJ0IC0tIFJlYWN0IGNvbnRleHQgcmVxdWlyZXMgUmVhY3QgdGVzdGluZyBzZXR1cCB0aGF0IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBwcm9qZWN0LiAqL1xuZXhwb3J0IGNvbnN0IEFwcENvbnRleHQgPSBjcmVhdGVDb250ZXh0PEFwcCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyoqXG4gKiBBIGhvb2sgdG8gdXNlIHRoZSBhcHAgY29udGV4dC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXBwIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQXBwKCk6IEFwcCB7XG4gIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh1c2VDb250ZXh0KEFwcENvbnRleHQpLCAnQXBwQ29udGV4dCBub3QgZm91bmQnKTtcbn1cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLFdBQVc7QUFDcEI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLHlCQUF5QjtBQWEzQixNQUFNLGFBQWEsY0FBK0IsTUFBUztBQU8zRCxTQUFTLFNBQWM7QUFDNUIsU0FBTyxrQkFBa0IsV0FBVyxVQUFVLEdBQUcsc0JBQXNCO0FBQ3pFOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Contains utility functions for handling references in Obsidian.
5
5
  */
@@ -67,4 +67,4 @@ export {
67
67
  referenceToFileChange,
68
68
  sortReferences
69
69
  };
70
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlZmVyZW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcmVmZXJlbmNlcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBpc0Zyb250bWF0dGVyTGlua0NhY2hlLFxuICBpc1JlZmVyZW5jZUNhY2hlXG59IGZyb20gJ29ic2lkaWFuLXR5cGluZ3MvaW1wbGVtZW50YXRpb25zJztcblxuaW1wb3J0IHR5cGUgeyBGaWxlQ2hhbmdlIH0gZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5cbmltcG9ydCB7IGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyB9IGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHdpdGhpbiBhIGZpbGUgbm9kZSBpbiBhIGNhbnZhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSBleHRlbmRzIENhbnZhc1JlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBBIHR5cGUgb2YgcmVmZXJlbmNlLlxuICAgKi9cbiAgdHlwZTogJ2ZpbGUnO1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHdpdGhpbiBhIGNhbnZhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW52YXNSZWZlcmVuY2UgZXh0ZW5kcyBGcm9udG1hdHRlckxpbmtDYWNoZSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBjYW52YXMgcmVmZXJlbmNlLlxuICAgKi9cbiAgaXNDYW52YXM6IHRydWU7XG5cbiAgLyoqXG4gICAqIEFuIGluZGV4IG9mIHRoZSBub2RlIGluIHRoZSBjYW52YXMuXG4gICAqL1xuICBub2RlSW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogQSB0eXBlIG9mIHJlZmVyZW5jZS5cbiAgICovXG4gIHR5cGU6ICdmaWxlJyB8ICd0ZXh0Jztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB3aXRoaW4gYSB0ZXh0IG5vZGUgaW4gYSBjYW52YXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UgZXh0ZW5kcyBDYW52YXNSZWZlcmVuY2Uge1xuICAvKipcbiAgICogQW4gb3JpZ2luYWwgcmVmZXJlbmNlLlxuICAgKi9cbiAgb3JpZ2luYWxSZWZlcmVuY2U6IFJlZmVyZW5jZTtcblxuICAvKipcbiAgICogQSB0eXBlIG9mIHJlZmVyZW5jZS5cbiAgICovXG4gIHR5cGU6ICd0ZXh0Jztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSByZWZlcmVuY2UgaXMgYSBjYW52YXMgZmlsZSBub2RlIHJlZmVyZW5jZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyBmaWxlIG5vZGUgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDYW52YXNGaWxlTm9kZVJlZmVyZW5jZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSB7XG4gIHJldHVybiBpc0NhbnZhc1JlZmVyZW5jZShyZWZlcmVuY2UpICYmIHJlZmVyZW5jZS50eXBlID09PSAnZmlsZSc7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHJlZmVyZW5jZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc1JlZmVyZW5jZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBDYW52YXNSZWZlcmVuY2Uge1xuICByZXR1cm4gaXNGcm9udG1hdHRlckxpbmtDYWNoZShyZWZlcmVuY2UpICYmICEhKHJlZmVyZW5jZSBhcyBQYXJ0aWFsPENhbnZhc1JlZmVyZW5jZT4pLmlzQ2FudmFzO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyB0ZXh0IG5vZGUgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHRleHQgbm9kZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc1RleHROb2RlUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIENhbnZhc1RleHROb2RlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIGlzQ2FudmFzUmVmZXJlbmNlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLnR5cGUgPT09ICd0ZXh0Jztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHJlZmVyZW5jZSB0byBhIGZpbGUgY2hhbmdlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0gbmV3Q29udGVudCAtIFRoZSBuZXcgY29udGVudCBmb3IgdGhlIHJlZmVyZW5jZS5cbiAqIEByZXR1cm5zIFRoZSBmaWxlIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZmVyZW5jZVRvRmlsZUNoYW5nZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgbmV3Q29udGVudDogc3RyaW5nKTogRmlsZUNoYW5nZSB7XG4gIGlmIChpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMocmVmZXJlbmNlKSkge1xuICAgIHJldHVybiB7XG4gICAgICBuZXdDb250ZW50LFxuICAgICAgb2xkQ29udGVudDogcmVmZXJlbmNlLm9yaWdpbmFsLnNsaWNlKHJlZmVyZW5jZS5zdGFydE9mZnNldCwgcmVmZXJlbmNlLmVuZE9mZnNldCksXG4gICAgICByZWZlcmVuY2VcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuZXdDb250ZW50LFxuICAgIG9sZENvbnRlbnQ6IHJlZmVyZW5jZS5vcmlnaW5hbCxcbiAgICByZWZlcmVuY2VcbiAgfTtcbn1cblxuLyoqXG4gKiBTb3J0cyByZWZlcmVuY2VzIGJ5IHRoZWlyIHR5cGUgYW5kIHBvc2l0aW9uLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2VzIC0gVGhlIHJlZmVyZW5jZXMgdG8gc29ydC5cbiAqIEByZXR1cm5zIFRoZSBzb3J0ZWQgcmVmZXJlbmNlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvcnRSZWZlcmVuY2VzKHJlZmVyZW5jZXM6IFJlZmVyZW5jZVtdKTogUmVmZXJlbmNlW10ge1xuICByZXR1cm4gcmVmZXJlbmNlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgaWYgKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUoYSkgJiYgaXNGcm9udG1hdHRlckxpbmtDYWNoZShiKSkge1xuICAgICAgY29uc3QgYVN0YXJ0T2Zmc2V0ID0gaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKGEpID8gYS5zdGFydE9mZnNldCA6IDA7XG4gICAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gdjggaW5jb3JyZWN0bHkgcmVwb3J0cyB0aGlzIGJyYW5jaCBhcyB1bmNvdmVyZWQsIGJ1dCBpdCBpcyBjb3ZlcmVkIGJ5IGBzaG91bGQgc29ydCB0d28gZnJvbnRtYXR0ZXIgbGlua3Mgd2l0aG91dCBvZmZzZXRzYCB0ZXN0LiAqL1xuICAgICAgY29uc3QgYlN0YXJ0T2Zmc2V0ID0gaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKGIpID8gYi5zdGFydE9mZnNldCA6IDA7XG4gICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgICAgcmV0dXJuIGEua2V5LmxvY2FsZUNvbXBhcmUoYi5rZXkpIHx8IE51bWJlcihpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoYikpIC0gTnVtYmVyKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhhKSlcbiAgICAgICAgfHwgYVN0YXJ0T2Zmc2V0IC0gYlN0YXJ0T2Zmc2V0O1xuICAgIH1cblxuICAgIGlmIChpc1JlZmVyZW5jZUNhY2hlKGEpICYmIGlzUmVmZXJlbmNlQ2FjaGUoYikpIHtcbiAgICAgIHJldHVybiBhLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCAtIGIucG9zaXRpb24uc3RhcnQub2Zmc2V0O1xuICAgIH1cblxuICAgIHJldHVybiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKGEpID8gMSA6IC0xO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBSVAsU0FBUyx5Q0FBeUM7QUFxRDNDLFNBQVMsMEJBQTBCLFdBQTREO0FBQ3BHLFNBQU8sa0JBQWtCLFNBQVMsS0FBSyxVQUFVLFNBQVM7QUFDNUQ7QUFRTyxTQUFTLGtCQUFrQixXQUFvRDtBQUNwRixTQUFPLHVCQUF1QixTQUFTLEtBQUssQ0FBQyxDQUFFLFVBQXVDO0FBQ3hGO0FBUU8sU0FBUywwQkFBMEIsV0FBNEQ7QUFDcEcsU0FBTyxrQkFBa0IsU0FBUyxLQUFLLFVBQVUsU0FBUztBQUM1RDtBQVNPLFNBQVMsc0JBQXNCLFdBQXNCLFlBQWdDO0FBQzFGLE1BQUksa0NBQWtDLFNBQVMsR0FBRztBQUNoRCxXQUFPO0FBQUEsTUFDTDtBQUFBLE1BQ0EsWUFBWSxVQUFVLFNBQVMsTUFBTSxVQUFVLGFBQWEsVUFBVSxTQUFTO0FBQUEsTUFDL0U7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSxZQUFZLFVBQVU7QUFBQSxJQUN0QjtBQUFBLEVBQ0Y7QUFDRjtBQVFPLFNBQVMsZUFBZSxZQUFzQztBQUNuRSxTQUFPLFdBQVcsS0FBSyxDQUFDLEdBQUcsTUFBTTtBQUMvQixRQUFJLHVCQUF1QixDQUFDLEtBQUssdUJBQXVCLENBQUMsR0FBRztBQUMxRCxZQUFNLGVBQWUsa0NBQWtDLENBQUMsSUFBSSxFQUFFLGNBQWM7QUFFNUUsWUFBTSxlQUFlLGtDQUFrQyxDQUFDLElBQUksRUFBRSxjQUFjO0FBRTVFLGFBQU8sRUFBRSxJQUFJLGNBQWMsRUFBRSxHQUFHLEtBQUssT0FBTyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksT0FBTyxrQ0FBa0MsQ0FBQyxDQUFDLEtBQzFILGVBQWU7QUFBQSxJQUN0QjtBQUVBLFFBQUksaUJBQWlCLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHO0FBQzlDLGFBQU8sRUFBRSxTQUFTLE1BQU0sU0FBUyxFQUFFLFNBQVMsTUFBTTtBQUFBLElBQ3BEO0FBRUEsV0FBTyx1QkFBdUIsQ0FBQyxJQUFJLElBQUk7QUFBQSxFQUN6QyxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
70
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3JlZmVyZW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBoYW5kbGluZyByZWZlcmVuY2VzIGluIE9ic2lkaWFuLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gIGlzUmVmZXJlbmNlQ2FjaGVcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgdHlwZSB7IEZpbGVDaGFuZ2UgfSBmcm9tICcuL2ZpbGUtY2hhbmdlLnRzJztcblxuaW1wb3J0IHsgaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIH0gZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5cbi8qKlxuICogQSByZWZlcmVuY2Ugd2l0aGluIGEgZmlsZSBub2RlIGluIGEgY2FudmFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlIGV4dGVuZHMgQ2FudmFzUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIEEgdHlwZSBvZiByZWZlcmVuY2UuXG4gICAqL1xuICB0eXBlOiAnZmlsZSc7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2Ugd2l0aGluIGEgY2FudmFzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbnZhc1JlZmVyZW5jZSBleHRlbmRzIEZyb250bWF0dGVyTGlua0NhY2hlIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyByZWZlcmVuY2UuXG4gICAqL1xuICBpc0NhbnZhczogdHJ1ZTtcblxuICAvKipcbiAgICogQW4gaW5kZXggb2YgdGhlIG5vZGUgaW4gdGhlIGNhbnZhcy5cbiAgICovXG4gIG5vZGVJbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHR5cGUgb2YgcmVmZXJlbmNlLlxuICAgKi9cbiAgdHlwZTogJ2ZpbGUnIHwgJ3RleHQnO1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHdpdGhpbiBhIHRleHQgbm9kZSBpbiBhIGNhbnZhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSBleHRlbmRzIENhbnZhc1JlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBBbiBvcmlnaW5hbCByZWZlcmVuY2UuXG4gICAqL1xuICBvcmlnaW5hbFJlZmVyZW5jZTogUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBBIHR5cGUgb2YgcmVmZXJlbmNlLlxuICAgKi9cbiAgdHlwZTogJ3RleHQnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHJlZmVyZW5jZSBpcyBhIGNhbnZhcyBmaWxlIG5vZGUgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgY2FudmFzIGZpbGUgbm9kZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIGlzQ2FudmFzUmVmZXJlbmNlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLnR5cGUgPT09ICdmaWxlJztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSByZWZlcmVuY2UgaXMgYSBjYW52YXMgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzUmVmZXJlbmNlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIENhbnZhc1JlZmVyZW5jZSB7XG4gIHJldHVybiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHJlZmVyZW5jZSkgJiYgISEocmVmZXJlbmNlIGFzIFBhcnRpYWw8Q2FudmFzUmVmZXJlbmNlPikuaXNDYW52YXM7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgcmVmZXJlbmNlIGlzIGEgY2FudmFzIHRleHQgbm9kZSByZWZlcmVuY2UuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBjYW52YXMgdGV4dCBub2RlIHJlZmVyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2Uge1xuICByZXR1cm4gaXNDYW52YXNSZWZlcmVuY2UocmVmZXJlbmNlKSAmJiByZWZlcmVuY2UudHlwZSA9PT0gJ3RleHQnO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY29udmVydC5cbiAqIEBwYXJhbSBuZXdDb250ZW50IC0gVGhlIG5ldyBjb250ZW50IGZvciB0aGUgcmVmZXJlbmNlLlxuICogQHJldHVybnMgVGhlIGZpbGUgY2hhbmdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlVG9GaWxlQ2hhbmdlKHJlZmVyZW5jZTogUmVmZXJlbmNlLCBuZXdDb250ZW50OiBzdHJpbmcpOiBGaWxlQ2hhbmdlIHtcbiAgaWYgKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhyZWZlcmVuY2UpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5ld0NvbnRlbnQsXG4gICAgICBvbGRDb250ZW50OiByZWZlcmVuY2Uub3JpZ2luYWwuc2xpY2UocmVmZXJlbmNlLnN0YXJ0T2Zmc2V0LCByZWZlcmVuY2UuZW5kT2Zmc2V0KSxcbiAgICAgIHJlZmVyZW5jZVxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5ld0NvbnRlbnQsXG4gICAgb2xkQ29udGVudDogcmVmZXJlbmNlLm9yaWdpbmFsLFxuICAgIHJlZmVyZW5jZVxuICB9O1xufVxuXG4vKipcbiAqIFNvcnRzIHJlZmVyZW5jZXMgYnkgdGhlaXIgdHlwZSBhbmQgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZXMgLSBUaGUgcmVmZXJlbmNlcyB0byBzb3J0LlxuICogQHJldHVybnMgVGhlIHNvcnRlZCByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFJlZmVyZW5jZXMocmVmZXJlbmNlczogUmVmZXJlbmNlW10pOiBSZWZlcmVuY2VbXSB7XG4gIHJldHVybiByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShhKSAmJiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKGIpKSB7XG4gICAgICBjb25zdCBhU3RhcnRPZmZzZXQgPSBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoYSkgPyBhLnN0YXJ0T2Zmc2V0IDogMDtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSB2OCBpbmNvcnJlY3RseSByZXBvcnRzIHRoaXMgYnJhbmNoIGFzIHVuY292ZXJlZCwgYnV0IGl0IGlzIGNvdmVyZWQgYnkgYHNob3VsZCBzb3J0IHR3byBmcm9udG1hdHRlciBsaW5rcyB3aXRob3V0IG9mZnNldHNgIHRlc3QuICovXG4gICAgICBjb25zdCBiU3RhcnRPZmZzZXQgPSBpc0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMoYikgPyBiLnN0YXJ0T2Zmc2V0IDogMDtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgICByZXR1cm4gYS5rZXkubG9jYWxlQ29tcGFyZShiLmtleSkgfHwgTnVtYmVyKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhiKSkgLSBOdW1iZXIoaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKGEpKVxuICAgICAgICB8fCBhU3RhcnRPZmZzZXQgLSBiU3RhcnRPZmZzZXQ7XG4gICAgfVxuXG4gICAgaWYgKGlzUmVmZXJlbmNlQ2FjaGUoYSkgJiYgaXNSZWZlcmVuY2VDYWNoZShiKSkge1xuICAgICAgcmV0dXJuIGEucG9zaXRpb24uc3RhcnQub2Zmc2V0IC0gYi5wb3NpdGlvbi5zdGFydC5vZmZzZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUoYSkgPyAxIDogLTE7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxTQUFTLHlDQUF5QztBQXFEM0MsU0FBUywwQkFBMEIsV0FBNEQ7QUFDcEcsU0FBTyxrQkFBa0IsU0FBUyxLQUFLLFVBQVUsU0FBUztBQUM1RDtBQVFPLFNBQVMsa0JBQWtCLFdBQW9EO0FBQ3BGLFNBQU8sdUJBQXVCLFNBQVMsS0FBSyxDQUFDLENBQUUsVUFBdUM7QUFDeEY7QUFRTyxTQUFTLDBCQUEwQixXQUE0RDtBQUNwRyxTQUFPLGtCQUFrQixTQUFTLEtBQUssVUFBVSxTQUFTO0FBQzVEO0FBU08sU0FBUyxzQkFBc0IsV0FBc0IsWUFBZ0M7QUFDMUYsTUFBSSxrQ0FBa0MsU0FBUyxHQUFHO0FBQ2hELFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQSxZQUFZLFVBQVUsU0FBUyxNQUFNLFVBQVUsYUFBYSxVQUFVLFNBQVM7QUFBQSxNQUMvRTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBLFlBQVksVUFBVTtBQUFBLElBQ3RCO0FBQUEsRUFDRjtBQUNGO0FBUU8sU0FBUyxlQUFlLFlBQXNDO0FBQ25FLFNBQU8sV0FBVyxLQUFLLENBQUMsR0FBRyxNQUFNO0FBQy9CLFFBQUksdUJBQXVCLENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxHQUFHO0FBQzFELFlBQU0sZUFBZSxrQ0FBa0MsQ0FBQyxJQUFJLEVBQUUsY0FBYztBQUU1RSxZQUFNLGVBQWUsa0NBQWtDLENBQUMsSUFBSSxFQUFFLGNBQWM7QUFFNUUsYUFBTyxFQUFFLElBQUksY0FBYyxFQUFFLEdBQUcsS0FBSyxPQUFPLGtDQUFrQyxDQUFDLENBQUMsSUFBSSxPQUFPLGtDQUFrQyxDQUFDLENBQUMsS0FDMUgsZUFBZTtBQUFBLElBQ3RCO0FBRUEsUUFBSSxpQkFBaUIsQ0FBQyxLQUFLLGlCQUFpQixDQUFDLEdBQUc7QUFDOUMsYUFBTyxFQUFFLFNBQVMsTUFBTSxTQUFTLEVBQUUsU0FBUyxNQUFNO0FBQUEsSUFDcEQ7QUFFQSxXQUFPLHVCQUF1QixDQUFDLElBQUksSUFBSTtBQUFBLEVBQ3pDLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @packageDocumentation
2
+ * @file
3
3
  *
4
4
  * Contains utility functions for handling rename and delete events in Obsidian.
5
5
  */