From 94a28834cff13a8f3289b335e9e483a6f5b851d1 Mon Sep 17 00:00:00 2001 From: vanamkarthiknetha Date: Thu, 6 Aug 2026 21:22:59 +0530 Subject: [PATCH 1/6] Add SuperDocs Writer sidebar extension (extensions/vanamkarthiknetha) Native LibreOffice Writer sidebar panel (.oxt, Python/UNO): select a passage, describe the edit, review the actual proposed text, Apply -> only the selected range changes with its styles preserved. Full HITL loop over the SuperDocs async chat API; validated in the GUI on Linux and Windows; includes a headless style-respect test (heading/bullets/table survive an edit -> ALL PASS). Co-Authored-By: Claude Fable 5 --- .../superdocs-writer-sidebar/README.md | 90 ++++++ .../superdocs-writer-sidebar/build.py | 22 ++ .../dist/superdocs-writer-sidebar.oxt | Bin 0 -> 18884 bytes .../screenshots/linux-applied.png | Bin 0 -> 69883 bytes .../screenshots/linux-sending.png | Bin 0 -> 67252 bytes .../src/META-INF/manifest.xml | 9 + .../src/config/Factories.xcu | 23 ++ .../src/config/Sidebar.xcu | 52 ++++ .../src/description.xml | 10 + .../src/icons/superdocs_24.png | Bin 0 -> 133 bytes .../superdocs-writer-sidebar/src/panel.py | 284 ++++++++++++++++++ .../superdocs-writer-sidebar/src/panel.xdl | 25 ++ .../superdocs_client.cpython-313.pyc | Bin 0 -> 8951 bytes .../superdocs_client.cpython-314.pyc | Bin 0 -> 9246 bytes .../src/pythonpath/superdocs_client.py | 137 +++++++++ .../tests/run_style_test.sh | 18 ++ .../tests/style_respect_test.py | 122 ++++++++ 17 files changed, 792 insertions(+) create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/linux-applied.png create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/linux-sending.png create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/META-INF/manifest.xml create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Factories.xcu create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Sidebar.xcu create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/icons/superdocs_24.png create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-313.pyc create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-314.pyc create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_style_test.sh create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/style_respect_test.py diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md new file mode 100644 index 0000000..47a7a6d --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md @@ -0,0 +1,90 @@ +# SuperDocs Writer Sidebar + +A native LibreOffice Writer extension: a sidebar panel for sending the current +selection (or the whole document) to SuperDocs with a natural-language editing +instruction, reviewing the proposed changes, and applying approved ones back +into the document **range by range** — untouched text is never rewritten, and +existing paragraph/character styles are respected. + +> **Status: v0.2 — selection round-trip working, validated on Linux and +> Windows.** Select a passage, describe the edit, review the actual proposed +> text, Apply → only the selected range changes, with its styles intact +> (verified on heading and character styles). Current limits, stated honestly: +> selection-based edits only (whole-document mode and drafting-at-cursor are +> the v0.3 milestone), and write-back is plain text into the styled range — +> formatting *inside* a proposal isn't carried yet. + +## Screenshots (Linux, WSLg) + +| Sending a selection | Applied in place | +|---|---| +| ![Sending](screenshots/linux-sending.png) | ![Applied](screenshots/linux-applied.png) | + +A `Heading 1` paragraph edited via the sidebar: the text changed, the heading +style survived untouched. + +## Build + +```bash +python build.py # -> dist/superdocs-writer-sidebar.oxt +``` + +Stdlib-only build; the source layout under `src/` is the .oxt layout. + +## Install (Linux) + +```bash +sudo apt install libreoffice-writer python3-uno # python3-uno = Python component loader +unopkg add -f dist/superdocs-writer-sidebar.oxt +``` + +Then open Writer → **View → Sidebar** → the **SuperDocs** deck appears in the +tab rail. (Windows note for development: use `unopkg.com`, not `unopkg.exe` — +the latter detaches from the console and can fail silently.) + +## How it talks to SuperDocs + +- The selection goes up as passage text (`/v1/documents/upload-base64` into a + fresh session) — SuperDocs takes documents, never raw XML. +- `POST /v1/chat/async` with `approval_mode: "ask_every_time"`; the panel polls + the job and previews the **actual proposed content** (`new_html`, tag-stripped) + rather than the AI's self-description, which can paraphrase. +- Approvals always send the explicit `changes` array — a bare + `{job_id, approved:true}` is a silent no-op in the API (discovered and + reported during this project). +- The approved result (plain-text export of the session) is written back through + the stored UNO text range with `setString`, inheriting the range's current + styles — no hard formatting, no whole-file replacement, untouched text is + never rewritten. +- All network work runs on a background thread; UI and document updates are + marshaled to the office main thread via `AsyncCallback`. +- API key: `SUPERDOCS_API_KEY` environment variable, else + `~/.superdocs/agent_credentials.json`. Never hardcoded, never in this repo. + +## Tests + +`tests/run_style_test.sh` (Linux) starts a throwaway headless LibreOffice on an +isolated profile, builds a document with a Heading 1, a bullet list, and a +table, edits one body paragraph through the exact client + write-back path the +panel uses, and asserts the heading/list/table styles and content all survived. +Costs 1 operation. Passing run ends with `STYLE TEST: ALL PASS`. + +(Portability note discovered by this test: LibreOffice 26 dropped the classic +"List Bullet" paragraph-style family — bullets are now "List 1".."List 5" — so +the test discovers style names at runtime instead of assuming them.) + +## Files + +| Path | Role | +|------|------| +| `src/description.xml` | Extension identity/version | +| `src/META-INF/manifest.xml` | Declares the two .xcu configs + Python component | +| `src/config/Sidebar.xcu` | Registers the SuperDocs deck + panel in Writer's sidebar | +| `src/config/Factories.xcu` | Maps the panel's resource URL to the Python factory | +| `src/panel.py` | UNO component: panel factory, panel, threading, write-back | +| `src/panel.xdl` | Panel UI (instruction box, Send, preview, Apply/Reject, status) | +| `src/pythonpath/superdocs_client.py` | Stdlib SuperDocs client (upload → async chat → approve → export) | +| `src/icons/superdocs_24.png` | Sidebar deck icon | + +Built by Karthik Vanam for the SuperDocs hiring round, with AI-assisted +development (Claude Code). diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py new file mode 100644 index 0000000..0064ca5 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Build the .oxt: zip everything under src/ into dist/superdocs-writer-sidebar.oxt.""" +import zipfile +from pathlib import Path + +ROOT = Path(__file__).parent +SRC = ROOT / "src" +DIST = ROOT / "dist" + + +def main(): + DIST.mkdir(exist_ok=True) + oxt = DIST / "superdocs-writer-sidebar.oxt" + with zipfile.ZipFile(oxt, "w", zipfile.ZIP_DEFLATED) as z: + for path in sorted(SRC.rglob("*")): + if path.is_file(): + z.write(path, path.relative_to(SRC).as_posix()) + print(f"built {oxt} ({oxt.stat().st_size} bytes)") + + +if __name__ == "__main__": + main() diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt new file mode 100644 index 0000000000000000000000000000000000000000..a6166cfcb3333d1bbc649ead58bac8f8de5fca54 GIT binary patch literal 18884 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 literal 0 HcmV?d00001 diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/linux-applied.png b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/linux-applied.png new file mode 100644 index 0000000000000000000000000000000000000000..0b1bb35dc6f234f9025f967e3d817cb538210595 GIT binary patch literal 69883 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

n}LO&5U5`+*e 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 + + + + + diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Factories.xcu b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Factories.xcu new file mode 100644 index 0000000..05cd055 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Factories.xcu @@ -0,0 +1,23 @@ + + + + + + + toolpanel + + + SuperDocsPanelFactory + + + + + + app.superdocs.writer.PanelFactory + + + + + diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Sidebar.xcu b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Sidebar.xcu new file mode 100644 index 0000000..ceac739 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/config/Sidebar.xcu @@ -0,0 +1,52 @@ + + + + + + + SuperDocs + + + SuperDocsDeck + + + vnd.sun.star.extension://app.superdocs.writer.sidebar.vanamkarthiknetha/icons/superdocs_24.png + + + + WriterVariants, any, visible ; + + + + 500 + + + + + + + AI editing + + + SuperDocsPanel + + + SuperDocsDeck + + + + WriterVariants, any, visible ; + + + + private:resource/toolpanel/SuperDocsPanelFactory/SuperDocsPanel + + + 100 + + + + + diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml new file mode 100644 index 0000000..d690c9d --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml @@ -0,0 +1,10 @@ + + + + + + + SuperDocs Writer Sidebar + + diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/icons/superdocs_24.png b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/icons/superdocs_24.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b559f4ba074ef4704f8d1ae0ed9a3cf7b2b952 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjKAtX)Ar-fh6C|cBShVuF{l*zN z+#QT5(N1evfkYQ;N~F^&Rs(Og<*Y&f?pA!fu(9Epqlpx|iu&b+$p=65HZKeoyLg7F f=);E`2L^`pbtQT~dn*Ki<}!G?`njxgN@xNATVgGx literal 0 HcmV?d00001 diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py new file mode 100644 index 0000000..f43c0f3 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py @@ -0,0 +1,284 @@ +# SuperDocs Writer Sidebar - UNO component. +# v0.2: selection round-trip. Send selection + instruction -> SuperDocs proposes +# an edit -> preview in the panel -> Apply writes the approved text back into +# the exact selected range (styles of the range are preserved; whole-document +# mode is the v0.3 milestone). +import re +import threading +import traceback + +import unohelper + +from com.sun.star.awt import XActionListener, XCallback +from com.sun.star.container import NoSuchElementException +from com.sun.star.lang import XServiceInfo +from com.sun.star.ui import XSidebarPanel, XToolPanel, XUIElement, XUIElementFactory, LayoutSize +from com.sun.star.ui.UIElementType import TOOLPANEL + +import superdocs_client + +EXT_ID = "app.superdocs.writer.sidebar.vanamkarthiknetha" +RESOURCE_PREFIX = "private:resource/toolpanel/SuperDocsPanelFactory" + + +def _strip_html(markup): + return re.sub(r"\s+", " ", re.sub(r"<[^>]+>", " ", markup or "")).strip() + + +def _proposal_preview(edit): + """Quote the ACTUAL proposed content (new_html), not the AI's explanation - + the explanation can paraphrase and the user is approving the real change.""" + proposed = " ".join(_strip_html(c.get("new_html")) for c in edit["pending"] + if c.get("new_html")) + if proposed: + clipped = proposed[:300] + ("..." if len(proposed) > 300 else "") + return f'Proposed text: "{clipped}"' + return edit["summary"][:300] + + +def _ext_file_url(ctx, relative): + pip = ctx.getValueByName("/singletons/com.sun.star.deployment.PackageInformationProvider") + return pip.getPackageLocation(EXT_ID) + "/" + relative + + +class _Action(unohelper.Base, XActionListener): + def __init__(self, handler): + self._handler = handler + + def actionPerformed(self, _event): + self._handler() + + def disposing(self, _event): + self._handler = None + + +class _Job(unohelper.Base, XCallback): + """One main-thread job. Holds the callable itself - a Python function must + never be passed as the UNO `aData` argument (not convertible to Any; the + call throws and the failure is silent inside an action listener).""" + + def __init__(self, fn): + self._fn = fn + + def notify(self, _data): + try: + self._fn() + except Exception: + traceback.print_exc() + + +class _MainThread: + """Runs python callables on the office main thread via AsyncCallback.""" + + def __init__(self, ctx): + self._ctx = ctx + + def post(self, fn): + try: + cb = self._ctx.ServiceManager.createInstanceWithContext( + "com.sun.star.awt.AsyncCallback", self._ctx) + cb.addCallback(_Job(fn), None) + except Exception: + fn() # degraded fallback: run inline rather than lose the update + + +class SuperDocsPanel(unohelper.Base, XUIElement, XToolPanel, XSidebarPanel): + def __init__(self, ctx, frame, parent_window, resource_url): + self.ctx = ctx + self.Frame = frame + self.ResourceURL = resource_url + self.Type = TOOLPANEL + self._parent = parent_window + self._window = None + self._main = _MainThread(ctx) + self._edit = None # dict from superdocs_client.request_edit + self._target_range = None # XTextRange the edit applies to + self._busy = False + + # ---- XUIElement ---- + def getRealInterface(self): + if self._window is None: + provider = self.ctx.ServiceManager.createInstanceWithContext( + "com.sun.star.awt.ContainerWindowProvider", self.ctx) + self._window = provider.createContainerWindow( + _ext_file_url(self.ctx, "panel.xdl"), "", self._parent, None) + self._window.getControl("btnSend").addActionListener(_Action(self.on_send)) + self._window.getControl("btnApprove").addActionListener(_Action(self.on_apply)) + self._window.getControl("btnReject").addActionListener(_Action(self.on_reject)) + self._window.setVisible(True) + return self + + # ---- XToolPanel ---- + @property + def Window(self): + return self._window + + def createAccessible(self, _parent): + return self._window.getAccessibleContext() if self._window else None + + # ---- XSidebarPanel ---- + def getHeightForWidth(self, _width): + return LayoutSize(360, -1, 360) + + def getMinimalWidth(self): + return 160 + + # ---- ui helpers (safe from any thread via _MainThread.post) ---- + def _ui(self, status=None, preview=None, decisions_enabled=None, send_enabled=None): + def apply_ui(): + if status is not None: + self._window.getControl("lblStatus").getModel().Label = status + if preview is not None: + self._window.getControl("lblPreview").getModel().Label = preview + if decisions_enabled is not None: + self._window.getControl("btnApprove").getModel().Enabled = decisions_enabled + self._window.getControl("btnReject").getModel().Enabled = decisions_enabled + if send_enabled is not None: + self._window.getControl("btnSend").getModel().Enabled = send_enabled + self._main.post(apply_ui) + + def _progress(self, message): + self._ui(status=message) + + def _fail(self, exc): + self._busy = False + self._ui(status=f"Error: {exc}", decisions_enabled=False, send_enabled=True) + traceback.print_exc() + + # ---- actions ---- + def on_send(self): + try: + self._on_send() + except Exception as exc: + self._fail(exc) + + def _on_send(self): + if self._busy: + return + instruction = self._window.getControl("txtInstruction").getText().strip() + if not instruction: + self._ui(status="Type an instruction first.") + return + controller = self.Frame.getController() + selection = controller.getSelection() + if (selection is None + or not selection.supportsService("com.sun.star.text.TextRanges") + or selection.getCount() == 0 + or not selection.getByIndex(0).getString().strip()): + self._ui(status="Select the passage to edit first " + "(whole-document mode arrives in v0.3).") + return + self._target_range = selection.getByIndex(0) + passage = self._target_range.getString() + self._busy = True + self._ui(status="Contacting SuperDocs...", preview="", + decisions_enabled=False, send_enabled=False) + + def work(): + try: + edit = superdocs_client.request_edit(passage, instruction, self._progress) + self._edit = edit + if edit["state"] == "completed": + # nothing needed approval (e.g. no-op); report honestly + self._busy = False + self._ui(status="SuperDocs made no reviewable proposal " + "(request may already be satisfied). Nothing changed.", + send_enabled=True) + return + self._busy = False + self._ui(status="Proposal ready - review and Apply or Reject.", + preview=_proposal_preview(edit), + decisions_enabled=True, send_enabled=False) + except Exception as exc: + self._fail(exc) + + threading.Thread(target=work, daemon=True).start() + + def on_apply(self): + try: + self._on_apply() + except Exception as exc: + self._fail(exc) + + def _on_apply(self): + if self._busy or not self._edit: + return + self._busy = True + self._ui(status="Applying...", decisions_enabled=False) + + def work(): + try: + final_text = superdocs_client.finalize(self._edit, True, self._progress) + + def write_back(): + # setString keeps the range's paragraph/character styles; + # only the selected range is touched. + self._target_range.setString(final_text) + self._edit = None + self._target_range = None + self._busy = False + self._main.post(write_back) + self._ui(status="Applied. Only the selected range was modified (1 operation).", + preview="", send_enabled=True) + except Exception as exc: + self._fail(exc) + + threading.Thread(target=work, daemon=True).start() + + def on_reject(self): + try: + self._on_reject() + except Exception as exc: + self._fail(exc) + + def _on_reject(self): + if self._busy or not self._edit: + return + self._busy = True + self._ui(status="Rejecting...", decisions_enabled=False) + + def work(): + try: + superdocs_client.finalize(self._edit, False, self._progress) + self._edit = None + self._target_range = None + self._busy = False + self._ui(status="Rejected. Document untouched, nothing billed.", + preview="", send_enabled=True) + except Exception as exc: + self._fail(exc) + + threading.Thread(target=work, daemon=True).start() + + +class PanelFactory(unohelper.Base, XUIElementFactory, XServiceInfo): + IMPL_NAME = "app.superdocs.writer.PanelFactory" + SERVICE_NAMES = (IMPL_NAME,) + + def __init__(self, ctx): + self.ctx = ctx + + def createUIElement(self, resource_url, arguments): + if not resource_url.startswith(RESOURCE_PREFIX): + raise NoSuchElementException(resource_url, self) + frame = parent = None + for arg in arguments: + if arg.Name == "Frame": + frame = arg.Value + elif arg.Name == "ParentWindow": + parent = arg.Value + return SuperDocsPanel(self.ctx, frame, parent, resource_url) + + def getImplementationName(self): + return self.IMPL_NAME + + def supportsService(self, name): + return name in self.SERVICE_NAMES + + def getSupportedServiceNames(self): + return self.SERVICE_NAMES + + +g_ImplementationHelper = unohelper.ImplementationHelper() +g_ImplementationHelper.addImplementation( + PanelFactory, PanelFactory.IMPL_NAME, PanelFactory.SERVICE_NAMES) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl new file mode 100644 index 0000000..0466439 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-313.pyc b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35c03388e6d4d7f581adf0f957731e295b9ced5e GIT binary patch literal 8951 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 Nr~7{)chq`0{6DL9+J*oC literal 0 HcmV?d00001 diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-314.pyc b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..730623beb20681d025471f4f85e6f3d2b2cd3245 GIT binary patch literal 9246 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 literal 0 HcmV?d00001 diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py new file mode 100644 index 0000000..7615248 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py @@ -0,0 +1,137 @@ +"""Minimal SuperDocs API client for the Writer sidebar (stdlib only). + +Flow: upload the selected passage as a small HTML doc -> async chat with +human-in-the-loop approval -> caller shows the proposal -> approve/reject -> +on approval, poll to completion and export as plain text for write-back. + +API key: SUPERDOCS_API_KEY env var, else ~/.superdocs/agent_credentials.json. +Never logged, never stored by this module. +""" +import base64 +import html +import json +import os +import time +import urllib.error +import urllib.request +from pathlib import Path + +API = "https://api.superdocs.app" +POLL_SECONDS = 4 +POLL_LIMIT = 150 # x4s = 10 min + + +class SuperDocsError(Exception): + pass + + +def api_key(): + key = os.environ.get("SUPERDOCS_API_KEY") + if key: + return key + cred = Path.home() / ".superdocs" / "agent_credentials.json" + if cred.exists(): + return json.loads(cred.read_text(encoding="utf-8-sig"))["api_key"] + raise SuperDocsError( + "No API key: set SUPERDOCS_API_KEY or create ~/.superdocs/agent_credentials.json") + + +def _call(method, path, body=None, retries=1, timeout=120): + data = json.dumps(body).encode() if body is not None else None + req = urllib.request.Request(API + path, data=data, method=method) + req.add_header("Authorization", "Bearer " + api_key()) + if data: + req.add_header("Content-Type", "application/json") + last = None + for attempt in range(retries + 1): + try: + with urllib.request.urlopen(req, timeout=timeout) as r: + raw = r.read() + if "json" in r.headers.get("Content-Type", ""): + return json.loads(raw) + return raw + except (urllib.error.HTTPError, urllib.error.URLError, TimeoutError) as exc: + if isinstance(exc, urllib.error.HTTPError): + last = f"HTTP {exc.code}: {exc.read().decode(errors='replace')[:200]}" + else: + last = str(exc) + if attempt < retries: + time.sleep(4) # first call in a fresh session may flake while warming up + raise SuperDocsError(f"{method} {path} failed: {last}") + + +def _passage_to_html(text): + paragraphs = [f"

{html.escape(p)}

" for p in text.split("\n") if p.strip()] + return "" + "".join(paragraphs or ["

"]) + "" + + +def _poll(job_id, until_states, progress): + for i in range(POLL_LIMIT): + time.sleep(POLL_SECONDS) + job = _call("GET", f"/v1/jobs/{job_id}") + state = job.get("status") + if i % 3 == 2: + progress(f"Working... ({state}, {i * POLL_SECONDS}s)") + if state in until_states or state in ("failed", "cancelled"): + return state, job + raise SuperDocsError("Timed out waiting for SuperDocs job") + + +def request_edit(passage_text, instruction, progress=lambda m: None): + """Returns dict: session, job_id, pending (list), summary (str for preview).""" + session = "sdext-" + time.strftime("%Y%m%d-%H%M%S") + progress("Uploading passage...") + _call("POST", "/v1/documents/upload-base64", { + "filename": "passage.html", + "file_base64": base64.b64encode(_passage_to_html(passage_text).encode()).decode(), + "session_id": session, + }) + progress("Requesting edit...") + job = _call("POST", "/v1/chat/async", { + "session_id": session, + "message": (instruction + + "\n\nEdit only this passage; do not add commentary or metadata."), + "approval_mode": "ask_every_time", + }) + state, job_data = _poll(job["job_id"], ("awaiting_approval", "completed"), progress) + if state == "failed": + raise SuperDocsError("SuperDocs reported the edit failed") + pending = (job_data.get("metadata") or {}).get("pending_changes") or [] + parts = [] + for change in pending: + note = change.get("ai_explanation") + if note: + parts.append(note) + summary = " | ".join(parts) if parts else f"{len(pending)} proposed change(s)" + return {"session": session, "job_id": job["job_id"], "pending": pending, + "state": state, "summary": summary} + + +def finalize(edit, approve, progress=lambda m: None): + """Approve or reject all pending changes. On approve, returns the final + passage text (plain-text export); on reject, returns None.""" + decisions = [{"change_id": c["change_id"], "approved": bool(approve)} + for c in edit["pending"]] + if not approve: + for d in decisions: + d["feedback"] = "Rejected by user in the sidebar" + if decisions: + progress("Sending decision...") + # A bare {job_id, approved} is a silent no-op in the API - the explicit + # changes array is required for the job to proceed. + resp = _call("POST", f"/v1/chat/{edit['session']}/approve", + {"job_id": edit["job_id"], "approved": bool(approve), + "changes": decisions}) + if approve and not resp.get("batch_complete"): + raise SuperDocsError(f"Approval incomplete: {resp}") + if not approve: + return None + state, _ = _poll(edit["job_id"], ("completed",), progress) + if state != "completed": + raise SuperDocsError(f"Job ended in state {state}") + progress("Fetching result...") + blob = _call("POST", "/v1/documents/export", + {"session_id": edit["session"], "format": "txt"}) + if isinstance(blob, dict): + blob = base64.b64decode(blob.get("file_base64") or blob.get("content_base64")) + return blob.decode("utf-8-sig", errors="replace").strip("\n") diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_style_test.sh b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_style_test.sh new file mode 100644 index 0000000..198a236 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_style_test.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Style-respect test harness (Linux). +# Starts a throwaway headless LibreOffice on an ISOLATED profile (does not +# touch your normal LibreOffice or its profile) and runs the UNO test on it. +# Needs: libreoffice-writer, python3-uno, and SUPERDOCS_API_KEY (or +# ~/.superdocs/agent_credentials.json). Costs 1 SuperDocs operation. +set -u +HERE="$(cd "$(dirname "$0")" && pwd)" +PROFILE=/tmp/lotest-superdocs +rm -rf "$PROFILE" +soffice --headless --invisible --norestore \ + "-env:UserInstallation=file://$PROFILE" \ + --accept="socket,host=localhost,port=2002;urp;" & +LOPID=$! +PYTHONPATH=/usr/lib/libreoffice/program timeout 240 python3 "$HERE/style_respect_test.py" +RC=$? +kill "$LOPID" 2>/dev/null +exit "$RC" diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/style_respect_test.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/style_respect_test.py new file mode 100644 index 0000000..9b3614b --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/style_respect_test.py @@ -0,0 +1,122 @@ +"""Styled-document respect test (headless Linux, costs 1 operation). + +Builds a Writer doc with Heading 1 + body + bullet list + table, edits ONE body +paragraph through the same client + setString path the sidebar panel uses, then +asserts every style survived and nothing else changed. + +Run via run_style_test.sh (starts the headless office this connects to). +""" +import sys +import time +from pathlib import Path + +import uno + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src" / "pythonpath")) +import superdocs_client as sc + + +def connect(retries=40): + local = uno.getComponentContext() + resolver = local.ServiceManager.createInstanceWithContext( + "com.sun.star.bridge.UnoUrlResolver", local) + for _ in range(retries): + try: + return resolver.resolve( + "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext") + except Exception: + time.sleep(2) + raise RuntimeError("could not connect to soffice on port 2002") + + +ctx = connect() +smgr = ctx.ServiceManager +desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx) +doc = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, ()) +text = doc.getText() +cursor = text.createTextCursor() + +SLOPPY = "we gonna move the db next week, dont worry bout downtime it should be fine probably." + +# Style names differ across LibreOffice generations ("List Bullet" family was +# dropped around LO 26; bullets are "List 1".."List 5"). Discover, don't assume. +pstyles = doc.getStyleFamilies().getByName("ParagraphStyles") +_names = list(pstyles.getElementNames()) +_candidates = ([n for n in _names if "bullet" in n.lower()] + + [n for n in ("List 1", "List") if n in _names]) +if not _candidates: + print("no bullet/list style; available:", _names) + sys.exit(2) +BULLET = _candidates[0] +print("using bullet style:", BULLET) + +# heading +cursor.ParaStyleName = "Heading 1" +text.insertString(cursor, "Migration Plan", False) +text.insertControlCharacter(cursor, 0, False) # PARAGRAPH_BREAK +# body paragraph (the edit target) +cursor.ParaStyleName = "Standard" +text.insertString(cursor, SLOPPY, False) +text.insertControlCharacter(cursor, 0, False) +# bullet list +cursor.ParaStyleName = BULLET +text.insertString(cursor, "Backup verification", False) +text.insertControlCharacter(cursor, 0, False) +text.insertString(cursor, "Rollback rehearsal", False) +text.insertControlCharacter(cursor, 0, False) +# table +table = doc.createInstance("com.sun.star.text.TextTable") +table.initialize(2, 2) +cursor.ParaStyleName = "Standard" +text.insertTextContent(cursor, table, False) +table.getCellByName("A1").setString("Owner") +table.getCellByName("B1").setString("DBA team") +table.getCellByName("A2").setString("Window") +table.getCellByName("B2").setString("Sat 02:00") + +# locate the sloppy paragraph and select it as a range +target = None +enum = text.createEnumeration() +while enum.hasMoreElements(): + para = enum.nextElement() + if para.supportsService("com.sun.star.text.Paragraph") and para.getString() == SLOPPY: + target = para + break +assert target is not None, "target paragraph not found" + +rng = text.createTextCursorByRange(target.getStart()) +rng.gotoEndOfParagraph(True) + +print("1) requesting edit via sidebar client ...") +edit = sc.request_edit(rng.getString(), "Rewrite formally and precisely.", + progress=lambda m: print(" ", m)) +assert edit["state"] == "awaiting_approval", edit["state"] +final = sc.finalize(edit, True, progress=lambda m: print(" ", m)) +print(" final:", final[:120]) +rng.setString(final) # exactly what the panel's write_back does + +# ---- assertions ---- +results = [] +paras = [] +enum = text.createEnumeration() +while enum.hasMoreElements(): + p = enum.nextElement() + if p.supportsService("com.sun.star.text.Paragraph"): + paras.append((p.ParaStyleName, p.getString())) + +results.append(("heading style intact", paras[0] == ("Heading 1", "Migration Plan"))) +results.append(("edited para kept Default style", paras[1][0] == "Standard")) +results.append(("edited para text changed", paras[1][1] != SLOPPY and len(paras[1][1]) > 10)) +bullets = [p for p in paras if p[0] == BULLET] +results.append(("both bullets intact", + [b[1] for b in bullets] == ["Backup verification", "Rollback rehearsal"])) +cells = [table.getCellByName(n).getString() for n in ("A1", "B1", "A2", "B2")] +results.append(("table cells untouched", cells == ["Owner", "DBA team", "Window", "Sat 02:00"])) + +ok = True +for name, passed in results: + print(("PASS " if passed else "FAIL ") + name) + ok = ok and passed +doc.close(False) +print("STYLE TEST:", "ALL PASS" if ok else "FAILURES") +sys.exit(0 if ok else 1) From a42cadce5a75bd0153c3a8d93172d87e2fa897b7 Mon Sep 17 00:00:00 2001 From: vanamkarthiknetha Date: Thu, 6 Aug 2026 21:24:22 +0530 Subject: [PATCH 2/6] Clean build: exclude __pycache__ from repo and .oxt Co-Authored-By: Claude Fable 5 --- .../superdocs-writer-sidebar/.gitignore | 1 + .../superdocs-writer-sidebar/build.py | 2 +- .../dist/superdocs-writer-sidebar.oxt | Bin 18884 -> 8120 bytes .../superdocs_client.cpython-313.pyc | Bin 8951 -> 0 bytes .../superdocs_client.cpython-314.pyc | Bin 9246 -> 0 bytes 5 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/.gitignore delete mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-313.pyc delete mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-314.pyc diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/.gitignore b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/.gitignore new file mode 100644 index 0000000..c18dd8d --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py index 0064ca5..1ed1292 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/build.py @@ -13,7 +13,7 @@ def main(): oxt = DIST / "superdocs-writer-sidebar.oxt" with zipfile.ZipFile(oxt, "w", zipfile.ZIP_DEFLATED) as z: for path in sorted(SRC.rglob("*")): - if path.is_file(): + if path.is_file() and "__pycache__" not in path.parts: z.write(path, path.relative_to(SRC).as_posix()) print(f"built {oxt} ({oxt.stat().st_size} bytes)") diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt index a6166cfcb3333d1bbc649ead58bac8f8de5fca54..99c1756115c776db5411facca428e5a87378910e 100644 GIT binary patch delta 39 ucmX>ynQ@2xhDwpmyKP@`P0sU_W6Bqq+~=vm$HBnC@Sl-^VX-U&5C8xtSPO^% delta 10875 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 B<*Wbz diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-313.pyc b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-313.pyc deleted file mode 100644 index 35c03388e6d4d7f581adf0f957731e295b9ced5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8951 zcma)BeQX=Ym7nDR}}F570137 zZU4D9vs_Z~DNP6D%cmc(x-d^uH%-}>J*NdMh)CkFS8`&XRNjO;4nflVVy; zErh~?a6Fa1)+^3uQfWCs+iOZniR(&2%*dK1Pb;FViL$7{JSp+y_~;oik&cUM!Itc%x@`iw9$KPRi5NwpIu?M$W98Bxw;aQZ5&4_e2eJ6Xj{`kF?kfvQYevns8I zN*7jUVQOeDq}5XI4l$F4sr9rNPtRpiik>8uYC=@5XVO?F%gdzXq$=vlb!*qx$c{TF z<@goYA32dL%0jOwMbC{yhR+_8Vo(%&dE}C)s8_|SGVTzSl%|NUc7-)^j<7wg3-+z* zu{c%|kS67n7M|78YFHRkuEH)->FH@D(IKkzOViWPPMlnTeI+$@C+BrVi^Z@9MtwroV!jpcy?jN+u+J;8_~m2iL{goO9lJcF zX^N)J!BJ_KOJ`WlbxzJFQwi-d+>fGaaDCe4t1_&iIFhR9GxDa^^!jjTkzg-tIDR>^ zpwFb$44h-RUCg5MaApDXur?Zz{cD7uzl}`JjRSW1=ML5drGy8c)W8wHg(e_tg^0t> zmD7kV9m+)@9S#;RM@3Q8R;-bscNDdv2{Jwn5x1Qyr@PR>;)mqu^dcm&BvzRy6M^*E zV7D#Ju?L|EpWQ0rw{zum7lM(3`^vi@gr zWJoX_Y0cz;m6JHFn(VZqV{*ABH8gHSfW3m-U0t&6L z6$t}LIPA;aikxjCI}7qfb^dAc-HJ%d1Q}&IVHp?CNlXu`x}vTKVZdjC?fkAvqbP!z*Jk00|Z^}0W0Ur#2jTM7ag(4rq$@=tH5OL9bdwn5pvWO+H_0Lqor@aGJklfIMNT6pzr0JOg_yl(J*sJe@Z+YkEZjsR2GXZW>;DbkEF^d1933Q`_TcXJ+i{=L>(oOmVon{f{|OG zw}?i6fY1Qjf~KI&CMwxsk6KP6VmWW;zNE)4yInb*0Lr#PH_IdWO}Iht#9q5B>iv=t zMZ0A=wNJc6UC+Z!2vKjuE+{u8C**~iKXK!c_D#);S;;3=^Z*}8ehx-Bz^VLM?*t)5 z8lqnNoK^nfw|arLD2@TU7r6ojZ4V7Y`W$EWYY<=VrU*xoXi5sr`0TfRFN?#G+E!VvD&&iaw?@MwDiJ8Y&6ZYb$UGi>T1n zk!w5rm)*B|U+-N`%`-#Qj4WW`C)4Cw$1n~#etNMG5_gW1>G=$@e z#|j+(ow3)(mXEBSdY}KXC)e8Zkn8;=?=85!xBNH#%dZ-Hdmg%b3*G<>RK0Dbe)aj= zO&?Y7UgAG>_&hr{g7t6jcw@(UaBnWSca1ejI`AM^sH=Z_>W!&4XO`JQb;HW}JC|-> zy7QIWUs)Tx|3bcbFkd~m(bRIM_nqF=`1gsTIk;Jy+cMrZ(is#xW3;tK+}(c1AlxfAXtX)4c~g@o?PXgAG&_z zyX#wT8_2Z{d~m}EoOyy=u+l)o%5(2ty>sLCjrEp;xt4?LfkU~#p+dus746RT+t*iS z*BomHesuWm;eY5|Z|~2w_dhsgwD%kBV;}0qImu`rH}*x1`d8lIeqG=l{Ie*eV*mapbf(f{j{NZxZm;9Lqo3Nea?UF_rS-` z+zjM@=Arq0!f=o0XWc9*@1b%3z)7F;-+GRslf3go-U%OZ!fAFOdMyR}|A7pEJ&J6u zEw(Caqt)mYMssu_&2bV$eL5H+eV++7T-g#Y0iZkD0K&sDK{%C$NJ)dWOAy$v(USHE zqLDqoo^y=CU<6oHhsqHBGD4J-XF}95z?9~K^@vDvb(KaUl2PJG+zP7};je=DBKjvI zWZC}AV3zCeg4owTqtB%V`w52)Vo-unmWNte=kM>L#r<8h4cI_5&vsCjtkcs@9uJ9PYB@aKE~eecgh`KpfPWAAczyzh8dhraJO>i4ed zPzEg)PaDDU0ucJqJ11_RSUtVoI&iP&UVDD~V9q;e44uz;&l}wN-+#uUswkropT+m; zhxT(n+5u6VEYA*Z$dKPEz?I#7;$$r@dPmnQbuzP~eP%=u0 zi-YJ52OKtvs$7(dRM>sWsl?j-RVQd-Tqlr|d=WgSxPpz2y=won5bE%aPI7xGqE$LMo*1nLNoX!QtG3n(#Wy1W5W`a z>=sTDMi0467Yq5pN4_%Lhx4#7ksY~;3kKC?zol#McyK&7i!@|F9kT-o%Ba#97^nB)iZuy}s+aAKKP zfY}0+U4i+_MwL`)&!#Y7lGT=XZ0Dq)-C~o>hY>}zA8pyb>WkWUfjI|%ca#U=1?n+1 zzP6gN+8#j_qC#77Ar#XQd%&T3FLqn!8s#reNOfUnD+<+TPel}c9;=#|NXGSEk+{o1|L!0X0~j7$ zoQg_(X<}On+!dh?QJbHelko!a)?zATGFZ8qRIY`>S(lao=<3W??7p;nZg-+{_sQL( zyQOSRl)7-qAVu5)i3YyMv(k9Bi3mXOYtB;_U6LnAOY_ife}DW~+*tIhjmJBz2f6>nC#%Z*UiN3}^cVVFaqEpV@MZ7U$^$2ePQ9 z!Eu{N5SK1l6WJ>GeZWYOiMbLs{jzo?M!c&FF`{&bSWLVxCO-!U2d*cx!g3kQDdO8y za11IzW(Vb>T#nh*Aigc9v68?<3}kner8O8V;6Da|PQ2t~8$}DnbldAN1I2rZ!N$PY z&|qE382Fu2;J%~=6f52kv(=*I%!Z+?c5Q$lPLnU57+syo7l*G`2uUjS2WvVPkhYzjEd(Ta;+PjXK9a7)m5n3wNc-^ zUcdJj^?M(-9lpOk-*$YxZ8X<5nr}OsuRph5e<4?YAzy!~P}lsJ=U#9V+g(qP)5|X&d+I~=+gFaQx^Isf z?V}%F&(~di?d;-6f%h%D^Zd3A|8}E!DDOXNxQ`YB^|x-^ys>gRAK1Gd=v;eY-Ty+) z|AKK~IPV`>_rLsM)#8bQ&%ZeGNmav=s}QKYmA#oY8u#S`?MvK$c>_z`1z+&inVV-; zYCiJqc+8{f#^1V8YiLQiHG6Y*rS_q}<^Ae=7k<3`p5GWeZ-gT-T>XxPeWy?Tf!w#?uK+U6e0SB$i+CO-!qa4U{m`8O=9H5Mo*tMg8 z*Hi{`B^i7HT2eL9mhOOWMT8>u0yx@`EbkJ^rUMftOUPauxZ6IDve%=$6zshQO7Z8% zuA&aPl12h!lanan+%qRpW1oan3s_T{LG^6XK|Ey#t*yG-`;tMHOu+nBh*a9Satd~z zXUj9Hx6f!3)&q6|mTujCo88_{DW+GKXR>orgVZQB^*FZF7`EHJOZFlQ_F{APn?v-i zQ6VT&d_^Shl{Tyv#dladYriWh9nj8#WFr2jlB%2nQ_yUK zarkogv9zj$Et%=D<^hNdIq*%`km$P zXJR%EW^1jZf|u7MINs=ss?saMLnYRsAC0orr_+=0Jeq*j!YZk?A!e(ND=-kjd@x4l zQxx@UKCf9==VY?_bsbKCLbeOuq32{Bt7K9BxaDRnDixSqKPEx|6N}*H}CH=+MQ8^h!IzGy!1$`S`o##?3boDrvQY%N}{ij#-5SuaV0~QB_j8!%h@v6qvTT|5m9m|QCPT3 zoDfBl>9=0o2l3xR84wH72>X7@G7R(B;byoeRfzF_g1q$Sp>g#msP;e6wqLn+F0zF{ z<)W`pQMo8Qbuo-*`O;Ga$!BgiGr>Hqt7ZB>+wWi^%x8j!d5L+v4ILV0o}wmZ|KonN Nr~7{)chq`0{6DL9+J*oC diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-314.pyc b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/__pycache__/superdocs_client.cpython-314.pyc deleted file mode 100644 index 730623beb20681d025471f4f85e6f3d2b2cd3245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9246 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 From cb8ef6b461f8a1c268ce5450b2e5cda635452166 Mon Sep 17 00:00:00 2001 From: vanamkarthiknetha Date: Fri, 7 Aug 2026 13:50:27 +0530 Subject: [PATCH 3/6] extension v0.3.0: whole-document mode with range-by-range write-back Tick 'Whole document' in the sidebar: the doc is exported through the host's own filter (storeToURL, MS Word 2007 XML) and uploaded as a file; each approved change is located in the live document by its old_html (plain-text paragraphs, matched as one consecutive run) and replaced with a style-preserving setString. A change that is not found or matches more than one place is skipped and named in the status line, never guessed at; untouched text is never rewritten. Tests: offline write-back invariants (0 ops, no key) and a live .docx round-trip (1 op), both ALL PASS on headless Linux. The offline test caught an inline-tag stripping bug (space vs empty replacement) before it shipped. Co-Authored-By: Claude Fable 5 --- .../superdocs-writer-sidebar/README.md | 63 ++++++--- .../dist/superdocs-writer-sidebar.oxt | Bin 8120 -> 10955 bytes .../src/description.xml | 2 +- .../superdocs-writer-sidebar/src/panel.py | 104 +++++++++++--- .../superdocs-writer-sidebar/src/panel.xdl | 18 +-- .../src/pythonpath/superdocs_client.py | 59 +++++--- .../src/pythonpath/writeback.py | 93 ++++++++++++ .../tests/run_whole_doc_live_test.sh | 16 +++ .../tests/run_whole_doc_test.sh | 18 +++ .../tests/whole_doc_live_test.py | 121 ++++++++++++++++ .../tests/whole_doc_test.py | 132 ++++++++++++++++++ 11 files changed, 561 insertions(+), 65 deletions(-) create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_live_test.sh create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_test.sh create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_live_test.py create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md index 47a7a6d..72bcd4d 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md @@ -6,13 +6,18 @@ instruction, reviewing the proposed changes, and applying approved ones back into the document **range by range** — untouched text is never rewritten, and existing paragraph/character styles are respected. -> **Status: v0.2 — selection round-trip working, validated on Linux and -> Windows.** Select a passage, describe the edit, review the actual proposed -> text, Apply → only the selected range changes, with its styles intact -> (verified on heading and character styles). Current limits, stated honestly: -> selection-based edits only (whole-document mode and drafting-at-cursor are -> the v0.3 milestone), and write-back is plain text into the styled range — -> formatting *inside* a proposal isn't carried yet. +> **Status: v0.3 — selection AND whole-document modes, validated on Linux and +> Windows.** Selection mode: select a passage, describe the edit, review, Apply +> → only the selected range changes, styles intact. Whole-document mode (tick +> the checkbox): the doc is exported as .docx through the host's own filter and +> uploaded; every approved change is located by its original text in the live +> document and replaced range by range — a change that can't be found, or that +> matches more than one place, is **skipped and reported, never guessed at**. +> Current limits, stated honestly: write-back is plain text into the styled +> range (formatting *inside* a proposal isn't carried yet); whole-doc write-back +> covers body paragraphs, not table-cell content (those changes are reported as +> skipped, and the approved SuperDocs copy still has them); drafting-at-cursor +> is not built. ## Screenshots (Linux, WSLg) @@ -45,17 +50,23 @@ the latter detaches from the console and can fail silently.) ## How it talks to SuperDocs - The selection goes up as passage text (`/v1/documents/upload-base64` into a - fresh session) — SuperDocs takes documents, never raw XML. + fresh session) — SuperDocs takes documents, never raw XML. In whole-document + mode the doc is exported via the host's own filter (`storeToURL`, MS Word + 2007 XML) and uploaded as a file, per the host-app integration contract. - `POST /v1/chat/async` with `approval_mode: "ask_every_time"`; the panel polls the job and previews the **actual proposed content** (`new_html`, tag-stripped) rather than the AI's self-description, which can paraphrase. - Approvals always send the explicit `changes` array — a bare `{job_id, approved:true}` is a silent no-op in the API (discovered and reported during this project). -- The approved result (plain-text export of the session) is written back through - the stored UNO text range with `setString`, inheriting the range's current - styles — no hard formatting, no whole-file replacement, untouched text is - never rewritten. +- Selection write-back: the approved result (plain-text export of the session) + goes through the stored UNO text range with `setString`, inheriting the + range's current styles. Whole-document write-back (`writeback.py`): each + approved change's `old_html` is reduced to plain-text paragraphs, located as + one consecutive paragraph run in the live document, and replaced with a + style-preserving `setString` — no hard formatting, no whole-file replacement, + untouched text is never rewritten. Not-found and ambiguous matches are + skipped and named in the status line. - All network work runs on a background thread; UI and document updates are marshaled to the office main thread via `AsyncCallback`. - API key: `SUPERDOCS_API_KEY` environment variable, else @@ -63,11 +74,24 @@ the latter detaches from the console and can fail silently.) ## Tests -`tests/run_style_test.sh` (Linux) starts a throwaway headless LibreOffice on an -isolated profile, builds a document with a Heading 1, a bullet list, and a -table, edits one body paragraph through the exact client + write-back path the -panel uses, and asserts the heading/list/table styles and content all survived. -Costs 1 operation. Passing run ends with `STYLE TEST: ALL PASS`. +All harnesses (Linux) start a throwaway headless LibreOffice on an isolated +profile; they never touch your normal LibreOffice or its profile. + +- `tests/run_style_test.sh` — builds a document with a Heading 1, a bullet + list, and a table, edits one body paragraph through the exact client + + write-back path the panel uses, and asserts the heading/list/table styles and + content all survived. Costs 1 operation. Ends with `STYLE TEST: ALL PASS`. +- `tests/run_whole_doc_test.sh` — **offline, no API key, 0 operations.** + Drives `writeback.apply_changes` with synthetic changes against a real Writer + doc and proves the write-back invariants: unique match applied in place + (entities decoded, inline tags stripped), a multi-paragraph run replaced as + one range, ambiguous and not-found changes skipped with both copies + untouched, table content untouched. Ends with + `WHOLE-DOC WRITE-BACK TEST: ALL PASS`. +- `tests/run_whole_doc_live_test.sh` — the same flow end to end against the + real API: UNO doc → .docx export → `request_doc_edit` → approve → write-back + from the actual returned `old_html`/`new_html`. Costs 1 operation. Ends with + `WHOLE-DOC LIVE TEST: ALL PASS`. (Portability note discovered by this test: LibreOffice 26 dropped the classic "List Bullet" paragraph-style family — bullets are now "List 1".."List 5" — so @@ -81,9 +105,10 @@ the test discovers style names at runtime instead of assuming them.) | `src/META-INF/manifest.xml` | Declares the two .xcu configs + Python component | | `src/config/Sidebar.xcu` | Registers the SuperDocs deck + panel in Writer's sidebar | | `src/config/Factories.xcu` | Maps the panel's resource URL to the Python factory | -| `src/panel.py` | UNO component: panel factory, panel, threading, write-back | -| `src/panel.xdl` | Panel UI (instruction box, Send, preview, Apply/Reject, status) | +| `src/panel.py` | UNO component: panel factory, panel, threading, both modes | +| `src/panel.xdl` | Panel UI (whole-doc checkbox, instruction box, Send, preview, Apply/Reject, status) | | `src/pythonpath/superdocs_client.py` | Stdlib SuperDocs client (upload → async chat → approve → export) | +| `src/pythonpath/writeback.py` | Whole-doc write-back: HTML→paragraphs, unique-run matching, range-by-range apply | | `src/icons/superdocs_24.png` | Sidebar deck icon | Built by Karthik Vanam for the SuperDocs hiring round, with AI-assisted diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt index 99c1756115c776db5411facca428e5a87378910e..33320bb451bbe72b8fb24bf8c24714f6dae418f0 100644 GIT binary patch literal 10955 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 literal 8120 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 ZKlZ9Bz`cIZKM({F@bX%oe3E~j{sVo& diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml index d690c9d..1eb2061 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml @@ -2,7 +2,7 @@ - + SuperDocs Writer Sidebar diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py index f43c0f3..34ed642 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py @@ -1,21 +1,26 @@ # SuperDocs Writer Sidebar - UNO component. -# v0.2: selection round-trip. Send selection + instruction -> SuperDocs proposes -# an edit -> preview in the panel -> Apply writes the approved text back into -# the exact selected range (styles of the range are preserved; whole-document -# mode is the v0.3 milestone). +# v0.3: selection round-trip + whole-document mode. Selection: approved text is +# written back into the exact selected range. Whole document: the doc is +# exported as .docx and uploaded; each approved change is located by its +# original text and replaced range by range (writeback.py) - unmatched changes +# are skipped and reported, never guessed at. +import os import re +import tempfile import threading import traceback import unohelper from com.sun.star.awt import XActionListener, XCallback +from com.sun.star.beans import PropertyValue from com.sun.star.container import NoSuchElementException from com.sun.star.lang import XServiceInfo from com.sun.star.ui import XSidebarPanel, XToolPanel, XUIElement, XUIElementFactory, LayoutSize from com.sun.star.ui.UIElementType import TOOLPANEL import superdocs_client +import writeback EXT_ID = "app.superdocs.writer.sidebar.vanamkarthiknetha" RESOURCE_PREFIX = "private:resource/toolpanel/SuperDocsPanelFactory" @@ -91,8 +96,10 @@ def __init__(self, ctx, frame, parent_window, resource_url): self._parent = parent_window self._window = None self._main = _MainThread(ctx) - self._edit = None # dict from superdocs_client.request_edit - self._target_range = None # XTextRange the edit applies to + self._edit = None # dict from superdocs_client.request_*edit + self._mode = None # "sel" or "doc" + self._target_range = None # XTextRange (selection mode) + self._doc = None # text-document model (whole-doc mode) self._busy = False # ---- XUIElement ---- @@ -152,6 +159,23 @@ def on_send(self): except Exception as exc: self._fail(exc) + def _export_docx(self, model): + """Export the live document as .docx bytes via the host's own filter.""" + fd, path = tempfile.mkstemp(suffix=".docx") + os.close(fd) + try: + prop = PropertyValue() + prop.Name = "FilterName" + prop.Value = "MS Word 2007 XML" + model.storeToURL(unohelper.systemPathToFileUrl(path), (prop,)) + with open(path, "rb") as f: + return f.read() + finally: + try: + os.remove(path) + except OSError: + pass + def _on_send(self): if self._busy: return @@ -159,24 +183,43 @@ def _on_send(self): if not instruction: self._ui(status="Type an instruction first.") return - controller = self.Frame.getController() - selection = controller.getSelection() - if (selection is None - or not selection.supportsService("com.sun.star.text.TextRanges") - or selection.getCount() == 0 - or not selection.getByIndex(0).getString().strip()): - self._ui(status="Select the passage to edit first " - "(whole-document mode arrives in v0.3).") - return - self._target_range = selection.getByIndex(0) - passage = self._target_range.getString() + whole_doc = self._window.getControl("chkWholeDoc").getModel().State == 1 + if whole_doc: + model = self.Frame.getController().getModel() + if model is None or not model.supportsService("com.sun.star.text.TextDocument"): + self._ui(status="Open a Writer text document first.") + return + self._mode = "doc" + self._doc = model + self._target_range = None + self._ui(status="Exporting document...", preview="", + decisions_enabled=False, send_enabled=False) + docx_bytes = self._export_docx(model) + request = lambda: superdocs_client.request_doc_edit( + docx_bytes, instruction, self._progress) + else: + controller = self.Frame.getController() + selection = controller.getSelection() + if (selection is None + or not selection.supportsService("com.sun.star.text.TextRanges") + or selection.getCount() == 0 + or not selection.getByIndex(0).getString().strip()): + self._ui(status="Select a passage to edit, " + "or tick 'Whole document'.") + return + self._mode = "sel" + self._doc = None + self._target_range = selection.getByIndex(0) + passage = self._target_range.getString() + request = lambda: superdocs_client.request_edit( + passage, instruction, self._progress) self._busy = True self._ui(status="Contacting SuperDocs...", preview="", decisions_enabled=False, send_enabled=False) def work(): try: - edit = superdocs_client.request_edit(passage, instruction, self._progress) + edit = request() self._edit = edit if edit["state"] == "completed": # nothing needed approval (e.g. no-op); report honestly @@ -186,7 +229,8 @@ def work(): send_enabled=True) return self._busy = False - self._ui(status="Proposal ready - review and Apply or Reject.", + self._ui(status=f"{len(edit['pending'])} proposed change(s) - " + "review and Apply or Reject.", preview=_proposal_preview(edit), decisions_enabled=True, send_enabled=False) except Exception as exc: @@ -205,6 +249,27 @@ def _on_apply(self): return self._busy = True self._ui(status="Applying...", decisions_enabled=False) + if self._mode == "doc": + pending = self._edit["pending"] + + def work_doc(): + try: + superdocs_client.finalize(self._edit, True, self._progress, + want_text=False) + + def write_back(): + results = writeback.apply_changes(self._doc, pending) + self._edit = None + self._doc = None + self._busy = False + self._ui(status=writeback.summarize(results) + " (1 operation)", + preview="", send_enabled=True) + self._main.post(write_back) + except Exception as exc: + self._fail(exc) + + threading.Thread(target=work_doc, daemon=True).start() + return def work(): try: @@ -242,6 +307,7 @@ def work(): superdocs_client.finalize(self._edit, False, self._progress) self._edit = None self._target_range = None + self._doc = None self._busy = False self._ui(status="Rejected. Document untouched, nothing billed.", preview="", send_enabled=True) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl index 0466439..3ef1e3f 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl @@ -2,24 +2,26 @@ + dlg:width="130" dlg:height="254" dlg:withtitlebar="false"> - + + - - - - - diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py index 7615248..98a88a8 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py @@ -77,39 +77,60 @@ def _poll(job_id, until_states, progress): raise SuperDocsError("Timed out waiting for SuperDocs job") -def request_edit(passage_text, instruction, progress=lambda m: None): - """Returns dict: session, job_id, pending (list), summary (str for preview).""" - session = "sdext-" + time.strftime("%Y%m%d-%H%M%S") - progress("Uploading passage...") - _call("POST", "/v1/documents/upload-base64", { - "filename": "passage.html", - "file_base64": base64.b64encode(_passage_to_html(passage_text).encode()).decode(), - "session_id": session, - }) +def _open_edit(session, message, progress): + """Shared tail: async chat -> poll -> pending changes. Returns edit dict.""" progress("Requesting edit...") job = _call("POST", "/v1/chat/async", { "session_id": session, - "message": (instruction - + "\n\nEdit only this passage; do not add commentary or metadata."), + "message": message, "approval_mode": "ask_every_time", }) state, job_data = _poll(job["job_id"], ("awaiting_approval", "completed"), progress) if state == "failed": raise SuperDocsError("SuperDocs reported the edit failed") pending = (job_data.get("metadata") or {}).get("pending_changes") or [] - parts = [] - for change in pending: - note = change.get("ai_explanation") - if note: - parts.append(note) + parts = [c["ai_explanation"] for c in pending if c.get("ai_explanation")] summary = " | ".join(parts) if parts else f"{len(pending)} proposed change(s)" return {"session": session, "job_id": job["job_id"], "pending": pending, "state": state, "summary": summary} -def finalize(edit, approve, progress=lambda m: None): +def request_edit(passage_text, instruction, progress=lambda m: None): + """Selection mode. Returns dict: session, job_id, pending, state, summary.""" + session = "sdext-" + time.strftime("%Y%m%d-%H%M%S") + progress("Uploading passage...") + _call("POST", "/v1/documents/upload-base64", { + "filename": "passage.html", + "file_base64": base64.b64encode(_passage_to_html(passage_text).encode()).decode(), + "session_id": session, + }) + return _open_edit( + session, + instruction + "\n\nEdit only this passage; do not add commentary or metadata.", + progress) + + +def request_doc_edit(docx_bytes, instruction, progress=lambda m: None): + """Whole-document mode: upload the exported .docx, then one chat request. + Same return shape as request_edit; pending[].old_html anchors write-back.""" + session = "sdext-doc-" + time.strftime("%Y%m%d-%H%M%S") + progress("Uploading document...") + _call("POST", "/v1/documents/upload-base64", { + "filename": "document.docx", + "file_base64": base64.b64encode(docx_bytes).decode(), + "session_id": session, + }) + return _open_edit( + session, + instruction + "\n\nApply targeted edits to this document; change only what " + "the instruction requires; do not add commentary or metadata.", + progress) + + +def finalize(edit, approve, progress=lambda m: None, want_text=True): """Approve or reject all pending changes. On approve, returns the final - passage text (plain-text export); on reject, returns None.""" + passage text (plain-text export), or None when want_text=False (whole-doc + mode writes back from the changes themselves); on reject, returns None.""" decisions = [{"change_id": c["change_id"], "approved": bool(approve)} for c in edit["pending"]] if not approve: @@ -129,6 +150,8 @@ def finalize(edit, approve, progress=lambda m: None): state, _ = _poll(edit["job_id"], ("completed",), progress) if state != "completed": raise SuperDocsError(f"Job ended in state {state}") + if not want_text: + return None progress("Fetching result...") blob = _call("POST", "/v1/documents/export", {"session_id": edit["session"], "format": "txt"}) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py new file mode 100644 index 0000000..b1784aa --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py @@ -0,0 +1,93 @@ +"""Range-by-range write-back of approved SuperDocs changes into the live doc. + +Each pending change carries the HTML it replaces (old_html) and the HTML it +becomes (new_html) — plain HTML on the jobs surface. We reduce old_html to its +plain-text paragraphs, locate them as ONE consecutive paragraph run in the open +document, and replace exactly that range with a style-preserving setString. + +The honesty rule: a change whose original text cannot be found, or matches more +than one place, is SKIPPED and reported — never guessed at. Content outside a +matched range is never touched. +""" +import html as _html +import re + +_BLOCK_BREAK = re.compile(r"|", re.I) +_TAG = re.compile(r"<[^>]+>") + + +def _norm(text): + """Whitespace-insensitive comparison form (HTML collapses whitespace).""" + return re.sub(r"\s+", " ", (text or "").replace("\xa0", " ")).strip() + + +def html_paragraphs(markup): + """Plain-text paragraphs of a block-level HTML fragment, in order.""" + paras = [] + for chunk in _BLOCK_BREAK.split(markup or ""): + # inline tags (, ...) vanish without leaving a space - + # "Friday." must yield "Friday.", not "Friday ."; paragraph + # boundaries were already handled by the block split above + text = _norm(_html.unescape(_TAG.sub("", chunk))) + if text: + paras.append(text) + return paras + + +def _paragraphs(doc): + """Top-level text paragraphs of the document (table cells not included).""" + out = [] + enum = doc.getText().createEnumeration() + while enum.hasMoreElements(): + node = enum.nextElement() + if node.supportsService("com.sun.star.text.Paragraph"): + out.append(node) + return out + + +def _find_runs(paras, wanted): + """Start indexes where consecutive paragraphs equal `wanted` (normalized).""" + texts = [_norm(p.getString()) for p in paras] + n = len(wanted) + return [i for i in range(len(texts) - n + 1) if texts[i:i + n] == wanted] + + +def apply_change(doc, change): + """Apply one approved change. Returns (applied: bool, reason: str).""" + old_paras = html_paragraphs(change.get("old_html")) + new_paras = html_paragraphs(change.get("new_html")) + if not old_paras: + return False, "pure insertion (no anchor text) - apply manually" + # fresh scan for every change: an earlier write-back moves paragraphs + paras = _paragraphs(doc) + hits = _find_runs(paras, old_paras) + if not hits: + return False, "original text not found (inside a table, or already changed)" + if len(hits) > 1: + return False, f"ambiguous ({len(hits)} identical matches)" + first = paras[hits[0]] + last = paras[hits[0] + len(old_paras) - 1] + cursor = doc.getText().createTextCursorByRange(first.getStart()) + cursor.gotoRange(last.getEnd(), True) + # setString keeps the range's styles; "\n" becomes a paragraph break + cursor.setString("\n".join(new_paras)) + return True, "applied" + + +def apply_changes(doc, pending): + """Apply approved changes range by range. Returns per-change result dicts.""" + return [{"change_id": change.get("change_id"), "applied": applied, "reason": reason} + for change in pending + for applied, reason in [apply_change(doc, change)]] + + +def summarize(results): + """One status line, honest about anything skipped.""" + done = sum(1 for r in results if r["applied"]) + msg = f"Applied {done} of {len(results)} change(s) in place." + skipped = [r["reason"] for r in results if not r["applied"]] + if skipped: + msg += (" Skipped (document NOT touched for these): " + + "; ".join(skipped) + + ". The approved SuperDocs copy still has them - export it if needed.") + return msg diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_live_test.sh b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_live_test.sh new file mode 100644 index 0000000..ec8808e --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_live_test.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Whole-document LIVE round-trip harness (Linux). Costs 1 SuperDocs operation. +# Needs: libreoffice-writer, python3-uno, and SUPERDOCS_API_KEY (or +# ~/.superdocs/agent_credentials.json). Isolated profile, port 2004. +set -u +HERE="$(cd "$(dirname "$0")" && pwd)" +PROFILE=/tmp/lotest-superdocs-wholedoc-live +rm -rf "$PROFILE" +soffice --headless --invisible --norestore \ + "-env:UserInstallation=file://$PROFILE" \ + --accept="socket,host=localhost,port=2004;urp;" & +LOPID=$! +PYTHONPATH=/usr/lib/libreoffice/program timeout 600 python3 "$HERE/whole_doc_live_test.py" +RC=$? +kill "$LOPID" 2>/dev/null +exit "$RC" diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_test.sh b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_test.sh new file mode 100644 index 0000000..f34f148 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/run_whole_doc_test.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Whole-document write-back test harness (Linux). OFFLINE: no API key needed, +# costs 0 operations. Starts a throwaway headless LibreOffice on an ISOLATED +# profile (port 2003, so it can run alongside run_style_test.sh) and drives +# writeback.apply_changes against a real Writer document. +# Needs: libreoffice-writer, python3-uno. +set -u +HERE="$(cd "$(dirname "$0")" && pwd)" +PROFILE=/tmp/lotest-superdocs-wholedoc +rm -rf "$PROFILE" +soffice --headless --invisible --norestore \ + "-env:UserInstallation=file://$PROFILE" \ + --accept="socket,host=localhost,port=2003;urp;" & +LOPID=$! +PYTHONPATH=/usr/lib/libreoffice/program timeout 240 python3 "$HERE/whole_doc_test.py" +RC=$? +kill "$LOPID" 2>/dev/null +exit "$RC" diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_live_test.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_live_test.py new file mode 100644 index 0000000..15c2abe --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_live_test.py @@ -0,0 +1,121 @@ +"""Whole-document LIVE round-trip test (headless Linux, costs 1 operation). + +The offline test (whole_doc_test.py) proves the write-back mechanics; this one +proves the integration: a real Writer doc exported as .docx through the host +filter, sent through request_doc_edit, approved, and written back range by +range from the ACTUAL old_html/new_html SuperDocs returned. + +Needs SUPERDOCS_API_KEY or ~/.superdocs/agent_credentials.json. +Run via run_whole_doc_live_test.sh. +""" +import os +import sys +import tempfile +import time +from pathlib import Path + +import uno +import unohelper +from com.sun.star.beans import PropertyValue + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src" / "pythonpath")) +import superdocs_client as sc +import writeback + + +def connect(retries=40): + local = uno.getComponentContext() + resolver = local.ServiceManager.createInstanceWithContext( + "com.sun.star.bridge.UnoUrlResolver", local) + for _ in range(retries): + try: + return resolver.resolve( + "uno:socket,host=localhost,port=2004;urp;StarOffice.ComponentContext") + except Exception: + time.sleep(2) + raise RuntimeError("could not connect to soffice on port 2004") + + +ctx = connect() +desktop = ctx.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", ctx) +doc = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, ()) +text = doc.getText() +cursor = text.createTextCursor() + +TARGET = "The supplier will try to deliver stuff sometime soon, no promises." +KEEP = "Payment terms are net thirty days from the invoice date." + + +def para(style, content): + cursor.ParaStyleName = style + text.insertString(cursor, content, False) + text.insertControlCharacter(cursor, 0, False) # PARAGRAPH_BREAK + + +para("Heading 1", "Service Agreement") +para("Standard", TARGET) +para("Standard", KEEP) +table = doc.createInstance("com.sun.star.text.TextTable") +table.initialize(1, 2) +cursor.ParaStyleName = "Standard" +text.insertTextContent(cursor, table, False) +table.getCellByName("A1").setString("Owner") +table.getCellByName("B1").setString("Procurement") + +# export exactly the way the panel does +fd, path = tempfile.mkstemp(suffix=".docx") +os.close(fd) +prop = PropertyValue() +prop.Name = "FilterName" +prop.Value = "MS Word 2007 XML" +doc.storeToURL(unohelper.systemPathToFileUrl(path), (prop,)) +with open(path, "rb") as f: + docx_bytes = f.read() +os.remove(path) +print(f"1) exported {len(docx_bytes)} bytes, requesting whole-doc edit ...") + +edit = sc.request_doc_edit( + docx_bytes, + "Rewrite the vague delivery sentence into a formal commitment to deliver " + "within 10 business days. Leave every other part of the document unchanged.", + progress=lambda m: print(" ", m)) +assert edit["state"] == "awaiting_approval", edit["state"] +for c in edit["pending"]: + print(" pending old:", (c.get("old_html") or "")[:100]) + print(" pending new:", (c.get("new_html") or "")[:100]) + +print("2) approving ...") +sc.finalize(edit, True, progress=lambda m: print(" ", m), want_text=False) + +print("3) writing back range by range ...") +results = writeback.apply_changes(doc, edit["pending"]) +for r in results: + print(" ", r) + +paras = [] +enum = text.createEnumeration() +while enum.hasMoreElements(): + p = enum.nextElement() + if p.supportsService("com.sun.star.text.Paragraph"): + paras.append((p.ParaStyleName, p.getString())) +texts = [t for _, t in paras] + +checks = [ + ("at least one change applied", any(r["applied"] for r in results)), + ("vague sentence gone", TARGET not in texts), + ("replacement kept Standard style", + all(s == "Standard" for s, t in paras if TARGET[:20] not in t and t not in + ("Service Agreement",) and t.strip())), + ("untouched paragraph identical", KEEP in texts), + ("heading untouched", paras[0] == ("Heading 1", "Service Agreement")), + ("table untouched", + [table.getCellByName(n).getString() for n in ("A1", "B1")] == ["Owner", "Procurement"]), +] + +ok = True +for name, passed in checks: + print(("PASS " if passed else "FAIL ") + name) + ok = ok and passed +doc.close(False) +print("WHOLE-DOC LIVE TEST:", "ALL PASS" if ok else "FAILURES") +sys.exit(0 if ok else 1) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py new file mode 100644 index 0000000..a5d0b72 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py @@ -0,0 +1,132 @@ +"""Whole-document write-back test (headless Linux, OFFLINE - no key, 0 operations). + +Exercises writeback.apply_changes with a synthetic pending-changes list against +a real Writer document, proving the write-back invariants the sidebar relies on: + + 1. a unique single-paragraph match is replaced in place, styles intact + 2. a multi-paragraph run is matched as ONE range and replaced + 3. an ambiguous match (duplicate text) is SKIPPED, both copies untouched + 4. text not in the document is SKIPPED + 5. table-cell content is out of scope -> SKIPPED, table untouched + 6. everything not matched stays exactly as it was + +Run via run_whole_doc_test.sh (starts the headless office this connects to). +""" +import sys +import time +from pathlib import Path + +import uno + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src" / "pythonpath")) +import writeback + + +def connect(retries=40): + local = uno.getComponentContext() + resolver = local.ServiceManager.createInstanceWithContext( + "com.sun.star.bridge.UnoUrlResolver", local) + for _ in range(retries): + try: + return resolver.resolve( + "uno:socket,host=localhost,port=2003;urp;StarOffice.ComponentContext") + except Exception: + time.sleep(2) + raise RuntimeError("could not connect to soffice on port 2003") + + +ctx = connect() +smgr = ctx.ServiceManager +desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx) +doc = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, ()) +text = doc.getText() +cursor = text.createTextCursor() + +BODY = "The vendor shall deliver the report by friday, probably." +RUN_A = "First step of the rollout." +RUN_B = "Second step of the rollout." +DUP = "This sentence appears twice." + + +def para(style, content): + cursor.ParaStyleName = style + text.insertString(cursor, content, False) + text.insertControlCharacter(cursor, 0, False) # PARAGRAPH_BREAK + + +para("Heading 1", "Contract Summary") +para("Standard", BODY) +para("Standard", RUN_A) +para("Standard", RUN_B) +para("Standard", DUP) +para("Standard", DUP) +table = doc.createInstance("com.sun.star.text.TextTable") +table.initialize(1, 2) +cursor.ParaStyleName = "Standard" +text.insertTextContent(cursor, table, False) +table.getCellByName("A1").setString("Owner") +table.getCellByName("B1").setString("Legal team") + +pending = [ + # 1. unique single paragraph -> applied (entities + inline tags on purpose) + {"change_id": "c1", + "old_html": f"

{BODY}

", + "new_html": "

The vendor shall deliver the report by Friday 17:00.

"}, + # 2. two consecutive paragraphs -> ONE range, collapsed to one paragraph + {"change_id": "c2", + "old_html": f"

{RUN_A}

{RUN_B}

", + "new_html": "

Both rollout steps, merged.

"}, + # 3. ambiguous -> skipped + {"change_id": "c3", + "old_html": f"

{DUP}

", + "new_html": "

should never land

"}, + # 4. not in document -> skipped + {"change_id": "c4", + "old_html": "

text that exists nowhere in this file

", + "new_html": "

should never land

"}, + # 5. table cell -> out of scope, skipped + {"change_id": "c5", + "old_html": "

Owner

", + "new_html": "

should never land

"}, +] + +results = writeback.apply_changes(doc, pending) +by_id = {r["change_id"]: r for r in results} + +paras = [] +enum = text.createEnumeration() +while enum.hasMoreElements(): + p = enum.nextElement() + if p.supportsService("com.sun.star.text.Paragraph"): + paras.append((p.ParaStyleName, p.getString())) +texts = [p[1] for p in paras] + +checks = [ + ("c1 applied", by_id["c1"]["applied"]), + ("c1 text landed (entities decoded, tags stripped)", + "The vendor shall deliver the report by Friday 17:00." in texts), + ("c1 kept Standard style", + any(s == "Standard" and t.startswith("The vendor shall deliver") + for s, t in paras)), + ("c2 applied", by_id["c2"]["applied"]), + ("c2 run collapsed to one paragraph", + texts.count("Both rollout steps, merged.") == 1 + and RUN_A not in texts and RUN_B not in texts), + ("c3 skipped as ambiguous", not by_id["c3"]["applied"] + and "ambiguous" in by_id["c3"]["reason"]), + ("c3 both duplicates untouched", texts.count(DUP) == 2), + ("c4 skipped as not found", not by_id["c4"]["applied"]), + ("c5 skipped (table out of scope)", not by_id["c5"]["applied"]), + ("table untouched", + [table.getCellByName(n).getString() for n in ("A1", "B1")] == ["Owner", "Legal team"]), + ("heading untouched", paras[0] == ("Heading 1", "Contract Summary")), + ("nothing bogus landed", "should never land" not in texts), +] + +ok = True +for name, passed in checks: + print(("PASS " if passed else "FAIL ") + name) + ok = ok and passed +doc.close(False) +print("WHOLE-DOC WRITE-BACK TEST:", "ALL PASS" if ok else "FAILURES") +sys.exit(0 if ok else 1) From 29ef8d5ae4acd08b584b7308a58e808f159e1899 Mon Sep 17 00:00:00 2001 From: vanamkarthiknetha Date: Fri, 7 Aug 2026 14:12:34 +0530 Subject: [PATCH 4/6] extension v0.3.1: drafting mode - gate locally what the API does not gate Creation-style instructions ('create a gym plan') complete with ZERO pending changes: the content is already committed server-side in result.document_changes, bypassing the ask_every_time approval gate entirely (found via probe, logged as a bug report). The sidebar now closes that gap on its side: the client surfaces the draft from the completed job, the panel presents it as a reviewable proposal, Apply inserts it at the view cursor (writeback.insert_paragraphs - existing text is never modified), Reject discards it. No-op results still report 'nothing changed' honestly. Tests: offline suite extended to 19 checks (write-back invariants + draft insertion), ALL PASS; new plain-HTTP live test proves draft_html extraction on a real completed job, and honestly reports SKIPPED when the model nondeterministically chooses in-place edits instead. Co-Authored-By: Claude Fable 5 --- .../superdocs-writer-sidebar/README.md | 38 +++++---- .../dist/superdocs-writer-sidebar.oxt | Bin 10955 -> 12224 bytes .../src/description.xml | 2 +- .../superdocs-writer-sidebar/src/panel.py | 72 +++++++++++++++--- .../src/pythonpath/superdocs_client.py | 13 +++- .../src/pythonpath/writeback.py | 28 +++++++ .../tests/draft_live_test.py | 61 +++++++++++++++ .../tests/whole_doc_test.py | 37 +++++++++ 8 files changed, 227 insertions(+), 24 deletions(-) create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/draft_live_test.py diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md index 72bcd4d..58b0cf4 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md @@ -6,18 +6,24 @@ instruction, reviewing the proposed changes, and applying approved ones back into the document **range by range** — untouched text is never rewritten, and existing paragraph/character styles are respected. -> **Status: v0.3 — selection AND whole-document modes, validated on Linux and -> Windows.** Selection mode: select a passage, describe the edit, review, Apply -> → only the selected range changes, styles intact. Whole-document mode (tick -> the checkbox): the doc is exported as .docx through the host's own filter and -> uploaded; every approved change is located by its original text in the live -> document and replaced range by range — a change that can't be found, or that -> matches more than one place, is **skipped and reported, never guessed at**. -> Current limits, stated honestly: write-back is plain text into the styled -> range (formatting *inside* a proposal isn't carried yet); whole-doc write-back -> covers body paragraphs, not table-cell content (those changes are reported as -> skipped, and the approved SuperDocs copy still has them); drafting-at-cursor -> is not built. +> **Status: v0.3.1 — selection, whole-document, and drafting modes, validated +> on Linux and Windows.** Selection mode: select a passage, describe the edit, +> review, Apply → only the selected range changes, styles intact. +> Whole-document mode (tick the checkbox): the doc is exported as .docx through +> the host's own filter and uploaded; every approved change is located by its +> original text in the live document and replaced range by range — a change +> that can't be found, or that matches more than one place, is **skipped and +> reported, never guessed at**. Drafting: when the instruction makes SuperDocs +> *create* content instead of editing ("create a gym plan"), the API applies it +> server-side with **zero pending changes** — creation bypasses the +> `ask_every_time` approval gate entirely (reported as a bug during this +> project). The sidebar closes that gap locally: the draft becomes a reviewable +> proposal, Apply inserts it at the cursor, Reject discards it — nothing lands +> in your document without a decision. Current limits, stated honestly: +> write-back and draft insertion are plain text into styled ranges (formatting +> *inside* a proposal isn't carried yet); whole-doc write-back covers body +> paragraphs, not table-cell content (those changes are reported as skipped, +> and the approved SuperDocs copy still has them). ## Screenshots (Linux, WSLg) @@ -92,6 +98,12 @@ profile; they never touch your normal LibreOffice or its profile. real API: UNO doc → .docx export → `request_doc_edit` → approve → write-back from the actual returned `old_html`/`new_html`. Costs 1 operation. Ends with `WHOLE-DOC LIVE TEST: ALL PASS`. +- `tests/draft_live_test.py` — plain HTTP, no LibreOffice needed, ≤1 operation. + Sends a drafting instruction and verifies the client surfaces the created + content as `draft_html` on a completed zero-pending job (the approval-gate + bypass). If the model happens to propose in-place edits instead, they are + rejected (free) and the run reports SKIPPED honestly — model choice between + editing and creating is nondeterministic. (Portability note discovered by this test: LibreOffice 26 dropped the classic "List Bullet" paragraph-style family — bullets are now "List 1".."List 5" — so @@ -108,7 +120,7 @@ the test discovers style names at runtime instead of assuming them.) | `src/panel.py` | UNO component: panel factory, panel, threading, both modes | | `src/panel.xdl` | Panel UI (whole-doc checkbox, instruction box, Send, preview, Apply/Reject, status) | | `src/pythonpath/superdocs_client.py` | Stdlib SuperDocs client (upload → async chat → approve → export) | -| `src/pythonpath/writeback.py` | Whole-doc write-back: HTML→paragraphs, unique-run matching, range-by-range apply | +| `src/pythonpath/writeback.py` | Whole-doc write-back: HTML→paragraphs, unique-run matching, range-by-range apply, draft insertion | | `src/icons/superdocs_24.png` | Sidebar deck icon | Built by Karthik Vanam for the SuperDocs hiring round, with AI-assisted diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt index 33320bb451bbe72b8fb24bf8c24714f6dae418f0..566e0846359b938fde7504a71decbcd54f76209a 100644 GIT binary patch delta 9818 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.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 - + SuperDocs Writer Sidebar diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py index 34ed642..40d1b19 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py @@ -1,9 +1,12 @@ # SuperDocs Writer Sidebar - UNO component. -# v0.3: selection round-trip + whole-document mode. Selection: approved text is -# written back into the exact selected range. Whole document: the doc is -# exported as .docx and uploaded; each approved change is located by its -# original text and replaced range by range (writeback.py) - unmatched changes -# are skipped and reported, never guessed at. +# v0.3.x: selection round-trip + whole-document mode + drafting. Selection: +# approved text is written back into the exact selected range. Whole document: +# the doc is exported as .docx and uploaded; each approved change is located by +# its original text and replaced range by range (writeback.py) - unmatched +# changes are skipped and reported, never guessed at. Drafting: when SuperDocs +# CREATES content instead of editing (which bypasses the API's approval gate, +# BUGS B6), the draft becomes a local proposal - Apply inserts it at the +# cursor, Reject discards it; nothing lands without a decision. import os import re import tempfile @@ -97,9 +100,10 @@ def __init__(self, ctx, frame, parent_window, resource_url): self._window = None self._main = _MainThread(ctx) self._edit = None # dict from superdocs_client.request_*edit - self._mode = None # "sel" or "doc" + self._mode = None # "sel", "doc", or "draft" self._target_range = None # XTextRange (selection mode) - self._doc = None # text-document model (whole-doc mode) + self._doc = None # text-document model + self._draft_paras = None # drafted paragraphs awaiting the local gate self._busy = False # ---- XUIElement ---- @@ -192,6 +196,7 @@ def _on_send(self): self._mode = "doc" self._doc = model self._target_range = None + base_text = model.getText().getString() self._ui(status="Exporting document...", preview="", decisions_enabled=False, send_enabled=False) docx_bytes = self._export_docx(model) @@ -208,9 +213,10 @@ def _on_send(self): "or tick 'Whole document'.") return self._mode = "sel" - self._doc = None + self._doc = controller.getModel() self._target_range = selection.getByIndex(0) passage = self._target_range.getString() + base_text = passage request = lambda: superdocs_client.request_edit( passage, instruction, self._progress) self._busy = True @@ -222,7 +228,25 @@ def work(): edit = request() self._edit = edit if edit["state"] == "completed": - # nothing needed approval (e.g. no-op); report honestly + # Drafting instructions bypass the API's approval gate + # entirely (BUGS B6): the job completes with no pending + # changes and the created content rides result. + # document_changes. Gate that draft HERE instead. + draft_paras = writeback.html_paragraphs(edit.get("draft_html")) + if draft_paras and (" ".join(draft_paras) + != writeback._norm(base_text)): + self._mode = "draft" + self._draft_paras = draft_paras + joined = " ".join(draft_paras) + clipped = joined[:300] + ("..." if len(joined) > 300 else "") + self._busy = False + self._ui(status="SuperDocs drafted NEW content (no in-place " + "edits). Apply inserts it at the cursor; " + "Reject discards it.", + preview=f'Draft: "{clipped}"', + decisions_enabled=True, send_enabled=False) + return + # genuinely nothing to review; report honestly self._busy = False self._ui(status="SuperDocs made no reviewable proposal " "(request may already be satisfied). Nothing changed.", @@ -249,6 +273,26 @@ def _on_apply(self): return self._busy = True self._ui(status="Applying...", decisions_enabled=False) + if self._mode == "draft": + # already billed and committed server-side (B6); the gate is local. + paras = self._draft_paras + + def insert_draft(): + at_range = None + try: + at_range = self._doc.getCurrentController().getViewCursor() + except Exception: + pass # fall back to end of document + count = writeback.insert_paragraphs(self._doc, paras, at_range) + self._edit = None + self._doc = None + self._draft_paras = None + self._busy = False + self._ui(status=f"Draft inserted at the cursor ({count} paragraph(s)). " + "Existing text untouched.", + preview="", send_enabled=True) + self._main.post(insert_draft) + return if self._mode == "doc": pending = self._edit["pending"] @@ -299,6 +343,16 @@ def on_reject(self): def _on_reject(self): if self._busy or not self._edit: return + if self._mode == "draft": + # nothing to reject server-side - the job already completed (B6); + # discarding is purely local + self._edit = None + self._doc = None + self._draft_paras = None + self._ui(status="Draft discarded; document untouched. " + "(It still exists in your SuperDocs session.)", + preview="", decisions_enabled=False, send_enabled=True) + return self._busy = True self._ui(status="Rejecting...", decisions_enabled=False) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py index 98a88a8..33080b2 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/superdocs_client.py @@ -91,8 +91,19 @@ def _open_edit(session, message, progress): pending = (job_data.get("metadata") or {}).get("pending_changes") or [] parts = [c["ai_explanation"] for c in pending if c.get("ai_explanation")] summary = " | ".join(parts) if parts else f"{len(pending)} proposed change(s)" + # Drafting instructions ("create X") bypass the approval gate entirely: the + # job completes with NO pending changes and the created content rides + # result.document_changes (observed 2026-08-07, logged as BUGS B6). Expose + # it so the panel can gate the draft locally instead of dropping it. + result = job_data.get("result") or {} + draft_html = "" + response_text = "" + if isinstance(result, dict): + draft_html = (result.get("document_changes") or {}).get("updated_html") or "" + response_text = result.get("response") or "" return {"session": session, "job_id": job["job_id"], "pending": pending, - "state": state, "summary": summary} + "state": state, "summary": summary, + "draft_html": draft_html, "response": response_text} def request_edit(passage_text, instruction, progress=lambda m: None): diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py index b1784aa..30bb391 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py @@ -81,6 +81,34 @@ def apply_changes(doc, pending): for applied, reason in [apply_change(doc, change)]] +PARAGRAPH_BREAK = 0 # com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK + + +def insert_paragraphs(doc, paras, at_range=None): + """Insert plain-text paragraphs at at_range (default: end of document). + + Existing content is never modified: if the insertion point sits in a + non-empty paragraph, a paragraph break is opened first. Returns the number + of paragraphs inserted. + """ + text = at_range.getText() if at_range is not None else doc.getText() + if at_range is not None: + cursor = text.createTextCursorByRange(at_range.getEnd()) + else: + cursor = text.createTextCursor() + cursor.gotoEnd(False) + probe = text.createTextCursorByRange(cursor) + probe.gotoStartOfParagraph(False) + probe.gotoEndOfParagraph(True) + if probe.getString().strip(): + text.insertControlCharacter(cursor, PARAGRAPH_BREAK, False) + for i, para in enumerate(paras): + if i: + text.insertControlCharacter(cursor, PARAGRAPH_BREAK, False) + text.insertString(cursor, para, False) + return len(paras) + + def summarize(results): """One status line, honest about anything skipped.""" done = sum(1 for r in results if r["applied"]) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/draft_live_test.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/draft_live_test.py new file mode 100644 index 0000000..7413a40 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/draft_live_test.py @@ -0,0 +1,61 @@ +"""Drafting-path LIVE test (plain HTTP, no LibreOffice needed, costs <= 1 op). + +Sends a drafting-style instruction ("create X") the way the sidebar does and +verifies the client surfaces the created content as edit["draft_html"] when the +job completes with zero pending changes (the B6 behavior: creation bypasses the +approval gate). If the model instead proposes in-place edits, we reject them +(free) and report that this run did not exercise the draft path - both outcomes +are honest. + +Needs SUPERDOCS_API_KEY or ~/.superdocs/agent_credentials.json. +Run: python3 tests/draft_live_test.py +""" +import base64 +import sys +import time +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src" / "pythonpath")) +import superdocs_client as sc +import writeback + +BASE = "Migration Plan" +# mirror the whole-doc flow (the wording that reliably triggers creation): +# upload a near-empty doc, then the exact message request_doc_edit sends +session = "sdext-drafttest-" + time.strftime("%Y%m%d-%H%M%S") +sc._call("POST", "/v1/documents/upload-base64", { + "filename": "passage.html", + "file_base64": base64.b64encode( + f"

{BASE}

".encode()).decode(), + "session_id": session, +}) +edit = sc._open_edit( + session, + "create a plan to hit gym" + "\n\nApply targeted edits to this document; change only what " + "the instruction requires; do not add commentary or metadata.", + lambda m: print(" ", m)) +print("state:", edit["state"], "| pending:", len(edit["pending"]), + "| response:", (edit.get("response") or "")[:120]) + +if edit["state"] == "awaiting_approval": + sc.finalize(edit, False, progress=lambda m: print(" ", m)) + print("NOTE: model proposed in-place edits for this phrasing; rejected (free).") + print("DRAFT LIVE TEST: SKIPPED (draft path not taken this run - not a failure)") + sys.exit(0) + +paras = writeback.html_paragraphs(edit.get("draft_html")) +checks = [ + ("job completed with no pending changes", not edit["pending"]), + ("draft_html surfaced and non-empty", bool(paras)), + ("draft differs from the uploaded passage", + " ".join(paras) != writeback._norm(BASE)), +] +ok = True +for name, passed in checks: + print(("PASS " if passed else "FAIL ") + name) + ok = ok and passed +if ok: + print("draft paragraphs:", len(paras), "| first:", paras[0][:80]) +print("DRAFT LIVE TEST:", "ALL PASS" if ok else "FAILURES") +sys.exit(0 if ok else 1) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py index a5d0b72..c39ada7 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/whole_doc_test.py @@ -123,6 +123,43 @@ def para(style, content): ("nothing bogus landed", "should never land" not in texts), ] +# ---- draft insertion (v0.3.1): insert_paragraphs never touches existing text ---- +before_texts = list(texts) +n_end = writeback.insert_paragraphs(doc, ["Draft alpha.", "Draft beta."]) # at end +heading_para = None +enum = text.createEnumeration() +while enum.hasMoreElements(): + p = enum.nextElement() + if p.supportsService("com.sun.star.text.Paragraph") and p.getString() == "Contract Summary": + heading_para = p + break +n_mid = writeback.insert_paragraphs(doc, ["Inserted after heading."], heading_para) + +paras2 = [] +enum = text.createEnumeration() +while enum.hasMoreElements(): + p = enum.nextElement() + if p.supportsService("com.sun.star.text.Paragraph"): + paras2.append((p.ParaStyleName, p.getString())) +texts2 = [t for _, t in paras2] +nonempty2 = [t for t in texts2 if t.strip()] + +checks += [ + ("insert at end returned 2", n_end == 2), + ("draft paragraphs landed at end", nonempty2[-2:] == ["Draft alpha.", "Draft beta."]), + ("insert at range returned 1", n_mid == 1), + ("mid insert landed right after heading", + texts2[texts2.index("Contract Summary") + 1] == "Inserted after heading."), + ("heading text/style survived insertion", paras2[0] == ("Heading 1", "Contract Summary")), + # non-empty only: inserting at the end legitimately consumes the trailing + # EMPTY paragraph (writing into an empty paragraph touches no content) + ("every pre-insert non-empty paragraph still present in order", + [t for t in texts2 if t.strip() and t in before_texts] + == [t for t in before_texts if t.strip()]), + ("table survived insertion", + [table.getCellByName(n).getString() for n in ("A1", "B1")] == ["Owner", "Legal team"]), +] + ok = True for name, passed in checks: print(("PASS " if passed else "FAIL ") + name) From 2b5e5a0de628d14e5bbac9f055ff348006433d9b Mon Sep 17 00:00:00 2001 From: vanamkarthiknetha Date: Fri, 7 Aug 2026 14:19:59 +0530 Subject: [PATCH 5/6] extension v0.3.2: GUI-validated screenshots + table-cell spacing in drafts Windows screenshots of the drafting flow working end to end (27-paragraph draft inserted at the cursor with existing text untouched; a follow-up whole-document edit returning 22 reviewable proposals), wired into the README. The draft screenshot exposed a flattening flaw: table cells in drafted content concatenated ('MondayStrength Training...45 mins') because boundaries vanished during HTML-to-text reduction. Cell ends now become spaces before the block split. Offline suite still 19/19 ALL PASS. Co-Authored-By: Claude Fable 5 --- .../superdocs-writer-sidebar/README.md | 22 +++++++++++++++++- .../dist/superdocs-writer-sidebar.oxt | Bin 12224 -> 12305 bytes .../screenshots/windows-draft-inserted.png | Bin 0 -> 144167 bytes .../screenshots/windows-draft-requesting.png | Bin 0 -> 67660 bytes .../windows-wholedoc-proposals.png | Bin 0 -> 167314 bytes .../src/description.xml | 2 +- .../src/pythonpath/writeback.py | 4 +++- 7 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-draft-inserted.png create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-draft-requesting.png create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-wholedoc-proposals.png diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md index 58b0cf4..9791e77 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md @@ -25,7 +25,9 @@ existing paragraph/character styles are respected. > paragraphs, not table-cell content (those changes are reported as skipped, > and the approved SuperDocs copy still has them). -## Screenshots (Linux, WSLg) +## Screenshots + +**Selection mode (Linux, WSLg):** | Sending a selection | Applied in place | |---|---| @@ -34,6 +36,24 @@ existing paragraph/character styles are respected. A `Heading 1` paragraph edited via the sidebar: the text changed, the heading style survived untouched. +**Whole-document + drafting modes (Windows):** + +| Draft requested | Draft gated, then inserted at the cursor | +|---|---| +| ![Requesting](screenshots/windows-draft-requesting.png) | ![Inserted](screenshots/windows-draft-inserted.png) | + +"create a fitness plan" on a near-empty document: SuperDocs *creates* content +(zero pending changes server-side — the approval-gate bypass described above), +the sidebar gates it locally, and Apply inserts 27 paragraphs at the cursor — +the pre-existing sentence at the top is untouched, and the status line says +exactly what happened. + +![Proposals](screenshots/windows-wholedoc-proposals.png) + +A follow-up whole-document *edit* on that same draft ("Add some styles to it +like Markdown."): 22 proposed changes come back as a reviewable proposal with +the actual proposed text quoted — nothing lands until Apply. + ## Build ```bash diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt index 566e0846359b938fde7504a71decbcd54f76209a..6e94a021e8f512bc9382c04ddb290604d2f2daf3 100644 GIT binary patch delta 2452 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 diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-draft-inserted.png b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-draft-inserted.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd51f83ccd2fc463ca45f2afd215c0df6312d1f GIT binary patch literal 144167 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 z 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 literal 0 HcmV?d00001 diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml index 5537b47..87f635a 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/description.xml @@ -2,7 +2,7 @@ - + SuperDocs Writer Sidebar diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py index 30bb391..0b14763 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/writeback.py @@ -13,6 +13,8 @@ import re _BLOCK_BREAK = re.compile(r"|", re.I) +_CELL_END = re.compile(r"", re.I) # cell boundary -> space, or +# "MondayStrength" flattens to "MondayStrength" in drafted tables _TAG = re.compile(r"<[^>]+>") @@ -24,7 +26,7 @@ def _norm(text): def html_paragraphs(markup): """Plain-text paragraphs of a block-level HTML fragment, in order.""" paras = [] - for chunk in _BLOCK_BREAK.split(markup or ""): + for chunk in _BLOCK_BREAK.split(_CELL_END.sub(" ", markup or "")): # inline tags (, ...) vanish without leaving a space - # "Friday." must yield "Friday.", not "Friday ."; paragraph # boundaries were already handled by the block split above From 1d6b090e14c361b8febd251643aee205fc3a62c0 Mon Sep 17 00:00:00 2001 From: vanamkarthiknetha Date: Tue, 11 Aug 2026 19:19:01 +0530 Subject: [PATCH 6/6] extension v0.3.3: responsive sidebar panel - the status line stays on screen panel.xdl is a bulletin board - fixed coordinates, no reflow - and the panel claimed a fixed 360px height. In a small office window the bottom of the stack, the status line (the one control that says what just happened), was placed outside the visible panel and simply vanished. - new src/pythonpath/panel_layout.py: floor/minimum/preferred tiers and grow weights per control, pure arithmetic, no UNO. Tall panel: instruction, preview and status share the slack. Short panel: the hint then the title drop out and the flexible boxes shrink, while the working controls, Apply/Reject and the status line stay on screen. An empty preview now takes no room at all. - panel.py: an XWindowListener re-places every control on each resize, and getHeightForWidth reports the real minimum/preferred/maximum instead of a fixed 360, so the deck grows the panel when there is room and scrolls only below the floor layout. The pixel scale is measured from btnSend's authored height, so sizes follow the host's DPI/font scaling rather than a hardcoded factor (2.5 px/unit on the Windows box this was validated on). Status and preview also carry their full text as a tooltip. - new tests/layout_test.py: offline, plain python3, no LibreOffice, no API key, 0 operations - 38,570 assertions over 2,231 panel sizes at three DPI scales. Ends with PANEL LAYOUT TEST: ALL PASS. GUI-validated on Windows in a throwaway profile: at panel heights of 801, 510, 330 and 230px the status line stayed fully inside the panel and below the decision buttons every time; screenshot at a 900x520 office window added. Co-Authored-By: Claude Opus 5 --- .../superdocs-writer-sidebar/README.md | 37 +++++- .../dist/superdocs-writer-sidebar.oxt | Bin 12305 -> 15577 bytes .../screenshots/windows-small-window.png | Bin 0 -> 42376 bytes .../src/description.xml | 2 +- .../superdocs-writer-sidebar/src/panel.py | 87 ++++++++++++- .../superdocs-writer-sidebar/src/panel.xdl | 5 + .../src/pythonpath/panel_layout.py | 118 ++++++++++++++++++ .../tests/layout_test.py | 115 +++++++++++++++++ 8 files changed, 357 insertions(+), 7 deletions(-) create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-small-window.png create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/panel_layout.py create mode 100644 extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/layout_test.py diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md index 9791e77..4bc0998 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/README.md @@ -25,6 +25,18 @@ existing paragraph/character styles are respected. > paragraphs, not table-cell content (those changes are reported as skipped, > and the approved SuperDocs copy still has them). +**v0.3.3 — the panel is responsive.** It used to be a fixed-coordinate +layout that claimed a fixed height, so in a small office window the bottom of +the stack — the status line, the one control that says what just happened — +was placed outside the panel and clipped. The panel now reports its real +minimum/preferred/maximum height to the sidebar deck and re-lays itself out on +every resize: the flexible boxes (instruction, preview, status) share the +slack in a tall panel and give it back in a short one, the hint and title drop +out before anything functional does, and **Apply/Reject and the status line +stay on screen at every size**. An empty preview now takes no room at all, and +both the status and preview carry their full text as a tooltip. Sizes scale +with the host's DPI/font scaling rather than a hardcoded factor. + ## Screenshots **Selection mode (Linux, WSLg):** @@ -54,6 +66,20 @@ A follow-up whole-document *edit* on that same draft ("Add some styles to it like Markdown."): 22 proposed changes come back as a reviewable proposal with the actual proposed text quoted — nothing lands until Apply. +**Small office window (Windows):** + +![Small window](screenshots/windows-small-window.png) + +The same panel in a 900×520 office window. The hint paragraph has dropped out +and the instruction box has shrunk to fit, but the checkbox, Send, Apply/Reject +and the status line ("Ready.") are all still on screen — before v0.3.3 the +status line was positioned below the panel's visible area and simply vanished. +Squeeze further and the title goes too; the working controls and the status +line are the last things standing. Below even that floor layout the sidebar +deck gives you its own scrollbar and the status is still reachable — the old +fixed height claimed the panel was 360px tall while its content was ~500px, so +the deck saw no reason to scroll and the overflow was simply lost. + ## Build ```bash @@ -118,6 +144,14 @@ profile; they never touch your normal LibreOffice or its profile. real API: UNO doc → .docx export → `request_doc_edit` → approve → write-back from the actual returned `old_html`/`new_html`. Costs 1 operation. Ends with `WHOLE-DOC LIVE TEST: ALL PASS`. +- `tests/layout_test.py` — **offline, plain `python3`, no LibreOffice, no API + key, 0 operations.** Drives `panel_layout.solve` at every panel height from + below the floor to well above the preferred layout, at three DPI scales, and + asserts the invariants the panel promises: the status line is always fully + inside the panel and always below the decision buttons, the working controls + never disappear, rows never overlap or overflow the width, spare height is + absorbed instead of left dangling. ~38k assertions over ~2.2k panel sizes; + ends with `PANEL LAYOUT TEST: ALL PASS`. - `tests/draft_live_test.py` — plain HTTP, no LibreOffice needed, ≤1 operation. Sends a drafting instruction and verifies the client surfaces the created content as `draft_html` on a completed zero-pending job (the approval-gate @@ -138,7 +172,8 @@ the test discovers style names at runtime instead of assuming them.) | `src/config/Sidebar.xcu` | Registers the SuperDocs deck + panel in Writer's sidebar | | `src/config/Factories.xcu` | Maps the panel's resource URL to the Python factory | | `src/panel.py` | UNO component: panel factory, panel, threading, both modes | -| `src/panel.xdl` | Panel UI (whole-doc checkbox, instruction box, Send, preview, Apply/Reject, status) | +| `src/panel.xdl` | Panel UI (whole-doc checkbox, instruction box, Send, preview, Apply/Reject, status) — authoring geometry; runtime positions come from `panel_layout` | +| `src/pythonpath/panel_layout.py` | Responsive geometry: where every control goes for the panel's current size (pure arithmetic, no UNO) | | `src/pythonpath/superdocs_client.py` | Stdlib SuperDocs client (upload → async chat → approve → export) | | `src/pythonpath/writeback.py` | Whole-doc write-back: HTML→paragraphs, unique-run matching, range-by-range apply, draft insertion | | `src/icons/superdocs_24.png` | Sidebar deck icon | diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/dist/superdocs-writer-sidebar.oxt index 6e94a021e8f512bc9382c04ddb290604d2f2daf3..5a3322c072a8db53591b910964edbdeb3a2d33c4 100644 GIT binary patch delta 8676 zcmaKyWlS7E+pZUPcXxNExH}YgcXzkNp*SoK#fuhq=;E#m6f4E0I23nI-|xqHbCNG- z=GP=M$xNQy$u(D=H1oB9#!eW-y>t{4Zxdz~P(KVauv|gs3+kE-Si;cfd=Qg$dbOFX zxT7IFLf!6QzUbrCZrJCH_jn+{hO^QxOC4H2PicpyvWVicQXr5m89^hQ<7+cja+DSRW9T&)o z`jZPfErv0_I$d8RPjzZCQcmWWG)we#u@>{~KaruN;y*A=vDs3YdEtASH6!-s!hVcl zy$FxI6SU03&O-suQc+AQoq((!xB!5sDgb~8007)ATy31$-2*m^UA)!>)87kgUJ*#& zsD36-3-ag$8O;Ws6zH!#PP*BB0{uMjG>nU)O=i+WNo{Y_y4h+Vaf4Mk43EI0#wCIDvBvM=XT+XWDTgPY_p&`XO- zW2LF}M|Zi|JO>k)Ki?}Cx{hP)hw4~6i!<#yqKS@oD-epP3Yug%^d^q~^cI$}^lsT1 zAyZbEAXiF9_QXKVU}f+k-b&}?K+&uxw7}qHzl($9ECx?dUlYYr+cGL*kPN|;50mr5 zjV)`ZB4QPaV&*ZF|FVWt)xXZ-ByKnX)gw>?-?6D*Py3yzTNFV+HyzVO(#%<(q?@+Lp@V~z=95fPrt)KcZy87x{eOf zJs63%p%e*j-yR`u6T;RZ|B`+kw;A~e)SluP(-fW4#I&6?$2Z$tWR>>3y7S6o7y$>Y zNHcXa5A(h;@ZdJES1vAo6g(Qv5zR!qAPmA;xB^QIMuO`+N*s`3^2rHCTI2OVi6u}f zuqO>281Mn4r9A z=a_7DlFF{M%75B4n-Xne!^sJlr738L2-SRbEjx&BO%D;C)jbeGS;^Sa&By9wfu@+9 zjE_XI>E9ID9{_%#h~Pp(e6=ciyE_Gbyq?Dv&3MTIeqbX-%rmB!52f+saA`gcUTFGK zlnQXdz)N0H=xA^sAa8C33yCf2CYh=SrE}Unq#L=zn>W_51){mv6e|L?yWc`&)t~-6 zd#HHn^QZ~1sKJ5I(et&TmzE#NZUK+DDguk4T+p+)vQx8IYJ$&g3OA5Ub5b?~BKR12 zOlX5J-u}}+3x7k<_*vysFoU&VLyEj5yS=r&{B86Fzaxc}DyD>3n}v$L9&c}x$aHYV zl`{5+5=}|p1j>ZcL&AWKsKWqd9neBTufLCtZG756Ds11eWGIFy-%sfoC2c4D7ndtl zw6pJmw}mBI1v;d|T4Kf5){Ufo)2uJ>5jR-jdV+Sx=9?}YM|sf$PEhHS`Ud;EK0^vP zh@K<(s=VFMk)_JVoR5a=H+bxpgPplqwzx3^P~I;*sNW!h+A%;uXbrdqn8y|O$_h+7 z%z|;1rwvHp$r0JnT<3YpOw|4lJBPxo76Zg_b1wQ~IYr%$evIBY+h;gL3E+?h8W!_} z8CSBG)t3ssNQHuIaCrup2pev;FDqO0+kl-R^thGv69J%C;Cm_iyp{O?#_ojfVy*e8>25N0}#)!aafo7^nEN-hoV|m5QH1NNmqTm)jI2 z&+DJ&2iH9=nU(PS9L~8Sq0S%Vhv$$JfIe=HfAGCvvJ z2f(da$hnYH=h0SJFsi~mk}J~?_d0eCN1cVkW&ufWWFe}ue^alR5x~=cSm|Yisqk5R zT;52D`qWwY+bW9&RsYpCV*;ff%yro<;oU;iM-=q=;KXs1qv;GQDZ=7LX6VS-K;fwk z|92?GlIrb`I=_{??aEUg`<-+*zKq8AaoJl{6Rkw*JkL+A9h#r(P@H=+o`L(nKCk{n zSOTIBfGX4*IKDe0S68d3{+f^(UK6K;J#DxIez=r@u%l0bNuc4y}~D&8Qw zB?2s{ETN$0it77uMmg!oRI#uK>e`9vZ`r3{;6l>#e6sJ;r)lLG1Kc;V1`Cz$BuD;^ zV22C)?+4W&BUV9}@643GxndXSS)yc!sRP40&;9Ufjt)yEPRI>-nES_u?2ln6t)NTC z3e2JE!_2dj3#&+N>76)IF=6vmCIbfGCJxs!9slAVLZxbsrza^9DCRCB+N7KfjdAfm z`MGE}GOwg26+|fSqPVXubpC)yvCzpd6⩔IP-Gy7hd%U4?a{N78jSm?OF+&P627! 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 n - + SuperDocs Writer Sidebar diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py index 40d1b19..b443600 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.py @@ -15,13 +15,15 @@ import unohelper -from com.sun.star.awt import XActionListener, XCallback +from com.sun.star.awt import XActionListener, XCallback, XWindowListener +from com.sun.star.awt.PosSize import POSSIZE from com.sun.star.beans import PropertyValue from com.sun.star.container import NoSuchElementException from com.sun.star.lang import XServiceInfo from com.sun.star.ui import XSidebarPanel, XToolPanel, XUIElement, XUIElementFactory, LayoutSize from com.sun.star.ui.UIElementType import TOOLPANEL +import panel_layout import superdocs_client import writeback @@ -60,6 +62,30 @@ def disposing(self, _event): self._handler = None +class _Resize(unohelper.Base, XWindowListener): + """Re-lays the panel out whenever the sidebar hands it a new size.""" + + def __init__(self, handler): + self._handler = handler + + def windowResized(self, _event): + if self._handler: + self._handler() + + def windowShown(self, _event): + if self._handler: + self._handler() + + def windowMoved(self, _event): + pass + + def windowHidden(self, _event): + pass + + def disposing(self, _event): + self._handler = None + + class _Job(unohelper.Base, XCallback): """One main-thread job. Holds the callable itself - a Python function must never be passed as the UNO `aData` argument (not convertible to Any; the @@ -105,6 +131,8 @@ def __init__(self, ctx, frame, parent_window, resource_url): self._doc = None # text-document model self._draft_paras = None # drafted paragraphs awaiting the local gate self._busy = False + self._unit_px = None # measured pixels per appfont unit + self._preview_text = "" # mirrors lblPreview; drives its layout tier # ---- XUIElement ---- def getRealInterface(self): @@ -116,7 +144,9 @@ def getRealInterface(self): self._window.getControl("btnSend").addActionListener(_Action(self.on_send)) self._window.getControl("btnApprove").addActionListener(_Action(self.on_apply)) self._window.getControl("btnReject").addActionListener(_Action(self.on_reject)) + self._window.addWindowListener(_Resize(self._relayout)) self._window.setVisible(True) + self._relayout() return self # ---- XToolPanel ---- @@ -129,23 +159,70 @@ def createAccessible(self, _parent): # ---- XSidebarPanel ---- def getHeightForWidth(self, _width): - return LayoutSize(360, -1, 360) + """Report the real range, not a fixed height: the deck then grows the + panel when there is room and only scrolls once even the floor layout + no longer fits.""" + unit = self._unit() + has_preview = bool(self._preview_text) + size = LayoutSize() + size.Minimum = panel_layout.stack_height(panel_layout.FLOOR, unit, has_preview) + size.Preferred = panel_layout.stack_height(panel_layout.PREF, unit, has_preview) + size.Maximum = size.Preferred * 10 # take whatever slack the deck has + return size def getMinimalWidth(self): - return 160 + return int(round(80 * self._unit())) + + # ---- layout (geometry lives in panel_layout; this only applies it) ---- + def _unit(self): + """Pixels per appfont unit, measured from btnSend's authored height so + the panel tracks the host's DPI and font scaling.""" + if self._unit_px is None and self._window is not None: + try: + measured = (self._window.getControl("btnSend").getPosSize().Height + / panel_layout.SEND_UNITS) + except Exception: + measured = 0 + if 1.0 <= measured <= 8.0: + self._unit_px = measured + return self._unit_px or 2.0 + + def _relayout(self): + if self._window is None: + return + try: + rect = self._window.getPosSize() + if rect.Width <= 0 or rect.Height <= 0: + return + placements = panel_layout.solve(rect.Width, rect.Height, self._unit(), + bool(self._preview_text)) + for control_id, box in placements: + control = self._window.getControl(control_id) + if box: + control.setPosSize(box[0], box[1], box[2], box[3], POSSIZE) + control.setVisible(bool(box)) + except Exception: + traceback.print_exc() # a layout slip must never break the panel # ---- ui helpers (safe from any thread via _MainThread.post) ---- def _ui(self, status=None, preview=None, decisions_enabled=None, send_enabled=None): def apply_ui(): if status is not None: - self._window.getControl("lblStatus").getModel().Label = status + model = self._window.getControl("lblStatus").getModel() + model.Label = status + model.HelpText = status # readable on hover in a short panel if preview is not None: - self._window.getControl("lblPreview").getModel().Label = preview + self._preview_text = preview + model = self._window.getControl("lblPreview").getModel() + model.Label = preview + model.HelpText = preview if decisions_enabled is not None: self._window.getControl("btnApprove").getModel().Enabled = decisions_enabled self._window.getControl("btnReject").getModel().Enabled = decisions_enabled if send_enabled is not None: self._window.getControl("btnSend").getModel().Enabled = send_enabled + if preview is not None: + self._relayout() # the preview box appears/disappears with it self._main.post(apply_ui) def _progress(self, message): diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl index 3ef1e3f..042fa6d 100644 --- a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/panel.xdl @@ -3,6 +3,11 @@ xmlns:script="http://openoffice.org/2000/script" dlg:id="SuperDocsPanel" dlg:left="0" dlg:top="0" dlg:width="130" dlg:height="254" dlg:withtitlebar="false"> + diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/panel_layout.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/panel_layout.py new file mode 100644 index 0000000..feee28f --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/src/pythonpath/panel_layout.py @@ -0,0 +1,118 @@ +# Geometry for the sidebar panel. +# +# panel.xdl is a bulletin board: every control sits at a fixed coordinate and +# nothing reflows on its own, so in a short office window the bottom of the +# stack - the status line - fell outside the visible panel entirely. This +# module owns the layout instead: given the panel's current pixel size it says +# where every control goes, shrinking the flexible boxes so the decision +# buttons and the status line always stay on screen. +# +# Pure arithmetic, no UNO - tests/layout_test.py drives it directly. +# +# Sizes are in appfont units (what panel.xdl is authored in); panel.py measures +# the pixels-per-unit from a control it already owns, so the layout follows the +# host's DPI and font scaling rather than assuming a factor. + +PAD = 4 # panel margin +GAP = 4 # vertical gutter between blocks +BTN_GAP = 6 # horizontal gutter between Apply and Reject +SEND_UNITS = 14 # btnSend's authored height: the pixel-per-unit yardstick +DECIDE = "__decide" # pseudo-block for the Apply/Reject row + +# Tiers per block: (id, floor, minimum, preferred, grow-weight). Preferred is +# the panel.xdl geometry; minimum is still comfortable; floor is what a block +# collapses to when the panel is genuinely tiny (0 = hidden). Grow-weight +# shares out the slack in a tall panel. +FLOOR, MIN, PREF, GROW = 1, 2, 3, 4 + +# Space is taken back in this order - first down to each block's minimum, then +# down to its floor. The instruction box yields before the preview: once a +# proposal is on screen, reading it matters more than the box that asked for +# it. The decision buttons never shrink, and the status line keeps a line of +# text at every size - that is the whole point of this module. +SHRINK_ORDER = ("lblHint", "lblPreview", "txtInstruction", "lblStatus", "lblTitle") +COLLAPSE_ORDER = ("lblTitle", "lblHint", "txtInstruction", "lblPreview", "lblStatus") + + +def blocks(has_preview): + """The control column, top to bottom, at every sizing tier.""" + # An empty preview takes no room at all - before a proposal arrives that + # space belongs to the instruction box and the status line. + preview = (0, 20, 64, 3) if has_preview else (0, 0, 0, 0) + return ( + ("lblTitle", 0, 10, 10, 0), + ("lblHint", 0, 0, 18, 0), + ("chkWholeDoc", 10, 10, 10, 0), + ("txtInstruction", 14, 22, 48, 2), + ("btnSend", 14, 14, 14, 0), + ("lblPreview",) + preview, + (DECIDE, 14, 14, 14, 0), + ("lblStatus", 10, 20, 40, 1), + ) + + +def _px(units, unit): + return int(round(units * unit)) + + +def _stacked(heights, unit): + """Total height in px of a column of block heights, gutters included. + A zero-height block is hidden and takes its gutter with it.""" + shown = [h for h in heights if h > 0] + return sum(shown) + _px(GAP, unit) * max(0, len(shown) - 1) + 2 * _px(PAD, unit) + + +def stack_height(tier, unit, has_preview=False): + """Height in px the whole column needs at one sizing tier.""" + return _stacked([_px(b[tier], unit) for b in blocks(has_preview)], unit) + + +def solve(width, height, unit, has_preview=False): + """Place every control inside a width x height panel (pixels). + + Returns ((control_id, rect), ...) top to bottom, where rect is + (x, y, width, height) or None when the control is hidden at this size. + """ + pad, gap = _px(PAD, unit), _px(GAP, unit) + column = blocks(has_preview) + size = {b[0]: _px(b[PREF], unit) for b in column} + tiers = {b[0]: b for b in column} + + def used(): + return _stacked([size[b[0]] for b in column], unit) + + # Too tall for the panel: give space back, minimum tier first, then floor. + for tier, order in ((MIN, SHRINK_ORDER), (FLOOR, COLLAPSE_ORDER)): + for bid in order: + short = used() - height + if short <= 0: + break + size[bid] = max(_px(tiers[bid][tier], unit), size[bid] - short) + + # Room to spare: hand it to the boxes that can use it. + extra = height - used() + weights = {b[0]: b[GROW] for b in column if size[b[0]] > 0 and b[GROW]} + if extra > 0 and weights: + total, given, ids = sum(weights.values()), 0, list(weights) + for bid in ids[:-1]: + share = extra * weights[bid] // total + size[bid] += share + given += share + size[ids[-1]] += extra - given + + placed = [] + inner = max(1, width - 2 * pad) + y = pad + for block in column: + bid, tall = block[0], size[block[0]] + if bid == DECIDE: + # Apply and Reject split the row and align with both margins. + wide = max(1, (inner - _px(BTN_GAP, unit)) // 2) + placed.append(("btnApprove", (pad, y, wide, tall) if tall else None)) + placed.append(("btnReject", + (pad + inner - wide, y, wide, tall) if tall else None)) + else: + placed.append((bid, (pad, y, inner, tall) if tall else None)) + if tall > 0: + y += tall + gap + return tuple(placed) diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/layout_test.py b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/layout_test.py new file mode 100644 index 0000000..28dfe91 --- /dev/null +++ b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/tests/layout_test.py @@ -0,0 +1,115 @@ +"""Panel layout test (OFFLINE - plain python3, no LibreOffice, no key, 0 operations). + +Drives panel_layout.solve at every panel height from far below the floor to far +above the preferred layout and proves the invariants the sidebar depends on: + + 1. the status line is fully inside the panel at every size >= the reported + minimum - the bug this module exists to fix (a short office window used to + push it off the bottom) + 2. Apply/Reject are always visible, and always above the status line + 3. nothing overlaps and nothing sticks out sideways + 4. the instruction box, Send, the checkbox and the status line never vanish + 5. an empty preview takes no space at all; a filled one is visible whenever + the panel is above its floor + 6. extra height is absorbed, not left as dead space at the bottom + 7. the whole thing scales with the host's pixels-per-unit (HiDPI) + +Run: python3 tests/layout_test.py +""" +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src" / "pythonpath")) +import panel_layout as pl + +ALWAYS = ("chkWholeDoc", "txtInstruction", "btnSend", "btnApprove", "btnReject", "lblStatus") +checks = [] + + +def check(name, passed): + checks.append((name, passed)) + + +for unit in (1.5, 2.0, 3.0): # 100%, standard, HiDPI + for has_preview in (False, True): + tag = f"[unit={unit} preview={'yes' if has_preview else 'no'}]" + floor = pl.stack_height(pl.FLOOR, unit, has_preview) + preferred = pl.stack_height(pl.PREF, unit, has_preview) + check(f"{tag} floor is well below preferred", 0 < floor < preferred) + + for width in (int(80 * unit), int(130 * unit), int(300 * unit)): + # from half the floor (deck would scroll) to twice the preferred + for height in range(floor // 2, preferred * 2, 7): + boxes = dict(pl.solve(width, height, unit, has_preview)) + shown = {k: v for k, v in boxes.items() if v} + where = f"{tag} {width}x{height}" + + if height >= floor: + status = boxes["lblStatus"] + check(f"{where}: status is placed", bool(status)) + if status: + check(f"{where}: status fits inside the panel", + status[1] + status[3] <= height) + check(f"{where}: status keeps a readable line", + status[3] >= int(round(10 * unit))) + for cid in ALWAYS: + check(f"{where}: {cid} still visible", bool(boxes[cid])) + approve, reject = boxes["btnApprove"], boxes["btnReject"] + check(f"{where}: decision buttons above the status line", + approve[1] + approve[3] <= status[1]) + check(f"{where}: buttons share the row", + approve[1] == reject[1] and approve[3] == reject[3]) + check(f"{where}: buttons align with both margins", + approve[0] == round(pl.PAD * unit) + and reject[0] + reject[2] == width - round(pl.PAD * unit)) + check(f"{where}: buttons do not overlap", + approve[0] + approve[2] <= reject[0]) + + # ordering + no overlap, in the declared top-to-bottom order + stacked = [b for b in shown.values()] + # btnApprove stands in for the row it shares with btnReject + rows = [b for cid, b in pl.solve(width, height, unit, has_preview) + if b and cid != "btnReject"] + check(f"{where}: rows stack without overlapping", + all(a[1] + a[3] <= b[1] for a, b in zip(rows, rows[1:]))) + check(f"{where}: nothing overflows the panel width", + all(b[0] >= 0 and b[0] + b[2] <= width for b in stacked)) + check(f"{where}: full-width rows share one width", + len({b[2] for cid, b in shown.items() + if cid not in ("btnApprove", "btnReject")}) == 1) + check(f"{where}: nothing starts above the top margin", + all(b[1] >= round(pl.PAD * unit) for b in stacked)) + + check(f"{where}: empty preview takes no room", + has_preview or boxes["lblPreview"] is None) + if has_preview and height >= preferred: + check(f"{where}: filled preview is shown", bool(boxes["lblPreview"])) + + if height >= preferred: + bottom = max(b[1] + b[3] for b in stacked) + check(f"{where}: spare height is absorbed, not left dangling", + bottom >= height - round(pl.PAD * unit) - 1) + +# a tall panel gives the flexible boxes more than they ask for +tall = dict(pl.solve(260, 900, 2.0, True)) +pref = dict(pl.solve(260, pl.stack_height(pl.PREF, 2.0, True), 2.0, True)) +for cid in ("lblPreview", "txtInstruction", "lblStatus"): + check(f"tall panel grows {cid}", tall[cid][3] > pref[cid][3]) +for cid in ("btnSend", "btnApprove", "chkWholeDoc"): + check(f"tall panel leaves {cid} at its natural height", tall[cid][3] == pref[cid][3]) + +# a squeezed panel drops the decoration first, never the working controls +squeezed = dict(pl.solve(260, pl.stack_height(pl.FLOOR, 2.0, True), 2.0, True)) +check("floor layout drops the hint text", squeezed["lblHint"] is None) +check("floor layout keeps every working control", + all(squeezed[cid] for cid in ALWAYS)) + +ok = True +for name, passed in checks: + if not passed: + print("FAIL " + name) + ok = ok and passed +print(f"{len(checks)} assertions over " + f"{len({n.split(':')[0] for n, _ in checks})} panel sizes") +print("PANEL LAYOUT TEST:", "ALL PASS" if ok else "FAILURES") +sys.exit(0 if ok else 1)

=v_WjT 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 literal 0 HcmV?d00001 diff --git a/extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-draft-requesting.png b/extensions/vanamkarthiknetha/superdocs-writer-sidebar/screenshots/windows-draft-requesting.png new file mode 100644 index 0000000000000000000000000000000000000000..41b6783635c13cfe6bcc2861887eedbd83cee9ca GIT binary patch literal 67660 zcmcG$Wmwc-yEZ(cgft>u0+P~5m$Y3^TLV?~3y}&vO|dFDs6Mh>r+?Ku{z;iYP)L@D>or^Hu~naL-?rYb)^M znXRI@5Tt03a0mSI;;W#HAOunphIFq73x0oT^-5DPql-tE_wqUdxDJRw!7}w1(Jwcs6T&MP+T<5As+no^q$zN_5?tw>|1ls#$U! zjJUbG%NG>+A78R-q?G6w|NSe%fZ0mwe>`X15PAO9e}4)F7vA%#|M3(N+0JJA|M8TF z$p8H^#1Ql*aoA`{wafPB{$0d7PZ0DFd#X>IB@7yl?@%+Vil`=A)IwITjHlG+sqTW7 z4Aw7JuRdhWdOJ~#_uwICC^iu^He#kD&F^U*t5{HJfi-Yf;PJV#@e}3hb zejCdsrK6L+t<$b^_$V#i9*oDz`KeU6-RKR0m$4>|4MEsxHN9nJWKiIt&*vq#ea$rY zP)gGDATBg1^au%-v+%H5<4mH|LMOD%t-Ev`tBvz|>B9G9|NgRZ_Cq7-`~i!Ej*ac> za4@TPvfAMv5YY1YaF>rbAJ6WVdiXcm_56~~{%z9jC;WE`jw!2Gxv7DOFWlOglq{V! z{Y9O{Y4zq#%rX4UqPom4sw&bd3*Ua;i<*RE^iE+%Rc|H`RUl6-r4 zGU%{Ya`+RGcH-szZ320y>O}ff5)%ur>4r;j5cb&n9ich@2Gw_=`BB9cO{iRsk%Mb2 zKff!$x)&Ea=1y(fbLy?zwj7^ucr0@MjJTXKx@XN{$++A9jLH*B)P2qWTSv@~e6S<) zpu7J{^sma)?6ywJ@xWr}L9CDIM=QST&9C~dug2~*k8NKMOStt z$u{+UF<=~&`=MlT49rN5%&Ksh zR9|M5QV_e2Gk5jHUGvfQBM;WwhSEe@bD0@sE&p_AV9Tgllu#n$n#0j!RhGZ#&7W3b zDRpmSQa9xpY1k!I8nfs%G=vwE5X9(8tSeC~VI=WVi1uc@)zMvY)**Hp^-Lzu;IR(2w}lrX09DV-R!oVQIMXYQtI8dny!iadGPz@c)~@ItU8(T^o*r% zNz?wFFZGm`07DAL?AgNd*V2Hg-n`i!tYTqbwbMq{s|J~W7Y{?!-_qG)Exku?@$N1vT#N~|pqXSFkZf8+5e^MGBqj0Tb%4;uw zHOxx|a@V@obT)5Kc;_%JmkEXGYTqI~L*6cSd~B>y)YuPn@AkW_?Dfu^6->zVXV93V zKB{r2qF%+7z@Se{Y(&d7M$1S+i5@&NK1aNq5Fo6U=+Yf>Ui&~<(RAq?_EyBKn6N%3 zu6(F+3vsJdIIdJKJ8Gnlc}suvrcYx_?#7ZMwRf=1#e5;DBb@*#(BRhI=^lh*I z!8*(o>B&5UZh9)FcjdYJ*Fo2Wf5%`qau5z<=ey$iAKTl;-=+|ghRfqn@VdUjCD-r` zK~J%`cfcGnB+50xLW^-w$OV`C7gDka6*w zL<_Ca=*YV{>LQcXhIhWCw8+DDCX%zs zFMo=XA}gCMMXX+J_Xpu?6|a7eD-HAITzA?@s~S9+#>Dd9KbW-@oc)f=8L*V$n5$D) zDf&+v5)IXvlDfJtJinEgPJa194!bwtyfSO@gu`x;Gce%bh=5%^|LP0YmXPw@{zsQR zMbQWCq<WR#`77}dFN}Y;pyiX*-RT6-%NOF+U!3bHGX<%WZnDk z)$REtti`i-hu@*@2yN2e7OQ{f#_BB*B!F61vH3?y5I~#LxgiOEV=kh*T`>vgNam{D z6&VB7&$=D=KE7LrSGJ#vLHqOaU|CJn@}pAa5z}wyT!Jh%IqF|&1=}5J z7yP>`&1+e5W;hhT7)__R5I6+vbyoLgY+}v%4;ycPsv%Vdy6Hk#!Ejn&CR{a-rDWEvJx>5}a z5D`%c(DB1$-P5ZpMZ(>BLw5BFpg$urPFrpbF;#<=;64y%7;v()EAFrvH~9?*G%5 zar{lp=d!%q;>~Hb45_u>qcpWFOmyqEZrx>o&-QN-s*+m{FyxMY-?>)SU=%sct29fo9O$b_8eU74-uI zI6BwD1VS(Nrh?RsG;8f>et3I#81`(Xc!n}IUJFS(_(MNT8=AliNd3)b!gPs&pISRT z5vLVott-q=no?Lu2!`8!_bqmsYa;lq$>U+TSXZFjVgVnN?N0E|>U>+lY_|Mm0*9rq zMj^Ip*-IZGudy6Ca!N|LCAYJXICE7U9UWX|{TH`aM`4=-2^nG``1%o&FfcIfZxe8< zc5~wlqeaOzf+QRwA|uHu)jK8+>KLp!XDcnJACeyLU`1rr3Y9uF{`~oafP#V*S!i>8 ztOtOHe-C?fWTb($t7dHxm$^N-v;Mdh>H2EPvx6?@`0}!|Y=}Q7C)ov&l$11ADF+p@ z+#CIl(_tUiPovECG72+xsK^m@%5yh;QG%g+TQ6_2m^6$*`@ztvZTAuE90=YrQ5`pk4+iDk{24 z`wx<0r-G(fn5O-BCV|JA3Q@;n@fyZ-8Vuy;>!_HV^2y|cO`4K8*kx`&3k zz%}lmBMJxza5`>*XSUmxXYMom_U#)28X8WdS71Hs*TK(QgGsV47foOiC-POh>YdMq z8{J(?{DswAwM2ja{=Ge%_8bBYV6o?0*`;5IOegYuz9u`vna@>X=W@G~b8=XBBvhzkFp;Nxy_1t-b-Ayey1G&c66$liKL+Hxdc(&@)b#YoqvLV&<$Pxhey-BIEnPI|csnC39SnsIb0lArkv8iq zX*LSJMZv|%^3Ek%rf0>&MbH6fzpU4L@2Ep zyv&=}zGslEtSnps58l9_ppJ9~i8Jk!Rv)B~l9H`QO|kHuB<|-5_2;8f$5&Tf+annf z2?_6tB%$$VsAPl|?Php})6HK^G$i|gJmE%+UUraezUON^y0IqNheNZYR%gX2CSH!E zO3H(Tf+G6i!-r@j$o_Q6bJNL!mgi{GM~O4l*5o!eHo*)892T!t%i{AZyqN_augQs> z*D-j{`dRg3G68~c+Arxk9+MLYP~u?YVN@6-l_f-=I)iNU)Xt@J1-^H=y<{f}Zwc3HB+rHWnq|o4E zU;p%Yhk%IqO4XJp1fNaF#DrF*SSO^r`=i-RDXg=zGc^N)n1uxcyX9gqxbrO)6*(Il z77Bri$LHQpa{M=MAFrC8^cL%#aXGD0<4_>mQ^h2kLn&d^)tuw`s&Z6}bacoh9@nJ& z_s7ELM@za?Lt3Cjsx`WCO%_YFkaUHm8HM1>Q@_?{CbLQJ2*NSwi=kJmFu?+;KySp; z5AwIfu;*1~c6PdEm4#Zh6=^7mKq#octDw4adfanjGido+EY#{f++L`a8U|=LwN1Ao zG1h+vE5$VE3>K7@MkaRICZ*G=Mz5)Ke#X@VLW|h@)^RxQv)u8E0bAlLp z%}wk(VQ3s44(vD6zi*j)zNEiA*Qc=dc&gWy_@&M9w?APMqVO&64~iqS_6PoncCvLC z!V`l^nFRLeA6cuT*&*MAf6N7u&$h%V=c}xMYY9yPlZiYEqYRgeU0enn9`b9=5wINJW!fUlb2ev3zwK#bU zrs|z)(d$SEWFUc~E5EogkU}bE8T@RmvE52l$+y0{G{1kmJGx%>Mhgcu18iqt{%kbZ z2GimOUxBB4Oz0&KCFTp9tFja>R9Ty^u~nL?=j?d&W_`>CR_A;a@VT0dkKnl8)zi7urQ#> z4F6H0GBh$;?V(C(&z4D$2hj{^P8IY%o>0|ItFFdXS69d7vU%%rzMWRq$R!qx>$T)@ zht<(h#Fn|^O5SQ-%Bjg_2^%vMD$)S|PFK~xzr^W8AKETyXlSB|H?4j`3w?3ZBR8c? z{Lh)PuLMMJHGlu2mwg@T%#?^cUV3`OkrQ|*S8J!>z1uH~V>W<8CF1_+N8*8dFk2yf zwAfJMd}ah`29Y{a=V)1OxkT*c<;CfC&9vyeMU*onY%yfpGVaGPS7Az3v}<)~2G63c z-wI>)Q6?g${U{b5f@G1&AWo}ywlUkUgO{x%vW1e)6lf!qOUNX2w9{J%*%bWOSH8YiF)z6~ik`Oz1Udp4)sc zOue~37Q)W`9>|3iLO=UuA;KYS4%8^-IhuG5%TN#%l6L8ofZMa%n zTifaCUZSD-X%u$uPWW!M^!N9-gAdPay(;3}qNzFsuohUIFqQE;Bq!ukjI$N4LsRO` zBHx0IB+?tzBCP-rOc|C-jf(MqKnD39F4U3p^Am#x*|j^7|L&r8q1OIgwro=15dR(W z5Z@IcvD>jAGA7C%5w0D2UaY$PCha^$$O z-hX>lT3R|>VX6wEJr&gI={iS7&;tH`9U>ktP{%~Vru#5eq#coz6w(t(Ww1N`M;5J| zb63mig19==1fIprtzQJ0kdTIc&EQ25QgtnB@>LR2C2>mgv~+^=eoHF&lIlyNha+OEyX$X4ADQ>^ z5@%3(91q)Dyy2ORhu^$6os^ceoUdkvLn96biG%_=UB)2yWx3ssVrEtro|cZ&3am9& z-jD1qb8soN$*l5U&QiX8yWAdtsqa9cS!pH+vbV#qZfCaQU8UI!8KtVtYWvG7)WyrA zB@$han=IM*enx~Zb^O97tskQv|DvDfP(l_Ree-lm^nFA*au5*_tw0b`zeWV)5hV9K zwf8sc*UTr~MmIdrWku!X(ec?#UI3Vs4^si{eE=e9N>jdbcI_Fd(Kfh0YHA2CF(RLR z5ldp~O2BF0Gk7)PHD*6#`Zc`5<<+hygAnnl=fAG1{x-O(n}DR@epWg?t@iWhPydd6 zli^gsYWF*KkP96Jv=o$->7W*P!=bz?OEl>YC!KEc6i`%BI+^*JLdwpLeRp-#m0;Nz zpi-zo`sNL!P@|%?{M*=H&nJ)i%URRw^D(&+iv@0Ig8(DYD&@f--qw$Im(BKKJpSz; zD&M^*(T*q!i)Qt%>ikiOfB352e6j!!6jWMD)l;E$|M#%ies$O6^yOC_* z_0L=NCn-D44eNO8-A`jG6>1Ex1zYjohc+7m(Z`!k_(P1l3Qn#|HpEJFQ2E zmrpXueE0x?W@3Zu)hd|8MEp>R@(68eGBaNg6B8ewoIHa-YXF@P!{!(o+{)M$+;V@+ zfxN3~TX7c=tD={uJVAW}t&GNff&c@yHMRPI@A0u^=&z$qVU;Gl<$?1VHz~wobG7T+lYdo9j@p`0Opt|e?sNj+fe%{{R?_jB*U21vxb5c22o5uUq z9~D|FT2`<{!>Fr!ri`J;`gPo@oGOC|i}A0@C#-yy3)7M>;yc>fgz?z~)8s#|wE93X z#cM>LK?h!5UU?Oj>_{69M2d%n@KTwN)Ny)y@{!z^Ityj3gbk=eK0ZB} zETW%K>~H%0;Th04#J;>{&VOh_g7D&(zY4<5q{&xbQjiOt%OIiylb?4~)NAM%I>dX1 zoa}M?jrZ|-O|8m;NH&F^9@{bRB_?GmKt~PoOEt1_s}poSZl_4lqY_bad#K3VPn3_`R;T&!IXbaaw)` zMgO${{1?j@{I5>C(MZGY(IIb?=D*$Ls}^g#C%FO}YPH#q_tVE`+2s1Rmho`a|JeIe!ybm1R4zc2@bI{L>R8_x-dKQvl>dX#pv`u; zDGHkf8og#^`(RRx=hGvYNrv;Hcb3G7(m-xpgO6@Mx;s@ICKb!Dlc`khgnqP|V1P5)=gcA5~y(%I!gO`-j+3m)tx$DkcW= z{>WmPet4zf12Q#SL(riOs3kGt0=vr1#6qL1>P*()z;S^9BKZ7}WRH+T*87{Y7?tp6z7@bIY zc?m%_6xk^q*K8$6o?eWs-`w7kk&-?Ggg}`w@jP_;AlPdxHC~*Z9N1gimRKN2tTZ~X zmXVPWH8!S(ECXm4$7YJ%_;9HS`2a8vv;FQT-t%GM4;>+{Qoj7}b3y@>YzLT)3Cuoa z-j$HyObJX8adCs$@^7GHx}A@RtCbsL3?}hV8R2E&!Egio0d3b}p@cNpC3v>8OW|O8 zhE7wCzC%STNJCpV8FoiDQ4b{q)HFZ0GU=%$JQ{crzK~j4S|)N@!$eZbw04FNDAYNa z)9KXXf~*z;H3rP#R=4NhphLKSNQkJlHS?m=8j6Uh=t=-p@;@X9m_0zSqCp^{%cjJl-#%DupDbyf4i?aX%I$QJnkfFOYpNg-Jsjvwm9BSz6$Y&*E`YMa=g$^4BzG~+>zo{3K{1D4 zzsf>rP@q+q05yGvQ9V+=J0%|STaM`U(AZMYnC&QbE)qk=xu1`G$^g?J88e!9?~uX- z9yyD2n;49KXM&z|y%DR6{`&P>qnTi?EeNe|W^CVverb=Sl+;N1Hznp7vTVX3dNj87 zMFNhK`R7;U>*L>2^)um=CfUTan(~@Zm@5*QJ1ZmN;}I(~fZ~V{taZ#+dg>ROud| z`K0qaPi^XT{DmXC2ZFti&QFL{P3DV*q2#tA?K-UCpOJiOZ~GU-4weAW^fU&6)%S1-01@@#U0#qF`mk1k@39E+qE2){C4h83*ATk&zQS z5;=s76;w-jK-CRk7#*znv(JD(0mM>S)KPBQ0UgS0y8hq{NDk&13l< z?k%YKiT9Ig?Zw(@O=VJQK>@PKI~V6(LzbwhDE}VW=#-Q&cJtYfOV0rJ77l&^#X6}R zd|Thz+RLo?HU@Wda|6&;-cb$G^-^@;&@HX+R1<-Zudif^R0Z+5xWX_iF8dLWovSsR z$>e3(%+>PY*CEokchXr|cQdE((_muGwq*c&0%+tu@r^fQiSG&mB3=rl3;vzFVt_Ak z9Gd(2^F{ZD4RmtChSg@{v+V2b{rkBkiMW68@?uK2ZEQ@5$`}a(l|{j58Q9(~A|1!{ z%zkgO1N2k7NeZY~SjraZIv-Qu{(KjyYk7nL=5#RQdmsUwa^X9Z>A$4u>FMo;kY+IP zh9@P_Q$E+=vuL_Ig?-QMj{arxk}$kSer*P!Jm?--^{J6&Q!ot^4G1#?N3W( zxk3|y6<3mYS64lkMXct2`-`5DUF$mYyQ}VZ=imFMtirI(ckhF8x3qm18(d&653Tc$ zeR)@(FJCrMFEqjJ=5M`mJtpnuL4nVk5V|-ZS-ln5kQ+&89X0s!aV%SAq)?LsK+OGx zx+#V>e!M*eB+S!_-%2V8G<+5pL|veyCh|JJ0%1IM^UN}se90UCcGtq6>kD{JS6=c5 z4u>`7w{KrCHk`i#%QLbmrjnY~(gfg{$#jyAPQCO+R~W(JHxsj_ag&N3J`4Ik#asuL z-B9)$N5|hQA)+aQq7hma~T(3R-@s+M>sh-F-qY8 z+_?ZRAD{J2>55+=xS^0EOSHbZxtqjT0LtU>`FVRqC>z8F-Y|jQbGmnE2o3O3!kZ-q zoOZ?n^$qoD^4&*&h^t}}UCESmr7{*$ON(XufuA@hha-BEvbo`Dr z<$2)Jmy(1SW)xj4^(ALizINvPgCC8#-fj&n&c5{?*SDaN)IxR{b){L6go>@J#RgXl zA|msV=i<4zG1q`NWV;c3BeiQf$n`x?Zx56&rKIFvfVbxZMXk6jDK+&Cl-=TUjq&6V z6Fs&7ycRCMTXmEXN@Q4$Mu@=xvDn8;Jer<$dldAk;$2HumP-vTET!fbFJ631v1QAr z8Rq{Ofa-;|D%6QesMCb|w5j1h|Ne58ti(*&lR*EF%XHU4M(?1qd}@g=jWnKD&DnTK zpcp%CuN8^=8+{#$SX+^TS`!r}d5T3?n{I<2Qdh7*fvE-0?^Yc?OB_ZWWJX5D`qSQb zMlx*a17l;DQZaObV8)ObTTwf8reSg5hoY&+`(YqQc5?2hTLKHk93|e z`f}dn>hFZw`}B$yJ!ATp^DxcpJ(0{{oJlG#FMp4W$I`wWdFXlQOcZwc_@c=S-*0ZI z02VolHM;8oZMoQp=)`l#oxw<1U&4JQvzeYQw>V4Sb;!dt2A^jWqlSy~N=W@F!S!ZA zzFer)*#v&fV)X=5B_pxklUIR`Qj|p^jgcV#XSng29QjJminuS~SzW#1K1ev}5|NaE zqU!GHX@TktWGZDwxrPxSnAI_>&BwA)06XiQ;&J=(>2B%C?i9s(+*Mv!cL9Ytr-0pb z&o~gonO^J9mvI7~jWcK%adVsLpjWH`?n)HsP_l`fq(*azH5V14cYPZ+P}QlYr>9oX z*at^mzq;#ZmY1fcg1{KWDVy}~0gU0?)2p(9)t#Myl{Pcl8XS6unB|Mj)WeK`ZLS*e(fOZN9Haj5 z9j_`CTDd$`DK?gv`U6*Lab$|qC%QMQ$LwD2wMR=6Fs`RwpQYJq*I{Vq$5ed z>%^4owED8Wvs3aLlm|)^_WSEnv9qKU!hGXY`*B$XqYe)u|LUng)ZzQcoU>1I|Ll;lrjlr7Yz3oZCNW-gDp}>mr%vYYt7?ai-Bfx=_ulo&uw^!1 zq1iWgQNDDZgbKA@m5Yij)2uB0QNET8QPrr!G0(PqyC)N;@@+~=9_gWEzL9Jhf_b1M zLB5L)T^MGUVYe|laBkoUlFK4+E=)Eg*ag&e0 z+S{AGo{xa%HgFshN)WQEjwPr_=hF@mUUFZ(=QDlY<^nB}qe~J3gl!X}@z-?)+>O)L zTD?sKPUZV>Q86Ff#W*0v{I&?x3_t5Pl9FQsULyS^Wy>1<756zsk4zY6pleG*P!pkT zH=%A?U+o(t+<5{$^6g}@_utd|$ICfOW&lZ?oVM?ISpu{ey8JQ7|C-OSGxt%O?wSSy z={6mVpn&#c(s4Tx1q28V5sw3OD6zV~wg!{x^7Y9Yl*}G3F%XA7Ix;c>eKNPhzW@06 zC+oB%m8ovAST!=RPk?J6GI02vt`WBGyfC63y3=O>5 zxktlX`7Xw@r(@D<_5;=KK+Bb^#RK%21{BnSilMD~ntf(78wrV*0PXn!a@P&O-s4Ml zcYH)Ca0%A7z6c5Zkbt6{Wm~|KMfUz{u*~S?vIwD{9CkZlc=xUiR2}OL$s6?APF~_s zNY+#y!&k(xS`SXA_Ht0=3X1ukuJjxuu}x?48Y^v@v_c)&^7fLgu3%EQo0n?azDg7& z!JF_=XLE}H<%h}R-U(1I&r>`fxqMLweDCkwKpGNPm`uD1;%VQXDTDIz4SnE7$11Az zdN&4i+qxsjjYra9!4jyjnY$H^T3pa3h16x!)q`?cD;5Kw>H%Q?N~~6d@?GjQ<~9K% ze+@Vo=zICWS<)94b3sX3a2?dJwkp$@|H0HKHzwt) z9|iFbCC&g<)(RR_L{!vI5I%PM(QFWRF$OQH|-3Y6-zZVn+MO@fAqnUrTj$STg1H`ba zht5AyRP&40bsk@{fX(qx>wIqt4UGDjW#=XY1tK%bZMGY~W#OEYYB`Pd!!%KB_e}fI zlpI$9OVweRQ2NEaa3WiSE$Yt%uJ%aX*}nRj?`3Jl#yb_gn?Pm#(gQ55XT-+T*)jPG z2;EI@vu6{v7{ot)dj0CvD*%CEK%agA#J_6$J#1`H_JJn@2EcKkBfJEIDXNcCA z1{@C4QZRx5MtMiOd}l8rUww6T)vlMj_xrQwb}od!`!J4LCI=p@E{+m_Qfm+yQ_8|- zqEgH&9$Pj|Yn-oVp1?!yWGdq>llF2Jh?a!Vc?j5~N18l6q0=8!+6K^a81Q0{W`i(3 zUoP8CsInz=b+}OCc4LD~%&Rt^xxj2}>RAaYR~xD4$(n-JyTZ^*j}IdU1fxsoAi5&X zg(-j3a#C)8mdny@2plEa;5ZP?;=xWk&*y0yTihFmjU_dezxbM0AjmZSr17M^^y{n+ zP@E+tB~bPumO;DS%p0oG0{WB;ki}Wpp-cu6?gJ`i?CZ~$y!2OHfXJZOSYP=PkhxxW z(T=@0GQDq##s9H2x2l?>v^0#DAKGS>qa6WsJwD#)7 zFg-ge&vD)cB7*Eo@m@^@&c`wC*Gr8w*u|p&BD@P}*Ei;}%XNF}1#E8mK-8B1^9iaT z0xF)-Vlo>Pu}^;((t&|nnKr|6WZ#?KSimjAd3iJ1dW{);GoEl~+O;PPW`lnc`mIV& zjrb(!$4<&w?|~spLU)w5Z#Ia!I7N*EyY4!xaVn!Q=C85LUJ$;qv{y)X%ge^HhK;y<{-1YlKEU!Xf0)y!EI)sl~2{pBkeyBn_G~F|m2C`p?%Z15%5Oz6o zDV?ARSzYWZM@2{L?M)Wq0&v4^xBYz}q0iO({BVH)aCmB!W_T8h^#Qt`4_II##O5$n zy;2-jA!K(HHVJI8GjNV6y`0DN6F!_+#@47pjd^4jVKrk};F0uHLvTLg%xGa8lF)qP zX@n^0@e#d@PQT~I9aQFE0uEFtxCkc|Zr_*mMI{OZLH-#O_iHeKc9@l^DeBsGy9WDk za}ZDjC^))sQ;B?d*wUkRS=u?EJHkS`(EZK5A^D0dmH&xnov-kSl;N_x(4q&aoXvDn!vPs-Cd|=Rxh=_>Z z&0GP{6e{zkrKK5zF)`~lDCm-ZS}LCyBX^4CRgWLTN5MIT1)if-!{o zut?a;07bO`VDdfi12D?e0}cIR$&IzDzG8HA6rGqj6zI(v9uK$r?2u*PE$|NtitLTw zgPKJ;Ym3oKKTsG+1QT~5W=EC$r07y!OBfPcot$V&Q^_Bxw>KEiJq+nD&?4k2Y8{D; zwR+U&XVB^wU!2&J&-XG|YVZ{-cJnC^7$DH-kLTVsC{8V;hXr;p=;WcVPZmnzXc6A? z>#|t8jvYF|VAE?X14Y3@G<7t97e;TS3Evx|13Yf-a+sg;4MNTPX0Cwe z)Q1(!aYv?_^<6Um!H@>FIGdtu;LXPH8S6-mja{CRcrc>P(ps)Whzn&l$taXx;|1;V z{X?4W4(6g9g&@Q>2AS|5v6+b7!^_mVA%7Zo@0_!gbOvUpzVxZ7azUVyQ%67QSE_%? z3&JH~9mzB>-mUrKPgAVtpS7n^OI)Ber2&+mHrJyDzu5}YwTv)+Au-=W#|qHfS3@`! zo58*x1I$Ry$S6m(q*K5J|Jpz`!*Hgr`2dEw@4by2HD!Tl57qMy!bmk+-a>U8I1dhE zOSz>>tda!#&C-j+a@dZuTl{{G=*Fqh?myewCUi^k$@JTEk5$h?hP%%Og}t@{gGP9^ z>K99I)ocfa@@1jsGN|K5ODh-@#Q8>dO*#|X*}FLQ5{z+3vYOSFt5o+Bis*vF^WzGY z;Y%OlLaX=o#2ORDdXtG$la-NNhA0|>kNXMK3+x2DwoL&u*b3CIp~PZ+ef=?*J*3(S z=E#jr|Kts-1OHHeiU5h{!vzl1oU^me{4Xdq9jct|QP{is)^GYlcdn5w0! zS(Wc8lHJ+zUN-V@I&LLFsJTWmTq+cw>@=^ozm)s=zQD)2ZFVIn3~sIY*7|y_t7rP* z0{7FI;xd1V$!azsEj4xbhIgfv(2%BP>03}*wuVx~+kD}C9jmfdS(cxopaV5|8H-g2JQ84(M0zA^>}dU|IG>y z9Ozk>tcIr+QoFS{C#4q3ExU7d`ntCv! z>p)7{QoA^Ext^O`RrI>t=cTaE6M&N23w0bq!ov10i!A@TUW3ajUYbM8;tH&*0xFDw zzRx%fH}5NB;^Oahqi%4P%39|9`1qKsJowD&Jcu5Kw42ZC-%UHOQ9jbqcJ3zel&p2i z&{eyjJk{wx98WP6W+HsKg9bTn6dmr*Us!7jF^$B#iMk561MuNj9t%bS@fSDXW1Ils zn+gt7<%0Bw4ogrjSf4qdW@DkJBtWtusBZV^(>p_>WO4T}0tmzh*_f=aE2HXBCxm$>#X5@$&Ti|{WZd4g9m{J8uwMU4VX?NfKogvs2NgFK=%)0<#LW*rZo!; zK|atL0|2vsaPWH?aAEhRip2qjhI-myuxt%ANBbIROGy}EmUO7m7Wv1PWrr^{;mjAF zc~{z1{RZx!b(@;FU;tzSC0@BZ1G`6Y<8HbwK`eGGyk*5lVM+ouyKcTTh7$hc(cAMB zBl^oXa8}(FS=rgEK-m`2(n{<&`#7iJt#VNE?X0TW=D<>fSCN2`AL~cPpOew!ZbTm; zt&XhecTPNDY=L@kM$$#0pjDpPJQR$}!)Fk`MhYMuwfUk51NG^6*0lIPGESBpYH~$O ze58Qt)tkRXF2v#38#yGUvk@EF4!a6SNl3e!YT~}cWNdkMWfp7giG?@nbwS<$Tgwsv z$gmd==$;4orMq_qm-{oIZ-&TnX$qV)TCa6V7L(or35Url^^0&lo_;P-Ub;#?RC;r3 zxKr&;N%9@FH0RKYX0Oo-1(VYn5V;_ zOR94criI}iicSM@QW-S`7Sngyrra_%L@dZ}FR(}1#dAgO+ReN+PTDbIecf<8PZ^0^ zJhXixf0K{!3`}+UAhB|l^Rc0T2IQ9k;ILWsW?!c?tZNMM0f_RARDRKmKHI0I%mIk`Vw*1(Av7-a8yTlXB8#&6EHo@4P@ z;FbTw_lrk@bFQ&VK5t6X#>G&MN22pN-TF?1)oaMry+3!m*8lhw&8&~ji8mh+PkGL6bvN0eZiNvw>vo~7IJ5v?Fcg20kp=zlL$ela|G(13> z{R#9tmBDh%e;v7j3UNKS)&Fe9zn^2n0!~f*kLM%?|G#<}=mp5{5P`n8jV|Z~rE%+4 zfV%w?CnB=`>Kac17&=_*8^QEE1NX0U#E!pXbv^Ka69PMu$msfbrT&|c2t!ax1ej_n zyY}9JGaTktxrYB<%Re`$BHb@%zV2H~8KwgxT98C$7w9}4Z^>**^Z1*t8`-p#&36#5 z%Xu&&^zMV-0&vTxqYE~`%v+dZOuI+t8G>WA`VpehU}C`b_7FJ#z#^zP8l?YA=F`Ou zo9$*lZC`bQ>y1Wp0;PzE?+NQKu&0+!?qE+#QQ$0gir(99N&^W+M7nYsG%A?tI8~>unuBasPHo%oYxr#cOBNZ zm-%Y1cl`c#PCy_s#OE-Oa?f0RY|-15hNEIcQ>YCJL*3}Xm|}3i*kt4v_pI(bAvj?6 z1z6w!!CvArQ(+og{VlRahzKE^4cSY-9}$GIzd9!lepG)xlx`M@gIk9AatZMxx` z(B>OMOTA4~8!vGT(WqBOzH!PQ@H@Rn7CWhLT-9KoU{1xy7QbB?-ypLy(;~VXS`?Dk zW(=0;iFR4#Ms%Hjr5?&>VcxYe1%uO?vk=go3_cburG!U~6~S|URXqB$;kvKwZ~gLi zS#7{<2kHiT#)(EywzfWnUrwa2^5cD@e=_L!lcAuhr0KBL|i9!JY%M;t&4I3BrGrhLWzzS zaB%7WI*1}9L+!f)wu_%U4=;9~n#ic4?g7>;Fatc8oeXY4=r&v~Aq!XRk})7o~75;Q~BZ zS(*aAWH#86zjXcXXE+pUFAQ>ro*0Tu9AjPpfl^hfs2D26{-TgNp0jKsBY!}DZNmj@ z28-^NF|QN(9QNZDKNNOH?d7MWki;4n3O+sUR}l|pdBGILI0M+p@-|E3NHbuYTaSz{)S# z|IE+LUK9%M)dw~t=ot`T@iMRC2H6pjaB|^Iw(BY1o+-raMtuB1xTKx$E3lSAOVk6lQ zeCv-0sAo_C{DPY!OY#GA1OOt@8L|FvW50ttA1Dq|phXxyr_il`v999rqa4gx)X7sg z6hVG#z(@!K`RV5u)KM^LzXHp9euziN>59Z?cP@$|hbLCmga$vj*eZOKEI8$Z1BHW< zx*rb|;K|5XQaI(*z?K6e9NIlFQ#t`-&&tu!b_(E|;-LU-tZ!w?&&A4W|me`uFx zh=HN4{%X;c({39bP!m4jQGMV*a$5F+Z%=0sUo@Z_pDIpYKf_65XhgZe910RWqyc`Z zHmJ4?ymdA6jufD6gLGM&EYyS=zksPI^C)KU*RAWbTB>C6AhaiuVmZd;@r`uJn}f~G z)CoV&)uaPe1&wS1raXX(faN3r*!ZC847c-O_K~gpQmOr(inVebm(%g*tUaG zS_2l+NhD*lH;h;NGfLkQHW`4C570stpjJ@p;0BDAM=NS5o9mlvPRC14RUP}rt(TnKGtPn>im$P90+;2Wz#`{#5S^f&+@_d1H~-;j~*LEX`4 z0{2Xy7WshlQ(U~9;Ora;)F}b^4ge!LQ2v2405eEIl*t^7?@;eP)DQh_jPf2RDp39m z93Y?tM=U6o28DMnot8HRng`rI;d8GOV-gSqK_xE0z(H}c#90!TBw%!*sy_6@4k*#y z;B*48p?2t_DrsbkU2f>R5pVbjWV5%dp){NF9E~sC)rTdo&`b=oVhWO zJSv405*x+r0`4ZuJigBEU{-m)K>O1Kl{}ypstJ3rh+P8s@8TWp}v(BThtw$4BYP zglEs;IL|LY?WWsEQ~Z;vKA6lG1Ww9v0vkM){#}+o+Rqak@!hzto`UjxZt8SwIr+O3);<%>Z8WH z<8JawqTQSY;fcT0qiAbW8)SLaV5RpN>HLz5ji%)Ii)Li)GgQy|YcIx;bSL*$oIjejxb-;-(3G1k=ub|zHik$YI!xUT!jhc(yqpY-sp4Tl)78aOpk+mKQj8)70km zptSV*Hr}BlF!Mq+D2*x$6iE2OBMvn^9R3U8$#TBl(W$+tD&If$R#-r%a@zd;^%$!C zfNKDZA|gOO>Cl(O#8c<@+XU)R2{`KrC|^<*mRBslZPO2I(C{Ab49(vcuEG9Bb}Chu zxsS-7TXWElg_mDY@-?z=IQASc{XDdz*o&9Cag zlT|4%-~dPbhs*D;zz_c#265s?!q?tQ&mll8ATwIRdObw(VN(97;x7m-`X3XezJ+N{ z41&@zoav~u(kMpUwK~}>Svr?RV^g}GA;30~(FbmzKscRG-(u6LeFtNWRLdN2lhoht z=0pFx7I248;hZ?2YtzDcEOJ->ZK($snTuF5>s9<0;PVH91{=>Cj<17+K&XOaW@ZM5 z$-pVHJhgTcfJvEm#EyZVCF>y|EKFQPq+Oe!p3QF)j+fS=lQvosoFyd_5FlAuS)r_A z#8Wunr@oc(F0fGgu!1s<^fUcQ^ZQq}C?Xwr2&Y}{eGk9E!F;+XlG$7(3OJynA0v2l z>4LtdXj5{uZw_frQSGx#B;t1@0Qa1z48fOxvrlek102vmG@rXf!)HGi8i+3%iFE4u zr6rxbU!BG$msA@f5qY1c;`mcz0Yl(%`qfx=($q`jK=b#G7LZ?&3BTu!R&QrzlV}Bi zDtIT}-};N9CXVBXY^rDNP~2@bb~0Jf^ESa6dIS;8XsY#1q%g;+$I zQ#<1~#pVQ5^fJI}fyY-?!-xV|7-A0hX!f(O_B8TO9xvo{)-hS>3VY!^c5o=|(g&=f z+#bS5hO-!cH~#R2Ka_{AU%Yq`=kgF_Ux6hk5{2?A1PXi}%g6 zvL{D`;_~Bfpd+#laSogL6$01ExawEfxJ#-YDSoXMDoWQm$pu~RSMM(}xM34J9UZ+F-O2GL5-TD4=tE;OIR8=EJ7bhgS&4VYuy`$R1Ec0$8LN$xDJyH=r zXj#;ysxRAQ;`m^usht^jL~U49G24By$4o@5U)W&wS@iR@u0-xU(?R{Vn4_zwPglwo zq}Wn#nm8@tkSM5&JFh?0=HE-oRifYUHZ#O6cDUl~>b8JSNa%&sA#cSW(z~?(9JB?p z5NC#{gTwvPXU^nV&q+nom2HLCUiUYZFfsBpZf|YHFIa;7=9#>b(s`7_rflQ54OdE9 z+J%+M4V=oVsmPB)G4Km)yAsx=wu;hZ^eZZ*g)GfJ^OF_3}2AUQW{5 zSBT(rH(9ygM8adv$>eI?{K-1~#BS{ECpxLmUlFbffLLz=dL3ahsMO_jeCB!E-Q7a% zG}sD+*rXLXNY8V!y2&@8yCR${r+CTkCGP7q0Wt_P*gbJ6aopYAlai92R9S*YK`72u z!b~_6{0NbdSK!5WMyJ0P(c~3?S+2@`!9Yn#36U#lcF^n=x7pBN0Aey8Fw#XE8I`mH z%o#y8r}yX64EJUQeg3RrJiKod#@3_04;eoS1so+d35$c5H_R+8EfJo6xy?dCP)@ui zt~z#v8LsaQ=5M8zQw*bDa%B_GBjiIUMLeY&RiJ6rIxp@kYj>BJrd9i4^P7jI7C#j# zN2&#H(6Q73H4}xZIb6T&qepjj z8?d26O#qpLRm*Dp6%tMqDoufb&9~5WP)^VVA+N3hj9Nk~cb2b+R>jxHIu{O~>;C3LNI8n&e55lzPMcwFqz1kni>&TO-uj+NQT9PL zs>G*tb(E6(mCU){w%ls^0>Z0Km(lj8quiO*~t%U&OFS&FPD4GU~Cy&Kt(Id#~9WKdVu&i(1oCbJEghHwqr7Hn= zN-l)b4JTT;tOHJ7(yv<~;xyeqe{SIz8)58D#X&3liL^8~uVk`a1jO=*;B1_nB~qdM z5AY>`$~q)Zn#%L-l8})20A1xdG%I+~i9XhKAsP@Pc3*K`Cf!0%GRk=a@H_wF z9&;JFdUN_5YZh()8+13I|3I5^}76869cpN7K- zjgKG3whtaZ&yY{mg=9=rCX;V+f6I=DeflB&M=;!Gp9R#tJB4aKjJvy^Eh{q%43dX% zqQ&C0Qb_KCVg|9NeWSk%|9aDkN_k;=?TfcXqouMw;o$|{s}+!$U7&Ez0_6IpM{e#T z3*2sqZq~+6VsZtcNEz7w#F2mV0*b8W*25kj}03sb5JtiV{3J zjl?+&v7t(F_LNrEzVS-Jmoi?SPLbyS^|mj&)p_Z?S#X##wzl@Wo-;~W-?z}qS4q?^ zw}xql_F42akv@xZ0%Ps+f!O*yaxJqRS3VYx78-NethmK;YOHTA%m~zAUCGG)sa}$? z@dDn7P4wy-DfhjwZA}h>0t0s)osPw}B6LfmIKSY~=5ppO|HH$U_V#xrCEUQ}$_>KI z%qT9LiUWtfG*X5Sw8ehnH;fz{Kj(WcHso0D=SUP!Hx+X>f)DrrFg9YaZ}o^407NKM zU;sfmBTA(Q6D&>xG#5k)!eDd*xOsu0u4YqLcbjDk)m*Nv(P+NXA28(I8}j9-Jit^S zSS2J~6>#33s934~+06R%LpQNc{%zwzscL2gMJz*;(Q>XBm-VME5Jw@3EXkV?gFFHe z5I_U+&X6DdqZ|FU*)>wUa= zCFeaYuG1-0+rxX(W)_m)prtkS;u1ds7$0$EC7r75?j*a)hSBIQ?dV{%EU=wCurl`;;5xqaaK0OKz|qMh1TB6md$qBTXAt#uX5sgBdqp4XanRp z1AT!F`tFB>qI0PTN~OY%86pk58#hu4{ENXDKNWrs9l1xza`EsN9kz-{4nrI`*GvM- zrsC0%(`Itmgyq?SUxwT+Idw<|?+y?vKK1qAHLM^3{~XSqeArqs+fYg**~?M@+-snx z^iJRgrKQ~g|A(A;Ksbe*t{(z~6E3Q|J!91;{_d7Q_R9sHNv0w0rMGY1ELkNALJ0zv zx(>kI4Ch#I$nLDjrWz0L?mGO<=s@_theteSY)K%Pgr>snLdX z`4Z&R{wTL~{CfZ9S5iV2f)}%G>v5k-aiI-O*B%%dru;$JD`zTD%*{*E4i&(^&Nt?i zd1|(UnKFU&5vj43d06>5*cZxcDVGIXM{_84p;m zyl@=(97|}A7Z-|7HTbP{iBZOb3k9-Z^NdwbwmKp7+C`r}eILGTM{>{98_4l!O^9>r zCl$MKY+i&*D!>;`}!X*_OE1j;8pjPzq4l^^58&yiqrPJIMg6}Vqlk>S)DaIy$u`1P*7^iGxy*}BBcRWBz z>QR&!Jby#w3|jjRrH;VBcm-89uglBcZ-@%PIWt3mk^$kUz-sfS z*6s~jwawkxln-4uD1(zKRnsW|d9rv`Vp$POS$Abhs^K~`q@lz`bpOuj0RH{^=7cvA zlIq-q=?Jf1f3Z2=h5UQ%t$@jf_Nc#$vBcOTFP+l&_x9qU%m3ublaHPpl24vIfXW$Y zDBvx3lbn{-W>s)TcxIcCAgl5n9+2(n6vf`B+MU;g(MH?a94<+0v!=?z8g$&;CEXg> zIuRLdF#@DOwFF^@Og5L@S8t`oUcPCLytxXX@Yg;QUz#GV>$+TATHbQOQ7f|OF>JC##c`cY;9^nWgRS2M?dqUX`0x$$hi&S;93|ZtCSAoSl zT!e#qH7j`w2~KBk_hOFHBlv84(#oBjZ!3ia_&itJ!R*8vJS*eu$)4Rp!q8J^q^Rzz z;1gAFXyh2A{fgw8nIAh6!LOa|`PZk>PR1pHvlh$o z&PaXX)R~tiz44W!Mb3{qqwMkc?2moP`P3H4E-xPeD3Y|g`qJT?&>#{Bq$zjG&p9aD z3K|WG%j3EtR>7Z~8SmZ9icyJzH8OZlqJeu05z=N^ z46xlkfBr1qPu~8c@dt_REpBc?Vq#)ZG0m$bi7O z;C&mB@-9HvC1VB2q5dAL((?j1@T(vULk+(iYP({vf-v!=zrcR%%sHkj$ezCQuoqc0kGf}oY)8*3nuw09Cu4b-Kyb#|K zu$lkZ;WV4C=-Phk4|mmO;77ebMdTpKP?h^~GjU^d%XOUn3;M^*mV4{^*rfNc-9Pic z|3xi2*45(H9*zyTr)x3HO$U;o)8^41Ot z(ap=+e2dUr>W~-&jwr2@cFIafz(NNI z71zm2M}Pf9V=s6D>TbY2^?5ZVN{{$LI8n-F{zL@t0(p&Bd_kLv4O63?gZ~5n%!i@6 zehA0TpT|yPzM{%h9Jm`9>C!IKFk@^#q!}dSye)j+x%jGK2Z8v^&B|)pCmEx!)x2U|tjFg4*+2?HT%(R994_76v_hqzIpIl}y&~?sK@6D1b zWGb~U^2BGeSxrAVi-k1>RFejzMhx}74-^6oT2VI{`OSk>A0V7Mae|bzAawwK3iUC zyY0#tIRc#ofWp@KX;9XBw^DOL!5)GATj}JPLBNiemlu}c$)R;{XebpgFA323YT=6f zL5qb7gie4t(`_$pJ(yTcCGRC(Y@O}zMfnmc*gwjN~x1;CaCZoh;NyVS68XDnQmv~3i{&=y)2bjRoZ@V zhVA0rU$4)!>vX)u^5@6w-)DGY_5?gS2$6VzN$^&+n<=v(_K9)1uHW(;!D~TMjc76= z;Omb*##BqmpbZ6GDVp;T;6bN65ai_?$GK&S`JT2xw=zFU+`a(|hwK6rcoxoQ(R!G4 z_@zS25J};o7LE^35di!dHu8m#+}SPvl2eS{On(^-x$W-m?mRXY83l#bjGID{rtsn6 zp^S=(kzL%tM-T-fS{_X*doS>6;sF4S#a8Y%e_16fi+TpdO!f##$xtTEa)QPH%0@U_ z!2a~BtXz-JIFC)_aRUA!{O*g>EiKqs7LqT-$$=U8qMw)O6NGm&fct!%ohW888S5^d zT&5h~i_Wt}lPJ!{^2mD^7+$t@^1vZpznPr`C^lnz95HQ8W`TFx z8CBNmbU$IPx9;p^EBCLSp!m@9bo?+?=O(`B8+T7F>8JrwoiDQZNxeC5tF`i}#ro>! zyKL8v58R(_v_hYTnqwnH>iJQK@?lcEUp(E%^k@8(ZSlk@D&MaMgv9sX6|pw2NVp~J z83(WKA80o>Hz#ND$kx98(u&uqbJ5oATCvUh_jzAsMo4RF$7u%{`115~anH20wA_WW zpiyS^m`R7j%5iTlV*7KtzXJ60BqKR5f-s{>jhjHvOD;qh3|tqYVy9zSakmKPAHBh^ ztNnygmq5G^R%{jUa`2p5C~dAq^EhFXQhCL%tvG*l&)3N@E+QecH~&@W=BO{TAmBj~7A%$Vdu%Wln6#lGO#@i1iz> zwazGReSMvbOL2d(6s>#bi5W{fr+Gst991>LXxPv!ICUz;{$jMcx>ZO&I)JgpiZgx z>VgPc91pZ>qT@Y&c6TE&H|WGj4Bx$HALAJifD4H>D{WL#2JeD=FE7+Qgc1J{)CbMa zzW`~!St6)t_Pc~4XE6ZC!bAuq2Fk2cYqfG4>gwwkuw^}cqE^8w@(K&TEU{2iBLQI# zFRd!4gGYGNf60xf~ddO}# zEiCj~PJFeEOWzcBdv3!jDcQ;u^NITx{g@Zy3E|!=kq_Xk|z@KY%w)8E)-f< zbZuLp&^XmFW;C=Zg_6Uz@u{u(yR-?F{KYG@80cpDk>PJ|0`Y?c@`+xtrFQk+y_?0o{^Wbzs|_3mpZhPGQrv$<4%e0(m&ZuK z=-MbI?84k$w(NrdlA-1DMEKE5QU7obLw`=XeSq#Hts@T|+D5^t0Z_SIE4RsAU0;6$ zYl26v>Bg}P-8(KKm3*)BS6VD6co<$~mc1qb%K^_)P5ifr1_GZ&0fe7ASzQ;r41`Xx zwJV&n(4+VY`mi7g2uQ?R$yjI4PMjRCoVjNwz4eHK_NL_kK)9W)>NW~LT zuX8;Za_`WTN8hYCVg)W8=LOF!W9Q)HT*6{KO6b{$YH3j*j)Cnm>gw)uauH za`WSm#GpCS9ulDwXL2zG_l2ZkIY>63YK9AxlvR!cFOCdI4I=R9o+K;e83=OqL?#8h+IN6#~YXW@2?9$S{Oh z00kB#1(S?b5%o$SnB2G7Jg!S*yTeM+hsS!YP~jp%^sbz#5|9 zCpTQ#IFqFkGWwoMNCcTnnG9X^=pF9eh1lsXXw{}M%zhBCn)a?2#*GC*6GZ!QFAb}0*;apcvds~dOqu$fGKzF}Jn3fM(in;F_{HknEmzeZxJg>C?BSW=_>9;YC$`T{5!O%y2@>@Fli1ENDJ7WW*&jXY z=Uj2-Kr$C@MK#Y97jQZe2sQMvMH$9{Ni7-8TO_xlVWy}#g{>KeF^D964uJr&)=)z{ zKHAYP5S#xJI(v#!cN|oOA<%=(@DK>Is~|?D1NC803t`ZNUiJlEX4E+|E>l@;DtrCry_KezVk(J6v}8wCZk1C=Hol=g#DbP*^KU98I+Kp70vIH=#(qcE>2 zOzD=}T;h9Rt4&}_%9=CDi4^yzU5_uT`W?i3e?A9fHwNYoipfZCZ;UxRH0v4#Upj_e z24P!7a1r{PzHhT4%^;PbW?&F+vr7XQ4FAdD22lMxyGU1a48YJLs+HlUdCFRj=TLWD z_iflDu0hQoSh~|QGl*_8ukhD*I3&I|q7Po2^lz;7uf3IV=zq}IM8s({aFu#!52>l_ zqFK?-X7>|u5P%r;6>YkIV{(m-1XK!b=2n&VXll4We&3F3v2giK z`+8*f@swTo#+i%^Uh^y^M}_n1B(Ex5dM>KVrY{}Hc*z;NY*JY-n4Dw?Qrj;LoD!T|ef8PSFZPqXl{tJCdDZCtO>}i-oFIBW-Qe6nU)X-Oxc`=&#$19jo6ck z?2@r-eSOI*rAoH0y{TDl)&v6AFXzTyn}{#x5NH9`MN*l0(TT+e`hI0$Xg^<-Ve4N8 zb%wmdgSUVX7ZH*A{x#c=hK??(=Vud<*jUd!QTYI9e1#o-Gx4T2@AE~dd5BgxwEDZr zx=>dK@(7(8+8R0;g&Njk1LrJl^ zY6ehN+BHE$Tp7?O&+Y&`77nD^v+P@z*K-`QnCib~FW;Y3i(BFNab3mgXI*Gknen3; zjjfSdi2fl?6~sf zSVIGyJ`6cX`KD#~V~;Faz5AM7wZ_qHyYOECUp4N=Lh2?8$McIzM_=3BIMktzkT4sB?En=HpNxOyWuDw%2H{swTNK^sV{zFd{$>DL-*Zh}oLUr1U(GB@Tu8IQ~|YfT#L7ceLquwHz5NYa&w78?@8It>6aN0Jt_W z7xo%g&}drj_17}%Ga4C!9kVTsKHeF$I6O+dkL+VV)!l*0E+g~oSu^JNBehAn&?-tw z%+Tvr?v^=ITPc`9Gua=Z-WVx;v3qA8m&6IK`-RVZ>Zt*!GeK>lFhNVlJkAU0 zX$BBS6oWM4=E?>y3V~&dmmGF7pEj7q4$1nLPIV{xBNqdu@vIj1Rg%jf)8Qqyw`}DK z*W=xUH!u~75%-_h*Y~+qAonrsI3JS$#uK6u)Rmo^9pT>MvyMB8wuQb?JM58_B zvn-Z8z~N=}?VSVE#jHY1UUP&W6jo%bZWQtb78Iqaug3hz<5bn6n9;+8X z!M{_Kl$(xDDaFE3hbAe*RykWk;P>VzcK$SKuk&2Vf?pm+OS+Ql{#^w~Tzv8I+vWU* z_|*%0Lc!)P{aa`gs&<*?ZL({FeN5yjYI^Nodf~AP>s=APxpKrSUgFAhh0cZh6HoyF z!;JK%N<#uZwL_i!SDH%OEv5y_Olie_WwUp01>ejaUtcX%5p2w9iV%P^hs)^og%m)uYPYrm~TnzisgUw@x$aWw@u6NTaLxAUzr1Eh)Rpd zmCJ72f6K%DY^gR9SQa^P!iipA(#D^+4OUz>aVuFqV-ABpY|9=^^o;>$#DBKS4%Oms zda6ad#YM@UFV8|C*meL|*L#IEqg>;|H7ROqs;gO$`l z^qM-V=8MEv1xn?#Gmy~*^6@wvlMT@}3=053aQedHp~Oer@KbvQ^0H3bgy+rPYy7qU zjV+joe4z*QW1`NQLA|ia?)P#-`GFwF^c%U8YT4;+fc9$qn>b=y0t9?4z~c)pOZ_*e z<0C>>f$<;_P2}c%6{nrgNq9F|DZ09?xtf$`40T^$O}Y4gQB{yBDBzvh{~stKP%`|V z*Z(qs&+<2CCZVDY%8X33JY-(<)Ktp#olg*o$<$T|+|a%Mn^i%-(UP+)BlV? z{;*&#K`y;6>=qSOH!vLFVgAqSe;fOU#1=*2PeerQRoFlH$)ytn!A<>sH9Z4t=liEh z6*ddkR)}FyWZ?mo@kqS!(G#?;R>)LfC}`n(%h%I&)jo%Br1Chc!n)LY^w;c`;b`>t zXfzIYt`HhShS9Jubvzoa!c41RoN}%rn+te4hR-KLo7#=tzEq&Y1cB?LV@}@Ayn>C9 z5fdIM!@SzqFTiyC>ag{S>W{Ux$N68rUlWbV*`h_57vMlTkX;)!6(DxNQR3ImEdBfO z=;0jCzTz+D>8e6_JycfbaoJvbd)v^5h^I-C`Fs$XMON?cSJO4PwLtuO-2m}-0&6Z12!RS21HymDQ0j+0w{JzR8Hj&I*V%FVx0 zgkF)F^Bcg-_>x8ob)jE9l3&3`PY5#SI_8$kk8WuMjpQ6{ExqlsQI;)p!&qluM`NV= zRr4@Is+d>V*&6O^9NH_@Wq-BUdJSus*rF+_FlS}f4!&>Y7B~%!E(^~6zFacoUaWl9 zN#B~iHf3wHCB8hCF>>1o?Z2$WLgBZb0`=}k=?YZDvMesT&tji{9@o;cPi7|$`%e2k zJ0rj-3w`|#ZTY(ir|KrDzQU?&nmYB@au}UPFSccsXl6LKdf(3TZWZ@2qVH8tSJ2t7 zc9~vLKec0YY?Kv6=Gl6E?%DdxT}itzZc~`o>i z%{PH5Sw^!kjE61Tl@goBmSZKxSlnZ0h!ng>O!pxOQtIs){@^#a}ZI_X0*g zEJm_8tzyhX&PDy~kRzq3to@a$gXgzL)rvDJj`s&o)J%N$Ni!;{atpRIozL-UnV8Ai z6J^&NJ=)K8x$KkQhR-a*tUZr(G%T~RvG{F~v$;$9w=M%cpa#+6^C}G#r z`TNbcB#_3N+fk4_6?Tt#)jXz4``*I0oMqs0(-+C<8LR}e`h{!b_pT0_uY3BLD=15z zc0tz`mwaDlESJ@sHWBmq)G?JGwfuebn`>?n#xD9?Zc&F-iH3<|^ly%$6>%h%MTXjk z7XfgHE*rfm!5-p$ct|1AJL+{EW9KdwX`j!`9;`VsJF9jWbLZxu>tZG&GN{e#mpntN zuC``B*|vP{gwyI3Y+-@+AF<70c=ra$=RABH%C&3*%SNN$2*HG{2yBs%@urm!?ok@A zqaHeAXWI2M!{XLtqC1y7b7ef6Zetv>ZGWPf;Ln(fNwroq6JFOS1JvLliPOo~0s>mb zE`^QZQz@w%zC0R$vjWsSL+`U>xm(oKXCNLzCh_nV3XT7ZFyP(V<>IDXMD!gokY#=_ zqA_jA;K3mKX^f5YCDhg76&PM%?7(J(emu(`V-#|_O-1$b%1 zlpXr@x_aTPF5eB5_y=#idvKPjMbitu=g~4t;h5XvMufsYk6jzxS4)sUlq;05s^j8O8VEj$8D>MviO|lC{&-JTm z8NT<%Xr*8$^FYOa_u$|R3Y1crk8r#L0ve%VRyQeC1Uh!XxOaug_J{B>3EVJsKi_&dDI69gK+$+0Lq|8mz>0p?_R%##!*w*(g8rz@@SeMs{YQ z^<&E_P1Sc)Y|?jS6{~MklMX&nDlSyd#To9?)~m7e5?G8WB#*f8y~zik&PkK?tbyTx zKGCzNe$8us@Nl+ml8X%j%ITtOu*bgy+K&~$m_DP_ukiwl?qdAgBE9v3e15hjCFP9< zH~GGV5fu7R5}(&IFEL&nG`F=!RrHOX>Q}4i9Y58tdeAe<)~|NZqe(ejQUz|z!z8|^4hDV~J=b_(i)7KA07axMkY@lQzv%Y2^#X?tlR^JM#XNMDW z8U+AdF**T8M&E}o5-Og6#Py}imn{*1dFyRt+AK1V2BfS2U5?aSR4N_VplXQ7`sbC_ z|5=DHKz_YxOuhtmlawfVr~~Hx41ZX!{>e$d6FtUKGkf_p_jGIGk)3ery1#?grhqeKRsFVUO4QK}OEg%7z^QO6UH6mYqf)mc zUet47Dl1_zU||#8+?qJ&0kwIF+CjJvMUqdB@S_kI}J0`2fLypkEOk0sw#k!rx!=xD4>Y=w(o-C6twwl_Li$!jxSAM=>ciRpJ1V zZ<35)e{48j#~!)-&dX~mIZW#jG(@|~tPP|4=@Kf0Vc*5LA3MU~I|B`2o#H{{G$tjj zH=c)4biP2wc>g#{uJ>*eNdra4Z~uT#d=TFe^Jn_B9_u0VBM}=5Hhmls1#Dj^fa@ag zG(i8R%_r|e&D;BNW-v$ypq@xb2;12e2V>^uus}f7!O;X}!jPWrm*(QzIPXo3*gTQA5MVO03ALm^B!`!t33AOMid|=473Al8_@Ey_ zsk2^(c4K2B=s1_SWfvy-0rdB^TzW7UxPUeVg= zKDN?cks9f*z~9-zOn-2lvA~1eK8Ri*AL*XJBC`>vT`-S<85J;N4r!Ah;`BFx3Sy|D zZx+c8n9R@|0T^#2XVC}6*B3CbLv9Zm?&<_Y(a><|(cJ;$(m;s?CE$i-6%@`w{ErM5 zOe3Nw0=10?k1d`rvqLxLEJ9XAED8#-(m>aFdP)OUCmO|xSC$IR@&)W7^K@LnU1XqO ze+1xLV9qP3sv)hE===^CINqiCHQN1ih4tuY1Yb!7Uq89Imb-mU1)uefo&DT@$M+Q# zy2E@}!_nRtS~#Qi2tCAThKy7UJ6 z5uhN841>Dzv=V_r0Z5JPkVCZ;w098Z`0%?Q=ZQVfrKqT@d8^C!X zOb}q+EOyXI3JTimIb+0YU?=l=Sb;gY#x<`+_~ZS-iLk+S32 zzR{8O;^!EXmx990+ig5JA~yDS7#Z<{7$O8+%QsH|i?BGoU=3C~NKl${W0(YO%LgvP zW%rjC2$Y0M?ISQXz{12O^e=+)XL8w#8o*h=R)5Z>n{1b*;bc_2NIT{K;kH_IFt1PnRG#9b|lFyWOAhnNQp~ zkc9YOucUWi;u4(0=wA;*x`C+FgJc3|i(Q7exqJNc)PFw?sG$7M^Lf%b+C6m-gkB&7 zIgQXnkWm)EG?sIN-2o^?xX|~}eD(=2r%KI4-5fAH5b$|HUmer}`~j4%I=2EH58q6b zQy+(dzjsrN^zpl?F4E-bi?dA!DCkS_ecdug;SZcojhXbJB)E|h2aM zf!bzt|K06GOwCZv^@lTyj2>hNx%6At7@bT^y9ZZ> zz=vgJ1M9!jz%ZLc{nk)kV_2F`ZxZ0q^+wc`K->)d*DeOLDi~iF-A@FvzQ9UJ;gHVt z6wr!=dgwo&ARF{_grRq5In#0-&?o1RzanE-z$WAw(F}dRO$p;-;cn_f7?qhwSoWaI z{|%6F9}op!#Js2$(Ar@}E-IY$;@U%ffm=jId9{YI5*8;gf;SrS1mg@-Qo2ekwDZFK z!KKWb4g-J;p~Zt${{U-_GN=^93ruwQE8s7~Hr}T1Vm_))|IpZ(euL23z`e$UfQC_D zRz$ejM}zQbAUk~)bR_}3fKX4Bd-kPz;KLwnsBLY%3{-@AK<6gC@OO1}T?1~|clbw; z{M!W<^C=Xp**jqK7VAZWmpqMfJKi%i?$Clyr@L*txl&Q-0#5iH0xfNImBv2DpIMu_ zahKi_?+8oYqcP^nY0NK3zb`a>T=ak?gI=3knn5#Czkr@sMu3D&CdA{ ziY9QHC5I=6wT+K!Gt*uRJlI%W^^l|mbpZT=zfbuSm@6s^b6xZE+0%L}HAQW58UI(` z0#nG?RK?ufs>Ah)Ve=zHVj%VaEFTL3N}^|lg8}o2L>@jorK78h5b^(Q9TuYvi{Yuu z5t~IW$HJNcoAvyeWY{GLb%iNJ6{cf?95-vPye0^9?2=1rS|nSrxn!w z5j{hzG7ZT;8Pi2LZ6hBwSPcK=_nI#5I)6rXEe@sN2k>Q?VbGUcFbxC$#(g`ib?-0M zKY>6X{_2aD$ag>k2*%iY^h)UIC3V=r#anT}IHDw;h&|3$XG2$Y*6EBW9 zIjll_{^y5Ak>k^cno`JLifR8IkUm`wbf$^rWj}~EZ^5Wns8GPX>s?(CpF&`8BGDVFy{Chk%7gBpBI-Z~yx!{2ke; zLMP+V{s~w(n{~EyzZTF4&H#uy=*>7I0OFufK$pzB z^AS?hpV&c_AiIIgZbjxn1C|^{y3{9#{&UG#kYU7vf`Wj{$prLrs3*wzM3H^5OQM%g zK{OYkj$!$-a~RO@hu|Y&vj)E@7184ZqznuR7I?KW`wY>Nftkq2tVd*^696ZD>;3-m zQ0G~a1YC0OOXl2{Tmv%dT_D3C