obsidian-dev-utils 85.0.0 → 86.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/@types/obsidian-integration-testing/package.json +4 -0
  2. package/CHANGELOG.md +22 -0
  3. package/README.md +1 -0
  4. package/dist/dev/main.js +9153 -4744
  5. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +18 -0
  6. package/dist/lib/cjs/__merged.cjs +1291 -0
  7. package/dist/lib/cjs/__merged.d.cts +165 -0
  8. package/dist/lib/cjs/abort-controller.cjs +3 -4
  9. package/dist/lib/cjs/async.cjs +13 -7
  10. package/dist/lib/cjs/async.d.cts +6 -0
  11. package/dist/lib/cjs/disposable.cjs +224 -3
  12. package/dist/lib/cjs/disposable.d.cts +222 -2
  13. package/dist/lib/cjs/error.cjs +41 -3
  14. package/dist/lib/cjs/error.d.cts +50 -1
  15. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  16. package/dist/lib/cjs/index.cjs +4 -1
  17. package/dist/lib/cjs/index.d.cts +1 -0
  18. package/dist/lib/cjs/obsidian/attachment-path.cjs +3 -3
  19. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +27 -11
  20. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +14 -9
  21. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +4 -1
  22. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +1 -0
  23. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.cjs +195 -0
  24. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.d.cts +65 -0
  25. package/dist/lib/cjs/obsidian/community-plugins.cjs +156 -0
  26. package/dist/lib/cjs/obsidian/community-plugins.d.cts +22 -0
  27. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +8 -8
  28. package/dist/lib/cjs/obsidian/components/disposable-component.d.cts +9 -3
  29. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +17 -2
  30. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +17 -0
  31. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +161 -22
  32. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +81 -8
  33. package/dist/lib/cjs/obsidian/css-class.cjs +4 -1
  34. package/dist/lib/cjs/obsidian/css-class.d.cts +13 -0
  35. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +239 -0
  36. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.d.cts +45 -0
  37. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +215 -0
  38. package/dist/lib/cjs/obsidian/desktop-trusted-input.d.cts +135 -0
  39. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +3 -1
  40. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +2 -0
  41. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +2 -0
  42. package/dist/lib/cjs/obsidian/index.cjs +10 -1
  43. package/dist/lib/cjs/obsidian/index.d.cts +3 -0
  44. package/dist/lib/cjs/obsidian/link.cjs +24 -10
  45. package/dist/lib/cjs/obsidian/link.d.cts +16 -0
  46. package/dist/lib/cjs/obsidian/modals/index.cjs +4 -1
  47. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -0
  48. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +15 -2
  49. package/dist/lib/cjs/obsidian/modals/minimizable-modal.d.cts +18 -3
  50. package/dist/lib/cjs/obsidian/modals/select-option.cjs +182 -0
  51. package/dist/lib/cjs/obsidian/modals/select-option.d.cts +65 -0
  52. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +4 -1
  53. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +6 -0
  54. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +50 -3
  55. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +17 -0
  56. package/dist/lib/cjs/obsidian/workspace.cjs +8 -1
  57. package/dist/lib/cjs/obsidian/workspace.d.cts +10 -0
  58. package/dist/lib/cjs/path.cjs +4 -4
  59. package/dist/lib/cjs/path.d.cts +1 -1
  60. package/dist/lib/cjs/script-utils/demo-vault.cjs +177 -0
  61. package/dist/lib/cjs/script-utils/demo-vault.d.cts +23 -0
  62. package/dist/lib/cjs/script-utils/exec.cjs +27 -5
  63. package/dist/lib/cjs/script-utils/exec.d.cts +20 -0
  64. package/dist/lib/cjs/script-utils/index.cjs +9 -3
  65. package/dist/lib/cjs/script-utils/index.d.cts +2 -0
  66. package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +1 -5
  67. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +2 -1
  68. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +2 -0
  69. package/dist/lib/cjs/script-utils/version.cjs +8 -1
  70. package/dist/lib/cjs/script-utils/version.d.cts +8 -0
  71. package/dist/lib/cjs/script-utils/warnings-as-errors.cjs +157 -0
  72. package/dist/lib/cjs/script-utils/warnings-as-errors.d.cts +27 -0
  73. package/dist/lib/cjs/setup.cjs +75 -4
  74. package/dist/lib/cjs/setup.d.cts +29 -7
  75. package/dist/lib/cjs/string.cjs +7 -4
  76. package/dist/lib/cjs/string.d.cts +11 -1
  77. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +18 -0
  78. package/dist/lib/esm/__merged.d.mts +165 -0
  79. package/dist/lib/esm/__merged.mjs +1134 -0
  80. package/dist/lib/esm/abort-controller.mjs +7 -5
  81. package/dist/lib/esm/async.d.mts +6 -0
  82. package/dist/lib/esm/async.mjs +13 -7
  83. package/dist/lib/esm/disposable.d.mts +222 -2
  84. package/dist/lib/esm/disposable.mjs +215 -2
  85. package/dist/lib/esm/error.d.mts +50 -1
  86. package/dist/lib/esm/error.mjs +41 -4
  87. package/dist/lib/esm/generated-during-build.mjs +2 -2
  88. package/dist/lib/esm/index.d.mts +1 -0
  89. package/dist/lib/esm/index.mjs +3 -1
  90. package/dist/lib/esm/obsidian/attachment-path.mjs +4 -4
  91. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +14 -9
  92. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +31 -11
  93. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +1 -0
  94. package/dist/lib/esm/obsidian/command-handlers/index.mjs +3 -1
  95. package/dist/lib/esm/obsidian/command-handlers/open-demo-vault-command-handler.d.mts +65 -0
  96. package/dist/lib/esm/obsidian/command-handlers/open-demo-vault-command-handler.mjs +77 -0
  97. package/dist/lib/esm/obsidian/community-plugins.d.mts +22 -0
  98. package/dist/lib/esm/obsidian/community-plugins.mjs +48 -0
  99. package/dist/lib/esm/obsidian/components/disposable-component.d.mts +9 -3
  100. package/dist/lib/esm/obsidian/components/disposable-component.mjs +8 -8
  101. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +17 -0
  102. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +17 -2
  103. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +81 -8
  104. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +163 -23
  105. package/dist/lib/esm/obsidian/css-class.d.mts +13 -0
  106. package/dist/lib/esm/obsidian/css-class.mjs +4 -1
  107. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.d.mts +45 -0
  108. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +121 -0
  109. package/dist/lib/esm/obsidian/desktop-trusted-input.d.mts +135 -0
  110. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +103 -0
  111. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +2 -0
  112. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
  113. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +2 -0
  114. package/dist/lib/esm/obsidian/index.d.mts +3 -0
  115. package/dist/lib/esm/obsidian/index.mjs +7 -1
  116. package/dist/lib/esm/obsidian/link.d.mts +16 -0
  117. package/dist/lib/esm/obsidian/link.mjs +25 -11
  118. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -0
  119. package/dist/lib/esm/obsidian/modals/index.mjs +3 -1
  120. package/dist/lib/esm/obsidian/modals/minimizable-modal.d.mts +18 -3
  121. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +17 -3
  122. package/dist/lib/esm/obsidian/modals/select-option.d.mts +65 -0
  123. package/dist/lib/esm/obsidian/modals/select-option.mjs +77 -0
  124. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +6 -0
  125. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +4 -1
  126. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +17 -0
  127. package/dist/lib/esm/obsidian/plugin/plugin.mjs +50 -3
  128. package/dist/lib/esm/obsidian/workspace.d.mts +10 -0
  129. package/dist/lib/esm/obsidian/workspace.mjs +7 -1
  130. package/dist/lib/esm/path.d.mts +1 -1
  131. package/dist/lib/esm/path.mjs +3 -3
  132. package/dist/lib/esm/script-utils/demo-vault.d.mts +23 -0
  133. package/dist/lib/esm/script-utils/demo-vault.mjs +63 -0
  134. package/dist/lib/esm/script-utils/exec.d.mts +20 -0
  135. package/dist/lib/esm/script-utils/exec.mjs +25 -5
  136. package/dist/lib/esm/script-utils/index.d.mts +2 -0
  137. package/dist/lib/esm/script-utils/index.mjs +6 -2
  138. package/dist/lib/esm/script-utils/linters/eslint-no-restricted-syntax.mjs +1 -5
  139. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +2 -0
  140. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +2 -1
  141. package/dist/lib/esm/script-utils/version.d.mts +8 -0
  142. package/dist/lib/esm/script-utils/version.mjs +8 -1
  143. package/dist/lib/esm/script-utils/warnings-as-errors.d.mts +27 -0
  144. package/dist/lib/esm/script-utils/warnings-as-errors.mjs +38 -0
  145. package/dist/lib/esm/setup.d.mts +29 -7
  146. package/dist/lib/esm/setup.mjs +78 -4
  147. package/dist/lib/esm/string.d.mts +11 -1
  148. package/dist/lib/esm/string.mjs +5 -3
  149. package/dist/styles.css +33 -3
  150. package/obsidian/command-handlers/open-demo-vault-command-handler/package.json +6 -0
  151. package/obsidian/community-plugins/package.json +6 -0
  152. package/obsidian/desktop-demo-vault-opener/package.json +6 -0
  153. package/obsidian/desktop-trusted-input/package.json +6 -0
  154. package/obsidian/modals/select-option/package.json +6 -0
  155. package/package.json +9 -10
  156. package/script-utils/demo-vault/package.json +6 -0
  157. package/script-utils/warnings-as-errors/package.json +6 -0
  158. /package/obsidian/@types/{Dataview → dataview}/api/data-array/package.json +0 -0
  159. /package/obsidian/@types/{Dataview → dataview}/api/extensions/package.json +0 -0
  160. /package/obsidian/@types/{Dataview → dataview}/api/inline-api/package.json +0 -0
  161. /package/obsidian/@types/{Dataview → dataview}/api/plugin-api/package.json +0 -0
  162. /package/obsidian/@types/{Dataview → dataview}/api/result/package.json +0 -0
  163. /package/obsidian/@types/{Dataview → dataview}/data-import/common/package.json +0 -0
  164. /package/obsidian/@types/{Dataview → dataview}/data-import/csv/package.json +0 -0
  165. /package/obsidian/@types/{Dataview → dataview}/data-import/inline-field/package.json +0 -0
  166. /package/obsidian/@types/{Dataview → dataview}/data-import/markdown-file/package.json +0 -0
  167. /package/obsidian/@types/{Dataview → dataview}/data-import/persister/package.json +0 -0
  168. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-entry/package.json +0 -0
  169. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-impl/package.json +0 -0
  170. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-manager/package.json +0 -0
  171. /package/obsidian/@types/{Dataview → dataview}/data-index/index/package.json +0 -0
  172. /package/obsidian/@types/{Dataview → dataview}/data-index/package.json +0 -0
  173. /package/obsidian/@types/{Dataview → dataview}/data-index/resolver/package.json +0 -0
  174. /package/obsidian/@types/{Dataview → dataview}/data-index/source/package.json +0 -0
  175. /package/obsidian/@types/{Dataview → dataview}/data-model/markdown/package.json +0 -0
  176. /package/obsidian/@types/{Dataview → dataview}/data-model/serialized/markdown/package.json +0 -0
  177. /package/obsidian/@types/{Dataview → dataview}/data-model/transferable/package.json +0 -0
  178. /package/obsidian/@types/{Dataview → dataview}/data-model/value/package.json +0 -0
  179. /package/obsidian/@types/{Dataview → dataview}/expression/binaryop/package.json +0 -0
  180. /package/obsidian/@types/{Dataview → dataview}/expression/context/package.json +0 -0
  181. /package/obsidian/@types/{Dataview → dataview}/expression/field/package.json +0 -0
  182. /package/obsidian/@types/{Dataview → dataview}/expression/functions/package.json +0 -0
  183. /package/obsidian/@types/{Dataview → dataview}/expression/parse/package.json +0 -0
  184. /package/obsidian/@types/{Dataview → dataview}/index/package.json +0 -0
  185. /package/obsidian/@types/{Dataview → dataview}/main/package.json +0 -0
  186. /package/obsidian/@types/{Dataview → dataview}/package.json +0 -0
  187. /package/obsidian/@types/{Dataview → dataview}/query/engine/package.json +0 -0
  188. /package/obsidian/@types/{Dataview → dataview}/query/parse/package.json +0 -0
  189. /package/obsidian/@types/{Dataview → dataview}/query/query/package.json +0 -0
  190. /package/obsidian/@types/{Dataview → dataview}/settings/package.json +0 -0
  191. /package/obsidian/@types/{Dataview → dataview}/typings/obsidian-ex/package.json +0 -0
  192. /package/obsidian/@types/{Dataview → dataview}/typings/workers/package.json +0 -0
  193. /package/obsidian/@types/{Dataview → dataview}/ui/export/markdown/package.json +0 -0
  194. /package/obsidian/@types/{Dataview → dataview}/ui/lp-render/package.json +0 -0
  195. /package/obsidian/@types/{Dataview → dataview}/ui/markdown/package.json +0 -0
  196. /package/obsidian/@types/{Dataview → dataview}/ui/refreshable-view/package.json +0 -0
  197. /package/obsidian/@types/{Dataview → dataview}/ui/render/package.json +0 -0
  198. /package/obsidian/@types/{Dataview → dataview}/ui/views/calendar-view/package.json +0 -0
  199. /package/obsidian/@types/{Dataview → dataview}/ui/views/inline-field-live-preview/package.json +0 -0
  200. /package/obsidian/@types/{Dataview → dataview}/ui/views/inline-view/package.json +0 -0
  201. /package/obsidian/@types/{Dataview → dataview}/ui/views/js-view/package.json +0 -0
  202. /package/obsidian/@types/{Dataview → dataview}/ui/views/list-view/package.json +0 -0
  203. /package/obsidian/@types/{Dataview → dataview}/ui/views/table-view/package.json +0 -0
  204. /package/obsidian/@types/{Dataview → dataview}/ui/views/task-view/package.json +0 -0
  205. /package/obsidian/@types/{Dataview → dataview}/util/hash/package.json +0 -0
  206. /package/obsidian/@types/{Dataview → dataview}/util/locale/package.json +0 -0
  207. /package/obsidian/@types/{Dataview → dataview}/util/media/package.json +0 -0
  208. /package/obsidian/@types/{Dataview → dataview}/util/normalize/package.json +0 -0
  209. /package/obsidian/{App → app}/package.json +0 -0
  210. /package/obsidian/{Backlink → backlink}/package.json +0 -0
  211. /package/obsidian/{Callout → callout}/package.json +0 -0
  212. /package/obsidian/{Components → components}/abort-signal-component/package.json +0 -0
  213. /package/obsidian/{Components → components}/all-windows-event-component/package.json +0 -0
  214. /package/obsidian/{Components → components}/async-error-handler-component/package.json +0 -0
  215. /package/obsidian/{Components → components}/async-events-component/package.json +0 -0
  216. /package/obsidian/{Components → components}/case-insensitive-file-index-component/package.json +0 -0
  217. /package/obsidian/{Components → components}/component-ex/package.json +0 -0
  218. /package/obsidian/{Components → components}/console-debug-component/package.json +0 -0
  219. /package/obsidian/{Components → components}/disposable-component/package.json +0 -0
  220. /package/obsidian/{Components → components}/embed-extensions-component/package.json +0 -0
  221. /package/obsidian/{Components → components}/generate-markdown-link-default-params-component/package.json +0 -0
  222. /package/obsidian/{Components → components}/index/package.json +0 -0
  223. /package/obsidian/{Components → components}/layout-ready-component/package.json +0 -0
  224. /package/obsidian/{Components → components}/menu-event-registrar-component/package.json +0 -0
  225. /package/obsidian/{Components → components}/monkey-around-component/package.json +0 -0
  226. /package/obsidian/{Components → components}/package.json +0 -0
  227. /package/obsidian/{Components → components}/plugin-context-component/package.json +0 -0
  228. /package/obsidian/{Components → components}/plugin-notice-component/package.json +0 -0
  229. /package/obsidian/{Components → components}/plugin-settings-component/package.json +0 -0
  230. /package/obsidian/{Components → components}/plugin-settings-tab-component/package.json +0 -0
  231. /package/obsidian/{Components → components}/registry-component/package.json +0 -0
  232. /package/obsidian/{Components → components}/rename-delete-handler-component/package.json +0 -0
  233. /package/obsidian/{Dataview → dataview}/package.json +0 -0
  234. /package/obsidian/{Editor → editor}/package.json +0 -0
  235. /package/obsidian/{Frontmatter → frontmatter}/package.json +0 -0
  236. /package/obsidian/{Link → link}/package.json +0 -0
  237. /package/obsidian/{Logger → logger}/package.json +0 -0
  238. /package/obsidian/{Loop → loop}/package.json +0 -0
  239. /package/obsidian/{Markdown → markdown}/package.json +0 -0
  240. /package/obsidian/{Modals/Alert → modals/alert}/package.json +0 -0
  241. /package/obsidian/{Modals/Confirm → modals/confirm}/package.json +0 -0
  242. /package/obsidian/{Modals → modals}/index/package.json +0 -0
  243. /package/obsidian/{Modals → modals}/minimizable-modal/package.json +0 -0
  244. /package/obsidian/{Modals → modals}/modal/package.json +0 -0
  245. /package/obsidian/{Modals → modals}/package.json +0 -0
  246. /package/obsidian/{Modals/Prompt → modals/prompt}/package.json +0 -0
  247. /package/obsidian/{Modals → modals}/select-item/package.json +0 -0
  248. /package/obsidian/{Modals → modals}/suggest-modal-command-builder/package.json +0 -0
  249. /package/obsidian/{Pdf → pdf}/package.json +0 -0
  250. /package/obsidian/{Plugin → plugin}/index/package.json +0 -0
  251. /package/obsidian/{Plugin → plugin}/obsidian-plugin-repo-paths/package.json +0 -0
  252. /package/obsidian/{Plugin → plugin}/package.json +0 -0
  253. /package/obsidian/{Plugin/Plugin → plugin/plugin}/package.json +0 -0
  254. /package/obsidian/{Plugin → plugin}/plugin-context/package.json +0 -0
  255. /package/obsidian/{Plugin → plugin}/plugin-event-source/package.json +0 -0
  256. /package/obsidian/{Plugin → plugin}/plugin-settings-tab/package.json +0 -0
  257. /package/obsidian/{Queue → queue}/package.json +0 -0
  258. /package/obsidian/{React → react}/app-context/package.json +0 -0
  259. /package/obsidian/{React → react}/index/package.json +0 -0
  260. /package/obsidian/{React → react}/package.json +0 -0
  261. /package/obsidian/{Reference → reference}/package.json +0 -0
  262. /package/obsidian/{Validation → validation}/package.json +0 -0
  263. /package/obsidian/{Vault → vault}/package.json +0 -0
  264. /package/obsidian/{Workspace → workspace}/package.json +0 -0
  265. /package/{Transformers → transformers}/date-transformer/package.json +0 -0
  266. /package/{Transformers → transformers}/duration-transformer/package.json +0 -0
  267. /package/{Transformers → transformers}/group-transformer/package.json +0 -0
  268. /package/{Transformers → transformers}/index/package.json +0 -0
  269. /package/{Transformers → transformers}/map-transformer/package.json +0 -0
  270. /package/{Transformers → transformers}/package.json +0 -0
  271. /package/{Transformers → transformers}/set-transformer/package.json +0 -0
  272. /package/{Transformers → transformers}/skip-private-property-transformer/package.json +0 -0
  273. /package/{Transformers/Transformer → transformers/transformer}/package.json +0 -0
  274. /package/{Transformers → transformers}/two-way-map-transformer/package.json +0 -0
  275. /package/{Transformers → transformers}/typed-transformer/package.json +0 -0
@@ -0,0 +1,1134 @@
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 initEsm() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ if (globalThis.process) {
9
+ return;
10
+ }
11
+
12
+ const browserProcess = {
13
+ browser: true,
14
+ cwd() {
15
+ return '/';
16
+ },
17
+ env: {},
18
+ platform: 'android'
19
+ };
20
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ import {
25
+ abortSignalAny,
26
+ abortSignalNever,
27
+ abortSignalTimeout,
28
+ INFINITE_TIMEOUT,
29
+ onAbort,
30
+ waitForAbort
31
+ } from "./abort-controller.mjs";
32
+ import {
33
+ filterInPlace,
34
+ unique,
35
+ uniqueInPlace
36
+ } from "./array.mjs";
37
+ import {
38
+ AsyncEvents,
39
+ AsyncEventsBase,
40
+ mixinAsyncEvents
41
+ } from "./async-events.mjs";
42
+ import {
43
+ addErrorHandler,
44
+ asyncFilter,
45
+ asyncFilterInPlace,
46
+ asyncFlatMap,
47
+ asyncMap,
48
+ chain,
49
+ convertAsyncToSync,
50
+ convertSyncToAsync,
51
+ disableAsyncOperationTracking,
52
+ enableAsyncOperationTracking,
53
+ handleSilentError,
54
+ ignoreError,
55
+ invokeAsyncSafely,
56
+ invokeAsyncSafelyAfterDelay,
57
+ isAsyncOperationTrackingEnabled,
58
+ marksAsTerminateRetry,
59
+ neverEnds,
60
+ nextTickAsync,
61
+ normalizePromisable,
62
+ promiseAllAsyncFnsSequentially,
63
+ promiseAllSequentially,
64
+ queueMicrotaskAsync,
65
+ requestAnimationFrameAsync,
66
+ retryWithTimeout,
67
+ runWithTimeout,
68
+ setImmediateAsync,
69
+ setTimeoutAsync,
70
+ sleep,
71
+ timeout,
72
+ toArray,
73
+ waitForAllAsyncOperations
74
+ } from "./async.mjs";
75
+ import { Beeper } from "./beeper.mjs";
76
+ import {
77
+ blobToArrayBuffer,
78
+ blobToDataUrl,
79
+ blobToJpegArrayBuffer,
80
+ dataUrlToArrayBuffer,
81
+ isImageFile
82
+ } from "./blob.mjs";
83
+ import {
84
+ enableLibraryDebuggers,
85
+ getDebugController,
86
+ getDebugger,
87
+ getLibDebugger,
88
+ printWithStackTrace,
89
+ showInitialDebugMessage
90
+ } from "./debug.mjs";
91
+ import {
92
+ AsyncCallbackDisposable,
93
+ CallbackDisposable,
94
+ CombineAsyncDisposable,
95
+ CombineDisposable,
96
+ DisposeErrorBehavior,
97
+ DisposeOrder,
98
+ isAsyncDisposable,
99
+ isAsyncDisposableEx,
100
+ isDisposable,
101
+ isDisposableEx,
102
+ MultipleDisposeBehavior,
103
+ toAsyncDisposableEx,
104
+ toDisposableEx
105
+ } from "./disposable.mjs";
106
+ import {
107
+ getEnumKey,
108
+ getEnumValue
109
+ } from "./enum.mjs";
110
+ import {
111
+ ASYNC_WRAPPER_ERROR_MESSAGE,
112
+ CustomStackTraceError,
113
+ emitAsyncErrorEvent,
114
+ errorToString,
115
+ ErrorWrapper,
116
+ getStackTrace,
117
+ isAsyncErrorIgnoreContextActive,
118
+ printError,
119
+ registerAsyncErrorEventHandler,
120
+ SilentError,
121
+ startAsyncErrorIgnoreContext,
122
+ startCollectingUnhandledAsyncErrors,
123
+ stopCollectingUnhandledAsyncErrors,
124
+ throwExpression
125
+ } from "./error.mjs";
126
+ import {
127
+ cloneFunction,
128
+ createFunction,
129
+ getFunctionExpressionString,
130
+ noop,
131
+ noopAsync,
132
+ noopAsyncSingletonPromise,
133
+ omitAsyncReturnType,
134
+ omitReturnType
135
+ } from "./function.mjs";
136
+ import {
137
+ LIBRARY_STYLES,
138
+ LIBRARY_VERSION
139
+ } from "./generated-during-build.mjs";
140
+ import {
141
+ createDivAsync,
142
+ createElAsync,
143
+ createFragmentAsync,
144
+ createSpanAsync,
145
+ createSvgAsync,
146
+ ensureLoaded,
147
+ getZIndex,
148
+ isElementVisibleInOffsetParent,
149
+ isLoaded,
150
+ onAncestorScrollOrResize,
151
+ toPx,
152
+ waitUntilConnected
153
+ } from "./html-element.mjs";
154
+ import {
155
+ Library,
156
+ LIBRARY_NAME
157
+ } from "./library.mjs";
158
+ import {
159
+ assignWithNonEnumerableProperties,
160
+ castTo,
161
+ cloneWithNonEnumerableProperties,
162
+ deepEqual,
163
+ deleteProperties,
164
+ deleteProperty,
165
+ extractDefaultExportInterop,
166
+ FunctionHandlingMode,
167
+ getAllEntries,
168
+ getAllKeys,
169
+ getNestedPropertyValue,
170
+ getPrototypeOf,
171
+ nameof,
172
+ normalizeOptionalProperties,
173
+ removeUndefinedProperties,
174
+ setNestedPropertyValue,
175
+ toJson
176
+ } from "./object-utils.mjs";
177
+ import {
178
+ getObsidianDevUtilsState,
179
+ resetObsidianDevUtilsState
180
+ } from "./obsidian-dev-utils-state.mjs";
181
+ import { AppActiveFileProvider } from "./obsidian/active-file-provider.mjs";
182
+ import { getApp } from "./obsidian/app.mjs";
183
+ import {
184
+ retryWithTimeoutNotice,
185
+ runWithTimeoutNotice
186
+ } from "./obsidian/async-with-notice.mjs";
187
+ import {
188
+ AttachmentPathContext,
189
+ DUMMY_PATH,
190
+ getAttachmentFilePath,
191
+ getAttachmentFolderPath,
192
+ getAvailablePathForAttachments,
193
+ hasOwnAttachmentFolder
194
+ } from "./obsidian/attachment-path.mjs";
195
+ import {
196
+ renderBacklinksTable,
197
+ renderDelayedBacklinks,
198
+ renderDelayedBacklinksForFolder
199
+ } from "./obsidian/backlink.mjs";
200
+ import { PluginBasesViewRegistrar } from "./obsidian/bases-view-registrar.mjs";
201
+ import {
202
+ CalloutMode,
203
+ renderCallout,
204
+ wrapForCallout
205
+ } from "./obsidian/callout.mjs";
206
+ import {
207
+ CaseInsensitiveFileIndex,
208
+ getCaseInsensitiveFileIndex,
209
+ setCaseInsensitiveFileIndex,
210
+ unsetCaseInsensitiveFileIndex
211
+ } from "./obsidian/case-insensitive-file-index.mjs";
212
+ import { AbstractFileCommandHandler } from "./obsidian/command-handlers/abstract-file-command-handler.mjs";
213
+ import { CommandHandlerComponent } from "./obsidian/command-handlers/command-handler-component.mjs";
214
+ import { CommandHandler } from "./obsidian/command-handlers/command-handler.mjs";
215
+ import { EditorCommandHandler } from "./obsidian/command-handlers/editor-command-handler.mjs";
216
+ import { FileCommandHandler } from "./obsidian/command-handlers/file-command-handler.mjs";
217
+ import { FolderCommandHandler } from "./obsidian/command-handlers/folder-command-handler.mjs";
218
+ import { GlobalCommandHandler } from "./obsidian/command-handlers/global-command-handler.mjs";
219
+ import { OpenDemoVaultCommandHandler } from "./obsidian/command-handlers/open-demo-vault-command-handler.mjs";
220
+ import { OpenSettingsCommandHandler } from "./obsidian/command-handlers/open-settings-command-handler.mjs";
221
+ import { UnlockActiveNoteCommandHandler } from "./obsidian/command-handlers/unlock-active-note-command-handler.mjs";
222
+ import { PluginCommandRegistrar } from "./obsidian/command-registrar.mjs";
223
+ import { getCommunityPluginRepo } from "./obsidian/community-plugins.mjs";
224
+ import { AbortSignalComponent } from "./obsidian/components/abort-signal-component.mjs";
225
+ import { AllWindowsEventComponent } from "./obsidian/components/all-windows-event-component.mjs";
226
+ import { AsyncErrorHandlerComponent } from "./obsidian/components/async-error-handler-component.mjs";
227
+ import { registerAsyncEvent } from "./obsidian/components/async-events-component.mjs";
228
+ import { CaseInsensitiveFileIndexComponent } from "./obsidian/components/case-insensitive-file-index-component.mjs";
229
+ import { ComponentEx } from "./obsidian/components/component-ex.mjs";
230
+ import { ConsoleDebugComponent } from "./obsidian/components/console-debug-component.mjs";
231
+ import { asDisposableComponent } from "./obsidian/components/disposable-component.mjs";
232
+ import { EmbedExtensionsComponent } from "./obsidian/components/embed-extensions-component.mjs";
233
+ import { GenerateMarkdownLinkDefaultParamsComponent } from "./obsidian/components/generate-markdown-link-default-params-component.mjs";
234
+ import {
235
+ CallbackLayoutReadyComponent,
236
+ LayoutReadyComponent
237
+ } from "./obsidian/components/layout-ready-component.mjs";
238
+ import { MenuEventRegistrarComponent } from "./obsidian/components/menu-event-registrar-component.mjs";
239
+ import {
240
+ around,
241
+ hasPatchToken,
242
+ MonkeyAroundComponent
243
+ } from "./obsidian/components/monkey-around-component.mjs";
244
+ import { PluginContextComponent } from "./obsidian/components/plugin-context-component.mjs";
245
+ import { PluginNoticeComponent } from "./obsidian/components/plugin-notice-component.mjs";
246
+ import { PluginSettingsComponentBase } from "./obsidian/components/plugin-settings-component.mjs";
247
+ import { PluginSettingsTabComponent } from "./obsidian/components/plugin-settings-tab-component.mjs";
248
+ import { RegistryComponent } from "./obsidian/components/registry-component.mjs";
249
+ import {
250
+ EmptyFolderBehavior,
251
+ RenameDeleteHandlerComponent
252
+ } from "./obsidian/components/rename-delete-handler-component.mjs";
253
+ import { getDomEventsHandlersConstructor } from "./obsidian/constructors/get-dom-events-handlers-constructor.mjs";
254
+ import { CssClass } from "./obsidian/css-class.mjs";
255
+ import { PluginDataHandler } from "./obsidian/data-handler.mjs";
256
+ import {
257
+ fixTitle,
258
+ makeLinkWithPath
259
+ } from "./obsidian/dataview-link.mjs";
260
+ import {
261
+ getRenderedContainer,
262
+ insertCodeBlock,
263
+ reloadCurrentFileCache,
264
+ renderIframe,
265
+ renderPaginatedList,
266
+ renderPaginatedTable
267
+ } from "./obsidian/dataview.mjs";
268
+ import { openDemoVault } from "./obsidian/desktop-demo-vault-opener.mjs";
269
+ import {
270
+ hoverElement,
271
+ moveMouse,
272
+ pressKey,
273
+ typeIntoEditor,
274
+ unhoverElement
275
+ } from "./obsidian/desktop-trusted-input.mjs";
276
+ import { PluginEditorExtensionRegistrar } from "./obsidian/editor-extension-registrar.mjs";
277
+ import { PluginEditorSuggestRegistrar } from "./obsidian/editor-suggest-registrar.mjs";
278
+ import {
279
+ syncOpenEditorBuffersForPath,
280
+ toggleEditorReadOnly
281
+ } from "./obsidian/editor.mjs";
282
+ import { PluginExtensionsRegistrar } from "./obsidian/extensions-registrar.mjs";
283
+ import {
284
+ applyContentChanges,
285
+ applyFileChanges,
286
+ isCanvasChange,
287
+ isCanvasFileNodeChange,
288
+ isCanvasTextNodeChange,
289
+ isContentChange,
290
+ isFrontmatterChange,
291
+ isFrontmatterChangeWithOffsets,
292
+ toFrontmatterChangeWithOffsets
293
+ } from "./obsidian/file-change.mjs";
294
+ import {
295
+ addAlias,
296
+ deleteAlias,
297
+ processFrontmatter
298
+ } from "./obsidian/file-manager.mjs";
299
+ import {
300
+ asArrayOfFiles,
301
+ asArrayOfFolders,
302
+ asFile,
303
+ asFileOrNull,
304
+ asFolder,
305
+ asFolderOrNull,
306
+ BASE_FILE_EXTENSION,
307
+ CANVAS_FILE_EXTENSION,
308
+ checkExtension,
309
+ exists,
310
+ FileSystemType,
311
+ getAbstractFile,
312
+ getAbstractFileOrNull,
313
+ getFile,
314
+ getFileOrNull,
315
+ getFileSystemType,
316
+ getFolder,
317
+ getFolderOrNull,
318
+ getMarkdownFiles,
319
+ getOrCreateFile,
320
+ getOrCreateFolder,
321
+ getPath,
322
+ isAbstractFile,
323
+ isBaseFile,
324
+ isCanvasFile,
325
+ isFile,
326
+ isFolder,
327
+ isMarkdownFile,
328
+ isNote,
329
+ MARKDOWN_FILE_EXTENSION,
330
+ trimMarkdownExtension
331
+ } from "./obsidian/file-system.mjs";
332
+ import {
333
+ isFrontmatterLinkCacheWithOffsets,
334
+ toFrontmatterLinkCacheWithOffsets
335
+ } from "./obsidian/frontmatter-link-cache-with-offsets.mjs";
336
+ import {
337
+ parseFrontmatter,
338
+ setFrontmatter
339
+ } from "./obsidian/frontmatter.mjs";
340
+ import { PluginHoverLinkSourceRegistrar } from "./obsidian/hover-link-source-registrar.mjs";
341
+ import { appendCodeBlock } from "./obsidian/html-element.mjs";
342
+ import {
343
+ DEFAULT_NS,
344
+ initI18N,
345
+ t
346
+ } from "./obsidian/i18n/i18n.mjs";
347
+ import { en } from "./obsidian/i18n/locales/en.mjs";
348
+ import {
349
+ DEFAULT_LANGUAGE,
350
+ defaultTranslationsMap
351
+ } from "./obsidian/i18n/locales/translations-map.mjs";
352
+ import { isInObsidian } from "./obsidian/is-in-obsidian.mjs";
353
+ import {
354
+ convertLink,
355
+ editBacklinks,
356
+ editLinks,
357
+ editLinksInContent,
358
+ extractLinkFile,
359
+ fixFrontmatterMarkdownLinks,
360
+ generateMarkdownLink,
361
+ generateRawMarkdownLink,
362
+ getGenerateMarkdownLinkDefaultParamsFns,
363
+ LinkPathStyle,
364
+ LinkStyle,
365
+ shouldResetAlias,
366
+ splitSubpath,
367
+ testAngleBrackets,
368
+ testEmbed,
369
+ testLeadingDot,
370
+ testLeadingSlash,
371
+ testWikilink,
372
+ updateFileUrlLinksInContent,
373
+ updateFileUrlLinksInFile,
374
+ updateLink,
375
+ updateLinksInContent,
376
+ updateLinksInFile
377
+ } from "./obsidian/link.mjs";
378
+ import { invokeAsyncAndLog } from "./obsidian/logger.mjs";
379
+ import { loop } from "./obsidian/loop.mjs";
380
+ import { PluginMarkdownCodeBlockProcessorRegistrar } from "./obsidian/markdown-code-block-processor-registrar.mjs";
381
+ import {
382
+ getCodeBlockMarkdownInfo,
383
+ insertAfterCodeBlock,
384
+ insertBeforeCodeBlock,
385
+ removeCodeBlock,
386
+ replaceCodeBlock
387
+ } from "./obsidian/markdown-code-block-processor.mjs";
388
+ import { PluginMarkdownPostProcessorRegistrar } from "./obsidian/markdown-post-processor-registrar.mjs";
389
+ import { getFullContentHtml } from "./obsidian/markdown-view.mjs";
390
+ import {
391
+ fullRender,
392
+ markdownToHtml,
393
+ registerLinkHandlers,
394
+ renderExternalLink,
395
+ renderInternalLink
396
+ } from "./obsidian/markdown.mjs";
397
+ import {
398
+ CachedMetadataExFeature,
399
+ ensureMetadataCacheReady,
400
+ getBacklinksForFileOrPath,
401
+ getBacklinksForFileSafe,
402
+ getCacheSafe,
403
+ getFrontmatterSafe,
404
+ getLinks,
405
+ isCachedMetadataEx,
406
+ parseMetadata,
407
+ registerFileCacheForNonExistingFile,
408
+ registerFiles,
409
+ unregisterFileCacheForNonExistingFile,
410
+ unregisterFiles
411
+ } from "./obsidian/metadata-cache.mjs";
412
+ import { alert } from "./obsidian/modals/alert.mjs";
413
+ import { confirm } from "./obsidian/modals/confirm.mjs";
414
+ import { MinimizableModal } from "./obsidian/modals/minimizable-modal.mjs";
415
+ import {
416
+ ModalBase,
417
+ showModal
418
+ } from "./obsidian/modals/modal.mjs";
419
+ import { prompt } from "./obsidian/modals/prompt.mjs";
420
+ import { selectItem } from "./obsidian/modals/select-item.mjs";
421
+ import { selectOption } from "./obsidian/modals/select-option.mjs";
422
+ import { SuggestModalCommandBuilder } from "./obsidian/modals/suggest-modal-command-builder.mjs";
423
+ import { PluginObsidianProtocolHandlerRegistrar } from "./obsidian/obsidian-protocol-handler-registrar.mjs";
424
+ import {
425
+ getNewLinkFormat,
426
+ shouldUseWikilinks
427
+ } from "./obsidian/obsidian-settings.mjs";
428
+ import {
429
+ encodeUrl,
430
+ escapeAlias,
431
+ isParseLinkFrontmatterReference,
432
+ isParseLinkReference,
433
+ parseFrontmatterLinks,
434
+ parseLink,
435
+ parseLinks,
436
+ toParseLinkReference,
437
+ unescapeAlias
438
+ } from "./obsidian/parse-link.mjs";
439
+ import { PathSettings } from "./obsidian/path-settings.mjs";
440
+ import { printToPdf } from "./obsidian/pdf.mjs";
441
+ import { PluginCliHandlerRegistrar } from "./obsidian/plugin-cli-handler-registrar.mjs";
442
+ import { ObsidianPluginRepoPaths } from "./obsidian/plugin/obsidian-plugin-repo-paths.mjs";
443
+ import {
444
+ addPluginCssClasses,
445
+ initDebugController,
446
+ initPluginContext
447
+ } from "./obsidian/plugin/plugin-context.mjs";
448
+ import { PluginEventSourceImpl } from "./obsidian/plugin/plugin-event-source.mjs";
449
+ import {
450
+ PluginSettingsTabBase,
451
+ SAVE_TO_FILE_CONTEXT
452
+ } from "./obsidian/plugin/plugin-settings-tab.mjs";
453
+ import {
454
+ PluginBase,
455
+ reloadPlugin,
456
+ showErrorAndDisablePlugin
457
+ } from "./obsidian/plugin/plugin.mjs";
458
+ import {
459
+ addToQueue,
460
+ addToQueueAndWait,
461
+ flushQueue
462
+ } from "./obsidian/queue.mjs";
463
+ import {
464
+ AppContext,
465
+ useApp
466
+ } from "./obsidian/react/app-context.mjs";
467
+ import {
468
+ isCanvasFileNodeReference,
469
+ isCanvasReference,
470
+ isCanvasTextNodeReference,
471
+ referenceToFileChange,
472
+ sortReferences
473
+ } from "./obsidian/reference.mjs";
474
+ import {
475
+ isResourceLockedForPath,
476
+ lockResourceForPath,
477
+ requestResourceUnlockForPath,
478
+ ResourceLockComponent,
479
+ ResourceLockedError,
480
+ unlockResourceForPath
481
+ } from "./obsidian/resource-lock.mjs";
482
+ import { relativePathToResourceUrl } from "./obsidian/resource-url.mjs";
483
+ import { PluginRibbonIconRegistrar } from "./obsidian/ribbon-icon-registrar.mjs";
484
+ import { CheckboxComponent } from "./obsidian/setting-components/checkbox-component.mjs";
485
+ import { CodeHighlighterComponent } from "./obsidian/setting-components/code-highlighter-component.mjs";
486
+ import { DateComponent } from "./obsidian/setting-components/date-component.mjs";
487
+ import { DateTimeComponent } from "./obsidian/setting-components/date-time-component.mjs";
488
+ import { EmailComponent } from "./obsidian/setting-components/email-component.mjs";
489
+ import { FileComponent } from "./obsidian/setting-components/file-component.mjs";
490
+ import { MonthComponent } from "./obsidian/setting-components/month-component.mjs";
491
+ import { MultipleDropdownComponent } from "./obsidian/setting-components/multiple-dropdown-component.mjs";
492
+ import { MultipleEmailComponent } from "./obsidian/setting-components/multiple-email-component.mjs";
493
+ import { MultipleFileComponent } from "./obsidian/setting-components/multiple-file-component.mjs";
494
+ import { MultipleTextComponent } from "./obsidian/setting-components/multiple-text-component.mjs";
495
+ import { NumberComponent } from "./obsidian/setting-components/number-component.mjs";
496
+ import { PasswordComponent } from "./obsidian/setting-components/password-component.mjs";
497
+ import { ensureWrapped } from "./obsidian/setting-components/setting-component-wrapper.mjs";
498
+ import { TelephoneComponent } from "./obsidian/setting-components/telephone-component.mjs";
499
+ import { getTextBasedComponentValue } from "./obsidian/setting-components/text-based-component.mjs";
500
+ import { TimeComponent } from "./obsidian/setting-components/time-component.mjs";
501
+ import { TriStateCheckboxComponent } from "./obsidian/setting-components/tri-state-checkbox-component.mjs";
502
+ import { TypedDropdownComponent } from "./obsidian/setting-components/typed-dropdown-component.mjs";
503
+ import { TypedMultipleDropdownComponent } from "./obsidian/setting-components/typed-multiple-dropdown-component.mjs";
504
+ import { TypedRangeTextComponent } from "./obsidian/setting-components/typed-range-text-component.mjs";
505
+ import { TypedTextComponent } from "./obsidian/setting-components/typed-text-component.mjs";
506
+ import { UrlComponent } from "./obsidian/setting-components/url-component.mjs";
507
+ import { getValidatorComponent } from "./obsidian/setting-components/validator-component.mjs";
508
+ import { WeekComponent } from "./obsidian/setting-components/week-component.mjs";
509
+ import { SettingEx } from "./obsidian/setting-ex.mjs";
510
+ import { SettingGroupEx } from "./obsidian/setting-group-ex.mjs";
511
+ import { PluginStatusBarItemRegistrar } from "./obsidian/status-bar-item-registrar.mjs";
512
+ import {
513
+ getOsAndObsidianUnsafePathCharsRegExp,
514
+ getOsUnsafePathCharsRegExp,
515
+ isValidationMessageHolder,
516
+ OBSIDIAN_UNSAFE_FILENAME_CHARS,
517
+ UNIX_UNSAFE_PATH_CHARS,
518
+ WINDOWS_UNSAFE_PATH_CHARS
519
+ } from "./obsidian/validation.mjs";
520
+ import { deleteIfNotUsed } from "./obsidian/vault-delete.mjs";
521
+ import { VaultTransaction } from "./obsidian/vault-transaction.mjs";
522
+ import {
523
+ copySafe,
524
+ createFolderSafe,
525
+ createTempFile,
526
+ createTempFolder,
527
+ deleteEmptyFolder,
528
+ deleteEmptyFolderHierarchy,
529
+ getAbstractFilePathSafe,
530
+ getAvailablePath,
531
+ getFilePathSafe,
532
+ getFolderPathSafe,
533
+ getMarkdownFilesSorted,
534
+ getNoteFilesSorted,
535
+ getOrCreateAbstractFileSafe,
536
+ getOrCreateFileSafe,
537
+ getOrCreateFolderSafe,
538
+ getSafeRenamePath,
539
+ invokeWithFileSystemLock,
540
+ isChild,
541
+ isChildOrSelf,
542
+ isEmptyFolder,
543
+ listSafe,
544
+ process,
545
+ readSafe,
546
+ renameSafe,
547
+ saveNote,
548
+ trashSafe
549
+ } from "./obsidian/vault.mjs";
550
+ import { PluginViewRegistrar } from "./obsidian/view-registrar.mjs";
551
+ import {
552
+ ensureLayoutReady,
553
+ getAllContainers,
554
+ getAllDomWindows
555
+ } from "./obsidian/workspace.mjs";
556
+ import {
557
+ basename,
558
+ delimiter,
559
+ dirname,
560
+ extname,
561
+ format,
562
+ getFileName,
563
+ getFolderName,
564
+ isAbsolute,
565
+ join,
566
+ makeFileName,
567
+ normalizeIfRelative,
568
+ normalizePath,
569
+ parse,
570
+ posix,
571
+ relative,
572
+ resolve,
573
+ sep,
574
+ toPosixBuffer,
575
+ toPosixPath
576
+ } from "./path.mjs";
577
+ import {
578
+ ALWAYS_MATCH_REG_EXP,
579
+ escapeRegExp,
580
+ isValidRegExp,
581
+ NEVER_MATCH_REG_EXP,
582
+ oneOf,
583
+ RegExpMergeFlagsConflictStrategy
584
+ } from "./reg-exp.mjs";
585
+ import {
586
+ bypassStrictProxy,
587
+ strictProxy
588
+ } from "./strict-proxy.mjs";
589
+ import {
590
+ EMPTY,
591
+ ensureEndsWith,
592
+ ensureLfEndings,
593
+ ensureStartsWith,
594
+ escape,
595
+ getLfNormalizedOffsetToOriginalOffsetMapper,
596
+ hasSingleOccurrence,
597
+ indent,
598
+ insertAt,
599
+ makeValidVariableName,
600
+ normalizeString,
601
+ replace,
602
+ replaceAll,
603
+ replaceAllAsync,
604
+ trimEnd,
605
+ trimStart,
606
+ unescape,
607
+ unindent
608
+ } from "./string.mjs";
609
+ import { DateTransformer } from "./transformers/date-transformer.mjs";
610
+ import { DurationTransformer } from "./transformers/duration-transformer.mjs";
611
+ import { GroupTransformer } from "./transformers/group-transformer.mjs";
612
+ import { MapTransformer } from "./transformers/map-transformer.mjs";
613
+ import { SetTransformer } from "./transformers/set-transformer.mjs";
614
+ import { SkipPrivatePropertyTransformer } from "./transformers/skip-private-property-transformer.mjs";
615
+ import { Transformer } from "./transformers/transformer.mjs";
616
+ import { TwoWayMapTransformer } from "./transformers/two-way-map-transformer.mjs";
617
+ import { TypedTransformer } from "./transformers/typed-transformer.mjs";
618
+ import { TwoWayMap } from "./two-way-map.mjs";
619
+ import {
620
+ assert,
621
+ assertGenericObject,
622
+ assertNever,
623
+ assertNonNullable,
624
+ ensureGenericObject,
625
+ ensureNonNullable
626
+ } from "./type-guards.mjs";
627
+ import { typeAsserter } from "./type.mjs";
628
+ import {
629
+ isFileUrl,
630
+ isUrl,
631
+ normalizeFileUrl
632
+ } from "./url.mjs";
633
+ import { resolveValue } from "./value-provider.mjs";
634
+ import { ValueWrapper } from "./value-wrapper.mjs";
635
+ export {
636
+ ALWAYS_MATCH_REG_EXP,
637
+ ASYNC_WRAPPER_ERROR_MESSAGE,
638
+ AbortSignalComponent,
639
+ AbstractFileCommandHandler,
640
+ AllWindowsEventComponent,
641
+ AppActiveFileProvider,
642
+ AppContext,
643
+ AsyncCallbackDisposable,
644
+ AsyncErrorHandlerComponent,
645
+ AsyncEvents,
646
+ AsyncEventsBase,
647
+ AttachmentPathContext,
648
+ BASE_FILE_EXTENSION,
649
+ Beeper,
650
+ CANVAS_FILE_EXTENSION,
651
+ CachedMetadataExFeature,
652
+ CallbackDisposable,
653
+ CallbackLayoutReadyComponent,
654
+ CalloutMode,
655
+ CaseInsensitiveFileIndex,
656
+ CaseInsensitiveFileIndexComponent,
657
+ CheckboxComponent,
658
+ CodeHighlighterComponent,
659
+ CombineAsyncDisposable,
660
+ CombineDisposable,
661
+ CommandHandler,
662
+ CommandHandlerComponent,
663
+ ComponentEx,
664
+ ConsoleDebugComponent,
665
+ CssClass,
666
+ CustomStackTraceError,
667
+ DEFAULT_LANGUAGE,
668
+ DEFAULT_NS,
669
+ DUMMY_PATH,
670
+ DateComponent,
671
+ DateTimeComponent,
672
+ DateTransformer,
673
+ DisposeErrorBehavior,
674
+ DisposeOrder,
675
+ DurationTransformer,
676
+ EMPTY,
677
+ EditorCommandHandler,
678
+ EmailComponent,
679
+ EmbedExtensionsComponent,
680
+ EmptyFolderBehavior,
681
+ ErrorWrapper,
682
+ FileCommandHandler,
683
+ FileComponent,
684
+ FileSystemType,
685
+ FolderCommandHandler,
686
+ FunctionHandlingMode,
687
+ GenerateMarkdownLinkDefaultParamsComponent,
688
+ GlobalCommandHandler,
689
+ GroupTransformer,
690
+ INFINITE_TIMEOUT,
691
+ LIBRARY_NAME,
692
+ LIBRARY_STYLES,
693
+ LIBRARY_VERSION,
694
+ LayoutReadyComponent,
695
+ Library,
696
+ LinkPathStyle,
697
+ LinkStyle,
698
+ MARKDOWN_FILE_EXTENSION,
699
+ MapTransformer,
700
+ MenuEventRegistrarComponent,
701
+ MinimizableModal,
702
+ ModalBase,
703
+ MonkeyAroundComponent,
704
+ MonthComponent,
705
+ MultipleDisposeBehavior,
706
+ MultipleDropdownComponent,
707
+ MultipleEmailComponent,
708
+ MultipleFileComponent,
709
+ MultipleTextComponent,
710
+ NEVER_MATCH_REG_EXP,
711
+ NumberComponent,
712
+ OBSIDIAN_UNSAFE_FILENAME_CHARS,
713
+ ObsidianPluginRepoPaths,
714
+ OpenDemoVaultCommandHandler,
715
+ OpenSettingsCommandHandler,
716
+ PasswordComponent,
717
+ PathSettings,
718
+ PluginBase,
719
+ PluginBasesViewRegistrar,
720
+ PluginCliHandlerRegistrar,
721
+ PluginCommandRegistrar,
722
+ PluginContextComponent,
723
+ PluginDataHandler,
724
+ PluginEditorExtensionRegistrar,
725
+ PluginEditorSuggestRegistrar,
726
+ PluginEventSourceImpl,
727
+ PluginExtensionsRegistrar,
728
+ PluginHoverLinkSourceRegistrar,
729
+ PluginMarkdownCodeBlockProcessorRegistrar,
730
+ PluginMarkdownPostProcessorRegistrar,
731
+ PluginNoticeComponent,
732
+ PluginObsidianProtocolHandlerRegistrar,
733
+ PluginRibbonIconRegistrar,
734
+ PluginSettingsComponentBase,
735
+ PluginSettingsTabBase,
736
+ PluginSettingsTabComponent,
737
+ PluginStatusBarItemRegistrar,
738
+ PluginViewRegistrar,
739
+ RegExpMergeFlagsConflictStrategy,
740
+ RegistryComponent,
741
+ RenameDeleteHandlerComponent,
742
+ ResourceLockComponent,
743
+ ResourceLockedError,
744
+ SAVE_TO_FILE_CONTEXT,
745
+ SetTransformer,
746
+ SettingEx,
747
+ SettingGroupEx,
748
+ SilentError,
749
+ SkipPrivatePropertyTransformer,
750
+ SuggestModalCommandBuilder,
751
+ TelephoneComponent,
752
+ TimeComponent,
753
+ Transformer,
754
+ TriStateCheckboxComponent,
755
+ TwoWayMap,
756
+ TwoWayMapTransformer,
757
+ TypedDropdownComponent,
758
+ TypedMultipleDropdownComponent,
759
+ TypedRangeTextComponent,
760
+ TypedTextComponent,
761
+ TypedTransformer,
762
+ UNIX_UNSAFE_PATH_CHARS,
763
+ UnlockActiveNoteCommandHandler,
764
+ UrlComponent,
765
+ ValueWrapper,
766
+ VaultTransaction,
767
+ WINDOWS_UNSAFE_PATH_CHARS,
768
+ WeekComponent,
769
+ abortSignalAny,
770
+ abortSignalNever,
771
+ abortSignalTimeout,
772
+ addAlias,
773
+ addErrorHandler,
774
+ addPluginCssClasses,
775
+ addToQueue,
776
+ addToQueueAndWait,
777
+ alert,
778
+ appendCodeBlock,
779
+ applyContentChanges,
780
+ applyFileChanges,
781
+ around,
782
+ asArrayOfFiles,
783
+ asArrayOfFolders,
784
+ asDisposableComponent,
785
+ asFile,
786
+ asFileOrNull,
787
+ asFolder,
788
+ asFolderOrNull,
789
+ assert,
790
+ assertGenericObject,
791
+ assertNever,
792
+ assertNonNullable,
793
+ assignWithNonEnumerableProperties,
794
+ asyncFilter,
795
+ asyncFilterInPlace,
796
+ asyncFlatMap,
797
+ asyncMap,
798
+ basename,
799
+ blobToArrayBuffer,
800
+ blobToDataUrl,
801
+ blobToJpegArrayBuffer,
802
+ bypassStrictProxy,
803
+ castTo,
804
+ chain,
805
+ checkExtension,
806
+ cloneFunction,
807
+ cloneWithNonEnumerableProperties,
808
+ confirm,
809
+ convertAsyncToSync,
810
+ convertLink,
811
+ convertSyncToAsync,
812
+ copySafe,
813
+ createDivAsync,
814
+ createElAsync,
815
+ createFolderSafe,
816
+ createFragmentAsync,
817
+ createFunction,
818
+ createSpanAsync,
819
+ createSvgAsync,
820
+ createTempFile,
821
+ createTempFolder,
822
+ dataUrlToArrayBuffer,
823
+ deepEqual,
824
+ defaultTranslationsMap,
825
+ deleteAlias,
826
+ deleteEmptyFolder,
827
+ deleteEmptyFolderHierarchy,
828
+ deleteIfNotUsed,
829
+ deleteProperties,
830
+ deleteProperty,
831
+ delimiter,
832
+ dirname,
833
+ disableAsyncOperationTracking,
834
+ editBacklinks,
835
+ editLinks,
836
+ editLinksInContent,
837
+ emitAsyncErrorEvent,
838
+ en,
839
+ enableAsyncOperationTracking,
840
+ enableLibraryDebuggers,
841
+ encodeUrl,
842
+ ensureEndsWith,
843
+ ensureGenericObject,
844
+ ensureLayoutReady,
845
+ ensureLfEndings,
846
+ ensureLoaded,
847
+ ensureMetadataCacheReady,
848
+ ensureNonNullable,
849
+ ensureStartsWith,
850
+ ensureWrapped,
851
+ errorToString,
852
+ escape,
853
+ escapeAlias,
854
+ escapeRegExp,
855
+ exists,
856
+ extname,
857
+ extractDefaultExportInterop,
858
+ extractLinkFile,
859
+ filterInPlace,
860
+ fixFrontmatterMarkdownLinks,
861
+ fixTitle,
862
+ flushQueue,
863
+ format,
864
+ fullRender,
865
+ generateMarkdownLink,
866
+ generateRawMarkdownLink,
867
+ getAbstractFile,
868
+ getAbstractFileOrNull,
869
+ getAbstractFilePathSafe,
870
+ getAllContainers,
871
+ getAllDomWindows,
872
+ getAllEntries,
873
+ getAllKeys,
874
+ getApp,
875
+ getAttachmentFilePath,
876
+ getAttachmentFolderPath,
877
+ getAvailablePath,
878
+ getAvailablePathForAttachments,
879
+ getBacklinksForFileOrPath,
880
+ getBacklinksForFileSafe,
881
+ getCacheSafe,
882
+ getCaseInsensitiveFileIndex,
883
+ getCodeBlockMarkdownInfo,
884
+ getCommunityPluginRepo,
885
+ getDebugController,
886
+ getDebugger,
887
+ getDomEventsHandlersConstructor,
888
+ getEnumKey,
889
+ getEnumValue,
890
+ getFile,
891
+ getFileName,
892
+ getFileOrNull,
893
+ getFilePathSafe,
894
+ getFileSystemType,
895
+ getFolder,
896
+ getFolderName,
897
+ getFolderOrNull,
898
+ getFolderPathSafe,
899
+ getFrontmatterSafe,
900
+ getFullContentHtml,
901
+ getFunctionExpressionString,
902
+ getGenerateMarkdownLinkDefaultParamsFns,
903
+ getLfNormalizedOffsetToOriginalOffsetMapper,
904
+ getLibDebugger,
905
+ getLinks,
906
+ getMarkdownFiles,
907
+ getMarkdownFilesSorted,
908
+ getNestedPropertyValue,
909
+ getNewLinkFormat,
910
+ getNoteFilesSorted,
911
+ getObsidianDevUtilsState,
912
+ getOrCreateAbstractFileSafe,
913
+ getOrCreateFile,
914
+ getOrCreateFileSafe,
915
+ getOrCreateFolder,
916
+ getOrCreateFolderSafe,
917
+ getOsAndObsidianUnsafePathCharsRegExp,
918
+ getOsUnsafePathCharsRegExp,
919
+ getPath,
920
+ getPrototypeOf,
921
+ getRenderedContainer,
922
+ getSafeRenamePath,
923
+ getStackTrace,
924
+ getTextBasedComponentValue,
925
+ getValidatorComponent,
926
+ getZIndex,
927
+ handleSilentError,
928
+ hasOwnAttachmentFolder,
929
+ hasPatchToken,
930
+ hasSingleOccurrence,
931
+ hoverElement,
932
+ ignoreError,
933
+ indent,
934
+ initDebugController,
935
+ initI18N,
936
+ initPluginContext,
937
+ insertAfterCodeBlock,
938
+ insertAt,
939
+ insertBeforeCodeBlock,
940
+ insertCodeBlock,
941
+ invokeAsyncAndLog,
942
+ invokeAsyncSafely,
943
+ invokeAsyncSafelyAfterDelay,
944
+ invokeWithFileSystemLock,
945
+ isAbsolute,
946
+ isAbstractFile,
947
+ isAsyncDisposable,
948
+ isAsyncDisposableEx,
949
+ isAsyncErrorIgnoreContextActive,
950
+ isAsyncOperationTrackingEnabled,
951
+ isBaseFile,
952
+ isCachedMetadataEx,
953
+ isCanvasChange,
954
+ isCanvasFile,
955
+ isCanvasFileNodeChange,
956
+ isCanvasFileNodeReference,
957
+ isCanvasReference,
958
+ isCanvasTextNodeChange,
959
+ isCanvasTextNodeReference,
960
+ isChild,
961
+ isChildOrSelf,
962
+ isContentChange,
963
+ isDisposable,
964
+ isDisposableEx,
965
+ isElementVisibleInOffsetParent,
966
+ isEmptyFolder,
967
+ isFile,
968
+ isFileUrl,
969
+ isFolder,
970
+ isFrontmatterChange,
971
+ isFrontmatterChangeWithOffsets,
972
+ isFrontmatterLinkCacheWithOffsets,
973
+ isImageFile,
974
+ isInObsidian,
975
+ isLoaded,
976
+ isMarkdownFile,
977
+ isNote,
978
+ isParseLinkFrontmatterReference,
979
+ isParseLinkReference,
980
+ isResourceLockedForPath,
981
+ isUrl,
982
+ isValidRegExp,
983
+ isValidationMessageHolder,
984
+ join,
985
+ listSafe,
986
+ lockResourceForPath,
987
+ loop,
988
+ makeFileName,
989
+ makeLinkWithPath,
990
+ makeValidVariableName,
991
+ markdownToHtml,
992
+ marksAsTerminateRetry,
993
+ mixinAsyncEvents,
994
+ moveMouse,
995
+ nameof,
996
+ neverEnds,
997
+ nextTickAsync,
998
+ noop,
999
+ noopAsync,
1000
+ noopAsyncSingletonPromise,
1001
+ normalizeFileUrl,
1002
+ normalizeIfRelative,
1003
+ normalizeOptionalProperties,
1004
+ normalizePath,
1005
+ normalizePromisable,
1006
+ normalizeString,
1007
+ omitAsyncReturnType,
1008
+ omitReturnType,
1009
+ onAbort,
1010
+ onAncestorScrollOrResize,
1011
+ oneOf,
1012
+ openDemoVault,
1013
+ parse,
1014
+ parseFrontmatter,
1015
+ parseFrontmatterLinks,
1016
+ parseLink,
1017
+ parseLinks,
1018
+ parseMetadata,
1019
+ posix,
1020
+ pressKey,
1021
+ printError,
1022
+ printToPdf,
1023
+ printWithStackTrace,
1024
+ process,
1025
+ processFrontmatter,
1026
+ promiseAllAsyncFnsSequentially,
1027
+ promiseAllSequentially,
1028
+ prompt,
1029
+ queueMicrotaskAsync,
1030
+ readSafe,
1031
+ referenceToFileChange,
1032
+ registerAsyncErrorEventHandler,
1033
+ registerAsyncEvent,
1034
+ registerFileCacheForNonExistingFile,
1035
+ registerFiles,
1036
+ registerLinkHandlers,
1037
+ relative,
1038
+ relativePathToResourceUrl,
1039
+ reloadCurrentFileCache,
1040
+ reloadPlugin,
1041
+ removeCodeBlock,
1042
+ removeUndefinedProperties,
1043
+ renameSafe,
1044
+ renderBacklinksTable,
1045
+ renderCallout,
1046
+ renderDelayedBacklinks,
1047
+ renderDelayedBacklinksForFolder,
1048
+ renderExternalLink,
1049
+ renderIframe,
1050
+ renderInternalLink,
1051
+ renderPaginatedList,
1052
+ renderPaginatedTable,
1053
+ replace,
1054
+ replaceAll,
1055
+ replaceAllAsync,
1056
+ replaceCodeBlock,
1057
+ requestAnimationFrameAsync,
1058
+ requestResourceUnlockForPath,
1059
+ resetObsidianDevUtilsState,
1060
+ resolve,
1061
+ resolveValue,
1062
+ retryWithTimeout,
1063
+ retryWithTimeoutNotice,
1064
+ runWithTimeout,
1065
+ runWithTimeoutNotice,
1066
+ saveNote,
1067
+ selectItem,
1068
+ selectOption,
1069
+ sep,
1070
+ setCaseInsensitiveFileIndex,
1071
+ setFrontmatter,
1072
+ setImmediateAsync,
1073
+ setNestedPropertyValue,
1074
+ setTimeoutAsync,
1075
+ shouldResetAlias,
1076
+ shouldUseWikilinks,
1077
+ showErrorAndDisablePlugin,
1078
+ showInitialDebugMessage,
1079
+ showModal,
1080
+ sleep,
1081
+ sortReferences,
1082
+ splitSubpath,
1083
+ startAsyncErrorIgnoreContext,
1084
+ startCollectingUnhandledAsyncErrors,
1085
+ stopCollectingUnhandledAsyncErrors,
1086
+ strictProxy,
1087
+ syncOpenEditorBuffersForPath,
1088
+ t,
1089
+ testAngleBrackets,
1090
+ testEmbed,
1091
+ testLeadingDot,
1092
+ testLeadingSlash,
1093
+ testWikilink,
1094
+ throwExpression,
1095
+ timeout,
1096
+ toArray,
1097
+ toAsyncDisposableEx,
1098
+ toDisposableEx,
1099
+ toFrontmatterChangeWithOffsets,
1100
+ toFrontmatterLinkCacheWithOffsets,
1101
+ toJson,
1102
+ toParseLinkReference,
1103
+ toPosixBuffer,
1104
+ toPosixPath,
1105
+ toPx,
1106
+ toggleEditorReadOnly,
1107
+ trashSafe,
1108
+ trimEnd,
1109
+ trimMarkdownExtension,
1110
+ trimStart,
1111
+ typeAsserter,
1112
+ typeIntoEditor,
1113
+ unescape,
1114
+ unescapeAlias,
1115
+ unhoverElement,
1116
+ unindent,
1117
+ unique,
1118
+ uniqueInPlace,
1119
+ unlockResourceForPath,
1120
+ unregisterFileCacheForNonExistingFile,
1121
+ unregisterFiles,
1122
+ unsetCaseInsensitiveFileIndex,
1123
+ updateFileUrlLinksInContent,
1124
+ updateFileUrlLinksInFile,
1125
+ updateLink,
1126
+ updateLinksInContent,
1127
+ updateLinksInFile,
1128
+ useApp,
1129
+ waitForAbort,
1130
+ waitForAllAsyncOperations,
1131
+ waitUntilConnected,
1132
+ wrapForCallout
1133
+ };
1134
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL19fbWVyZ2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXIsXG4gIGFib3J0U2lnbmFsVGltZW91dCxcbiAgSU5GSU5JVEVfVElNRU9VVCxcbiAgb25BYm9ydCxcbiAgd2FpdEZvckFib3J0XG59IGZyb20gJy4vYWJvcnQtY29udHJvbGxlci50cyc7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICB1bmlxdWUsXG4gIHVuaXF1ZUluUGxhY2Vcbn0gZnJvbSAnLi9hcnJheS50cyc7XG5leHBvcnQge1xuICBBc3luY0V2ZW50cyxcbiAgQXN5bmNFdmVudHNCYXNlLFxuICBtaXhpbkFzeW5jRXZlbnRzXG59IGZyb20gJy4vYXN5bmMtZXZlbnRzLnRzJztcbmV4cG9ydCB7XG4gIGFkZEVycm9ySGFuZGxlcixcbiAgYXN5bmNGaWx0ZXIsXG4gIGFzeW5jRmlsdGVySW5QbGFjZSxcbiAgYXN5bmNGbGF0TWFwLFxuICBhc3luY01hcCxcbiAgY2hhaW4sXG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgY29udmVydFN5bmNUb0FzeW5jLFxuICBkaXNhYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgZW5hYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc0FzeW5jT3BlcmF0aW9uVHJhY2tpbmdFbmFibGVkLFxuICBtYXJrc0FzVGVybWluYXRlUmV0cnksXG4gIG5ldmVyRW5kcyxcbiAgbmV4dFRpY2tBc3luYyxcbiAgbm9ybWFsaXplUHJvbWlzYWJsZSxcbiAgcHJvbWlzZUFsbEFzeW5jRm5zU2VxdWVudGlhbGx5LFxuICBwcm9taXNlQWxsU2VxdWVudGlhbGx5LFxuICBxdWV1ZU1pY3JvdGFza0FzeW5jLFxuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXQsXG4gIHNldEltbWVkaWF0ZUFzeW5jLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5LFxuICB3YWl0Rm9yQWxsQXN5bmNPcGVyYXRpb25zXG59IGZyb20gJy4vYXN5bmMudHMnO1xuZXhwb3J0IHsgQmVlcGVyIH0gZnJvbSAnLi9iZWVwZXIudHMnO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJy4vYmxvYi50cyc7XG5leHBvcnQge1xuICBlbmFibGVMaWJyYXJ5RGVidWdnZXJzLFxuICBnZXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGdldERlYnVnZ2VyLFxuICBnZXRMaWJEZWJ1Z2dlcixcbiAgcHJpbnRXaXRoU3RhY2tUcmFjZSxcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQge1xuICBBc3luY0NhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBDb21iaW5lQXN5bmNEaXNwb3NhYmxlLFxuICBDb21iaW5lRGlzcG9zYWJsZSxcbiAgRGlzcG9zZUVycm9yQmVoYXZpb3IsXG4gIERpc3Bvc2VPcmRlcixcbiAgaXNBc3luY0Rpc3Bvc2FibGUsXG4gIGlzQXN5bmNEaXNwb3NhYmxlRXgsXG4gIGlzRGlzcG9zYWJsZSxcbiAgaXNEaXNwb3NhYmxlRXgsXG4gIE11bHRpcGxlRGlzcG9zZUJlaGF2aW9yLFxuICB0b0FzeW5jRGlzcG9zYWJsZUV4LFxuICB0b0Rpc3Bvc2FibGVFeFxufSBmcm9tICcuL2Rpc3Bvc2FibGUudHMnO1xuZXhwb3J0IHtcbiAgZ2V0RW51bUtleSxcbiAgZ2V0RW51bVZhbHVlXG59IGZyb20gJy4vZW51bS50cyc7XG5leHBvcnQge1xuICBBU1lOQ19XUkFQUEVSX0VSUk9SX01FU1NBR0UsXG4gIEN1c3RvbVN0YWNrVHJhY2VFcnJvcixcbiAgZW1pdEFzeW5jRXJyb3JFdmVudCxcbiAgZXJyb3JUb1N0cmluZyxcbiAgRXJyb3JXcmFwcGVyLFxuICBnZXRTdGFja1RyYWNlLFxuICBpc0FzeW5jRXJyb3JJZ25vcmVDb250ZXh0QWN0aXZlLFxuICBwcmludEVycm9yLFxuICByZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIsXG4gIFNpbGVudEVycm9yLFxuICBzdGFydEFzeW5jRXJyb3JJZ25vcmVDb250ZXh0LFxuICBzdGFydENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgc3RvcENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgdGhyb3dFeHByZXNzaW9uXG59IGZyb20gJy4vZXJyb3IudHMnO1xuZXhwb3J0IHtcbiAgY2xvbmVGdW5jdGlvbixcbiAgY3JlYXRlRnVuY3Rpb24sXG4gIGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyxcbiAgbm9vcCxcbiAgbm9vcEFzeW5jLFxuICBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlLFxuICBvbWl0QXN5bmNSZXR1cm5UeXBlLFxuICBvbWl0UmV0dXJuVHlwZVxufSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcbmV4cG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi9nZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLnRzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZURpdkFzeW5jLFxuICBjcmVhdGVFbEFzeW5jLFxuICBjcmVhdGVGcmFnbWVudEFzeW5jLFxuICBjcmVhdGVTcGFuQXN5bmMsXG4gIGNyZWF0ZVN2Z0FzeW5jLFxuICBlbnN1cmVMb2FkZWQsXG4gIGdldFpJbmRleCxcbiAgaXNFbGVtZW50VmlzaWJsZUluT2Zmc2V0UGFyZW50LFxuICBpc0xvYWRlZCxcbiAgb25BbmNlc3RvclNjcm9sbE9yUmVzaXplLFxuICB0b1B4LFxuICB3YWl0VW50aWxDb25uZWN0ZWRcbn0gZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0IHtcbiAgTGlicmFyeSxcbiAgTElCUkFSWV9OQU1FXG59IGZyb20gJy4vbGlicmFyeS50cyc7XG5leHBvcnQge1xuICBhc3NpZ25XaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGNhc3RUbyxcbiAgY2xvbmVXaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGRlZXBFcXVhbCxcbiAgZGVsZXRlUHJvcGVydGllcyxcbiAgZGVsZXRlUHJvcGVydHksXG4gIGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcCxcbiAgRnVuY3Rpb25IYW5kbGluZ01vZGUsXG4gIGdldEFsbEVudHJpZXMsXG4gIGdldEFsbEtleXMsXG4gIGdldE5lc3RlZFByb3BlcnR5VmFsdWUsXG4gIGdldFByb3RvdHlwZU9mLFxuICBuYW1lb2YsXG4gIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyxcbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgdG9Kc29uXG59IGZyb20gJy4vb2JqZWN0LXV0aWxzLnRzJztcbmV4cG9ydCB7XG4gIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSxcbiAgcmVzZXRPYnNpZGlhbkRldlV0aWxzU3RhdGVcbn0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUudHMnO1xuZXhwb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBnZXRBcHAgfSBmcm9tICcuL29ic2lkaWFuL2FwcC50cyc7XG5leHBvcnQge1xuICByZXRyeVdpdGhUaW1lb3V0Tm90aWNlLFxuICBydW5XaXRoVGltZW91dE5vdGljZVxufSBmcm9tICcuL29ic2lkaWFuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmV4cG9ydCB7XG4gIEF0dGFjaG1lbnRQYXRoQ29udGV4dCxcbiAgRFVNTVlfUEFUSCxcbiAgZ2V0QXR0YWNobWVudEZpbGVQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aCxcbiAgZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzLFxuICBoYXNPd25BdHRhY2htZW50Rm9sZGVyXG59IGZyb20gJy4vb2JzaWRpYW4vYXR0YWNobWVudC1wYXRoLnRzJztcbmV4cG9ydCB7XG4gIHJlbmRlckJhY2tsaW5rc1RhYmxlLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzLFxuICByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyXG59IGZyb20gJy4vb2JzaWRpYW4vYmFja2xpbmsudHMnO1xuZXhwb3J0IHsgUGx1Z2luQmFzZXNWaWV3UmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9iYXNlcy12aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBDYWxsb3V0TW9kZSxcbiAgcmVuZGVyQ2FsbG91dCxcbiAgd3JhcEZvckNhbGxvdXRcbn0gZnJvbSAnLi9vYnNpZGlhbi9jYWxsb3V0LnRzJztcbmV4cG9ydCB7XG4gIENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgZ2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICBzZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIHVuc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4XG59IGZyb20gJy4vb2JzaWRpYW4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LnRzJztcbmV4cG9ydCB7IEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEVkaXRvckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2VkaXRvci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEZvbGRlckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZvbGRlci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgR2xvYmFsQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZ2xvYmFsLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuRGVtb1ZhdWx0Q29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1kZW1vLXZhdWx0LWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuU2V0dGluZ3NDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy9vcGVuLXNldHRpbmdzLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvdW5sb2NrLWFjdGl2ZS1ub3RlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBnZXRDb21tdW5pdHlQbHVnaW5SZXBvIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJBc3luY0V2ZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBhc0Rpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1iZWRFeHRlbnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEdlbmVyYXRlTWFya2Rvd25MaW5rRGVmYXVsdFBhcmFtc0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50LFxuICBMYXlvdXRSZWFkeUNvbXBvbmVudFxufSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFyb3VuZCxcbiAgaGFzUGF0Y2hUb2tlbixcbiAgTW9ua2V5QXJvdW5kQ29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQbHVnaW5Db250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQbHVnaW5Ob3RpY2VDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVnaXN0cnlDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcmVnaXN0cnktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIEVtcHR5Rm9sZGVyQmVoYXZpb3IsXG4gIFJlbmFtZURlbGV0ZUhhbmRsZXJDb21wb25lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0RG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvciB9IGZyb20gJy4vb2JzaWRpYW4vY29uc3RydWN0b3JzL2dldC1kb20tZXZlbnRzLWhhbmRsZXJzLWNvbnN0cnVjdG9yLnRzJztcbmV4cG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi9vYnNpZGlhbi9jc3MtY2xhc3MudHMnO1xuZXhwb3J0IHsgUGx1Z2luRGF0YUhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQge1xuICBmaXhUaXRsZSxcbiAgbWFrZUxpbmtXaXRoUGF0aFxufSBmcm9tICcuL29ic2lkaWFuL2RhdGF2aWV3LWxpbmsudHMnO1xuZXhwb3J0IHtcbiAgZ2V0UmVuZGVyZWRDb250YWluZXIsXG4gIGluc2VydENvZGVCbG9jayxcbiAgcmVsb2FkQ3VycmVudEZpbGVDYWNoZSxcbiAgcmVuZGVySWZyYW1lLFxuICByZW5kZXJQYWdpbmF0ZWRMaXN0LFxuICByZW5kZXJQYWdpbmF0ZWRUYWJsZVxufSBmcm9tICcuL29ic2lkaWFuL2RhdGF2aWV3LnRzJztcbmV4cG9ydCB7IG9wZW5EZW1vVmF1bHQgfSBmcm9tICcuL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0IHtcbiAgaG92ZXJFbGVtZW50LFxuICBtb3ZlTW91c2UsXG4gIHByZXNzS2V5LFxuICB0eXBlSW50b0VkaXRvcixcbiAgdW5ob3ZlckVsZW1lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0IHsgUGx1Z2luRWRpdG9yRXh0ZW5zaW9uUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JTdWdnZXN0UmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgc3luY09wZW5FZGl0b3JCdWZmZXJzRm9yUGF0aCxcbiAgdG9nZ2xlRWRpdG9yUmVhZE9ubHlcbn0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3IudHMnO1xuZXhwb3J0IHsgUGx1Z2luRXh0ZW5zaW9uc1JlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vZXh0ZW5zaW9ucy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgYXBwbHlDb250ZW50Q2hhbmdlcyxcbiAgYXBwbHlGaWxlQ2hhbmdlcyxcbiAgaXNDYW52YXNDaGFuZ2UsXG4gIGlzQ2FudmFzRmlsZU5vZGVDaGFuZ2UsXG4gIGlzQ2FudmFzVGV4dE5vZGVDaGFuZ2UsXG4gIGlzQ29udGVudENoYW5nZSxcbiAgaXNGcm9udG1hdHRlckNoYW5nZSxcbiAgaXNGcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzLFxuICB0b0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHNcbn0gZnJvbSAnLi9vYnNpZGlhbi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQge1xuICBhZGRBbGlhcyxcbiAgZGVsZXRlQWxpYXMsXG4gIHByb2Nlc3NGcm9udG1hdHRlclxufSBmcm9tICcuL29ic2lkaWFuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQge1xuICBhc0FycmF5T2ZGaWxlcyxcbiAgYXNBcnJheU9mRm9sZGVycyxcbiAgYXNGaWxlLFxuICBhc0ZpbGVPck51bGwsXG4gIGFzRm9sZGVyLFxuICBhc0ZvbGRlck9yTnVsbCxcbiAgQkFTRV9GSUxFX0VYVEVOU0lPTixcbiAgQ0FOVkFTX0ZJTEVfRVhURU5TSU9OLFxuICBjaGVja0V4dGVuc2lvbixcbiAgZXhpc3RzLFxuICBGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0QWJzdHJhY3RGaWxlLFxuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldEZpbGUsXG4gIGdldEZpbGVPck51bGwsXG4gIGdldEZpbGVTeXN0ZW1UeXBlLFxuICBnZXRGb2xkZXIsXG4gIGdldEZvbGRlck9yTnVsbCxcbiAgZ2V0TWFya2Rvd25GaWxlcyxcbiAgZ2V0T3JDcmVhdGVGaWxlLFxuICBnZXRPckNyZWF0ZUZvbGRlcixcbiAgZ2V0UGF0aCxcbiAgaXNBYnN0cmFjdEZpbGUsXG4gIGlzQmFzZUZpbGUsXG4gIGlzQ2FudmFzRmlsZSxcbiAgaXNGaWxlLFxuICBpc0ZvbGRlcixcbiAgaXNNYXJrZG93bkZpbGUsXG4gIGlzTm90ZSxcbiAgTUFSS0RPV05fRklMRV9FWFRFTlNJT04sXG4gIHRyaW1NYXJrZG93bkV4dGVuc2lvblxufSBmcm9tICcuL29ic2lkaWFuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vb2JzaWRpYW4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0IHtcbiAgcGFyc2VGcm9udG1hdHRlcixcbiAgc2V0RnJvbnRtYXR0ZXJcbn0gZnJvbSAnLi9vYnNpZGlhbi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Ib3ZlckxpbmtTb3VyY2VSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBhcHBlbmRDb2RlQmxvY2sgfSBmcm9tICcuL29ic2lkaWFuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX05TLFxuICBpbml0STE4TixcbiAgdFxufSBmcm9tICcuL29ic2lkaWFuL2kxOG4vaTE4bi50cyc7XG5leHBvcnQgeyBlbiB9IGZyb20gJy4vb2JzaWRpYW4vaTE4bi9sb2NhbGVzL2VuLnRzJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfTEFOR1VBR0UsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXBcbn0gZnJvbSAnLi9vYnNpZGlhbi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zLW1hcC50cyc7XG5leHBvcnQgeyBpc0luT2JzaWRpYW4gfSBmcm9tICcuL29ic2lkaWFuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCB7XG4gIGNvbnZlcnRMaW5rLFxuICBlZGl0QmFja2xpbmtzLFxuICBlZGl0TGlua3MsXG4gIGVkaXRMaW5rc0luQ29udGVudCxcbiAgZXh0cmFjdExpbmtGaWxlLFxuICBmaXhGcm9udG1hdHRlck1hcmtkb3duTGlua3MsXG4gIGdlbmVyYXRlTWFya2Rvd25MaW5rLFxuICBnZW5lcmF0ZVJhd01hcmtkb3duTGluayxcbiAgZ2V0R2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zRm5zLFxuICBMaW5rUGF0aFN0eWxlLFxuICBMaW5rU3R5bGUsXG4gIHNob3VsZFJlc2V0QWxpYXMsXG4gIHNwbGl0U3VicGF0aCxcbiAgdGVzdEFuZ2xlQnJhY2tldHMsXG4gIHRlc3RFbWJlZCxcbiAgdGVzdExlYWRpbmdEb3QsXG4gIHRlc3RMZWFkaW5nU2xhc2gsXG4gIHRlc3RXaWtpbGluayxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5Db250ZW50LFxuICB1cGRhdGVGaWxlVXJsTGlua3NJbkZpbGUsXG4gIHVwZGF0ZUxpbmssXG4gIHVwZGF0ZUxpbmtzSW5Db250ZW50LFxuICB1cGRhdGVMaW5rc0luRmlsZVxufSBmcm9tICcuL29ic2lkaWFuL2xpbmsudHMnO1xuZXhwb3J0IHsgaW52b2tlQXN5bmNBbmRMb2cgfSBmcm9tICcuL29ic2lkaWFuL2xvZ2dlci50cyc7XG5leHBvcnQgeyBsb29wIH0gZnJvbSAnLi9vYnNpZGlhbi9sb29wLnRzJztcbmV4cG9ydCB7IFBsdWdpbk1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvLFxuICBpbnNlcnRBZnRlckNvZGVCbG9jayxcbiAgaW5zZXJ0QmVmb3JlQ29kZUJsb2NrLFxuICByZW1vdmVDb2RlQmxvY2ssXG4gIHJlcGxhY2VDb2RlQmxvY2tcbn0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci50cyc7XG5leHBvcnQgeyBQbHVnaW5NYXJrZG93blBvc3RQcm9jZXNzb3JSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBnZXRGdWxsQ29udGVudEh0bWwgfSBmcm9tICcuL29ic2lkaWFuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0IHtcbiAgZnVsbFJlbmRlcixcbiAgbWFya2Rvd25Ub0h0bWwsXG4gIHJlZ2lzdGVyTGlua0hhbmRsZXJzLFxuICByZW5kZXJFeHRlcm5hbExpbmssXG4gIHJlbmRlckludGVybmFsTGlua1xufSBmcm9tICcuL29ic2lkaWFuL21hcmtkb3duLnRzJztcbmV4cG9ydCB7XG4gIENhY2hlZE1ldGFkYXRhRXhGZWF0dXJlLFxuICBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHksXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgsXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlLFxuICBnZXRDYWNoZVNhZmUsXG4gIGdldEZyb250bWF0dGVyU2FmZSxcbiAgZ2V0TGlua3MsXG4gIGlzQ2FjaGVkTWV0YWRhdGFFeCxcbiAgcGFyc2VNZXRhZGF0YSxcbiAgcmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHJlZ2lzdGVyRmlsZXMsXG4gIHVucmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHVucmVnaXN0ZXJGaWxlc1xufSBmcm9tICcuL29ic2lkaWFuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCB7IGFsZXJ0IH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvYWxlcnQudHMnO1xuZXhwb3J0IHsgY29uZmlybSB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL2NvbmZpcm0udHMnO1xuZXhwb3J0IHsgTWluaW1pemFibGVNb2RhbCB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL21pbmltaXphYmxlLW1vZGFsLnRzJztcbmV4cG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL21vZGFsLnRzJztcbmV4cG9ydCB7IHByb21wdCB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL3Byb21wdC50cyc7XG5leHBvcnQgeyBzZWxlY3RJdGVtIH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvc2VsZWN0LWl0ZW0udHMnO1xuZXhwb3J0IHsgc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvc2VsZWN0LW9wdGlvbi50cyc7XG5leHBvcnQgeyBTdWdnZXN0TW9kYWxDb21tYW5kQnVpbGRlciB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL3N1Z2dlc3QtbW9kYWwtY29tbWFuZC1idWlsZGVyLnRzJztcbmV4cG9ydCB7IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXROZXdMaW5rRm9ybWF0LFxuICBzaG91bGRVc2VXaWtpbGlua3Ncbn0gZnJvbSAnLi9vYnNpZGlhbi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQge1xuICBlbmNvZGVVcmwsXG4gIGVzY2FwZUFsaWFzLFxuICBpc1BhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlLFxuICBpc1BhcnNlTGlua1JlZmVyZW5jZSxcbiAgcGFyc2VGcm9udG1hdHRlckxpbmtzLFxuICBwYXJzZUxpbmssXG4gIHBhcnNlTGlua3MsXG4gIHRvUGFyc2VMaW5rUmVmZXJlbmNlLFxuICB1bmVzY2FwZUFsaWFzXG59IGZyb20gJy4vb2JzaWRpYW4vcGFyc2UtbGluay50cyc7XG5leHBvcnQgeyBQYXRoU2V0dGluZ3MgfSBmcm9tICcuL29ic2lkaWFuL3BhdGgtc2V0dGluZ3MudHMnO1xuZXhwb3J0IHsgcHJpbnRUb1BkZiB9IGZyb20gJy4vb2JzaWRpYW4vcGRmLnRzJztcbmV4cG9ydCB7IFBsdWdpbkNsaUhhbmRsZXJSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5leHBvcnQge1xuICBhZGRQbHVnaW5Dc3NDbGFzc2VzLFxuICBpbml0RGVidWdDb250cm9sbGVyLFxuICBpbml0UGx1Z2luQ29udGV4dFxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpblNldHRpbmdzVGFiQmFzZSxcbiAgU0FWRV9UT19GSUxFX0NPTlRFWFRcbn0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5leHBvcnQge1xuICBQbHVnaW5CYXNlLFxuICByZWxvYWRQbHVnaW4sXG4gIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW5cbn0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vcGx1Z2luLnRzJztcbmV4cG9ydCB7XG4gIGFkZFRvUXVldWUsXG4gIGFkZFRvUXVldWVBbmRXYWl0LFxuICBmbHVzaFF1ZXVlXG59IGZyb20gJy4vb2JzaWRpYW4vcXVldWUudHMnO1xuZXhwb3J0IHtcbiAgQXBwQ29udGV4dCxcbiAgdXNlQXBwXG59IGZyb20gJy4vb2JzaWRpYW4vcmVhY3QvYXBwLWNvbnRleHQudHMnO1xuZXhwb3J0IHtcbiAgaXNDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSxcbiAgaXNDYW52YXNSZWZlcmVuY2UsXG4gIGlzQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZSxcbiAgc29ydFJlZmVyZW5jZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0IHtcbiAgaXNSZXNvdXJjZUxvY2tlZEZvclBhdGgsXG4gIGxvY2tSZXNvdXJjZUZvclBhdGgsXG4gIHJlcXVlc3RSZXNvdXJjZVVubG9ja0ZvclBhdGgsXG4gIFJlc291cmNlTG9ja0NvbXBvbmVudCxcbiAgUmVzb3VyY2VMb2NrZWRFcnJvcixcbiAgdW5sb2NrUmVzb3VyY2VGb3JQYXRoXG59IGZyb20gJy4vb2JzaWRpYW4vcmVzb3VyY2UtbG9jay50cyc7XG5leHBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9vYnNpZGlhbi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0IHsgUGx1Z2luUmliYm9uSWNvblJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvY2hlY2tib3gtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvZGVIaWdobGlnaHRlckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2NvZGUtaGlnaGxpZ2h0ZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9kYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1haWxDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9lbWFpbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2ZpbGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbW9udGgtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWVtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZUZpbGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1maWxlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZVRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9udW1iZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvcGFzc3dvcmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGVuc3VyZVdyYXBwZWQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9zZXR0aW5nLWNvbXBvbmVudC13cmFwcGVyLnRzJztcbmV4cG9ydCB7IFRlbGVwaG9uZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RlbGVwaG9uZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90ZXh0LWJhc2VkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RyaS1zdGF0ZS1jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1yYW5nZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBVcmxDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy91cmwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3ZhbGlkYXRvci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgV2Vla0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3dlZWstY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFNldHRpbmdFeCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgeyBTZXR0aW5nR3JvdXBFeCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgeyBQbHVnaW5TdGF0dXNCYXJJdGVtUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwLFxuICBpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyLFxuICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlMsXG4gIFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlMsXG4gIFdJTkRPV1NfVU5TQUZFX1BBVEhfQ0hBUlNcbn0gZnJvbSAnLi9vYnNpZGlhbi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCB7IGRlbGV0ZUlmTm90VXNlZCB9IGZyb20gJy4vb2JzaWRpYW4vdmF1bHQtZGVsZXRlLnRzJztcbmV4cG9ydCB7IFZhdWx0VHJhbnNhY3Rpb24gfSBmcm9tICcuL29ic2lkaWFuL3ZhdWx0LXRyYW5zYWN0aW9uLnRzJztcbmV4cG9ydCB7XG4gIGNvcHlTYWZlLFxuICBjcmVhdGVGb2xkZXJTYWZlLFxuICBjcmVhdGVUZW1wRmlsZSxcbiAgY3JlYXRlVGVtcEZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXIsXG4gIGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5LFxuICBnZXRBYnN0cmFjdEZpbGVQYXRoU2FmZSxcbiAgZ2V0QXZhaWxhYmxlUGF0aCxcbiAgZ2V0RmlsZVBhdGhTYWZlLFxuICBnZXRGb2xkZXJQYXRoU2FmZSxcbiAgZ2V0TWFya2Rvd25GaWxlc1NvcnRlZCxcbiAgZ2V0Tm90ZUZpbGVzU29ydGVkLFxuICBnZXRPckNyZWF0ZUFic3RyYWN0RmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRm9sZGVyU2FmZSxcbiAgZ2V0U2FmZVJlbmFtZVBhdGgsXG4gIGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayxcbiAgaXNDaGlsZCxcbiAgaXNDaGlsZE9yU2VsZixcbiAgaXNFbXB0eUZvbGRlcixcbiAgbGlzdFNhZmUsXG4gIHByb2Nlc3MsXG4gIHJlYWRTYWZlLFxuICByZW5hbWVTYWZlLFxuICBzYXZlTm90ZSxcbiAgdHJhc2hTYWZlXG59IGZyb20gJy4vb2JzaWRpYW4vdmF1bHQudHMnO1xuZXhwb3J0IHsgUGx1Z2luVmlld1JlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZW5zdXJlTGF5b3V0UmVhZHksXG4gIGdldEFsbENvbnRhaW5lcnMsXG4gIGdldEFsbERvbVdpbmRvd3Ncbn0gZnJvbSAnLi9vYnNpZGlhbi93b3Jrc3BhY2UudHMnO1xuZXhwb3J0IHtcbiAgYmFzZW5hbWUsXG4gIGRlbGltaXRlcixcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgZm9ybWF0LFxuICBnZXRGaWxlTmFtZSxcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgaXNBYnNvbHV0ZSxcbiAgam9pbixcbiAgbWFrZUZpbGVOYW1lLFxuICBub3JtYWxpemVJZlJlbGF0aXZlLFxuICBub3JtYWxpemVQYXRoLFxuICBwYXJzZSxcbiAgcG9zaXgsXG4gIHJlbGF0aXZlLFxuICByZXNvbHZlLFxuICBzZXAsXG4gIHRvUG9zaXhCdWZmZXIsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4vcGF0aC50cyc7XG5leHBvcnQge1xuICBBTFdBWVNfTUFUQ0hfUkVHX0VYUCxcbiAgZXNjYXBlUmVnRXhwLFxuICBpc1ZhbGlkUmVnRXhwLFxuICBORVZFUl9NQVRDSF9SRUdfRVhQLFxuICBvbmVPZixcbiAgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3lcbn0gZnJvbSAnLi9yZWctZXhwLnRzJztcbmV4cG9ydCB7XG4gIGJ5cGFzc1N0cmljdFByb3h5LFxuICBzdHJpY3RQcm94eVxufSBmcm9tICcuL3N0cmljdC1wcm94eS50cyc7XG5leHBvcnQge1xuICBFTVBUWSxcbiAgZW5zdXJlRW5kc1dpdGgsXG4gIGVuc3VyZUxmRW5kaW5ncyxcbiAgZW5zdXJlU3RhcnRzV2l0aCxcbiAgZXNjYXBlLFxuICBnZXRMZk5vcm1hbGl6ZWRPZmZzZXRUb09yaWdpbmFsT2Zmc2V0TWFwcGVyLFxuICBoYXNTaW5nbGVPY2N1cnJlbmNlLFxuICBpbmRlbnQsXG4gIGluc2VydEF0LFxuICBtYWtlVmFsaWRWYXJpYWJsZU5hbWUsXG4gIG5vcm1hbGl6ZVN0cmluZyxcbiAgcmVwbGFjZSxcbiAgcmVwbGFjZUFsbCxcbiAgcmVwbGFjZUFsbEFzeW5jLFxuICB0cmltRW5kLFxuICB0cmltU3RhcnQsXG4gIHVuZXNjYXBlLFxuICB1bmluZGVudFxufSBmcm9tICcuL3N0cmluZy50cyc7XG5leHBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9kYXRlLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IER1cmF0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9kdXJhdGlvbi10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvZ3JvdXAtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgTWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9tYXAtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9zZXQtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvc2tpcC1wcml2YXRlLXByb3BlcnR5LXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHdvV2F5TWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy90d28td2F5LW1hcC10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBUeXBlZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdHlwZWQtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHdvV2F5TWFwIH0gZnJvbSAnLi90d28td2F5LW1hcC50cyc7XG5leHBvcnQge1xuICBhc3NlcnQsXG4gIGFzc2VydEdlbmVyaWNPYmplY3QsXG4gIGFzc2VydE5ldmVyLFxuICBhc3NlcnROb25OdWxsYWJsZSxcbiAgZW5zdXJlR2VuZXJpY09iamVjdCxcbiAgZW5zdXJlTm9uTnVsbGFibGVcbn0gZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5leHBvcnQgeyB0eXBlQXNzZXJ0ZXIgfSBmcm9tICcuL3R5cGUudHMnO1xuZXhwb3J0IHtcbiAgaXNGaWxlVXJsLFxuICBpc1VybCxcbiAgbm9ybWFsaXplRmlsZVVybFxufSBmcm9tICcuL3VybC50cyc7XG5leHBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICcuL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vdmFsdWUtd3JhcHBlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGNBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGNBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGdDQUFnQztBQUN6QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxrQ0FBa0M7QUFDM0MsU0FBUywrQkFBK0I7QUFDeEMsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyw0QkFBNEI7QUFDckMsU0FBUywwQkFBMEI7QUFDbkMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxtQ0FBbUM7QUFDNUMsU0FBUyxrQ0FBa0M7QUFDM0MsU0FBUyxzQ0FBc0M7QUFDL0MsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUyxrQ0FBa0M7QUFDM0MsU0FBUywwQkFBMEI7QUFDbkMsU0FBUyx5Q0FBeUM7QUFDbEQsU0FBUyxtQkFBbUI7QUFDNUIsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUyxrREFBa0Q7QUFDM0Q7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG1DQUFtQztBQUM1QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLG1DQUFtQztBQUM1QyxTQUFTLGtDQUFrQztBQUMzQyxTQUFTLHlCQUF5QjtBQUNsQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsdUNBQXVDO0FBQ2hELFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMseUJBQXlCO0FBQ2xDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxxQkFBcUI7QUFDOUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHNDQUFzQztBQUMvQyxTQUFTLG9DQUFvQztBQUM3QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxzQ0FBc0M7QUFDL0MsU0FBUyx1QkFBdUI7QUFDaEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFB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