1 line
344 KiB
XML
1 line
344 KiB
XML
{"version":3,"file":"index-iLwAC0ok.chunk.mjs","sources":["../node_modules/@nextcloud/files/node_modules/@nextcloud/initial-state/dist/index.mjs","../node_modules/@nextcloud/files/node_modules/@nextcloud/sharing/dist/public.mjs","../node_modules/cancelable-promise/esm/CancelablePromise.mjs","../node_modules/path-browserify/index.js","../node_modules/@nextcloud/paths/dist/index.mjs","../node_modules/@nextcloud/files/dist/chunks/dav-CQDyL7M_.mjs","../node_modules/typescript-event-target/dist/index.mjs","../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.cjs","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/@nextcloud/files/dist/index.mjs"],"sourcesContent":["function loadState(app, key, fallback) {\n const elem = document.querySelector(`#initial-state-${app}-${key}`);\n if (elem === null) {\n if (fallback !== void 0) {\n return fallback;\n }\n throw new Error(`Could not find initial state ${key} of ${app}`);\n }\n try {\n return JSON.parse(atob(elem.value));\n } catch (e) {\n throw new Error(`Could not parse initial state ${key} of ${app}`);\n }\n}\nexport {\n loadState\n};\n","import { loadState } from \"@nextcloud/initial-state\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction isPublicShare() {\n return loadState(\"files_sharing\", \"isPublic\", null) ?? document.querySelector('input#isPublic[type=\"hidden\"][name=\"isPublic\"][value=\"1\"]') !== null;\n}\nfunction getSharingToken() {\n return loadState(\"files_sharing\", \"sharingToken\", null) ?? document.querySelector('input#sharingToken[type=\"hidden\"]')?.value ?? null;\n}\nexport {\n getSharingToken,\n isPublicShare\n};\n//# sourceMappingURL=public.mjs.map\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nvar toStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : '@@toStringTag';\n\nvar _internals = /*#__PURE__*/new WeakMap();\n\nvar _promise = /*#__PURE__*/new WeakMap();\n\nclass CancelablePromiseInternal {\n constructor(_ref) {\n var {\n executor = () => {},\n internals = defaultInternals(),\n promise = new Promise((resolve, reject) => executor(resolve, reject, onCancel => {\n internals.onCancelList.push(onCancel);\n }))\n } = _ref;\n\n _classPrivateFieldInitSpec(this, _internals, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _promise, {\n writable: true,\n value: void 0\n });\n\n _defineProperty(this, toStringTag, 'CancelablePromise');\n\n this.cancel = this.cancel.bind(this);\n\n _classPrivateFieldSet(this, _internals, internals);\n\n _classPrivateFieldSet(this, _promise, promise || new Promise((resolve, reject) => executor(resolve, reject, onCancel => {\n internals.onCancelList.push(onCancel);\n })));\n }\n\n then(onfulfilled, onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).then(createCallback(onfulfilled, _classPrivateFieldGet(this, _internals)), createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n catch(onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).catch(createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n finally(onfinally, runWhenCanceled) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList.push(onfinally);\n }\n\n return makeCancelable(_classPrivateFieldGet(this, _promise).finally(createCallback(() => {\n if (onfinally) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList = _classPrivateFieldGet(this, _internals).onCancelList.filter(callback => callback !== onfinally);\n }\n\n return onfinally();\n }\n }, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n cancel() {\n _classPrivateFieldGet(this, _internals).isCanceled = true;\n\n var callbacks = _classPrivateFieldGet(this, _internals).onCancelList;\n\n _classPrivateFieldGet(this, _internals).onCancelList = [];\n\n for (var callback of callbacks) {\n if (typeof callback === 'function') {\n try {\n callback();\n } catch (err) {\n console.error(err);\n }\n }\n }\n }\n\n isCanceled() {\n return _classPrivateFieldGet(this, _internals).isCanceled === true;\n }\n\n}\n\nexport class CancelablePromise extends CancelablePromiseInternal {\n constructor(executor) {\n super({\n executor\n });\n }\n\n}\n\n_defineProperty(CancelablePromise, \"all\", function all(iterable) {\n return makeAllCancelable(iterable, Promise.all(iterable));\n});\n\n_defineProperty(CancelablePromise, \"allSettled\", function allSettled(iterable) {\n return makeAllCancelable(iterable, Promise.allSettled(iterable));\n});\n\n_defineProperty(CancelablePromise, \"any\", function any(iterable) {\n return makeAllCancelable(iterable, Promise.any(iterable));\n});\n\n_defineProperty(CancelablePromise, \"race\", function race(iterable) {\n return makeAllCancelable(iterable, Promise.race(iterable));\n});\n\n_defineProperty(CancelablePromise, \"resolve\", function resolve(value) {\n return cancelable(Promise.resolve(value));\n});\n\n_defineProperty(CancelablePromise, \"reject\", function reject(reason) {\n return cancelable(Promise.reject(reason));\n});\n\n_defineProperty(CancelablePromise, \"isCancelable\", isCancelablePromise);\n\nexport default CancelablePromise;\nexport function cancelable(promise) {\n return makeCancelable(promise, defaultInternals());\n}\nexport function isCancelablePromise(promise) {\n return promise instanceof CancelablePromise || promise instanceof CancelablePromiseInternal;\n}\n\nfunction createCallback(onResult, internals) {\n if (onResult) {\n return arg => {\n if (!internals.isCanceled) {\n var result = onResult(arg);\n\n if (isCancelablePromise(result)) {\n internals.onCancelList.push(result.cancel);\n }\n\n return result;\n }\n\n return arg;\n };\n }\n}\n\nfunction makeCancelable(promise, internals) {\n return new CancelablePromiseInternal({\n internals,\n promise\n });\n}\n\nfunction makeAllCancelable(iterable, promise) {\n var internals = defaultInternals();\n internals.onCancelList.push(() => {\n for (var resolvable of iterable) {\n if (isCancelablePromise(resolvable)) {\n resolvable.cancel();\n }\n }\n });\n return new CancelablePromiseInternal({\n internals,\n promise\n });\n}\n\nfunction defaultInternals() {\n return {\n isCanceled: false,\n onCancelList: []\n };\n}\n//# sourceMappingURL=CancelablePromise.mjs.map","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","function encodePath(path) {\n if (!path) {\n return path;\n }\n return path.split(\"/\").map(encodeURIComponent).join(\"/\");\n}\nfunction basename(path) {\n return path.replace(/\\\\/g, \"/\").replace(/.*\\//, \"\");\n}\nfunction dirname(path) {\n return path.replace(/\\\\/g, \"/\").replace(/\\/[^\\/]*$/, \"\");\n}\nfunction joinPaths(...args) {\n if (arguments.length < 1) {\n return \"\";\n }\n const nonEmptyArgs = args.filter((arg) => arg.length > 0);\n if (nonEmptyArgs.length < 1) {\n return \"\";\n }\n const lastArg = nonEmptyArgs[nonEmptyArgs.length - 1];\n const leadingSlash = nonEmptyArgs[0].charAt(0) === \"/\";\n const trailingSlash = lastArg.charAt(lastArg.length - 1) === \"/\";\n const sections = nonEmptyArgs.reduce((acc, section) => acc.concat(section.split(\"/\")), []);\n let first = !leadingSlash;\n const path = sections.reduce((acc, section) => {\n if (section === \"\") {\n return acc;\n }\n if (first) {\n first = false;\n return acc + section;\n }\n return acc + \"/\" + section;\n }, \"\");\n if (trailingSlash) {\n return path + \"/\";\n }\n return path;\n}\nfunction isSamePath(path1, path2) {\n const pathSections1 = (path1 || \"\").split(\"/\").filter((p) => p !== \".\");\n const pathSections2 = (path2 || \"\").split(\"/\").filter((p) => p !== \".\");\n path1 = joinPaths.apply(void 0, pathSections1);\n path2 = joinPaths.apply(void 0, pathSections2);\n return path1 === path2;\n}\nexport {\n basename,\n dirname,\n encodePath,\n isSamePath,\n joinPaths\n};\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { join, basename, extname, dirname } from \"path\";\nimport { encodePath } from \"@nextcloud/paths\";\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/files\").detectUser().build();\nvar FileType = /* @__PURE__ */ ((FileType2) => {\n FileType2[\"Folder\"] = \"folder\";\n FileType2[\"File\"] = \"file\";\n return FileType2;\n})(FileType || {});\nvar Permission = /* @__PURE__ */ ((Permission2) => {\n Permission2[Permission2[\"NONE\"] = 0] = \"NONE\";\n Permission2[Permission2[\"CREATE\"] = 4] = \"CREATE\";\n Permission2[Permission2[\"READ\"] = 1] = \"READ\";\n Permission2[Permission2[\"UPDATE\"] = 2] = \"UPDATE\";\n Permission2[Permission2[\"DELETE\"] = 8] = \"DELETE\";\n Permission2[Permission2[\"SHARE\"] = 16] = \"SHARE\";\n Permission2[Permission2[\"ALL\"] = 31] = \"ALL\";\n return Permission2;\n})(Permission || {});\nconst isDavResource = function(source, davService) {\n return source.match(davService) !== null;\n};\nconst validateData = (data, davService) => {\n if (data.id && typeof data.id !== \"number\") {\n throw new Error(\"Invalid id type of value\");\n }\n if (!data.source) {\n throw new Error(\"Missing mandatory source\");\n }\n try {\n new URL(data.source);\n } catch (e) {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!data.source.startsWith(\"http\")) {\n throw new Error(\"Invalid source format, only http(s) is supported\");\n }\n if (data.displayname && typeof data.displayname !== \"string\") {\n throw new Error(\"Invalid displayname type\");\n }\n if (data.mtime && !(data.mtime instanceof Date)) {\n throw new Error(\"Invalid mtime type\");\n }\n if (data.crtime && !(data.crtime instanceof Date)) {\n throw new Error(\"Invalid crtime type\");\n }\n if (!data.mime || typeof data.mime !== \"string\" || !data.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi)) {\n throw new Error(\"Missing or invalid mandatory mime\");\n }\n if (\"size\" in data && typeof data.size !== \"number\" && data.size !== void 0) {\n throw new Error(\"Invalid size type\");\n }\n if (\"permissions\" in data && data.permissions !== void 0 && !(typeof data.permissions === \"number\" && data.permissions >= Permission.NONE && data.permissions <= Permission.ALL)) {\n throw new Error(\"Invalid permissions\");\n }\n if (data.owner && data.owner !== null && typeof data.owner !== \"string\") {\n throw new Error(\"Invalid owner type\");\n }\n if (data.attributes && typeof data.attributes !== \"object\") {\n throw new Error(\"Invalid attributes type\");\n }\n if (data.root && typeof data.root !== \"string\") {\n throw new Error(\"Invalid root type\");\n }\n if (data.root && !data.root.startsWith(\"/\")) {\n throw new Error(\"Root must start with a leading slash\");\n }\n if (data.root && !data.source.includes(data.root)) {\n throw new Error(\"Root must be part of the source\");\n }\n if (data.root && isDavResource(data.source, davService)) {\n const service = data.source.match(davService)[0];\n if (!data.source.includes(join(service, data.root))) {\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n }\n if (data.status && !Object.values(NodeStatus).includes(data.status)) {\n throw new Error(\"Status must be a valid NodeStatus\");\n }\n};\nvar NodeStatus = /* @__PURE__ */ ((NodeStatus2) => {\n NodeStatus2[\"NEW\"] = \"new\";\n NodeStatus2[\"FAILED\"] = \"failed\";\n NodeStatus2[\"LOADING\"] = \"loading\";\n NodeStatus2[\"LOCKED\"] = \"locked\";\n return NodeStatus2;\n})(NodeStatus || {});\nclass Node {\n _data;\n _attributes;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n readonlyAttributes = Object.entries(Object.getOwnPropertyDescriptors(Node.prototype)).filter((e) => typeof e[1].get === \"function\" && e[0] !== \"__proto__\").map((e) => e[0]);\n handler = {\n set: (target, prop, value) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.set(target, prop, value);\n },\n deleteProperty: (target, prop) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.deleteProperty(target, prop);\n },\n // TODO: This is deprecated and only needed for files v3\n get: (target, prop, receiver) => {\n if (this.readonlyAttributes.includes(prop)) {\n logger.warn(`Accessing \"Node.attributes.${prop}\" is deprecated, access it directly on the Node instance.`);\n return Reflect.get(this, prop);\n }\n return Reflect.get(target, prop, receiver);\n }\n };\n constructor(data, davService) {\n if (!data.mime) {\n data.mime = \"application/octet-stream\";\n }\n validateData(data, davService || this._knownDavService);\n this._data = {\n // TODO: Remove with next major release, this is just for compatibility\n displayname: data.attributes?.displayname,\n ...data,\n attributes: {}\n };\n this._attributes = new Proxy(this._data.attributes, this.handler);\n this.update(data.attributes ?? {});\n if (davService) {\n this._knownDavService = davService;\n }\n }\n /**\n * Get the source url to this object\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin } = new URL(this.source);\n return origin + encodePath(this.source.slice(origin.length));\n }\n /**\n * Get this object name\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get basename() {\n return basename(this.source);\n }\n /**\n * The nodes displayname\n * By default the display name and the `basename` are identical,\n * but it is possible to have a different name. This happens\n * on the files app for example for shared folders.\n */\n get displayname() {\n return this._data.displayname || this.basename;\n }\n /**\n * Set the displayname\n */\n set displayname(displayname) {\n validateData({ ...this._data, displayname }, this._knownDavService);\n this._data.displayname = displayname;\n }\n /**\n * Get this object's extension\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get extension() {\n return extname(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n *\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get dirname() {\n if (this.root) {\n let source = this.source;\n if (this.isDavResource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return dirname(source.slice(firstMatch + root.length) || \"/\");\n }\n const url = new URL(this.source);\n return dirname(url.pathname);\n }\n /**\n * Get the file mime\n */\n get mime() {\n return this._data.mime || \"application/octet-stream\";\n }\n /**\n * Set the file mime\n * Removing the mime type will set it to `application/octet-stream`\n */\n set mime(mime) {\n mime ??= \"application/octet-stream\";\n validateData({ ...this._data, mime }, this._knownDavService);\n this._data.mime = mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Set the file modification time\n */\n set mtime(mtime) {\n validateData({ ...this._data, mtime }, this._knownDavService);\n this._data.mtime = mtime;\n }\n /**\n * Get the file creation time\n * There is no setter as the creation time is not meant to be changed\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Set the file size\n */\n set size(size) {\n validateData({ ...this._data, size }, this._knownDavService);\n this.updateMtime();\n this._data.size = size;\n }\n /**\n * Get the file attribute\n * This contains all additional attributes not provided by the Node class\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n if (this.owner === null && !this.isDavResource) {\n return Permission.READ;\n }\n return this._data.permissions !== void 0 ? this._data.permissions : Permission.NONE;\n }\n /**\n * Set the file permissions\n */\n set permissions(permissions) {\n validateData({ ...this._data, permissions }, this._knownDavService);\n this.updateMtime();\n this._data.permissions = permissions;\n }\n /**\n * Get the file owner\n * There is no setter as the owner is not meant to be changed\n */\n get owner() {\n if (!this.isDavResource) {\n return null;\n }\n return this._data.owner;\n }\n /**\n * Is this a dav-related resource ?\n */\n get isDavResource() {\n return isDavResource(this.source, this._knownDavService);\n }\n /**\n * @deprecated use `isDavResource` instead - will be removed in next major version.\n */\n get isDavRessource() {\n return this.isDavResource;\n }\n /**\n * Get the dav root of this object\n * There is no setter as the root is not meant to be changed\n */\n get root() {\n if (this._data.root) {\n return this._data.root.replace(/^(.+)\\/$/, \"$1\");\n }\n if (this.isDavResource) {\n const root = dirname(this.source);\n return root.split(this._knownDavService).pop() || null;\n }\n return null;\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n if (this.root) {\n let source = this.source;\n if (this.isDavResource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return source.slice(firstMatch + root.length) || \"/\";\n }\n return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n }\n /**\n * Get the node id if defined.\n * There is no setter as the fileid is not meant to be changed\n */\n get fileid() {\n return this._data?.id;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(status) {\n validateData({ ...this._data, status }, this._knownDavService);\n this._data.status = status;\n }\n /**\n * Get the node data\n */\n get data() {\n return structuredClone(this._data);\n }\n /**\n * Move the node to a new destination\n *\n * @param {string} destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(destination) {\n validateData({ ...this._data, source: destination }, this._knownDavService);\n const oldBasename = this.basename;\n this._data.source = destination;\n if (this.displayname === oldBasename && this.basename !== oldBasename) {\n this.displayname = this.basename;\n }\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(basename2) {\n if (basename2.includes(\"/\")) {\n throw new Error(\"Invalid basename\");\n }\n this.move(dirname(this.source) + \"/\" + basename2);\n }\n /**\n * Update the mtime if exists\n */\n updateMtime() {\n if (this._data.mtime) {\n this._data.mtime = /* @__PURE__ */ new Date();\n }\n }\n /**\n * Update the attributes of the node\n * Warning, updating attributes will NOT automatically update the mtime.\n *\n * @param attributes The new attributes to update on the Node attributes\n */\n update(attributes) {\n for (const [name, value] of Object.entries(attributes)) {\n try {\n if (value === void 0) {\n delete this.attributes[name];\n } else {\n this.attributes[name] = value;\n }\n } catch (e) {\n if (e instanceof TypeError) {\n continue;\n }\n throw e;\n }\n }\n }\n}\nclass File extends Node {\n get type() {\n return FileType.File;\n }\n /**\n * Returns a clone of the file\n */\n clone() {\n return new File(this.data);\n }\n}\nclass Folder extends Node {\n constructor(data) {\n super({\n ...data,\n mime: \"httpd/unix-directory\"\n });\n }\n get type() {\n return FileType.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n /**\n * Returns a clone of the folder\n */\n clone() {\n return new Folder(this.data);\n }\n}\nconst parsePermissions = function(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"C\") || permString.includes(\"K\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\") || permString.includes(\"N\") || permString.includes(\"V\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n};\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nconst registerDavProperty = function(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n};\nconst getDavProperties = function() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n};\nconst getDavNameSpaces = function() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n};\nconst getDefaultPropfind = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n};\nconst getFavoritesReport = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n};\nconst getRecentSearch = function(lastModified) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${getDavNameSpaces()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${getCurrentUser()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${lastModified}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nconst getClient = function(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n};\nconst getFavoriteNodes = (davClient, path = \"/\", davRoot = defaultRootPath) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await davClient.getDirectoryContents(`${davRoot}${path}`, {\n signal: controller.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n const nodes = contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n resolve(nodes);\n } catch (error) {\n reject(error);\n }\n });\n};\nconst resultToNode = function(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n};\nexport {\n FileType as F,\n Node as N,\n Permission as P,\n getRemoteURL as a,\n defaultRemoteURL as b,\n getClient as c,\n defaultRootPath as d,\n getFavoriteNodes as e,\n defaultDavProperties as f,\n getRootPath as g,\n defaultDavNamespaces as h,\n registerDavProperty as i,\n getDavProperties as j,\n getDavNameSpaces as k,\n getDefaultPropfind as l,\n getFavoritesReport as m,\n getRecentSearch as n,\n logger as o,\n parsePermissions as p,\n File as q,\n resultToNode as r,\n Folder as s,\n NodeStatus as t\n};\n//# sourceMappingURL=dav-CQDyL7M_.mjs.map\n","var e=class extends EventTarget{dispatchTypedEvent(s,t){return super.dispatchEvent(t)}};export{e as TypedEventTarget};\n","'use strict';\n\nObject.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });\n\nvar buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nexports.Blob = buffer.Blob;\nexports.BlobOptions = buffer.BlobOptions;\nexports.Buffer = buffer.Buffer;\nexports.File = buffer.File;\nexports.FileOptions = buffer.FileOptions;\nexports.INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nexports.SlowBuffer = buffer.SlowBuffer;\nexports.TranscodeEncoding = buffer.TranscodeEncoding;\nexports.atob = buffer.atob;\nexports.btoa = buffer.btoa;\nexports.constants = buffer.constants;\nexports.default = Buffer;\nexports.isAscii = buffer.isAscii;\nexports.isUtf8 = buffer.isUtf8;\nexports.kMaxLength = buffer.kMaxLength;\nexports.kStringMaxLength = buffer.kStringMaxLength;\nexports.resolveObjectURL = buffer.resolveObjectURL;\nexports.transcode = buffer.transcode;\n//# sourceMappingURL=index.cjs.map\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","import { o as logger } from \"./chunks/dav-CQDyL7M_.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-CQDyL7M_.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport require$$1 from \"string_decoder\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get hotkey() {\n return this._action.hotkey;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.2\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.2\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h2) => {\n try {\n ;\n h2(event[0]);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nvar sax$1 = {};\nvar hasRequiredSax;\nfunction requireSax() {\n if (hasRequiredSax) return sax$1;\n hasRequiredSax = 1;\n (function(exports) {\n (function(sax2) {\n sax2.parser = function(strict, opt) {\n return new SAXParser(strict, opt);\n };\n sax2.SAXParser = SAXParser;\n sax2.SAXStream = SAXStream;\n sax2.createStream = createStream;\n sax2.MAX_BUFFER_LENGTH = 64 * 1024;\n var buffers = [\n \"comment\",\n \"sgmlDecl\",\n \"textNode\",\n \"tagName\",\n \"doctype\",\n \"procInstName\",\n \"procInstBody\",\n \"entity\",\n \"attribName\",\n \"attribValue\",\n \"cdata\",\n \"script\"\n ];\n sax2.EVENTS = [\n \"text\",\n \"processinginstruction\",\n \"sgmldeclaration\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"opencdata\",\n \"cdata\",\n \"closecdata\",\n \"error\",\n \"end\",\n \"ready\",\n \"script\",\n \"opennamespace\",\n \"closenamespace\"\n ];\n function SAXParser(strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt);\n }\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = \"\";\n parser.bufferCheckPosition = sax2.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? \"toLowerCase\" : \"toUpperCase\";\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities ? Object.create(sax2.XML_ENTITIES) : Object.create(sax2.ENTITIES);\n parser.attribList = [];\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n if (parser.opt.unquotedAttributeValues === void 0) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit2(parser, \"onready\");\n }\n if (!Object.create) {\n Object.create = function(o) {\n function F2() {\n }\n F2.prototype = o;\n var newf = new F2();\n return newf;\n };\n }\n if (!Object.keys) {\n Object.keys = function(o) {\n var a2 = [];\n for (var i2 in o) if (o.hasOwnProperty(i2)) a2.push(i2);\n return a2;\n };\n }\n function checkBufferLength(parser) {\n var maxAllowed = Math.max(sax2.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n var len = parser[buffers[i2]].length;\n if (len > maxAllowed) {\n switch (buffers[i2]) {\n case \"textNode\":\n closeText(parser);\n break;\n case \"cdata\":\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n break;\n case \"script\":\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n break;\n default:\n error(parser, \"Max buffer length exceeded: \" + buffers[i2]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n var m2 = sax2.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m2 + parser.position;\n }\n function clearBuffers(parser) {\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n parser[buffers[i2]] = \"\";\n }\n }\n function flushBuffers(parser) {\n closeText(parser);\n if (parser.cdata !== \"\") {\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n }\n if (parser.script !== \"\") {\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n }\n SAXParser.prototype = {\n end: function() {\n end(this);\n },\n write,\n resume: function() {\n this.error = null;\n return this;\n },\n close: function() {\n return this.write(null);\n },\n flush: function() {\n flushBuffers(this);\n }\n };\n var Stream;\n try {\n Stream = require(\"stream\").Stream;\n } catch (ex) {\n Stream = function() {\n };\n }\n if (!Stream) Stream = function() {\n };\n var streamWraps = sax2.EVENTS.filter(function(ev) {\n return ev !== \"error\" && ev !== \"end\";\n });\n function createStream(strict, opt) {\n return new SAXStream(strict, opt);\n }\n function SAXStream(strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt);\n }\n Stream.apply(this);\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n var me = this;\n this._parser.onend = function() {\n me.emit(\"end\");\n };\n this._parser.onerror = function(er) {\n me.emit(\"error\", er);\n me._parser.error = null;\n };\n this._decoder = null;\n streamWraps.forEach(function(ev) {\n Object.defineProperty(me, \"on\" + ev, {\n get: function() {\n return me._parser[\"on\" + ev];\n },\n set: function(h2) {\n if (!h2) {\n me.removeAllListeners(ev);\n me._parser[\"on\" + ev] = h2;\n return h2;\n }\n me.on(ev, h2);\n },\n enumerable: true,\n configurable: false\n });\n });\n }\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n });\n SAXStream.prototype.write = function(data) {\n if (typeof Buffer === \"function\" && typeof Buffer.isBuffer === \"function\" && Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require$$1.StringDecoder;\n this._decoder = new SD(\"utf8\");\n }\n data = this._decoder.write(data);\n }\n this._parser.write(data.toString());\n this.emit(\"data\", data);\n return true;\n };\n SAXStream.prototype.end = function(chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true;\n };\n SAXStream.prototype.on = function(ev, handler) {\n var me = this;\n if (!me._parser[\"on\" + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser[\"on\" + ev] = function() {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n return Stream.prototype.on.call(me, ev, handler);\n };\n var CDATA = \"[CDATA[\";\n var DOCTYPE = \"DOCTYPE\";\n var XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\n var XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n function isWhitespace(c2) {\n return c2 === \" \" || c2 === \"\\n\" || c2 === \"\\r\" || c2 === \"\t\";\n }\n function isQuote(c2) {\n return c2 === '\"' || c2 === \"'\";\n }\n function isAttribEnd(c2) {\n return c2 === \">\" || isWhitespace(c2);\n }\n function isMatch(regex, c2) {\n return regex.test(c2);\n }\n function notMatch(regex, c2) {\n return !isMatch(regex, c2);\n }\n var S = 0;\n sax2.STATE = {\n BEGIN: S++,\n // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++,\n // leading whitespace\n TEXT: S++,\n // general stuff\n TEXT_ENTITY: S++,\n // & and such.\n OPEN_WAKA: S++,\n // <\n SGML_DECL: S++,\n // <!BLARG\n SGML_DECL_QUOTED: S++,\n // <!BLARG foo \"bar\n DOCTYPE: S++,\n // <!DOCTYPE\n DOCTYPE_QUOTED: S++,\n // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++,\n // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++,\n // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++,\n // <!-\n COMMENT: S++,\n // <!--\n COMMENT_ENDING: S++,\n // <!-- blah -\n COMMENT_ENDED: S++,\n // <!-- blah --\n CDATA: S++,\n // <![CDATA[ something\n CDATA_ENDING: S++,\n // ]\n CDATA_ENDING_2: S++,\n // ]]\n PROC_INST: S++,\n // <?hi\n PROC_INST_BODY: S++,\n // <?hi there\n PROC_INST_ENDING: S++,\n // <?hi \"there\" ?\n OPEN_TAG: S++,\n // <strong\n OPEN_TAG_SLASH: S++,\n // <strong /\n ATTRIB: S++,\n // <a\n ATTRIB_NAME: S++,\n // <a foo\n ATTRIB_NAME_SAW_WHITE: S++,\n // <a foo _\n ATTRIB_VALUE: S++,\n // <a foo=\n ATTRIB_VALUE_QUOTED: S++,\n // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++,\n // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++,\n // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++,\n // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++,\n // <foo bar="\n CLOSE_TAG: S++,\n // </a\n CLOSE_TAG_SAW_WHITE: S++,\n // </a >\n SCRIPT: S++,\n // <script> ...\n SCRIPT_ENDING: S++\n // <script> ... <\n };\n sax2.XML_ENTITIES = {\n \"amp\": \"&\",\n \"gt\": \">\",\n \"lt\": \"<\",\n \"quot\": '\"',\n \"apos\": \"'\"\n };\n sax2.ENTITIES = {\n \"amp\": \"&\",\n \"gt\": \">\",\n \"lt\": \"<\",\n \"quot\": '\"',\n \"apos\": \"'\",\n \"AElig\": 198,\n \"Aacute\": 193,\n \"Acirc\": 194,\n \"Agrave\": 192,\n \"Aring\": 197,\n \"Atilde\": 195,\n \"Auml\": 196,\n \"Ccedil\": 199,\n \"ETH\": 208,\n \"Eacute\": 201,\n \"Ecirc\": 202,\n \"Egrave\": 200,\n \"Euml\": 203,\n \"Iacute\": 205,\n \"Icirc\": 206,\n \"Igrave\": 204,\n \"Iuml\": 207,\n \"Ntilde\": 209,\n \"Oacute\": 211,\n \"Ocirc\": 212,\n \"Ograve\": 210,\n \"Oslash\": 216,\n \"Otilde\": 213,\n \"Ouml\": 214,\n \"THORN\": 222,\n \"Uacute\": 218,\n \"Ucirc\": 219,\n \"Ugrave\": 217,\n \"Uuml\": 220,\n \"Yacute\": 221,\n \"aacute\": 225,\n \"acirc\": 226,\n \"aelig\": 230,\n \"agrave\": 224,\n \"aring\": 229,\n \"atilde\": 227,\n \"auml\": 228,\n \"ccedil\": 231,\n \"eacute\": 233,\n \"ecirc\": 234,\n \"egrave\": 232,\n \"eth\": 240,\n \"euml\": 235,\n \"iacute\": 237,\n \"icirc\": 238,\n \"igrave\": 236,\n \"iuml\": 239,\n \"ntilde\": 241,\n \"oacute\": 243,\n \"ocirc\": 244,\n \"ograve\": 242,\n \"oslash\": 248,\n \"otilde\": 245,\n \"ouml\": 246,\n \"szlig\": 223,\n \"thorn\": 254,\n \"uacute\": 250,\n \"ucirc\": 251,\n \"ugrave\": 249,\n \"uuml\": 252,\n \"yacute\": 253,\n \"yuml\": 255,\n \"copy\": 169,\n \"reg\": 174,\n \"nbsp\": 160,\n \"iexcl\": 161,\n \"cent\": 162,\n \"pound\": 163,\n \"curren\": 164,\n \"yen\": 165,\n \"brvbar\": 166,\n \"sect\": 167,\n \"uml\": 168,\n \"ordf\": 170,\n \"laquo\": 171,\n \"not\": 172,\n \"shy\": 173,\n \"macr\": 175,\n \"deg\": 176,\n \"plusmn\": 177,\n \"sup1\": 185,\n \"sup2\": 178,\n \"sup3\": 179,\n \"acute\": 180,\n \"micro\": 181,\n \"para\": 182,\n \"middot\": 183,\n \"cedil\": 184,\n \"ordm\": 186,\n \"raquo\": 187,\n \"frac14\": 188,\n \"frac12\": 189,\n \"frac34\": 190,\n \"iquest\": 191,\n \"times\": 215,\n \"divide\": 247,\n \"OElig\": 338,\n \"oelig\": 339,\n \"Scaron\": 352,\n \"scaron\": 353,\n \"Yuml\": 376,\n \"fnof\": 402,\n \"circ\": 710,\n \"tilde\": 732,\n \"Alpha\": 913,\n \"Beta\": 914,\n \"Gamma\": 915,\n \"Delta\": 916,\n \"Epsilon\": 917,\n \"Zeta\": 918,\n \"Eta\": 919,\n \"Theta\": 920,\n \"Iota\": 921,\n \"Kappa\": 922,\n \"Lambda\": 923,\n \"Mu\": 924,\n \"Nu\": 925,\n \"Xi\": 926,\n \"Omicron\": 927,\n \"Pi\": 928,\n \"Rho\": 929,\n \"Sigma\": 931,\n \"Tau\": 932,\n \"Upsilon\": 933,\n \"Phi\": 934,\n \"Chi\": 935,\n \"Psi\": 936,\n \"Omega\": 937,\n \"alpha\": 945,\n \"beta\": 946,\n \"gamma\": 947,\n \"delta\": 948,\n \"epsilon\": 949,\n \"zeta\": 950,\n \"eta\": 951,\n \"theta\": 952,\n \"iota\": 953,\n \"kappa\": 954,\n \"lambda\": 955,\n \"mu\": 956,\n \"nu\": 957,\n \"xi\": 958,\n \"omicron\": 959,\n \"pi\": 960,\n \"rho\": 961,\n \"sigmaf\": 962,\n \"sigma\": 963,\n \"tau\": 964,\n \"upsilon\": 965,\n \"phi\": 966,\n \"chi\": 967,\n \"psi\": 968,\n \"omega\": 969,\n \"thetasym\": 977,\n \"upsih\": 978,\n \"piv\": 982,\n \"ensp\": 8194,\n \"emsp\": 8195,\n \"thinsp\": 8201,\n \"zwnj\": 8204,\n \"zwj\": 8205,\n \"lrm\": 8206,\n \"rlm\": 8207,\n \"ndash\": 8211,\n \"mdash\": 8212,\n \"lsquo\": 8216,\n \"rsquo\": 8217,\n \"sbquo\": 8218,\n \"ldquo\": 8220,\n \"rdquo\": 8221,\n \"bdquo\": 8222,\n \"dagger\": 8224,\n \"Dagger\": 8225,\n \"bull\": 8226,\n \"hellip\": 8230,\n \"permil\": 8240,\n \"prime\": 8242,\n \"Prime\": 8243,\n \"lsaquo\": 8249,\n \"rsaquo\": 8250,\n \"oline\": 8254,\n \"frasl\": 8260,\n \"euro\": 8364,\n \"image\": 8465,\n \"weierp\": 8472,\n \"real\": 8476,\n \"trade\": 8482,\n \"alefsym\": 8501,\n \"larr\": 8592,\n \"uarr\": 8593,\n \"rarr\": 8594,\n \"darr\": 8595,\n \"harr\": 8596,\n \"crarr\": 8629,\n \"lArr\": 8656,\n \"uArr\": 8657,\n \"rArr\": 8658,\n \"dArr\": 8659,\n \"hArr\": 8660,\n \"forall\": 8704,\n \"part\": 8706,\n \"exist\": 8707,\n \"empty\": 8709,\n \"nabla\": 8711,\n \"isin\": 8712,\n \"notin\": 8713,\n \"ni\": 8715,\n \"prod\": 8719,\n \"sum\": 8721,\n \"minus\": 8722,\n \"lowast\": 8727,\n \"radic\": 8730,\n \"prop\": 8733,\n \"infin\": 8734,\n \"ang\": 8736,\n \"and\": 8743,\n \"or\": 8744,\n \"cap\": 8745,\n \"cup\": 8746,\n \"int\": 8747,\n \"there4\": 8756,\n \"sim\": 8764,\n \"cong\": 8773,\n \"asymp\": 8776,\n \"ne\": 8800,\n \"equiv\": 8801,\n \"le\": 8804,\n \"ge\": 8805,\n \"sub\": 8834,\n \"sup\": 8835,\n \"nsub\": 8836,\n \"sube\": 8838,\n \"supe\": 8839,\n \"oplus\": 8853,\n \"otimes\": 8855,\n \"perp\": 8869,\n \"sdot\": 8901,\n \"lceil\": 8968,\n \"rceil\": 8969,\n \"lfloor\": 8970,\n \"rfloor\": 8971,\n \"lang\": 9001,\n \"rang\": 9002,\n \"loz\": 9674,\n \"spades\": 9824,\n \"clubs\": 9827,\n \"hearts\": 9829,\n \"diams\": 9830\n };\n Object.keys(sax2.ENTITIES).forEach(function(key) {\n var e2 = sax2.ENTITIES[key];\n var s3 = typeof e2 === \"number\" ? String.fromCharCode(e2) : e2;\n sax2.ENTITIES[key] = s3;\n });\n for (var s2 in sax2.STATE) {\n sax2.STATE[sax2.STATE[s2]] = s2;\n }\n S = sax2.STATE;\n function emit2(parser, event, data) {\n parser[event] && parser[event](data);\n }\n function emitNode(parser, nodeType, data) {\n if (parser.textNode) closeText(parser);\n emit2(parser, nodeType, data);\n }\n function closeText(parser) {\n parser.textNode = textopts(parser.opt, parser.textNode);\n if (parser.textNode) emit2(parser, \"ontext\", parser.textNode);\n parser.textNode = \"\";\n }\n function textopts(opt, text) {\n if (opt.trim) text = text.trim();\n if (opt.normalize) text = text.replace(/\\s+/g, \" \");\n return text;\n }\n function error(parser, er) {\n closeText(parser);\n if (parser.trackPosition) {\n er += \"\\nLine: \" + parser.line + \"\\nColumn: \" + parser.column + \"\\nChar: \" + parser.c;\n }\n er = new Error(er);\n parser.error = er;\n emit2(parser, \"onerror\", er);\n return parser;\n }\n function end(parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, \"Unclosed root tag\");\n if (parser.state !== S.BEGIN && parser.state !== S.BEGIN_WHITESPACE && parser.state !== S.TEXT) {\n error(parser, \"Unexpected end\");\n }\n closeText(parser);\n parser.c = \"\";\n parser.closed = true;\n emit2(parser, \"onend\");\n SAXParser.call(parser, parser.strict, parser.opt);\n return parser;\n }\n function strictFail(parser, message) {\n if (typeof parser !== \"object\" || !(parser instanceof SAXParser)) {\n throw new Error(\"bad call to strictFail\");\n }\n if (parser.strict) {\n error(parser, message);\n }\n }\n function newTag(parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();\n var parent = parser.tags[parser.tags.length - 1] || parser;\n var tag = parser.tag = { name: parser.tagName, attributes: {} };\n if (parser.opt.xmlns) {\n tag.ns = parent.ns;\n }\n parser.attribList.length = 0;\n emitNode(parser, \"onopentagstart\", tag);\n }\n function qname(name, attribute) {\n var i2 = name.indexOf(\":\");\n var qualName = i2 < 0 ? [\"\", name] : name.split(\":\");\n var prefix = qualName[0];\n var local = qualName[1];\n if (attribute && name === \"xmlns\") {\n prefix = \"xmlns\";\n local = \"\";\n }\n return { prefix, local };\n }\n function attrib(parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]();\n }\n if (parser.attribList.indexOf(parser.attribName) !== -1 || parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = \"\";\n return;\n }\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true);\n var prefix = qn.prefix;\n var local = qn.local;\n if (prefix === \"xmlns\") {\n if (local === \"xml\" && parser.attribValue !== XML_NAMESPACE) {\n strictFail(\n parser,\n \"xml: prefix must be bound to \" + XML_NAMESPACE + \"\\nActual: \" + parser.attribValue\n );\n } else if (local === \"xmlns\" && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(\n parser,\n \"xmlns: prefix must be bound to \" + XMLNS_NAMESPACE + \"\\nActual: \" + parser.attribValue\n );\n } else {\n var tag = parser.tag;\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = parser.attribValue;\n }\n }\n parser.attribList.push([parser.attribName, parser.attribValue]);\n } else {\n parser.tag.attributes[parser.attribName] = parser.attribValue;\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: parser.attribValue\n });\n }\n parser.attribName = parser.attribValue = \"\";\n }\n function openTag(parser, selfClosing) {\n if (parser.opt.xmlns) {\n var tag = parser.tag;\n var qn = qname(parser.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || \"\";\n if (tag.prefix && !tag.uri) {\n strictFail(parser, \"Unbound namespace prefix: \" + JSON.stringify(parser.tagName));\n tag.uri = qn.prefix;\n }\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function(p2) {\n emitNode(parser, \"onopennamespace\", {\n prefix: p2,\n uri: tag.ns[p2]\n });\n });\n }\n for (var i2 = 0, l2 = parser.attribList.length; i2 < l2; i2++) {\n var nv = parser.attribList[i2];\n var name = nv[0];\n var value = nv[1];\n var qualName = qname(name, true);\n var prefix = qualName.prefix;\n var local = qualName.local;\n var uri = prefix === \"\" ? \"\" : tag.ns[prefix] || \"\";\n var a2 = {\n name,\n value,\n prefix,\n local,\n uri\n };\n if (prefix && prefix !== \"xmlns\" && !uri) {\n strictFail(parser, \"Unbound namespace prefix: \" + JSON.stringify(prefix));\n a2.uri = prefix;\n }\n parser.tag.attributes[name] = a2;\n emitNode(parser, \"onattribute\", a2);\n }\n parser.attribList.length = 0;\n }\n parser.tag.isSelfClosing = !!selfClosing;\n parser.sawRoot = true;\n parser.tags.push(parser.tag);\n emitNode(parser, \"onopentag\", parser.tag);\n if (!selfClosing) {\n if (!parser.noscript && parser.tagName.toLowerCase() === \"script\") {\n parser.state = S.SCRIPT;\n } else {\n parser.state = S.TEXT;\n }\n parser.tag = null;\n parser.tagName = \"\";\n }\n parser.attribName = parser.attribValue = \"\";\n parser.attribList.length = 0;\n }\n function closeTag(parser) {\n if (!parser.tagName) {\n strictFail(parser, \"Weird empty close tag.\");\n parser.textNode += \"</>\";\n parser.state = S.TEXT;\n return;\n }\n if (parser.script) {\n if (parser.tagName !== \"script\") {\n parser.script += \"</\" + parser.tagName + \">\";\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n return;\n }\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n var t2 = parser.tags.length;\n var tagName = parser.tagName;\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]();\n }\n var closeTo = tagName;\n while (t2--) {\n var close = parser.tags[t2];\n if (close.name !== closeTo) {\n strictFail(parser, \"Unexpected close tag\");\n } else {\n break;\n }\n }\n if (t2 < 0) {\n strictFail(parser, \"Unmatched closing tag: \" + parser.tagName);\n parser.textNode += \"</\" + parser.tagName + \">\";\n parser.state = S.TEXT;\n return;\n }\n parser.tagName = tagName;\n var s3 = parser.tags.length;\n while (s3-- > t2) {\n var tag = parser.tag = parser.tags.pop();\n parser.tagName = parser.tag.name;\n emitNode(parser, \"onclosetag\", parser.tagName);\n var x = {};\n for (var i2 in tag.ns) {\n x[i2] = tag.ns[i2];\n }\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n Object.keys(tag.ns).forEach(function(p2) {\n var n2 = tag.ns[p2];\n emitNode(parser, \"onclosenamespace\", { prefix: p2, uri: n2 });\n });\n }\n }\n if (t2 === 0) parser.closedRoot = true;\n parser.tagName = parser.attribValue = parser.attribName = \"\";\n parser.attribList.length = 0;\n parser.state = S.TEXT;\n }\n function parseEntity(parser) {\n var entity = parser.entity;\n var entityLC = entity.toLowerCase();\n var num;\n var numStr = \"\";\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity];\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === \"#\") {\n if (entity.charAt(1) === \"x\") {\n entity = entity.slice(2);\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n } else {\n entity = entity.slice(1);\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, \"\");\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, \"Invalid character entity\");\n return \"&\" + parser.entity + \";\";\n }\n return String.fromCodePoint(num);\n }\n function beginWhiteSpace(parser, c2) {\n if (c2 === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (!isWhitespace(c2)) {\n strictFail(parser, \"Non-whitespace before first tag.\");\n parser.textNode = c2;\n parser.state = S.TEXT;\n }\n }\n function charAt(chunk, i2) {\n var result = \"\";\n if (i2 < chunk.length) {\n result = chunk.charAt(i2);\n }\n return result;\n }\n function write(chunk) {\n var parser = this;\n if (this.error) {\n throw this.error;\n }\n if (parser.closed) {\n return error(\n parser,\n \"Cannot write after close. Assign an onready handler.\"\n );\n }\n if (chunk === null) {\n return end(parser);\n }\n if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n var i2 = 0;\n var c2 = \"\";\n while (true) {\n c2 = charAt(chunk, i2++);\n parser.c = c2;\n if (!c2) {\n break;\n }\n if (parser.trackPosition) {\n parser.position++;\n if (c2 === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE;\n if (c2 === \"\\uFEFF\") {\n continue;\n }\n beginWhiteSpace(parser, c2);\n continue;\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c2);\n continue;\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i2 - 1;\n while (c2 && c2 !== \"<\" && c2 !== \"&\") {\n c2 = charAt(chunk, i2++);\n if (c2 && parser.trackPosition) {\n parser.position++;\n if (c2 === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n }\n parser.textNode += chunk.substring(starti, i2 - 1);\n }\n if (c2 === \"<\" && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else {\n if (!isWhitespace(c2) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, \"Text data outside of root node.\");\n }\n if (c2 === \"&\") {\n parser.state = S.TEXT_ENTITY;\n } else {\n parser.textNode += c2;\n }\n }\n continue;\n case S.SCRIPT:\n if (c2 === \"<\") {\n parser.state = S.SCRIPT_ENDING;\n } else {\n parser.script += c2;\n }\n continue;\n case S.SCRIPT_ENDING:\n if (c2 === \"/\") {\n parser.state = S.CLOSE_TAG;\n } else {\n parser.script += \"<\" + c2;\n parser.state = S.SCRIPT;\n }\n continue;\n case S.OPEN_WAKA:\n if (c2 === \"!\") {\n parser.state = S.SGML_DECL;\n parser.sgmlDecl = \"\";\n } else if (isWhitespace(c2)) ;\n else if (isMatch(nameStart, c2)) {\n parser.state = S.OPEN_TAG;\n parser.tagName = c2;\n } else if (c2 === \"/\") {\n parser.state = S.CLOSE_TAG;\n parser.tagName = \"\";\n } else if (c2 === \"?\") {\n parser.state = S.PROC_INST;\n parser.procInstName = parser.procInstBody = \"\";\n } else {\n strictFail(parser, \"Unencoded <\");\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition;\n c2 = new Array(pad).join(\" \") + c2;\n }\n parser.textNode += \"<\" + c2;\n parser.state = S.TEXT;\n }\n continue;\n case S.SGML_DECL:\n if (parser.sgmlDecl + c2 === \"--\") {\n parser.state = S.COMMENT;\n parser.comment = \"\";\n parser.sgmlDecl = \"\";\n continue;\n }\n if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {\n parser.state = S.DOCTYPE_DTD;\n parser.doctype += \"<!\" + parser.sgmlDecl + c2;\n parser.sgmlDecl = \"\";\n } else if ((parser.sgmlDecl + c2).toUpperCase() === CDATA) {\n emitNode(parser, \"onopencdata\");\n parser.state = S.CDATA;\n parser.sgmlDecl = \"\";\n parser.cdata = \"\";\n } else if ((parser.sgmlDecl + c2).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE;\n if (parser.doctype || parser.sawRoot) {\n strictFail(\n parser,\n \"Inappropriately located doctype declaration\"\n );\n }\n parser.doctype = \"\";\n parser.sgmlDecl = \"\";\n } else if (c2 === \">\") {\n emitNode(parser, \"onsgmldeclaration\", parser.sgmlDecl);\n parser.sgmlDecl = \"\";\n parser.state = S.TEXT;\n } else if (isQuote(c2)) {\n parser.state = S.SGML_DECL_QUOTED;\n parser.sgmlDecl += c2;\n } else {\n parser.sgmlDecl += c2;\n }\n continue;\n case S.SGML_DECL_QUOTED:\n if (c2 === parser.q) {\n parser.state = S.SGML_DECL;\n parser.q = \"\";\n }\n parser.sgmlDecl += c2;\n continue;\n case S.DOCTYPE:\n if (c2 === \">\") {\n parser.state = S.TEXT;\n emitNode(parser, \"ondoctype\", parser.doctype);\n parser.doctype = true;\n } else {\n parser.doctype += c2;\n if (c2 === \"[\") {\n parser.state = S.DOCTYPE_DTD;\n } else if (isQuote(c2)) {\n parser.state = S.DOCTYPE_QUOTED;\n parser.q = c2;\n }\n }\n continue;\n case S.DOCTYPE_QUOTED:\n parser.doctype += c2;\n if (c2 === parser.q) {\n parser.q = \"\";\n parser.state = S.DOCTYPE;\n }\n continue;\n case S.DOCTYPE_DTD:\n if (c2 === \"]\") {\n parser.doctype += c2;\n parser.state = S.DOCTYPE;\n } else if (c2 === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (isQuote(c2)) {\n parser.doctype += c2;\n parser.state = S.DOCTYPE_DTD_QUOTED;\n parser.q = c2;\n } else {\n parser.doctype += c2;\n }\n continue;\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c2;\n if (c2 === parser.q) {\n parser.state = S.DOCTYPE_DTD;\n parser.q = \"\";\n }\n continue;\n case S.COMMENT:\n if (c2 === \"-\") {\n parser.state = S.COMMENT_ENDING;\n } else {\n parser.comment += c2;\n }\n continue;\n case S.COMMENT_ENDING:\n if (c2 === \"-\") {\n parser.state = S.COMMENT_ENDED;\n parser.comment = textopts(parser.opt, parser.comment);\n if (parser.comment) {\n emitNode(parser, \"oncomment\", parser.comment);\n }\n parser.comment = \"\";\n } else {\n parser.comment += \"-\" + c2;\n parser.state = S.COMMENT;\n }\n continue;\n case S.COMMENT_ENDED:\n if (c2 !== \">\") {\n strictFail(parser, \"Malformed comment\");\n parser.comment += \"--\" + c2;\n parser.state = S.COMMENT;\n } else if (parser.doctype && parser.doctype !== true) {\n parser.state = S.DOCTYPE_DTD;\n } else {\n parser.state = S.TEXT;\n }\n continue;\n case S.CDATA:\n if (c2 === \"]\") {\n parser.state = S.CDATA_ENDING;\n } else {\n parser.cdata += c2;\n }\n continue;\n case S.CDATA_ENDING:\n if (c2 === \"]\") {\n parser.state = S.CDATA_ENDING_2;\n } else {\n parser.cdata += \"]\" + c2;\n parser.state = S.CDATA;\n }\n continue;\n case S.CDATA_ENDING_2:\n if (c2 === \">\") {\n if (parser.cdata) {\n emitNode(parser, \"oncdata\", parser.cdata);\n }\n emitNode(parser, \"onclosecdata\");\n parser.cdata = \"\";\n parser.state = S.TEXT;\n } else if (c2 === \"]\") {\n parser.cdata += \"]\";\n } else {\n parser.cdata += \"]]\" + c2;\n parser.state = S.CDATA;\n }\n continue;\n case S.PROC_INST:\n if (c2 === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else if (isWhitespace(c2)) {\n parser.state = S.PROC_INST_BODY;\n } else {\n parser.procInstName += c2;\n }\n continue;\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c2)) {\n continue;\n } else if (c2 === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else {\n parser.procInstBody += c2;\n }\n continue;\n case S.PROC_INST_ENDING:\n if (c2 === \">\") {\n emitNode(parser, \"onprocessinginstruction\", {\n name: parser.procInstName,\n body: parser.procInstBody\n });\n parser.procInstName = parser.procInstBody = \"\";\n parser.state = S.TEXT;\n } else {\n parser.procInstBody += \"?\" + c2;\n parser.state = S.PROC_INST_BODY;\n }\n continue;\n case S.OPEN_TAG:\n if (isMatch(nameBody, c2)) {\n parser.tagName += c2;\n } else {\n newTag(parser);\n if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else {\n if (!isWhitespace(c2)) {\n strictFail(parser, \"Invalid character in tag name\");\n }\n parser.state = S.ATTRIB;\n }\n }\n continue;\n case S.OPEN_TAG_SLASH:\n if (c2 === \">\") {\n openTag(parser, true);\n closeTag(parser);\n } else {\n strictFail(parser, \"Forward-slash in opening tag not followed by >\");\n parser.state = S.ATTRIB;\n }\n continue;\n case S.ATTRIB:\n if (isWhitespace(c2)) {\n continue;\n } else if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c2)) {\n parser.attribName = c2;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_NAME:\n if (c2 === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (c2 === \">\") {\n strictFail(parser, \"Attribute without value\");\n parser.attribValue = parser.attribName;\n attrib(parser);\n openTag(parser);\n } else if (isWhitespace(c2)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE;\n } else if (isMatch(nameBody, c2)) {\n parser.attribName += c2;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c2 === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (isWhitespace(c2)) {\n continue;\n } else {\n strictFail(parser, \"Attribute without value\");\n parser.tag.attributes[parser.attribName] = \"\";\n parser.attribValue = \"\";\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: \"\"\n });\n parser.attribName = \"\";\n if (c2 === \">\") {\n openTag(parser);\n } else if (isMatch(nameStart, c2)) {\n parser.attribName = c2;\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n parser.state = S.ATTRIB;\n }\n }\n continue;\n case S.ATTRIB_VALUE:\n if (isWhitespace(c2)) {\n continue;\n } else if (isQuote(c2)) {\n parser.q = c2;\n parser.state = S.ATTRIB_VALUE_QUOTED;\n } else {\n if (!parser.opt.unquotedAttributeValues) {\n error(parser, \"Unquoted attribute value\");\n }\n parser.state = S.ATTRIB_VALUE_UNQUOTED;\n parser.attribValue = c2;\n }\n continue;\n case S.ATTRIB_VALUE_QUOTED:\n if (c2 !== parser.q) {\n if (c2 === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q;\n } else {\n parser.attribValue += c2;\n }\n continue;\n }\n attrib(parser);\n parser.q = \"\";\n parser.state = S.ATTRIB_VALUE_CLOSED;\n continue;\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c2)) {\n parser.state = S.ATTRIB;\n } else if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c2)) {\n strictFail(parser, \"No whitespace between attributes\");\n parser.attribName = c2;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c2)) {\n if (c2 === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_U;\n } else {\n parser.attribValue += c2;\n }\n continue;\n }\n attrib(parser);\n if (c2 === \">\") {\n openTag(parser);\n } else {\n parser.state = S.ATTRIB;\n }\n continue;\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c2)) {\n continue;\n } else if (notMatch(nameStart, c2)) {\n if (parser.script) {\n parser.script += \"</\" + c2;\n parser.state = S.SCRIPT;\n } else {\n strictFail(parser, \"Invalid tagname in closing tag.\");\n }\n } else {\n parser.tagName = c2;\n }\n } else if (c2 === \">\") {\n closeTag(parser);\n } else if (isMatch(nameBody, c2)) {\n parser.tagName += c2;\n } else if (parser.script) {\n parser.script += \"</\" + parser.tagName;\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n } else {\n if (!isWhitespace(c2)) {\n strictFail(parser, \"Invalid tagname in closing tag\");\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c2)) {\n continue;\n }\n if (c2 === \">\") {\n closeTag(parser);\n } else {\n strictFail(parser, \"Invalid characters in closing tag\");\n }\n continue;\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState;\n var buffer;\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT;\n buffer = \"textNode\";\n break;\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED;\n buffer = \"attribValue\";\n break;\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED;\n buffer = \"attribValue\";\n break;\n }\n if (c2 === \";\") {\n var parsedEntity = parseEntity(parser);\n if (parser.opt.unparsedEntities && !Object.values(sax2.XML_ENTITIES).includes(parsedEntity)) {\n parser.entity = \"\";\n parser.state = returnState;\n parser.write(parsedEntity);\n } else {\n parser[buffer] += parsedEntity;\n parser.entity = \"\";\n parser.state = returnState;\n }\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c2)) {\n parser.entity += c2;\n } else {\n strictFail(parser, \"Invalid character in entity name\");\n parser[buffer] += \"&\" + parser.entity + c2;\n parser.entity = \"\";\n parser.state = returnState;\n }\n continue;\n default: {\n throw new Error(parser, \"Unknown state: \" + parser.state);\n }\n }\n }\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser);\n }\n return parser;\n }\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n if (!String.fromCodePoint) {\n (function() {\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n var fromCodePoint = function() {\n var MAX_SIZE = 16384;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n if (!length) {\n return \"\";\n }\n var result = \"\";\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 1114111 || // not a valid Unicode code point\n floor(codePoint) !== codePoint) {\n throw RangeError(\"Invalid code point: \" + codePoint);\n }\n if (codePoint <= 65535) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 65536;\n highSurrogate = (codePoint >> 10) + 55296;\n lowSurrogate = codePoint % 1024 + 56320;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n if (Object.defineProperty) {\n Object.defineProperty(String, \"fromCodePoint\", {\n value: fromCodePoint,\n configurable: true,\n writable: true\n });\n } else {\n String.fromCodePoint = fromCodePoint;\n }\n })();\n }\n })(exports);\n })(sax$1);\n return sax$1;\n}\nvar saxExports = requireSax();\nconst sax = /* @__PURE__ */ getDefaultExportFromCjs(saxExports);\nconst namespaceMapping = {\n \"http://www.w3.org/2000/svg\": {\n ext: \"svg\",\n mime: \"image/svg+xml\"\n },\n \"http://www.w3.org/1999/xhtml\": {\n ext: \"xhtml\",\n mime: \"application/xhtml+xml\"\n },\n \"http://www.opengis.net/kml/2.2\": {\n ext: \"kml\",\n mime: \"application/vnd.google-earth.kml+xml\"\n },\n \"http://www.opengis.net/gml\": {\n ext: \"gml\",\n mime: \"application/gml+xml\"\n }\n};\nconst rootNameMapping = {\n rss: {\n ext: \"rss\",\n mime: \"application/rss+xml\"\n },\n \"score-partwise\": {\n ext: \"musicxml\",\n mime: \"application/vnd.recordare.musicxml+xml\"\n },\n svg: {\n ext: \"svg\",\n mime: \"image/svg+xml\"\n }\n};\nclass XmlTextDetector {\n constructor(options) {\n this.options = options ?? {};\n this.firstTag = true;\n this.onEnd = false;\n this.parser = sax.parser(true, { xmlns: true });\n this.nesting = 0;\n this.parser.onerror = (e2) => {\n if (e2.message.startsWith(\"Invalid character entity\")) {\n return;\n }\n this.fileType = void 0;\n this.onEnd = true;\n };\n this.parser.onopentag = (node) => {\n ++this.nesting;\n if (!this.firstTag || this.onEnd) {\n return;\n }\n this.firstTag = false;\n if (node.uri) {\n this.fileType = namespaceMapping[node.uri];\n } else if (node.name) {\n this.fileType = rootNameMapping[node.name.toLowerCase()];\n }\n if (this.fileType && !this.options.fullScan) {\n this.onEnd = true;\n }\n };\n this.parser.onclosetag = () => {\n --this.nesting;\n };\n }\n write(text) {\n this.parser.write(text);\n }\n close() {\n this.parser.close();\n this.onEnd = true;\n }\n isValid() {\n return this.nesting === 0;\n }\n}\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n const xmlTextDetector = new XmlTextDetector();\n xmlTextDetector.write(string);\n return xmlTextDetector.isValid() && xmlTextDetector.fileType?.ext === \"svg\";\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get hidden() {\n return this._view.hidden;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (\"hidden\" in view && typeof view.hidden !== \"boolean\") {\n throw new Error(\"View hidden must be a boolean\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nfunction getNewFileMenu() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n}\nfunction addNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n}\nfunction removeNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n}\nfunction getNewFileMenuEntries(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n}\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode] ?? v.attributes[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename || \"\"),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenu,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["loadState","app","key","fallback","elem","isPublicShare","getSharingToken","_defineProperty","obj","value","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","privateCollection","_classPrivateFieldGet","receiver","descriptor","_classExtractFieldDescriptor","_classApplyDescriptorGet","_classPrivateFieldSet","_classApplyDescriptorSet","action","toStringTag","_internals","_promise","CancelablePromiseInternal","_ref","executor","internals","defaultInternals","promise","resolve","reject","onCancel","onfulfilled","onrejected","makeCancelable","createCallback","onfinally","runWhenCanceled","callback","callbacks","err","CancelablePromise","iterable","makeAllCancelable","cancelable","reason","isCancelablePromise","onResult","arg","result","resolvable","assertPath","path","normalizeStringPosix","allowAboveRoot","res","lastSegmentLength","lastSlash","dots","code","i","lastSlashIndex","_format","sep","pathObject","dir","base","posix","resolvedPath","resolvedAbsolute","cwd","process","isAbsolute","trailingSeparator","joined","from","to","fromStart","fromEnd","fromLen","toStart","toEnd","toLen","length","lastCommonSep","fromCode","toCode","out","hasRoot","end","matchedSlash","ext","start","extIdx","firstNonSlashEnd","startDot","startPart","preDotState","ret","pathBrowserify","encodePath","dirname","joinPaths","args","nonEmptyArgs","lastArg","leadingSlash","trailingSlash","sections","acc","section","first","logger","getLoggerBuilder","FileType","FileType2","Permission","Permission2","isDavResource","source","davService","validateData","data","service","join","NodeStatus","NodeStatus2","Node","e","target","prop","origin","basename","displayname","extname","firstMatch","root","url","mime","mtime","size","permissions","status","destination","oldBasename","basename2","attributes","name","File","Folder","parsePermissions","permString","defaultDavProperties","defaultDavNamespaces","getDavProperties","getDavNameSpaces","ns","getRootPath","getCurrentUser","defaultRootPath","getRemoteURL","generateRemoteUrl","defaultRemoteURL","getClient","remoteURL","headers","client","createClient","setHeaders","token","onRequestTokenUpdate","getRequestToken","getPatcher","options","headers2","resultToNode","node","filesRoot","userId","props","owner","id","crtime","nodeData","s","t","exports","buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","c","rt","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","buf","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","b","fromObject","assertSize","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","numberIsNaN","a","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","hexSliceLookupTable","bytes","newBuf","checkOffset","noAssert","mul","defineBigIntMethod","validateNumber","last","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","range","input","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","require$$0","copyProps","module","SafeBuffer","isEncoding","_normalizeEncoding","enc","retried","normalizeEncoding","nenc","string_decoder","StringDecoder","nb","utf16Text","utf16End","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","r","utf8End","utf8Text","utf8CheckByte","byte","utf8CheckIncomplete","self","utf8CheckExtraBytes","p","total","DefaultType","DefaultType2","FileAction","registerFileAction","search","FileListAction","registerFileListAction","listAction","getDefaultExportFromCjs","debug_1","hasRequiredDebug","requireDebug","define_process_env_default","constants","hasRequiredConstants","requireConstants","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","re","hasRequiredRe","requireRe","debug","re2","safeRe","t2","R","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","createToken","isGlobal","safe","index","parseOptions_1","hasRequiredParseOptions","requireParseOptions","looseOption","emptyOpts","identifiers","hasRequiredIdentifiers","requireIdentifiers","numeric","compareIdentifiers","a2","b2","anum","bnum","semver","hasRequiredSemver","requireSemver","parseOptions","SemVer","version","m2","other","i2","release","identifier","identifierBase","prerelease","parse_1","hasRequiredParse","requireParse","throwErrors","er","valid_1","hasRequiredValid","requireValid","parse","v","major_1","hasRequiredMajor","requireMajor","loose","Navigation","TypedEventTarget","view","event","getNavigation","Column","column","isValidColumn","sax$1","hasRequiredSax","requireSax","sax2","strict","opt","SAXParser","SAXStream","createStream","buffers","parser","clearBuffers","S","rootNS","emit2","o","F2","newf","checkBufferLength","maxAllowed","maxActual","l2","closeText","emitNode","error","flushBuffers","write","Stream","streamWraps","ev","me","h2","SD","require$$1","chunk","handler","CDATA","DOCTYPE","XML_NAMESPACE","XMLNS_NAMESPACE","nameStart","nameBody","entityStart","entityBody","isWhitespace","c2","isQuote","isAttribEnd","isMatch","regex","notMatch","e2","s3","s2","nodeType","textopts","text","strictFail","message","newTag","parent","tag","qname","attribute","qualName","prefix","local","attrib","qn","openTag","selfClosing","p2","nv","uri","closeTag","tagName","closeTo","close","n2","parseEntity","entity","entityLC","numStr","beginWhiteSpace","charAt","starti","pad","returnState","parsedEntity","stringFromCharCode","floor","fromCodePoint","MAX_SIZE","codeUnits","highSurrogate","lowSurrogate","saxExports","sax","namespaceMapping","rootNameMapping","XmlTextDetector","isSvg","xmlTextDetector","View","isValidView","icon","order","params","expanded","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","readableFormat","relativeSize","getCanonicalLocale"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]} |