Spaces:
Running
Running
| var ut = (x, y) => () => (y || x((y = { exports: {} }).exports, y), y.exports); | |
| var wt = ut((je, B) => { | |
| var ke = {}, Me = /* @__PURE__ */ Object.freeze({ | |
| __proto__: null, | |
| default: ke | |
| }), B = { exports: {} }, je = B.exports, Te = (() => { | |
| var x = typeof document < "u" ? document.currentScript?.src : void 0; | |
| return typeof __filename < "u" && (x = x || __filename), function(y = {}) { | |
| var T, l = y, q, O, he = new Promise((e, a) => { | |
| q = e, O = a; | |
| }), _e = typeof window == "object", re = typeof WorkerGlobalScope < "u", se = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer"; | |
| l.expectedDataFileDownloads ??= 0, l.expectedDataFileDownloads++, (() => { | |
| var e = typeof ENVIRONMENT_IS_PTHREAD < "u" && ENVIRONMENT_IS_PTHREAD, a = typeof ENVIRONMENT_IS_WASM_WORKER < "u" && ENVIRONMENT_IS_WASM_WORKER; | |
| if (e || a) return; | |
| var t = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; | |
| function r(s) { | |
| typeof window == "object" ? window.encodeURIComponent(window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/")) + "/") : typeof process > "u" && typeof location < "u" && encodeURIComponent(location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/"); | |
| var i = "piper_phonemize.data", o = "piper_phonemize.data", d = l.locateFile ? l.locateFile(o, "") : o, m = s.remote_package_size; | |
| function g(f, S, N, A) { | |
| if (t) { | |
| (ke || Me).readFile(f, (w, M) => { | |
| w ? A(w) : N(M.buffer); | |
| }); | |
| return; | |
| } | |
| l.dataFileDownloads ??= {}, fetch(f).catch((w) => Promise.reject(new Error(`Network Error: ${f}`, { cause: w }))).then((w) => { | |
| if (!w.ok) | |
| return Promise.reject(new Error(`${w.status}: ${w.url}`)); | |
| if (!w.body && w.arrayBuffer) | |
| return w.arrayBuffer().then(N); | |
| const M = w.body.getReader(), R = () => M.read().then(gt).catch((ve) => Promise.reject(new Error(`Unexpected error while handling : ${w.url} ${ve}`, { cause: ve }))), F = [], C = w.headers, D = Number(C.get("Content-Length") ?? S); | |
| let ra = 0; | |
| const gt = ({ done: ve, value: sa }) => { | |
| if (ve) { | |
| const te = new Uint8Array(F.map((U) => U.length).reduce((U, vt) => U + vt, 0)); | |
| let ne = 0; | |
| for (const U of F) | |
| te.set(U, ne), ne += U.length; | |
| N(te.buffer); | |
| } else { | |
| F.push(sa), ra += sa.length, l.dataFileDownloads[f] = { loaded: ra, total: D }; | |
| let te = 0, ne = 0; | |
| for (const U of Object.values(l.dataFileDownloads)) | |
| te += U.loaded, ne += U.total; | |
| return l.setStatus?.(`Downloading data... (${te}/${ne})`), R(); | |
| } | |
| }; | |
| return l.setStatus?.("Downloading data..."), R(); | |
| }); | |
| } | |
| function h(f) { | |
| console.error("package error:", f); | |
| } | |
| var _ = null, u = l.getPreloadedPackage ? l.getPreloadedPackage(d, m) : null; | |
| u || g(d, m, (f) => { | |
| _ ? (_(f), _ = null) : u = f; | |
| }, h); | |
| function p(f) { | |
| function S(R, F) { | |
| if (!R) throw F + new Error().stack; | |
| } | |
| f.FS_createPath("/", "espeak-ng-data", !0, !0), f.FS_createPath("/espeak-ng-data", "lang", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "aav", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "art", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "azc", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "bat", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "bnt", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "ccs", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "cel", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "cus", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "dra", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "esx", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "gmq", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "gmw", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "grk", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "inc", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "ine", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "ira", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "iro", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "itc", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "jpx", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "map", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "miz", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "myn", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "poz", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "roa", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "sai", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "sem", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "sit", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "tai", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "trk", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "urj", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "zle", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "zls", !0, !0), f.FS_createPath("/espeak-ng-data/lang", "zlw", !0, !0), f.FS_createPath("/espeak-ng-data", "mbrola_ph", !0, !0), f.FS_createPath("/espeak-ng-data", "voices", !0, !0), f.FS_createPath("/espeak-ng-data/voices", "!v", !0, !0), f.FS_createPath("/espeak-ng-data/voices", "mb", !0, !0); | |
| function N(R, F, C) { | |
| this.start = R, this.end = F, this.audio = C; | |
| } | |
| N.prototype = { requests: {}, open: function(R, F) { | |
| this.name = F, this.requests[F] = this, f.addRunDependency(`fp ${this.name}`); | |
| }, send: function() { | |
| }, onload: function() { | |
| var R = this.byteArray.subarray(this.start, this.end); | |
| this.finish(R); | |
| }, finish: function(R) { | |
| var F = this; | |
| f.FS_createDataFile(this.name, null, R, !0, !0, !0), f.removeRunDependency(`fp ${F.name}`), this.requests[this.name] = null; | |
| } }; | |
| for (var A = s.files, w = 0; w < A.length; ++w) | |
| new N(A[w].start, A[w].end, A[w].audio || 0).open("GET", A[w].filename); | |
| function M(R) { | |
| S(R, "Loading data file failed."), S(R.constructor.name === ArrayBuffer.name, "bad input to processPackageData"); | |
| var F = new Uint8Array(R); | |
| N.prototype.byteArray = F; | |
| for (var C = s.files, D = 0; D < C.length; ++D) | |
| N.prototype.requests[C[D].filename].onload(); | |
| f.removeRunDependency("datafile_piper_phonemize.data"); | |
| } | |
| f.addRunDependency("datafile_piper_phonemize.data"), f.preloadResults ??= {}, f.preloadResults[i] = { fromCache: !1 }, u ? (M(u), u = null) : _ = M; | |
| } | |
| l.calledRun ? p(l) : (l.preRun ??= []).push(p); | |
| } | |
| r({ files: [{ filename: "/espeak-ng-data/af_dict", start: 0, end: 121473 }, { filename: "/espeak-ng-data/am_dict", start: 121473, end: 185351 }, { filename: "/espeak-ng-data/an_dict", start: 185351, end: 192042 }, { filename: "/espeak-ng-data/ar_dict", start: 192042, end: 670207 }, { filename: "/espeak-ng-data/as_dict", start: 670207, end: 675212 }, { filename: "/espeak-ng-data/az_dict", start: 675212, end: 718985 }, { filename: "/espeak-ng-data/ba_dict", start: 718985, end: 721083 }, { filename: "/espeak-ng-data/be_dict", start: 721083, end: 723735 }, { filename: "/espeak-ng-data/bg_dict", start: 723735, end: 810786 }, { filename: "/espeak-ng-data/bn_dict", start: 810786, end: 900765 }, { filename: "/espeak-ng-data/bpy_dict", start: 900765, end: 905991 }, { filename: "/espeak-ng-data/bs_dict", start: 905991, end: 953059 }, { filename: "/espeak-ng-data/ca_dict", start: 953059, end: 998625 }, { filename: "/espeak-ng-data/chr_dict", start: 998625, end: 1001484 }, { filename: "/espeak-ng-data/cmn_dict", start: 1001484, end: 2567819 }, { filename: "/espeak-ng-data/cs_dict", start: 2567819, end: 2617464 }, { filename: "/espeak-ng-data/cv_dict", start: 2617464, end: 2618808 }, { filename: "/espeak-ng-data/cy_dict", start: 2618808, end: 2661938 }, { filename: "/espeak-ng-data/da_dict", start: 2661938, end: 2907225 }, { filename: "/espeak-ng-data/de_dict", start: 2907225, end: 2975501 }, { filename: "/espeak-ng-data/el_dict", start: 2975501, end: 3048342 }, { filename: "/espeak-ng-data/en_dict", start: 3048342, end: 3215286 }, { filename: "/espeak-ng-data/eo_dict", start: 3215286, end: 3219952 }, { filename: "/espeak-ng-data/es_dict", start: 3219952, end: 3269204 }, { filename: "/espeak-ng-data/et_dict", start: 3269204, end: 3313467 }, { filename: "/espeak-ng-data/eu_dict", start: 3313467, end: 3362308 }, { filename: "/espeak-ng-data/fa_dict", start: 3362308, end: 3655543 }, { filename: "/espeak-ng-data/fi_dict", start: 3655543, end: 3699471 }, { filename: "/espeak-ng-data/fr_dict", start: 3699471, end: 3763198 }, { filename: "/espeak-ng-data/ga_dict", start: 3763198, end: 3815871 }, { filename: "/espeak-ng-data/gd_dict", start: 3815871, end: 3864992 }, { filename: "/espeak-ng-data/gn_dict", start: 3864992, end: 3868240 }, { filename: "/espeak-ng-data/grc_dict", start: 3868240, end: 3871673 }, { filename: "/espeak-ng-data/gu_dict", start: 3871673, end: 3954153 }, { filename: "/espeak-ng-data/hak_dict", start: 3954153, end: 3957488 }, { filename: "/espeak-ng-data/haw_dict", start: 3957488, end: 3959931 }, { filename: "/espeak-ng-data/he_dict", start: 3959931, end: 3966894 }, { filename: "/espeak-ng-data/hi_dict", start: 3966894, end: 4059037 }, { filename: "/espeak-ng-data/hr_dict", start: 4059037, end: 4108425 }, { filename: "/espeak-ng-data/ht_dict", start: 4108425, end: 4110228 }, { filename: "/espeak-ng-data/hu_dict", start: 4110228, end: 4264013 }, { filename: "/espeak-ng-data/hy_dict", start: 4264013, end: 4326276 }, { filename: "/espeak-ng-data/ia_dict", start: 4326276, end: 4657551 }, { filename: "/espeak-ng-data/id_dict", start: 4657551, end: 4701009 }, { filename: "/espeak-ng-data/intonations", start: 4701009, end: 4703049 }, { filename: "/espeak-ng-data/io_dict", start: 4703049, end: 4705214 }, { filename: "/espeak-ng-data/is_dict", start: 4705214, end: 4749568 }, { filename: "/espeak-ng-data/it_dict", start: 4749568, end: 4902457 }, { filename: "/espeak-ng-data/ja_dict", start: 4902457, end: 4950109 }, { filename: "/espeak-ng-data/jbo_dict", start: 4950109, end: 4952352 }, { filename: "/espeak-ng-data/ka_dict", start: 4952352, end: 5040127 }, { filename: "/espeak-ng-data/kk_dict", start: 5040127, end: 5041986 }, { filename: "/espeak-ng-data/kl_dict", start: 5041986, end: 5044824 }, { filename: "/espeak-ng-data/kn_dict", start: 5044824, end: 5132652 }, { filename: "/espeak-ng-data/ko_dict", start: 5132652, end: 5180175 }, { filename: "/espeak-ng-data/kok_dict", start: 5180175, end: 5186569 }, { filename: "/espeak-ng-data/ku_dict", start: 5186569, end: 5188834 }, { filename: "/espeak-ng-data/ky_dict", start: 5188834, end: 5253811 }, { filename: "/espeak-ng-data/la_dict", start: 5253811, end: 5257617 }, { filename: "/espeak-ng-data/lang/aav/vi", start: 5257617, end: 5257728 }, { filename: "/espeak-ng-data/lang/aav/vi-VN-x-central", start: 5257728, end: 5257871 }, { filename: "/espeak-ng-data/lang/aav/vi-VN-x-south", start: 5257871, end: 5258013 }, { filename: "/espeak-ng-data/lang/art/eo", start: 5258013, end: 5258054 }, { filename: "/espeak-ng-data/lang/art/ia", start: 5258054, end: 5258083 }, { filename: "/espeak-ng-data/lang/art/io", start: 5258083, end: 5258133 }, { filename: "/espeak-ng-data/lang/art/jbo", start: 5258133, end: 5258202 }, { filename: "/espeak-ng-data/lang/art/lfn", start: 5258202, end: 5258337 }, { filename: "/espeak-ng-data/lang/art/piqd", start: 5258337, end: 5258393 }, { filename: "/espeak-ng-data/lang/art/py", start: 5258393, end: 5258533 }, { filename: "/espeak-ng-data/lang/art/qdb", start: 5258533, end: 5258590 }, { filename: "/espeak-ng-data/lang/art/qya", start: 5258590, end: 5258763 }, { filename: "/espeak-ng-data/lang/art/sjn", start: 5258763, end: 5258938 }, { filename: "/espeak-ng-data/lang/azc/nci", start: 5258938, end: 5259052 }, { filename: "/espeak-ng-data/lang/bat/lt", start: 5259052, end: 5259080 }, { filename: "/espeak-ng-data/lang/bat/ltg", start: 5259080, end: 5259392 }, { filename: "/espeak-ng-data/lang/bat/lv", start: 5259392, end: 5259621 }, { filename: "/espeak-ng-data/lang/bnt/sw", start: 5259621, end: 5259662 }, { filename: "/espeak-ng-data/lang/bnt/tn", start: 5259662, end: 5259704 }, { filename: "/espeak-ng-data/lang/ccs/ka", start: 5259704, end: 5259828 }, { filename: "/espeak-ng-data/lang/cel/cy", start: 5259828, end: 5259865 }, { filename: "/espeak-ng-data/lang/cel/ga", start: 5259865, end: 5259931 }, { filename: "/espeak-ng-data/lang/cel/gd", start: 5259931, end: 5259982 }, { filename: "/espeak-ng-data/lang/cus/om", start: 5259982, end: 5260021 }, { filename: "/espeak-ng-data/lang/dra/kn", start: 5260021, end: 5260076 }, { filename: "/espeak-ng-data/lang/dra/ml", start: 5260076, end: 5260133 }, { filename: "/espeak-ng-data/lang/dra/ta", start: 5260133, end: 5260184 }, { filename: "/espeak-ng-data/lang/dra/te", start: 5260184, end: 5260254 }, { filename: "/espeak-ng-data/lang/esx/kl", start: 5260254, end: 5260284 }, { filename: "/espeak-ng-data/lang/eu", start: 5260284, end: 5260338 }, { filename: "/espeak-ng-data/lang/gmq/da", start: 5260338, end: 5260381 }, { filename: "/espeak-ng-data/lang/gmq/is", start: 5260381, end: 5260408 }, { filename: "/espeak-ng-data/lang/gmq/nb", start: 5260408, end: 5260495 }, { filename: "/espeak-ng-data/lang/gmq/sv", start: 5260495, end: 5260520 }, { filename: "/espeak-ng-data/lang/gmw/af", start: 5260520, end: 5260643 }, { filename: "/espeak-ng-data/lang/gmw/de", start: 5260643, end: 5260685 }, { filename: "/espeak-ng-data/lang/gmw/en", start: 5260685, end: 5260825 }, { filename: "/espeak-ng-data/lang/gmw/en-029", start: 5260825, end: 5261160 }, { filename: "/espeak-ng-data/lang/gmw/en-GB-scotland", start: 5261160, end: 5261455 }, { filename: "/espeak-ng-data/lang/gmw/en-GB-x-gbclan", start: 5261455, end: 5261693 }, { filename: "/espeak-ng-data/lang/gmw/en-GB-x-gbcwmd", start: 5261693, end: 5261881 }, { filename: "/espeak-ng-data/lang/gmw/en-GB-x-rp", start: 5261881, end: 5262130 }, { filename: "/espeak-ng-data/lang/gmw/en-US", start: 5262130, end: 5262387 }, { filename: "/espeak-ng-data/lang/gmw/en-US-nyc", start: 5262387, end: 5262658 }, { filename: "/espeak-ng-data/lang/gmw/lb", start: 5262658, end: 5262689 }, { filename: "/espeak-ng-data/lang/gmw/nl", start: 5262689, end: 5262712 }, { filename: "/espeak-ng-data/lang/grk/el", start: 5262712, end: 5262735 }, { filename: "/espeak-ng-data/lang/grk/grc", start: 5262735, end: 5262834 }, { filename: "/espeak-ng-data/lang/inc/as", start: 5262834, end: 5262876 }, { filename: "/espeak-ng-data/lang/inc/bn", start: 5262876, end: 5262901 }, { filename: "/espeak-ng-data/lang/inc/bpy", start: 5262901, end: 5262940 }, { filename: "/espeak-ng-data/lang/inc/gu", start: 5262940, end: 5262982 }, { filename: "/espeak-ng-data/lang/inc/hi", start: 5262982, end: 5263005 }, { filename: "/espeak-ng-data/lang/inc/kok", start: 5263005, end: 5263031 }, { filename: "/espeak-ng-data/lang/inc/mr", start: 5263031, end: 5263072 }, { filename: "/espeak-ng-data/lang/inc/ne", start: 5263072, end: 5263109 }, { filename: "/espeak-ng-data/lang/inc/or", start: 5263109, end: 5263148 }, { filename: "/espeak-ng-data/lang/inc/pa", start: 5263148, end: 5263173 }, { filename: "/espeak-ng-data/lang/inc/sd", start: 5263173, end: 5263239 }, { filename: "/espeak-ng-data/lang/inc/si", start: 5263239, end: 5263294 }, { filename: "/espeak-ng-data/lang/inc/ur", start: 5263294, end: 5263388 }, { filename: "/espeak-ng-data/lang/ine/hy", start: 5263388, end: 5263449 }, { filename: "/espeak-ng-data/lang/ine/hyw", start: 5263449, end: 5263814 }, { filename: "/espeak-ng-data/lang/ine/sq", start: 5263814, end: 5263917 }, { filename: "/espeak-ng-data/lang/ira/fa", start: 5263917, end: 5264007 }, { filename: "/espeak-ng-data/lang/ira/fa-Latn", start: 5264007, end: 5264276 }, { filename: "/espeak-ng-data/lang/ira/ku", start: 5264276, end: 5264316 }, { filename: "/espeak-ng-data/lang/iro/chr", start: 5264316, end: 5264885 }, { filename: "/espeak-ng-data/lang/itc/la", start: 5264885, end: 5265182 }, { filename: "/espeak-ng-data/lang/jpx/ja", start: 5265182, end: 5265234 }, { filename: "/espeak-ng-data/lang/ko", start: 5265234, end: 5265285 }, { filename: "/espeak-ng-data/lang/map/haw", start: 5265285, end: 5265327 }, { filename: "/espeak-ng-data/lang/miz/mto", start: 5265327, end: 5265510 }, { filename: "/espeak-ng-data/lang/myn/quc", start: 5265510, end: 5265720 }, { filename: "/espeak-ng-data/lang/poz/id", start: 5265720, end: 5265854 }, { filename: "/espeak-ng-data/lang/poz/mi", start: 5265854, end: 5266221 }, { filename: "/espeak-ng-data/lang/poz/ms", start: 5266221, end: 5266651 }, { filename: "/espeak-ng-data/lang/qu", start: 5266651, end: 5266739 }, { filename: "/espeak-ng-data/lang/roa/an", start: 5266739, end: 5266766 }, { filename: "/espeak-ng-data/lang/roa/ca", start: 5266766, end: 5266791 }, { filename: "/espeak-ng-data/lang/roa/es", start: 5266791, end: 5266854 }, { filename: "/espeak-ng-data/lang/roa/es-419", start: 5266854, end: 5267021 }, { filename: "/espeak-ng-data/lang/roa/fr", start: 5267021, end: 5267100 }, { filename: "/espeak-ng-data/lang/roa/fr-BE", start: 5267100, end: 5267184 }, { filename: "/espeak-ng-data/lang/roa/fr-CH", start: 5267184, end: 5267270 }, { filename: "/espeak-ng-data/lang/roa/ht", start: 5267270, end: 5267410 }, { filename: "/espeak-ng-data/lang/roa/it", start: 5267410, end: 5267519 }, { filename: "/espeak-ng-data/lang/roa/pap", start: 5267519, end: 5267581 }, { filename: "/espeak-ng-data/lang/roa/pt", start: 5267581, end: 5267676 }, { filename: "/espeak-ng-data/lang/roa/pt-BR", start: 5267676, end: 5267785 }, { filename: "/espeak-ng-data/lang/roa/ro", start: 5267785, end: 5267811 }, { filename: "/espeak-ng-data/lang/sai/gn", start: 5267811, end: 5267858 }, { filename: "/espeak-ng-data/lang/sem/am", start: 5267858, end: 5267899 }, { filename: "/espeak-ng-data/lang/sem/ar", start: 5267899, end: 5267949 }, { filename: "/espeak-ng-data/lang/sem/he", start: 5267949, end: 5267989 }, { filename: "/espeak-ng-data/lang/sem/mt", start: 5267989, end: 5268030 }, { filename: "/espeak-ng-data/lang/sit/cmn", start: 5268030, end: 5268716 }, { filename: "/espeak-ng-data/lang/sit/cmn-Latn-pinyin", start: 5268716, end: 5268877 }, { filename: "/espeak-ng-data/lang/sit/hak", start: 5268877, end: 5269005 }, { filename: "/espeak-ng-data/lang/sit/my", start: 5269005, end: 5269061 }, { filename: "/espeak-ng-data/lang/sit/yue", start: 5269061, end: 5269255 }, { filename: "/espeak-ng-data/lang/sit/yue-Latn-jyutping", start: 5269255, end: 5269468 }, { filename: "/espeak-ng-data/lang/tai/shn", start: 5269468, end: 5269560 }, { filename: "/espeak-ng-data/lang/tai/th", start: 5269560, end: 5269597 }, { filename: "/espeak-ng-data/lang/trk/az", start: 5269597, end: 5269642 }, { filename: "/espeak-ng-data/lang/trk/ba", start: 5269642, end: 5269667 }, { filename: "/espeak-ng-data/lang/trk/cv", start: 5269667, end: 5269707 }, { filename: "/espeak-ng-data/lang/trk/kk", start: 5269707, end: 5269747 }, { filename: "/espeak-ng-data/lang/trk/ky", start: 5269747, end: 5269790 }, { filename: "/espeak-ng-data/lang/trk/nog", start: 5269790, end: 5269829 }, { filename: "/espeak-ng-data/lang/trk/tk", start: 5269829, end: 5269854 }, { filename: "/espeak-ng-data/lang/trk/tr", start: 5269854, end: 5269879 }, { filename: "/espeak-ng-data/lang/trk/tt", start: 5269879, end: 5269902 }, { filename: "/espeak-ng-data/lang/trk/ug", start: 5269902, end: 5269926 }, { filename: "/espeak-ng-data/lang/trk/uz", start: 5269926, end: 5269965 }, { filename: "/espeak-ng-data/lang/urj/et", start: 5269965, end: 5270202 }, { filename: "/espeak-ng-data/lang/urj/fi", start: 5270202, end: 5270439 }, { filename: "/espeak-ng-data/lang/urj/hu", start: 5270439, end: 5270512 }, { filename: "/espeak-ng-data/lang/urj/smj", start: 5270512, end: 5270557 }, { filename: "/espeak-ng-data/lang/zle/be", start: 5270557, end: 5270609 }, { filename: "/espeak-ng-data/lang/zle/ru", start: 5270609, end: 5270666 }, { filename: "/espeak-ng-data/lang/zle/ru-LV", start: 5270666, end: 5270946 }, { filename: "/espeak-ng-data/lang/zle/ru-cl", start: 5270946, end: 5271037 }, { filename: "/espeak-ng-data/lang/zle/uk", start: 5271037, end: 5271134 }, { filename: "/espeak-ng-data/lang/zls/bg", start: 5271134, end: 5271245 }, { filename: "/espeak-ng-data/lang/zls/bs", start: 5271245, end: 5271475 }, { filename: "/espeak-ng-data/lang/zls/hr", start: 5271475, end: 5271737 }, { filename: "/espeak-ng-data/lang/zls/mk", start: 5271737, end: 5271765 }, { filename: "/espeak-ng-data/lang/zls/sl", start: 5271765, end: 5271808 }, { filename: "/espeak-ng-data/lang/zls/sr", start: 5271808, end: 5272058 }, { filename: "/espeak-ng-data/lang/zlw/cs", start: 5272058, end: 5272081 }, { filename: "/espeak-ng-data/lang/zlw/pl", start: 5272081, end: 5272119 }, { filename: "/espeak-ng-data/lang/zlw/sk", start: 5272119, end: 5272143 }, { filename: "/espeak-ng-data/lb_dict", start: 5272143, end: 5960074 }, { filename: "/espeak-ng-data/lfn_dict", start: 5960074, end: 5962867 }, { filename: "/espeak-ng-data/lt_dict", start: 5962867, end: 6012757 }, { filename: "/espeak-ng-data/lv_dict", start: 6012757, end: 6079094 }, { filename: "/espeak-ng-data/mbrola_ph/af1_phtrans", start: 6079094, end: 6080730 }, { filename: "/espeak-ng-data/mbrola_ph/ar1_phtrans", start: 6080730, end: 6082342 }, { filename: "/espeak-ng-data/mbrola_ph/ar2_phtrans", start: 6082342, end: 6083954 }, { filename: "/espeak-ng-data/mbrola_ph/ca_phtrans", start: 6083954, end: 6085950 }, { filename: "/espeak-ng-data/mbrola_ph/cmn_phtrans", start: 6085950, end: 6087442 }, { filename: "/espeak-ng-data/mbrola_ph/cr1_phtrans", start: 6087442, end: 6089606 }, { filename: "/espeak-ng-data/mbrola_ph/cs_phtrans", start: 6089606, end: 6090186 }, { filename: "/espeak-ng-data/mbrola_ph/de2_phtrans", start: 6090186, end: 6091918 }, { filename: "/espeak-ng-data/mbrola_ph/de4_phtrans", start: 6091918, end: 6093722 }, { filename: "/espeak-ng-data/mbrola_ph/de6_phtrans", start: 6093722, end: 6095118 }, { filename: "/espeak-ng-data/mbrola_ph/de8_phtrans", start: 6095118, end: 6096274 }, { filename: "/espeak-ng-data/mbrola_ph/ee1_phtrans", start: 6096274, end: 6097718 }, { filename: "/espeak-ng-data/mbrola_ph/en1_phtrans", start: 6097718, end: 6098514 }, { filename: "/espeak-ng-data/mbrola_ph/es3_phtrans", start: 6098514, end: 6099574 }, { filename: "/espeak-ng-data/mbrola_ph/es4_phtrans", start: 6099574, end: 6100682 }, { filename: "/espeak-ng-data/mbrola_ph/es_phtrans", start: 6100682, end: 6102414 }, { filename: "/espeak-ng-data/mbrola_ph/fr_phtrans", start: 6102414, end: 6104386 }, { filename: "/espeak-ng-data/mbrola_ph/gr1_phtrans", start: 6104386, end: 6106598 }, { filename: "/espeak-ng-data/mbrola_ph/gr2_phtrans", start: 6106598, end: 6108810 }, { filename: "/espeak-ng-data/mbrola_ph/grc-de6_phtrans", start: 6108810, end: 6109294 }, { filename: "/espeak-ng-data/mbrola_ph/he_phtrans", start: 6109294, end: 6110042 }, { filename: "/espeak-ng-data/mbrola_ph/hn1_phtrans", start: 6110042, end: 6110574 }, { filename: "/espeak-ng-data/mbrola_ph/hu1_phtrans", start: 6110574, end: 6112018 }, { filename: "/espeak-ng-data/mbrola_ph/ic1_phtrans", start: 6112018, end: 6113150 }, { filename: "/espeak-ng-data/mbrola_ph/id1_phtrans", start: 6113150, end: 6114858 }, { filename: "/espeak-ng-data/mbrola_ph/in_phtrans", start: 6114858, end: 6116302 }, { filename: "/espeak-ng-data/mbrola_ph/ir1_phtrans", start: 6116302, end: 6122114 }, { filename: "/espeak-ng-data/mbrola_ph/it1_phtrans", start: 6122114, end: 6123438 }, { filename: "/espeak-ng-data/mbrola_ph/it3_phtrans", start: 6123438, end: 6124330 }, { filename: "/espeak-ng-data/mbrola_ph/jp_phtrans", start: 6124330, end: 6125366 }, { filename: "/espeak-ng-data/mbrola_ph/la1_phtrans", start: 6125366, end: 6126114 }, { filename: "/espeak-ng-data/mbrola_ph/lt_phtrans", start: 6126114, end: 6127174 }, { filename: "/espeak-ng-data/mbrola_ph/ma1_phtrans", start: 6127174, end: 6128114 }, { filename: "/espeak-ng-data/mbrola_ph/mx1_phtrans", start: 6128114, end: 6129918 }, { filename: "/espeak-ng-data/mbrola_ph/mx2_phtrans", start: 6129918, end: 6131746 }, { filename: "/espeak-ng-data/mbrola_ph/nl_phtrans", start: 6131746, end: 6133430 }, { filename: "/espeak-ng-data/mbrola_ph/nz1_phtrans", start: 6133430, end: 6134154 }, { filename: "/espeak-ng-data/mbrola_ph/pl1_phtrans", start: 6134154, end: 6135742 }, { filename: "/espeak-ng-data/mbrola_ph/pt1_phtrans", start: 6135742, end: 6137834 }, { filename: "/espeak-ng-data/mbrola_ph/ptbr4_phtrans", start: 6137834, end: 6140190 }, { filename: "/espeak-ng-data/mbrola_ph/ptbr_phtrans", start: 6140190, end: 6142714 }, { filename: "/espeak-ng-data/mbrola_ph/ro1_phtrans", start: 6142714, end: 6144878 }, { filename: "/espeak-ng-data/mbrola_ph/sv2_phtrans", start: 6144878, end: 6146466 }, { filename: "/espeak-ng-data/mbrola_ph/sv_phtrans", start: 6146466, end: 6148054 }, { filename: "/espeak-ng-data/mbrola_ph/tl1_phtrans", start: 6148054, end: 6148826 }, { filename: "/espeak-ng-data/mbrola_ph/tr1_phtrans", start: 6148826, end: 6149190 }, { filename: "/espeak-ng-data/mbrola_ph/us3_phtrans", start: 6149190, end: 6150346 }, { filename: "/espeak-ng-data/mbrola_ph/us_phtrans", start: 6150346, end: 6151574 }, { filename: "/espeak-ng-data/mbrola_ph/vz_phtrans", start: 6151574, end: 6153858 }, { filename: "/espeak-ng-data/mi_dict", start: 6153858, end: 6155204 }, { filename: "/espeak-ng-data/mk_dict", start: 6155204, end: 6219063 }, { filename: "/espeak-ng-data/ml_dict", start: 6219063, end: 6311408 }, { filename: "/espeak-ng-data/mr_dict", start: 6311408, end: 6398799 }, { filename: "/espeak-ng-data/ms_dict", start: 6398799, end: 6452340 }, { filename: "/espeak-ng-data/mt_dict", start: 6452340, end: 6456724 }, { filename: "/espeak-ng-data/mto_dict", start: 6456724, end: 6460684 }, { filename: "/espeak-ng-data/my_dict", start: 6460684, end: 6556632 }, { filename: "/espeak-ng-data/nci_dict", start: 6556632, end: 6558166 }, { filename: "/espeak-ng-data/ne_dict", start: 6558166, end: 6653543 }, { filename: "/espeak-ng-data/nl_dict", start: 6653543, end: 6719522 }, { filename: "/espeak-ng-data/no_dict", start: 6719522, end: 6723700 }, { filename: "/espeak-ng-data/nog_dict", start: 6723700, end: 6726994 }, { filename: "/espeak-ng-data/om_dict", start: 6726994, end: 6729296 }, { filename: "/espeak-ng-data/or_dict", start: 6729296, end: 6818542 }, { filename: "/espeak-ng-data/pa_dict", start: 6818542, end: 6898495 }, { filename: "/espeak-ng-data/pap_dict", start: 6898495, end: 6900623 }, { filename: "/espeak-ng-data/phondata", start: 6900623, end: 7451047 }, { filename: "/espeak-ng-data/phondata-manifest", start: 7451047, end: 7472868 }, { filename: "/espeak-ng-data/phonindex", start: 7472868, end: 7511942 }, { filename: "/espeak-ng-data/phontab", start: 7511942, end: 7567738 }, { filename: "/espeak-ng-data/piqd_dict", start: 7567738, end: 7569448 }, { filename: "/espeak-ng-data/pl_dict", start: 7569448, end: 7646178 }, { filename: "/espeak-ng-data/pt_dict", start: 7646178, end: 7713995 }, { filename: "/espeak-ng-data/py_dict", start: 7713995, end: 7716404 }, { filename: "/espeak-ng-data/qdb_dict", start: 7716404, end: 7719432 }, { filename: "/espeak-ng-data/qu_dict", start: 7719432, end: 7721351 }, { filename: "/espeak-ng-data/quc_dict", start: 7721351, end: 7722801 }, { filename: "/espeak-ng-data/qya_dict", start: 7722801, end: 7724740 }, { filename: "/espeak-ng-data/ro_dict", start: 7724740, end: 7793278 }, { filename: "/espeak-ng-data/ru_dict", start: 7793278, end: 16325670 }, { filename: "/espeak-ng-data/sd_dict", start: 16325670, end: 16385598 }, { filename: "/espeak-ng-data/shn_dict", start: 16385598, end: 16473770 }, { filename: "/espeak-ng-data/si_dict", start: 16473770, end: 16559154 }, { filename: "/espeak-ng-data/sjn_dict", start: 16559154, end: 16560937 }, { filename: "/espeak-ng-data/sk_dict", start: 16560937, end: 16610939 }, { filename: "/espeak-ng-data/sl_dict", start: 16610939, end: 16655986 }, { filename: "/espeak-ng-data/smj_dict", start: 16655986, end: 16691081 }, { filename: "/espeak-ng-data/sq_dict", start: 16691081, end: 16736084 }, { filename: "/espeak-ng-data/sr_dict", start: 16736084, end: 16782916 }, { filename: "/espeak-ng-data/sv_dict", start: 16782916, end: 16830752 }, { filename: "/espeak-ng-data/sw_dict", start: 16830752, end: 16878556 }, { filename: "/espeak-ng-data/ta_dict", start: 16878556, end: 17088109 }, { filename: "/espeak-ng-data/te_dict", start: 17088109, end: 17182946 }, { filename: "/espeak-ng-data/th_dict", start: 17182946, end: 17185247 }, { filename: "/espeak-ng-data/tk_dict", start: 17185247, end: 17206115 }, { filename: "/espeak-ng-data/tn_dict", start: 17206115, end: 17209187 }, { filename: "/espeak-ng-data/tr_dict", start: 17209187, end: 17255980 }, { filename: "/espeak-ng-data/tt_dict", start: 17255980, end: 17258101 }, { filename: "/espeak-ng-data/ug_dict", start: 17258101, end: 17260171 }, { filename: "/espeak-ng-data/uk_dict", start: 17260171, end: 17263663 }, { filename: "/espeak-ng-data/ur_dict", start: 17263663, end: 17397219 }, { filename: "/espeak-ng-data/uz_dict", start: 17397219, end: 17399759 }, { filename: "/espeak-ng-data/vi_dict", start: 17399759, end: 17452367 }, { filename: "/espeak-ng-data/voices/!v/Alex", start: 17452367, end: 17452495 }, { filename: "/espeak-ng-data/voices/!v/Alicia", start: 17452495, end: 17452969 }, { filename: "/espeak-ng-data/voices/!v/Andrea", start: 17452969, end: 17453326 }, { filename: "/espeak-ng-data/voices/!v/Andy", start: 17453326, end: 17453646 }, { filename: "/espeak-ng-data/voices/!v/Annie", start: 17453646, end: 17453961 }, { filename: "/espeak-ng-data/voices/!v/AnxiousAndy", start: 17453961, end: 17454322 }, { filename: "/espeak-ng-data/voices/!v/Demonic", start: 17454322, end: 17458180 }, { filename: "/espeak-ng-data/voices/!v/Denis", start: 17458180, end: 17458485 }, { filename: "/espeak-ng-data/voices/!v/Diogo", start: 17458485, end: 17458864 }, { filename: "/espeak-ng-data/voices/!v/Gene", start: 17458864, end: 17459145 }, { filename: "/espeak-ng-data/voices/!v/Gene2", start: 17459145, end: 17459428 }, { filename: "/espeak-ng-data/voices/!v/Henrique", start: 17459428, end: 17459809 }, { filename: "/espeak-ng-data/voices/!v/Hugo", start: 17459809, end: 17460187 }, { filename: "/espeak-ng-data/voices/!v/Jacky", start: 17460187, end: 17460454 }, { filename: "/espeak-ng-data/voices/!v/Lee", start: 17460454, end: 17460792 }, { filename: "/espeak-ng-data/voices/!v/Marco", start: 17460792, end: 17461259 }, { filename: "/espeak-ng-data/voices/!v/Mario", start: 17461259, end: 17461529 }, { filename: "/espeak-ng-data/voices/!v/Michael", start: 17461529, end: 17461799 }, { filename: "/espeak-ng-data/voices/!v/Mike", start: 17461799, end: 17461911 }, { filename: "/espeak-ng-data/voices/!v/Mr serious", start: 17461911, end: 17465104 }, { filename: "/espeak-ng-data/voices/!v/Nguyen", start: 17465104, end: 17465384 }, { filename: "/espeak-ng-data/voices/!v/Reed", start: 17465384, end: 17465586 }, { filename: "/espeak-ng-data/voices/!v/RicishayMax", start: 17465586, end: 17465819 }, { filename: "/espeak-ng-data/voices/!v/RicishayMax2", start: 17465819, end: 17466254 }, { filename: "/espeak-ng-data/voices/!v/RicishayMax3", start: 17466254, end: 17466689 }, { filename: "/espeak-ng-data/voices/!v/Storm", start: 17466689, end: 17467109 }, { filename: "/espeak-ng-data/voices/!v/Tweaky", start: 17467109, end: 17470298 }, { filename: "/espeak-ng-data/voices/!v/UniRobot", start: 17470298, end: 17470715 }, { filename: "/espeak-ng-data/voices/!v/adam", start: 17470715, end: 17470790 }, { filename: "/espeak-ng-data/voices/!v/anika", start: 17470790, end: 17471283 }, { filename: "/espeak-ng-data/voices/!v/anikaRobot", start: 17471283, end: 17471795 }, { filename: "/espeak-ng-data/voices/!v/announcer", start: 17471795, end: 17472095 }, { filename: "/espeak-ng-data/voices/!v/antonio", start: 17472095, end: 17472476 }, { filename: "/espeak-ng-data/voices/!v/aunty", start: 17472476, end: 17472834 }, { filename: "/espeak-ng-data/voices/!v/belinda", start: 17472834, end: 17473174 }, { filename: "/espeak-ng-data/voices/!v/benjamin", start: 17473174, end: 17473375 }, { filename: "/espeak-ng-data/voices/!v/boris", start: 17473375, end: 17473599 }, { filename: "/espeak-ng-data/voices/!v/caleb", start: 17473599, end: 17473656 }, { filename: "/espeak-ng-data/voices/!v/croak", start: 17473656, end: 17473749 }, { filename: "/espeak-ng-data/voices/!v/david", start: 17473749, end: 17473861 }, { filename: "/espeak-ng-data/voices/!v/ed", start: 17473861, end: 17474148 }, { filename: "/espeak-ng-data/voices/!v/edward", start: 17474148, end: 17474299 }, { filename: "/espeak-ng-data/voices/!v/edward2", start: 17474299, end: 17474451 }, { filename: "/espeak-ng-data/voices/!v/f1", start: 17474451, end: 17474775 }, { filename: "/espeak-ng-data/voices/!v/f2", start: 17474775, end: 17475132 }, { filename: "/espeak-ng-data/voices/!v/f3", start: 17475132, end: 17475507 }, { filename: "/espeak-ng-data/voices/!v/f4", start: 17475507, end: 17475857 }, { filename: "/espeak-ng-data/voices/!v/f5", start: 17475857, end: 17476289 }, { filename: "/espeak-ng-data/voices/!v/fast", start: 17476289, end: 17476438 }, { filename: "/espeak-ng-data/voices/!v/grandma", start: 17476438, end: 17476701 }, { filename: "/espeak-ng-data/voices/!v/grandpa", start: 17476701, end: 17476957 }, { filename: "/espeak-ng-data/voices/!v/gustave", start: 17476957, end: 17477210 }, { filename: "/espeak-ng-data/voices/!v/ian", start: 17477210, end: 17480378 }, { filename: "/espeak-ng-data/voices/!v/iven", start: 17480378, end: 17480639 }, { filename: "/espeak-ng-data/voices/!v/iven2", start: 17480639, end: 17480918 }, { filename: "/espeak-ng-data/voices/!v/iven3", start: 17480918, end: 17481180 }, { filename: "/espeak-ng-data/voices/!v/iven4", start: 17481180, end: 17481441 }, { filename: "/espeak-ng-data/voices/!v/john", start: 17481441, end: 17484627 }, { filename: "/espeak-ng-data/voices/!v/kaukovalta", start: 17484627, end: 17484988 }, { filename: "/espeak-ng-data/voices/!v/klatt", start: 17484988, end: 17485026 }, { filename: "/espeak-ng-data/voices/!v/klatt2", start: 17485026, end: 17485064 }, { filename: "/espeak-ng-data/voices/!v/klatt3", start: 17485064, end: 17485103 }, { filename: "/espeak-ng-data/voices/!v/klatt4", start: 17485103, end: 17485142 }, { filename: "/espeak-ng-data/voices/!v/klatt5", start: 17485142, end: 17485181 }, { filename: "/espeak-ng-data/voices/!v/klatt6", start: 17485181, end: 17485220 }, { filename: "/espeak-ng-data/voices/!v/linda", start: 17485220, end: 17485570 }, { filename: "/espeak-ng-data/voices/!v/m1", start: 17485570, end: 17485905 }, { filename: "/espeak-ng-data/voices/!v/m2", start: 17485905, end: 17486169 }, { filename: "/espeak-ng-data/voices/!v/m3", start: 17486169, end: 17486469 }, { filename: "/espeak-ng-data/voices/!v/m4", start: 17486469, end: 17486759 }, { filename: "/espeak-ng-data/voices/!v/m5", start: 17486759, end: 17487021 }, { filename: "/espeak-ng-data/voices/!v/m6", start: 17487021, end: 17487209 }, { filename: "/espeak-ng-data/voices/!v/m7", start: 17487209, end: 17487463 }, { filename: "/espeak-ng-data/voices/!v/m8", start: 17487463, end: 17487747 }, { filename: "/espeak-ng-data/voices/!v/marcelo", start: 17487747, end: 17487998 }, { filename: "/espeak-ng-data/voices/!v/max", start: 17487998, end: 17488223 }, { filename: "/espeak-ng-data/voices/!v/michel", start: 17488223, end: 17488627 }, { filename: "/espeak-ng-data/voices/!v/miguel", start: 17488627, end: 17489009 }, { filename: "/espeak-ng-data/voices/!v/mike2", start: 17489009, end: 17489197 }, { filename: "/espeak-ng-data/voices/!v/norbert", start: 17489197, end: 17492386 }, { filename: "/espeak-ng-data/voices/!v/pablo", start: 17492386, end: 17495528 }, { filename: "/espeak-ng-data/voices/!v/paul", start: 17495528, end: 17495812 }, { filename: "/espeak-ng-data/voices/!v/pedro", start: 17495812, end: 17496164 }, { filename: "/espeak-ng-data/voices/!v/quincy", start: 17496164, end: 17496518 }, { filename: "/espeak-ng-data/voices/!v/rob", start: 17496518, end: 17496783 }, { filename: "/espeak-ng-data/voices/!v/robert", start: 17496783, end: 17497057 }, { filename: "/espeak-ng-data/voices/!v/robosoft", start: 17497057, end: 17497508 }, { filename: "/espeak-ng-data/voices/!v/robosoft2", start: 17497508, end: 17497962 }, { filename: "/espeak-ng-data/voices/!v/robosoft3", start: 17497962, end: 17498417 }, { filename: "/espeak-ng-data/voices/!v/robosoft4", start: 17498417, end: 17498864 }, { filename: "/espeak-ng-data/voices/!v/robosoft5", start: 17498864, end: 17499309 }, { filename: "/espeak-ng-data/voices/!v/robosoft6", start: 17499309, end: 17499596 }, { filename: "/espeak-ng-data/voices/!v/robosoft7", start: 17499596, end: 17500006 }, { filename: "/espeak-ng-data/voices/!v/robosoft8", start: 17500006, end: 17500249 }, { filename: "/espeak-ng-data/voices/!v/sandro", start: 17500249, end: 17500779 }, { filename: "/espeak-ng-data/voices/!v/shelby", start: 17500779, end: 17501059 }, { filename: "/espeak-ng-data/voices/!v/steph", start: 17501059, end: 17501423 }, { filename: "/espeak-ng-data/voices/!v/steph2", start: 17501423, end: 17501790 }, { filename: "/espeak-ng-data/voices/!v/steph3", start: 17501790, end: 17502167 }, { filename: "/espeak-ng-data/voices/!v/travis", start: 17502167, end: 17502550 }, { filename: "/espeak-ng-data/voices/!v/victor", start: 17502550, end: 17502803 }, { filename: "/espeak-ng-data/voices/!v/whisper", start: 17502803, end: 17502989 }, { filename: "/espeak-ng-data/voices/!v/whisperf", start: 17502989, end: 17503381 }, { filename: "/espeak-ng-data/voices/!v/zac", start: 17503381, end: 17503656 }, { filename: "/espeak-ng-data/voices/mb/mb-af1", start: 17503656, end: 17503744 }, { filename: "/espeak-ng-data/voices/mb/mb-af1-en", start: 17503744, end: 17503827 }, { filename: "/espeak-ng-data/voices/mb/mb-ar1", start: 17503827, end: 17503911 }, { filename: "/espeak-ng-data/voices/mb/mb-ar2", start: 17503911, end: 17503995 }, { filename: "/espeak-ng-data/voices/mb/mb-br1", start: 17503995, end: 17504127 }, { filename: "/espeak-ng-data/voices/mb/mb-br2", start: 17504127, end: 17504263 }, { filename: "/espeak-ng-data/voices/mb/mb-br3", start: 17504263, end: 17504395 }, { filename: "/espeak-ng-data/voices/mb/mb-br4", start: 17504395, end: 17504531 }, { filename: "/espeak-ng-data/voices/mb/mb-ca1", start: 17504531, end: 17504636 }, { filename: "/espeak-ng-data/voices/mb/mb-ca2", start: 17504636, end: 17504741 }, { filename: "/espeak-ng-data/voices/mb/mb-cn1", start: 17504741, end: 17504833 }, { filename: "/espeak-ng-data/voices/mb/mb-cr1", start: 17504833, end: 17504944 }, { filename: "/espeak-ng-data/voices/mb/mb-cz1", start: 17504944, end: 17505014 }, { filename: "/espeak-ng-data/voices/mb/mb-cz2", start: 17505014, end: 17505096 }, { filename: "/espeak-ng-data/voices/mb/mb-de1", start: 17505096, end: 17505240 }, { filename: "/espeak-ng-data/voices/mb/mb-de1-en", start: 17505240, end: 17505336 }, { filename: "/espeak-ng-data/voices/mb/mb-de2", start: 17505336, end: 17505464 }, { filename: "/espeak-ng-data/voices/mb/mb-de2-en", start: 17505464, end: 17505544 }, { filename: "/espeak-ng-data/voices/mb/mb-de3", start: 17505544, end: 17505643 }, { filename: "/espeak-ng-data/voices/mb/mb-de3-en", start: 17505643, end: 17505739 }, { filename: "/espeak-ng-data/voices/mb/mb-de4", start: 17505739, end: 17505868 }, { filename: "/espeak-ng-data/voices/mb/mb-de4-en", start: 17505868, end: 17505949 }, { filename: "/espeak-ng-data/voices/mb/mb-de5", start: 17505949, end: 17506185 }, { filename: "/espeak-ng-data/voices/mb/mb-de5-en", start: 17506185, end: 17506275 }, { filename: "/espeak-ng-data/voices/mb/mb-de6", start: 17506275, end: 17506397 }, { filename: "/espeak-ng-data/voices/mb/mb-de6-en", start: 17506397, end: 17506471 }, { filename: "/espeak-ng-data/voices/mb/mb-de6-grc", start: 17506471, end: 17506554 }, { filename: "/espeak-ng-data/voices/mb/mb-de7", start: 17506554, end: 17506704 }, { filename: "/espeak-ng-data/voices/mb/mb-de8", start: 17506704, end: 17506775 }, { filename: "/espeak-ng-data/voices/mb/mb-ee1", start: 17506775, end: 17506872 }, { filename: "/espeak-ng-data/voices/mb/mb-en1", start: 17506872, end: 17507003 }, { filename: "/espeak-ng-data/voices/mb/mb-es1", start: 17507003, end: 17507117 }, { filename: "/espeak-ng-data/voices/mb/mb-es2", start: 17507117, end: 17507225 }, { filename: "/espeak-ng-data/voices/mb/mb-es3", start: 17507225, end: 17507329 }, { filename: "/espeak-ng-data/voices/mb/mb-es4", start: 17507329, end: 17507417 }, { filename: "/espeak-ng-data/voices/mb/mb-fr1", start: 17507417, end: 17507583 }, { filename: "/espeak-ng-data/voices/mb/mb-fr1-en", start: 17507583, end: 17507687 }, { filename: "/espeak-ng-data/voices/mb/mb-fr2", start: 17507687, end: 17507790 }, { filename: "/espeak-ng-data/voices/mb/mb-fr3", start: 17507790, end: 17507890 }, { filename: "/espeak-ng-data/voices/mb/mb-fr4", start: 17507890, end: 17508017 }, { filename: "/espeak-ng-data/voices/mb/mb-fr4-en", start: 17508017, end: 17508124 }, { filename: "/espeak-ng-data/voices/mb/mb-fr5", start: 17508124, end: 17508224 }, { filename: "/espeak-ng-data/voices/mb/mb-fr6", start: 17508224, end: 17508324 }, { filename: "/espeak-ng-data/voices/mb/mb-fr7", start: 17508324, end: 17508407 }, { filename: "/espeak-ng-data/voices/mb/mb-gr1", start: 17508407, end: 17508501 }, { filename: "/espeak-ng-data/voices/mb/mb-gr2", start: 17508501, end: 17508595 }, { filename: "/espeak-ng-data/voices/mb/mb-gr2-en", start: 17508595, end: 17508683 }, { filename: "/espeak-ng-data/voices/mb/mb-hb1", start: 17508683, end: 17508751 }, { filename: "/espeak-ng-data/voices/mb/mb-hb2", start: 17508751, end: 17508834 }, { filename: "/espeak-ng-data/voices/mb/mb-hu1", start: 17508834, end: 17508936 }, { filename: "/espeak-ng-data/voices/mb/mb-hu1-en", start: 17508936, end: 17509033 }, { filename: "/espeak-ng-data/voices/mb/mb-ic1", start: 17509033, end: 17509121 }, { filename: "/espeak-ng-data/voices/mb/mb-id1", start: 17509121, end: 17509222 }, { filename: "/espeak-ng-data/voices/mb/mb-in1", start: 17509222, end: 17509291 }, { filename: "/espeak-ng-data/voices/mb/mb-in2", start: 17509291, end: 17509376 }, { filename: "/espeak-ng-data/voices/mb/mb-ir1", start: 17509376, end: 17510129 }, { filename: "/espeak-ng-data/voices/mb/mb-it1", start: 17510129, end: 17510213 }, { filename: "/espeak-ng-data/voices/mb/mb-it2", start: 17510213, end: 17510300 }, { filename: "/espeak-ng-data/voices/mb/mb-it3", start: 17510300, end: 17510442 }, { filename: "/espeak-ng-data/voices/mb/mb-it4", start: 17510442, end: 17510587 }, { filename: "/espeak-ng-data/voices/mb/mb-jp1", start: 17510587, end: 17510658 }, { filename: "/espeak-ng-data/voices/mb/mb-jp2", start: 17510658, end: 17510759 }, { filename: "/espeak-ng-data/voices/mb/mb-jp3", start: 17510759, end: 17510846 }, { filename: "/espeak-ng-data/voices/mb/mb-la1", start: 17510846, end: 17510929 }, { filename: "/espeak-ng-data/voices/mb/mb-lt1", start: 17510929, end: 17511016 }, { filename: "/espeak-ng-data/voices/mb/mb-lt2", start: 17511016, end: 17511103 }, { filename: "/espeak-ng-data/voices/mb/mb-ma1", start: 17511103, end: 17511201 }, { filename: "/espeak-ng-data/voices/mb/mb-mx1", start: 17511201, end: 17511321 }, { filename: "/espeak-ng-data/voices/mb/mb-mx2", start: 17511321, end: 17511441 }, { filename: "/espeak-ng-data/voices/mb/mb-nl1", start: 17511441, end: 17511510 }, { filename: "/espeak-ng-data/voices/mb/mb-nl2", start: 17511510, end: 17511606 }, { filename: "/espeak-ng-data/voices/mb/mb-nl2-en", start: 17511606, end: 17511697 }, { filename: "/espeak-ng-data/voices/mb/mb-nl3", start: 17511697, end: 17511782 }, { filename: "/espeak-ng-data/voices/mb/mb-nz1", start: 17511782, end: 17511850 }, { filename: "/espeak-ng-data/voices/mb/mb-pl1", start: 17511850, end: 17511949 }, { filename: "/espeak-ng-data/voices/mb/mb-pl1-en", start: 17511949, end: 17512031 }, { filename: "/espeak-ng-data/voices/mb/mb-pt1", start: 17512031, end: 17512162 }, { filename: "/espeak-ng-data/voices/mb/mb-ro1", start: 17512162, end: 17512249 }, { filename: "/espeak-ng-data/voices/mb/mb-ro1-en", start: 17512249, end: 17512330 }, { filename: "/espeak-ng-data/voices/mb/mb-sw1", start: 17512330, end: 17512428 }, { filename: "/espeak-ng-data/voices/mb/mb-sw1-en", start: 17512428, end: 17512521 }, { filename: "/espeak-ng-data/voices/mb/mb-sw2", start: 17512521, end: 17512623 }, { filename: "/espeak-ng-data/voices/mb/mb-sw2-en", start: 17512623, end: 17512722 }, { filename: "/espeak-ng-data/voices/mb/mb-tl1", start: 17512722, end: 17512807 }, { filename: "/espeak-ng-data/voices/mb/mb-tr1", start: 17512807, end: 17512892 }, { filename: "/espeak-ng-data/voices/mb/mb-tr2", start: 17512892, end: 17513006 }, { filename: "/espeak-ng-data/voices/mb/mb-us1", start: 17513006, end: 17513176 }, { filename: "/espeak-ng-data/voices/mb/mb-us2", start: 17513176, end: 17513354 }, { filename: "/espeak-ng-data/voices/mb/mb-us3", start: 17513354, end: 17513534 }, { filename: "/espeak-ng-data/voices/mb/mb-vz1", start: 17513534, end: 17513678 }, { filename: "/espeak-ng-data/yue_dict", start: 17513678, end: 18077249 }], remote_package_size: 18077249 }); | |
| })(); | |
| var Ce = Object.assign({}, l), we = [], ie = "./this.program", be = (e, a) => { | |
| throw a; | |
| }, L = ""; | |
| function ia(e) { | |
| return l.locateFile ? l.locateFile(e, L) : L + e; | |
| } | |
| var oe, Z; | |
| if (se) { | |
| var ye = ke || Me; | |
| L = __dirname + "/", Z = (e) => { | |
| e = fe(e) ? new URL(e) : e; | |
| var a = ye.readFileSync(e); | |
| return a; | |
| }, oe = async (e, a = !0) => { | |
| e = fe(e) ? new URL(e) : e; | |
| var t = ye.readFileSync(e, a ? void 0 : "utf8"); | |
| return t; | |
| }, !l.thisProgram && process.argv.length > 1 && (ie = process.argv[1].replace(/\\/g, "/")), we = process.argv.slice(2), be = (e, a) => { | |
| throw process.exitCode = e, a; | |
| }; | |
| } else (_e || re) && (re ? L = self.location.href : typeof document < "u" && document.currentScript && (L = document.currentScript.src), x && (L = x), L.startsWith("blob:") ? L = "" : L = L.substr(0, L.replace(/[?#].*/, "").lastIndexOf("/") + 1), re && (Z = (e) => { | |
| var a = new XMLHttpRequest(); | |
| return a.open("GET", e, !1), a.responseType = "arraybuffer", a.send(null), new Uint8Array(a.response); | |
| }), oe = async (e) => { | |
| if (fe(e)) | |
| return new Promise((t, r) => { | |
| var s = new XMLHttpRequest(); | |
| s.open("GET", e, !0), s.responseType = "arraybuffer", s.onload = () => { | |
| if (s.status == 200 || s.status == 0 && s.response) { | |
| t(s.response); | |
| return; | |
| } | |
| r(s.status); | |
| }, s.onerror = r, s.send(null); | |
| }); | |
| var a = await fetch(e, { credentials: "same-origin" }); | |
| if (a.ok) | |
| return a.arrayBuffer(); | |
| throw new Error(a.status + " : " + a.url); | |
| }); | |
| var Ee = l.print || console.log.bind(console), I = l.printErr || console.error.bind(console); | |
| Object.assign(l, Ce), Ce = null, l.arguments && (we = l.arguments), l.thisProgram && (ie = l.thisProgram); | |
| var de = l.wasmBinary, xe, Oe = !1, Se, j, G, Q, k, P; | |
| function oa() { | |
| var e = xe.buffer; | |
| l.HEAP8 = j = new Int8Array(e), l.HEAP16 = Q = new Int16Array(e), l.HEAPU8 = G = new Uint8Array(e), l.HEAPU16 = new Uint16Array(e), l.HEAP32 = k = new Int32Array(e), l.HEAPU32 = P = new Uint32Array(e), l.HEAPF32 = new Float32Array(e), l.HEAPF64 = new Float64Array(e); | |
| } | |
| var Le = [], Ue = [], da = [], Be = []; | |
| function la() { | |
| if (l.preRun) | |
| for (typeof l.preRun == "function" && (l.preRun = [l.preRun]); l.preRun.length; ) | |
| pa(l.preRun.shift()); | |
| me(Le); | |
| } | |
| function fa() { | |
| !l.noFSInit && !n.initialized && n.init(), n.ignorePermissions = !1, me(Ue); | |
| } | |
| function ma() { | |
| me(da); | |
| } | |
| function ca() { | |
| if (l.postRun) | |
| for (typeof l.postRun == "function" && (l.postRun = [l.postRun]); l.postRun.length; ) | |
| va(l.postRun.shift()); | |
| me(Be); | |
| } | |
| function pa(e) { | |
| Le.unshift(e); | |
| } | |
| function ga(e) { | |
| Ue.unshift(e); | |
| } | |
| function va(e) { | |
| Be.unshift(e); | |
| } | |
| var H = 0, ee = null; | |
| function Fe(e) { | |
| H++, l.monitorRunDependencies?.(H); | |
| } | |
| function le(e) { | |
| if (H--, l.monitorRunDependencies?.(H), H == 0 && ee) { | |
| var a = ee; | |
| ee = null, a(); | |
| } | |
| } | |
| function W(e) { | |
| l.onAbort?.(e), e = "Aborted(" + e + ")", I(e), Oe = !0, e += ". Build with -sASSERTIONS for more info."; | |
| var a = new WebAssembly.RuntimeError(e); | |
| throw O(a), a; | |
| } | |
| var ua = "data:application/octet-stream;base64,", Ie = (e) => e.startsWith(ua), fe = (e) => e.startsWith("file://"); | |
| function ka() { | |
| var e = "piper_phonemize.wasm"; | |
| return Ie(e) ? e : ia(e); | |
| } | |
| var Pe; | |
| function ha(e) { | |
| if (e == Pe && de) | |
| return new Uint8Array(de); | |
| if (Z) | |
| return Z(e); | |
| throw "both async and sync fetching of the wasm failed"; | |
| } | |
| async function _a(e) { | |
| if (!de) | |
| try { | |
| var a = await oe(e); | |
| return new Uint8Array(a); | |
| } catch { | |
| } | |
| return ha(e); | |
| } | |
| async function wa(e, a) { | |
| try { | |
| var t = await _a(e), r = await WebAssembly.instantiate(t, a); | |
| return r; | |
| } catch (s) { | |
| I(`failed to asynchronously prepare wasm: ${s}`), W(s); | |
| } | |
| } | |
| async function ba(e, a, t) { | |
| if (!e && typeof WebAssembly.instantiateStreaming == "function" && !Ie(a) && !fe(a) && !se && typeof fetch == "function") | |
| try { | |
| var r = fetch(a, { credentials: "same-origin" }), s = await WebAssembly.instantiateStreaming(r, t); | |
| return s; | |
| } catch (i) { | |
| I(`wasm streaming compile failed: ${i}`), I("falling back to ArrayBuffer instantiation"); | |
| } | |
| return wa(a, t); | |
| } | |
| function ya() { | |
| return { a: pt }; | |
| } | |
| async function Ea() { | |
| function e(s, i) { | |
| return Y = s.exports, xe = Y.w, oa(), ga(Y.x), le(), Y; | |
| } | |
| Fe(); | |
| function a(s) { | |
| e(s.instance); | |
| } | |
| var t = ya(); | |
| if (l.instantiateWasm) | |
| try { | |
| return l.instantiateWasm(t, e); | |
| } catch (s) { | |
| I(`Module.instantiateWasm callback failed with error: ${s}`), O(s); | |
| } | |
| Pe ??= ka(); | |
| try { | |
| var r = await ba(de, Pe, t); | |
| return a(r), r; | |
| } catch (s) { | |
| O(s); | |
| return; | |
| } | |
| } | |
| var c, E; | |
| class qe { | |
| name = "ExitStatus"; | |
| constructor(a) { | |
| this.message = `Program terminated with exit(${a})`, this.status = a; | |
| } | |
| } | |
| var me = (e) => { | |
| for (; e.length > 0; ) | |
| e.shift()(l); | |
| }; | |
| l.noExitRuntime; | |
| var He = typeof TextDecoder < "u" ? new TextDecoder() : void 0, V = (e, a = 0, t = NaN) => { | |
| for (var r = a + t, s = a; e[s] && !(s >= r); ) ++s; | |
| if (s - a > 16 && e.buffer && He) | |
| return He.decode(e.subarray(a, s)); | |
| for (var i = ""; a < s; ) { | |
| var o = e[a++]; | |
| if (!(o & 128)) { | |
| i += String.fromCharCode(o); | |
| continue; | |
| } | |
| var d = e[a++] & 63; | |
| if ((o & 224) == 192) { | |
| i += String.fromCharCode((o & 31) << 6 | d); | |
| continue; | |
| } | |
| var m = e[a++] & 63; | |
| if ((o & 240) == 224 ? o = (o & 15) << 12 | d << 6 | m : o = (o & 7) << 18 | d << 12 | m << 6 | e[a++] & 63, o < 65536) | |
| i += String.fromCharCode(o); | |
| else { | |
| var g = o - 65536; | |
| i += String.fromCharCode(55296 | g >> 10, 56320 | g & 1023); | |
| } | |
| } | |
| return i; | |
| }, ce = (e, a) => e ? V(G, e, a) : "", Sa = (e, a, t, r) => W(`Assertion failed: ${ce(e)}, at: ` + [a ? ce(a) : "unknown filename", t, r ? ce(r) : "unknown function"]); | |
| class Fa { | |
| constructor(a) { | |
| this.excPtr = a, this.ptr = a - 24; | |
| } | |
| set_type(a) { | |
| P[this.ptr + 4 >> 2] = a; | |
| } | |
| get_type() { | |
| return P[this.ptr + 4 >> 2]; | |
| } | |
| set_destructor(a) { | |
| P[this.ptr + 8 >> 2] = a; | |
| } | |
| get_destructor() { | |
| return P[this.ptr + 8 >> 2]; | |
| } | |
| set_caught(a) { | |
| a = a ? 1 : 0, j[this.ptr + 12] = a; | |
| } | |
| get_caught() { | |
| return j[this.ptr + 12] != 0; | |
| } | |
| set_rethrown(a) { | |
| a = a ? 1 : 0, j[this.ptr + 13] = a; | |
| } | |
| get_rethrown() { | |
| return j[this.ptr + 13] != 0; | |
| } | |
| init(a, t) { | |
| this.set_adjusted_ptr(0), this.set_type(a), this.set_destructor(t); | |
| } | |
| set_adjusted_ptr(a) { | |
| P[this.ptr + 16 >> 2] = a; | |
| } | |
| get_adjusted_ptr() { | |
| return P[this.ptr + 16 >> 2]; | |
| } | |
| } | |
| var We = 0, Pa = (e, a, t) => { | |
| var r = new Fa(e); | |
| throw r.init(a, t), We = e, We; | |
| }, pe = () => { | |
| var e = k[+z.varargs >> 2]; | |
| return z.varargs += 4, e; | |
| }, X = pe, b = { isAbs: (e) => e.charAt(0) === "/", splitPath: (e) => { | |
| var a = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; | |
| return a.exec(e).slice(1); | |
| }, normalizeArray: (e, a) => { | |
| for (var t = 0, r = e.length - 1; r >= 0; r--) { | |
| var s = e[r]; | |
| s === "." ? e.splice(r, 1) : s === ".." ? (e.splice(r, 1), t++) : t && (e.splice(r, 1), t--); | |
| } | |
| if (a) | |
| for (; t; t--) | |
| e.unshift(".."); | |
| return e; | |
| }, normalize: (e) => { | |
| var a = b.isAbs(e), t = e.substr(-1) === "/"; | |
| return e = b.normalizeArray(e.split("/").filter((r) => !!r), !a).join("/"), !e && !a && (e = "."), e && t && (e += "/"), (a ? "/" : "") + e; | |
| }, dirname: (e) => { | |
| var a = b.splitPath(e), t = a[0], r = a[1]; | |
| return !t && !r ? "." : (r && (r = r.substr(0, r.length - 1)), t + r); | |
| }, basename: (e) => { | |
| if (e === "/") return "/"; | |
| e = b.normalize(e), e = e.replace(/\/$/, ""); | |
| var a = e.lastIndexOf("/"); | |
| return a === -1 ? e : e.substr(a + 1); | |
| }, join: (...e) => b.normalize(e.join("/")), join2: (e, a) => b.normalize(e + "/" + a) }, Da = () => { | |
| if (typeof crypto == "object" && typeof crypto.getRandomValues == "function") | |
| return (r) => crypto.getRandomValues(r); | |
| if (se) | |
| try { | |
| var e = ke || Me, a = e.randomFillSync; | |
| if (a) | |
| return (r) => e.randomFillSync(r); | |
| var t = e.randomBytes; | |
| return (r) => (r.set(t(r.byteLength)), r); | |
| } catch { | |
| } | |
| W("initRandomDevice"); | |
| }, $e = (e) => ($e = Da())(e), K = { resolve: (...e) => { | |
| for (var a = "", t = !1, r = e.length - 1; r >= -1 && !t; r--) { | |
| var s = r >= 0 ? e[r] : n.cwd(); | |
| if (typeof s != "string") | |
| throw new TypeError("Arguments to path.resolve must be strings"); | |
| if (!s) | |
| return ""; | |
| a = s + "/" + a, t = b.isAbs(s); | |
| } | |
| return a = b.normalizeArray(a.split("/").filter((i) => !!i), !t).join("/"), (t ? "/" : "") + a || "."; | |
| }, relative: (e, a) => { | |
| e = K.resolve(e).substr(1), a = K.resolve(a).substr(1); | |
| function t(g) { | |
| for (var h = 0; h < g.length && g[h] === ""; h++) | |
| ; | |
| for (var _ = g.length - 1; _ >= 0 && g[_] === ""; _--) | |
| ; | |
| return h > _ ? [] : g.slice(h, _ - h + 1); | |
| } | |
| for (var r = t(e.split("/")), s = t(a.split("/")), i = Math.min(r.length, s.length), o = i, d = 0; d < i; d++) | |
| if (r[d] !== s[d]) { | |
| o = d; | |
| break; | |
| } | |
| for (var m = [], d = o; d < r.length; d++) | |
| m.push(".."); | |
| return m = m.concat(s.slice(o)), m.join("/"); | |
| } }, De = [], Ae = (e) => { | |
| for (var a = 0, t = 0; t < e.length; ++t) { | |
| var r = e.charCodeAt(t); | |
| r <= 127 ? a++ : r <= 2047 ? a += 2 : r >= 55296 && r <= 57343 ? (a += 4, ++t) : a += 3; | |
| } | |
| return a; | |
| }, Re = (e, a, t, r) => { | |
| if (!(r > 0)) return 0; | |
| for (var s = t, i = t + r - 1, o = 0; o < e.length; ++o) { | |
| var d = e.charCodeAt(o); | |
| if (d >= 55296 && d <= 57343) { | |
| var m = e.charCodeAt(++o); | |
| d = 65536 + ((d & 1023) << 10) | m & 1023; | |
| } | |
| if (d <= 127) { | |
| if (t >= i) break; | |
| a[t++] = d; | |
| } else if (d <= 2047) { | |
| if (t + 1 >= i) break; | |
| a[t++] = 192 | d >> 6, a[t++] = 128 | d & 63; | |
| } else if (d <= 65535) { | |
| if (t + 2 >= i) break; | |
| a[t++] = 224 | d >> 12, a[t++] = 128 | d >> 6 & 63, a[t++] = 128 | d & 63; | |
| } else { | |
| if (t + 3 >= i) break; | |
| a[t++] = 240 | d >> 18, a[t++] = 128 | d >> 12 & 63, a[t++] = 128 | d >> 6 & 63, a[t++] = 128 | d & 63; | |
| } | |
| } | |
| return a[t] = 0, t - s; | |
| }; | |
| function Ge(e, a, t) { | |
| var r = Ae(e) + 1, s = new Array(r), i = Re(e, s, 0, s.length); | |
| return s.length = i, s; | |
| } | |
| var Aa = () => { | |
| if (!De.length) { | |
| var e = null; | |
| if (se) { | |
| var a = 256, t = Buffer.alloc(a), r = 0, s = process.stdin.fd; | |
| try { | |
| r = ye.readSync(s, t, 0, a); | |
| } catch (i) { | |
| if (i.toString().includes("EOF")) r = 0; | |
| else throw i; | |
| } | |
| r > 0 && (e = t.slice(0, r).toString("utf-8")); | |
| } else typeof window < "u" && typeof window.prompt == "function" && (e = window.prompt("Input: "), e !== null && (e += ` | |
| `)); | |
| if (!e) | |
| return null; | |
| De = Ge(e); | |
| } | |
| return De.shift(); | |
| }, $ = { ttys: [], init() { | |
| }, shutdown() { | |
| }, register(e, a) { | |
| $.ttys[e] = { input: [], output: [], ops: a }, n.registerDevice(e, $.stream_ops); | |
| }, stream_ops: { open(e) { | |
| var a = $.ttys[e.node.rdev]; | |
| if (!a) | |
| throw new n.ErrnoError(43); | |
| e.tty = a, e.seekable = !1; | |
| }, close(e) { | |
| e.tty.ops.fsync(e.tty); | |
| }, fsync(e) { | |
| e.tty.ops.fsync(e.tty); | |
| }, read(e, a, t, r, s) { | |
| if (!e.tty || !e.tty.ops.get_char) | |
| throw new n.ErrnoError(60); | |
| for (var i = 0, o = 0; o < r; o++) { | |
| var d; | |
| try { | |
| d = e.tty.ops.get_char(e.tty); | |
| } catch { | |
| throw new n.ErrnoError(29); | |
| } | |
| if (d === void 0 && i === 0) | |
| throw new n.ErrnoError(6); | |
| if (d == null) break; | |
| i++, a[t + o] = d; | |
| } | |
| return i && (e.node.atime = Date.now()), i; | |
| }, write(e, a, t, r, s) { | |
| if (!e.tty || !e.tty.ops.put_char) | |
| throw new n.ErrnoError(60); | |
| try { | |
| for (var i = 0; i < r; i++) | |
| e.tty.ops.put_char(e.tty, a[t + i]); | |
| } catch { | |
| throw new n.ErrnoError(29); | |
| } | |
| return r && (e.node.mtime = e.node.ctime = Date.now()), i; | |
| } }, default_tty_ops: { get_char(e) { | |
| return Aa(); | |
| }, put_char(e, a) { | |
| a === null || a === 10 ? (Ee(V(e.output)), e.output = []) : a != 0 && e.output.push(a); | |
| }, fsync(e) { | |
| e.output && e.output.length > 0 && (Ee(V(e.output)), e.output = []); | |
| }, ioctl_tcgets(e) { | |
| return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }; | |
| }, ioctl_tcsets(e, a, t) { | |
| return 0; | |
| }, ioctl_tiocgwinsz(e) { | |
| return [24, 80]; | |
| } }, default_tty1_ops: { put_char(e, a) { | |
| a === null || a === 10 ? (I(V(e.output)), e.output = []) : a != 0 && e.output.push(a); | |
| }, fsync(e) { | |
| e.output && e.output.length > 0 && (I(V(e.output)), e.output = []); | |
| } } }, Ve = (e) => { | |
| W(); | |
| }, v = { ops_table: null, mount(e) { | |
| return v.createNode(null, "/", 16895, 0); | |
| }, createNode(e, a, t, r) { | |
| if (n.isBlkdev(t) || n.isFIFO(t)) | |
| throw new n.ErrnoError(63); | |
| v.ops_table ||= { dir: { node: { getattr: v.node_ops.getattr, setattr: v.node_ops.setattr, lookup: v.node_ops.lookup, mknod: v.node_ops.mknod, rename: v.node_ops.rename, unlink: v.node_ops.unlink, rmdir: v.node_ops.rmdir, readdir: v.node_ops.readdir, symlink: v.node_ops.symlink }, stream: { llseek: v.stream_ops.llseek } }, file: { node: { getattr: v.node_ops.getattr, setattr: v.node_ops.setattr }, stream: { llseek: v.stream_ops.llseek, read: v.stream_ops.read, write: v.stream_ops.write, allocate: v.stream_ops.allocate, mmap: v.stream_ops.mmap, msync: v.stream_ops.msync } }, link: { node: { getattr: v.node_ops.getattr, setattr: v.node_ops.setattr, readlink: v.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: v.node_ops.getattr, setattr: v.node_ops.setattr }, stream: n.chrdev_stream_ops } }; | |
| var s = n.createNode(e, a, t, r); | |
| return n.isDir(s.mode) ? (s.node_ops = v.ops_table.dir.node, s.stream_ops = v.ops_table.dir.stream, s.contents = {}) : n.isFile(s.mode) ? (s.node_ops = v.ops_table.file.node, s.stream_ops = v.ops_table.file.stream, s.usedBytes = 0, s.contents = null) : n.isLink(s.mode) ? (s.node_ops = v.ops_table.link.node, s.stream_ops = v.ops_table.link.stream) : n.isChrdev(s.mode) && (s.node_ops = v.ops_table.chrdev.node, s.stream_ops = v.ops_table.chrdev.stream), s.atime = s.mtime = s.ctime = Date.now(), e && (e.contents[a] = s, e.atime = e.mtime = e.ctime = s.atime), s; | |
| }, getFileDataAsTypedArray(e) { | |
| return e.contents ? e.contents.subarray ? e.contents.subarray(0, e.usedBytes) : new Uint8Array(e.contents) : new Uint8Array(0); | |
| }, expandFileStorage(e, a) { | |
| var t = e.contents ? e.contents.length : 0; | |
| if (!(t >= a)) { | |
| var r = 1024 * 1024; | |
| a = Math.max(a, t * (t < r ? 2 : 1.125) >>> 0), t != 0 && (a = Math.max(a, 256)); | |
| var s = e.contents; | |
| e.contents = new Uint8Array(a), e.usedBytes > 0 && e.contents.set(s.subarray(0, e.usedBytes), 0); | |
| } | |
| }, resizeFileStorage(e, a) { | |
| if (e.usedBytes != a) | |
| if (a == 0) | |
| e.contents = null, e.usedBytes = 0; | |
| else { | |
| var t = e.contents; | |
| e.contents = new Uint8Array(a), t && e.contents.set(t.subarray(0, Math.min(a, e.usedBytes))), e.usedBytes = a; | |
| } | |
| }, node_ops: { getattr(e) { | |
| var a = {}; | |
| return a.dev = n.isChrdev(e.mode) ? e.id : 1, a.ino = e.id, a.mode = e.mode, a.nlink = 1, a.uid = 0, a.gid = 0, a.rdev = e.rdev, n.isDir(e.mode) ? a.size = 4096 : n.isFile(e.mode) ? a.size = e.usedBytes : n.isLink(e.mode) ? a.size = e.link.length : a.size = 0, a.atime = new Date(e.atime), a.mtime = new Date(e.mtime), a.ctime = new Date(e.ctime), a.blksize = 4096, a.blocks = Math.ceil(a.size / a.blksize), a; | |
| }, setattr(e, a) { | |
| for (const t of ["mode", "atime", "mtime", "ctime"]) | |
| a[t] && (e[t] = a[t]); | |
| a.size !== void 0 && v.resizeFileStorage(e, a.size); | |
| }, lookup(e, a) { | |
| throw v.doesNotExistError; | |
| }, mknod(e, a, t, r) { | |
| return v.createNode(e, a, t, r); | |
| }, rename(e, a, t) { | |
| var r; | |
| try { | |
| r = n.lookupNode(a, t); | |
| } catch { | |
| } | |
| if (r) { | |
| if (n.isDir(e.mode)) | |
| for (var s in r.contents) | |
| throw new n.ErrnoError(55); | |
| n.hashRemoveNode(r); | |
| } | |
| delete e.parent.contents[e.name], a.contents[t] = e, e.name = t, a.ctime = a.mtime = e.parent.ctime = e.parent.mtime = Date.now(); | |
| }, unlink(e, a) { | |
| delete e.contents[a], e.ctime = e.mtime = Date.now(); | |
| }, rmdir(e, a) { | |
| var t = n.lookupNode(e, a); | |
| for (var r in t.contents) | |
| throw new n.ErrnoError(55); | |
| delete e.contents[a], e.ctime = e.mtime = Date.now(); | |
| }, readdir(e) { | |
| return [".", "..", ...Object.keys(e.contents)]; | |
| }, symlink(e, a, t) { | |
| var r = v.createNode(e, a, 41471, 0); | |
| return r.link = t, r; | |
| }, readlink(e) { | |
| if (!n.isLink(e.mode)) | |
| throw new n.ErrnoError(28); | |
| return e.link; | |
| } }, stream_ops: { read(e, a, t, r, s) { | |
| var i = e.node.contents; | |
| if (s >= e.node.usedBytes) return 0; | |
| var o = Math.min(e.node.usedBytes - s, r); | |
| if (o > 8 && i.subarray) | |
| a.set(i.subarray(s, s + o), t); | |
| else | |
| for (var d = 0; d < o; d++) a[t + d] = i[s + d]; | |
| return o; | |
| }, write(e, a, t, r, s, i) { | |
| if (!r) return 0; | |
| var o = e.node; | |
| if (o.mtime = o.ctime = Date.now(), a.subarray && (!o.contents || o.contents.subarray)) { | |
| if (i) | |
| return o.contents = a.subarray(t, t + r), o.usedBytes = r, r; | |
| if (o.usedBytes === 0 && s === 0) | |
| return o.contents = a.slice(t, t + r), o.usedBytes = r, r; | |
| if (s + r <= o.usedBytes) | |
| return o.contents.set(a.subarray(t, t + r), s), r; | |
| } | |
| if (v.expandFileStorage(o, s + r), o.contents.subarray && a.subarray) | |
| o.contents.set(a.subarray(t, t + r), s); | |
| else | |
| for (var d = 0; d < r; d++) | |
| o.contents[s + d] = a[t + d]; | |
| return o.usedBytes = Math.max(o.usedBytes, s + r), r; | |
| }, llseek(e, a, t) { | |
| var r = a; | |
| if (t === 1 ? r += e.position : t === 2 && n.isFile(e.node.mode) && (r += e.node.usedBytes), r < 0) | |
| throw new n.ErrnoError(28); | |
| return r; | |
| }, allocate(e, a, t) { | |
| v.expandFileStorage(e.node, a + t), e.node.usedBytes = Math.max(e.node.usedBytes, a + t); | |
| }, mmap(e, a, t, r, s) { | |
| if (!n.isFile(e.node.mode)) | |
| throw new n.ErrnoError(43); | |
| var i, o, d = e.node.contents; | |
| if (!(s & 2) && d && d.buffer === j.buffer) | |
| o = !1, i = d.byteOffset; | |
| else { | |
| if (o = !0, i = Ve(), !i) | |
| throw new n.ErrnoError(48); | |
| d && ((t > 0 || t + a < d.length) && (d.subarray ? d = d.subarray(t, t + a) : d = Array.prototype.slice.call(d, t, t + a)), j.set(d, i)); | |
| } | |
| return { ptr: i, allocated: o }; | |
| }, msync(e, a, t, r, s) { | |
| return v.stream_ops.write(e, a, 0, r, t, !1), 0; | |
| } } }, Ra = async (e) => { | |
| var a = await oe(e); | |
| return new Uint8Array(a); | |
| }, Xe = (e, a, t, r, s, i) => { | |
| n.createDataFile(e, a, t, r, s, i); | |
| }, za = l.preloadPlugins || [], Na = (e, a, t, r) => { | |
| typeof Browser < "u" && Browser.init(); | |
| var s = !1; | |
| return za.forEach((i) => { | |
| s || i.canHandle(a) && (i.handle(e, a, t, r), s = !0); | |
| }), s; | |
| }, Ke = (e, a, t, r, s, i, o, d, m, g) => { | |
| var h = a ? K.resolve(b.join2(e, a)) : e; | |
| function _(u) { | |
| function p(f) { | |
| g?.(), d || Xe(e, a, f, r, s, m), i?.(), le(); | |
| } | |
| Na(u, h, p, () => { | |
| o?.(), le(); | |
| }) || p(u); | |
| } | |
| Fe(), typeof t == "string" ? Ra(t).then(_, o) : _(t); | |
| }, Ma = (e) => { | |
| var a = { r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090 }, t = a[e]; | |
| if (typeof t > "u") | |
| throw new Error(`Unknown file open mode: ${e}`); | |
| return t; | |
| }, ze = (e, a) => { | |
| var t = 0; | |
| return e && (t |= 365), a && (t |= 146), t; | |
| }, n = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: !1, ignorePermissions: !0, ErrnoError: class { | |
| name = "ErrnoError"; | |
| constructor(e) { | |
| this.errno = e; | |
| } | |
| }, filesystems: null, syncFSRequests: 0, readFiles: {}, FSStream: class { | |
| shared = {}; | |
| get object() { | |
| return this.node; | |
| } | |
| set object(e) { | |
| this.node = e; | |
| } | |
| get isRead() { | |
| return (this.flags & 2097155) !== 1; | |
| } | |
| get isWrite() { | |
| return (this.flags & 2097155) !== 0; | |
| } | |
| get isAppend() { | |
| return this.flags & 1024; | |
| } | |
| get flags() { | |
| return this.shared.flags; | |
| } | |
| set flags(e) { | |
| this.shared.flags = e; | |
| } | |
| get position() { | |
| return this.shared.position; | |
| } | |
| set position(e) { | |
| this.shared.position = e; | |
| } | |
| }, FSNode: class { | |
| node_ops = {}; | |
| stream_ops = {}; | |
| readMode = 365; | |
| writeMode = 146; | |
| mounted = null; | |
| constructor(e, a, t, r) { | |
| e || (e = this), this.parent = e, this.mount = e.mount, this.id = n.nextInode++, this.name = a, this.mode = t, this.rdev = r, this.atime = this.mtime = this.ctime = Date.now(); | |
| } | |
| get read() { | |
| return (this.mode & this.readMode) === this.readMode; | |
| } | |
| set read(e) { | |
| e ? this.mode |= this.readMode : this.mode &= ~this.readMode; | |
| } | |
| get write() { | |
| return (this.mode & this.writeMode) === this.writeMode; | |
| } | |
| set write(e) { | |
| e ? this.mode |= this.writeMode : this.mode &= ~this.writeMode; | |
| } | |
| get isFolder() { | |
| return n.isDir(this.mode); | |
| } | |
| get isDevice() { | |
| return n.isChrdev(this.mode); | |
| } | |
| }, lookupPath(e, a = {}) { | |
| if (!e) return { path: "", node: null }; | |
| a.follow_mount ??= !0, b.isAbs(e) || (e = n.cwd() + "/" + e); | |
| e: for (var t = 0; t < 40; t++) { | |
| for (var r = e.split("/").filter((g) => !!g && g !== "."), s = n.root, i = "/", o = 0; o < r.length; o++) { | |
| var d = o === r.length - 1; | |
| if (d && a.parent) | |
| break; | |
| if (r[o] === "..") { | |
| i = b.dirname(i), s = s.parent; | |
| continue; | |
| } | |
| i = b.join2(i, r[o]); | |
| try { | |
| s = n.lookupNode(s, r[o]); | |
| } catch (g) { | |
| if (g?.errno === 44 && d && a.noent_okay) | |
| return { path: i }; | |
| throw g; | |
| } | |
| if (n.isMountpoint(s) && (!d || a.follow_mount) && (s = s.mounted.root), n.isLink(s.mode) && (!d || a.follow)) { | |
| if (!s.node_ops.readlink) | |
| throw new n.ErrnoError(52); | |
| var m = s.node_ops.readlink(s); | |
| b.isAbs(m) || (m = b.dirname(i) + "/" + m), e = m + "/" + r.slice(o + 1).join("/"); | |
| continue e; | |
| } | |
| } | |
| return { path: i, node: s }; | |
| } | |
| throw new n.ErrnoError(32); | |
| }, getPath(e) { | |
| for (var a; ; ) { | |
| if (n.isRoot(e)) { | |
| var t = e.mount.mountpoint; | |
| return a ? t[t.length - 1] !== "/" ? `${t}/${a}` : t + a : t; | |
| } | |
| a = a ? `${e.name}/${a}` : e.name, e = e.parent; | |
| } | |
| }, hashName(e, a) { | |
| for (var t = 0, r = 0; r < a.length; r++) | |
| t = (t << 5) - t + a.charCodeAt(r) | 0; | |
| return (e + t >>> 0) % n.nameTable.length; | |
| }, hashAddNode(e) { | |
| var a = n.hashName(e.parent.id, e.name); | |
| e.name_next = n.nameTable[a], n.nameTable[a] = e; | |
| }, hashRemoveNode(e) { | |
| var a = n.hashName(e.parent.id, e.name); | |
| if (n.nameTable[a] === e) | |
| n.nameTable[a] = e.name_next; | |
| else | |
| for (var t = n.nameTable[a]; t; ) { | |
| if (t.name_next === e) { | |
| t.name_next = e.name_next; | |
| break; | |
| } | |
| t = t.name_next; | |
| } | |
| }, lookupNode(e, a) { | |
| var t = n.mayLookup(e); | |
| if (t) | |
| throw new n.ErrnoError(t); | |
| for (var r = n.hashName(e.id, a), s = n.nameTable[r]; s; s = s.name_next) { | |
| var i = s.name; | |
| if (s.parent.id === e.id && i === a) | |
| return s; | |
| } | |
| return n.lookup(e, a); | |
| }, createNode(e, a, t, r) { | |
| var s = new n.FSNode(e, a, t, r); | |
| return n.hashAddNode(s), s; | |
| }, destroyNode(e) { | |
| n.hashRemoveNode(e); | |
| }, isRoot(e) { | |
| return e === e.parent; | |
| }, isMountpoint(e) { | |
| return !!e.mounted; | |
| }, isFile(e) { | |
| return (e & 61440) === 32768; | |
| }, isDir(e) { | |
| return (e & 61440) === 16384; | |
| }, isLink(e) { | |
| return (e & 61440) === 40960; | |
| }, isChrdev(e) { | |
| return (e & 61440) === 8192; | |
| }, isBlkdev(e) { | |
| return (e & 61440) === 24576; | |
| }, isFIFO(e) { | |
| return (e & 61440) === 4096; | |
| }, isSocket(e) { | |
| return (e & 49152) === 49152; | |
| }, flagsToPermissionString(e) { | |
| var a = ["r", "w", "rw"][e & 3]; | |
| return e & 512 && (a += "w"), a; | |
| }, nodePermissions(e, a) { | |
| return n.ignorePermissions ? 0 : a.includes("r") && !(e.mode & 292) || a.includes("w") && !(e.mode & 146) || a.includes("x") && !(e.mode & 73) ? 2 : 0; | |
| }, mayLookup(e) { | |
| if (!n.isDir(e.mode)) return 54; | |
| var a = n.nodePermissions(e, "x"); | |
| return a || (e.node_ops.lookup ? 0 : 2); | |
| }, mayCreate(e, a) { | |
| if (!n.isDir(e.mode)) | |
| return 54; | |
| try { | |
| var t = n.lookupNode(e, a); | |
| return 20; | |
| } catch { | |
| } | |
| return n.nodePermissions(e, "wx"); | |
| }, mayDelete(e, a, t) { | |
| var r; | |
| try { | |
| r = n.lookupNode(e, a); | |
| } catch (i) { | |
| return i.errno; | |
| } | |
| var s = n.nodePermissions(e, "wx"); | |
| if (s) | |
| return s; | |
| if (t) { | |
| if (!n.isDir(r.mode)) | |
| return 54; | |
| if (n.isRoot(r) || n.getPath(r) === n.cwd()) | |
| return 10; | |
| } else if (n.isDir(r.mode)) | |
| return 31; | |
| return 0; | |
| }, mayOpen(e, a) { | |
| return e ? n.isLink(e.mode) ? 32 : n.isDir(e.mode) && (n.flagsToPermissionString(a) !== "r" || a & 512) ? 31 : n.nodePermissions(e, n.flagsToPermissionString(a)) : 44; | |
| }, MAX_OPEN_FDS: 4096, nextfd() { | |
| for (var e = 0; e <= n.MAX_OPEN_FDS; e++) | |
| if (!n.streams[e]) | |
| return e; | |
| throw new n.ErrnoError(33); | |
| }, getStreamChecked(e) { | |
| var a = n.getStream(e); | |
| if (!a) | |
| throw new n.ErrnoError(8); | |
| return a; | |
| }, getStream: (e) => n.streams[e], createStream(e, a = -1) { | |
| return e = Object.assign(new n.FSStream(), e), a == -1 && (a = n.nextfd()), e.fd = a, n.streams[a] = e, e; | |
| }, closeStream(e) { | |
| n.streams[e] = null; | |
| }, dupStream(e, a = -1) { | |
| var t = n.createStream(e, a); | |
| return t.stream_ops?.dup?.(t), t; | |
| }, chrdev_stream_ops: { open(e) { | |
| var a = n.getDevice(e.node.rdev); | |
| e.stream_ops = a.stream_ops, e.stream_ops.open?.(e); | |
| }, llseek() { | |
| throw new n.ErrnoError(70); | |
| } }, major: (e) => e >> 8, minor: (e) => e & 255, makedev: (e, a) => e << 8 | a, registerDevice(e, a) { | |
| n.devices[e] = { stream_ops: a }; | |
| }, getDevice: (e) => n.devices[e], getMounts(e) { | |
| for (var a = [], t = [e]; t.length; ) { | |
| var r = t.pop(); | |
| a.push(r), t.push(...r.mounts); | |
| } | |
| return a; | |
| }, syncfs(e, a) { | |
| typeof e == "function" && (a = e, e = !1), n.syncFSRequests++, n.syncFSRequests > 1 && I(`warning: ${n.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`); | |
| var t = n.getMounts(n.root.mount), r = 0; | |
| function s(o) { | |
| return n.syncFSRequests--, a(o); | |
| } | |
| function i(o) { | |
| if (o) | |
| return i.errored ? void 0 : (i.errored = !0, s(o)); | |
| ++r >= t.length && s(null); | |
| } | |
| t.forEach((o) => { | |
| if (!o.type.syncfs) | |
| return i(null); | |
| o.type.syncfs(o, e, i); | |
| }); | |
| }, mount(e, a, t) { | |
| var r = t === "/", s = !t, i; | |
| if (r && n.root) | |
| throw new n.ErrnoError(10); | |
| if (!r && !s) { | |
| var o = n.lookupPath(t, { follow_mount: !1 }); | |
| if (t = o.path, i = o.node, n.isMountpoint(i)) | |
| throw new n.ErrnoError(10); | |
| if (!n.isDir(i.mode)) | |
| throw new n.ErrnoError(54); | |
| } | |
| var d = { type: e, opts: a, mountpoint: t, mounts: [] }, m = e.mount(d); | |
| return m.mount = d, d.root = m, r ? n.root = m : i && (i.mounted = d, i.mount && i.mount.mounts.push(d)), m; | |
| }, unmount(e) { | |
| var a = n.lookupPath(e, { follow_mount: !1 }); | |
| if (!n.isMountpoint(a.node)) | |
| throw new n.ErrnoError(28); | |
| var t = a.node, r = t.mounted, s = n.getMounts(r); | |
| Object.keys(n.nameTable).forEach((o) => { | |
| for (var d = n.nameTable[o]; d; ) { | |
| var m = d.name_next; | |
| s.includes(d.mount) && n.destroyNode(d), d = m; | |
| } | |
| }), t.mounted = null; | |
| var i = t.mount.mounts.indexOf(r); | |
| t.mount.mounts.splice(i, 1); | |
| }, lookup(e, a) { | |
| return e.node_ops.lookup(e, a); | |
| }, mknod(e, a, t) { | |
| var r = n.lookupPath(e, { parent: !0 }), s = r.node, i = b.basename(e); | |
| if (!i || i === "." || i === "..") | |
| throw new n.ErrnoError(28); | |
| var o = n.mayCreate(s, i); | |
| if (o) | |
| throw new n.ErrnoError(o); | |
| if (!s.node_ops.mknod) | |
| throw new n.ErrnoError(63); | |
| return s.node_ops.mknod(s, i, a, t); | |
| }, statfs(e) { | |
| var a = { bsize: 4096, frsize: 4096, blocks: 1e6, bfree: 5e5, bavail: 5e5, files: n.nextInode, ffree: n.nextInode - 1, fsid: 42, flags: 2, namelen: 255 }, t = n.lookupPath(e, { follow: !0 }).node; | |
| return t?.node_ops.statfs && Object.assign(a, t.node_ops.statfs(t.mount.opts.root)), a; | |
| }, create(e, a = 438) { | |
| return a &= 4095, a |= 32768, n.mknod(e, a, 0); | |
| }, mkdir(e, a = 511) { | |
| return a &= 1023, a |= 16384, n.mknod(e, a, 0); | |
| }, mkdirTree(e, a) { | |
| for (var t = e.split("/"), r = "", s = 0; s < t.length; ++s) | |
| if (t[s]) { | |
| r += "/" + t[s]; | |
| try { | |
| n.mkdir(r, a); | |
| } catch (i) { | |
| if (i.errno != 20) throw i; | |
| } | |
| } | |
| }, mkdev(e, a, t) { | |
| return typeof t > "u" && (t = a, a = 438), a |= 8192, n.mknod(e, a, t); | |
| }, symlink(e, a) { | |
| if (!K.resolve(e)) | |
| throw new n.ErrnoError(44); | |
| var t = n.lookupPath(a, { parent: !0 }), r = t.node; | |
| if (!r) | |
| throw new n.ErrnoError(44); | |
| var s = b.basename(a), i = n.mayCreate(r, s); | |
| if (i) | |
| throw new n.ErrnoError(i); | |
| if (!r.node_ops.symlink) | |
| throw new n.ErrnoError(63); | |
| return r.node_ops.symlink(r, s, e); | |
| }, rename(e, a) { | |
| var t = b.dirname(e), r = b.dirname(a), s = b.basename(e), i = b.basename(a), o, d, m; | |
| if (o = n.lookupPath(e, { parent: !0 }), d = o.node, o = n.lookupPath(a, { parent: !0 }), m = o.node, !d || !m) throw new n.ErrnoError(44); | |
| if (d.mount !== m.mount) | |
| throw new n.ErrnoError(75); | |
| var g = n.lookupNode(d, s), h = K.relative(e, r); | |
| if (h.charAt(0) !== ".") | |
| throw new n.ErrnoError(28); | |
| if (h = K.relative(a, t), h.charAt(0) !== ".") | |
| throw new n.ErrnoError(55); | |
| var _; | |
| try { | |
| _ = n.lookupNode(m, i); | |
| } catch { | |
| } | |
| if (g !== _) { | |
| var u = n.isDir(g.mode), p = n.mayDelete(d, s, u); | |
| if (p) | |
| throw new n.ErrnoError(p); | |
| if (p = _ ? n.mayDelete(m, i, u) : n.mayCreate(m, i), p) | |
| throw new n.ErrnoError(p); | |
| if (!d.node_ops.rename) | |
| throw new n.ErrnoError(63); | |
| if (n.isMountpoint(g) || _ && n.isMountpoint(_)) | |
| throw new n.ErrnoError(10); | |
| if (m !== d && (p = n.nodePermissions(d, "w"), p)) | |
| throw new n.ErrnoError(p); | |
| n.hashRemoveNode(g); | |
| try { | |
| d.node_ops.rename(g, m, i), g.parent = m; | |
| } catch (f) { | |
| throw f; | |
| } finally { | |
| n.hashAddNode(g); | |
| } | |
| } | |
| }, rmdir(e) { | |
| var a = n.lookupPath(e, { parent: !0 }), t = a.node, r = b.basename(e), s = n.lookupNode(t, r), i = n.mayDelete(t, r, !0); | |
| if (i) | |
| throw new n.ErrnoError(i); | |
| if (!t.node_ops.rmdir) | |
| throw new n.ErrnoError(63); | |
| if (n.isMountpoint(s)) | |
| throw new n.ErrnoError(10); | |
| t.node_ops.rmdir(t, r), n.destroyNode(s); | |
| }, readdir(e) { | |
| var a = n.lookupPath(e, { follow: !0 }), t = a.node; | |
| if (!t.node_ops.readdir) | |
| throw new n.ErrnoError(54); | |
| return t.node_ops.readdir(t); | |
| }, unlink(e) { | |
| var a = n.lookupPath(e, { parent: !0 }), t = a.node; | |
| if (!t) | |
| throw new n.ErrnoError(44); | |
| var r = b.basename(e), s = n.lookupNode(t, r), i = n.mayDelete(t, r, !1); | |
| if (i) | |
| throw new n.ErrnoError(i); | |
| if (!t.node_ops.unlink) | |
| throw new n.ErrnoError(63); | |
| if (n.isMountpoint(s)) | |
| throw new n.ErrnoError(10); | |
| t.node_ops.unlink(t, r), n.destroyNode(s); | |
| }, readlink(e) { | |
| var a = n.lookupPath(e), t = a.node; | |
| if (!t) | |
| throw new n.ErrnoError(44); | |
| if (!t.node_ops.readlink) | |
| throw new n.ErrnoError(28); | |
| return t.node_ops.readlink(t); | |
| }, stat(e, a) { | |
| var t = n.lookupPath(e, { follow: !a }), r = t.node; | |
| if (!r) | |
| throw new n.ErrnoError(44); | |
| if (!r.node_ops.getattr) | |
| throw new n.ErrnoError(63); | |
| return r.node_ops.getattr(r); | |
| }, lstat(e) { | |
| return n.stat(e, !0); | |
| }, chmod(e, a, t) { | |
| var r; | |
| if (typeof e == "string") { | |
| var s = n.lookupPath(e, { follow: !t }); | |
| r = s.node; | |
| } else | |
| r = e; | |
| if (!r.node_ops.setattr) | |
| throw new n.ErrnoError(63); | |
| r.node_ops.setattr(r, { mode: a & 4095 | r.mode & -4096, ctime: Date.now() }); | |
| }, lchmod(e, a) { | |
| n.chmod(e, a, !0); | |
| }, fchmod(e, a) { | |
| var t = n.getStreamChecked(e); | |
| n.chmod(t.node, a); | |
| }, chown(e, a, t, r) { | |
| var s; | |
| if (typeof e == "string") { | |
| var i = n.lookupPath(e, { follow: !r }); | |
| s = i.node; | |
| } else | |
| s = e; | |
| if (!s.node_ops.setattr) | |
| throw new n.ErrnoError(63); | |
| s.node_ops.setattr(s, { timestamp: Date.now() }); | |
| }, lchown(e, a, t) { | |
| n.chown(e, a, t, !0); | |
| }, fchown(e, a, t) { | |
| var r = n.getStreamChecked(e); | |
| n.chown(r.node, a, t); | |
| }, truncate(e, a) { | |
| if (a < 0) | |
| throw new n.ErrnoError(28); | |
| var t; | |
| if (typeof e == "string") { | |
| var r = n.lookupPath(e, { follow: !0 }); | |
| t = r.node; | |
| } else | |
| t = e; | |
| if (!t.node_ops.setattr) | |
| throw new n.ErrnoError(63); | |
| if (n.isDir(t.mode)) | |
| throw new n.ErrnoError(31); | |
| if (!n.isFile(t.mode)) | |
| throw new n.ErrnoError(28); | |
| var s = n.nodePermissions(t, "w"); | |
| if (s) | |
| throw new n.ErrnoError(s); | |
| t.node_ops.setattr(t, { size: a, timestamp: Date.now() }); | |
| }, ftruncate(e, a) { | |
| var t = n.getStreamChecked(e); | |
| if ((t.flags & 2097155) === 0) | |
| throw new n.ErrnoError(28); | |
| n.truncate(t.node, a); | |
| }, utime(e, a, t) { | |
| var r = n.lookupPath(e, { follow: !0 }), s = r.node; | |
| s.node_ops.setattr(s, { atime: a, mtime: t }); | |
| }, open(e, a, t = 438) { | |
| if (e === "") | |
| throw new n.ErrnoError(44); | |
| a = typeof a == "string" ? Ma(a) : a, a & 64 ? t = t & 4095 | 32768 : t = 0; | |
| var r; | |
| if (typeof e == "object") | |
| r = e; | |
| else { | |
| var s = n.lookupPath(e, { follow: !(a & 131072), noent_okay: !0 }); | |
| r = s.node, e = s.path; | |
| } | |
| var i = !1; | |
| if (a & 64) | |
| if (r) { | |
| if (a & 128) | |
| throw new n.ErrnoError(20); | |
| } else | |
| r = n.mknod(e, t, 0), i = !0; | |
| if (!r) | |
| throw new n.ErrnoError(44); | |
| if (n.isChrdev(r.mode) && (a &= -513), a & 65536 && !n.isDir(r.mode)) | |
| throw new n.ErrnoError(54); | |
| if (!i) { | |
| var o = n.mayOpen(r, a); | |
| if (o) | |
| throw new n.ErrnoError(o); | |
| } | |
| a & 512 && !i && n.truncate(r, 0), a &= -131713; | |
| var d = n.createStream({ node: r, path: n.getPath(r), flags: a, seekable: !0, position: 0, stream_ops: r.stream_ops, ungotten: [], error: !1 }); | |
| return d.stream_ops.open && d.stream_ops.open(d), l.logReadFiles && !(a & 1) && (e in n.readFiles || (n.readFiles[e] = 1)), d; | |
| }, close(e) { | |
| if (n.isClosed(e)) | |
| throw new n.ErrnoError(8); | |
| e.getdents && (e.getdents = null); | |
| try { | |
| e.stream_ops.close && e.stream_ops.close(e); | |
| } catch (a) { | |
| throw a; | |
| } finally { | |
| n.closeStream(e.fd); | |
| } | |
| e.fd = null; | |
| }, isClosed(e) { | |
| return e.fd === null; | |
| }, llseek(e, a, t) { | |
| if (n.isClosed(e)) | |
| throw new n.ErrnoError(8); | |
| if (!e.seekable || !e.stream_ops.llseek) | |
| throw new n.ErrnoError(70); | |
| if (t != 0 && t != 1 && t != 2) | |
| throw new n.ErrnoError(28); | |
| return e.position = e.stream_ops.llseek(e, a, t), e.ungotten = [], e.position; | |
| }, read(e, a, t, r, s) { | |
| if (r < 0 || s < 0) | |
| throw new n.ErrnoError(28); | |
| if (n.isClosed(e)) | |
| throw new n.ErrnoError(8); | |
| if ((e.flags & 2097155) === 1) | |
| throw new n.ErrnoError(8); | |
| if (n.isDir(e.node.mode)) | |
| throw new n.ErrnoError(31); | |
| if (!e.stream_ops.read) | |
| throw new n.ErrnoError(28); | |
| var i = typeof s < "u"; | |
| if (!i) | |
| s = e.position; | |
| else if (!e.seekable) | |
| throw new n.ErrnoError(70); | |
| var o = e.stream_ops.read(e, a, t, r, s); | |
| return i || (e.position += o), o; | |
| }, write(e, a, t, r, s, i) { | |
| if (r < 0 || s < 0) | |
| throw new n.ErrnoError(28); | |
| if (n.isClosed(e)) | |
| throw new n.ErrnoError(8); | |
| if ((e.flags & 2097155) === 0) | |
| throw new n.ErrnoError(8); | |
| if (n.isDir(e.node.mode)) | |
| throw new n.ErrnoError(31); | |
| if (!e.stream_ops.write) | |
| throw new n.ErrnoError(28); | |
| e.seekable && e.flags & 1024 && n.llseek(e, 0, 2); | |
| var o = typeof s < "u"; | |
| if (!o) | |
| s = e.position; | |
| else if (!e.seekable) | |
| throw new n.ErrnoError(70); | |
| var d = e.stream_ops.write(e, a, t, r, s, i); | |
| return o || (e.position += d), d; | |
| }, allocate(e, a, t) { | |
| if (n.isClosed(e)) | |
| throw new n.ErrnoError(8); | |
| if (a < 0 || t <= 0) | |
| throw new n.ErrnoError(28); | |
| if ((e.flags & 2097155) === 0) | |
| throw new n.ErrnoError(8); | |
| if (!n.isFile(e.node.mode) && !n.isDir(e.node.mode)) | |
| throw new n.ErrnoError(43); | |
| if (!e.stream_ops.allocate) | |
| throw new n.ErrnoError(138); | |
| e.stream_ops.allocate(e, a, t); | |
| }, mmap(e, a, t, r, s) { | |
| if ((r & 2) !== 0 && (s & 2) === 0 && (e.flags & 2097155) !== 2) | |
| throw new n.ErrnoError(2); | |
| if ((e.flags & 2097155) === 1) | |
| throw new n.ErrnoError(2); | |
| if (!e.stream_ops.mmap) | |
| throw new n.ErrnoError(43); | |
| if (!a) | |
| throw new n.ErrnoError(28); | |
| return e.stream_ops.mmap(e, a, t, r, s); | |
| }, msync(e, a, t, r, s) { | |
| return e.stream_ops.msync ? e.stream_ops.msync(e, a, t, r, s) : 0; | |
| }, ioctl(e, a, t) { | |
| if (!e.stream_ops.ioctl) | |
| throw new n.ErrnoError(59); | |
| return e.stream_ops.ioctl(e, a, t); | |
| }, readFile(e, a = {}) { | |
| if (a.flags = a.flags || 0, a.encoding = a.encoding || "binary", a.encoding !== "utf8" && a.encoding !== "binary") | |
| throw new Error(`Invalid encoding type "${a.encoding}"`); | |
| var t, r = n.open(e, a.flags), s = n.stat(e), i = s.size, o = new Uint8Array(i); | |
| return n.read(r, o, 0, i, 0), a.encoding === "utf8" ? t = V(o) : a.encoding === "binary" && (t = o), n.close(r), t; | |
| }, writeFile(e, a, t = {}) { | |
| t.flags = t.flags || 577; | |
| var r = n.open(e, t.flags, t.mode); | |
| if (typeof a == "string") { | |
| var s = new Uint8Array(Ae(a) + 1), i = Re(a, s, 0, s.length); | |
| n.write(r, s, 0, i, void 0, t.canOwn); | |
| } else if (ArrayBuffer.isView(a)) | |
| n.write(r, a, 0, a.byteLength, void 0, t.canOwn); | |
| else | |
| throw new Error("Unsupported data type"); | |
| n.close(r); | |
| }, cwd: () => n.currentPath, chdir(e) { | |
| var a = n.lookupPath(e, { follow: !0 }); | |
| if (a.node === null) | |
| throw new n.ErrnoError(44); | |
| if (!n.isDir(a.node.mode)) | |
| throw new n.ErrnoError(54); | |
| var t = n.nodePermissions(a.node, "x"); | |
| if (t) | |
| throw new n.ErrnoError(t); | |
| n.currentPath = a.path; | |
| }, createDefaultDirectories() { | |
| n.mkdir("/tmp"), n.mkdir("/home"), n.mkdir("/home/web_user"); | |
| }, createDefaultDevices() { | |
| n.mkdir("/dev"), n.registerDevice(n.makedev(1, 3), { read: () => 0, write: (r, s, i, o, d) => o, llseek: () => 0 }), n.mkdev("/dev/null", n.makedev(1, 3)), $.register(n.makedev(5, 0), $.default_tty_ops), $.register(n.makedev(6, 0), $.default_tty1_ops), n.mkdev("/dev/tty", n.makedev(5, 0)), n.mkdev("/dev/tty1", n.makedev(6, 0)); | |
| var e = new Uint8Array(1024), a = 0, t = () => (a === 0 && (a = $e(e).byteLength), e[--a]); | |
| n.createDevice("/dev", "random", t), n.createDevice("/dev", "urandom", t), n.mkdir("/dev/shm"), n.mkdir("/dev/shm/tmp"); | |
| }, createSpecialDirectories() { | |
| n.mkdir("/proc"); | |
| var e = n.mkdir("/proc/self"); | |
| n.mkdir("/proc/self/fd"), n.mount({ mount() { | |
| var a = n.createNode(e, "fd", 16895, 73); | |
| return a.stream_ops = { llseek: v.stream_ops.llseek }, a.node_ops = { lookup(t, r) { | |
| var s = +r, i = n.getStreamChecked(s), o = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => i.path }, id: s + 1 }; | |
| return o.parent = o, o; | |
| }, readdir() { | |
| return Array.from(n.streams.entries()).filter(([t, r]) => r).map(([t, r]) => t.toString()); | |
| } }, a; | |
| } }, {}, "/proc/self/fd"); | |
| }, createStandardStreams(e, a, t) { | |
| e ? n.createDevice("/dev", "stdin", e) : n.symlink("/dev/tty", "/dev/stdin"), a ? n.createDevice("/dev", "stdout", null, a) : n.symlink("/dev/tty", "/dev/stdout"), t ? n.createDevice("/dev", "stderr", null, t) : n.symlink("/dev/tty1", "/dev/stderr"), n.open("/dev/stdin", 0), n.open("/dev/stdout", 1), n.open("/dev/stderr", 1); | |
| }, staticInit() { | |
| n.nameTable = new Array(4096), n.mount(v, {}, "/"), n.createDefaultDirectories(), n.createDefaultDevices(), n.createSpecialDirectories(), n.filesystems = { MEMFS: v }; | |
| }, init(e, a, t) { | |
| n.initialized = !0, e ??= l.stdin, a ??= l.stdout, t ??= l.stderr, n.createStandardStreams(e, a, t); | |
| }, quit() { | |
| n.initialized = !1; | |
| for (var e = 0; e < n.streams.length; e++) { | |
| var a = n.streams[e]; | |
| a && n.close(a); | |
| } | |
| }, findObject(e, a) { | |
| var t = n.analyzePath(e, a); | |
| return t.exists ? t.object : null; | |
| }, analyzePath(e, a) { | |
| try { | |
| var t = n.lookupPath(e, { follow: !a }); | |
| e = t.path; | |
| } catch { | |
| } | |
| var r = { isRoot: !1, exists: !1, error: 0, name: null, path: null, object: null, parentExists: !1, parentPath: null, parentObject: null }; | |
| try { | |
| var t = n.lookupPath(e, { parent: !0 }); | |
| r.parentExists = !0, r.parentPath = t.path, r.parentObject = t.node, r.name = b.basename(e), t = n.lookupPath(e, { follow: !a }), r.exists = !0, r.path = t.path, r.object = t.node, r.name = t.node.name, r.isRoot = t.path === "/"; | |
| } catch (s) { | |
| r.error = s.errno; | |
| } | |
| return r; | |
| }, createPath(e, a, t, r) { | |
| e = typeof e == "string" ? e : n.getPath(e); | |
| for (var s = a.split("/").reverse(); s.length; ) { | |
| var i = s.pop(); | |
| if (i) { | |
| var o = b.join2(e, i); | |
| try { | |
| n.mkdir(o); | |
| } catch { | |
| } | |
| e = o; | |
| } | |
| } | |
| return o; | |
| }, createFile(e, a, t, r, s) { | |
| var i = b.join2(typeof e == "string" ? e : n.getPath(e), a), o = ze(r, s); | |
| return n.create(i, o); | |
| }, createDataFile(e, a, t, r, s, i) { | |
| var o = a; | |
| e && (e = typeof e == "string" ? e : n.getPath(e), o = a ? b.join2(e, a) : e); | |
| var d = ze(r, s), m = n.create(o, d); | |
| if (t) { | |
| if (typeof t == "string") { | |
| for (var g = new Array(t.length), h = 0, _ = t.length; h < _; ++h) g[h] = t.charCodeAt(h); | |
| t = g; | |
| } | |
| n.chmod(m, d | 146); | |
| var u = n.open(m, 577); | |
| n.write(u, t, 0, t.length, 0, i), n.close(u), n.chmod(m, d); | |
| } | |
| }, createDevice(e, a, t, r) { | |
| var s = b.join2(typeof e == "string" ? e : n.getPath(e), a), i = ze(!!t, !!r); | |
| n.createDevice.major ??= 64; | |
| var o = n.makedev(n.createDevice.major++, 0); | |
| return n.registerDevice(o, { open(d) { | |
| d.seekable = !1; | |
| }, close(d) { | |
| r?.buffer?.length && r(10); | |
| }, read(d, m, g, h, _) { | |
| for (var u = 0, p = 0; p < h; p++) { | |
| var f; | |
| try { | |
| f = t(); | |
| } catch { | |
| throw new n.ErrnoError(29); | |
| } | |
| if (f === void 0 && u === 0) | |
| throw new n.ErrnoError(6); | |
| if (f == null) break; | |
| u++, m[g + p] = f; | |
| } | |
| return u && (d.node.atime = Date.now()), u; | |
| }, write(d, m, g, h, _) { | |
| for (var u = 0; u < h; u++) | |
| try { | |
| r(m[g + u]); | |
| } catch { | |
| throw new n.ErrnoError(29); | |
| } | |
| return h && (d.node.mtime = d.node.ctime = Date.now()), u; | |
| } }), n.mkdev(s, i, o); | |
| }, forceLoadFile(e) { | |
| if (e.isDevice || e.isFolder || e.link || e.contents) return !0; | |
| if (typeof XMLHttpRequest < "u") | |
| throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); | |
| try { | |
| e.contents = Z(e.url), e.usedBytes = e.contents.length; | |
| } catch { | |
| throw new n.ErrnoError(29); | |
| } | |
| }, createLazyFile(e, a, t, r, s) { | |
| class i { | |
| lengthKnown = !1; | |
| chunks = []; | |
| get(p) { | |
| if (!(p > this.length - 1 || p < 0)) { | |
| var f = p % this.chunkSize, S = p / this.chunkSize | 0; | |
| return this.getter(S)[f]; | |
| } | |
| } | |
| setDataGetter(p) { | |
| this.getter = p; | |
| } | |
| cacheLength() { | |
| var p = new XMLHttpRequest(); | |
| if (p.open("HEAD", t, !1), p.send(null), !(p.status >= 200 && p.status < 300 || p.status === 304)) throw new Error("Couldn't load " + t + ". Status: " + p.status); | |
| var f = Number(p.getResponseHeader("Content-length")), S, N = (S = p.getResponseHeader("Accept-Ranges")) && S === "bytes", A = (S = p.getResponseHeader("Content-Encoding")) && S === "gzip", w = 1024 * 1024; | |
| N || (w = f); | |
| var M = (F, C) => { | |
| if (F > C) throw new Error("invalid range (" + F + ", " + C + ") or no bytes requested!"); | |
| if (C > f - 1) throw new Error("only " + f + " bytes available! programmer error!"); | |
| var D = new XMLHttpRequest(); | |
| if (D.open("GET", t, !1), f !== w && D.setRequestHeader("Range", "bytes=" + F + "-" + C), D.responseType = "arraybuffer", D.overrideMimeType && D.overrideMimeType("text/plain; charset=x-user-defined"), D.send(null), !(D.status >= 200 && D.status < 300 || D.status === 304)) throw new Error("Couldn't load " + t + ". Status: " + D.status); | |
| return D.response !== void 0 ? new Uint8Array(D.response || []) : Ge(D.responseText || ""); | |
| }, R = this; | |
| R.setDataGetter((F) => { | |
| var C = F * w, D = (F + 1) * w - 1; | |
| if (D = Math.min(D, f - 1), typeof R.chunks[F] > "u" && (R.chunks[F] = M(C, D)), typeof R.chunks[F] > "u") throw new Error("doXHR failed!"); | |
| return R.chunks[F]; | |
| }), (A || !f) && (w = f = 1, f = this.getter(0).length, w = f, Ee("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = f, this._chunkSize = w, this.lengthKnown = !0; | |
| } | |
| get length() { | |
| return this.lengthKnown || this.cacheLength(), this._length; | |
| } | |
| get chunkSize() { | |
| return this.lengthKnown || this.cacheLength(), this._chunkSize; | |
| } | |
| } | |
| if (typeof XMLHttpRequest < "u") { | |
| if (!re) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; | |
| var o = new i(), d = { isDevice: !1, contents: o }; | |
| } else | |
| var d = { isDevice: !1, url: t }; | |
| var m = n.createFile(e, a, d, r, s); | |
| d.contents ? m.contents = d.contents : d.url && (m.contents = null, m.url = d.url), Object.defineProperties(m, { usedBytes: { get: function() { | |
| return this.contents.length; | |
| } } }); | |
| var g = {}, h = Object.keys(m.stream_ops); | |
| h.forEach((u) => { | |
| var p = m.stream_ops[u]; | |
| g[u] = (...f) => (n.forceLoadFile(m), p(...f)); | |
| }); | |
| function _(u, p, f, S, N) { | |
| var A = u.node.contents; | |
| if (N >= A.length) return 0; | |
| var w = Math.min(A.length - N, S); | |
| if (A.slice) | |
| for (var M = 0; M < w; M++) | |
| p[f + M] = A[N + M]; | |
| else | |
| for (var M = 0; M < w; M++) | |
| p[f + M] = A.get(N + M); | |
| return w; | |
| } | |
| return g.read = (u, p, f, S, N) => (n.forceLoadFile(m), _(u, p, f, S, N)), g.mmap = (u, p, f, S, N) => { | |
| n.forceLoadFile(m); | |
| var A = Ve(); | |
| if (!A) | |
| throw new n.ErrnoError(48); | |
| return _(u, j, A, p, f), { ptr: A, allocated: !0 }; | |
| }, m.stream_ops = g, m; | |
| } }, z = { DEFAULT_POLLMASK: 5, calculateAt(e, a, t) { | |
| if (b.isAbs(a)) | |
| return a; | |
| var r; | |
| if (e === -100) | |
| r = n.cwd(); | |
| else { | |
| var s = z.getStreamFromFD(e); | |
| r = s.path; | |
| } | |
| if (a.length == 0) { | |
| if (!t) | |
| throw new n.ErrnoError(44); | |
| return r; | |
| } | |
| return r + "/" + a; | |
| }, doStat(e, a, t) { | |
| var r = e(a); | |
| k[t >> 2] = r.dev, k[t + 4 >> 2] = r.mode, P[t + 8 >> 2] = r.nlink, k[t + 12 >> 2] = r.uid, k[t + 16 >> 2] = r.gid, k[t + 20 >> 2] = r.rdev, E = [r.size >>> 0, (c = r.size, +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[t + 24 >> 2] = E[0], k[t + 28 >> 2] = E[1], k[t + 32 >> 2] = 4096, k[t + 36 >> 2] = r.blocks; | |
| var s = r.atime.getTime(), i = r.mtime.getTime(), o = r.ctime.getTime(); | |
| return E = [Math.floor(s / 1e3) >>> 0, (c = Math.floor(s / 1e3), +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[t + 40 >> 2] = E[0], k[t + 44 >> 2] = E[1], P[t + 48 >> 2] = s % 1e3 * 1e3 * 1e3, E = [Math.floor(i / 1e3) >>> 0, (c = Math.floor(i / 1e3), +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[t + 56 >> 2] = E[0], k[t + 60 >> 2] = E[1], P[t + 64 >> 2] = i % 1e3 * 1e3 * 1e3, E = [Math.floor(o / 1e3) >>> 0, (c = Math.floor(o / 1e3), +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[t + 72 >> 2] = E[0], k[t + 76 >> 2] = E[1], P[t + 80 >> 2] = o % 1e3 * 1e3 * 1e3, E = [r.ino >>> 0, (c = r.ino, +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[t + 88 >> 2] = E[0], k[t + 92 >> 2] = E[1], 0; | |
| }, doMsync(e, a, t, r, s) { | |
| if (!n.isFile(a.node.mode)) | |
| throw new n.ErrnoError(43); | |
| if (r & 2) | |
| return 0; | |
| var i = G.slice(e, e + t); | |
| n.msync(a, i, s, t, r); | |
| }, getStreamFromFD(e) { | |
| var a = n.getStreamChecked(e); | |
| return a; | |
| }, varargs: void 0, getStr(e) { | |
| var a = ce(e); | |
| return a; | |
| } }; | |
| function Ta(e, a, t) { | |
| z.varargs = t; | |
| try { | |
| var r = z.getStreamFromFD(e); | |
| switch (a) { | |
| case 0: { | |
| var s = pe(); | |
| if (s < 0) | |
| return -28; | |
| for (; n.streams[s]; ) | |
| s++; | |
| var i; | |
| return i = n.dupStream(r, s), i.fd; | |
| } | |
| case 1: | |
| case 2: | |
| return 0; | |
| case 3: | |
| return r.flags; | |
| case 4: { | |
| var s = pe(); | |
| return r.flags |= s, 0; | |
| } | |
| case 12: { | |
| var s = X(), o = 0; | |
| return Q[s + o >> 1] = 2, 0; | |
| } | |
| case 13: | |
| case 14: | |
| return 0; | |
| } | |
| return -28; | |
| } catch (d) { | |
| if (typeof n > "u" || d.name !== "ErrnoError") throw d; | |
| return -d.errno; | |
| } | |
| } | |
| var J = (e, a, t) => Re(e, G, a, t); | |
| function ja(e, a, t) { | |
| try { | |
| var r = z.getStreamFromFD(e); | |
| r.getdents ||= n.readdir(r.path); | |
| for (var s = 280, i = 0, o = n.llseek(r, 0, 1), d = Math.floor(o / s), m = Math.min(r.getdents.length, d + Math.floor(t / s)), g = d; g < m; g++) { | |
| var h, _, u = r.getdents[g]; | |
| if (u === ".") | |
| h = r.node.id, _ = 4; | |
| else if (u === "..") { | |
| var p = n.lookupPath(r.path, { parent: !0 }); | |
| h = p.node.id, _ = 4; | |
| } else { | |
| var f; | |
| try { | |
| f = n.lookupNode(r.node, u); | |
| } catch (S) { | |
| if (S?.errno === 28) | |
| continue; | |
| throw S; | |
| } | |
| h = f.id, _ = n.isChrdev(f.mode) ? 2 : n.isDir(f.mode) ? 4 : n.isLink(f.mode) ? 10 : 8; | |
| } | |
| E = [h >>> 0, (c = h, +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[a + i >> 2] = E[0], k[a + i + 4 >> 2] = E[1], E = [(g + 1) * s >>> 0, (c = (g + 1) * s, +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[a + i + 8 >> 2] = E[0], k[a + i + 12 >> 2] = E[1], Q[a + i + 16 >> 1] = 280, j[a + i + 18] = _, J(u, a + i + 19, 256), i += s; | |
| } | |
| return n.llseek(r, g * s, 0), i; | |
| } catch (S) { | |
| if (typeof n > "u" || S.name !== "ErrnoError") throw S; | |
| return -S.errno; | |
| } | |
| } | |
| function Ca(e, a, t) { | |
| z.varargs = t; | |
| try { | |
| var r = z.getStreamFromFD(e); | |
| switch (a) { | |
| case 21509: | |
| return r.tty ? 0 : -59; | |
| case 21505: { | |
| if (!r.tty) return -59; | |
| if (r.tty.ops.ioctl_tcgets) { | |
| var s = r.tty.ops.ioctl_tcgets(r), i = X(); | |
| k[i >> 2] = s.c_iflag || 0, k[i + 4 >> 2] = s.c_oflag || 0, k[i + 8 >> 2] = s.c_cflag || 0, k[i + 12 >> 2] = s.c_lflag || 0; | |
| for (var o = 0; o < 32; o++) | |
| j[i + o + 17] = s.c_cc[o] || 0; | |
| return 0; | |
| } | |
| return 0; | |
| } | |
| case 21510: | |
| case 21511: | |
| case 21512: | |
| return r.tty ? 0 : -59; | |
| case 21506: | |
| case 21507: | |
| case 21508: { | |
| if (!r.tty) return -59; | |
| if (r.tty.ops.ioctl_tcsets) { | |
| for (var i = X(), d = k[i >> 2], m = k[i + 4 >> 2], g = k[i + 8 >> 2], h = k[i + 12 >> 2], _ = [], o = 0; o < 32; o++) | |
| _.push(j[i + o + 17]); | |
| return r.tty.ops.ioctl_tcsets(r.tty, a, { c_iflag: d, c_oflag: m, c_cflag: g, c_lflag: h, c_cc: _ }); | |
| } | |
| return 0; | |
| } | |
| case 21519: { | |
| if (!r.tty) return -59; | |
| var i = X(); | |
| return k[i >> 2] = 0, 0; | |
| } | |
| case 21520: | |
| return r.tty ? -28 : -59; | |
| case 21531: { | |
| var i = X(); | |
| return n.ioctl(r, a, i); | |
| } | |
| case 21523: { | |
| if (!r.tty) return -59; | |
| if (r.tty.ops.ioctl_tiocgwinsz) { | |
| var u = r.tty.ops.ioctl_tiocgwinsz(r.tty), i = X(); | |
| Q[i >> 1] = u[0], Q[i + 2 >> 1] = u[1]; | |
| } | |
| return 0; | |
| } | |
| case 21524: | |
| return r.tty ? 0 : -59; | |
| case 21515: | |
| return r.tty ? 0 : -59; | |
| default: | |
| return -28; | |
| } | |
| } catch (p) { | |
| if (typeof n > "u" || p.name !== "ErrnoError") throw p; | |
| return -p.errno; | |
| } | |
| } | |
| function xa(e, a, t, r) { | |
| z.varargs = r; | |
| try { | |
| a = z.getStr(a), a = z.calculateAt(e, a); | |
| var s = r ? pe() : 0; | |
| return n.open(a, t, s).fd; | |
| } catch (i) { | |
| if (typeof n > "u" || i.name !== "ErrnoError") throw i; | |
| return -i.errno; | |
| } | |
| } | |
| function Oa(e) { | |
| try { | |
| return e = z.getStr(e), n.rmdir(e), 0; | |
| } catch (a) { | |
| if (typeof n > "u" || a.name !== "ErrnoError") throw a; | |
| return -a.errno; | |
| } | |
| } | |
| function La(e, a) { | |
| try { | |
| return e = z.getStr(e), z.doStat(n.stat, e, a); | |
| } catch (t) { | |
| if (typeof n > "u" || t.name !== "ErrnoError") throw t; | |
| return -t.errno; | |
| } | |
| } | |
| function Ua(e, a, t) { | |
| try { | |
| return a = z.getStr(a), a = z.calculateAt(e, a), t === 0 ? n.unlink(a) : t === 512 ? n.rmdir(a) : W("Invalid flags passed to unlinkat"), 0; | |
| } catch (r) { | |
| if (typeof n > "u" || r.name !== "ErrnoError") throw r; | |
| return -r.errno; | |
| } | |
| } | |
| var Ba = () => W(""), Ia = (e, a, t) => G.copyWithin(e, a, a + t), qa = (e, a, t, r) => { | |
| var s = (/* @__PURE__ */ new Date()).getFullYear(), i = new Date(s, 0, 1), o = new Date(s, 6, 1), d = i.getTimezoneOffset(), m = o.getTimezoneOffset(), g = Math.max(d, m); | |
| P[e >> 2] = g * 60, k[a >> 2] = +(d != m); | |
| var h = (p) => { | |
| var f = p >= 0 ? "-" : "+", S = Math.abs(p), N = String(Math.floor(S / 60)).padStart(2, "0"), A = String(S % 60).padStart(2, "0"); | |
| return `UTC${f}${N}${A}`; | |
| }, _ = h(d), u = h(m); | |
| m < d ? (J(_, t, 17), J(u, r, 17)) : (J(_, r, 17), J(u, t, 17)); | |
| }, Ha = () => performance.now(), Je = () => Date.now(), Wa = (e) => e >= 0 && e <= 3, $a = (e, a) => a + 2097152 >>> 0 < 4194305 - !!e ? (e >>> 0) + a * 4294967296 : NaN; | |
| function Ga(e, a, t, r) { | |
| if (!Wa(e)) | |
| return 28; | |
| var s; | |
| e === 0 ? s = Je() : s = Ha(); | |
| var i = Math.round(s * 1e3 * 1e3); | |
| return E = [i >>> 0, (c = i, +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[r >> 2] = E[0], k[r + 4 >> 2] = E[1], 0; | |
| } | |
| var Va = (e) => { | |
| W("OOM"); | |
| }, Xa = (e) => { | |
| G.length, Va(); | |
| }, Ne = {}, Ka = () => ie || "./this.program", ae = () => { | |
| if (!ae.strings) { | |
| var e = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8", a = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: e, _: Ka() }; | |
| for (var t in Ne) | |
| Ne[t] === void 0 ? delete a[t] : a[t] = Ne[t]; | |
| var r = []; | |
| for (var t in a) | |
| r.push(`${t}=${a[t]}`); | |
| ae.strings = r; | |
| } | |
| return ae.strings; | |
| }, Ja = (e, a) => { | |
| for (var t = 0; t < e.length; ++t) | |
| j[a++] = e.charCodeAt(t); | |
| j[a] = 0; | |
| }, Ya = (e, a) => { | |
| var t = 0; | |
| return ae().forEach((r, s) => { | |
| var i = a + t; | |
| P[e + s * 4 >> 2] = i, Ja(r, i), t += r.length + 1; | |
| }), 0; | |
| }, Za = (e, a) => { | |
| var t = ae(); | |
| P[e >> 2] = t.length; | |
| var r = 0; | |
| return t.forEach((s) => r += s.length + 1), P[a >> 2] = r, 0; | |
| }, Qa = (e) => { | |
| Se = e, be(e, new qe(e)); | |
| }, Ye = (e, a) => { | |
| Se = e, Qa(e); | |
| }, et = Ye; | |
| function at(e) { | |
| try { | |
| var a = z.getStreamFromFD(e); | |
| return n.close(a), 0; | |
| } catch (t) { | |
| if (typeof n > "u" || t.name !== "ErrnoError") throw t; | |
| return t.errno; | |
| } | |
| } | |
| var tt = (e, a, t, r) => { | |
| for (var s = 0, i = 0; i < t; i++) { | |
| var o = P[a >> 2], d = P[a + 4 >> 2]; | |
| a += 8; | |
| var m = n.read(e, j, o, d, r); | |
| if (m < 0) return -1; | |
| if (s += m, m < d) break; | |
| } | |
| return s; | |
| }; | |
| function nt(e, a, t, r) { | |
| try { | |
| var s = z.getStreamFromFD(e), i = tt(s, a, t); | |
| return P[r >> 2] = i, 0; | |
| } catch (o) { | |
| if (typeof n > "u" || o.name !== "ErrnoError") throw o; | |
| return o.errno; | |
| } | |
| } | |
| function rt(e, a, t, r, s) { | |
| var i = $a(a, t); | |
| try { | |
| if (isNaN(i)) return 61; | |
| var o = z.getStreamFromFD(e); | |
| return n.llseek(o, i, r), E = [o.position >>> 0, (c = o.position, +Math.abs(c) >= 1 ? c > 0 ? +Math.floor(c / 4294967296) >>> 0 : ~~+Math.ceil((c - +(~~c >>> 0)) / 4294967296) >>> 0 : 0)], k[s >> 2] = E[0], k[s + 4 >> 2] = E[1], o.getdents && i === 0 && r === 0 && (o.getdents = null), 0; | |
| } catch (d) { | |
| if (typeof n > "u" || d.name !== "ErrnoError") throw d; | |
| return d.errno; | |
| } | |
| } | |
| var st = (e, a, t, r) => { | |
| for (var s = 0, i = 0; i < t; i++) { | |
| var o = P[a >> 2], d = P[a + 4 >> 2]; | |
| a += 8; | |
| var m = n.write(e, j, o, d, r); | |
| if (m < 0) return -1; | |
| if (s += m, m < d) | |
| break; | |
| } | |
| return s; | |
| }; | |
| function it(e, a, t, r) { | |
| try { | |
| var s = z.getStreamFromFD(e), i = st(s, a, t); | |
| return P[r >> 2] = i, 0; | |
| } catch (o) { | |
| if (typeof n > "u" || o.name !== "ErrnoError") throw o; | |
| return o.errno; | |
| } | |
| } | |
| var ot = (e) => { | |
| if (e instanceof qe || e == "unwind") | |
| return Se; | |
| be(1, e); | |
| }, Ze = (e) => ea(e), dt = (e) => { | |
| var a = Ae(e) + 1, t = Ze(a); | |
| return J(e, t, a), t; | |
| }, lt = n.createPath, ft = (e) => n.unlink(e), mt = n.createLazyFile, ct = n.createDevice; | |
| n.createPreloadedFile = Ke, n.staticInit(), l.FS_createPath = n.createPath, l.FS_createDataFile = n.createDataFile, l.FS_createPreloadedFile = n.createPreloadedFile, l.FS_unlink = n.unlink, l.FS_createLazyFile = n.createLazyFile, l.FS_createDevice = n.createDevice, v.doesNotExistError = new n.ErrnoError(44), v.doesNotExistError.stack = "<generic error, no stack>"; | |
| var pt = { a: Sa, b: Pa, e: Ta, s: ja, h: Ca, f: xa, q: Oa, p: La, r: Ua, k: Ba, j: Ia, n: qa, l: Ga, i: Je, o: Xa, t: Ya, u: Za, d: et, c: at, v: nt, m: rt, g: it }, Y; | |
| Ea(); | |
| var Qe = l._main = (e, a) => (Qe = l._main = Y.y)(e, a), ea = (e) => (ea = Y.A)(e); | |
| l.addRunDependency = Fe, l.removeRunDependency = le, l.callMain = aa, l.FS_createPreloadedFile = Ke, l.FS_unlink = ft, l.FS_createPath = lt, l.FS_createDevice = ct, l.FS = n, l.FS_createDataFile = Xe, l.FS_createLazyFile = mt; | |
| var ge; | |
| ee = function e() { | |
| ge || ta(), ge || (ee = e); | |
| }; | |
| function aa(e = []) { | |
| var a = Qe; | |
| e.unshift(ie); | |
| var t = e.length, r = Ze((t + 1) * 4), s = r; | |
| e.forEach((o) => { | |
| P[s >> 2] = dt(o), s += 4; | |
| }), P[s >> 2] = 0; | |
| try { | |
| var i = a(t, r); | |
| return Ye(i, !0), i; | |
| } catch (o) { | |
| return ot(o); | |
| } | |
| } | |
| function ta(e = we) { | |
| if (H > 0 || (la(), H > 0)) | |
| return; | |
| function a() { | |
| ge || (ge = !0, l.calledRun = !0, !Oe && (fa(), ma(), q(l), l.onRuntimeInitialized?.(), na && aa(e), ca())); | |
| } | |
| l.setStatus ? (l.setStatus("Running..."), setTimeout(() => { | |
| setTimeout(() => l.setStatus(""), 1), a(); | |
| }, 1)) : a(); | |
| } | |
| if (l.preInit) | |
| for (typeof l.preInit == "function" && (l.preInit = [l.preInit]); l.preInit.length > 0; ) | |
| l.preInit.pop()(); | |
| var na = !1; | |
| return l.noInitialRun && (na = !1), ta(), T = he, T; | |
| }; | |
| })(); | |
| typeof je == "object" && typeof B == "object" ? (B.exports = Te, B.exports.default = Te) : typeof define == "function" && define.amd && define([], () => Te); | |
| const kt = (B.exports == null ? {} : B.exports).default || B.exports; | |
| class ht { | |
| #e = []; | |
| destroy() { | |
| for (const y in this.#e) | |
| typeof y == "string" && y.startsWith("blob:") && URL.revokeObjectURL(y); | |
| this.#e = []; | |
| } | |
| async fetch(y) { | |
| return this.#e[y] ? Promise.resolve(this.#e[y]) : fetch(y).then(async (T) => { | |
| if (!T.ok) | |
| throw new Error("Could not fetch: " + y); | |
| return y.endsWith(".json") ? T.json() : URL.createObjectURL(await T.blob()); | |
| }).then((T) => this.#e[y] = T); | |
| } | |
| } | |
| class _t { | |
| #e = null; | |
| #s = null; | |
| #t = null; | |
| #n = null; | |
| #r = null; | |
| #a = null; | |
| constructor({ provider: y = new ht(), basePath: T = "/piper/" } = {}) { | |
| this.#e = y, this.#s = T; | |
| } | |
| destroy() { | |
| this.#e.destroy(), this.#t = null, this.#n = null, this.#r = null, this.#a = null; | |
| } | |
| async loadModule(y = null, T = null) { | |
| return this.#t = y || this.#t || await this.#e.fetch(this.#s + "piper_phonemize.wasm"), this.#n = T || this.#n || await this.#e.fetch(this.#s + "piper_phonemize.data"), this.#r || (this.#r = await kt({ | |
| print: (l) => { | |
| this.#a && (this.#a(JSON.parse(l)), this.#a = null); | |
| }, | |
| printErr: (l) => { | |
| throw new Error(l); | |
| }, | |
| locateFile: (l, q) => l.endsWith(".wasm") ? this.#t : l.endsWith(".data") ? this.#n : l | |
| })), Promise.resolve(this.#r); | |
| } | |
| async phonemize(y, T) { | |
| const l = Object.fromEntries(Object.entries(T[0].phoneme_id_map).map(([q, O]) => [O[0], q])); | |
| return new Promise((q) => { | |
| this.#a = (O) => { | |
| const he = O.phoneme_ids.map((_e) => l[_e]); | |
| q({ | |
| ...O, | |
| phonemes: he | |
| }); | |
| }, this.loadModule().then( | |
| (O) => O.callMain([ | |
| "-l", | |
| T[0].espeak.voice, | |
| "--input", | |
| JSON.stringify([{ text: y }]), | |
| "--espeak_data", | |
| "/espeak-ng-data" | |
| ]) | |
| ); | |
| }); | |
| } | |
| } | |
| let ue = null; | |
| self.onmessage = ({ data: { type: x, data: y } }) => { | |
| switch (x) { | |
| case "constructor": | |
| ue = new _t(y || {}); | |
| break; | |
| case "destroy": | |
| ue.destroy(); | |
| break; | |
| case "loadModule": | |
| ue.loadModule(...y || []).then(() => self.postMessage(null)); | |
| break; | |
| case "phonemize": | |
| ue.phonemize(...y || []).then(self.postMessage); | |
| break; | |
| default: | |
| throw new Error("Unknown type " + x); | |
| } | |
| }; | |
| }); | |
| export default wt(); | |