UNPKG

hz-player

Version:

## 强大的视频流播放器

1,256 lines 541 kB
!(function(e, t) { "object" == typeof exports && "undefined" != typeof module ? t(require("path"), require("fs"), require("crypto")) : "function" == typeof define && define.amd ? define(["path", "fs", "crypto"], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).path, e.fs, e.crypto$1); })(this, function(e, _, g) { "use strict"; function y(e) { return e && "object" == typeof e && "default" in e ? e : { default: e }; } var Ut = y(e), xt = y(_), Bt = y(g); function b(e, t) { return e((t = { exports: {} }), t.exports), t.exports; } var v = b(function(z) { var _; (_ = void 0 !== (_ = void 0 !== _ ? _ : {}) ? _ : {}).locateFile = function(e) { return "decoder-pro.wasm" == e && "undefined" != typeof JESSIBUCA_PRO_WASM_URL && "" != JESSIBUCA_PRO_WASM_URL ? JESSIBUCA_PRO_WASM_URL : e; }; var t, m, R, M, N, O, s, G = Object.assign({}, _), H = "./this.program", V = "object" == typeof window, h = "function" == typeof importScripts, $ = "object" == typeof process && "object" == typeof process.versions && "string" == typeof process.versions.node, e = "", j = ($ ? ((e = h ? Ut.default.dirname(e) + "/" : __dirname + "/"), (O = () => { N || ((M = xt.default), (N = Ut.default)); }), (t = function(e, t) { return O(), (e = N.normalize(e)), M.readFileSync(e, t ? void 0 : "utf8"); }), (R = e => { e = t(e, !0); return (e = e.buffer ? e : new Uint8Array(e)); }), (m = (e, r, i) => { O(), (e = N.normalize(e)), M.readFile(e, function(e, t) { e ? i(e) : r(t.buffer); }); }), 1 < process.argv.length && (H = process.argv[1].replace(/\\/g, "/")), process.argv.slice(2), (z.exports = _), process.on("uncaughtException", function(e) { if ( !( e instanceof function(e) { (this.name = "ExitStatus"), (this.message = "Program terminated with exit(" + e + ")"), (this.status = e); } ) ) throw e; }), process.on("unhandledRejection", function(e) { throw e; }), (_.inspect = function() { return "[Emscripten Module object]"; })) : (V || h) && (h ? (e = self.location.href) : "undefined" != typeof document && document.currentScript && (e = document.currentScript.src), (e = 0 !== e.indexOf("blob:") ? e.substr(0, e.replace(/[?#].*/, "").lastIndexOf("/") + 1) : ""), (t = e => { var t = new XMLHttpRequest(); return t.open("GET", e, !1), t.send(null), t.responseText; }), h && (R = e => { var t = new XMLHttpRequest(); return t.open("GET", e, !1), (t.responseType = "arraybuffer"), t.send(null), new Uint8Array(t.response); }), (m = (e, t, r) => { var i = new XMLHttpRequest(); i.open("GET", e, !0), (i.responseType = "arraybuffer"), (i.onload = () => { 200 == i.status || (0 == i.status && i.response) ? t(i.response) : r(); }), (i.onerror = r), i.send(null); })), _.print || console.log.bind(console)), o = _.printErr || console.warn.bind(console), W = (Object.assign(_, G), _.arguments && _.arguments, _.thisProgram && (H = _.thisProgram), _.quit && _.quit, _.wasmBinary && (s = _.wasmBinary), _.noExitRuntime, "object" != typeof WebAssembly && b("no native wasm support detected"), !1); function Y(e, t) { e || b(t); } var q, u, f, l, K, d, p, X, Z, J, Q = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0; function a(e, t, r) { for (var i = t + r, n = t; e[n] && !(i <= n); ) ++n; if (16 < n - t && e.buffer && Q) return Q.decode(e.subarray(t, n)); for (var s = ""; t < n; ) { var a, o, l = e[t++]; 128 & l ? ((a = 63 & e[t++]), 192 != (224 & l) ? ((o = 63 & e[t++]), (l = 224 == (240 & l) ? ((15 & l) << 12) | (a << 6) | o : ((7 & l) << 18) | (a << 12) | (o << 6) | (63 & e[t++])) < 65536 ? (s += String.fromCharCode(l)) : ((o = l - 65536), (s += String.fromCharCode(55296 | (o >> 10), 56320 | (1023 & o))))) : (s += String.fromCharCode(((31 & l) << 6) | a))) : (s += String.fromCharCode(l)); } return s; } function ee(e, t) { return e ? a(f, e, t) : ""; } function te(e, t, r, i) { if (!(0 < i)) return 0; for (var n = r, s = r + i - 1, a = 0; a < e.length; ++a) { var o = e.charCodeAt(a); if ((o = 55296 <= o && o <= 57343 ? (65536 + ((1023 & o) << 10)) | (1023 & e.charCodeAt(++a)) : o) <= 127) { if (s <= r) break; t[r++] = o; } else if (o <= 2047) { if (s <= r + 1) break; (t[r++] = 192 | (o >> 6)), (t[r++] = 128 | (63 & o)); } else if (o <= 65535) { if (s <= r + 2) break; (t[r++] = 224 | (o >> 12)), (t[r++] = 128 | ((o >> 6) & 63)), (t[r++] = 128 | (63 & o)); } else { if (s <= r + 3) break; (t[r++] = 240 | (o >> 18)), (t[r++] = 128 | ((o >> 12) & 63)), (t[r++] = 128 | ((o >> 6) & 63)), (t[r++] = 128 | (63 & o)); } } return (t[r] = 0), r - n; } function re(e) { for (var t = 0, r = 0; r < e.length; ++r) { var i = e.charCodeAt(r); i <= 127 ? t++ : i <= 2047 ? (t += 2) : 55296 <= i && i <= 57343 ? ((t += 4), ++r) : (t += 3); } return t; } _.INITIAL_MEMORY; var c, g, y, ie = [], ne = [], se = [], r = 0, i = null; function ae() { r++, _.monitorRunDependencies && _.monitorRunDependencies(r); } function oe() { var e; r--, _.monitorRunDependencies && _.monitorRunDependencies(r), 0 == r && i && ((e = i), (i = null), e()); } function b(e) { throw (_.onAbort && _.onAbort(e), o((e = "Aborted(" + e + ")")), (W = !0), (e += ". Build with -sASSERTIONS for more info."), new WebAssembly.RuntimeError(e)); } function le(e) { return e.startsWith("data:application/octet-stream;base64,"); } function de(e) { return e.startsWith("file://"); } function he(e) { try { if (e == c && s) return new Uint8Array(s); if (R) return R(e); throw "both async and sync fetching of the wasm failed"; } catch (e) { b(e); } } function ue(e) { for (; 0 < e.length; ) e.shift()(_); } function fe(e) { (this.excPtr = e), (this.ptr = e - 24), (this.set_type = function(e) { p[(this.ptr + 4) >> 2] = e; }), (this.get_type = function() { return p[(this.ptr + 4) >> 2]; }), (this.set_destructor = function(e) { p[(this.ptr + 8) >> 2] = e; }), (this.get_destructor = function() { return p[(this.ptr + 8) >> 2]; }), (this.set_refcount = function(e) { d[this.ptr >> 2] = e; }), (this.set_caught = function(e) { u[(this.ptr + 12) >> 0] = e = e ? 1 : 0; }), (this.get_caught = function() { return 0 != u[(this.ptr + 12) >> 0]; }), (this.set_rethrown = function(e) { u[(this.ptr + 13) >> 0] = e = e ? 1 : 0; }), (this.get_rethrown = function() { return 0 != u[(this.ptr + 13) >> 0]; }), (this.init = function(e, t) { this.set_adjusted_ptr(0), this.set_type(e), this.set_destructor(t), this.set_refcount(0), this.set_caught(!1), this.set_rethrown(!1); }), (this.add_ref = function() { var e = d[this.ptr >> 2]; d[this.ptr >> 2] = e + 1; }), (this.release_ref = function() { var e = d[this.ptr >> 2]; return (d[this.ptr >> 2] = e - 1), 1 === e; }), (this.set_adjusted_ptr = function(e) { p[(this.ptr + 16) >> 2] = e; }), (this.get_adjusted_ptr = function() { return p[(this.ptr + 16) >> 2]; }), (this.get_exception_ptr = function() { if (Et(this.get_type())) return p[this.excPtr >> 2]; var e = this.get_adjusted_ptr(); return 0 !== e ? e : this.excPtr; }); } le((c = "decoder-pro.wasm")) || ((G = c), (c = _.locateFile ? _.locateFile(G, e) : e + G)); var v = { isAbs: e => "/" === e.charAt(0), splitPath: e => /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1), normalizeArray: (e, t) => { for (var r = 0, i = e.length - 1; 0 <= i; i--) { var n = e[i]; "." === n ? e.splice(i, 1) : ".." === n ? (e.splice(i, 1), r++) : r && (e.splice(i, 1), r--); } if (t) for (; r; r--) e.unshift(".."); return e; }, normalize: e => { var t = v.isAbs(e), r = "/" === e.substr(-1); return ( (e = (e = v .normalizeArray( e.split("/").filter(e => !!e), !t ) .join("/")) || t ? e : ".") && r && (e += "/"), (t ? "/" : "") + e ); }, dirname: e => { var e = v.splitPath(e), t = e[0], e = e[1]; return t || e ? t + (e = e && e.substr(0, e.length - 1)) : "."; }, basename: e => { if ("/" === e) return "/"; var t = (e = (e = v.normalize(e)).replace(/\/$/, "")).lastIndexOf("/"); return -1 === t ? e : e.substr(t + 1); }, join: function() { var e = Array.prototype.slice.call(arguments, 0); return v.normalize(e.join("/")); }, join2: (e, t) => v.normalize(e + "/" + t) }, w = { resolve: function() { for (var e = "", t = !1, r = arguments.length - 1; -1 <= r && !t; r--) { var i = 0 <= r ? arguments[r] : S.cwd(); if ("string" != typeof i) throw new TypeError("Arguments to path.resolve must be strings"); if (!i) return ""; (e = i + "/" + e), (t = v.isAbs(i)); } return ( (t ? "/" : "") + v .normalizeArray( e.split("/").filter(e => !!e), !t ) .join("/") || "." ); }, relative: (e, t) => { function r(e) { for (var t = 0; t < e.length && "" === e[t]; t++); for (var r = e.length - 1; 0 <= r && "" === e[r]; r--); return r < t ? [] : e.slice(t, r - t + 1); } (e = w.resolve(e).substr(1)), (t = w.resolve(t).substr(1)); for (var i = r(e.split("/")), n = r(t.split("/")), s = Math.min(i.length, n.length), a = s, o = 0; o < s; o++) if (i[o] !== n[o]) { a = o; break; } for (var l = [], o = a; o < i.length; o++) l.push(".."); return (l = l.concat(n.slice(a))).join("/"); } }; function pe(e, t, r) { (r = 0 < r ? r : re(e) + 1), (r = new Array(r)), (e = te(e, r, 0, r.length)); return t && (r.length = e), r; } var n = { ttys: [], init: function() {}, shutdown: function() {}, register: function(e, t) { (n.ttys[e] = { input: [], output: [], ops: t }), S.registerDevice(e, n.stream_ops); }, stream_ops: { open: function(e) { var t = n.ttys[e.node.rdev]; if (!t) throw new S.ErrnoError(43); (e.tty = t), (e.seekable = !1); }, close: function(e) { e.tty.ops.flush(e.tty); }, flush: function(e) { e.tty.ops.flush(e.tty); }, read: function(e, t, r, i, n) { if (!e.tty || !e.tty.ops.get_char) throw new S.ErrnoError(60); for (var s, a = 0, o = 0; o < i; o++) { try { s = e.tty.ops.get_char(e.tty); } catch (e) { throw new S.ErrnoError(29); } if (void 0 === s && 0 === a) throw new S.ErrnoError(6); if (null == s) break; a++, (t[r + o] = s); } return a && (e.node.timestamp = Date.now()), a; }, write: function(e, t, r, i, n) { if (!e.tty || !e.tty.ops.put_char) throw new S.ErrnoError(60); try { for (var s = 0; s < i; s++) e.tty.ops.put_char(e.tty, t[r + s]); } catch (e) { throw new S.ErrnoError(29); } return i && (e.node.timestamp = Date.now()), s; } }, default_tty_ops: { get_char: function(e) { if (!e.input.length) { var t = null; if ($) { var r = Buffer.alloc(256), i = 0; try { i = M.readSync(process.stdin.fd, r, 0, 256, -1); } catch (e) { if (!e.toString().includes("EOF")) throw e; i = 0; } t = 0 < i ? r.slice(0, i).toString("utf-8") : null; } else "undefined" != typeof window && "function" == typeof window.prompt ? null !== (t = window.prompt("Input: ")) && (t += "\n") : "function" == typeof readline && null !== (t = readline()) && (t += "\n"); if (!t) return null; e.input = pe(t, !0); } return e.input.shift(); }, put_char: function(e, t) { null === t || 10 === t ? (j(a(e.output, 0)), (e.output = [])) : 0 != t && e.output.push(t); }, flush: function(e) { e.output && 0 < e.output.length && (j(a(e.output, 0)), (e.output = [])); } }, default_tty1_ops: { put_char: function(e, t) { null === t || 10 === t ? (o(a(e.output, 0)), (e.output = [])) : 0 != t && e.output.push(t); }, flush: function(e) { e.output && 0 < e.output.length && (o(a(e.output, 0)), (e.output = [])); } } }; function ce(e) { (t = e), (e = 65536 * Math.ceil(t / 65536)); var t = wt(65536, e); return t ? ((e = e), f.fill(0, t, t + e), t) : 0; } var E = { ops_table: null, mount: function(e) { return E.createNode(null, "/", 16895, 0); }, createNode: function(e, t, r, i) { if (S.isBlkdev(r) || S.isFIFO(r)) throw new S.ErrnoError(63); E.ops_table || (E.ops_table = { dir: { node: { getattr: E.node_ops.getattr, setattr: E.node_ops.setattr, lookup: E.node_ops.lookup, mknod: E.node_ops.mknod, rename: E.node_ops.rename, unlink: E.node_ops.unlink, rmdir: E.node_ops.rmdir, readdir: E.node_ops.readdir, symlink: E.node_ops.symlink }, stream: { llseek: E.stream_ops.llseek } }, file: { node: { getattr: E.node_ops.getattr, setattr: E.node_ops.setattr }, stream: { llseek: E.stream_ops.llseek, read: E.stream_ops.read, write: E.stream_ops.write, allocate: E.stream_ops.allocate, mmap: E.stream_ops.mmap, msync: E.stream_ops.msync } }, link: { node: { getattr: E.node_ops.getattr, setattr: E.node_ops.setattr, readlink: E.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: E.node_ops.getattr, setattr: E.node_ops.setattr }, stream: S.chrdev_stream_ops } }); r = S.createNode(e, t, r, i); return ( S.isDir(r.mode) ? ((r.node_ops = E.ops_table.dir.node), (r.stream_ops = E.ops_table.dir.stream), (r.contents = {})) : S.isFile(r.mode) ? ((r.node_ops = E.ops_table.file.node), (r.stream_ops = E.ops_table.file.stream), (r.usedBytes = 0), (r.contents = null)) : S.isLink(r.mode) ? ((r.node_ops = E.ops_table.link.node), (r.stream_ops = E.ops_table.link.stream)) : S.isChrdev(r.mode) && ((r.node_ops = E.ops_table.chrdev.node), (r.stream_ops = E.ops_table.chrdev.stream)), (r.timestamp = Date.now()), e && ((e.contents[t] = r), (e.timestamp = r.timestamp)), r ); }, getFileDataAsTypedArray: function(e) { return e.contents ? (e.contents.subarray ? e.contents.subarray(0, e.usedBytes) : new Uint8Array(e.contents)) : new Uint8Array(0); }, expandFileStorage: function(e, t) { var r = e.contents ? e.contents.length : 0; t <= r || ((t = Math.max(t, (r * (r < 1048576 ? 2 : 1.125)) >>> 0)), 0 != r && (t = Math.max(t, 256)), (r = e.contents), (e.contents = new Uint8Array(t)), 0 < e.usedBytes && e.contents.set(r.subarray(0, e.usedBytes), 0)); }, resizeFileStorage: function(e, t) { var r; e.usedBytes != t && (0 == t ? ((e.contents = null), (e.usedBytes = 0)) : ((r = e.contents), (e.contents = new Uint8Array(t)), r && e.contents.set(r.subarray(0, Math.min(t, e.usedBytes))), (e.usedBytes = t))); }, node_ops: { getattr: function(e) { var t = {}; return ( (t.dev = S.isChrdev(e.mode) ? e.id : 1), (t.ino = e.id), (t.mode = e.mode), (t.nlink = 1), (t.uid = 0), (t.gid = 0), (t.rdev = e.rdev), S.isDir(e.mode) ? (t.size = 4096) : S.isFile(e.mode) ? (t.size = e.usedBytes) : S.isLink(e.mode) ? (t.size = e.link.length) : (t.size = 0), (t.atime = new Date(e.timestamp)), (t.mtime = new Date(e.timestamp)), (t.ctime = new Date(e.timestamp)), (t.blksize = 4096), (t.blocks = Math.ceil(t.size / t.blksize)), t ); }, setattr: function(e, t) { void 0 !== t.mode && (e.mode = t.mode), void 0 !== t.timestamp && (e.timestamp = t.timestamp), void 0 !== t.size && E.resizeFileStorage(e, t.size); }, lookup: function(e, t) { throw S.genericErrors[44]; }, mknod: function(e, t, r, i) { return E.createNode(e, t, r, i); }, rename: function(e, t, r) { if (S.isDir(e.mode)) { var i; try { i = S.lookupNode(t, r); } catch (e) {} if (i) for (var n in i.contents) throw new S.ErrnoError(55); } delete e.parent.contents[e.name], (e.parent.timestamp = Date.now()), (e.name = r), (t.contents[r] = e), (t.timestamp = e.parent.timestamp), (e.parent = t); }, unlink: function(e, t) { delete e.contents[t], (e.timestamp = Date.now()); }, rmdir: function(e, t) { for (var r in S.lookupNode(e, t).contents) throw new S.ErrnoError(55); delete e.contents[t], (e.timestamp = Date.now()); }, readdir: function(e) { var t, r = [".", ".."]; for (t in e.contents) e.contents.hasOwnProperty(t) && r.push(t); return r; }, symlink: function(e, t, r) { e = E.createNode(e, t, 41471, 0); return (e.link = r), e; }, readlink: function(e) { if (S.isLink(e.mode)) return e.link; throw new S.ErrnoError(28); } }, stream_ops: { read: function(e, t, r, i, n) { var s = e.node.contents; if (n >= e.node.usedBytes) return 0; var a = Math.min(e.node.usedBytes - n, i); if (8 < a && s.subarray) t.set(s.subarray(n, n + a), r); else for (var o = 0; o < a; o++) t[r + o] = s[n + o]; return a; }, write: function(e, t, r, i, n, s) { if (!i) return 0; var a = e.node; if (((a.timestamp = Date.now()), t.subarray && (!a.contents || a.contents.subarray))) { if (s) return (a.contents = t.subarray(r, r + i)), (a.usedBytes = i); if (0 === a.usedBytes && 0 === n) return (a.contents = t.slice(r, r + i)), (a.usedBytes = i); if (n + i <= a.usedBytes) return a.contents.set(t.subarray(r, r + i), n), i; } if ((E.expandFileStorage(a, n + i), a.contents.subarray && t.subarray)) a.contents.set(t.subarray(r, r + i), n); else for (var o = 0; o < i; o++) a.contents[n + o] = t[r + o]; return (a.usedBytes = Math.max(a.usedBytes, n + i)), i; }, llseek: function(e, t, r) { if ((1 === r ? (t += e.position) : 2 === r && S.isFile(e.node.mode) && (t += e.node.usedBytes), t < 0)) throw new S.ErrnoError(28); return t; }, allocate: function(e, t, r) { E.expandFileStorage(e.node, t + r), (e.node.usedBytes = Math.max(e.node.usedBytes, t + r)); }, mmap: function(e, t, r, i, n) { if (!S.isFile(e.node.mode)) throw new S.ErrnoError(43); var s, a, e = e.node.contents; if (2 & n || e.buffer !== q) { if ( ((0 < r || r + t < e.length) && (e = e.subarray ? e.subarray(r, r + t) : Array.prototype.slice.call(e, r, r + t)), (a = !0), !(s = ce(t))) ) throw new S.ErrnoError(48); u.set(e, s); } else (a = !1), (s = e.byteOffset); return { ptr: s, allocated: a }; }, msync: function(e, t, r, i, n) { if (S.isFile(e.node.mode)) return 2 & n || E.stream_ops.write(e, t, 0, i, r, !1), 0; throw new S.ErrnoError(43); } } }, S = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: !1, ignorePermissions: !0, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: function(e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}; if (!(e = w.resolve(S.cwd(), e))) return { path: "", node: null }; if (8 < (t = Object.assign({ follow_mount: !0, recurse_count: 0 }, t)).recurse_count) throw new S.ErrnoError(32); for ( var r = v.normalizeArray( e.split("/").filter(e => !!e), !1 ), i = S.root, n = "/", s = 0; s < r.length; s++ ) { var a = s === r.length - 1; if (a && t.parent) break; if ( ((i = S.lookupNode(i, r[s])), (n = v.join2(n, r[s])), !S.isMountpoint(i) || (a && !t.follow_mount) || (i = i.mounted.root), !a || t.follow) ) for (var o = 0; S.isLink(i.mode); ) { var l = S.readlink(n), n = w.resolve(v.dirname(n), l), i = S.lookupPath(n, { recurse_count: t.recurse_count + 1 }).node; if (40 < o++) throw new S.ErrnoError(32); } } return { path: n, node: i }; }, getPath: e => { for (var t, r; ; ) { if (S.isRoot(e)) return (r = e.mount.mountpoint), t ? ("/" !== r[r.length - 1] ? r + "/" + t : r + t) : r; (t = t ? e.name + "/" + t : e.name), (e = e.parent); } }, hashName: (e, t) => { for (var r = 0, i = 0; i < t.length; i++) r = ((r << 5) - r + t.charCodeAt(i)) | 0; return ((e + r) >>> 0) % S.nameTable.length; }, hashAddNode: e => { var t = S.hashName(e.parent.id, e.name); (e.name_next = S.nameTable[t]), (S.nameTable[t] = e); }, hashRemoveNode: e => { var t = S.hashName(e.parent.id, e.name); if (S.nameTable[t] === e) S.nameTable[t] = e.name_next; else for (var r = S.nameTable[t]; r; ) { if (r.name_next === e) { r.name_next = e.name_next; break; } r = r.name_next; } }, lookupNode: (e, t) => { var r = S.mayLookup(e); if (r) throw new S.ErrnoError(r, e); for (var r = S.hashName(e.id, t), i = S.nameTable[r]; i; i = i.name_next) { var n = i.name; if (i.parent.id === e.id && n === t) return i; } return S.lookup(e, t); }, createNode: (e, t, r, i) => { e = new S.FSNode(e, t, r, i); return S.hashAddNode(e), e; }, destroyNode: e => { S.hashRemoveNode(e); }, isRoot: e => e === e.parent, isMountpoint: e => !!e.mounted, isFile: e => 32768 == (61440 & e), isDir: e => 16384 == (61440 & e), isLink: e => 40960 == (61440 & e), isChrdev: e => 8192 == (61440 & e), isBlkdev: e => 24576 == (61440 & e), isFIFO: e => 4096 == (61440 & e), isSocket: e => 49152 == (49152 & e), flagModes: { r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090 }, modeStringToFlags: e => { var t = S.flagModes[e]; if (void 0 === t) throw new Error("Unknown file open mode: " + e); return t; }, flagsToPermissionString: e => { var t = ["r", "w", "rw"][3 & e]; return 512 & e && (t += "w"), t; }, nodePermissions: (e, t) => S.ignorePermissions || ((!t.includes("r") || 292 & e.mode) && (!t.includes("w") || 146 & e.mode) && (!t.includes("x") || 73 & e.mode)) ? 0 : 2, mayLookup: e => { return S.nodePermissions(e, "x") || (e.node_ops.lookup ? 0 : 2); }, mayCreate: (e, t) => { try { return S.lookupNode(e, t), 20; } catch (e) {} return S.nodePermissions(e, "wx"); }, mayDelete: (e, t, r) => { var i; try { i = S.lookupNode(e, t); } catch (e) { return e.errno; } t = S.nodePermissions(e, "wx"); if (t) return t; if (r) { if (!S.isDir(i.mode)) return 54; if (S.isRoot(i) || S.getPath(i) === S.cwd()) return 10; } else if (S.isDir(i.mode)) return 31; return 0; }, mayOpen: (e, t) => e ? S.isLink(e.mode) ? 32 : S.isDir(e.mode) && ("r" !== S.flagsToPermissionString(t) || 512 & t) ? 31 : S.nodePermissions(e, S.flagsToPermissionString(t)) : 44, MAX_OPEN_FDS: 4096, nextfd: function() { for ( var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0, t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : S.MAX_OPEN_FDS, r = e; r <= t; r++ ) if (!S.streams[r]) return r; throw new S.ErrnoError(33); }, getStream: e => S.streams[e], createStream: (e, t, r) => { S.FSStream || ((S.FSStream = function() { this.shared = {}; }), (S.FSStream.prototype = {}), Object.defineProperties(S.FSStream.prototype, { object: { get: function() { return this.node; }, set: function(e) { this.node = e; } }, isRead: { get: function() { return 1 != (2097155 & this.flags); } }, isWrite: { get: function() { return 0 != (2097155 & this.flags); } }, isAppend: { get: function() { return 1024 & this.flags; } }, flags: { get: function() { return this.shared.flags; }, set: function(e) { this.shared.flags = e; } }, position: { get: function() { return this.shared.position; }, set: function(e) { this.shared.position = e; } } })), (e = Object.assign(new S.FSStream(), e)); t = S.nextfd(t, r); return (e.fd = t), (S.streams[t] = e); }, closeStream: e => { S.streams[e] = null; }, chrdev_stream_ops: { open: e => { var t = S.getDevice(e.node.rdev); (e.stream_ops = t.stream_ops), e.stream_ops.open && e.stream_ops.open(e); }, llseek: () => { throw new S.ErrnoError(70); } }, major: e => e >> 8, minor: e => 255 & e, makedev: (e, t) => (e << 8) | t, registerDevice: (e, t) => { S.devices[e] = { stream_ops: t }; }, getDevice: e => S.devices[e], getMounts: e => { for (var t = [], r = [e]; r.length; ) { var i = r.pop(); t.push(i), r.push.apply(r, i.mounts); } return t; }, syncfs: (t, r) => { "function" == typeof t && ((r = t), (t = !1)), S.syncFSRequests++, 1 < S.syncFSRequests && o("warning: " + S.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); var i = S.getMounts(S.root.mount), n = 0; function s(e) { return S.syncFSRequests--, r(e); } function a(e) { if (e) return a.errored ? void 0 : ((a.errored = !0), s(e)); ++n >= i.length && s(null); } i.forEach(e => { if (!e.type.syncfs) return a(null); e.type.syncfs(e, t, a); }); }, mount: (e, t, r) => { var i, n = "/" === r, s = !r; if (n && S.root) throw new S.ErrnoError(10); if (!n && !s) { s = S.lookupPath(r, { follow_mount: !1 }); if (((r = s.path), (i = s.node), S.isMountpoint(i))) throw new S.ErrnoError(10); if (!S.isDir(i.mode)) throw new S.ErrnoError(54); } (s = { type: e, opts: t, mountpoint: r, mounts: [] }), (t = e.mount(s)); return ((t.mount = s).root = t), n ? (S.root = t) : i && ((i.mounted = s), i.mount && i.mount.mounts.push(s)), t; }, unmount: e => { e = S.lookupPath(e, { follow_mount: !1 }); if (!S.isMountpoint(e.node)) throw new S.ErrnoError(28); var e = e.node, t = e.mounted, i = S.getMounts(t), t = (Object.keys(S.nameTable).forEach(e => { for (var t = S.nameTable[e]; t; ) { var r = t.name_next; i.includes(t.mount) && S.destroyNode(t), (t = r); } }), (e.mounted = null), e.mount.mounts.indexOf(t)); e.mount.mounts.splice(t, 1); }, lookup: (e, t) => e.node_ops.lookup(e, t), mknod: (e, t, r) => { var i = S.lookupPath(e, { parent: !0 }).node, e = v.basename(e); if (!e || "." === e || ".." === e) throw new S.ErrnoError(28); var n = S.mayCreate(i, e); if (n) throw new S.ErrnoError(n); if (i.node_ops.mknod) return i.node_ops.mknod(i, e, t, r); throw new S.ErrnoError(63); }, create: (e, t) => S.mknod(e, (t = ((t = void 0 !== t ? t : 438) & 4095) | 32768), 0), mkdir: (e, t) => S.mknod(e, (t = ((t = void 0 !== t ? t : 511) & 1023) | 16384), 0), mkdirTree: (e, t) => { for (var r = e.split("/"), i = "", n = 0; n < r.length; ++n) if (r[n]) { i += "/" + r[n]; try { S.mkdir(i, t); } catch (e) { if (20 != e.errno) throw e; } } }, mkdev: (e, t, r) => (void 0 === r && ((r = t), (t = 438)), S.mknod(e, (t |= 8192), r)), symlink: (e, t) => { if (!w.resolve(e)) throw new S.ErrnoError(44); var r = S.lookupPath(t, { parent: !0 }).node; if (!r) throw new S.ErrnoError(44); var t = v.basename(t), i = S.mayCreate(r, t); if (i) throw new S.ErrnoError(i); if (r.node_ops.symlink) return r.node_ops.symlink(r, t, e); throw new S.ErrnoError(63); }, rename: (e, t) => { var r = v.dirname(e), i = v.dirname(t), n = v.basename(e), s = v.basename(t), a = S.lookupPath(e, { parent: !0 }).node, o = S.lookupPath(t, { parent: !0 }).node; if (!a || !o) throw new S.ErrnoError(44); if (a.mount !== o.mount) throw new S.ErrnoError(75); var l, d = S.lookupNode(a, n); if ("." !== w.relative(e, i).charAt(0)) throw new S.ErrnoError(28); if ("." !== w.relative(t, r).charAt(0)) throw new S.ErrnoError(55); try { l = S.lookupNode(o, s); } catch (e) {} if (d !== l) { (i = S.isDir(d.mode)), (t = S.mayDelete(a, n, i)); if (t) throw new S.ErrnoError(t); if ((t = l ? S.mayDelete(o, s, i) : S.mayCreate(o, s))) throw new S.ErrnoError(t); if (!a.node_ops.rename) throw new S.ErrnoError(63); if (S.isMountpoint(d) || (l && S.isMountpoint(l))) throw new S.ErrnoError(10); if (o !== a && (t = S.nodePermissions(a, "w"))) throw new S.ErrnoError(t); S.hashRemoveNode(d); try { a.node_ops.rename(d, o, s); } catch (e) { throw e; } finally { S.hashAddNode(d); } } }, rmdir: e => { var t = S.lookupPath(e, { parent: !0 }).node, e = v.basename(e), r = S.lookupNode(t, e), i = S.mayDelete(t, e, !0); if (i) throw new S.ErrnoError(i); if (!t.node_ops.rmdir) throw new S.ErrnoError(63); if (S.isMountpoint(r)) throw new S.ErrnoError(10); t.node_ops.rmdir(t, e), S.destroyNode(r); }, readdir: e => { e = S.lookupPath(e, { follow: !0 }).node; if (e.node_ops.readdir) return e.node_ops.readdir(e); throw new S.ErrnoError(54); }, unlink: e => { var t = S.lookupPath(e, { parent: !0 }).node; if (!t) throw new S.ErrnoError(44); var e = v.basename(e), r = S.lookupNode(t, e), i = S.mayDelete(t, e, !1); if (i) throw new S.ErrnoError(i); if (!t.node_ops.unlink) throw new S.ErrnoError(63); if (S.isMountpoint(r)) throw new S.ErrnoError(10); t.node_ops.unlink(t, e), S.destroyNode(r); }, readlink: e => { e = S.lookupPath(e).node; if (!e) throw new S.ErrnoError(44); if (e.node_ops.readlink) return w.resolve(S.getPath(e.parent), e.node_ops.readlink(e)); throw new S.ErrnoError(28); }, stat: (e, t) => { e = S.lookupPath(e, { follow: !t }).node; if (!e) throw new S.ErrnoError(44); if (e.node_ops.getattr) return e.node_ops.getattr(e); throw new S.ErrnoError(63); }, lstat: e => S.stat(e, !0), chmod: (e, t, r) => { r = "string" == typeof e ? S.lookupPath(e, { follow: !r }).node : e; if (!r.node_ops.setattr) throw new S.ErrnoError(63); r.node_ops.setattr(r, { mode: (4095 & t) | (-4096 & r.mode), timestamp: Date.now() }); }, lchmod: (e, t) => { S.chmod(e, t, !0); }, fchmod: (e, t) => { e = S.getStream(e); if (!e) throw new S.ErrnoError(8); S.chmod(e.node, t); }, chown: (e, t, r, i) => { i = "string" == typeof e ? S.lookupPath(e, { follow: !i }).node : e; if (!i.node_ops.setattr) throw new S.ErrnoError(63); i.node_ops.setattr(i, { timestamp: Date.now() }); }, lchown: (e, t, r) => { S.chown(e, t, r, !0); }, fchown: (e, t, r) => { e = S.getStream(e); if (!e) throw new S.ErrnoError(8); S.chown(e.node, t, r); }, truncate: (e, t) => { if (t < 0) throw new S.ErrnoError(28); e = "string" == typeof e ? S.lookupPath(e, { follow: !0 }).node : e; if (!e.node_ops.setattr) throw new S.ErrnoError(63); if (S.isDir(e.mode)) throw new S.ErrnoError(31); if (!S.isFile(e.mode)) throw new S.ErrnoError(28); var r = S.nodePermissions(e, "w"); if (r) throw new S.ErrnoError(r); e.node_ops.setattr(e, { size: t, timestamp: Date.now() }); }, ftruncate: (e, t) => { e = S.getStream(e); if (!e) throw new S.ErrnoError(8); if (0 == (2097155 & e.flags)) throw new S.ErrnoError(28); S.truncate(e.node, t); }, utime: (e, t, r) => { e = S.lookupPath(e, { follow: !0 }).node; e.node_ops.setattr(e, { timestamp: Math.max(t, r) }); }, open: (e, t, r) => { if ("" === e) throw new S.ErrnoError(44); var i; if ( ((r = void 0 === r ? 438 : r), (r = 64 & (t = "string" == typeof t ? S.modeStringToFlags(t) : t) ? (4095 & r) | 32768 : 0), "object" == typeof e) ) i = e; else { e = v.normalize(e); try { i = S.lookupPath(e, { follow: !(131072 & t) }).node; } catch (e) {} } var n = !1; if (64 & t) if (i) { if (128 & t) throw new S.ErrnoError(20); } else (i = S.mknod(e, r, 0)), (n = !0); if (!i) throw new S.ErrnoError(44); if ((S.isChrdev(i.mode) && (t &= -513), 65536 & t && !S.isDir(i.mode))) throw new S.ErrnoError(54); if (!n) { r = S.mayOpen(i, t); if (r) throw new S.ErrnoError(r); } 512 & t && !n && S.truncate(i, 0), (t &= -131713); r = S.createStream({ node: i, path: S.getPath(i), flags: t, seekable: !0, position: 0, stream_ops: i.stream_ops, ungotten: [], error: !1 }); return ( r.stream_ops.open && r.stream_ops.open(r), !_.logReadFiles || 1 & t || (S.readFiles || (S.readFiles = {}), e in S.readFiles || (S.readFiles[e] = 1)), r ); }, close: e => { if (S.isClosed(e)) throw new S.ErrnoError(8); e.getdents && (e.getdents = null); try { e.stream_ops.close && e.stream_ops.close(e); } catch (e) { throw e; } finally { S.closeStream(e.fd); } e.fd = null; }, isClosed: e => null === e.fd, llseek: (e, t, r) => { if (S.isClosed(e)) throw new S.ErrnoError(8); if (!e.seekable || !e.stream_ops.llseek) throw new S.ErrnoError(70); if (0 != r && 1 != r && 2 != r) throw new S.ErrnoError(28); return (e.position = e.stream_ops.llseek(e, t, r)), (e.ungotten = []), e.position; }, read: (e, t, r, i, n) => { if (i < 0 || n < 0) throw new S.ErrnoError(28); if (S.isClosed(e)) throw new S.ErrnoError(8); if (1 == (2097155 & e.flags)) throw new S.ErrnoError(8); if (S.isDir(e.node.mode)) throw new S.ErrnoError(31); if (!e.stream_ops.read) throw new S.ErrnoError(28); var s = void 0 !== n; if (s) { if (!e.seekable) throw new S.ErrnoError(70); } else n = e.position; t = e.stream_ops.read(e, t, r, i, n); return s || (e.position += t), t; }, write: (e, t, r, i, n, s) => { if (i < 0 || n < 0) throw new S.ErrnoError(28); if (S.isClosed(e)) throw new S.ErrnoError(8); if (0 == (2097155 & e.flags)) throw new S.ErrnoError(8); if (S.isDir(e.node.mode)) throw new S.ErrnoError(31); if (!e.stream_ops.write) throw new S.ErrnoError(28); e.seekable && 1024 & e.flags && S.llseek(e, 0, 2); var a = void 0 !== n; if (a) { if (!e.seekable) throw new S.ErrnoError(70); } else n = e.position; t = e.stream_ops.write(e, t, r, i, n, s); return a || (e.position += t), t; }, allocate: (e, t, r) => { if (S.isClosed(e)) throw new S.ErrnoError(8); if (t < 0 || r <= 0) throw new S.ErrnoError(28); if (0 == (2097155 & e.flags)) throw new S.ErrnoError(8); if (!S.isFile(e.node.mode) && !S.isDir(e.node.mode)) throw new S.ErrnoError(43); if (!e.stream_ops.allocate) throw new S.ErrnoError(138); e.stream_ops.allocate(e, t, r); }, mmap: (e, t, r, i, n) => { if (0 != (2 & i) && 0 == (2 & n) && 2 != (2097155 & e.flags)) throw new S.ErrnoError(2); if (1 == (2097155 & e.flags)) throw new S.ErrnoError(2); if (e.stream_ops.mmap) return e.stream_ops.mmap(e, t, r, i, n); throw new S.ErrnoError(43); }, msync: (e, t, r, i, n) => (e && e.stream_ops.msync ? e.stream_ops.msync(e, t, r, i, n) : 0), munmap: e => 0, ioctl: (e, t, r) => { if (e.stream_ops.ioctl) return e.stream_ops.ioctl(e, t, r); throw new S.ErrnoError(59); }, readFile: function(e) { let t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}; if (((t.flags = t.flags || 0), (t.encoding = t.encoding || "binary"), "utf8" !== t.encoding && "binary" !== t.encoding)) throw new Error('Invalid encoding type "' + t.encoding + '"'); var r, i = S.open(e, t.flags), e = S.stat(e).size, n = new Uint8Array(e); return S.read(i, n, 0, e, 0), "utf8" === t.encoding ? (r = a(n, 0)) : "binary" === t.encoding && (r = n), S.close(i), r; }, writeFile: function(e, t) { let r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; r.flags = r.flags || 577; e = S.open(e, r.flags, r.mode); if ("string" == typeof t) { var i = new Uint8Array(re(t) + 1), n = te(t, i, 0, i.length); S.write(e, i, 0, n, void 0, r.canOwn); } else { if (!ArrayBuffer.isView(t)) throw new Error("Unsupported data type"); S.write(e, t, 0, t.byteLength, void 0, r.canOwn); } S.close(e); }, cwd: () => S.currentPath, chdir: e => { e = S.lookupPath(e, { follow: !0 }); if (null === e.node) throw new S.ErrnoError(44); if (!S.isDir(e.node.mode)) throw new S.ErrnoError(54); var t = S.nodePermissions(e.node, "x"); if (t) throw new S.ErrnoError(t); S.currentPath = e.path; }, createDefaultDirectories: () => { S.mkdir("/tmp"), S.mkdir("/home"), S.mkdir("/home/web_user"); }, createDefaultDevices: () => { S.mkdir("/dev"), S.registerDevice(S.makedev(1, 3), { read: () => 0, write: (e, t, r, i, n) => i }), S.mkdev("/dev/null", S.makedev(1, 3)), n.register(S.makedev(5, 0), n.default_tty_ops), n.register(S.makedev(6, 0), n.default_tty1_ops), S.mkdev("/dev/tty", S.makedev(5, 0)), S.mkdev("/dev/tty1", S.makedev(6, 0)); var e = (function() { var e; if ("object" == typeof crypto && "function" == typeof crypto.getRandomValues) return (e = new Uint8Array(1)), () => (crypto.getRandomValues(e), e[0]); if ($) try { var t = Bt.default; return () => t.randomBytes(1)[0]; } catch (e) {} return () => b("randomDevice"); })(); S.createDevice("/dev", "random", e), S.createDevice("/dev", "urandom", e), S.mkdir("/dev/shm"), S.mkdir("/dev/shm/tmp"); }, createSpecialDirectories: () => { S.mkdir("/proc"); var t = S.mkdir("/proc/self"); S.mkdir("/proc/self/fd"), S.mount( { mount: () => { var e = S.createNode(t, "fd", 16895, 73); return ( (e.node_ops = { lookup: (e, t) => { var r = S.getStream(+t); if (!r) throw new S.ErrnoError(8); t = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => r.path } }; return (t.parent = t); } }), e ); } }, {}, "