@mnaoumov/obsidian-lib 0.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1044) hide show
  1. package/@types/dataview/api/data-array/package.json +4 -0
  2. package/@types/dataview/api/extensions/package.json +4 -0
  3. package/@types/dataview/api/inline-api/package.json +4 -0
  4. package/@types/dataview/api/plugin-api/package.json +4 -0
  5. package/@types/dataview/api/result/package.json +4 -0
  6. package/@types/dataview/data-import/common/package.json +4 -0
  7. package/@types/dataview/data-import/csv/package.json +4 -0
  8. package/@types/dataview/data-import/inline-field/package.json +4 -0
  9. package/@types/dataview/data-import/markdown-file/package.json +4 -0
  10. package/@types/dataview/data-import/persister/package.json +4 -0
  11. package/@types/dataview/data-import/web-worker/import-entry/package.json +4 -0
  12. package/@types/dataview/data-import/web-worker/import-impl/package.json +4 -0
  13. package/@types/dataview/data-import/web-worker/import-manager/package.json +4 -0
  14. package/@types/dataview/data-index/index/package.json +4 -0
  15. package/@types/dataview/data-index/package.json +4 -0
  16. package/@types/dataview/data-index/resolver/package.json +4 -0
  17. package/@types/dataview/data-index/source/package.json +4 -0
  18. package/@types/dataview/data-model/markdown/package.json +4 -0
  19. package/@types/dataview/data-model/serialized/markdown/package.json +4 -0
  20. package/@types/dataview/data-model/transferable/package.json +4 -0
  21. package/@types/dataview/data-model/value/package.json +4 -0
  22. package/@types/dataview/expression/binaryop/package.json +4 -0
  23. package/@types/dataview/expression/context/package.json +4 -0
  24. package/@types/dataview/expression/field/package.json +4 -0
  25. package/@types/dataview/expression/functions/package.json +4 -0
  26. package/@types/dataview/expression/parse/package.json +4 -0
  27. package/@types/dataview/index/package.json +4 -0
  28. package/@types/dataview/main/package.json +4 -0
  29. package/@types/dataview/package.json +4 -0
  30. package/@types/dataview/query/engine/package.json +4 -0
  31. package/@types/dataview/query/parse/package.json +4 -0
  32. package/@types/dataview/query/query/package.json +4 -0
  33. package/@types/dataview/settings/package.json +4 -0
  34. package/@types/dataview/typings/obsidian-ex/package.json +4 -0
  35. package/@types/dataview/typings/workers/package.json +4 -0
  36. package/@types/dataview/ui/export/markdown/package.json +4 -0
  37. package/@types/dataview/ui/lp-render/package.json +4 -0
  38. package/@types/dataview/ui/markdown/package.json +4 -0
  39. package/@types/dataview/ui/refreshable-view/package.json +4 -0
  40. package/@types/dataview/ui/render/package.json +4 -0
  41. package/@types/dataview/ui/views/calendar-view/package.json +4 -0
  42. package/@types/dataview/ui/views/inline-field-live-preview/package.json +4 -0
  43. package/@types/dataview/ui/views/inline-view/package.json +4 -0
  44. package/@types/dataview/ui/views/js-view/package.json +4 -0
  45. package/@types/dataview/ui/views/list-view/package.json +4 -0
  46. package/@types/dataview/ui/views/table-view/package.json +4 -0
  47. package/@types/dataview/ui/views/task-view/package.json +4 -0
  48. package/@types/dataview/util/hash/package.json +4 -0
  49. package/@types/dataview/util/locale/package.json +4 -0
  50. package/@types/dataview/util/media/package.json +4 -0
  51. package/@types/dataview/util/normalize/package.json +4 -0
  52. package/@types/i18next/package.json +4 -0
  53. package/@types/obsidian-integration-testing/package.json +4 -0
  54. package/@types/original-fs/package.json +4 -0
  55. package/LICENSE +21 -0
  56. package/README.md +15 -1
  57. package/codemirror/index/package.json +6 -0
  58. package/codemirror/package.json +6 -0
  59. package/codemirror/state-field-spec/package.json +6 -0
  60. package/command-handlers/abstract-file-command-handler/package.json +6 -0
  61. package/command-handlers/command-handler/package.json +6 -0
  62. package/command-handlers/command-handler-component/package.json +6 -0
  63. package/command-handlers/editor-command-handler/package.json +6 -0
  64. package/command-handlers/file-command-handler/package.json +6 -0
  65. package/command-handlers/folder-command-handler/package.json +6 -0
  66. package/command-handlers/global-command-handler/package.json +6 -0
  67. package/command-handlers/index/package.json +6 -0
  68. package/command-handlers/open-demo-vault-command-handler/package.json +6 -0
  69. package/command-handlers/open-settings-command-handler/package.json +6 -0
  70. package/command-handlers/package.json +6 -0
  71. package/command-handlers/unlock-active-note-command-handler/package.json +6 -0
  72. package/components/abort-signal-component/package.json +6 -0
  73. package/components/all-windows-event-component/package.json +6 -0
  74. package/components/async-error-handler-component/package.json +6 -0
  75. package/components/async-events-component/package.json +6 -0
  76. package/components/case-insensitive-file-index-component/package.json +6 -0
  77. package/components/component-ex/package.json +6 -0
  78. package/components/console-debug-component/package.json +6 -0
  79. package/components/core-plugin-toggle-component/package.json +6 -0
  80. package/components/disposable-component/package.json +6 -0
  81. package/components/embed-extensions-component/package.json +6 -0
  82. package/components/generate-markdown-link-default-params-component/package.json +6 -0
  83. package/components/index/package.json +6 -0
  84. package/components/layout-ready-component/package.json +6 -0
  85. package/components/menu-event-registrar-component/package.json +6 -0
  86. package/components/monkey-around-component/package.json +6 -0
  87. package/components/notebook-navigator-menu-event-registrar-component/package.json +6 -0
  88. package/components/package.json +6 -0
  89. package/components/plugin-context-component/package.json +6 -0
  90. package/components/plugin-gate-component/package.json +6 -0
  91. package/components/plugin-notice-component/package.json +6 -0
  92. package/components/plugin-settings-component/package.json +6 -0
  93. package/components/plugin-settings-tab-component/package.json +6 -0
  94. package/components/plugin-suggestion-component/package.json +6 -0
  95. package/components/pointer-position-component/package.json +6 -0
  96. package/components/registry-component/package.json +6 -0
  97. package/components/release-notes-component/package.json +6 -0
  98. package/components/rename-delete-handler-component/package.json +6 -0
  99. package/components/rmdir-guard-component/package.json +6 -0
  100. package/components/settings-migration-component/package.json +6 -0
  101. package/components/syntax-highlighting-component/package.json +6 -0
  102. package/components/templates-language-component/package.json +6 -0
  103. package/constructors/get-dom-events-handlers-constructor/package.json +6 -0
  104. package/constructors/index/package.json +6 -0
  105. package/constructors/package.json +6 -0
  106. package/dist/lib/cjs/@types/dataview/api/data-array.d.cts +137 -0
  107. package/dist/lib/cjs/@types/dataview/api/extensions.d.cts +16 -0
  108. package/dist/lib/cjs/@types/dataview/api/inline-api.d.cts +187 -0
  109. package/dist/lib/cjs/@types/dataview/api/plugin-api.d.cts +210 -0
  110. package/dist/lib/cjs/@types/dataview/api/result.d.cts +39 -0
  111. package/dist/lib/cjs/@types/dataview/data-import/common.d.cts +4 -0
  112. package/dist/lib/cjs/@types/dataview/data-import/csv.d.cts +4 -0
  113. package/dist/lib/cjs/@types/dataview/data-import/inline-field.d.cts +43 -0
  114. package/dist/lib/cjs/@types/dataview/data-import/markdown-file.d.cts +53 -0
  115. package/dist/lib/cjs/@types/dataview/data-import/persister.d.cts +33 -0
  116. package/dist/lib/cjs/@types/dataview/data-import/web-worker/import-entry.d.cts +2 -0
  117. package/dist/lib/cjs/@types/dataview/data-import/web-worker/import-impl.d.cts +7 -0
  118. package/dist/lib/cjs/@types/dataview/data-import/web-worker/import-manager.d.cts +38 -0
  119. package/dist/lib/cjs/@types/dataview/data-index/index.d.cts +187 -0
  120. package/dist/lib/cjs/@types/dataview/data-index/resolver.d.cts +24 -0
  121. package/dist/lib/cjs/@types/dataview/data-index/source.d.cts +72 -0
  122. package/dist/lib/cjs/@types/dataview/data-model/markdown.d.cts +116 -0
  123. package/dist/lib/cjs/@types/dataview/data-model/serialized/markdown.d.cts +107 -0
  124. package/dist/lib/cjs/@types/dataview/data-model/transferable.d.cts +8 -0
  125. package/dist/lib/cjs/@types/dataview/data-model/value.d.cts +176 -0
  126. package/dist/lib/cjs/@types/dataview/expression/binaryop.d.cts +44 -0
  127. package/dist/lib/cjs/@types/dataview/expression/context.d.cts +50 -0
  128. package/dist/lib/cjs/@types/dataview/expression/field.d.cts +83 -0
  129. package/dist/lib/cjs/@types/dataview/expression/functions.d.cts +150 -0
  130. package/dist/lib/cjs/@types/dataview/expression/parse.d.cts +164 -0
  131. package/dist/lib/cjs/@types/dataview/index.d.cts +56 -0
  132. package/dist/lib/cjs/@types/dataview/main.d.cts +53 -0
  133. package/dist/lib/cjs/@types/dataview/query/engine.d.cts +104 -0
  134. package/dist/lib/cjs/@types/dataview/query/parse.d.cts +45 -0
  135. package/dist/lib/cjs/@types/dataview/query/query.d.cts +96 -0
  136. package/dist/lib/cjs/@types/dataview/settings.d.cts +61 -0
  137. package/dist/lib/cjs/@types/dataview/typings/obsidian-ex.d.cts +29 -0
  138. package/dist/lib/cjs/@types/dataview/typings/workers.d.cts +5 -0
  139. package/dist/lib/cjs/@types/dataview/ui/export/markdown.d.cts +16 -0
  140. package/dist/lib/cjs/@types/dataview/ui/lp-render.d.cts +38 -0
  141. package/dist/lib/cjs/@types/dataview/ui/markdown.d.cts +87 -0
  142. package/dist/lib/cjs/@types/dataview/ui/refreshable-view.d.cts +19 -0
  143. package/dist/lib/cjs/@types/dataview/ui/render.d.cts +34 -0
  144. package/dist/lib/cjs/@types/dataview/ui/views/calendar-view.d.cts +18 -0
  145. package/dist/lib/cjs/@types/dataview/ui/views/inline-field-live-preview.d.cts +43 -0
  146. package/dist/lib/cjs/@types/dataview/ui/views/inline-view.d.cts +29 -0
  147. package/dist/lib/cjs/@types/dataview/ui/views/js-view.d.cts +24 -0
  148. package/dist/lib/cjs/@types/dataview/ui/views/list-view.d.cts +26 -0
  149. package/dist/lib/cjs/@types/dataview/ui/views/table-view.d.cts +29 -0
  150. package/dist/lib/cjs/@types/dataview/ui/views/task-view.d.cts +52 -0
  151. package/dist/lib/cjs/@types/dataview/util/hash.d.cts +2 -0
  152. package/dist/lib/cjs/@types/dataview/util/locale.d.cts +3 -0
  153. package/dist/lib/cjs/@types/dataview/util/media.d.cts +7 -0
  154. package/dist/lib/cjs/@types/dataview/util/normalize.d.cts +45 -0
  155. package/dist/lib/cjs/@types/i18next.d.cts +14 -0
  156. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +29 -0
  157. package/dist/lib/cjs/@types/original-fs.d.cts +15 -0
  158. package/dist/lib/cjs/__merged.cjs +1656 -0
  159. package/dist/lib/cjs/__merged.d.cts +205 -0
  160. package/dist/lib/cjs/active-file-provider.cjs +161 -0
  161. package/dist/lib/cjs/active-file-provider.d.cts +36 -0
  162. package/dist/lib/cjs/app.cjs +153 -0
  163. package/dist/lib/cjs/app.d.cts +17 -0
  164. package/dist/lib/cjs/async-with-notice.cjs +235 -0
  165. package/dist/lib/cjs/async-with-notice.d.cts +113 -0
  166. package/dist/lib/cjs/attachment-path.cjs +379 -0
  167. package/dist/lib/cjs/attachment-path.d.cts +341 -0
  168. package/dist/lib/cjs/attachment-unit-folder.cjs +168 -0
  169. package/dist/lib/cjs/attachment-unit-folder.d.cts +103 -0
  170. package/dist/lib/cjs/backlink-index.cjs +249 -0
  171. package/dist/lib/cjs/backlink-index.d.cts +51 -0
  172. package/dist/lib/cjs/backlink.cjs +217 -0
  173. package/dist/lib/cjs/backlink.d.cts +66 -0
  174. package/dist/lib/cjs/bases-view-registrar.cjs +162 -0
  175. package/dist/lib/cjs/bases-view-registrar.d.cts +52 -0
  176. package/dist/lib/cjs/callout.cjs +220 -0
  177. package/dist/lib/cjs/callout.d.cts +76 -0
  178. package/dist/lib/cjs/canvas.cjs +215 -0
  179. package/dist/lib/cjs/canvas.d.cts +28 -0
  180. package/dist/lib/cjs/case-insensitive-file-index.cjs +244 -0
  181. package/dist/lib/cjs/case-insensitive-file-index.d.cts +92 -0
  182. package/dist/lib/cjs/code-block-markdown-information.cjs +131 -0
  183. package/dist/lib/cjs/code-block-markdown-information.d.cts +48 -0
  184. package/dist/lib/cjs/code-block-reg-exp.cjs +145 -0
  185. package/dist/lib/cjs/code-block-reg-exp.d.cts +39 -0
  186. package/dist/lib/cjs/codemirror/index.cjs +153 -0
  187. package/dist/lib/cjs/codemirror/index.d.cts +2 -0
  188. package/dist/lib/cjs/codemirror/state-field-spec.cjs +131 -0
  189. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +72 -0
  190. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +416 -0
  191. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.d.cts +274 -0
  192. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +278 -0
  193. package/dist/lib/cjs/command-handlers/command-handler-component.d.cts +146 -0
  194. package/dist/lib/cjs/command-handlers/command-handler.cjs +200 -0
  195. package/dist/lib/cjs/command-handlers/command-handler.d.cts +107 -0
  196. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +348 -0
  197. package/dist/lib/cjs/command-handlers/editor-command-handler.d.cts +208 -0
  198. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +285 -0
  199. package/dist/lib/cjs/command-handlers/file-command-handler.d.cts +143 -0
  200. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +293 -0
  201. package/dist/lib/cjs/command-handlers/folder-command-handler.d.cts +149 -0
  202. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +185 -0
  203. package/dist/lib/cjs/command-handlers/global-command-handler.d.cts +40 -0
  204. package/dist/lib/cjs/command-handlers/index.cjs +180 -0
  205. package/dist/lib/cjs/command-handlers/index.d.cts +11 -0
  206. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +209 -0
  207. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.d.cts +73 -0
  208. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +174 -0
  209. package/dist/lib/cjs/command-handlers/open-settings-command-handler.d.cts +44 -0
  210. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +187 -0
  211. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.d.cts +54 -0
  212. package/dist/lib/cjs/command-registrar.cjs +169 -0
  213. package/dist/lib/cjs/command-registrar.d.cts +48 -0
  214. package/dist/lib/cjs/community-plugins.cjs +322 -0
  215. package/dist/lib/cjs/community-plugins.d.cts +270 -0
  216. package/dist/lib/cjs/components/abort-signal-component.cjs +172 -0
  217. package/dist/lib/cjs/components/abort-signal-component.d.cts +30 -0
  218. package/dist/lib/cjs/components/all-windows-event-component.cjs +214 -0
  219. package/dist/lib/cjs/components/all-windows-event-component.d.cts +84 -0
  220. package/dist/lib/cjs/components/async-error-handler-component.cjs +176 -0
  221. package/dist/lib/cjs/components/async-error-handler-component.d.cts +30 -0
  222. package/dist/lib/cjs/components/async-events-component.cjs +148 -0
  223. package/dist/lib/cjs/components/async-events-component.d.cts +15 -0
  224. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +186 -0
  225. package/dist/lib/cjs/components/case-insensitive-file-index-component.d.cts +36 -0
  226. package/dist/lib/cjs/components/component-ex.cjs +504 -0
  227. package/dist/lib/cjs/components/component-ex.d.cts +229 -0
  228. package/dist/lib/cjs/components/console-debug-component.cjs +170 -0
  229. package/dist/lib/cjs/components/console-debug-component.d.cts +30 -0
  230. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +202 -0
  231. package/dist/lib/cjs/components/core-plugin-toggle-component.d.cts +102 -0
  232. package/dist/lib/cjs/components/disposable-component.cjs +154 -0
  233. package/dist/lib/cjs/components/disposable-component.d.cts +24 -0
  234. package/dist/lib/cjs/components/embed-extensions-component.cjs +174 -0
  235. package/dist/lib/cjs/components/embed-extensions-component.d.cts +38 -0
  236. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +170 -0
  237. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.d.cts +42 -0
  238. package/dist/lib/cjs/components/index.cjs +237 -0
  239. package/dist/lib/cjs/components/index.d.cts +30 -0
  240. package/dist/lib/cjs/components/layout-ready-component.cjs +211 -0
  241. package/dist/lib/cjs/components/layout-ready-component.d.cts +48 -0
  242. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +196 -0
  243. package/dist/lib/cjs/components/menu-event-registrar-component.d.cts +52 -0
  244. package/dist/lib/cjs/components/monkey-around-component.cjs +245 -0
  245. package/dist/lib/cjs/components/monkey-around-component.d.cts +241 -0
  246. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +321 -0
  247. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.d.cts +150 -0
  248. package/dist/lib/cjs/components/plugin-context-component.cjs +180 -0
  249. package/dist/lib/cjs/components/plugin-context-component.d.cts +36 -0
  250. package/dist/lib/cjs/components/plugin-gate-component.cjs +548 -0
  251. package/dist/lib/cjs/components/plugin-gate-component.d.cts +332 -0
  252. package/dist/lib/cjs/components/plugin-notice-component.cjs +629 -0
  253. package/dist/lib/cjs/components/plugin-notice-component.d.cts +362 -0
  254. package/dist/lib/cjs/components/plugin-settings-component.cjs +644 -0
  255. package/dist/lib/cjs/components/plugin-settings-component.d.cts +362 -0
  256. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +170 -0
  257. package/dist/lib/cjs/components/plugin-settings-tab-component.d.cts +39 -0
  258. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +278 -0
  259. package/dist/lib/cjs/components/plugin-suggestion-component.d.cts +162 -0
  260. package/dist/lib/cjs/components/pointer-position-component.cjs +166 -0
  261. package/dist/lib/cjs/components/pointer-position-component.d.cts +29 -0
  262. package/dist/lib/cjs/components/registry-component.cjs +187 -0
  263. package/dist/lib/cjs/components/registry-component.d.cts +37 -0
  264. package/dist/lib/cjs/components/release-notes-component.cjs +225 -0
  265. package/dist/lib/cjs/components/release-notes-component.d.cts +129 -0
  266. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +1275 -0
  267. package/dist/lib/cjs/components/rename-delete-handler-component.d.cts +165 -0
  268. package/dist/lib/cjs/components/rmdir-guard-component.cjs +190 -0
  269. package/dist/lib/cjs/components/rmdir-guard-component.d.cts +76 -0
  270. package/dist/lib/cjs/components/settings-migration-component.cjs +222 -0
  271. package/dist/lib/cjs/components/settings-migration-component.d.cts +120 -0
  272. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +248 -0
  273. package/dist/lib/cjs/components/syntax-highlighting-component.d.cts +149 -0
  274. package/dist/lib/cjs/components/templates-language-component.cjs +276 -0
  275. package/dist/lib/cjs/components/templates-language-component.d.cts +124 -0
  276. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +246 -0
  277. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.d.cts +22 -0
  278. package/dist/lib/cjs/constructors/index.cjs +153 -0
  279. package/dist/lib/cjs/constructors/index.d.cts +2 -0
  280. package/dist/lib/cjs/css-class.cjs +208 -0
  281. package/dist/lib/cjs/css-class.d.cts +278 -0
  282. package/dist/lib/cjs/data-handler.cjs +170 -0
  283. package/dist/lib/cjs/data-handler.d.cts +49 -0
  284. package/dist/lib/cjs/dataview-link.cjs +160 -0
  285. package/dist/lib/cjs/dataview-link.d.cts +42 -0
  286. package/dist/lib/cjs/dataview.cjs +379 -0
  287. package/dist/lib/cjs/dataview.d.cts +249 -0
  288. package/dist/lib/cjs/debug.cjs +148 -0
  289. package/dist/lib/cjs/debug.d.cts +19 -0
  290. package/dist/lib/cjs/demo-vault-helper-settings.cjs +131 -0
  291. package/dist/lib/cjs/demo-vault-helper-settings.d.cts +29 -0
  292. package/dist/lib/cjs/demo-vault-helper.cjs +232 -0
  293. package/dist/lib/cjs/demo-vault-helper.d.cts +61 -0
  294. package/dist/lib/cjs/demo-vault-naming.cjs +157 -0
  295. package/dist/lib/cjs/demo-vault-naming.d.cts +54 -0
  296. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +348 -0
  297. package/dist/lib/cjs/desktop-demo-vault-opener.d.cts +76 -0
  298. package/dist/lib/cjs/desktop-trusted-input.cjs +301 -0
  299. package/dist/lib/cjs/desktop-trusted-input.d.cts +288 -0
  300. package/dist/lib/cjs/editor-extension-registrar.cjs +162 -0
  301. package/dist/lib/cjs/editor-extension-registrar.d.cts +37 -0
  302. package/dist/lib/cjs/editor-suggest-registrar.cjs +162 -0
  303. package/dist/lib/cjs/editor-suggest-registrar.d.cts +36 -0
  304. package/dist/lib/cjs/editor.cjs +200 -0
  305. package/dist/lib/cjs/editor.d.cts +45 -0
  306. package/dist/lib/cjs/events.cjs +172 -0
  307. package/dist/lib/cjs/events.d.cts +98 -0
  308. package/dist/lib/cjs/extensions-registrar.cjs +162 -0
  309. package/dist/lib/cjs/extensions-registrar.d.cts +51 -0
  310. package/dist/lib/cjs/file-change.cjs +558 -0
  311. package/dist/lib/cjs/file-change.d.cts +156 -0
  312. package/dist/lib/cjs/file-explorer.cjs +157 -0
  313. package/dist/lib/cjs/file-explorer.d.cts +34 -0
  314. package/dist/lib/cjs/file-manager.cjs +251 -0
  315. package/dist/lib/cjs/file-manager.d.cts +123 -0
  316. package/dist/lib/cjs/file-system.cjs +571 -0
  317. package/dist/lib/cjs/file-system.d.cts +554 -0
  318. package/dist/lib/cjs/folder-note.cjs +261 -0
  319. package/dist/lib/cjs/folder-note.d.cts +166 -0
  320. package/dist/lib/cjs/frontmatter-formatting.cjs +448 -0
  321. package/dist/lib/cjs/frontmatter-formatting.d.cts +44 -0
  322. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +159 -0
  323. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.d.cts +34 -0
  324. package/dist/lib/cjs/frontmatter.cjs +271 -0
  325. package/dist/lib/cjs/frontmatter.d.cts +145 -0
  326. package/dist/lib/cjs/generated-during-build.cjs +146 -0
  327. package/dist/lib/cjs/generated-during-build.d.cts +25 -0
  328. package/dist/lib/cjs/hover-link-source-registrar.cjs +162 -0
  329. package/dist/lib/cjs/hover-link-source-registrar.d.cts +52 -0
  330. package/dist/lib/cjs/html-element.cjs +183 -0
  331. package/dist/lib/cjs/html-element.d.cts +98 -0
  332. package/dist/lib/cjs/i18n/custom-type-options.cjs +132 -0
  333. package/dist/lib/cjs/i18n/custom-type-options.d.cts +38 -0
  334. package/dist/lib/cjs/i18n/default-translations.cjs +132 -0
  335. package/dist/lib/cjs/i18n/default-translations.d.cts +15 -0
  336. package/dist/lib/cjs/i18n/i18n.cjs +192 -0
  337. package/dist/lib/cjs/i18n/i18n.d.cts +38 -0
  338. package/dist/lib/cjs/i18n/index.cjs +162 -0
  339. package/dist/lib/cjs/i18n/index.d.cts +5 -0
  340. package/dist/lib/cjs/i18n/locales/en.cjs +224 -0
  341. package/dist/lib/cjs/i18n/locales/en.d.cts +91 -0
  342. package/dist/lib/cjs/i18n/locales/index.cjs +156 -0
  343. package/dist/lib/cjs/i18n/locales/index.d.cts +3 -0
  344. package/dist/lib/cjs/i18n/locales/translations-map.cjs +150 -0
  345. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +100 -0
  346. package/dist/lib/cjs/index.cjs +435 -0
  347. package/dist/lib/cjs/index.d.cts +96 -0
  348. package/dist/lib/cjs/is-in-obsidian.cjs +154 -0
  349. package/dist/lib/cjs/is-in-obsidian.d.cts +12 -0
  350. package/dist/lib/cjs/library-styles.cjs +173 -0
  351. package/dist/lib/cjs/library-styles.d.cts +56 -0
  352. package/dist/lib/cjs/library.cjs +181 -0
  353. package/dist/lib/cjs/library.d.cts +57 -0
  354. package/dist/lib/cjs/link-name.cjs +145 -0
  355. package/dist/lib/cjs/link-name.d.cts +23 -0
  356. package/dist/lib/cjs/link-update-progress.cjs +131 -0
  357. package/dist/lib/cjs/link-update-progress.d.cts +32 -0
  358. package/dist/lib/cjs/link.cjs +1053 -0
  359. package/dist/lib/cjs/link.d.cts +1369 -0
  360. package/dist/lib/cjs/logger.cjs +212 -0
  361. package/dist/lib/cjs/logger.d.cts +37 -0
  362. package/dist/lib/cjs/loop.cjs +243 -0
  363. package/dist/lib/cjs/loop.d.cts +104 -0
  364. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +166 -0
  365. package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +62 -0
  366. package/dist/lib/cjs/markdown-code-block-processor.cjs +444 -0
  367. package/dist/lib/cjs/markdown-code-block-processor.d.cts +137 -0
  368. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +163 -0
  369. package/dist/lib/cjs/markdown-post-processor-registrar.d.cts +59 -0
  370. package/dist/lib/cjs/markdown-view.cjs +151 -0
  371. package/dist/lib/cjs/markdown-view.d.cts +14 -0
  372. package/dist/lib/cjs/markdown.cjs +470 -0
  373. package/dist/lib/cjs/markdown.d.cts +226 -0
  374. package/dist/lib/cjs/menu-event-registrar.cjs +131 -0
  375. package/dist/lib/cjs/menu-event-registrar.d.cts +84 -0
  376. package/dist/lib/cjs/metadata-cache.cjs +544 -0
  377. package/dist/lib/cjs/metadata-cache.d.cts +359 -0
  378. package/dist/lib/cjs/mobile-trusted-input.cjs +185 -0
  379. package/dist/lib/cjs/mobile-trusted-input.d.cts +98 -0
  380. package/dist/lib/cjs/modals/alert.cjs +178 -0
  381. package/dist/lib/cjs/modals/alert.d.cts +35 -0
  382. package/dist/lib/cjs/modals/confirm.cjs +188 -0
  383. package/dist/lib/cjs/modals/confirm.d.cts +39 -0
  384. package/dist/lib/cjs/modals/index.cjs +177 -0
  385. package/dist/lib/cjs/modals/index.d.cts +10 -0
  386. package/dist/lib/cjs/modals/minimizable-modal.cjs +441 -0
  387. package/dist/lib/cjs/modals/minimizable-modal.d.cts +129 -0
  388. package/dist/lib/cjs/modals/modal-command-builder.cjs +458 -0
  389. package/dist/lib/cjs/modals/modal-command-builder.d.cts +285 -0
  390. package/dist/lib/cjs/modals/modal.cjs +176 -0
  391. package/dist/lib/cjs/modals/modal.d.cts +64 -0
  392. package/dist/lib/cjs/modals/prompt.cjs +256 -0
  393. package/dist/lib/cjs/modals/prompt.d.cts +83 -0
  394. package/dist/lib/cjs/modals/select-item.cjs +201 -0
  395. package/dist/lib/cjs/modals/select-item.d.cts +55 -0
  396. package/dist/lib/cjs/modals/select-option.cjs +189 -0
  397. package/dist/lib/cjs/modals/select-option.d.cts +65 -0
  398. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +144 -0
  399. package/dist/lib/cjs/modals/suggest-modal-command-builder.d.cts +35 -0
  400. package/dist/lib/cjs/note-priority.cjs +234 -0
  401. package/dist/lib/cjs/note-priority.d.cts +154 -0
  402. package/dist/lib/cjs/notebook-navigator.cjs +163 -0
  403. package/dist/lib/cjs/notebook-navigator.d.cts +132 -0
  404. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +175 -0
  405. package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +42 -0
  406. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +165 -0
  407. package/dist/lib/cjs/obsidian-protocol-handler-registrar.d.cts +55 -0
  408. package/dist/lib/cjs/obsidian-settings.cjs +182 -0
  409. package/dist/lib/cjs/obsidian-settings.d.cts +62 -0
  410. package/dist/lib/cjs/parse-link.cjs +538 -0
  411. package/dist/lib/cjs/parse-link.d.cts +288 -0
  412. package/dist/lib/cjs/path-settings.cjs +269 -0
  413. package/dist/lib/cjs/path-settings.d.cts +56 -0
  414. package/dist/lib/cjs/pdf.cjs +173 -0
  415. package/dist/lib/cjs/pdf.d.cts +26 -0
  416. package/dist/lib/cjs/plugin/index.cjs +174 -0
  417. package/dist/lib/cjs/plugin/index.d.cts +9 -0
  418. package/dist/lib/cjs/plugin/plugin-api.cjs +519 -0
  419. package/dist/lib/cjs/plugin/plugin-api.d.cts +413 -0
  420. package/dist/lib/cjs/plugin/plugin-context.cjs +191 -0
  421. package/dist/lib/cjs/plugin/plugin-context.d.cts +27 -0
  422. package/dist/lib/cjs/plugin/plugin-event-source.cjs +226 -0
  423. package/dist/lib/cjs/plugin/plugin-event-source.d.cts +97 -0
  424. package/dist/lib/cjs/plugin/plugin-install-state.cjs +195 -0
  425. package/dist/lib/cjs/plugin/plugin-install-state.d.cts +113 -0
  426. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +151 -0
  427. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +127 -0
  428. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +611 -0
  429. package/dist/lib/cjs/plugin/plugin-settings-tab.d.cts +368 -0
  430. package/dist/lib/cjs/plugin/plugin.cjs +706 -0
  431. package/dist/lib/cjs/plugin/plugin.d.cts +363 -0
  432. package/dist/lib/cjs/plugin/settings-migration-api.cjs +131 -0
  433. package/dist/lib/cjs/plugin/settings-migration-api.d.cts +91 -0
  434. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +163 -0
  435. package/dist/lib/cjs/plugin-cli-handler-registrar.d.cts +64 -0
  436. package/dist/lib/cjs/popovers/field-popover.cjs +182 -0
  437. package/dist/lib/cjs/popovers/field-popover.d.cts +75 -0
  438. package/dist/lib/cjs/popovers/index.cjs +159 -0
  439. package/dist/lib/cjs/popovers/index.d.cts +4 -0
  440. package/dist/lib/cjs/popovers/popover-anchor.cjs +182 -0
  441. package/dist/lib/cjs/popovers/popover-anchor.d.cts +67 -0
  442. package/dist/lib/cjs/popovers/popover.cjs +229 -0
  443. package/dist/lib/cjs/popovers/popover.d.cts +78 -0
  444. package/dist/lib/cjs/property-entry.cjs +172 -0
  445. package/dist/lib/cjs/property-entry.d.cts +43 -0
  446. package/dist/lib/cjs/queue.cjs +212 -0
  447. package/dist/lib/cjs/queue.d.cts +93 -0
  448. package/dist/lib/cjs/react/app-context.cjs +151 -0
  449. package/dist/lib/cjs/react/app-context.d.cts +24 -0
  450. package/dist/lib/cjs/react/index.cjs +153 -0
  451. package/dist/lib/cjs/react/index.d.cts +2 -0
  452. package/dist/lib/cjs/reference.cjs +186 -0
  453. package/dist/lib/cjs/reference.d.cts +116 -0
  454. package/dist/lib/cjs/resource-lock.cjs +1096 -0
  455. package/dist/lib/cjs/resource-lock.d.cts +318 -0
  456. package/dist/lib/cjs/resource-url.cjs +156 -0
  457. package/dist/lib/cjs/resource-url.d.cts +31 -0
  458. package/dist/lib/cjs/ribbon-icon-registrar.cjs +163 -0
  459. package/dist/lib/cjs/ribbon-icon-registrar.d.cts +60 -0
  460. package/dist/lib/cjs/setting-components/checkbox-component.cjs +216 -0
  461. package/dist/lib/cjs/setting-components/checkbox-component.d.cts +69 -0
  462. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +378 -0
  463. package/dist/lib/cjs/setting-components/code-highlighter-component.d.cts +132 -0
  464. package/dist/lib/cjs/setting-components/date-component.cjs +180 -0
  465. package/dist/lib/cjs/setting-components/date-component.d.cts +38 -0
  466. package/dist/lib/cjs/setting-components/date-time-component.cjs +180 -0
  467. package/dist/lib/cjs/setting-components/date-time-component.d.cts +38 -0
  468. package/dist/lib/cjs/setting-components/email-component.cjs +191 -0
  469. package/dist/lib/cjs/setting-components/email-component.d.cts +49 -0
  470. package/dist/lib/cjs/setting-components/file-component.cjs +183 -0
  471. package/dist/lib/cjs/setting-components/file-component.d.cts +43 -0
  472. package/dist/lib/cjs/setting-components/index.cjs +228 -0
  473. package/dist/lib/cjs/setting-components/index.d.cts +27 -0
  474. package/dist/lib/cjs/setting-components/month-component.cjs +188 -0
  475. package/dist/lib/cjs/setting-components/month-component.d.cts +51 -0
  476. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +253 -0
  477. package/dist/lib/cjs/setting-components/multiple-dropdown-component.d.cts +92 -0
  478. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +177 -0
  479. package/dist/lib/cjs/setting-components/multiple-email-component.d.cts +38 -0
  480. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +185 -0
  481. package/dist/lib/cjs/setting-components/multiple-file-component.d.cts +43 -0
  482. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +272 -0
  483. package/dist/lib/cjs/setting-components/multiple-text-component.d.cts +109 -0
  484. package/dist/lib/cjs/setting-components/number-component.cjs +201 -0
  485. package/dist/lib/cjs/setting-components/number-component.d.cts +56 -0
  486. package/dist/lib/cjs/setting-components/password-component.cjs +177 -0
  487. package/dist/lib/cjs/setting-components/password-component.d.cts +38 -0
  488. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +160 -0
  489. package/dist/lib/cjs/setting-components/setting-component-wrapper.d.cts +13 -0
  490. package/dist/lib/cjs/setting-components/telephone-component.cjs +191 -0
  491. package/dist/lib/cjs/setting-components/telephone-component.d.cts +51 -0
  492. package/dist/lib/cjs/setting-components/text-based-component.cjs +170 -0
  493. package/dist/lib/cjs/setting-components/text-based-component.d.cts +38 -0
  494. package/dist/lib/cjs/setting-components/time-component.cjs +185 -0
  495. package/dist/lib/cjs/setting-components/time-component.d.cts +38 -0
  496. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +217 -0
  497. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.d.cts +69 -0
  498. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +262 -0
  499. package/dist/lib/cjs/setting-components/typed-dropdown-component.d.cts +97 -0
  500. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +264 -0
  501. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.d.cts +99 -0
  502. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +175 -0
  503. package/dist/lib/cjs/setting-components/typed-range-text-component.d.cts +35 -0
  504. package/dist/lib/cjs/setting-components/typed-text-component.cjs +232 -0
  505. package/dist/lib/cjs/setting-components/typed-text-component.d.cts +100 -0
  506. package/dist/lib/cjs/setting-components/url-component.cjs +191 -0
  507. package/dist/lib/cjs/setting-components/url-component.d.cts +49 -0
  508. package/dist/lib/cjs/setting-components/validator-component.cjs +230 -0
  509. package/dist/lib/cjs/setting-components/validator-component.d.cts +23 -0
  510. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +131 -0
  511. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.d.cts +20 -0
  512. package/dist/lib/cjs/setting-components/week-component.cjs +188 -0
  513. package/dist/lib/cjs/setting-components/week-component.d.cts +51 -0
  514. package/dist/lib/cjs/setting-ex.cjs +372 -0
  515. package/dist/lib/cjs/setting-ex.d.cts +198 -0
  516. package/dist/lib/cjs/setting-group-ex.cjs +165 -0
  517. package/dist/lib/cjs/setting-group-ex.d.cts +26 -0
  518. package/dist/lib/cjs/status-bar-item-registrar.cjs +162 -0
  519. package/dist/lib/cjs/status-bar-item-registrar.d.cts +36 -0
  520. package/dist/lib/cjs/templater.cjs +279 -0
  521. package/dist/lib/cjs/templater.d.cts +284 -0
  522. package/dist/lib/cjs/transformers/duration-transformer.cjs +182 -0
  523. package/dist/lib/cjs/transformers/duration-transformer.d.cts +39 -0
  524. package/dist/lib/cjs/transformers/index.cjs +153 -0
  525. package/dist/lib/cjs/transformers/index.d.cts +2 -0
  526. package/dist/lib/cjs/trusted-input.cjs +196 -0
  527. package/dist/lib/cjs/trusted-input.d.cts +131 -0
  528. package/dist/lib/cjs/validation.cjs +189 -0
  529. package/dist/lib/cjs/validation.d.cts +87 -0
  530. package/dist/lib/cjs/vault-delete.cjs +222 -0
  531. package/dist/lib/cjs/vault-delete.d.cts +82 -0
  532. package/dist/lib/cjs/vault-transaction.cjs +412 -0
  533. package/dist/lib/cjs/vault-transaction.d.cts +163 -0
  534. package/dist/lib/cjs/vault.cjs +701 -0
  535. package/dist/lib/cjs/vault.d.cts +506 -0
  536. package/dist/lib/cjs/view-registrar.cjs +162 -0
  537. package/dist/lib/cjs/view-registrar.d.cts +52 -0
  538. package/dist/lib/cjs/workspace.cjs +186 -0
  539. package/dist/lib/cjs/workspace.d.cts +81 -0
  540. package/dist/lib/esm/@types/dataview/api/data-array.d.mts +137 -0
  541. package/dist/lib/esm/@types/dataview/api/extensions.d.mts +16 -0
  542. package/dist/lib/esm/@types/dataview/api/inline-api.d.mts +187 -0
  543. package/dist/lib/esm/@types/dataview/api/plugin-api.d.mts +210 -0
  544. package/dist/lib/esm/@types/dataview/api/result.d.mts +39 -0
  545. package/dist/lib/esm/@types/dataview/data-import/common.d.mts +4 -0
  546. package/dist/lib/esm/@types/dataview/data-import/csv.d.mts +4 -0
  547. package/dist/lib/esm/@types/dataview/data-import/inline-field.d.mts +43 -0
  548. package/dist/lib/esm/@types/dataview/data-import/markdown-file.d.mts +53 -0
  549. package/dist/lib/esm/@types/dataview/data-import/persister.d.mts +33 -0
  550. package/dist/lib/esm/@types/dataview/data-import/web-worker/import-entry.d.mts +2 -0
  551. package/dist/lib/esm/@types/dataview/data-import/web-worker/import-impl.d.mts +7 -0
  552. package/dist/lib/esm/@types/dataview/data-import/web-worker/import-manager.d.mts +38 -0
  553. package/dist/lib/esm/@types/dataview/data-index/index.d.mts +187 -0
  554. package/dist/lib/esm/@types/dataview/data-index/resolver.d.mts +24 -0
  555. package/dist/lib/esm/@types/dataview/data-index/source.d.mts +72 -0
  556. package/dist/lib/esm/@types/dataview/data-model/markdown.d.mts +116 -0
  557. package/dist/lib/esm/@types/dataview/data-model/serialized/markdown.d.mts +107 -0
  558. package/dist/lib/esm/@types/dataview/data-model/transferable.d.mts +8 -0
  559. package/dist/lib/esm/@types/dataview/data-model/value.d.mts +176 -0
  560. package/dist/lib/esm/@types/dataview/expression/binaryop.d.mts +44 -0
  561. package/dist/lib/esm/@types/dataview/expression/context.d.mts +50 -0
  562. package/dist/lib/esm/@types/dataview/expression/field.d.mts +83 -0
  563. package/dist/lib/esm/@types/dataview/expression/functions.d.mts +150 -0
  564. package/dist/lib/esm/@types/dataview/expression/parse.d.mts +164 -0
  565. package/dist/lib/esm/@types/dataview/index.d.mts +56 -0
  566. package/dist/lib/esm/@types/dataview/main.d.mts +53 -0
  567. package/dist/lib/esm/@types/dataview/query/engine.d.mts +104 -0
  568. package/dist/lib/esm/@types/dataview/query/parse.d.mts +45 -0
  569. package/dist/lib/esm/@types/dataview/query/query.d.mts +96 -0
  570. package/dist/lib/esm/@types/dataview/settings.d.mts +61 -0
  571. package/dist/lib/esm/@types/dataview/typings/obsidian-ex.d.mts +29 -0
  572. package/dist/lib/esm/@types/dataview/typings/workers.d.mts +5 -0
  573. package/dist/lib/esm/@types/dataview/ui/export/markdown.d.mts +16 -0
  574. package/dist/lib/esm/@types/dataview/ui/lp-render.d.mts +38 -0
  575. package/dist/lib/esm/@types/dataview/ui/markdown.d.mts +87 -0
  576. package/dist/lib/esm/@types/dataview/ui/refreshable-view.d.mts +19 -0
  577. package/dist/lib/esm/@types/dataview/ui/render.d.mts +34 -0
  578. package/dist/lib/esm/@types/dataview/ui/views/calendar-view.d.mts +18 -0
  579. package/dist/lib/esm/@types/dataview/ui/views/inline-field-live-preview.d.mts +43 -0
  580. package/dist/lib/esm/@types/dataview/ui/views/inline-view.d.mts +29 -0
  581. package/dist/lib/esm/@types/dataview/ui/views/js-view.d.mts +24 -0
  582. package/dist/lib/esm/@types/dataview/ui/views/list-view.d.mts +26 -0
  583. package/dist/lib/esm/@types/dataview/ui/views/table-view.d.mts +29 -0
  584. package/dist/lib/esm/@types/dataview/ui/views/task-view.d.mts +52 -0
  585. package/dist/lib/esm/@types/dataview/util/hash.d.mts +2 -0
  586. package/dist/lib/esm/@types/dataview/util/locale.d.mts +3 -0
  587. package/dist/lib/esm/@types/dataview/util/media.d.mts +7 -0
  588. package/dist/lib/esm/@types/dataview/util/normalize.d.mts +45 -0
  589. package/dist/lib/esm/@types/i18next.d.mts +14 -0
  590. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +29 -0
  591. package/dist/lib/esm/@types/original-fs.d.mts +15 -0
  592. package/dist/lib/esm/__merged.d.mts +205 -0
  593. package/dist/lib/esm/__merged.mjs +1524 -0
  594. package/dist/lib/esm/active-file-provider.d.mts +36 -0
  595. package/dist/lib/esm/active-file-provider.mjs +64 -0
  596. package/dist/lib/esm/app.d.mts +17 -0
  597. package/dist/lib/esm/app.mjs +56 -0
  598. package/dist/lib/esm/async-with-notice.d.mts +113 -0
  599. package/dist/lib/esm/async-with-notice.mjs +141 -0
  600. package/dist/lib/esm/attachment-path.d.mts +341 -0
  601. package/dist/lib/esm/attachment-path.mjs +294 -0
  602. package/dist/lib/esm/attachment-unit-folder.d.mts +103 -0
  603. package/dist/lib/esm/attachment-unit-folder.mjs +70 -0
  604. package/dist/lib/esm/backlink-index.d.mts +51 -0
  605. package/dist/lib/esm/backlink-index.mjs +152 -0
  606. package/dist/lib/esm/backlink.d.mts +66 -0
  607. package/dist/lib/esm/backlink.mjs +123 -0
  608. package/dist/lib/esm/bases-view-registrar.d.mts +52 -0
  609. package/dist/lib/esm/bases-view-registrar.mjs +65 -0
  610. package/dist/lib/esm/callout.d.mts +76 -0
  611. package/dist/lib/esm/callout.mjs +124 -0
  612. package/dist/lib/esm/canvas.d.mts +28 -0
  613. package/dist/lib/esm/canvas.mjs +121 -0
  614. package/dist/lib/esm/case-insensitive-file-index.d.mts +92 -0
  615. package/dist/lib/esm/case-insensitive-file-index.mjs +144 -0
  616. package/dist/lib/esm/code-block-markdown-information.d.mts +48 -0
  617. package/dist/lib/esm/code-block-markdown-information.mjs +42 -0
  618. package/dist/lib/esm/code-block-reg-exp.d.mts +39 -0
  619. package/dist/lib/esm/code-block-reg-exp.mjs +48 -0
  620. package/dist/lib/esm/codemirror/index.d.mts +2 -0
  621. package/dist/lib/esm/codemirror/index.mjs +46 -0
  622. package/dist/lib/esm/codemirror/state-field-spec.d.mts +72 -0
  623. package/dist/lib/esm/codemirror/state-field-spec.mjs +42 -0
  624. package/dist/lib/esm/command-handlers/abstract-file-command-handler.d.mts +274 -0
  625. package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +322 -0
  626. package/dist/lib/esm/command-handlers/command-handler-component.d.mts +146 -0
  627. package/dist/lib/esm/command-handlers/command-handler-component.mjs +185 -0
  628. package/dist/lib/esm/command-handlers/command-handler.d.mts +107 -0
  629. package/dist/lib/esm/command-handlers/command-handler.mjs +103 -0
  630. package/dist/lib/esm/command-handlers/editor-command-handler.d.mts +208 -0
  631. package/dist/lib/esm/command-handlers/editor-command-handler.mjs +254 -0
  632. package/dist/lib/esm/command-handlers/file-command-handler.d.mts +143 -0
  633. package/dist/lib/esm/command-handlers/file-command-handler.mjs +192 -0
  634. package/dist/lib/esm/command-handlers/folder-command-handler.d.mts +149 -0
  635. package/dist/lib/esm/command-handlers/folder-command-handler.mjs +200 -0
  636. package/dist/lib/esm/command-handlers/global-command-handler.d.mts +40 -0
  637. package/dist/lib/esm/command-handlers/global-command-handler.mjs +88 -0
  638. package/dist/lib/esm/command-handlers/index.d.mts +11 -0
  639. package/dist/lib/esm/command-handlers/index.mjs +64 -0
  640. package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.d.mts +73 -0
  641. package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.mjs +102 -0
  642. package/dist/lib/esm/command-handlers/open-settings-command-handler.d.mts +44 -0
  643. package/dist/lib/esm/command-handlers/open-settings-command-handler.mjs +77 -0
  644. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.d.mts +54 -0
  645. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.mjs +90 -0
  646. package/dist/lib/esm/command-registrar.d.mts +48 -0
  647. package/dist/lib/esm/command-registrar.mjs +72 -0
  648. package/dist/lib/esm/community-plugins.d.mts +270 -0
  649. package/dist/lib/esm/community-plugins.mjs +214 -0
  650. package/dist/lib/esm/components/abort-signal-component.d.mts +30 -0
  651. package/dist/lib/esm/components/abort-signal-component.mjs +75 -0
  652. package/dist/lib/esm/components/all-windows-event-component.d.mts +84 -0
  653. package/dist/lib/esm/components/all-windows-event-component.mjs +117 -0
  654. package/dist/lib/esm/components/async-error-handler-component.d.mts +30 -0
  655. package/dist/lib/esm/components/async-error-handler-component.mjs +79 -0
  656. package/dist/lib/esm/components/async-events-component.d.mts +15 -0
  657. package/dist/lib/esm/components/async-events-component.mjs +51 -0
  658. package/dist/lib/esm/components/case-insensitive-file-index-component.d.mts +36 -0
  659. package/dist/lib/esm/components/case-insensitive-file-index-component.mjs +93 -0
  660. package/dist/lib/esm/components/component-ex.d.mts +229 -0
  661. package/dist/lib/esm/components/component-ex.mjs +413 -0
  662. package/dist/lib/esm/components/console-debug-component.d.mts +30 -0
  663. package/dist/lib/esm/components/console-debug-component.mjs +73 -0
  664. package/dist/lib/esm/components/core-plugin-toggle-component.d.mts +102 -0
  665. package/dist/lib/esm/components/core-plugin-toggle-component.mjs +105 -0
  666. package/dist/lib/esm/components/disposable-component.d.mts +24 -0
  667. package/dist/lib/esm/components/disposable-component.mjs +57 -0
  668. package/dist/lib/esm/components/embed-extensions-component.d.mts +38 -0
  669. package/dist/lib/esm/components/embed-extensions-component.mjs +77 -0
  670. package/dist/lib/esm/components/generate-markdown-link-default-params-component.d.mts +42 -0
  671. package/dist/lib/esm/components/generate-markdown-link-default-params-component.mjs +73 -0
  672. package/dist/lib/esm/components/index.d.mts +30 -0
  673. package/dist/lib/esm/components/index.mjs +102 -0
  674. package/dist/lib/esm/components/layout-ready-component.d.mts +48 -0
  675. package/dist/lib/esm/components/layout-ready-component.mjs +113 -0
  676. package/dist/lib/esm/components/menu-event-registrar-component.d.mts +52 -0
  677. package/dist/lib/esm/components/menu-event-registrar-component.mjs +99 -0
  678. package/dist/lib/esm/components/monkey-around-component.d.mts +241 -0
  679. package/dist/lib/esm/components/monkey-around-component.mjs +146 -0
  680. package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.d.mts +150 -0
  681. package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.mjs +227 -0
  682. package/dist/lib/esm/components/plugin-context-component.d.mts +36 -0
  683. package/dist/lib/esm/components/plugin-context-component.mjs +86 -0
  684. package/dist/lib/esm/components/plugin-gate-component.d.mts +332 -0
  685. package/dist/lib/esm/components/plugin-gate-component.mjs +464 -0
  686. package/dist/lib/esm/components/plugin-notice-component.d.mts +362 -0
  687. package/dist/lib/esm/components/plugin-notice-component.mjs +535 -0
  688. package/dist/lib/esm/components/plugin-settings-component.d.mts +362 -0
  689. package/dist/lib/esm/components/plugin-settings-component.mjs +554 -0
  690. package/dist/lib/esm/components/plugin-settings-tab-component.d.mts +39 -0
  691. package/dist/lib/esm/components/plugin-settings-tab-component.mjs +73 -0
  692. package/dist/lib/esm/components/plugin-suggestion-component.d.mts +162 -0
  693. package/dist/lib/esm/components/plugin-suggestion-component.mjs +184 -0
  694. package/dist/lib/esm/components/pointer-position-component.d.mts +29 -0
  695. package/dist/lib/esm/components/pointer-position-component.mjs +69 -0
  696. package/dist/lib/esm/components/registry-component.d.mts +37 -0
  697. package/dist/lib/esm/components/registry-component.mjs +90 -0
  698. package/dist/lib/esm/components/release-notes-component.d.mts +129 -0
  699. package/dist/lib/esm/components/release-notes-component.mjs +128 -0
  700. package/dist/lib/esm/components/rename-delete-handler-component.d.mts +165 -0
  701. package/dist/lib/esm/components/rename-delete-handler-component.mjs +1230 -0
  702. package/dist/lib/esm/components/rmdir-guard-component.d.mts +76 -0
  703. package/dist/lib/esm/components/rmdir-guard-component.mjs +92 -0
  704. package/dist/lib/esm/components/settings-migration-component.d.mts +120 -0
  705. package/dist/lib/esm/components/settings-migration-component.mjs +125 -0
  706. package/dist/lib/esm/components/syntax-highlighting-component.d.mts +149 -0
  707. package/dist/lib/esm/components/syntax-highlighting-component.mjs +151 -0
  708. package/dist/lib/esm/components/templates-language-component.d.mts +124 -0
  709. package/dist/lib/esm/components/templates-language-component.mjs +179 -0
  710. package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.d.mts +22 -0
  711. package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.mjs +149 -0
  712. package/dist/lib/esm/constructors/index.d.mts +2 -0
  713. package/dist/lib/esm/constructors/index.mjs +46 -0
  714. package/dist/lib/esm/css-class.d.mts +278 -0
  715. package/dist/lib/esm/css-class.mjs +111 -0
  716. package/dist/lib/esm/data-handler.d.mts +49 -0
  717. package/dist/lib/esm/data-handler.mjs +73 -0
  718. package/dist/lib/esm/dataview-link.d.mts +42 -0
  719. package/dist/lib/esm/dataview-link.mjs +66 -0
  720. package/dist/lib/esm/dataview.d.mts +249 -0
  721. package/dist/lib/esm/dataview.mjs +280 -0
  722. package/dist/lib/esm/debug.d.mts +19 -0
  723. package/dist/lib/esm/debug.mjs +51 -0
  724. package/dist/lib/esm/demo-vault-helper-settings.d.mts +29 -0
  725. package/dist/lib/esm/demo-vault-helper-settings.mjs +42 -0
  726. package/dist/lib/esm/demo-vault-helper.d.mts +61 -0
  727. package/dist/lib/esm/demo-vault-helper.mjs +142 -0
  728. package/dist/lib/esm/demo-vault-naming.d.mts +54 -0
  729. package/dist/lib/esm/demo-vault-naming.mjs +59 -0
  730. package/dist/lib/esm/desktop-demo-vault-opener.d.mts +76 -0
  731. package/dist/lib/esm/desktop-demo-vault-opener.mjs +266 -0
  732. package/dist/lib/esm/desktop-trusted-input.d.mts +288 -0
  733. package/dist/lib/esm/desktop-trusted-input.mjs +198 -0
  734. package/dist/lib/esm/editor-extension-registrar.d.mts +37 -0
  735. package/dist/lib/esm/editor-extension-registrar.mjs +65 -0
  736. package/dist/lib/esm/editor-suggest-registrar.d.mts +36 -0
  737. package/dist/lib/esm/editor-suggest-registrar.mjs +68 -0
  738. package/dist/lib/esm/editor.d.mts +45 -0
  739. package/dist/lib/esm/editor.mjs +107 -0
  740. package/dist/lib/esm/events.d.mts +98 -0
  741. package/dist/lib/esm/events.mjs +73 -0
  742. package/dist/lib/esm/extensions-registrar.d.mts +51 -0
  743. package/dist/lib/esm/extensions-registrar.mjs +65 -0
  744. package/dist/lib/esm/file-change.d.mts +156 -0
  745. package/dist/lib/esm/file-change.mjs +473 -0
  746. package/dist/lib/esm/file-explorer.d.mts +34 -0
  747. package/dist/lib/esm/file-explorer.mjs +60 -0
  748. package/dist/lib/esm/file-manager.d.mts +123 -0
  749. package/dist/lib/esm/file-manager.mjs +161 -0
  750. package/dist/lib/esm/file-system.d.mts +554 -0
  751. package/dist/lib/esm/file-system.mjs +458 -0
  752. package/dist/lib/esm/folder-note.d.mts +166 -0
  753. package/dist/lib/esm/folder-note.mjs +161 -0
  754. package/dist/lib/esm/frontmatter-formatting.d.mts +44 -0
  755. package/dist/lib/esm/frontmatter-formatting.mjs +368 -0
  756. package/dist/lib/esm/frontmatter-link-cache-with-offsets.d.mts +34 -0
  757. package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +61 -0
  758. package/dist/lib/esm/frontmatter.d.mts +145 -0
  759. package/dist/lib/esm/frontmatter.mjs +174 -0
  760. package/dist/lib/esm/generated-during-build.d.mts +25 -0
  761. package/dist/lib/esm/generated-during-build.mjs +48 -0
  762. package/dist/lib/esm/hover-link-source-registrar.d.mts +52 -0
  763. package/dist/lib/esm/hover-link-source-registrar.mjs +65 -0
  764. package/dist/lib/esm/html-element.d.mts +98 -0
  765. package/dist/lib/esm/html-element.mjs +86 -0
  766. package/dist/lib/esm/i18n/custom-type-options.d.mts +38 -0
  767. package/dist/lib/esm/i18n/custom-type-options.mjs +43 -0
  768. package/dist/lib/esm/i18n/default-translations.d.mts +15 -0
  769. package/dist/lib/esm/i18n/default-translations.mjs +43 -0
  770. package/dist/lib/esm/i18n/i18n.d.mts +38 -0
  771. package/dist/lib/esm/i18n/i18n.mjs +89 -0
  772. package/dist/lib/esm/i18n/index.d.mts +5 -0
  773. package/dist/lib/esm/i18n/index.mjs +52 -0
  774. package/dist/lib/esm/i18n/locales/en.d.mts +91 -0
  775. package/dist/lib/esm/i18n/locales/en.mjs +127 -0
  776. package/dist/lib/esm/i18n/locales/index.d.mts +3 -0
  777. package/dist/lib/esm/i18n/locales/index.mjs +48 -0
  778. package/dist/lib/esm/i18n/locales/translations-map.d.mts +100 -0
  779. package/dist/lib/esm/i18n/locales/translations-map.mjs +52 -0
  780. package/dist/lib/esm/index.d.mts +96 -0
  781. package/dist/lib/esm/index.mjs +234 -0
  782. package/dist/lib/esm/is-in-obsidian.d.mts +12 -0
  783. package/dist/lib/esm/is-in-obsidian.mjs +59 -0
  784. package/dist/lib/esm/library-styles.d.mts +56 -0
  785. package/dist/lib/esm/library-styles.mjs +72 -0
  786. package/dist/lib/esm/library.d.mts +57 -0
  787. package/dist/lib/esm/library.mjs +83 -0
  788. package/dist/lib/esm/link-name.d.mts +23 -0
  789. package/dist/lib/esm/link-name.mjs +48 -0
  790. package/dist/lib/esm/link-update-progress.d.mts +32 -0
  791. package/dist/lib/esm/link-update-progress.mjs +42 -0
  792. package/dist/lib/esm/link.d.mts +1369 -0
  793. package/dist/lib/esm/link.mjs +988 -0
  794. package/dist/lib/esm/logger.d.mts +37 -0
  795. package/dist/lib/esm/logger.mjs +115 -0
  796. package/dist/lib/esm/loop.d.mts +104 -0
  797. package/dist/lib/esm/loop.mjs +151 -0
  798. package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +62 -0
  799. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +69 -0
  800. package/dist/lib/esm/markdown-code-block-processor.d.mts +137 -0
  801. package/dist/lib/esm/markdown-code-block-processor.mjs +356 -0
  802. package/dist/lib/esm/markdown-post-processor-registrar.d.mts +59 -0
  803. package/dist/lib/esm/markdown-post-processor-registrar.mjs +66 -0
  804. package/dist/lib/esm/markdown-view.d.mts +14 -0
  805. package/dist/lib/esm/markdown-view.mjs +54 -0
  806. package/dist/lib/esm/markdown.d.mts +226 -0
  807. package/dist/lib/esm/markdown.mjs +391 -0
  808. package/dist/lib/esm/menu-event-registrar.d.mts +84 -0
  809. package/dist/lib/esm/menu-event-registrar.mjs +42 -0
  810. package/dist/lib/esm/metadata-cache.d.mts +359 -0
  811. package/dist/lib/esm/metadata-cache.mjs +454 -0
  812. package/dist/lib/esm/mobile-trusted-input.d.mts +98 -0
  813. package/dist/lib/esm/mobile-trusted-input.mjs +82 -0
  814. package/dist/lib/esm/modals/alert.d.mts +35 -0
  815. package/dist/lib/esm/modals/alert.mjs +84 -0
  816. package/dist/lib/esm/modals/confirm.d.mts +39 -0
  817. package/dist/lib/esm/modals/confirm.mjs +94 -0
  818. package/dist/lib/esm/modals/index.d.mts +10 -0
  819. package/dist/lib/esm/modals/index.mjs +62 -0
  820. package/dist/lib/esm/modals/minimizable-modal.d.mts +129 -0
  821. package/dist/lib/esm/modals/minimizable-modal.mjs +348 -0
  822. package/dist/lib/esm/modals/modal-command-builder.d.mts +285 -0
  823. package/dist/lib/esm/modals/modal-command-builder.mjs +363 -0
  824. package/dist/lib/esm/modals/modal.d.mts +64 -0
  825. package/dist/lib/esm/modals/modal.mjs +78 -0
  826. package/dist/lib/esm/modals/prompt.d.mts +83 -0
  827. package/dist/lib/esm/modals/prompt.mjs +168 -0
  828. package/dist/lib/esm/modals/select-item.d.mts +55 -0
  829. package/dist/lib/esm/modals/select-item.mjs +104 -0
  830. package/dist/lib/esm/modals/select-option.d.mts +65 -0
  831. package/dist/lib/esm/modals/select-option.mjs +95 -0
  832. package/dist/lib/esm/modals/suggest-modal-command-builder.d.mts +35 -0
  833. package/dist/lib/esm/modals/suggest-modal-command-builder.mjs +47 -0
  834. package/dist/lib/esm/note-priority.d.mts +154 -0
  835. package/dist/lib/esm/note-priority.mjs +135 -0
  836. package/dist/lib/esm/notebook-navigator.d.mts +132 -0
  837. package/dist/lib/esm/notebook-navigator.mjs +64 -0
  838. package/dist/lib/esm/obsidian-dev-utils-state.d.mts +42 -0
  839. package/dist/lib/esm/obsidian-dev-utils-state.mjs +76 -0
  840. package/dist/lib/esm/obsidian-protocol-handler-registrar.d.mts +55 -0
  841. package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +68 -0
  842. package/dist/lib/esm/obsidian-settings.d.mts +62 -0
  843. package/dist/lib/esm/obsidian-settings.mjs +81 -0
  844. package/dist/lib/esm/parse-link.d.mts +288 -0
  845. package/dist/lib/esm/parse-link.mjs +428 -0
  846. package/dist/lib/esm/path-settings.d.mts +56 -0
  847. package/dist/lib/esm/path-settings.mjs +176 -0
  848. package/dist/lib/esm/pdf.d.mts +26 -0
  849. package/dist/lib/esm/pdf.mjs +76 -0
  850. package/dist/lib/esm/plugin/index.d.mts +9 -0
  851. package/dist/lib/esm/plugin/index.mjs +60 -0
  852. package/dist/lib/esm/plugin/plugin-api.d.mts +413 -0
  853. package/dist/lib/esm/plugin/plugin-api.mjs +422 -0
  854. package/dist/lib/esm/plugin/plugin-context.d.mts +27 -0
  855. package/dist/lib/esm/plugin/plugin-context.mjs +101 -0
  856. package/dist/lib/esm/plugin/plugin-event-source.d.mts +97 -0
  857. package/dist/lib/esm/plugin/plugin-event-source.mjs +129 -0
  858. package/dist/lib/esm/plugin/plugin-install-state.d.mts +113 -0
  859. package/dist/lib/esm/plugin/plugin-install-state.mjs +101 -0
  860. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +127 -0
  861. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +52 -0
  862. package/dist/lib/esm/plugin/plugin-settings-tab.d.mts +368 -0
  863. package/dist/lib/esm/plugin/plugin-settings-tab.mjs +527 -0
  864. package/dist/lib/esm/plugin/plugin.d.mts +363 -0
  865. package/dist/lib/esm/plugin/plugin.mjs +611 -0
  866. package/dist/lib/esm/plugin/settings-migration-api.d.mts +91 -0
  867. package/dist/lib/esm/plugin/settings-migration-api.mjs +42 -0
  868. package/dist/lib/esm/plugin-cli-handler-registrar.d.mts +64 -0
  869. package/dist/lib/esm/plugin-cli-handler-registrar.mjs +66 -0
  870. package/dist/lib/esm/popovers/field-popover.d.mts +75 -0
  871. package/dist/lib/esm/popovers/field-popover.mjs +88 -0
  872. package/dist/lib/esm/popovers/index.d.mts +4 -0
  873. package/dist/lib/esm/popovers/index.mjs +50 -0
  874. package/dist/lib/esm/popovers/popover-anchor.d.mts +67 -0
  875. package/dist/lib/esm/popovers/popover-anchor.mjs +82 -0
  876. package/dist/lib/esm/popovers/popover.d.mts +78 -0
  877. package/dist/lib/esm/popovers/popover.mjs +132 -0
  878. package/dist/lib/esm/property-entry.d.mts +43 -0
  879. package/dist/lib/esm/property-entry.mjs +73 -0
  880. package/dist/lib/esm/queue.d.mts +93 -0
  881. package/dist/lib/esm/queue.mjs +122 -0
  882. package/dist/lib/esm/react/app-context.d.mts +24 -0
  883. package/dist/lib/esm/react/app-context.mjs +56 -0
  884. package/dist/lib/esm/react/index.d.mts +2 -0
  885. package/dist/lib/esm/react/index.mjs +46 -0
  886. package/dist/lib/esm/reference.d.mts +116 -0
  887. package/dist/lib/esm/reference.mjs +87 -0
  888. package/dist/lib/esm/resource-lock.d.mts +318 -0
  889. package/dist/lib/esm/resource-lock.mjs +1006 -0
  890. package/dist/lib/esm/resource-url.d.mts +31 -0
  891. package/dist/lib/esm/resource-url.mjs +59 -0
  892. package/dist/lib/esm/ribbon-icon-registrar.d.mts +60 -0
  893. package/dist/lib/esm/ribbon-icon-registrar.mjs +66 -0
  894. package/dist/lib/esm/setting-components/checkbox-component.d.mts +69 -0
  895. package/dist/lib/esm/setting-components/checkbox-component.mjs +119 -0
  896. package/dist/lib/esm/setting-components/code-highlighter-component.d.mts +132 -0
  897. package/dist/lib/esm/setting-components/code-highlighter-component.mjs +287 -0
  898. package/dist/lib/esm/setting-components/date-component.d.mts +38 -0
  899. package/dist/lib/esm/setting-components/date-component.mjs +83 -0
  900. package/dist/lib/esm/setting-components/date-time-component.d.mts +38 -0
  901. package/dist/lib/esm/setting-components/date-time-component.mjs +83 -0
  902. package/dist/lib/esm/setting-components/email-component.d.mts +49 -0
  903. package/dist/lib/esm/setting-components/email-component.mjs +94 -0
  904. package/dist/lib/esm/setting-components/file-component.d.mts +43 -0
  905. package/dist/lib/esm/setting-components/file-component.mjs +86 -0
  906. package/dist/lib/esm/setting-components/index.d.mts +27 -0
  907. package/dist/lib/esm/setting-components/index.mjs +96 -0
  908. package/dist/lib/esm/setting-components/month-component.d.mts +51 -0
  909. package/dist/lib/esm/setting-components/month-component.mjs +91 -0
  910. package/dist/lib/esm/setting-components/multiple-dropdown-component.d.mts +92 -0
  911. package/dist/lib/esm/setting-components/multiple-dropdown-component.mjs +159 -0
  912. package/dist/lib/esm/setting-components/multiple-email-component.d.mts +38 -0
  913. package/dist/lib/esm/setting-components/multiple-email-component.mjs +80 -0
  914. package/dist/lib/esm/setting-components/multiple-file-component.d.mts +43 -0
  915. package/dist/lib/esm/setting-components/multiple-file-component.mjs +88 -0
  916. package/dist/lib/esm/setting-components/multiple-text-component.d.mts +109 -0
  917. package/dist/lib/esm/setting-components/multiple-text-component.mjs +178 -0
  918. package/dist/lib/esm/setting-components/number-component.d.mts +56 -0
  919. package/dist/lib/esm/setting-components/number-component.mjs +104 -0
  920. package/dist/lib/esm/setting-components/password-component.d.mts +38 -0
  921. package/dist/lib/esm/setting-components/password-component.mjs +80 -0
  922. package/dist/lib/esm/setting-components/setting-component-wrapper.d.mts +13 -0
  923. package/dist/lib/esm/setting-components/setting-component-wrapper.mjs +63 -0
  924. package/dist/lib/esm/setting-components/telephone-component.d.mts +51 -0
  925. package/dist/lib/esm/setting-components/telephone-component.mjs +94 -0
  926. package/dist/lib/esm/setting-components/text-based-component.d.mts +38 -0
  927. package/dist/lib/esm/setting-components/text-based-component.mjs +73 -0
  928. package/dist/lib/esm/setting-components/time-component.d.mts +38 -0
  929. package/dist/lib/esm/setting-components/time-component.mjs +88 -0
  930. package/dist/lib/esm/setting-components/tri-state-checkbox-component.d.mts +69 -0
  931. package/dist/lib/esm/setting-components/tri-state-checkbox-component.mjs +120 -0
  932. package/dist/lib/esm/setting-components/typed-dropdown-component.d.mts +97 -0
  933. package/dist/lib/esm/setting-components/typed-dropdown-component.mjs +168 -0
  934. package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.d.mts +99 -0
  935. package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.mjs +167 -0
  936. package/dist/lib/esm/setting-components/typed-range-text-component.d.mts +35 -0
  937. package/dist/lib/esm/setting-components/typed-range-text-component.mjs +78 -0
  938. package/dist/lib/esm/setting-components/typed-text-component.d.mts +100 -0
  939. package/dist/lib/esm/setting-components/typed-text-component.mjs +138 -0
  940. package/dist/lib/esm/setting-components/url-component.d.mts +49 -0
  941. package/dist/lib/esm/setting-components/url-component.mjs +94 -0
  942. package/dist/lib/esm/setting-components/validator-component.d.mts +23 -0
  943. package/dist/lib/esm/setting-components/validator-component.mjs +142 -0
  944. package/dist/lib/esm/setting-components/value-component-with-change-tracking.d.mts +20 -0
  945. package/dist/lib/esm/setting-components/value-component-with-change-tracking.mjs +42 -0
  946. package/dist/lib/esm/setting-components/week-component.d.mts +51 -0
  947. package/dist/lib/esm/setting-components/week-component.mjs +91 -0
  948. package/dist/lib/esm/setting-ex.d.mts +198 -0
  949. package/dist/lib/esm/setting-ex.mjs +274 -0
  950. package/dist/lib/esm/setting-group-ex.d.mts +26 -0
  951. package/dist/lib/esm/setting-group-ex.mjs +68 -0
  952. package/dist/lib/esm/status-bar-item-registrar.d.mts +36 -0
  953. package/dist/lib/esm/status-bar-item-registrar.mjs +65 -0
  954. package/dist/lib/esm/templater.d.mts +284 -0
  955. package/dist/lib/esm/templater.mjs +173 -0
  956. package/dist/lib/esm/transformers/duration-transformer.d.mts +39 -0
  957. package/dist/lib/esm/transformers/duration-transformer.mjs +85 -0
  958. package/dist/lib/esm/transformers/index.d.mts +2 -0
  959. package/dist/lib/esm/transformers/index.mjs +46 -0
  960. package/dist/lib/esm/trusted-input.d.mts +131 -0
  961. package/dist/lib/esm/trusted-input.mjs +83 -0
  962. package/dist/lib/esm/validation.d.mts +87 -0
  963. package/dist/lib/esm/validation.mjs +87 -0
  964. package/dist/lib/esm/vault-delete.d.mts +82 -0
  965. package/dist/lib/esm/vault-delete.mjs +132 -0
  966. package/dist/lib/esm/vault-transaction.d.mts +163 -0
  967. package/dist/lib/esm/vault-transaction.mjs +325 -0
  968. package/dist/lib/esm/vault.d.mts +506 -0
  969. package/dist/lib/esm/vault.mjs +604 -0
  970. package/dist/lib/esm/view-registrar.d.mts +52 -0
  971. package/dist/lib/esm/view-registrar.mjs +65 -0
  972. package/dist/lib/esm/workspace.d.mts +81 -0
  973. package/dist/lib/esm/workspace.mjs +84 -0
  974. package/dist/styles.css +497 -0
  975. package/i18n/custom-type-options/package.json +6 -0
  976. package/i18n/default-translations/package.json +6 -0
  977. package/i18n/i18n/package.json +6 -0
  978. package/i18n/index/package.json +6 -0
  979. package/i18n/locales/en/package.json +6 -0
  980. package/i18n/locales/index/package.json +6 -0
  981. package/i18n/locales/package.json +6 -0
  982. package/i18n/locales/translations-map/package.json +6 -0
  983. package/i18n/package.json +6 -0
  984. package/modals/alert/package.json +6 -0
  985. package/modals/confirm/package.json +6 -0
  986. package/modals/index/package.json +6 -0
  987. package/modals/minimizable-modal/package.json +6 -0
  988. package/modals/modal/package.json +6 -0
  989. package/modals/modal-command-builder/package.json +6 -0
  990. package/modals/package.json +6 -0
  991. package/modals/prompt/package.json +6 -0
  992. package/modals/select-item/package.json +6 -0
  993. package/modals/select-option/package.json +6 -0
  994. package/modals/suggest-modal-command-builder/package.json +6 -0
  995. package/package.json +533 -13
  996. package/plugin/index/package.json +6 -0
  997. package/plugin/package.json +6 -0
  998. package/plugin/plugin/package.json +6 -0
  999. package/plugin/plugin-api/package.json +6 -0
  1000. package/plugin/plugin-context/package.json +6 -0
  1001. package/plugin/plugin-event-source/package.json +6 -0
  1002. package/plugin/plugin-install-state/package.json +6 -0
  1003. package/plugin/plugin-lifecycle-events/package.json +6 -0
  1004. package/plugin/plugin-settings-tab/package.json +6 -0
  1005. package/plugin/settings-migration-api/package.json +6 -0
  1006. package/popovers/field-popover/package.json +6 -0
  1007. package/popovers/index/package.json +6 -0
  1008. package/popovers/package.json +6 -0
  1009. package/popovers/popover/package.json +6 -0
  1010. package/popovers/popover-anchor/package.json +6 -0
  1011. package/react/app-context/package.json +6 -0
  1012. package/react/index/package.json +6 -0
  1013. package/react/package.json +6 -0
  1014. package/setting-components/checkbox-component/package.json +6 -0
  1015. package/setting-components/code-highlighter-component/package.json +6 -0
  1016. package/setting-components/date-component/package.json +6 -0
  1017. package/setting-components/date-time-component/package.json +6 -0
  1018. package/setting-components/email-component/package.json +6 -0
  1019. package/setting-components/file-component/package.json +6 -0
  1020. package/setting-components/index/package.json +6 -0
  1021. package/setting-components/month-component/package.json +6 -0
  1022. package/setting-components/multiple-dropdown-component/package.json +6 -0
  1023. package/setting-components/multiple-email-component/package.json +6 -0
  1024. package/setting-components/multiple-file-component/package.json +6 -0
  1025. package/setting-components/multiple-text-component/package.json +6 -0
  1026. package/setting-components/number-component/package.json +6 -0
  1027. package/setting-components/package.json +6 -0
  1028. package/setting-components/password-component/package.json +6 -0
  1029. package/setting-components/setting-component-wrapper/package.json +6 -0
  1030. package/setting-components/telephone-component/package.json +6 -0
  1031. package/setting-components/text-based-component/package.json +6 -0
  1032. package/setting-components/time-component/package.json +6 -0
  1033. package/setting-components/tri-state-checkbox-component/package.json +6 -0
  1034. package/setting-components/typed-dropdown-component/package.json +6 -0
  1035. package/setting-components/typed-multiple-dropdown-component/package.json +6 -0
  1036. package/setting-components/typed-range-text-component/package.json +6 -0
  1037. package/setting-components/typed-text-component/package.json +6 -0
  1038. package/setting-components/url-component/package.json +6 -0
  1039. package/setting-components/validator-component/package.json +6 -0
  1040. package/setting-components/value-component-with-change-tracking/package.json +6 -0
  1041. package/setting-components/week-component/package.json +6 -0
  1042. package/transformers/duration-transformer/package.json +6 -0
  1043. package/transformers/index/package.json +6 -0
  1044. package/transformers/package.json +6 -0
@@ -0,0 +1,368 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
+ symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return "/";
17
+ },
18
+ env: {},
19
+ platform: "android"
20
+ };
21
+ const existingProcess = globalThis.process;
22
+ if (!existingProcess) {
23
+ globalThis.process = browserProcess;
24
+ return;
25
+ }
26
+ if (existingProcess.versions?.node) {
27
+ return;
28
+ }
29
+ const existingProcessRecord = existingProcess;
30
+ for (const [key, value] of Object.entries(browserProcess)) {
31
+ existingProcessRecord[key] ??= value;
32
+ }
33
+ existingProcessRecord["browser"] = true;
34
+ }
35
+
36
+ (function initEsm() {
37
+ ensureDisposeSymbols();
38
+ ensureBrowserProcess();
39
+ })();
40
+ })();
41
+
42
+ import {
43
+ castTo,
44
+ isDeepEqual
45
+ } from "@mnaoumov/typescript-lib/object-utils";
46
+ import { insertAt } from "@mnaoumov/typescript-lib/string";
47
+ import {
48
+ getFrontMatterInfo,
49
+ parseYaml,
50
+ stringifyYaml
51
+ } from "obsidian";
52
+ import {
53
+ Composer,
54
+ CST,
55
+ isAlias,
56
+ parseDocument,
57
+ Parser,
58
+ stringify,
59
+ visit
60
+ } from "yaml";
61
+ import {
62
+ checkIsPlainObject,
63
+ registerFrontmatterFormattingPreserver
64
+ } from "./frontmatter.mjs";
65
+ const EDIT_SCRIPT_CELL_LIMIT = 1e4;
66
+ const EMPTY_MAPPING_FRAGMENT = "{}";
67
+ const OBSIDIAN_STRINGIFY_OPTIONS = {
68
+ aliasDuplicateObjects: false,
69
+ lineWidth: 0,
70
+ // eslint-disable-next-line unicorn/name-replacements -- `nullStr` is the `yaml` package's own option name.
71
+ nullStr: ""
72
+ };
73
+ const PLACEHOLDER_KEY = "k";
74
+ const SECOND_TO_LAST_INDEX = -2;
75
+ const TRAILING_NEWLINE_REG_EXP = /\n$/;
76
+ const UNRESOLVED_TAG_WARNING_CODE = "TAG_RESOLVE_FAILED";
77
+ function enableFrontmatterFormattingPreservation() {
78
+ registerFrontmatterFormattingPreserver(preserveFrontmatterFormatting);
79
+ }
80
+ function preserveFrontmatterFormatting(content, newFrontmatter) {
81
+ const frontmatterInfo = getFrontMatterInfo(content);
82
+ if (!frontmatterInfo.exists || Object.keys(newFrontmatter).length === 0) {
83
+ return null;
84
+ }
85
+ const splicedBody = spliceFrontmatterBody(frontmatterInfo.frontmatter, newFrontmatter);
86
+ return splicedBody === null ? null : insertAt({
87
+ $string: content,
88
+ endIndex: frontmatterInfo.to,
89
+ startIndex: frontmatterInfo.from,
90
+ substring: splicedBody
91
+ });
92
+ }
93
+ function buildEditScript(oldArray, newArray) {
94
+ const rawSteps = buildRawEditScript(oldArray, newArray);
95
+ const steps = [];
96
+ for (let index = 0; index < rawSteps.length; index++) {
97
+ const step = castTo(rawSteps[index]);
98
+ const nextStep = rawSteps[index + 1];
99
+ if (step.kind === "remove" && nextStep?.kind === "insert" && checkIsMergeable(oldArray[step.oldIndex], newArray[nextStep.newIndex])) {
100
+ steps.push({ kind: "merge", newIndex: nextStep.newIndex, oldIndex: step.oldIndex });
101
+ index++;
102
+ continue;
103
+ }
104
+ if (step.kind !== "remove") {
105
+ steps.push({ kind: step.kind, newIndex: step.newIndex, oldIndex: step.oldIndex });
106
+ }
107
+ }
108
+ return steps;
109
+ }
110
+ function buildRawEditScript(oldArray, newArray) {
111
+ const oldLength = oldArray.length;
112
+ const newLength = newArray.length;
113
+ const commonLengths = Array.from({ length: oldLength + 1 }, () => Array.from({ length: newLength + 1 }, () => 0));
114
+ for (let oldIndex2 = oldLength - 1; oldIndex2 >= 0; oldIndex2--) {
115
+ for (let newIndex2 = newLength - 1; newIndex2 >= 0; newIndex2--) {
116
+ const row = castTo(commonLengths[oldIndex2]);
117
+ const nextRow = castTo(commonLengths[oldIndex2 + 1]);
118
+ row[newIndex2] = isDeepEqual(oldArray[oldIndex2], newArray[newIndex2]) ? castTo(nextRow[newIndex2 + 1]) + 1 : Math.max(castTo(nextRow[newIndex2]), castTo(row[newIndex2 + 1]));
119
+ }
120
+ }
121
+ const steps = [];
122
+ let oldIndex = 0;
123
+ let newIndex = 0;
124
+ while (oldIndex < oldLength && newIndex < newLength) {
125
+ if (isDeepEqual(oldArray[oldIndex], newArray[newIndex])) {
126
+ steps.push({ kind: "keep", newIndex, oldIndex });
127
+ oldIndex++;
128
+ newIndex++;
129
+ continue;
130
+ }
131
+ const removalRow = castTo(commonLengths[oldIndex + 1]);
132
+ const insertionRow = castTo(commonLengths[oldIndex]);
133
+ const removalCommonLength = castTo(removalRow[newIndex]);
134
+ const insertionCommonLength = castTo(insertionRow[newIndex + 1]);
135
+ if (removalCommonLength >= insertionCommonLength) {
136
+ steps.push({ kind: "remove", newIndex: -1, oldIndex });
137
+ oldIndex++;
138
+ } else {
139
+ steps.push({ kind: "insert", newIndex, oldIndex: -1 });
140
+ newIndex++;
141
+ }
142
+ }
143
+ for (; oldIndex < oldLength; oldIndex++) {
144
+ steps.push({ kind: "remove", newIndex: -1, oldIndex });
145
+ }
146
+ for (; newIndex < newLength; newIndex++) {
147
+ steps.push({ kind: "insert", newIndex, oldIndex: -1 });
148
+ }
149
+ return steps;
150
+ }
151
+ function checkCarriesIndent(item, indent) {
152
+ return CST.stringify(item).replace(/^\n+/, "").startsWith(" ".repeat(indent));
153
+ }
154
+ function checkHasAnchorOrAlias(contents) {
155
+ let hasAnchorOrAlias = false;
156
+ visit(contents, {
157
+ Node(_key, node) {
158
+ if (!isAlias(node) && node.anchor === void 0) {
159
+ return void 0;
160
+ }
161
+ hasAnchorOrAlias = true;
162
+ return visit.BREAK;
163
+ }
164
+ });
165
+ return hasAnchorOrAlias;
166
+ }
167
+ function checkIsMergeable(oldValue, newValue) {
168
+ return checkIsPlainObject(oldValue) && checkIsPlainObject(newValue) || Array.isArray(oldValue) && Array.isArray(newValue);
169
+ }
170
+ function checkIsSemanticMatch(splicedBody, newFrontmatter) {
171
+ let splicedValue;
172
+ try {
173
+ splicedValue = parseYaml(splicedBody);
174
+ } catch {
175
+ return false;
176
+ }
177
+ return isDeepEqual(splicedValue, parseYaml(stringifyYaml(newFrontmatter)));
178
+ }
179
+ function createMapItem(key, value, indent) {
180
+ const fragment = stringify({ [key]: value }, OBSIDIAN_STRINGIFY_OPTIONS);
181
+ return fragment.trimEnd() === EMPTY_MAPPING_FRAGMENT ? null : liftFragmentItem(fragment, indent, true);
182
+ }
183
+ function createSeqItem(value, indent) {
184
+ return liftFragmentItem(stringify([value], OBSIDIAN_STRINGIFY_OPTIONS), indent, true);
185
+ }
186
+ function createSpaceToken(indent) {
187
+ return {
188
+ indent,
189
+ offset: -1,
190
+ source: " ".repeat(indent),
191
+ type: "space"
192
+ };
193
+ }
194
+ function didMergeMap(token, oldObject, newObject) {
195
+ normalizeItemIndents(token);
196
+ const itemsByKey = /* @__PURE__ */ new Map();
197
+ for (const item of token.items) {
198
+ const key = readItemKey(item);
199
+ if (key === null || itemsByKey.has(key)) {
200
+ return false;
201
+ }
202
+ itemsByKey.set(key, item);
203
+ }
204
+ const mergedItems = [];
205
+ for (const [key, newValue] of Object.entries(newObject)) {
206
+ const item = itemsByKey.get(key);
207
+ if (!item) {
208
+ const createdItem = createMapItem(key, newValue, token.indent);
209
+ if (createdItem !== null) {
210
+ mergedItems.push(createdItem);
211
+ }
212
+ continue;
213
+ }
214
+ mergeItemValue(item, oldObject[key], newValue, token.indent, false);
215
+ mergedItems.push(item);
216
+ }
217
+ if (mergedItems.length === 0) {
218
+ return false;
219
+ }
220
+ finalizeItems(mergedItems);
221
+ token.items = castTo(mergedItems);
222
+ return true;
223
+ }
224
+ function didMergeSeq(token, oldArray, newArray) {
225
+ if (oldArray.length * newArray.length > EDIT_SCRIPT_CELL_LIMIT) {
226
+ return false;
227
+ }
228
+ normalizeItemIndents(token);
229
+ const mergedItems = [];
230
+ for (const step of buildEditScript(oldArray, newArray)) {
231
+ if (step.kind === "insert") {
232
+ mergedItems.push(createSeqItem(newArray[step.newIndex], token.indent));
233
+ continue;
234
+ }
235
+ const item = castTo(token.items[step.oldIndex]);
236
+ if (step.kind === "merge") {
237
+ mergeItemValue(item, oldArray[step.oldIndex], newArray[step.newIndex], token.indent, true);
238
+ }
239
+ mergedItems.push(item);
240
+ }
241
+ if (mergedItems.length === 0) {
242
+ return false;
243
+ }
244
+ finalizeItems(mergedItems);
245
+ token.items = castTo(mergedItems);
246
+ return true;
247
+ }
248
+ function didNormalizeFirstItemIndent(precedingTokens, collection) {
249
+ const firstItem = castTo(collection.items[0]);
250
+ if (collection.indent === 0 || checkCarriesIndent(firstItem, collection.indent)) {
251
+ return true;
252
+ }
253
+ const lastToken = precedingTokens?.at(-1);
254
+ if (lastToken?.type !== "space" || precedingTokens?.at(SECOND_TO_LAST_INDEX)?.type !== "newline") {
255
+ return false;
256
+ }
257
+ precedingTokens.pop();
258
+ firstItem.start.unshift(lastToken);
259
+ return true;
260
+ }
261
+ function emitMapItemTokens(value, indent, shouldPreferFlow) {
262
+ const fragment = shouldPreferFlow ? `${PLACEHOLDER_KEY}: ${stringifyFlow(value)}` : stringify({ [PLACEHOLDER_KEY]: value }, OBSIDIAN_STRINGIFY_OPTIONS);
263
+ const item = liftFragmentItem(fragment, indent, false);
264
+ return { separatorTokens: castTo(item.sep), value: item.value };
265
+ }
266
+ function emitSeqItem(value, indent, shouldPreferFlow) {
267
+ const fragment = shouldPreferFlow ? `- ${stringifyFlow(value)}` : stringify([value], OBSIDIAN_STRINGIFY_OPTIONS);
268
+ return liftFragmentItem(fragment, indent, false);
269
+ }
270
+ function finalizeItems(items) {
271
+ const firstItem = castTo(items[0]);
272
+ while (firstItem.start[0]?.type === "newline") {
273
+ firstItem.start.shift();
274
+ }
275
+ }
276
+ function indentLines(text, indent) {
277
+ if (indent === 0) {
278
+ return text;
279
+ }
280
+ const padding = " ".repeat(indent);
281
+ return text.split("\n").map((line) => line === "" ? line : padding + line).join("\n");
282
+ }
283
+ function liftFragmentItem(fragment, indent, shouldCarryIndent) {
284
+ const root = parseDocument(indentLines(fragment, indent), { keepSourceTokens: true }).contents?.srcToken;
285
+ const item = castTo(castTo(root).items[0]);
286
+ if (shouldCarryIndent && indent > 0) {
287
+ item.start.unshift(createSpaceToken(indent));
288
+ }
289
+ return item;
290
+ }
291
+ function mergeItemValue(item, oldValue, newValue, parentIndent, isSeqItem) {
292
+ if (isDeepEqual(oldValue, newValue)) {
293
+ return;
294
+ }
295
+ const valueToken = item.value;
296
+ const precedingTokens = isSeqItem ? item.start : item.sep;
297
+ if (valueToken?.type === "block-map" && checkIsPlainObject(oldValue) && checkIsPlainObject(newValue) && didNormalizeFirstItemIndent(precedingTokens, valueToken) && didMergeMap(valueToken, oldValue, newValue) || valueToken?.type === "block-seq" && Array.isArray(oldValue) && Array.isArray(newValue) && didNormalizeFirstItemIndent(precedingTokens, valueToken) && didMergeSeq(valueToken, oldValue, newValue)) {
298
+ return;
299
+ }
300
+ replaceItemValue(item, newValue, parentIndent, valueToken?.type === "flow-collection", isSeqItem);
301
+ }
302
+ function normalizeItemIndents(collection) {
303
+ for (const [index, item] of collection.items.entries()) {
304
+ const nextItem = castTo(collection.items[index + 1]);
305
+ if (!nextItem || item.value) {
306
+ continue;
307
+ }
308
+ const trailingTokens = item.sep?.length ? item.sep : item.start;
309
+ const lastToken = trailingTokens.at(-1);
310
+ if (lastToken?.type !== "space" || trailingTokens.at(SECOND_TO_LAST_INDEX)?.type !== "newline") {
311
+ continue;
312
+ }
313
+ trailingTokens.pop();
314
+ nextItem.start.unshift(lastToken);
315
+ }
316
+ }
317
+ function readItemKey(item) {
318
+ return !item.key || !CST.isScalar(item.key) ? null : castTo(CST.resolveAsScalar(item.key)).value;
319
+ }
320
+ function replaceItemValue(item, newValue, indent, shouldPreferFlow, isSeqItem) {
321
+ if (isSeqItem) {
322
+ setItemValue(item, emitSeqItem(newValue, indent, shouldPreferFlow).value);
323
+ return;
324
+ }
325
+ const emittedTokens = emitMapItemTokens(newValue, indent, shouldPreferFlow);
326
+ item.sep = emittedTokens.separatorTokens;
327
+ setItemValue(item, emittedTokens.value);
328
+ }
329
+ function setItemValue(item, value) {
330
+ if (value === void 0) {
331
+ delete item.value;
332
+ return;
333
+ }
334
+ item.value = value;
335
+ }
336
+ function spliceFrontmatterBody(source, newFrontmatter) {
337
+ const tokens = [...new Parser().parse(source)];
338
+ const documents = [...new Composer({ keepSourceTokens: true }).compose(tokens, true)];
339
+ const document = documents.length === 1 ? documents[0] : void 0;
340
+ if (!document || document.errors.length > 0 || document.warnings.some((warning) => warning.code === UNRESOLVED_TAG_WARNING_CODE)) {
341
+ return null;
342
+ }
343
+ const contents = document.contents;
344
+ const rootToken = contents?.srcToken;
345
+ if (!contents || rootToken?.type !== "block-map" || checkHasAnchorOrAlias(contents)) {
346
+ return null;
347
+ }
348
+ const oldFrontmatter = castTo(document.toJS());
349
+ if (!didMergeMap(rootToken, oldFrontmatter, castTo(newFrontmatter))) {
350
+ return null;
351
+ }
352
+ const emittedBody = tokens.map((token) => CST.stringify(token)).join("");
353
+ const splicedBody = `${emittedBody.replace(TRAILING_NEWLINE_REG_EXP, "")}
354
+ `;
355
+ return checkIsSemanticMatch(splicedBody, newFrontmatter) ? splicedBody : null;
356
+ }
357
+ function stringifyFlow(value) {
358
+ return stringify(value, {
359
+ ...OBSIDIAN_STRINGIFY_OPTIONS,
360
+ collectionStyle: "flow",
361
+ flowCollectionPadding: false
362
+ });
363
+ }
364
+ export {
365
+ enableFrontmatterFormattingPreservation,
366
+ preserveFrontmatterFormatting
367
+ };
368
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Zyb250bWF0dGVyLWZvcm1hdHRpbmcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXdyaXRlcyBhIG5vdGUncyBZQU1MIGZyb250IG1hdHRlciBieSBzcGxpY2luZyBpdHMgY29uY3JldGUgc3ludGF4IHRyZWUsIHNvIGV2ZXJ5IHJlZ2lvbiBhIGNoYW5nZSBkb2VzIG5vdCByZWFjaFxuICoga2VlcHMgdGhlIGV4YWN0IGJ5dGVzIGl0cyBhdXRob3Igd3JvdGUgXHUyMDE0IGNvbW1lbnRzIGFuZCB0aGUgd2hpdGVzcGFjZSBpbnNpZGUgdGhlbSwgcXVvdGluZyBzdHlsZSwgYmxhbmsgbGluZXMsXG4gKiBpbmRlbnRhdGlvbiB3aWR0aCwgZmxvdyB2ZXJzdXMgYmxvY2sgY29sbGVjdGlvbnMsIGFuZCBmb2xkZWQgYW5kIGxpdGVyYWwgc2NhbGFycy5cbiAqXG4gKiBPYnNpZGlhbidzIG93biBgcHJvY2Vzc0Zyb250TWF0dGVyKClgIHBhcnNlcyB0aGUgYmxvY2sgdG8gYSBwbGFpbiBvYmplY3QgYW5kIHJlLXN0cmluZ2lmaWVzIHRoZSB3aG9sZSBvZiBpdCwgc28gYVxuICogY2FsbGJhY2sgdGhhdCBjaGFuZ2VzIG9uZSBrZXkgcmV3cml0ZXMgZXZlcnkgb3RoZXIuIFJlLWVtaXR0aW5nIHRoZSBwYXJzZWQgZG9jdW1lbnQgaW5zdGVhZCBvZiB0aGUgcmF3IHRleHQgZG9lcyBub3RcbiAqIGZpeCB0aGF0OiBmaXZlIG9mIHRoZSBsb3NzZXMgc3Vydml2ZSBldmVyeSBlbWl0IG9wdGlvbiB0aGUgYHlhbWxgIHBhY2thZ2Ugb2ZmZXJzLiBTcGxpY2luZyB0aGUgQ1NUIGRvZXMgZml4IGl0LFxuICogYmVjYXVzZSBhbiB1bnRvdWNoZWQgdG9rZW4gaXMgbmV2ZXIgcmUtZW1pdHRlZCBhdCBhbGwgXHUyMDE0IHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZWVtZWxpL3lhbWwgfCB0aGUgbGlicmFyeX0ga2VlcHNcbiAqIGVhY2ggdG9rZW4ncyBvcmlnaW5hbCBzb3VyY2UgdGV4dCBhbmQge0BsaW5rIGh0dHBzOi8vZWVtZWxpLm9yZy95YW1sLyNjc3QtcGFyc2VyIHwgYENTVC5zdHJpbmdpZnlgfSBjb25jYXRlbmF0ZXMgaXQuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgREVMSUJFUkFURUxZIG5vdCBvbiB0aGUgZGVmYXVsdCBwYXRoLiBJdCBuZWVkcyB0aGUgYHlhbWxgIHBhY2thZ2UncyBDU1QgQVBJLCB3aGljaCBPYnNpZGlhbiBkb2VzIG5vdFxuICogaGFuZCB0byBwbHVnaW5zIHRocm91Z2ggaXRzIG1vZHVsZSBtYXAgXHUyMDE0IHRoYXQgbWFwIGlzIGBvYnNpZGlhbmAsIGBAY29kZW1pcnJvci8qYCBhbmQgYEBsZXplci8qYCBhbmQgbm90aGluZyBlbHNlIFx1MjAxNFxuICogc28gdGhlIHBhY2thZ2UgY2Fubm90IGJlIG1hcmtlZCBleHRlcm5hbCBhbmQgbGFuZHMgaW4gdGhlIGNvbnN1bWluZyBwbHVnaW4ncyBgbWFpbi5qc2AsIGFib3V0IDEwMCBLQiBvZiBpdC4gQSBwbHVnaW5cbiAqIG9wdHMgaW4gYnkgY2FsbGluZyB7QGxpbmsgZW5hYmxlRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmF0aW9ufSBvbmNlLCBhbmQgb25seSBpdCBwYXlzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgdHlwZSB7XG4gIE5vZGUsXG4gIFBhcnNlZE5vZGVcbn0gZnJvbSAneWFtbCc7XG5cbmltcG9ydCB7XG4gIGNhc3RUbyxcbiAgaXNEZWVwRXF1YWxcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5pbXBvcnQgeyBpbnNlcnRBdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuaW1wb3J0IHtcbiAgZ2V0RnJvbnRNYXR0ZXJJbmZvLFxuICBwYXJzZVlhbWwsXG4gIHN0cmluZ2lmeVlhbWxcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgQ29tcG9zZXIsXG4gIENTVCxcbiAgaXNBbGlhcyxcbiAgcGFyc2VEb2N1bWVudCxcbiAgUGFyc2VyLFxuICBzdHJpbmdpZnksXG4gIHZpc2l0XG59IGZyb20gJ3lhbWwnO1xuXG5pbXBvcnQge1xuICBjaGVja0lzUGxhaW5PYmplY3QsXG4gIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyXG59IGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuXG4vKipcbiAqIEEgYmxvY2sgb3IgZmxvdyBjb2xsZWN0aW9uIHRva2VuIHdob3NlIGl0ZW1zIHRoZSBzcGxpY2UgcmVhcnJhbmdlcy5cbiAqL1xudHlwZSBDb2xsZWN0aW9uVG9rZW4gPSBDU1QuQmxvY2tNYXAgfCBDU1QuQmxvY2tTZXF1ZW5jZTtcblxuLyoqXG4gKiBPbmUgc3RlcCBvZiB0aGUgZWRpdCBzY3JpcHQge0BsaW5rIGJ1aWxkRWRpdFNjcmlwdH0gZGVyaXZlcyBmb3IgYSBzZXF1ZW5jZS5cbiAqXG4gKiBga2VlcGAgcmV1c2VzIHRoZSBvbGQgaXRlbSdzIHRva2VuIHVudG91Y2hlZCwgYG1lcmdlYCByZXVzZXMgaXQgYW5kIHJld3JpdGVzIGl0cyB2YWx1ZSBpbiBwbGFjZSwgYW5kIGBpbnNlcnRgXG4gKiBlbWl0cyBhIGJyYW5kIG5ldyBpdGVtLiBBIHJlbW92YWwgcHJvZHVjZXMgbm8gc3RlcCBhdCBhbGwgXHUyMDE0IGl0IGlzIHNpbXBseSBhbiBvbGQgaW5kZXggbm8gc3RlcCBuYW1lcy5cbiAqL1xuaW50ZXJmYWNlIEVkaXRTdGVwIHtcbiAgcmVhZG9ubHkga2luZDogJ2luc2VydCcgfCAna2VlcCcgfCAnbWVyZ2UnO1xuICByZWFkb25seSBuZXdJbmRleDogbnVtYmVyO1xuICByZWFkb25seSBvbGRJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBgc2VwYCBhbmQgYHZhbHVlYCB0b2tlbnMgb2YgYSBmcmVzaGx5IGVtaXR0ZWQgYmxvY2stbWFwIGl0ZW0sIHJlYWR5IHRvIGJlIHRyYW5zcGxhbnRlZCBvbnRvIGFuIGV4aXN0aW5nIG9uZS5cbiAqL1xuaW50ZXJmYWNlIE1hcEl0ZW1Ub2tlbnMge1xuICByZWFkb25seSBzZXBhcmF0b3JUb2tlbnM6IENTVC5Tb3VyY2VUb2tlbltdO1xuICByZWFkb25seSB2YWx1ZTogQ1NULlRva2VuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgc2VxdWVuY2UgbG9uZyBlbm91Z2ggdGhhdCB0aGUgcXVhZHJhdGljIGVkaXQgc2NyaXB0IHN0b3BzIGJlaW5nIHdvcnRoIGl0cyBjb3N0LlxuICpcbiAqIEEgZnJvbnQgbWF0dGVyIHNlcXVlbmNlIGlzIGEgdGFnIGxpc3Qgb3IgYW4gYWxpYXMgbGlzdCwgc28gdGhpcyBpcyBuZXZlciBhcHByb2FjaGVkIGluIHByYWN0aWNlOyBpdCBpcyBoZXJlIHNvIHRoYXQgYVxuICogcGF0aG9sb2dpY2FsIG9uZSBkZWdyYWRlcyB0byBhIHdob2xlLWNvbGxlY3Rpb24gcmUtZW1pdCBpbnN0ZWFkIG9mIHN0YWxsaW5nIHRoZSB3cml0ZSBxdWV1ZS5cbiAqL1xuY29uc3QgRURJVF9TQ1JJUFRfQ0VMTF9MSU1JVCA9IDEwXzAwMDtcblxuLyoqXG4gKiBXaGF0IGEgbWFwcGluZyBlbWl0cyBhcyB3aGVuIGV2ZXJ5IG9uZSBvZiBpdHMgdmFsdWVzIGlzIGB1bmRlZmluZWRgLCBpLmUuIHdoZW4gaXQgaGFzIG5vdGhpbmcgdG8gd3JpdGUgYXQgYWxsLlxuICovXG5jb25zdCBFTVBUWV9NQVBQSU5HX0ZSQUdNRU5UID0gJ3t9JztcblxuLyoqXG4gKiBUaGUgb3B0aW9ucyBPYnNpZGlhbiBpdHNlbGYgcGFzc2VzIHRvIGBzdHJpbmdpZnkoKWAsIHJlYWQgb3V0IG9mIGl0cyBidW5kbGUuXG4gKlxuICogRXZlcnkgZnJhZ21lbnQgdGhpcyBtb2R1bGUgZW1pdHMgZ29lcyB0aHJvdWdoIHRoZW0sIHNvIGEgZnJhZ21lbnQgaXQgd3JpdGVzIGlzIGJ5dGUtaWRlbnRpY2FsIHRvIHRoZSBvbmUgdGhlXG4gKiBwYXJzZS1hbmQtc3RyaW5naWZ5IHBhdGggd291bGQgaGF2ZSB3cml0dGVuIGZvciB0aGUgc2FtZSB2YWx1ZS5cbiAqL1xuY29uc3QgT0JTSURJQU5fU1RSSU5HSUZZX09QVElPTlMgPSB7XG4gIGFsaWFzRHVwbGljYXRlT2JqZWN0czogZmFsc2UsXG4gIGxpbmVXaWR0aDogMCxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbmFtZS1yZXBsYWNlbWVudHMgLS0gYG51bGxTdHJgIGlzIHRoZSBgeWFtbGAgcGFja2FnZSdzIG93biBvcHRpb24gbmFtZS5cbiAgbnVsbFN0cjogJydcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogVGhlIGtleSBhIGZyYWdtZW50IGlzIGVtaXR0ZWQgdW5kZXIgd2hlbiBvbmx5IGl0cyB2YWx1ZSBpcyB3YW50ZWQuIE5ldmVyIHJlYWNoZXMgdGhlIG91dHB1dC5cbiAqL1xuY29uc3QgUExBQ0VIT0xERVJfS0VZID0gJ2snO1xuXG4vKipcbiAqIFRoZSBgQXJyYXkuYXQoKWAgaW5kZXggb2YgdGhlIHRva2VuIGJlZm9yZSB0aGUgbGFzdCBvbmUsIHdoaWNoIGlzIHdoZXJlIGEgbmV3bGluZSBzaXRzIHdoZW4gYW4gaW5kZW50IGZvbGxvd3MgaXQuXG4gKi9cbmNvbnN0IFNFQ09ORF9UT19MQVNUX0lOREVYID0gLTI7XG5cbmNvbnN0IFRSQUlMSU5HX05FV0xJTkVfUkVHX0VYUCA9IC9cXG4kLztcblxuY29uc3QgVU5SRVNPTFZFRF9UQUdfV0FSTklOR19DT0RFID0gJ1RBR19SRVNPTFZFX0ZBSUxFRCc7XG5cbi8qKlxuICogT25lIHN0ZXAgb2YgdGhlIHJhdyBlZGl0IHNjcmlwdCwgYmVmb3JlIHJlbW92YWxzIGFyZSBmb2xkZWQgaW50byB0aGUgaW5zZXJ0aW9ucyB0aGF0IGZvbGxvdyB0aGVtLlxuICovXG5pbnRlcmZhY2UgUmF3RWRpdFN0ZXAge1xuICByZWFkb25seSBraW5kOiAnaW5zZXJ0JyB8ICdrZWVwJyB8ICdyZW1vdmUnO1xuICByZWFkb25seSBuZXdJbmRleDogbnVtYmVyO1xuICByZWFkb25seSBvbGRJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFdoYXQgYENTVC5yZXNvbHZlQXNTY2FsYXJgIGhhbmRzIGJhY2sgZm9yIGEga2V5OiB0aGUgc2NhbGFyJ3Mgb3duIHRleHQsIG5ldmVyIGEgc2NoZW1hLXJlc29sdmVkIHZhbHVlLlxuICovXG5pbnRlcmZhY2UgUmVzb2x2ZWRTY2FsYXIge1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGlzIG1vZHVsZSdzIGVuZ2luZSBhcyB0aGUgZnJvbnQgbWF0dGVyIGZvcm1hdHRpbmcgcHJlc2VydmVyIGZvciBldmVyeSB3cml0ZSB0aGlzIGxpYnJhcnkgcGVyZm9ybXMuXG4gKlxuICogQ2FsbCBpdCBvbmNlLCBmcm9tIGEgcGx1Z2luJ3MgYG9ubG9hZEltcGwoKWAuIEl0IHRha2VzIGVmZmVjdCBmb3IgYHByb2Nlc3NGcm9udG1hdHRlcigpYCwgYGFwcGx5RmlsZUNoYW5nZXMoKWAgYW5kXG4gKiBldmVyeSBvdGhlciBwYXRoIHRoYXQgcmVhY2hlcyBgc2V0RnJvbnRtYXR0ZXIoKWAsIGluY2x1ZGluZyB0aGUgb25lcyB0aGUgY2FsbGluZyBwbHVnaW4gZG9lcyBub3QgaW52b2tlIGl0c2VsZi5cbiAqXG4gKiBUaGVyZSBpcyBvbmUgcHJlc2VydmVyIHBlciByZWFsbSwgc28gdHdvIHBsdWdpbnMgdGhhdCBib3RoIGNhbGwgdGhpcyBzaW1wbHkgYWdyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2YXRpb24oKTogdm9pZCB7XG4gIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyKHByZXNlcnZlRnJvbnRtYXR0ZXJGb3JtYXR0aW5nKTtcbn1cblxuLyoqXG4gKiBSZXdyaXRlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgbm90ZSwga2VlcGluZyB0aGUgb3JpZ2luYWwgYnl0ZXMgb2YgZXZlcnl0aGluZyB0aGUgY2hhbmdlIGRvZXMgbm90IHJlYWNoLlxuICpcbiAqIEl0IGlzIHRoZSBlbmdpbmUge0BsaW5rIGVuYWJsZUZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZhdGlvbn0gcmVnaXN0ZXJzLCBhbmQgY2FuIGJlIGNhbGxlZCBkaXJlY3RseSBhcyB3ZWxsLlxuICpcbiAqIGBudWxsYCBtZWFucyBcInRoaXMgb25lIGlzIG5vdCBtaW5lXCI6IHRoZSBibG9jayBkb2VzIG5vdCBleGlzdCwgdGhlIG5ldyBmcm9udCBtYXR0ZXIgaXMgZW1wdHkgKGJvdGggYXJlIHRoZVxuICogcGFyc2UtYW5kLXN0cmluZ2lmeSBwYXRoJ3MgYnVzaW5lc3MsIHVuY2hhbmdlZCksIG9yIHRoZSBzcGxpY2UgY291bGQgbm90IGJlIHByb3ZlZCBmYWl0aGZ1bC4gVGhlIHByb29mIGlzIG5vdFxuICogaGFuZC13YXZlZCBcdTIwMTQgdGhlIHNwbGljZWQgYmxvY2sgaXMgcmUtcGFyc2VkIGFuZCBjb21wYXJlZCBhZ2FpbnN0IHRoZSB2YWx1ZSB0aGUgcGFyc2UtYW5kLXN0cmluZ2lmeSBwYXRoIHdvdWxkIGhhdmVcbiAqIHByb2R1Y2VkIGZvciB0aGUgc2FtZSBpbnB1dCwgYW5kIGFueSBkaWZmZXJlbmNlIHJldHVybnMgYG51bGxgLiBUaGF0IGlzIHdoYXQgbWFrZXMgdGhpcyBzdHJpY3RseSBiZXR0ZXIgdGhhbiB0aGF0XG4gKiBwYXRoIG9yIGlkZW50aWNhbCB0byBpdCwgYW5kIG5ldmVyIHdvcnNlLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIG5vdGUgdG8gcmV3cml0ZSB0aGUgZnJvbnQgbWF0dGVyIG9mLlxuICogQHBhcmFtIG5ld0Zyb250bWF0dGVyIC0gVGhlIGZyb250IG1hdHRlciB0byB3cml0ZS5cbiAqIEByZXR1cm5zIFRoZSBuZXcgbm90ZSwgb3IgYG51bGxgIHdoZW4gdGhlIGNhbGxlciBzaG91bGQgcGFyc2UgdGhlIGJsb2NrIGFuZCB3cml0ZSB0aGUgd2hvbGUgb2YgaXQgb3V0IGFnYWluIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVzZXJ2ZUZyb250bWF0dGVyRm9ybWF0dGluZyhjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250bWF0dGVyOiBvYmplY3QpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgZnJvbnRtYXR0ZXJJbmZvID0gZ2V0RnJvbnRNYXR0ZXJJbmZvKGNvbnRlbnQpO1xuICBpZiAoIWZyb250bWF0dGVySW5mby5leGlzdHMgfHwgT2JqZWN0LmtleXMobmV3RnJvbnRtYXR0ZXIpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qgc3BsaWNlZEJvZHkgPSBzcGxpY2VGcm9udG1hdHRlckJvZHkoZnJvbnRtYXR0ZXJJbmZvLmZyb250bWF0dGVyLCBuZXdGcm9udG1hdHRlcik7XG4gIHJldHVybiBzcGxpY2VkQm9keSA9PT0gbnVsbFxuICAgID8gbnVsbFxuICAgIDogaW5zZXJ0QXQoe1xuICAgICAgJHN0cmluZzogY29udGVudCxcbiAgICAgIGVuZEluZGV4OiBmcm9udG1hdHRlckluZm8udG8sXG4gICAgICBzdGFydEluZGV4OiBmcm9udG1hdHRlckluZm8uZnJvbSxcbiAgICAgIHN1YnN0cmluZzogc3BsaWNlZEJvZHlcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIHRoZSBlZGl0IHNjcmlwdCB0aGF0IHR1cm5zIGBvbGRBcnJheWAgaW50byBgbmV3QXJyYXlgLCByZXVzaW5nIGFzIG1hbnkgb2YgdGhlIG9sZCBpdGVtcyBhcyBpdCBjYW4uXG4gKlxuICogQSBsb25nZXN0LWNvbW1vbi1zdWJzZXF1ZW5jZSBkaWZmIG92ZXIgdmFsdWUgZXF1YWxpdHkgaXMgd2hhdCByZWNvdmVycyB0aGUgQVVUSE9SJ3Mgb3BlcmF0aW9uLiBSZXBsYXlpbmcgdGhlXG4gKiBtdXRhdGlvbiBhbiBhcnJheSBtZXRob2QgcGVyZm9ybWVkIGluc3RlYWQgXHUyMDE0IGBbYSwgYiwgY10uc3BsaWNlKDEsIDEpYCB3cml0ZXMgYFsxXSA9ICdjJ2AgdGhlbiB0cnVuY2F0ZXMgXHUyMDE0IHdvdWxkXG4gKiBvdmVyd3JpdGUgYGJgJ3Mgbm9kZSB3aXRoIGBjYCdzIHZhbHVlIGFuZCBkZWxldGUgYGNgJ3Mgbm9kZSwgc28gYGJgJ3MgY29tbWVudCB3b3VsZCBlbmQgdXAgYW5ub3RhdGluZyBgY2A6IGV4YWN0bHlcbiAqIHRoZSBtaXNhdHRyaWJ1dGlvbiB0aGlzIG1vZHVsZSBleGlzdHMgdG8gcHJldmVudC5cbiAqXG4gKiBBIHJlbW92YWwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW4gaW5zZXJ0aW9uIG9mIHRoZSBzYW1lIHNoYXBlIGlzIGZvbGRlZCBpbnRvIGEgc2luZ2xlIGBtZXJnZWAsIHNvIGFuIGl0ZW0gZWRpdGVkXG4gKiBpbiBwbGFjZSAoYFt7IHF0eTogMSB9XWAgdG8gYFt7IHF0eTogMiB9XWApIGtlZXBzIGl0cyBvd24gbm9kZSBhbmQgaXRzIGNvbW1lbnRzIHJhdGhlciB0aGFuIGJlaW5nIHJlYnVpbHQuXG4gKlxuICogQHBhcmFtIG9sZEFycmF5IC0gVGhlIHNlcXVlbmNlIGFzIHRoZSBzb3VyY2UgaG9sZHMgaXQuXG4gKiBAcGFyYW0gbmV3QXJyYXkgLSBUaGUgc2VxdWVuY2UgYXMgaXQgaXMgdG8gYmUgd3JpdHRlbi5cbiAqIEByZXR1cm5zIFRoZSBzdGVwcyB0byBhcHBseSwgaW4gb3V0cHV0IG9yZGVyLlxuICovXG5mdW5jdGlvbiBidWlsZEVkaXRTY3JpcHQob2xkQXJyYXk6IHJlYWRvbmx5IHVua25vd25bXSwgbmV3QXJyYXk6IHJlYWRvbmx5IHVua25vd25bXSk6IEVkaXRTdGVwW10ge1xuICBjb25zdCByYXdTdGVwcyA9IGJ1aWxkUmF3RWRpdFNjcmlwdChvbGRBcnJheSwgbmV3QXJyYXkpO1xuICBjb25zdCBzdGVwczogRWRpdFN0ZXBbXSA9IFtdO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCByYXdTdGVwcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBzdGVwID0gY2FzdFRvPFJhd0VkaXRTdGVwPihyYXdTdGVwc1tpbmRleF0pO1xuICAgIGNvbnN0IG5leHRTdGVwID0gcmF3U3RlcHNbaW5kZXggKyAxXTtcbiAgICBpZiAoXG4gICAgICBzdGVwLmtpbmQgPT09ICdyZW1vdmUnICYmIG5leHRTdGVwPy5raW5kID09PSAnaW5zZXJ0J1xuICAgICAgJiYgY2hlY2tJc01lcmdlYWJsZShvbGRBcnJheVtzdGVwLm9sZEluZGV4XSwgbmV3QXJyYXlbbmV4dFN0ZXAubmV3SW5kZXhdKVxuICAgICkge1xuICAgICAgc3RlcHMucHVzaCh7IGtpbmQ6ICdtZXJnZScsIG5ld0luZGV4OiBuZXh0U3RlcC5uZXdJbmRleCwgb2xkSW5kZXg6IHN0ZXAub2xkSW5kZXggfSk7XG4gICAgICBpbmRleCsrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHN0ZXAua2luZCAhPT0gJ3JlbW92ZScpIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiBzdGVwLmtpbmQsIG5ld0luZGV4OiBzdGVwLm5ld0luZGV4LCBvbGRJbmRleDogc3RlcC5vbGRJbmRleCB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RlcHM7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUmF3RWRpdFNjcmlwdChvbGRBcnJheTogcmVhZG9ubHkgdW5rbm93bltdLCBuZXdBcnJheTogcmVhZG9ubHkgdW5rbm93bltdKTogUmF3RWRpdFN0ZXBbXSB7XG4gIGNvbnN0IG9sZExlbmd0aCA9IG9sZEFycmF5Lmxlbmd0aDtcbiAgY29uc3QgbmV3TGVuZ3RoID0gbmV3QXJyYXkubGVuZ3RoO1xuICBjb25zdCBjb21tb25MZW5ndGhzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogb2xkTGVuZ3RoICsgMSB9LCAoKSA9PiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBuZXdMZW5ndGggKyAxIH0sICgpID0+IDApKTtcblxuICBmb3IgKGxldCBvbGRJbmRleCA9IG9sZExlbmd0aCAtIDE7IG9sZEluZGV4ID49IDA7IG9sZEluZGV4LS0pIHtcbiAgICBmb3IgKGxldCBuZXdJbmRleCA9IG5ld0xlbmd0aCAtIDE7IG5ld0luZGV4ID49IDA7IG5ld0luZGV4LS0pIHtcbiAgICAgIGNvbnN0IHJvdyA9IGNhc3RUbzxudW1iZXJbXT4oY29tbW9uTGVuZ3Roc1tvbGRJbmRleF0pO1xuICAgICAgY29uc3QgbmV4dFJvdyA9IGNhc3RUbzxudW1iZXJbXT4oY29tbW9uTGVuZ3Roc1tvbGRJbmRleCArIDFdKTtcbiAgICAgIHJvd1tuZXdJbmRleF0gPSBpc0RlZXBFcXVhbChvbGRBcnJheVtvbGRJbmRleF0sIG5ld0FycmF5W25ld0luZGV4XSlcbiAgICAgICAgPyBjYXN0VG88bnVtYmVyPihuZXh0Um93W25ld0luZGV4ICsgMV0pICsgMVxuICAgICAgICA6IE1hdGgubWF4KGNhc3RUbzxudW1iZXI+KG5leHRSb3dbbmV3SW5kZXhdKSwgY2FzdFRvPG51bWJlcj4ocm93W25ld0luZGV4ICsgMV0pKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBzdGVwczogUmF3RWRpdFN0ZXBbXSA9IFtdO1xuICBsZXQgb2xkSW5kZXggPSAwO1xuICBsZXQgbmV3SW5kZXggPSAwO1xuXG4gIHdoaWxlIChvbGRJbmRleCA8IG9sZExlbmd0aCAmJiBuZXdJbmRleCA8IG5ld0xlbmd0aCkge1xuICAgIGlmIChpc0RlZXBFcXVhbChvbGRBcnJheVtvbGRJbmRleF0sIG5ld0FycmF5W25ld0luZGV4XSkpIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiAna2VlcCcsIG5ld0luZGV4LCBvbGRJbmRleCB9KTtcbiAgICAgIG9sZEluZGV4Kys7XG4gICAgICBuZXdJbmRleCsrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3ZhbFJvdyA9IGNhc3RUbzxudW1iZXJbXT4oY29tbW9uTGVuZ3Roc1tvbGRJbmRleCArIDFdKTtcbiAgICBjb25zdCBpbnNlcnRpb25Sb3cgPSBjYXN0VG88bnVtYmVyW10+KGNvbW1vbkxlbmd0aHNbb2xkSW5kZXhdKTtcbiAgICBjb25zdCByZW1vdmFsQ29tbW9uTGVuZ3RoID0gY2FzdFRvPG51bWJlcj4ocmVtb3ZhbFJvd1tuZXdJbmRleF0pO1xuICAgIGNvbnN0IGluc2VydGlvbkNvbW1vbkxlbmd0aCA9IGNhc3RUbzxudW1iZXI+KGluc2VydGlvblJvd1tuZXdJbmRleCArIDFdKTtcbiAgICBpZiAocmVtb3ZhbENvbW1vbkxlbmd0aCA+PSBpbnNlcnRpb25Db21tb25MZW5ndGgpIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiAncmVtb3ZlJywgbmV3SW5kZXg6IC0xLCBvbGRJbmRleCB9KTtcbiAgICAgIG9sZEluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiAnaW5zZXJ0JywgbmV3SW5kZXgsIG9sZEluZGV4OiAtMSB9KTtcbiAgICAgIG5ld0luZGV4Kys7XG4gICAgfVxuICB9XG5cbiAgZm9yICg7IG9sZEluZGV4IDwgb2xkTGVuZ3RoOyBvbGRJbmRleCsrKSB7XG4gICAgc3RlcHMucHVzaCh7IGtpbmQ6ICdyZW1vdmUnLCBuZXdJbmRleDogLTEsIG9sZEluZGV4IH0pO1xuICB9XG5cbiAgZm9yICg7IG5ld0luZGV4IDwgbmV3TGVuZ3RoOyBuZXdJbmRleCsrKSB7XG4gICAgc3RlcHMucHVzaCh7IGtpbmQ6ICdpbnNlcnQnLCBuZXdJbmRleCwgb2xkSW5kZXg6IC0xIH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0ZXBzO1xufVxuXG5mdW5jdGlvbiBjaGVja0NhcnJpZXNJbmRlbnQoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtLCBpbmRlbnQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gQ1NULnN0cmluZ2lmeShpdGVtKS5yZXBsYWNlKC9eXFxuKy8sICcnKS5zdGFydHNXaXRoKCcgJy5yZXBlYXQoaW5kZW50KSk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrSGFzQW5jaG9yT3JBbGlhcyhjb250ZW50czogUGFyc2VkTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgaGFzQW5jaG9yT3JBbGlhcyA9IGZhbHNlO1xuXG4gIHZpc2l0KGNvbnRlbnRzLCB7XG4gICAgTm9kZShfa2V5OiB1bmtub3duLCBub2RlOiBOb2RlKTogc3ltYm9sIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICghaXNBbGlhcyhub2RlKSAmJiBub2RlLmFuY2hvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGhhc0FuY2hvck9yQWxpYXMgPSB0cnVlO1xuICAgICAgcmV0dXJuIHZpc2l0LkJSRUFLO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGhhc0FuY2hvck9yQWxpYXM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrSXNNZXJnZWFibGUob2xkVmFsdWU6IHVua25vd24sIG5ld1ZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiAoY2hlY2tJc1BsYWluT2JqZWN0KG9sZFZhbHVlKSAmJiBjaGVja0lzUGxhaW5PYmplY3QobmV3VmFsdWUpKSB8fCAoQXJyYXkuaXNBcnJheShvbGRWYWx1ZSkgJiYgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpO1xufVxuXG4vKipcbiAqIENoZWNrcyB0aGUgc3BsaWNlZCBibG9jayBhZ2FpbnN0IHRoZSBvbmUgdGhlIHBhcnNlLWFuZC1zdHJpbmdpZnkgcGF0aCB3b3VsZCBoYXZlIHdyaXR0ZW4gZm9yIHRoZSBzYW1lIHZhbHVlLlxuICpcbiAqIENvbXBhcmluZyB0aGUgdHdvIFBBUlNFRCB2YWx1ZXMgcmF0aGVyIHRoYW4gdGhlIHR3byB0ZXh0cyBpcyB0aGUgd2hvbGUgcG9pbnQ6IHRoZSB0ZXh0cyBhcmUgc3VwcG9zZWQgdG8gZGlmZmVyIFx1MjAxNCB0aGF0XG4gKiBpcyB0aGUgZm9ybWF0dGluZyB0aGlzIG1vZHVsZSBwcmVzZXJ2ZXMgXHUyMDE0IHdoaWxlIHRoZSB2YWx1ZXMgbXVzdCBub3QuIENvbXBhcmluZyBhZ2FpbnN0IHRoYXQgcGF0aCdzIG91dHB1dCByYXRoZXIgdGhhblxuICogYWdhaW5zdCBgbmV3RnJvbnRtYXR0ZXJgIGl0c2VsZiBpcyB3aGF0IG1ha2VzIHRoZSBndWFyYW50ZWUgZXhhY3QsIHNpbmNlIGJvdGggc2lkZXMgdGhlbiBjYXJyeSB0aGUgc2FtZSByb3VuZC10cmlwXG4gKiBsb3NzZXMsIGB1bmRlZmluZWRgIHZhbHVlcyBkcm9wcGVkIGFuZCB0aW1lc3RhbXBzIHJlYWQgYmFjayBhcyBkYXRlcyBhbW9uZyB0aGVtLlxuICpcbiAqIEBwYXJhbSBzcGxpY2VkQm9keSAtIFRoZSBzcGxpY2VkIGJsb2NrIHRleHQuXG4gKiBAcGFyYW0gbmV3RnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnQgbWF0dGVyIHRoYXQgd2FzIHRvIGJlIHdyaXR0ZW4uXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBzcGxpY2VkIGJsb2NrIHJlYWRzIGJhY2sgYXMgdGhlIHZhbHVlIHRoZSBwYXJzZS1hbmQtc3RyaW5naWZ5IHBhdGggd291bGQgaGF2ZSB3cml0dGVuLlxuICovXG5mdW5jdGlvbiBjaGVja0lzU2VtYW50aWNNYXRjaChzcGxpY2VkQm9keTogc3RyaW5nLCBuZXdGcm9udG1hdHRlcjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIGxldCBzcGxpY2VkVmFsdWU6IHVua25vd247XG5cbiAgdHJ5IHtcbiAgICBzcGxpY2VkVmFsdWUgPSBwYXJzZVlhbWwoc3BsaWNlZEJvZHkpO1xuICAgIC8qXG4gICAgICogdjggaWdub3JlIHN0YXJ0IC0tIEEgbmV0LCBub3QgYSBwYXRoOiBgcGFyc2VZYW1sYCBUSFJPV1Mgb24gYSBibG9jayBpdCBjYW5ub3QgcmVhZCByYXRoZXIgdGhhbiByZXBvcnRpbmcgaXQsIGFuZFxuICAgICAqIGEgc3BsaWNlIGNvdWxkIHByb2R1Y2Ugb25lLiBBIDM2IDAwMC1tdXRhdGlvbiBkaWZmZXJlbnRpYWwgZnV6eiBmb3VuZCA5MyB0aGF0IGRpZCwgZXZlcnkgb25lIG9mIHRoZW0gdGhlXG4gICAgICogdmFsdWVsZXNzLWl0ZW0gc2hhcGUgYG5vcm1hbGl6ZUl0ZW1JbmRlbnRzYCBub3cgcmVwYWlycywgYW5kIG5vbmUgYXQgYWxsIGFmdGVyd2FyZHMgXHUyMDE0IHNvIHRoZXJlIGlzIG5vIGlucHV0IGxlZnRcbiAgICAgKiB0byBwaW4gdGhpcyB3aXRoLCBhbmQgdGhlIGNvbnRyYWN0IHRoYXQgaXQgdXBob2xkcyAoZGVjbGluZSwgbmV2ZXIgdGhyb3cpIGlzIHRoZSBvbmUgdGhpcyBtb2R1bGUncyBjYWxsZXJzIHJlbHlcbiAgICAgKiBvbi4gRG8gbm90IGRlbGV0ZSBpdCBvbiB0aGUgc3RyZW5ndGggb2YgdGhhdDogaXQgaXMgdGhlIHJlYXNvbiBhIGZ1dHVyZSBzaGFwZSBpcyBhIGZhbGxiYWNrIHJhdGhlciB0aGFuIGEgY3Jhc2guXG4gICAgICovXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICB9XG5cbiAgcmV0dXJuIGlzRGVlcEVxdWFsKHNwbGljZWRWYWx1ZSwgcGFyc2VZYW1sKHN0cmluZ2lmeVlhbWwobmV3RnJvbnRtYXR0ZXIpKSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU1hcEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCBpbmRlbnQ6IG51bWJlcik6IENTVC5Db2xsZWN0aW9uSXRlbSB8IG51bGwge1xuICBjb25zdCBmcmFnbWVudCA9IHN0cmluZ2lmeSh7IFtrZXldOiB2YWx1ZSB9LCBPQlNJRElBTl9TVFJJTkdJRllfT1BUSU9OUyk7XG4gIC8vIEFuIGVtcHR5IG1hcHBpbmcgbWVhbnMgdGhlIHZhbHVlIGlzIGB1bmRlZmluZWRgLCB3aGljaCB0aGUgcmV3cml0ZSBwYXRoIGRyb3BzIGFzIHdlbGwuIERyb3AgdGhlIGtleSB3aXRoIGl0LlxuICByZXR1cm4gZnJhZ21lbnQudHJpbUVuZCgpID09PSBFTVBUWV9NQVBQSU5HX0ZSQUdNRU5UID8gbnVsbCA6IGxpZnRGcmFnbWVudEl0ZW0oZnJhZ21lbnQsIGluZGVudCwgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNlcUl0ZW0odmFsdWU6IHVua25vd24sIGluZGVudDogbnVtYmVyKTogQ1NULkNvbGxlY3Rpb25JdGVtIHtcbiAgcmV0dXJuIGxpZnRGcmFnbWVudEl0ZW0oc3RyaW5naWZ5KFt2YWx1ZV0sIE9CU0lESUFOX1NUUklOR0lGWV9PUFRJT05TKSwgaW5kZW50LCB0cnVlKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU3BhY2VUb2tlbihpbmRlbnQ6IG51bWJlcik6IENTVC5Tb3VyY2VUb2tlbiB7XG4gIHJldHVybiB7XG4gICAgaW5kZW50LFxuICAgIG9mZnNldDogLTEsXG4gICAgc291cmNlOiAnICcucmVwZWF0KGluZGVudCksXG4gICAgdHlwZTogJ3NwYWNlJ1xuICB9O1xufVxuXG4vKipcbiAqIFJlYnVpbGRzIGEgYmxvY2sgbWFwJ3MgaXRlbXMgc28gaXQgcmVwcmVzZW50cyBgbmV3T2JqZWN0YCwgcmV1c2luZyBlYWNoIHN1cnZpdmluZyBrZXkncyBvd24gaXRlbSB0b2tlbi5cbiAqXG4gKiBUaGUgaXRlbXMgYXJlIHJlYnVpbHQgaW4gdGhlIE5FVyBvYmplY3QncyBrZXkgb3JkZXIgcmF0aGVyIHRoYW4gdGhlIHNvdXJjZSdzLCBzbyBhIGNhbGxiYWNrIHRoYXQgc29ydHMgb3IgcmVvcmRlcnNcbiAqIGtleXMgc3RpbGwgc29ydHMgdGhlbSBcdTIwMTQgdGhlIHJlb3JkZXJlZCBrZXkgc2ltcGx5IHRha2VzIGl0cyBjb21tZW50LCBpdHMgcXVvdGluZyBhbmQgaXRzIHZhbHVlIGZvcm1hdHRpbmcgd2l0aCBpdC5cbiAqXG4gKiBgZmFsc2VgIG1lYW5zIHRoZSBjYWxsZXIgc2hvdWxkIHJlLWVtaXQgdGhpcyB3aG9sZSBjb2xsZWN0aW9uIGluc3RlYWQ6IGEgZHVwbGljYXRlIGtleSwgYSBrZXkgbm8gc3RyaW5nIGNhbiBuYW1lLCBvclxuICogYSBuZXN0ZWQgbWVyZ2UgdGhhdCBnYXZlIHVwLlxuICpcbiAqIEBwYXJhbSB0b2tlbiAtIFRoZSBibG9jayBtYXAgdG8gcmVidWlsZC5cbiAqIEBwYXJhbSBvbGRPYmplY3QgLSBUaGUgbWFwcGluZyBhcyB0aGUgc291cmNlIGhvbGRzIGl0LlxuICogQHBhcmFtIG5ld09iamVjdCAtIFRoZSBtYXBwaW5nIHRvIHdyaXRlLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgdG9rZW4gbm93IHJlcHJlc2VudHMgYG5ld09iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGRpZE1lcmdlTWFwKHRva2VuOiBDU1QuQmxvY2tNYXAsIG9sZE9iamVjdDogR2VuZXJpY09iamVjdCwgbmV3T2JqZWN0OiBHZW5lcmljT2JqZWN0KTogYm9vbGVhbiB7XG4gIG5vcm1hbGl6ZUl0ZW1JbmRlbnRzKHRva2VuKTtcbiAgY29uc3QgaXRlbXNCeUtleSA9IG5ldyBNYXA8c3RyaW5nLCBDU1QuQ29sbGVjdGlvbkl0ZW0+KCk7XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIHRva2VuLml0ZW1zKSB7XG4gICAgY29uc3Qga2V5ID0gcmVhZEl0ZW1LZXkoaXRlbSk7XG4gICAgaWYgKGtleSA9PT0gbnVsbCB8fCBpdGVtc0J5S2V5LmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaXRlbXNCeUtleS5zZXQoa2V5LCBpdGVtKTtcbiAgfVxuXG4gIGNvbnN0IG1lcmdlZEl0ZW1zOiBDU1QuQ29sbGVjdGlvbkl0ZW1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2tleSwgbmV3VmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5ld09iamVjdCkpIHtcbiAgICBjb25zdCBpdGVtID0gaXRlbXNCeUtleS5nZXQoa2V5KTtcblxuICAgIGlmICghaXRlbSkge1xuICAgICAgY29uc3QgY3JlYXRlZEl0ZW0gPSBjcmVhdGVNYXBJdGVtKGtleSwgbmV3VmFsdWUsIHRva2VuLmluZGVudCk7XG4gICAgICBpZiAoY3JlYXRlZEl0ZW0gIT09IG51bGwpIHtcbiAgICAgICAgbWVyZ2VkSXRlbXMucHVzaChjcmVhdGVkSXRlbSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIG1lcmdlSXRlbVZhbHVlKGl0ZW0sIG9sZE9iamVjdFtrZXldLCBuZXdWYWx1ZSwgdG9rZW4uaW5kZW50LCBmYWxzZSk7XG4gICAgbWVyZ2VkSXRlbXMucHVzaChpdGVtKTtcbiAgfVxuXG4gIGlmIChtZXJnZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmaW5hbGl6ZUl0ZW1zKG1lcmdlZEl0ZW1zKTtcbiAgdG9rZW4uaXRlbXMgPSBjYXN0VG88Q1NULkJsb2NrTWFwWydpdGVtcyddPihtZXJnZWRJdGVtcyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFJlYnVpbGRzIGEgYmxvY2sgc2VxdWVuY2UncyBpdGVtcyBzbyBpdCByZXByZXNlbnRzIGBuZXdBcnJheWAsIHJldXNpbmcgdGhlIHRva2VuIG9mIGV2ZXJ5IGl0ZW0gdGhhdCBzdXJ2aXZlcy5cbiAqXG4gKiBAcGFyYW0gdG9rZW4gLSBUaGUgYmxvY2sgc2VxdWVuY2UgdG8gcmVidWlsZC5cbiAqIEBwYXJhbSBvbGRBcnJheSAtIFRoZSBzZXF1ZW5jZSBhcyB0aGUgc291cmNlIGhvbGRzIGl0LlxuICogQHBhcmFtIG5ld0FycmF5IC0gVGhlIHNlcXVlbmNlIHRvIHdyaXRlLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgdG9rZW4gbm93IHJlcHJlc2VudHMgYG5ld0FycmF5YC5cbiAqL1xuZnVuY3Rpb24gZGlkTWVyZ2VTZXEodG9rZW46IENTVC5CbG9ja1NlcXVlbmNlLCBvbGRBcnJheTogcmVhZG9ubHkgdW5rbm93bltdLCBuZXdBcnJheTogcmVhZG9ubHkgdW5rbm93bltdKTogYm9vbGVhbiB7XG4gIGlmIChvbGRBcnJheS5sZW5ndGggKiBuZXdBcnJheS5sZW5ndGggPiBFRElUX1NDUklQVF9DRUxMX0xJTUlUKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbm9ybWFsaXplSXRlbUluZGVudHModG9rZW4pO1xuICBjb25zdCBtZXJnZWRJdGVtczogQ1NULkNvbGxlY3Rpb25JdGVtW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHN0ZXAgb2YgYnVpbGRFZGl0U2NyaXB0KG9sZEFycmF5LCBuZXdBcnJheSkpIHtcbiAgICBpZiAoc3RlcC5raW5kID09PSAnaW5zZXJ0Jykge1xuICAgICAgbWVyZ2VkSXRlbXMucHVzaChjcmVhdGVTZXFJdGVtKG5ld0FycmF5W3N0ZXAubmV3SW5kZXhdLCB0b2tlbi5pbmRlbnQpKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSBjYXN0VG88Q1NULkNvbGxlY3Rpb25JdGVtPih0b2tlbi5pdGVtc1tzdGVwLm9sZEluZGV4XSk7XG4gICAgaWYgKHN0ZXAua2luZCA9PT0gJ21lcmdlJykge1xuICAgICAgbWVyZ2VJdGVtVmFsdWUoaXRlbSwgb2xkQXJyYXlbc3RlcC5vbGRJbmRleF0sIG5ld0FycmF5W3N0ZXAubmV3SW5kZXhdLCB0b2tlbi5pbmRlbnQsIHRydWUpO1xuICAgIH1cblxuICAgIG1lcmdlZEl0ZW1zLnB1c2goaXRlbSk7XG4gIH1cblxuICBpZiAobWVyZ2VkSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZmluYWxpemVJdGVtcyhtZXJnZWRJdGVtcyk7XG4gIHRva2VuLml0ZW1zID0gY2FzdFRvPENTVC5CbG9ja1NlcXVlbmNlWydpdGVtcyddPihtZXJnZWRJdGVtcyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEdpdmVzIGEgbmVzdGVkIGNvbGxlY3Rpb24ncyBmaXJzdCBpdGVtIHRoZSBsZWFkaW5nIGluZGVudCBvZiBpdHMgb3duLCBzbyB0aGUgaXRlbXMgYmVjb21lIGludGVyY2hhbmdlYWJsZS5cbiAqXG4gKiBBIG5lc3RlZCBjb2xsZWN0aW9uJ3MgZmlyc3QgaXRlbSBjYXJyaWVzIG5vIGluZGVudCBpbiB0aGUgc291cmNlOiB0aGUgaW5kZW50IHNpdHMgaW4gd2hhdGV2ZXIgcHJlY2VkZXMgdGhlXG4gKiBjb2xsZWN0aW9uIFx1MjAxNCB0aGUgc2VwYXJhdG9yJ3MgdHJhaWxpbmcgc3BhY2VzLCBvciB0aGUgZGFzaCBvZiB0aGUgc2VxdWVuY2UgaXRlbSBpdCBiZWxvbmdzIHRvLiBFdmVyeSBsYXRlciBpdGVtXG4gKiBjYXJyaWVzIGl0cyBvd24uIFJlbW92aW5nIG9yIHJlb3JkZXJpbmcgdGhlIGZpcnN0IGl0ZW0gd2l0aG91dCByZXBhaXJpbmcgdGhhdCBsZWF2ZXMgdGhlIHN1cnZpdm9yIGRvdWJseSBpbmRlbnRlZCxcbiAqIHNvIHRoZSBpbmRlbnQgaXMgbW92ZWQgb3V0IG9mIHRoZSBzZXBhcmF0b3IgYW5kIG9udG8gdGhlIGl0ZW0gYmVmb3JlIGFueXRoaW5nIGlzIHJlYXJyYW5nZWQuXG4gKlxuICogVGhlIG9uZSBzaGFwZSBpdCBjYW5ub3QgcmVwYWlyIGlzIGEgZmlyc3QgaXRlbSB3cml0dGVuIElOTElORSB3aXRoIHdoYXQgcHJlY2VkZXMgaXQgKGAtIG5hbWU6IGFgKSwgd2hlcmUgdGhlcmUgaXMgbm9cbiAqIGluZGVudCB0byBtb3ZlIGJlY2F1c2UgdGhlIGl0ZW0gaXMgbm90IGF0IHRoZSBzdGFydCBvZiBpdHMgbGluZS4gU3VjaCBhIGNvbGxlY3Rpb24gaXMgcmUtZW1pdHRlZCB3aG9sZSBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSBwcmVjZWRpbmdUb2tlbnMgLSBUaGUgc2VwYXJhdG9yIHRva2VucyB0aGF0IHNpdCBiZXR3ZWVuIHRoZSBwYXJlbnQgYW5kIHRoZSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIGNvbGxlY3Rpb24gLSBUaGUgY29sbGVjdGlvbiB3aG9zZSBmaXJzdCBpdGVtIGlzIHRvIGNhcnJ5IGl0cyBvd24gaW5kZW50LlxuICogQHJldHVybnMgV2hldGhlciB0aGUgY29sbGVjdGlvbidzIGl0ZW1zIGFyZSBub3cgaW50ZXJjaGFuZ2VhYmxlLlxuICovXG5mdW5jdGlvbiBkaWROb3JtYWxpemVGaXJzdEl0ZW1JbmRlbnQocHJlY2VkaW5nVG9rZW5zOiBDU1QuU291cmNlVG9rZW5bXSB8IHVuZGVmaW5lZCwgY29sbGVjdGlvbjogQ29sbGVjdGlvblRva2VuKTogYm9vbGVhbiB7XG4gIC8vIEEgcGFyc2VkIGJsb2NrIGNvbGxlY3Rpb24gYWx3YXlzIGhvbGRzIGF0IGxlYXN0IG9uZSBpdGVtLCBvciBpdCB3b3VsZCBub3QgaGF2ZSBwYXJzZWQgYXMgYSBjb2xsZWN0aW9uIGF0IGFsbC5cbiAgY29uc3QgZmlyc3RJdGVtID0gY2FzdFRvPENTVC5Db2xsZWN0aW9uSXRlbT4oY29sbGVjdGlvbi5pdGVtc1swXSk7XG5cbiAgaWYgKGNvbGxlY3Rpb24uaW5kZW50ID09PSAwIHx8IGNoZWNrQ2Fycmllc0luZGVudChmaXJzdEl0ZW0sIGNvbGxlY3Rpb24uaW5kZW50KSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgbGFzdFRva2VuID0gcHJlY2VkaW5nVG9rZW5zPy5hdCgtMSk7XG4gIGlmIChsYXN0VG9rZW4/LnR5cGUgIT09ICdzcGFjZScgfHwgcHJlY2VkaW5nVG9rZW5zPy5hdChTRUNPTkRfVE9fTEFTVF9JTkRFWCk/LnR5cGUgIT09ICduZXdsaW5lJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByZWNlZGluZ1Rva2Vucy5wb3AoKTtcbiAgZmlyc3RJdGVtLnN0YXJ0LnVuc2hpZnQobGFzdFRva2VuKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGVtaXRNYXBJdGVtVG9rZW5zKHZhbHVlOiB1bmtub3duLCBpbmRlbnQ6IG51bWJlciwgc2hvdWxkUHJlZmVyRmxvdzogYm9vbGVhbik6IE1hcEl0ZW1Ub2tlbnMge1xuICBjb25zdCBmcmFnbWVudCA9IHNob3VsZFByZWZlckZsb3dcbiAgICA/IGAke1BMQUNFSE9MREVSX0tFWX06ICR7c3RyaW5naWZ5Rmxvdyh2YWx1ZSl9YFxuICAgIDogc3RyaW5naWZ5KHsgW1BMQUNFSE9MREVSX0tFWV06IHZhbHVlIH0sIE9CU0lESUFOX1NUUklOR0lGWV9PUFRJT05TKTtcbiAgY29uc3QgaXRlbSA9IGxpZnRGcmFnbWVudEl0ZW0oZnJhZ21lbnQsIGluZGVudCwgZmFsc2UpO1xuICByZXR1cm4geyBzZXBhcmF0b3JUb2tlbnM6IGNhc3RUbzxDU1QuU291cmNlVG9rZW5bXT4oaXRlbS5zZXApLCB2YWx1ZTogaXRlbS52YWx1ZSB9O1xufVxuXG5mdW5jdGlvbiBlbWl0U2VxSXRlbSh2YWx1ZTogdW5rbm93biwgaW5kZW50OiBudW1iZXIsIHNob3VsZFByZWZlckZsb3c6IGJvb2xlYW4pOiBDU1QuQ29sbGVjdGlvbkl0ZW0ge1xuICBjb25zdCBmcmFnbWVudCA9IHNob3VsZFByZWZlckZsb3cgPyBgLSAke3N0cmluZ2lmeUZsb3codmFsdWUpfWAgOiBzdHJpbmdpZnkoW3ZhbHVlXSwgT0JTSURJQU5fU1RSSU5HSUZZX09QVElPTlMpO1xuICByZXR1cm4gbGlmdEZyYWdtZW50SXRlbShmcmFnbWVudCwgaW5kZW50LCBmYWxzZSk7XG59XG5cbi8qKlxuICogTWFrZXMgdGhlIG1lcmdlZCBpdGVtcyBvZiBhIGNvbGxlY3Rpb24gam9pbmFibGUgYWdhaW4sIHdoYXRldmVyIHRoZSBtZXJnZSBkaWQgdG8gdGhlaXIgb3JkZXIuXG4gKlxuICogQW4gaXRlbSB0aGF0IHdhcyBub3QgZmlyc3QgY2FuIGNhcnJ5IHRoZSBibGFuayBsaW5lIHRoYXQgc2VwYXJhdGVkIGl0IGZyb20gaXRzIHByZWRlY2Vzc29yLCB3aGljaCBiZWNvbWVzIGEgbGVhZGluZ1xuICogYmxhbmsgbGluZSBvbmNlIGl0IElTIGZpcnN0LCBhbmQgbm90aGluZyBpbiB0aGUgaXRlbSB0b2tlbnMgdGhlbXNlbHZlcyBzaG93cyBpdC4gRXZlcnkgaXRlbSBhbHJlYWR5IGVuZHMgaW4gaXRzIG93blxuICogbmV3bGluZSwgYmVjYXVzZSBPYnNpZGlhbidzIGZyb250IG1hdHRlciBibG9jayBhbHdheXMgZW5kcyBpbiBvbmUsIHNvIHJlb3JkZXJpbmcgbmV2ZXIgam9pbnMgdHdvIGl0ZW1zIG9uIG9uZSBsaW5lLlxuICpcbiAqIEBwYXJhbSBpdGVtcyAtIFRoZSBtZXJnZWQgaXRlbXMsIG11dGF0ZWQgaW4gcGxhY2UuXG4gKi9cbmZ1bmN0aW9uIGZpbmFsaXplSXRlbXMoaXRlbXM6IENTVC5Db2xsZWN0aW9uSXRlbVtdKTogdm9pZCB7XG4gIGNvbnN0IGZpcnN0SXRlbSA9IGNhc3RUbzxDU1QuQ29sbGVjdGlvbkl0ZW0+KGl0ZW1zWzBdKTtcbiAgd2hpbGUgKGZpcnN0SXRlbS5zdGFydFswXT8udHlwZSA9PT0gJ25ld2xpbmUnKSB7XG4gICAgZmlyc3RJdGVtLnN0YXJ0LnNoaWZ0KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5kZW50TGluZXModGV4dDogc3RyaW5nLCBpbmRlbnQ6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChpbmRlbnQgPT09IDApIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIGNvbnN0IHBhZGRpbmcgPSAnICcucmVwZWF0KGluZGVudCk7XG4gIHJldHVybiB0ZXh0LnNwbGl0KCdcXG4nKS5tYXAoKGxpbmUpID0+IGxpbmUgPT09ICcnID8gbGluZSA6IHBhZGRpbmcgKyBsaW5lKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBmcmVzaGx5IGVtaXR0ZWQgZnJhZ21lbnQgYW5kIGhhbmRzIGJhY2sgaXRzIG9uZSBjb2xsZWN0aW9uIGl0ZW0sIGluZGVudGVkIHRvIHNpdCB3aGVyZSBpdCBpcyBnb2luZy5cbiAqXG4gKiBUaGUgZnJhZ21lbnQncyBvd24gbGluZXMgYXJlIGluZGVudGVkIGJlZm9yZSBwYXJzaW5nLCBzbyBldmVyeSB0b2tlbiBpbnNpZGUgaXQgY2FycmllcyB0aGUgYWJzb2x1dGUgaW5kZW50IHRoZVxuICogb3V0cHV0IG5lZWRzLiBUaGUgaXRlbSdzIE9XTiBsZWFkaW5nIGluZGVudCBpcyBub3QgcGFydCBvZiB0aGF0IFx1MjAxNCBhIGZpcnN0IGl0ZW0gbmV2ZXIgY2FycmllcyBvbmUsIHRoZSBpbmRlbnQgYmVpbmdcbiAqIHN1cHBsaWVkIGJ5IHdoYXRldmVyIHByZWNlZGVzIHRoZSBjb2xsZWN0aW9uIFx1MjAxNCBzbyBpdCBpcyBwcmVwZW5kZWQgYXMgYSB0b2tlbiwgd2hpY2ggaXMgd2hhdCBtYWtlcyB0aGUgaXRlbSB1bmlmb3JtXG4gKiB3aXRoIGl0cyBuZXcgc2libGluZ3MgYW5kIHRoZXJlZm9yZSBmcmVlIHRvIGJlIHJlb3JkZXJlZCBvciB0byBiZWNvbWUgdGhlIGZpcnN0LlxuICpcbiAqIFRoZSBmcmFnbWVudCB3YXMgcHJvZHVjZWQgYnkgYHN0cmluZ2lmeWAgYSBsaW5lIGFib3ZlIHRoZSBjYWxsLCBhcyBhIG9uZS1pdGVtIGJsb2NrIGNvbGxlY3Rpb24sIHNvIGl0IGFsd2F5cyBwYXJzZXNcbiAqIGJhY2sgYXMgb25lIFx1MjAxNCB3aGljaCBpcyB3aHkgdGhpcyByZWFkcyB0aGUgaXRlbSBvdXQgcmF0aGVyIHRoYW4gY2hlY2tpbmcgZm9yIGl0LiBXZXJlIHRoYXQgZXZlciB0byBzdG9wIGhvbGRpbmcsIHRoZVxuICogcmVzdWx0aW5nIHRocm93IGlzIGNhdWdodCBieSBgc2V0RnJvbnRtYXR0ZXJgJ3Mgc2VhbSwgd2hpY2ggcmVwb3J0cyBpdCBhbmQgd3JpdGVzIHRoZSBibG9jayB0aGUgb3JkaW5hcnkgd2F5LlxuICpcbiAqIEBwYXJhbSBmcmFnbWVudCAtIFRoZSBlbWl0dGVkIFlBTUwgZnJhZ21lbnQsIGF0IGluZGVudCB6ZXJvLlxuICogQHBhcmFtIGluZGVudCAtIFRoZSBpbmRlbnQgdGhlIGl0ZW0gd2lsbCBzaXQgYXQuXG4gKiBAcGFyYW0gc2hvdWxkQ2FycnlJbmRlbnQgLSBXaGV0aGVyIHRvIHByZXBlbmQgdGhlIGl0ZW0ncyBvd24gbGVhZGluZyBpbmRlbnQgdG9rZW4uXG4gKiBAcmV0dXJucyBUaGUgaXRlbS5cbiAqL1xuZnVuY3Rpb24gbGlmdEZyYWdtZW50SXRlbShmcmFnbWVudDogc3RyaW5nLCBpbmRlbnQ6IG51bWJlciwgc2hvdWxkQ2FycnlJbmRlbnQ6IGJvb2xlYW4pOiBDU1QuQ29sbGVjdGlvbkl0ZW0ge1xuICBjb25zdCByb290ID0gcGFyc2VEb2N1bWVudChpbmRlbnRMaW5lcyhmcmFnbWVudCwgaW5kZW50KSwgeyBrZWVwU291cmNlVG9rZW5zOiB0cnVlIH0pLmNvbnRlbnRzPy5zcmNUb2tlbjtcbiAgY29uc3QgaXRlbSA9IGNhc3RUbzxDU1QuQ29sbGVjdGlvbkl0ZW0+KGNhc3RUbzxDb2xsZWN0aW9uVG9rZW4+KHJvb3QpLml0ZW1zWzBdKTtcblxuICBpZiAoc2hvdWxkQ2FycnlJbmRlbnQgJiYgaW5kZW50ID4gMCkge1xuICAgIGl0ZW0uc3RhcnQudW5zaGlmdChjcmVhdGVTcGFjZVRva2VuKGluZGVudCkpO1xuICB9XG5cbiAgcmV0dXJuIGl0ZW07XG59XG5cbi8qKlxuICogUmV3cml0ZXMgYW4gaXRlbSdzIHZhbHVlIGluIHBsYWNlIHdoZXJlIGl0IGNhbiwgYW5kIHJlLWVtaXRzIHRoZSB3aG9sZSB2YWx1ZSB3aGVyZSBpdCBjYW5ub3QuXG4gKlxuICogQHBhcmFtIGl0ZW0gLSBUaGUgY29sbGVjdGlvbiBpdGVtIHRvIHJld3JpdGUgdGhlIHZhbHVlIG9mLlxuICogQHBhcmFtIG9sZFZhbHVlIC0gVGhlIHZhbHVlIHRoZSBzb3VyY2UgaG9sZHMuXG4gKiBAcGFyYW0gbmV3VmFsdWUgLSBUaGUgdmFsdWUgdG8gd3JpdGUuXG4gKiBAcGFyYW0gcGFyZW50SW5kZW50IC0gVGhlIGluZGVudCBvZiB0aGUgY29sbGVjdGlvbiB0aGUgaXRlbSBiZWxvbmdzIHRvLlxuICogQHBhcmFtIGlzU2VxSXRlbSAtIFdoZXRoZXIgdGhlIGl0ZW0gaXMgYSBzZXF1ZW5jZSBpdGVtLCB3aGljaCBjYXJyaWVzIG5vIGBzZXBgIGFuZCBubyBrZXkuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlSXRlbVZhbHVlKGl0ZW06IENTVC5Db2xsZWN0aW9uSXRlbSwgb2xkVmFsdWU6IHVua25vd24sIG5ld1ZhbHVlOiB1bmtub3duLCBwYXJlbnRJbmRlbnQ6IG51bWJlciwgaXNTZXFJdGVtOiBib29sZWFuKTogdm9pZCB7XG4gIGlmIChpc0RlZXBFcXVhbChvbGRWYWx1ZSwgbmV3VmFsdWUpKSB7XG4gICAgLy8gVW50b3VjaGVkOiBpdHMgYnl0ZXMgc3RheSBleGFjdGx5IGFzIGl0cyBhdXRob3Igd3JvdGUgdGhlbS4gVGhpcyBpcyB0aGUgd2hvbGUgcG9pbnQgb2YgdGhlIG1vZHVsZS5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB2YWx1ZVRva2VuID0gaXRlbS52YWx1ZTtcbiAgY29uc3QgcHJlY2VkaW5nVG9rZW5zID0gaXNTZXFJdGVtID8gaXRlbS5zdGFydCA6IGl0ZW0uc2VwO1xuXG4gIGlmIChcbiAgICAodmFsdWVUb2tlbj8udHlwZSA9PT0gJ2Jsb2NrLW1hcCcgJiYgY2hlY2tJc1BsYWluT2JqZWN0KG9sZFZhbHVlKSAmJiBjaGVja0lzUGxhaW5PYmplY3QobmV3VmFsdWUpXG4gICAgICAmJiBkaWROb3JtYWxpemVGaXJzdEl0ZW1JbmRlbnQocHJlY2VkaW5nVG9rZW5zLCB2YWx1ZVRva2VuKSAmJiBkaWRNZXJnZU1hcCh2YWx1ZVRva2VuLCBvbGRWYWx1ZSwgbmV3VmFsdWUpKSB8fCAodmFsdWVUb2tlbj8udHlwZSA9PT0gJ2Jsb2NrLXNlcScgJiYgQXJyYXkuaXNBcnJheShvbGRWYWx1ZSkgJiYgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSlcbiAgICAgICAgJiYgZGlkTm9ybWFsaXplRmlyc3RJdGVtSW5kZW50KHByZWNlZGluZ1Rva2VucywgdmFsdWVUb2tlbikgJiYgZGlkTWVyZ2VTZXEodmFsdWVUb2tlbiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSlcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwbGFjZUl0ZW1WYWx1ZShpdGVtLCBuZXdWYWx1ZSwgcGFyZW50SW5kZW50LCB2YWx1ZVRva2VuPy50eXBlID09PSAnZmxvdy1jb2xsZWN0aW9uJywgaXNTZXFJdGVtKTtcbn1cblxuLyoqXG4gKiBHaXZlcyBldmVyeSBpdGVtIG9mIGEgY29sbGVjdGlvbiB0aGUgaW5kZW50IG9mIGl0cyBvd24gbGluZSwgc28gdGhhdCBhbnkgb2YgdGhlbSBjYW4gYmUgcmVtb3ZlZCBvciBtb3ZlZC5cbiAqXG4gKiBBbiBpdGVtIHdpdGggTk8gVkFMVUUgXHUyMDE0IGEgYmFyZSBgLWAsIG9yIGBrZXk6YCB3aXRoIG5vdGhpbmcgYWZ0ZXIgaXQgXHUyMDE0IGFic29yYnMgdGhlIG5ld2xpbmUgdGhhdCBlbmRzIGl0cyBsaW5lIEFORCB0aGVcbiAqIGluZGVudCBvZiB0aGUgbGluZSBhZnRlciBpdCwgYmVjYXVzZSB0aGUgcGFyc2VyIGhhcyBub3RoaW5nIGVsc2UgdG8gaGFuZyB0aGVtIG9uLiBSZW1vdmluZyBvciBtb3Zpbmcgc3VjaCBhbiBpdGVtXG4gKiB0aGVyZWZvcmUgdGFrZXMgaXRzIHN1Y2Nlc3NvcidzIGluZGVudCB3aXRoIGl0LCBhbmQgdGhlIGJsb2NrIHRoYXQgY29tZXMgYmFjayBkb2VzIG5vdCBwYXJzZSBhdCBhbGwuXG4gKlxuICogTWVhc3VyZWQ6IG92ZXIgYSAzNiAwMDAtbXV0YXRpb24gZGlmZmVyZW50aWFsIGZ1enogdGhpcyBPTkUgc2hhcGUgYWNjb3VudGVkIGZvciBldmVyeSBzcGxpY2UgdGhlIHNhZmV0eSBuZXQgaGFkIHRvXG4gKiByZWZ1c2Ugb24gdW5yZWFkYWJsZSBvdXRwdXQgXHUyMDE0IDkzIG9mIHRoZW0gXHUyMDE0IHNvIGl0IGlzIGEgZmlkZWxpdHkgZml4IHJhdGhlciB0aGFuIGEgY29ycmVjdG5lc3Mgb25lLCB0aGUgc2FmZXR5IG5ldFxuICogaGF2aW5nIGFscmVhZHkgbWFkZSBlYWNoIG9mIHRob3NlIGEgZmFsbGJhY2suXG4gKlxuICogQHBhcmFtIGNvbGxlY3Rpb24gLSBUaGUgY29sbGVjdGlvbiB3aG9zZSBpdGVtcyBhcmUgdG8gY2FycnkgdGhlaXIgb3duIGluZGVudC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSXRlbUluZGVudHMoY29sbGVjdGlvbjogQ29sbGVjdGlvblRva2VuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgW2luZGV4LCBpdGVtXSBvZiBjb2xsZWN0aW9uLml0ZW1zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IG5leHRJdGVtID0gY2FzdFRvPENTVC5Db2xsZWN0aW9uSXRlbSB8IHVuZGVmaW5lZD4oY29sbGVjdGlvbi5pdGVtc1tpbmRleCArIDFdKTtcbiAgICBpZiAoIW5leHRJdGVtIHx8IGl0ZW0udmFsdWUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIEEgbWFwIGl0ZW0gaGFuZ3MgdGhlbSBvbiBpdHMgYHNlcGAsIGEgc2VxdWVuY2UgaXRlbSBvbiBpdHMgYHN0YXJ0YCwgdGhhdCBiZWluZyBhbGwgaXQgaGFzLlxuICAgIGNvbnN0IHRyYWlsaW5nVG9rZW5zID0gaXRlbS5zZXA/Lmxlbmd0aCA/IGl0ZW0uc2VwIDogaXRlbS5zdGFydDtcbiAgICBjb25zdCBsYXN0VG9rZW4gPSB0cmFpbGluZ1Rva2Vucy5hdCgtMSk7XG4gICAgaWYgKGxhc3RUb2tlbj8udHlwZSAhPT0gJ3NwYWNlJyB8fCB0cmFpbGluZ1Rva2Vucy5hdChTRUNPTkRfVE9fTEFTVF9JTkRFWCk/LnR5cGUgIT09ICduZXdsaW5lJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdHJhaWxpbmdUb2tlbnMucG9wKCk7XG4gICAgbmV4dEl0ZW0uc3RhcnQudW5zaGlmdChsYXN0VG9rZW4pO1xuICB9XG59XG5cbi8qKlxuICogTmFtZXMgdGhlIGtleSBhbiBpdGVtIGlzIGFkZHJlc3NlZCBieSwgb3IgYG51bGxgIHdoZW4gbm8gc3RyaW5nIGNhbiBuYW1lIGl0LlxuICpcbiAqIGByZXNvbHZlQXNTY2FsYXJgIHlpZWxkcyB0aGUgc2NhbGFyJ3MgVEVYVCByYXRoZXIgdGhhbiBhIHNjaGVtYS1yZXNvbHZlZCB2YWx1ZSwgc28gdGhlIGFuc3dlciBpcyBhbHdheXMgYSBzdHJpbmcgXHUyMDE0XG4gKiBhbmQgaXQgaXMgdGhlIHNhbWUgc3RyaW5nIHRoZSBwbGFpbi1vYmplY3QgcHJvamVjdGlvbiBib3RoIHNpZGVzIG9mIHRoZSBtZXJnZSBhcmUgY29tcGFyZWQgdGhyb3VnaCwgd2hpY2ggaXMgd2hhdFxuICogbGV0cyBhIGA0MjpgIGtleSBtYXRjaCB0aGUgcHJvamVjdGlvbidzIGAnNDInYCB3aXRob3V0IHF1b3RpbmcgaXQgb24gdGhlIHdheSBvdXQuXG4gKlxuICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byBuYW1lIHRoZSBrZXkgb2YuXG4gKiBAcmV0dXJucyBUaGUga2V5LCBvciBgbnVsbGAgd2hlbiB0aGUga2V5IGlzIGEgY29sbGVjdGlvbiByYXRoZXIgdGhhbiBhIHNjYWxhci5cbiAqL1xuZnVuY3Rpb24gcmVhZEl0ZW1LZXkoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtKTogbnVsbCB8IHN0cmluZyB7XG4gIHJldHVybiAhaXRlbS5rZXkgfHwgIUNTVC5pc1NjYWxhcihpdGVtLmtleSkgPyBudWxsIDogY2FzdFRvPFJlc29sdmVkU2NhbGFyPihDU1QucmVzb2x2ZUFzU2NhbGFyKGl0ZW0ua2V5KSkudmFsdWU7XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VJdGVtVmFsdWUoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtLCBuZXdWYWx1ZTogdW5rbm93biwgaW5kZW50OiBudW1iZXIsIHNob3VsZFByZWZlckZsb3c6IGJvb2xlYW4sIGlzU2VxSXRlbTogYm9vbGVhbik6IHZvaWQge1xuICBpZiAoaXNTZXFJdGVtKSB7XG4gICAgc2V0SXRlbVZhbHVlKGl0ZW0sIGVtaXRTZXFJdGVtKG5ld1ZhbHVlLCBpbmRlbnQsIHNob3VsZFByZWZlckZsb3cpLnZhbHVlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbWl0dGVkVG9rZW5zID0gZW1pdE1hcEl0ZW1Ub2tlbnMobmV3VmFsdWUsIGluZGVudCwgc2hvdWxkUHJlZmVyRmxvdyk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBzZXBgIGlzIHRoZSBgeWFtbGAgcGFja2FnZSdzIG93biBwcm9wZXJ0eSBuYW1lLlxuICBpdGVtLnNlcCA9IGVtaXR0ZWRUb2tlbnMuc2VwYXJhdG9yVG9rZW5zO1xuICBzZXRJdGVtVmFsdWUoaXRlbSwgZW1pdHRlZFRva2Vucy52YWx1ZSk7XG59XG5cbi8qKlxuICogQXNzaWducyBhbiBpdGVtJ3MgdmFsdWUgdG9rZW4sIHJlbW92aW5nIHRoZSBwcm9wZXJ0eSBvdXRyaWdodCB3aGVuIHRoZSBlbWl0dGVkIHZhbHVlIGhhcyBub25lLlxuICpcbiAqIEEga2V5IHdpdGggYSBgbnVsbGAgdmFsdWUgZW1pdHMgYXMgYGtleTpgIHdpdGggbm90aGluZyBhZnRlciB0aGUgc2VwYXJhdG9yLCBzbyB0aGUgaXRlbSBnZW51aW5lbHkgaGFzIG5vIHZhbHVlXG4gKiB0b2tlbiBcdTIwMTQgYW5kIHVuZGVyIGBleGFjdE9wdGlvbmFsUHJvcGVydHlUeXBlc2AgdGhhdCBpcyBhIHByb3BlcnR5IHRvIGRlbGV0ZSwgbm90IG9uZSB0byBzZXQgdG8gYHVuZGVmaW5lZGAuXG4gKlxuICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byBhc3NpZ24gdGhlIHZhbHVlIHRva2VuIG9mLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRva2VuLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZSBlbWl0dGVkIHZhbHVlIGhhcyBub25lLlxuICovXG5mdW5jdGlvbiBzZXRJdGVtVmFsdWUoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtLCB2YWx1ZTogQ1NULlRva2VuIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZGVsZXRlIGl0ZW0udmFsdWU7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaXRlbS52YWx1ZSA9IHZhbHVlO1xufVxuXG4vKipcbiAqIFNwbGljZXMgdGhlIHRleHQgSU5TSURFIGEgZnJvbnQgbWF0dGVyIGJsb2NrJ3MgZGVsaW1pdGVycywgbGVhdmluZyBib3RoIGAtLS1gIGxpbmVzIHVudG91Y2hlZC5cbiAqXG4gKiBAcGFyYW0gc291cmNlIC0gVGhlIGZyb250IG1hdHRlciBibG9jaydzIHRleHQuXG4gKiBAcGFyYW0gbmV3RnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnQgbWF0dGVyIHRvIHdyaXRlLlxuICogQHJldHVybnMgVGhlIG5ldyBibG9jayB0ZXh0LCBvciBgbnVsbGAgd2hlbiB0aGUgc3BsaWNlIGNvdWxkIG5vdCBiZSBwcm92ZWQgZmFpdGhmdWwuXG4gKi9cbmZ1bmN0aW9uIHNwbGljZUZyb250bWF0dGVyQm9keShzb3VyY2U6IHN0cmluZywgbmV3RnJvbnRtYXR0ZXI6IG9iamVjdCk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB0b2tlbnMgPSBbLi4ubmV3IFBhcnNlcigpLnBhcnNlKHNvdXJjZSldO1xuICBjb25zdCBkb2N1bWVudHMgPSBbLi4ubmV3IENvbXBvc2VyKHsga2VlcFNvdXJjZVRva2VuczogdHJ1ZSB9KS5jb21wb3NlKHRva2VucywgdHJ1ZSldO1xuICAvLyBBIHNlY29uZCBkb2N1bWVudCBpcyByZWFjaGFibGUgXHUyMDE0IGEgYC4uLmAgZW5kIG1hcmtlciBzdGFydHMgb25lIFx1MjAxNCBhbmQgc3BsaWNpbmcgdGhlIGZpcnN0IHdvdWxkIGVtaXQgYm90aC5cbiAgY29uc3QgZG9jdW1lbnQgPSBkb2N1bWVudHMubGVuZ3RoID09PSAxID8gZG9jdW1lbnRzWzBdIDogdW5kZWZpbmVkO1xuXG4gIGlmICghZG9jdW1lbnQgfHwgZG9jdW1lbnQuZXJyb3JzLmxlbmd0aCA+IDAgfHwgZG9jdW1lbnQud2FybmluZ3Muc29tZSgod2FybmluZykgPT4gd2FybmluZy5jb2RlID09PSBVTlJFU09MVkVEX1RBR19XQVJOSU5HX0NPREUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjb250ZW50cyA9IGRvY3VtZW50LmNvbnRlbnRzO1xuICBjb25zdCByb290VG9rZW4gPSBjb250ZW50cz8uc3JjVG9rZW47XG4gIC8vIEFuIGFuY2hvciBpcyBhIHNlY29uZCBuYW1lIGZvciBhIG5vZGUsIHNvIGEgc3BsaWNlIHRoYXQgbW92ZXMgb3IgZHJvcHMgb25lIG9mIHRoZSB0d28gc2lsZW50bHkgcmV3cml0ZXMgdGhlIG90aGVyLlxuICAvLyBOb3RoaW5nIGhlcmUgaXMgd29ydGggdGhhdCByaXNrIGZvciBhIGNvbnN0cnVjdCBPYnNpZGlhbidzIG93biBwcm9wZXJ0eSBlZGl0b3IgY2Fubm90IHByb2R1Y2UuXG4gIGlmICghY29udGVudHMgfHwgcm9vdFRva2VuPy50eXBlICE9PSAnYmxvY2stbWFwJyB8fCBjaGVja0hhc0FuY2hvck9yQWxpYXMoY29udGVudHMpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBBIGJsb2NrLW1hcCByb290IGFsd2F5cyBwcm9qZWN0cyB0byBhIHBsYWluIG9iamVjdCwgc28gdGhpcyBpcyBhIGNhc3QgcmF0aGVyIHRoYW4gYSBjaGVjay4gQW55dGhpbmcgdGhhdCBtYWRlIGl0XG4gIC8vIHVudHJ1ZSB3b3VsZCBzdGlsbCBiZSBjYXVnaHQgZG93bnN0cmVhbTogdGhlIG1lcmdlIHdvdWxkIHdyaXRlIGEgbWFwcGluZyB0aGUgc2FmZXR5IG5ldCB0aGVuIHJlZnVzZXMuXG4gIGNvbnN0IG9sZEZyb250bWF0dGVyID0gY2FzdFRvPEdlbmVyaWNPYmplY3Q+KGRvY3VtZW50LnRvSlMoKSk7XG5cbiAgaWYgKCFkaWRNZXJnZU1hcChyb290VG9rZW4sIG9sZEZyb250bWF0dGVyLCBjYXN0VG88R2VuZXJpY09iamVjdD4obmV3RnJvbnRtYXR0ZXIpKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gRXZlcnkgdG9rZW4sIG5vdCBqdXN0IHRoZSByb290IGNvbGxlY3Rpb24nczogYSBjb21tZW50IGJlZm9yZSBvciBhZnRlciB0aGUgbWFwcGluZyBiZWxvbmdzIHRvIHRoZSBET0NVTUVOVCwgc29cbiAgLy8gYENTVC5zdHJpbmdpZnkoY29udGVudHMuc3JjVG9rZW4pYCBhbG9uZSBzaWxlbnRseSBkcm9wcyBib3RoLlxuICBjb25zdCBlbWl0dGVkQm9keSA9IHRva2Vucy5tYXAoKHRva2VuKSA9PiBDU1Quc3RyaW5naWZ5KHRva2VuKSkuam9pbignJyk7XG5cbiAgLy8gVGhlIHJlcGxhY2VkIHJlZ2lvbiBoYXMgdG8gZW5kIGluIGV4YWN0bHkgb25lIG5ld2xpbmUsIGFzIE9ic2lkaWFuJ3MgZnJvbnQgbWF0dGVyIGJsb2NrIGFsd2F5cyBkb2VzLCBvciB0aGUgY2xvc2luZ1xuICAvLyBgLS0tYCBtb3ZlcyBvZmYgaXRzIG93biBsaW5lLiBBIGJsb2NrIHdob3NlIGxhc3Qga2V5IHdhcyBkcm9wcGVkIGNhbiBlbWl0IG5vbmUsIHNvIGl0IGlzIG5vcm1hbGl6ZWQsIG5vdCB0cnVzdGVkLlxuICBjb25zdCBzcGxpY2VkQm9keSA9IGAke2VtaXR0ZWRCb2R5LnJlcGxhY2UoVFJBSUxJTkdfTkVXTElORV9SRUdfRVhQLCAnJyl9XFxuYDtcblxuICByZXR1cm4gY2hlY2tJc1NlbWFudGljTWF0Y2goc3BsaWNlZEJvZHksIG5ld0Zyb250bWF0dGVyKSA/IHNwbGljZWRCb2R5IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5Rmxvdyh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIHJldHVybiBzdHJpbmdpZnkodmFsdWUsIHtcbiAgICAuLi5PQlNJRElBTl9TVFJJTkdJRllfT1BUSU9OUyxcbiAgICBjb2xsZWN0aW9uU3R5bGU6ICdmbG93JyxcbiAgICBmbG93Q29sbGVjdGlvblBhZGRpbmc6IGZhbHNlXG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGdCQUFnQjtBQUN6QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFD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
@@ -0,0 +1,34 @@
1
+ /// <reference path="./library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * This module provides a type for frontmatter link cache with offsets.
6
+ */
7
+ import type { FrontmatterLinkCache, Reference } from 'obsidian';
8
+ /**
9
+ * Type for frontmatter link cache with offsets.
10
+ */
11
+ export interface FrontmatterLinkCacheWithOffsets extends FrontmatterLinkCache {
12
+ /**
13
+ * An end offset of the link in the property value.
14
+ */
15
+ endOffset: number;
16
+ /**
17
+ * A start offset of the link in the property value.
18
+ */
19
+ startOffset: number;
20
+ }
21
+ /**
22
+ * Checks if the reference is a frontmatter link cache with offsets.
23
+ *
24
+ * @param reference - The reference to check.
25
+ * @returns Whether the reference is a frontmatter link cache with offsets.
26
+ */
27
+ export declare function isFrontmatterLinkCacheWithOffsets(reference: Reference): reference is FrontmatterLinkCacheWithOffsets;
28
+ /**
29
+ * Converts a frontmatter link cache to a frontmatter link cache with offsets.
30
+ *
31
+ * @param reference - The reference to convert.
32
+ * @returns The converted reference.
33
+ */
34
+ export declare function toFrontmatterLinkCacheWithOffsets(reference: FrontmatterLinkCache): FrontmatterLinkCacheWithOffsets;
@@ -0,0 +1,61 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
+ symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return "/";
17
+ },
18
+ env: {},
19
+ platform: "android"
20
+ };
21
+ const existingProcess = globalThis.process;
22
+ if (!existingProcess) {
23
+ globalThis.process = browserProcess;
24
+ return;
25
+ }
26
+ if (existingProcess.versions?.node) {
27
+ return;
28
+ }
29
+ const existingProcessRecord = existingProcess;
30
+ for (const [key, value] of Object.entries(browserProcess)) {
31
+ existingProcessRecord[key] ??= value;
32
+ }
33
+ existingProcessRecord["browser"] = true;
34
+ }
35
+
36
+ (function initEsm() {
37
+ ensureDisposeSymbols();
38
+ ensureBrowserProcess();
39
+ })();
40
+ })();
41
+
42
+ import { isFrontmatterLinkCache } from "@obsidian-typings/obsidian-public-latest/implementations";
43
+ function isFrontmatterLinkCacheWithOffsets(reference) {
44
+ if (!isFrontmatterLinkCache(reference)) {
45
+ return false;
46
+ }
47
+ const frontmatterLinkCacheWithOffsets = reference;
48
+ return frontmatterLinkCacheWithOffsets.startOffset !== void 0 && frontmatterLinkCacheWithOffsets.endOffset !== void 0;
49
+ }
50
+ function toFrontmatterLinkCacheWithOffsets(reference) {
51
+ return isFrontmatterLinkCacheWithOffsets(reference) ? reference : {
52
+ ...reference,
53
+ endOffset: reference.original.length,
54
+ startOffset: 0
55
+ };
56
+ }
57
+ export {
58
+ isFrontmatterLinkCacheWithOffsets,
59
+ toFrontmatterLinkCacheWithOffsets
60
+ };
61
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB0eXBlIGZvciBmcm9udG1hdHRlciBsaW5rIGNhY2hlIHdpdGggb2Zmc2V0cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBpc0Zyb250bWF0dGVyTGlua0NhY2hlIH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdC9pbXBsZW1lbnRhdGlvbnMnO1xuXG4vKipcbiAqIFR5cGUgZm9yIGZyb250bWF0dGVyIGxpbmsgY2FjaGUgd2l0aCBvZmZzZXRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMgZXh0ZW5kcyBGcm9udG1hdHRlckxpbmtDYWNoZSB7XG4gIC8qKlxuICAgKiBBbiBlbmQgb2Zmc2V0IG9mIHRoZSBsaW5rIGluIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAgICovXG4gIGVuZE9mZnNldDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHN0YXJ0IG9mZnNldCBvZiB0aGUgbGluayBpbiB0aGUgcHJvcGVydHkgdmFsdWUuXG4gICAqL1xuICBzdGFydE9mZnNldDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcmVmZXJlbmNlIGlzIGEgZnJvbnRtYXR0ZXIgbGluayBjYWNoZSB3aXRoIG9mZnNldHMuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBmcm9udG1hdHRlciBsaW5rIGNhY2hlIHdpdGggb2Zmc2V0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIHtcbiAgaWYgKCFpc0Zyb250bWF0dGVyTGlua0NhY2hlKHJlZmVyZW5jZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBmcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzID0gcmVmZXJlbmNlIGFzIFBhcnRpYWw8RnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cz47XG4gIHJldHVybiBmcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzLnN0YXJ0T2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgZnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cy5lbmRPZmZzZXQgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGZyb250bWF0dGVyIGxpbmsgY2FjaGUgdG8gYSBmcm9udG1hdHRlciBsaW5rIGNhY2hlIHdpdGggb2Zmc2V0cy5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMgVGhlIGNvbnZlcnRlZCByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMocmVmZXJlbmNlOiBGcm9udG1hdHRlckxpbmtDYWNoZSk6IEZyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMge1xuICByZXR1cm4gaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKHJlZmVyZW5jZSlcbiAgICA/IHJlZmVyZW5jZVxuICAgIDoge1xuICAgICAgLi4ucmVmZXJlbmNlLFxuICAgICAgZW5kT2Zmc2V0OiByZWZlcmVuY2Uub3JpZ2luYWwubGVuZ3RoLFxuICAgICAgc3RhcnRPZmZzZXQ6IDBcbiAgICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxTQUFTLDhCQUE4QjtBQXVCaEMsU0FBUyxrQ0FBa0MsV0FBb0U7QUFDcEgsTUFBSSxDQUFDLHVCQUF1QixTQUFTLEdBQUc7QUFDdEMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGtDQUFrQztBQUN4QyxTQUFPLGdDQUFnQyxnQkFBZ0IsVUFBYSxnQ0FBZ0MsY0FBYztBQUNwSDtBQVFPLFNBQVMsa0NBQWtDLFdBQWtFO0FBQ2xILFNBQU8sa0NBQWtDLFNBQVMsSUFDOUMsWUFDQTtBQUFBLElBQ0EsR0FBRztBQUFBLElBQ0gsV0FBVyxVQUFVLFNBQVM7QUFBQSxJQUM5QixhQUFhO0FBQUEsRUFDZjtBQUNKOyIsCiAgIm5hbWVzIjogW10KfQo=