{
    "schemaVersion":  1,
    "product":  "UtiliVera OCR",
    "version":  "0.7.0",
    "generatedAtUtc":  "2026-08-15T14:40:18Z",
    "frozenExecutable":  {
                             "name":  "UtiliVeraOCR.exe",
                             "bytes":  346624,
                             "sha256":  "31E46DEC406F6FFF4A8CF68EB66E347234C2DB87EFAA32FAAC7A3EBF504C9784",
                             "fileVersion":  "0.7.0.0"
                         },
    "testHarness":  {
                        "source":  "tests/OcrTests.cs",
                        "sourceBytes":  27358,
                        "sourceSha256":  "511B34526C8A17B0F5B26AF65E910B44BC5B38F53BE2DFEBE006BCF900EB2982",
                        "compiledRunnerSha256":  "B8AAE9331D37285E5DCD202A824D1113F351B6D985B09385CF1A7F8DB777EEF6",
                        "sourceManifest":  [
                                               {
                                                   "path":  "src/AppSettings.cs",
                                                   "bytes":  2746,
                                                   "sha256":  "FCB16EFF0FB3065373F8E32EF79FD0E33B4FD6B1A4DB696ED0CF9C9EB3A3BB60"
                                               },
                                               {
                                                   "path":  "src/AssemblyInfo.cs",
                                                   "bytes":  447,
                                                   "sha256":  "9A69609EDACC8E9E08F7599B447E285F462A93DB90B8EB3626F5EB687D6C539A"
                                               },
                                               {
                                                   "path":  "src/AtomicFile.cs",
                                                   "bytes":  1042,
                                                   "sha256":  "32221B354B268B16ADC7E4B7951100613FE0E8980AD0DEBF072D27975F74C48A"
                                               },
                                               {
                                                   "path":  "src/CommandLine.cs",
                                                   "bytes":  18307,
                                                   "sha256":  "D1D6D45191FE920756E35A590F02A65D34CC94810ECF69113215F992742FA1E3"
                                               },
                                               {
                                                   "path":  "src/ConfidenceCalibrator.cs",
                                                   "bytes":  2978,
                                                   "sha256":  "AC5B667178C031F5E2A947035AE4CA1AC13D2EA2D471297BE62580932A82729B"
                                               },
                                               {
                                                   "path":  "src/DocumentSearch.cs",
                                                   "bytes":  2624,
                                                   "sha256":  "AF705EA58C201077FF6E0924AC70AACE54D901B0ED98C461E36E88C8118036E6"
                                               },
                                               {
                                                   "path":  "src/ExportWriter.cs",
                                                   "bytes":  8940,
                                                   "sha256":  "DD7E19E16B68AF24CD462D6D506DBEB1CA11E280BB30F4747781BF36EDC3742B"
                                               },
                                               {
                                                   "path":  "src/LayoutAnalyzer.cs",
                                                   "bytes":  9155,
                                                   "sha256":  "7BA9D77A39980DE43D8FC482A4B9EE5C76D21065CBFE8856B36BC7370ADAD86D"
                                               },
                                               {
                                                   "path":  "src/LayoutEditorDialog.cs",
                                                   "bytes":  5604,
                                                   "sha256":  "2556B90D699B2FE66CAAECD579FB58E5224F55089E625FA696108098EB61FDC3"
                                               },
                                               {
                                                   "path":  "src/OcrEngineBroker.cs",
                                                   "bytes":  10107,
                                                   "sha256":  "5D35E70645D7343E9F2DB17C5866FCAEEDFE2ACD1A87F2DF1B6793A60241953B"
                                               },
                                               {
                                                   "path":  "src/OcrModels.cs",
                                                   "bytes":  3543,
                                                   "sha256":  "EC035336C059BE25E7CDD09200FD0E827E1F3A29A2BFCEBFB9587023B4D36406"
                                               },
                                               {
                                                   "path":  "src/OcrPreprocessor.cs",
                                                   "bytes":  17448,
                                                   "sha256":  "46098B6E7B7CB5076B91E2FCD41C0403041D4E2A813875A91A5FB14C4E5D9ECD"
                                               },
                                               {
                                                   "path":  "src/OcrPreview.cs",
                                                   "bytes":  3532,
                                                   "sha256":  "DEF192553376294D22C5D5E6996B5045E2C93FC9D8A066F03F53EFF51ECD1378"
                                               },
                                               {
                                                   "path":  "src/OcrWindow.cs",
                                                   "bytes":  55278,
                                                   "sha256":  "0B2D4F628E7602167589978E14A1F2A83E306513C107113FE86E7A70C27FF9CE"
                                               },
                                               {
                                                   "path":  "src/OfficeWriter.cs",
                                                   "bytes":  8565,
                                                   "sha256":  "E9C3E748742AF9E925F8DE3CA3F54ECDAA3B8B164738A21C3B56585AE5C6BC06"
                                               },
                                               {
                                                   "path":  "src/PageSelection.cs",
                                                   "bytes":  1905,
                                                   "sha256":  "69D95C72CED6A47C0EE4B75287E2D46FB5FF5ABBB22184EB820DD4B0A9191F8E"
                                               },
                                               {
                                                   "path":  "src/PreprocessPreviewDialog.cs",
                                                   "bytes":  4985,
                                                   "sha256":  "B0A66D8940AE7BD3D26F9B4C9AB5F210DA70975CE68589F1EDF2EA05EF357FE0"
                                               },
                                               {
                                                   "path":  "src/Program.cs",
                                                   "bytes":  1053,
                                                   "sha256":  "4721E47551F09134F8E5BBDB70DE5FBE6367F0AE21BE4A33943BACD106E168B5"
                                               },
                                               {
                                                   "path":  "src/ProjectStore.cs",
                                                   "bytes":  5303,
                                                   "sha256":  "6CEB7ED5C256FD90BDAB7ED1954647448583D17CD90C3562FD1CDF3A3CFD4DE7"
                                               },
                                               {
                                                   "path":  "src/SearchablePdfWriter.cs",
                                                   "bytes":  9035,
                                                   "sha256":  "B986F566EED8BD3A5288F7F60CB759A749E87F07BEEB32AD268E4A6C89A892AA"
                                               },
                                               {
                                                   "path":  "src/Strings.cs",
                                                   "bytes":  38422,
                                                   "sha256":  "96810BF03AA3FFF105CE3DD78BA1727BA11D10D76D2A1AE45897571C5F978D42"
                                               },
                                               {
                                                   "path":  "src/TaggedPdfWriter.cs",
                                                   "bytes":  17312,
                                                   "sha256":  "34886658D9CF3CCD0E86F3CDF9EA6784A9A4D8FF6EAE2BA5002BB313820AEC85"
                                               },
                                               {
                                                   "path":  "tests/OcrTests.cs",
                                                   "bytes":  27358,
                                                   "sha256":  "511B34526C8A17B0F5B26AF65E910B44BC5B38F53BE2DFEBE006BCF900EB2982"
                                               }
                                           ]
                    },
    "run":  {
                "exitCode":  0,
                "total":  140,
                "passed":  140,
                "failed":  0,
                "results":  [
                                {
                                    "name":  "ten interface languages",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized en",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized en",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized en",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized en",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized en",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized zh-CN",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized zh-CN",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized zh-CN",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized zh-CN",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized zh-CN",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized zh-TW",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized zh-TW",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized zh-TW",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized zh-TW",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized zh-TW",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized es",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized es",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized es",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized es",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized es",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized fr",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized fr",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized fr",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized fr",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized fr",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized de",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized de",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized de",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized de",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized de",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized ja",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized ja",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized ja",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized ja",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized ja",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized ko",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized ko",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized ko",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized ko",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized ko",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized pt-BR",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized pt-BR",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized pt-BR",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized pt-BR",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized pt-BR",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "format label localized ru",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR language label localized ru",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page range label localized ru",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "dictionary action localized ru",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognize action localized ru",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "representative translations are distinct",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page ranges support lists, closed ranges and open-ended ranges",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "page ranges support an open start and remove duplicates",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "invalid reversed page range is rejected",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "document search supports case-insensitive whole words across pages",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "document search supports match case",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "document replace preserves partial words and updates every page",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "preprocessing crops white scanner margins",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "preprocessing applies grayscale auto contrast",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "perspective correction rectifies a trapezoid document",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "target DPI downsamples 600 DPI input without upscaling",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "perspective keeps fixed trapezoid landscape and content at 150 DPI",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "perspective target DPI metadata 150",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "perspective keeps fixed trapezoid landscape and content at 300 DPI",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "perspective target DPI metadata 300",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "perspective keeps fixed trapezoid landscape and content at 600 DPI",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "perspective target DPI metadata 600",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "uncertain border leaves an unbordered page unchanged",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "recognition stability model emits explainable word confidence",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "suspect navigation keeps progress, word, confidence and calibration reason",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "preprocess comparison summary remains valid Unicode in the compiled binary",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "automatic layout clusters independent OCR cells into a four-by-three table",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "automatic Regions roundtrip preserves four-by-three visual rows",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "edited Table region reclusters fragmented native lines into visual rows",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "automatic table semantics propagate to hOCR and ALTO",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "real tagged PDF/A preserves exact four-by-three table semantics after Regions roundtrip",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "thirteen export formats",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "TXT export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Markdown export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "HTML export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "CSV export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "TSV export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "JSON export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "RTF export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "hOCR export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "ALTO XML export is nonempty",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "JSON preserves Unicode word coordinates",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "JSON exposes page-region-line-word layout hierarchy",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "CSV quotes multiline Unicode text",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "HTML is UTF-8 and Unicode safe",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Markdown page structure",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "user-visible export separators remain valid Unicode",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "RTF uses Unicode escapes",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "TXT atomic save",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "hOCR preserves region, line and word coordinates",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "ALTO XML preserves region, line and word coordinates",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "DOCX contains editable OCR text and an embedded source-page image",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "XLSX contains word coordinates and reading-order layout sheets",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "project restores edited text and word coordinates",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "project restores edited region type, bounds and reading order",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "project embeds and restores page images",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "tagged PDF/A contains archive metadata, reading order and table structure",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF signature",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF Unicode font map",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF embeds the bundled Noto Sans TrueType font",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF embeds Invoice text layer",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF embeds Chinese text layer",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF page count",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF contains lossless page image and text layer",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF uses reviewed corrected text",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "edited token count is redistributed across original coordinates",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "searchable PDF preserves source page geometry and avoids lossy re-encoding",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "project metadata does not disclose absolute source or temporary paths",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "digital searchable PDF is preserved byte-for-byte instead of rasterized",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "animated GIF recognizes every time frame",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "atomic failure preserves previous output",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "atomic failure leaves no temporary file",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Windows OCR language enumeration",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR languages expose BCP-47 tags",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Windows OCR image integration",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Windows OCR recognizes representative invoice",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Windows OCR returns positive word boxes",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Windows OCR preserves native line membership for layout analysis",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "single-page OCR completes under ten seconds",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "Windows PDF render to OCR integration",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "PDF broker preserves Letter page geometry",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "PDF page range renders and recognizes only the selected source page",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "OCR export keeps input PDF MediaBox",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "multipage TIFF recognizes every frame",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "TIFF page range recognizes only the selected frame",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "cancelled OCR stops",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "missing OCR language has actionable failure",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "30-page searchable PDF stress page count",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "30-page searchable PDF stress under fifteen seconds",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "30-page searchable PDF stress writes complete payload",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "application ICO is packaged",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "local OCR broker is packaged",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "standard PNG icon set is packaged",
                                    "status":  "PASS"
                                },
                                {
                                    "name":  "embedded PDF font and OFL license are packaged",
                                    "status":  "PASS"
                                }
                            ]
            },
    "disclosure":  "The named regression suite was compiled from the published source identity and rerun against the same 0.7.0 source tree. The independently frozen product executable identity is recorded separately above; this evidence does not claim that the test runner binary is the public application binary."
}
