obsidian-dev-utils 94.0.0 → 94.2.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.
@@ -0,0 +1,253 @@
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 initCjs() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ const globalThisRecord = globalThis;
9
+ globalThisRecord['__name'] ??= name;
10
+ const originalRequire = require;
11
+ if (originalRequire && !originalRequire.__isPatched) {
12
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
13
+ require = Object.assign(
14
+ (id) => requirePatched(id),
15
+ originalRequire,
16
+ {
17
+ __isPatched: true
18
+ }
19
+ );
20
+ }
21
+
22
+ const newFuncs = {
23
+ __extractDefault() {
24
+ return extractDefault;
25
+ },
26
+ process() {
27
+ const browserProcess = {
28
+ browser: true,
29
+ cwd() {
30
+ return '/';
31
+ },
32
+ env: {},
33
+ platform: 'android'
34
+ };
35
+ return browserProcess;
36
+ }
37
+ };
38
+
39
+ for (const key of Object.keys(newFuncs)) {
40
+ globalThisRecord[key] ??= newFuncs[key]?.();
41
+ }
42
+
43
+ function extractDefault(module) {
44
+ return module && module.__esModule && 'default' in module ? module.default : module;
45
+ }
46
+
47
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
48
+ '@codemirror/autocomplete',
49
+ '@codemirror/collab',
50
+ '@codemirror/commands',
51
+ '@codemirror/language',
52
+ '@codemirror/lint',
53
+ '@codemirror/search',
54
+ '@codemirror/state',
55
+ '@codemirror/text',
56
+ '@codemirror/view',
57
+ '@lezer/common',
58
+ '@lezer/highlight',
59
+ '@lezer/lr',
60
+ 'obsidian']
61
+ );
62
+
63
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
64
+ '@codemirror/closebrackets',
65
+ '@codemirror/comment',
66
+ '@codemirror/fold',
67
+ '@codemirror/gutter',
68
+ '@codemirror/highlight',
69
+ '@codemirror/history',
70
+ '@codemirror/matchbrackets',
71
+ '@codemirror/panel',
72
+ '@codemirror/rangeset',
73
+ '@codemirror/rectangular-selection',
74
+ '@codemirror/stream-parser',
75
+ '@codemirror/tooltip']
76
+ );
77
+
78
+ function requirePatched(id) {
79
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
80
+ return originalRequire?.(id);
81
+ }
82
+
83
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
84
+ if (globalThis.app.isMobile) {
85
+ if (id === 'process' || id === 'node:process') {
86
+ // eslint-disable-next-line no-console -- Valid usage.
87
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
88
+
89
+ return process;
90
+ }
91
+ } else {
92
+ const module = originalRequire?.(id);
93
+ if (module) {
94
+ return extractDefault(module);
95
+ }
96
+ }
97
+
98
+ // eslint-disable-next-line no-console -- Valid usage.
99
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
+ return {};
101
+ }
102
+ })();
103
+
104
+ "use strict";
105
+ var __defProp = Object.defineProperty;
106
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
+ var __getOwnPropNames = Object.getOwnPropertyNames;
108
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
109
+ var __export = (target, all) => {
110
+ for (var name in all)
111
+ __defProp(target, name, { get: all[name], enumerable: true });
112
+ };
113
+ var __copyProps = (to, from, except, desc) => {
114
+ if (from && typeof from === "object" || typeof from === "function") {
115
+ for (let key of __getOwnPropNames(from))
116
+ if (!__hasOwnProp.call(to, key) && key !== except)
117
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
+ }
119
+ return to;
120
+ };
121
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
+ var folder_note_exports = {};
123
+ __export(folder_note_exports, {
124
+ FOLDER_NOTES_PLUGIN_ID: () => FOLDER_NOTES_PLUGIN_ID,
125
+ FolderNoteLocation: () => FolderNoteLocation,
126
+ resolveFolderNote: () => resolveFolderNote,
127
+ resolveFolderNoteConfig: () => resolveFolderNoteConfig
128
+ });
129
+ module.exports = __toCommonJS(folder_note_exports);
130
+ var import_obsidian = require('obsidian');
131
+ var import_path = require('../path.cjs');
132
+ var import_string = require('../string.cjs');
133
+ var import_file_system = require('./file-system.cjs');
134
+ var FolderNoteLocation = /* @__PURE__ */ ((FolderNoteLocation2) => {
135
+ FolderNoteLocation2["Auto"] = "Auto";
136
+ FolderNoteLocation2["InsideFolder"] = "InsideFolder";
137
+ FolderNoteLocation2["None"] = "None";
138
+ FolderNoteLocation2["ParentFolder"] = "ParentFolder";
139
+ return FolderNoteLocation2;
140
+ })(FolderNoteLocation || {});
141
+ const FOLDER_NOTES_PLUGIN_ID = "folder-notes";
142
+ const FOLDER_NOTES_FOLDER_NAME_TOKEN_REG_EXP = /\{\{folder_name\}\}/gi;
143
+ const EXCALIDRAW_FILE_EXTENSION = "excalidraw";
144
+ const FALLBACK_FOLDER_NOTE_CONFIG = {
145
+ extensions: [import_file_system.MARKDOWN_FILE_EXTENSION],
146
+ isHidden: false,
147
+ location: "InsideFolder" /* InsideFolder */,
148
+ resolveName: (folder) => folder.name
149
+ };
150
+ function resolveFolderNote(params) {
151
+ const { app, folder } = params;
152
+ const config = params.config ?? resolveFolderNoteConfig({ app });
153
+ if (config.location === "None" /* None */) {
154
+ return null;
155
+ }
156
+ const parentFolderPath = config.location === "ParentFolder" /* ParentFolder */ ? folder.parent?.path : folder.path;
157
+ if (parentFolderPath === void 0) {
158
+ return null;
159
+ }
160
+ const noteName = config.resolveName(folder).trim();
161
+ if (!noteName) {
162
+ return null;
163
+ }
164
+ for (const extension of config.extensions) {
165
+ const file = app.vault.getFileByPath((0, import_obsidian.normalizePath)((0, import_path.join)(parentFolderPath, `${noteName}.${extension}`)));
166
+ if (file) {
167
+ return file;
168
+ }
169
+ }
170
+ return null;
171
+ }
172
+ function resolveFolderNoteConfig(params) {
173
+ const {
174
+ app,
175
+ extensions,
176
+ isHidden,
177
+ location,
178
+ resolveName
179
+ } = params;
180
+ if (location !== void 0 && location !== "Auto" /* Auto */) {
181
+ return {
182
+ extensions: normalizeExtensions(extensions ?? [import_file_system.MARKDOWN_FILE_EXTENSION]),
183
+ isHidden: isHidden ?? false,
184
+ location,
185
+ resolveName: resolveName ?? FALLBACK_FOLDER_NOTE_CONFIG.resolveName
186
+ };
187
+ }
188
+ return readFolderNotesPluginConfig(app) ?? FALLBACK_FOLDER_NOTE_CONFIG;
189
+ }
190
+ function normalizeExtensions(extensions) {
191
+ const normalizedExtensions = extensions.map((extension) => extension.trim().toLowerCase().replace(/^\./, "")).map((extension) => extension === EXCALIDRAW_FILE_EXTENSION ? import_file_system.MARKDOWN_FILE_EXTENSION : extension).filter(Boolean);
192
+ return [...new Set(normalizedExtensions)];
193
+ }
194
+ function readFolderNotesPluginConfig(app) {
195
+ const folderNotesPlugin = app.plugins.getPlugin(FOLDER_NOTES_PLUGIN_ID);
196
+ if (!folderNotesPlugin || !("settings" in folderNotesPlugin)) {
197
+ return null;
198
+ }
199
+ const folderNotesSettings = folderNotesPlugin.settings;
200
+ if (typeof folderNotesSettings !== "object" || folderNotesSettings === null) {
201
+ return null;
202
+ }
203
+ const location = toFolderNoteLocation("storageLocation" in folderNotesSettings ? folderNotesSettings.storageLocation : null);
204
+ if (!location) {
205
+ return null;
206
+ }
207
+ const folderNoteName = "folderNoteName" in folderNotesSettings ? folderNotesSettings.folderNoteName : null;
208
+ if (typeof folderNoteName !== "string" || !folderNoteName) {
209
+ return null;
210
+ }
211
+ const folderNoteType = "folderNoteType" in folderNotesSettings ? folderNotesSettings.folderNoteType : null;
212
+ const supportedFileTypes = "supportedFileTypes" in folderNotesSettings ? folderNotesSettings.supportedFileTypes : null;
213
+ const isHidden = "hideFolderNote" in folderNotesSettings ? folderNotesSettings.hideFolderNote : null;
214
+ return {
215
+ // Its own resolver tries the primary type first and every other supported type after it, which is the
216
+ // Order reproduced here. An unusable pair leaves Markdown, the extension it cannot be configured
217
+ // Without.
218
+ extensions: normalizeExtensions([
219
+ typeof folderNoteType === "string" ? folderNoteType : import_file_system.MARKDOWN_FILE_EXTENSION,
220
+ ...Array.isArray(supportedFileTypes) ? supportedFileTypes.filter((type) => typeof type === "string") : [],
221
+ import_file_system.MARKDOWN_FILE_EXTENSION
222
+ ]),
223
+ isHidden: isHidden === true,
224
+ location,
225
+ resolveName: (folder) => (0, import_string.replaceAll)({
226
+ $string: folderNoteName,
227
+ // A function replacer, so a folder name containing `$&` is inserted literally.
228
+ replacer: () => folder.name,
229
+ searchValue: FOLDER_NOTES_FOLDER_NAME_TOKEN_REG_EXP
230
+ })
231
+ };
232
+ }
233
+ function toFolderNoteLocation(storageLocation) {
234
+ switch (storageLocation) {
235
+ case "insideFolder": {
236
+ return "InsideFolder" /* InsideFolder */;
237
+ }
238
+ case "parentFolder": {
239
+ return "ParentFolder" /* ParentFolder */;
240
+ }
241
+ default: {
242
+ return null;
243
+ }
244
+ }
245
+ }
246
+ // Annotate the CommonJS export names for ESM import in node:
247
+ 0 && (module.exports = {
248
+ FOLDER_NOTES_PLUGIN_ID,
249
+ FolderNoteLocation,
250
+ resolveFolderNote,
251
+ resolveFolderNoteConfig
252
+ });
253
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2ZvbGRlci1ub3RlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGZvbGRlci1ub3RlIGNvbmNlcHQ6IHdoaWNoIG5vdGUsIGlmIGFueSwgaXMgdGhlIG9uZSB3aG9zZSBwcm9wZXJ0aWVzIGRlc2NyaWJlIGEgRk9MREVSIGl0c2VsZi5cbiAqXG4gKiBPYnNpZGlhbiBoYXMgbm8gc3VjaCBjb25jZXB0IFx1MjAxNCBpdCBpcyBhIGNvbnZlbnRpb24gdGhlIGNvbW11bml0eSBzZXR0bGVkIG9uLCBhbmQgdGhlIHBsdWdpbiB0aGF0IG93bnMgaXRcbiAqIGZvciBtb3N0IHZhdWx0cyBpcyBbYGZvbGRlci1ub3Rlc2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9Mb3N0UGF1bC9vYnNpZGlhbi1mb2xkZXItbm90ZXMpLiBTbyB0aGUgYW5zd2VyIHRvXG4gKiBcIndoaWNoIG5vdGUgYmVsb25ncyB0byB0aGlzIGZvbGRlclwiIGlzIHRoYXQgcGx1Z2luJ3MgdG8gZ2l2ZSB3aGVuZXZlciBpdCBpcyBpbnN0YWxsZWQsIGFuZCB0aGlzIG1vZHVsZVxuICogYXNrcyBpdCByYXRoZXIgdGhhbiBpbnZlbnRpbmcgYSBzZWNvbmQgYW5zd2VyOiB7QGxpbmsgRm9sZGVyTm90ZUxvY2F0aW9uLkF1dG99IFx1MjAxNCB0aGUgZGVmYXVsdCBcdTIwMTQgcmVhZHMgaXRzXG4gKiBsaXZlIGNvbmZpZ3VyYXRpb24gYXQgZXZlcnkgdXNlLlxuICpcbiAqIFJlYWRpbmcgaXQgbGl2ZSByYXRoZXIgdGhhbiBjb3B5aW5nIGl0cyB2YWx1ZXMgaW50byBhIGNvbnN1bWVyJ3Mgb3duIHNldHRpbmdzIGlzIGRlbGliZXJhdGU6IGEgY29weSBnb2VzXG4gKiBzdGFsZSB0aGUgbW9tZW50IHRoYXQgcGx1Z2luIGlzIHJlY29uZmlndXJlZCwgYW5kIGl0IHdvdWxkIG5lZWQgYSBzZXR0aW5ncyBtaWdyYXRpb24gdG8gc2VlZC4gRXZlcnl0aGluZ1xuICogZWxzZSBpcyB0aGUgY2FsbGVyJ3MgZXhwbGljaXQgY2hvaWNlLCBhbmQgdGhlbiB0aGUgb3RoZXIgcGx1Z2luIGlzIG5vdCBjb25zdWx0ZWQgYXQgYWxsLlxuICpcbiAqIE5vdGhpbmcgaGVyZSBldmVyIENSRUFURVMgYSBub3RlLiBBIGZvbGRlciB3aXRoIG5vIGZvbGRlciBub3RlIGFuc3dlcnMgYG51bGxgLCB3aGljaCBpcyB3aGF0IGxldHMgYVxuICogY2FsbGVyIGxheWVyIGZvbGRlci1ub3RlIGJlaGF2aW9yIG9udG8gYSBjbGljayB3aXRob3V0IHJpc2tpbmcgYSBmaWxlIGFwcGVhcmluZyBvbiB0aGUgdXNlcidzIGRpc2suXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFRGaWxlLFxuICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgbm9ybWFsaXplUGF0aCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJy4uL3N0cmluZy50cyc7XG5pbXBvcnQgeyBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTiB9IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuXG4vKipcbiAqIFdoZXJlIGEgZm9sZGVyJ3MgZm9sZGVyIG5vdGUgbGl2ZXMuXG4gKlxuICogVGhlIHRocmVlIGNvbmNyZXRlIG1lbWJlcnMgYXJlIHRoZSBzaGFwZXMgdGhlIGZvbGRlci1ub3RlIGVjb3N5c3RlbSBhY3R1YWxseSB1c2VzOlxuICogYGNoYXJsaWUvY2hhcmxpZS5tZGAgYW5kIGBjaGFybGllL2luZGV4Lm1kYCBhcmUgYm90aCB7QGxpbmsgRm9sZGVyTm90ZUxvY2F0aW9uLkluc2lkZUZvbGRlcn0gKHRoZXlcbiAqIGRpZmZlciBvbmx5IGluIHRoZSBOQU1FLCB3aGljaCBpcyB3aHkgbmFtaW5nIGlzIGEgY2FsbGJhY2sgYW5kIG5vdCBhIGZvdXJ0aCBtZW1iZXIpLCB3aGlsZVxuICogYGNoYXJsaWUubWRgIGJlc2lkZSB0aGUgZm9sZGVyIGlzIHtAbGluayBGb2xkZXJOb3RlTG9jYXRpb24uUGFyZW50Rm9sZGVyfSBcdTIwMTQgd2hvc2Ugd2hvbGUgcG9pbnQgaXMgdGhhdFxuICogYFtbYWxwaGEvYnJhdm8vY2hhcmxpZV1dYCBsaW5rcyB0byBhIGZvbGRlciB3aXRoIG5vIHNwZWNpYWwgc3ludGF4LlxuICovXG5leHBvcnQgZW51bSBGb2xkZXJOb3RlTG9jYXRpb24ge1xuICAvKipcbiAgICogVGFrZSB0aGUgYW5zd2VyIGZyb20gdGhlIGluc3RhbGxlZCBgZm9sZGVyLW5vdGVzYCBwbHVnaW4sIGZhbGxpbmcgYmFjayB0byBhIG5vdGUgbmFtZWQgYWZ0ZXIgaXRzXG4gICAqIGZvbGRlciwgaW5zaWRlIGl0LiBUaGUgZGVmYXVsdCwgYW5kIHJlc29sdmVkIExJVkUgcmF0aGVyIHRoYW4gY29waWVkLlxuICAgKi9cbiAgQXV0byA9ICdBdXRvJyxcblxuICAvKipcbiAgICogYGFscGhhL2JyYXZvL2NoYXJsaWUvPG5hbWU+Lm1kYC5cbiAgICovXG4gIEluc2lkZUZvbGRlciA9ICdJbnNpZGVGb2xkZXInLFxuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgaGFzIG5vIGZvbGRlciBub3RlcyBhdCBhbGwsIHNvIGV2ZXJ5IGZvbGRlciBhbnN3ZXJzIGBudWxsYC4gVGhpcyBpcyBhbHNvIGhvdyBhIGNhbGxlciBvcHRzXG4gICAqIG91dCBvZiBmb2xkZXItbm90ZSBiZWhhdmlvciBlbnRpcmVseS5cbiAgICovXG4gIE5vbmUgPSAnTm9uZScsXG5cbiAgLyoqXG4gICAqIGBhbHBoYS9icmF2by88bmFtZT4ubWRgLCBiZXNpZGUgdGhlIGZvbGRlci5cbiAgICovXG4gIFBhcmVudEZvbGRlciA9ICdQYXJlbnRGb2xkZXInXG59XG5cbi8qKlxuICogQSBmb2xkZXItbm90ZSBzZXR1cCB3aXRoIHtAbGluayBGb2xkZXJOb3RlTG9jYXRpb24uQXV0b30gYWxyZWFkeSByZXNvbHZlZCB0byBhIGNvbmNyZXRlIGFuc3dlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb2xkZXJOb3RlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBleHRlbnNpb25zIGEgZm9sZGVyIG5vdGUgbWF5IGNhcnJ5LCBXSVRIT1VUIHRoZSBsZWFkaW5nIGRvdCwgaW4gcmVzb2x1dGlvbiBvcmRlciBcdTIwMTQgdGhlIGZpcnN0IG9uZVxuICAgKiB0aGF0IG5hbWVzIGFuIGV4aXN0aW5nIGZpbGUgd2lucy5cbiAgICovXG4gIHJlYWRvbmx5IGV4dGVuc2lvbnM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmb2xkZXIgbm90ZSBpcyBoaWRkZW4gaW4gdGhlIGZpbGUgZXhwbG9yZXIuXG4gICAqXG4gICAqIFJlYWQgcmF0aGVyIHRoYW4gYWN0ZWQgdXBvbiBoZXJlOiBpdCBjaGFuZ2VzIG5vdGhpbmcgYWJvdXQgV0hJQ0ggZmlsZSBpcyB0aGUgZm9sZGVyIG5vdGUsIGJ1dCBhIGNhbGxlclxuICAgKiB0aGF0IHJldmVhbHMgdGhlIG5vdGUgaGFzIHRvIGtub3cgdGhlcmUgaXMgbm90aGluZyB0byByZXZlYWwgYW5kIGZhbGwgYmFjayB0byByZXZlYWxpbmcgdGhlIGZvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IGlzSGlkZGVuOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgbm90ZSBzaXRzIHJlbGF0aXZlIHRvIGl0cyBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbjogRm9sZGVyTm90ZUxvY2F0aW9uLkluc2lkZUZvbGRlciB8IEZvbGRlck5vdGVMb2NhdGlvbi5Ob25lIHwgRm9sZGVyTm90ZUxvY2F0aW9uLlBhcmVudEZvbGRlcjtcblxuICAvKipcbiAgICogTmFtZXMgdGhlIGZvbGRlciBub3RlIG9mIGEgZm9sZGVyLCBXSVRIT1VUIGl0cyBleHRlbnNpb24uXG4gICAqXG4gICAqIEBwYXJhbSBmb2xkZXIgLSBUaGUgZm9sZGVyIHdob3NlIG5vdGUgaXMgYmVpbmcgbmFtZWQuXG4gICAqIEByZXR1cm5zIFRoZSBub3RlJ3MgbmFtZTsgYW4gZW1wdHkgKG9yIGJsYW5rKSBuYW1lIG1lYW5zIHRoZSBmb2xkZXIgaGFzIG5vIGZvbGRlciBub3RlLlxuICAgKi9cbiAgLy8gYHRoaXM6IHZvaWRgIGJlY2F1c2UgaXQgaXMgYSBzdGFuZGFsb25lIGNhbGxiYWNrLCBuZXZlciBhIG1ldGhvZCBvZiB0aGUgY29uZmlnIFx1MjAxNCB3aGljaCBpcyBhbHNvIHdoYXRcbiAgLy8gTGV0cyBpdCBiZSBkZXN0cnVjdHVyZWQgYW5kIGhhbmRlZCBvbiB3aXRob3V0IHRyaXBwaW5nIGB1bmJvdW5kLW1ldGhvZGAuXG4gIHJlc29sdmVOYW1lKHRoaXM6IHZvaWQsIGZvbGRlcjogVEZvbGRlcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVzb2x2ZUZvbGRlck5vdGVDb25maWd9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVGb2xkZXJOb3RlQ29uZmlnUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGV4dGVuc2lvbnMgYSBmb2xkZXIgbm90ZSBtYXkgY2FycnksIHdpdGggb3Igd2l0aG91dCB0aGUgbGVhZGluZyBkb3QsIGluIHJlc29sdXRpb24gb3JkZXIuIElnbm9yZWRcbiAgICogdW5kZXIge0BsaW5rIEZvbGRlck5vdGVMb2NhdGlvbi5BdXRvfSwgd2hpY2ggdGFrZXMgdGhlIGluc3RhbGxlZCBwbHVnaW4ncyBhbnN3ZXIgd2hvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbJ21kJ11gXG4gICAqL1xuICByZWFkb25seSBleHRlbnNpb25zPzogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZvbGRlciBub3RlIGlzIGhpZGRlbiBpbiB0aGUgZmlsZSBleHBsb3Jlci4gSWdub3JlZCB1bmRlciB7QGxpbmsgRm9sZGVyTm90ZUxvY2F0aW9uLkF1dG99LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBpc0hpZGRlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRoZSBub3RlIHNpdHMgcmVsYXRpdmUgdG8gaXRzIGZvbGRlci5cbiAgICpcbiAgICogQGRlZmF1bHQge0BsaW5rIEZvbGRlck5vdGVMb2NhdGlvbi5BdXRvfVxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb24/OiBGb2xkZXJOb3RlTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIE5hbWVzIHRoZSBmb2xkZXIgbm90ZSBvZiBhIGZvbGRlciwgV0lUSE9VVCBpdHMgZXh0ZW5zaW9uLiBJZ25vcmVkIHVuZGVyXG4gICAqIHtAbGluayBGb2xkZXJOb3RlTG9jYXRpb24uQXV0b30sIHdoaWNoIG5hbWVzIHRoZSBub3RlIHRoZSB3YXkgdGhlIGluc3RhbGxlZCBwbHVnaW4gZG9lcy5cbiAgICpcbiAgICogQSBjYWxsYmFjayByYXRoZXIgdGhhbiBhIG5hbWUgdGVtcGxhdGUsIGJlY2F1c2UgYSB0ZW1wbGF0ZSBuZWVkcyBhIHRva2VuIHZvY2FidWxhcnkgYW5kIHRoaXMgbGlicmFyeVxuICAgKiBoYXMgbm9uZSB0byBpbXBvc2UgXHUyMDE0IGEgY2FsbGVyIHRoYXQgaGFzIG9uZSAoYHt7Zm9sZGVyTmFtZX19YCwgYHt7Zm9sZGVyUGF0aH19YCwgXHUyMDI2KSByZW5kZXJzIGl0IGhlcmUuXG4gICAqXG4gICAqIEBwYXJhbSBmb2xkZXIgLSBUaGUgZm9sZGVyIHdob3NlIG5vdGUgaXMgYmVpbmcgbmFtZWQuXG4gICAqIEByZXR1cm5zIFRoZSBub3RlJ3MgbmFtZS5cbiAgICogQGRlZmF1bHQgYChmb2xkZXIpID0+IGZvbGRlci5uYW1lYFxuICAgKi9cbiAgLy8gU2VlIHtAbGluayBGb2xkZXJOb3RlQ29uZmlnLnJlc29sdmVOYW1lfSBmb3Igd2h5IGB0aGlzOiB2b2lkYC5cbiAgcmVzb2x2ZU5hbWU/KHRoaXM6IHZvaWQsIGZvbGRlcjogVEZvbGRlcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVzb2x2ZUZvbGRlck5vdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVGb2xkZXJOb3RlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGFscmVhZHktcmVzb2x2ZWQgc2V0dXAgdG8gdXNlLlxuICAgKlxuICAgKiBPbWl0dGVkIG1lYW5zIHtAbGluayBGb2xkZXJOb3RlTG9jYXRpb24uQXV0b30gXHUyMDE0IHRoZSBzZXR1cCBpcyByZXNvbHZlZCBvbiB0aGUgc3BvdCwgd2hpY2ggaXMgd2hhdCBtYWtlc1xuICAgKiBgcmVzb2x2ZUZvbGRlck5vdGUoeyBhcHAsIGZvbGRlciB9KWAgdGhlIG9uZS1saW5lciBldmVyeSBjYWxsZXIgd2FudHMuIFBhc3Mgb25lIHdoZW4gdGhlIHNhbWUgc2V0dXAgaXNcbiAgICogdXNlZCBtb3JlIHRoYW4gb25jZSwgb3Igd2hlbiBpdHMge0BsaW5rIEZvbGRlck5vdGVDb25maWcuaXNIaWRkZW59IGlzIG5lZWRlZCBhbG9uZ3NpZGUgdGhlIG5vdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGByZXNvbHZlRm9sZGVyTm90ZUNvbmZpZyh7IGFwcCB9KWBcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZz86IEZvbGRlck5vdGVDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgd2hvc2UgZm9sZGVyIG5vdGUgaXMgd2FudGVkLiBSZWFkIEFGVEVSIGFueSByZW5hbWU6IHRoZSBub3RlIGlzIG5hbWVkIGZyb20gdGhlIGZvbGRlcidzXG4gICAqIENVUlJFTlQgbmFtZSwgYW5kIGEgYGZvbGRlci1ub3Rlc2AgaW5zdGFsbCB3aXRoIGBzeW5jRm9sZGVyTmFtZWAgb24gd2lsbCBoYXZlIHJlbmFtZWQgaXQgYWxyZWFkeS5cbiAgICovXG4gIHJlYWRvbmx5IGZvbGRlcjogVEZvbGRlcjtcbn1cblxuLyoqXG4gKiBUaGUgYGZvbGRlci1ub3Rlc2AgcGx1Z2luJ3MgaWQsIGFzIGl0cyBtYW5pZmVzdCBkZWNsYXJlcyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IEZPTERFUl9OT1RFU19QTFVHSU5fSUQgPSAnZm9sZGVyLW5vdGVzJztcblxuLyoqXG4gKiBUaGUgb25lIHRva2VuIGBmb2xkZXItbm90ZXNgJyBvd24gbmFtZSB0ZW1wbGF0ZSB1bmRlcnN0YW5kcy4gRXZlcnkgb3RoZXIgY2hhcmFjdGVyIGluIHRoYXQgdGVtcGxhdGUgaXNcbiAqIGEgbGl0ZXJhbCwgc28gdHJhbnNsYXRpbmcgdGhpcyB0b2tlbiBpcyB0aGUgd2hvbGUgb2YgdGhlIHRyYW5zbGF0aW9uLlxuICovXG5jb25zdCBGT0xERVJfTk9URVNfRk9MREVSX05BTUVfVE9LRU5fUkVHX0VYUCA9IC9cXHtcXHtmb2xkZXJfbmFtZVxcfVxcfS9naTtcblxuLyoqXG4gKiBgZm9sZGVyLW5vdGVzYCBvZmZlcnMgRXhjYWxpZHJhdyBmb2xkZXIgbm90ZXMsIHdoaWNoIGFyZSBNYXJrZG93biBmaWxlcyB3aXRoIGFuIEV4Y2FsaWRyYXcgcGF5bG9hZCBcdTIwMTQgaXRzXG4gKiBvd24gcmVzb2x2ZXIgbm9ybWFsaXplcyB0aGUgdHlwZSB0aGUgc2FtZSB3YXkgYmVmb3JlIGxvb2tpbmcgdGhlIGZpbGUgdXAuXG4gKi9cbmNvbnN0IEVYQ0FMSURSQVdfRklMRV9FWFRFTlNJT04gPSAnZXhjYWxpZHJhdyc7XG5cbi8qKlxuICogV2hhdCB7QGxpbmsgRm9sZGVyTm90ZUxvY2F0aW9uLkF1dG99IGZhbGxzIGJhY2sgdG86IHRoZSBsYXlvdXQgZXZlcnkgZm9sZGVyLW5vdGUgcGx1Z2luIHN1cHBvcnRzLCBhbmRcbiAqIHRoZSBvbmUgYGZvbGRlci1ub3Rlc2AgaXRzZWxmIHNoaXBzIGFzIGl0cyBkZWZhdWx0LiBOb3RoaW5nIGhpZGVzIGEgbm90ZSB3aGVuIG5vIHBsdWdpbiBpcyB0aGVyZSB0byBoaWRlXG4gKiBpdCwgc28ge0BsaW5rIEZvbGRlck5vdGVDb25maWcuaXNIaWRkZW59IGlzIGBmYWxzZWAuXG4gKi9cbmNvbnN0IEZBTExCQUNLX0ZPTERFUl9OT1RFX0NPTkZJRzogRm9sZGVyTm90ZUNvbmZpZyA9IHtcbiAgZXh0ZW5zaW9uczogW01BUktET1dOX0ZJTEVfRVhURU5TSU9OXSxcbiAgaXNIaWRkZW46IGZhbHNlLFxuICBsb2NhdGlvbjogRm9sZGVyTm90ZUxvY2F0aW9uLkluc2lkZUZvbGRlcixcbiAgcmVzb2x2ZU5hbWU6IChmb2xkZXI6IFRGb2xkZXIpOiBzdHJpbmcgPT4gZm9sZGVyLm5hbWVcbn07XG5cbi8qKlxuICogRmluZHMgYSBmb2xkZXIncyBmb2xkZXIgbm90ZSBcdTIwMTQgdGhlIG9uZSBub3RlIHdob3NlIHByb3BlcnRpZXMgZGVzY3JpYmUgdGhlIGZvbGRlciBpdHNlbGYuXG4gKlxuICogKipOZXZlciBjcmVhdGVzLioqIEEgZm9sZGVyIHRoYXQgaGFzIG5vIGZvbGRlciBub3RlIGFuc3dlcnMgYG51bGxgLCBhbmQgc28gZG9lcyB0aGUgdmF1bHQgcm9vdCB1bmRlclxuICoge0BsaW5rIEZvbGRlck5vdGVMb2NhdGlvbi5QYXJlbnRGb2xkZXJ9IChub3RoaW5nIGNhbiBzaXQgYmVzaWRlIGl0KS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGZvbGRlciwgYW5kIG9wdGlvbmFsbHkgdGhlIHNldHVwIHRvIHJlc29sdmUgaXQgd2l0aC5cbiAqIEByZXR1cm5zIFRoZSBmb2xkZXIgbm90ZSwgb3IgYG51bGxgIHdoZW4gdGhlcmUgaXMgbm9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGb2xkZXJOb3RlKHBhcmFtczogUmVzb2x2ZUZvbGRlck5vdGVQYXJhbXMpOiBudWxsIHwgVEZpbGUge1xuICBjb25zdCB7IGFwcCwgZm9sZGVyIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGNvbmZpZyA9IHBhcmFtcy5jb25maWcgPz8gcmVzb2x2ZUZvbGRlck5vdGVDb25maWcoeyBhcHAgfSk7XG4gIGlmIChjb25maWcubG9jYXRpb24gPT09IEZvbGRlck5vdGVMb2NhdGlvbi5Ob25lKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwYXJlbnRGb2xkZXJQYXRoID0gY29uZmlnLmxvY2F0aW9uID09PSBGb2xkZXJOb3RlTG9jYXRpb24uUGFyZW50Rm9sZGVyID8gZm9sZGVyLnBhcmVudD8ucGF0aCA6IGZvbGRlci5wYXRoO1xuICBpZiAocGFyZW50Rm9sZGVyUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBub3RlTmFtZSA9IGNvbmZpZy5yZXNvbHZlTmFtZShmb2xkZXIpLnRyaW0oKTtcbiAgaWYgKCFub3RlTmFtZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZm9yIChjb25zdCBleHRlbnNpb24gb2YgY29uZmlnLmV4dGVuc2lvbnMpIHtcbiAgICBjb25zdCBmaWxlID0gYXBwLnZhdWx0LmdldEZpbGVCeVBhdGgobm9ybWFsaXplUGF0aChqb2luKHBhcmVudEZvbGRlclBhdGgsIGAke25vdGVOYW1lfS4ke2V4dGVuc2lvbn1gKSkpO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICByZXR1cm4gZmlsZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB7QGxpbmsgRm9sZGVyTm90ZUxvY2F0aW9uLkF1dG99IGludG8gYSBjb25jcmV0ZSBmb2xkZXItbm90ZSBzZXR1cC5cbiAqXG4gKiBgZm9sZGVyLW5vdGVzYCcgYHZhdWx0Rm9sZGVyYCBzdG9yYWdlIChldmVyeSBmb2xkZXIgbm90ZSBwb29sZWQgaW4gb25lIGNlbnRyYWwgZm9sZGVyKSBoYXMgbm9cbiAqIGNvdW50ZXJwYXJ0IGhlcmUgYW5kIGZhbGxzIGJhY2sgcmF0aGVyIHRoYW4gZ3Vlc3Npbmc6IHdpdGggdGhlIG5vdGVzIHBvb2xlZCwgdGhlIG5vdGUgYmVsb25naW5nIHRvIGFcbiAqIGZvbGRlciBpcyBubyBsb25nZXIgZGVyaXZhYmxlIGZyb20gdGhhdCBmb2xkZXIncyBwYXRoIGFsb25lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgc2V0dXAsIGFuZCB0aGUgYXBwIHRvIHJlYWQgdGhlIGluc3RhbGxlZCBwbHVnaW4gZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBzZXR1cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVGb2xkZXJOb3RlQ29uZmlnKHBhcmFtczogUmVzb2x2ZUZvbGRlck5vdGVDb25maWdQYXJhbXMpOiBGb2xkZXJOb3RlQ29uZmlnIHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBleHRlbnNpb25zLFxuICAgIGlzSGlkZGVuLFxuICAgIGxvY2F0aW9uLFxuICAgIHJlc29sdmVOYW1lXG4gIH0gPSBwYXJhbXM7XG5cbiAgaWYgKGxvY2F0aW9uICE9PSB1bmRlZmluZWQgJiYgbG9jYXRpb24gIT09IEZvbGRlck5vdGVMb2NhdGlvbi5BdXRvKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4dGVuc2lvbnM6IG5vcm1hbGl6ZUV4dGVuc2lvbnMoZXh0ZW5zaW9ucyA/PyBbTUFSS0RPV05fRklMRV9FWFRFTlNJT05dKSxcbiAgICAgIGlzSGlkZGVuOiBpc0hpZGRlbiA/PyBmYWxzZSxcbiAgICAgIGxvY2F0aW9uLFxuICAgICAgcmVzb2x2ZU5hbWU6IHJlc29sdmVOYW1lID8/IEZBTExCQUNLX0ZPTERFUl9OT1RFX0NPTkZJRy5yZXNvbHZlTmFtZVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcmVhZEZvbGRlck5vdGVzUGx1Z2luQ29uZmlnKGFwcCkgPz8gRkFMTEJBQ0tfRk9MREVSX05PVEVfQ09ORklHO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgZXh0ZW5zaW9ucyB0aGUgd2F5IGBmb2xkZXItbm90ZXNgIGRvZXMgYmVmb3JlIGl0IGxvb2tzIGEgZmlsZSB1cDogbm8gbGVhZGluZyBkb3QsIGxvd2VyLWNhc2UsXG4gKiBFeGNhbGlkcmF3IHRyZWF0ZWQgYXMgTWFya2Rvd24sIGJsYW5rcyBkcm9wcGVkLCBkdXBsaWNhdGVzIGNvbGxhcHNlZCB3aGlsZSBrZWVwaW5nIHRoZSBmaXJzdCBvY2N1cnJlbmNlJ3NcbiAqIHBvc2l0aW9uLlxuICpcbiAqIEBwYXJhbSBleHRlbnNpb25zIC0gVGhlIGV4dGVuc2lvbnMgYXMgY29uZmlndXJlZC5cbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIGV4dGVuc2lvbnMsIGluIHJlc29sdXRpb24gb3JkZXIuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUV4dGVuc2lvbnMoZXh0ZW5zaW9uczogcmVhZG9ubHkgc3RyaW5nW10pOiByZWFkb25seSBzdHJpbmdbXSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRFeHRlbnNpb25zID0gZXh0ZW5zaW9uc1xuICAgIC5tYXAoKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL15cXC4vLCAnJykpXG4gICAgLm1hcCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24gPT09IEVYQ0FMSURSQVdfRklMRV9FWFRFTlNJT04gPyBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTiA6IGV4dGVuc2lvbilcbiAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gWy4uLm5ldyBTZXQobm9ybWFsaXplZEV4dGVuc2lvbnMpXTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgaW5zdGFsbGVkIGBmb2xkZXItbm90ZXNgIHBsdWdpbidzIG93biBjb25maWd1cmF0aW9uLCBpZiBpdCBpcyBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQgdGhlIHdheVxuICogaXQgZG9jdW1lbnRzLlxuICpcbiAqIEV2ZXJ5IHZhbHVlIGlzIHJlYWQgYXMgYHVua25vd25gIGFuZCBjaGVja2VkLCByYXRoZXIgdGhhbiBhc3NlcnRlZCBpbnRvIGEgc2hhcGU6IHRoaXMgaXMgYW5vdGhlclxuICogcGx1Z2luJ3MgcHJpdmF0ZSBzZXR0aW5ncyBvYmplY3QsIHNvIGEgdmVyc2lvbiB0aGF0IHJlbmFtZXMgb3IgZHJvcHMgYSBrZXkgbXVzdCBkZWdyYWRlIHRvIHRoZSBmYWxsYmFja1xuICogaW5zdGVhZCBvZiB0aHJvd2luZyBpbnNpZGUgYSBjbGljayBoYW5kbGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgY29uZmlndXJhdGlvbiwgb3IgYG51bGxgIHdoZW4gdGhlIHBsdWdpbiBpcyBhYnNlbnQsIG5vdCBjb25maWd1cmVkLCBvciBzZXQgdG8gYSBzdG9yYWdlXG4gKiBsb2NhdGlvbiB3aXRoIG5vIGNvdW50ZXJwYXJ0IGhlcmUuXG4gKi9cbmZ1bmN0aW9uIHJlYWRGb2xkZXJOb3Rlc1BsdWdpbkNvbmZpZyhhcHA6IEFwcCk6IEZvbGRlck5vdGVDb25maWcgfCBudWxsIHtcbiAgY29uc3QgZm9sZGVyTm90ZXNQbHVnaW4gPSBhcHAucGx1Z2lucy5nZXRQbHVnaW4oRk9MREVSX05PVEVTX1BMVUdJTl9JRCk7XG4gIC8vIE5hcnJvd2VkIHdpdGggYGluYCByYXRoZXIgdGhhbiBhc3NlcnRlZCBpbnRvIGEgc2hhcGU6IHRoYXQga2VlcHMgZXZlcnkgdmFsdWUgYmVsb3cgdHlwZWQgYHVua25vd25gLFxuICAvLyBXaGljaCBpcyBleGFjdGx5IHdoYXQgYSBmb3JlaWduIHBsdWdpbidzIHByaXZhdGUgc2V0dGluZ3MgYXJlLlxuICBpZiAoIWZvbGRlck5vdGVzUGx1Z2luIHx8ICEoJ3NldHRpbmdzJyBpbiBmb2xkZXJOb3Rlc1BsdWdpbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGZvbGRlck5vdGVzU2V0dGluZ3M6IHVua25vd24gPSBmb2xkZXJOb3Rlc1BsdWdpbi5zZXR0aW5ncztcbiAgaWYgKHR5cGVvZiBmb2xkZXJOb3Rlc1NldHRpbmdzICE9PSAnb2JqZWN0JyB8fCBmb2xkZXJOb3Rlc1NldHRpbmdzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsb2NhdGlvbiA9IHRvRm9sZGVyTm90ZUxvY2F0aW9uKCdzdG9yYWdlTG9jYXRpb24nIGluIGZvbGRlck5vdGVzU2V0dGluZ3MgPyBmb2xkZXJOb3Rlc1NldHRpbmdzLnN0b3JhZ2VMb2NhdGlvbiA6IG51bGwpO1xuICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBmb2xkZXJOb3RlTmFtZSA9ICdmb2xkZXJOb3RlTmFtZScgaW4gZm9sZGVyTm90ZXNTZXR0aW5ncyA/IGZvbGRlck5vdGVzU2V0dGluZ3MuZm9sZGVyTm90ZU5hbWUgOiBudWxsO1xuICBpZiAodHlwZW9mIGZvbGRlck5vdGVOYW1lICE9PSAnc3RyaW5nJyB8fCAhZm9sZGVyTm90ZU5hbWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGZvbGRlck5vdGVUeXBlID0gJ2ZvbGRlck5vdGVUeXBlJyBpbiBmb2xkZXJOb3Rlc1NldHRpbmdzID8gZm9sZGVyTm90ZXNTZXR0aW5ncy5mb2xkZXJOb3RlVHlwZSA6IG51bGw7XG4gIGNvbnN0IHN1cHBvcnRlZEZpbGVUeXBlcyA9ICdzdXBwb3J0ZWRGaWxlVHlwZXMnIGluIGZvbGRlck5vdGVzU2V0dGluZ3MgPyBmb2xkZXJOb3Rlc1NldHRpbmdzLnN1cHBvcnRlZEZpbGVUeXBlcyA6IG51bGw7XG4gIGNvbnN0IGlzSGlkZGVuID0gJ2hpZGVGb2xkZXJOb3RlJyBpbiBmb2xkZXJOb3Rlc1NldHRpbmdzID8gZm9sZGVyTm90ZXNTZXR0aW5ncy5oaWRlRm9sZGVyTm90ZSA6IG51bGw7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBJdHMgb3duIHJlc29sdmVyIHRyaWVzIHRoZSBwcmltYXJ5IHR5cGUgZmlyc3QgYW5kIGV2ZXJ5IG90aGVyIHN1cHBvcnRlZCB0eXBlIGFmdGVyIGl0LCB3aGljaCBpcyB0aGVcbiAgICAvLyBPcmRlciByZXByb2R1Y2VkIGhlcmUuIEFuIHVudXNhYmxlIHBhaXIgbGVhdmVzIE1hcmtkb3duLCB0aGUgZXh0ZW5zaW9uIGl0IGNhbm5vdCBiZSBjb25maWd1cmVkXG4gICAgLy8gV2l0aG91dC5cbiAgICBleHRlbnNpb25zOiBub3JtYWxpemVFeHRlbnNpb25zKFtcbiAgICAgIHR5cGVvZiBmb2xkZXJOb3RlVHlwZSA9PT0gJ3N0cmluZycgPyBmb2xkZXJOb3RlVHlwZSA6IE1BUktET1dOX0ZJTEVfRVhURU5TSU9OLFxuICAgICAgLi4uKEFycmF5LmlzQXJyYXkoc3VwcG9ydGVkRmlsZVR5cGVzKSA/IHN1cHBvcnRlZEZpbGVUeXBlcy5maWx0ZXIoKHR5cGU6IHVua25vd24pID0+IHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykgOiBbXSksXG4gICAgICBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTlxuICAgIF0pLFxuICAgIGlzSGlkZGVuOiBpc0hpZGRlbiA9PT0gdHJ1ZSxcbiAgICBsb2NhdGlvbixcbiAgICByZXNvbHZlTmFtZTogKGZvbGRlcjogVEZvbGRlcik6IHN0cmluZyA9PlxuICAgICAgcmVwbGFjZUFsbCh7XG4gICAgICAgICRzdHJpbmc6IGZvbGRlck5vdGVOYW1lLFxuICAgICAgICAvLyBBIGZ1bmN0aW9uIHJlcGxhY2VyLCBzbyBhIGZvbGRlciBuYW1lIGNvbnRhaW5pbmcgYCQmYCBpcyBpbnNlcnRlZCBsaXRlcmFsbHkuXG4gICAgICAgIHJlcGxhY2VyOiAoKSA9PiBmb2xkZXIubmFtZSxcbiAgICAgICAgc2VhcmNoVmFsdWU6IEZPTERFUl9OT1RFU19GT0xERVJfTkFNRV9UT0tFTl9SRUdfRVhQXG4gICAgICB9KVxuICB9O1xufVxuXG4vKipcbiAqIE1hcHMgYGZvbGRlci1ub3Rlc2AnIGBzdG9yYWdlTG9jYXRpb25gIG9udG8gdGhpcyBsaWJyYXJ5J3Mgb3duIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBzdG9yYWdlTG9jYXRpb24gLSBUaGUgdmFsdWUgcmVhZCBvdXQgb2YgdGhhdCBwbHVnaW4ncyBzZXR0aW5ncy5cbiAqIEByZXR1cm5zIFRoZSBsb2NhdGlvbiwgb3IgYG51bGxgIGZvciBgdmF1bHRGb2xkZXJgIGFuZCBmb3IgYW55dGhpbmcgdGhhdCBpcyBub3Qgb25lIG9mIGl0cyB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHRvRm9sZGVyTm90ZUxvY2F0aW9uKHN0b3JhZ2VMb2NhdGlvbjogdW5rbm93bik6IEZvbGRlck5vdGVDb25maWdbJ2xvY2F0aW9uJ10gfCBudWxsIHtcbiAgc3dpdGNoIChzdG9yYWdlTG9jYXRpb24pIHtcbiAgICBjYXNlICdpbnNpZGVGb2xkZXInOiB7XG4gICAgICByZXR1cm4gRm9sZGVyTm90ZUxvY2F0aW9uLkluc2lkZUZvbGRlcjtcbiAgICB9XG4gICAgY2FzZSAncGFyZW50Rm9sZGVyJzoge1xuICAgICAgcmV0dXJuIEZvbGRlck5vdGVMb2NhdGlvbi5QYXJlbnRGb2xkZXI7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkEsc0JBQThCO0FBRTlCLGtCQUFxQjtBQUNyQixvQkFBMkI7QUFDM0IseUJBQXdDO0FBV2pDLElBQUsscUJBQUwsa0JBQUtBLHdCQUFMO0FBS0wsRUFBQUEsb0JBQUEsVUFBTztBQUtQLEVBQUFBLG9CQUFBLGtCQUFlO0FBTWYsRUFBQUEsb0JBQUEsVUFBTztBQUtQLEVBQUFBLG9CQUFBLGtCQUFlO0FBckJMLFNBQUFBO0FBQUEsR0FBQTtBQXNJTCxNQUFNLHlCQUF5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
@@ -0,0 +1,166 @@
1
+ /// <reference path="../library.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * The folder-note concept: which note, if any, is the one whose properties describe a FOLDER itself.
6
+ *
7
+ * Obsidian has no such concept — it is a convention the community settled on, and the plugin that owns it
8
+ * for most vaults is [`folder-notes`](https://github.com/LostPaul/obsidian-folder-notes). So the answer to
9
+ * "which note belongs to this folder" is that plugin's to give whenever it is installed, and this module
10
+ * asks it rather than inventing a second answer: {@link FolderNoteLocation.Auto} — the default — reads its
11
+ * live configuration at every use.
12
+ *
13
+ * Reading it live rather than copying its values into a consumer's own settings is deliberate: a copy goes
14
+ * stale the moment that plugin is reconfigured, and it would need a settings migration to seed. Everything
15
+ * else is the caller's explicit choice, and then the other plugin is not consulted at all.
16
+ *
17
+ * Nothing here ever CREATES a note. A folder with no folder note answers `null`, which is what lets a
18
+ * caller layer folder-note behavior onto a click without risking a file appearing on the user's disk.
19
+ */
20
+ import type { App, TFile, TFolder } from 'obsidian' with { 'resolution-mode': 'import' };
21
+ /**
22
+ * Where a folder's folder note lives.
23
+ *
24
+ * The three concrete members are the shapes the folder-note ecosystem actually uses:
25
+ * `charlie/charlie.md` and `charlie/index.md` are both {@link FolderNoteLocation.InsideFolder} (they
26
+ * differ only in the NAME, which is why naming is a callback and not a fourth member), while
27
+ * `charlie.md` beside the folder is {@link FolderNoteLocation.ParentFolder} — whose whole point is that
28
+ * `[[alpha/bravo/charlie]]` links to a folder with no special syntax.
29
+ */
30
+ export declare enum FolderNoteLocation {
31
+ /**
32
+ * Take the answer from the installed `folder-notes` plugin, falling back to a note named after its
33
+ * folder, inside it. The default, and resolved LIVE rather than copied.
34
+ */
35
+ Auto = "Auto",
36
+ /**
37
+ * `alpha/bravo/charlie/<name>.md`.
38
+ */
39
+ InsideFolder = "InsideFolder",
40
+ /**
41
+ * The vault has no folder notes at all, so every folder answers `null`. This is also how a caller opts
42
+ * out of folder-note behavior entirely.
43
+ */
44
+ None = "None",
45
+ /**
46
+ * `alpha/bravo/<name>.md`, beside the folder.
47
+ */
48
+ ParentFolder = "ParentFolder"
49
+ }
50
+ /**
51
+ * A folder-note setup with {@link FolderNoteLocation.Auto} already resolved to a concrete answer.
52
+ */
53
+ export interface FolderNoteConfig {
54
+ /**
55
+ * The extensions a folder note may carry, WITHOUT the leading dot, in resolution order — the first one
56
+ * that names an existing file wins.
57
+ */
58
+ readonly extensions: readonly string[];
59
+ /**
60
+ * Whether the folder note is hidden in the file explorer.
61
+ *
62
+ * Read rather than acted upon here: it changes nothing about WHICH file is the folder note, but a caller
63
+ * that reveals the note has to know there is nothing to reveal and fall back to revealing the folder.
64
+ */
65
+ readonly isHidden: boolean;
66
+ /**
67
+ * Where the note sits relative to its folder.
68
+ */
69
+ readonly location: FolderNoteLocation.InsideFolder | FolderNoteLocation.None | FolderNoteLocation.ParentFolder;
70
+ /**
71
+ * Names the folder note of a folder, WITHOUT its extension.
72
+ *
73
+ * @param folder - The folder whose note is being named.
74
+ * @returns The note's name; an empty (or blank) name means the folder has no folder note.
75
+ */
76
+ resolveName(this: void, folder: TFolder): string;
77
+ }
78
+ /**
79
+ * Parameters for {@link resolveFolderNoteConfig}.
80
+ */
81
+ export interface ResolveFolderNoteConfigParams {
82
+ /**
83
+ * The Obsidian app instance.
84
+ */
85
+ readonly app: App;
86
+ /**
87
+ * The extensions a folder note may carry, with or without the leading dot, in resolution order. Ignored
88
+ * under {@link FolderNoteLocation.Auto}, which takes the installed plugin's answer whole.
89
+ *
90
+ * @default `['md']`
91
+ */
92
+ readonly extensions?: readonly string[];
93
+ /**
94
+ * Whether the folder note is hidden in the file explorer. Ignored under {@link FolderNoteLocation.Auto}.
95
+ *
96
+ * @default `false`
97
+ */
98
+ readonly isHidden?: boolean;
99
+ /**
100
+ * Where the note sits relative to its folder.
101
+ *
102
+ * @default {@link FolderNoteLocation.Auto}
103
+ */
104
+ readonly location?: FolderNoteLocation;
105
+ /**
106
+ * Names the folder note of a folder, WITHOUT its extension. Ignored under
107
+ * {@link FolderNoteLocation.Auto}, which names the note the way the installed plugin does.
108
+ *
109
+ * A callback rather than a name template, because a template needs a token vocabulary and this library
110
+ * has none to impose — a caller that has one (`{{folderName}}`, `{{folderPath}}`, …) renders it here.
111
+ *
112
+ * @param folder - The folder whose note is being named.
113
+ * @returns The note's name.
114
+ * @default `(folder) => folder.name`
115
+ */
116
+ resolveName?(this: void, folder: TFolder): string;
117
+ }
118
+ /**
119
+ * Parameters for {@link resolveFolderNote}.
120
+ */
121
+ export interface ResolveFolderNoteParams {
122
+ /**
123
+ * The Obsidian app instance.
124
+ */
125
+ readonly app: App;
126
+ /**
127
+ * The already-resolved setup to use.
128
+ *
129
+ * Omitted means {@link FolderNoteLocation.Auto} — the setup is resolved on the spot, which is what makes
130
+ * `resolveFolderNote({ app, folder })` the one-liner every caller wants. Pass one when the same setup is
131
+ * used more than once, or when its {@link FolderNoteConfig.isHidden} is needed alongside the note.
132
+ *
133
+ * @default `resolveFolderNoteConfig({ app })`
134
+ */
135
+ readonly config?: FolderNoteConfig;
136
+ /**
137
+ * The folder whose folder note is wanted. Read AFTER any rename: the note is named from the folder's
138
+ * CURRENT name, and a `folder-notes` install with `syncFolderName` on will have renamed it already.
139
+ */
140
+ readonly folder: TFolder;
141
+ }
142
+ /**
143
+ * The `folder-notes` plugin's id, as its manifest declares it.
144
+ */
145
+ export declare const FOLDER_NOTES_PLUGIN_ID = "folder-notes";
146
+ /**
147
+ * Finds a folder's folder note — the one note whose properties describe the folder itself.
148
+ *
149
+ * **Never creates.** A folder that has no folder note answers `null`, and so does the vault root under
150
+ * {@link FolderNoteLocation.ParentFolder} (nothing can sit beside it).
151
+ *
152
+ * @param params - The folder, and optionally the setup to resolve it with.
153
+ * @returns The folder note, or `null` when there is none.
154
+ */
155
+ export declare function resolveFolderNote(params: ResolveFolderNoteParams): null | TFile;
156
+ /**
157
+ * Resolves {@link FolderNoteLocation.Auto} into a concrete folder-note setup.
158
+ *
159
+ * `folder-notes`' `vaultFolder` storage (every folder note pooled in one central folder) has no
160
+ * counterpart here and falls back rather than guessing: with the notes pooled, the note belonging to a
161
+ * folder is no longer derivable from that folder's path alone.
162
+ *
163
+ * @param params - The setup, and the app to read the installed plugin from.
164
+ * @returns The resolved setup.
165
+ */
166
+ export declare function resolveFolderNoteConfig(params: ResolveFolderNoteConfigParams): FolderNoteConfig;
@@ -163,6 +163,7 @@ __export(obsidian_exports, {
163
163
  "file-change": () => file_change,
164
164
  "file-manager": () => file_manager,
165
165
  "file-system": () => file_system,
166
+ "folder-note": () => folder_note,
166
167
  frontmatter: () => frontmatter,
167
168
  "frontmatter-link-cache-with-offsets": () => frontmatter_link_cache_with_offsets,
168
169
  "hover-link-source-registrar": () => hover_link_source_registrar,
@@ -240,6 +241,7 @@ var extensions_registrar = __toESM(__extractDefault(require('./extensions-regist
240
241
  var file_change = __toESM(__extractDefault(require('./file-change.cjs')), 1);
241
242
  var file_manager = __toESM(__extractDefault(require('./file-manager.cjs')), 1);
242
243
  var file_system = __toESM(__extractDefault(require('./file-system.cjs')), 1);
244
+ var folder_note = __toESM(__extractDefault(require('./folder-note.cjs')), 1);
243
245
  var frontmatter_link_cache_with_offsets = __toESM(__extractDefault(require('./frontmatter-link-cache-with-offsets.cjs')), 1);
244
246
  var frontmatter = __toESM(__extractDefault(require('./frontmatter.cjs')), 1);
245
247
  var hover_link_source_registrar = __toESM(__extractDefault(require('./hover-link-source-registrar.cjs')), 1);
@@ -317,6 +319,7 @@ var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
317
319
  "file-change": null,
318
320
  "file-manager": null,
319
321
  "file-system": null,
322
+ "folder-note": null,
320
323
  frontmatter,
321
324
  "frontmatter-link-cache-with-offsets": null,
322
325
  "hover-link-source-registrar": null,
@@ -361,4 +364,4 @@ var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
361
364
  "view-registrar": null,
362
365
  workspace
363
366
  });
364
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1oYW5kbGVycycgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLXJlZ2lzdHJhcicgZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnY29tbXVuaXR5LXBsdWdpbnMnIGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbXBvbmVudHMnIGZyb20gJy4vY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29uc3RydWN0b3JzJyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGF0YS1oYW5kbGVyJyBmcm9tICcuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MnIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3InIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzICdldmVudHMnIGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzICdleHRlbnNpb25zLXJlZ2lzdHJhcicgZnJvbSAnLi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1jaGFuZ2UnIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtbWFuYWdlcicgZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtc3lzdGVtJyBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cycgZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXInIGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstdXBkYXRlLXByb2dyZXNzJyBmcm9tICcuL2xpbmstdXBkYXRlLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rJyBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2xvZ2dlcicgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2xvb3AnIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3InIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXZpZXcnIGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24nIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyJyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtZXRhZGF0YS1jYWNoZScgZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWxzJyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZWJvb2stbmF2aWdhdG9yJyBmcm9tICcuL25vdGVib29rLW5hdmlnYXRvci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXNldHRpbmdzJyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwYXJzZS1saW5rJyBmcm9tICcuL3BhcnNlLWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ3BhdGgtc2V0dGluZ3MnIGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGRmJyBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luJyBmcm9tICcuL3BsdWdpbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdwb3BvdmVycycgZnJvbSAnLi9wb3BvdmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncXVldWUnIGZyb20gJy4vcXVldWUudHMnO1xuZXhwb3J0ICogYXMgJ3JlYWN0JyBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdyZWZlcmVuY2UnIGZyb20gJy4vcmVmZXJlbmNlLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS1sb2NrJyBmcm9tICcuL3Jlc291cmNlLWxvY2sudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLXVybCcgZnJvbSAnLi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0ICogYXMgJ3JpYmJvbi1pY29uLXJlZ2lzdHJhcicgZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctY29tcG9uZW50cycgZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZXgnIGZyb20gJy4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1ncm91cC1leCcgZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyJyBmcm9tICcuL3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRpb24nIGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtZGVsZXRlJyBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtdHJhbnNhY3Rpb24nIGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0JyBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzICd2aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi92aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnd29ya3NwYWNlJyBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxnQ0FBQUE7QUFBQSxFQUFBO0FBQUEsNkJBQUFDO0FBQUEsRUFBQSx5QkFBQUM7QUFBQSxFQUFBO0FBQUEsZ0NBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUEsdUNBQUFDO0FBQUEsRUFBQSx5Q0FBQUM7QUFBQSxFQUFBLDRCQUFBQztBQUFBLEVBQUEsMEJBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBLHFCQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQTtBQUFBLHlCQUFBQztBQUFBLEVBQUEsMkJBQUFDO0FBQUEsRUFBQSxvQ0FBQUM7QUFBQSxFQUFBLG1DQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQTtBQUFBLHNDQUFBQztBQUFBLEVBQUEsa0NBQUFDO0FBQUEsRUFBQTtBQUFBLGdDQUFBQztBQUFBLEVBQUEscUJBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBLHFCQUFBQztBQUFBLEVBQUE7QUFBQSwrQ0FBQUM7QUFBQSxFQUFBLHFDQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQTtBQUFBLDBCQUFBQztBQUFBLEVBQUE7QUFBQSxnQ0FBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBLHlDQUFBQztBQUFBLEVBQUEsaURBQUFDO0FBQUEsRUFBQSwyQ0FBQUM7QUFBQSxFQUFBLHVCQUFBQztBQUFBLEVBQUEsOEJBQUFDO0FBQUEsRUFBQSx3QkFBQUM7QUFBQSxFQUFBO0FBQUEsOEJBQUFDO0FBQUEsRUFBQSw2Q0FBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQSx1QkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQSx3Q0FBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUEsNEJBQUFDO0FBQUEsRUFBQSxvQkFBQUM7QUFBQSxFQUFBLDBCQUFBQztBQUFBLEVBQUEsbUNBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUEsd0JBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBLHdCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBRUEsSUFBQWpELHVCQUF3QztBQUN4QyxVQUF1QjtBQUN2QixJQUFBQyxvQkFBcUM7QUFDckMsSUFBQUMsa0JBQW1DO0FBQ25DLGVBQTRCO0FBQzVCLElBQUFDLHVCQUF3QztBQUN4QyxjQUEyQjtBQUMzQixhQUEwQjtBQUMxQixJQUFBQyw4QkFBK0M7QUFDL0MsSUFBQUMsa0NBQW1EO0FBQ25ELElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQyxtQkFBb0M7QUFDcEMsSUFBQUMsb0JBQXFDO0FBQ3JDLElBQUFDLG9CQUFxQztBQUNyQyxpQkFBOEI7QUFDOUIsbUJBQWdDO0FBQ2hDLElBQUFDLFlBQTZCO0FBQzdCLElBQUFDLGVBQWdDO0FBQ2hDLElBQUFDLGdCQUFpQztBQUNqQyxlQUE0QjtBQUM1QixJQUFBRSw2QkFBOEM7QUFDOUMsSUFBQUQsb0JBQXFDO0FBQ3JDLElBQUFFLDRCQUE2QztBQUM3QyxJQUFBQyx3QkFBeUM7QUFDekMsSUFBQUMsNkJBQThDO0FBQzlDLElBQUFDLDJCQUE0QztBQUM1QyxhQUEwQjtBQUMxQixhQUEwQjtBQUMxQixJQUFBQyx1QkFBd0M7QUFDeEMsSUFBQUMsY0FBK0I7QUFDL0IsSUFBQUMsZUFBZ0M7QUFDaEMsSUFBQUMsY0FBK0I7QUFDL0IsSUFBQUMsc0NBQXVEO0FBQ3ZELGtCQUErQjtBQUMvQixJQUFBQyw4QkFBK0M7QUFDL0MsSUFBQUMsZUFBZ0M7QUFDaEMsV0FBd0I7QUFDeEIsSUFBQUMsaUJBQWtDO0FBQ2xDLElBQUFDLHVCQUF3QztBQUN4QyxXQUF3QjtBQUN4QixhQUEwQjtBQUMxQixXQUF3QjtBQUN4QixJQUFBRSwwQ0FBMkQ7QUFDM0QsSUFBQUQsZ0NBQWlEO0FBQ2pELElBQUFFLG9DQUFxRDtBQUNyRCxJQUFBQyxnQkFBaUM7QUFDakMsZUFBNEI7QUFDNUIsSUFBQUMsdUJBQXdDO0FBQ3hDLElBQUFDLGlCQUFrQztBQUNsQyxhQUEwQjtBQUMxQixJQUFBQyxxQkFBc0M7QUFDdEMsSUFBQUMsc0NBQXVEO0FBQ3ZELElBQUFDLG9CQUFxQztBQUNyQyxJQUFBQyxhQUE4QjtBQUM5QixJQUFBQyxnQkFBaUM7QUFDakMsVUFBdUI7QUFDdkIsYUFBMEI7QUFDMUIsSUFBQUMsK0JBQWdEO0FBQ2hELGVBQTRCO0FBQzVCLFlBQXlCO0FBQ3pCLFlBQXlCO0FBQ3pCLGdCQUE2QjtBQUM3QixJQUFBQyxnQkFBaUM7QUFDakMsSUFBQUMsZUFBZ0M7QUFDaEMsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQyxhQUE4QjtBQUM5QixJQUFBQyxtQkFBb0M7QUFDcEMsSUFBQUMsNEJBQTZDO0FBQzdDLGlCQUE4QjtBQUM5QixJQUFBQyxlQUFnQztBQUNoQyxJQUFBQyxvQkFBcUM7QUFDckMsWUFBeUI7QUFDekIsSUFBQUMsaUJBQWtDO0FBQ2xDLGdCQUE2QjsiLAogICJuYW1lcyI6IFsiYWN0aXZlLWZpbGUtcHJvdmlkZXIiLCAiYXN5bmMtd2l0aC1ub3RpY2UiLCAiYXR0YWNobWVudC1wYXRoIiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3AtdHJ1c3RlZC1pbnB1dCIsICJlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIiLCAiZXh0ZW5zaW9ucy1yZWdpc3RyYXIiLCAiZmlsZS1jaGFuZ2UiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzIiwgImhvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhciIsICJodG1sLWVsZW1lbnQiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGluay11cGRhdGUtcHJvZ3Jlc3MiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi12aWV3IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyIiwgIm1ldGFkYXRhLWNhY2hlIiwgIm5vdGVib29rLW5hdmlnYXRvciIsICJvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhciIsICJvYnNpZGlhbi1zZXR0aW5ncyIsICJwYXJzZS1saW5rIiwgInBhdGgtc2V0dGluZ3MiLCAicGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhciIsICJyZXNvdXJjZS1sb2NrIiwgInJlc291cmNlLXVybCIsICJyaWJib24taWNvbi1yZWdpc3RyYXIiLCAic2V0dGluZy1jb21wb25lbnRzIiwgInNldHRpbmctZXgiLCAic2V0dGluZy1ncm91cC1leCIsICJzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyIiwgInZhdWx0LWRlbGV0ZSIsICJ2YXVsdC10cmFuc2FjdGlvbiIsICJ2aWV3LXJlZ2lzdHJhciJdCn0K
367
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1oYW5kbGVycycgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLXJlZ2lzdHJhcicgZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnY29tbXVuaXR5LXBsdWdpbnMnIGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbXBvbmVudHMnIGZyb20gJy4vY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29uc3RydWN0b3JzJyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGF0YS1oYW5kbGVyJyBmcm9tICcuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MnIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3InIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzICdldmVudHMnIGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzICdleHRlbnNpb25zLXJlZ2lzdHJhcicgZnJvbSAnLi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1jaGFuZ2UnIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtbWFuYWdlcicgZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtc3lzdGVtJyBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzICdmb2xkZXItbm90ZScgZnJvbSAnLi9mb2xkZXItbm90ZS50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMnIGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyJyBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzICdob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXInIGZyb20gJy4vaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdodG1sLWVsZW1lbnQnIGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCAqIGFzICdpMThuJyBmcm9tICcuL2kxOG4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2lzLWluLW9ic2lkaWFuJyBmcm9tICcuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rLXVwZGF0ZS1wcm9ncmVzcycgZnJvbSAnLi9saW5rLXVwZGF0ZS1wcm9ncmVzcy50cyc7XG5leHBvcnQgKiBhcyAnbGluaycgZnJvbSAnLi9saW5rLnRzJztcbmV4cG9ydCAqIGFzICdsb2dnZXInIGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdsb29wJyBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXInIGZyb20gJy4vbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi12aWV3JyBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duJyBmcm9tICcuL21hcmtkb3duLnRzJztcbmV4cG9ydCAqIGFzICdtZW51LWV2ZW50LXJlZ2lzdHJhcicgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWV0YWRhdGEtY2FjaGUnIGZyb20gJy4vbWV0YWRhdGEtY2FjaGUudHMnO1xuZXhwb3J0ICogYXMgJ21vZGFscycgZnJvbSAnLi9tb2RhbHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvcicgZnJvbSAnLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1zZXR0aW5ncycgZnJvbSAnLi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGFyc2UtbGluaycgZnJvbSAnLi9wYXJzZS1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdwYXRoLXNldHRpbmdzJyBmcm9tICcuL3BhdGgtc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ3BkZicgZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbicgZnJvbSAnLi9wbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAncG9wb3ZlcnMnIGZyb20gJy4vcG9wb3ZlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3F1ZXVlJyBmcm9tICcuL3F1ZXVlLnRzJztcbmV4cG9ydCAqIGFzICdyZWFjdCcgZnJvbSAnLi9yZWFjdC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncmVmZXJlbmNlJyBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtbG9jaycgZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS11cmwnIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzICdyaWJib24taWNvbi1yZWdpc3RyYXInIGZyb20gJy4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWNvbXBvbmVudHMnIGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWV4JyBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZ3JvdXAtZXgnIGZyb20gJy4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgKiBhcyAnc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhcicgZnJvbSAnLi9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0aW9uJyBmcm9tICcuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LWRlbGV0ZScgZnJvbSAnLi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LXRyYW5zYWN0aW9uJyBmcm9tICcuL3ZhdWx0LXRyYW5zYWN0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdCcgZnJvbSAnLi92YXVsdC50cyc7XG5leHBvcnQgKiBhcyAndmlldy1yZWdpc3RyYXInIGZyb20gJy4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3dvcmtzcGFjZScgZnJvbSAnLi93b3Jrc3BhY2UudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUEsZ0NBQUFBO0FBQUEsRUFBQTtBQUFBLDZCQUFBQztBQUFBLEVBQUEseUJBQUFDO0FBQUEsRUFBQTtBQUFBLGdDQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBLHVDQUFBQztBQUFBLEVBQUEseUNBQUFDO0FBQUEsRUFBQSw0QkFBQUM7QUFBQSxFQUFBLDBCQUFBQztBQUFBLEVBQUEsMkJBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQSxxQkFBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBLEVBQUE7QUFBQSx5QkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsb0NBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUE7QUFBQSxzQ0FBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUE7QUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHFCQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQSxxQkFBQUM7QUFBQSxFQUFBLHFCQUFBQztBQUFBLEVBQUE7QUFBQSwrQ0FBQUM7QUFBQSxF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cyI6IFsiYWN0aXZlLWZpbGUtcHJvdmlkZXIiLCAiYXN5bmMtd2l0aC1ub3RpY2UiLCAiYXR0YWNobWVudC1wYXRoIiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3AtdHJ1c3RlZC1pbnB1dCIsICJlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIiLCAiZXh0ZW5zaW9ucy1yZWdpc3RyYXIiLCAiZmlsZS1jaGFuZ2UiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZvbGRlci1ub3RlIiwgImZyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzIiwgImhvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhciIsICJodG1sLWVsZW1lbnQiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGluay11cGRhdGUtcHJvZ3Jlc3MiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi12aWV3IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyIiwgIm1ldGFkYXRhLWNhY2hlIiwgIm5vdGVib29rLW5hdmlnYXRvciIsICJvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhciIsICJvYnNpZGlhbi1zZXR0aW5ncyIsICJwYXJzZS1saW5rIiwgInBhdGgtc2V0dGluZ3MiLCAicGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhciIsICJyZXNvdXJjZS1sb2NrIiwgInJlc291cmNlLXVybCIsICJyaWJib24taWNvbi1yZWdpc3RyYXIiLCAic2V0dGluZy1jb21wb25lbnRzIiwgInNldHRpbmctZXgiLCAic2V0dGluZy1ncm91cC1leCIsICJzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyIiwgInZhdWx0LWRlbGV0ZSIsICJ2YXVsdC10cmFuc2FjdGlvbiIsICJ2aWV3LXJlZ2lzdHJhciJdCn0K
@@ -31,6 +31,7 @@ export * as 'extensions-registrar' from './extensions-registrar.cjs';
31
31
  export * as 'file-change' from './file-change.cjs';
32
32
  export * as 'file-manager' from './file-manager.cjs';
33
33
  export * as 'file-system' from './file-system.cjs';
34
+ export * as 'folder-note' from './folder-note.cjs';
34
35
  export * as 'frontmatter-link-cache-with-offsets' from './frontmatter-link-cache-with-offsets.cjs';
35
36
  export * as 'frontmatter' from './frontmatter.cjs';
36
37
  export * as 'hover-link-source-registrar' from './hover-link-source-registrar.cjs';