diff --git a/.gitignore b/.gitignore index 4a293d8..9230927 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,6 @@ dist/ build/ .worktrees/ .pids/ +.env solver_rs/target/ scripts/.cache/ diff --git a/Makefile b/Makefile index a0685c3..ce9f5e9 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: build build-solver run stop restart solver app logs status clean dev kill build-associates build-emails +.PHONY: build build-solver run stop restart solver app logs status clean dev kill build-associates build-emails check-api-key SOLVER_BIN = solver_rs/target/release/unredact-solver SOLVER_PORT ?= 3100 @@ -9,6 +9,10 @@ VENV = .venv/bin PYTHON = $(VENV)/python UVICORN = $(VENV)/uvicorn +# Load .env if it exists +-include .env +export ANTHROPIC_API_KEY + $(PID_DIR): mkdir -p $(PID_DIR) @@ -19,6 +23,17 @@ build-solver: build: build-solver +# ── API key ── + +check-api-key: + @if [ -z "$(ANTHROPIC_API_KEY)" ]; then \ + printf "Enter your Anthropic API key (from console.anthropic.com): "; \ + read key; \ + echo "ANTHROPIC_API_KEY=$$key" > .env; \ + echo "Saved to .env — run make again."; \ + exit 1; \ + fi + # ── Run (background, use `make logs` to see output) ── solver: $(PID_DIR) build-solver @@ -37,7 +52,7 @@ solver: $(PID_DIR) build-solver fi \ fi -app: $(PID_DIR) solver +app: check-api-key $(PID_DIR) solver @if [ -f $(PID_DIR)/app.pid ] && kill -0 $$(cat $(PID_DIR)/app.pid) 2>/dev/null; then \ echo "App already running (pid $$(cat $(PID_DIR)/app.pid))"; \ else \ @@ -56,7 +71,7 @@ app: $(PID_DIR) solver # ── Run with live logs (foreground, Ctrl-C stops everything) ── -run: $(PID_DIR) build-solver +run: check-api-key $(PID_DIR) build-solver @SOLVER_PORT=$(SOLVER_PORT) DATA_DIR=$(DATA_DIR) $(SOLVER_BIN) > $(PID_DIR)/solver.log 2>&1 & \ echo $$! > $(PID_DIR)/solver.pid; \ sleep 0.5; \ diff --git a/redactions.json b/redactions.json new file mode 100644 index 0000000..22222db --- /dev/null +++ b/redactions.json @@ -0,0 +1,329 @@ +{ + "docId": "daec25840655", + "pageCount": 2, + "pages": { + "1": [ + { + "id": "5e276b48", + "x": 757, + "y": 741, + "w": 401, + "h": 52, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -3, + "offsetY": 6, + "gapWidth": 402, + "leftText": "On Aug 27, 2012, at 2:02 PM, ", + "rightText": " wrote:" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.6055935578837994 + }, + "gap": { + "x": 757, + "w": 401 + }, + "line": { + "x": 141, + "y": 739, + "w": 1154, + "h": 57, + "text": "On Aug 27, 2012, at 2:02 PM, — wrote:" + }, + "segments": [ + { + "text": "On Aug 27, 2012, at 2:02 PM," + }, + { + "text": "wrote:" + } + ], + "offset_x": -1, + "offset_y": 0 + } + }, + { + "id": "2b001506", + "x": 393, + "y": 903, + "w": 64, + "h": 52, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -4, + "offsetY": 11, + "gapWidth": 64, + "leftText": "Got it. Sent ", + "rightText": " an email." + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.6231324492194057 + }, + "gap": { + "x": 393, + "w": 64 + }, + "line": { + "x": 157, + "y": 897, + "w": 492, + "h": 66, + "text": "Got it. Sent[ an email." + }, + "segments": [ + { + "text": "Got it. Se" + }, + { + "text": "an email." + } + ], + "offset_x": -2, + "offset_y": 0 + } + }, + { + "id": "da6ec78e", + "x": 434, + "y": 2029, + "w": 120, + "h": 51, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -4, + "offsetY": 6, + "gapWidth": 122, + "leftText": "If you can let ", + "rightText": " or" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.7184559531747796 + }, + "gap": { + "x": 434, + "w": 120 + }, + "line": { + "x": 159, + "y": 2027, + "w": 2071, + "h": 55, + "text": "If you can let ]l or ] know what to do with the tuna that would be great. i} is still on the ranch" + }, + "segments": [ + { + "text": "If you can let" + }, + { + "text": "or ] know what to do with the tuna that would be great. i} is still on the ranch" + } + ], + "offset_x": -4, + "offset_y": 0 + } + }, + { + "id": "aed57ad3", + "x": 623, + "y": 2029, + "w": 64, + "h": 51, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": 408.8804627529084, + "offsetY": 6.328932996818563, + "gapWidth": 67, + "leftText": "or ", + "rightText": " know what to do with the tuna that would be great. " + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.7184559531747796 + }, + "gap": { + "x": 623, + "w": 64 + }, + "line": { + "x": 159, + "y": 2027, + "w": 2071, + "h": 55, + "text": "If you can let ]l or ] know what to do with the tuna that would be great. i} is still on the ranch" + }, + "segments": [ + { + "text": "If you can let ]l or" + }, + { + "text": "know what to do with the tuna that would be great. i} is still on the ranch" + } + ], + "offset_x": -4, + "offset_y": 0 + } + }, + { + "id": "dba911fb", + "x": 1734, + "y": 2029, + "w": 105, + "h": 51, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": 1448.6845532639488, + "offsetY": 5.996294050598364, + "gapWidth": 107, + "leftText": "great. ", + "rightText": " is still on the ranch" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.7184559531747796 + }, + "gap": { + "x": 1734, + "w": 105 + }, + "line": { + "x": 159, + "y": 2027, + "w": 2071, + "h": 55, + "text": "If you can let ]l or ] know what to do with the tuna that would be great. i} is still on the ranch" + }, + "segments": [ + { + "text": "If you can let ]l or ] know what to do with the tuna that would be great." + }, + { + "text": "is still on the ranch" + } + ], + "offset_x": -23, + "offset_y": 0 + } + }, + { + "id": "8284779b", + "x": 798, + "y": 2085, + "w": 401, + "h": 52, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -4.2575926823615635, + "offsetY": 9.674352435350166, + "gapWidth": 403, + "leftText": "On Aug 27, 2012, at 12:52 PM, ", + "rightText": " wrote:" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.4268292682926829 + }, + "gap": { + "x": 798, + "w": 401 + }, + "line": { + "x": 157, + "y": 2079, + "w": 1180, + "h": 65, + "text": "On Aug 27, 2012, at 12:52 PM, [G ot" + }, + "segments": [ + { + "text": "On Aug 27, 2012, at 12:52 PM," + }, + { + "text": "ot" + } + ], + "offset_x": -2, + "offset_y": -13 + } + } + ], + "2": [ + { + "id": "05cc88f7", + "x": 546, + "y": 171, + "w": 400, + "h": 53, + "status": "analyzed", + "overrides": { + "fontId": "dejavu-sans", + "fontSize": 66, + "offsetX": -12, + "offsetY": -20, + "gapWidth": 400, + "leftText": "To: francis derby-", + "rightText": "" + }, + "analysis": { + "font": { + "name": "DejaVu Sans", + "id": "dejavu-sans", + "size": 66, + "score": 0.18376703041260412 + }, + "gap": { + "x": 546, + "w": 400 + }, + "line": { + "x": 172, + "y": 132, + "w": 803, + "h": 99, + "text": "To: francis derby--" + }, + "segments": [ + { + "text": "To: francis derby-" + } + ], + "offset_x": -12, + "offset_y": -20 + } + } + ] + } +} \ No newline at end of file diff --git a/scripts/capture_llm_fixture.py b/scripts/capture_llm_fixture.py new file mode 100644 index 0000000..c580024 --- /dev/null +++ b/scripts/capture_llm_fixture.py @@ -0,0 +1,136 @@ +"""Capture OCR + LLM output from a PDF for use as test fixtures. + +Usage: + python scripts/capture_llm_fixture.py /path/to/document.pdf [page_num] + +Outputs JSON to stdout with: +- ocr_lines: serialized OCR lines with char positions +- llm_prompt: the prompt sent to the LLM +- llm_tool_input: the raw tool_use input from the LLM response +- llm_redactions: parsed LlmRedaction objects +""" + +import asyncio +import json +import os +import sys +from pathlib import Path + +# Add project root to path +sys.path.insert(0, str(Path(__file__).parent.parent)) + +# Load .env manually (no dotenv dependency) +env_path = Path(__file__).parent.parent / ".env" +if env_path.exists(): + for _line in env_path.read_text().splitlines(): + _line = _line.strip() + if _line and not _line.startswith("#") and "=" in _line: + _k, _v = _line.split("=", 1) + os.environ.setdefault(_k.strip(), _v.strip()) + +from unredact.pipeline.rasterize import rasterize_pdf +from unredact.pipeline.ocr import ocr_page +from unredact.pipeline.llm_detect import ( + _build_prompt, _parse_response, _get_client, _TOOL, +) +import os + + +def serialize_ocr_lines(lines): + """Convert OCR lines to JSON-serializable dicts.""" + result = [] + for line in lines: + chars = [] + for c in line.chars: + chars.append({ + "text": c.text, + "x": c.x, "y": c.y, + "w": c.w, "h": c.h, + "conf": c.conf, + }) + result.append({ + "chars": chars, + "x": line.x, "y": line.y, + "w": line.w, "h": line.h, + "text": line.text, + }) + return result + + +async def main(): + pdf_path = Path(sys.argv[1]) + page_num = int(sys.argv[2]) if len(sys.argv) > 2 else 1 + + print(f"Rasterizing {pdf_path}...", file=sys.stderr) + pages = rasterize_pdf(pdf_path) + if page_num > len(pages): + print(f"Only {len(pages)} pages in PDF", file=sys.stderr) + sys.exit(1) + + page_img = pages[page_num - 1] + print(f"Page {page_num}: {page_img.size}", file=sys.stderr) + + print("Running OCR...", file=sys.stderr) + lines = ocr_page(page_img) + print(f"Found {len(lines)} lines", file=sys.stderr) + + prompt = _build_prompt(lines) + print(f"Prompt length: {len(prompt)} chars", file=sys.stderr) + + model = os.environ.get("UNREDACT_LLM_MODEL", "claude-haiku-4-5-20251001") + print(f"Calling {model}...", file=sys.stderr) + + client = _get_client() + response = await client.messages.create( + model=model, + max_tokens=2048, + tools=[_TOOL], + tool_choice={"type": "tool", "name": "report_redactions"}, + messages=[{"role": "user", "content": prompt}], + ) + + # Extract tool_use block + tool_input = None + for block in response.content: + if block.type == "tool_use" and block.name == "report_redactions": + tool_input = block.input + break + + if tool_input is None: + print("ERROR: No tool_use block in response", file=sys.stderr) + sys.exit(1) + + # Parse redactions + redactions = _parse_response(tool_input, lines) + + print(f"LLM found {len(tool_input['redactions'])} redactions", file=sys.stderr) + print(f"Parsed to {len(redactions)} with valid positions", file=sys.stderr) + + # Dump fixture + fixture = { + "source_pdf": pdf_path.name, + "page": page_num, + "ocr_lines": serialize_ocr_lines(lines), + "llm_prompt": prompt, + "llm_tool_input": tool_input, + "llm_redactions": [ + { + "line_index": r.line_index, + "left_word": r.left_word, + "right_word": r.right_word, + "left_x": r.left_x, + "right_x": r.right_x, + "line_y": r.line_y, + "line_h": r.line_h, + } + for r in redactions + ], + } + + json.dump(fixture, sys.stdout, indent=2) + print(file=sys.stderr) + print("Done!", file=sys.stderr) + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/tests/fixtures/EFTA00554620_ground_truth.json b/tests/fixtures/EFTA00554620_ground_truth.json new file mode 100644 index 0000000..22222db --- /dev/null +++ b/tests/fixtures/EFTA00554620_ground_truth.json @@ -0,0 +1,329 @@ +{ + "docId": "daec25840655", + "pageCount": 2, + "pages": { + "1": [ + { + "id": "5e276b48", + "x": 757, + "y": 741, + "w": 401, + "h": 52, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -3, + "offsetY": 6, + "gapWidth": 402, + "leftText": "On Aug 27, 2012, at 2:02 PM, ", + "rightText": " wrote:" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.6055935578837994 + }, + "gap": { + "x": 757, + "w": 401 + }, + "line": { + "x": 141, + "y": 739, + "w": 1154, + "h": 57, + "text": "On Aug 27, 2012, at 2:02 PM, — wrote:" + }, + "segments": [ + { + "text": "On Aug 27, 2012, at 2:02 PM," + }, + { + "text": "wrote:" + } + ], + "offset_x": -1, + "offset_y": 0 + } + }, + { + "id": "2b001506", + "x": 393, + "y": 903, + "w": 64, + "h": 52, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -4, + "offsetY": 11, + "gapWidth": 64, + "leftText": "Got it. Sent ", + "rightText": " an email." + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.6231324492194057 + }, + "gap": { + "x": 393, + "w": 64 + }, + "line": { + "x": 157, + "y": 897, + "w": 492, + "h": 66, + "text": "Got it. Sent[ an email." + }, + "segments": [ + { + "text": "Got it. Se" + }, + { + "text": "an email." + } + ], + "offset_x": -2, + "offset_y": 0 + } + }, + { + "id": "da6ec78e", + "x": 434, + "y": 2029, + "w": 120, + "h": 51, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -4, + "offsetY": 6, + "gapWidth": 122, + "leftText": "If you can let ", + "rightText": " or" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.7184559531747796 + }, + "gap": { + "x": 434, + "w": 120 + }, + "line": { + "x": 159, + "y": 2027, + "w": 2071, + "h": 55, + "text": "If you can let ]l or ] know what to do with the tuna that would be great. i} is still on the ranch" + }, + "segments": [ + { + "text": "If you can let" + }, + { + "text": "or ] know what to do with the tuna that would be great. i} is still on the ranch" + } + ], + "offset_x": -4, + "offset_y": 0 + } + }, + { + "id": "aed57ad3", + "x": 623, + "y": 2029, + "w": 64, + "h": 51, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": 408.8804627529084, + "offsetY": 6.328932996818563, + "gapWidth": 67, + "leftText": "or ", + "rightText": " know what to do with the tuna that would be great. " + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.7184559531747796 + }, + "gap": { + "x": 623, + "w": 64 + }, + "line": { + "x": 159, + "y": 2027, + "w": 2071, + "h": 55, + "text": "If you can let ]l or ] know what to do with the tuna that would be great. i} is still on the ranch" + }, + "segments": [ + { + "text": "If you can let ]l or" + }, + { + "text": "know what to do with the tuna that would be great. i} is still on the ranch" + } + ], + "offset_x": -4, + "offset_y": 0 + } + }, + { + "id": "dba911fb", + "x": 1734, + "y": 2029, + "w": 105, + "h": 51, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": 1448.6845532639488, + "offsetY": 5.996294050598364, + "gapWidth": 107, + "leftText": "great. ", + "rightText": " is still on the ranch" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.7184559531747796 + }, + "gap": { + "x": 1734, + "w": 105 + }, + "line": { + "x": 159, + "y": 2027, + "w": 2071, + "h": 55, + "text": "If you can let ]l or ] know what to do with the tuna that would be great. i} is still on the ranch" + }, + "segments": [ + { + "text": "If you can let ]l or ] know what to do with the tuna that would be great." + }, + { + "text": "is still on the ranch" + } + ], + "offset_x": -23, + "offset_y": 0 + } + }, + { + "id": "8284779b", + "x": 798, + "y": 2085, + "w": 401, + "h": 52, + "status": "analyzed", + "overrides": { + "fontId": "times-new-roman", + "fontSize": 50, + "offsetX": -4.2575926823615635, + "offsetY": 9.674352435350166, + "gapWidth": 403, + "leftText": "On Aug 27, 2012, at 12:52 PM, ", + "rightText": " wrote:" + }, + "analysis": { + "font": { + "name": "Times New Roman", + "id": "times-new-roman", + "size": 50, + "score": 0.4268292682926829 + }, + "gap": { + "x": 798, + "w": 401 + }, + "line": { + "x": 157, + "y": 2079, + "w": 1180, + "h": 65, + "text": "On Aug 27, 2012, at 12:52 PM, [G ot" + }, + "segments": [ + { + "text": "On Aug 27, 2012, at 12:52 PM," + }, + { + "text": "ot" + } + ], + "offset_x": -2, + "offset_y": -13 + } + } + ], + "2": [ + { + "id": "05cc88f7", + "x": 546, + "y": 171, + "w": 400, + "h": 53, + "status": "analyzed", + "overrides": { + "fontId": "dejavu-sans", + "fontSize": 66, + "offsetX": -12, + "offsetY": -20, + "gapWidth": 400, + "leftText": "To: francis derby-", + "rightText": "" + }, + "analysis": { + "font": { + "name": "DejaVu Sans", + "id": "dejavu-sans", + "size": 66, + "score": 0.18376703041260412 + }, + "gap": { + "x": 546, + "w": 400 + }, + "line": { + "x": 172, + "y": 132, + "w": 803, + "h": 99, + "text": "To: francis derby--" + }, + "segments": [ + { + "text": "To: francis derby-" + } + ], + "offset_x": -12, + "offset_y": -20 + } + } + ] + } +} \ No newline at end of file diff --git a/tests/fixtures/EFTA00554620_page1.json b/tests/fixtures/EFTA00554620_page1.json new file mode 100644 index 0000000..8dd12e8 --- /dev/null +++ b/tests/fixtures/EFTA00554620_page1.json @@ -0,0 +1,11585 @@ +{ + "source_pdf": "EFTA00554620.pdf", + "page": 1, + "ocr_lines": [ + { + "chars": [ + { + "text": "F", + "x": 242, + "y": 178, + "w": 25, + "h": 34, + "conf": 79.0 + }, + { + "text": "r", + "x": 267, + "y": 178, + "w": 25, + "h": 34, + "conf": 79.0 + }, + { + "text": "o", + "x": 293, + "y": 178, + "w": 25, + "h": 34, + "conf": 79.0 + }, + { + "text": "m", + "x": 318, + "y": 178, + "w": 25, + "h": 34, + "conf": 79.0 + }, + { + "text": ":", + "x": 344, + "y": 178, + "w": 25, + "h": 34, + "conf": 79.0 + }, + { + "text": " ", + "x": 370, + "y": 178, + "w": 16, + "h": 34, + "conf": 79.0 + }, + { + "text": "|", + "x": 386, + "y": 167, + "w": 836, + "h": 57, + "conf": 56.0 + }, + { + "text": "-", + "x": 1203, + "y": 163, + "w": 21, + "h": 81, + "conf": 76.0 + } + ], + "x": 242, + "y": 163, + "w": 982, + "h": 81, + "text": "From: |-" + }, + { + "chars": [ + { + "text": "T", + "x": 305, + "y": 247, + "w": 21, + "h": 34, + "conf": 82.0 + }, + { + "text": "o", + "x": 326, + "y": 247, + "w": 21, + "h": 34, + "conf": 82.0 + }, + { + "text": ":", + "x": 348, + "y": 247, + "w": 21, + "h": 34, + "conf": 82.0 + }, + { + "text": " ", + "x": 370, + "y": 247, + "w": 16, + "h": 34, + "conf": 82.0 + }, + { + "text": "[", + "x": 386, + "y": 236, + "w": 404, + "h": 56, + "conf": 55.0 + } + ], + "x": 305, + "y": 236, + "w": 485, + "h": 56, + "text": "To: [" + }, + { + "chars": [ + { + "text": "S", + "x": 198, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "u", + "x": 219, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "b", + "x": 241, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "j", + "x": 262, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 284, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "c", + "x": 305, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "t", + "x": 327, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": ":", + "x": 348, + "y": 315, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 370, + "y": 315, + "w": 20, + "h": 45, + "conf": 91.0 + }, + { + "text": "R", + "x": 390, + "y": 315, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 410, + "y": 315, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": ":", + "x": 431, + "y": 315, + "w": 20, + "h": 35, + "conf": 91.0 + } + ], + "x": 198, + "y": 315, + "w": 253, + "h": 45, + "text": "Subject: Re:" + }, + { + "chars": [ + { + "text": "D", + "x": 261, + "y": 384, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "a", + "x": 282, + "y": 384, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "t", + "x": 304, + "y": 384, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "e", + "x": 326, + "y": 384, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": ":", + "x": 348, + "y": 384, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 370, + "y": 384, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "M", + "x": 390, + "y": 384, + "w": 25, + "h": 35, + "conf": 90.0 + }, + { + "text": "o", + "x": 415, + "y": 384, + "w": 25, + "h": 35, + "conf": 90.0 + }, + { + "text": "n", + "x": 440, + "y": 384, + "w": 25, + "h": 35, + "conf": 90.0 + }, + { + "text": ",", + "x": 465, + "y": 384, + "w": 25, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 491, + "y": 384, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "2", + "x": 508, + "y": 384, + "w": 22, + "h": 34, + "conf": 92.0 + }, + { + "text": "7", + "x": 530, + "y": 384, + "w": 22, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 553, + "y": 384, + "w": 15, + "h": 34, + "conf": 92.0 + }, + { + "text": "A", + "x": 568, + "y": 386, + "w": 28, + "h": 43, + "conf": 92.0 + }, + { + "text": "u", + "x": 596, + "y": 386, + "w": 28, + "h": 43, + "conf": 92.0 + }, + { + "text": "g", + "x": 624, + "y": 386, + "w": 28, + "h": 43, + "conf": 92.0 + }, + { + "text": " ", + "x": 652, + "y": 386, + "w": 15, + "h": 43, + "conf": 92.0 + }, + { + "text": "2", + "x": 667, + "y": 384, + "w": 23, + "h": 34, + "conf": 92.0 + }, + { + "text": "0", + "x": 690, + "y": 384, + "w": 23, + "h": 34, + "conf": 92.0 + }, + { + "text": "1", + "x": 714, + "y": 384, + "w": 23, + "h": 34, + "conf": 92.0 + }, + { + "text": "2", + "x": 738, + "y": 384, + "w": 23, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 762, + "y": 384, + "w": 24, + "h": 34, + "conf": 92.0 + }, + { + "text": "1", + "x": 786, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "8", + "x": 806, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": ":", + "x": 827, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "5", + "x": 848, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "7", + "x": 869, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": ":", + "x": 889, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "0", + "x": 910, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "8", + "x": 931, + "y": 384, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 952, + "y": 384, + "w": 17, + "h": 34, + "conf": 90.0 + }, + { + "text": "+", + "x": 969, + "y": 384, + "w": 25, + "h": 33, + "conf": 91.0 + }, + { + "text": "0", + "x": 994, + "y": 384, + "w": 25, + "h": 33, + "conf": 91.0 + }, + { + "text": "0", + "x": 1019, + "y": 384, + "w": 25, + "h": 33, + "conf": 91.0 + }, + { + "text": "0", + "x": 1044, + "y": 384, + "w": 25, + "h": 33, + "conf": 91.0 + }, + { + "text": "0", + "x": 1069, + "y": 384, + "w": 25, + "h": 33, + "conf": 91.0 + } + ], + "x": 261, + "y": 384, + "w": 833, + "h": 45, + "text": "Date: Mon, 27 Aug 2012 18:57:08 +0000" + }, + { + "chars": [ + { + "text": "[", + "x": 143, + "y": 581, + "w": 10, + "h": 34, + "conf": 66.0 + }, + { + "text": " ", + "x": 153, + "y": 581, + "w": 18, + "h": 34, + "conf": 66.0 + }, + { + "text": "u", + "x": 171, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "n", + "x": 191, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "d", + "x": 212, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "e", + "x": 232, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "r", + "x": 253, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "s", + "x": 273, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "t", + "x": 294, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "a", + "x": 314, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "n", + "x": 335, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "d", + "x": 355, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": ".", + "x": 376, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": " ", + "x": 397, + "y": 580, + "w": 20, + "h": 35, + "conf": 87.0 + }, + { + "text": "H", + "x": 417, + "y": 581, + "w": 26, + "h": 34, + "conf": 92.0 + }, + { + "text": "e", + "x": 443, + "y": 581, + "w": 26, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 470, + "y": 581, + "w": 18, + "h": 34, + "conf": 92.0 + }, + { + "text": "l", + "x": 488, + "y": 580, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 503, + "y": 580, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "f", + "x": 518, + "y": 580, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 533, + "y": 580, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 549, + "y": 580, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 565, + "y": 592, + "w": 23, + "h": 23, + "conf": 92.0 + }, + { + "text": "n", + "x": 588, + "y": 592, + "w": 23, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 611, + "y": 592, + "w": 17, + "h": 23, + "conf": 92.0 + }, + { + "text": "W", + "x": 628, + "y": 580, + "w": 28, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 656, + "y": 580, + "w": 28, + "h": 35, + "conf": 91.0 + }, + { + "text": "d", + "x": 685, + "y": 580, + "w": 28, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 714, + "y": 580, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "l", + "x": 732, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 748, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 764, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 780, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 796, + "y": 580, + "w": 15, + "h": 35, + "conf": 91.0 + }, + { + "text": "w", + "x": 811, + "y": 580, + "w": 25, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 836, + "y": 580, + "w": 25, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 862, + "y": 580, + "w": 25, + "h": 35, + "conf": 91.0 + }, + { + "text": "k", + "x": 888, + "y": 580, + "w": 25, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 914, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 930, + "y": 580, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 952, + "y": 580, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "d", + "x": 975, + "y": 580, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 998, + "y": 580, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "h", + "x": 1015, + "y": 580, + "w": 22, + "h": 35, + "conf": 93.0 + }, + { + "text": "a", + "x": 1037, + "y": 580, + "w": 22, + "h": 35, + "conf": 93.0 + }, + { + "text": "d", + "x": 1060, + "y": 580, + "w": 22, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 1083, + "y": 580, + "w": 16, + "h": 35, + "conf": 93.0 + }, + { + "text": "q", + "x": 1099, + "y": 580, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "u", + "x": 1118, + "y": 580, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "i", + "x": 1137, + "y": 580, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "t", + "x": 1157, + "y": 580, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 1176, + "y": 580, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": " ", + "x": 1196, + "y": 580, + "w": 15, + "h": 46, + "conf": 92.0 + }, + { + "text": "a", + "x": 1211, + "y": 593, + "w": 19, + "h": 22, + "conf": 93.0 + }, + { + "text": " ", + "x": 1230, + "y": 593, + "w": 17, + "h": 22, + "conf": 93.0 + }, + { + "text": "b", + "x": 1247, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 1263, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 1279, + "y": 580, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 1296, + "y": 580, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 1313, + "y": 593, + "w": 10, + "h": 22, + "conf": 91.0 + }, + { + "text": "f", + "x": 1323, + "y": 593, + "w": 10, + "h": 22, + "conf": 91.0 + }, + { + "text": " ", + "x": 1333, + "y": 593, + "w": 6, + "h": 22, + "conf": 91.0 + }, + { + "text": "j", + "x": 1339, + "y": 580, + "w": 25, + "h": 45, + "conf": 92.0 + }, + { + "text": "e", + "x": 1364, + "y": 580, + "w": 25, + "h": 45, + "conf": 92.0 + }, + { + "text": "r", + "x": 1389, + "y": 580, + "w": 25, + "h": 45, + "conf": 92.0 + }, + { + "text": "k", + "x": 1414, + "y": 580, + "w": 25, + "h": 45, + "conf": 92.0 + }, + { + "text": "y", + "x": 1439, + "y": 580, + "w": 25, + "h": 45, + "conf": 92.0 + }, + { + "text": " ", + "x": 1465, + "y": 580, + "w": 17, + "h": 45, + "conf": 92.0 + }, + { + "text": "t", + "x": 1482, + "y": 580, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1499, + "y": 580, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 1517, + "y": 580, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1534, + "y": 580, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1552, + "y": 580, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 1568, + "y": 592, + "w": 27, + "h": 23, + "conf": 93.0 + }, + { + "text": "e", + "x": 1595, + "y": 592, + "w": 27, + "h": 23, + "conf": 93.0 + }, + { + "text": " ", + "x": 1623, + "y": 592, + "w": 17, + "h": 23, + "conf": 93.0 + }, + { + "text": "s", + "x": 1640, + "y": 587, + "w": 19, + "h": 28, + "conf": 91.0 + }, + { + "text": "e", + "x": 1659, + "y": 587, + "w": 19, + "h": 28, + "conf": 91.0 + }, + { + "text": "n", + "x": 1678, + "y": 587, + "w": 19, + "h": 28, + "conf": 91.0 + }, + { + "text": "t", + "x": 1697, + "y": 587, + "w": 19, + "h": 28, + "conf": 91.0 + }, + { + "text": " ", + "x": 1716, + "y": 587, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": "w", + "x": 1733, + "y": 580, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1754, + "y": 580, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1775, + "y": 580, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1796, + "y": 580, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1818, + "y": 580, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1835, + "y": 580, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "i", + "x": 1854, + "y": 580, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "m", + "x": 1873, + "y": 580, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": ".", + "x": 1892, + "y": 580, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": ".", + "x": 1911, + "y": 580, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 1931, + "y": 580, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "h", + "x": 1950, + "y": 580, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": "e", + "x": 1971, + "y": 580, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 1993, + "y": 580, + "w": 16, + "h": 35, + "conf": 90.0 + }, + { + "text": "m", + "x": 2009, + "y": 587, + "w": 23, + "h": 28, + "conf": 92.0 + }, + { + "text": "u", + "x": 2032, + "y": 587, + "w": 23, + "h": 28, + "conf": 92.0 + }, + { + "text": "s", + "x": 2056, + "y": 587, + "w": 23, + "h": 28, + "conf": 92.0 + }, + { + "text": "t", + "x": 2079, + "y": 587, + "w": 23, + "h": 28, + "conf": 92.0 + }, + { + "text": " ", + "x": 2103, + "y": 587, + "w": 16, + "h": 28, + "conf": 92.0 + }, + { + "text": "b", + "x": 2119, + "y": 580, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": "e", + "x": 2140, + "y": 580, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": " ", + "x": 2162, + "y": 580, + "w": 17, + "h": 35, + "conf": 89.0 + }, + { + "text": "g", + "x": 2179, + "y": 581, + "w": 22, + "h": 45, + "conf": 89.0 + }, + { + "text": "o", + "x": 2201, + "y": 581, + "w": 22, + "h": 45, + "conf": 89.0 + }, + { + "text": "i", + "x": 2223, + "y": 581, + "w": 22, + "h": 45, + "conf": 89.0 + }, + { + "text": "n", + "x": 2245, + "y": 581, + "w": 22, + "h": 45, + "conf": 89.0 + }, + { + "text": "g", + "x": 2267, + "y": 581, + "w": 22, + "h": 45, + "conf": 89.0 + } + ], + "x": 143, + "y": 580, + "w": 2146, + "h": 46, + "text": "[ understand. He left on Wed last week and had quite a bit of jerky that we sent with him.. he must be going" + }, + { + "chars": [ + { + "text": "t", + "x": 142, + "y": 636, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "h", + "x": 163, + "y": 636, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "r", + "x": 185, + "y": 636, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "o", + "x": 206, + "y": 636, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "u", + "x": 228, + "y": 636, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "g", + "x": 249, + "y": 636, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "h", + "x": 271, + "y": 636, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": " ", + "x": 293, + "y": 636, + "w": 18, + "h": 46, + "conf": 92.0 + }, + { + "text": "i", + "x": 311, + "y": 637, + "w": 11, + "h": 34, + "conf": 74.0 + }, + { + "text": "t", + "x": 322, + "y": 637, + "w": 11, + "h": 34, + "conf": 74.0 + }, + { + "text": " ", + "x": 334, + "y": 637, + "w": 18, + "h": 34, + "conf": 74.0 + }, + { + "text": "l", + "x": 352, + "y": 636, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": "i", + "x": 369, + "y": 636, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": "k", + "x": 386, + "y": 636, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": "e", + "x": 403, + "y": 636, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 421, + "y": 636, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "c", + "x": 437, + "y": 648, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "r", + "x": 458, + "y": 648, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "a", + "x": 479, + "y": 648, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "z", + "x": 500, + "y": 648, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "y", + "x": 521, + "y": 648, + "w": 21, + "h": 34, + "conf": 91.0 + } + ], + "x": 142, + "y": 636, + "w": 400, + "h": 46, + "text": "through it like crazy" + }, + { + "chars": [ + { + "text": "O", + "x": 141, + "y": 750, + "w": 29, + "h": 34, + "conf": 90.0 + }, + { + "text": "n", + "x": 170, + "y": 750, + "w": 29, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 199, + "y": 750, + "w": 14, + "h": 34, + "conf": 90.0 + }, + { + "text": "A", + "x": 213, + "y": 750, + "w": 27, + "h": 44, + "conf": 90.0 + }, + { + "text": "u", + "x": 240, + "y": 750, + "w": 27, + "h": 44, + "conf": 90.0 + }, + { + "text": "g", + "x": 268, + "y": 750, + "w": 27, + "h": 44, + "conf": 90.0 + }, + { + "text": " ", + "x": 296, + "y": 750, + "w": 15, + "h": 44, + "conf": 90.0 + }, + { + "text": "2", + "x": 311, + "y": 749, + "w": 19, + "h": 36, + "conf": 93.0 + }, + { + "text": "7", + "x": 330, + "y": 749, + "w": 19, + "h": 36, + "conf": 93.0 + }, + { + "text": ",", + "x": 349, + "y": 749, + "w": 19, + "h": 36, + "conf": 93.0 + }, + { + "text": " ", + "x": 369, + "y": 749, + "w": 17, + "h": 36, + "conf": 93.0 + }, + { + "text": "2", + "x": 386, + "y": 749, + "w": 21, + "h": 36, + "conf": 93.0 + }, + { + "text": "0", + "x": 407, + "y": 749, + "w": 21, + "h": 36, + "conf": 93.0 + }, + { + "text": "1", + "x": 429, + "y": 749, + "w": 21, + "h": 36, + "conf": 93.0 + }, + { + "text": "2", + "x": 450, + "y": 749, + "w": 21, + "h": 36, + "conf": 93.0 + }, + { + "text": ",", + "x": 472, + "y": 749, + "w": 21, + "h": 36, + "conf": 93.0 + }, + { + "text": " ", + "x": 494, + "y": 749, + "w": 17, + "h": 36, + "conf": 93.0 + }, + { + "text": "a", + "x": 511, + "y": 756, + "w": 16, + "h": 28, + "conf": 92.0 + }, + { + "text": "t", + "x": 527, + "y": 756, + "w": 16, + "h": 28, + "conf": 92.0 + }, + { + "text": " ", + "x": 543, + "y": 756, + "w": 16, + "h": 28, + "conf": 92.0 + }, + { + "text": "2", + "x": 559, + "y": 749, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": ":", + "x": 580, + "y": 749, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "0", + "x": 601, + "y": 749, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "2", + "x": 622, + "y": 749, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 643, + "y": 749, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "P", + "x": 663, + "y": 750, + "w": 26, + "h": 35, + "conf": 88.0 + }, + { + "text": "M", + "x": 689, + "y": 750, + "w": 26, + "h": 35, + "conf": 88.0 + }, + { + "text": ",", + "x": 715, + "y": 750, + "w": 26, + "h": 35, + "conf": 88.0 + }, + { + "text": " ", + "x": 741, + "y": 750, + "w": 14, + "h": 35, + "conf": 88.0 + }, + { + "text": "\u2014", + "x": 755, + "y": 739, + "w": 405, + "h": 57, + "conf": 97.0 + }, + { + "text": " ", + "x": 1160, + "y": 739, + "w": 14, + "h": 57, + "conf": 97.0 + }, + { + "text": "w", + "x": 1174, + "y": 756, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": "r", + "x": 1194, + "y": 756, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": "o", + "x": 1214, + "y": 756, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": "t", + "x": 1235, + "y": 756, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": "e", + "x": 1255, + "y": 756, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": ":", + "x": 1275, + "y": 756, + "w": 20, + "h": 28, + "conf": 92.0 + } + ], + "x": 141, + "y": 739, + "w": 1154, + "h": 57, + "text": "On Aug 27, 2012, at 2:02 PM, \u2014 wrote:" + }, + { + "chars": [ + { + "text": "G", + "x": 157, + "y": 912, + "w": 23, + "h": 34, + "conf": 83.0 + }, + { + "text": "o", + "x": 180, + "y": 912, + "w": 23, + "h": 34, + "conf": 83.0 + }, + { + "text": "t", + "x": 204, + "y": 912, + "w": 23, + "h": 34, + "conf": 83.0 + }, + { + "text": " ", + "x": 228, + "y": 912, + "w": 18, + "h": 34, + "conf": 83.0 + }, + { + "text": "i", + "x": 246, + "y": 912, + "w": 11, + "h": 34, + "conf": 83.0 + }, + { + "text": "t", + "x": 257, + "y": 912, + "w": 11, + "h": 34, + "conf": 83.0 + }, + { + "text": ".", + "x": 268, + "y": 912, + "w": 11, + "h": 34, + "conf": 83.0 + }, + { + "text": " ", + "x": 280, + "y": 912, + "w": 19, + "h": 34, + "conf": 83.0 + }, + { + "text": "S", + "x": 299, + "y": 901, + "w": 40, + "h": 57, + "conf": 87.0 + }, + { + "text": "e", + "x": 339, + "y": 901, + "w": 40, + "h": 57, + "conf": 87.0 + }, + { + "text": "n", + "x": 379, + "y": 901, + "w": 40, + "h": 57, + "conf": 87.0 + }, + { + "text": "t", + "x": 419, + "y": 901, + "w": 40, + "h": 57, + "conf": 87.0 + }, + { + "text": "[", + "x": 400, + "y": 897, + "w": 34, + "h": 66, + "conf": 35.0 + }, + { + "text": " ", + "x": 434, + "y": 897, + "w": 39, + "h": 66, + "conf": 35.0 + }, + { + "text": "a", + "x": 473, + "y": 923, + "w": 21, + "h": 23, + "conf": 92.0 + }, + { + "text": "n", + "x": 494, + "y": 923, + "w": 21, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 516, + "y": 923, + "w": 16, + "h": 23, + "conf": 92.0 + }, + { + "text": "e", + "x": 532, + "y": 912, + "w": 19, + "h": 35, + "conf": 88.0 + }, + { + "text": "m", + "x": 551, + "y": 912, + "w": 19, + "h": 35, + "conf": 88.0 + }, + { + "text": "a", + "x": 571, + "y": 912, + "w": 19, + "h": 35, + "conf": 88.0 + }, + { + "text": "i", + "x": 591, + "y": 912, + "w": 19, + "h": 35, + "conf": 88.0 + }, + { + "text": "l", + "x": 610, + "y": 912, + "w": 19, + "h": 35, + "conf": 88.0 + }, + { + "text": ".", + "x": 630, + "y": 912, + "w": 19, + "h": 35, + "conf": 88.0 + } + ], + "x": 157, + "y": 897, + "w": 492, + "h": 66, + "text": "Got it. Sent[ an email." + }, + { + "chars": [ + { + "text": "[", + "x": 159, + "y": 1025, + "w": 9, + "h": 34, + "conf": 89.0 + }, + { + "text": " ", + "x": 168, + "y": 1025, + "w": 18, + "h": 34, + "conf": 89.0 + }, + { + "text": "t", + "x": 186, + "y": 1024, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 205, + "y": 1024, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 225, + "y": 1024, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 245, + "y": 1024, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "k", + "x": 265, + "y": 1024, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 285, + "y": 1024, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 302, + "y": 1024, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "h", + "x": 322, + "y": 1024, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "e", + "x": 343, + "y": 1024, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "y", + "x": 363, + "y": 1024, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": " ", + "x": 384, + "y": 1024, + "w": 16, + "h": 45, + "conf": 92.0 + }, + { + "text": "a", + "x": 400, + "y": 1036, + "w": 19, + "h": 23, + "conf": 91.0 + }, + { + "text": "r", + "x": 419, + "y": 1036, + "w": 19, + "h": 23, + "conf": 91.0 + }, + { + "text": "e", + "x": 438, + "y": 1036, + "w": 19, + "h": 23, + "conf": 91.0 + }, + { + "text": " ", + "x": 458, + "y": 1036, + "w": 16, + "h": 23, + "conf": 91.0 + }, + { + "text": "g", + "x": 474, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "o", + "x": 496, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "i", + "x": 518, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "n", + "x": 540, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "g", + "x": 562, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": " ", + "x": 584, + "y": 1024, + "w": 17, + "h": 46, + "conf": 92.0 + }, + { + "text": "t", + "x": 601, + "y": 1032, + "w": 17, + "h": 27, + "conf": 92.0 + }, + { + "text": "o", + "x": 618, + "y": 1032, + "w": 17, + "h": 27, + "conf": 92.0 + }, + { + "text": " ", + "x": 636, + "y": 1032, + "w": 16, + "h": 27, + "conf": 92.0 + }, + { + "text": "a", + "x": 652, + "y": 1031, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "t", + "x": 672, + "y": 1031, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "t", + "x": 693, + "y": 1031, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "e", + "x": 714, + "y": 1031, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "m", + "x": 735, + "y": 1031, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "p", + "x": 756, + "y": 1031, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "t", + "x": 777, + "y": 1031, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": " ", + "x": 798, + "y": 1031, + "w": 17, + "h": 39, + "conf": 91.0 + }, + { + "text": "t", + "x": 815, + "y": 1030, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": "o", + "x": 832, + "y": 1030, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": " ", + "x": 850, + "y": 1030, + "w": 16, + "h": 29, + "conf": 92.0 + }, + { + "text": "m", + "x": 866, + "y": 1024, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 892, + "y": 1024, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": "k", + "x": 918, + "y": 1024, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 944, + "y": 1024, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 971, + "y": 1024, + "w": 10, + "h": 35, + "conf": 92.0 + }, + { + "text": "j", + "x": 981, + "y": 1024, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "e", + "x": 1002, + "y": 1024, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "r", + "x": 1023, + "y": 1024, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "k", + "x": 1044, + "y": 1024, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "y", + "x": 1065, + "y": 1024, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": " ", + "x": 1086, + "y": 1024, + "w": 16, + "h": 45, + "conf": 92.0 + }, + { + "text": "a", + "x": 1102, + "y": 1036, + "w": 19, + "h": 23, + "conf": 90.0 + }, + { + "text": "s", + "x": 1121, + "y": 1036, + "w": 19, + "h": 23, + "conf": 90.0 + }, + { + "text": " ", + "x": 1140, + "y": 1036, + "w": 16, + "h": 23, + "conf": 90.0 + }, + { + "text": "w", + "x": 1156, + "y": 1024, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1174, + "y": 1024, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": "l", + "x": 1193, + "y": 1024, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": "l", + "x": 1211, + "y": 1024, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": ".", + "x": 1230, + "y": 1024, + "w": 18, + "h": 35, + "conf": 92.0 + } + ], + "x": 159, + "y": 1024, + "w": 1089, + "h": 46, + "text": "[ think they are going to attempt to make jerky as well." + }, + { + "chars": [ + { + "text": "[", + "x": 159, + "y": 1137, + "w": 10, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 169, + "y": 1137, + "w": 17, + "h": 34, + "conf": 90.0 + }, + { + "text": "h", + "x": 186, + "y": 1137, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "a", + "x": 205, + "y": 1137, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "v", + "x": 225, + "y": 1137, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "e", + "x": 245, + "y": 1137, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "n", + "x": 265, + "y": 1137, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "'", + "x": 285, + "y": 1137, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "t", + "x": 305, + "y": 1137, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 325, + "y": 1137, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": "g", + "x": 340, + "y": 1143, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "o", + "x": 360, + "y": 1143, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "t", + "x": 380, + "y": 1143, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "t", + "x": 401, + "y": 1143, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "e", + "x": 421, + "y": 1143, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": "n", + "x": 441, + "y": 1143, + "w": 20, + "h": 39, + "conf": 91.0 + }, + { + "text": " ", + "x": 462, + "y": 1143, + "w": 16, + "h": 39, + "conf": 91.0 + }, + { + "text": "a", + "x": 478, + "y": 1148, + "w": 23, + "h": 34, + "conf": 91.0 + }, + { + "text": "n", + "x": 501, + "y": 1148, + "w": 23, + "h": 34, + "conf": 91.0 + }, + { + "text": "y", + "x": 524, + "y": 1148, + "w": 23, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 547, + "y": 1148, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": "e", + "x": 564, + "y": 1137, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 585, + "y": 1137, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 606, + "y": 1137, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 627, + "y": 1137, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "l", + "x": 648, + "y": 1137, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 669, + "y": 1137, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 690, + "y": 1137, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 707, + "y": 1137, + "w": 12, + "h": 34, + "conf": 89.0 + }, + { + "text": "i", + "x": 719, + "y": 1137, + "w": 12, + "h": 34, + "conf": 89.0 + }, + { + "text": "l", + "x": 732, + "y": 1137, + "w": 12, + "h": 34, + "conf": 89.0 + }, + { + "text": "l", + "x": 744, + "y": 1137, + "w": 12, + "h": 34, + "conf": 89.0 + }, + { + "text": " ", + "x": 757, + "y": 1137, + "w": 18, + "h": 34, + "conf": 89.0 + }, + { + "text": "t", + "x": 775, + "y": 1137, + "w": 21, + "h": 45, + "conf": 89.0 + }, + { + "text": "o", + "x": 796, + "y": 1137, + "w": 21, + "h": 45, + "conf": 89.0 + }, + { + "text": "d", + "x": 817, + "y": 1137, + "w": 21, + "h": 45, + "conf": 89.0 + }, + { + "text": "a", + "x": 838, + "y": 1137, + "w": 21, + "h": 45, + "conf": 89.0 + }, + { + "text": "y", + "x": 859, + "y": 1137, + "w": 21, + "h": 45, + "conf": 89.0 + }, + { + "text": " ", + "x": 881, + "y": 1137, + "w": 17, + "h": 45, + "conf": 89.0 + }, + { + "text": "a", + "x": 898, + "y": 1137, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": "b", + "x": 919, + "y": 1137, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": "o", + "x": 941, + "y": 1137, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": "u", + "x": 962, + "y": 1137, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": "t", + "x": 984, + "y": 1137, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 1006, + "y": 1137, + "w": 16, + "h": 35, + "conf": 90.0 + }, + { + "text": "a", + "x": 1022, + "y": 1149, + "w": 22, + "h": 33, + "conf": 92.0 + }, + { + "text": "n", + "x": 1044, + "y": 1149, + "w": 22, + "h": 33, + "conf": 92.0 + }, + { + "text": "y", + "x": 1067, + "y": 1149, + "w": 22, + "h": 33, + "conf": 92.0 + }, + { + "text": " ", + "x": 1090, + "y": 1149, + "w": 16, + "h": 33, + "conf": 92.0 + }, + { + "text": "o", + "x": 1106, + "y": 1137, + "w": 22, + "h": 34, + "conf": 90.0 + }, + { + "text": "f", + "x": 1128, + "y": 1137, + "w": 22, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 1151, + "y": 1137, + "w": 10, + "h": 34, + "conf": 90.0 + }, + { + "text": "t", + "x": 1161, + "y": 1137, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": "h", + "x": 1176, + "y": 1137, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": "i", + "x": 1192, + "y": 1137, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": "s", + "x": 1208, + "y": 1137, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": ".", + "x": 1224, + "y": 1137, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 1240, + "y": 1137, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": "A", + "x": 1255, + "y": 1137, + "w": 27, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 1282, + "y": 1137, + "w": 27, + "h": 35, + "conf": 91.0 + }, + { + "text": "d", + "x": 1310, + "y": 1137, + "w": 27, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 1338, + "y": 1137, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 1354, + "y": 1149, + "w": 27, + "h": 22, + "conf": 91.0 + }, + { + "text": "o", + "x": 1381, + "y": 1149, + "w": 27, + "h": 22, + "conf": 91.0 + }, + { + "text": "w", + "x": 1408, + "y": 1149, + "w": 27, + "h": 22, + "conf": 91.0 + }, + { + "text": " ", + "x": 1436, + "y": 1149, + "w": 17, + "h": 22, + "conf": 91.0 + }, + { + "text": "i", + "x": 1453, + "y": 1137, + "w": 12, + "h": 34, + "conf": 93.0 + }, + { + "text": "t", + "x": 1465, + "y": 1137, + "w": 12, + "h": 34, + "conf": 93.0 + }, + { + "text": " ", + "x": 1477, + "y": 1137, + "w": 16, + "h": 34, + "conf": 93.0 + }, + { + "text": "s", + "x": 1493, + "y": 1148, + "w": 23, + "h": 24, + "conf": 92.0 + }, + { + "text": "e", + "x": 1516, + "y": 1148, + "w": 23, + "h": 24, + "conf": 92.0 + }, + { + "text": "e", + "x": 1540, + "y": 1148, + "w": 23, + "h": 24, + "conf": 92.0 + }, + { + "text": "m", + "x": 1564, + "y": 1148, + "w": 23, + "h": 24, + "conf": 92.0 + }, + { + "text": "s", + "x": 1588, + "y": 1148, + "w": 23, + "h": 24, + "conf": 92.0 + }, + { + "text": " ", + "x": 1612, + "y": 1148, + "w": 16, + "h": 24, + "conf": 92.0 + }, + { + "text": "t", + "x": 1628, + "y": 1143, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": "o", + "x": 1645, + "y": 1143, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": " ", + "x": 1663, + "y": 1143, + "w": 16, + "h": 28, + "conf": 91.0 + }, + { + "text": "b", + "x": 1679, + "y": 1137, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1700, + "y": 1137, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1722, + "y": 1137, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1739, + "y": 1144, + "w": 20, + "h": 27, + "conf": 91.0 + }, + { + "text": "o", + "x": 1759, + "y": 1144, + "w": 20, + "h": 27, + "conf": 91.0 + }, + { + "text": "o", + "x": 1779, + "y": 1144, + "w": 20, + "h": 27, + "conf": 91.0 + }, + { + "text": " ", + "x": 1799, + "y": 1144, + "w": 17, + "h": 27, + "conf": 91.0 + }, + { + "text": "l", + "x": 1816, + "y": 1137, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 1831, + "y": 1137, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1847, + "y": 1137, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1862, + "y": 1137, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": ".", + "x": 1878, + "y": 1137, + "w": 15, + "h": 35, + "conf": 92.0 + } + ], + "x": 159, + "y": 1137, + "w": 1734, + "h": 45, + "text": "[ haven't gotten any emails till today about any of this. And now it seems to be too late." + }, + { + "chars": [ + { + "text": "I", + "x": 159, + "y": 1250, + "w": 9, + "h": 34, + "conf": 76.0 + }, + { + "text": " ", + "x": 168, + "y": 1250, + "w": 18, + "h": 34, + "conf": 76.0 + }, + { + "text": "n", + "x": 186, + "y": 1249, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 208, + "y": 1249, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 231, + "y": 1249, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 254, + "y": 1249, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 277, + "y": 1249, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 294, + "y": 1256, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": "o", + "x": 311, + "y": 1256, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": " ", + "x": 329, + "y": 1256, + "w": 16, + "h": 28, + "conf": 91.0 + }, + { + "text": "k", + "x": 345, + "y": 1249, + "w": 26, + "h": 35, + "conf": 88.0 + }, + { + "text": "n", + "x": 371, + "y": 1249, + "w": 26, + "h": 35, + "conf": 88.0 + }, + { + "text": "o", + "x": 398, + "y": 1249, + "w": 26, + "h": 35, + "conf": 88.0 + }, + { + "text": "w", + "x": 425, + "y": 1249, + "w": 26, + "h": 35, + "conf": 88.0 + }, + { + "text": " ", + "x": 452, + "y": 1249, + "w": 17, + "h": 35, + "conf": 88.0 + }, + { + "text": "i", + "x": 469, + "y": 1249, + "w": 14, + "h": 35, + "conf": 88.0 + }, + { + "text": "f", + "x": 483, + "y": 1249, + "w": 14, + "h": 35, + "conf": 88.0 + }, + { + "text": " ", + "x": 497, + "y": 1249, + "w": 15, + "h": 35, + "conf": 88.0 + }, + { + "text": "h", + "x": 512, + "y": 1249, + "w": 18, + "h": 35, + "conf": 90.0 + }, + { + "text": "e", + "x": 530, + "y": 1249, + "w": 18, + "h": 35, + "conf": 90.0 + }, + { + "text": "'", + "x": 548, + "y": 1249, + "w": 18, + "h": 35, + "conf": 90.0 + }, + { + "text": "s", + "x": 566, + "y": 1249, + "w": 18, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 584, + "y": 1249, + "w": 15, + "h": 35, + "conf": 90.0 + }, + { + "text": "o", + "x": 599, + "y": 1256, + "w": 20, + "h": 28, + "conf": 88.0 + }, + { + "text": "u", + "x": 619, + "y": 1256, + "w": 20, + "h": 28, + "conf": 88.0 + }, + { + "text": "t", + "x": 639, + "y": 1256, + "w": 20, + "h": 28, + "conf": 88.0 + }, + { + "text": " ", + "x": 659, + "y": 1256, + "w": 18, + "h": 28, + "conf": 88.0 + }, + { + "text": "o", + "x": 677, + "y": 1249, + "w": 18, + "h": 35, + "conf": 88.0 + }, + { + "text": "f", + "x": 695, + "y": 1249, + "w": 18, + "h": 35, + "conf": 88.0 + }, + { + "text": " ", + "x": 713, + "y": 1249, + "w": 11, + "h": 35, + "conf": 88.0 + }, + { + "text": "j", + "x": 724, + "y": 1249, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "e", + "x": 745, + "y": 1249, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "r", + "x": 766, + "y": 1249, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "k", + "x": 787, + "y": 1249, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "y", + "x": 808, + "y": 1249, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": " ", + "x": 830, + "y": 1249, + "w": 16, + "h": 45, + "conf": 92.0 + }, + { + "text": "a", + "x": 846, + "y": 1249, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 868, + "y": 1249, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 891, + "y": 1249, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 914, + "y": 1249, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 930, + "y": 1249, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "h", + "x": 949, + "y": 1249, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "i", + "x": 969, + "y": 1249, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "n", + "x": 989, + "y": 1249, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "g", + "x": 1009, + "y": 1249, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "s", + "x": 1029, + "y": 1249, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 1049, + "y": 1249, + "w": 18, + "h": 45, + "conf": 91.0 + }, + { + "text": "l", + "x": 1067, + "y": 1249, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1084, + "y": 1249, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "k", + "x": 1102, + "y": 1249, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1119, + "y": 1249, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1137, + "y": 1249, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1153, + "y": 1249, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "h", + "x": 1170, + "y": 1249, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "i", + "x": 1187, + "y": 1249, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "s", + "x": 1204, + "y": 1249, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 1221, + "y": 1249, + "w": 16, + "h": 35, + "conf": 90.0 + }, + { + "text": "b", + "x": 1237, + "y": 1249, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1257, + "y": 1249, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "f", + "x": 1278, + "y": 1249, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 1299, + "y": 1249, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "r", + "x": 1320, + "y": 1249, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1341, + "y": 1249, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1362, + "y": 1249, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1379, + "y": 1249, + "w": 11, + "h": 35, + "conf": 93.0 + }, + { + "text": "t", + "x": 1390, + "y": 1249, + "w": 11, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 1401, + "y": 1249, + "w": 17, + "h": 35, + "conf": 93.0 + }, + { + "text": "h", + "x": 1418, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "a", + "x": 1439, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "p", + "x": 1460, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "p", + "x": 1482, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 1503, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "n", + "x": 1524, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": "s", + "x": 1546, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + }, + { + "text": ".", + "x": 1567, + "y": 1249, + "w": 21, + "h": 46, + "conf": 92.0 + } + ], + "x": 159, + "y": 1249, + "w": 1429, + "h": 46, + "text": "I need to know if he's out of jerky and things like this before it happens." + }, + { + "chars": [ + { + "text": "[", + "x": 159, + "y": 1363, + "w": 10, + "h": 33, + "conf": 73.0 + }, + { + "text": " ", + "x": 169, + "y": 1363, + "w": 17, + "h": 33, + "conf": 73.0 + }, + { + "text": "w", + "x": 186, + "y": 1362, + "w": 24, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 210, + "y": 1362, + "w": 24, + "h": 35, + "conf": 91.0 + }, + { + "text": "u", + "x": 234, + "y": 1362, + "w": 24, + "h": 35, + "conf": 91.0 + }, + { + "text": "l", + "x": 259, + "y": 1362, + "w": 24, + "h": 35, + "conf": 91.0 + }, + { + "text": "d", + "x": 283, + "y": 1362, + "w": 24, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 308, + "y": 1362, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 324, + "y": 1362, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "a", + "x": 343, + "y": 1362, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "t", + "x": 362, + "y": 1362, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "h", + "x": 381, + "y": 1362, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "e", + "x": 400, + "y": 1362, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "r", + "x": 419, + "y": 1362, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 439, + "y": 1362, + "w": 14, + "h": 35, + "conf": 90.0 + }, + { + "text": "c", + "x": 453, + "y": 1373, + "w": 26, + "h": 24, + "conf": 90.0 + }, + { + "text": "o", + "x": 479, + "y": 1373, + "w": 26, + "h": 24, + "conf": 90.0 + }, + { + "text": "m", + "x": 505, + "y": 1373, + "w": 26, + "h": 24, + "conf": 90.0 + }, + { + "text": "e", + "x": 531, + "y": 1373, + "w": 26, + "h": 24, + "conf": 90.0 + }, + { + "text": " ", + "x": 558, + "y": 1373, + "w": 17, + "h": 24, + "conf": 90.0 + }, + { + "text": "i", + "x": 575, + "y": 1362, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": "n", + "x": 592, + "y": 1362, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 609, + "y": 1362, + "w": 16, + "h": 34, + "conf": 91.0 + }, + { + "text": "a", + "x": 625, + "y": 1362, + "w": 23, + "h": 35, + "conf": 89.0 + }, + { + "text": "n", + "x": 648, + "y": 1362, + "w": 23, + "h": 35, + "conf": 89.0 + }, + { + "text": "d", + "x": 671, + "y": 1362, + "w": 23, + "h": 35, + "conf": 89.0 + }, + { + "text": " ", + "x": 694, + "y": 1362, + "w": 16, + "h": 35, + "conf": 89.0 + }, + { + "text": "m", + "x": 710, + "y": 1362, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 736, + "y": 1362, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": "k", + "x": 762, + "y": 1362, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 788, + "y": 1362, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 815, + "y": 1362, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 831, + "y": 1373, + "w": 24, + "h": 24, + "conf": 91.0 + }, + { + "text": "o", + "x": 855, + "y": 1373, + "w": 24, + "h": 24, + "conf": 91.0 + }, + { + "text": "r", + "x": 880, + "y": 1373, + "w": 24, + "h": 24, + "conf": 91.0 + }, + { + "text": "e", + "x": 905, + "y": 1373, + "w": 24, + "h": 24, + "conf": 91.0 + }, + { + "text": " ", + "x": 930, + "y": 1373, + "w": 16, + "h": 24, + "conf": 91.0 + }, + { + "text": "o", + "x": 946, + "y": 1373, + "w": 23, + "h": 23, + "conf": 92.0 + }, + { + "text": "n", + "x": 969, + "y": 1373, + "w": 23, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 993, + "y": 1373, + "w": 16, + "h": 23, + "conf": 92.0 + }, + { + "text": "a", + "x": 1009, + "y": 1374, + "w": 19, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 1028, + "y": 1374, + "w": 15, + "h": 23, + "conf": 92.0 + }, + { + "text": "d", + "x": 1043, + "y": 1362, + "w": 23, + "h": 45, + "conf": 90.0 + }, + { + "text": "a", + "x": 1066, + "y": 1362, + "w": 23, + "h": 45, + "conf": 90.0 + }, + { + "text": "y", + "x": 1089, + "y": 1362, + "w": 23, + "h": 45, + "conf": 90.0 + }, + { + "text": " ", + "x": 1112, + "y": 1362, + "w": 15, + "h": 45, + "conf": 90.0 + }, + { + "text": "o", + "x": 1127, + "y": 1362, + "w": 16, + "h": 34, + "conf": 90.0 + }, + { + "text": "f", + "x": 1143, + "y": 1362, + "w": 16, + "h": 34, + "conf": 90.0 + }, + { + "text": "f", + "x": 1160, + "y": 1362, + "w": 16, + "h": 34, + "conf": 90.0 + }, + { + "text": ".", + "x": 1176, + "y": 1362, + "w": 16, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 1193, + "y": 1362, + "w": 16, + "h": 34, + "conf": 90.0 + }, + { + "text": "T", + "x": 1209, + "y": 1362, + "w": 25, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1234, + "y": 1362, + "w": 25, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 1259, + "y": 1362, + "w": 25, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 1284, + "y": 1362, + "w": 25, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1309, + "y": 1362, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "b", + "x": 1325, + "y": 1362, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 1346, + "y": 1362, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 1368, + "y": 1362, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 1384, + "y": 1374, + "w": 20, + "h": 22, + "conf": 92.0 + }, + { + "text": "o", + "x": 1404, + "y": 1374, + "w": 20, + "h": 22, + "conf": 92.0 + }, + { + "text": " ", + "x": 1425, + "y": 1374, + "w": 18, + "h": 22, + "conf": 92.0 + }, + { + "text": "f", + "x": 1443, + "y": 1362, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "a", + "x": 1460, + "y": 1362, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "r", + "x": 1478, + "y": 1362, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 1496, + "y": 1362, + "w": 13, + "h": 35, + "conf": 90.0 + }, + { + "text": "a", + "x": 1509, + "y": 1374, + "w": 25, + "h": 33, + "conf": 92.0 + }, + { + "text": "w", + "x": 1534, + "y": 1374, + "w": 25, + "h": 33, + "conf": 92.0 + }, + { + "text": "a", + "x": 1560, + "y": 1374, + "w": 25, + "h": 33, + "conf": 92.0 + }, + { + "text": "y", + "x": 1585, + "y": 1374, + "w": 25, + "h": 33, + "conf": 92.0 + }, + { + "text": " ", + "x": 1611, + "y": 1374, + "w": 17, + "h": 33, + "conf": 92.0 + }, + { + "text": "t", + "x": 1628, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1645, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 1663, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1681, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1699, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1716, + "y": 1362, + "w": 14, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1730, + "y": 1362, + "w": 14, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 1744, + "y": 1362, + "w": 14, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1759, + "y": 1362, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 1775, + "y": 1368, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": "o", + "x": 1795, + "y": 1368, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": "t", + "x": 1815, + "y": 1368, + "w": 20, + "h": 28, + "conf": 92.0 + }, + { + "text": " ", + "x": 1835, + "y": 1368, + "w": 17, + "h": 28, + "conf": 92.0 + }, + { + "text": "p", + "x": 1852, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "o", + "x": 1872, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "s", + "x": 1892, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "s", + "x": 1912, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "i", + "x": 1932, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "b", + "x": 1952, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "l", + "x": 1972, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": "e", + "x": 1992, + "y": 1362, + "w": 20, + "h": 45, + "conf": 92.0 + }, + { + "text": " ", + "x": 2012, + "y": 1362, + "w": 17, + "h": 45, + "conf": 92.0 + }, + { + "text": "t", + "x": 2029, + "y": 1368, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": "o", + "x": 2046, + "y": 1368, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": " ", + "x": 2063, + "y": 1368, + "w": 18, + "h": 28, + "conf": 91.0 + }, + { + "text": "f", + "x": 2081, + "y": 1362, + "w": 16, + "h": 34, + "conf": 91.0 + }, + { + "text": "i", + "x": 2097, + "y": 1362, + "w": 16, + "h": 34, + "conf": 91.0 + }, + { + "text": "x", + "x": 2114, + "y": 1362, + "w": 16, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 2131, + "y": 1362, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": "t", + "x": 2148, + "y": 1362, + "w": 19, + "h": 45, + "conf": 92.0 + }, + { + "text": "h", + "x": 2167, + "y": 1362, + "w": 19, + "h": 45, + "conf": 92.0 + }, + { + "text": "i", + "x": 2187, + "y": 1362, + "w": 19, + "h": 45, + "conf": 92.0 + }, + { + "text": "n", + "x": 2207, + "y": 1362, + "w": 19, + "h": 45, + "conf": 92.0 + }, + { + "text": "g", + "x": 2226, + "y": 1362, + "w": 19, + "h": 45, + "conf": 92.0 + }, + { + "text": "s", + "x": 2246, + "y": 1362, + "w": 19, + "h": 45, + "conf": 92.0 + }, + { + "text": " ", + "x": 2266, + "y": 1362, + "w": 17, + "h": 45, + "conf": 92.0 + }, + { + "text": "t", + "x": 2283, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 2300, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 2318, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 2335, + "y": 1362, + "w": 17, + "h": 35, + "conf": 92.0 + } + ], + "x": 159, + "y": 1362, + "w": 2193, + "h": 45, + "text": "[ would rather come in and make more on a day off. Than be so far away that its not possible to fix things that" + }, + { + "chars": [ + { + "text": "a", + "x": 157, + "y": 1430, + "w": 19, + "h": 23, + "conf": 89.0 + }, + { + "text": "r", + "x": 176, + "y": 1430, + "w": 19, + "h": 23, + "conf": 89.0 + }, + { + "text": "e", + "x": 195, + "y": 1430, + "w": 19, + "h": 23, + "conf": 89.0 + }, + { + "text": " ", + "x": 215, + "y": 1430, + "w": 16, + "h": 23, + "conf": 89.0 + }, + { + "text": "w", + "x": 231, + "y": 1430, + "w": 22, + "h": 33, + "conf": 65.0 + }, + { + "text": "r", + "x": 253, + "y": 1430, + "w": 22, + "h": 33, + "conf": 65.0 + }, + { + "text": "o", + "x": 275, + "y": 1430, + "w": 22, + "h": 33, + "conf": 65.0 + }, + { + "text": "n", + "x": 298, + "y": 1430, + "w": 22, + "h": 33, + "conf": 65.0 + }, + { + "text": "g", + "x": 320, + "y": 1430, + "w": 22, + "h": 33, + "conf": 65.0 + }, + { + "text": ".", + "x": 342, + "y": 1430, + "w": 22, + "h": 33, + "conf": 65.0 + }, + { + "text": " ", + "x": 365, + "y": 1430, + "w": 21, + "h": 33, + "conf": 65.0 + }, + { + "text": "I", + "x": 386, + "y": 1419, + "w": 14, + "h": 34, + "conf": 85.0 + }, + { + "text": "t", + "x": 400, + "y": 1419, + "w": 14, + "h": 34, + "conf": 85.0 + }, + { + "text": "s", + "x": 415, + "y": 1419, + "w": 14, + "h": 34, + "conf": 85.0 + }, + { + "text": " ", + "x": 430, + "y": 1419, + "w": 16, + "h": 34, + "conf": 85.0 + }, + { + "text": "a", + "x": 446, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "c", + "x": 465, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "t", + "x": 484, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "u", + "x": 503, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "a", + "x": 523, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "l", + "x": 542, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "l", + "x": 561, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "y", + "x": 580, + "y": 1418, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 600, + "y": 1418, + "w": 17, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 617, + "y": 1418, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 636, + "y": 1418, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 655, + "y": 1418, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 674, + "y": 1418, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 693, + "y": 1418, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 712, + "y": 1418, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 731, + "y": 1418, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 747, + "y": 1418, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 764, + "y": 1418, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 782, + "y": 1418, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 800, + "y": 1418, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 818, + "y": 1418, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 834, + "y": 1430, + "w": 21, + "h": 33, + "conf": 92.0 + }, + { + "text": "a", + "x": 855, + "y": 1430, + "w": 21, + "h": 33, + "conf": 92.0 + }, + { + "text": "y", + "x": 877, + "y": 1430, + "w": 21, + "h": 33, + "conf": 92.0 + }, + { + "text": ".", + "x": 899, + "y": 1430, + "w": 21, + "h": 33, + "conf": 92.0 + } + ], + "x": 157, + "y": 1418, + "w": 763, + "h": 45, + "text": "are wrong. Its actually easier that way." + }, + { + "chars": [ + { + "text": "S", + "x": 158, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 179, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 200, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 221, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 243, + "y": 1531, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "f", + "x": 261, + "y": 1531, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": "r", + "x": 283, + "y": 1531, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": "o", + "x": 306, + "y": 1531, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": "m", + "x": 329, + "y": 1531, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 352, + "y": 1531, + "w": 16, + "h": 34, + "conf": 91.0 + }, + { + "text": "m", + "x": 368, + "y": 1542, + "w": 30, + "h": 34, + "conf": 91.0 + }, + { + "text": "y", + "x": 398, + "y": 1542, + "w": 30, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 428, + "y": 1542, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": "V", + "x": 445, + "y": 1530, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 466, + "y": 1530, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "r", + "x": 488, + "y": 1530, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 509, + "y": 1530, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "z", + "x": 531, + "y": 1530, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 552, + "y": 1530, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 574, + "y": 1530, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 596, + "y": 1530, + "w": 16, + "h": 36, + "conf": 91.0 + }, + { + "text": "W", + "x": 612, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 633, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 654, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 675, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "l", + "x": 696, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 717, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 738, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 759, + "y": 1531, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 780, + "y": 1531, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "B", + "x": 798, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "l", + "x": 820, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "a", + "x": 843, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "c", + "x": 865, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "k", + "x": 888, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "B", + "x": 910, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 933, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "r", + "x": 955, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "r", + "x": 978, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + }, + { + "text": "y", + "x": 1000, + "y": 1531, + "w": 22, + "h": 45, + "conf": 91.0 + } + ], + "x": 158, + "y": 1530, + "w": 864, + "h": 46, + "text": "Sent from my Verizon Wireless BlackBerry" + }, + { + "chars": [ + { + "text": "F", + "x": 159, + "y": 1644, + "w": 25, + "h": 34, + "conf": 76.0 + }, + { + "text": "r", + "x": 184, + "y": 1644, + "w": 25, + "h": 34, + "conf": 76.0 + }, + { + "text": "o", + "x": 210, + "y": 1644, + "w": 25, + "h": 34, + "conf": 76.0 + }, + { + "text": "m", + "x": 235, + "y": 1644, + "w": 25, + "h": 34, + "conf": 76.0 + }, + { + "text": ":", + "x": 261, + "y": 1644, + "w": 25, + "h": 34, + "conf": 76.0 + }, + { + "text": " ", + "x": 287, + "y": 1644, + "w": 15, + "h": 34, + "conf": 76.0 + }, + { + "text": "|", + "x": 302, + "y": 1633, + "w": 836, + "h": 57, + "conf": 36.0 + }, + { + "text": "-", + "x": 1120, + "y": 1629, + "w": 21, + "h": 81, + "conf": 79.0 + } + ], + "x": 159, + "y": 1629, + "w": 982, + "h": 81, + "text": "From: |-" + }, + { + "chars": [ + { + "text": "D", + "x": 158, + "y": 1700, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": "a", + "x": 180, + "y": 1700, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": "t", + "x": 202, + "y": 1700, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": "e", + "x": 224, + "y": 1700, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": ":", + "x": 246, + "y": 1700, + "w": 22, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 268, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "M", + "x": 288, + "y": 1700, + "w": 25, + "h": 36, + "conf": 89.0 + }, + { + "text": "o", + "x": 313, + "y": 1700, + "w": 25, + "h": 36, + "conf": 89.0 + }, + { + "text": "n", + "x": 338, + "y": 1700, + "w": 25, + "h": 36, + "conf": 89.0 + }, + { + "text": ",", + "x": 363, + "y": 1700, + "w": 25, + "h": 36, + "conf": 89.0 + }, + { + "text": " ", + "x": 389, + "y": 1700, + "w": 16, + "h": 36, + "conf": 89.0 + }, + { + "text": "2", + "x": 405, + "y": 1700, + "w": 23, + "h": 34, + "conf": 92.0 + }, + { + "text": "7", + "x": 428, + "y": 1700, + "w": 23, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 451, + "y": 1700, + "w": 15, + "h": 34, + "conf": 92.0 + }, + { + "text": "A", + "x": 466, + "y": 1701, + "w": 27, + "h": 38, + "conf": 92.0 + }, + { + "text": "u", + "x": 493, + "y": 1701, + "w": 27, + "h": 38, + "conf": 92.0 + }, + { + "text": "g", + "x": 521, + "y": 1701, + "w": 27, + "h": 38, + "conf": 92.0 + }, + { + "text": " ", + "x": 549, + "y": 1701, + "w": 15, + "h": 38, + "conf": 92.0 + }, + { + "text": "2", + "x": 564, + "y": 1700, + "w": 23, + "h": 34, + "conf": 91.0 + }, + { + "text": "0", + "x": 587, + "y": 1700, + "w": 23, + "h": 34, + "conf": 91.0 + }, + { + "text": "1", + "x": 611, + "y": 1700, + "w": 23, + "h": 34, + "conf": 91.0 + }, + { + "text": "2", + "x": 635, + "y": 1700, + "w": 23, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 659, + "y": 1700, + "w": 24, + "h": 34, + "conf": 91.0 + }, + { + "text": "1", + "x": 683, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "2", + "x": 703, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": ":", + "x": 724, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "5", + "x": 745, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "4", + "x": 766, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": ":", + "x": 787, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "0", + "x": 808, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "4", + "x": 829, + "y": 1700, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 850, + "y": 1700, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": "-", + "x": 867, + "y": 1700, + "w": 22, + "h": 34, + "conf": 87.0 + }, + { + "text": "0", + "x": 889, + "y": 1700, + "w": 22, + "h": 34, + "conf": 87.0 + }, + { + "text": "4", + "x": 912, + "y": 1700, + "w": 22, + "h": 34, + "conf": 87.0 + }, + { + "text": "0", + "x": 935, + "y": 1700, + "w": 22, + "h": 34, + "conf": 87.0 + }, + { + "text": "0", + "x": 958, + "y": 1700, + "w": 22, + "h": 34, + "conf": 87.0 + } + ], + "x": 158, + "y": 1700, + "w": 822, + "h": 39, + "text": "Date: Mon, 27 Aug 2012 12:54:04 -0400" + }, + { + "chars": [ + { + "text": "T", + "x": 157, + "y": 1756, + "w": 21, + "h": 35, + "conf": 85.0 + }, + { + "text": "o", + "x": 178, + "y": 1756, + "w": 21, + "h": 35, + "conf": 85.0 + }, + { + "text": ":", + "x": 199, + "y": 1756, + "w": 21, + "h": 35, + "conf": 85.0 + }, + { + "text": " ", + "x": 221, + "y": 1756, + "w": 19, + "h": 35, + "conf": 85.0 + }, + { + "text": "<", + "x": 240, + "y": 1766, + "w": 18, + "h": 14, + "conf": 94.0 + }, + { + "text": " ", + "x": 258, + "y": 1766, + "w": 419, + "h": 14, + "conf": 94.0 + }, + { + "text": ">", + "x": 677, + "y": 1765, + "w": 19, + "h": 15, + "conf": 95.0 + } + ], + "x": 157, + "y": 1756, + "w": 539, + "h": 35, + "text": "To: < >" + }, + { + "chars": [ + { + "text": "S", + "x": 158, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": "u", + "x": 179, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": "b", + "x": 200, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": "j", + "x": 222, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": "e", + "x": 243, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": "c", + "x": 264, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": "t", + "x": 286, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": ":", + "x": 307, + "y": 1868, + "w": 21, + "h": 45, + "conf": 88.0 + }, + { + "text": " ", + "x": 329, + "y": 1868, + "w": 20, + "h": 45, + "conf": 88.0 + }, + { + "text": "R", + "x": 349, + "y": 1869, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": "e", + "x": 369, + "y": 1869, + "w": 20, + "h": 34, + "conf": 91.0 + }, + { + "text": ":", + "x": 390, + "y": 1869, + "w": 20, + "h": 34, + "conf": 91.0 + } + ], + "x": 158, + "y": 1868, + "w": 252, + "h": 45, + "text": "Subject: Re:" + }, + { + "chars": [ + { + "text": "J", + "x": 156, + "y": 1981, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "E", + "x": 179, + "y": 1981, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 202, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 221, + "y": 1981, + "w": 14, + "h": 34, + "conf": 75.0 + }, + { + "text": "s", + "x": 235, + "y": 1981, + "w": 14, + "h": 34, + "conf": 75.0 + }, + { + "text": " ", + "x": 249, + "y": 1981, + "w": 16, + "h": 34, + "conf": 75.0 + }, + { + "text": "o", + "x": 265, + "y": 1993, + "w": 23, + "h": 22, + "conf": 88.0 + }, + { + "text": "n", + "x": 288, + "y": 1993, + "w": 23, + "h": 22, + "conf": 88.0 + }, + { + "text": " ", + "x": 312, + "y": 1993, + "w": 17, + "h": 22, + "conf": 88.0 + }, + { + "text": "t", + "x": 329, + "y": 1981, + "w": 18, + "h": 35, + "conf": 88.0 + }, + { + "text": "h", + "x": 347, + "y": 1981, + "w": 18, + "h": 35, + "conf": 88.0 + }, + { + "text": "e", + "x": 366, + "y": 1981, + "w": 18, + "h": 35, + "conf": 88.0 + }, + { + "text": " ", + "x": 385, + "y": 1981, + "w": 18, + "h": 35, + "conf": 88.0 + }, + { + "text": "i", + "x": 403, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 422, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "l", + "x": 441, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 460, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 479, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 498, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 518, + "y": 1981, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 533, + "y": 1981, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 556, + "y": 1981, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 579, + "y": 1981, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 602, + "y": 1981, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 618, + "y": 1981, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 639, + "y": 1981, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 660, + "y": 1981, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 681, + "y": 1981, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 698, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 717, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 736, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 755, + "y": 1981, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 772, + "y": 1987, + "w": 20, + "h": 29, + "conf": 91.0 + }, + { + "text": "u", + "x": 792, + "y": 1987, + "w": 20, + "h": 29, + "conf": 91.0 + }, + { + "text": "n", + "x": 813, + "y": 1987, + "w": 20, + "h": 29, + "conf": 91.0 + }, + { + "text": "a", + "x": 833, + "y": 1987, + "w": 20, + "h": 29, + "conf": 91.0 + }, + { + "text": " ", + "x": 854, + "y": 1987, + "w": 16, + "h": 29, + "conf": 91.0 + }, + { + "text": "w", + "x": 870, + "y": 1981, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "i", + "x": 891, + "y": 1981, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "t", + "x": 912, + "y": 1981, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "h", + "x": 933, + "y": 1981, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 955, + "y": 1981, + "w": 17, + "h": 34, + "conf": 92.0 + }, + { + "text": "h", + "x": 972, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 991, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "m", + "x": 1010, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": ".", + "x": 1029, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": ".", + "x": 1048, + "y": 1981, + "w": 19, + "h": 35, + "conf": 92.0 + } + ], + "x": 156, + "y": 1981, + "w": 911, + "h": 35, + "text": "JE is on the island and has the tuna with him.." + }, + { + "chars": [ + { + "text": "I", + "x": 159, + "y": 2037, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "f", + "x": 175, + "y": 2037, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 192, + "y": 2037, + "w": 11, + "h": 35, + "conf": 91.0 + }, + { + "text": "y", + "x": 203, + "y": 2049, + "w": 23, + "h": 33, + "conf": 91.0 + }, + { + "text": "o", + "x": 226, + "y": 2049, + "w": 23, + "h": 33, + "conf": 91.0 + }, + { + "text": "u", + "x": 250, + "y": 2049, + "w": 23, + "h": 33, + "conf": 91.0 + }, + { + "text": " ", + "x": 274, + "y": 2049, + "w": 16, + "h": 33, + "conf": 91.0 + }, + { + "text": "c", + "x": 290, + "y": 2049, + "w": 22, + "h": 23, + "conf": 92.0 + }, + { + "text": "a", + "x": 312, + "y": 2049, + "w": 22, + "h": 23, + "conf": 92.0 + }, + { + "text": "n", + "x": 334, + "y": 2049, + "w": 22, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 356, + "y": 2049, + "w": 18, + "h": 23, + "conf": 92.0 + }, + { + "text": "l", + "x": 374, + "y": 2037, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 389, + "y": 2037, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 404, + "y": 2037, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 419, + "y": 2037, + "w": 14, + "h": 35, + "conf": 92.0 + }, + { + "text": "]", + "x": 433, + "y": 2027, + "w": 61, + "h": 55, + "conf": 24.0 + }, + { + "text": "l", + "x": 494, + "y": 2027, + "w": 61, + "h": 55, + "conf": 24.0 + }, + { + "text": " ", + "x": 556, + "y": 2027, + "w": 13, + "h": 55, + "conf": 24.0 + }, + { + "text": "o", + "x": 569, + "y": 2049, + "w": 20, + "h": 23, + "conf": 92.0 + }, + { + "text": "r", + "x": 589, + "y": 2049, + "w": 20, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 610, + "y": 2049, + "w": 49, + "h": 23, + "conf": 92.0 + }, + { + "text": "]", + "x": 659, + "y": 2027, + "w": 30, + "h": 55, + "conf": 33.0 + }, + { + "text": " ", + "x": 689, + "y": 2027, + "w": 14, + "h": 55, + "conf": 33.0 + }, + { + "text": "k", + "x": 703, + "y": 2037, + "w": 26, + "h": 35, + "conf": 93.0 + }, + { + "text": "n", + "x": 729, + "y": 2037, + "w": 26, + "h": 35, + "conf": 93.0 + }, + { + "text": "o", + "x": 756, + "y": 2037, + "w": 26, + "h": 35, + "conf": 93.0 + }, + { + "text": "w", + "x": 782, + "y": 2037, + "w": 26, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 809, + "y": 2037, + "w": 18, + "h": 35, + "conf": 93.0 + }, + { + "text": "w", + "x": 827, + "y": 2037, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": "h", + "x": 850, + "y": 2037, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 873, + "y": 2037, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 896, + "y": 2037, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 920, + "y": 2037, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 937, + "y": 2043, + "w": 17, + "h": 29, + "conf": 93.0 + }, + { + "text": "o", + "x": 954, + "y": 2043, + "w": 17, + "h": 29, + "conf": 93.0 + }, + { + "text": " ", + "x": 972, + "y": 2043, + "w": 15, + "h": 29, + "conf": 93.0 + }, + { + "text": "d", + "x": 987, + "y": 2037, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 1010, + "y": 2037, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1034, + "y": 2037, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 1051, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": "i", + "x": 1072, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": "t", + "x": 1093, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": "h", + "x": 1114, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 1136, + "y": 2037, + "w": 16, + "h": 35, + "conf": 93.0 + }, + { + "text": "t", + "x": 1152, + "y": 2037, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1171, + "y": 2037, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1190, + "y": 2037, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1209, + "y": 2037, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1226, + "y": 2045, + "w": 20, + "h": 27, + "conf": 92.0 + }, + { + "text": "u", + "x": 1246, + "y": 2045, + "w": 20, + "h": 27, + "conf": 92.0 + }, + { + "text": "n", + "x": 1267, + "y": 2045, + "w": 20, + "h": 27, + "conf": 92.0 + }, + { + "text": "a", + "x": 1287, + "y": 2045, + "w": 20, + "h": 27, + "conf": 92.0 + }, + { + "text": " ", + "x": 1308, + "y": 2045, + "w": 16, + "h": 27, + "conf": 92.0 + }, + { + "text": "t", + "x": 1324, + "y": 2037, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1341, + "y": 2037, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 1359, + "y": 2037, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1377, + "y": 2037, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1395, + "y": 2037, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 1412, + "y": 2037, + "w": 24, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 1436, + "y": 2037, + "w": 24, + "h": 35, + "conf": 92.0 + }, + { + "text": "u", + "x": 1460, + "y": 2037, + "w": 24, + "h": 35, + "conf": 92.0 + }, + { + "text": "l", + "x": 1484, + "y": 2037, + "w": 24, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 1508, + "y": 2037, + "w": 24, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1533, + "y": 2037, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "b", + "x": 1549, + "y": 2037, + "w": 22, + "h": 35, + "conf": 93.0 + }, + { + "text": "e", + "x": 1571, + "y": 2037, + "w": 22, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 1593, + "y": 2037, + "w": 16, + "h": 35, + "conf": 93.0 + }, + { + "text": "g", + "x": 1609, + "y": 2044, + "w": 17, + "h": 38, + "conf": 92.0 + }, + { + "text": "r", + "x": 1626, + "y": 2044, + "w": 17, + "h": 38, + "conf": 92.0 + }, + { + "text": "e", + "x": 1644, + "y": 2044, + "w": 17, + "h": 38, + "conf": 92.0 + }, + { + "text": "a", + "x": 1662, + "y": 2044, + "w": 17, + "h": 38, + "conf": 92.0 + }, + { + "text": "t", + "x": 1679, + "y": 2044, + "w": 17, + "h": 38, + "conf": 92.0 + }, + { + "text": ".", + "x": 1697, + "y": 2044, + "w": 17, + "h": 38, + "conf": 92.0 + }, + { + "text": " ", + "x": 1715, + "y": 2044, + "w": 16, + "h": 38, + "conf": 92.0 + }, + { + "text": "i", + "x": 1731, + "y": 2027, + "w": 55, + "h": 55, + "conf": 3.0 + }, + { + "text": "}", + "x": 1786, + "y": 2027, + "w": 55, + "h": 55, + "conf": 3.0 + }, + { + "text": " ", + "x": 1841, + "y": 2027, + "w": 15, + "h": 55, + "conf": 3.0 + }, + { + "text": "i", + "x": 1856, + "y": 2037, + "w": 14, + "h": 35, + "conf": 93.0 + }, + { + "text": "s", + "x": 1870, + "y": 2037, + "w": 14, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 1884, + "y": 2037, + "w": 17, + "h": 35, + "conf": 93.0 + }, + { + "text": "s", + "x": 1901, + "y": 2037, + "w": 14, + "h": 35, + "conf": 89.0 + }, + { + "text": "t", + "x": 1915, + "y": 2037, + "w": 14, + "h": 35, + "conf": 89.0 + }, + { + "text": "i", + "x": 1929, + "y": 2037, + "w": 14, + "h": 35, + "conf": 89.0 + }, + { + "text": "l", + "x": 1943, + "y": 2037, + "w": 14, + "h": 35, + "conf": 89.0 + }, + { + "text": "l", + "x": 1957, + "y": 2037, + "w": 14, + "h": 35, + "conf": 89.0 + }, + { + "text": " ", + "x": 1971, + "y": 2037, + "w": 17, + "h": 35, + "conf": 89.0 + }, + { + "text": "o", + "x": 1988, + "y": 2049, + "w": 23, + "h": 23, + "conf": 91.0 + }, + { + "text": "n", + "x": 2011, + "y": 2049, + "w": 23, + "h": 23, + "conf": 91.0 + }, + { + "text": " ", + "x": 2035, + "y": 2049, + "w": 17, + "h": 23, + "conf": 91.0 + }, + { + "text": "t", + "x": 2052, + "y": 2037, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 2071, + "y": 2037, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 2090, + "y": 2037, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 2109, + "y": 2037, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "r", + "x": 2124, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": "a", + "x": 2145, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": "n", + "x": 2166, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": "c", + "x": 2188, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + }, + { + "text": "h", + "x": 2209, + "y": 2037, + "w": 21, + "h": 35, + "conf": 93.0 + } + ], + "x": 159, + "y": 2027, + "w": 2071, + "h": 55, + "text": "If you can let ]l or ] know what to do with the tuna that would be great. i} is still on the ranch" + }, + { + "chars": [ + { + "text": "O", + "x": 157, + "y": 2094, + "w": 28, + "h": 34, + "conf": 89.0 + }, + { + "text": "n", + "x": 185, + "y": 2094, + "w": 28, + "h": 34, + "conf": 89.0 + }, + { + "text": " ", + "x": 214, + "y": 2094, + "w": 14, + "h": 34, + "conf": 89.0 + }, + { + "text": "A", + "x": 228, + "y": 2094, + "w": 27, + "h": 44, + "conf": 89.0 + }, + { + "text": "u", + "x": 255, + "y": 2094, + "w": 27, + "h": 44, + "conf": 89.0 + }, + { + "text": "g", + "x": 283, + "y": 2094, + "w": 27, + "h": 44, + "conf": 89.0 + }, + { + "text": " ", + "x": 311, + "y": 2094, + "w": 16, + "h": 44, + "conf": 89.0 + }, + { + "text": "2", + "x": 327, + "y": 2094, + "w": 19, + "h": 35, + "conf": 82.0 + }, + { + "text": "7", + "x": 346, + "y": 2094, + "w": 19, + "h": 35, + "conf": 82.0 + }, + { + "text": ",", + "x": 365, + "y": 2094, + "w": 19, + "h": 35, + "conf": 82.0 + }, + { + "text": " ", + "x": 384, + "y": 2094, + "w": 18, + "h": 35, + "conf": 82.0 + }, + { + "text": "2", + "x": 402, + "y": 2094, + "w": 21, + "h": 35, + "conf": 82.0 + }, + { + "text": "0", + "x": 423, + "y": 2094, + "w": 21, + "h": 35, + "conf": 82.0 + }, + { + "text": "1", + "x": 445, + "y": 2094, + "w": 21, + "h": 35, + "conf": 82.0 + }, + { + "text": "2", + "x": 466, + "y": 2094, + "w": 21, + "h": 35, + "conf": 82.0 + }, + { + "text": ",", + "x": 488, + "y": 2094, + "w": 21, + "h": 35, + "conf": 82.0 + }, + { + "text": " ", + "x": 510, + "y": 2094, + "w": 17, + "h": 35, + "conf": 82.0 + }, + { + "text": "a", + "x": 527, + "y": 2100, + "w": 16, + "h": 28, + "conf": 92.0 + }, + { + "text": "t", + "x": 543, + "y": 2100, + "w": 16, + "h": 28, + "conf": 92.0 + }, + { + "text": " ", + "x": 559, + "y": 2100, + "w": 23, + "h": 28, + "conf": 92.0 + }, + { + "text": "1", + "x": 582, + "y": 2094, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "2", + "x": 602, + "y": 2094, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": ":", + "x": 622, + "y": 2094, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "5", + "x": 643, + "y": 2094, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "2", + "x": 663, + "y": 2094, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 684, + "y": 2094, + "w": 20, + "h": 34, + "conf": 90.0 + }, + { + "text": "P", + "x": 704, + "y": 2094, + "w": 26, + "h": 35, + "conf": 80.0 + }, + { + "text": "M", + "x": 730, + "y": 2094, + "w": 26, + "h": 35, + "conf": 80.0 + }, + { + "text": ",", + "x": 756, + "y": 2094, + "w": 26, + "h": 35, + "conf": 80.0 + }, + { + "text": " ", + "x": 782, + "y": 2094, + "w": 15, + "h": 35, + "conf": 80.0 + }, + { + "text": "[", + "x": 797, + "y": 2079, + "w": 23, + "h": 65, + "conf": 47.0 + }, + { + "text": "G", + "x": 796, + "y": 2083, + "w": 405, + "h": 57, + "conf": 45.0 + }, + { + "text": " ", + "x": 1201, + "y": 2083, + "w": 14, + "h": 57, + "conf": 45.0 + }, + { + "text": "o", + "x": 1215, + "y": 2100, + "w": 61, + "h": 28, + "conf": 12.0 + }, + { + "text": "t", + "x": 1276, + "y": 2100, + "w": 61, + "h": 28, + "conf": 12.0 + } + ], + "x": 157, + "y": 2079, + "w": 1180, + "h": 65, + "text": "On Aug 27, 2012, at 12:52 PM, [G ot" + }, + { + "chars": [ + { + "text": "S", + "x": 174, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": "o", + "x": 193, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": "r", + "x": 212, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": "r", + "x": 231, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": "y", + "x": 250, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": ".", + "x": 269, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": ".", + "x": 288, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": ".", + "x": 307, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": "o", + "x": 326, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": "n", + "x": 345, + "y": 2256, + "w": 19, + "h": 45, + "conf": 87.0 + }, + { + "text": " ", + "x": 365, + "y": 2256, + "w": 16, + "h": 45, + "conf": 87.0 + }, + { + "text": "s", + "x": 381, + "y": 2256, + "w": 22, + "h": 35, + "conf": 90.0 + }, + { + "text": "e", + "x": 403, + "y": 2256, + "w": 22, + "h": 35, + "conf": 90.0 + }, + { + "text": "c", + "x": 426, + "y": 2256, + "w": 22, + "h": 35, + "conf": 90.0 + }, + { + "text": "o", + "x": 448, + "y": 2256, + "w": 22, + "h": 35, + "conf": 90.0 + }, + { + "text": "n", + "x": 471, + "y": 2256, + "w": 22, + "h": 35, + "conf": 90.0 + }, + { + "text": "d", + "x": 493, + "y": 2256, + "w": 22, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 516, + "y": 2256, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "t", + "x": 533, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "h", + "x": 552, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "o", + "x": 572, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "u", + "x": 592, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "g", + "x": 612, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "h", + "x": 632, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "t", + "x": 652, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": ".", + "x": 672, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 692, + "y": 2256, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "I", + "x": 711, + "y": 2256, + "w": 13, + "h": 34, + "conf": 42.0 + }, + { + "text": "1", + "x": 724, + "y": 2256, + "w": 13, + "h": 34, + "conf": 42.0 + }, + { + "text": "I", + "x": 737, + "y": 2256, + "w": 13, + "h": 34, + "conf": 42.0 + }, + { + "text": " ", + "x": 750, + "y": 2256, + "w": 17, + "h": 34, + "conf": 42.0 + }, + { + "text": "b", + "x": 767, + "y": 2256, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 788, + "y": 2256, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 810, + "y": 2256, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 828, + "y": 2256, + "w": 17, + "h": 34, + "conf": 92.0 + }, + { + "text": "n", + "x": 845, + "y": 2256, + "w": 17, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 862, + "y": 2256, + "w": 16, + "h": 34, + "conf": 92.0 + }, + { + "text": "t", + "x": 878, + "y": 2263, + "w": 25, + "h": 27, + "conf": 89.0 + }, + { + "text": "m", + "x": 903, + "y": 2263, + "w": 25, + "h": 27, + "conf": 89.0 + }, + { + "text": "r", + "x": 929, + "y": 2263, + "w": 25, + "h": 27, + "conf": 89.0 + }, + { + "text": "w", + "x": 954, + "y": 2263, + "w": 25, + "h": 27, + "conf": 89.0 + }, + { + "text": " ", + "x": 980, + "y": 2263, + "w": 17, + "h": 27, + "conf": 89.0 + }, + { + "text": "t", + "x": 997, + "y": 2263, + "w": 17, + "h": 27, + "conf": 89.0 + }, + { + "text": "o", + "x": 1014, + "y": 2263, + "w": 17, + "h": 27, + "conf": 89.0 + }, + { + "text": " ", + "x": 1031, + "y": 2263, + "w": 17, + "h": 27, + "conf": 89.0 + }, + { + "text": "m", + "x": 1048, + "y": 2256, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 1074, + "y": 2256, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": "k", + "x": 1100, + "y": 2256, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 1126, + "y": 2256, + "w": 26, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 1153, + "y": 2256, + "w": 10, + "h": 35, + "conf": 91.0 + }, + { + "text": "j", + "x": 1163, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 1184, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "r", + "x": 1205, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "k", + "x": 1226, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "y", + "x": 1247, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 1268, + "y": 2256, + "w": 16, + "h": 45, + "conf": 91.0 + }, + { + "text": "h", + "x": 1284, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "a", + "x": 1305, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "p", + "x": 1327, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "p", + "x": 1348, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 1370, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "n", + "x": 1391, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": ".", + "x": 1413, + "y": 2256, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 1435, + "y": 2256, + "w": 16, + "h": 45, + "conf": 91.0 + }, + { + "text": "A", + "x": 1451, + "y": 2256, + "w": 27, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 1478, + "y": 2256, + "w": 27, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 1505, + "y": 2256, + "w": 27, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1533, + "y": 2256, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "p", + "x": 1549, + "y": 2267, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": "r", + "x": 1569, + "y": 2267, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": "e", + "x": 1590, + "y": 2267, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": "p", + "x": 1611, + "y": 2267, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": "a", + "x": 1632, + "y": 2267, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": "r", + "x": 1653, + "y": 2267, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": "e", + "x": 1674, + "y": 2267, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 1695, + "y": 2267, + "w": 17, + "h": 34, + "conf": 92.0 + }, + { + "text": "w", + "x": 1712, + "y": 2256, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1733, + "y": 2256, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1754, + "y": 2256, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1776, + "y": 2256, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1797, + "y": 2256, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1819, + "y": 2256, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1836, + "y": 2264, + "w": 18, + "h": 27, + "conf": 91.0 + }, + { + "text": "u", + "x": 1854, + "y": 2264, + "w": 18, + "h": 27, + "conf": 91.0 + }, + { + "text": "n", + "x": 1872, + "y": 2264, + "w": 18, + "h": 27, + "conf": 91.0 + }, + { + "text": "a", + "x": 1891, + "y": 2264, + "w": 18, + "h": 27, + "conf": 91.0 + }, + { + "text": ".", + "x": 1909, + "y": 2264, + "w": 18, + "h": 27, + "conf": 91.0 + } + ], + "x": 174, + "y": 2256, + "w": 1753, + "h": 45, + "text": "Sorry...on second thought. I1I be in tmrw to make jerky happen. And prepare white tuna." + }, + { + "chars": [ + { + "text": "S", + "x": 174, + "y": 2369, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "e", + "x": 195, + "y": 2369, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "n", + "x": 216, + "y": 2369, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "t", + "x": 237, + "y": 2369, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 258, + "y": 2369, + "w": 18, + "h": 34, + "conf": 92.0 + }, + { + "text": "f", + "x": 276, + "y": 2368, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 298, + "y": 2368, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 321, + "y": 2368, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 344, + "y": 2368, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 367, + "y": 2368, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 384, + "y": 2380, + "w": 30, + "h": 34, + "conf": 91.0 + }, + { + "text": "y", + "x": 414, + "y": 2380, + "w": 30, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 444, + "y": 2380, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": "V", + "x": 461, + "y": 2368, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 482, + "y": 2368, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 503, + "y": 2368, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 525, + "y": 2368, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "z", + "x": 546, + "y": 2368, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 568, + "y": 2368, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 589, + "y": 2368, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 611, + "y": 2368, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "W", + "x": 628, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 649, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "r", + "x": 670, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 691, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "l", + "x": 712, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 733, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 754, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 775, + "y": 2368, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 796, + "y": 2368, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": "B", + "x": 814, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "l", + "x": 836, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "a", + "x": 859, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "c", + "x": 881, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "k", + "x": 904, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "B", + "x": 926, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "e", + "x": 949, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "r", + "x": 971, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "r", + "x": 994, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + }, + { + "text": "y", + "x": 1016, + "y": 2368, + "w": 22, + "h": 45, + "conf": 90.0 + } + ], + "x": 174, + "y": 2368, + "w": 864, + "h": 46, + "text": "Sent from my Verizon Wireless BlackBerry" + }, + { + "chars": [ + { + "text": "F", + "x": 174, + "y": 2482, + "w": 25, + "h": 34, + "conf": 90.0 + }, + { + "text": "r", + "x": 199, + "y": 2482, + "w": 25, + "h": 34, + "conf": 90.0 + }, + { + "text": "o", + "x": 225, + "y": 2482, + "w": 25, + "h": 34, + "conf": 90.0 + }, + { + "text": "m", + "x": 250, + "y": 2482, + "w": 25, + "h": 34, + "conf": 90.0 + }, + { + "text": ":", + "x": 276, + "y": 2482, + "w": 25, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 302, + "y": 2482, + "w": 16, + "h": 34, + "conf": 90.0 + }, + { + "text": "|", + "x": 318, + "y": 2471, + "w": 404, + "h": 56, + "conf": 43.0 + } + ], + "x": 174, + "y": 2471, + "w": 548, + "h": 56, + "text": "From: |" + }, + { + "chars": [ + { + "text": "D", + "x": 174, + "y": 2538, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "a", + "x": 195, + "y": 2538, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "t", + "x": 217, + "y": 2538, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "e", + "x": 239, + "y": 2538, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": ":", + "x": 261, + "y": 2538, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 283, + "y": 2538, + "w": 21, + "h": 34, + "conf": 91.0 + }, + { + "text": "M", + "x": 304, + "y": 2538, + "w": 25, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 329, + "y": 2538, + "w": 25, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 354, + "y": 2538, + "w": 25, + "h": 36, + "conf": 91.0 + }, + { + "text": ",", + "x": 379, + "y": 2538, + "w": 25, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 405, + "y": 2538, + "w": 16, + "h": 36, + "conf": 91.0 + }, + { + "text": "2", + "x": 421, + "y": 2537, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": "7", + "x": 444, + "y": 2537, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 467, + "y": 2537, + "w": 15, + "h": 35, + "conf": 93.0 + }, + { + "text": "A", + "x": 482, + "y": 2538, + "w": 27, + "h": 44, + "conf": 92.0 + }, + { + "text": "u", + "x": 509, + "y": 2538, + "w": 27, + "h": 44, + "conf": 92.0 + }, + { + "text": "g", + "x": 536, + "y": 2538, + "w": 27, + "h": 44, + "conf": 92.0 + }, + { + "text": " ", + "x": 564, + "y": 2538, + "w": 16, + "h": 44, + "conf": 92.0 + }, + { + "text": "2", + "x": 580, + "y": 2537, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": "0", + "x": 603, + "y": 2537, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": "1", + "x": 627, + "y": 2537, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": "2", + "x": 650, + "y": 2537, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 674, + "y": 2537, + "w": 25, + "h": 35, + "conf": 93.0 + }, + { + "text": "1", + "x": 699, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "6", + "x": 719, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": ":", + "x": 740, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "4", + "x": 761, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "0", + "x": 782, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": ":", + "x": 803, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "1", + "x": 824, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "4", + "x": 845, + "y": 2537, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 866, + "y": 2537, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "+", + "x": 882, + "y": 2538, + "w": 25, + "h": 33, + "conf": 90.0 + }, + { + "text": "0", + "x": 907, + "y": 2538, + "w": 25, + "h": 33, + "conf": 90.0 + }, + { + "text": "0", + "x": 932, + "y": 2538, + "w": 25, + "h": 33, + "conf": 90.0 + }, + { + "text": "0", + "x": 957, + "y": 2538, + "w": 25, + "h": 33, + "conf": 90.0 + }, + { + "text": "0", + "x": 982, + "y": 2538, + "w": 25, + "h": 33, + "conf": 90.0 + } + ], + "x": 174, + "y": 2537, + "w": 833, + "h": 45, + "text": "Date: Mon, 27 Aug 2012 16:40:14 +0000" + }, + { + "chars": [ + { + "text": "T", + "x": 172, + "y": 2594, + "w": 21, + "h": 34, + "conf": 87.0 + }, + { + "text": "o", + "x": 193, + "y": 2594, + "w": 21, + "h": 34, + "conf": 87.0 + }, + { + "text": ":", + "x": 215, + "y": 2594, + "w": 21, + "h": 34, + "conf": 87.0 + }, + { + "text": " ", + "x": 237, + "y": 2594, + "w": 18, + "h": 34, + "conf": 87.0 + }, + { + "text": "J", + "x": 255, + "y": 2593, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "e", + "x": 274, + "y": 2593, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "f", + "x": 293, + "y": 2593, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "f", + "x": 312, + "y": 2593, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "r", + "x": 332, + "y": 2593, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "e", + "x": 351, + "y": 2593, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "y", + "x": 370, + "y": 2593, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": " ", + "x": 390, + "y": 2593, + "w": 18, + "h": 46, + "conf": 91.0 + }, + { + "text": "E", + "x": 408, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "p", + "x": 430, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "s", + "x": 452, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "t", + "x": 474, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "e", + "x": 496, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "i", + "x": 518, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "n", + "x": 541, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "<", + "x": 563, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "j", + "x": 585, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "e", + "x": 607, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "e", + "x": 629, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "v", + "x": 652, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "a", + "x": 674, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "c", + "x": 696, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "a", + "x": 718, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "t", + "x": 740, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "i", + "x": 763, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "o", + "x": 785, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "n", + "x": 807, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "(", + "x": 829, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "@", + "x": 851, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "g", + "x": 874, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "m", + "x": 896, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "a", + "x": 918, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "i", + "x": 940, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "l", + "x": 962, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": ".", + "x": 985, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "c", + "x": 1007, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "o", + "x": 1029, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": "m", + "x": 1051, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + }, + { + "text": ">", + "x": 1073, + "y": 2593, + "w": 22, + "h": 45, + "conf": 47.0 + } + ], + "x": 172, + "y": 2593, + "w": 923, + "h": 46, + "text": "To: Jeffrey Epstein" + }, + { + "chars": [ + { + "text": "R", + "x": 174, + "y": 2650, + "w": 23, + "h": 45, + "conf": 68.0 + }, + { + "text": "e", + "x": 197, + "y": 2650, + "w": 23, + "h": 45, + "conf": 68.0 + }, + { + "text": "p", + "x": 221, + "y": 2650, + "w": 23, + "h": 45, + "conf": 68.0 + }, + { + "text": "l", + "x": 245, + "y": 2650, + "w": 23, + "h": 45, + "conf": 68.0 + }, + { + "text": "y", + "x": 269, + "y": 2650, + "w": 23, + "h": 45, + "conf": 68.0 + }, + { + "text": " ", + "x": 293, + "y": 2650, + "w": 12, + "h": 45, + "conf": 68.0 + }, + { + "text": "T", + "x": 305, + "y": 2650, + "w": 19, + "h": 35, + "conf": 64.0 + }, + { + "text": "o", + "x": 324, + "y": 2650, + "w": 19, + "h": 35, + "conf": 64.0 + }, + { + "text": ":", + "x": 343, + "y": 2650, + "w": 19, + "h": 35, + "conf": 64.0 + }, + { + "text": " ", + "x": 362, + "y": 2650, + "w": 16, + "h": 35, + "conf": 64.0 + }, + { + "text": "[", + "x": 378, + "y": 2605, + "w": 202, + "h": 91, + "conf": 35.0 + }, + { + "text": "N", + "x": 580, + "y": 2605, + "w": 202, + "h": 91, + "conf": 35.0 + } + ], + "x": 174, + "y": 2605, + "w": 608, + "h": 91, + "text": "Reply To: [N" + }, + { + "chars": [ + { + "text": "S", + "x": 173, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "u", + "x": 194, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "b", + "x": 215, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "j", + "x": 237, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 258, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "c", + "x": 279, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "t", + "x": 301, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": ":", + "x": 322, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 344, + "y": 2706, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "R", + "x": 365, + "y": 2707, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": "e", + "x": 385, + "y": 2707, + "w": 20, + "h": 34, + "conf": 92.0 + }, + { + "text": ":", + "x": 406, + "y": 2707, + "w": 20, + "h": 34, + "conf": 92.0 + } + ], + "x": 173, + "y": 2706, + "w": 253, + "h": 45, + "text": "Subject: Re:" + }, + { + "chars": [ + { + "text": "J", + "x": 172, + "y": 2819, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "e", + "x": 193, + "y": 2819, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "r", + "x": 214, + "y": 2819, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "k", + "x": 235, + "y": 2819, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": "y", + "x": 256, + "y": 2819, + "w": 21, + "h": 45, + "conf": 92.0 + }, + { + "text": " ", + "x": 278, + "y": 2819, + "w": 16, + "h": 45, + "conf": 92.0 + }, + { + "text": "w", + "x": 294, + "y": 2818, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 312, + "y": 2818, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "l", + "x": 330, + "y": 2818, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "l", + "x": 348, + "y": 2818, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 366, + "y": 2818, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "b", + "x": 384, + "y": 2818, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 405, + "y": 2818, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 427, + "y": 2818, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 444, + "y": 2818, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 465, + "y": 2818, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 486, + "y": 2818, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "h", + "x": 507, + "y": 2818, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 528, + "y": 2818, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 545, + "y": 2830, + "w": 28, + "h": 23, + "conf": 91.0 + }, + { + "text": "e", + "x": 573, + "y": 2830, + "w": 28, + "h": 23, + "conf": 91.0 + }, + { + "text": " ", + "x": 602, + "y": 2830, + "w": 17, + "h": 23, + "conf": 91.0 + }, + { + "text": "w", + "x": 619, + "y": 2818, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 645, + "y": 2818, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 671, + "y": 2818, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 697, + "y": 2818, + "w": 26, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 723, + "y": 2818, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "I", + "x": 742, + "y": 2819, + "w": 8, + "h": 34, + "conf": 90.0 + }, + { + "text": " ", + "x": 750, + "y": 2819, + "w": 19, + "h": 34, + "conf": 90.0 + }, + { + "text": "g", + "x": 769, + "y": 2827, + "w": 19, + "h": 37, + "conf": 92.0 + }, + { + "text": "e", + "x": 788, + "y": 2827, + "w": 19, + "h": 37, + "conf": 92.0 + }, + { + "text": "t", + "x": 807, + "y": 2827, + "w": 19, + "h": 37, + "conf": 92.0 + }, + { + "text": " ", + "x": 826, + "y": 2827, + "w": 17, + "h": 37, + "conf": 92.0 + }, + { + "text": "t", + "x": 843, + "y": 2825, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": "o", + "x": 860, + "y": 2825, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": " ", + "x": 878, + "y": 2825, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": "L", + "x": 895, + "y": 2819, + "w": 20, + "h": 34, + "conf": 30.0 + }, + { + "text": "S", + "x": 915, + "y": 2819, + "w": 20, + "h": 34, + "conf": 30.0 + }, + { + "text": "J", + "x": 936, + "y": 2819, + "w": 20, + "h": 34, + "conf": 30.0 + }, + { + "text": ".", + "x": 957, + "y": 2819, + "w": 20, + "h": 34, + "conf": 30.0 + } + ], + "x": 172, + "y": 2818, + "w": 805, + "h": 46, + "text": "Jerky will be with me when I get to LSJ." + }, + { + "chars": [ + { + "text": "[", + "x": 175, + "y": 2932, + "w": 9, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 184, + "y": 2932, + "w": 18, + "h": 34, + "conf": 92.0 + }, + { + "text": "c", + "x": 202, + "y": 2943, + "w": 22, + "h": 23, + "conf": 92.0 + }, + { + "text": "a", + "x": 224, + "y": 2943, + "w": 22, + "h": 23, + "conf": 92.0 + }, + { + "text": "n", + "x": 246, + "y": 2943, + "w": 22, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 268, + "y": 2943, + "w": 15, + "h": 23, + "conf": 92.0 + }, + { + "text": "c", + "x": 283, + "y": 2943, + "w": 26, + "h": 23, + "conf": 90.0 + }, + { + "text": "o", + "x": 309, + "y": 2943, + "w": 26, + "h": 23, + "conf": 90.0 + }, + { + "text": "m", + "x": 335, + "y": 2943, + "w": 26, + "h": 23, + "conf": 90.0 + }, + { + "text": "e", + "x": 361, + "y": 2943, + "w": 26, + "h": 23, + "conf": 90.0 + }, + { + "text": " ", + "x": 388, + "y": 2943, + "w": 17, + "h": 23, + "conf": 90.0 + }, + { + "text": "t", + "x": 405, + "y": 2938, + "w": 25, + "h": 28, + "conf": 92.0 + }, + { + "text": "m", + "x": 430, + "y": 2938, + "w": 25, + "h": 28, + "conf": 92.0 + }, + { + "text": "r", + "x": 455, + "y": 2938, + "w": 25, + "h": 28, + "conf": 92.0 + }, + { + "text": "w", + "x": 480, + "y": 2938, + "w": 25, + "h": 28, + "conf": 92.0 + }, + { + "text": " ", + "x": 506, + "y": 2938, + "w": 17, + "h": 28, + "conf": 92.0 + }, + { + "text": "a", + "x": 523, + "y": 2931, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 545, + "y": 2931, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "d", + "x": 568, + "y": 2931, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 591, + "y": 2931, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 608, + "y": 2931, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "a", + "x": 627, + "y": 2931, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "k", + "x": 647, + "y": 2931, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": "e", + "x": 667, + "y": 2931, + "w": 19, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 687, + "y": 2931, + "w": 16, + "h": 35, + "conf": 90.0 + }, + { + "text": "c", + "x": 703, + "y": 2943, + "w": 20, + "h": 23, + "conf": 92.0 + }, + { + "text": "a", + "x": 723, + "y": 2943, + "w": 20, + "h": 23, + "conf": 92.0 + }, + { + "text": "r", + "x": 743, + "y": 2943, + "w": 20, + "h": 23, + "conf": 92.0 + }, + { + "text": "e", + "x": 763, + "y": 2943, + "w": 20, + "h": 23, + "conf": 92.0 + }, + { + "text": " ", + "x": 783, + "y": 2943, + "w": 16, + "h": 23, + "conf": 92.0 + }, + { + "text": "o", + "x": 799, + "y": 2931, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "f", + "x": 821, + "y": 2931, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 843, + "y": 2931, + "w": 11, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 854, + "y": 2931, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "h", + "x": 875, + "y": 2931, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 896, + "y": 2931, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 918, + "y": 2931, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 939, + "y": 2931, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 961, + "y": 2931, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 977, + "y": 2938, + "w": 20, + "h": 28, + "conf": 91.0 + }, + { + "text": "u", + "x": 997, + "y": 2938, + "w": 20, + "h": 28, + "conf": 91.0 + }, + { + "text": "n", + "x": 1018, + "y": 2938, + "w": 20, + "h": 28, + "conf": 91.0 + }, + { + "text": "a", + "x": 1039, + "y": 2938, + "w": 20, + "h": 28, + "conf": 91.0 + }, + { + "text": " ", + "x": 1060, + "y": 2938, + "w": 17, + "h": 28, + "conf": 91.0 + }, + { + "text": "i", + "x": 1077, + "y": 2931, + "w": 13, + "h": 35, + "conf": 88.0 + }, + { + "text": "f", + "x": 1090, + "y": 2931, + "w": 13, + "h": 35, + "conf": 88.0 + }, + { + "text": " ", + "x": 1103, + "y": 2931, + "w": 15, + "h": 35, + "conf": 88.0 + }, + { + "text": "y", + "x": 1118, + "y": 2931, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "o", + "x": 1139, + "y": 2931, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "u", + "x": 1160, + "y": 2931, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "'", + "x": 1181, + "y": 2931, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": "d", + "x": 1202, + "y": 2931, + "w": 21, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 1224, + "y": 2931, + "w": 18, + "h": 45, + "conf": 91.0 + }, + { + "text": "l", + "x": 1242, + "y": 2931, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 1258, + "y": 2931, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "k", + "x": 1274, + "y": 2931, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 1290, + "y": 2931, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": ".", + "x": 1306, + "y": 2931, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 1322, + "y": 2931, + "w": 20, + "h": 35, + "conf": 91.0 + }, + { + "text": "I", + "x": 1342, + "y": 2932, + "w": 19, + "h": 34, + "conf": 92.0 + }, + { + "text": "'", + "x": 1361, + "y": 2932, + "w": 19, + "h": 34, + "conf": 92.0 + }, + { + "text": "m", + "x": 1381, + "y": 2932, + "w": 19, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 1401, + "y": 2932, + "w": 16, + "h": 34, + "conf": 92.0 + }, + { + "text": "d", + "x": 1417, + "y": 2931, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "u", + "x": 1440, + "y": 2931, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1463, + "y": 2931, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1486, + "y": 2931, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "b", + "x": 1502, + "y": 2931, + "w": 22, + "h": 35, + "conf": 89.0 + }, + { + "text": "a", + "x": 1524, + "y": 2931, + "w": 22, + "h": 35, + "conf": 89.0 + }, + { + "text": "c", + "x": 1547, + "y": 2931, + "w": 22, + "h": 35, + "conf": 89.0 + }, + { + "text": "k", + "x": 1570, + "y": 2931, + "w": 22, + "h": 35, + "conf": 89.0 + }, + { + "text": " ", + "x": 1593, + "y": 2931, + "w": 18, + "h": 35, + "conf": 89.0 + }, + { + "text": "i", + "x": 1611, + "y": 2931, + "w": 16, + "h": 35, + "conf": 89.0 + }, + { + "text": "n", + "x": 1627, + "y": 2931, + "w": 16, + "h": 35, + "conf": 89.0 + }, + { + "text": " ", + "x": 1644, + "y": 2931, + "w": 16, + "h": 35, + "conf": 89.0 + }, + { + "text": "N", + "x": 1660, + "y": 2932, + "w": 34, + "h": 34, + "conf": 91.0 + }, + { + "text": "Y", + "x": 1694, + "y": 2932, + "w": 34, + "h": 34, + "conf": 91.0 + }, + { + "text": "C", + "x": 1728, + "y": 2932, + "w": 34, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 1762, + "y": 2932, + "w": 17, + "h": 34, + "conf": 91.0 + }, + { + "text": "b", + "x": 1779, + "y": 2931, + "w": 23, + "h": 45, + "conf": 93.0 + }, + { + "text": "y", + "x": 1802, + "y": 2931, + "w": 23, + "h": 45, + "conf": 93.0 + }, + { + "text": " ", + "x": 1825, + "y": 2931, + "w": 17, + "h": 45, + "conf": 93.0 + }, + { + "text": "t", + "x": 1842, + "y": 2931, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1858, + "y": 2931, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1875, + "y": 2931, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 1892, + "y": 2931, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1909, + "y": 2931, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 1925, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + }, + { + "text": "v", + "x": 1945, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + }, + { + "text": "e", + "x": 1966, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + }, + { + "text": "n", + "x": 1987, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + }, + { + "text": "i", + "x": 2008, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + }, + { + "text": "n", + "x": 2028, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + }, + { + "text": "g", + "x": 2049, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + }, + { + "text": ".", + "x": 2070, + "y": 2931, + "w": 20, + "h": 45, + "conf": 89.0 + } + ], + "x": 175, + "y": 2931, + "w": 1915, + "h": 45, + "text": "[ can come tmrw and take care of white tuna if you'd like. I'm due back in NYC by this evening." + }, + { + "chars": [ + { + "text": "S", + "x": 174, + "y": 2988, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "e", + "x": 195, + "y": 2988, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "n", + "x": 216, + "y": 2988, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": "t", + "x": 237, + "y": 2988, + "w": 21, + "h": 34, + "conf": 92.0 + }, + { + "text": " ", + "x": 258, + "y": 2988, + "w": 18, + "h": 34, + "conf": 92.0 + }, + { + "text": "f", + "x": 276, + "y": 2987, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 298, + "y": 2987, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 321, + "y": 2987, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 344, + "y": 2987, + "w": 22, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 367, + "y": 2987, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 384, + "y": 2999, + "w": 30, + "h": 33, + "conf": 91.0 + }, + { + "text": "y", + "x": 414, + "y": 2999, + "w": 30, + "h": 33, + "conf": 91.0 + }, + { + "text": " ", + "x": 444, + "y": 2999, + "w": 17, + "h": 33, + "conf": 91.0 + }, + { + "text": "V", + "x": 461, + "y": 2987, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 482, + "y": 2987, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "r", + "x": 503, + "y": 2987, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 525, + "y": 2987, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "z", + "x": 546, + "y": 2987, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 568, + "y": 2987, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 589, + "y": 2987, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 611, + "y": 2987, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "W", + "x": 628, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 649, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 670, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 691, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "l", + "x": 712, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 733, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 754, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "s", + "x": 775, + "y": 2987, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 796, + "y": 2987, + "w": 18, + "h": 35, + "conf": 91.0 + }, + { + "text": "B", + "x": 814, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "l", + "x": 836, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "a", + "x": 859, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "c", + "x": 881, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "k", + "x": 904, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "B", + "x": 926, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "e", + "x": 949, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "r", + "x": 971, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "r", + "x": 994, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + }, + { + "text": "y", + "x": 1016, + "y": 2987, + "w": 22, + "h": 45, + "conf": 87.0 + } + ], + "x": 174, + "y": 2987, + "w": 864, + "h": 45, + "text": "Sent from my Verizon Wireless BlackBerry" + }, + { + "chars": [ + { + "text": "F", + "x": 174, + "y": 3101, + "w": 25, + "h": 34, + "conf": 91.0 + }, + { + "text": "r", + "x": 199, + "y": 3101, + "w": 25, + "h": 34, + "conf": 91.0 + }, + { + "text": "o", + "x": 225, + "y": 3101, + "w": 25, + "h": 34, + "conf": 91.0 + }, + { + "text": "m", + "x": 250, + "y": 3101, + "w": 25, + "h": 34, + "conf": 91.0 + }, + { + "text": ":", + "x": 276, + "y": 3101, + "w": 25, + "h": 34, + "conf": 91.0 + }, + { + "text": " ", + "x": 302, + "y": 3101, + "w": 18, + "h": 34, + "conf": 91.0 + }, + { + "text": "J", + "x": 320, + "y": 3100, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 339, + "y": 3100, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "f", + "x": 358, + "y": 3100, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "f", + "x": 377, + "y": 3100, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "r", + "x": 397, + "y": 3100, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "e", + "x": 416, + "y": 3100, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": "y", + "x": 435, + "y": 3100, + "w": 19, + "h": 45, + "conf": 91.0 + }, + { + "text": " ", + "x": 455, + "y": 3100, + "w": 18, + "h": 45, + "conf": 91.0 + }, + { + "text": "E", + "x": 473, + "y": 3100, + "w": 20, + "h": 45, + "conf": 90.0 + }, + { + "text": "p", + "x": 493, + "y": 3100, + "w": 20, + "h": 45, + "conf": 90.0 + }, + { + "text": "s", + "x": 514, + "y": 3100, + "w": 20, + "h": 45, + "conf": 90.0 + }, + { + "text": "t", + "x": 535, + "y": 3100, + "w": 20, + "h": 45, + "conf": 90.0 + }, + { + "text": "e", + "x": 555, + "y": 3100, + "w": 20, + "h": 45, + "conf": 90.0 + }, + { + "text": "i", + "x": 576, + "y": 3100, + "w": 20, + "h": 45, + "conf": 90.0 + }, + { + "text": "n", + "x": 597, + "y": 3100, + "w": 20, + "h": 45, + "conf": 90.0 + }, + { + "text": " ", + "x": 618, + "y": 3100, + "w": 16, + "h": 45, + "conf": 90.0 + }, + { + "text": "<", + "x": 634, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "j", + "x": 656, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "e", + "x": 678, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "e", + "x": 701, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "v", + "x": 723, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "a", + "x": 746, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "c", + "x": 768, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "a", + "x": 791, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "t", + "x": 813, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "i", + "x": 836, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "o", + "x": 858, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "n", + "x": 881, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "(", + "x": 903, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "@", + "x": 925, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "g", + "x": 948, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "m", + "x": 970, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "a", + "x": 993, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "i", + "x": 1015, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "l", + "x": 1038, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": ".", + "x": 1060, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "c", + "x": 1083, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "o", + "x": 1105, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": "m", + "x": 1128, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + }, + { + "text": ">", + "x": 1150, + "y": 3100, + "w": 22, + "h": 45, + "conf": 78.0 + } + ], + "x": 174, + "y": 3100, + "w": 998, + "h": 45, + "text": "From: Jeffrey Epstein " + }, + { + "chars": [ + { + "text": "E", + "x": 2174, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "F", + "x": 2202, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "T", + "x": 2231, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "A", + "x": 2260, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "0", + "x": 2288, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "0", + "x": 2317, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "5", + "x": 2346, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "5", + "x": 2374, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "4", + "x": 2403, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "6", + "x": 2432, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "2", + "x": 2460, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + }, + { + "text": "0", + "x": 2489, + "y": 3308, + "w": 28, + "h": 38, + "conf": 90.0 + } + ], + "x": 2174, + "y": 3308, + "w": 343, + "h": 38, + "text": "EFTA00554620" + } + ], + "llm_tool_input": { + "redactions": [ + { + "line_index": 0, + "left_word": "From:", + "right_word": "" + }, + { + "line_index": 1, + "left_word": "To:", + "right_word": "" + }, + { + "line_index": 4, + "left_word": "", + "right_word": "understand" + }, + { + "line_index": 6, + "left_word": "27,", + "right_word": "wrote:" + }, + { + "line_index": 7, + "left_word": "Sent", + "right_word": "an" + }, + { + "line_index": 8, + "left_word": "", + "right_word": "think" + }, + { + "line_index": 9, + "left_word": "", + "right_word": "haven't" + }, + { + "line_index": 11, + "left_word": "", + "right_word": "would" + }, + { + "line_index": 14, + "left_word": "From:", + "right_word": "" + }, + { + "line_index": 16, + "left_word": "To:", + "right_word": "" + }, + { + "line_index": 19, + "left_word": "let", + "right_word": "or" + }, + { + "line_index": 19, + "left_word": "or", + "right_word": "know" + }, + { + "line_index": 19, + "left_word": "tuna", + "right_word": "is" + }, + { + "line_index": 20, + "left_word": "PM,", + "right_word": "ot" + }, + { + "line_index": 21, + "left_word": "Sorry...on", + "right_word": "be" + }, + { + "line_index": 21, + "left_word": "be", + "right_word": "tmrw" + }, + { + "line_index": 23, + "left_word": "From:", + "right_word": "" + }, + { + "line_index": 26, + "left_word": "Reply", + "right_word": "To:" + } + ] + }, + "llm_redactions": [ + { + "line_index": 0, + "left_word": "From:", + "right_word": "", + "left_x": 369, + "right_x": 1224, + "line_y": 163, + "line_h": 81 + }, + { + "line_index": 1, + "left_word": "To:", + "right_word": "", + "left_x": 369, + "right_x": 790, + "line_y": 236, + "line_h": 56 + }, + { + "line_index": 4, + "left_word": "", + "right_word": "understand", + "left_x": 143, + "right_x": 171, + "line_y": 580, + "line_h": 46 + }, + { + "line_index": 6, + "left_word": "27,", + "right_word": "wrote:", + "left_x": 368, + "right_x": 1174, + "line_y": 739, + "line_h": 57 + }, + { + "line_index": 7, + "left_word": "Sent", + "right_word": "an", + "left_x": 459, + "right_x": 473, + "line_y": 897, + "line_h": 66 + }, + { + "line_index": 8, + "left_word": "", + "right_word": "think", + "left_x": 159, + "right_x": 186, + "line_y": 1024, + "line_h": 46 + }, + { + "line_index": 9, + "left_word": "", + "right_word": "haven't", + "left_x": 159, + "right_x": 186, + "line_y": 1137, + "line_h": 45 + }, + { + "line_index": 11, + "left_word": "", + "right_word": "would", + "left_x": 159, + "right_x": 186, + "line_y": 1362, + "line_h": 45 + }, + { + "line_index": 14, + "left_word": "From:", + "right_word": "", + "left_x": 286, + "right_x": 1141, + "line_y": 1629, + "line_h": 81 + }, + { + "line_index": 16, + "left_word": "To:", + "right_word": "", + "left_x": 220, + "right_x": 696, + "line_y": 1756, + "line_h": 35 + }, + { + "line_index": 19, + "left_word": "let", + "right_word": "or", + "left_x": 419, + "right_x": 569, + "line_y": 2027, + "line_h": 55 + }, + { + "line_index": 19, + "left_word": "or", + "right_word": "know", + "left_x": 609, + "right_x": 703, + "line_y": 2027, + "line_h": 55 + }, + { + "line_index": 19, + "left_word": "tuna", + "right_word": "is", + "left_x": 1307, + "right_x": 1856, + "line_y": 2027, + "line_h": 55 + }, + { + "line_index": 20, + "left_word": "PM,", + "right_word": "ot", + "left_x": 782, + "right_x": 1215, + "line_y": 2079, + "line_h": 65 + }, + { + "line_index": 21, + "left_word": "Sorry...on", + "right_word": "be", + "left_x": 364, + "right_x": 767, + "line_y": 2256, + "line_h": 45 + }, + { + "line_index": 21, + "left_word": "be", + "right_word": "tmrw", + "left_x": 809, + "right_x": 878, + "line_y": 2256, + "line_h": 45 + }, + { + "line_index": 23, + "left_word": "From:", + "right_word": "", + "left_x": 301, + "right_x": 722, + "line_y": 2471, + "line_h": 56 + }, + { + "line_index": 26, + "left_word": "Reply", + "right_word": "To:", + "left_x": 292, + "right_x": 305, + "line_y": 2605, + "line_h": 91 + } + ] +} \ No newline at end of file diff --git a/tests/fixtures/EFTA00554620_page1.png b/tests/fixtures/EFTA00554620_page1.png new file mode 100644 index 0000000..3c28690 Binary files /dev/null and b/tests/fixtures/EFTA00554620_page1.png differ diff --git a/tests/fixtures/EFTA00554620_page2.json b/tests/fixtures/EFTA00554620_page2.json new file mode 100644 index 0000000..dffd2c8 --- /dev/null +++ b/tests/fixtures/EFTA00554620_page2.json @@ -0,0 +1,6082 @@ +{ + "source_pdf": "EFTA00554620.pdf", + "page": 2, + "ocr_lines": [ + { + "chars": [ + { + "text": "D", + "x": 173, + "y": 124, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 195, + "y": 124, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 217, + "y": 124, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 239, + "y": 124, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": ":", + "x": 261, + "y": 124, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 284, + "y": 124, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": "M", + "x": 302, + "y": 124, + "w": 25, + "h": 40, + "conf": 92.0 + }, + { + "text": "o", + "x": 327, + "y": 124, + "w": 25, + "h": 40, + "conf": 92.0 + }, + { + "text": "n", + "x": 353, + "y": 124, + "w": 25, + "h": 40, + "conf": 92.0 + }, + { + "text": ",", + "x": 379, + "y": 124, + "w": 25, + "h": 40, + "conf": 92.0 + }, + { + "text": " ", + "x": 405, + "y": 124, + "w": 16, + "h": 40, + "conf": 92.0 + }, + { + "text": "2", + "x": 421, + "y": 124, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": "7", + "x": 444, + "y": 124, + "w": 23, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 468, + "y": 124, + "w": 13, + "h": 35, + "conf": 93.0 + }, + { + "text": "A", + "x": 481, + "y": 124, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": "u", + "x": 500, + "y": 124, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": "g", + "x": 519, + "y": 124, + "w": 19, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 539, + "y": 124, + "w": 40, + "h": 35, + "conf": 91.0 + }, + { + "text": "2", + "x": 579, + "y": 124, + "w": 24, + "h": 35, + "conf": 93.0 + }, + { + "text": "0", + "x": 603, + "y": 124, + "w": 24, + "h": 35, + "conf": 93.0 + }, + { + "text": "1", + "x": 627, + "y": 124, + "w": 24, + "h": 35, + "conf": 93.0 + }, + { + "text": "2", + "x": 651, + "y": 124, + "w": 24, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 676, + "y": 124, + "w": 22, + "h": 35, + "conf": 93.0 + }, + { + "text": "1", + "x": 698, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": "2", + "x": 719, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": ":", + "x": 740, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": "0", + "x": 761, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": "8", + "x": 782, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": ":", + "x": 803, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": "4", + "x": 824, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": "7", + "x": 845, + "y": 124, + "w": 21, + "h": 35, + "conf": 89.0 + }, + { + "text": " ", + "x": 866, + "y": 124, + "w": 16, + "h": 35, + "conf": 89.0 + }, + { + "text": "-", + "x": 882, + "y": 124, + "w": 23, + "h": 35, + "conf": 89.0 + }, + { + "text": "0", + "x": 905, + "y": 124, + "w": 23, + "h": 35, + "conf": 89.0 + }, + { + "text": "4", + "x": 928, + "y": 124, + "w": 23, + "h": 35, + "conf": 89.0 + }, + { + "text": "0", + "x": 951, + "y": 124, + "w": 23, + "h": 35, + "conf": 89.0 + }, + { + "text": "0", + "x": 974, + "y": 124, + "w": 23, + "h": 35, + "conf": 89.0 + } + ], + "x": 173, + "y": 124, + "w": 824, + "h": 40, + "text": "Date: Mon, 27 Aug 2012 12:08:47 -0400" + }, + { + "chars": [ + { + "text": "T", + "x": 172, + "y": 180, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": "o", + "x": 193, + "y": 180, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": ":", + "x": 215, + "y": 180, + "w": 21, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 237, + "y": 180, + "w": 20, + "h": 35, + "conf": 90.0 + }, + { + "text": "f", + "x": 257, + "y": 180, + "w": 18, + "h": 36, + "conf": 84.0 + }, + { + "text": "r", + "x": 275, + "y": 180, + "w": 18, + "h": 36, + "conf": 84.0 + }, + { + "text": "a", + "x": 294, + "y": 180, + "w": 18, + "h": 36, + "conf": 84.0 + }, + { + "text": "n", + "x": 313, + "y": 180, + "w": 18, + "h": 36, + "conf": 84.0 + }, + { + "text": "c", + "x": 331, + "y": 180, + "w": 18, + "h": 36, + "conf": 84.0 + }, + { + "text": "i", + "x": 350, + "y": 180, + "w": 18, + "h": 36, + "conf": 84.0 + }, + { + "text": "s", + "x": 369, + "y": 180, + "w": 18, + "h": 36, + "conf": 84.0 + }, + { + "text": " ", + "x": 388, + "y": 180, + "w": 19, + "h": 36, + "conf": 84.0 + }, + { + "text": "d", + "x": 407, + "y": 132, + "w": 22, + "h": 99, + "conf": 39.0 + }, + { + "text": "e", + "x": 429, + "y": 132, + "w": 22, + "h": 99, + "conf": 39.0 + }, + { + "text": "r", + "x": 451, + "y": 132, + "w": 22, + "h": 99, + "conf": 39.0 + }, + { + "text": "b", + "x": 473, + "y": 132, + "w": 22, + "h": 99, + "conf": 39.0 + }, + { + "text": "y", + "x": 495, + "y": 132, + "w": 22, + "h": 99, + "conf": 39.0 + }, + { + "text": "-", + "x": 517, + "y": 132, + "w": 22, + "h": 99, + "conf": 39.0 + }, + { + "text": "-", + "x": 517, + "y": 136, + "w": 458, + "h": 91, + "conf": 24.0 + } + ], + "x": 172, + "y": 132, + "w": 803, + "h": 99, + "text": "To: francis derby--" + }, + { + "chars": [ + { + "text": "S", + "x": 173, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "u", + "x": 194, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "b", + "x": 216, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "j", + "x": 237, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "e", + "x": 259, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "c", + "x": 280, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "t", + "x": 302, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": ":", + "x": 323, + "y": 236, + "w": 21, + "h": 46, + "conf": 90.0 + } + ], + "x": 173, + "y": 236, + "w": 171, + "h": 46, + "text": "Subject:" + }, + { + "chars": [ + { + "text": "h", + "x": 172, + "y": 349, + "w": 28, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 200, + "y": 349, + "w": 28, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 228, + "y": 349, + "w": 28, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 256, + "y": 349, + "w": 14, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 270, + "y": 349, + "w": 24, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 294, + "y": 349, + "w": 24, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 318, + "y": 349, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 333, + "y": 360, + "w": 28, + "h": 24, + "conf": 93.0 + }, + { + "text": "e", + "x": 361, + "y": 360, + "w": 28, + "h": 24, + "conf": 93.0 + }, + { + "text": " ", + "x": 389, + "y": 360, + "w": 15, + "h": 24, + "conf": 93.0 + }, + { + "text": "d", + "x": 404, + "y": 348, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "e", + "x": 424, + "y": 348, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "a", + "x": 444, + "y": 348, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "l", + "x": 464, + "y": 348, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 484, + "y": 348, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "w", + "x": 500, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 521, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 543, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 564, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 586, + "y": 349, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 602, + "y": 349, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 621, + "y": 349, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 640, + "y": 349, + "w": 19, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 660, + "y": 349, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "f", + "x": 677, + "y": 349, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "r", + "x": 697, + "y": 349, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 718, + "y": 349, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "z", + "x": 738, + "y": 349, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 759, + "y": 349, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 779, + "y": 349, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 800, + "y": 349, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "w", + "x": 815, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 836, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 858, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 880, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 902, + "y": 349, + "w": 21, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 924, + "y": 349, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 939, + "y": 355, + "w": 21, + "h": 29, + "conf": 92.0 + }, + { + "text": "u", + "x": 960, + "y": 355, + "w": 21, + "h": 29, + "conf": 92.0 + }, + { + "text": "n", + "x": 981, + "y": 355, + "w": 21, + "h": 29, + "conf": 92.0 + }, + { + "text": "a", + "x": 1002, + "y": 355, + "w": 21, + "h": 29, + "conf": 92.0 + } + ], + "x": 172, + "y": 348, + "w": 851, + "h": 36, + "text": "how do we deal with the frozen white tuna" + }, + { + "chars": [ + { + "text": "L", + "x": 174, + "y": 514, + "w": 14, + "h": 33, + "conf": 28.0 + }, + { + "text": "2", + "x": 188, + "y": 514, + "w": 14, + "h": 33, + "conf": 28.0 + }, + { + "text": " ", + "x": 203, + "y": 514, + "w": 13, + "h": 33, + "conf": 28.0 + }, + { + "text": "2", + "x": 216, + "y": 514, + "w": 18, + "h": 33, + "conf": 33.0 + }, + { + "text": "2", + "x": 234, + "y": 514, + "w": 18, + "h": 33, + "conf": 33.0 + }, + { + "text": " ", + "x": 253, + "y": 514, + "w": 40, + "h": 33, + "conf": 33.0 + }, + { + "text": "P", + "x": 293, + "y": 514, + "w": 31, + "h": 33, + "conf": 5.0 + }, + { + "text": "R", + "x": 324, + "y": 514, + "w": 31, + "h": 33, + "conf": 5.0 + }, + { + "text": " ", + "x": 355, + "y": 514, + "w": 13, + "h": 33, + "conf": 5.0 + }, + { + "text": "R", + "x": 368, + "y": 518, + "w": 25, + "h": 19, + "conf": 0.0 + }, + { + "text": " ", + "x": 393, + "y": 518, + "w": 49, + "h": 19, + "conf": 0.0 + }, + { + "text": "R", + "x": 442, + "y": 518, + "w": 33, + "h": 19, + "conf": 14.0 + }, + { + "text": "S", + "x": 475, + "y": 518, + "w": 33, + "h": 19, + "conf": 14.0 + }, + { + "text": "2", + "x": 508, + "y": 518, + "w": 33, + "h": 19, + "conf": 14.0 + }, + { + "text": " ", + "x": 542, + "y": 518, + "w": 26, + "h": 19, + "conf": 14.0 + }, + { + "text": "A", + "x": 568, + "y": 514, + "w": 18, + "h": 33, + "conf": 2.0 + }, + { + "text": "P", + "x": 586, + "y": 514, + "w": 18, + "h": 33, + "conf": 2.0 + }, + { + "text": " ", + "x": 605, + "y": 514, + "w": 13, + "h": 33, + "conf": 2.0 + }, + { + "text": "A", + "x": 618, + "y": 518, + "w": 62, + "h": 19, + "conf": 0.0 + }, + { + "text": "R", + "x": 680, + "y": 518, + "w": 62, + "h": 19, + "conf": 0.0 + }, + { + "text": " ", + "x": 743, + "y": 518, + "w": 100, + "h": 19, + "conf": 0.0 + }, + { + "text": "P", + "x": 843, + "y": 518, + "w": 81, + "h": 19, + "conf": 5.0 + }, + { + "text": "t", + "x": 924, + "y": 518, + "w": 81, + "h": 19, + "conf": 5.0 + }, + { + "text": "t", + "x": 1005, + "y": 518, + "w": 81, + "h": 19, + "conf": 5.0 + }, + { + "text": "t", + "x": 1086, + "y": 518, + "w": 81, + "h": 19, + "conf": 5.0 + }, + { + "text": " ", + "x": 1168, + "y": 518, + "w": 6, + "h": 19, + "conf": 5.0 + }, + { + "text": "s", + "x": 1174, + "y": 518, + "w": 93, + "h": 19, + "conf": 0.0 + }, + { + "text": "t", + "x": 1267, + "y": 518, + "w": 93, + "h": 19, + "conf": 0.0 + }, + { + "text": "t", + "x": 1361, + "y": 518, + "w": 93, + "h": 19, + "conf": 0.0 + }, + { + "text": "t", + "x": 1455, + "y": 518, + "w": 93, + "h": 19, + "conf": 0.0 + }, + { + "text": "y", + "x": 1549, + "y": 518, + "w": 93, + "h": 19, + "conf": 0.0 + } + ], + "x": 174, + "y": 514, + "w": 1468, + "h": 33, + "text": "L2 22 PR R RS2 AP AR Pttt sttty" + }, + { + "chars": [ + { + "text": "T", + "x": 172, + "y": 574, + "w": 25, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 197, + "y": 574, + "w": 25, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 222, + "y": 574, + "w": 25, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 247, + "y": 574, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 264, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 285, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "f", + "x": 306, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 327, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 348, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "m", + "x": 369, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 390, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 411, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 432, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 453, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 474, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 496, + "y": 574, + "w": 15, + "h": 35, + "conf": 91.0 + }, + { + "text": "c", + "x": 511, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "o", + "x": 532, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 553, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 575, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 596, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 618, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 639, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 661, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": "d", + "x": 682, + "y": 574, + "w": 21, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 704, + "y": 574, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "i", + "x": 720, + "y": 574, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": "n", + "x": 737, + "y": 574, + "w": 17, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 754, + "y": 574, + "w": 16, + "h": 35, + "conf": 91.0 + }, + { + "text": "t", + "x": 770, + "y": 574, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 787, + "y": 574, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 805, + "y": 574, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 822, + "y": 574, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 840, + "y": 574, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "c", + "x": 855, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 878, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "m", + "x": 902, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "m", + "x": 926, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "u", + "x": 949, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 973, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 997, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "c", + "x": 1020, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 1044, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1068, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1091, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "o", + "x": 1115, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 1139, + "y": 574, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1163, + "y": 574, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1179, + "y": 574, + "w": 15, + "h": 35, + "conf": 89.0 + }, + { + "text": "s", + "x": 1194, + "y": 574, + "w": 15, + "h": 35, + "conf": 89.0 + } + ], + "x": 172, + "y": 574, + "w": 1037, + "h": 35, + "text": "The information contained in this communication is" + }, + { + "chars": [ + { + "text": "c", + "x": 172, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "o", + "x": 191, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "n", + "x": 210, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "f", + "x": 229, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "i", + "x": 248, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "d", + "x": 267, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "e", + "x": 286, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "n", + "x": 306, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "t", + "x": 325, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "i", + "x": 344, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "a", + "x": 363, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": "l", + "x": 382, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": ",", + "x": 401, + "y": 630, + "w": 19, + "h": 40, + "conf": 91.0 + }, + { + "text": " ", + "x": 421, + "y": 630, + "w": 15, + "h": 40, + "conf": 91.0 + }, + { + "text": "m", + "x": 436, + "y": 641, + "w": 27, + "h": 35, + "conf": 93.0 + }, + { + "text": "a", + "x": 463, + "y": 641, + "w": 27, + "h": 35, + "conf": 93.0 + }, + { + "text": "y", + "x": 491, + "y": 641, + "w": 27, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 519, + "y": 641, + "w": 16, + "h": 35, + "conf": 93.0 + }, + { + "text": "b", + "x": 535, + "y": 630, + "w": 22, + "h": 36, + "conf": 93.0 + }, + { + "text": "e", + "x": 557, + "y": 630, + "w": 22, + "h": 36, + "conf": 93.0 + }, + { + "text": " ", + "x": 580, + "y": 630, + "w": 14, + "h": 36, + "conf": 93.0 + }, + { + "text": "a", + "x": 594, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "t", + "x": 613, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "t", + "x": 632, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "o", + "x": 652, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "r", + "x": 671, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "n", + "x": 690, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 710, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "y", + "x": 729, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "-", + "x": 748, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "c", + "x": 768, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "l", + "x": 787, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "i", + "x": 806, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 826, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "n", + "x": 845, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": "t", + "x": 864, + "y": 630, + "w": 19, + "h": 46, + "conf": 92.0 + }, + { + "text": " ", + "x": 884, + "y": 630, + "w": 15, + "h": 46, + "conf": 92.0 + }, + { + "text": "p", + "x": 899, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "r", + "x": 918, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "i", + "x": 937, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "v", + "x": 956, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "i", + "x": 976, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "l", + "x": 995, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "e", + "x": 1014, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "g", + "x": 1033, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "e", + "x": 1053, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "d", + "x": 1072, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": ",", + "x": 1091, + "y": 630, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": " ", + "x": 1111, + "y": 630, + "w": 16, + "h": 46, + "conf": 90.0 + }, + { + "text": "m", + "x": 1127, + "y": 641, + "w": 27, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 1154, + "y": 641, + "w": 27, + "h": 35, + "conf": 92.0 + }, + { + "text": "y", + "x": 1182, + "y": 641, + "w": 27, + "h": 35, + "conf": 92.0 + } + ], + "x": 172, + "y": 630, + "w": 1037, + "h": 46, + "text": "confidential, may be attorney-client privileged, may" + }, + { + "chars": [ + { + "text": "c", + "x": 172, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "o", + "x": 191, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "n", + "x": 210, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "s", + "x": 229, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "t", + "x": 248, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "i", + "x": 268, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "t", + "x": 287, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "u", + "x": 306, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "t", + "x": 325, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "e", + "x": 344, + "y": 686, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 364, + "y": 686, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "i", + "x": 380, + "y": 686, + "w": 19, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 399, + "y": 686, + "w": 19, + "h": 36, + "conf": 91.0 + }, + { + "text": "s", + "x": 418, + "y": 686, + "w": 19, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 438, + "y": 686, + "w": 19, + "h": 36, + "conf": 91.0 + }, + { + "text": "d", + "x": 457, + "y": 686, + "w": 19, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 476, + "y": 686, + "w": 19, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 496, + "y": 686, + "w": 16, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 512, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "n", + "x": 532, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "f", + "x": 552, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "o", + "x": 573, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "r", + "x": 593, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "m", + "x": 613, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "a", + "x": 634, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "t", + "x": 654, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "i", + "x": 674, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "o", + "x": 695, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": "n", + "x": 715, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": ",", + "x": 735, + "y": 686, + "w": 20, + "h": 41, + "conf": 91.0 + }, + { + "text": " ", + "x": 756, + "y": 686, + "w": 16, + "h": 41, + "conf": 91.0 + }, + { + "text": "a", + "x": 772, + "y": 686, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": "n", + "x": 795, + "y": 686, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": "d", + "x": 818, + "y": 686, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 842, + "y": 686, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "i", + "x": 858, + "y": 686, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": "s", + "x": 873, + "y": 686, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 888, + "y": 686, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "i", + "x": 904, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 925, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "t", + "x": 946, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 967, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 989, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "d", + "x": 1010, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 1031, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "d", + "x": 1052, + "y": 686, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 1074, + "y": 686, + "w": 14, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 1088, + "y": 686, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "n", + "x": 1109, + "y": 686, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "l", + "x": 1131, + "y": 686, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": "y", + "x": 1152, + "y": 686, + "w": 21, + "h": 46, + "conf": 90.0 + }, + { + "text": " ", + "x": 1174, + "y": 686, + "w": 17, + "h": 46, + "conf": 90.0 + }, + { + "text": "f", + "x": 1191, + "y": 686, + "w": 18, + "h": 36, + "conf": 92.0 + }, + { + "text": "o", + "x": 1209, + "y": 686, + "w": 18, + "h": 36, + "conf": 92.0 + }, + { + "text": "r", + "x": 1228, + "y": 686, + "w": 18, + "h": 36, + "conf": 92.0 + } + ], + "x": 172, + "y": 686, + "w": 1074, + "h": 46, + "text": "constitute inside information, and is intended only for" + }, + { + "chars": [ + { + "text": "t", + "x": 173, + "y": 742, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "h", + "x": 192, + "y": 742, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "e", + "x": 211, + "y": 742, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 231, + "y": 742, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": "u", + "x": 246, + "y": 754, + "w": 21, + "h": 24, + "conf": 90.0 + }, + { + "text": "s", + "x": 267, + "y": 754, + "w": 21, + "h": 24, + "conf": 90.0 + }, + { + "text": "e", + "x": 288, + "y": 754, + "w": 21, + "h": 24, + "conf": 90.0 + }, + { + "text": " ", + "x": 310, + "y": 754, + "w": 15, + "h": 24, + "conf": 90.0 + }, + { + "text": "o", + "x": 325, + "y": 742, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "f", + "x": 348, + "y": 742, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 371, + "y": 742, + "w": 9, + "h": 36, + "conf": 90.0 + }, + { + "text": "t", + "x": 380, + "y": 742, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "h", + "x": 399, + "y": 742, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": "e", + "x": 418, + "y": 742, + "w": 19, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 438, + "y": 742, + "w": 14, + "h": 36, + "conf": 92.0 + }, + { + "text": "a", + "x": 452, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 472, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 492, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "r", + "x": 513, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 533, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 554, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 574, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 594, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 615, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": ".", + "x": 635, + "y": 743, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 656, + "y": 743, + "w": 18, + "h": 35, + "conf": 92.0 + }, + { + "text": "I", + "x": 674, + "y": 743, + "w": 13, + "h": 35, + "conf": 90.0 + }, + { + "text": "t", + "x": 687, + "y": 743, + "w": 13, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 700, + "y": 743, + "w": 17, + "h": 35, + "conf": 90.0 + }, + { + "text": "i", + "x": 717, + "y": 743, + "w": 14, + "h": 35, + "conf": 90.0 + }, + { + "text": "s", + "x": 731, + "y": 743, + "w": 14, + "h": 35, + "conf": 90.0 + }, + { + "text": " ", + "x": 746, + "y": 743, + "w": 16, + "h": 35, + "conf": 90.0 + }, + { + "text": "t", + "x": 762, + "y": 742, + "w": 19, + "h": 36, + "conf": 93.0 + }, + { + "text": "h", + "x": 781, + "y": 742, + "w": 19, + "h": 36, + "conf": 93.0 + }, + { + "text": "e", + "x": 800, + "y": 742, + "w": 19, + "h": 36, + "conf": 93.0 + }, + { + "text": " ", + "x": 819, + "y": 742, + "w": 16, + "h": 36, + "conf": 93.0 + }, + { + "text": "p", + "x": 835, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": "r", + "x": 855, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": "o", + "x": 876, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": "p", + "x": 897, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": "e", + "x": 918, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": "r", + "x": 939, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": "t", + "x": 960, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": "y", + "x": 981, + "y": 750, + "w": 20, + "h": 39, + "conf": 92.0 + }, + { + "text": " ", + "x": 1002, + "y": 750, + "w": 15, + "h": 39, + "conf": 92.0 + }, + { + "text": "o", + "x": 1017, + "y": 742, + "w": 22, + "h": 36, + "conf": 92.0 + }, + { + "text": "f", + "x": 1039, + "y": 742, + "w": 22, + "h": 36, + "conf": 92.0 + } + ], + "x": 173, + "y": 742, + "w": 888, + "h": 47, + "text": "the use of the addressee. It is the property of" + }, + { + "chars": [ + { + "text": "J", + "x": 171, + "y": 799, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "e", + "x": 190, + "y": 799, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "f", + "x": 210, + "y": 799, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "f", + "x": 229, + "y": 799, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "r", + "x": 249, + "y": 799, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "e", + "x": 268, + "y": 799, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": "y", + "x": 288, + "y": 799, + "w": 19, + "h": 46, + "conf": 90.0 + }, + { + "text": " ", + "x": 308, + "y": 799, + "w": 17, + "h": 46, + "conf": 90.0 + }, + { + "text": "E", + "x": 325, + "y": 799, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "p", + "x": 345, + "y": 799, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "s", + "x": 366, + "y": 799, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "t", + "x": 387, + "y": 799, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 407, + "y": 799, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "i", + "x": 428, + "y": 799, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "n", + "x": 449, + "y": 799, + "w": 20, + "h": 46, + "conf": 92.0 + } + ], + "x": 171, + "y": 799, + "w": 298, + "h": 46, + "text": "Jeffrey Epstein" + }, + { + "chars": [ + { + "text": "U", + "x": 173, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 195, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "a", + "x": 217, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "u", + "x": 240, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "t", + "x": 262, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "h", + "x": 285, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 307, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "r", + "x": 329, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 352, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "z", + "x": 374, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 397, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": "d", + "x": 419, + "y": 855, + "w": 22, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 442, + "y": 855, + "w": 16, + "h": 36, + "conf": 91.0 + }, + { + "text": "u", + "x": 458, + "y": 867, + "w": 18, + "h": 26, + "conf": 77.0 + }, + { + "text": "s", + "x": 476, + "y": 867, + "w": 18, + "h": 26, + "conf": 77.0 + }, + { + "text": "e", + "x": 495, + "y": 867, + "w": 18, + "h": 26, + "conf": 77.0 + }, + { + "text": ",", + "x": 514, + "y": 867, + "w": 18, + "h": 26, + "conf": 77.0 + }, + { + "text": " ", + "x": 533, + "y": 867, + "w": 16, + "h": 26, + "conf": 77.0 + }, + { + "text": "d", + "x": 549, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "i", + "x": 569, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "s", + "x": 589, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "c", + "x": 609, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "l", + "x": 629, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "o", + "x": 649, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "s", + "x": 669, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "u", + "x": 689, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "r", + "x": 709, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "e", + "x": 729, + "y": 855, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 749, + "y": 855, + "w": 15, + "h": 36, + "conf": 90.0 + }, + { + "text": "o", + "x": 764, + "y": 866, + "w": 20, + "h": 24, + "conf": 92.0 + }, + { + "text": "r", + "x": 784, + "y": 866, + "w": 20, + "h": 24, + "conf": 92.0 + }, + { + "text": " ", + "x": 805, + "y": 866, + "w": 13, + "h": 24, + "conf": 92.0 + }, + { + "text": "c", + "x": 818, + "y": 855, + "w": 22, + "h": 47, + "conf": 89.0 + }, + { + "text": "o", + "x": 840, + "y": 855, + "w": 22, + "h": 47, + "conf": 89.0 + }, + { + "text": "p", + "x": 863, + "y": 855, + "w": 22, + "h": 47, + "conf": 89.0 + }, + { + "text": "y", + "x": 886, + "y": 855, + "w": 22, + "h": 47, + "conf": 89.0 + }, + { + "text": "i", + "x": 909, + "y": 855, + "w": 22, + "h": 47, + "conf": 89.0 + }, + { + "text": "n", + "x": 932, + "y": 855, + "w": 22, + "h": 47, + "conf": 89.0 + }, + { + "text": "g", + "x": 955, + "y": 855, + "w": 22, + "h": 47, + "conf": 89.0 + }, + { + "text": " ", + "x": 978, + "y": 855, + "w": 14, + "h": 47, + "conf": 89.0 + }, + { + "text": "o", + "x": 992, + "y": 855, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": "f", + "x": 1014, + "y": 855, + "w": 22, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 1037, + "y": 855, + "w": 9, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 1046, + "y": 855, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 1063, + "y": 855, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "i", + "x": 1081, + "y": 855, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 1098, + "y": 855, + "w": 17, + "h": 35, + "conf": 92.0 + } + ], + "x": 173, + "y": 855, + "w": 942, + "h": 47, + "text": "Unauthorized use, disclosure or copying of this" + }, + { + "chars": [ + { + "text": "c", + "x": 172, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 195, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "m", + "x": 219, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "m", + "x": 243, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "u", + "x": 267, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 290, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 314, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "c", + "x": 338, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "a", + "x": 362, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "t", + "x": 385, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 409, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 433, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 457, + "y": 911, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 481, + "y": 911, + "w": 15, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 496, + "y": 923, + "w": 20, + "h": 24, + "conf": 93.0 + }, + { + "text": "r", + "x": 516, + "y": 923, + "w": 20, + "h": 24, + "conf": 93.0 + }, + { + "text": " ", + "x": 537, + "y": 923, + "w": 13, + "h": 24, + "conf": 93.0 + }, + { + "text": "a", + "x": 550, + "y": 923, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 573, + "y": 923, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "y", + "x": 596, + "y": 923, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 619, + "y": 923, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "p", + "x": 635, + "y": 918, + "w": 19, + "h": 40, + "conf": 92.0 + }, + { + "text": "a", + "x": 654, + "y": 918, + "w": 19, + "h": 40, + "conf": 92.0 + }, + { + "text": "r", + "x": 673, + "y": 918, + "w": 19, + "h": 40, + "conf": 92.0 + }, + { + "text": "t", + "x": 692, + "y": 918, + "w": 19, + "h": 40, + "conf": 92.0 + }, + { + "text": " ", + "x": 711, + "y": 918, + "w": 14, + "h": 40, + "conf": 92.0 + }, + { + "text": "t", + "x": 725, + "y": 911, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "h", + "x": 745, + "y": 911, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "e", + "x": 766, + "y": 911, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "r", + "x": 787, + "y": 911, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "e", + "x": 808, + "y": 911, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "o", + "x": 829, + "y": 911, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "f", + "x": 850, + "y": 911, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 871, + "y": 911, + "w": 10, + "h": 36, + "conf": 90.0 + }, + { + "text": "i", + "x": 881, + "y": 911, + "w": 14, + "h": 36, + "conf": 90.0 + }, + { + "text": "s", + "x": 895, + "y": 911, + "w": 14, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 909, + "y": 911, + "w": 16, + "h": 36, + "conf": 90.0 + }, + { + "text": "s", + "x": 925, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": "t", + "x": 942, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": "r", + "x": 959, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": "i", + "x": 976, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": "c", + "x": 993, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": "t", + "x": 1010, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": "l", + "x": 1027, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": "y", + "x": 1044, + "y": 911, + "w": 17, + "h": 47, + "conf": 93.0 + }, + { + "text": " ", + "x": 1062, + "y": 911, + "w": 14, + "h": 47, + "conf": 93.0 + }, + { + "text": "p", + "x": 1076, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "r", + "x": 1096, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "o", + "x": 1116, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "h", + "x": 1137, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "i", + "x": 1157, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "b", + "x": 1178, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "i", + "x": 1198, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "t", + "x": 1218, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "e", + "x": 1239, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + }, + { + "text": "d", + "x": 1259, + "y": 911, + "w": 20, + "h": 47, + "conf": 92.0 + } + ], + "x": 172, + "y": 911, + "w": 1107, + "h": 47, + "text": "communication or any part thereof is strictly prohibited" + }, + { + "chars": [ + { + "text": "a", + "x": 172, + "y": 968, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 195, + "y": 968, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": "d", + "x": 218, + "y": 968, + "w": 23, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 242, + "y": 968, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "m", + "x": 257, + "y": 979, + "w": 27, + "h": 35, + "conf": 93.0 + }, + { + "text": "a", + "x": 284, + "y": 979, + "w": 27, + "h": 35, + "conf": 93.0 + }, + { + "text": "y", + "x": 312, + "y": 979, + "w": 27, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 340, + "y": 979, + "w": 15, + "h": 35, + "conf": 93.0 + }, + { + "text": "b", + "x": 355, + "y": 967, + "w": 22, + "h": 36, + "conf": 92.0 + }, + { + "text": "e", + "x": 377, + "y": 967, + "w": 22, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 400, + "y": 967, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "u", + "x": 416, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "n", + "x": 436, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "l", + "x": 457, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "a", + "x": 478, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "w", + "x": 498, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "f", + "x": 519, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "u", + "x": 540, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": "l", + "x": 560, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": ".", + "x": 581, + "y": 967, + "w": 20, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 602, + "y": 967, + "w": 18, + "h": 36, + "conf": 90.0 + }, + { + "text": "I", + "x": 620, + "y": 967, + "w": 18, + "h": 36, + "conf": 90.0 + }, + { + "text": "f", + "x": 638, + "y": 967, + "w": 18, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 656, + "y": 967, + "w": 8, + "h": 36, + "conf": 90.0 + }, + { + "text": "y", + "x": 664, + "y": 979, + "w": 24, + "h": 35, + "conf": 93.0 + }, + { + "text": "o", + "x": 688, + "y": 979, + "w": 24, + "h": 35, + "conf": 93.0 + }, + { + "text": "u", + "x": 712, + "y": 979, + "w": 24, + "h": 35, + "conf": 93.0 + }, + { + "text": " ", + "x": 736, + "y": 979, + "w": 16, + "h": 35, + "conf": 93.0 + }, + { + "text": "h", + "x": 752, + "y": 968, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": "a", + "x": 775, + "y": 968, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": "v", + "x": 798, + "y": 968, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": "e", + "x": 821, + "y": 968, + "w": 23, + "h": 35, + "conf": 91.0 + }, + { + "text": " ", + "x": 844, + "y": 968, + "w": 14, + "h": 35, + "conf": 91.0 + }, + { + "text": "r", + "x": 858, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 879, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "c", + "x": 900, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 921, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 942, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "v", + "x": 963, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "e", + "x": 984, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": "d", + "x": 1005, + "y": 967, + "w": 21, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 1026, + "y": 967, + "w": 15, + "h": 36, + "conf": 91.0 + }, + { + "text": "t", + "x": 1041, + "y": 967, + "w": 17, + "h": 36, + "conf": 91.0 + }, + { + "text": "h", + "x": 1058, + "y": 967, + "w": 17, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 1075, + "y": 967, + "w": 17, + "h": 36, + "conf": 91.0 + }, + { + "text": "s", + "x": 1092, + "y": 967, + "w": 17, + "h": 36, + "conf": 91.0 + } + ], + "x": 172, + "y": 967, + "w": 937, + "h": 47, + "text": "and may be unlawful. If you have received this" + }, + { + "chars": [ + { + "text": "c", + "x": 172, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 195, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "m", + "x": 219, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "m", + "x": 243, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "u", + "x": 267, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 290, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 314, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "c", + "x": 338, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "a", + "x": 362, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "t", + "x": 385, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 409, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "o", + "x": 433, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": "n", + "x": 457, + "y": 1024, + "w": 23, + "h": 36, + "conf": 91.0 + }, + { + "text": " ", + "x": 481, + "y": 1024, + "w": 16, + "h": 36, + "conf": 91.0 + }, + { + "text": "i", + "x": 497, + "y": 1024, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 514, + "y": 1024, + "w": 17, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 532, + "y": 1024, + "w": 15, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 547, + "y": 1035, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": "r", + "x": 564, + "y": 1035, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": "r", + "x": 582, + "y": 1035, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": "o", + "x": 599, + "y": 1035, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": "r", + "x": 617, + "y": 1035, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": ",", + "x": 634, + "y": 1035, + "w": 17, + "h": 29, + "conf": 92.0 + }, + { + "text": " ", + "x": 652, + "y": 1035, + "w": 15, + "h": 29, + "conf": 92.0 + }, + { + "text": "p", + "x": 667, + "y": 1024, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "l", + "x": 687, + "y": 1024, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 708, + "y": 1024, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "a", + "x": 728, + "y": 1024, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "s", + "x": 749, + "y": 1024, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 769, + "y": 1024, + "w": 20, + "h": 46, + "conf": 92.0 + }, + { + "text": " ", + "x": 790, + "y": 1024, + "w": 15, + "h": 46, + "conf": 92.0 + }, + { + "text": "n", + "x": 805, + "y": 1024, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "o", + "x": 824, + "y": 1024, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "t", + "x": 844, + "y": 1024, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "i", + "x": 863, + "y": 1024, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "f", + "x": 883, + "y": 1024, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": "y", + "x": 902, + "y": 1024, + "w": 19, + "h": 46, + "conf": 91.0 + }, + { + "text": " ", + "x": 922, + "y": 1024, + "w": 16, + "h": 46, + "conf": 91.0 + }, + { + "text": "u", + "x": 938, + "y": 1036, + "w": 20, + "h": 24, + "conf": 92.0 + }, + { + "text": "s", + "x": 958, + "y": 1036, + "w": 20, + "h": 24, + "conf": 92.0 + }, + { + "text": " ", + "x": 979, + "y": 1036, + "w": 16, + "h": 24, + "conf": 92.0 + }, + { + "text": "i", + "x": 995, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "m", + "x": 1017, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "m", + "x": 1039, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 1062, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "d", + "x": 1084, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "i", + "x": 1106, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "a", + "x": 1129, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "t", + "x": 1151, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "e", + "x": 1173, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "l", + "x": 1196, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": "y", + "x": 1218, + "y": 1024, + "w": 22, + "h": 46, + "conf": 92.0 + }, + { + "text": " ", + "x": 1241, + "y": 1024, + "w": 15, + "h": 46, + "conf": 92.0 + }, + { + "text": "b", + "x": 1256, + "y": 1024, + "w": 23, + "h": 46, + "conf": 96.0 + }, + { + "text": "y", + "x": 1279, + "y": 1024, + "w": 23, + "h": 46, + "conf": 96.0 + } + ], + "x": 172, + "y": 1024, + "w": 1130, + "h": 46, + "text": "communication in error, please notify us immediately by" + }, + { + "chars": [ + { + "text": "r", + "x": 172, + "y": 1086, + "w": 19, + "h": 30, + "conf": 91.0 + }, + { + "text": "e", + "x": 191, + "y": 1086, + "w": 19, + "h": 30, + "conf": 91.0 + }, + { + "text": "t", + "x": 211, + "y": 1086, + "w": 19, + "h": 30, + "conf": 91.0 + }, + { + "text": "u", + "x": 230, + "y": 1086, + "w": 19, + "h": 30, + "conf": 91.0 + }, + { + "text": "r", + "x": 250, + "y": 1086, + "w": 19, + "h": 30, + "conf": 91.0 + }, + { + "text": "n", + "x": 269, + "y": 1086, + "w": 19, + "h": 30, + "conf": 91.0 + }, + { + "text": " ", + "x": 289, + "y": 1086, + "w": 15, + "h": 30, + "conf": 91.0 + }, + { + "text": "e", + "x": 304, + "y": 1080, + "w": 20, + "h": 36, + "conf": 89.0 + }, + { + "text": "-", + "x": 324, + "y": 1080, + "w": 20, + "h": 36, + "conf": 89.0 + }, + { + "text": "m", + "x": 345, + "y": 1080, + "w": 20, + "h": 36, + "conf": 89.0 + }, + { + "text": "a", + "x": 366, + "y": 1080, + "w": 20, + "h": 36, + "conf": 89.0 + }, + { + "text": "i", + "x": 387, + "y": 1080, + "w": 20, + "h": 36, + "conf": 89.0 + }, + { + "text": "l", + "x": 408, + "y": 1080, + "w": 20, + "h": 36, + "conf": 89.0 + }, + { + "text": " ", + "x": 429, + "y": 1080, + "w": 15, + "h": 36, + "conf": 89.0 + }, + { + "text": "o", + "x": 444, + "y": 1091, + "w": 20, + "h": 24, + "conf": 89.0 + }, + { + "text": "r", + "x": 464, + "y": 1091, + "w": 20, + "h": 24, + "conf": 89.0 + }, + { + "text": " ", + "x": 485, + "y": 1091, + "w": 14, + "h": 24, + "conf": 89.0 + }, + { + "text": "b", + "x": 499, + "y": 1080, + "w": 23, + "h": 46, + "conf": 93.0 + }, + { + "text": "y", + "x": 522, + "y": 1080, + "w": 23, + "h": 46, + "conf": 93.0 + }, + { + "text": " ", + "x": 546, + "y": 1080, + "w": 15, + "h": 46, + "conf": 93.0 + }, + { + "text": "e", + "x": 561, + "y": 1080, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "-", + "x": 581, + "y": 1080, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "m", + "x": 602, + "y": 1080, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "a", + "x": 623, + "y": 1080, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "i", + "x": 643, + "y": 1080, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": "l", + "x": 664, + "y": 1080, + "w": 20, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 685, + "y": 1080, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "t", + "x": 701, + "y": 1086, + "w": 18, + "h": 29, + "conf": 92.0 + }, + { + "text": "o", + "x": 719, + "y": 1086, + "w": 18, + "h": 29, + "conf": 92.0 + }, + { + "text": " ", + "x": 738, + "y": 1086, + "w": 10, + "h": 29, + "conf": 92.0 + }, + { + "text": "j", + "x": 748, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "e", + "x": 769, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "e", + "x": 791, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "v", + "x": 813, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "a", + "x": 834, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "c", + "x": 856, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "a", + "x": 878, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "t", + "x": 900, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "i", + "x": 921, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "o", + "x": 943, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "n", + "x": 965, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "(", + "x": 987, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "@", + "x": 1008, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "g", + "x": 1030, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "m", + "x": 1052, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "a", + "x": 1074, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "i", + "x": 1095, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "l", + "x": 1117, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": ".", + "x": 1139, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "c", + "x": 1161, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "o", + "x": 1182, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": "m", + "x": 1204, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": ",", + "x": 1226, + "y": 1080, + "w": 21, + "h": 47, + "conf": 74.0 + }, + { + "text": " ", + "x": 1248, + "y": 1080, + "w": 16, + "h": 47, + "conf": 74.0 + }, + { + "text": "a", + "x": 1264, + "y": 1080, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": "n", + "x": 1287, + "y": 1080, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": "d", + "x": 1310, + "y": 1080, + "w": 23, + "h": 36, + "conf": 92.0 + } + ], + "x": 172, + "y": 1080, + "w": 1161, + "h": 47, + "text": "return e-mail or by e-mail to jeevacation(@gmail.com, and" + }, + { + "chars": [ + { + "text": "d", + "x": 172, + "y": 1136, + "w": 20, + "h": 47, + "conf": 91.0 + }, + { + "text": "e", + "x": 192, + "y": 1136, + "w": 20, + "h": 47, + "conf": 91.0 + }, + { + "text": "s", + "x": 213, + "y": 1136, + "w": 20, + "h": 47, + "conf": 91.0 + }, + { + "text": "t", + "x": 233, + "y": 1136, + "w": 20, + "h": 47, + "conf": 91.0 + }, + { + "text": "r", + "x": 254, + "y": 1136, + "w": 20, + "h": 47, + "conf": 91.0 + }, + { + "text": "o", + "x": 274, + "y": 1136, + "w": 20, + "h": 47, + "conf": 91.0 + }, + { + "text": "y", + "x": 295, + "y": 1136, + "w": 20, + "h": 47, + "conf": 91.0 + }, + { + "text": " ", + "x": 316, + "y": 1136, + "w": 16, + "h": 47, + "conf": 91.0 + }, + { + "text": "t", + "x": 332, + "y": 1136, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": "h", + "x": 349, + "y": 1136, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": "i", + "x": 367, + "y": 1136, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": "s", + "x": 384, + "y": 1136, + "w": 17, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 402, + "y": 1136, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": "c", + "x": 417, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "o", + "x": 440, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "m", + "x": 464, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "m", + "x": 488, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "u", + "x": 511, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "n", + "x": 535, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "i", + "x": 559, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "c", + "x": 582, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "a", + "x": 606, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "t", + "x": 630, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "i", + "x": 653, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "o", + "x": 677, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": "n", + "x": 701, + "y": 1136, + "w": 23, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 725, + "y": 1136, + "w": 15, + "h": 36, + "conf": 90.0 + }, + { + "text": "a", + "x": 740, + "y": 1136, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": "n", + "x": 763, + "y": 1136, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": "d", + "x": 787, + "y": 1136, + "w": 23, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 811, + "y": 1136, + "w": 14, + "h": 36, + "conf": 92.0 + }, + { + "text": "a", + "x": 825, + "y": 1136, + "w": 15, + "h": 36, + "conf": 90.0 + }, + { + "text": "l", + "x": 840, + "y": 1136, + "w": 15, + "h": 36, + "conf": 90.0 + }, + { + "text": "l", + "x": 856, + "y": 1136, + "w": 15, + "h": 36, + "conf": 90.0 + }, + { + "text": " ", + "x": 872, + "y": 1136, + "w": 16, + "h": 36, + "conf": 90.0 + }, + { + "text": "c", + "x": 888, + "y": 1136, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "o", + "x": 908, + "y": 1136, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "p", + "x": 929, + "y": 1136, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "i", + "x": 950, + "y": 1136, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "e", + "x": 971, + "y": 1136, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "s", + "x": 992, + "y": 1136, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": " ", + "x": 1013, + "y": 1136, + "w": 15, + "h": 47, + "conf": 90.0 + }, + { + "text": "t", + "x": 1028, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + }, + { + "text": "h", + "x": 1046, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + }, + { + "text": "e", + "x": 1065, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + }, + { + "text": "r", + "x": 1084, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + }, + { + "text": "e", + "x": 1103, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + }, + { + "text": "o", + "x": 1121, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + }, + { + "text": "f", + "x": 1140, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + }, + { + "text": ",", + "x": 1159, + "y": 1136, + "w": 18, + "h": 41, + "conf": 72.0 + } + ], + "x": 172, + "y": 1136, + "w": 1005, + "h": 47, + "text": "destroy this communication and all copies thereof," + }, + { + "chars": [ + { + "text": "i", + "x": 173, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "n", + "x": 193, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "c", + "x": 214, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "l", + "x": 235, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "u", + "x": 255, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "d", + "x": 276, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "i", + "x": 297, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "n", + "x": 317, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": "g", + "x": 338, + "y": 1192, + "w": 20, + "h": 47, + "conf": 90.0 + }, + { + "text": " ", + "x": 359, + "y": 1192, + "w": 15, + "h": 47, + "conf": 90.0 + }, + { + "text": "a", + "x": 374, + "y": 1192, + "w": 15, + "h": 36, + "conf": 93.0 + }, + { + "text": "l", + "x": 389, + "y": 1192, + "w": 15, + "h": 36, + "conf": 93.0 + }, + { + "text": "l", + "x": 404, + "y": 1192, + "w": 15, + "h": 36, + "conf": 93.0 + }, + { + "text": " ", + "x": 420, + "y": 1192, + "w": 16, + "h": 36, + "conf": 93.0 + }, + { + "text": "a", + "x": 436, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 456, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 477, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "a", + "x": 498, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "c", + "x": 518, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "h", + "x": 539, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "m", + "x": 560, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "e", + "x": 580, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "n", + "x": 601, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "t", + "x": 622, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": "s", + "x": 642, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": ".", + "x": 663, + "y": 1193, + "w": 20, + "h": 35, + "conf": 92.0 + }, + { + "text": " ", + "x": 684, + "y": 1193, + "w": 16, + "h": 35, + "conf": 92.0 + }, + { + "text": "c", + "x": 700, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "o", + "x": 721, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "p", + "x": 742, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "y", + "x": 763, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "r", + "x": 784, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "i", + "x": 805, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "g", + "x": 826, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "h", + "x": 847, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": "t", + "x": 868, + "y": 1192, + "w": 21, + "h": 47, + "conf": 92.0 + }, + { + "text": " ", + "x": 890, + "y": 1192, + "w": 15, + "h": 47, + "conf": 92.0 + }, + { + "text": "-", + "x": 905, + "y": 1192, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": "a", + "x": 920, + "y": 1192, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": "l", + "x": 936, + "y": 1192, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": "l", + "x": 951, + "y": 1192, + "w": 15, + "h": 36, + "conf": 92.0 + }, + { + "text": " ", + "x": 967, + "y": 1192, + "w": 16, + "h": 36, + "conf": 92.0 + }, + { + "text": "r", + "x": 983, + "y": 1193, + "w": 18, + "h": 46, + "conf": 93.0 + }, + { + "text": "i", + "x": 1001, + "y": 1193, + "w": 18, + "h": 46, + "conf": 93.0 + }, + { + "text": "g", + "x": 1020, + "y": 1193, + "w": 18, + "h": 46, + "conf": 93.0 + }, + { + "text": "h", + "x": 1039, + "y": 1193, + "w": 18, + "h": 46, + "conf": 93.0 + }, + { + "text": "t", + "x": 1057, + "y": 1193, + "w": 18, + "h": 46, + "conf": 93.0 + }, + { + "text": "s", + "x": 1076, + "y": 1193, + "w": 18, + "h": 46, + "conf": 93.0 + }, + { + "text": " ", + "x": 1095, + "y": 1193, + "w": 15, + "h": 46, + "conf": 93.0 + }, + { + "text": "r", + "x": 1110, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + }, + { + "text": "e", + "x": 1130, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + }, + { + "text": "s", + "x": 1151, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + }, + { + "text": "e", + "x": 1172, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + }, + { + "text": "r", + "x": 1193, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + }, + { + "text": "v", + "x": 1214, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + }, + { + "text": "e", + "x": 1235, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + }, + { + "text": "d", + "x": 1256, + "y": 1192, + "w": 20, + "h": 36, + "conf": 93.0 + } + ], + "x": 173, + "y": 1192, + "w": 1103, + "h": 47, + "text": "including all attachments. copyright -all rights reserved" + }, + { + "chars": [ + { + "text": "E", + "x": 2174, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "F", + "x": 2202, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "T", + "x": 2230, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "A", + "x": 2258, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "0", + "x": 2286, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "0", + "x": 2314, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "5", + "x": 2342, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "5", + "x": 2370, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "4", + "x": 2398, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "6", + "x": 2426, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "2", + "x": 2454, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + }, + { + "text": "1", + "x": 2482, + "y": 3308, + "w": 28, + "h": 38, + "conf": 85.0 + } + ], + "x": 2174, + "y": 3308, + "w": 336, + "h": 38, + "text": "EFTA00554621" + } + ], + "llm_tool_input": { + "redactions": [ + { + "line_index": 1, + "left_word": "francis", + "right_word": "" + }, + { + "line_index": 4, + "left_word": "", + "right_word": "" + } + ] + }, + "llm_redactions": [ + { + "line_index": 1, + "left_word": "francis", + "right_word": "", + "left_x": 387, + "right_x": 975, + "line_y": 132, + "line_h": 99 + }, + { + "line_index": 4, + "left_word": "", + "right_word": "", + "left_x": 174, + "right_x": 1642, + "line_y": 514, + "line_h": 33 + } + ] +} \ No newline at end of file diff --git a/tests/test_font_detect_real.py b/tests/test_font_detect_real.py new file mode 100644 index 0000000..8e7b8f0 --- /dev/null +++ b/tests/test_font_detect_real.py @@ -0,0 +1,147 @@ +"""Font detection tests using real document data. + +Uses captured OCR + LLM fixtures from EFTA00554620.pdf to verify that +font detection returns Times New Roman (or Liberation Serif) at ~50px +for the body text. +""" + +import json +from pathlib import Path + +import numpy as np +import pytest +from PIL import Image + +from unredact.pipeline.font_detect import ( + detect_font_for_line, + detect_font_masked, + _find_font_path, +) +from unredact.pipeline.ocr import OcrChar, OcrLine + +FIXTURES = Path(__file__).parent / "fixtures" +PAGE1_JSON = FIXTURES / "EFTA00554620_page1.json" +PAGE1_PNG = FIXTURES / "EFTA00554620_page1.png" + + +def _load_fixture(): + """Load OCR lines from the JSON fixture as OcrLine objects.""" + data = json.loads(PAGE1_JSON.read_text()) + lines = [] + for ld in data["ocr_lines"]: + chars = [ + OcrChar(text=c["text"], x=c["x"], y=c["y"], w=c["w"], h=c["h"], conf=c["conf"]) + for c in ld["chars"] + ] + lines.append(OcrLine(chars=chars, x=ld["x"], y=ld["y"], w=ld["w"], h=ld["h"])) + return data, lines + + +def _load_page_image(): + return Image.open(PAGE1_PNG) + + +def _is_serif(name: str) -> bool: + """Check if the font name is a serif font.""" + return any(s in name for s in ("Times", "Liberation Serif", "Georgia", "DejaVu Serif")) + + +# Skip all tests if fixtures missing +pytestmark = pytest.mark.skipif( + not PAGE1_JSON.exists() or not PAGE1_PNG.exists(), + reason="Real document fixtures not available", +) + + +class TestCleanLines: + """Font detection on lines without redactions.""" + + def test_date_line(self): + """Line 3: 'Date: Mon, 27 Aug 2012 18:57:08 +0000'""" + data, lines = _load_fixture() + page_img = _load_page_image() + line = lines[3] + result = detect_font_for_line(line, page_img) + assert _is_serif(result.font_name), f"Expected serif, got {result.font_name}" + assert 45 <= result.font_size <= 55, f"Expected ~50px, got {result.font_size}" + + def test_body_text_line(self): + """Line 10: 'I need to know if he's out of jerky...'""" + data, lines = _load_fixture() + page_img = _load_page_image() + line = lines[10] + result = detect_font_for_line(line, page_img) + assert _is_serif(result.font_name), f"Expected serif, got {result.font_name}" + assert 45 <= result.font_size <= 55, f"Expected ~50px, got {result.font_size}" + + def test_short_clean_line(self): + """Line 5: 'through it like crazy'""" + data, lines = _load_fixture() + page_img = _load_page_image() + line = lines[5] + result = detect_font_for_line(line, page_img) + assert _is_serif(result.font_name), f"Expected serif, got {result.font_name}" + assert 45 <= result.font_size <= 55, f"Expected ~50px, got {result.font_size}" + + +class TestMaskedLines: + """Font detection on lines with redactions, using LLM output.""" + + def _get_redaction_boxes_for_line(self, data, line_index): + """Get approximate redaction boxes from LLM output for a given line.""" + boxes = [] + for r in data["llm_redactions"]: + if r["line_index"] == line_index: + line_data = data["ocr_lines"][line_index] + # Use LLM's x range as the redaction box + x = r["left_x"] + w = r["right_x"] - r["left_x"] + y = line_data["y"] + h = line_data["h"] + if w > 0: + boxes.append((x, y, w, h)) + return boxes + + def test_got_it_sent_line(self): + """Line 7: 'Got it. Sent[ an email.' — the screenshot case.""" + data, lines = _load_fixture() + page_img = _load_page_image() + line = lines[7] + boxes = self._get_redaction_boxes_for_line(data, 7) + assert len(boxes) > 0, "Expected redaction boxes for line 7" + result = detect_font_masked(line, page_img, boxes) + assert _is_serif(result.font_name), f"Expected serif, got {result.font_name}" + assert 45 <= result.font_size <= 55, f"Expected ~50px, got {result.font_size}" + + def test_from_line_with_redaction(self): + """Line 0: 'From: |-' — redacted email address.""" + data, lines = _load_fixture() + page_img = _load_page_image() + line = lines[0] + boxes = self._get_redaction_boxes_for_line(data, 0) + assert len(boxes) > 0, "Expected redaction boxes for line 0" + result = detect_font_masked(line, page_img, boxes) + assert _is_serif(result.font_name), f"Expected serif, got {result.font_name}" + assert 45 <= result.font_size <= 55, f"Expected ~50px, got {result.font_size}" + + def test_on_aug_line(self): + """Line 6: 'On Aug 27, 2012, at 2:02 PM, — wrote:' — redacted name.""" + data, lines = _load_fixture() + page_img = _load_page_image() + line = lines[6] + boxes = self._get_redaction_boxes_for_line(data, 6) + assert len(boxes) > 0, "Expected redaction boxes for line 6" + result = detect_font_masked(line, page_img, boxes) + assert _is_serif(result.font_name), f"Expected serif, got {result.font_name}" + assert 45 <= result.font_size <= 55, f"Expected ~50px, got {result.font_size}" + + def test_let_or_know_line(self): + """Line 19: multiple redactions — 'let ]l or ] know what to do...'""" + data, lines = _load_fixture() + page_img = _load_page_image() + line = lines[19] + boxes = self._get_redaction_boxes_for_line(data, 19) + assert len(boxes) >= 2, f"Expected multiple redaction boxes, got {len(boxes)}" + result = detect_font_masked(line, page_img, boxes) + assert _is_serif(result.font_name), f"Expected serif, got {result.font_name}" + assert 45 <= result.font_size <= 55, f"Expected ~50px, got {result.font_size}" diff --git a/tests/test_pipeline_ground_truth.py b/tests/test_pipeline_ground_truth.py new file mode 100644 index 0000000..ac46a1e --- /dev/null +++ b/tests/test_pipeline_ground_truth.py @@ -0,0 +1,121 @@ +"""Pipeline tests against hand-annotated ground truth. + +Uses EFTA00554620 page 1 ground truth (header lines excluded). +Validates that the pipeline produces correct bounding boxes, font +detection, and text segmentation for body-text redactions. +""" + +import json +from pathlib import Path + +import pytest +from PIL import Image + +from unredact.pipeline.ocr import OcrChar, OcrLine +from unredact.pipeline.font_detect import detect_font_masked, _find_font_path +from unredact.pipeline.detect_redactions import find_redaction_in_region + +FIXTURES = Path(__file__).parent / "fixtures" +GROUND_TRUTH = FIXTURES / "EFTA00554620_ground_truth.json" +PAGE1_JSON = FIXTURES / "EFTA00554620_page1.json" +PAGE1_PNG = FIXTURES / "EFTA00554620_page1.png" + +pytestmark = pytest.mark.skipif( + not all(p.exists() for p in [GROUND_TRUTH, PAGE1_JSON, PAGE1_PNG]), + reason="Fixtures not available", +) + + +def _load_ground_truth_page1(): + data = json.loads(GROUND_TRUTH.read_text()) + return data["pages"]["1"] + + +def _load_ocr_lines(): + data = json.loads(PAGE1_JSON.read_text()) + lines = [] + for ld in data["ocr_lines"]: + chars = [ + OcrChar(text=c["text"], x=c["x"], y=c["y"], w=c["w"], h=c["h"], conf=c["conf"]) + for c in ld["chars"] + ] + lines.append(OcrLine(chars=chars, x=ld["x"], y=ld["y"], w=ld["w"], h=ld["h"])) + return data, lines + + +def _load_page_image(): + return Image.open(PAGE1_PNG) + + +class TestBoundingBoxes: + """Verify that guided OpenCV finds boxes matching ground truth.""" + + @pytest.fixture + def page_img(self): + return _load_page_image() + + @pytest.fixture + def ground_truth(self): + return _load_ground_truth_page1() + + @pytest.mark.parametrize("idx", range(6)) + def test_box_detection(self, page_img, ground_truth, idx): + gt = ground_truth[idx] + # Search in a generous region around the ground truth box + pad = gt["h"] + box = find_redaction_in_region( + page_img, + gt["x"], gt["y"], + gt["x"] + gt["w"], gt["y"] + gt["h"], + padding=pad, + ) + assert box is not None, f"No box found for redaction at ({gt['x']}, {gt['y']})" + # Box should be close to ground truth (within 15px on each edge) + assert abs(box.x - gt["x"]) < 15, f"x off: {box.x} vs {gt['x']}" + assert abs(box.y - gt["y"]) < 15, f"y off: {box.y} vs {gt['y']}" + assert abs(box.w - gt["w"]) < 30, f"w off: {box.w} vs {gt['w']}" + assert abs(box.h - gt["h"]) < 15, f"h off: {box.h} vs {gt['h']}" + + +class TestFontDetection: + """Verify font detection matches ground truth on redacted lines.""" + + @pytest.fixture + def page_img(self): + return _load_page_image() + + @pytest.fixture + def ocr_data(self): + return _load_ocr_lines() + + @pytest.fixture + def ground_truth(self): + return _load_ground_truth_page1() + + def _find_ocr_line_for_gt(self, lines, gt): + """Find the OCR line that contains this ground truth redaction.""" + gy = gt["y"] + gt["h"] / 2 + for line in lines: + if line.y <= gy <= line.y + line.h: + return line + return None + + @pytest.mark.parametrize("idx", range(6)) + def test_font_match(self, page_img, ocr_data, ground_truth, idx): + gt = ground_truth[idx] + expected_font = gt["overrides"]["fontId"] + expected_size = gt["overrides"]["fontSize"] + _, lines = ocr_data + + line = self._find_ocr_line_for_gt(lines, gt) + assert line is not None, f"No OCR line found for redaction at y={gt['y']}" + + boxes = [(gt["x"], gt["y"], gt["w"], gt["h"])] + result = detect_font_masked(line, page_img, boxes) + + # Font family should be serif (TNR or Liberation Serif) + is_serif = any(s in result.font_name for s in ("Times", "Liberation Serif", "Georgia", "DejaVu Serif")) + assert is_serif, f"Expected serif font, got {result.font_name}" + assert abs(result.font_size - expected_size) <= 5, ( + f"Expected size ~{expected_size}, got {result.font_size}" + ) diff --git a/tests/test_pixel_full_search.py b/tests/test_pixel_full_search.py index 2f74e90..3caced9 100644 --- a/tests/test_pixel_full_search.py +++ b/tests/test_pixel_full_search.py @@ -2,7 +2,7 @@ import numpy as np from PIL import Image, ImageDraw, ImageFont -from unredact.pipeline.font_detect import _find_font_path, _full_search +from unredact.pipeline.font_detect import _find_font_path, _full_search, _score_font_line_pixel from unredact.pipeline.ocr import OcrChar, OcrLine @@ -61,7 +61,8 @@ def test_full_search_finds_correct_serif(): text = "Got it. Sent an email." line, crop = _make_line_and_crop("Times New Roman", 50, text) - best = _full_search(line, crop) + scorer = lambda font: _score_font_line_pixel(font, line, crop) + best = _full_search(line.h, scorer) assert best is not None assert "Times" in best.font_name or "Liberation Serif" in best.font_name, ( f"Expected serif font, got {best.font_name}" @@ -76,7 +77,8 @@ def test_full_search_finds_correct_sans(): text = "The quick brown fox jumps." line, crop = _make_line_and_crop("Arial", 44, text) - best = _full_search(line, crop) + scorer = lambda font: _score_font_line_pixel(font, line, crop) + best = _full_search(line.h, scorer) assert best is not None assert "Arial" in best.font_name or "Liberation Sans" in best.font_name, ( f"Expected sans-serif font, got {best.font_name}" diff --git a/unredact/app.py b/unredact/app.py index 27ffd56..12ac774 100644 --- a/unredact/app.py +++ b/unredact/app.py @@ -19,6 +19,7 @@ from sse_starlette.sse import EventSourceResponse from unredact.pipeline.rasterize import rasterize_pdf from unredact.pipeline.font_detect import CANDIDATE_FONTS, _find_font_path from unredact.pipeline.analyze_page import analyze_page +from unredact.pipeline.detect_redactions import spot_redaction from unredact.pipeline.solver import build_constraint, SolveResult from unredact.pipeline.dictionary import DictionaryStore, solve_dictionary from unredact.pipeline.word_filter import _get_emails @@ -135,7 +136,16 @@ async def analyze_doc(doc_id: str): async def event_generator(): for page_num, pd in doc["pages"].items(): page_img = pd["original"] - analysis = await analyze_page(page_img) + try: + analysis = await analyze_page(page_img) + except Exception as exc: + yield json.dumps({ + "event": "error", + "page": page_num, + "message": str(exc), + }) + continue + pd["analysis"] = analysis redactions_json = [] @@ -454,6 +464,20 @@ async def get_associates(): return _get_associates() +@app.post("/api/doc/{doc_id}/page/{page}/spot") +async def spot(doc_id: str, page: int, data: dict): + doc = _docs.get(doc_id) + if not doc or page not in doc["pages"]: + return JSONResponse({"error": "not found"}, status_code=404) + click_x = int(data["x"]) + click_y = int(data["y"]) + page_img = doc["pages"][page]["original"] + result = spot_redaction(page_img, click_x, click_y) + if result is None: + return JSONResponse({"error": "no redaction found"}, status_code=404) + return {"id": result.id, "x": result.x, "y": result.y, "w": result.w, "h": result.h} + + # Static files mount MUST be after all route definitions if STATIC_DIR.exists(): app.mount("/static", StaticFiles(directory=str(STATIC_DIR), html=True), name="static") diff --git a/unredact/pipeline/analyze_page.py b/unredact/pipeline/analyze_page.py index cf397ee..ad65a34 100644 --- a/unredact/pipeline/analyze_page.py +++ b/unredact/pipeline/analyze_page.py @@ -88,6 +88,9 @@ async def analyze_page( # LlmRedaction to Redaction box (or None if not found). llm_to_box: dict[int, Redaction | None] = {} for i, llm_red in enumerate(llm_redactions): + # Use line height as padding — OCR positions near redactions are + # unreliable because artifacts compress the visual gap. + pad = llm_red.line_h box = await asyncio.to_thread( find_redaction_in_region, page_image, @@ -95,6 +98,7 @@ async def analyze_page( llm_red.line_y, llm_red.right_x, llm_red.line_y + llm_red.line_h, + pad, ) llm_to_box[i] = box diff --git a/unredact/pipeline/font_detect.py b/unredact/pipeline/font_detect.py index 7e96a80..31bcb83 100644 --- a/unredact/pipeline/font_detect.py +++ b/unredact/pipeline/font_detect.py @@ -1,11 +1,12 @@ from dataclasses import dataclass from functools import lru_cache from pathlib import Path +from typing import Callable import numpy as np from PIL import Image, ImageDraw, ImageFont -from unredact.pipeline.ocr import OcrLine +from unredact.pipeline.ocr import OcrChar, OcrLine # Candidate fonts to test (common document fonts available on the system) CANDIDATE_FONTS: list[str] = [ @@ -202,14 +203,21 @@ def align_text_to_page( return (-best_dx, -best_dy) -def _full_search(line: OcrLine, line_crop: np.ndarray) -> FontMatch | None: - """Full search across all candidate fonts and sizes for one line.""" +def _full_search( + line_h: int, + scorer: Callable[[ImageFont.FreeTypeFont], float], +) -> FontMatch | None: + """Full search across all candidate fonts and sizes. + + Args: + line_h: OCR line height in pixels (used to bound the size search). + scorer: Callable that takes a PIL font and returns a score (0.0–1.0). + """ best: FontMatch | None = None # Constrain size range using the OCR line height. # Pixel scoring has sharp peaks at the exact size, so we scan # every integer size (step=1) instead of using a coarse step. - line_h = line.h min_size = max(12, int(line_h * 0.6)) max_size = min(120, int(line_h * 1.4)) @@ -224,7 +232,7 @@ def _full_search(line: OcrLine, line_crop: np.ndarray) -> FontMatch | None: except Exception: continue - score = _score_font_line_pixel(font, line, line_crop) + score = scorer(font) if best is None or score > best.score: best = FontMatch( @@ -237,7 +245,10 @@ def _full_search(line: OcrLine, line_crop: np.ndarray) -> FontMatch | None: return best -def _fine_search(line: OcrLine, line_crop: np.ndarray, coarse: FontMatch) -> FontMatch: +def _fine_search( + coarse: FontMatch, + scorer: Callable[[ImageFont.FreeTypeFont], float], +) -> FontMatch: """Fine search: ±3 around the coarse best size in steps of 1.""" best = coarse for size in range(max(8, coarse.font_size - 3), coarse.font_size + 4): @@ -247,7 +258,7 @@ def _fine_search(line: OcrLine, line_crop: np.ndarray, coarse: FontMatch) -> Fon font = ImageFont.truetype(str(coarse.font_path), size) except Exception: continue - score = _score_font_line_pixel(font, line, line_crop) + score = scorer(font) if score > best.score: best = FontMatch( font_name=coarse.font_name, @@ -268,10 +279,112 @@ def detect_font_for_line_from_crop( (e.g. the non-redacted portion of a line). The line's x/y should be 0,0 (crop-relative coordinates). """ - best = _full_search(line, line_crop) + scorer = lambda font: _score_font_line_pixel(font, line, line_crop) + best = _full_search(line.h, scorer) if best is None: raise RuntimeError("No matching font found. Check system fonts.") - return _fine_search(line, line_crop, best) + return _fine_search(best, scorer) + + +def _filter_clean_chars( + chars: list[OcrChar], + redaction_boxes: list[tuple[int, int, int, int]], +) -> list[OcrChar]: + """Return chars whose center doesn't fall inside any redaction box.""" + clean = [] + for c in chars: + cx = c.x + c.w / 2 + cy = c.y + c.h / 2 + in_box = False + for rx, ry, rw, rh in redaction_boxes: + if rx <= cx <= rx + rw and ry <= cy <= ry + rh: + in_box = True + break + if not in_box: + clean.append(c) + return clean + + +def _group_chars_into_runs(chars: list[OcrChar]) -> list[list[OcrChar]]: + """Group consecutive chars into word-like runs for rendering. + + Chars that are spatially close (same y, adjacent x) are grouped so + they can be rendered as a single string, preserving kerning. + """ + if not chars: + return [] + runs: list[list[OcrChar]] = [] + current = [chars[0]] + for c in chars[1:]: + prev = current[-1] + # Same vertical position and horizontally adjacent (within 5px gap) + if c.y == prev.y and c.x <= prev.x + prev.w + 5: + current.append(c) + else: + runs.append(current) + current = [c] + runs.append(current) + return runs + + +def _score_font_masked_pixel( + font: ImageFont.FreeTypeFont, + char_runs: list[list[OcrChar]], + line_x: int, + line_y: int, + line_crop: np.ndarray, +) -> float: + """Score font by rendering clean char runs at their OCR positions. + + Unlike _score_font_line_pixel which renders the full line text as a + single string, this renders each word-like run at its actual OCR + position. This correctly handles the spatial gap where a redaction + was masked out, preventing: + - OCR artifacts from producing false ink + - Right-side text from rendering at the wrong x position + - Large fonts from getting inflated scores due to canvas overflow + """ + h, w = line_crop.shape + if h < 5 or w < 10: + return 0.0 + + page_bin = line_crop < 128 + page_ink = int(page_bin.sum()) + if page_ink < 10: + return 0.0 + + # Render each run at its OCR position + rendered_img = Image.new("L", (w, h), 255) + draw = ImageDraw.Draw(rendered_img) + + for run in char_runs: + text = "".join(c.text for c in run) + if not text.strip(): + continue + # Crop-relative position of the run's first char + cx = run[0].x - line_x + cy = run[0].y - line_y + bbox = font.getbbox(text) + draw.text((cx - bbox[0], cy - bbox[1]), text, font=font, fill=0) + + rendered_arr = np.array(rendered_img) + rendered_bin = rendered_arr < 128 + + rendered_ink = int(rendered_bin.sum()) + if rendered_ink < 10: + return 0.0 + + # Try small shifts to find best alignment, using Dice coefficient + best_score = 0.0 + total_ink = page_ink + rendered_ink + for dy in range(-3, 4): + for dx in range(-3, 4): + shifted = _shift_2d(rendered_bin, dx, dy) + intersection = int((page_bin & shifted).sum()) + score = 2.0 * intersection / total_ink if total_ink > 0 else 0.0 + if score > best_score: + best_score = score + return best_score def detect_font_masked( @@ -279,13 +392,11 @@ def detect_font_masked( page_image: Image.Image, redaction_boxes: list[tuple[int, int, int, int]], ) -> FontMatch: - """Detect the best font by masking redaction boxes to white before scoring. + """Detect the best font by masking redaction boxes and scoring clean chars. - Instead of cropping just the unredacted portion of a line (which loses - signal from narrow crops and coordinate mismatches), this masks each - redaction box to white (255) in the full line crop. The Dice-based pixel - scoring naturally ignores the masked (white) regions since they contain - no ink pixels. + Masks each redaction box to white in the page crop, then renders only + the non-redacted characters at their OCR positions for scoring. This + ensures the rendered text matches the spatial layout of the page. Args: line: OCR line with page-relative coordinates. @@ -301,33 +412,31 @@ def detect_font_masked( page_image.convert("L").crop((line.x, line.y, line.x + line.w, line.y + line.h)) ) - # 2. Mask each redaction box to white (255) — convert page-relative to crop-relative + # 2. Mask each redaction box to white (255) for rx, ry, rw, rh in redaction_boxes: - # Convert from page coordinates to crop-relative coordinates cx = rx - line.x cy = ry - line.y - - # Clip to the crop bounds x0 = max(0, cx) y0 = max(0, cy) x1 = min(line.w, cx + rw) y1 = min(line.h, cy + rh) - if x0 < x1 and y0 < y1: line_crop[y0:y1, x0:x1] = 255 - # 3. Create a scoring line with crop-relative coordinates (x=0, y=0) - scoring_line = OcrLine( - chars=line.chars, - x=0, y=0, - w=line.w, h=line.h, - ) + # 3. Filter out chars in redaction zones, group into runs + clean_chars = _filter_clean_chars(line.chars, redaction_boxes) + if not clean_chars: + raise RuntimeError("No clean chars outside redaction boxes.") + char_runs = _group_chars_into_runs(clean_chars) - # 4. Full search then fine search - best = _full_search(scoring_line, line_crop) + # 4. Search using position-aware masked scoring + scorer = lambda font: _score_font_masked_pixel( + font, char_runs, line.x, line.y, line_crop, + ) + best = _full_search(line.h, scorer) if best is None: raise RuntimeError("No matching font found. Check system fonts.") - return _fine_search(scoring_line, line_crop, best) + return _fine_search(best, scorer) def detect_font_for_line( @@ -352,6 +461,8 @@ def detect_font_for_line( w=line.w, h=line.h, ) + scorer = lambda font: _score_font_line_pixel(font, scoring_line, line_crop) + # Lines with too few characters can't be scored reliably if len(line.text.strip()) < 3: if prior is not None: @@ -363,24 +474,24 @@ def detect_font_for_line( if prior is not None: try: prior_font = prior.to_pil_font() - prior_score = _score_font_line_pixel(prior_font, scoring_line, line_crop) + prior_score = scorer(prior_font) except Exception: pass # Full search - best = _full_search(scoring_line, line_crop) + best = _full_search(line.h, scorer) if best is None: if prior is not None: return prior raise RuntimeError("No matching font found. Check system fonts.") # Fine-tune the full search winner - best = _fine_search(scoring_line, line_crop, best) + best = _fine_search(best, scorer) # If we have a prior and it's close enough, prefer it for consistency if prior is not None and prior_score >= best.score * (1.0 / PRIOR_BIAS): # Fine-tune the prior too - return _fine_search(scoring_line, line_crop, prior) + return _fine_search(prior, scorer) return best diff --git a/unredact/pipeline/llm_detect.py b/unredact/pipeline/llm_detect.py index e76e0b3..d30a151 100644 --- a/unredact/pipeline/llm_detect.py +++ b/unredact/pipeline/llm_detect.py @@ -65,6 +65,10 @@ def _get_client() -> anthropic.AsyncAnthropic: """Return a cached async Anthropic client.""" global _client if _client is None: + if not os.environ.get("ANTHROPIC_API_KEY"): + raise RuntimeError( + "ANTHROPIC_API_KEY not set. Export it before running the server." + ) _client = anthropic.AsyncAnthropic() return _client @@ -249,7 +253,7 @@ async def detect_redactions_llm( response = await client.messages.create( model=model, - max_tokens=1024, + max_tokens=2048, tools=[_TOOL], tool_choice={"type": "tool", "name": "report_redactions"}, messages=[{"role": "user", "content": prompt}], diff --git a/unredact/static/canvas.js b/unredact/static/canvas.js index 031c33e..49e6436 100644 --- a/unredact/static/canvas.js +++ b/unredact/static/canvas.js @@ -4,6 +4,72 @@ import { state, getPageRedactions } from './state.js'; import { canvas, ctx, docImage } from './dom.js'; +/** + * Parse text with **bold** markers into styled segments. + * @param {string} text + * @returns {{text: string, bold: boolean}[]} + */ +function parseStyledText(text) { + const segments = []; + const re = /\*\*(.+?)\*\*/g; + let last = 0; + let m; + while ((m = re.exec(text)) !== null) { + if (m.index > last) { + segments.push({ text: text.slice(last, m.index), bold: false }); + } + segments.push({ text: m[1], bold: true }); + last = m.index + m[0].length; + } + if (last < text.length) { + segments.push({ text: text.slice(last), bold: false }); + } + return segments.length ? segments : [{ text, bold: false }]; +} + +/** + * Draw styled text on canvas, switching font weight for bold segments. + * @param {string} text - Text with optional **bold** markers. + * @param {number} x + * @param {number} y + * @param {string} fontName + * @param {number} fontSize + * @param {string} fillStyle + * @returns {number} Total width drawn. + */ +function drawStyledText(text, x, y, fontName, fontSize, fillStyle) { + const segments = parseStyledText(text); + let cx = x; + ctx.fillStyle = fillStyle; + for (const seg of segments) { + ctx.font = seg.bold + ? `bold ${fontSize}px "${fontName}"` + : `${fontSize}px "${fontName}"`; + ctx.fillText(seg.text, cx, y); + cx += ctx.measureText(seg.text).width; + } + return cx - x; +} + +/** + * Measure styled text width, accounting for bold segments. + * @param {string} text + * @param {string} fontName + * @param {number} fontSize + * @returns {number} + */ +function measureStyledText(text, fontName, fontSize) { + const segments = parseStyledText(text); + let w = 0; + for (const seg of segments) { + ctx.font = seg.bold + ? `bold ${fontSize}px "${fontName}"` + : `${fontSize}px "${fontName}"`; + w += ctx.measureText(seg.text).width; + } + return w; +} + export function renderCanvas() { if (!docImage.naturalWidth || !state.fontsReady) return; @@ -67,16 +133,13 @@ function drawRedactionAnalyzed(r, isActive) { const startX = a.line.x + (o.offsetX ?? 0); const startY = a.line.y + (o.offsetY ?? 0); - ctx.font = fontStr; ctx.textBaseline = "top"; let cursorX = startX; const leftText = o.leftText ?? ""; if (leftText) { - ctx.fillStyle = "rgba(0, 200, 0, 0.7)"; - ctx.fillText(leftText, cursorX, startY); - cursorX += ctx.measureText(leftText).width; + cursorX += drawStyledText(leftText, cursorX, startY, fontName, fontSize, "rgba(0, 200, 0, 0.7)"); } const pad = fontSize * 0.15; @@ -91,14 +154,12 @@ function drawRedactionAnalyzed(r, isActive) { const label = `${Math.round(gapW)}px`; const labelW = ctx.measureText(label).width; ctx.fillText(label, cursorX + (gapW - labelW) / 2, startY + fontSize * 0.3); - ctx.font = fontStr; cursorX += gapW; const rightText = o.rightText ?? ""; if (rightText) { - ctx.fillStyle = "rgba(0, 200, 0, 0.7)"; - ctx.fillText(rightText, cursorX, startY); + drawStyledText(rightText, cursorX, startY, fontName, fontSize, "rgba(0, 200, 0, 0.7)"); } ctx.strokeStyle = "rgba(0, 200, 0, 0.3)"; @@ -123,16 +184,13 @@ function drawRedactionPreview(r, isActive) { const startX = a.line.x + (o.offsetX ?? 0); const startY = a.line.y + (o.offsetY ?? 0); - ctx.font = fontStr; ctx.textBaseline = "top"; let cursorX = startX; const leftText = o.leftText ?? ""; if (leftText) { - ctx.fillStyle = "rgba(0, 200, 0, 0.7)"; - ctx.fillText(leftText, cursorX, startY); - cursorX += ctx.measureText(leftText).width; + cursorX += drawStyledText(leftText, cursorX, startY, fontName, fontSize, "rgba(0, 200, 0, 0.7)"); } const pad = fontSize * 0.15; @@ -150,26 +208,27 @@ function drawRedactionPreview(r, isActive) { const rightText = o.rightText ?? ""; if (rightText) { - ctx.fillStyle = "rgba(0, 200, 0, 0.7)"; - ctx.fillText(rightText, cursorX, startY); + drawStyledText(rightText, cursorX, startY, fontName, fontSize, "rgba(0, 200, 0, 0.7)"); } ctx.strokeStyle = "rgba(0, 200, 0, 0.3)"; ctx.lineWidth = 1; ctx.strokeRect(a.line.x, a.line.y, a.line.w, a.line.h); } else { + const gapX = a.gap.x + (o.offsetX ?? 0); + const textY = a.line.y + (o.offsetY ?? 0); const pad = fontSize * 0.1; ctx.fillStyle = "rgba(255, 200, 0, 0.12)"; - ctx.fillRect(a.gap.x, r.y - pad, gapW, r.h + pad * 2); + ctx.fillRect(gapX, textY - pad, gapW, fontSize + pad * 2); ctx.strokeStyle = "rgba(255, 200, 0, 0.5)"; ctx.lineWidth = 1; - ctx.strokeRect(a.gap.x, r.y - pad, gapW, r.h + pad * 2); + ctx.strokeRect(gapX, textY - pad, gapW, fontSize + pad * 2); ctx.font = fontStr; ctx.textBaseline = "top"; ctx.fillStyle = "rgba(255, 200, 0, 0.9)"; - ctx.fillText(r.preview, a.gap.x, a.line.y); + ctx.fillText(r.preview, gapX, textY); } } @@ -190,16 +249,13 @@ function drawRedactionSolution(r, isActive) { const startX = a.line.x + (o.offsetX ?? 0); const startY = a.line.y + (o.offsetY ?? 0); - ctx.font = fontStr; ctx.textBaseline = "top"; let cursorX = startX; const leftText = o.leftText ?? ""; if (leftText) { - ctx.fillStyle = "rgba(0, 200, 0, 0.7)"; - ctx.fillText(leftText, cursorX, startY); - cursorX += ctx.measureText(leftText).width; + cursorX += drawStyledText(leftText, cursorX, startY, fontName, fontSize, "rgba(0, 200, 0, 0.7)"); } const pad = fontSize * 0.15; @@ -217,25 +273,26 @@ function drawRedactionSolution(r, isActive) { const rightText = o.rightText ?? ""; if (rightText) { - ctx.fillStyle = "rgba(0, 200, 0, 0.7)"; - ctx.fillText(rightText, cursorX, startY); + drawStyledText(rightText, cursorX, startY, fontName, fontSize, "rgba(0, 200, 0, 0.7)"); } ctx.strokeStyle = "rgba(0, 200, 0, 0.3)"; ctx.lineWidth = 1; ctx.strokeRect(a.line.x, a.line.y, a.line.w, a.line.h); } else { + const gapX = a.gap.x + (o.offsetX ?? 0); + const textY = a.line.y + (o.offsetY ?? 0); const pad = fontSize * 0.1; ctx.fillStyle = "rgba(0, 212, 116, 0.08)"; - ctx.fillRect(a.gap.x, r.y - pad, gapW, r.h + pad * 2); + ctx.fillRect(gapX, textY - pad, gapW, fontSize + pad * 2); ctx.strokeStyle = "rgba(0, 212, 116, 0.4)"; ctx.lineWidth = 1; - ctx.strokeRect(a.gap.x, r.y - pad, gapW, r.h + pad * 2); + ctx.strokeRect(gapX, textY - pad, gapW, fontSize + pad * 2); ctx.font = fontStr; ctx.textBaseline = "top"; ctx.fillStyle = "rgba(0, 212, 116, 0.95)"; - ctx.fillText(r.solution.text, a.gap.x, a.line.y); + ctx.fillText(r.solution.text, gapX, textY); } } diff --git a/unredact/static/main.js b/unredact/static/main.js index 94a9f40..4a72fc1 100644 --- a/unredact/static/main.js +++ b/unredact/static/main.js @@ -115,6 +115,8 @@ function startAnalysisSSE() { if (data.event === "page_complete") { // Reload the page data to pick up pre-computed analysis loadPageData(data.page); + } else if (data.event === "error") { + showToast(`Page ${data.page}: ${data.message}`, "error"); } else if (data.event === "done") { es.close(); showToast("Analysis complete"); @@ -304,6 +306,33 @@ canvas.addEventListener("mousedown", (e) => { } }); +canvas.addEventListener("dblclick", async (e) => { + const rect = rightPanel.getBoundingClientRect(); + const sx = e.clientX - rect.left; + const sy = e.clientY - rect.top; + const doc = screenToDoc(sx, sy); + + const resp = await fetch(`/api/doc/${state.docId}/page/${state.currentPage}/spot`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ x: Math.round(doc.x), y: Math.round(doc.y) }), + }); + if (!resp.ok) { + showToast("No redaction found at that spot", "error"); + return; + } + const r = await resp.json(); + state.redactions[r.id] = { + id: r.id, x: r.x, y: r.y, w: r.w, h: r.h, + page: state.currentPage, + status: "unanalyzed", + analysis: null, solution: null, preview: null, + }; + renderRedactionList(); + renderCanvas(); + activateRedaction(r.id); +}); + canvas.addEventListener("mousemove", (e) => { const rect = rightPanel.getBoundingClientRect(); const sx = e.clientX - rect.left; @@ -367,6 +396,67 @@ solveAccept.addEventListener("click", () => { renderCanvas(); }); +// ── Export annotations (Ctrl+E) ── + +function exportAnnotations() { + const pages = {}; + for (const r of Object.values(state.redactions)) { + if (!pages[r.page]) pages[r.page] = []; + const entry = { + id: r.id, + x: r.x, y: r.y, w: r.w, h: r.h, + status: r.status, + }; + if (r.overrides) { + entry.overrides = { ...r.overrides }; + } + if (r.analysis) { + entry.analysis = { + font: r.analysis.font, + gap: r.analysis.gap, + line: r.analysis.line, + segments: r.analysis.segments, + offset_x: r.analysis.offset_x, + offset_y: r.analysis.offset_y, + }; + } + if (r.solution) { + entry.solution = r.solution; + } + pages[r.page].push(entry); + } + // Sort each page's redactions top-to-bottom, left-to-right + for (const p of Object.values(pages)) { + p.sort((a, b) => Math.abs(a.y - b.y) > 5 ? a.y - b.y : a.x - b.x); + } + const data = { docId: state.docId, pageCount: state.pageCount, pages }; + const blob = new Blob([JSON.stringify(data, null, 2)], { type: "application/json" }); + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = `annotations-${state.docId}.json`; + a.click(); + URL.revokeObjectURL(url); + showToast("Exported annotations"); +} + +document.addEventListener("keydown", (e) => { + if ((e.ctrlKey || e.metaKey) && e.key === "e") { + e.preventDefault(); + exportAnnotations(); + } + if ((e.key === "Delete" || e.key === "Backspace") && state.activeRedaction) { + // Don't delete if user is typing in an input + if (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA") return; + delete state.redactions[state.activeRedaction]; + state.activeRedaction = null; + closePopover(); + renderRedactionList(); + renderCanvas(); + showToast("Redaction deleted"); + } +}); + // ── Initialize all modules ── setOnPopoverClose(stopSolve);