From 17023abf27819391598e5dc226860d20986a4649 Mon Sep 17 00:00:00 2001 From: Furqan-14 Date: Tue, 30 Jun 2026 21:18:46 +0530 Subject: [PATCH] feat: updated text handling bugs --- CMakePresets.json | 3 +- bindings/python/pdfengine_py.cpp | 4 + engine/include/pdfengine/pdf_document.hpp | 5 +- engine/src/fonts/shaping/hb_shaper.cpp | 8 + engine/src/parser/pdfium_document.cpp | 18 ++ engine/src/parser/pdfium_document.hpp | 3 + engine/src/parser/pdfium_edit.cpp | 49 +++++ engine/src/parser/pdfium_edit_reflow.cpp | 55 ++++-- engine/src/parser/pdfium_edit_replace.cpp | 121 +++++++----- engine/src/parser/pdfium_fonts.cpp | 61 +++--- engine/src/qpdf/qpdf_writer.cpp | 119 ++++++++++++ engine/src/qpdf/qpdf_writer.hpp | 17 +- frontend/public/pdfium-engine.mjs | 2 +- frontend/public/pdfium-engine.wasm | Bin 10505698 -> 11501400 bytes frontend/src/lib/gatewayService.ts | 4 + frontend/src/lib/pdfiumEngine.ts | 2 +- frontend/src/viewer/ParagraphEditor.tsx | 227 +++++++++++++++++++--- frontend/src/viewer/TextEditLayer.tsx | 6 +- gateway/app/routers/documents/export.py | 5 +- gateway/app/routers/edits.py | 4 + gateway/app/services/export.py | 44 ----- wasm/CMakeLists.txt | 4 + 22 files changed, 583 insertions(+), 178 deletions(-) delete mode 100644 gateway/app/services/export.py diff --git a/CMakePresets.json b/CMakePresets.json index 5f5c9d0..e9edd4b 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -119,7 +119,8 @@ "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "PDFENGINE_BUILD_TESTS": "OFF", - "PDFENGINE_WITH_PDFIUM": "ON" + "PDFENGINE_WITH_PDFIUM": "ON", + "PDFENGINE_WITH_QPDF": "ON" } }, diff --git a/bindings/python/pdfengine_py.cpp b/bindings/python/pdfengine_py.cpp index 27f371d..96fea69 100644 --- a/bindings/python/pdfengine_py.cpp +++ b/bindings/python/pdfengine_py.cpp @@ -492,5 +492,9 @@ PYBIND11_MODULE(pdfengine, m) { .def("save_full", [](const pdfengine::PdfDocument& self) { std::vector res = get_or_throw(self.saveFull()); return py::bytes(reinterpret_cast(res.data()), res.size()); + }) + .def("save_full_for_export", [](const pdfengine::PdfDocument& self) { + std::vector res = get_or_throw(self.saveFullForExport()); + return py::bytes(reinterpret_cast(res.data()), res.size()); }); } \ No newline at end of file diff --git a/engine/include/pdfengine/pdf_document.hpp b/engine/include/pdfengine/pdf_document.hpp index 9d2d67a..67eed1b 100644 --- a/engine/include/pdfengine/pdf_document.hpp +++ b/engine/include/pdfengine/pdf_document.hpp @@ -265,8 +265,11 @@ public: [[nodiscard]] virtual std::expected, EngineError> saveIncremental() const = 0; - [[nodiscard]] virtual std::expected, EngineError> + [[nodiscard]] virtual std::expected, EngineError> saveFull() const = 0; + + [[nodiscard]] virtual std::expected, EngineError> + saveFullForExport() const { return saveFull(); } }; } \ No newline at end of file diff --git a/engine/src/fonts/shaping/hb_shaper.cpp b/engine/src/fonts/shaping/hb_shaper.cpp index 839b290..8e88c02 100644 --- a/engine/src/fonts/shaping/hb_shaper.cpp +++ b/engine/src/fonts/shaping/hb_shaper.cpp @@ -3,6 +3,9 @@ #include #include #include +#include +#include +#include FT_FREETYPE_H namespace pdfengine::fonts { @@ -25,8 +28,13 @@ std::vector HbShaper::shapeRun( std::lock_guard lock(font.getMutex()); if (FT_Set_Pixel_Sizes(ftFace, 0, fontSize)) { + spdlog::warn("HbShaper: FT_Set_Pixel_Sizes({}) failed (numFixedSizes={} scalable={})", + fontSize, ftFace->num_fixed_sizes, (FT_IS_SCALABLE(ftFace) ? 1 : 0)); return result; } + if (FT_Select_Charmap(ftFace, FT_ENCODING_UNICODE) != 0 && ftFace->num_charmaps > 0) { + FT_Set_Charmap(ftFace, ftFace->charmaps[0]); + } hb_font_t* hbFont = hb_ft_font_create_referenced(ftFace); if (!hbFont) { diff --git a/engine/src/parser/pdfium_document.cpp b/engine/src/parser/pdfium_document.cpp index 612b33e..9310240 100644 --- a/engine/src/parser/pdfium_document.cpp +++ b/engine/src/parser/pdfium_document.cpp @@ -1,5 +1,9 @@ #include "parser/pdfium_internal.hpp" +#if defined(PDFENGINE_WITH_PDFIUM) && defined(PDFENGINE_WITH_QPDF) +#include "qpdf/qpdf_writer.hpp" +#endif + namespace pdfengine { std::expected, EngineError> @@ -240,6 +244,20 @@ std::expected, EngineError> PdfiumDocument::saveFull() cons #endif } +std::expected, EngineError> PdfiumDocument::saveFullForExport() const { + auto bytes = saveFull(); +#if defined(PDFENGINE_WITH_PDFIUM) && defined(PDFENGINE_WITH_QPDF) + if (bytes) { + qpdf_layer::QpdfWriter writer; + auto withAppearances = writer.setNeedAppearances(*bytes); + if (withAppearances) return *withAppearances; + spdlog::warn("saveFullForExport: NeedAppearances pass failed ({}); returning plain save", + withAppearances.error()); + } +#endif + return bytes; +} + void PdfiumDocument::invalidateCaches() { { std::lock_guard lock(fontsMutex_); diff --git a/engine/src/parser/pdfium_document.hpp b/engine/src/parser/pdfium_document.hpp index 98dcd9a..598bae2 100644 --- a/engine/src/parser/pdfium_document.hpp +++ b/engine/src/parser/pdfium_document.hpp @@ -103,6 +103,7 @@ public: std::expected applyEdits(const std::string& editsJson) override; std::expected, EngineError> saveIncremental() const override; std::expected, EngineError> saveFull() const override; + std::expected, EngineError> saveFullForExport() const override; std::string lastReflowLayout() const { return lastReflowLayout_; } bool lastReflowOverflowed() const { return lastReflowOverflowed_; } @@ -158,6 +159,8 @@ private: const fonts::pdf_fonts::ReconstructedFont* getReconstructedEmbeddedFont(const std::string& internalFontId); #endif + void rebalanceEditedPages(const std::vector& editedPages); + std::expected applyOp_replaceText(const nlohmann::json& op, int pageIndex); std::expected applyOp_reflow(const nlohmann::json& op, int pageIndex); std::expected applyOp_textOverlay(const nlohmann::json& op, int pageIndex); diff --git a/engine/src/parser/pdfium_edit.cpp b/engine/src/parser/pdfium_edit.cpp index d583e9c..4b98ddf 100644 --- a/engine/src/parser/pdfium_edit.cpp +++ b/engine/src/parser/pdfium_edit.cpp @@ -1,5 +1,11 @@ #include "parser/pdfium_internal.hpp" +#include +#include +#if defined(PDFENGINE_WITH_PDFIUM) && defined(PDFENGINE_WITH_QPDF) +#include "qpdf/qpdf_writer.hpp" +#endif + namespace pdfengine::parser { std::expected PdfiumDocument::applyEdits(const std::string& editsJson) { @@ -10,6 +16,12 @@ std::expected PdfiumDocument::applyEdits(const std::string& e lastReflowLayout_.clear(); + std::vector editedPages; + auto markEdited = [&editedPages](int p) { + if (std::find(editedPages.begin(), editedPages.end(), p) == editedPages.end()) + editedPages.push_back(p); + }; + try { auto root = nlohmann::json::parse(editsJson); if (!root.contains("version") || root["version"] != "1.0") { @@ -29,6 +41,12 @@ std::expected PdfiumDocument::applyEdits(const std::string& e return std::unexpected(EngineError::PageOutOfBounds); } + static const std::set kContentOps = { + "replace_text", "reflow_paragraph", "text_overlay", "add_text", + "underline", "strikeout", "squiggly", "redaction", + "image_overlay", "highlight", "free_text", "comment", "freehand"}; + if (kContentOps.count(type)) markEdited(pageIndex); + std::expected r{}; if (type == "replace_text") { r = applyOp_replaceText(op, pageIndex); @@ -78,6 +96,7 @@ std::expected PdfiumDocument::applyEdits(const std::string& e return std::unexpected(EngineError::Unknown); } + rebalanceEditedPages(editedPages); invalidateCaches(); return {}; #else @@ -86,4 +105,34 @@ std::expected PdfiumDocument::applyEdits(const std::string& e #endif } +void PdfiumDocument::rebalanceEditedPages(const std::vector& editedPages) { +#if defined(PDFENGINE_WITH_PDFIUM) && defined(PDFENGINE_WITH_QPDF) + if (!doc_ || editedPages.empty()) return; + + auto bytesRes = saveFull(); + if (!bytesRes || bytesRes->empty()) return; + + qpdf_layer::QpdfWriter writer; + auto reb = writer.rebalanceContentStreams(*bytesRes, editedPages); + if (!reb) { + spdlog::warn("rebalanceEditedPages: {}", reb.error()); + return; + } + if (!reb->has_value()) return; + + std::vector newBytes = std::move(**reb); + FPDF_DOCUMENT nd = FPDF_LoadMemDocument(newBytes.data(), static_cast(newBytes.size()), nullptr); + if (!nd) { + spdlog::warn("rebalanceEditedPages: reload of repaired doc failed; keeping original"); + return; + } + FPDF_CloseDocument(doc_); + doc_ = nd; + memoryBuffer_ = std::move(newBytes); + spdlog::info("rebalanceEditedPages: repaired q/Q underflow on edited page(s) and reloaded doc"); +#else + (void)editedPages; +#endif +} + } \ No newline at end of file diff --git a/engine/src/parser/pdfium_edit_reflow.cpp b/engine/src/parser/pdfium_edit_reflow.cpp index 3ae1f59..5dc3ea5 100644 --- a/engine/src/parser/pdfium_edit_reflow.cpp +++ b/engine/src/parser/pdfium_edit_reflow.cpp @@ -67,6 +67,7 @@ std::expected PdfiumDocument::applyOp_reflow(const nlohmann:: for (const auto& v : data["lineX"]) lineX.push_back(v.get()); double columnWidth = columnRight - columnLeft; double pushColumnLeft = data.value("pushColumnLeft", columnLeft); + double hangingIndent = data.value("hangingIndent", 0.0); std::string paraId; if (data.contains("paraId") && data["paraId"].is_string()) paraId = data["paraId"].get(); @@ -278,6 +279,7 @@ std::expected PdfiumDocument::applyOp_reflow(const nlohmann:: }; auto isSpace = [](char ch) { return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r'; }; + constexpr size_t kHardBreak = static_cast(-1); struct Seg { int runIdx; std::string text; double width; size_t off; }; struct Word { std::vector segs; double width; double spaceAfter; }; std::vector words; @@ -291,42 +293,68 @@ std::expected PdfiumDocument::applyOp_reflow(const nlohmann:: std::vector out; size_t i = 0; while (i < ft.size()) { - if (isSpace(ft[i])) { i++; continue; } + if (isSpace(ft[i])) { if (ft[i] == '\n') out.push_back(kHardBreak); i++; continue; } Word w; w.width = 0.0; w.spaceAfter = 0.0; while (i < ft.size() && !isSpace(ft[i])) { int st = sof[i]; size_t segOff = cof[i]; std::string frag; double fw = 0.0; while (i < ft.size() && !isSpace(ft[i]) && sof[i] == st) { frag.push_back(ft[i]); fw += charAdvAt(st, cof[i]); i++; } w.segs.push_back({st, frag, fw, segOff}); w.width += fw; } - while (i < ft.size() && isSpace(ft[i])) { w.spaceAfter += charAdvAt(sof[i], cof[i]); i++; } + size_t newlines = 0; + while (i < ft.size() && isSpace(ft[i])) { + if (ft[i] == '\n') newlines++; + else if (newlines == 0) w.spaceAfter += charAdvAt(sof[i], cof[i]); + i++; + } out.push_back(words.size()); words.push_back(std::move(w)); + for (size_t n = 0; n < newlines; ++n) out.push_back(kHardBreak); } return out; }; std::vector> lines; + std::vector lineCont; + std::vector lineSegEnd; if (hasProvidedLines) { for (const auto& lineRunIdxs : providedLines) { auto wi = tokenize(lineRunIdxs); - if (!wi.empty()) lines.push_back(std::move(wi)); + wi.erase(std::remove(wi.begin(), wi.end(), kHardBreak), wi.end()); + if (!wi.empty()) { lines.push_back(std::move(wi)); lineCont.push_back(0); lineSegEnd.push_back(0); } } + for (size_t li = 0; li < lineSegEnd.size(); ++li) + lineSegEnd[li] = (li + 1 == lineSegEnd.size()) ? 1 : 0; } else { std::vector allRuns(runs.size()); for (size_t ri = 0; ri < runs.size(); ++ri) allRuns[ri] = static_cast(ri); auto allWords = tokenize(allRuns); std::vector cur; double curW = 0.0; + size_t prevWord = kHardBreak; + bool firstLineOfSeg = true; + auto pushLine = [&](char segEnd) { + lines.push_back(cur); + lineCont.push_back(firstLineOfSeg ? 0 : 1); + lineSegEnd.push_back(segEnd); + }; for (size_t k = 0; k < allWords.size(); ++k) { size_t wi = allWords[k]; - double gap = cur.empty() ? 0.0 : words[allWords[k - 1]].spaceAfter; - if (!cur.empty() && curW + gap + words[wi].width > columnWidth) { - lines.push_back(cur); cur.clear(); + if (wi == kHardBreak) { // forced break: end the current line (may be blank) + pushLine(1); + cur.clear(); curW = 0.0; prevWord = kHardBreak; firstLineOfSeg = true; + continue; + } + double effW = columnWidth - (firstLineOfSeg ? 0.0 : hangingIndent); + double gap = (cur.empty() || prevWord == kHardBreak) ? 0.0 : words[prevWord].spaceAfter; + if (!cur.empty() && curW + gap + words[wi].width > effW) { + pushLine(0); + cur.clear(); firstLineOfSeg = false; cur.push_back(wi); curW = words[wi].width; } else { cur.push_back(wi); curW += gap + words[wi].width; } + prevWord = wi; } - if (!cur.empty()) lines.push_back(cur); + if (!cur.empty()) pushLine(1); } if (words.empty() || lines.empty()) { FPDF_ClosePage(page); return {}; } int newLineCount = static_cast(lines.size()); @@ -369,17 +397,20 @@ std::expected PdfiumDocument::applyOp_reflow(const nlohmann:: naturalW += words[lw[k]].width; if (k > 0) naturalW += words[lw[k - 1]].spaceAfter; } - bool justifyThis = (align == "justify") && (li + 1 < lines.size()) && lw.size() > 1; + double indent = (li < lineCont.size() && lineCont[li]) ? hangingIndent : 0.0; + double effCol = columnWidth - indent; + bool segEnd = (li < lineSegEnd.size()) ? (lineSegEnd[li] != 0) : (li + 1 == lines.size()); + bool justifyThis = (align == "justify") && !segEnd && lw.size() > 1; double extraPerGap = 0.0; - if (justifyThis) { double slack = columnWidth - naturalW; if (slack > 0) extraPerGap = slack / static_cast(lw.size() - 1); } + if (justifyThis) { double slack = effCol - naturalW; if (slack > 0) extraPerGap = slack / static_cast(lw.size() - 1); } std::string lineText; std::vector adv; double lineFontSize = 0.0; - double x = (li < lineX.size()) ? lineX[li] : columnLeft; + double x = (li < lineX.size()) ? lineX[li] : (columnLeft + indent); if (li >= lineX.size()) { - if (align == "right") x = columnLeft + (columnWidth - naturalW); - else if (align == "center") x = columnLeft + (columnWidth - naturalW) / 2.0; + if (align == "right") x = columnLeft + indent + (effCol - naturalW); + else if (align == "center") x = columnLeft + indent + (effCol - naturalW) / 2.0; } const double lineStartX = x; for (size_t k = 0; k < lw.size(); ++k) { diff --git a/engine/src/parser/pdfium_edit_replace.cpp b/engine/src/parser/pdfium_edit_replace.cpp index 6502848..ee1c027 100644 --- a/engine/src/parser/pdfium_edit_replace.cpp +++ b/engine/src/parser/pdfium_edit_replace.cpp @@ -176,7 +176,22 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm bool fontSupportsAll = true; double totalWidth = 0.0; - + + std::shared_ptr measureFace; + { + std::vector mb; + if (auto perObj = getFontDataFromObjects(pageIndex, objectIndices, internalFontId); + perObj.has_value() && !perObj->empty()) mb = std::move(*perObj); + else if (!internalFontId.empty()) { + if (auto fd = getFontData(internalFontId); fd.has_value() && !fd->empty()) + mb = std::move(fd.value()); + } + if (!mb.empty()) { + auto mf = std::make_shared(); + if (mf->loadFromMemory(mb)) measureFace = mf; + } + } + auto utf16 = utf8_to_utf16le(newText); std::vector unicodeCodepoints; for (size_t i = 0; i < utf16.size(); ) { @@ -214,23 +229,25 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm } bool shapedSuccessful = false; - if (resolvedFont) { + constexpr unsigned int kRefMeasure = 1000; + fonts::FontFace* mface = measureFace ? measureFace.get() + : (resolvedFont ? &resolvedFont->getFontFace() : nullptr); + if (mface) { try { fonts::HbShaper shaper; - unsigned int uFontSize = static_cast(fontSize > 0.0 ? fontSize : 12.0); - auto shapedGlyphs = shaper.shapeRun(newText, resolvedFont->getFontFace(), uFontSize); + auto shapedGlyphs = shaper.shapeRun(newText, *mface, kRefMeasure); if (!shapedGlyphs.empty()) { - totalWidth = 0.0; - for (const auto& sg : shapedGlyphs) { - totalWidth += sg.advanceX; - } + double sum = 0.0; + for (const auto& sg : shapedGlyphs) sum += sg.advanceX; + totalWidth = sum * (fontSize > 0.0 ? fontSize : 12.0) / static_cast(kRefMeasure); shapedSuccessful = true; - spdlog::info("Font Engine: HarfBuzz shaped '{}' glyphs, total advance width = {}", shapedGlyphs.size(), totalWidth); + spdlog::info("Font Engine: measured {} chars -> width {:.2f} ({} face)", + newText.size(), totalWidth, measureFace ? "embedded" : "resolved"); } } catch (const std::exception& e) { - spdlog::warn("Font Engine: HarfBuzz shaping failed: {}", e.what()); + spdlog::warn("Font Engine: shaping failed: {}", e.what()); } catch (...) { - spdlog::warn("Font Engine: HarfBuzz shaping failed with unknown exception"); + spdlog::warn("Font Engine: shaping failed (unknown)"); } } @@ -269,7 +286,9 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm bool axisAligned = (std::abs(b) < 1e-6 && std::abs(c) < 1e-6 && a > 0.0 && d > 0.0); double colRight = origRight; - bool sawSibling = false; + bool sawSibling = false; + bool hasFollowingText = false; + double rowTolFollow = (std::max)(4.0, (origTop - origBottom) * 0.6); if (axisAligned && hasOrigBounds) { int nObjForCol = FPDFPage_CountObjects(page); for (int k = 0; k < nObjForCol; ++k) { @@ -279,44 +298,16 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm float l = 0, bo = 0, rr = 0, tt = 0; if (!FPDFPageObj_GetBounds(o, &l, &bo, &rr, &tt)) continue; if (std::abs(l - origLeft) <= 3.0) { sawSibling = true; if (rr > colRight) colRight = rr; } + if (std::abs((bo + tt) / 2.0 - origCenterY) <= rowTolFollow && l > origRight + 1.0) + hasFollowingText = true; } } double justifyTol = (std::max)(4.0, (colRight - origLeft) * 0.02); bool wasJustified = !disableJustify && axisAligned && resolvedFont && hasOrigBounds && sawSibling && + !hasFollowingText && (colRight - origLeft) > 20.0 && (origRight >= colRight - justifyTol); - double deltaX = 0.0; - if (hasOrigBounds) { - deltaX = totalWidth - origWidth; - spdlog::info("Reflow Engine: origWidth = {}, newWidth = {}, deltaX = {}", origWidth, totalWidth, deltaX); - } - - if (!wasJustified && !disableJustify && hasOrigBounds && std::abs(deltaX) > 0.001) { - int pageObjCount = FPDFPage_CountObjects(page); - double tolerance = (std::max)(5.0, fontSize * 0.5); - int reflowedCount = 0; - - for (int k = 0; k < pageObjCount; ++k) { - if (std::find(objectIndices.begin(), objectIndices.end(), k) != objectIndices.end()) { - continue; - } - - FPDF_PAGEOBJECT otherObj = FPDFPage_GetObject(page, k); - if (otherObj && FPDFPageObj_GetType(otherObj) == FPDF_PAGEOBJ_TEXT) { - float otherLeft = 0.0f, otherBottom = 0.0f, otherRight = 0.0f, otherTop = 0.0f; - if (FPDFPageObj_GetBounds(otherObj, &otherLeft, &otherBottom, &otherRight, &otherTop)) { - double otherCenterY = (otherBottom + otherTop) / 2.0; - if (std::abs(otherCenterY - origCenterY) <= tolerance) { - if (otherLeft >= (origRight - 2.0f)) { - FPDFPageObj_Transform(otherObj, 1.0, 0.0, 0.0, 1.0, deltaX, 0.0); - reflowedCount++; - } - } - } - } - } - spdlog::info("Reflow Engine: shifted {} subsequent text objects on the same line by {}", reflowedCount, deltaX); - } + bool doSiblingShift = !wasJustified && hasOrigBounds; for (int idx : objectIndices) { FPDF_PAGEOBJECT objToRemove = FPDFPage_GetObject(page, idx); @@ -358,6 +349,7 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm FPDF_FONT reconFont = nullptr; const fonts::pdf_fonts::ReconstructedFont* reconRf = nullptr; + bool reconFullyCovered = false; if (matchedFontInfo && matchedFontInfo->isEmbedded && classifyFontFidelity(*matchedFontInfo) != "exact") { reconRf = lookupReconFont(matchedFontInfo->internalFontId); if (reconRf && reconRf->ok) { @@ -371,13 +363,9 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm if (reconFont) loadedFontsCache_[rkey] = reconFont; } if (reconFont) { - bool fullyCovered = true; + reconFullyCovered = true; for (uint32_t cp : unicodeCodepoints) - if (cp >= 0x20 && !reconRf->coveredUnicode.count(cp)) { fullyCovered = false; break; } - if (fullyCovered && !font) { - font = reconFont; - spdlog::info("Tier-2: replace_text exact reconstructed font '{}'", matchedFontInfo->internalFontId); - } + if (cp >= 0x20 && !reconRf->coveredUnicode.count(cp)) { reconFullyCovered = false; break; } } } } @@ -419,6 +407,11 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm } } + if (!font && reconFont && reconFullyCovered) { + font = reconFont; + spdlog::info("Tier-2: replace_text reconstructed fallback '{}'", matchedFontInfo->internalFontId); + } + if (!font) { spdlog::info("Font Engine: Loading standard PDF font for replace_text: {}", fontName); font = FPDFText_LoadStandardFont(doc_, fontName.c_str()); @@ -432,7 +425,10 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm loadedFontsCache_[cacheKey] = font; } } + + if (font && useEmbedded) reconFont = nullptr; + std::vector emittedObjs; if (font) { constexpr unsigned int kRef = 1000; double emToPage = (fontSize > 0.0 ? fontSize : 1.0) * a / static_cast(kRef); @@ -495,6 +491,7 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm FPDFText_SetText(wobj, reinterpret_cast(wu.data())); FPDFPageObj_Transform(wobj, a, b, c, d, penX, f); FPDFPage_InsertObjectAtIndex(page, wobj, minIndex); + emittedObjs.push_back(wobj); } penX += (wpx[wi] + estSpace) * k + extraPerGap; } @@ -547,6 +544,7 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm FPDFText_SetText(obj, reinterpret_cast(seg.data())); FPDFPageObj_Transform(obj, a, b, c, d, penX, f); FPDFPage_InsertObjectAtIndex(page, obj, minIndex); + emittedObjs.push_back(obj); } double adv = segWidthPage(segFace, seg8); if (adv <= 0.0) { // shaping unavailable -> fall back to ink bbox @@ -588,6 +586,7 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm FPDFPageObj_Transform(newTextObj, aScale, b, c, d, e, f); FPDFPage_InsertObjectAtIndex(page, newTextObj, minIndex); + emittedObjs.push_back(newTextObj); } else { spdlog::error("Failed to create new text object"); } @@ -595,6 +594,28 @@ std::expected PdfiumDocument::applyOp_replaceText(const nlohm } } + if (doSiblingShift) { + double shift = totalWidth - origWidth; + if (std::abs(shift) > 0.05) { + double rowTol = (std::max)(5.0, fontSize * 0.5); + int nObj = FPDFPage_CountObjects(page); + int moved = 0; + for (int k = 0; k < nObj; ++k) { + FPDF_PAGEOBJECT o = FPDFPage_GetObject(page, k); + if (!o || FPDFPageObj_GetType(o) != FPDF_PAGEOBJ_TEXT) continue; + if (std::find(emittedObjs.begin(), emittedObjs.end(), o) != emittedObjs.end()) continue; + float l = 0, bo = 0, rr = 0, tt = 0; + if (!FPDFPageObj_GetBounds(o, &l, &bo, &rr, &tt)) continue; + if (std::abs((bo + tt) / 2.0 - origCenterY) <= rowTol && l >= origRight - 2.0f) { + FPDFPageObj_Transform(o, 1.0, 0.0, 0.0, 1.0, shift, 0.0); + moved++; + } + } + spdlog::info("replace_text: sibling shift {} obj by {:.2f} (deltaX = newW {:.2f} - origW {:.2f})", + moved, shift, totalWidth, origWidth); + } + } + if (!FPDFPage_GenerateContent(page)) { spdlog::error("Failed to generate page content after replace_text"); } diff --git a/engine/src/parser/pdfium_fonts.cpp b/engine/src/parser/pdfium_fonts.cpp index 1d418cd..785ede4 100644 --- a/engine/src/parser/pdfium_fonts.cpp +++ b/engine/src/parser/pdfium_fonts.cpp @@ -130,7 +130,7 @@ PdfiumDocument::EmissionFont PdfiumDocument::loadEmissionFont( cacheKey += "#" + std::to_string(h); } - if (useEmbedded && reuseFont && !isSubsetFont) { + if (useEmbedded && reuseFont) { out.font = reuseFont; if (auto perObj = getFontDataFromObjects(pageIndex, srcObjects, internalFontId); perObj.has_value() && !perObj->empty()) { @@ -150,35 +150,6 @@ PdfiumDocument::EmissionFont PdfiumDocument::loadEmissionFont( } if (out.font) return out; - if (matchedFontInfo && matchedFontInfo->isEmbedded && classifyFontFidelity(*matchedFontInfo) != "exact") { - const auto* rf = lookupReconFont(internalFontId); - if (rf && rf->ok) { - bool covered = true; - for (uint32_t cp : codepoints) { - if (cp >= 0x20 && !rf->coveredUnicode.count(cp)) { covered = false; break; } - } - if (covered) { - std::lock_guard lock(loadedFontsMutex_); - const std::string rkey = "recon_" + internalFontId; - if (loadedFontsCache_.count(rkey)) { - out.font = loadedFontsCache_[rkey]; - auto mit = loadedMeasureFaces_.find(rkey); - if (mit != loadedMeasureFaces_.end()) out.measureFace = mit->second; - } else { - loadedFontDataBuffers_[rkey] = rf->sfnt; - const auto& bytes = loadedFontDataBuffers_[rkey]; - out.font = FPDFText_LoadFont(doc_, bytes.data(), static_cast(bytes.size()), FPDF_FONT_TRUETYPE, true); - if (out.font) { - loadedFontsCache_[rkey] = out.font; - auto mf = std::make_shared(); - if (mf->loadFromMemory(bytes)) { loadedMeasureFaces_[rkey] = mf; out.measureFace = mf; } - } - } - if (out.font) { spdlog::info("Tier-2: emit reconstructed embedded font '{}'", internalFontId); return out; } - } - } - } - if (useEmbedded) { std::vector sourceBytes; if (auto perObj = getFontDataFromObjects(pageIndex, srcObjects, matchedFontInfo->internalFontId); @@ -208,6 +179,36 @@ PdfiumDocument::EmissionFont PdfiumDocument::loadEmissionFont( } } } + if (!out.font && matchedFontInfo && matchedFontInfo->isEmbedded && + classifyFontFidelity(*matchedFontInfo) != "exact") { + const auto* rf = lookupReconFont(internalFontId); + if (rf && rf->ok) { + bool covered = true; + for (uint32_t cp : codepoints) { + if (cp >= 0x20 && !rf->coveredUnicode.count(cp)) { covered = false; break; } + } + if (covered) { + std::lock_guard lock(loadedFontsMutex_); + const std::string rkey = "recon_" + internalFontId; + if (loadedFontsCache_.count(rkey)) { + out.font = loadedFontsCache_[rkey]; + auto mit = loadedMeasureFaces_.find(rkey); + if (mit != loadedMeasureFaces_.end()) out.measureFace = mit->second; + } else { + loadedFontDataBuffers_[rkey] = rf->sfnt; + const auto& bytes = loadedFontDataBuffers_[rkey]; + out.font = FPDFText_LoadFont(doc_, bytes.data(), static_cast(bytes.size()), FPDF_FONT_TRUETYPE, true); + if (out.font) { + loadedFontsCache_[rkey] = out.font; + auto mf = std::make_shared(); + if (mf->loadFromMemory(bytes)) { loadedMeasureFaces_[rkey] = mf; out.measureFace = mf; } + } + } + if (out.font) { spdlog::info("Tier-2: emit reconstructed embedded font '{}' (faithful load unavailable)", internalFontId); return out; } + } + } + } + if (!out.font) { out.font = FPDFText_LoadStandardFont(doc_, fontName.c_str()); if (!out.font) out.font = FPDFText_LoadStandardFont(doc_, "Helvetica"); diff --git a/engine/src/qpdf/qpdf_writer.cpp b/engine/src/qpdf/qpdf_writer.cpp index 229bf03..f10bd9e 100644 --- a/engine/src/qpdf/qpdf_writer.cpp +++ b/engine/src/qpdf/qpdf_writer.cpp @@ -5,10 +5,35 @@ #include #include #include +#include +#include +#include +#include #endif namespace pdfengine::qpdf_layer { +#ifdef PDFENGINE_WITH_QPDF +namespace { +class QQDepthCounter : public QPDFObjectHandle::ParserCallbacks { +public: + int depth = 0; + int minDepth = 0; + void handleObject(QPDFObjectHandle obj, size_t, size_t) override { + if (!obj.isOperator()) return; + const std::string op = obj.getOperatorValue(); + if (op == "q") { + ++depth; + } else if (op == "Q") { + --depth; + if (depth < minDepth) minDepth = depth; + } + } + void handleEOF() override {} +}; +} +#endif + std::expected QpdfWriter::replacePageStreamAndSave(const std::string& sourcePath, const std::string& destPath, @@ -46,4 +71,98 @@ QpdfWriter::replacePageStreamAndSave(const std::string& sourcePath, #endif } +std::expected>, std::string> +QpdfWriter::rebalanceContentStreams(const std::vector& pdfBytes, + const std::vector& pageIndices) const { +#ifndef PDFENGINE_WITH_QPDF + (void)pdfBytes; (void)pageIndices; + return std::unexpected("QPDF support is not enabled in this build."); +#else + try { + QPDF pdf; + pdf.processMemoryFile("rebalance.pdf", + reinterpret_cast(pdfBytes.data()), + pdfBytes.size()); + + QPDFPageDocumentHelper pdh(pdf); + auto pages = pdh.getAllPages(); + const int pageCount = static_cast(pages.size()); + + std::vector targets = pageIndices; + if (targets.empty()) { + for (int i = 0; i < pageCount; ++i) targets.push_back(i); + } + + bool changed = false; + for (int idx : targets) { + if (idx < 0 || idx >= pageCount) continue; + QPDFPageObjectHelper& page = pages[static_cast(idx)]; + + QQDepthCounter counter; + page.parsePageContents(&counter); + if (counter.minDepth >= 0) continue; + + const int n = -counter.minDepth; + Pl_Buffer collected("page-contents"); + page.pipePageContents(&collected); + collected.finish(); + auto raw = collected.getBufferSharedPointer(); + std::string content(reinterpret_cast(raw->getBuffer()), raw->getSize()); + + std::string wrapped; + for (int k = 0; k < n; ++k) wrapped += "q\n"; + wrapped.append(content); + wrapped.push_back('\n'); + for (int k = 0; k < n; ++k) wrapped += "Q\n"; + + QPDFObjectHandle newStream = QPDFObjectHandle::newStream(&pdf, wrapped); + page.getObjectHandle().replaceKey("/Contents", newStream); + changed = true; + } + + if (!changed) return std::nullopt; + + QPDFWriter writer(pdf); + writer.setOutputMemory(); + writer.setStreamDataMode(qpdf_s_preserve); + writer.write(); + auto out = writer.getBufferSharedPointer(); + return std::vector(out->getBuffer(), out->getBuffer() + out->getSize()); + } catch (const std::exception& e) { + return std::unexpected(std::string("QPDF rebalance error: ") + e.what()); + } +#endif +} + +std::expected, std::string> +QpdfWriter::setNeedAppearances(const std::vector& pdfBytes) const { +#ifndef PDFENGINE_WITH_QPDF + (void)pdfBytes; + return std::unexpected("QPDF support is not enabled in this build."); +#else + try { + QPDF pdf; + pdf.processMemoryFile("appearances.pdf", + reinterpret_cast(pdfBytes.data()), + pdfBytes.size()); + + QPDFObjectHandle root = pdf.getRoot(); + if (!root.hasKey("/AcroForm")) return pdfBytes; + QPDFObjectHandle acro = root.getKey("/AcroForm"); + if (!acro.isDictionary()) return pdfBytes; + + acro.replaceKey("/NeedAppearances", QPDFObjectHandle::newBool(true)); + + QPDFWriter writer(pdf); + writer.setOutputMemory(); + writer.setStreamDataMode(qpdf_s_preserve); + writer.write(); + auto out = writer.getBufferSharedPointer(); + return std::vector(out->getBuffer(), out->getBuffer() + out->getSize()); + } catch (const std::exception& e) { + return std::unexpected(std::string("QPDF setNeedAppearances error: ") + e.what()); + } +#endif +} + } diff --git a/engine/src/qpdf/qpdf_writer.hpp b/engine/src/qpdf/qpdf_writer.hpp index d6b7859..90215c0 100644 --- a/engine/src/qpdf/qpdf_writer.hpp +++ b/engine/src/qpdf/qpdf_writer.hpp @@ -2,6 +2,8 @@ #include #include +#include +#include #include class QPDF; @@ -14,10 +16,19 @@ public: [[nodiscard]] std::expected - replacePageStreamAndSave(const std::string& sourcePath, - const std::string& destPath, - int pageIndex, + replacePageStreamAndSave(const std::string& sourcePath, + const std::string& destPath, + int pageIndex, const std::string& newStreamData) const; + + [[nodiscard]] + std::expected>, std::string> + rebalanceContentStreams(const std::vector& pdfBytes, + const std::vector& pageIndices) const; + + [[nodiscard]] + std::expected, std::string> + setNeedAppearances(const std::vector& pdfBytes) const; }; } diff --git a/frontend/public/pdfium-engine.mjs b/frontend/public/pdfium-engine.mjs index 53ecfa8..73406b0 100644 --- a/frontend/public/pdfium-engine.mjs +++ b/frontend/public/pdfium-engine.mjs @@ -1,2 +1,2 @@ -async function Module(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("node:module");var require=createRequire(import.meta.url)}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("node:fs");if(_scriptName.startsWith("file:")){scriptDirectory=require("node:path").dirname(require("node:url").fileURLToPath(_scriptName))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var isFileURI=filename=>filename.startsWith("file://");class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["R"]();FS.ignorePermissions=false}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("pdfengine.wasm")}return new URL("pdfengine.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":HEAP64[ptr>>3]=BigInt(value);break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);uncaughtExceptionCount++;abort()};var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("node:crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>(crypto.getRandomValues(view),0)};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){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(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=MEMFS.emptyFileContents??=new Uint8Array(0)}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){return node.contents.subarray(0,node.usedBytes)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents.length;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity)newCapacity=Math.max(newCapacity,256);var oldContents=MEMFS.getFileDataAsTypedArray(node);node.contents=new Uint8Array(newCapacity);node.contents.set(oldContents)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;var oldContents=node.contents;node.contents=new Uint8Array(newSize);node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));node.usedBytes=newSize},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);buffer.set(contents.subarray(position,position+size),offset);return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length}else{MEMFS.expandFileStorage(node,position+length);node.contents.set(buffer.subarray(offset,offset+length),position);node.usedBytes=Math.max(node.usedBytes,position+length)}return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length{if(typeof str!="string")return str;var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_fileDataToTypedArray=data=>{if(typeof data=="string"){data=intArrayFromString(data,true)}if(!data.subarray){data=new Uint8Array(data)}return data};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}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(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}if(perms.includes("w")&&!(node.mode&146)){return 2}if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else if(FS.isDir(node.mode)){return 31}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode)){if(mode!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,mode)},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);try{setattr(arg,attr)}catch(e){if(e instanceof RangeError){throw new FS.ErrnoError(22)}throw e}},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=FS_modeStringToFlags(flags);if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);data=FS_fileDataToTypedArray(data);FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn);FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){data=FS_fileDataToTypedArray(data);FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var SYSCALLS={currentUmask:18,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;HEAP64[buf+8>>3]=BigInt(stats.blocks);HEAP64[buf+16>>3]=BigInt(stats.bfree);HEAP64[buf+24>>3]=BigInt(stats.bavail);HEAP64[buf+32>>3]=BigInt(stats.files);HEAP64[buf+40>>3]=BigInt(stats.ffree);HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();var mask=289792;stream.flags=stream.flags&~mask|arg&mask;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx>3]=BigInt(id);HEAP64[dirp+pos+8>>3]=BigInt((idx+1)*struct_size);HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;if(flags&64){mode&=~SYSCALLS.currentUmask}return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>abort("");var __emscripten_fs_load_embedded_files=ptr=>{do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])};var __emscripten_throw_longjmp=()=>{throw new EmscriptenSjLj};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetperformance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var getHeapMax=()=>2147483648;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;HEAP64[pbuf+8>>3]=BigInt(rightsBase);HEAP64[pbuf+16>>3]=BigInt(rightsInheriting);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 22;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;var _loadDocument,_pageCount,_renderPagePng,_previewRender,_previewRenderRegion,_previewRenderPaginated,_lastRegionCount,_lastRegionPtr,_lastRegionW,_lastRegionH,_lastRegionPage,_lastRegionYTop,_lastRenderPtr,_lastRenderW,_lastRenderH,_lastLayoutJson,_registerAuxFont,_freeDocument,_engineBuildInfo,_free,_malloc,_emscripten_builtin_memalign,_setThrew,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,memory,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_loadDocument=Module["_loadDocument"]=wasmExports["S"];_pageCount=Module["_pageCount"]=wasmExports["U"];_renderPagePng=Module["_renderPagePng"]=wasmExports["V"];_previewRender=Module["_previewRender"]=wasmExports["W"];_previewRenderRegion=Module["_previewRenderRegion"]=wasmExports["X"];_previewRenderPaginated=Module["_previewRenderPaginated"]=wasmExports["Y"];_lastRegionCount=Module["_lastRegionCount"]=wasmExports["Z"];_lastRegionPtr=Module["_lastRegionPtr"]=wasmExports["_"];_lastRegionW=Module["_lastRegionW"]=wasmExports["$"];_lastRegionH=Module["_lastRegionH"]=wasmExports["aa"];_lastRegionPage=Module["_lastRegionPage"]=wasmExports["ba"];_lastRegionYTop=Module["_lastRegionYTop"]=wasmExports["ca"];_lastRenderPtr=Module["_lastRenderPtr"]=wasmExports["da"];_lastRenderW=Module["_lastRenderW"]=wasmExports["ea"];_lastRenderH=Module["_lastRenderH"]=wasmExports["fa"];_lastLayoutJson=Module["_lastLayoutJson"]=wasmExports["ga"];_registerAuxFont=Module["_registerAuxFont"]=wasmExports["ha"];_freeDocument=Module["_freeDocument"]=wasmExports["ia"];_engineBuildInfo=Module["_engineBuildInfo"]=wasmExports["ja"];_free=Module["_free"]=wasmExports["ka"];_malloc=Module["_malloc"]=wasmExports["la"];_emscripten_builtin_memalign=wasmExports["ma"];_setThrew=wasmExports["na"];__emscripten_stack_restore=wasmExports["oa"];__emscripten_stack_alloc=wasmExports["pa"];_emscripten_stack_get_current=wasmExports["qa"];memory=wasmMemory=wasmExports["Q"];__indirect_function_table=wasmTable=wasmExports["T"]}var wasmImports={a:___cxa_throw,i:___syscall_fcntl64,I:___syscall_fstat64,w:___syscall_getdents64,M:___syscall_ioctl,F:___syscall_lstat64,G:___syscall_newfstatat,k:___syscall_openat,u:___syscall_rmdir,H:___syscall_stat64,v:___syscall_unlinkat,K:__abort_js,N:__emscripten_fs_load_embedded_files,s:__emscripten_throw_longjmp,z:__gmtime_js,A:__localtime_js,x:__mmap_js,y:__munmap_js,L:__tzset_js,J:_clock_time_get,l:_emscripten_date_now,t:_emscripten_resize_heap,D:_environ_get,E:_environ_sizes_get,O:_exit,g:_fd_close,C:_fd_fdstat_get,n:_fd_read,B:_fd_seek,m:_fd_write,d:invoke_ii,f:invoke_iii,h:invoke_iiii,j:invoke_iiiii,P:invoke_iiiiiii,o:invoke_iiiiiiiiii,p:invoke_v,c:invoke_vi,b:invoke_vii,e:invoke_viii,r:invoke_viiii,q:invoke_viiiiiiiii};function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})} +async function Module(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("node:module");var require=createRequire(import.meta.url)}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("node:fs");if(_scriptName.startsWith("file:")){scriptDirectory=require("node:path").dirname(require("node:url").fileURLToPath(_scriptName))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var isFileURI=filename=>filename.startsWith("file://");class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["R"]();FS.ignorePermissions=false}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("pdfengine.wasm")}return new URL("pdfengine.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":HEAP64[ptr>>3]=BigInt(value);break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);uncaughtExceptionCount++;abort()};var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("node:crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>(crypto.getRandomValues(view),0)};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){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(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=MEMFS.emptyFileContents??=new Uint8Array(0)}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){return node.contents.subarray(0,node.usedBytes)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents.length;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity)newCapacity=Math.max(newCapacity,256);var oldContents=MEMFS.getFileDataAsTypedArray(node);node.contents=new Uint8Array(newCapacity);node.contents.set(oldContents)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;var oldContents=node.contents;node.contents=new Uint8Array(newSize);node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));node.usedBytes=newSize},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);buffer.set(contents.subarray(position,position+size),offset);return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length}else{MEMFS.expandFileStorage(node,position+length);node.contents.set(buffer.subarray(offset,offset+length),position);node.usedBytes=Math.max(node.usedBytes,position+length)}return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length{if(typeof str!="string")return str;var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_fileDataToTypedArray=data=>{if(typeof data=="string"){data=intArrayFromString(data,true)}if(!data.subarray){data=new Uint8Array(data)}return data};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);addRunDependency(dep);try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url)}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}}finally{removeRunDependency(dep)}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}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(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}if(perms.includes("w")&&!(node.mode&146)){return 2}if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else if(FS.isDir(node.mode)){return 31}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode)){if(mode!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,mode)},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);try{setattr(arg,attr)}catch(e){if(e instanceof RangeError){throw new FS.ErrnoError(22)}throw e}},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done)}else{done(null)}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=FS_modeStringToFlags(flags);if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`)}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf)}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);data=FS_fileDataToTypedArray(data);FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn);FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){data=FS_fileDataToTypedArray(data);FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var SYSCALLS={currentUmask:18,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;HEAP64[buf+8>>3]=BigInt(stats.blocks);HEAP64[buf+16>>3]=BigInt(stats.bfree);HEAP64[buf+24>>3]=BigInt(stats.bavail);HEAP64[buf+32>>3]=BigInt(stats.files);HEAP64[buf+40>>3]=BigInt(stats.ffree);HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();var mask=289792;stream.flags=stream.flags&~mask|arg&mask;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx>3]=BigInt(id);HEAP64[dirp+pos+8>>3]=BigInt((idx+1)*struct_size);HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;if(flags&64){mode&=~SYSCALLS.currentUmask}return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>abort("");var __emscripten_fs_load_embedded_files=ptr=>{do{var name_addr=HEAPU32[ptr>>2];ptr+=4;var len=HEAPU32[ptr>>2];ptr+=4;var content=HEAPU32[ptr>>2];ptr+=4;var name=UTF8ToString(name_addr);FS.createPath("/",PATH.dirname(name),true,true);FS.createDataFile(name,null,HEAP8.subarray(content,content+len),true,true,true)}while(HEAPU32[ptr>>2])};var __emscripten_throw_longjmp=()=>{throw new EmscriptenSjLj};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset,allocated,addr){offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetperformance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var getHeapMax=()=>2147483648;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;HEAP64[pbuf+8>>3]=BigInt(rightsBase);HEAP64[pbuf+16>>3]=BigInt(rightsInheriting);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 22;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["FS_preloadFile"]=FS_preloadFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;var _loadDocument,_pageCount,_renderPagePng,_previewRender,_previewRenderRegion,_previewRenderPaginated,_lastRegionCount,_lastRegionPtr,_lastRegionW,_lastRegionH,_lastRegionPage,_lastRegionYTop,_lastRenderPtr,_lastRenderW,_lastRenderH,_lastLayoutJson,_registerAuxFont,_freeDocument,_engineBuildInfo,_free,_malloc,_emscripten_builtin_memalign,_setThrew,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,memory,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_loadDocument=Module["_loadDocument"]=wasmExports["S"];_pageCount=Module["_pageCount"]=wasmExports["U"];_renderPagePng=Module["_renderPagePng"]=wasmExports["V"];_previewRender=Module["_previewRender"]=wasmExports["W"];_previewRenderRegion=Module["_previewRenderRegion"]=wasmExports["X"];_previewRenderPaginated=Module["_previewRenderPaginated"]=wasmExports["Y"];_lastRegionCount=Module["_lastRegionCount"]=wasmExports["Z"];_lastRegionPtr=Module["_lastRegionPtr"]=wasmExports["_"];_lastRegionW=Module["_lastRegionW"]=wasmExports["$"];_lastRegionH=Module["_lastRegionH"]=wasmExports["aa"];_lastRegionPage=Module["_lastRegionPage"]=wasmExports["ba"];_lastRegionYTop=Module["_lastRegionYTop"]=wasmExports["ca"];_lastRenderPtr=Module["_lastRenderPtr"]=wasmExports["da"];_lastRenderW=Module["_lastRenderW"]=wasmExports["ea"];_lastRenderH=Module["_lastRenderH"]=wasmExports["fa"];_lastLayoutJson=Module["_lastLayoutJson"]=wasmExports["ga"];_registerAuxFont=Module["_registerAuxFont"]=wasmExports["ha"];_freeDocument=Module["_freeDocument"]=wasmExports["ia"];_engineBuildInfo=Module["_engineBuildInfo"]=wasmExports["ja"];_free=Module["_free"]=wasmExports["ka"];_malloc=Module["_malloc"]=wasmExports["la"];_emscripten_builtin_memalign=wasmExports["ma"];_setThrew=wasmExports["na"];__emscripten_stack_restore=wasmExports["oa"];__emscripten_stack_alloc=wasmExports["pa"];_emscripten_stack_get_current=wasmExports["qa"];memory=wasmMemory=wasmExports["Q"];__indirect_function_table=wasmTable=wasmExports["T"]}var wasmImports={a:___cxa_throw,i:___syscall_fcntl64,J:___syscall_fstat64,x:___syscall_getdents64,N:___syscall_ioctl,G:___syscall_lstat64,H:___syscall_newfstatat,k:___syscall_openat,v:___syscall_rmdir,I:___syscall_stat64,w:___syscall_unlinkat,L:__abort_js,O:__emscripten_fs_load_embedded_files,t:__emscripten_throw_longjmp,A:__gmtime_js,B:__localtime_js,y:__mmap_js,z:__munmap_js,M:__tzset_js,K:_clock_time_get,l:_emscripten_date_now,u:_emscripten_resize_heap,E:_environ_get,F:_environ_sizes_get,o:_exit,g:_fd_close,D:_fd_fdstat_get,n:_fd_read,C:_fd_seek,m:_fd_write,e:invoke_ii,d:invoke_iii,h:invoke_iiii,j:invoke_iiiii,P:invoke_iiiiiii,p:invoke_iiiiiiiiii,q:invoke_v,c:invoke_vi,b:invoke_vii,f:invoke_viii,s:invoke_viiii,r:invoke_viiiiiiiii};function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(!(e instanceof EmscriptenEH))throw e;_setThrew(1,0)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})} ;return moduleRtn}export default Module; diff --git a/frontend/public/pdfium-engine.wasm b/frontend/public/pdfium-engine.wasm index a1db614bc61a35498a7c20adfa59a9495976aae9..739fb41ed957f8d22cf133f3ed8eeb6e5828499b 100644 GIT binary patch delta 1555356 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%0A>l2io((-TBDs*#%v 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

u!AhpQ+9*g;W0=}VKUoKsP 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