From aebb7d0d0d4d53bcdfa087fcf75da3921ce4601b Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Sat, 17 Oct 2026 14:19:28 -0700 Subject: [PATCH] feat(workspace): group saved negative variants in native library (#208) --- database/library.py | 297 ++++++++++++++++++ database/operations.py | 3 +- docs/application-redesign.md | 4 +- docs/prompt-history-storage.md | 46 +++ docs/screenshots/208/README.md | 13 + docs/screenshots/208/history-mobile.png | Bin 0 -> 142585 bytes .../208/history-selected-negative.png | Bin 0 -> 166424 bytes docs/screenshots/208/library-dark.png | Bin 0 -> 119432 bytes docs/screenshots/208/library-light.png | Bin 0 -> 118582 bytes py/api/__init__.py | 3 + py/api/library.py | 186 +++++++++++ tests/browser/server.py | 76 ++++- tests/browser/workspace-library.spec.mjs | 170 ++++++++++ tests/comfyui/library-sender.spec.mjs | 46 +++ tests/js/prompt-blocks.test.js | 52 +++ tests/js/workspace-images-lifecycle.test.js | 23 ++ tests/js/workspace-images-state.test.js | 8 + tests/js/workspace-library-state.test.js | 49 +++ tests/js/workspace-state.test.js | 14 + tests/test_api_library.py | 180 +++++++++++ tests/test_library.py | 246 +++++++++++++++ tools/vendor/frontend-coverage-baseline.json | 12 + web/js/workspace/images-state.mjs | 8 +- web/js/workspace/images.mjs | 28 +- web/js/workspace/index.mjs | 5 + web/js/workspace/library-state.mjs | 89 ++++++ web/js/workspace/library.css | 46 +++ web/js/workspace/library.mjs | 203 ++++++++++++ web/js/workspace/prompt-inspector.mjs | 32 +- web/js/workspace/state.mjs | 8 +- web/workspace.html | 1 + 31 files changed, 1819 insertions(+), 29 deletions(-) create mode 100644 database/library.py create mode 100644 docs/prompt-history-storage.md create mode 100644 docs/screenshots/208/README.md create mode 100644 docs/screenshots/208/history-mobile.png create mode 100644 docs/screenshots/208/history-selected-negative.png create mode 100644 docs/screenshots/208/library-dark.png create mode 100644 docs/screenshots/208/library-light.png create mode 100644 py/api/library.py create mode 100644 tests/browser/workspace-library.spec.mjs create mode 100644 tests/comfyui/library-sender.spec.mjs create mode 100644 tests/js/prompt-blocks.test.js create mode 100644 tests/js/workspace-images-lifecycle.test.js create mode 100644 tests/js/workspace-library-state.test.js create mode 100644 tests/test_api_library.py create mode 100644 tests/test_library.py create mode 100644 web/js/workspace/library-state.mjs create mode 100644 web/js/workspace/library.css create mode 100644 web/js/workspace/library.mjs diff --git a/database/library.py b/database/library.py new file mode 100644 index 0000000..41a3ca1 --- /dev/null +++ b/database/library.py @@ -0,0 +1,297 @@ +"""Read-only positive-parent views over existing prompt and pair tables.""" + +_ELIGIBLE = """(EXISTS(SELECT 1 FROM prompt_pairs ep WHERE ep.positive_prompt_id=p.id) + OR EXISTS(SELECT 1 FROM generated_images eg WHERE eg.prompt_id=p.id) + OR NOT EXISTS(SELECT 1 FROM prompt_pairs en WHERE en.negative_prompt_id=p.id))""" +_ORDERS = { + "newest": ("COALESCE(julianday(p.created_at),0)", "DESC"), + "oldest": ("COALESCE(julianday(p.created_at),0)", "ASC"), + "name": ("LOWER(SUBSTR(p.text,1,160))", "ASC"), + "rating": ("COALESCE(p.rating,0)", "DESC"), +} + + +def _escape(value: str) -> str: + return value.replace("\\", "\\\\").replace("%", "\\%").replace("_", "\\_") + + +def _limit(value: int) -> None: + if type(value) is not int or not 1 <= value <= 200: + raise ValueError("limit must be between 1 and 200") + + +def _filter(text: str, category: str | None, tags: list[str]) -> tuple[str, list]: + if not isinstance(text, str) or len(text) > 500: + raise ValueError("Search text must be a string of at most 500 characters") + if category is not None and (not isinstance(category, str) or len(category) > 200): + raise ValueError("Invalid library category") + if ( + not isinstance(tags, list) + or len(tags) > 30 + or any(not isinstance(tag, str) or not tag or len(tag) > 200 for tag in tags) + ): + raise ValueError("Invalid library tags") + parent, pair, parent_params, pair_params = [], ["pp.archived=0"], [], [] + if text: + parent.append("p.text LIKE ? ESCAPE '\\'") + parent_params.append(f"%{_escape(text)}%") + pair.append( + "(p.text LIKE ? ESCAPE '\\' OR n.text LIKE ? ESCAPE '\\' " + "OR pp.title LIKE ? ESCAPE '\\')" + ) + pair_params.extend([f"%{_escape(text)}%"] * 3) + if category is not None: + parent.append("p.category=?") + pair.append("pp.category=?") + parent_params.append(category) + pair_params.append(category) + for tag in tags: + parent.append( + "EXISTS(SELECT 1 FROM prompt_tags pt JOIN tags t ON t.id=pt.tag_id " + "WHERE pt.prompt_id=p.id AND t.name=?)" + ) + pair.append( + "EXISTS(SELECT 1 FROM prompt_pair_tags pt JOIN tags t ON t.id=pt.tag_id " + "WHERE pt.pair_id=pp.id AND t.name=?)" + ) + parent_params.append(tag) + pair_params.append(tag) + condition = ( + "(" + + (" AND ".join(parent) or "1=1") + + ( + ") OR EXISTS(SELECT 1 FROM prompt_pairs pp " + "LEFT JOIN prompts n ON n.id=pp.negative_prompt_id " + "WHERE pp.positive_prompt_id=p.id AND " + ) + + " AND ".join(pair) + + ")" + ) + return f"({_ELIGIBLE}) AND ({condition})", [*parent_params, *pair_params] + + +class LibraryOperations: + """Group reusable negative variants without changing legacy prompt queries.""" + + def _library_parents( + self, + where: str, + params: list, + suffix: str = "", + sort_expression: str | None = None, + ) -> list[dict]: + conn = self.model.get_connection() + rows = conn.execute( + "SELECT p.id,p.text,p.category,p.rating,p.created_at," + + (f"{sort_expression} AS _sort," if sort_expression else "") + + "(SELECT COUNT(*) FROM prompt_pairs v WHERE v.positive_prompt_id=p.id " + "AND v.archived=0) AS variant_count," + "(SELECT COUNT(*) FROM generated_images g " + "WHERE g.prompt_id=p.id) AS image_count " + "FROM prompts p WHERE " + where + suffix, + params, + ).fetchall() + result = [{**dict(row), "tags": []} for row in rows] + if result: + by_id = {row["id"]: row for row in result} + marks = ",".join("?" for _ in result) + for row in conn.execute( + "SELECT pt.prompt_id,t.name FROM prompt_tags pt " + "JOIN tags t ON t.id=pt.tag_id " + f"WHERE pt.prompt_id IN ({marks}) ORDER BY t.name", + list(by_id), + ): + by_id[row["prompt_id"]]["tags"].append(row["name"]) + return result + + def list_library( + self, + *, + text: str = "", + category: str | None = None, + tags: list[str] | None = None, + sort: str = "newest", + limit: int = 40, + after: dict | None = None, + ) -> dict: + _limit(limit) + if sort not in _ORDERS: + raise ValueError("Unknown library sort order") + where, params = _filter(text, category, [] if tags is None else tags) + conn = self.model.get_connection() + ceiling = conn.execute("SELECT COALESCE(MAX(id),0) FROM prompts").fetchone()[0] + if after is not None: + if ( + not isinstance(after, dict) + or set(after) != {"ceiling", "value", "id"} + or type(after["ceiling"]) is not int + or type(after["id"]) is not int + ): + raise ValueError("Invalid library cursor") + ceiling = after["ceiling"] + where += " AND p.id<=?" + params.append(ceiling) + total = conn.execute( + "SELECT COUNT(*) FROM prompts p WHERE " + where, params + ).fetchone()[0] + expression, direction = _ORDERS[sort] + if after is not None: + operator = ">" if direction == "ASC" else "<" + where += ( + f" AND ({expression}{operator}? OR " + f"({expression}=? AND p.id{operator}?))" + ) + params.extend([after["value"], after["value"], after["id"]]) + rows = self._library_parents( + where, + [*params, limit + 1], + f" ORDER BY {expression} {direction},p.id {direction} LIMIT ?", + sort_expression=expression, + ) + has_more = len(rows) > limit + rows = rows[:limit] + next_key = None + if has_more: + next_key = { + "ceiling": ceiling, + "value": rows[-1]["_sort"], + "id": rows[-1]["id"], + } + for row in rows: + row.pop("_sort") + return { + "items": rows, + "total": total, + "has_more": has_more, + "next_key": next_key, + } + + def get_library_positive( + self, + positive_id: int, + *, + variant_limit: int = 40, + variant_after: int | None = None, + ) -> dict | None: + _limit(variant_limit) + if variant_after is not None and ( + type(variant_after) is not int or variant_after <= 0 + ): + raise ValueError("Invalid variant cursor") + rows = self._library_parents(_ELIGIBLE + " AND p.id=?", [positive_id]) + if not rows: + return None + conn = self.model.get_connection() + where = "pp.positive_prompt_id=? AND pp.archived=0" + params = [positive_id] + variant_total = conn.execute( + "SELECT COUNT(*) FROM prompt_pairs pp WHERE " + where, params + ).fetchone()[0] + if variant_after is not None: + where += " AND pp.id variant_limit + variants = variants[:variant_limit] + by_id = {row["id"]: row for row in variants} + for row in variants: + row["tags"] = [] + row["explicit_empty"] = bool(row["explicit_empty"]) + if by_id: + marks = ",".join("?" for _ in by_id) + for row in conn.execute( + "SELECT pt.pair_id,t.name FROM prompt_pair_tags pt " + "JOIN tags t ON t.id=pt.tag_id " + f"WHERE pt.pair_id IN ({marks}) ORDER BY t.name", + list(by_id), + ): + by_id[row["pair_id"]]["tags"].append(row["name"]) + unassigned = conn.execute( + "SELECT COUNT(*) FROM generated_images g WHERE g.prompt_id=? " + "AND NOT EXISTS(SELECT 1 FROM image_prompt_pairs ip " + "WHERE ip.image_id=g.id)", + (positive_id,), + ).fetchone()[0] + return { + "positive": rows[0], + "variants": variants, + "unassigned_image_count": unassigned, + "variant_total": variant_total, + "variants_has_more": variants_has_more, + "variants_next_key": variants[-1]["id"] if variants_has_more else None, + } + + def get_library_options(self) -> dict: + rows = ( + self.model.get_connection() + .execute( + "SELECT category FROM (SELECT p.category AS category " + "FROM prompts p WHERE " + + _ELIGIBLE + + (" UNION SELECT category FROM prompt_pairs " "WHERE archived=0) ") + + "WHERE category IS NOT NULL AND TRIM(category)!='' " + "ORDER BY category COLLATE NOCASE,category" + ) + .fetchall() + ) + return {"categories": [row["category"] for row in rows]} + + def list_library_images( + self, + positive_id: int, + *, + pair_id: int | None = None, + limit: int = 40, + after: int | None = None, + ) -> dict: + _limit(limit) + conn = self.model.get_connection() + if ( + pair_id is not None + and not conn.execute( + "SELECT 1 FROM prompt_pairs WHERE id=? " + "AND positive_prompt_id=? AND archived=0", + (pair_id, positive_id), + ).fetchone() + ): + raise ValueError("Variant does not belong to this positive prompt") + where, params = "g.prompt_id=?", [positive_id] + if pair_id is not None: + where += ( + " AND EXISTS(SELECT 1 FROM image_prompt_pairs ip " + "WHERE ip.image_id=g.id AND ip.pair_id=?)" + ) + params.append(pair_id) + total = conn.execute( + "SELECT COUNT(*) FROM generated_images g WHERE " + where, params + ).fetchone()[0] + if after is not None: + if type(after) is not int or after <= 0: + raise ValueError("Invalid image cursor") + where += " AND g.id limit, + "next_key": rows[limit - 1]["id"] if len(rows) > limit else None, + } diff --git a/database/operations.py b/database/operations.py index 732d49b..588c07e 100644 --- a/database/operations.py +++ b/database/operations.py @@ -10,6 +10,7 @@ from typing import Optional, List, Dict, Any from .models import PromptModel, normalize_image_path, utc_now_iso from .pairs import PairDependencyError, PairOperations +from .library import LibraryOperations # Import logging system try: @@ -147,7 +148,7 @@ def _coerce_file_info(metadata: Any) -> tuple: ) -class PromptDatabase(PairOperations): +class PromptDatabase(PairOperations, LibraryOperations): """Database operations class for managing prompts.""" def __init__(self, db_path: Optional[str] = None): diff --git a/docs/application-redesign.md b/docs/application-redesign.md index dc9013c..f1fa0f0 100644 --- a/docs/application-redesign.md +++ b/docs/application-redesign.md @@ -8,7 +8,9 @@ code. This plan proposes implementation order and acceptance gates. - Foundation merged in [#198](https://github.com/ComfyAssets/ComfyUI_PromptManager/pull/198). - [#200](https://github.com/ComfyAssets/ComfyUI_PromptManager/issues/200) delivers native Images browsing, physical-file details, infinite scroll, Grid/List/Masonry, Viewer.js and video playback. The workspace opens on Images; original application entry points remain available. -- Prompt metadata, role-aware sending, tagging/review, library/history and System consolidation remain subsequent slices under #196. The physical-file inspector does not display prompt text until the shared prompt inspector/send flow is implemented. +- Shared role-aware sending and the physical-file prompt inspector merged in [#203](https://github.com/ComfyAssets/ComfyUI_PromptManager/pull/203) and [#206](https://github.com/ComfyAssets/ComfyUI_PromptManager/pull/206). +- [#208](https://github.com/ComfyAssets/ComfyUI_PromptManager/issues/208) adds the native Prompt Library: one positive parent, saved negative variants, full selected text and a shared filtered image gallery. It does not invent chronological runs from counters or scan dates. [Durable history storage](prompt-history-storage.md) must be designed and tested before the execution timeline. +- Execution history, tagging/review and System consolidation remain subsequent slices under #196. ## Scope and compatibility diff --git a/docs/prompt-history-storage.md b/docs/prompt-history-storage.md new file mode 100644 index 0000000..79b86ac --- /dev/null +++ b/docs/prompt-history-storage.md @@ -0,0 +1,46 @@ +# Durable Prompt History + +Status: future proposal tracked in [#209](https://github.com/ComfyAssets/ComfyUI_PromptManager/issues/209); the native library does not migrate execution storage. + +## What the current database proves + +- `prompts.run_count` and `prompt_pairs.run_count` are aggregate usage counters. + `utils/usage_tracking.py` counts known recipes when ComfyUI dequeues a job, + including cached node executions. Dequeue does not establish successful completion. +- `last_used_at` records the latest aggregate update. The legacy prompt migration + estimated usage from linked images, with a minimum of one; no flag distinguishes + those estimates from newer recorded uses (`database/models.py`). +- `generated_images` identifies linked files; distinct image IDs are image counts, + never run counts. Its default `generation_time` is database insertion time. +- `image_prompt_pairs` stores immutable association provenance. More than one + provenance row can describe the same image and recipe. Its `created_at` is the + association time, potentially an old-image scan. +- `prompt_pairs.created_at` is the saved recipe date. Execution PNG evidence in + `utils/pair_execution.py` records distinct text/composition values without a + durable job ID or timestamp. `PromptTracker` execution IDs remain process-local. + +The current UI can show saved negative variants, linked images and aggregate uses +with an estimate caveat. It cannot honestly show chronological execution dots, +repeat-run branches or completed-run counts. + +## Smallest useful future migration + +Add a durable `run_events` table using a stable host-session and ComfyUI job ID +plus recipe identity. Create started events at dequeue, rather than node encoding, +so cached executions remain visible. Retain nullable recipe references and immutable +raw/effective positive, negative and composition snapshots. Record completion, +failure and interruption only when observed; otherwise retain unknown status. + +Add a deduplicated `run_images(run_id, image_id)` relationship. Multiple output +images can belong to one run, and one physical file must not manufacture multiple +runs through repeated metadata evidence. Preserve aggregate counters and existing +image provenance. Do not manufacture historical events from counters, file dates +or scans. + +## Required migration and integration tests + +Verify old databases upgrade transactionally and idempotently, with rollback on +failure; unchanged counters and associations; cached repeat executions; failed or +cancelled jobs; batched outputs; duplicate callbacks; process restart; unknown +connected inputs; and metadata rescans that create no execution events. Cover real +Classic and Nodes 2.0 hosts before exposing run chronology. diff --git a/docs/screenshots/208/README.md b/docs/screenshots/208/README.md new file mode 100644 index 0000000..bb23ce6 --- /dev/null +++ b/docs/screenshots/208/README.md @@ -0,0 +1,13 @@ +# Native Library visual evidence + +Captured from the production workspace using disposable synthetic browser-test +fixtures. No personal images, library, or running ComfyUI state was accessed. +Solid-color media are intentional test images. + +- `library-dark.png`: grouped positive shelf, dark appearance. +- `library-light.png`: the same shelf, light appearance. +- `history-selected-negative.png`: selected negative directly below its positive, + saved-variant branches and the filtered shared gallery. +- `history-mobile.png`: the same history at a 390-pixel viewport. + +These screenshots document implemented behavior, rather than a design mockup. diff --git a/docs/screenshots/208/history-mobile.png b/docs/screenshots/208/history-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..d3302ec36dff06e3cb978aff67b4c20f364eb9ca GIT binary patch literal 142585 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]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

|v(=HMmOBPrP(x6@Ggl*H!rybg(&3>t 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/208/library-dark.png b/docs/screenshots/208/library-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecb8879ae4b1d66e419e148d10c4a3dd5887777 GIT binary patch literal 119432 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 z zMi@Wur6e{NYSx02)u4BE%3ZoauTu3L(m7L84ysyK2baZNdBay!RD(279D0ElNl)dHG~Cd>kAcJiP9%4;!&CAM|iz8jI5~|&jq#pm@YSL1jrT}v1}qE zBKR{Xsh=P0UW|5z-q!!jHo!2Ot=K!;o0Zylo||i$aP*~RaIhS}-?IfoZRI}K=JpsF zhxzJ;GKN5-xae*I*ZIc)-B0f>SQnahRdb5>UPyf=t$XU310+9fj|iS_HBQ@vC??y%MIePG_(e-@i9K8j#YGZXVocuu#k~cH{TOP)_J zrsQM_4apXCyKka5>gP`CTgV8hcu7ZxPeLNL67w0M5zZa+Bd3?++fC z%%Yj}1BBr+YYTCG)DP$xojy?=RFl-n3i<3hFDN(a_QgTyAhrS zMh(aFl$qF$TbEkVrd#j_2CvS@xSS4(Q86~;V-)*;Ne?CsBrwMpZmh1a!vu?=y1sdn zjAz^9qH5wi0xxd*XD1bdJK>pEF~ite4f!Up|0se3f0M}y1n7b>FfgVTsANd3=87ZT zm*0x1Ixp1uf}S0VbT0Fa=(~3>$;s0TEO>hy0|UQFC-I5cCunMA=b061mL^FHZ9X&@ zT|Z$g97q=p)+|}IdZP0qJNs)Oq|SPUHW5P>2lwey(AlqXUuE`gfch~}W&&Yn57z6% zQcifBNXEQ~9=r|iP00U|X1QskkB>g6O(ev-bOl?xyK{}VNHs80Qc@ABU2bk}w&$3n z#Kd#;uAwMsrw|gRqG&rUA^b6CKl@Kr6>&t_;qu< zHL6{Ilr{L3#tOw_B44%M<)p?wFP}f3+je~@R#{&k2cnLnCKV%ls(0AW7Lj zq+ZZuBba$7vVw^~sqJ$hZ_4d@vp6+)iwWl?;xNya+Tnme$B*$PZy&n5oP~!)3Amo( z!1IP%I9bhVtZps;FgI2C8b41re+pS!-*O~LAWv*7?riF^LX^RWuI*0ivFA8nofeSr zI@plDctuD^2=b=MXh%hM_U3v&k!T39L61%Hw2jRXopRx-ovhCO0{ALeW>FE@vZPl=8CJ1AFcJ0 z@i{d`u^A72JX{v;=%DQGrU6vi#$YlQCT4kwX@mU^N6!EsKR;9&VY!h?E-KAsee@Vk zK7RBlU*3EVr*(TbE$%~LZEk$nJ_IqqE)_1C1tCD%OPjQk`Qc_ZNR8ih= zTFo6Fo=!|m#POMoFrc}1ddATaGV8XTm`%>j&ly{&f((aRXwIFPs*s!usE{N<$AR(o zwZrtz*$T_Z=xFs?!@U*J&;;!|F1v&02Kwd*aK<1AUkv;Tv)R+t0Bp;`LaGol=y^De zwm*l(jJ}zf#JufBU#e-P6}JMJGID!tC2SOJU6d0xltJN=%3oHJ#ihn&Vc*2Cr+gqbuO>;f9B z29x=rKdl>_%G^%(7iGTr(rR#dHb4_ejGA(zUMm2QwFiC!%F$rGWKF+veu8iiU)QxzC6zidU~< zj_wVDQ(}LCM9MY1IFL&L8EPC~ruw-P+c5cnawTeD#fp7!8MR<5P8yg$1 z-DXO9I_p6)PSnshbG?`C>5y= zK*ACe`8}J7?`_8{wfgrbH$H#)(q_J~?;imd|BZWzoYORG;s0Y7Cure7=*vovC2ddsqCcX^2E85i>T~y`I^1boe!Pp~FQzACwl!AhG zcB-(+BJKT&dfs~8tZV5qJS8P6PCh2wEL<>?2sCkkAVfDQ^F6MRDYdst%BlR(#ephnLtzX01Hdd6?Qul&&gT&u?O3+r+U3VF)us2D?(7A>wmv>q(vbH zvKRDGvL8JH)nvYgWnojv2wZPK5h|d;Pq1WXXTNOB$nY^Op@>~;Wa}Q)aM94wq z&8_6+SYiK0U&eR*p$SQ z?fKcJDzipmbj`Qg&!MPZjH|bObXnGB!9J z>VEie-$1|Auz#5Vv{BZX*ts54eSMPR>2~&lm0Qxt#An525fPD*MVhr0Ix8Ys59TEP zN>{&(Kz|Sx6(!<}zZn-Gj6p+-i(lLO+>Ay!YiX&fAJy>iNcwid zoSdAhjEsypE$6D_$PrCVO>J%OlOCMd_mbvG%E&DKwB6X_b)>e}HO;@&Nl#CYE%B!g z{*4giX1s1tsG9j*a)5Z#g(MNEm4^p6~H9`DDD4Qj zn}T_Hd4bN{x+Wfo3eY(~B+N`HT?F?qQ9HrcF^L{l*Sad?e+Ru`$cu@1t;#Dsvg zv_n`}_{$geOX@tb)3)yLT0+jOBMbG)sD81V+wyw*gP|7y;2IdL0Zrij`}ZHj#6Ziy z!^KrqQ}ajuKtgI%Q&L(_7j?WmCE4A+0+_l{fXCaulQTF+Z@6-)-F@noOg+^_@#b}$ZnhqzC>QDzL;SE2_!KU1nGt4MveMnxUAoeQc7VzU1rj#s`}V`XQ24! z&!6d_67v`Yf_GV2hT`HS$({s%Pf3bpS65%%?XQYhRS2d%gS9pKJ&%}#gx$@U?AkLA z5f|ZeJG+yZqUhI~A2H3e2n;4hKLlVFXIB;l9Qi&m5bT>o#DtFe6CxV)>ggb{JXS!t zsX5Zk%#@t!)Tq#)=2oEJHjwIg{_54-XrXdr1LEq0-L z`URUW7S=a5dTMEDwLdVMG^eLw3bC2V@d!`AB)*e8DUy zU?g&m6@^e%5)x$kp&{L2<|pNw29y4Z&g&xqm+ zwcw6Q6I9#%T_22kfo3sL4dE0J$jYud?~BD26B85if7sjKJ32fO8TG?sZHjr%$rIQ4^pgS5Q&;u%cS(f>NZ@tY z&CkjLm)seFsx?oDQQV3byQo<=eDG!{U8_NG*0R4?8JY3 z06U8O2E=l3suKmRaQH{J$jarosp55v-W9c9lkO6H&X&9VVJ4YG_eIc+;vu3}1(h8)AjEq;MTexUz?}hw>rW)LB zb>($8q%}K(l8Oy>?$IhMLl*0e{8LhXom$lHkrY}j{%jv=sxlhX!udGgu<}uN=6tt$ z6wr1L0>#(+>G}BP?d^9qHt=O#C@3i{_4RGGj!+E@B9#hefYJ*54%01jHuIO`Y-*^e z!k5W+O3HVXHdgiNy69wG3=Ag#x$lASD}VRp4zMu*QN6)#%MBwhicK!pTu)D3L!-=W z(&5G1x6B}^{M%02Yy+=$ZH?zE&M(VXw1eI-bT;YrQFtz-Ex#l<({pS0WhY1o4F&Kb z0xApOvC5Qx+fh_8=$eiJa{&X(=ghB6HLg6cp6esc31#Skbi?E2ZMuhNfVf>EF-L;@sf%v9zy+!US3|l1qck0ImEg5eIPi&GYo+#(mIv1AI!z$uV1FK^|FFY?_*yTJ5>0Q*p;YMxdyEFo8c67*bMh zpZBgS)jC)}Gx|C=6lH3)=%R{d%A8Sz4Ve;>d3gj1?J8JVM$UHUO&0pxfbLJ4WC<{$ z;jf*G|2^Th54xcQe20z{4Y2w;_c^vJe<$B_4iwRXzg_Na3npe3Pq_|x{p5)pI(op+ z&}0635!xPFg^>n#|Kj4Ik&%(O&~RE;*T(IUYIPeMd4NfCbK~;!cN3~vp@T7!o;V!k z<|YiUUV%;<9~ako^8gvx7qWIa=$HdD2NDItVg+S;UeREDy+E3uU!ZEeSPYcd;jaoy<|j{LoY}J zGa@i>P98)M;?i#6N>ICv7hg}4`GyPi+zQ$&1Af1eNUb2k7ED(STzngVie!J2I3ZWhfLV_h^cB@ zy8kIAjRTIZK97GzHE>p>L##Z^ae zUUT!?F@CqHu8h?Tz=q3L0{_OM00I*;7|`+v1j2GgdvI`24~>A;C820vJ$Z7$e1C$0 z7oRb%*8z)=t?Xxxs+N|eob@me6tr$3{-Qe*91QAZ;CuxJ2UlCed3a9@B$P*PTUy?c z33}AI?8$3r5Ua=bl$V!J!=&OT{e68)<{vx=G*c>yZ~Vw872?8Mw$J8tAUp8t2o5(I zi0c`USD$sLw44@na*~l&vRt?p?v1`}kHxINhbfaNAlI+J1zdb;YHWfI*RP@P6%@=T z`l^A6$7mqw7!F^nLj(ocsVVJyF9^CEd$I0j|40vqg!%fuuXC@1E!6k(uQS9uCh)uV z3@%1PL)fWW^qukl*`$+ zS_5PYfc7hS##6&?@csK(+y@p0Y z&g9{i-sR}n7$KkWX2o7S_jsXp{SAWt;47 zZxW*>3Z{+&ul69Ffoo<94es$V&jzE=?%k6=r=X*|nhaah(qak^dpdmttc7c<`sylb z)@Uk{2Hy^wTWj-_3ucU)n?%F8Vl(?x%aHLw3%_yJY!8o3V!9=&yOo1pAbl|?aewGPgbOV{rbB9pxPEX4PR~l7BzhP zGOcA;ZaA7zyQ?2@_R6jGvL6`4z}+pzE8V?&x7Kk-M|Vc$t=4Dh7Jw3BBO}{G-b+Y) zD=4+NGIR;}T+;*36kTjUfGwZu$hhxm;LN1mFaJ^e(Q`9&&VeV3JYkce;aSGVFq3&=feot{GP-9^jo942+RUC1gE-y^GKOj zlj9C&J`jgDO(tE3nwo)qv#|R<2??3p_p$6BH=A;LboW$VkO>T_(#_5n>yXok(I6uu z^K6X|54)cYBs1(!RyKx}9Ce3xjK^5itS-74y_2t=5DDVz^<{9CB2m=Aa+u3Gn#>1u-`_ zwrC`r4=H7j; z$?`%%e74Rd*#l(0hV!Q=)5SW{B)$gZ;1La>5)ftti7Z)2F>*BGzb|rG; z&gQ0%+xhjFVmM{Lbh5zP9H6kOI_}SBl}_KoJT_&y;jl0-6*O>eIQ|tew8KWa{WUmv zjQ}O_9pol6HMN_@1c;8M2%C+6TtIkudTJ`NqaHuVc0hH+BfR{)ZR^4D$iwmYv!S8E z=|1Pzm$-qJR6)tB+m`^#d%3eyb7h-AY%6LdqAji57eC!wrBeoC?bSd5u)!$v*vQD7 zE!1CjcXhp96I=xn&Hz7s!S^3OmPmN*3Jp)Gllun-l74IKQpwD!s;Y`gN`5)aWXa0l z$3b7eejH6B`y8e2t~vkp>!*s!>v)w@gF2fN-CGZosfXVhM1h4CzCLKU_(68a72_LT z!lkxG(BHHqnu{oUEZ}D6+2r*W6!N@Dw}xRcAqX80PaNchpkSyx6)tXM92M8e4rg|* z?{g5sqh>LQ;UuJ_czCDHU0qx+S-ylO3)1E7R$u^{l&4^=VVDNc7ZQ;8r~ccWMVXlv z=H?~4`xFUJdm5=X;+XX+l8g2+HjMaKg*FE9)|CQouayW-IGD|B;OmNd;T?v+f^Af! zudi>CGB$>j#geB~sK>kBm-rUm*JQPJu;k5Z*f&$96A$=ex_xC%ORbf<)txIP<;oin zVdLZMB_%8s`%`MxpBx=0PxpAXIa%&M@EC-LmG)xj==>1Fh6V-(f)fI)EvS&&9kG+1*gBc*Cf~BQ+9@cObjZGZ@rFt!i5RVe&U;D}2X__Ma4@M+cTHXz z(d_L<34H}JkV^k~PMr=pqHa!u$Jyg_F2L0W=%^svo;-fc<+3YlZOsgqfh&Scd~?%q zMmA?4beBgMioG@O>Hr$Y>8hX8!0St!NbrcTJ0M*2;Qo@Meu~xZ#;xD~*0Or~76Y+} z?O4covyl@57S-7F=E_{t8RKn9#LJ)c5$7Ln;HAdP%XJKQHS3%#2NJf%e%ubCsPch2 zU0!YvT&DN$KfFGsk$Ce4sK+8?H`UFw{NzFkW%=l)((Y1H1?N@g+nqA?158PYJnnU7 zlcYySM|0sASXj_aaX`04TzA=5Q6=6Sc}OE>Q$j))$lBHM_@ML9>il# z$g&6wgw5BoIt_gn7nM%M6%_Oo6Jx%Dd*UPji3SzT(-JAKs%rDX7CM~X2~NLk#dv`k z7VSefGFim=^bs&`xSm-7aX5+r2Nze5_Z0=r<)3SF5B+~6}M#dDUH0V!&IT}>u)q0Sit08?BXoMb-dh%ouJ6%Qb)U_5l| zG|AtXwuJ)gm8(;g{8_uihU>|8?Z=y!pw|aH4{(jx_z`kCJe^G&0w-vBWw?R&Z;#l7 zKh}Ur?^T0j@o!k?`mkZ+fBH!zq(zed|Aw9Z&$Mp;-+SD<1Ypw3q&tkF)gN=^SitGv z<5HS%!UE6(K@X+~fw%&`z8by(7P%$r+t;skM@P$~GDQpZt*x#9YN-X7it<{N0TMQq zbWD>&e0==Q&W`QBr8z>C;DJdzK z7QhNpQo%r&{>!4>y#GBtL@f*R|9m{4%&@V0{~`JZ!Br@3bb#jp_KpM~8@zw-^ZAyFoP0D*7-QYl z_40UYtvCAHw{JPT{QT}0M{58R{H3F>Q^C-j8`)*>F}^iB^P~KQ`m5^{4XgRf6R9{3 zc8j^GEU9>4kN(TIA8fRMVA0lT?}-FN-Ip(4)Z*fRdI21lb6b+P9tem11z$AuYWuwr z--~ha9;>lGnb&I({|>!Z(ZO~kzN5qvgPIBn->2_K^cBi)-lRC&(w%M`MA56VxJ|vT zxbBM`Rj;&wJ_5FNIdW0Q%^@uaBs>hbz!yWFafi8Hllx&=0nPFD6Y8QEFSY-e-xi`TEe7XX2i z{o|WkfLiRz>;Y%j(%K4)P{0;}Xqm2#J48dRCwu+rvHcLSyn>PGjEbfv121p9AEw*w zP19!tU$v zNxLNi%w>grX>Kkdln+eTjTU5OHF(UceY?f7!|B=L93f*f{_gMJx!9`=ETpd$jZG}1 zrh8`C&1&p-I%q(Cjf{$#nB;uM;&cF#@hREVVvb%XE}haRe{#PyFnV@*u+++KHmP8b zMiA_?9MkG3&veoJ>rDa?nKl{CJXR0GY2pLO228Y+Lney&!ZerDZsEoF8YYG z(tLo%e608hqTFoO0gM4mT4@xSPHhWv5fE${NJQK3PRV`v@YU!IfBn5<(dLO?Z@nul zXHS7cESFNp)KnZzhWZ*HV$&z4Vp5)Sw zLFBmYk8m7a+JkjNXdsk>3Cy-Yh?(2Mtz^`!kxb_B&Y8)NEzOcj>=7%flIszHL`U5u zsGMvLr!!_KzhYvtf@k%E-$p}~0SYYfP@|_}tI}<=+{k2^YH8pWE+=567~(l0r=6Nz z^K*4SQd7(Ad)f1pZK29-!-pns-y%bmrKJaEW@?ttoxc>gp6&mwV4g3*5Z~f^&Ar>S zV4TAETrNtYNkvF=TU$)d1W+l3h4akh z-G@>>V-m7uZ;yj1gx@>>d#iuw$6BG*7B|E-XdJ5O^o@)lFE;jpZ>}#C^u-e(CQNDj z61c;+6)xpZ$TYxo8}OD@_1fCl01Fq0&T5P;xMryfuH$wm2~u2KT%k%s-Esyw0+ zc2OL|DW%dj{o$ry3=qcenvj^dvb=nJOc+AQora;z3qavIFpoF7R@M+%0HVbe`0akH zEPFEyYGq$HCP<$W5>{BRbTpkIv(1AkEg*e_zyZ7cagtH}j{05(U7dIx@&As?}15%Hfud!ms-Kh4+%+fRaFftYQ0epdFgbikuBlK zOK^))acrs1*<2p6HVF$r067k_Qze)_Kfeo3J!2xTt(K{tUhiwOYX7~tYV0$FHppke zK|%U|>cpR76X)kwQ&ABT9E^#|HpjUS4lTd?Wkwuw(PEV}IA_%u08F&c*MeIB9bV}? znB&2xcl&L6GB9Y*`8e5H7>Be2Y(}1l6Z~2ClNokr)C+>q+x?s-nPh?f7;b(_%BUKY zJ9mr*W8s@i-YzE!+_>B05S`o#AlphrGya?p2?;qow2o%dT(8RotEywUw7c9lMiIdi zoc#K;g(N>Um+?wguy~JnB9FtWLUDO{0d146;$`!bz-=CTnEcOAU_PcGzrfzkj>~su zW+w8UN(8`nwpi zPJm3Oo2zvN$@}c4{tEbZi3QA`4cdC*Yy!Bd#J+ohfv;4c){p%~b{QhGw%A0?#Iz6G ztb8alv$M8m6~@EwR8<3VTDDlB)vjdxE`5;Z@$pEhA{9_w2a_9r6{e)g8+b*Ahuf~K z-|}aOJc%hvCUXo30j}-Nxtg^mIK+$ZTLkt~#oQ4r*tfK_v?^Cc#T`Y6^LVbJXedeE z)Vs#kg4wxx5}xZToEH?(-!4Qg@qS`r%fHpwlX~tm>VbPkR+i;27mW}!VL>!nSH{7F z9sGx4pFZ3lU(H#$7zwXcmX#d>-IK2YZf8_XOj~$q8^V(aZlDK0UZoL}7F&lEs4@oQ&8%D@z1uR+z_x z**Up6IXPf@R9Q{RtFb2-jHz0Y@q1`&NhlX;#IjkxbYC_H=%v3yDtYoJz^mdPK72B5 z_~bA!a6_zW?fZ`lX#2Azf3OHz^NVJnLEfAn>M7zbGZ_!uflDPNB~_kO!);SOS6h4`xdL4BV2m(R;goxL; z%SrjPB~QiGt6YVJX>Tc-_x!G^6AV0HWom0MIt0%X13$m`8{kIjPL$kuP8NcRVODlo4S9|JJQ-pV;7;K#*qxo4GM}&LpO}ccDg|SUZ>1)M{<}i2MeM)8 zPub4yAshih)#j|HTWRD=SYTj@mlu*_K;!KsJM~Td!KyL6@2%Ad4KwqP9KDDL9OvKd zo2BJ;sdx_S=ud=&mm(38^YxBa*Hwq+MV8ee8U@wZXs&2~ zaP_ZHKcKpKPzc`MUZD%}^VbI!cvb#1X`PRk3%S50WHWyL;zc)PD#HXDrUgqLp)Rr zx^;5qiH}44Z$pLwn!XkvOcva*tkP6a&_B&rox=s$L?q~0v*uH5IKLJ06)mWiD;*(g zj9b8(?LqDi3p+peM9DuszQvfq!Hta3ZXOtrhCsYWB`}=Fy5#0?!yxhv+fVqOJkd$Y zDteW9vp+5Kpv%tAE@mHqu!;G3@6p*@MLJjnytx(aUy*zSisZF;L_8Na_sQODG-RYm zTM!i$)fEj5sNe-^(?KMxYRbyduHVfj3z-`SK$Qm%EjWaq-9|(j7#nlhZOX!w1>G-K z&yN=;+92{b`^aJj2AQA^f#D2wMMWv?#vf8U6VXiC=#S71JzfX8N+)sIBRWpLe!VY@ z>dUBE8yEA;R{4|5r9DFmG%G7BGZRF-wK$lI+lIjgvOdn&*sGT~F~c?IYxX``%!ln& z6c_)B*x1;Zot^!c-gp3LX`DJG;myyF%gaGr(K%JD(H2~J*j@H* zf#oBL!NS0hl97pyL{vtep|5m~l0naajk8ZCH7$+LVtY(n8}$5Bm7YxS$TU6ODir$5 zI?Kg|#K_ppoE$k537y5wW^ey*c#OH{PC5Smq9o?*WdB9*ui947@iaa|eT;$6065!g zT`A97N3)4S1CPY*(x=*jjVqlppQ3?dbD_c3Kc^KC<(2zWv9Yo3ZkeFq9Yz?NnSi#= zb|i0yvk**+yAPjql;S189M#*^pPeqbTC9;w6SyL(AFgf?2(F!DXYf4Q3XQ& zm|$v6&x7QF0i$-qpR5W-qaRWz@vQ;n023Wu$0HGpJm;%73V_~cSppCKy( zK7%B_Kb8}&<$VueH1J4_)Ks!BA3hC%0vi?<7OM@$nmjH7aYJNCu1@xhjP*0p^1*!4 z-pUGmth;-BynN&>z(4+&WE_^e=UVl-_BE-iGt-@gCl%ZRtWe-Wk>~=EI*o^A1pO^c>Fz5o=sSd zD7~$t{5zvi6NnN0g&8smQX{K}2cO+_??VEX2;O>^TY<-0xc{x`wd3`!=zZ{H6b`GI z3bV6Qz$wwu(gJ4=F|S8kPp)t;-ULVkfX3FUu}gBN?wFe^(VRUsH8tJZA{by~0xp?i zJy21IS@f%F;#^Ek1H;4hDlHxSAMJ+*1Y|{<&z7aj(a_NW9TT)kyv#YfODQ73$F&Yy zU_3oBJ{}wA_~vL013d2HAyU)6kdTo3vJd(k1wNye;h!zPVfA=Rqyq3B;tG?`5hkhS zu>c;qg3oYG_mU;yB?FlIv(}?3v$W_nRCIQBj*vk`MT?DLBjvDjlC)Fk^8X0*J}|a~ ziqwI!0*Pg8UZtqtyW+_z|YFY?!SR)bR8!$2Z}LuS=yr_ zWhS&^=<6LjQ0ss;|KUS%VMqwXIni-nK#*i*X~}eSMnqlR{|bH)|M6pLdiuWpe!yy`3*JNeZxY2WYX5)7V3u^s^w^5NUbLT%C^PuWsK zJWET)g@vNcxlm-Ja|;q~n=vqF^e2eVnJ(Cofwqbat<5emx&)&p9Hy%=wP%*v4Q|Yo z94^h*gMw~KJrOpGj!kgvBYegLdwbg@g7MzyBruNyxM?2y-I+{VV0)TaqIrjOP6C+4 zBp&6XQ7uV=kYYx0_Xf{?0JE?u$AK<@aGW|?UDXHsE+@xap$wEW)(`UXVTG0m z@lFwf*bRwL26fJ^t}eC_PJJY#?K;qYRFE?>Z)HyQ!toi8x98FR9Rf~79B*+0H8XQ_ zQ_}|^k%0&JKsBvQwgwr>(e9pato}c=y=7FDYxnjIvH?ND08tbWkSOr%i4K?8>AS3c2SvNn}0J8iogZX%R20*LxZ2+WgUDfd5MV(%*@+c z`ivN89L1UUF>33OnTY=g6zC7?F>-DzvtZ+sN{~f!T8`G}U&B=3xZBdu4~t@$2ImGn zE9?H2lSs8Wyti&pHUPb%#&GYrukVeEPjt+yG0-bY`uXSPYJj~|1qu)$bw}enaxi=>IN`RT8D3%t-{% zU)Kdgv-m$BKHTG{iOa^+>-|fURtYsVfK>VpA2Phv!^0nS`MCcy&)}PWx!3X)Jbajv zCL2xj-~r6E&evl>X%YTEEp^+o325mi;4}a8+;|F2Y#dyr{O3RL3(}!M`Jey%pM+i= z2C!%rqyz+5G}s_Q8bKnU=WYwLQogc{+}%`Q-8d}wd1q#WUyaXl>?KxBdwe13g`=35 z*nJ*XVFbee?~n8l9s0EyS7L*pdtjuemjv>`h=|?efP;_N2Ot%U;H75deau4>xt4}F z3(XEACLuu_G?nzhw0(gO;5}MZh646TpckdO;a$6C|J@)SiTv|ZC?(YZ8krR)y}V^y zFk@q53qJ~`m5wsiwQNSUx3|X%81e2H9o1x8D>Z&0UtBu_HB32esFUE5(2xqt-@CMD zJldsf0&2P2Z0hO?3d^h8%?Ci;O$RTT#hPw3uK)xOcO#nE-us$^+`}zt5JF(Bwk4GB*zL=Z0F5AwUwKW*@)#}9#fEJx1!1wrKFR^yccVPOuhUNzSH9Doh9fDK9>ynDO~va&*KY>Qf+7r7b)YHE>+mI+ov z)m5=&Wim1{`>>OPEDt8pDO=!p{|oCcX3g(j%lG-;BF`rataFo+W(pFM7uw@_^nM#d zixBFI0_yZ_{FQR3TX-26i?pf;STs}-tHjsuOijIxkGP|Ab_E9?A1d#pz@H!!7_d}O zQi9`W>V!no6O*34y1FDF*c83e(1VBJpr=YV3}#u!IccT43Sb`Q6#+F}I1cFGC-d6q7RsGaN39 zu`=7ivZ<*D4kfcq(l>9BOqN@bVE$F@vS%^&-S=z3pHZ%SE0CbIw&t2nE7Cln4k=EE z*#1+R)vR>P39hy>i}Ag|9&Z4VaF~sG4NMS_@pi^?h1dpBy0yfyjayAROvM>D1XZaa zc0erK&E>5nVAvTYda*H4{PDK1wq;z&moJ&V459C8c7HgmJ$CVVooW?txb8Oq#JTdA> zOCEyp+>@3^ASl>fi7c9WdV3jG{%I7s-zj;IDaQlsxXw6% z`4knejzZWF!T8Qi1LE`p=RKQdoonD5;x?YTt`&Q%NY9r4$Ze!;(8@LJtQwR*iwIiT zbg$HzLu`Wkt25glKBZ=UxzF>eHW*z)&}jbyJRJDH2mnz}qt`4ZeqhEHDL5PS z{}4H_bZ}gsP_NNb1B>vCh~$!Hc;?-fy@(<_;fV8#k*%STvSiPNrS5uA%CAmO$AyKp zgdv!L2Xd6!dfWSxTf}20Qa&5u3QyB&XJF-}bV+MUx%T{K;HS=+?y)o*tx0&`(LQq7 zo-!F5%F*|cF+a+Qw9RlGKjwJ4$H{4dB8tU@W2RAiO!T*y61(9U;F%2%4YjoVDcCb1 z6O$2#hh$@D1t|%qEO>sZNO7FaX@ndMTthJ?0y}}e|Y@#_DWl46QSn_w* zcG_hB_*_q`^MT&e@?>lHM3rN@#vu95B8&5Wo5}E`KNWR745~ZbrL)v1nes4@X)HSD zByOQ#p%jTHb95E~Yk(A6w_mwaYg$1;0UU3XPZOB5C_tNksRI&!%116K$%N~;l$^Q1 z)K+tVxkGaAZY00^_Tlg5*$oVgmWjYnrTn-v%kd(eA8+0l@A$(^Uj5wm+MRi0WQ$gX zjT5{EhDtIa%cQSei&ppz`B37)l%?3Z*O{H&T79J7)m2f@bx6$5)9q~HzJSA0?#4<< zNf0rKWNP+TPtOPQp(WRi$pguRr0zcbTg$jvf4PVJ73=EfFZsKnX&c$}yHQNCRqp4n zeJm`j%Bm_uBO|^lepxArr;i?`2uBZCK%3$Z z=du~P6K!KVsYb(6BSX9bw!3?7(V?LxRvxjhEcJT6(^98|%)Q6Jl2?W{rM&-^+~bDM z&I5Lq(AxwoB^ep?Wn;}K6S++nzd~?RF*7o%=WADc(9+p$^&A1@QJplLHQuUEOh--J z+r^7Ra|AeVFgZ%yf)e!PP38Y6>O;7a7mYSjPs9E!$phJ7R<}RcGaTl>iWavEHMH#ve!z) z(en%nr?>DUZB&hF8a7IgHDH~~k~;UZ#0 z9HBBeau?F|sP%vm2ws6SZ#a$zpQi_XOQKRIhMw%RNeLPegR~Liq8|GM(s>GOp#Y!9 zlRiP~y(;;7u@ZyW>P89(L{5%+k$n`W$*a2*JE{5LH_Ob*8kumb(*E%_iD!48!NnC^ zjxx}}dHN2Do!ki`QE;5UfAR+~6H6K|Bu_fXuyHdv`Z&04Wpu)ZhK9a>9|A!k3dNDL zFbf0g{qa4ktm)v*cIjaoLk6Z$-D z=?D<#hYEYM)2HMywY3`yEGxrU1vL)*u<*l45ls0ZRX%+7#Vo&ieeJ?owOHDs5$bfz z%r9x6Nn-Bi9NpX;{{)$lAr@sUprnL*jhi~Bp+`nSCM!Mb6&awsP^)KC?>#isS~^(G z#-+r?eNPatlX=5(a?Cfh-R^PrL7)Em_3Kj=zG+F}YyzJM?n04uC`kWRkS~5v5Y(!? zyp_9H;mq2NS|L;s5+pJl-$#Gy#Xrflvr(#+9$4YJ5KLV<>d^=Fw_>F5?czphoiL%? z#@wtRJ|?D>;{YZgc;H_%~YZlcMUGimJ3yz)aom-+!$O8_>|;8u3(jcX!9|t%{kCEqZ}~RX|8c2hNjgsqD6K zcT<8qZ|X*IG3MA!XJqsxt4vn!=w~VSGp4|pJf1XFJ>H0I;aV`$<>}>T`7=*UIp4M% zDc(tV!Rd3Kt2ALR?&xPAdhLQrDeUztXbVtx#P{z?({)SL3n*CK=#qCg7 z7WA6L<&mi(J1~odqEa8sP&!hws_W}{Flb7AqQsO99({v@PX+Tp7@T?fLkXsGWSxKh zEKTHsV+PLbxamJ=XK!35dd&wA9f$RiG(a(prkw#qk5!v@ab|`eBub3|Kx<{GLidts zsOY7SbC?0E+z?&E_x?8~Bt(km;@v%mW+{VlzWLCfQOsx);aHw3WYm}0puubAh?WglAc zLk|LaUKg*d1krp z3pWxKBV053YK3WaW~rlDLs%Hh%K^*`^N9lsZmEE9hg4&e-WizWEi%Z;$S8kRnR3Nl zzTl6f0ZvF_qIK_iWvAK3j~|-rTq3RUH)AByXHY2JfuXjcp{HzYLG3SK<;!q?QQbnJ zJFCX6lRYz+t-enF+?-8onQd1s+Qg5NLJ^S?Z3I;YFNJtZPP59l8cO7kM9X z`VRpY$9YrSjAmKtu%y?70EHumRycWlk+89!%$A^Rt+k z7+C2nSk{24Nw2&zmdRwKh_kh|SJ{``iPXCmXVkvb4mjw>JW)1ifDV5f8`A_?E?^D~ z7T@@I{RI${yQFt`#wyiNb%}MLJ+&OJe7{3a<5TjbB)EGqo`{}-)o{|jp;>8L+p@GBAi_zn|@G0uU^ycGl!`(Cw%rA_6sB_%c|iR>3*7JFP%(V$lEX45x3S z>Mg&(_{ly>mW)UYWxVp~lUqW0W3_6Qx;M0|1r3aX?g(y=>}A6me0EGQH}?3bfd%L9 z?P2gZ4UMTb&id2*=bP+mSW{+l18Ve!nyQ`L(Y0Yz;oUNQGu{{!Efw4~T%11S>LZ*% z##g?(JnZ=EL#@|em>)k(z+u`y*UI?yP_CI{+G#~%^#0)N%=v~1Ev}~Jq{C8wHrMLcuK@ z#-b(u>z4OpZS6Rj&X$q=nWM|QG-7-Ik1=^qk6;g#fn?SNF6i+rCJQ5L(s#$h!$UwA zgnz#>QA^A0rQh=PA`JQb(GLx6*!KH*>mPS< z?eBQhpIR#CsY)&$aa^!JKlFxPW0~b}h3TG6-0x{w4mj7@+Xq1F{qdyX;bw5rW1ADg zRo(OKCA0H^0}f1$f11j!#p-46m8c%Zb-O;r*c3pHH_`JAMrV(IK+kvr9Av%M zuc3dgUF-f4bWF9|`&rXgg6A~=X8H5yM)J`Sre@8;BEx&1&!01jinhOR-2%5=eeaul zmk%depZX;k3t&!YHSt9pj9%y&)DLM=p%(=}?XPih>l+&`U|3&}9V{^^?oMue_3{%a z$pC5d`TYnf@0$p3Z{l1|Fcs+i{mZ8KG7avjHVX`Z1@{r!r0+9_te)}O$ozxoviF#O ze+L>Ghe|77!B_2H2i_e2;w7>aT0z(M@0UBl|Cv~beI3FAB#pN%mwidkx5V`t+LrhJ z>V@-G3+0+U+Ts758|X-XJ=)6q@_5B0Twl>DCw!MwYIXK0MpTfPU8YXb!FKez!CJSfr6nZc8m*d!u7`J}LtrSg@t-M)K9{)W0csue)gpOaI zllzlx);Nw>RG$JuM(Pg>mBsPi&y3w43@jWf_T96K`ZiqlZ7pod+9*YoRL|5?`~LpU zA#E}z_QA+@{7{-(#oGtpUy|ARr`0(t)KQ!lv5zm54d=;|xHYhoobe|==Crdi&ZW+N zK)HG&vS!mk?wKAZ;{5td3wB}|{@f={rP2f0q+mjxMVG~R@3*F(eJj5hr`PBIm&}kc zz-Ejg=@}%e`ZZ`R?U9*>5Vgz2@ALG@Iij%Db^Rd;6^Ahz5C7QpbDa3qCQc5yu-9f$ zSrQ6&`i?fU3wN_VwXGbn)C(;{ZP-oD-mmz9__z@DIL4Ih9>c!SUZcZ>B#T-h;)QhP z=2w^9{ly!Cg^_xaaf+eZN_|Z)j|yDAoYO9jcgSnB%rJU)?sRrKItmweA!E8p&fb>#jGZ@5c>vDtfal&gxf^(oZ;t|Ni&> z{TY7x15HxQGe0zNwWR~U@-F?v=1I&r{pV{e)g(V=o#s9sF!UsSco99Iaqw_eL{(kt z)%i9y1(o1JV5y>!nIG=8ufMt{9UH&n-cW0kll*Wie-K6zxmUQ+0 zx`pQLc^!{QLX%7ueFfQXnW55^=Vw-nDyZ1;j#rxU(I6m^B7ba^>;D6+Jz*v!V z@1gc`lSZE8Z9F40sSv>)OOmbmV$izdCt-Q)K~PNJe`9KK$G3S7kNE4M_(eQlLB_&K zig{VI4HK>>cYji^?fh@=q4lx4o46H2>!QCh8)#AkkiQw!^=c-3koRQ{s=QX=ZsD$u zp+oo0`!O^byIkHA-23%L;t?DDc{wUa^cO?SdaKn;`JQ=StLjmul^&Zu%_6{^R{w_t zQ!}^7F;g?j0}Tn8s|_to%+n>I9Zq>)HFT|U(rF!?B$`IbxS|q_EQ!*-h4z~TAH^ytQ)|?X5DG4?7sCefe3e-{^xQ^enIAsZq|RV z@L^K??p0kIhhMRtZ{l|Su&X5s6`$an$oK~Py}3GQA;&?<_@~o^v-OoqU{ChcToHR$ z1mgGLmmV%TS?)?8IlHH9HL5xwz{F8};nf(t|gD%bN3y;LS?9R^fN27;Bs zuGcI?|3?UdhV~5q6sY#u-@a+Ro42T&BwH!Z)Y<2r7|C~7kVivSeyl^xmnxk!FiRTa2$(k#H-&F$7~2_Vyd8UzrWczc zi}`d^y01l;3%4V!yeG@ht9*in_;xt+hT$z{KxyjT7N_3uNvCBQ0yBW9ew7=*((%N4v+M4<+OYL-cUu|Jazr10jlL%vWT>l%z zVoR*NrM{_6wB&-mv5N8uAv}rPl96T6#8DSi{z@9j7Q5qFNEcZ(UKS~Ey-?#n=YkhZ zdoLpYZZ=$AgF`AoGA)6H6&gI=KYaq!?MhsusO((##y%zLsLXYgSw`_W=Dac9X|1zL z+GCy0e^{XZ@ra{&Z)eTaE@^hzV+ z;Hkp0^Y7^YZVsd`Jolbti244-Y)T9-bGa04@Uz{2$t$L-LAV7S&LDC^9C&%O5o>J! zi!nj-%x~)a_x3^S)BXSK!BK8S^A}`j9~1Og+vtwx#`A@F z6ZPbOmuJtGzH^nUBKngp)k973(NL}2&J`-T?b~?tFTo2<>H3?R_hNN?4JT$rd!r=u zOShYi!~DdbpmF>Rk7kIt!4gBtdSe$^OCO#Yf`xzI+|m*#VEgB8Kl{y8pw$#?b_YKe}n3tPWKK z=t{s`)%3BL+c*{{XBk}dgikdbKd&5819$)&{Rn4~aR7#y>sC3C@s?~TYHA|m;@mg8 z&Y@>PO|4%=UJWojXsxj7R78aBTSIXPjTA7Q`uj@)UlJTsa<}vm^74g7o$-LQElEkS zgOCuwgE6rffHQA)@nWMm1m^thQEGo${`h{r+C3x_&m(@Z^CcIOZvxue{yM}2taA{V zkh-esGvaNV9XmUF1A{mGI?ga{T|#lBMAq6KgynCH`pqK45e20dk|Di=T-^4@DbQg9 z_yy?DfI^+Ee4(YP3M*y|w=h{35k?;D+mGtxh%@&Gfago-h*%`y}8uVqW5>saLrlOU3lJ#D|?(( zt-YD)>B0As@$FktS=oL-^q}dxYj{5$Dd``GWmDyP^|h0WzzCc09`82-H=sZ;j8;1B z@LB}GqzteE!WI2T*NjHXS5lIae!S~e;FWpx1rtrj3+-CM&G+xo!Nru)8uxw!BVNcu zT~3Z3CZZLHa25^DG@}&gcY52zV-s$Oh>F4(F+dyoN42H)+2BKbGGEROu1zXtW~7Xw zoxR;)j+Th{Erk2=Lu%?w z>ktqQ$+taqJ6?r`16ZDX88fo8Hvs$rI_`r!449&f|1kI%94ro`uVGPr#=zc7^TryP zW!D9SdL@l9^6_are|`hxK&QXx{Ul^$^m>^rttM(5T#qAoZ?kBs!%>2SEhb8Xv(|QT z0E7>W_W@%M$`*_(r+f}eV^u2g0xpgLcLmP(W258Z;*e4-5w#J^z-9#uui;ME9soJD zs_fz)xj(kBk1T4v$-=71|Kg)u&Li7KbIzYdkF3^b{B*{>)o0YSUc3-e)TGoXF;-L5 zEP?qlB_(AG!5z=|rSp$f$*%(4j(WyNo1z1?GE=PL&qYMMR|fLKkjP_~VZW}&l%%9l zFl_;^=vM$g#D!TJ4f+qLVxc8qnNEJ@`xzhLkP24#L@j1AS{Qjl(gP$oNJTxh@2;yY zd0JXpQW8-_%cuw`LyusfNoJvigCp+n44Rw{@#Av&^3R^3MQax>eM44NG1-H458}qQ zrPz6CqrTBDLnN0I_(q%>4PU=rTA!BCPq>x~7+s4^S#QuvFeY9P$UDNus!9F^a|Z~D zGi_|XOlfKkNw;4aq2}W90ZEzd*3LCJ_bW3G_L@D?`@IB%G_WD|91$N#+KmfKE9ItZ zf7_Z1LObg!g8uCVERE2f1>EOJ z1KJdYP@4SL5~~aHj%=iOoWw*V}DCy$NoH4KRjx*|xgKaj_zend+T7Jnv&Gi+3xJZq#lZUf6n zjAfdD*;C@}dL?{%h_5PQ($Z(wZ|3A%$L^@s7l-2uxb2u!Sgi@v(cB3-wu-@-r>;J1(A`x)xHe*+ z0xD95YdZ_)8>jEE5@!`aoCOc4;pL4)!_1QV36K0X1x0>J%G}OKQ+<7aj2J8xLi)!s zfJXue549*E2#|XxzcomLss;!rOo6|L=PLs9)_ZD|LF@R=rS^x*hRohAX&H!`(k;q} zFn;d-E3!D9@ynWbSlE7AfCegtk(vLrJNX0dt^&zJVIDFoyULz9X+l{|p zogCLBhOolz)LH7dkr(IS28$pSJ$(k)ER8l~U=HC|0$3`Im#PmL89(IiZ+4#ntQ=gh z))3eSlgjAFPR_80gA{Omy!LFaIT1P znMx{(#zfhHfw$16gtDP%+NXR8iD>af#b$SIcRdITQ)Y`3(nqVw9{J}-7~n_XN9CxM zm065BBFMaGK(FLx`Cw*Ok*<%s|J z9eXtcfYPWneP-T2t@2CaS}jRV z;pS-O-sQh84;ENc{ILB6LrR)0#3L zKemBcrM+#vGMPJiUg*9hxRdaG>JqP>GM0|F=>>S}q&YCLoI3pVW`6Fj=VVw?l8u7G zm7VJD`D9T1@o{UmH#f7wAQTNPp(COFu|>>et;b+*o{pm3o9EBZNw9;%!q)l^H6HnUVWz`O4pK^a$Q4HT2j*yW|GzW_y9Es%dy>+BB2~ox3q8OV|O;+peO1-|v~0 zC&z7fJ`Np|X-6*zRb!;2r41B4Ku25t4)YFcYu~88lw4jVLp1l&e039R`YW~f2UHK& z`dm{DfUEq}LN75b4SuBYXL+JG1qsR8&T)T`fANji{Wy^L;=!T@weG~w5Nz20e7Qg5 z;W>g2q}Jttlb82OyP+E&EY+88(Q#)XXIDNJme?b7_jjJ9hI`IH%Z$5BbOHfqqpJ#F zPhjZK)o<}NENo#KwG8a3BSV%P2p-LvEU9fgeGTH$Egb8+cfYUwCs}r?353C@zQXA2 zl_yv=w{X!>o&Eipl8bSU8$73r&oWUK%ae5!Oqpie|DmdXvUJsj;Db z2Brm-Ty2maKeAl?D?gm=Nv)GpB!@{9GUE5?J1`oa9BkuBo=!vjM6cKtV{OquA4=V7Z4xFL2W`J$%>)>ONm_eb_Ct99GH%PEyJvA`U-K zC)0C-#0XLW!=0&f*Ae$~5xO-r%H9Mu9N7rb43h{tnq zbaXjfItN4_r=>c{ty|LhBV{H=2L0gGP=E1E06s-lW?>E7-N*H?tc zY6On#eF|~`hXQSZ(&N1ql{QQId!z!Un!wbAcS#}S6cM_Y*@J?BwE%LCu*QqkVFYeU zPj72nTU%!<;njDJsBI@un95T(IjoP(uaA#{`ruo52*_Ax_=PW3g~Y`Dy+$$sO~WJQ ze%CT*0>_#3ZJ01H(bGe6g#epSKA_JU8`Fqh%U68(Q3prF^@%Fm%`S8}6Y9PY6>I&Y z`Qu$6+33{s7r>R`bKTKCGg(>eK*8d2{7 zSHvhKCGqaOj)8>**rO4&S(%AS)~7(4SXj7CWY~RQK?)cX;{a0t(#vOGUrx)hxqUL9 zh@mAUat;Pg)@cB&r~=`UXb^eVC?5XV+r{-YFa!WVZ}`&BW;Zie2uv)5P@0Ww29%PW zI{e9w!J(n{D`nN5o(YA)CemU5d7RLGQlP@e-y6U|XrL@MD~mC@4f8LgfO^J*d>~0Q zWx`P30w$JgH4bOnp64H>23JT=-s902D+TMQ?Dx8KNw@zqdJ?qgp5|E^Y$j&^AZms!!l*9UUplJ?v=- zWePjPfuuT<=k$7ltk2r#^!^7?M$^G5#61of9w+|n#XaFMtG=%~( z97;+Y>xrNbf!2ljaOHELb_CZ@9!SDYZEmLg8#UZJT2A(f@E#2di*(3Tq#fiGKrFMP zZ=Q^syL*l8V&|m@XFnw);g3`1_ml{2y($3wEGboEIrCFXi8HhopZgZlm)uNw`DIN; zOl->in!5VP?rpHwMVP`ui&`GY-%T|QLpznizsDIR(fu=$;e_V7dpx3NTvQ2yLN^1RLo>lYd}f;)*TasWn_gY(nxf z)BZ}Ws(r-BV=!hs|E05UETT1#B+^>rhW%&~BhaDdnwuL&ybZ`ID?wWbO#6Errm+9O zuD93`s}GK;eX}dfxYl#?#L$_^_}k-Sa<^=(eq35K-5nwUzy}A6(lYa5KbT|8u8e21 zow!nnh}6|lQC!rHXB2F9fjc8IT0_D8W&e_nj7%V?XDg$4J5%Co-@Qt<80gc~l*&oe zrXKm)K=&IWWHPfuQ`LdV@l;D@KIQjA3=A+Y8$evf*cd-h;Nk>MBBD5N-@28m3!GB+ z`A)p!;~G?dc0Oo&V1fL6L;vtdh)oI97(}n_*T<9;6tbRU2vm^^#A<27F;KboZA=`G zy6V$%i{8L6!hn!4Lj3av8Z@B*PtPgX!A#sB>a%BSR`k*fOqT1|vHATbYexLbb8UWToRh+wYYTqYBAy|Yto zVrqJ}H#i9i)E?(!s6W9UAz%jtf~F*e=OirGM zWGl58)oqK|0$n(~j;lx4K?d)N>Y3kN_93JsD7TEd6I~Qa7B4senc<~2xwW;Ezh0cM zYSnasam`X|?dj7N0^V@}#*Z$k9I}sd_;qU@rnIM}{ zh`NybE>2OHX>tn$O<%uGffg1JcmjbEbUd)<$;)Soew?h(@8rDG6p&ZdQ(_#O*bV~T z#@Qx9t=3uuG2L@-yBkGd&VZWgsV|)KLDW^q0iM_m6lxey(tc(r|F;Wmz90o(UbzPj z6^JB3;!6yf=IfjQngr|_fa#n&J?aJ1@lzBi+~w@5JT7iz)xQ3<`gi%ZmiWI}LU+8q zFB}!6t!*K#2-3k!)Oh%WKwDLJw>CQ3tlUz-*p`Bn6d)uZnRw{%723~g8s#@{+z9aV z1DZniYH~27r4$4PvXWtho|)H?VXNysC48DtRz^TU@j~rM06e#^kG7TU#y8f-HC8<# z+8H%kK3V5&iyGl@Q>CRfB=SHQ94E;Ow<85w893kkxeBdF(y%b0gWmT0kP_F~+?={$ z-kY`n)giD;4AYg`{hsSS4N%t765!w%2ATKYCfGHQFr~FsLSAwS9z(+dvzOns$esK1 zgEeIL?u}l;;-~58=v)FQ5gRmPWh!f*vX;h>S{3RvIC#b=ui)i!9F9 zc7g?|U>6SU1V-snk%s2xZ}jzxjk~Ejl9>Pxh)9=#c411ski`(#F&kwJfLm6AsVuL1 zAV@+X_>x=u9tIX3xE>~czQ>@Gy3;w4n4gjHZgt2SP(Cp+KY)A%{%$SyRJXB-YCawo zmBS-9_rA}pQ9b7$@)BXPaC~$m`0i~`?hDatkpE{fUWva(UtIJUHqlquosgXu9IlcQ zy8uxzkac!G9NSHhq4vaf#IZN{i56Sp>~(y67TzML;Tp+(6f3i5BAX=+S`}rm>2`^e zlVc%Alh4tzP?oOC4z>Ki;4TEiNeyom47NwB4D;mgM!e5+uo@|`INGiSFVq`TQ-|H9 zM5yBYieK7Jd@sD)4~=EpXP%SiXD;4eUZ&;w`QNGYOewn(`##@DMs*1QePx_aXBl`l zc6P2WNm8)!?npIZl)Qm#-OJMf-lGd8$X~?4XQ|@ptFJ!;Qp@pi0CX%(W_jF>OO$h$ z-pP8EC4q0g_0ONzE$-2h?@kYKI5|sL`V&~Dp`wI7A=7w5H)nyz#e3N0?g}^~b8_x0 zr3LUv8$-DPG@SIHptACKK{wOhG<+i&V;~uu|; zbGKtt1f%u#oOsy}jdIIdbTS~Y5BU5!Av6pTFSr7R=l!Mb7n+)HrR8*1fthx+OdmDsaECm^P z+4;He4(ZBR0hvJJoF^i|&hzHev=5NAZF{gV_eM6JJ+gOYZO8BY9ag40&QIA8Xp5l` zVZOfN4QOV^yJ~iaMNT`;M@24Mui)`53Z@a^2TF{T)R&F1iW3OWy*M^Q_fD4rxJAYn zQjV~|`V3Mn4%i^y^rqbgwosZ@0`Sf7MX-$&0gND{lCPaq-?cvO5=btvzEOL@nA7D+ zN+v)4-8vu;k(;Bgu=&y_f|Bw%tgmdSWlnDE8PKPG3y`jge6k4K@FlL43z!?hlS2#12vJVZJx?9=J|l_LIOP%q%%;?CWrGq5eO0Cg}K8ADIEsrra$ znyb+ZpTyl)zy~pwmwPGpJgEGDNxd)Tce+Whp`vi~ji?wuzY$b#6N5GRQ{zn}LoaHa z-9WUTngJd708F8y!+UV^?d<2h88_}tVdhi;}RC@Y*liNqu>;J=WRA^sk_RpVJzD_t!0ZNBkJJ&PC}H2Xi$P-M^wG)0G9 z<6#p{BLb9{DV)jef-kd{keG17KpNT%=8eO~le}v>-$D#yPZ*HOiiy2RP+nrBWzpab zN-EC8xz#9-ODaLSe^l4+-YP9z8yJg}~$t@0ftaG(Rax_{7b`B+{Qm zNQhGe)f~!1A`{E|DqQJR0O`S&ev9|D#ib0xxj)u+HtvU;&&x>HI*jRRO#5vl^uZh` z;d6U`pKAhgP)f|^{uDyho}wj{TE!R_nQ2#RZek*$(#opIEg5WivL6e&(C?PxEjc-| z^S!0^4(^4PNJ5vltL|$IEL5&yUNY|k9BEfW6 z)$DiH(XkfQ>=(YnVOsLx!_9!Og&0;bU>7QQHXwDLCG9T%_SGk9fo`7x$<;1O8pOl{ zyt7(hUXhW-LfRyRZ??zsIl@s40!mZ2QzgSottR6*TkT#-gnQk(c{6JyL4F?I_rhFB zayxT?)7DJwZD!SH?{DBsMrMYF_J6)X{m$?wK8Sy5o{OF3w><9WCHO0Bfj8w3?+IItmzaNND$%LJ|Jqai$MpcGYoqPR`ug+6$HA z$asI{R{VSC0@8;wA9ZRob#|`m;+vSQoI4P(2^AH__lHFFR7_=J)%ICuvV!NldRnE`dK^BShQcxxaOmt(K zbc6U+9Gr4vT_7Uk^VTO)H@F;F_Impd*OZZ_#aG4e?V5+}TdWrjghU?nY=J59QMW5Pb+YEa{gVo`)H;|sO2>N9(F%@RD+3-ckl{3zm&1V$#Jm($QJ z+4w(aCyv~*6o@{tcn;}6!;fL)4Z2dLHOp&Vp+l4i_Mwge2F9~gR-a9ZFaa?z;8M6nVri#iS=pZac%X-S=9-sNuE4+Di zqaS((OWPme3lgsZNgT0_tqrjm@P73fh3u9d#BLVv!O7*dPhX(wOyik7lw_cn*_yWM$q@+5iHK?eQmv&e8*Q&^P?OwN(-J>cw^96%@CUok2 z7rfr9!z~A!%@q+pJ5Kwe`}T5HN3mBXcRZmC{+I+p?*c!zQj^|5Wvoh9VV9xp=s3%6 zB??}&*E*?YLU1hTx`C<1k{k<}cZ8V)nBky#j*8-q36}d{dvUHsia{pSbpfh^5{>4z zws+fe!9bAKx~^whmYro+JC+sN4*3~N-|mG@R@x(;J?lD*7p2JXa?scnk`5*iT1xO{ z$zP6m&rr3oitnuno{e6aT-xH@wG(H{P?_LY{ok#j2ePKGmxNIG23GCX3gw5)%)(W# zdC3zFW|ogXOkCTEhs7L7Qt4^#DQ|S7q;g;dAzJU{{3>$}Vg?f!X*5+M?WZLVq$mX{dqQVk{{C<#LbT--dYM~xa?h%BxrxDvg8naQyrp$*xcJ)$Ikz$G2m?uUA_zh08 zURcAG_Sbfp`f|(2O?KY&j_l`d+#3lcy?0kbt@OM72`yp~HdS_kGwQXgM|WzTfBe)# zAV|L?fZ@UF7Xqo;y5{CRnFtkLeV%s(tA%Vp;s%mfdc7X05|BBb+%U`)1?`LJSOI^71V4?^{&x zaL(SGXc>%TC1 zZ1+=ieD?xQnM*kkQ_Lo`@IuEyB9nU*_qN4mQ@}ld*z&>o(_vQju5yF!-rgRx%26ra zh?xcD0V#Acy`I5H#2r#nS~|K`nQYha8-Ml`=!uKQOA_U{ zo_RnY2L6Ult@{~p6Lvk`zI}vI3ZWd_COvcTSQc2sber`5_6-?Y)U2WA)JPmEoLLWb zU>$S(EGi-b4xH||s52h@4q2Q+KIRUBaGTrf93dwpKJ*siM~jur8u59l@}j9#S%G9# zyKAHI3{^>peJ`!l69asF>6S0f=e=TLM^{rT7X3s{%y?asKGIjdRqbcTfCTi(4MXYu zxZMiZ*_t?wR0JrnSar7J3CmkHdX8PS&t|+s5)-?Z`&S?uBgJz4;Dq9(`1R3g6pF{B z=b^f@-H5D@6!aZu^3p&T(;D_o)bZfL#WO7npAIJb82a_DIXTe$Tw63Z%!bXrC9bRcwtj;jaS3%CpCh@2zEOJ=B`d4L z>X0vuYV)!S)dZS9HEqn)L%p4-foF;W$mU_Vq(cwF2> z1bZ@+!GJ1vk*G4RYL^MDxuLAAjC|K)mkvlor|lFd!TR4SYm}D>I`48@fO>DF%hT@j z%)FAry$5cIu$0L9+|?*EcRCpeuW^P$+5UbxF77sjuyWcie8IeSyGS1bM_t9lmZ0ei z#2F<;B>XPjXu*U7OW+@_k6|vTWN4r(Ljpui>^9abpjulUDHcb<>chtuwKZvAaHv zHR+w;<)<<~h>O+XpY{?$(^^j!@?(Z=v(Q{^IJgTkVp_v@&N=btxoK$wHYRIdgfgfN z)m~g(O!ZsA8C@bKjB|-#YB;KB+YTnOUZ07n617ar;nKZolV0`p^s5ly&1u><1nM_HWCassRs>O-6l zG&c(M$VmI6I9l=X@E~B&ac#t{DX`tH&~YHg37OCx3N~Lt2Zw5VJHhxVScQ8U(^zN( zrK2JcTt*L>l$q!Ma$?@+dQ~BNllxi#w#5MxOTJwLy@%+hCFMRwdd+%>E$C|NE-dj^%!t;`u zSjvf5q@kol&ue-mG`so~)fNLG9_M?qXKX6jb}IAh>%vvU3-O{VjO*dUW;T~xv9ok^ zP0KMZfo^^|Hn+Rd(%Jlmug@>;WG=XLS`80+SW}+vtTD}#_Ahq#6b?XL%RmKyHLXg! zc{l}CY<$1SA1=@p&|(L?*~8cug+W5a#|Ik}JbbyJI_ z&7`fjYOyQ%edd48(wQ4F^#lJN*AkxWm*cl@FF;2Rnt;jX$o&o3IDTm3kzuM5`@nb} zI3E-)vQKl@U>61Sen72<+I5flmVS7!2C`ND7k6j<74_S_dn{BCQ88#Nqy(g;O^|L7 zknSA1%S2jQ8l*uOx?zy+ZiddGyW?y=@tkx1fV0+fzWnA|u3>n`ecyZU>v~-h@8AC{ zSO^Qtd)?-6a&$@WJuSb*G__+?gfGDp@yN=a0T7Al-$+_g@I%Pp2;8J6QD@TexmE#< zf#=Cj$P%;2c6P2?&bCYjbstIg)YgS?_I6p|xBLeHs;E4>rbZo zrY0_C=1;%ME$75fS$a?e8ygOT$g%qlxK?C)8#9|N{LSu}@f)N)U6f>8I8q74^cJALnIs;n(A2ZOTT1t4=tfD|Dhq@j{9lJ?B<^N zVBjOmIR>z2eyIKY%I);YrAziCBp{!SPhU5_x@|MxA@xer$Y$r>kcQ9qD*)SyW9pzG zO74JIqnu~#_`gJ~A}w}m1YWpZuWn-3f#XGAA3eq@ipmZc#M3-Ntw9{7wWdt-OTGo! zAW30jiit@!1;ly!;=Q&n2B5H|EXerbiR=mq^pydrH}Lj7uog)=2YbF;CBVp>yiAsZ z`KDE8P-YY9^DOr{N+msF)^Sz6JOjCjiueUEAu0r`_$D*&y6n%k8o_BkuP}|Za+2?7 zXRpbNQk9|p{gcQ+Y6Lj zi`fMQ`;3?08$Vjf+vbLS0+L!7KRlNhrarI=XE$jgP?usPdkmse^8&k;Pv9M!a3RWh36k{F_e6-wE=vv)VF-|DeM&-D*@nIn5~W;!;#hjpn?lELgDjx7SUa? zmN-mIOrCj$KM`FAjhH0Mhg|n3wj3NB%t{QL$@!eVczE25Qe8)vE-W9f`b>z6w?C1H z?#a;+(bJm?p;zwU_%u>;>||X6vLvqWz9n2%^Tzu6qOQ8SVz4g$;j6iMV>~7@^102@ zMJPof58EMCEzb51QZs$0MWB<5SbtZeyk+90}htA+e- zcjr$S5CiR|mA!lrTEW?VO90HeitDw;svG)~P(s;oho}-%eYu4z3hg5!twSaG;D5*K z&DOft<|B(vi8Psnh(FKk=K&7~%GHaPz7CLh`*=6;F^cPORRQgRkX4_W>{|BjTKC5K zmR0;d6PwA?Cr^ZhZbXql0d$ITSq22Z8W*9Qq$DAq)9u}3Q#ILM&zCcK_ego{sLP!l zxWP}awb-rmx@6~7a;oUQ23Ll0q?9?Mc64gb(Q-$lD74-NcO>VpMEeF(mosw|4iuS_ z4F7H{GAF>W#yc?yn+{}s?T#j{bbSfqMa=LUJsR;-KnDK+`T!JD70;KTSBEJ%$kB1_ zW-ow9Gw7ITH?6$zh}*p3d16rdMo%!Z3FIMGvRoF^SAcg*L=?8zkL0_XIa@-*{$b!vox8*Jn*x)Hi=J>oA+t=r@DbrCccR ziSs});`a^XrODouO~2iG3ql@uK2_yUy2YcQyS#w3{2-)E`+nXL612+uEy%92h@ zq(m1M<MBc3$FL1DRgWJkBG7eVP< z!U%zC;uy@c?`^ywi#R?S<#F0`qrq>0WpOlD4+%n*&U7n-p3#b>&Ryt_$&h9t#x#Uy zq9RE-1r6?~6q)%>o&{Z{rltaG0x_5qH|xm2rJh(_!=&}3BV?=UYpxudu@$tL!Y^Ku z@btv7QUalFTT6@RtdZpC&D&cpjR87aE)a7GI;!drNK|w_<#QXQF&Vkb5Sfldyl{^e z-7i0e3Hj!cX1tfz-@|p9!*v8C%`q@ARypR)28)ItR`9sh(sm=wOxFZ;r)Om0Mw6g)&$@?F=mc zR%c)WRP@}fVi+#ENjJcGzRYp1z306g9k$9XkazC>c<`w2_u!B4aAUCTHw6(b-Ix8? z1hcbOF;Aj?b(HGTKApaVYv&rB^bO(u@Euon-0c7w{)ar4NlUh|;OU;P2`2MAFX#|q zT=@MvwM){C6B$?lU3OPgR+6NtZ`xQ{C3N2sx1^VgYaPk604+(ZrF97!R0e_2=77mg zb9Xlj3(HhfaJn(Byy!kJalKy*A-4^w%8R6z^RZ?SO%$XD>qDgYF!dGXY)wizZp+zg zQ8e@)ihf)V$Ef>fVp*=dRe@Fx^jzi%Lv4ui*rMTCB$IPBxQ;vj)SSD}TjJkdz(P+d zY;%d)F~7LN<&vCmU(_Qb*n>yTODOL_b;Jxwj;8*69pt=A*m$(uhl$QOWLh079(@Ba zFzBj_*{QM$`(l%`gum}>E4Q3hB!^~X(J8#<7!q__S$SAe>CHLQH*W@}>SJ74(SWY7 z35sA}j#Y1fQR8TN&M>K=ON(UhQ%)|vBwTiwC2j8Ra@(1$7A`H?+tkR3twXTUBY_|v z&+EisX%Qy5SP)rZ1Qqr#XF8eDotgD1cS7}_AQzDA*z8wxg>#lx^|x&p84`1tE`7t( zDNHeoo>k2^ykoKs!0J~w`D^dyt^YRsERQExPj%a8dEh180F|=x=%OXO_HpzN#IiLB zC}2betUWpv_E^Rtm|jAt(@|;rxpN<_CO)!HvCdijE(Q3zPBR~ZzdedOJ%w6A8G)0f zTD}4O%G-{oB67K6jz8=-XBiZ8dj90KFik89&G;KqWT4mB^pQrVF z)*EHzhyWRinEsj1De^2;Fxl)#d>(E;RA9+Jw->m6hDyLf(O+=Z;y*0c{w$oE3R=lek>k;zz>-BwH(aFxTKVI( z-JvuEo#mnY8C#2qxn5VqX=-r6ERb6m=;TvF1eDzRt*G?iHRbF*>vwkz;S{Ru)cO(xFH&KL)$z$dy^FTJE60Q4N*8W^BL zHw@j@W;)*y$5YL2(4{?9hX+lF3HvWUbTQB_h4o=F({*o6qh!Z*W4aL#VaoZ2Y&uOr zY({-{_T>Sgq5Pm8Dzo3@L|w4Nbk)L+s#fkG2AoomWZo7(n}(28=jw^GDz$yNcE?fT5vvzQp3_GR z^p!F0s}ejlKLP?|B_%5Zi>+g#RQ!5+dOX|l&zr$QMg|HISbBjU81xWiO=_To2gzUZ zJN-Iuj1$}N7dW1@cXpbujlX2=fg$}s{V!ac4Jgb+IJ;mH4!oHXy>{~12&oF_S&Vtz zW849)gl{yktzktur&#yep-X5c{K}X7u2k~-lYOvE-9Bd7Oi~)>{&~1lX>TwQh z973^KG;7viIMKNdt5OZ@tH;M zbhv?k|NPN8234N+BN`ZNWBfjjfxxYt5G#eacHPP82+DlZ!JHXTBK%atIroq79Sds> zz9sy+H?LkDL5p^*{IJ&c)1&`@sIgSn*RKY%qqarH6|S74^^b^nL`z!-4swwx{x4uMKW_cMopT5i`Y4zAa;wF@1e5>3u;UO2;7zJcWjW*A_+w*Hxy z_tYfQNIEc0NLVxdI%-rQBk%d`k80PAo*vnNIiapj09=?XYZrhzU03slg&zy@NrcO` zx1q+;0awIzqu!knw&EBxB|TTUaxPa;AYiTA(Ch5mH|QQ?GpjtfRH4j zb5h3z>zpE|Jyf-0R5moDvRGx^)t9P_z|f>8Y*zlG@y0s|~Ncj2-l> zT?xLRY`rI!)m626>Fk13=p>p9)x1(s0VT6bDctLU0qU53WW|n53g^Z5YmSF;|GAkx zm-H{-{;P~$VEunXPWguQ-|;KNetcwPVrE?!Er-x08)M_&etx0Rs_~!Qcck`n66t_4 z2#m3RQcB=4uRdDCO8+X?3{w-37s3h%3?WKRPLF*|LSh1ySTqbHo+Qa1>{0{;MdsNx zo`)Q3a5cTEs)GCT_s`K&exAyWHLLc6ErX#RB9RlN%A<#~cU!{{_o=8>$IV#4$yqX1 zwjKxZ1poZFgv1TvKndcvuWhPZ);bT)6^j z<|4~o`41n^@bw|+Qr~1mNk)c_g=KSn>T;$j!%_-}A04-swA9sqMEg%{cWru1Ju3L1 zteh+|mkAIspl)&U*-JMCZ7mK%+LG&OMKw@daqqTGL{reyFO!crcHMV!g6z~`It9ji zcki01$|)#N@ES&b|K2d&*qvhA8XgScYCXLfD5G7Q=v^Is^`1B_Dl(IipFj2Mll_j5 zoc=edhWsp2Uk^lbqNMiFG*e3*hNI~Bj3f*K&RcOeLWSK8#MjiT+ zb04ilsmZOrQ&n|o3NnBs2VU!iFBKJkfTo5|Hbk+<=k_o6zzwluL~IViqCejxp*A)c zX%bKo<9*2d0bHoDS*(jP^1AY~Q&d+Yo4~iotL7l-9@rhID;5FJD5=jP>T` zdX|@$d#lnC!H@TETq#f)C;KnHH(xh578DS00Ac!GeD-*R1bO6ybm&6huia;9bA2 zSrJ_jQV{pC^TgSmlk#j!{`+U#5yC9)ewDw23p{J^qHCzD>l+Pc8uf#S&eX$;uDN(` ze~;7J)6;8j|I)yUAB9XP^1YHd4@}}jTN@f1LHyA_JiG|0W`GZdHa+BahAG+acTH`D z1^(wvazY%5l5L(ik55!ze)zB|BV0Kbh?BID3N-4%LPEcM_x9}IYYNBOVM~aLLR`lj z%~J-NS@A#5;m-plaTK@flgE!C7yZ4|OaIhhkn5909sK9RkFcx((lQX23+hhmcVIWA zqXU#f&I~rTKuAa{_(n^tFaS0@`c;;i>h|Ika=Nmis=N;?F|?$V6^A8@b2lwvR+J{R zO|zV)hB_xh{!9u-S6}@x7;JcJ_rBNx!{3?>Z-Jee^_Ty%{8zc))Mv43cm`qY;6o!J zQQqMc{C5G^v*ACwS@nO1U5MD&*vPTz%xK?ZRI015S5Q(~SYF;fs%0sNWTt5&gXIiSEhi@lyoYv4Hffb2&l$iv!uS>@8-`qOGpSszg39 z(l#m1e<~beIPiOLfy7uNA~)_8bG|Xp^}jDe>^GNIBqUwkl{G%-&n3H`s3jc~u}$-E z{5a13?O<4oUxFt0v-N$sSp@=xeu5jJZ8+QNl_28R z7XwFD?OL+ehuI&{cT5Q;D;&LgSaM;G#Ttv!mKiTxcAJ*o{UTK+R(f90KkxXS|H1*; z`$dl5U{B=o)Ly_>y=`Hr^J+gs;B8D-?xPDSuMu0}T~$XNxQnUEuVhf`0hTM>^r^!K zKMKeC)_v+S=$hK>N;RHKAYTRAC^_qTrs`9c47sbIWtBc8aGQOM4T>ysxPUp(9b|fN zv)@+xV!2^ud!BlPyP4B0Xt3r;Ry6NiEFkLaV5aUQ%< zp^YT={nT~;>xTg!$n>W({7_!SwxapRk}fafuDBm(@A?|-MkMNRg!#p&A$o97^jb1w z&)1)l5}U-E8>unOSMC@Nibi3m0GzBQv$T!`_5NM8f=c@Neaj8e!BlW@FyR+v#@9%B$&nw~CeV zw@deFGaTyC{1cq*?2I(hwjEWIXbHab%eS?Y_(+nfqg1nRN7y*I+I6NUj!?686Fpnq z6kT8s>FL;2>hbTQ!||a0;!vnp7twp+F&o~s8k>#1yIx=u-}D zMxi@x87KU?e;A+AW@hd>SfARKCNFMHmzc*Vhp#D~hDO6(ZwOp5{7V zE5>zUwrkutZe{#yr|oqVpw#j32kSgVITur-l2NDrx@y|qhRhU zr;UL4*W$=nE_fAWPxyCMF7SA!nM~~^?5e&y|KMu*rSo4@gH_+AxusAGOWk;?{`yk0 zQT=&p>R;5pfdveA# z3kT|_PBv{y6ZCqt%$pGmFOD6AM%@4!NTPVeV6k?cs#G#drfQI@&r=f|x^~g>ir~oK zRhVDNfiZyw5Rr!Dp<+96n908B+e$8J8gSx~po(Lm-*w_3=YMbO(uX0uwWY(ne1+Gq zwF0NTsDxLYmi&FT>zvhBCNVu}3P;%)`<#P+Lkw$y7o_vf>$$>@(5WF8b&uvjoQ=(E zo^8grl6EprKcvRCxEBj$D-<%~@0$vEh~1tJCGsH(Vv}LAOi2>|$!$M$n=3|}S#gTVddb9KXfrK)w6Ct~{KjjEVM+jM{c9&|X!=B|^wuyN# zW+QCyhI`15>oAN@lD@{6?>NTRxvf*;+-_?3$E;J>jm9QyZnJ*}bq@k22)8V8@wA6-BR+Un! zRK6&05i$FL_kmgHU%uB$esk=*k_EUTW3A1?Nba4HZ-KMaU+1*Hl16p17|vM~w!I!| z<^35EZe~5qJUrBTnjgKj#`4EYb(`oUN99-^``form;D#VX%$@-fm-qSN23c<%Lbw6 z{ZMR0d%t=*VhhxkIhgam^Oij@?$t}|_dyp8G_?GxT^ehR#6hJ#)9y5C!V4@)+YH#W zC!z`McMT-W6P$gsdYtj+i$nd9&C57T~L zKymN$b{sADJ}D4aV0Ti>*c@kG6e=gw*EeKvbcvsH{%gltp~4>Jv%VeMWGIO;??@$R z;%!CDdZrJD%6HjrTAyGhKk6x;o+i55dVPEu!C5Nd%J+bNDewQdJeLTmgY9(#{*3T1 zr#iG#ZFI@}lbfycu=2bahhmX^{=Tt-s;<)bWk1kq!B5avktF9jjEVi*LU2pEss8teyy*UybN1i)aVxD@ z%}q@UBer}g;Gq2L5@5N}w!JTY1Yi<}?WOJ_bFF*#Lg(jyf`tak6@aQ!2ZL98N~xz8 z5Z3?v;c}553nj=B0|tkN%C{!BKr;{O$eNlrr6nccVx)ZZ=-7*queqT`*6lR*<#FB1 zWbwaYZR4Xl+N?DVc`j(_jn|%4%7Zp)$TsVJt^i6 z0wrJcAs#0kGvhqlLZdiTX73e-C<70dz3NA0(Pgj9a5^$DAzMom(IaJww6n)()>L(MCatdx)vOqtKE4gmsJ+) zDaTybXY|1AMNlWv6-vb9lu%xN+?B|0I#MFlMd#}3YF+X1<3}VS7ck0q#!BMjr@)nR z{(?jquhDFDd1*Z_o9f2zADe%y4g2MBSq-{aSyy=hm(ud^JO%a~ z5_R%hxiDHbF*5=R+vCaA^Agx~R5cX5HbsMD`=JR6*w{@T1m|iwdMcdj;U=yQ=F-vA zZx3Vx-tN!INk&@~@8XK;2patght+UEA3DfTLIxQS5Ofo>@tigJ|GIuyFGy&QpR8bG z-_g;&bjkCJB-B$GN6N@ktti*#K41hxt9fl>gPn!N6;n%8iz_k?E|I4M$>NtVdgPoI zb~S4-PV5cUPSe3XCHP2XRl@U@sr%kq8m2evWxT!Rz4^I|m!huW;sb0XRiRK-+9KeK zJd}8ln;Da=C#I}i8X0LU)O!2x@1p-Y@$&oBR2r_Rwvp=NrDB%aIY&EL2^iSpL<7l?fIwtsJr0k?+mry%;<-qxG+c@mlkm?EiEbAH+B)u(C&UB=7c&leTmrskLi(l zr7<)%fjI+hyC8o?dvD z_`A{QU(ScVdTk&4@_b2omnJ6{rlw>HP0KG_-ffKh`IA~PTYQ=1;9CtmBZuq;Ln#_l zklk{NDeSwa=f+N^oCE#Uw6bz1!~RqPSu4JN00e=7R2pvf4|UUjRF#Aofk_H{DgHoUQiQP~A>_ay z5i+>AnrYv+-_VYgwo-{JEp;y~JuDt)`3I29IwgMbJrIG^oc0w3bZ5ui-F+zd4LV}~ zn46o&xa>#)M5v+#5|a!;FL$(eN+pS6P%Cgf9px)Oblv--2M($H>}-0ZOO*IMLc;s$ z6nqw0TU`L0YDew$bagGvgsQ>wSsu;nFf)7Gg+ddUH!dzNvOW3W=(GO`KRQ|k=*jG?WSk=@*OK55T3I$1rC7-9ZgCbzP-KFjdPv0hvm;SL(E>FUY> zrxw@>(akrpdQDuTLVjEgx3~sD0!Zb5JRMR905j+S>B@bsG^OVV-I4Y{x`Z=l97~ zvt_yy?lZ>GctI(Fp87dC0C^c$NN*hNtF_q8B&PRg`r2=0lPETij-D85YdhRL7Ufnh z^@(6_vzw{Cgj+$>;Tl_5=w}fD*Lt3Rcz3ybtglZXiqB^0UGO{Po8ba7r>2s(BPgXT z^^?R75q<_mQ3pAD5cURfQ}XbLcF~3D4`gM3kzZ)}zrG7gj;)!j8*TI8AR8!8ibtjc zH&bP(0F7tqWwn9^Zxnqk?sG0KvB*7iioYKSG9iYV2FR3f!ywfmO|jdk(#^ds2H)fG z5SO)G?Mkr&n>4MEkeET&00%Gq^2UsrGw)||Vsw(&Fn|YnnKkodt!I}o;QtF_><)Y) zPIR>PBRpDlBD7k^)!WC%9nVpF`cXX0kme?p=&7l*ULJpwNfI5-wmb}Kl!552f&Avr zIT#fC(fTBAw>6iF4{>ijACu{Bw93M_1n-QfkwlSupsuIiEVXgI&nThbBvB*6*k+a? zFUHQaHxXxQYWni!OX%z81PhWA>1Z4C=xpRwAu&7@UCFj6a|zz=ctHdw4EQcDT7A_a zcQgh7o6LUU>qFlO4UK9+Zztmx0+Zpq=9Z@K-rhk?s3Xk^p0DN-KC9iyNCtkjodjqF zZG@@y1&mzB#SL~2i8b4rXIdV%ZE0ux@g{z1-f^O|Xo zpp>k=1yGU^Q1R@}$NO>Y8eyiVdorEt38;LVOMfMWDm34vrxLYefBg74>`3eNb$si4 zfuN^kVQ0s|D}PMq>ohGj_@hiiy964Ch_*Puqw%PooPLY5jUEl_OEPg#ie{1#@< z7-Q1YyT|E`N6bphGV5`DnY+P@dbOo}&Iu&f*X>zEK7vGZcai%Aubi;lXp#s@10pm; z%KA1yuWT9^5z1{aISsqr_n-HHxc_%AV1`~pS2sE)23b+9SAJ|NEv+dlJAo*99L+Lj zryTt|-H46T)X$fEYGwxB%l+TKmnJV4v_$#a+P%`OTGR03*%=@pVLwtlD11*pH9yVj z&_igiC7UiU7K#kK_b$n3zlV#+N;x5JC@zRrM(EJY3Zr~30Z zQvBztP8I(C>v^e+U);ZzM zD7IJtF$+q2%l-UEYvnae6=LBb17S%OF0d#ZwUr|5?Rp5GoBiPGZf;I45%ek4D_@_B zS)@clihXkx0=2&vh;Jy1T<-~NPtlp~J_NJlnA2iDxI9y3)Vw`Q*f(4I!645uANRoU z9I$h2ZTw zhS(qpX(}*j*^W6n!qMi@H$OOYY-5rset#$~Q$X^ywY5p#XJeb01JSts$zaBC!8J0j zSI#$MqFC*BqsibZ&Ah2xw=o$`m4hWE==0|($5m9W^Wojb8z7gbeZKLKi*_MUg5P01 zF?Az|l8(l?Mp)s!({_EGx0sMn^!_Z}qKn$2dU^iSKbK2XaPXpbs)ArX{qE;OwzAEY z-#VzHo^nSC`$uwS)WQ^cVT!Yh3>d$fryJxU7vu`XN4n(f?PO7Qm``O%^%u@ZN3p)0 zjpTJKP#Iq29z-K+{U5oXSa<7GXf!!yv`2E5JG6SbxoK^Lyw7(ib~(w`5{%&3RY;y` zy^kOf`aV4qcz>g{aFqI}Hf#;;LwcD>zhhi1fGvE8@?$ZO83ADW$D`Ipb z?jt^jo!IZ@t!t8$^kwh`9PB&JvXW&|f z!66v7ONfCOEfE`D<}OgFAa$YH`emFKrq<|K4u_mwa90B26NNm@c)PhM0^4i<@rkm4 zz&Giif_YgIuSo(1aJW&6@$?Gh+~y(L{c7a;Vg(b27B%US9sW!lH2x z`reO60;yY3I_b9}#NT}f3F9|Ei40goe*T=F^a2ghFdXVUV^)(|Ng(hZ5>g@q1A($5 zZ;#`Coxfz*KL=u*T!I7Pap?Pfw`605B(f)jTIN$bK4k)elF8nHEkT}ae$m0 zNbkTI4AZLjtF05@(Cz>`3%Rm5Y_(j%mNN$eE-r_q zciHj&unA0*mGLC5jT&amNY>Za3%#MfjFMYqzeC~KRbSlFU#=*Fxp5@ga!xmpezx>LGN1_SJkd!$SLk2 z3=E`R%Bi`swDo$Z)e=uFyo-;MlB01gd^RbNrIzk3yPisU&y zIL?5~RbmbX`;C4$hr^HvDBm@(d>?HrO0(%m(u2Kyp96#Gx4qBE$U)C57uD9-%JOvR zTqAdal91@rr#QQP9UUEgeeCqS83P22XpXBdp~xQ%JFal4$nfzYEy3|EL%A-(A-FeX z!T`#`)cMJZNx|POINRMhvR$OkNnwz7h`_gowMZ$OIccHSIn&H`g&~k=xqX_}`{^w)RH6lcPkw48uJ3>`qyq zP5|-aQ`)i)Mj9cP;Kxz{)eI;a+A@2N)(tqNr@__ zL8?bCe5nShzP|nKuc1Hz6*v9CQ2qjkMLWf1Q1~QNweN%T!oby4F~UK~$ME!ocY{T} z^0fr-{+1E4UD8zGk}X-l9s-DZKpjxrIxf70a9-bs_wB8y`O}?;X^m2_zIA--n@Auqc%p)dw5jN(y#Co`6~D#g9VmKq>7d%Zu=|R&Aa2$ zpS3l_#i1|q72_8lC<9fn==_HDLNP*E>aL7a@LzAR3j6Z7I%A{cM0X*LR`-Ez5+rVh z2v6Uq;B+XmPG<)a#qlO`Oav+I&^=S8LF7RsWesf+tOBk&6RE;3Y)1q{$d=K2G*w=Nm>XVL{XyaAN(qlXMsl$4jEc^**q zMsTnpMw#j8Ho-nkPENkC90)XEuU9^0J5&aKycK1&yb;T_IaynE@0WoL zeHjtV*nyGU5`7$m+`ODrI zB#7&$XJ#@Kb7?6l2dhV3t9kVBXg6ftd?Zl5wUIX&47$hpulH0{VO3tJHW@Ai-JF<< zX?SR8XaXlL>iBGeZnwYItU+C6!gx+vLM$T3+5etxd&!6`_Ewl2l zsD2#rlOF-+^SU}QlD0^iqXV8s&1k#H#;>>)p^rYm3x{Du8S3j(a~G&j^xsinb2&;- z;>#y@H8$4O)eRF8Hun(nh+s$9X$)CG*8@Tk>uT@l`g5s_!r{l;Srgqo6@3*4M;i58 z@~O&>3{us3%yIXE5cR`HkNEeuK6eSKs%^s2%PE32>SV)+y?`A=^ajHP&X|nQ%&fg& zTM?IoiBzhXu)|&sXvFZ{G($snrxhMQ<8d}3#)ZO_RdC0?zRd*O-f}pf6L>*LxVQFM z0=SK!-Jh9~DgAWz)KnO5HyOyNE%m0`Iys@^sxL1ui?}?>c>FV9ly7tEVwh^NVX*_d z%=`B#5X|+WGMgFSnka%{5f2(qBO9tlLWol9#RtL0=&k;+?&R%FoyCAVkguGsW=Mm& zsn&X2rst;$s>S?*f`EII!>f0X7Ta#y%Ajf~gHEF4PWHJ|W^3VD!ZLky0TIK6BdNod zGWLAF=W1dT@m7aAiSlra%fZV|w@}r{Y`xVscxPyW#~1g<#ADW985*Yj5<-@9ZTj)| zgKmgpOaywj)RNcaGmqr<@o5jAlMoWVBiwEMWS_XIhfEDE+OQFjLFK|Pt33WJa^+*G zsIqM1>SB*k>4ieP&P{}GFFP2rqSu1^1VRUq~LN2}F&mXiCRp`<6mqn_2Q%Aj^2$)U8)oyQxsb;t}zn!6#3SFNyrA7oBmjQlcZmteeY^42R^6FF%6o&6JQ4O#TBKIOlB z!l3&bE9D2Yr@g#@eVAWd{56{i1@S0oU3+_bNUp#T832$Mn%zyyuOD5&W^7__UdD>ek&}L; z`s9)0Wx-1+Ine9}kV8<@#QZq*g#v&7P-wVcA{g8SH+m`2;$Mr&%G)6t3S zBlK&|VHL5MIzCb*U-@_`NbH*l?8(52hfc3q^1Egu4O0yxqvWH@tdsD)?F$ocBC+5! zfqmh^1rCl~z%xS!9jyp|MK7=6JLTW#Tg2w@MMF*pzAJcR;ZlFj4K$MNkvscOcwIQ~ zs#6z!5g^5KE1gHNPTql`P?NfjPEAy++&C_jYq8Dquu&xBw% zOc*~4B53Np?H|H3+$7iBE!|B@Mz*nuNIPF!U0q$9D7~VN|JU=0wVb|%)%@qrpT6SG&O!XQK-8lLq4A%mLe*M{xUAlMKG-HBB?UeKhz@U2Q1F`! ziAaw_6SWyd;e3QzTg&=}M-2Vu>fz?Orr__ec0;Q^=q-Nm*+Cdc0`m>~L(~_i z8(&zr{S>4a%eHifCWEWU=_*Ps&%7I3C7OY2b||=kF7y>61c$pcZ3dp~ZSKP3Cn#7C z>raJN{f?TeN=URn-;RelG|#}QMZQ7~{tzjgjeE|hXFxjqc)5hPBR}GzHvdu9J5M2o zyLOXrpac8K(JMFCNK`b)qEyb(8brQQum-7EG>h^0Jcm21KleL?W6ua1W91v8zy z%Q2ut2b-u~^*0~g^5eFNYIkj}CrRF&EXZ(G7^a1D*nV{Jb+{TQZKbK;isAN1lY{L@!izaB#VO*>KH2& zVhMZ3&c5>-6C4>t-3{sD0UFlJL#+)B18B4+9C|$-v83a^^Wz8uiAzI@pO7@hdvbLmRn zrpn=DUyI#5{n3q1L5i65CJ~U&;h1d__aI2E7QR@N?z69hr8fv>!YcvTc;RRz0tr~Y zD@UxGVGUYAi=mr)ek*RuBun_K{{5M;JhlfnXZUE~hqnZtEUBliqF^@2q1;=n&hHN05oD5N0UDpx~ z)4I6vv5E>iVV4vjEvkk;dEBM5z@)U;^4>c=5q>=g7=sc}hPHcu^AD8-Hf=Bs?1LxA zhe2tn!mB)3`|lH*k6(vf-RTs~eE6itG3^+In0S^h?@Zy?ZfP{vfs(Pm7VeUhmsreL;N$z5jyO22{c&9A(u;|5T0s|^Ko6Om2V&a6eH$@8 zo_n_E&=Nfxe*liaL=jh7Rb`B(aA!U?bAYj)9t9y`mhoUamx}7T95KfZ_?-N5a~Gki z?aNe&@5XF-Y1hK|2pEqMhIj@BsQ@zsbNxOhxi%*dh8_DOhFU~~-@l=O?kx-V z)+&F;z`)*oXSH}X>)lXJJ8?XUlu4= z@`>{}UM($8xw(gdO4=HASQ|`tv(^Y2Vqv_8#|moBQcWqB(e=rFzGTY1QH;l=IuZaS z<8<5+&7WmZA$P(g&gqmG^k_n(@3W~@knW%@WpogUtAwPaz=f*T z;ky|o1Kp^XpRpO03#MI99qSt!B+1h#-SJ2?5UXpQf~(7Lr;qmZOpJefAsT9GYM`j^ zmf(l>t;Xu8GYJs$+E$^e&dTb*bgLCvVKhC6ad50OG(y9nB`+eps&-Ixho>HL=&7g# ztxLNGVOo$Wm%i5I57V@7Un1eJML;KL7}0*TR=xZBRU0jqnr&fXs6XL4+d@Rt6U@}BQd)3$a1f%9>pck1`)k7xe>wXc*Q52)mccv>qod;?bIkV^ ze=5fVs~=YNa6kZqeIimATLlV=;2%Hk#}C4ReS3lJX*PYT{B;F54{aUl;P-|>FdKBn zTbrBda=(FZ`Cvc)$J>qUKO-Z@H68?acmz2cCMG5}imST1gt`7mn@rV-C1^)+ZEJTZ zvpt{mQ{KD z=*!is<_me=hD|7da~Bt=9|bar+r5a6 zLWC;@MC$J?{u8C2pgteznZmoj93AaarrczAu@5`SK%B0RUj?)`C)c%)}&Q zNb=mQ!}AWRsU9ERxYb`b74&O99+HDN4sEMFZ_yflhuMYhLe>H)=7{t8^R#XT28OOn zqGHFVzKD^MZESq9P;#Ck2^Xj^)?f}@zCUXO_nYs|anwVHvyLiOru+N>; z5WUATi#gctk5O}6rnh#e_cZ~F2_xz#JU+e}1YbERc8%~Bu^LVvR^hT38yiD?0u~=` z>l4^6qFqmFp}tDtL+4?Tpz$l;>Pr9i4ZF)x-cdI(SYfFn?(=HdW}NXuF0KVo2+~)0 zdgq_Oat$EyH08p~UxdF^N(F3Q7u)Obo$WhDeZO7SYl$o_LL5yT#kb>`P#xH^qS+RC zsi@}C6_73``}LF+Jv1yVi(ZVgdb+w`{low%B9TKu7w_D;dI3N3_)&&kwU~JEP%1j% zRmEc~pobB;p32X)-En!A0^tC-jG`Q@tU-S!-g@1ohDrI=zt%zu=Cz&Fcq}>j&j&s* z^N}>=7<=LZ`4ZAtXgyI;QU2pCuX}2d(!U~?YVK7O9MJxCjTg)`W<7_*U zV4ZZcL0ddhWrEcL3*Fz+N`Ka45(np%Ahy(L{?s9dw&0`xoa)5`37lr z^}*i`Jo4>$|e$*R!)bwclf5-A-Q5{1ifBezx*p74dreh($)FtCZdi3k-A~ zOHz0h?PzLhBP*Mbo*rS<)N#>#$nHUz#twe;5#9Ae`d&Qua;Z0|f{W^QZmr`d}j#XI{7FOWFa zcUT9$cPC<*=I)NUq99pf;VcPKQ?qKO`Q}->0>%v+F~ub%07zGQ!nZeG&3}6IdLQ&S zi>FO=EZUk4KOO*{OZZNIiFG>1=+7{S$S~lSbEHa>tltV@P?66~nuFRwJHE+; z&Gp1dO>GP)CS_|?xbUBLap0TKLUYU@-_R7YKn`|>zvA<(xqaFYi#gc<1{PG6$!J>6 zp6l1IZ)jAuwXN9nUd1Xxbbh~p6-xu9g{)^*)*1}8tt~7Tpo#$Y+V6}E;9cG&w0rpA zfz(SHfJ^|@L*XO>=6WT?#m)Nr5HDq_5CxmcjkCTV@f){GvcG`pY`xf*n4FB-?o)=} z1u7J^EcK6|`k)kX2}*?Bu?<**I+Ll%b-e2}Q_#o6=i7q=^LZH68TF+2r>CbUJiAqY zw9(868pCuu<>NzqAhaAnkJSaV#tA|Mkh=k~EV}@02W^Mr$vzFU+tT>B-Aq%ko0}V= zV*d&Bt6PNA6n5<zy!U*yP$?hli0WrAozetr3OSt~^gd^U2HiN$~SdY_{`DnRWqr zXtre^WPf7Cg+YVg)4c?|?GgaMzOrHpEjDP}Ddx?WHZ-I!JXBUzHlP5M6r8hZT4jul z(SZ`a<^JjWLj@+>>XmK)EiNu9YWQ;v2S+Jy-f_F@ZT`!k+2O7(P$!YYEFYL*&7q8; zNn$Drs*vL_rr-JNt+w`bnp`>zCOrGmQ2D})vIi~(KmX~*4A4o*e`J0tdB;UQ0*|nA zp>GcnF){5O;ckSM7O!rL7O0PV(~1?9l^bchh=8M9ENw^k*$~b+T^K8PMglWMAT7YU zqzvX&P+Q8PilK@Sig^=`Nl4HZI@T^+{WyFZtCFm{z{DMra>_T`BJKnMd_-MVb_=Th zpoqsY0jds|U{AV!=JQWuyC7|48%p3%d|E)}a7d5#^t>;r-Qa{q{5wWuc-Pes@i{Or zBq|&r7a_cS91iF~U0-+HA!TeiNwnEh!BsV`@!d+fk z(w2g(85ou()*GvOGWa zFp{I=rI@P=^{)&HbmHBQr=@WOi>s%z-uZoqV*D7CpnfY4BVx0B;D$sZ9S&b$&WRMB z2wWGhwLbqsPS4N~=+&pgBL(W@S1d~&57`7ZJE+5ckiEyJo_+dg3wfvuu!69EyC zl2%e$Md=WvYl#xlU5i*K0)isa(z)nRx5BUwc=R(N5ci3i^~%TuR?9e3tBez8~}b{PQEVXZO*1C1HJea?*mz-OWunA*;x4J*uaNgT(h_f7%y) zgXwWc7-z-Fa&gxz6v-c+9zi2s$c!kyF-@8O0UYi9F%mRtha1&I=x6~5Zg(#-emownPf~)~1Y#DA`$zm1Q`Cz? z@boEMX9@j&Ap`0_K=}+(2H&rPsml`cE|3^}-9VgM4L_OYjl7xm(dp6I>!T?oL@{E^ z#3)e5l%p2nH8b-fSKDAYV@SS%lN+zfUI9zGx~ghp%zF@SE%i3*?*AScal$Or-@O|# z)4oL{G(>!5DH`h2?ch{xVUbBoGqzp znhfO{jhDYRH3gB+2WIvBLrk}?jvg@b&?aZBqw{e3T*Yy=Lh#jl{0gUEVet_ZLhSAI zTSdcsGng|D5)v>v*q}?p!-qYtpkTd1q%!dKi-h?5m+CZ5t*kJanMK2(2@DULs2pLS zquQoODbmLG8r3~NFAA4^i_W-ph&Ul;Qn~NO7(gqHglr;!c9Ij7m;297tBE9?oWsRl z+qS9oCQnWLd=uizY!buKc^5r%&nmO1a$VM1J&qT02^=2-(wyQZCH7;O~JZbzey=rF6tv>gx2MdMJCo>mmu4aUs(Q zY@m|C#|rTxK5;kNovG`Fermg&$Jys*VabFW1-p>(Xt59Jo1j72@7nkVO)&Q`ui7gq z<^S>B47<8cCnhF#J#CIYF&X9p&{mBXpXQM0@QPyE95w@YQBv$izWF3p=%AE({yfu! z%y-$#TUpi^v!A8q(RPs7v?wY;rzluAGEt0h-U&kL#>qcXQy<_CqLw6o9n>Pm8{b71 z%(AmJOQRf^EOy%3AVwir`g3n_Mxn44s#`(|Vq;?N?jTAhCQAR0=(-a;>^+<=cyYh$NT-w zdJ6E!>@0R?345}@E!^!87N%AP%r3UP1yqob4miU)7H-xSe03p=lkwz4y*>I2&1Be> zkWyAw9l=8ZVY1SpThDz+qew_dAn59N>WeH`i>Q4-vhDv?I{c8+ut#UCv>mpVX#2Mj zpHxxDzm(>VjtW$ZELH983o&1NO-#m0pSc+JVMuwlU~BLdGwni4Dh~z|@`$Aa=Ia^B zS8#=!A>u6>f>DuJ`+k37TDYU_ygw@HFZG} zt;-J*l=qFMkZ5X7rS4aqCi_|EZ?W@C=!Id=opZq)kjmBy%;5225)GB8;9J0-wCJy2V+ua(N}8*nI}*#)8zZkbHyPl{0wLkOo=Hy+$2r z$`luW0?#Iap}-i~tdC9Ccujx!KnHCoJ9{5G1+kA@vQkEvyuCDHkQ>GM_%XxjPejEj z_Bci@+GV2X*vLKGlM-`%SXxrDzg=8fTG3m?LNY6P*G;!aliXgp@v4|V&ATdeGxWcu z-T3{R64gKP;Bf_SM#b}ILS2mKDqJ+3{dclvs5CY)OG1NPC!f({W$?VS+Nl z4S4)Fw;AtBexK|PVnlTkKVoM$>#FG=9Th(HfSBFzA3wzYLL<~FT!aY->XV|QVuAzZ zE|GkNRK|}9$`X@rsxNwF2F3}k0{|+=mqKuLWfhLO#l;u|O&P;4$!ssV_&PXB%4Smz z<|bT^7bVte)-y4oD$_Q2q0{laixK^3=Lzroj=yK4luEBD3r8OxJ2fWtpbZ`A-c3tr z%giLV^&o1J%orJI<7Z_Bb^@aj>?w$_ch2wBG>nbE9*T=-)nG8z7k~D=T@ul)5kviQ z+H{lwa$q{6U<^4Is^2rL1lpvNlJ#=P?FuDiO2PB@m#~$g&V-7{_Ykt8duvc4lrQ3k z{mCMt)LxF>X*yI~B=O$e&5dd|Z{lD=$#XczWCv+u;MSyYQ3;HUw3&P^w%lg|aq6*w zy|NEwPOnOKGp*VEK24dHP5CM7=lJ-Xa`ThJ9le$xET~ezq7Ig`Dr#zLD_{*=vY)%s z)ZE-Jn@0XVPdNiTt8(7*v0aQ3#2Upp@SrQ2>F#9dR3akHZOdKG2U@QM_{)2ni46>D zQsgkZgfm34Ac`IzR-;G0x#8m2eZgEMCqFy0mLnru{`z$}{&KBZQHCrFMzXf@gBx{} zN{*f`oY#(a$t8Q32J1iI9>LX%jqWaWkUWW2Jt^~qNpEXA3sIjDMX8QlMiL3}D~Ra! zz5xvrHCU()yARRV-z+M#rcx>w*#*6?>9x2IljDJLjEM4*=LMStI{HPVMlXbt#>7-@ zQlI$5F+j5s3_W!Xa+-ODXs4SN*47b^wBLHMIXD!v^(%5Sn7JADj`UDQPf>|TOb*Js z1Gu=~!Y+HX--BFAu`ud82A@tU%g%;5tK8(u;5rzwB7kEqS-%aH&*03VfRnJ67u%A- zkc2ixUF`euE$U858J3o+87l>#JG?7CoWtRcvv`L%Amnt|QrL;LChNgTYjODq-2^*I zPlPI-nw-qy2Ijt&a6j>cQxucRqY5Zw%PxYM@&HbB5{hqZ^6Tug(F3UwBIs0bra#;KxO_Ds^ai@M|KvHRKej=MrGrO9n- zOSG{5-KW}?nB;l=8-1DJ!p(1JI|%sHZC*YCug)l(SGE{n-|!n+UhPc_k;hm(4lSh!H-@sWTJlIwN ziR(^}+@e3^E@EaHZ_M5*cj8HZ<|eX~o01axf*P`)L&lQ88T?ki=4LVqx4IhJztcBV zY(DVxbfbwD`VwZd%8E0fVJa1kR%s4C&GtT~H0jTDL+YxA0`$z3W;W(@f;2f8)=HAm zG`QB|iG|U5{Ualpsfr~!r8%1T)AsJY(xYM#?px{t5clCrI-Qig=t~#r`AK*|mj3M*3yudT+J(;U@?>w6JA+bD^+nAs z+4icx=^if3EcNO-SscZ^90x_R#`!!RtGQ2}h~Tw!%v-bvH1Y(i7OnI`z9ohTb+pR8 zQv~!g@ARzAvYK&$#>!Ufi3;wz)m=p|MQZb&QKFWy5 z(1-}@gRNQMAfv{g3?#+7`@kE|smvO(ej&ULL~Ym0*|G$@Wk z#(qjE2k}*m6<#8RGVTp%L4!FF`?fFltv)m0n7xn9mB6 znLE1{g5J@O2CbczGYWL}NBjGg%NnPB(ius*0Vm=#LVjb3yBUefIE(4ZH-Y)u15siN z8*>U6JR~|Nf|2(I;n)GR1?R=m)5B$?3cb%M0fkdcew45W|H`7OrcyyJ6IG?*z|Y_C zzV;XxETfJsyyUG-zDV694>k2)uC1$6$kGyKgVzn;;`wbH1*y}GzVyW%u*9Vi(P$18 zn3=)m0(6m*sbc5}K`*EfbTp*vG-s+86QvdB9JxTLCqb>Lwb%kfpFN;KT_wHkXA^FF z(GGg05LQQsAh>YB>2Q$_Y;Ezy3!qIS*?^2V`|iZn1cIVBzt0;PrCCfzDVcg53m|s~ z8{w{PSK<=&B+CiV(jw1J-QcXHD0_}^5{^zcXr=6zQj*}1AkYTU2kbAK(wxT2odKEv zEth|;QEON)&?j>9St`FCfF$y;1N8C0^h0yu$y_*It=ScIH6(I~4*;ho#;jxmpi2i) ziDpX^BX1&c%|5tUmd1`cG6_1q$(pa%dL|U;(-w7-DAf|WE$3wd^0^l--tB%9 zQYha8AF}4t?4i`mQjz16y>Z{qpTECK1RnL`#fv~@ovh^WbXBEFBAhl~8i+e$7AUFa z;b=WMtC#~+4XisPe;W?vrhGlIh64n^SY7tw?5R=1HdNG}$VqntY}i2V0)!Y`x_Y$_ zbrj2i>g;^H#r3_D$*U1I&5S5d8kpg!4~8Hy7yR$6DTCOSE;H7a1f9D^K-651+Fczs z6OQ$PuvNxiFG=DJ!K?<*A((Gr>PdD{{<^y>VABwdlY}JsX`!uN=D*Iqis2Yy;bRRW} zf2->v`v3($Yuo0McSGm*yP`$W3+quXvff@^ zfC&Yh$0<})OiqjWEfVnu-8c1xIP`b#L243)88qBQkR=wo9K_sMN7v5gZ+DW^5d%a1AR&UoiN2ZJvkTSoAP+m=J>8b;R22N#{p&_y{WC!1x@l~>rUvUeByRxn9M?}$7a#7vWD+KFd~S8{ci zz^Cv}UI5B4^TRK>Q44{HlV!LLbrcoWoAs;3=^7_2oMBv*jTJHjO(&d(`LAxeNlMzi zT<0~JTo4ojLUO!ycA`#CVD{&Z2LTVfv zcn;&1>$T<6Q})N%Mqo(0+FCkk4>WW(`cbpgx`C<{{Cuh}qh9t0bq5G%;+LN0oX2s^ z@BG}2eF<>DT=8Da#WYI(6~?U7=0cvRU0ZuMO%!3k@0PjsZ*2KoR;vTaBGJJHv7N-I zA%pjZfg}N2XN<%%`Y-C5&%BbVShM&dZbc>_u9qEsJzgFtRhq1jF8j*d@|Fmncwvi7 z27<=(ya-9@E_gUto6$OVUq5=MV>rcGXwntRNZWUNhYrJ)rI*zfLODfxqK+1=(XFGF zq+y$gaN*%%q^-4jx?IO9l#UqH*U=AUCG+=@_=Wkrzp{Tb>2}^o2`6Kg%i_4Cs76Qt zqb#Lfy8)~b@PPvhdQk5Ta0ukU!_?Jnh~OMN#y>O|U3^LDn0 zWKY)ijf5ES@Z`l0g9&E?n-2d@Mg zuoDk&Emh=mK4PV!6B4D9rL=tK3b$_V-?t9

$a?C7f2OW2}hJ@Mbdww&p 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/208/library-light.png b/docs/screenshots/208/library-light.png new file mode 100644 index 0000000000000000000000000000000000000000..2245080df6571e0ea64cb820cebbe2f07f4f40a2 GIT binary patch literal 118582 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 kBH8SZtQ?!@mX!WWl(B>OO1?3wF-0g+7?f&c&j literal 0 HcmV?d00001 diff --git a/py/api/__init__.py b/py/api/__init__.py index d6b7bf2..c085e63 100644 --- a/py/api/__init__.py +++ b/py/api/__init__.py @@ -23,6 +23,7 @@ from PIL import Image from .prompts import PromptRoutesMixin from .pairs import PairRoutesMixin +from .library import LibraryRoutesMixin from .images import ImageRoutesMixin from .admin import AdminRoutesMixin from .logging_routes import LoggingRoutesMixin @@ -243,6 +244,7 @@ async def _gzip_middleware(request, handler): class PromptManagerAPI( PairRoutesMixin, + LibraryRoutesMixin, PromptRoutesMixin, ImageRoutesMixin, AdminRoutesMixin, @@ -399,6 +401,7 @@ class PromptManagerAPI( # ── Register domain-specific routes from mixins ─────────────── self._register_pair_routes(routes) + self._register_library_routes(routes) self._register_prompt_routes(routes) self._register_image_routes(routes) self._register_admin_routes(routes) diff --git a/py/api/library.py b/py/api/library.py new file mode 100644 index 0000000..2310670 --- /dev/null +++ b/py/api/library.py @@ -0,0 +1,186 @@ +"""Read-only native library with bounded, filter-scoped continuation cursors.""" + +import base64 +import binascii +import hashlib +import hmac +import json +import os +from pathlib import Path + +from aiohttp import web + +from .images import _canonical, _media_access_error +from .pairs import pair_response + +_SECRET = os.urandom(32) + + +def _scope(value: dict) -> str: + return hashlib.sha256(json.dumps(value, sort_keys=True).encode()).hexdigest() + + +def _encode(key: object, scope: str) -> str | None: + if key is None: + return None + payload = json.dumps( + {"scope": scope, "key": key}, separators=(",", ":"), allow_nan=False + ).encode() + signature = hmac.new(_SECRET, payload, hashlib.sha256).digest() + return base64.urlsafe_b64encode(signature + payload).decode().rstrip("=") + + +def _decode(token: str | None, scope: str) -> object: + if token is None: + return None + try: + if not 1 <= len(token) <= 4096: + raise ValueError + decoded = base64.b64decode( + token + "=" * (-len(token) % 4), altchars=b"-_", validate=True + ) + signature, payload = decoded[:32], decoded[32:] + if not hmac.compare_digest( + signature, hmac.new(_SECRET, payload, hashlib.sha256).digest() + ): + raise ValueError + value = json.loads(payload) + if set(value) != {"scope", "key"} or value["scope"] != scope: + raise ValueError + return value["key"] + except (ValueError, TypeError, binascii.Error, UnicodeError): + raise ValueError("Invalid library cursor; refresh the library") from None + + +def _positive_id(request: web.Request) -> int: + value = int(request.match_info["positive_id"]) + if not 1 <= value <= 2**63 - 1: + raise ValueError("Invalid positive prompt ID") + return value + + +def _page_limit(request: web.Request, key: str = "limit") -> int: + value = int(request.query.get(key, "40")) + if not 1 <= value <= 200: + raise ValueError("limit must be between 1 and 200") + return value + + +def _missing() -> web.Response: + return web.json_response( + {"success": False, "error": "Positive prompt not found"}, status=404 + ) + + +class LibraryRoutesMixin: + def _register_library_routes(self, routes: web.RouteTableDef) -> None: + routes.get("/prompt_manager/library")(self.list_library) + routes.get("/prompt_manager/library/options")(self.get_library_options) + routes.get("/prompt_manager/library/{positive_id}")(self.get_library_positive) + routes.get("/prompt_manager/library/{positive_id}/images")( + self.get_library_images + ) + + def _library_media(self, records: list[dict], roots: list[Path]) -> list[dict]: + page = [] + for record in records: + try: + raw_path = Path(record["image_path"]) + if not raw_path.is_absolute(): + continue + path = _canonical(raw_path) + denied = _media_access_error(path, roots) + if denied is not None or not path.is_file(): + continue + for index, root in enumerate(roots): + canonical_root = _canonical(root) + if path.is_relative_to(canonical_root): + page.append((path, 0, canonical_root, index)) + break + except (OSError, ValueError, RuntimeError): + continue + return self._format_workspace_page(page) + + @pair_response + async def get_library_options(self, request: web.Request) -> web.Response: + result = await self._run_in_executor(self.db.get_library_options) + return web.json_response({"success": True, **result}) + + @pair_response + async def list_library(self, request: web.Request) -> web.Response: + options = { + "text": request.query.get("text", ""), + "category": request.query.get("category"), + "tags": sorted(set(request.query.getall("tag", []))), + "sort": request.query.get("sort", "newest"), + } + scope = _scope({"kind": "parents", **options}) + result = await self._run_in_executor( + self.db.list_library, + **options, + limit=_page_limit(request), + after=_decode(request.query.get("cursor"), scope), + ) + roots = list(self._get_all_output_dirs()) + + def previews() -> None: + for parent in result["items"]: + images = self.db.list_library_images(parent["id"], limit=2) + parent["previews"] = self._library_media(images["images"], roots) + + await self._run_in_executor(previews) + result["next_cursor"] = _encode(result.pop("next_key"), scope) + return web.json_response({"success": True, **result}) + + @pair_response + async def get_library_positive(self, request: web.Request) -> web.Response: + positive = _positive_id(request) + scope = _scope({"kind": "variants", "positive": positive}) + result = await self._run_in_executor( + self.db.get_library_positive, + positive, + variant_limit=_page_limit(request, "variant_limit"), + variant_after=_decode(request.query.get("variant_cursor"), scope), + ) + if result is None: + return _missing() + roots = list(self._get_all_output_dirs()) + records = await self._run_in_executor( + self.db.list_library_images, result["positive"]["id"], limit=2 + ) + result["positive"]["previews"] = await self._run_in_executor( + self._library_media, records["images"], roots + ) + result["variants_next_cursor"] = _encode(result.pop("variants_next_key"), scope) + return web.json_response({"success": True, **result}) + + @pair_response + async def get_library_images(self, request: web.Request) -> web.Response: + positive = _positive_id(request) + pair = request.query.get("pair_id") + pair = int(pair) if pair is not None else None + if pair is not None and not 1 <= pair <= 2**63 - 1: + raise ValueError("Invalid variant ID") + roots = list(self._get_all_output_dirs()) + scope = _scope( + { + "kind": "images", + "positive": positive, + "pair": pair, + "roots": [str(_canonical(root)) for root in roots], + } + ) + if await self._run_in_executor(self.db.get_library_positive, positive) is None: + return _missing() + result = await self._run_in_executor( + self.db.list_library_images, + positive, + pair_id=pair, + limit=_page_limit(request), + after=_decode(request.query.get("cursor"), scope), + ) + result["images"] = await self._run_in_executor( + self._library_media, result["images"], roots + ) + result["next_cursor"] = _encode(result.pop("next_key"), scope) + return web.json_response({"success": True, **result}) diff --git a/tests/browser/server.py b/tests/browser/server.py index 1d3cd4d..dc1e783 100644 --- a/tests/browser/server.py +++ b/tests/browser/server.py @@ -82,6 +82,9 @@ def create_app(root: Path) -> web.Application: extra_images: int = 0, include_video: bool = False, prompt_inspector: bool = False, + native_library: bool = False, + extra_prompts: int = 0, + extra_variants: int = 0, ) -> None: with api.db.model.get_connection() as conn: for table in ( @@ -98,7 +101,14 @@ def create_app(root: Path) -> web.Application: shutil.rmtree(root / name) (root / name).mkdir() for index, (directory, text, tag) in enumerate( - [("output", "Cat portrait", "cats"), ("input", "Dog landscape", "dogs")] + [ + ("output", "Cat portrait", "cats"), + ( + "input", + "Cat portrait" if native_library else "Dog landscape", + "dogs", + ), + ] ): image_path = root / directory / "shared" / "same.png" image_path.parent.mkdir(exist_ok=True) @@ -111,7 +121,7 @@ def create_app(root: Path) -> web.Application: ) with Image.new("RGB", (64, 64), (index * 255, 64, 128)) as image: image.save(image_path, pnginfo=info) - if prompt_inspector: + if prompt_inspector or native_library: graph = { "1": {"class_type": "CLIPTextEncode", "inputs": {"text": text}}, "2": { @@ -143,6 +153,48 @@ def create_app(root: Path) -> web.Application: extra.parent.mkdir(exist_ok=True) shutil.copyfile(image_path, extra) api.db.link_image_to_prompt(pid, str(extra)) + if native_library: + positive = api.db.get_prompt_by_hash(generate_prompt_hash("Cat portrait")) + positive_id = positive["id"] + api.db.update_prompt_metadata( + positive_id, category="Animals", tags=["cats", "studio"] + ) + variants = [] + for index, negative in enumerate( + ["blurry, watermark", "low quality", "low contrast", ""] + ): + pair_id = api.db.save_prompt_pair( + "Cat portrait", + negative, + title=f"Portrait variant {index + 1}", + category="Portraits" if index == 0 else "Experiments", + tags=["studio"] if index == 0 else ["outdoors"], + ) + variants.append(pair_id) + with api.db.model.get_connection() as conn: + images = conn.execute( + "SELECT id FROM generated_images WHERE prompt_id=? ORDER BY id", + (positive_id,), + ).fetchall() + for index, image in enumerate(images[:2]): + api.db.link_image_to_pair( + variants[index], image["id"], {"source": "fixture", "anchor": index} + ) + api.db.link_image_to_pair( + variants[0], images[0]["id"], {"source": "fixture second evidence"} + ) + api.db.record_prompt_pair_use(variants[0], times=3) + for number in range(extra_variants): + api.db.save_prompt_pair("Cat portrait", f"Negative extra {number:04}") + legacy = root / "output" / "legacy-unassigned.png" + shutil.copyfile(root / "output" / "shared" / "same.png", legacy) + api.db.link_image_to_prompt(positive_id, str(legacy)) + api.db.save_prompt("Dog landscape", category="Animals", tags=["dogs"]) + api.db.save_prompt_pair("Dual role portrait", "Cat portrait") + for number in range(extra_prompts): + api.db.save_prompt( + f"Library extra {number:04}", category="Bulk", tags=["bulk"] + ) if prompt_inspector: for name, parameters in ( ( @@ -174,15 +226,33 @@ def create_app(root: Path) -> web.Application: extra = data.get("extra_images", 0) include_video = data.get("include_video", False) prompt_inspector = data.get("prompt_inspector", False) + native_library = data.get("native_library", False) + extra_prompts = data.get("extra_prompts", 0) + extra_variants = data.get("extra_variants", 0) if ( isinstance(extra, bool) or not isinstance(extra, int) or not 0 <= extra <= 200 or not isinstance(include_video, bool) or not isinstance(prompt_inspector, bool) + or not isinstance(native_library, bool) + or isinstance(extra_prompts, bool) + or not isinstance(extra_prompts, int) + or not 0 <= extra_prompts <= 200 + or isinstance(extra_variants, bool) + or not isinstance(extra_variants, int) + or not 0 <= extra_variants <= 200 ): raise web.HTTPBadRequest() - await api._run_in_executor(seed, extra, include_video, prompt_inspector) + await api._run_in_executor( + seed, + extra, + include_video, + prompt_inspector, + native_library, + extra_prompts, + extra_variants, + ) return web.json_response({"success": True}) @routes.post("/__test__/add-nested-image") diff --git a/tests/browser/workspace-library.spec.mjs b/tests/browser/workspace-library.spec.mjs new file mode 100644 index 0000000..182f95b --- /dev/null +++ b/tests/browser/workspace-library.spec.mjs @@ -0,0 +1,170 @@ +import {startCoverage,saveCoverage} from '../../tools/vendor/browser-coverage.mjs'; +import {test,expect} from '../../tools/vendor/node_modules/@playwright/test/index.mjs'; + +const route='/prompt_manager/workspace#/library'; +const cards=page=>page.locator('article[data-prompt-id]'); +const history=page=>page.getByRole('region',{name:'Prompt history',exact:true}); +const saved=page=>history(page).getByRole('region',{name:'Saved prompt texts',exact:true}); +const gallery=page=>page.getByRole('region',{name:'Shared gallery',exact:true}); +const media=page=>gallery(page).locator('article[data-image-key]'); + +async function openHistory(page,text='Cat portrait') { + await cards(page).filter({has:page.getByText(text,{exact:true})}).getByRole('link',{name:'Explore history',exact:true}).click(); + await expect(history(page)).toBeVisible(); +} +async function selectVariant(page,index) { + const choice=history(page).getByRole('button',{name:`Select negative variant ${index+1}`,exact:true}); + await choice.click();await expect(choice).toHaveAttribute('aria-pressed','true'); +} + +test.beforeEach(async({page,request,browserName})=>{ + await startCoverage(page,browserName);await expect(await request.post('/__test__/reset',{data:{native_library:true}})).toBeOK(); + page.libraryErrors=[];page.on('pageerror',error=>page.libraryErrors.push(error.message)); +}); +test.afterEach(async({page,browserName})=>{await saveCoverage(page,browserName);expect(page.libraryErrors).toEqual([]);}); + +test('library groups reusable negatives under one positive without exposing negative-only components as parents',async({page})=>{ + await page.goto(route);await expect(page.locator('#workspace-main h1')).toHaveText('Prompt library'); + await expect(cards(page)).toHaveCount(3); + await expect(cards(page).filter({has:page.getByText('Cat portrait',{exact:true})})).toHaveCount(1); + await expect(cards(page).filter({has:page.getByText('Dual role portrait',{exact:true})})).toHaveCount(1); + await expect(cards(page).filter({hasText:'low contrast'})).toHaveCount(0); + const cat=cards(page).filter({has:page.getByText('Cat portrait',{exact:true})}); + await expect(cat).toContainText(/4.*variants/i);await expect(cat).toContainText(/3.*images/i); + await expect(page.locator('#workspace-main')).not.toContainText(/\b\d+ (?:tracked )?runs\b/i); +}); + +test('history displays the selected full negative beneath its positive and filters one shared physical gallery',async({page,request})=>{ + const rows=await(await request.get('/prompt_manager/library')).json();const cat=rows.items.find(item=>item.text==='Cat portrait'); + const data=await(await request.get(`/prompt_manager/library/${cat.id}`)).json(); + await page.goto(route);await openHistory(page);await expect(media(page)).toHaveCount(3); + for(const negative of ['blurry, watermark','low quality','low contrast','']) { + const index=data.variants.findIndex(variant=>variant.negative_text===negative);await selectVariant(page,index); + const neg=saved(page).getByRole('region',{name:'Negative prompt',exact:true}); + await expect(neg).toContainText(negative||'Empty negative prompt'); + await expect(media(page)).toHaveCount(negative==='blurry, watermark'||negative==='low quality'?1:0); + const positive=saved(page).getByRole('region',{name:'Positive prompt',exact:true}); + await expect(positive).toContainText('Cat portrait'); + const order=await positive.evaluate((element)=>element.compareDocumentPosition(element.parentElement.querySelector('[aria-label="Negative prompt"]'))); + expect(order&4).toBeTruthy(); + } + await history(page).getByRole('button',{name:'All images for this positive',exact:true}).click();await expect(media(page)).toHaveCount(3); + expect(await media(page).evaluateAll(nodes=>nodes.map(node=>node.dataset.imageKey))).toEqual(expect.arrayContaining(['0:shared/same.png','1:shared/same.png','0:legacy-unassigned.png'])); +}); + +test('search, category and tag filters preserve their constraints and return standalone positives',async({page})=>{ + await page.goto(route);await page.getByRole('searchbox',{name:'Search prompts',exact:true}).fill('Dog landscape'); + await expect(cards(page)).toHaveCount(1);await expect(cards(page).first()).toContainText('Dog landscape'); + await page.getByRole('searchbox',{name:'Search prompts',exact:true}).fill(''); + await page.getByRole('combobox',{name:'Category',exact:true}).selectOption('Portraits'); + await page.getByRole('textbox',{name:'Tags',exact:true}).fill('studio');await expect(cards(page)).toHaveCount(1); + await page.getByRole('textbox',{name:'Tags',exact:true}).fill('outdoors');await expect(cards(page)).toHaveCount(0); + await page.getByRole('combobox',{name:'Category',exact:true}).selectOption('');await expect(cards(page)).toHaveCount(1); +}); + +test('library infinite loading keeps unique parents and keyboard-accessible history controls',async({page,request})=>{ + await expect(await request.post('/__test__/reset',{data:{native_library:true,extra_prompts:125}})).toBeOK(); + await page.addInitScript(()=>{window.IntersectionObserver=undefined;}); + await page.goto(route);await expect(cards(page).first()).toBeVisible(); + const more=page.getByRole('button',{name:'Load more prompts',exact:true}); + expect(await cards(page).count()).toBeLessThan(128); + let hasMore=true; + while(hasMore) { + const nextPage=page.waitForResponse(response=>{const url=new URL(response.url());return url.pathname==='/prompt_manager/library'&&Boolean(url.searchParams.get('cursor'));}); + await more.focus();await page.keyboard.press('Enter'); + const appended=await (await nextPage).json();expect(appended.items.length).toBeGreaterThan(0);hasMore=appended.has_more; + if(hasMore)await expect(more).toHaveAttribute('aria-disabled','false'); + } + await expect(more).toBeHidden();expect(await cards(page).count()).toBeLessThan(80); + const ids=await cards(page).evaluateAll(nodes=>nodes.map(node=>node.dataset.promptId));expect(new Set(ids).size).toBe(ids.length); + await expect(page.getByRole('button',{name:/next page|previous page/i})).toHaveCount(0); + const firstId=await cards(page).first().getAttribute('data-prompt-id'); + const explore=page.locator(`article[data-prompt-id="${firstId}"]`).getByRole('link',{name:'Explore history',exact:true}); + await explore.focus();await expect(explore).toBeFocused();await page.keyboard.press('Enter');await expect(history(page)).toBeVisible(); +}); + +test('failed library reads retry while late search responses cannot overwrite newer results',async({page})=>{ + let fail=true;let release;const hold=new Promise(resolve=>{release=resolve;}); + await page.route('**/prompt_manager/library?*',async request=>{ + const url=new URL(request.request().url()); + if(fail)return request.fulfill({status:503,json:{success:false,error:'Unavailable'}}); + if(url.searchParams.get('text')==='Cat')await hold; + await request.continue().catch(()=>{}); + }); + await page.goto(route);await expect(page.getByRole('button',{name:'Retry prompt library',exact:true})).toBeVisible(); + fail=false;await page.getByRole('button',{name:'Retry prompt library',exact:true}).click();await expect(cards(page)).toHaveCount(3); + const search=page.getByRole('searchbox',{name:'Search prompts',exact:true});const oldRequest=page.waitForRequest(request=>new URL(request.url()).searchParams.get('text')==='Cat');await search.fill('Cat');await oldRequest;await search.fill('Dog'); + await expect(cards(page)).toHaveCount(1);await expect(cards(page).first()).toContainText('Dog landscape');release();await expect(cards(page).first()).toContainText('Dog landscape'); +}); + +test('returning from history restores library context and mobile content stays inside the viewport',async({page})=>{ + await page.setViewportSize({width:390,height:844});await page.goto(route); + await page.getByRole('combobox',{name:'Category',exact:true}).selectOption('Animals'); + await page.getByRole('searchbox',{name:'Search prompts',exact:true}).fill('Cat portrait');await expect(cards(page)).toHaveCount(1); + await openHistory(page);await selectVariant(page,0); + await expect(saved(page).getByRole('region',{name:'Positive prompt',exact:true})).toContainText('Cat portrait'); + expect(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth+1)).toBe(true); + await history(page).getByRole('link',{name:'Back to library',exact:true}).click(); + await expect(page.getByRole('searchbox',{name:'Search prompts',exact:true})).toHaveValue('Cat portrait');await expect(cards(page)).toHaveCount(1); + await page.getByRole('navigation',{name:'Workspace',exact:true}).getByRole('link',{name:'Overview',exact:true}).click(); + await expect(history(page)).toHaveCount(0);await expect(page.locator('dialog[open]')).toHaveCount(0); +}); + +test('history detail failures retry and returning to the list ignores late detail responses',async({page})=>{ + let fail=true;let release;const hold=new Promise(resolve=>{release=resolve;}); + await page.route(/\/prompt_manager\/library\/\d+(?:\?|$)/,async route=>{ + if(fail)return route.fulfill({status:503,json:{success:false,error:'Unavailable'}}); + await hold;await route.continue().catch(()=>{}); + }); + try { + await page.goto(route);await cards(page).filter({has:page.getByText('Cat portrait',{exact:true})}).getByRole('link',{name:'Explore history',exact:true}).click(); + await expect(page.getByRole('button',{name:'Retry prompt history',exact:true})).toBeVisible(); + fail=false;await page.getByRole('button',{name:'Retry prompt history',exact:true}).click(); + await page.getByRole('link',{name:'Back to library',exact:true}).click();release(); + await expect(cards(page)).toHaveCount(3);await expect(history(page)).toHaveCount(0); + } finally {release();} +}); + +test('history shares real image metadata, vendored Viewer and the acknowledged prompt sender',async({page,context,request})=>{ + const host=await context.newPage();await host.goto('/prompt_manager/workspace#/overview'); + await host.evaluate(async()=>{ + const {createBridgeHost}=await import('/prompt_manager/js/shared/toolkit/prompt-bridge.js'); + const target={id:'pair-1',label:'Library destination',type:'PromptManagerPair',roles:['positive','negative']}; + window.libraryApplied=[]; + window.libraryHost=createBridgeHost({origin:location.origin,namespace:'/',label:'Library ComfyUI',adapter:{ + listTargets:()=>[target],preview:(_id,roles)=>({preview:{target,fields:Object.entries(roles).map(([role,after])=>({role,before:`Previous ${role}`,after})),composition:{prepend:'',append:'',prependConnected:false,appendConnected:false,before:'Previous positive',after:roles.positive??'Previous positive'}},snapshot:roles}), + apply:roles=>{window.libraryApplied.push(roles);return{targetId:target.id,values:roles};}, + }}); + }); + try { + await page.goto(route); + const parentId=await cards(page).filter({has:page.getByText('Cat portrait',{exact:true})}).getAttribute('data-prompt-id'); + const recipe=await(await request.get(`/prompt_manager/library/${parentId}`)).json(); + await openHistory(page);await selectVariant(page,recipe.variants.findIndex(variant=>variant.negative_text==='blurry, watermark')); + const chosenNegative=await saved(page).getByRole('region',{name:'Negative prompt',exact:true}).locator('pre').textContent(); + await saved(page).getByRole('button',{name:'Send prompt pair',exact:true}).click(); + const sender=page.getByRole('dialog',{name:'Send to ComfyUI',exact:true}); + const hosts=sender.getByRole('combobox',{name:'ComfyUI window',exact:true}); + await expect(hosts.locator('option')).toHaveCount(2);await hosts.selectOption({label:'Library ComfyUI'}); + await sender.getByRole('combobox',{name:'Destination node',exact:true}).selectOption({label:'Library destination'}); + await sender.getByRole('button',{name:'Preview changes',exact:true}).click();await expect(sender).toContainText(chosenNegative||'(empty)'); + await sender.getByRole('button',{name:'Apply to ComfyUI',exact:true}).click();await expect(sender).toContainText('Sent to ComfyUI.'); + expect(await host.evaluate(()=>window.libraryApplied)).toEqual([{positive:'Cat portrait',negative:chosenNegative}]); + await sender.getByRole('button',{name:'Close',exact:true}).click(); + await media(page).first().getByRole('button',{name:'Open same.png',exact:true}).click(); + const inspector=page.getByRole('region',{name:'Image details',exact:true});await expect(inspector.getByRole('region',{name:'Positive prompt',exact:true})).toContainText('Cat portrait'); + await inspector.getByRole('button',{name:'Open full preview',exact:true}).click();await expect(page.locator('dialog[open] .viewer-canvas img')).toBeVisible(); + await page.keyboard.press('Escape');await expect(page.locator('dialog[open]')).toHaveCount(0); + await page.getByRole('navigation',{name:'Workspace',exact:true}).getByRole('link',{name:'Overview',exact:true}).click();await expect(page.locator('.viewer-container')).toHaveCount(0); + } finally {await host.evaluate(()=>window.libraryHost.dispose());await host.close();} +}); + +test('large variant histories append bounded pages without replacing the selected negative',async({page,request})=>{ + await expect(await request.post('/__test__/reset',{data:{native_library:true,extra_variants:41}})).toBeOK(); + await page.goto(route);await openHistory(page); + const variants=history(page).getByRole('button',{name:/^Select negative variant \d+$/});await expect(variants).toHaveCount(40); + await selectVariant(page,0);const chosenNegative=await saved(page).getByRole('region',{name:'Negative prompt',exact:true}).locator('pre').textContent(); + await history(page).getByRole('button',{name:'Load more negative variants',exact:true}).click();await expect(variants).toHaveCount(45); + await expect(history(page).getByRole('button',{name:'Select negative variant 1',exact:true})).toHaveAttribute('aria-pressed','true'); + await expect(saved(page).getByRole('region',{name:'Negative prompt',exact:true}).locator('pre')).toHaveText(chosenNegative); +}); diff --git a/tests/comfyui/library-sender.spec.mjs b/tests/comfyui/library-sender.spec.mjs new file mode 100644 index 0000000..9d8285f --- /dev/null +++ b/tests/comfyui/library-sender.spec.mjs @@ -0,0 +1,46 @@ +import {test,expect} from '../../tools/vendor/node_modules/@playwright/test/index.mjs'; +import {installHostHooks} from './host-fixture.mjs'; + +installHostHooks(test,['PromptManagerPair']); + +test('native library sends the selected saved pair into a real ComfyUI destination',async({page,context,request},testInfo)=>{ + const positive=`Native library host ${testInfo.project.name}`;const negative=`Saved negative ${testInfo.project.name}`; + const response=await request.post('/prompt_manager/pairs',{data:{positive_text:positive,negative_text:negative,title:'Host saved pair',category:'Native host',tags:['library-host']}}); + expect(response.ok()).toBe(true); + const id=await page.evaluate(async()=>{ + const {app}=await import('/scripts/app.js');const node=LiteGraph.createNode('PromptManagerPair');app.graph.add(node);node.setSize([700,1000]); + app.canvas.ds.scale=.8;app.canvas.centerOnNode(node);return node.id; + }); + const editor=page.locator('.pm-pair');await editor.getByRole('textbox',{name:'Positive prompt',exact:true}).fill('Original positive'); + await editor.getByRole('textbox',{name:'Negative prompt',exact:true}).fill('Original negative'); + await editor.getByText('Composition · prepend / append',{exact:true}).click(); + await editor.getByRole('textbox',{name:'Prepend',exact:true}).fill('Keep trigger');await editor.getByRole('textbox',{name:'Append',exact:true}).fill('Keep detail'); + await page.evaluate(async()=>{ + const {app}=await import('/scripts/app.js');window.libraryEffects={queue:0,load:0}; + for(const [method,key]of [['queuePrompt','queue'],['loadGraphData','load']]){const original=app[method];app[method]=function(...args){window.libraryEffects[key]++;return original.apply(this,args);};} + }); + const workspace=await context.newPage();const errors=[];workspace.on('pageerror',error=>errors.push(error.message)); + try { + await workspace.goto('/prompt_manager/workspace#/library'); + await workspace.getByRole('searchbox',{name:'Search prompts',exact:true}).fill(positive); + await workspace.locator('article[data-prompt-id]').filter({has:workspace.getByText(positive,{exact:true})}).getByRole('link',{name:'Explore history',exact:true}).click(); + const history=workspace.getByRole('region',{name:'Prompt history',exact:true}); + await history.getByRole('button',{name:'Select negative variant 1',exact:true}).click(); + await expect(history.getByRole('region',{name:'Saved prompt texts',exact:true}).getByRole('region',{name:'Negative prompt',exact:true})).toContainText(negative); + await history.getByRole('region',{name:'Saved prompt texts',exact:true}).getByRole('button',{name:'Send prompt pair',exact:true}).click(); + const sender=workspace.getByRole('dialog',{name:'Send to ComfyUI',exact:true}); + const hosts=sender.getByRole('combobox',{name:'ComfyUI window',exact:true});await expect(hosts.locator('option')).toHaveCount(2);await hosts.selectOption({index:1}); + await sender.getByRole('combobox',{name:'Destination node',exact:true}).selectOption({index:1}); + await sender.getByRole('button',{name:'Preview changes',exact:true}).click(); + await expect(sender).toContainText(positive);await expect(sender).toContainText(negative);await expect(sender).toContainText(`Keep trigger ${positive} Keep detail`); + await expect(editor.getByRole('textbox',{name:'Positive prompt',exact:true})).toHaveValue('Original positive'); + await sender.getByRole('button',{name:'Apply to ComfyUI',exact:true}).click();await expect(sender).toContainText('Sent to ComfyUI.'); + await expect(editor.getByRole('textbox',{name:'Positive prompt',exact:true})).toHaveValue(positive);await expect(editor.getByRole('textbox',{name:'Negative prompt',exact:true})).toHaveValue(negative); + const state=await page.evaluate(async id=>{ + const {app}=await import('/scripts/app.js');const node=app.graph.getNodeById(id);const serialized=node.serialize(); + return{inputs:(await app.graphToPrompt()).output[String(id)].inputs,serialized:Object.fromEntries(node.widgets.map((widget,index)=>[widget.name,serialized.widgets_values[index]])),effects:window.libraryEffects}; + },id); + for(const field of ['inputs','serialized'])expect(state[field]).toMatchObject({text:positive,negative_text:negative,prepend_text:'Keep trigger',append_text:'Keep detail'}); + expect(state.effects).toEqual({queue:0,load:0});expect(errors).toEqual([]); + } finally {await workspace.close();} +}); diff --git a/tests/js/prompt-blocks.test.js b/tests/js/prompt-blocks.test.js new file mode 100644 index 0000000..566871a --- /dev/null +++ b/tests/js/prompt-blocks.test.js @@ -0,0 +1,52 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import {createScope} from '../../web/js/shared/toolkit/core.js'; +import * as module from '../../web/js/workspace/prompt-inspector.mjs'; + +function dom() { + class Element { + constructor(tag){this.tagName=tag;this.children=[];this.dataset={};this.attributes={};this.listeners=new Map();this.classList={add:()=>{}};} + append(...children){for(const child of children){child.parent=this;this.children.push(child);}} + replaceChildren(...children){this.children=[];this.append(...children);} + setAttribute(key,value){this.attributes[key]=value;} + addEventListener(type,listener,{signal}={}){this.listeners.set(type,listener);signal?.addEventListener('abort',()=>this.listeners.delete(type),{once:true});} + closest(selector){if(selector==='section'&&this.tagName==='section')return this;if(selector==='[data-send-role]'&&Object.hasOwn(this.dataset,'sendRole'))return this;if(selector==='[data-copy-role]'&&Object.hasOwn(this.dataset,'copyRole'))return this;if(selector==='[data-retry-prompts]'&&Object.hasOwn(this.dataset,'retryPrompts'))return this;return this.parent?.closest(selector);} + click(target){this.listeners.get('click')?.({target});} + } + const previous=global.document;global.document={createElement:tag=>new Element(tag),createElementNS:(_,tag)=>new Element(tag)}; + const walk=(root,predicate)=>[...(predicate(root)?[root]:[]),...root.children.flatMap(child=>walk(child,predicate))]; + return {Element,walk,restore:()=>{global.document=previous;}}; +} +const record=text=>({status:'resolved',text,source:'library'}); +test('shared prompt blocks send complete selected library values and explicit empty negatives',()=>{ + const f=dom(),scope=createScope(),container=new f.Element('div'),sent=[]; + try{ + const view=module.mountPromptBlocks(container,{parentScope:scope,sender:{open:roles=>sent.push(roles)},prompts:{positive:record('\nfull positive'),negative:{status:'unresolved',message:'Choose a saved negative.'}}}); + assert.ok(f.walk(container,node=>node.textContent==='\nfull positive').length); + assert.equal(f.walk(container,node=>node.dataset.sendRole==='pair').length,0); + view.update({positive:record('Complete positive'),negative:record('')}); + const pair=f.walk(container,node=>node.dataset.sendRole==='pair')[0];container.click(pair); + assert.deepEqual(sent,[{positive:'Complete positive',negative:''}]); + assert.equal(f.walk(container,node=>node.textContent==='Saved library prompt').length,2); + view.dispose();container.click(pair);assert.equal(sent.length,1); + }finally{scope.dispose();f.restore();} +}); +test('positive-only cards never display or send a hidden negative or pair',()=>{ + const f=dom(),scope=createScope(),container=new f.Element('div'),sent=[]; + try{ + module.mountPromptBlocks(container,{parentScope:scope,roles:['positive'],prompts:{positive:record('positive'),negative:record('hidden')},sender:{open:roles=>sent.push(roles)}}); + assert.equal(f.walk(container,node=>node.attributes['aria-label']==='Negative prompt').length,0); + assert.equal(f.walk(container,node=>node.dataset.sendRole==='pair').length,0); + const button=f.walk(container,node=>node.dataset.sendRole==='positive')[0];container.click(button);assert.deepEqual(sent,[{positive:'positive'}]); + scope.dispose();container.click(button);assert.equal(sent.length,1); + }finally{scope.dispose();f.restore();} +}); + +test('disposed blocks ignore updates and aborted parents never mount content',()=>{ + const f=dom(),scope=createScope(),container=new f.Element('div'); + try{ + const view=module.mountPromptBlocks(container,{parentScope:scope,sender:{open:()=>{}},prompts:{positive:record('original')}}); + view.dispose();view.update({positive:record('late')});assert.equal(f.walk(container,node=>node.textContent==='late').length,0); + scope.dispose();const other=new f.Element('div');module.mountPromptBlocks(other,{parentScope:scope,sender:{open:()=>{}},prompts:{positive:record('late')}});assert.equal(other.children.length,0); + }finally{scope.dispose();f.restore();} +}); diff --git a/tests/js/workspace-images-lifecycle.test.js b/tests/js/workspace-images-lifecycle.test.js new file mode 100644 index 0000000..a7511e4 --- /dev/null +++ b/tests/js/workspace-images-lifecycle.test.js @@ -0,0 +1,23 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import {createScope} from '../../web/js/shared/toolkit/core.js'; +import {mountImages} from '../../web/js/workspace/images.mjs'; + +test('Images mounted after its parent is aborted creates no DOM, requests or observers',()=>{ + const parent=createScope();parent.dispose(); + const originals=new Map(['document','window','ResizeObserver','IntersectionObserver'].map(key=>[key,Object.getOwnPropertyDescriptor(globalThis,key)])); + const touches=[]; + const forbidden=name=>new Proxy({}, {get(target,key){touches.push(`${name}.${String(key)}`);throw Error(`Disposed mount accessed ${name}.${String(key)}`);}}); + Object.defineProperty(globalThis,'document',{configurable:true,value:forbidden('document')}); + Object.defineProperty(globalThis,'window',{configurable:true,value:forbidden('window')}); + for(const key of ['ResizeObserver','IntersectionObserver']) Object.defineProperty(globalThis,key,{configurable:true,value:class {constructor(){touches.push(key);throw Error('Observer created after parent disposal');}}}); + const api={get(){touches.push('request');assert.fail('Request started after parent disposal');}}; + try { + let mounted; + assert.doesNotThrow(()=>{mounted=mountImages(forbidden('container'),api,parent,{embedded:true,fetchPage(){touches.push('page');assert.fail('Page requested after parent disposal');}});}); + assert.equal(typeof mounted.dispose,'function');mounted.dispose();mounted.dispose(); + assert.deepEqual(touches,[]); + } finally { + for(const [key,descriptor] of originals) {if(descriptor) Object.defineProperty(globalThis,key,descriptor);else delete globalThis[key];} + } +}); diff --git a/tests/js/workspace-images-state.test.js b/tests/js/workspace-images-state.test.js index aa6c8ac..36b7897 100644 --- a/tests/js/workspace-images-state.test.js +++ b/tests/js/workspace-images-state.test.js @@ -159,3 +159,11 @@ test('malformed restored state is rejected before making requests',async()=>{ {filters:{root:-1},state:base}, {filters:null,state:base}]; for(const restore of invalid) assert.throws(()=>createImageStream({api:{get(){assert.fail('unexpected request');}},restore}),TypeError); }); + +test('custom collection pages reuse image-stream cancellation, cursors and identity checks',async()=>{ + const {createImageStream}=await source;const calls=[]; + const stream=createImageStream({fetchPage:async({parameters,signal})=>{calls.push({parameters,signal});return calls.length===1?page([image('linked.png')],2,'next'):page([image('other.png')],2);},batchSize:1}); + assert.equal(await stream.reset(),1);assert.equal(calls[0].parameters.get('limit'),'1');assert.ok(calls[0].signal instanceof AbortSignal); + assert.equal(await stream.loadMore(),1);assert.equal(calls[1].parameters.get('cursor'),'next');assert.equal(stream.state.loaded,2);stream.dispose(); + assert.throws(()=>createImageStream({api:{get:async()=>{}},fetchPage:'invalid'}),/page/i); +}); diff --git a/tests/js/workspace-library-state.test.js b/tests/js/workspace-library-state.test.js new file mode 100644 index 0000000..7efa59a --- /dev/null +++ b/tests/js/workspace-library-state.test.js @@ -0,0 +1,49 @@ +const test=require('node:test'); +const assert=require('node:assert/strict'); +const source=import('../../web/js/workspace/library-state.mjs'); +const item=id=>({id,text:`Positive ${id}`,category:'Art',tags:['blue'],rating:3,variant_count:2,image_count:4,previews:[]}); +const page=(items,cursor=null)=>({items,total:3,has_more:cursor!==null,next_cursor:cursor}); +test('parent stream builds literal filters and deduplicates stable identities across infinite pages',async()=>{ + const {createLibraryStream}=await source;const calls=[];const pending=[page([item(1),item(2)],'next'),page([item(2),item(3)])];const s=createLibraryStream({api:{get:async(url)=>{calls.push(url);return pending.shift();}}}); + assert.equal(await s.reset({text:'a%_',category:'Art',tags:['blue','red'],sort:'rating'}),2);assert.equal(await s.loadMore(),1);assert.deepEqual(s.state.items.map(row=>row.id),[1,2,3]);assert.equal(s.state.hasMore,false); + const query=new URL(calls[0],'https://x').searchParams;assert.equal(query.get('text'),'a%_');assert.deepEqual(query.getAll('tag'),['blue','red']);assert.equal(query.get('sort'),'rating');assert.equal(new URL(calls[1],'https://x').searchParams.get('cursor'),'next');assert.equal(await s.loadMore(),0);s.dispose(); +}); +test('reset aborts older requests and late success/failure cannot replace current parents',async()=>{ + const {createLibraryStream}=await source;const requests=[];const s=createLibraryStream({api:{get:(url,{signal})=>new Promise((resolve,reject)=>requests.push({signal,resolve,reject}))}}); + const first=s.reset({text:'first'});const second=s.reset({text:'second'});assert.equal(requests[0].signal.aborted,true);requests[1].resolve(page([item(2)]));await second;requests[0].resolve(page([item(1)]));await first;assert.deepEqual(s.state.items.map(row=>row.id),[2]); + const third=s.reset();s.dispose();requests[2].reject(Error('late'));await third;assert.equal(await s.loadMore(),0); +}); +test('failed pages retain cursor/data and can retry while duplicate load is guarded',async()=>{ + const {createLibraryStream}=await source;let calls=0,release;const s=createLibraryStream({api:{get:async()=>{calls++;if(calls===1)return page([item(1)],'next');if(calls===2)throw Error('offline');return new Promise(resolve=>release=resolve);}}}); + await s.reset();await s.loadMore();assert.equal(s.state.cursor,'next');assert.equal(s.state.items.length,1);assert.match(s.state.error.message,/offline/);const request=s.loadMore();assert.equal(await s.loadMore(),0);release(page([item(2)]));await request;assert.equal(s.state.error,null);assert.equal(s.state.items.length,2);s.dispose(); +}); +test('malformed/nonprogressing pages fail atomically and invalid filters never send requests',async()=>{ + const {createLibraryStream}=await source; + for(const malformed of [{},page([{...item(1),id:-1}]),{...page([]),has_more:true},page([{...item(1),text:null}])]){const s=createLibraryStream({api:{get:async()=>malformed}});await s.reset();assert.ok(s.state.error);assert.equal(s.state.items.length,0);s.dispose();} + const s=createLibraryStream({api:{get:async()=>page([],'same')}});await s.reset();await s.loadMore();assert.ok(s.state.error);s.dispose(); + const invalid=createLibraryStream({api:{get:()=>assert.fail()}});for(const filters of [{sort:'bad'},{text:2},{tags:'a'}])await assert.rejects(invalid.reset(filters));invalid.dispose(); +}); +test('library detail selection preserves full strings and distinguishes all, empty and unknown',async()=>{ + const {libraryPromptRoles}=await source;const detail={positive:item(1),variants:[{id:9,negative_text:'',explicit_empty:true},{id:10,negative_text:'long\nnegative',explicit_empty:false}]}; + const all=libraryPromptRoles(detail,null);assert.equal(all.positive.text,'Positive 1');assert.equal(all.negative.status,'unresolved');assert.equal(libraryPromptRoles(detail,9).negative.text,'');assert.equal(libraryPromptRoles(detail,10).negative.text,'long\nnegative');assert.throws(()=>libraryPromptRoles(detail,999)); +}); +test('detail reads validate identities, abort stale selection and expose retryable errors',async()=>{ + const {createLibraryDetail}=await source;const pending=[],states=[];const loader=createLibraryDetail({api:{get:(url,{signal})=>new Promise((resolve,reject)=>pending.push({url,signal,resolve,reject}))},onChange:state=>states.push(state)}); + const first=loader.load(1);const second=loader.load(2);assert.equal(pending[0].signal.aborted,true);pending[1].resolve({positive:item(2),variants:[],unassigned_image_count:0});await second;pending[0].resolve({positive:item(1),variants:[]});await first;assert.equal(states.at(-1).detail.positive.id,2); + const third=loader.load(3);pending[2].resolve({positive:item(4),variants:[]});await third;assert.ok(states.at(-1).error); + const fourth=loader.load(3);loader.dispose();const count=states.length;pending[3].reject(Error('late'));await fourth;assert.equal(states.length,count);await loader.load(5);assert.equal(pending.length,4); +}); +test('restored shelves keep filters, loaded parents and continuation without a fresh first page',async()=>{ + const {createLibraryStream}=await source;const old=createLibraryStream({api:{get:async()=>page([item(1)],'next')}});await old.reset({text:'retained',sort:'name'});old.dispose();const urls=[]; + const next=createLibraryStream({api:{get:async url=>{urls.push(url);return page([item(2)]);}},restore:{filters:{text:'retained',sort:'name'},state:old.state}});assert.equal(next.state.items.length,1);await next.loadMore();assert.match(urls[0],/text=retained/);assert.match(urls[0],/cursor=next/);assert.equal(next.state.items.length,2);next.dispose(); + assert.throws(()=>createLibraryStream({api:{},restore:{filters:{},state:{items:[item(1),item(1)],total:2,cursor:null,hasMore:false}}})); +}); +test('parent shelf window bounds DOM and pins focused rows without changing logical order',async()=>{ + const {libraryWindow}=await source;const first=libraryWindow(500,2,0,900);assert.equal(first[0],0);assert.ok(first.length<24); + const middle=libraryWindow(500,2,50000,900,0);assert.equal(middle[0],0);assert.ok(middle.some(index=>index>150));assert.ok(middle.length<24);assert.deepEqual(middle,[...middle].sort((a,b)=>a-b));assert.deepEqual(libraryWindow(3,2,0,900),[0,1,2]); +}); +test('negative variants append continuously without losing selected identity, and failures retry same cursor',async()=>{ + const {createLibraryDetail}=await source;const calls=[];let count=0;const v=id=>({id,negative_text:id===9?'':'bad',explicit_empty:id===9}); + const loader=createLibraryDetail({api:{get:async url=>{calls.push(url);count++;if(count===2)throw Error('offline');return {positive:item(1),variants:count===1?[v(9)]:[v(9),v(10)],variant_total:2,variants_has_more:count===1,variants_next_cursor:count===1?'next':null,unassigned_image_count:0};}},onChange:()=>{}}); + await loader.load(1);assert.equal(loader.state.detail.variants.length,1);await loader.loadMore();assert.match(loader.state.variantsError.message,/offline/);assert.equal(loader.state.detail.variants[0].id,9);await loader.loadMore();assert.deepEqual(loader.state.detail.variants.map(row=>row.id),[9,10]);assert.match(calls[1],/variant_cursor=next/);assert.equal(calls[1],calls[2]);assert.equal(await loader.loadMore(),0);loader.dispose(); +}); diff --git a/tests/js/workspace-state.test.js b/tests/js/workspace-state.test.js index a38f1e4..13d0bfa 100644 --- a/tests/js/workspace-state.test.js +++ b/tests/js/workspace-state.test.js @@ -47,3 +47,17 @@ test('router normalizes unknown routes, avoids duplicate renders, and disposes i win.dispatchEvent(new Event('hashchange')); assert.deepEqual(seen, ['images', 'library']); }); + +test('positive library deep links preserve the selected identity without duplicate route renders', async () => { + const {resolveRoute,mountRouter}=await source; + assert.equal(resolveRoute('#/library/12').positiveId,12); + for(const hash of ['#/library/0','#/library/-1','#/library/1.5','#/library/9007199254740992','#/library/1/extra']) assert.equal(resolveRoute(hash).id,'images'); + const win=new EventTarget();win.location={hash:'#/library/12'}; + win.history={state:null,replaceState(state,unused,hash){win.location.hash=hash;}}; + const seen=[];const dispose=mountRouter(win,route=>seen.push([route.id,route.positiveId])); + assert.equal(win.location.hash,'#/library/12'); + win.dispatchEvent(new Event('hashchange'));assert.equal(seen.length,1); + win.location.hash='#/library/13';win.dispatchEvent(new Event('hashchange')); + win.location.hash='#/library';win.dispatchEvent(new Event('hashchange')); + assert.deepEqual(seen,[['library',12],['library',13],['library',undefined]]);dispose(); +}); diff --git a/tests/test_api_library.py b/tests/test_api_library.py new file mode 100644 index 0000000..eb88198 --- /dev/null +++ b/tests/test_api_library.py @@ -0,0 +1,180 @@ +"""Native library endpoints use bounded cursors and rooted media identities.""" + +import json +from unittest.mock import patch + +try: + from test_api_images import ImageAPITestCase, make_png +except ImportError: + from tests.test_api_images import ImageAPITestCase, make_png + + +class TestLibraryAPI(ImageAPITestCase): + async def get(self, path="", **params): + response = await self.client.get( + "/prompt_manager/library" + path, params=params + ) + return response, await response.json() + + async def test_list_detail_variant_images_and_safe_physical_previews(self): + pair = self.api.db.save_prompt_pair( + "Cat", "Noise", title="Original", tags=["studio"] + ) + positive = self.api.db.get_prompt_pair(pair)["positive_prompt_id"] + path = make_png(self.output_dir / "same.png") + image = self.api.db.link_image_to_prompt(positive, str(path)) + self.api.db.link_image_to_pair(pair, image, {"source": "one"}) + self.api.db.link_image_to_pair(pair, image, {"source": "two"}) + response, result = await self.get() + self.assertEqual(response.status, 200) + self.assertEqual(len(result["items"]), 1) + self.assertEqual(result["items"][0]["previews"][0]["root_index"], 0) + self.assertNotIn(str(self.comfy_dir), json.dumps(result)) + _, detail = await self.get(f"/{positive}") + self.assertEqual(detail["variants"][0]["negative_text"], "Noise") + self.assertEqual(detail["variants"][0]["id"], pair) + _, media = await self.get(f"/{positive}/images", pair_id=pair) + self.assertEqual(media["total"], 1) + self.assertEqual(len(media["images"]), 1) + self.assertEqual(media["images"][0]["path"], "same.png") + + async def test_scoped_cursor_tampering_filters_and_continuation(self): + for text in ("one", "two", "three"): + self._save_prompt(text) + _, first = await self.get(limit=1) + self._save_prompt("later") + _, second = await self.get(limit=1, cursor=first["next_cursor"]) + self.assertNotEqual(first["items"][0]["id"], second["items"][0]["id"]) + for params in ( + {"cursor": "tampered"}, + {"cursor": first["next_cursor"], "sort": "oldest"}, + {"cursor": first["next_cursor"], "text": "one"}, + {"limit": "no"}, + {"sort": "sql"}, + ): + response, result = await self.get(**params) + self.assertEqual(response.status, 400) + self.assertNotIn(str(self.comfy_dir), json.dumps(result)) + + async def test_outside_missing_and_unsupported_media_do_not_leak_or_scan(self): + positive = self._save_prompt("Cat") + outside = make_png(self.comfy_dir / "outside.png") + for path in ( + outside, + self.output_dir / "missing.png", + self.output_dir / "secret.txt", + ): + self.api.db.link_image_to_prompt(positive, str(path)) + with patch.object( + self.api, + "_scan_gallery_files_sync", + side_effect=AssertionError("scan"), + ): + _, result = await self.get(f"/{positive}/images", limit=2) + self.assertEqual(result["images"], []) + self.assertEqual(result["total"], 3) + self.assertTrue(result["has_more"]) + self.assertIsInstance(result["next_cursor"], str) + self.assertNotIn(str(self.comfy_dir), json.dumps(result)) + response, result = await self.get("/9999") + self.assertEqual(response.status, 404) + + async def test_static_options_route_includes_pair_categories(self): + self._save_prompt("Legacy", category="Legacy") + self.api.db.save_prompt_pair("Cat", "Noise", category="Pair-only") + response, result = await self.get("/options") + self.assertEqual(response.status, 200) + self.assertEqual( + result, {"success": True, "categories": ["Legacy", "Pair-only"]} + ) + + async def test_variant_cursor_is_positive_scoped_and_required_limits_are_bounded( + self, + ): + for index in range(3): + pair = self.api.db.save_prompt_pair("Cat", f"Neg {index}") + positive = self.api.db.get_prompt_pair(pair)["positive_prompt_id"] + other = self._save_prompt("Other") + _, first = await self.get(f"/{positive}", variant_limit=1) + self.assertEqual(len(first["variants"]), 1) + self.assertEqual(first["variant_total"], 3) + self.assertTrue(first["variants_has_more"]) + _, second = await self.get( + f"/{positive}", + variant_limit=1, + variant_cursor=first["variants_next_cursor"], + ) + self.assertNotEqual(first["variants"][0]["id"], second["variants"][0]["id"]) + response, _ = await self.get( + f"/{other}", variant_cursor=first["variants_next_cursor"] + ) + self.assertEqual(response.status, 400) + response, _ = await self.get(f"/{positive}", variant_limit=201) + self.assertEqual(response.status, 400) + + async def test_image_cursors_scope_variants_and_roots_with_real_collisions( + self, + ): + first = self.api.db.save_prompt_pair("Cat", "Blur") + second = self.api.db.save_prompt_pair("Cat", "Noise") + positive = self.api.db.get_prompt_pair(first)["positive_prompt_id"] + other = self.comfy_dir / "input" + other.mkdir() + self.api._get_all_output_dirs = lambda: [self.output_dir, other] + for root in (self.output_dir, other): + path = make_png(root / "same.png") + image = self.api.db.link_image_to_prompt(positive, str(path)) + self.api.db.link_image_to_pair(first, image, {"source": "test"}) + _, page = await self.get(f"/{positive}/images", pair_id=first, limit=1) + self.assertEqual(page["images"][0]["root_index"], 1) + self.assertTrue(page["has_more"]) + _, next_page = await self.get( + f"/{positive}/images", pair_id=first, limit=1, cursor=page["next_cursor"] + ) + self.assertEqual(next_page["images"][0]["root_index"], 0) + self.assertNotIn(str(self.comfy_dir), json.dumps(next_page)) + response, _ = await self.get( + f"/{positive}/images", pair_id=second, cursor=page["next_cursor"] + ) + self.assertEqual(response.status, 400) + self.api._get_all_output_dirs = lambda: [self.output_dir] + response, _ = await self.get( + f"/{positive}/images", pair_id=first, cursor=page["next_cursor"] + ) + self.assertEqual(response.status, 400) + + async def test_invalid_ids_limits_and_database_failures_are_safe(self): + positive = self._save_prompt("Cat") + for path, params in ( + ("/bad", {}), + ("/-1", {}), + ("/999999999999999999999999", {}), + (f"/{positive}/images", {"pair_id": "-1"}), + (f"/{positive}/images", {"pair_id": "999999999999999999999999"}), + ("", {"limit": "201"}), + ("", {"cursor": "x" * 4097}), + ): + response, _ = await self.get(path, **params) + self.assertEqual(response.status, 400, (path, params)) + with patch.object( + self.api.db, "list_library", side_effect=RuntimeError(str(self.comfy_dir)) + ): + response, result = await self.get() + self.assertEqual(response.status, 500) + self.assertNotIn(str(self.comfy_dir), json.dumps(result)) + + async def test_bounded_unicode_name_cursor_and_wildcard_search(self): + prefix = "猫" * 200 + self._save_prompt(prefix + "B") + self._save_prompt(prefix + "A") + self._save_prompt("literal % and _") + _, first = await self.get(sort="name", limit=1, text=prefix) + self.assertLess(len(first["next_cursor"]), 4096) + _, second = await self.get( + sort="name", limit=1, text=prefix, cursor=first["next_cursor"] + ) + self.assertNotEqual(first["items"][0]["id"], second["items"][0]["id"]) + _, literal = await self.get(text="%") + self.assertEqual( + [item["text"] for item in literal["items"]], ["literal % and _"] + ) diff --git a/tests/test_library.py b/tests/test_library.py new file mode 100644 index 0000000..5efcb17 --- /dev/null +++ b/tests/test_library.py @@ -0,0 +1,246 @@ +"""Grouped library reads retain component roles and association semantics.""" + +import tempfile +import unittest +from pathlib import Path + +from database.operations import PromptDatabase +from utils.hashing import generate_prompt_hash + + +class TestLibrary(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory() + self.db = PromptDatabase(str(Path(self.temp.name) / "library.db")) + + def tearDown(self): + self.db.close_all() + self.temp.cleanup() + + def save(self, text, **metadata): + return self.db.save_prompt( + text, prompt_hash=generate_prompt_hash(text), **metadata + ) + + def test_groups_positive_parents_excludes_negative_only_and_keeps_dual_once(self): + first = self.db.save_prompt_pair("Cat", "Blur") + self.db.save_prompt_pair("Cat", "Noise") + self.db.save_prompt_pair("Blur", "Watermark") + legacy = self.save("Legacy") + rows = self.db.list_library()["items"] + self.assertEqual({row["text"] for row in rows}, {"Cat", "Blur", "Legacy"}) + parent = next(row for row in rows if row["text"] == "Cat") + self.assertEqual(parent["variant_count"], 2) + self.assertEqual(len([row for row in rows if row["id"] == legacy]), 1) + self.db.archive_prompt_pair(first) + detail = self.db.get_library_positive(parent["id"]) + self.assertEqual(len(detail["variants"]), 1) + self.assertEqual(detail["positive"]["variant_count"], 1) + + def test_filters_match_all_constraints_on_same_parent_or_same_active_pair(self): + a = self.db.save_prompt_pair("Cat", "Blur", category="A", tags=["red"]) + self.db.save_prompt_pair("Cat", "Noise", category="B", tags=["blue"]) + self.assertEqual(self.db.list_library(category="A", tags=["blue"])["items"], []) + self.assertEqual( + self.db.list_library(text="Blur", category="A", tags=["red"])["total"], 1 + ) + self.db.archive_prompt_pair(a) + self.assertEqual(self.db.list_library(text="Blur")["total"], 0) + self.save("Legacy cat", category="A", tags=["red", "blue"]) + self.assertEqual( + self.db.list_library(category="A", tags=["red", "blue"])["total"], 1 + ) + self.assertEqual(self.db.list_library(text="%")["items"], []) + + def test_keyset_handles_insertion_deletion_ties_and_invalid_parameters(self): + for text in ("a", "b", "c", "d"): + self.save(text) + first = self.db.list_library(limit=2) + self.save("new") + second = self.db.list_library(limit=2, after=first["next_key"]) + self.assertEqual([row["text"] for row in second["items"]], ["b", "a"]) + self.assertFalse(second["has_more"]) + for options in ({"limit": 0}, {"sort": "sql"}, {"tags": [2]}, {"text": 2}): + with self.assertRaises(ValueError): + self.db.list_library(**options) + + def test_detail_distinguishes_explicit_empty_and_deduplicates_provenance_rows(self): + pair = self.db.save_prompt_pair("Cat", "") + positive = self.db.get_prompt_pair(pair)["positive_prompt_id"] + image = self.db.link_image_to_prompt( + positive, str(Path(self.temp.name) / "image.png") + ) + self.db.link_image_to_pair(pair, image, {"source": "one"}) + self.db.link_image_to_pair(pair, image, {"source": "two"}) + self.db.link_image_to_prompt( + positive, str(Path(self.temp.name) / "unassigned.png") + ) + detail = self.db.get_library_positive(positive) + self.assertEqual(detail["positive"]["image_count"], 2) + self.assertEqual(detail["unassigned_image_count"], 1) + self.assertEqual(detail["variants"][0]["negative_text"], "") + self.assertTrue(detail["variants"][0]["explicit_empty"]) + self.assertEqual(detail["variants"][0]["image_count"], 1) + page = self.db.list_library_images(positive, pair_id=pair) + self.assertEqual(len(page["images"]), 1) + self.assertEqual(page["total"], 1) + unrelated = self.db.save_prompt_pair("Dog", "") + with self.assertRaises(ValueError): + self.db.list_library_images(positive, pair_id=unrelated) + self.assertIsNone(self.db.get_library_positive(9999)) + + def test_options_include_active_pair_categories_not_negative_only_or_archived(self): + self.save("Legacy", category="Legacy category") + pair = self.db.save_prompt_pair("Cat", "Noise", category="Pair category") + negative = self.db.get_prompt_pair(pair)["negative_prompt_id"] + with self.db.model.get_connection() as connection: + connection.execute( + "UPDATE prompts SET category='Negative only' WHERE id=?", (negative,) + ) + archived = self.db.save_prompt_pair("Dog", "Blur", category="Archived category") + self.db.archive_prompt_pair(archived) + self.assertEqual( + self.db.get_library_options(), + {"categories": ["Legacy category", "Pair category"]}, + ) + + def test_variant_detail_is_bounded_and_cursor_continues_without_duplicates(self): + for index in range(85): + self.db.save_prompt_pair("Cat", f"Negative {index}", tags=[f"tag{index}"]) + positive = self.db.list_library()["items"][0]["id"] + first = self.db.get_library_positive(positive, variant_limit=40) + self.assertEqual(len(first["variants"]), 40) + self.assertEqual(first["variant_total"], 85) + self.assertTrue(first["variants_has_more"]) + second = self.db.get_library_positive( + positive, variant_limit=40, variant_after=first["variants_next_key"] + ) + third = self.db.get_library_positive( + positive, variant_after=second["variants_next_key"] + ) + all_variants = first["variants"] + second["variants"] + third["variants"] + self.assertEqual(len({item["id"] for item in all_variants}), 85) + self.assertFalse(third["variants_has_more"]) + self.assertTrue(all(len(item["tags"]) == 1 for item in all_variants)) + with self.assertRaises(ValueError): + self.db.get_library_positive(positive, variant_limit=201) + + def test_sorts_keysets_survive_anchor_deletion_and_insertions_without_writes(self): + import sqlite3 + + a = self.save("Alpha", rating=2, tags=["tag"]) + b = self.save("beta", rating=5) + c = self.save("charlie") + for sort, expected in ( + ("newest", [c, b, a]), + ("oldest", [a, b, c]), + ("name", [a, b, c]), + ("rating", [b, a, c]), + ): + with self.subTest(sort=sort): + first = self.db.list_library(sort=sort, limit=1) + second = self.db.list_library( + sort=sort, limit=1, after=first["next_key"] + ) + third = self.db.list_library( + sort=sort, limit=1, after=second["next_key"] + ) + self.assertEqual( + [part["items"][0]["id"] for part in (first, second, third)], + expected, + ) + first = self.db.list_library(sort="name", limit=1) + with self.db.model.get_connection() as connection: + connection.execute("DELETE FROM prompts WHERE id=?", (a,)) + self.save("between") + second = self.db.list_library(sort="name", after=first["next_key"]) + self.assertEqual([item["id"] for item in second["items"]], [b, c]) + connection = self.db.model.get_connection() + before = connection.total_changes + denied = { + sqlite3.SQLITE_INSERT, + sqlite3.SQLITE_UPDATE, + sqlite3.SQLITE_DELETE, + sqlite3.SQLITE_CREATE_TABLE, + sqlite3.SQLITE_ALTER_TABLE, + } + connection.set_authorizer( + lambda operation, *_: ( + sqlite3.SQLITE_DENY if operation in denied else sqlite3.SQLITE_OK + ) + ) + try: + self.db.list_library() + self.db.get_library_positive(b) + self.db.get_library_options() + self.db.list_library_images(b) + finally: + connection.set_authorizer(None) + self.assertEqual(connection.total_changes, before) + + def test_archived_associations_and_legacy_positive_roles_remain_distinct(self): + pair = self.db.save_prompt_pair("Cat", "Noise") + pair_data = self.db.get_prompt_pair(pair) + negative = pair_data["negative_prompt_id"] + self.db.link_image_to_prompt(negative, str(Path(self.temp.name) / "legacy.png")) + rows = self.db.list_library()["items"] + self.assertIn(negative, [row["id"] for row in rows]) + positive = pair_data["positive_prompt_id"] + image = self.db.link_image_to_prompt( + positive, str(Path(self.temp.name) / "pair.png") + ) + self.db.link_image_to_pair(pair, image, {"source": "test"}) + self.db.archive_prompt_pair(pair) + detail = self.db.get_library_positive(positive) + self.assertEqual(detail["variants"], []) + self.assertEqual(detail["positive"]["image_count"], 1) + self.assertEqual(detail["unassigned_image_count"], 0) + self.assertEqual(self.db.list_library_images(positive)["total"], 1) + with self.assertRaises(ValueError): + self.db.list_library_images(positive, pair_id=pair) + + def test_invalid_database_inputs_fail_before_queries(self): + for options in ( + {"category": 2}, + {"tags": [""]}, + {"text": "x" * 501}, + {"after": {}}, + {"after": {"ceiling": "x", "id": 1, "value": 1}}, + ): + with self.assertRaises(ValueError): + self.db.list_library(**options) + for operation in ( + lambda: self.db.get_library_positive(1, variant_after=0), + lambda: self.db.list_library_images(1, after=0), + ): + with self.assertRaises(ValueError): + operation() + + def test_cursor_key_comes_from_read_page_even_if_anchor_is_deleted_during_read( + self, + ): + from unittest.mock import patch + + self.save("a") + self.save("b") + original = self.db._library_parents + + def remove_anchor(*args, **kwargs): + rows = original(*args, **kwargs) + with self.db.model.get_connection() as connection: + connection.execute("DELETE FROM prompts WHERE id=?", (rows[0]["id"],)) + return rows + + with patch.object(self.db, "_library_parents", side_effect=remove_anchor): + first = self.db.list_library(limit=1) + second = self.db.list_library(after=first["next_key"]) + self.assertEqual([row["text"] for row in second["items"]], ["a"]) + + def test_options_preserve_exact_category_values_that_filters_accept(self): + self.save("Legacy", category=" Category ") + self.db.save_prompt_pair("Cat", "Noise", category=" Variant ") + options = self.db.get_library_options()["categories"] + self.assertEqual(options, [" Category ", " Variant "]) + self.assertTrue( + all(self.db.list_library(category=value)["total"] == 1 for value in options) + ) diff --git a/tools/vendor/frontend-coverage-baseline.json b/tools/vendor/frontend-coverage-baseline.json index ba3c41b..3806c1e 100644 --- a/tools/vendor/frontend-coverage-baseline.json +++ b/tools/vendor/frontend-coverage-baseline.json @@ -202,5 +202,17 @@ "branches": 89, "functions": 98, "statements": 98 + }, + "workspace/library-state.mjs": { + "lines": 98, + "branches": 94, + "functions": 98, + "statements": 98 + }, + "workspace/library.mjs": { + "lines": 94, + "branches": 80, + "functions": 93, + "statements": 94 } } diff --git a/web/js/workspace/images-state.mjs b/web/js/workspace/images-state.mjs index deda993..63f543a 100644 --- a/web/js/workspace/images-state.mjs +++ b/web/js/workspace/images-state.mjs @@ -43,8 +43,10 @@ function validatePage(page, cursor) { } /** Keep metadata for backward scrolling; the view bounds rendered media independently. */ -export function createImageStream({ api, onChange = () => {}, batchSize = 40, restore }) { - if (typeof api?.get !== 'function') throw new TypeError('An API client is required'); +export function createImageStream({ api, onChange = () => {}, batchSize = 40, restore, fetchPage }) { + if (fetchPage !== undefined && typeof fetchPage !== 'function') throw new TypeError('Invalid image page adapter'); + if (!fetchPage && typeof api?.get !== 'function') throw new TypeError('An API client is required'); + const readPage = fetchPage || (({parameters, signal}) => api.get(`/prompt_manager/images/output?${parameters}`, {signal})); if (!Number.isSafeInteger(batchSize) || batchSize < 1 || batchSize > 200) { throw new TypeError('Invalid image batch size'); } @@ -86,7 +88,7 @@ export function createImageStream({ api, onChange = () => {}, batchSize = 40, re const parameters = new URLSearchParams(query); if (cursor !== null) parameters.set('cursor', cursor); try { - const page = await api.get(`/prompt_manager/images/output?${parameters}`, { signal: request.signal }); + const page = await readPage({parameters, signal:request.signal}); if (disposed || request !== controller) return 0; validatePage(page, cursor); const incoming = []; diff --git a/web/js/workspace/images.mjs b/web/js/workspace/images.mjs index 1566cf8..8fc9ba5 100644 --- a/web/js/workspace/images.mjs +++ b/web/js/workspace/images.mjs @@ -17,26 +17,29 @@ function formatBytes(value) { let lastVisit = null; -export function mountImages(main, api, parentScope) { +export function mountImages(main, api, parentScope, {embedded = false, fetchPage} = {}) { const scope = createScope(); - parentScope.cleanup(() => scope.dispose()); + const dispose = () => scope.dispose(); + parentScope.signal.addEventListener('abort', dispose, {once:true}); + scope.cleanup(() => parentScope.signal.removeEventListener('abort', dispose)); + if (parentScope.signal.aborted) { scope.dispose(); return {dispose}; } const { resolveUrl } = window.ApiClient; const sender = createPromptSender({scope}); let detailInspector, previewInspector; scope.cleanup(() => { detailInspector?.dispose(); previewInspector?.dispose(); }); - const visit = lastVisit; + const visit = embedded ? null : lastVisit; let layout = visit?.layout || 'grid', selection = visit?.selection || null, frame = 0, loadFrame = 0, restoreFrame = 0, observer, viewer; let state, geometry = { positions: [], height: 0, maxHeight: 0 }, optionsRequest; const rendered = new Map(); const itemIndexes = new Map(); const filters = { root: 'all', q: '', subfolder: '', media: 'all', sort: 'newest', ...visit?.filters }; scope.cleanup(() => { - lastVisit = state ? { filters: {...filters}, state, layout, selection, scrollY: window.scrollY } : null; + if (!embedded) lastVisit = state ? { filters: {...filters}, state, layout, selection, scrollY: window.scrollY } : null; cancelAnimationFrame(restoreFrame); }); main.classList.add('images-main'); scope.cleanup(() => main.classList.remove('images-main')); - main.append(el('p', 'Browse your images, explore the details, keep your creative context.', 'intro')); + if (!embedded) main.append(el('p', 'Browse your images, explore the details, keep your creative context.', 'intro')); const filtersBar = el('div', undefined, 'image-filters'); const search = el('input'); search.value = filters.q; @@ -50,7 +53,7 @@ export function mountImages(main, api, parentScope) { createField('Folder', folder, 'image-folder'), createField('Media', media, 'image-media'), createField('Sort', sort, 'image-sort')); const optionsStatus = el('p', '', 'options-status muted'); optionsStatus.hidden = true; optionsStatus.setAttribute('role', 'alert'); - main.append(filtersBar, optionsStatus); + if (!embedded) main.append(filtersBar, optionsStatus); const toolbar = el('div', undefined, 'image-toolbar'); const count = el('p', 'Loading images…', 'muted'); const layouts = el('div', undefined, 'image-layouts'); @@ -86,7 +89,8 @@ export function mountImages(main, api, parentScope) { }); const currentGallery = el('a', 'Current gallery', 'workspace-link'); currentGallery.href = resolveUrl('/prompt_manager/gallery'); - toolbar.append(count, layouts, refresh, currentGallery); + toolbar.append(count, layouts); + if (!embedded) toolbar.append(refresh, currentGallery); main.append(toolbar); const body = el('div', undefined, 'image-workspace'); const collection = el('section', undefined, 'image-collection'); @@ -159,6 +163,7 @@ export function mountImages(main, api, parentScope) { download.href = resolveUrl(image.url); download.download = image.filename; const prompts = el('div'); const legacy = el('p', 'Open Current gallery for tagging.', 'muted'); + legacy.hidden = embedded; details.replaceChildren(el('p', 'SELECTED IMAGE', 'eyebrow'), el('h2', image.filename), thumbnail, preview, download, prompts, metadata, legacy); detailInspector = mountPromptInspector(prompts, {api, image, sender, parentScope:scope}); for (const [key, card] of rendered) { @@ -307,18 +312,18 @@ export function mountImages(main, api, parentScope) { for (let index = state?.items.length || 0; index < next.items.length; index++) itemIndexes.set(imageKey(next.items[index]), index); } state = next; - count.textContent = `${next.loaded.toLocaleString()} of ${next.total.toLocaleString()} images`; + count.textContent = embedded ? `${next.loaded.toLocaleString()} loaded · ${next.total.toLocaleString()} linked images` : `${next.loaded.toLocaleString()} of ${next.total.toLocaleString()} images`; if (changed) updateLayout(); message.textContent = next.error ? 'Images could not be loaded. Retry or refresh the collection.' : next.loading ? 'Loading images…' : ''; if (next.error) message.setAttribute('role', 'alert'); else message.setAttribute('role', 'status'); retry.hidden = !next.error; more.hidden = !next.hasMore || !!next.error; more.setAttribute('aria-disabled', String(next.loading)); - end.textContent = !next.loading && !next.error && !next.hasMore ? (next.loaded ? 'You’re all caught up.' : 'No matching images or media. Try changing the filters.') : ''; + end.textContent = !next.loading && !next.error && !next.hasMore ? (next.loaded ? 'You’re all caught up.' : embedded ? 'No linked media available for this selection.' : 'No matching images or media. Try changing the filters.') : ''; if (!selection && next.items.length) inspect(next.items[0]); scheduleLoad(); } - const stream = createImageStream({ api, onChange: renderState, restore: visit ? {filters, state:visit.state} : undefined }); + const stream = createImageStream({ api, fetchPage, onChange: renderState, restore: visit ? {filters, state:visit.state} : undefined }); scope.cleanup(() => { stream.dispose(); for (const video of body.querySelectorAll('video')) releaseVideo(video); @@ -374,7 +379,7 @@ export function mountImages(main, api, parentScope) { reset(); }); } - loadOptions(); + if (!embedded) loadOptions(); if (visit) { renderState(stream.state); const selected = stream.state.items.find(image => imageKey(image) === selection); @@ -384,4 +389,5 @@ export function mountImages(main, api, parentScope) { }); if (visit.state.loading || visit.state.error) stream.loadMore(); } else reset(); + return {dispose}; } diff --git a/web/js/workspace/index.mjs b/web/js/workspace/index.mjs index 10cc5da..af347e6 100644 --- a/web/js/workspace/index.mjs +++ b/web/js/workspace/index.mjs @@ -3,6 +3,7 @@ import { createButton, createField, createScope, createSelect } from '../shared/ import { routes, mountRouter, summarizeStats } from './state.mjs'; import { mountWorkspaceTheme } from './theme.mjs'; import { mountImages } from './images.mjs'; +import { mountLibrary } from './library.mjs'; const { createApiClient, resolveUrl } = window.ApiClient; @@ -62,6 +63,10 @@ function mountWorkspace() { mountImages(main, api, view); return; } + if (route.id === 'library') { + mountLibrary(main, api, view, {positiveId:route.positiveId}); + return; + } if (route.id !== 'overview') { main.append(element('p', route.description, 'intro')); const panel = element('section', undefined, 'panel handoff'); diff --git a/web/js/workspace/library-state.mjs b/web/js/workspace/library-state.mjs new file mode 100644 index 0000000..fd2e8ed --- /dev/null +++ b/web/js/workspace/library-state.mjs @@ -0,0 +1,89 @@ +function validId(value) { return Number.isSafeInteger(value) && value > 0; } +function parent(value) { + return value && validId(value.id) && typeof value.text==='string'; +} +function parameters(filters,limit) { + const query=new URLSearchParams({limit:String(limit)}); + for(const key of ['text','category']) { + if(filters[key]!==undefined && typeof filters[key]!=='string') throw new TypeError('Invalid library filter'); + if(filters[key]) query.set(key,filters[key]); + } + if(filters.tags!==undefined && (!Array.isArray(filters.tags) || filters.tags.some(tag=>typeof tag!=='string'))) throw new TypeError('Invalid library tags'); + for(const tag of filters.tags || []) if(tag.trim()) query.append('tag',tag.trim()); + const sort=filters.sort || 'newest'; + if(!['newest','oldest','name','rating'].includes(sort)) throw new TypeError('Invalid library sort'); + query.set('sort',sort);return query; +} +function validatePage(page,cursor) { + if(!page || !Array.isArray(page.items) || page.items.some(item=>!parent(item)) || !Number.isSafeInteger(page.total) || page.total<0 || typeof page.has_more!=='boolean' || !(page.next_cursor===null || (typeof page.next_cursor==='string' && page.next_cursor.length)) || page.has_more!==(page.next_cursor!==null) || (page.has_more && cursor===page.next_cursor)) throw new TypeError('Invalid library page'); +} +export function createLibraryStream({api,onChange=()=>{},restore}) { + let state=Object.freeze({items:Object.freeze([]),total:0,cursor:null,hasMore:true,loading:false,error:null}); + let query=parameters({},40),request,disposed=false,seen=new Set(); + if(restore) { + query=parameters(restore.filters,40);const saved=restore.state; + validatePage({items:saved.items,total:saved.total,next_cursor:saved.cursor,has_more:saved.cursor!==null},null); + if(new Set(saved.items.map(item=>item.id)).size!==saved.items.length) throw new TypeError('Duplicate restored parent'); + state=Object.freeze({...saved,items:Object.freeze(saved.items.map(item=>Object.freeze({...item}))),loading:false,error:null});seen=new Set(state.items.map(item=>item.id)); + } + const emit=patch=>{state=Object.freeze({...state,...patch});onChange(state);}; + async function loadMore() { + if(disposed || state.loading || !state.hasMore) return 0; + const current=request=new AbortController();const cursor=state.cursor; + emit({loading:true,error:null});const params=new URLSearchParams(query);if(cursor!==null) params.set('cursor',cursor); + try { + const page=await api.get(`/prompt_manager/library?${params}`,{signal:current.signal}); + if(disposed || current!==request) return 0; + validatePage(page,cursor);const incoming=[];const added=new Set(); + for(const item of page.items) if(!seen.has(item.id) && !added.has(item.id)) {added.add(item.id);incoming.push(Object.freeze({...item}));} + for(const value of added) seen.add(value); + request=null;emit({items:incoming.length?Object.freeze([...state.items,...incoming]):state.items,total:page.total,cursor:page.next_cursor,hasMore:page.has_more,loading:false,error:null});return incoming.length; + } catch(error) {if(!disposed && current===request) {request=null;emit({loading:false,error});}return 0;} + } + return {get state(){return state;},loadMore,async reset(filters={}) { + if(disposed) return 0;const next=parameters(filters,40);request?.abort();request=null;query=next;seen=new Set();emit({items:Object.freeze([]),total:0,cursor:null,hasMore:true,loading:false,error:null});return loadMore(); + },dispose(){disposed=true;request?.abort();request=null;}}; +} +export function libraryPromptRoles(detail,pairId=null) { + const variant=pairId===null?null:detail.variants.find(item=>item.id===pairId); + if(pairId!==null && !variant) throw new TypeError('Saved negative variant is unavailable'); + return {positive:{status:'resolved',text:detail.positive.text,source:'library'},negative:variant?{status:'resolved',text:variant.negative_text,source:'library'}:{status:'unresolved',text:null,source:null,message:'Choose a saved negative variant to inspect or send it.'}}; +} +export function createLibraryDetail({api,onChange}) { + let request,disposed=false,id; + let state=Object.freeze({detail:null,loading:false,error:null,loadingVariants:false,variantsError:null}); + const emit=patch=>{state=Object.freeze({...state,...patch});onChange(state);}; + function validate(detail) { + if(!parent(detail.positive) || detail.positive.id!==id || !Array.isArray(detail.variants) || detail.variants.some(item=>!validId(item.id) || typeof item.negative_text!=='string' || typeof item.explicit_empty!=='boolean' || item.explicit_empty!==(item.negative_text==='')) || new Set(detail.variants.map(item=>item.id)).size!==detail.variants.length) throw new TypeError('Invalid prompt history'); + const total=detail.variant_total ?? detail.variants.length,more=detail.variants_has_more ?? false,cursor=detail.variants_next_cursor ?? null; + if(!Number.isSafeInteger(total) || total0)) || more!==(cursor!==null)) throw new TypeError('Invalid negative variant page'); + return {...detail,variant_total:total,variants_has_more:more,variants_next_cursor:cursor}; + } + async function fetch(append) { + if(disposed || (append && (!state.detail?.variants_has_more || state.loadingVariants || state.loading))) return 0; + request?.abort();const current=request=new AbortController();const previous=state.detail;const cursor=append?previous.variants_next_cursor:null; + emit(append?{loadingVariants:true,variantsError:null}:{detail:null,loading:true,error:null,loadingVariants:false,variantsError:null}); + try { + if(!validId(id)) throw new TypeError('Invalid positive prompt'); + const query=new URLSearchParams({variant_limit:'40'});if(cursor) query.set('variant_cursor',cursor); + const raw=await api.get(`/prompt_manager/library/${id}?${query}`,{signal:current.signal}); + if(disposed || request!==current) return 0; + const detail=validate(raw); + if(append) { + if(detail.positive.text!==previous.positive.text || (detail.variants_has_more && detail.variants_next_cursor===cursor)) throw new TypeError('Prompt history changed. Reload it before continuing.'); + const variants=new Map(previous.variants.map(item=>[item.id,item]));for(const item of detail.variants) if(!variants.has(item.id)) variants.set(item.id,item);detail.variants=[...variants.values()]; + } + request=null;emit({detail,loading:false,error:null,loadingVariants:false,variantsError:null});return detail.variants.length-(append?previous.variants.length:0); + } catch(error) {if(!disposed && request===current) {request=null;emit(append?{loadingVariants:false,variantsError:error}:{loading:false,error});}return 0;} + } + return {get state(){return state;},load(value){id=value;return fetch(false);},loadMore(){return fetch(true);},dispose(){disposed=true;request?.abort();}}; +} + +export function libraryWindow(count,columns,top,height,focused=-1) { + if(count<=120) return Array.from({length:count},(_,index)=>index); + const rows=Math.ceil(count/columns),first=Math.max(0,Math.floor(top/578)-2),last=Math.min(rows-1,Math.ceil((top+height)/578)+2); + const keep=new Set(); + for(let row=first;row<=last;row++) keep.add(row); + if(focused>=0 && focuseda-b).flatMap(row=>Array.from({length:columns},(_,column)=>row*columns+column).filter(index=>index :only-child { grid-column: 1 / -1; } +.library-main .library-art-empty { display: grid; place-content: center; min-inline-size: 0; font-size: 12px; color: var(--ca-muted); } +.library-main .library-card-content { min-block-size: 0; display: flex; flex-direction: column; gap: 10px; padding: 18px; } +.library-main .library-card-title { max-block-size: 72px; overflow: auto; flex-shrink: 0; display: flex; align-items: start; justify-content: space-between; gap: 12px; } +.library-main .library-card-title h2 { margin: 0; font-size: 16px; min-inline-size: 0; overflow-wrap: anywhere; } +.library-main .library-title-link { color: var(--ca-text); text-decoration: none; } +.library-main .library-title-link:hover { color: var(--ca-accent); } +.library-main .library-card-prompts { flex: 1 1 auto; overflow: auto; } +.library-main .library-card-prompts .prompt-block { margin: 0; } +.library-main .library-card-prompts .prompt-text { max-block-size: 100px; } +.library-main .library-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; font-size: 11px; color: var(--ca-muted); } +.library-main .library-chip { display: inline-block; max-inline-size: 100%; padding: 4px 8px; border: 1px solid var(--ca-line); border-radius: 5px; font-size: 11px; color: var(--ca-muted); overflow-wrap: anywhere; } +.library-main .library-chip-negative { color: var(--ca-error-text); border-color: color-mix(in srgb, var(--ca-error) 35%, var(--ca-line)); } +.library-main .library-tags { display: flex; flex-wrap: wrap; gap: 5px; max-block-size: 50px; overflow: auto; } +.library-main .library-card-footer { padding: 11px 18px; border-block-start: 1px solid var(--ca-line); display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 12px; } +.library-main .library-history-link { display: inline-flex; align-items: center; gap: 7px; color: var(--ca-accent); } +.library-main .library-history-link svg { inline-size: 18px; block-size: 18px; } +.library-main .library-row-spacer { grid-column: 1 / -1; pointer-events: none; } +.library-main .library-continuation { padding-block: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; } +.library-main .library-status { flex: 1 1 240px; color: var(--ca-muted); } +.library-main .library-back { display: inline-block; margin-block: 0 12px; color: var(--ca-accent); } +.library-main .library-surface { padding: 22px; background: var(--ca-surface); border: 1px solid var(--ca-line); border-radius: 7px; margin-block: 18px; } +.library-main .library-branches { padding: 18px 20px; border: 1px solid var(--ca-line); border-radius: 6px; background: var(--ca-field); margin-block: 16px; } +.library-main .library-positive-lane { padding-block-end: 12px; border-block-end: 2px solid var(--library-positive); color: var(--library-positive); font-size: 12px; } +.library-main .library-variant-lane { display: flex; align-items: center; gap: 16px; min-block-size: 57px; margin-inline-start: 18px; border-inline-start: 2px solid var(--ca-error); padding-inline-start: 18px; } +.library-main .library-variant-lane span { min-inline-size: 0; overflow-wrap: anywhere; font-size: 12px; color: var(--ca-muted); } +.ca-tools .library-main .library-variant-dot { flex: 0 0 29px; inline-size: 29px; min-block-size: 29px; padding: 0; border-radius: 50%; background: var(--ca-error); border: 2px solid var(--ca-error); color: white; } +.library-main .library-variant-dot[aria-pressed="true"] { outline: 3px solid var(--ca-focus); outline-offset: 4px; } +.library-main .library-variants > button[aria-pressed="true"] { border-color: var(--ca-focus); } +.library-main .library-shared-gallery { margin-block-start: 24px; } +.library-main .library-variant-context { color: var(--ca-muted); font-size: 12px; } +@media (min-width: 1700px) { .library-main .library-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } } +@media (max-width: 700px) { main.library-main { padding: 20px 14px; } .library-main .library-grid { grid-template-columns: minmax(0, 1fr); } .library-main .library-surface { padding: 16px; } .library-main .library-card-title { flex-wrap: wrap; gap: 6px; } .library-main .library-toolbar > button { inline-size: 100%; } } + +[data-ca-theme="light"] main.library-main { --library-positive: #14784f; } diff --git a/web/js/workspace/library.mjs b/web/js/workspace/library.mjs new file mode 100644 index 0000000..eab6e44 --- /dev/null +++ b/web/js/workspace/library.mjs @@ -0,0 +1,203 @@ +import {createScope,createButton,createField,createSelect} from '../shared/toolkit/core.js'; +import {createPromptSender} from './prompt-sender.mjs'; +import {mountPromptBlocks} from './prompt-inspector.mjs'; +import {mountImages} from './images.mjs'; +import {createLibraryStream,createLibraryDetail,libraryPromptRoles,libraryWindow} from './library-state.mjs'; + +let shelfVisit=null; +const variantSelections=new Map(); +function el(tag,text,className) { + const node=document.createElement(tag);if(text!==undefined) node.textContent=text;if(className) node.className=className;return node; +} +function link(text,href,className) {const node=el('a',text,className);node.href=href;return node;} +function title(text) {const first=text.split('\n')[0].trim();return first.length>80?`${first.slice(0,80)}…`:first;} +function branchIcon() { + const svg=document.createElementNS('http://www.w3.org/2000/svg','svg');svg.setAttribute('viewBox','0 0 24 24');svg.setAttribute('aria-hidden','true');svg.setAttribute('fill','none');svg.setAttribute('stroke','currentColor');svg.setAttribute('stroke-width','1.8'); + const path=document.createElementNS('http://www.w3.org/2000/svg','path');path.setAttribute('d','M6 8v8m0-4h6a6 6 0 0 0 6-6M9 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm0 14a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM21 3a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z');svg.append(path);return svg; +} + +export function mountLibrary(main,api,parentScope,{positiveId}={}) { + const scope=createScope();parentScope.cleanup(()=>scope.dispose()); + main.classList.add('library-main');scope.cleanup(()=>main.classList.remove('library-main')); + const sender=createPromptSender({scope}); + if(positiveId!==undefined) {mountHistory();return;} + mountShelf(); + + function mountShelf() { + const visit=shelfVisit;const filters={text:'',category:'',tags:[],sort:'newest',...visit?.filters}; + const section=el('section',undefined,'library-shelf');section.setAttribute('aria-label','Prompt library'); + const introduction=el('p','One positive. Reusable negatives. Every experiment stays connected.','intro'); + const toolbar=el('search',undefined,'library-toolbar'); + const search=el('input');search.type='search';search.placeholder='Search prompts and saved negatives…';search.value=filters.text;search.maxLength=500; + const category=createSelect([['','All categories']], '');category.value=filters.category; + const tags=el('input');tags.type='text';tags.placeholder='Comma-separated tags';tags.value=filters.tags.join(', ');tags.maxLength=2000; + const sort=createSelect([['newest','Recently added'],['oldest','Oldest first'],['name','Prompt A–Z'],['rating','Highest rated']], '');sort.value=filters.sort; + const refresh=createButton('Refresh library'); + toolbar.append(createField('Search prompts',search,'library-search'),createField('Category',category,'library-category'),createField('Tags',tags,'library-tags'),createField('Sort',sort,'library-sort'),refresh); + const optionsStatus=el('p','','library-options-status');optionsStatus.hidden=true;optionsStatus.setAttribute('role','alert'); + const caption=el('p','','library-caption');caption.setAttribute('role','status'); + const grid=el('div',undefined,'library-grid');grid.setAttribute('role','list');grid.setAttribute('aria-label','Positive prompts'); + const message=el('p','','library-status');message.setAttribute('role','status'); + const continuation=el('div',undefined,'library-continuation'); + const more=createButton('Load more prompts');const retry=createButton('Retry prompt library');retry.hidden=true; + const legacy=link('Current prompt library',window.ApiClient.resolveUrl('/prompt_manager/admin'),'workspace-link'); + continuation.append(message,retry,more);section.append(introduction,toolbar,optionsStatus,legacy,caption,grid,continuation);main.append(section); + const cards=new Map();let state,frame=0,loadFrame=0,observer,optionsRequest,focusOverride=-1,restoreFrame=0; + const columns=()=>window.innerWidth>=1700?3:window.innerWidth<=700?1:2; + function removeCard(card) {card.blocks.dispose();card.node.remove();} + function cardFor(item,index) { + const article=el('article',undefined,'library-card');article.dataset.promptId=item.id;article.setAttribute('role','listitem'); + const art=el('div',undefined,'library-card-art');art.setAttribute('aria-hidden','true'); + const previews=item.previews || []; + for(const image of previews.slice(0,2)) { + if(image.is_video && !image.thumbnail_url) art.append(el('span','Video preview','library-art-empty')); + else { + const img=el('img');img.src=window.ApiClient.resolveUrl(image.thumbnail_url || image.url);img.alt='';img.loading='lazy';img.decoding='async';img.width=image.width || 800;img.height=image.height || 600;art.append(img); + } + } + if(!previews.length) art.append(el('span','No available image previews','library-art-empty')); + const content=el('div',undefined,'library-card-content'); + const heading=el('header',undefined,'library-card-title'); + const name=link(title(item.text),`#/library/${item.id}`,'library-title-link');const h2=el('h2');h2.append(name); + heading.append(h2,el('span',item.category || 'Uncategorized','library-chip')); + const prompts=el('div',undefined,'library-card-prompts'); + const blocks=mountPromptBlocks(prompts,{prompts:{positive:{status:'resolved',text:item.text,source:'library'}},sender,parentScope:scope,roles:['positive']}); + const stats=el('div',undefined,'library-card-meta');stats.append(el('span',item.variant_count?`${item.variant_count} saved negative variants`:'No saved negatives','library-chip library-chip-negative'),el('span',`${item.image_count} linked images`)); + const vocabulary=el('div',undefined,'library-tags');for(const tag of item.tags || []) vocabulary.append(el('span',tag,'library-chip')); + content.append(heading,prompts,stats,vocabulary); + const footer=el('footer',undefined,'library-card-footer');footer.append(el('span',item.rating?`${item.rating} / 5`:'Unrated','muted')); + const history=link('',`#/library/${item.id}`,'library-history-link');history.append(branchIcon(),el('span','Explore history'));footer.append(history); + article.append(art,content,footer);article.dataset.index=index;return {node:article,blocks}; + } + function renderWindow() { + if(!state || scope.signal.aborted) return; + const active=document.activeElement?.closest('article[data-prompt-id]'); + const focused=focusOverride>=0?focusOverride:active?Number(active.dataset.index):-1; + const size=columns();const top=Math.max(0,-grid.getBoundingClientRect().top); + const indexes=libraryWindow(state.items.length,size,top,window.innerHeight,focused);const keep=new Set(indexes.map(index=>state.items[index].id)); + for(const [id,card] of cards) if(!keep.has(id)) {removeCard(card);cards.delete(id);} + const children=[];let previousRow=-1; + for(const index of indexes) { + const row=Math.floor(index/size); + if(index%size===0 && row>previousRow+1) { + const gap=el('div',undefined,'library-row-spacer');gap.setAttribute('aria-hidden','true');gap.style.blockSize=`${(row-previousRow-1)*578-18}px`;children.push(gap); + } + let card=cards.get(state.items[index].id); + if(!card) {card=cardFor(state.items[index],index);cards.set(state.items[index].id,card);} + card.node.setAttribute('aria-posinset',index+1);card.node.setAttribute('aria-setsize',state.total);children.push(card.node);previousRow=row; + } + const remaining=Math.ceil(state.items.length/size)-previousRow-1; + if(remaining>0) {const gap=el('div',undefined,'library-row-spacer');gap.setAttribute('aria-hidden','true');gap.style.blockSize=`${remaining*578-18}px`;children.push(gap);} + // Remove obsolete spacers first: moving a focused card past an old spacer loses focus. + for(const child of [...grid.children]) if(!children.includes(child)) child.remove(); + let previous=null; + for(const child of children) {if(previous?previous.nextElementSibling!==child:grid.firstElementChild!==child) grid.insertBefore(child,previous?previous.nextElementSibling:grid.firstChild);previous=child;} + } + const schedule=()=>{if(!frame) frame=requestAnimationFrame(()=>{frame=0;renderWindow();});}; + function focusCard(index,last=false) { + if(index<0 || index>=state.items.length) return; + focusOverride=index;renderWindow();const card=cards.get(state.items[index].id).node; + const controls=card.querySelectorAll('a,button');(last?controls[controls.length-1]:controls[0]).focus();card.scrollIntoView({block:'nearest'});focusOverride=-1;renderWindow(); + } + scope.listen(grid,'keydown',event=>{ + const card=event.target.closest('article[data-prompt-id]');if(!card) return; + const index=Number(card.dataset.index); + if(event.target.matches('a') && ['Home','End','ArrowLeft','ArrowRight'].includes(event.key)) {event.preventDefault();focusCard(event.key==='Home'?0:event.key==='End'?state.items.length-1:index+(event.key==='ArrowLeft'?-1:1));} + else if(event.key==='Tab') { + const controls=card.querySelectorAll('a,button');const next=index+(event.shiftKey?-1:1); + const edge=event.shiftKey?controls[0]:controls[controls.length-1]; + if(event.target===edge && state.items[next] && !cards.has(state.items[next].id)) {event.preventDefault();focusCard(next,event.shiftKey);} + } + }); + function render(next) { + state=next; + caption.textContent=`${next.items.length} of ${next.total} positive prompts · Images are grouped by positive prompt`; + message.textContent=next.error?'Prompt library could not be loaded. Retry or refresh.':next.loading?'Loading prompt library…':!next.items.length?'No matching prompts. Try changing the filters.':!next.hasMore?'You’re all caught up.':''; + message.setAttribute('role',next.error?'alert':'status');retry.hidden=!next.error;more.hidden=!next.hasMore || !!next.error;more.setAttribute('aria-disabled',String(next.loading)); + renderWindow();scheduleLoad(); + } + const stream=createLibraryStream({api,onChange:render,restore:visit?{filters,state:visit.state}:undefined}); + function maybeLoad() { + if(!observer || !state?.hasMore || state.loading || state.error || scope.signal.aborted) return; + const bounds=continuation.getBoundingClientRect();if(bounds.top<=window.innerHeight+250 && bounds.bottom>=0) stream.loadMore(); + } + function scheduleLoad() {if(!loadFrame) loadFrame=requestAnimationFrame(()=>{loadFrame=0;maybeLoad();});} + if(typeof IntersectionObserver==='function') {observer=new IntersectionObserver(entries=>{if(entries.some(entry=>entry.isIntersecting)) maybeLoad();},{rootMargin:'250px'});observer.observe(continuation);} + async function loadCategories() { + optionsRequest?.abort();const request=optionsRequest=new AbortController(); + try { + const data=await api.get('/prompt_manager/library/options',{signal:request.signal});if(scope.signal.aborted || optionsRequest!==request) return; + const values=[...new Set([...data.categories,filters.category].filter(Boolean))];category.replaceChildren(new Option('All categories',''),...values.map(value=>new Option(value,value)));category.value=filters.category;optionsStatus.hidden=true; + } catch {if(!scope.signal.aborted && optionsRequest===request) {optionsStatus.textContent='Categories could not be loaded. Refresh library to retry.';optionsStatus.hidden=false;}} + } + const reset=()=>stream.reset(filters); + scope.listen(search,'input',scope.debounce(()=>{filters.text=search.value.trim();reset();},200)); + scope.listen(tags,'input',scope.debounce(()=>{filters.tags=[...new Set(tags.value.split(',').map(tag=>tag.trim()).filter(Boolean))];reset();},200)); + scope.listen(category,'change',()=>{filters.category=category.value;reset();});scope.listen(sort,'change',()=>{filters.sort=sort.value;reset();}); + scope.listen(refresh,'click',()=>{loadCategories();reset();});scope.listen(more,'click',()=>stream.loadMore());scope.listen(retry,'click',()=>stream.loadMore()); + scope.listen(window,'scroll',schedule);scope.listen(window,'resize',schedule); + scope.cleanup(()=>{shelfVisit=state?{filters:{...filters,tags:[...filters.tags]},state,scrollY:window.scrollY}:null;stream.dispose();optionsRequest?.abort();observer?.disconnect();cancelAnimationFrame(frame);cancelAnimationFrame(loadFrame);cancelAnimationFrame(restoreFrame);for(const card of cards.values()) removeCard(card);cards.clear();}); + loadCategories();if(visit) {render(stream.state);restoreFrame=requestAnimationFrame(()=>{if(!scope.signal.aborted) {window.scrollTo(0,visit.scrollY);renderWindow();scheduleLoad();}});if(visit.state.loading || visit.state.error) stream.loadMore();} else reset(); + } + + function mountHistory() { + const history=el('section',undefined,'library-history');history.setAttribute('aria-label','Prompt history');main.append(history); + const back=link('Back to library','#/library','library-back'); + const body=el('div');history.append(back,body); + let blocks,galleryScope,detail,contentScope,updateBranches; + scope.cleanup(()=>{blocks?.dispose();galleryScope?.dispose();contentScope?.dispose();}); + const loader=createLibraryDetail({api,onChange:render});scope.cleanup(()=>loader.dispose()); + function render(state) { + if(detail && state.detail && !state.loading && !state.error) {detail=state.detail;updateBranches(state);return;} + contentScope?.dispose();contentScope=createScope();detail=null;updateBranches=null; + blocks?.dispose();blocks=null;galleryScope?.dispose();galleryScope=null;body.replaceChildren(); + if(state.loading || state.error) { + const message=el('p',state.loading?'Loading prompt history…':'Prompt history could not be loaded.','library-status');message.setAttribute('role',state.error?'alert':'status');body.append(message); + if(state.error) {const retry=createButton('Retry prompt history');contentScope.listen(retry,'click',()=>loader.load(positiveId));body.append(retry);}return; + } + detail=state.detail;main.querySelector('h1').textContent=title(detail.positive.text); + const subtitle=el('p','One positive prompt. Reusable negative variants. One shared gallery.','intro'); + const summary=el('article',undefined,'library-surface');summary.append(el('span',detail.positive.category || 'Uncategorized','library-chip')); + const promptContainer=el('div');promptContainer.setAttribute('role','region');promptContainer.setAttribute('aria-label','Saved prompt texts');summary.append(promptContainer); + const all=createButton('All images for this positive'); + const variants=el('section',undefined,'library-surface library-variants');variants.setAttribute('aria-label','Saved negative variants'); + variants.append(el('h2','Negative variants'),el('p','Choose a saved negative to inspect its full text and filter the shared gallery.','muted')); + const branches=el('div',undefined,'library-branches');branches.append(el('p','+ Positive prompt · unchanged','library-positive-lane')); + const choices=[]; + const variantCount=el('p','','muted');variantCount.setAttribute('role','status'); + const variantError=el('p','','muted');variantError.setAttribute('role','alert');variantError.hidden=true; + const more=createButton('Load more negative variants');const retry=createButton('Retry negative variants');retry.hidden=true; + contentScope.listen(more,'click',()=>loader.loadMore());contentScope.listen(retry,'click',()=>loader.loadMore()); + updateBranches=state=>{ + const known=new Set(choices.map(choice=>choice.variant.id)); + for(const [index,variant] of detail.variants.entries()) if(!known.has(variant.id)) { + const lane=el('div',undefined,'library-variant-lane');const button=createButton('−','library-variant-dot');button.setAttribute('aria-label',`Select negative variant ${index+1}`); + button.setAttribute('aria-pressed',String(variantSelections.get(positiveId)===variant.id)); + lane.append(button,el('span',`${variant.title || (variant.explicit_empty?'Explicitly empty negative':`Negative variant ${index+1}`)} · ${variant.image_count} linked images`));branches.append(lane);choices.push({button,variant}); + contentScope.listen(button,'click',()=>select(variant.id)); + } + variantCount.textContent=`${detail.variants.length} of ${detail.variant_total} saved negative variants`; + more.hidden=!detail.variants_has_more || !!state.variantsError;more.setAttribute('aria-disabled',String(state.loadingVariants));retry.hidden=!state.variantsError; + variantError.hidden=!state.variantsError;variantError.textContent=state.variantsError?'Negative variants could not be loaded. Retry to continue.':''; + }; + updateBranches(state); + if(!detail.variants.length) branches.append(el('p','No saved negative variants. Existing image associations remain available.','muted')); + const note=el('p','Saved combinations, not an execution timeline.','muted');variants.append(branches,variantCount,variantError,more,retry,note,all); + const context=el('p','','library-variant-context');context.setAttribute('role','status'); + const gallery=el('section',undefined,'library-shared-gallery');gallery.setAttribute('aria-label','Shared gallery');gallery.append(el('h2','Shared gallery'),context); + const images=el('div',undefined,'library-linked-images');gallery.append(images);let activePairId; + body.append(subtitle,summary,variants,gallery); + blocks=mountPromptBlocks(promptContainer,{prompts:libraryPromptRoles(detail),sender,parentScope:contentScope}); + function select(pairId) { + if(galleryScope && activePairId===pairId) return;activePairId=pairId; + variantSelections.set(positiveId,pairId);blocks.update(libraryPromptRoles(detail,pairId)); + for(const choice of choices) choice.button.setAttribute('aria-pressed',String(choice.variant.id===pairId));all.setAttribute('aria-pressed',String(pairId===null)); + context.textContent=pairId===null?'All images for this positive, including unassigned images. Choose a saved negative variant to inspect or send it.':`Negative variant ${detail.variants.findIndex(variant=>variant.id===pairId)+1} · same positive prompt`; + galleryScope?.dispose();galleryScope=createScope();images.replaceChildren(); + mountImages(images,api,galleryScope,{embedded:true,fetchPage:({parameters,signal})=>{const query=new URLSearchParams(parameters);if(pairId!==null) query.set('pair_id',String(pairId));return api.get(`/prompt_manager/library/${positiveId}/images?${query}`,{signal});}}); + } + contentScope.listen(all,'click',()=>select(null));const remembered=variantSelections.get(positiveId);select(detail.variants.some(variant=>variant.id===remembered)?remembered:null); + } + loader.load(positiveId); + } +} diff --git a/web/js/workspace/prompt-inspector.mjs b/web/js/workspace/prompt-inspector.mjs index bcd9bc8..a321abb 100644 --- a/web/js/workspace/prompt-inspector.mjs +++ b/web/js/workspace/prompt-inspector.mjs @@ -29,6 +29,7 @@ export function createInspectionLoader(api, onChange) { } const sources = { + library: 'Saved library prompt', execution: 'Recorded at execution', 'graph-inferred': 'Inferred from the saved workflow', 'embedded-parameters': 'Embedded generation parameters', @@ -46,14 +47,18 @@ function el(tag, text, className) { return node; } -export function mountPromptInspector(container, {api, image, sender, parentScope}) { +function childScope(parentScope) { const scope = createScope(); const dispose = () => scope.dispose(); parentScope.signal.addEventListener('abort', dispose, {once:true}); scope.cleanup(() => parentScope.signal.removeEventListener('abort', dispose)); + if (parentScope.signal.aborted) scope.dispose(); + return scope; +} + +export function mountPromptBlocks(container, {prompts, sender, parentScope, roles:visibleRoles = ['positive', 'negative'], onRetry}) { + const scope = childScope(parentScope); container.classList.add('prompt-inspector'); - const loader = createInspectionLoader(api, render); - scope.cleanup(() => loader.dispose()); scope.listen(container, 'click', async event => { const send = event.target.closest('[data-send-role]'); if (send) { @@ -71,25 +76,26 @@ export function mountPromptInspector(container, {api, image, sender, parentScope if (!scope.signal.aborted) status.textContent = 'Copy unavailable. Select the prompt text to copy it.'; } } - if (event.target.closest('[data-retry-prompts]')) loader.load(image); + if (event.target.closest('[data-retry-prompts]')) onRetry?.(); }); let roles = {}; function render(state) { + if (scope.signal.aborted) return; roles = {}; container.replaceChildren(); if (state.loading || state.error) { const status = el('p', state.loading ? 'Loading prompts…' : 'Could not read prompts from this file.', 'muted'); status.setAttribute('role', state.error ? 'alert' : 'status'); container.append(status); - if (state.error) { + if (state.error && onRetry) { const retry = createButton('Retry prompt details'); retry.dataset.retryPrompts = ''; container.append(retry); } return; } - roles = promptRoles(state.prompts); - for (const role of ['positive', 'negative']) { + roles = Object.fromEntries(Object.entries(promptRoles(state.prompts)).filter(([role]) => visibleRoles.includes(role))); + for (const role of visibleRoles) { const title = `${role[0].toUpperCase() + role.slice(1)} prompt`; const record = state.prompts?.[role]; const block = el('section', undefined, `prompt-block prompt-${role}`); @@ -119,6 +125,16 @@ export function mountPromptInspector(container, {api, image, sender, parentScope container.append(pair); } } - loader.load(image); + render({prompts}); + return {update:prompts => render({prompts}), setState:render, dispose:() => scope.dispose()}; +} + +export function mountPromptInspector(container, {api, image, sender, parentScope}) { + const scope = childScope(parentScope); + let loader; + const blocks = mountPromptBlocks(container, {sender, parentScope:scope, onRetry:() => loader.load(image)}); + loader = createInspectionLoader(api, blocks.setState); + scope.cleanup(() => loader.dispose()); + if (!scope.signal.aborted) loader.load(image); return {dispose:() => scope.dispose()}; } diff --git a/web/js/workspace/state.mjs b/web/js/workspace/state.mjs index 55c7ca6..9ce1cfb 100644 --- a/web/js/workspace/state.mjs +++ b/web/js/workspace/state.mjs @@ -13,6 +13,10 @@ export const routes = [ ]; export function resolveRoute(hash) { + const match = /^#\/library\/([1-9]\d*)$/.exec(hash); + if (match && Number.isSafeInteger(Number(match[1]))) { + return {...routes.find(route => route.id === 'library'), positiveId:Number(match[1]), hash}; + } return routes.find(route => hash === `#/${route.id}`) || routes[0]; } @@ -29,9 +33,9 @@ export function mountRouter(win, onRoute) { let current; const update = () => { const route = resolveRoute(win.location.hash); - const hash = `#/${route.id}`; + const hash = route.hash || `#/${route.id}`; if (win.location.hash !== hash) win.history.replaceState(win.history.state, '', hash); - if (current === route) return; + if (current?.id === route.id && current?.positiveId === route.positiveId) return; current = route; onRoute(route); }; diff --git a/web/workspace.html b/web/workspace.html index b66a17e..3fe3de1 100644 --- a/web/workspace.html +++ b/web/workspace.html @@ -9,6 +9,7 @@ +