From b3658132dd7d9368119d688c05f0b35714ef15cc Mon Sep 17 00:00:00 2001 From: Sam Rolfe Date: Sat, 10 Oct 2026 14:44:54 +1100 Subject: [PATCH] Initial Central AI Hub docs: brief, rules, README, outline context, architecture --- .gitignore | 2 + AGENTS.md | 91 + README.md | 81 + docs/archify/hub.architecture.json | 61 + docs/diagrams/hub-architecture.png | Bin 0 -> 150151 bytes docs/hub-architecture-map.html | 13716 +++++++++++++++++++++++++++ docs/hub-architecture.mmd | 36 + docs/outline/00-index.md | 38 + docs/outline/01-system-overview.md | 59 + docs/outline/02-config-and-env.md | 43 + docs/outline/03-code-map.md | 56 + docs/outline/04-agent-runbook.md | 55 + docs/vikunja-tasks.json | 16 + hub_brief.md | 150 + 14 files changed, 14404 insertions(+) create mode 100644 .gitignore create mode 100644 AGENTS.md create mode 100644 README.md create mode 100644 docs/archify/hub.architecture.json create mode 100644 docs/diagrams/hub-architecture.png create mode 100644 docs/hub-architecture-map.html create mode 100644 docs/hub-architecture.mmd create mode 100644 docs/outline/00-index.md create mode 100644 docs/outline/01-system-overview.md create mode 100644 docs/outline/02-config-and-env.md create mode 100644 docs/outline/03-code-map.md create mode 100644 docs/outline/04-agent-runbook.md create mode 100644 docs/vikunja-tasks.json create mode 100644 hub_brief.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a82649d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.env +*.visual-check.* diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..372f510 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,91 @@ +# Central AI Hub (`central_ai_llm_master`) + +## Mission + +Build the **Hub**. The Hub is one small service. Every way in reaches every +ability through it. Build the ability once. All ways in get it. + +## Authority + +Read `hub_brief.md` in this folder first. It is the agreed design. If this file +and the brief disagree, the brief wins. + +- `hub_brief.md` — the agreed brief (source of truth). +- `README.md` — technical readme. +- `docs/outline/` — AI context. Start with `00-index.md`. + +## What the Hub does + +Five steps, in order: + +1. **Hear** — take voice or text from any way in. +2. **Understand** — the LLM works out what was asked. +3. **Check** — is this person allowed to ask for this? +4. **Route** — send it to the right destination. +5. **Answer** — return a short reply in the right shape for the device. + +The reply can be text, spoken audio (TTS), Artemis commands, a notification, an +email, or a mix. TTS can play on the house speakers or on the phone. + +## The dividing line + +> Does this need a decision, or does it need to happen? + +- **Happen** — fast and certain. Go straight to the destination. No LLM in the + path of the action. +- **Decision** — slow, multi-step, worth recording. Send to Paperclip. + +**Paperclip is the work bench, not the switchboard.** + +## Rules + +1. All models go through **OmniRoute**. Never call a provider directly. +2. All secrets come from **`environment.d`**. Never hard-code. +3. Own service, own port, own folder. +4. No LLM in the path of a fast or consequential action. +5. Paperclip only for slow, multi-step, recorded work. +6. Replies return to the source and stay short. +7. Restricted actions need **tap-to-approve** on the admin app. +8. Only the admin app changes parental controls. +9. A new ability registers with the Hub. Build it once. + +## Build order + +1. **Thin slice, end to end.** Issue a Paperclip API key. File one job from a + script. Get the result announced back. Prove the round trip. +2. **Hub skeleton.** Hear → understand → route → answer, with one destination. +3. **Approval flow.** "Did you ask for this?" on the admin app. +4. **Internet control.** Standalone service with a plain API. Device-side + enforcement. Admin-only. +5. **Artemis.** Standalone service with a plain API. Screen control only. +6. **Move Jervis's tools** into the Hub. Jervis becomes voice-only. +7. **Phone Kotlin app.** Wake word, voice to the Hub, replies and approvals. +8. **Email and school pipelines.** Stay independent. Connect when ready. + +## Definition of done (phase 1) + +- A Paperclip API key exists. +- One job is filed by script and its result is spoken. +- The round trip is recorded in `docs/outline/04-agent-runbook.md`. + +## How this project relates to the other projects + +This project owns the **shared Hub**. It does not own the destinations. + +| Project | Relation | +|---|---| +| Email agent | Own pipeline. Reports through the Hub when ready. | +| Compass / NHS | Own pipeline. Reports through the Hub when ready. | +| Internet use control | Destination. Exposes a plain API. The Hub calls it. | +| Artemis | Destination. Exposes a plain API. The Hub calls it. | +| Jervis | Becomes voice-only. Its tools move here. | +| dsh | Calls the Hub for actions. | + +Each project writes its own docs. Do not copy theirs here. Link to them. + +## Do not + +- Do not build one central brain. No single personality or memory. +- Do not put Paperclip in the path of a fast command. +- Do not duplicate a destination inside the Hub. +- Do not add a spoken keycode as the only lock for restricted actions. diff --git a/README.md b/README.md new file mode 100644 index 0000000..6310291 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ +# Central AI Hub + +One small service that every way in reaches every ability through. Built once, +shared by the phone app, the house voice, chat, and the admin app. + +## Demonstrated Skills & Tech Stack + +- **Core Technologies**: Go or Python service · HTTP JSON API · MQTT · LLM + intent routing · OmniRoute gateway · Docker +- **Key Tools**: Jervis (voice) · Home Assistant · Paperclip · Artemis · + internet use control · Apprise / NTFY · OmniRoute +- **Engineering Capabilities**: service design · intent routing · authorization + and approval flows · event-driven integration · deterministic safety for + high-consequence actions + +## Quick Start + +```bash +# Phase 1 — prove the Paperclip round trip +# 1. Create an agent API key in Paperclip. +# 2. Export it for the test only. +export PAPERCLIP_API_KEY= +# 3. File one job. +curl -s -X POST http://192.168.20.13:3100/api/issues \ + -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"title":"round-trip test","description":"prove the return path"}' +``` + +Full steps: `docs/outline/04-agent-runbook.md`. + +## System Architecture + +```mermaid +flowchart LR + subgraph IN["Ways in"] + PHONE["Phone app
wake word + voice"] + ADMIN["Admin app
restricted actions"] + ESP["ESP32 voice
Hey Jervis"] + DSH["dsh chat"] + CONSOLE["Console portal"] + end + + HUB{{"HUB
hear - understand - check - route - answer"}} + + subgraph OUT["Destinations"] + HA["Home Assistant"] + SPK["Speakers
Jervis TTS"] + NET["Internet control"] + ART["Artemis
phone screen"] + PC["Paperclip
slow jobs"] + WEB["Web search"] + APP["Apprise / NTFY"] + end + + PHONE --> HUB + ESP --> HUB + DSH --> HUB + CONSOLE --> HUB + ADMIN --> HUB + HUB --> HA + HUB --> SPK + HUB --> NET + HUB --> ART + HUB --> PC + HUB --> WEB + HUB --> APP + PC -. result .-> HUB +``` + +*Interactive architecture map:* [maps.lab.audasmedia.com.au/central_ai_llm_master](https://maps.lab.audasmedia.com.au/central_ai_llm_master/docs/) + +## Usage & Configuration + +- **Model calls** go through OmniRoute at `http://192.168.20.13:20129/v1`. +- **Secrets** come from `~/.config/environment.d/10-secrets.conf`. +- **Paperclip** is at `http://192.168.20.13:3100`. An API key is required. +- **Home Assistant** is at `http://192.168.20.30:8123`. +- **Jervis** (voice) is at `http://192.168.20.13:8501`. + +The design brief is `hub_brief.md`. Project instructions are `AGENTS.md`. diff --git a/docs/archify/hub.architecture.json b/docs/archify/hub.architecture.json new file mode 100644 index 0000000..ad658a3 --- /dev/null +++ b/docs/archify/hub.architecture.json @@ -0,0 +1,61 @@ +{ + "schema_version": 1, + "diagram_type": "architecture", + "meta": { + "title": "Central AI Hub", + "output": "docs/hub-architecture-map.html", + "quality_profile": "showcase", + "views": [ + { + "id": "fast-command", + "label": "Fast command", + "focus": ["esp32", "hub", "ha", "spk"], + "note": "A fast command goes straight to the destination. No LLM waits in the action path." + }, + { + "id": "slow-job", + "label": "Slow job", + "focus": ["phone", "hub", "pc"], + "note": "A slow job goes to Paperclip. The result returns to the Hub later." + }, + { + "id": "restricted", + "label": "Restricted action", + "focus": ["admin", "hub", "net"], + "note": "Only the admin app can change parental controls. Voice may ask; the app confirms." + } + ] + }, + "components": [ + { "id": "phone", "type": "frontend", "label": "Phone app", "sublabel": "wake word + voice", "pos": [40, 80], "size": [150, 64] }, + { "id": "admin", "type": "security", "label": "Admin app", "sublabel": "restricted actions", "pos": [40, 200], "size": [150, 64] }, + { "id": "esp32", "type": "external", "label": "ESP32 voice", "sublabel": "Hey Jervis", "pos": [40, 320], "size": [150, 64] }, + { "id": "dsh", "type": "frontend", "label": "dsh chat", "sublabel": "per person", "pos": [40, 440], "size": [150, 64] }, + { "id": "hub", "type": "backend", "label": "Hub", "sublabel": "hear - understand - check - route - answer", "pos": [390, 260], "size": [190, 80], "tag": "one shared service" }, + { "id": "ha", "type": "external", "label": "Home Assistant", "sublabel": "devices, timers", "pos": [790, 40], "size": [160, 64] }, + { "id": "spk", "type": "external", "label": "Speakers", "sublabel": "Jervis TTS", "pos": [790, 150], "size": [160, 64] }, + { "id": "net", "type": "backend", "label": "Internet control", "sublabel": "parental limits", "pos": [790, 260], "size": [160, 64] }, + { "id": "art", "type": "backend", "label": "Artemis", "sublabel": "phone screen", "pos": [790, 370], "size": [160, 64] }, + { "id": "pc", "type": "backend", "label": "Paperclip", "sublabel": "slow jobs", "pos": [790, 480], "size": [160, 64] }, + { "id": "web", "type": "cloud", "label": "Web search", "sublabel": "Tavily", "pos": [790, 590], "size": [160, 64] }, + { "id": "app", "type": "backend", "label": "Apprise / NTFY", "sublabel": "notify + email", "pos": [790, 700], "size": [160, 64] } + ], + "boundaries": [ + { "kind": "region", "label": "Ways in", "wraps": ["phone", "admin", "esp32", "dsh"], "pad": 26 }, + { "kind": "region", "label": "Destinations", "wraps": ["ha", "spk", "net", "art", "pc", "web", "app"], "pad": 26 } + ], + "connections": [ + { "id": "phone-in", "from": "phone", "to": "hub", "label": "voice or text" }, + { "id": "admin-in", "from": "admin", "to": "hub", "label": "restricted" }, + { "id": "esp-in", "from": "esp32", "to": "hub", "label": "command" }, + { "id": "dsh-in", "from": "dsh", "to": "hub", "label": "action request" }, + { "id": "to-ha", "from": "hub", "to": "ha", "label": "do it" }, + { "id": "to-spk", "from": "hub", "to": "spk", "label": "speak" }, + { "id": "to-net", "from": "hub", "to": "net", "label": "confirm" }, + { "id": "to-art", "from": "hub", "to": "art", "label": "screen control" }, + { "id": "to-pc", "from": "hub", "to": "pc", "label": "file job" }, + { "id": "to-web", "from": "hub", "to": "web", "label": "search" }, + { "id": "to-app", "from": "hub", "to": "app", "label": "notify" }, + { "id": "pc-back", "from": "pc", "to": "hub", "label": "result", "variant": "dashed" } + ] +} diff --git a/docs/diagrams/hub-architecture.png b/docs/diagrams/hub-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..6d314bba3517ae4fb9334c418b6fe2de078ae172 GIT binary patch literal 150151 zcmd43WmHw|*Dk)X3sF!J5J6H}Hzlpo-Casbcc+EY-6dVp-74MPrKEIsoeA6D`+qQ=A;yn>1NR03fj}1&;E_Tgt`H&+mqV^yfPeA0 zvPXwN+(8KPyppkvS{l2oATxB@u+B|Pl&OJ6M42`Ac`PGiW!S*x``B`Xfeo{DW|_5( z&A0du9;x5DNd=BEMvvQKFU#DMxH6tS$GOWAgJ&^!`*y2t`?1>c-@otB;1TfSNG1C3 zH}bz(+mT5BdFj`oaQiq(ESNLV^_CoA^d%)H42$ z-=)O!(fJi=Go5i3bn5og&B4o|>iS<9$Y==gdT*m%hA$@p!t6{=0V%@$e$T zadg}Cb>6;>V6)l5BwZ>jDBu~kSQ@OmiESKAqfCPC_Cjxe@SF9&ozfet`I2R9Y{HrU z;Z~&cY317nA5rZclB$G}VgjpGPBo_ftZ1q43a|V_zN=Ll>~AcyvJQvRncRO#NsQY5 z)T>xn3A1gBl*_+=-(hC%X`(w5aWa zg^QcKH8`YbwLJV?EL!NgjqQ|M&uFQScud9D5j~^m{8t|-$I2K(mm3=!$1BM%U;g~m zQ>RrSkY)2!J%SvAOr4WzNTJ}}=JBEU((>l*$D@LUTPvz_q{12tM50lH^5WvU^W8>Y zFk0uJmye(r(aKS*Zg3sulkhJd38L{&krNLo!yQak2z~7j(e(vv7La^GMvjL z;Y)+V&}|Igzg?Oi^!Jd*ej>MS z4w?az3!;!N;r9*U_lXKci*2pes&>4=>-pdzV|rwCbm86s{jKeP?kIraai3~1RdV~{ z)%HuUkyXd3uRl+kg{};m@zmoWncYX`CpXM{Q|;ul$MG1`9Y$SsI%2S-Q?ew6k?T#t zRFN4O;4&s-_Nl`>vvOv;j~*SFT$x@tkjhF<+Kw$~?4Xkvl6(9k z)`ixcjT8Rw&Gv$7dwa)h2f_Bl9J!Y1)btjET1t8OTmY%E&!f^DttN$=H>H#42?<}U z)6KOZf3pblVi;RqH4bL}T?B`BD zNlkr2Uf1EgvS^wN}wc9gYHr)7-lYeUv8SDz9EW z*-&hh5a)cw;#)3=+3~FRUoa(%enw9(hYJxzCK~xWjM?O);fohR9&FU9rf=C;w3`!) zwOf8_w-ohd$PW#^@cfG7yD8#^pZDBkT%a$E5FOq7!{yE9G`mfEq8VF3Zd6 zF3)>S)$h8(l0^^g?Cp)l9SPNbkYLx1RM?t1u-vDTd-Jzb@o*JwCB}!W1^JGXd8(!66fBuag%))l_!~!!_p&7u7S@@9a{XJYby^?B8wRlCzslFK z(pJ_HG{-6x4_~1$aPFY@T6H6uI14MTmcM#?1@uydh~2|-dCRqTp5P_$?+TO%4rH}y z72JLJ(DBbNnxuvfy4eqmqN1V~FFN@*J0E8HP^wD3GcaH_R1mFIsh*9gjh4w)6DwU? zZVg`~8oK@H1(gP!^5Q^tCg%M#%atPopGS(ai?zhQj%&Yt)|vKaLKlR5JzIoj=XTj^ z_Kg1p=y@I z_cAdVseOZdsWpaU_65XH*}BH5>o;yV?{Bn4v-uj2no1>qS8S_w(JVBXU3w%flJ4wu z6=JBZr_7%L@BvKYciO=<-AIE9F?@V{3k$3v+wFzS^i7ADw~ovzL|4ytM}S<0!p+}5 zF1=@hOQ3zCYTLtszOW<+FR9XTKJF-ABF^zX<-Kb2nU(daP^}li^twzAhZVBvL0PKh z8o%&TNu^`hL$0%lisU^-H!-PJDb33`&?d5&ZoJIj;G&|cPF7a@~H3FxkalY2Qr6)P_yK=GA?h1_-A(2$0{0s#a zIW33n+V?!!uK3G&+Vm|EeIlhVj3KZhYu&xP?lmQ(t0vuI6B3X`&hKvytY1jZwx^v~ zzBN_;FOMZ+rHHG`;_`Y-%UdZagxT8Lv%Cn>A6N){$kCCOfWj8fk8-t6Odk zc972+t#mq+R2XbHKJ19%bTS&q+E0&~Dfhn{5I}3S&@03DY`r^*`%Alf5Mf7f_uBfp zxaH-fh~Te*3{H^@wr>6+D6rwW^?SUsVIXS^J9n3kO1&yIeWIVq_f{BefsD;_VOBOa z1C}N&N(KhQ<>4{&8#itYRqX$8MO&`hwK}$MjUK!4pp}X{+}86~O$`V8xMz?bNBQTF z5IHTaM0QR0tZxg&MeR?dUJtX>2#|R=p6A`}k25XBRNnR88H)=irw9VP$S|tX$Lyy2 zGV}3?odW}lJt^MaqO?QKJ4?ao>f+-3dOUo5?!8+}imjqEkle^rELTR`N_gAqP6;Ac z1|EmGxw%OR%^&U8?xu~VwnLzZd#mFg&uQfrNBhqY7M91@R{zxKQq_dEwuufGn>@17 z>q#ywDAc5#2!F2WE%4aLh=ygL@A%a7eV%Ty1a53uGIi2Z`L#;tW7W1FuTAe;9-L_uQ|06m>J6x8 zXPIqgd$HIo6y9xl#3tQgcb!hHLe5?;dz?|PyBqLTohl70t9?)MF)i(L&2P=YRLKj> z5KOx>GLOwq+^ky_Ms-7M5F>(Y?+fY*F^UaZ_`JWd<@!5PD1?PLa zx~d%Q7IhyB$jjTzwmzx((y_j^bui`Iv{Bn!F~6+5y1VMcWB6@nK>Z_9m+4N^n(Ti& zH)jZvVUdy3t>N1#u^Yip-_l86CruFu@_K)=H?sh-PBmOmP_VRY zg#Sn=t^V*Hg$DTuQtkS!TOqmr`sC(q>MogmkS|~OpPES}iyRn@oD63w=Zi(xlZ^5xD?8MAaA_A8;+Trn=tVr|MPg*4A?FYU(?)ZRHKVvE^lD{Cs>k zcz6(q>g$OV>wL+kVj`IdDjeoC4I-86^@T`RWiWAYC_4H8a4s)zHs7P`!rE@@UcwP; zh~Z#!-kcS>`emQR{KeNGK2*)s#QWnC;j(a_t2-)9LMr&*7gztowc7uSx8qelKbl@e znV_$G4`~po7tzt<5>lRY!qLW#L4&ebXVPf zxPbFz{ZAL>|6?mft?pl)|FYg)giTU|+MHeGoa8;u0xUmb0=e|RVwj#Ocyl>2@% zVp8p*U&v_ifQ4;hpuc~AF`JY~v&4L6bi&0X0Nu&yqhR2y-n(~SSN|>zY077-J(Y~7 zM#Bp5{f9%!h=_<*#>z?YY?6toBbzS($CjFdOhq?jw$O-q7sQLQuy8Q4_ExYy0&3&v)C`&$L0HYY&ZI1vVPyf z@X(O5(k$l7yt^p&W9?!ik6=3^BcnmTq3LApPfu)dr@gf&(#ax|4r#KBx@d`aR!{&= z0#8y>l1`n|#?0;!4o>)1CM5n?POA_+va;af;?Vs3o(5lnz@q%H04aDJ#_ijfO%_{! zxy;py43p$CS)1J0U8PfQJ2?k_{d!HjgBj!TsFjt|mLCxm6dUZ=zTs)0W30JVa;KGi&CvZq=Hd9JT#lZP{)|h`n;owlIoa2Z^m-PAA3`B*_WOsKj?S$6V^=Rd$XsTt4dKYTLjGg6?CpAdf zlq%9NsR4BtI{EguhdbL>Z!bZy>cQcByfKrpwaPWz`OH)QnET5PKt~0#cSJi4 znu9ry(|LJ4Ll!#YLVwuspu)DEyrpG96qn0Mna!#oB-rhhu`(#miKbYr78;{iTqvLT zzt(v~OY6(;eZZ|FA{trbQ*Qp!HCBpcq^{1cJ<8pTf1o!>gwgow;v5Ey6Y7b7D6RJ^D#e^F7}I?bBXox zhg&H!xsu%j_f9j?v(olsEk$M-KVG%*SM>erZDl@JWOq6)t)q{m2}sG{^FBa!1#*R? z4^I=#vUB;AfARBsle9kFRKwv=RPR7b!1+m~+F3BBU}fy;$$>#+iD!I#e9)NOcLk?L zKjRI<)CWydEDk#*BL1^&$|*vKi7KZA)?53vQ;!4u{oQ};Li#%kCVCOKt_6k7cO~dL z9g3wXWHe4nX_FlMsb5jkzL-}*>CaQGfUe`?%H(O3M2V0n9g@2@0 z=X7WdnkqO3Q2d5jt!gh~& zmIO#~9L7p5+J5|4!|Ok~XP2%W5lHIU<%*{H=#f4pmrhKK$#hSJ<$Qq~pGXqET`Rxu z_}--IGy@~!=4@eLN3KlT#_X)3_Fv+TM9-Fli&w3irW7mf-#b!R%(h0G)#B`n|t&lfZnE)?DurDlDgdIpbbJRVwXIH)hJA z7R2MM@chWF7bi!n%DTBRlP^x=bTUfX<&5*BsWdmYslsm2e5N_U@?>XZwJ*I7hauIo zm0Au0bb`mHfwaq)_OcanRT&9^oT60BYkkOGVxXW9HmVzryiYE!M#z2VuEm&K*3Pnn zt!)LX-A3onk1j2Pulf1;3uEt7%{E&K@{zQJnlL|mCc!#mJQG9}+E?q&-4V^!mD<%d zSr>R<9>r>xLsdd?e{(WEQ>V>-QsPR+&) z{`8iS0hth=u(9!TI*ExY;@~*h8^SG7=ILscS$nwJEph?UqcQAu-)Cf!gp9OZ16q5@ zM8cv?xx;C$9hBTZF2f%_`?JH6Q6rB@tIl+=C~^Gz)AtS?U$Gtk%b9>6U^?Qb`N@8~5)# z5AVWWuxPM4+H<}eIb4gsm+(pScx>r^KO4Lc3x zlO4^?{WVkD?=P}>V$(@ysmydNvCkWjQ7SVDgagU^-eh<`K^;Oj>cF_t)fvmP8fn^_!ojzWk%!|IEy61Nj3bRfYYw zQ2Rus1NNOecOD7z2@8&VsV_33ud_+?2v<=ZGrDoJknm!1$LNT#8&B+wFsPM+q<@K8 zT3Tw65fKNIi$5k)i6G`D+II5t^5Sj%8>ey|Tf0dkkwJ##>({i$`1Dyq!omi>KD{S; zzB+E_5hf|KLZl}XTqirwKmo3A(3@Iqvsy$Y-@d=U9}yOo{-995Z+@X~GnZKrkMJU) z^2iaXP*A31!mAke{&nk^Ek>>+tHpK*K6WRgNe;UYAax^~DU^%y*mFu60--`OoTxha z+vPGj-c6hJ`fH0gM{s09Qj{=6H3&pF6?d1Yp4$#JsQ9r!dTbtrdRyL)H1KXH z4UPkXr!HV+P3?yj@}1lwI-59n!&lneRR+%6w1oV ziZj79^2@Up$tmm9xN>U`CY@$Oq))DS_nTF|1Y#+lvDb;6>)UlQLv8 zH9Oo{#+!RiFnL9U zXf{1J0LgOW`t?$W-2-pDP?NE;4S-9!9Wm`;&sXYh4$!I|IM+nDcXxKa>-?4$RZ&@K zJX&J8IXeTvwkzOM}j&Z(f(ZI#0ZW z+7>{1$7>yKR)2V$OR7sOc5(1tqO)|kP?$55kXQ@w=N_qMD3&VwqnM%(Iwqx0N zJ-38QLuj5pm8kmQe%o+;%aNGVOj6cEV&TsIp6z{V1(JPY10Mn|zo0&~N^^&;zs_;5 zd8fAV9zK-$t{^H#l)N$U5r@7WqDGbG7tIX0=t3jhe*r}C z@$kH0r4`orF}<>qtirz6Kv07fA`&lQbHI&SeDvnl)@XrVPnFZ*>({S&S~GiEPL4J^ z7J{kVUvx?BEX{JeSwhs0YJ6xud&JCA=D087jk`TX1E=`G951i;W?0Z+XVaz&0Lf(0 zKv|Koj*i{o!kc-LmG)zj3CW~oKEA#-kxbiKQ-8ahu3tfLuZOQm)56B( zt%*9xKI9s1?gX8-1HkMorf)(cBQw&~t-{~NhnA-Gx5idW{7M4gb)SMqUVc@&!FAOg zn1rk{W(W*+isX+7^E-~Y6i$D*; z{WCFJ>;4gZE>ALn@1uC8rjCwUy3D?EaaIhcQ;E%LTx|CJqys^T*CF>5H>HCnMOj(P z(jWI3jbUbTC8dY0{8SyuBORd<>v<-TvuI= z_9W*+1=|2n5^z?Kj~ESGGBS5iN`3LNegJ=1VVC{|GvC-puquKmf;^`UDwZ!V4$k8zzE?(Uv;prcPzZU%*iex;Ds z)-i}Y&FDW0ie%3A!ejp38m_r+d||VMYQQ~XJss6t=$+()S&tg zm!%1~oWCtpTh6zBSDc!<^0_JTlE_BG)MzQz1+LquYAcbM-}kXCMaFJHpLhX!*s zBN_DKtKwR{@z{9X26Eog+w5XH>>3A3iskF{0T$0pNC2E=L23x)awwn#_g*a%b*<^f zG~tlewKZD~bFJ7dZ1<1<;R0I2(et(QgPKBbmBw&5#E+6@D&%&@PPju+nIUhSCt0YE zPeYU0@qPZc1oWP&r}G2D#g>QBwL5xJ+RXv_78Mp|B0o`5QVO{lG|#-RaTAp?iriwv zB8}}TG{Bxo%*Zg%)J*A(f_P(X2A$6OdNL>sr822cl^Kmk&4J7p6SIk6&Q4p1Wj0wB z=ei%rqSO)dQT}@vRjk$N3BLA)r{oyE@<@*WI`zXHj)6>NBB|GzN?fa>rB7bGc(>5& zFP-9X8eJ1HRo`}R&j&?5ClahqREN5ELtZH?EM&9%+ga(bD-w>pp2~uwwY9=g@cMH) zWIuX~d!r8lS#Otiokn2&PqiyFAQ0*Bxuwh}*?~eiydx(RxKl#~Ul+j`)Z=p-`Tlzv# zYi2+R&ojkeDf+ zaAsy?RL|A$$DqpET3foZj*9 zr_7C@pOrj~FTl{)z*B$!{=Lwb0YUhg%}Q_jK~!g<0oLf~Z6>`uG5OuA_inqa+=E;q zQ|dOf5zK%&AMNYAJ61lx&CT5slBxC9U-al2a@yRyEHf=FoY~~WasLL{X}`JPlh}>T zIdSd3Q>&{P85!gsBbSCO?or7pQFsG9cJ`>Qj?Gxq#KxZM?8LZo#SKb%;8m=xFV`{q zr}aQ%E;@R(B~c_xcwX$;Uj`tlv$`yM@>bB9JaVmxojhh12Uo?kDLXWr^i-;he`r z9GQBdZY|dTT`}Kq2x(-r4EG(#QU$WI8-XGw7oM=QJC2r^k&8t=V`5S(F@5{z*XPR! zLZg4ny29yvGzjJgP-=K^kXo%`u)7=NK;5_W&*>(C#n;^2!Io(%rRI1{hJ>mYTnpS# z$s*zbCT4evI6*jVU#7B6S3ED|iwg+9dQzI(;z^J$FM(vTQc|vPoJ4zA}<;mTB0!G+rMT|B8#)L^H`Zx;Jj3g8@ga9 zTt9`$a`sI*a;nS+brauG6DH%j<}4PShLg37DFicEoVN_g_|`BtrsJz|_I! z|6W*7D%6+lCPhdPqhM9HN3LeWc&SASk2@y4PAj}1f)RBhgrXqQ=yJy*|DKtNO|9?^ zh&=>i;p6$s|L`rgSyh92@#am>nU+wiIM4c=pV1UJ8!pGUDYJ zY8`w2QBhHDxAD`Hk_t`#yvD=BLqkY#qgLV^1~kj|^2jcf`cOqvNXCBx;R`wHow(d$ zW7V_ODnESq;D$k<1|4v?P#G=+rsBsg_T9VB-~2#`i+6x)7a0!0`Ss%bTg;o;)^Lo+ z?5Q$o-9O%6gr&5hc*MPNXjJDo?5@Dcf^bI_d>5{Igt}_Ad1%P4Ifx=0sjZar<~{tt zQn*k{neffdUWHo`6A{6!H8nM1TjnqPyN(2jlu8y>Q&Uqdw}$>t9-JvQ>h-Duhw^o~ zY}dYl>j2ilgy#Dv)L!nIE)C{Jv)Rlx2OGd{-P^h1YWdH`(k-m5W1hYJ5EC>0;qpxo z4T0f0{WGDmqvPYNw;w%x{Fu{W$MA;3#g}C$B8>1pFF(KUBbM%#mJB!sP$XarFlO0Y z7%z3YgXn%%ZS$5Wn&{kd{5+Tp2ThL;wlPVCw&r{I2^sCGZwCh={EGDS-7WutB7HmP z9KwmBqob#Y$7ZFaQTVZbcj^ASj-7%nfib^Lb`|x4QoN?7Yn^f2#KgoYBHTP>H>5R`F$SY+`HEcYlYLefq2RH>)N^Ij^fQ!y*I>HDD4cP(ttzy`0tQZz-E=o zEP;+y1T+R;#zFD$u3GLM9?-qi;^C?NdY4#4R1_|n`gajEyk&cPdmn^r_3A2E!@u3D z8iVp0SUi6q)vsfbU4sRnsJh>Hp!9l*-Oyy&)YvEhFGTszRNq1Hprxg?TI|nMt1N>% zz4>R1bv-HK;BH158c6eL0ob-dRE&2l{QC7PU{YQ_KCu|~aL*|O;@=g+kPm?ZS>Np7 zlK-x7wrlLDhp5j%%mu^E&B=Ml=~x1x4`tT!*D){%81-c=Ew?~kb#A-=xmPoYsMIQK zyC69swVSUY5E>|-6rhxsA3(=rQczI1g~tR*Y>f-`^Z*iQAcGkKpYH;Mcd|%0`2Fd> zibJpnh`qh_DM$`7sS>XMp5opk2HY z78VB2Kk-DR%&OnD?pUxdK#(+MSD#Qq=kMR!%zgUwsWpm48u)?kM8OLP*V=z^zC#fL zgs-nSz@E(S-(gwqZ!evxIbFrg&CL%ESE~VA0;H2iL;N8B7mQWl(Baj23_qKI_~gHR z5S5USP+opWSA8UvE<*tyr2N~LTF6dvnM&G_#5@# z$~yiF)8D}4gQXaDeuL=sTNrh~NBrQWOGEj9?;s<>6#^Gfdtyedm`C#TX)5d)i^c3c z1cC$&g`|(Fp$J_XK4Yy^@Y$@-J`oMLklZO@VzTN036DWBPXPyK2HrU}t|^e5pO@Dg zk6BDP(j);5AsC!Efm2oGORI_twl651^X5>a?h0&pZ<{|cKeQs0fy6+WK)@1JRZvb* zRt(LE_yxq8UR<2>?yAY%v%7Y7cJ6P^EzZxQ6L6}4Q7~2!y~)dY`bJY4LN+JOvo%II z@0X%r;=>T~AdozG@BmII`=@pv90Z~^Lq40yXgCO7zl0R)mA2GLHKT$cC%jlh5w$_ugnQ z=g;y;F^B!uw<2c5@5tvLt_zHU1Sw0UG$k#qD}i4a4ZbF3XJ?nGm|s6UTn3Q`7H7iy z;}hNCT&(m}jF@2W^(lwBcB639&vl;6pwi=EieN|^%6VJ(i7JZ20T{oFd0i>uiW6x=JrunZWbb*4Eai8l*??5Ppx29{daqkHniO+m>L0C5%+q5ux?0 zjFDfs@IkBQ$4jm**ZHk^gXYITU7RU`{g_5eE#{`10%0pC)GEMx330B4t!ab$FEK3* z=l*@G!y=2#+3iUhr=3>SWZ~u;#l{=~7DGP8?aL#+JceajhEcq!?izJBEEoG#q|Xin zkthu`P5;0E0aEKL+|TapexNCJKA?yNr79kC6eg{#8(A>zanI&lc4dWQEW6!X6B9g} z%R~DI+sb$GWUg;Z#`8R}DviJZyTt>JY^<#UW7eEs;kSQ}rKhsUV&2y0E#&4t#QRtF&D|0L9Sz_dkj5KRv7lVJtlH!w0FE zClJilD>odE_UvS2f?&-OSb)5sA5~mXkO;>}$ouTWbwQ&1ICQ*|yU)$KFB&XHnPIC| z+KabqpS|)7XlY<03_+`DIRckprHKPO~D&fv_9~Ys6G)ijK60ml+-GIjO2qEL!GS$U&qA(- zLqGA%;EDi!AfG)ugBEAomUxZt*%Lvb-~&NnVc}Xq&wC)zxqa;^%mz#nItpfoGj1ENfEkZ5T?^7^@F6z;`~^eR z^FGzLEq1$&c&o)Yp)wK+0tW|WQc0B76gnfq{+CwA_Z!FR9jbDzk~LUCF+GquvInB7 zjF``@F|EM+7kw29J2803i}xf4Nr!&qVB#v3dKB$1iro*&U_ulU}X^N zJ&}&2QNG>$TW7c+c%-;P(kZ+@QLv5Ilc{CzOq~neo3A!+HvZfu;H1Oz#+B{q>yu?| z@KJp_z>GvbqECjFzzidU#to|$j+QAdrvs&5xYH92FG|<{!v(yladX;8vsxP50_FB} zyV3lgbv3>>&FdzEYaQQS;a>(nRbm8;wqH1uDwzN&g5uL%5dlhBoa9itQx_6{DObU? zDiRQ_^Yo=bC$OsfscKnHdcJ(NT!x%zK$GPA3rxw$^>D&@U1i%HRPra#lK(xsqXUPK z9z4^11wFm7{^VE}^1vj1@X{>|-+9CFimYzpge2XLQEkoXMq|MI65XT}y6uKmi*hH6 z*{>+13{;YZp)0jAkZn}uD2G(Z&uwC~HBGVKel#7gTJF=Nc?aA=uN#Unkb?~-3SucM zE2AM^-gxrnwN#prWkZ{9&|Q)AH37j0;|b?PrB_z&ilyefb)gDMIy7pdYD{9WC*sSA za+wP)rPVIKK_WS2w6QzUFjFDme`IalFXS7m?%MtAStoW{eLs_Uh8+5&6_cJ6cYDn* zPRfr(@a*mg(2oPOSX^A(g}M+d#Qa*ApG-PZBpp|fPQ7Y~M9=VQB$ZS|Uxa=ai0s zP@3}MN0Gc-knqoSsJr(*nPTc2d>XtobXr-LUCwrvDFi$rZ)^kpF&--mkBETiFLj#{ zmU6x283lK^R!Yoxb)D~7c+1KXd-<|6keu$uy&MqZOHf*5@NuQF+y2heX`7g99~0Qh zoqjyI&0rwMUoVI(3t*EOt2f?V39D%8?EDS3Q>zNWSUr?_XmWBRkJs}R#1POr1yhB7 zSD*OV+pCc1H(E-AWgQWLd%U{$@yxDpvF_Z-aojf-7H&c1HmQ5WVQcqgw8Mgge+0#e zr2i2PNKQ`P5ZCSsrm_h>DY+cRBl0J)2Xtpr-ATVbF9WOGo7~oMrq`G5ihpkN!PCpj zW4CjAK~}E*mie>Q?Cc#5o1Ugv&hMcG?oISr z2t6lbD?h#WCSZh*kFUADK<^@!TK-P>#vqMSZ{X&)Z+@B$v`zIp%U@Ve)CInNo=Y&N#0xU%J#}DVUb4nk?d9LdEXzpeLNIILY7tZN)L@>RDMz9T&O) zT`v5V5MtU{;jo))Cr@YqIym5FMXou#2z5a;yw z%Yi@LfXr+aq%Sl+?hMlw*w3eem!>kmrKBhqymP*5;eRTYM6UMPgq!;!i_32NA(Z9o zMPo1!0_auuai!g6nYr_v&*o&Ea*%3Y#vEaQh&27|RW*5eet4P|2^1IuU0w47*|D&_ zR(GELSxm)D0=KMnp>oU!dipk7=@m)pn(DWgt@n)xxZI##U0qhDOQJ_2&D$cXwSR2w z2LyuU=M@y($;AnbIz6(G?L%LZ0Zha8=7&0j=UW&Uz9V$Lx~C`fd6HQwl4m*O?IU*E zGb{uc3y7+WvnNYT`9dGY2TL2<_rDSpA)dWHUe7OX5k zwqk96qUQsDo18cu|JuXk1`EY}0Dyt}RAgEm#!t>44;b9u&TboudgzJ4&geh<`6;`| z`M97Xn~*zoalpn==Q2KibPR`bk-@;<{!D(PYF=KmWJO73X{oyk_&Ps}lgA;+%4X1z)z+pu z?rWGs`bXgO0qX#?43HeDNl9nEB6>+gf}EDt_{;6O(aJ2@jDxbWva^my>{&&_;jnX$ zLMqXIdja6J3`jW{O=nvfb?4^bB&r?vjd^%JL41y%0aTCphBO&xXCYuQPXrU$zWeMI zdK8$jAtU4k-dOtX|hbt9Gd*XCxB& zT{Z(q^_kKaw*jec>a;~9rKJs3ySPAwW&_PU#?D+#X_m8zK9ZkM@2IG%0zm*Yrr5vF z;e$k&AiE1j(ls!!I+ULRw{hr#5)0CwCs0E6wzifFy-kCI3Q+b`0w#qI1jvB|J1YkD z^@ppR9L{c4drm_TMw?n%-nw?}Z(l}eOiT>iicRCZ6!m+&x3>q7V5qq{T~B(&=K^AH z{Ja`;-FgE(RA{Cwft!Yeguo?-C}yZPCNgpactuSU6ZHf>bTmgg6O{xTIv-3|dt@U~ znFx`;`1AA9+;vzv=gljq@pInRTw25DZD{wVwnP`*dv~32^F%h)apax=O9gBkP>0JP z6@)4|1J=GiS$BDDZ0G?qrA!wOLVspZY1hxy_X5S2bLv3C1ggUB-rl8&>S|chRn&&` z_NPgwL`6qK?l1%iJk+|cP*hK9Mrvv*gz~=&3p-%%uv1g0osy6T(=oNMFaU9Ocz8J6 zssUA-e+vPu6hfzNtfkdkYM~2Th*5XGg)eEAM@u)M{RcAnrXY$yxa13J55GBsz9>h( zkCL7~{{f8>l(5bWeCG`Dg6`&Q8&nU_D(Ua(0Z%`AhoYr>MITUsZw3%S55dOdD`gn^#-I%j-d;@*Goph%|;*U9O)J(>*+wfhh0S*?IO2IC<# z(nLAn?B3y_$!JMeYb!(yxwB34MLj+uA222G8}Q%x`FU7rH~YWGdxnM%_~5g_(e0oD zXD`}0YvEV)UA_7Qk};6T-Tkv2RtQ)7-^>rrw#CiX&Tbiq8ldAreuatf3;THWbZ5ue z#3(vjsgU)803OQg8MFY*LfCORTK|$vwk`Eu2Be~yprZv_+8W9yhnZF~G9A#j0Sl^U zqMj%eJPf@kqBb_mcfOvU`68i!!>v&ktM@r2We)t>$j}h*F*zcU0b~;(KML&<85IM~ ztofNvFirXkoyrRqgMJ~j-;4jwwhqWmu*rk1dC-LyeEar;>+})yu&9QtO;f>JT2xBE z-@1h?FXQz0?}3J>@kA9FOiZ7XTZE!8tJQaMe7FgKJzqx@jWEe*D34Dt6!OeOJnvOm zm#%oynXScaqoboUa^We$5$oTD5^i*GsW70f_V(SG(biUWgryq#B#+MGQR69IoOVDtcM=FTxNvJe0O*WUPMHMY^nqRqbg`T zU-(B_uT6m-f|`}}z?bXf4nm3_B%UC5qf;w!`}FDI!-pi=fv$*Z=&3i=Pc>jbZ{#8F z!7FujE*oQm(m*(25aZd|R^W2jmo0e}|EY3fllvZ)A>?_lBeq;5l4)UQIpg@iyBoT1 z+t9PmR?L4o{&>0wI%F{L^R6$wu)!;wHb7^2xNf94JJdT_RQYsAdBlV*rliAuWmFI} zuOMqJreLwLazfggVw0MCa6DmZenF|Fc9F;Xxu1(N2HwB|V)MdZ{}L(cn)4WOWw07=Ej;c+}~4+xqZwiiBo zV%qoe5*Zy;(cUxPTYJn>Tu9Ri)?E^* z)fQ3dxKAmY(eICb)6)FB&H%h#Lf<0gDFbr{tM!ssuI3?xaHEN;<+g}IdU|^K2Tjx3GtG8Hvo{#O zz{EhtjzrFzw=fhNqz5_$AD@)W>!w(T~2Q!RgsL0k!&_b6|6H&EHUY_1{vL?!LA6d zB!3F&09tyUdX%*5NZ=+m?Y-xkXa_eCY1GP0Eud(E+Lvl2jCg+AV7K~oycY;#7%Ff# z9{lz*`#PKUUi>s&R+hL-^jt@5kOdo?0~pJ7=I2OcQC>5ZhKE);xe6{m{_@=1;pFE< z@G#)ipOBN{1x$WcZpLM0jP4T>Vn=@2*Ok!b$<};Y3@8n~+NtK`# zx84%kae0jkHTHV+3|x-IW<{kbfD{_|R0v0GyN$uEzt5pOK?7NI43~@j@j+6)u5Z(& zhL**#L_zL>?9+xHgccQ|kgWXwW>M2vaJZ~&0E2Q>D0FL&Q=|+JL12na8|C5UMXg-a{kN+JD^umfs3Bpm_bg3r zmRSi;V}XqNb9ngY)}rQ+OqB#aCoC-K_qV*xapT_G2Xt!Ga~H4Nx`U{qgY$w8UlVBO z7NDsNLF8+GeqeR=M3K>AnI(+gOVmGgU#ab7(0M2`YRQMAPht@-&dcjjBFz2zHB@m& zlb+(UZTp)evV%Qzlm3v6_5D4ev+9CUMD z-lE!%c0fo(KtRVbR$-^Tzrm6uEdOq#$l=egy30tC^Gx)+!4%XXmh)2JhMxB*h!96F zAj1;#iOi3drWtZM+A{ySfovAE_O_b$LrInu>&0s zol0VUu}rC?kcACqm=nYxedEEen4(dq@8-q_!WgHOQTLpj&h;r>0|NtcTYYsWc6Abh z%2ywg%{O*-%FL!f>Jz#;T1uPGfsvOcNJ(>+?{B-##AE7?N*Wm`{78t;4Z zrzZ)Zzy)CqNC`g+2D*{8hE@Hs4QL-7jaRFzH}~-I;r#E~LgF{gVJNtGgb))GgKk`= zMBIg%P}hQ&WW>$KUFI`+LM2=E-on?}Dk~=-mCDq*NuT{W2*c^4GhHRAi8^Se6J<8q zL$lwU>-RdY4!XlL^Iq!5M zFOWI@1WmljV9wFf(9~IpNx_d()eCe1+V66|ec@3RvY47LyNzCgwd1BVf4V`{!|Aeu znQgJyUnq1v5vG>XS+yJEy`CuLX}Jkp;NWl)Z41Mg1^1bx+1TA>GuJYavhFT2Dz0+k zZ>-N$mT&Ny$Hv7yXln?3)Qr{D)pfto?^+o0!TxPVLj_;ko&voDCKEL$NX@pA#gm4iv!X!1!GVM&(J>U1Ns&Y=? zYr`_8qK^PCD=V*-*j^efeS3NmohMmp?j7q)nG6HaMa!cs$$WbdNT$iwX-fjTI^fH0 zx0kbqgGcjWlxJwL%4sZ|zCq^hAOsD5?}da*3WDn`bTn6PKf*gKVV-e&^5n^cHM=_K zUW3i1t~7F^pV2ff|DU37<`R-b|Cu&5G9c81%ALj?=bM(kKFA)}SSWtdpS@5MRQ)p* zAlAR|!)6N*(f)R66p!IH{Ou77nCYB{7*hBeCJ3g~R+GE4RDD5y2%{CRjWskh$ab+F zJ|sLeGTPi-U?drDhU|oXYilC6MpEZ_G%KTjY<`|@M_NV(6?ZH|Q_673(Oj8}SG;i8 zOEQkCPP41|0Hx9ZTA|CfX_nmn`~2NmPSb-bCOsj69x66KQr*kqSPh<51xvwH2H_@BsZ#VAkrGXw&XasbufUVEw+P1f0 zRwS-9XQX)bjI8lv1yKx$wB*vHNF5v;(0)721KI=4wu(v=2ggJsdmU)oD4a<&zT9Pb z(F@F{>}allnQWE{F~83!m0WA^2<1RtljuU90Z|WWcz&(2BGhIUb6om;2Z~uPbM039 zEW%>VL^L!sY;1=xi;<^OD3b|wz1GhQ4e*o}FR~Xe{(|S^(L+K45pyt|I_W%GpiH?n zw~s1K+t#Ed)8n;LwmDnFizvuX2GE{>K*m--phkTk2nNIgAF5P!7!McZ*>9H#QM`b6O?=@-hsMQIsBbk*f``O0vv7b|Ne>$y5>g6! zK~2p-aen@}&BzvUK}hdqE~g=0@6D$hWy>siwb$BH6clHmxRQiO+^R9HrJ^56cg|Bd%cXcH&V`jl8$sLbUq5wLlp~#&jJ8M$t@asE|SU z&odV~AVXFGv-K$|AkVzY@$xi@RF6Dwbj*QAxex_I&jbO2>E*L<1y-YRoIo=8o>0v z58i+}lk@TRuKCO(7}%r3;Ks?Mq)+>=DLmnLUqDs~GcCF;ODa|gm+aV~$dIjy5FoNk z1yEjYHf28AY#oloX)GRt@ji0L4`vu8JnrU^OquNVTd{zi?jDv4?cBmYNO7$3F7AW* zI<;zN#qSE?*2`rC?0cZrh}0${)wtT(oapkyHFshS4|uiIXdn%)f!QFs@%34zPQ$~( zD7}CG{_#l|B;52)2MVOBn7NwPkJ(GuOy8vNWVn@=u&?yY?ZQr^caz>_YlPxq-<*8i zn3>Rq)P{&0s#1`kkL0{9T~K<5GXo9wBVVpz0Egs`K~9I(w{UwEAM=flm_k5D8Vx@U zpCvhVy9uT|ny+h6aY*L4cgOtrfONmpT(V+Y_A1n@8P3PUr^ma=AZUUKkd2$(P)0&n zcoh?3YoqITR#rrolyk*08vKINLAxx7+}Hd4t6BI%V5RT=cCNsjC;(SNRSN(F&d01Z zp&*LFfF91N7DEC9Y&V`s7l1hJzh`3;xAE;^h9=m~!%GrsC#t|`K(MrGN3l0uXS%x* zPSi1y~1@atdC15Txj6v`3!Sr&v_!|8-GjkCdk z^9EvTYfFo|FMkeHz>7`1$VGQH5elY3kJ9iDqkme%TU!1XS8oATW!H6q9>5m$l@KvN zknT_s5kcvY25C@fM5H@Rq?Aq(l|}(YNhK^g6hV|!=|)OG;?4*E@7^))82|T=FW$p> z&VKe@d#$co?t!bdbIDaY)dCV~g5ndyHW83Uhjz^J=f z{Cxjfe~GDaR`_5{ZiH+qOOuXURgn$o5f~PA(`n#P33+d~d8{12Z};wrLOZd!-+gl7 z>a|l3(UfOp7cWcw8o61Bhlt3sqC&J9=Y@9A3;gJPTH62G@?Exz&{jxG9qA~dOI`fb zJ+-8gX{zr}(Y?qzpQhN>w^08h-RsYF$4InbA%SK;&1Gxb$#x#bWdNT79|YXK?cu)S z$5sH9!+=of+NvCTmulh(qk)u7n>Q0%pXH|a*J$qcuu!GgCTSTNR>QODrb4@e+rMXP zv!{{1#0$$&cia74DErkW7CZC?buhE5F3@Mv2=G2Z6VBD&)r{n7Td~Pd);B#YLy5#- zP$UpBu^*1UW`oOtf+xPCqy|kV2T|}o z4mkYCmfpucGLDjHq9DI9*yPgn{Gv&Q%6WrVnX%LF$w}MD+2nq3Ou)46p}6G}Ztmt)fKw$R@gl6| z)NM{~4i0<T z`o^RpT*1Udl|QROLM#4We7wvPZjMzU(hgK+ZfUx2{Cs7vT?@OLW0@KfvmDjTuML%) z`HxB!#n24&m9X4(H?{bjB2|aLvSoI?rulBy`SXp`-H%)N{dU!dC>$RholVSCiS?Ey zN~#w6JN#$6(T-<6ngV+@<)qR}O%Gha;<9a@q+{COxao(M3Y6*UrZTc(gxb6-{cO-SVPHYo?r%+4yj z>g`?cHLd^fVO%r#Ou^GziC7Ys>S@;0J&Fx16|%c_trmky0B4)Rs~viGci_dvh5gcs z^(^xm3gKl ztv91p0D3amvD!|zTXbkA9|)$rl;<}Ki+V1ZZ4=(#M~!0sg{KVaybniA&+X9Mtc)@% zQ}>1bo3!iK$&jN`3koVSgi{J7<4$V9Vi>=o4q9<2MDO*nqG;C}VB=!9g6 z?O8sHU%PRMql!1PbmYaavqOB_BcIu}^Kpd&#U%o_Tnw)P+y3$>w%fOE6|XfrEwLvA z6Zp2}*Y>uywy$4f{Qhz}0f8@GUzz@?ZIxMc`*ztK*;6Gp<6mZ@vIgtGQYjyP)q?ZSd+b|T(;;iSHRHLV8({?KGYJqwEsNm)F z>IveUsK#D_ev8S;LJEDu7WmdpnY?xl{i$Rf^z!8_Xo(y#cC*K205c zJy6U_AR;`})RFv?3mpa9uU_4nc#J;lX`;&71Mm>FwY0R}sIcmz$rTj}#Qucsw}sKG zWF%NIWj$6+zKHrOe55&ysoSE-FkIYgcbeZ+kKG3DNyS>HldWaMauW#jP?OIE0JgyH zQKT)5iEzo?Td%M-va%Zf{<7N4OxUzCj^8-g(r$H%l!>Gd{3hsS-qlI)8=Vq%n`Bw? ziSlMn?tsF))HxmAyzvfD}6e>Trw)QSMilnGv&nezs_WG=u&X?c&~k zlbh%=i9>7$HfYra%E@Ekd~$9U;a0QTPA z8LRuoeHpqsG#=^|Tw$nj%(?|ljV674&TB@c%4VnB)>5#=%}+R^s>A&w${F0hHZeY4 zAL~|=&?dzBdU>L#7eNv#u%myDP&2c#aA{@2GvR2oV|Q|dxYs>VC#WAKmPRx!85!-< zUZT1XIt!5Rcfi-LUqK5?6Y_a|?Pn_y{F)Gg|NdcwfXkZL_u*)&)q8-l+N!C$_5$p8N$lwt5}}mIzmFuI2WZE?L-{NS73_IMT^ZMik0qfX zf(|(JprGHoTAnPGq*Le`;Vnkw=H^zm-wg^{Hpxlbk#uSm;t*ppQnGC2tyb0w9xjuf zv#CP#?6jO3=Tw;K`&B@$<%M zsv%w&@6gG`CECuT3EUlZxSL+@FLAh>LGow$C!yDfqZI3ZgN;d^HU9H`0RB2e%(?JO z0I=OzU~5TqX|oCnqu%fy-4Vkz>H9|e3$8@*=$%O;Pw#$RWLWOaHZoQL z+kp=sl;z~uM-oF0i8gk1owJ6C7o^>bi0bIB`2Bt-V_<;H4K2ENbzJu0%&f30QaQg$ z34`QCo01_xAmyj!4cM_hPWxIj%`Io8fU)%`kpZXV40XaisN?&|v&75m=Z)Munf3`B#7hz32NuqK~$cw+kY z24Dsn`ORDRFg!pvv>}eLFF;HHw6#-GJU-DfdT+?xvi1A&OlX3fIB_Dd-D7r;)^aHB z*B{u@G@$`G`2;sI2qi|Us{DatN_Xz)Nh@FZV^tOM0(6bmuU|n-F%Lbk3*m1sbd#v} zMU9HD%|Hx%o$?=LU0zVjL{S`M_#{a30C@87^5SWbR7yd}Lzc;lJ_6^N$_yBUI0m)T zA38KwQJHxj{%qyNk*UvMN@}85dhBx5OmWdHAGS5Lt1f;^GamBt&n0F5>BCYf-P{PR z7PMiX-o8D1WI$R@4qxYkz5(1gD%RJ$lF#^XjNhOc`uV$~7xq$x{(#G=M7HnT>4n$3 zC28}H6&8(zl^5^^K$DvNAlwlgadA>vOMzkaCF8!?`?rsEx|})rxViZZ8?XJ_{!uR+ z2Najo3E>tw=MeVe<*E>mxnXq(ouN7cZ*DJH>VyBUO&Y=<{eNvz{T%%ycUy4aX1hxI z5W`Unmiw(Q#PB|~?=H>e(XUubJ}h>~q|Ec8xp`+^Z;do#P1}5+_mS^b?YVLUw5`mt zdgn9TXptz#j(~KubvDE4MnuFH#av2GKj7mLeEZ;Cf{{kJJvl6bu6#*XdXr;z$7QCU zX|LCLJ?MeXIB8inGhAp%gAf_^fvUCH$bNBDe)K#4MI95q1r6#N_Q{FWHAEO-4_CfE zODYqW+KIm0kt8l%0sDuUsm2n?H<*vU_x3h?Rls}f_<1mX{yTJNd}87-6&3TP$$rnX z1qnGhc4>;y+2Am3D0I~Pgmyt$e+@4c*AY|Lm6_NXS zEV+2>dv){9eKC;@{=lt&4HrLyV}`73)$bE9Gie#6spWnLM ziyj2#!Nx?TSU$TTXpOp_z+#KnAR#_}JITL8zs%DGR;eN9kjN{8J%WvZUYY@*doUK2 zKeDDqKvoSHtyUHdA8J0kFX>}o7v8)hQ55M z`DU*;Vfo}FEF6r?HmDiRk!UBMRb}gyM(Kz9l4Y2SMn56nF&xL<(0nzTxu7egfuyKlPg);Zut?k&U;M5)O9~dYA zX9-W~lF3GgKw`?IV6 z!vc_v2wUcY{_opmFjebqhqfSmQ|4zp*~7vKwwf;`q_jFOfOG%|sJe+z4P^*YN>FmZ zK*iI~Kc+N^u>V16qPTk?AFOs$4>qu(s%oXPcTmpJ364y6UVQJ#QhI~Xy!)-5TKnUN z=3wC0=@=Lefp+3H{i7Gx^hmc?=1NA3-)QSaR<3N#p`Gp33ZVIoH6`8i^(}|CA9+uB z==pNAgHX_g{`y#-+PF^hF*r6R()&i9afvuObuhe9bjRLaEpcMUZKZqUJ%pA1jL*EE zy>^>Yfn*kHLttXVgo_5D0GB+BTx$aI_?DJ@<1$b3UTGJ-2Z4dLxD&C{c>T4~wWK3N z?>#v4Qh#I7lec@0eqEK>qU<;Xi@7ZQ`Cg{bx_O6>LD6;LM`IVMU@Zq3k4e$h7s@se zXB!zZ)LWz8Lj(1E!Yka1(U9xPdzmG$y%Z2_%la~08z~1jiP=AYUVF?2Jy49zJrX8} z=q8z<2Fe=(A2NIx&Zj|SdKx_)QuoO8Ba)`Dn1>yGK*$Z6zQHg5@H@ouM zmVP(J@;%tKZd0d`eOrBf)@`X%|3EZ&@xa1@%uN3a2RA>^5SUm^J(p&dka5Udxt-23 zDLtr`BDc=ktBZUy*QCOI>}wld3LIMU42q=FRh))$75e)A?x5jl&HBQ)bDwhb#MV8N z{|T5AS4fynjVc?#YDV;0nOz1|4-7a&IB)!S5Rc{nocIg5A=*3;s&h=wcXfCFog3-< z`4i3_a^FAUVy$$$XlKVw!6qTmix+#BM!RT|-}WmHbmZquO(kP^WUKE@&LsKh(LMuR8nmcnAngJ0rP;R+>`iv<7ql$hcxt4aLlYCc6?&kDGmcP|XP|j2eT8>| zj^9uw2)mLF2od`1a2%4AlfxyX`=NC`Hzy;5y<8idqnlgrU+B1cmD9U2>uiZsGTh0c zCGVWAOwC2ahbK87`_e;>X+7BTg|m;MqriN*#;RGQEL-jIjTOZ==#O?5*-znL$Pa;} z3SzU&7A->YqTy;`-mV|n74G@`Pyz{8A|xiXRl z*n{iiyRol!JP~p(dvkLqi?(WWe(dcfIK0XFT$c+VD&m}2S(?~Ph>KlVDblf4^&_CC zk|!7V{5|FI=}RB(LcJWrp?+y?WeLqD@<=)+G{2HmLlAh}MX0_Owf1o%*7K;KmRsjso6)WtNJv(+pOf@VoFOw_G zu0eWH1tK@j*vYG1CwE-<`FGpy-BC`LFMn}g71}q_wRB&tDegf9s2Z{O8rXyGg0zrVaV{S(sKK2VSAhI>DKdTw4HLk?p%bYQ&P`1$#l zq7|T-*)(lbGcFYvYQ`2ZyhBIFBSXcA28_`0aTa!PZD7-g#t$o{q}SYj7WVLCpzK9` z8EWU$eLjs&>o1o=bTQV%`Gwi&=qy#6+Y=J>H>jlh5WNKj1pezy1q;Jb@$J0%bEHgS zqJeQMe8V4iUJ$)~Ym=Vd_rWH+BxHWtA34l8HYr=*Tk#rL^=huHBrU11YubeG=zpE@ z`fo6-5|_%C-mec4MnzRU;JX1L78@~uXdP6{$)O=zct9DqQTX{uzyfDxoPNLAzL6$W z{bw-e<%DbPO1{=Z*Ci#TwbI6z#+Gm2`e(W8lNCfnE-4~aJKRp(6 z9S_U<5hr+=>fYQIk~bsDNrc(4&neX+em(V8hK7co3*#uBPD2{3=-KC0>NHf^vZz&= z8s?yZysV$4g@ky#q;Ov4++nk(E4szk97MO9xo=XgWqqHZp0XBJ>)uzDldY9S>-IU} zc<=)lyvUAyHByXSQ?+}E28M*!LMnWPP#b7@qP;fNHR3+i!`rs&Fe|PeG<-3FWj%PW zq@j>E0@K5;iYrC7?I|ESX3HR}>MF2JQQjBD9W>Bs1-CD+`2#kV7X&!HkWYCG)Rp85 zT76n{_xJ>7p7-x1s!pUQCM0An4=m9Or<-VLnSDvO+}d|gC`!^!+F%jVgQtuTUO7rSAKr=lR7YoJX_KyUEb+wJep3@EK9hE~`Jt3nlH(pE(cg>g z<+_sUS7avp(d|}=6JR&yqWSL!dy2?+_m#!BT_url|5xYLNMivc0>x5JOW~^q&YSy} ziX9J#FY||=sM&NL%#5l~r~#I=Dp{yS;GZ=!Qr+ljwunIJUtF8QLj44d&DX^z_s|P5 z_3Yni{aS2K1tQn1EeX`*|C&5uNRjjfv1Kok7QheocRmPsLy37W->Qtubjo; zib3oHvtyjoM{CwQ{8r~Q)1S%t;$Sn`qZ0dq)_Y7fE?g)=as$qFU2;VjkYiLMsL}y`e?>WSTD+IX@TA?x zpb3*_H#wxPqX;keUh4WJP)|7d$&!RVg^xr4U4Wk__&5>5mJCae31=1T)tK+0T@__M z;r!)8b@rqEXUxwrC0|LAU1t>FY&P=97y1%-Pyjlv7cUgL&T0VbM=cBfBBanIC_bio zz3{WWVWvn%wsyH{4)!wlPjBD8$Fw$r{_|&bq(uDsue5M;-ne;lW!1-g9cMAxnG@WY zy+_k)N+=)pOQ|NEa)j~jOr~^)+EX1VdVyLxtu;!PL(*J+7Ezs#s>&K~dEY~J$|QW` zJF@7sm0zsz_evDuuQ!PSMH|e34{lLrQOS8nN zH>iko0FgD~`)@22XT%Ot@A>g=sAv?^YeJ=AY?tV-iHvUdcDV&um9q7};r=a;%xnORLXS#Ul}h z&ZwdCKj(D%1MaJn5&9j@6s26;zcxEmL??J*qLE7B5oI9YdYi6;u5eU3-xR$wzyC?` z7RYRsreOyb)j6x=_> z($-v~Kd@#0nmzyWbihnCT)`?%XM;=8D=uRo(d{t@VA{^R6h2YEEDhm>{PKyBLRst z_up~HV2L@6c1M~VeF4isUIW*N&+m~4Am`-{2D~#ptgcMU#d=c{R1_{A9_15gbREd! zOFzwCHw?4UJ)D>I`oh)a-|4#vwL3X^v0?O*%e@OSHC1c?3eQU?JkH6gsj4cZIZsiY-2+0ReXK&18@ zYC4`aoZqk;T^G(vy{+fY-2g^&gpSkP?Uxzf09ChvyL&Nk1PO^`kcZbNB-qL{wB2+* zG;Uj4^O}XNHo$T~n8H`SrMlC4z~__!E|CWZ>cv<5x?l@i#scZ~Au{6oH7`J}c(g%NOmaY$N^S#$EBQ7f!zq;CO67|_Y!3~O+G-*#m^mb*gP`{MrTDI-~|Fs;N8{h3eLA-_EcYzF?7)5MCRJ;<=P8QZ~&T|oP-2ACXNxkZ zC=s=H8xm0j);F-q-7^I6s02CX5*bN*%(3e`A(k~vz!X!`}Vd=(Ea0#&Qq9iDAg#lC)bs-s{G zt~%hgqe|R{`tk5gULJhA>P3u~a=E9iv8%tAx;!l_TZO7b0sbWh_)32!FLTQ71O83A{**l8Dl~dHt-# zUV}FIEt`_FUpy(zbfc#$uA=K2oD%z!A(HuWh4iq!B?_^?~&l-uMj!_*ydzi2m* zDm2l};Gn$YeSqq{SRL@KvkqK;@+61}vL7cnxk5^WS{3wLq)1FX3E7=53a)mG{(PQQ zj7Ah^gk(uE|LM~!Z*Pii-a(^tXcLzxXc6jv~$J&a?MEBavBc-EdiK;c0G94is7eS#!eU)T~&Y{6#Fg8maF-J zXm*s@^3qW6uiUJ<=>8EQVWs|C92x2iZI~I=g=6m1e`){6i!@h#6T*oDuh_;yf05-y{^HO;vwhyi7TdXfdyL#wJG-Yr zyg0txeN-hJ28DiGky&bTP7VsWN03D-H&S(%jJkSd+YXe=mv}coj3{)4tEWX({L>y5 z;bK&TNDMIu;-+F{s$n?0$zgQ)9NM*#ZULs88Q>1PcA;)$`Io?xu99`5pYyhE^mlxH z&D#ommzU!;`nPWBl>?d&2%sZPDHaZ#n6etnYoG&8eiLv#*zf6J6clpOZ7i~~N|12_ z)rcI4K(h~i4+32>d>=XboEgMR(I=$eYw)3?X1Le(Yn1H=vr32oDx%|lg|cYmn%2b& zyS;O+?d((veELhh&6Mf|{TCBI-st$-SL#DJFVfnu3Y~Nrod$zRMp5ma$(f_(k~&?2 zii!pW9N0{49%>vOpCGp=d(*?(^)h=Cpnn}^>nL(np&g^6)-AGsCkJ<>ORMj?(Nm|z~h5umJq1&_k#Ifdnb2)?dT(& z{@%HrbXBPhL>p^ur35J90|-QFJnl1yZ=yn39)s0@c_}c08?fCJVk1wdNugAX5Uh^j z74-A_z9VDEpJ-x7S7bpf;NyqxsEE@PN z>bZVF>2Dojk@cd%Kfn9_QV%+axm`t*n_AGJtvT86ChjfE=+%9eDX6wKBM%_@U&P~txRhmZBODtsdy2e|61($7DQ;Y~zej>=7nk#P!~nLUR) zj9B6$JV7_*6nP%(^)WfkTt&3@hg69t_s>We`Vpc7GbsxNhpC!Dh)5WutcJIKpKP}` zYndv1$QrB;UbM`3^c_OHESENi?ha-Yb@ul1@9HTwD%V9-O(!^TZV%_5``GhfPP{w* zcaAYvhH2g;-6v{hKK6(%S*Fq&>eQ!2&AQAj1t#JXAE`=qFYxbqlvFMgubWW#A1Ou5F94q z8{je^iBM62j;}`C-Lri6u3e4M^@>-$hCf{m-y{^c9|b-y?*#h7a9q$_n49=JC0-w} zI|&?*S3BucYE3Vpy&`m`2BOW}DUd`O6XOo32KGFf(8OGth(zvzP^1H9ki7Rq&d+sa zJP2@aOQ$LG+A}*l3oM-w8l!E%k!-J~=8r5YKC8AL##C<|lYiN+ERRirEnn=t^o-J$ z&-ipSyK2w#=W2v;b*wcMe=rCfh^MhuM&q+aSI%Xq{FIBYg7fi%iQcGqOt(P&`Y$aW-}xOJ|;zs_HX;k>Lq^4=I2Gnuup9Q}M}SK`jp ziz%|97>m__+z1w_%p_9nkrZmtsg|_hNqSnA$` zp|g`hDR%Or?cd8)JUoXF#5Z<4s+tm&@nrw9Zz;aFvGMo?zNctnJ{(RO(d<_@E1g4T zL(l!~+c!>`d_NlcwC)loqjVOb7!5^ERyi}X{xUBS;C(E~`n3@Q=F==K;b>viShBxl zpx@TwEwyhC=C%h3O|# z-Cufmx7b(|t&tsdBd0K76cu`I`gY-C(60X^wA9qp(9|(5_a^8OsEBuxD%&Hco>Z(Z z7yw}Wnrp=UAB0&$1bGPe4$NC2@isa#*dz4+T9AuSM2q@O94NDN&SV;Xl281jVT#q9h-- znQu|TZElODf}Lp<9AJP}^e@5Dn#55oy_?j6{L`^9UYH%8PCqKIpE+{|-G}3_|Gmc` zZewd}0KMDwb&r|;z?Fh0IXPuu&vupg^-H>AI6Xlz8qq^9`3@!huYmzb-G6`rh|(ax zz_uMt!9U~QHGlY_n~ZUlQ}DmUa?x?9N&cT>Y*-UuvuyM|pdZDJMN9He4gb8d2FHm0 zT1_}cT-U|32wg=>IQfKK!U{S3Pc}SbQ~khaD#B>EMi& zWxQ5@_ZY{?lf__Wp+$5U?!91jg5SJO5amYT{x%6-DwY7If~&)ykCKrVpH)^?q781K zuMfaSQt~dI6i+p^8mIq1ECBs|P^ELxd4i1zizNOK{W&CI=B1$5V@9v3gaphH7hi$E zb?5eNm&q~G#oTBP(K zmzT#cRETE#>e5j1;NT#50*xDX%s*a&#&YC+ZL-8VejnimPDxM2z`#c$y#Sr+(BZ?v z=5?(YM-l!4DU}88QZ%vAb}W4U9Cn7@+u@*MCVd{g(@&4y!lZN`kM0qCayP^2;emm+ zQWska3X1USwf09aICYOG;Wxdag0K^|iDCIt1tCPur+&A2ybGV{A8)}n+)Ogl0zC&fiXO6AA;+_0pzQ!Eu4!tz3L;9--O z3KJ&!#Pag;m3-Vpz>e<|M)DYz3x~aaY)+&qP+6s8dP+?g%>S1cCb$m@8P(NXE}m|j zO#1D5YKoUsKt<1xldN}SGhvY;{r1LYSRBE9S9t(m| z2Q|L3)nu`7`4PNT)cnw<`z8z11R@r5rD}_E$H6nQEc4}`*f&?Wy}QNLWG^U zbI%@==cZ&up%gHH#pbB=!(hsWI6)~4=>^ubwg&&E7EWv<5D=jPu(C3H=4C1)BeM%S zc|;@xLy)4ML!HQqZA|(FD*wTg*B-&q4GXuKlq!ev0O7ar)hj?!T$doszh z4$Lk>xB*}30v`2028MEnKH2!^$LxCy&Gsu^w8xMEyu9zk>m42{9-Fq7KlA zz@IZF`7guQ*$;sX)*5!ErbmQAP)-8^H8?YtaNL&oGQ!E}hZB6Sk3kCw5DS}qJ4ww6 zDIT2P{})cG@NnRVnxx8y<85QNXb`sMKX&e*!i;&sKr^h#I_Jdc2V80*USTL!8#S21NwtAv}?d(#(#23R&nCkHf(B}y|eZ<^*F0ka`KUD{+QqBIV(1U;A;RSdPu4!6`r3tVftGl3llq*7TJE{DJ zuf_GKXc7A!SU~U?7GJ}8rO$TV?(cjV+t(4{#4=p)3J4JhKN$K2rfvatV|12WrB)tA z!4nv|*@CM9B0BNMaT$Z!x09sCh};b~ak}^4{KCS0^e`U!gRN<5X^9Aj3r}+NXfYXy zB^n+`c-Nq?V-Uw-nTw}MHs)9X#~zrqhm*N`dF{ctaX^mIHcsIAfcUO}4I}NzUO@^QiMW5i8UH1^|2VY0n~66!hHp!U?+~D6 zzYSQy<&oJh$l0mrD-oD5d8e1K7N_OH#ww>HzN-E6r%!Q0=0WM{gP(!kHyjhL5)<-;}IQF!tF9hjqqT$?=! zM+U_50|yTxs=_Nu{OTYDNnV8DSNEcWtAl+9*NFJnuMsw1ah*K5I90J8^THi#BU8#I z^$MG@b_lf)B|-Ve@C_pQS=?85+c94dbIc%XCWCD-swHrMh?_hszG;0j30G-wuoAux zXx35K^h|Di8wajaQ0`!T^%iDpn@FkRKY#v&)qN98`w>WFN?kGd4u}>e3zZ^C!mnez zPW-wF0C)z7qQGIi+}*d4q8Jk-hwy@n`o+$c5tCFmxiFw5{zf~10KRVlyoGF)zJmmxsS*F&twu- z^dht*pk@+R$4EQQ;5zPpBwnxVI)SuJOA+^Agc1TY>gkIYFH*B9{|A3SB+?&ofg!Fy z-uzTP1Brq#W*8u#a{QUYajYh68&mxOaJ!DS5?wZsFW|=!bV zheiead7&lVOIsY_U4Xgx6FWBJb%wDVt)Fa_MYwGCSb zy|DjaU26Q4A5$;DJ~?*sq&wWka4%qk93uwQghfC%h70~jU*Aj9x8$(#kHw{hJQ))j zP!Dsoq#!YXMvG7pU}7V7M=C3^J7_S<_%=GYYpZ{HQ96*5%2NQd%SuZ-PjqO*i8NJA zYh2z2k zGNFpK<)`7{;qoSs(@pgC34={X{~d))ivaPMTwu*Dqoeu${d>eP9()WxUbei`dHkDt zDnF5fLvq(FvHpN>DtIeN-g4s^>zkS;QJ+?T&y9nH-}cG?F8!W!^0ERW;|n&pmk`XG z!;e(nt^zEZ8(qIXkbIWxSNuah7?A`gMl}QH_V5jRXKRd*$Q)|y@!K;wp2{ik#7s*K)H2_TqPA6%bl%k;UE`sUR6}*0ID;o$wNz+Lff`aIUA?JbM z+mn+bCO}IB5XFr#CwTKRp1%pD$mME`B3+qpHz5Z}oUj>NROuf|LzFHlDZ%blAxY*V z3SjTKj(t6!N{1u^uL+dK1eCts&BW8~*?77ys0;Cu&yJUS=miaf zEC9ji#uTXXrwC>suFaz!$N8frO`k`$K~z5%FREAg`h@ds+Pd}re!+99s`l7QDB$qJ zTsG3)9*};_?CiwRyVJk={_+JQj{}kQVaiPuew`f=x_v{i@{lQlue5~x8OwMDPlq2tl!&85 z#fWkjxdSeASp==k_G{m5|Az(Oy%VF;jXtIW_5 zT4;qaY@VK;9`CwkClPEC1c0<4zAyRsqPI!%UnlYl3?afr2JywMQ=O(@x*zO ze$`>(R~@)?`SL6j0T|0p@!TPGcU-3kbh zLz0bRjHmT0UbP$IX}+1l(mtGM`TIl^wN^qq8|_?Vf9GsYdtED5^k<0is3IE@Y?MT27v*hGnWDFbP z3epHsZyjmO0)huQ6^QN_8qSRIRG?Ld%_6GpESM*PyM!OAud3a_u>NIwA=x4H{HUmKkXsOS)=NIu2=g^Ih=;`Yt_Dx_G&qllv zV!^ULZh9a4e|IaUhvBCZV=l3B$2V4vRYF_ezyS8B5*UF_sxd`Y=Z8ruNbI6H)X!zI z(}#(Qin@RxZ1wpG@o21S<3Dsw!D*B0};)YB>f+ z0&J7|`!*=ts7ONoKqL_b>(~EQtjq+fNud(!!rl*OmT4_IEsBC*9p@OUvqUFv0&b$aV z@JL39i+bfh8~H&+jLO4xgt0rgh|E|J>iv%q)e(X$o}&|`2*#gp@^>D^=b_>vhVkOp zs)-=}h(Svk&81CXn*LLKCneu_(esj09S$(t|C|&35REl@!~hmCuS5w9R80U8d?u>6 zmJ}Qt%*rD2h|Gf~CcPM>h8bWRgWx1?RL>3{9ZT8de@sPcF6k+2%Tc@}f6tl+qO%xm zhnp9>x&vEwJ3O`V)W|3ea8`({%mwL7ab;yCZqBED-?&rR3t2;W97lGd6p9@4^_`Lk zatm1ybP{{2^R% z^{UR~lBGY!#=LMZA@j=WX0-rTfh75`m@AL|t4x&T6ol41lOAMCl$wapye8#_BzZa< zZmPX|AG?a&cXDtDx0i;wd6x&caKzFs69E7f>;QWU@Vadz8$N_kNJ$Vvfj!cW9>wfV z%*V?Y^jUTWB8G5NMF68}O1KG;ASM8XBRv{~juM?<0N7r3b}prFe}mzHMZvqb+i)MR znI^)TO)X>?0Cos>225cjJu1ZU#|4SV3*#5z$7dk8>qqr!Z=dI?T?^Qps0c_dZOE^P zE(Un8Cr|2<)KswxX2EUzo)7n@ay4p{XvDL8{u~d5Jk}6DjQHGq+S8|E77hC)Br32a zcK!ob{+9(@#;{QAn^6!I5h##|-X&tF+GQ*RXmww)wb6>=B4s9m;Rlic9ui=SR%Rfs zwX2gywm+USf(PN46? zhrNk976b|!QtK^{0M(xUgbAAoL84cTw0f%9 z$2ZAovSjF?Sl6s*MR-)$$ltva{3PED9V4>Mv>_Q31Lt*h-H}6JzdjDJ#x;vsvBtW( z-|(VfY1axkRfqmVbv3_1p|XaCBT_I*yqOuvO07+Td&!GbEd)p$x*2b21O)wOKv#H; z;EUmg4p>QGix)|iy$>EdfLn26W1}AH3$$!d>tGTR7bmA6{!9%8nP#~4vGCkZ`5>}N zzmK;v-c-=NC2=(Ye!`n8MH-2hv18jKw!@@#MS1y?$XD?MoOBk^Z;2AOtN3wVo`h*7 zX$$_?(%DKav;5;SZO*Lpq?HSyjOQpHoy*G1MEZf4H-vuy<2NH!=0P%uUV&vp921A` z_GOCDpdca~zj}3Spq=<_JN#A3$w-ez_lvn+0jM-SJ`TK(o-~br;uUTNbz@;r^f8f3hzI#`od1IL4Ym;K+}Qd`SwSR97WRoW8+ zF8#ADpa4U+2I!1}s;VWaQk4P9StQEt$|K7TF3)#tqpfVhfOkHB1Kgvew zLN9Xl0rCj6i}#bJBk{YoZ`&3ZA1_!wG(Nt9hSDlV=Vzk3U5 zrqfQ;$%f6U%581_Qo>!xIPn8DWJ6**-M7UvX2L zt~A!xjvx<29R|$zB0i#aa^qLk5g6s(y@=27d%R3idrZvTjE{%Fxo*)wQqn&uDJdwZ z4(m@(Jluhehsz(PLGF86Kmfy(`zT3VD(B9<1Ehl7)7I3qa#0t`Wjr8fgfV)ZKw>w3 z*1u2I@$m4VHR^)IeQsfw+V!S~;vk`(Mx??7i>higW|v34uwTC12S8N-U&yh8h-PZh zm{!_^Y>1Q78p$KR@tnSX2lCN@{(ejqu3U`!2d}iXwgL^>SdY6K>p=^)e-ZBS(vp(L zMfUzX9DwTLD4``|fJFN@w{c%F;>r_;L)cV;8}BRI9*6qfyLbQF9BSoA066mL1ut#t zyZkD$r>Ey1{=cz;&KoN@s;Q}YP}m{_`vRpLJt-;$hykinIO#vejFu3SrR8NLSjpua z=nGZhT{${BI269@1Qg4;g?1AXQIgh9RC0@HWWT`SwF*gHFfX^*0R$G=njzkd#Hv;g1FD=QO2{l>3lfMfNVTS0*!YqzLKolN!gWXhS}00XRPK>U(#s>XqNK-V1`>S3 zVgxoJavl!nhsUg`D1LZV__CtVZu(!l< zzDY5+Ty}Q$FNgH>O0H9&yk_6AW3A%qt)%WM6snFdn(#o#QR)oLtWLfHk?V~Fr-7*V zx5=MUBF3*+n3%rjCcSOV+G%EH<}`69XCk4pk`cDUg2IXJtIINUu`g*DK6{&+Mg zcmjlZ%c|&=Z&n@ez=t(7d~o#WOWECfsj1P#m<^#14n5Xm_&+QlEj4x4=LYzTC}!*1 z^Ne5Zy{b~?xeEk*@Alj>k1;i7dpo=6u>YD@t?etqU89RIC+K!U!n__6MvdUIdE5Ed z>Cz=~5!m2J%4Gz;cp($8+sG+bVe3#OS!ci=dpYS_4o>|8v~%;Xb@dwaF!DFI5e?IY zw>J$mG+@hbfYvikK@T1O!)w8yHa9e8I8Sy7SI@3W8|>b`RGTl>lOW;8Y#;vodCl_t zg5lDit#9^=ZKvJ6ah&)K?R$gw@#Ys47-8-ng}=~`@o{DL01&7iQy;AI!}fPR6;S1% zruRvXQ(XLJ`pvD)8VzPPr)pXpVX)5elf!Mbe-7X|YrBfZ!;ceY0lT{gn+h6A^nyYWA_fNL9sas*-Msmup&MK&8_In; z9kq`>u`IpX{Y1q6p=xqDw%lFw_JCi7%|D;SJb2x>1FiC%e;4cqKI$Io5Srj+l@_I7 zJM|obyE>O^Po6My4nMwTGf+37s8}aTx4J?v`C9I0)6K0{A+l@Iv*teXL+tPnR5}Of zS2fL#^YNV+a;nv9T8jSrm%=zC>DG>oc}Uqw$kU*LuLGWdWZ3Eeh1%%w=~0CKnVA`w z-J5y`9u#eAZKdfYsp+Z7R(>pqkLO`!oge(Z|sYY-HV=y;> zefEo&Vh{f?`K~IW;H3R{>Pxzwh}9z{x(Ta*i3yRG-={sD?O~5u;+^AS>*L86McJaP z7-eYqaLuB~?_Y$vzH!yLyfUk$!o`XE?3AeJZ_8af{p;%6+KvP91C?M!PxP*cV^?dI zCcPwU_*imwYwN4HxJ784E!r&(T)BEiOJ6@i+gDwE@4|x0{Fq4pT5DSy3@Bo6e^jgE zZ%THnYkN2L2e*vUNW`N@KL#8B78JOY#9z9^CGNRj!_)ktAPWyq|D5$!;g<>?3rsDQ zkE-*{6WyI0wVj_h*Vftee0p5fl{`9{5XsgU7!m??{GH(7S&R#zd3`N7A|hg8s#j&R zqN+~LvfnPA!%1w%&|TN$85l0kFeobb=p3V^6({76nJ{umav2-f)^1z#sVlH;%kF-r z_w)fbT=-%45vzq36OB0CWH*Sc>{|mwDYUDiBYIh^XT#SzBHIm8Nv);>Dl9u}05n=zrJ& z+@bC*)6_xEpy$;tb=f#M#HBBxJB?TCpH_88GP+trotc`_n88b!5d z?l>gnH^@1;)LbK{d`9?0#RC2xs@^-E>c0;kKZr^+DWlSo71^RxX4%K4P?1@Yovoy@ zQXFLEki9AmBeaZ=os^7_j1q}#zSmoy`}g~P|GFQKyZb)QdB0z;=eVBNbv?~LZ;HQf zwvOL>c`1xlt$cOqK151-38JWti-Ug}&J2j8aO=QC<}HaTe#GnV`|4`2GHx9^W&oKH z{IRgT>Sgnx^^71p?L;Tc$*FcuZsa9zoO<%Y_a4!%?>i115FS@kSGO|yq_jJ^WsD=J zT~Ua~UQ?MtP~F|h$;0tri9%Ve>A{B{eAU@l*w`+I{9h${xG+{I`r(+cjpOCTYaodO_Q6Etz(mQ3_!_&yx*Jth_*56m)1~g*dps<~^<6hWgES=@9nmVl*)W+40y%_5lYgMn=wdvHm z)BjrAvYT&vBVeeGZGLEN|3u@z*A_?ZQ=ISK9y8|{kor-dA?br13cUY81GFmlb!g_3-Wi{Hz_n#_`cYXTT$-UXeXbU zIWwr;MoU}nOpi?JZAd21WPG{e=htKMS)(_}t9QWbm0Ce0`CmYM_8fdaz>R>MuxRl* z&GDK;hYmf;?G}H}z6{H(M}>vcgmUz$&1pr9IV3Y9Il#Tmhk^9Rl*VFV$Z7)}6hx*9Tgs#WA|QX3oz=JHoI?_wOk4 zjSW(Z^>%3Law~XGF)}T@)(@KNH**Xe8hYn#_;oISh<`Z;omZ5F_RESvGD2)UF1Aq|l*fZf54P7kSWv%#8ryTtr{pEJHDGqOY{O4i{$3dj79q&ZT>p5@6_wn*RR%ol0sf zd^^(PNmocErIJF5*770BH~C+zM|5FecX#F;cneZ&@Vd@#$&7>8r`MIhV9MM&2ea|6NJwhbg!>V zI$Bm;FuyB?azNWc>sK+$R1oElru^{c^CU6{cDcEsvc$SEVN&KrRL<#|i5xq2lsWVq zWgt~XP$({7D!N;RaEo9GrNtK@d~h8^1ZZiAU<8i@M~c`2 zYOAfU8e?>u!Ey8EzSfL*lzNvxi{^|Z2tEF(D&)esB~oj(GJ*w4Y3ds^AU$PXHT<`d zd&!>8I1`fmoYo62iOb&))`) z@;vkdx#x@4C)-$G@yXw&GW&BMMd-uXY&)#}-MVw<#JuaNr#9B+=CK#7V04}Hqw?XI zGTt-cp-eGRQMfy}y=iiET@8s|-#NlxeV(29Gq}O2Vbj*F$sZD~&7w>h*ipI*ebU10 z7Kfga)~aHr(-=5uYF=H^ANuTke5{+U7^F0LdEcW~E{BvKee>p;ZOp!X`+l^wrY|Nt z*y-z+=ky}u)DJdtJ+ozKEh9tJ$6ow{9EQP9N^%(J>2V;roQ*>xIh`6O5DH={sIr`ModE z_@r7L%f#a$miO=8{rteUn(+e!G$rS27}#U|x_Mld28M@wM;ASY$QJeuw>DV}eK;sC ze&x&asHdlL3`UD*QM`h3Ewihjz=bT4io?Kjv`V;l;O8Gr3g!wB1eb(_cqJEUrOCkhGCE4XLN!k?ox0GEk@*~ zL%y4Q;EeUCF5KS0O2EN8OCqzlT%Chs34n-&k9XNk-)DqNCT8cEm7PKhDK{_)P6H@q zaHSR$7QVBD&fXI2Zxj={c^nciy*;8|`!Vl460FG#Jn(>E*cGv1@d^|umQx9WNVLzx zIAe6yJoB3Vj%DyD3sMAz4&>;B9&1-}L7!>N&Uv(RpO6r={UI>&SukJxUXlan`QGmXz+t9+Na+F=Q6uu%s6ov-GQ?GP0b`a9C*Ovw%7XgjT< z61!(-M^SjVwUd+6kB@Vu{y}bMKNo0Vs}gnQMhh=J{V9F!0|&1E*qh+y)SNQq;+hl{ zdRuc#94ZQcCpY%nr-QZ?QrG&Xv&`FVv+6e5^z5LPPIT>zr?RtVlaz}A()&#gY5rZ9 z+rNJchj>$()|Ind?{*j|_H1K5mdEBwExz{*53FAf#0-wIKie0x)WV;1xbintpb+ zwi<~tQS$Fq#V0u_d{|m~*lm0A&#K0;3yO+1-OgJtUF!0g*E~~nxvw_riOade!sDwo zI`_yFgDv#gpGG-1RQs%AtRVyn)1zOM2UWGT?}|HyAn6QECi{2=#7Qi-CVcHNoAheCmT$){UB}S2)S)L99yQHD ztg?*m6H2FtK4jg*Z896ph@k#?rV;-a+JNu9Z@+xj(Ai_ODe5he3*NEEZ2dOa2=-;Y zU6*G{v_b5N(uD)xRv&<V^a(xu0R-ONYn8OfS-mg!t3HW5;ywO@WhdV<8sLIQqr? z`Qy*>XJm^Fs88pITj#q5&xU*XU5m?Bq z^qs?C4Qb&$^hS-1;SCyw6wIKa`Ex;dGx-a=i{5CJspd3D+$;Y7Q$m~79y?> zW?xvvoS!e$@9^uFWY5bpJ47qw^q!h`I~*MoH4Q&Mv>{*rp)ntm*O|&Dl~tyPH*DC@ z++t_+vV6U1xb?v8ls#Hn8{&pmsVY1;YUlGbx4IvTsIi_xLZ{rz?+*3x|}X>1OXjP&#^#r{D$e-mh0KRq^> z?N-v(hHFJEYKjLF02yj|&IX5v&;NdFsG;%Tx`;Hr9j=$7qX;;DI(oUY^Je@*Y;*JT z&89;=_fwu5G5Gi0jfo*7M|pXpfcJ)Er0M+Sfv!CR!xmH7S$@+#j%vVVSa8igtiwG4 zfrT}wzEVomt_>plR!p_8%(lqNF})q|3llHnSG4iPM`5v6f!XQ^Jl%2 z_fV6NR^tX2pR+Bg-g6s4KUivh;Ki5LC#%sR|L6N9xYR|vvuR5e<}@@^+gRr7OD^hy z?$=rqIVfR6MT;1^2#TVMJGN8KKY$CD;5?YH;?x9ZQmNbJmZ<4zs;6jODh~AzHzIn3dP363m$;e%}Oc? z;u;mP)yWYOj^5tnV#$fcdBcu(g$~`t-*r>YJG=xVtoSLf^{wcHgrC2bhEPUI8>XLZ zz|H+$F9~&~NlC>e)F@KW;bOz_5nzYPG4FEo@`jxYLAPcg`E6!n!{|~0QXLHqjVdW$ zP^mFc_wbknSwQrw!{-NzB{|l33jriMv#xJ#! zUaw#O*TwRE{V2a|wTarWbv=~FnV2Ap4bF&OXg{UKypm1Rg$WLpv1wxX@PGWiA+aA1DjIz&_;Z4LVY0=|*9FjorKDpfo*TlNHtGEhu;? zzq9N`Z(B|S<({JQjW1suzfKf37@O1eAo*^iYX)LNXPH-` zr6GOF^}w9wRsi8|0&~{Q8YL&c*3>lKd#hC!TQA8pk)@^b$o6n`cXchhCv_H*`g8K~ zN9t;m83yjn{tq^yAY0h?zz9SUx`fr(w*rGuj~~%$W8Hpip|hwJ0YvxR?@v*>;L)2{ zQo^9|^qGkOXl}O&2qr9aX<4nzvd&FhBi>4NLy2|ccfr%b{xZj7UVH`H4`G z_Uq(ks(NKr6{?BYl&ff_gv;e(E740~VjEcH=#3*Y2UvAd71ImwS_O>@R@ojU9cT6D zs@KQ3uVsGv;kr|`1AN;Z9e-oP3&yOUKF=D#X}AlU*h9o0|GZxeJJ}<46ndrI^p{5Z zs|$5>mbudUa0N0nr7v4r^gDXAXM7WAzpbroaZW^VP}#R1=M$^)@T#a7vep?T!};kB zEwM`sk=)d@EFq+`Gru7Bu4vOc}0)_=6 zLTL2r6N+cT_22&dSOV^7wSg^|KB#pr`c!((IB1)jY- z+8>>>FtCBCHf#-Lxi3s!mZnQDDl$U(rZ?2?VAHUxrn)-P(r~Qyux9b2N0%R((Iq6T z_w@2x>hJgT@JR&?dVYLP^x#QF#hDB(rkn$35lq4OlR+bi zS#K1D!bV!yW*Q^oF@a^x5?J_LIa37#njyQ-;M!SQs)>&aP-Hw!QM^Izu$7AoyT?P2 z5OJ(17zMLl^Ut!2h|~pJ>$i`K%@&u;SX2{bOVEBW+J^Zs@|uY-q4Q-<0#|Qw~Y{ z&Yx258K0C)O?4F%)U+O2CLIm>HHUfz}ufcODY|NYBZ{M`wPHTxdlLu1&Q-P0GwZpcJY5i~8a?W@={S@*VP_!TBg zv-#Lf^VqRp$9=k5?^jD2bQWqx%~Qi-w`kL^U!OrA)~s9D;GT+1VhbOfJs1o6tQj9pd@<{8G-& zBbOgIVKBE%$V9iaR|&D5m#{#8;WN*%O?YvpcYdIbC%Q{Pw?V>VR@=qpe0h9uC{yDz ztMV)Lec12xDQR4}Q%v$XHXJTGd_0h8#!8~lU%2pN(_Uq;Wr-f&WZfCkF2HDWON%dn zO{Jb!S)C*(h~J13EW<@bPVOoV7rM|kkQM-=8f0i|PdRPpDcT>RR z08Z1=Ea4CGrr-q?R+SD7ZP@gxlyP@>c=+78*R%FF5AXV^b*YC}3=bO6##fHcMKiQj zye}WHgs(>(G&H)||4e314ksrkjII|ti=9`vFn31L4Z~&(U=X`sk;k9?mS#AhI}Tmm z6%f32u_N`^>2T z3=Q%-&EA~hfoa9&jT^z)yzKl!l@mlgnYxkX7l!#eAK2{3kAZ8&PNz$qP9AfUJL`5@ zYU${VOotm~XmeO**U#2ZMB)b9z)X=>U76a%?~iNprA0GLFs zz*eA$W#_sT6!iJgxqzag8Sv@Z^)hk4@w?u>dpCsg$Hi;7g&VwvR5i@ySJ9@A{KC0W zQBk26T$~s{!_SpTet6$a#ZIESLUG$uJcz@cMXntkVNQY_k1Yfbnw~26R;%$#d{-xc zeTFFI$|mQgobv}x5n(0&^Mez|qPunw%fX!lJ%R5Px_@MI#&~YIm9D^dvA{E(x?0Ak zqc>atX!|uw9?w8yc2aFvYU)1ItKlIbkbzo|UVQ@N!07MEkkDf&ykjSN*u|{IRle%W zHcJ#kd%K=p^c!9hXq>Rd4Sn`ZqG|#~hrwmpWII*Wxv5`Wb=RU9*M(sAkstu%0(WKB zv}6*iMD)Gh+6J?7ArJUBoAFb?uf=OwhH0m}G?>e$?{z?nJAH8PltR zhMrXA(3!?DJx`l_KSv3Pu-yuwV4cRhKk4g>VCIxGS89GT=#Pg66Xlk_#%>$P^>G8O zj$;HeG<@?0gTt5SI?Bq??R*h8t6@!^XZ)Ay708aF%>O06(cJI;!=PWVd^0}P@O8jt zauB6jX47K}Df`>Wy?3yJ49h*!E#y~Q|NO)UWU*8O$*i-)b)Yh&8aoRC-;@&^@t;4v z!Fs}*{V_Bo>~D8KTznGBDg;$*Ub6Cj1<`n0+cOAD_bP{;CCkB64_rH36WrNi@27TO zp)dG{1~yk2&+D!i)0W)F<1t%c&^Yko$Avh6=~#AA%wPkqN?r6N9m8cUKV=9izA~cWMzs|^ zX65QS<@WQ?o8T1Pj9-)6w`}eMj$w5FSD6RMQMNHqDIc#s*PN2Y$f#Od%m1{|B#p)LTN7EsF%HtcYBl+H=jQ`6Sw6A}6S!|SresZLYp$8hb(yP%zMG{=>Up4!~Sx&U-D#U-4iw&=*nEsOJ(1S^HK z=w%0r=Ya#IR`nbVtXIuwy}afzKvBij$4KklyEV*xBvQ8E0v)-FnOzhh=R#dfIQp0e zY`0=cFULtah+!a{u=eEdrmeiDef$dA2J%~^lAIFc0+eraSYq)^buInk&~SIx9ko^? zH#dW(I2@<$!m;;Di(h_qyQUoo{SlH4A}V>kk;qGsCxZzvnMZ*pHS;e5Ms?OE#_P<#4$eEFS}^`Bw916 z{FZznM)@`ueqd`=3U!Csv)bp>(KTzFDx(bcAefzMYGzDBv96-d6?--ro6i^O63RV`W2JMY+bjLB@BLPl#6A~^$f_Cm4 zXhl!VD}!+)GP9C@AB6yRH8ErL--BX7A1u}T7y^8KO~*jK1g1+%b+vU9RSs;qT=}&0 zbO^X$Qga!
  • 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 literal 0 HcmV?d00001 diff --git a/docs/hub-architecture-map.html b/docs/hub-architecture-map.html new file mode 100644 index 0000000..bef0f8d --- /dev/null +++ b/docs/hub-architecture-map.html @@ -0,0 +1,13716 @@ + + + + + + + Central AI Hub Diagram + + + + + + + + + + + + + + + + diff --git a/docs/hub-architecture.mmd b/docs/hub-architecture.mmd new file mode 100644 index 0000000..7dfc659 --- /dev/null +++ b/docs/hub-architecture.mmd @@ -0,0 +1,36 @@ +flowchart LR + subgraph IN["Ways in"] + PHONE["Phone app
    wake word + voice"] + ADMIN["Admin app
    restricted actions"] + ESP["ESP32 voice
    Hey Jervis"] + DSH["dsh chat"] + CONSOLE["Console portal"] + end + + HUB{{"HUB
    hear - understand - check - route - answer"}} + + subgraph OUT["Destinations"] + HA["Home Assistant"] + SPK["Speakers
    Jervis TTS"] + NET["Internet control"] + ART["Artemis
    phone screen"] + PC["Paperclip
    slow jobs"] + WEB["Web search"] + APP["Apprise / NTFY"] + end + + PHONE --> HUB + ESP --> HUB + DSH --> HUB + CONSOLE --> HUB + ADMIN --> HUB + HUB --> HA + HUB --> SPK + HUB --> NET + HUB --> ART + HUB --> PC + HUB --> WEB + HUB --> APP + PC -. result .-> HUB + + click HUB "https://maps.lab.audasmedia.com.au/central_ai_llm_master/docs/" "View Archify Map" diff --git a/docs/outline/00-index.md b/docs/outline/00-index.md new file mode 100644 index 0000000..4d0748f --- /dev/null +++ b/docs/outline/00-index.md @@ -0,0 +1,38 @@ +# Central AI Hub — AI Document Index + +> **Target**: AI Agents +> **Writing Style**: ASD-STE100 Simplified Technical English (`ste-writing`). + +## Document Catalog (Inject Specific Document) + +Read this index to inject the exact file you need. Do not search all files. + +| Document Title | Path | Scope / Description | +| :--- | :--- | :--- | +| **System Overview** | `docs/outline/01-system-overview.md` | Explains the Hub purpose, its five steps, and the destinations. | +| **Configuration & Env** | `docs/outline/02-config-and-env.md` | Lists services, ports, env vars, and secret paths. | +| **Code Structure Map** | `docs/outline/03-code-map.md` | Shows the planned folder layout and entry points. | +| **AI Agent Runbook** | `docs/outline/04-agent-runbook.md` | Gives steps to build, test, and restart Hub work. | +| **Design Brief** | `hub_brief.md` | The agreed design. This file is the source of truth. | +| **Project Rules** | `AGENTS.md` | Mission, rules, build order, and project relations. | + +--- + +## System Summary + +The Hub is one service. Every way in reaches every ability through it. The Hub +does five steps: hear, understand, check, route, and answer. The Hub does not +hold a personality or a memory. The Hub does not do the destination work. + +## Core Configuration + +- **Env File**: `~/.config/environment.d/10-secrets.conf` +- **Config Directory**: `docs/` +- **Active Ports**: Hub port not allocated yet. + +## Agent Restart Steps + +1. Read the Document Catalog above. Inject only required files. +2. Read `hub_brief.md`. +3. Check git status: `git status`. +4. Check recent commits: `git log -n 5 --oneline`. diff --git a/docs/outline/01-system-overview.md b/docs/outline/01-system-overview.md new file mode 100644 index 0000000..4743531 --- /dev/null +++ b/docs/outline/01-system-overview.md @@ -0,0 +1,59 @@ +# Central AI Hub — System Overview + +> **Writing Style**: ASD-STE100 Simplified Technical English (`ste-writing`). + +## Purpose + +The Hub is one service. Every way in reaches every ability through the Hub. Build +each ability once. All ways in get it. + +Today, Jervis (voice) and dsh (chat) each understand the user and act. A third +way in, the phone app, would repeat the same work. The Hub stops this repeat. + +## The Five Steps + +1. **Hear** — take voice or text from any way in. +2. **Understand** — the LLM works out what the user asked. +3. **Check** — test whether the user may ask for this. +4. **Route** — send the request to one destination. +5. **Answer** — return a short reply in the right shape. + +## Ways In + +- Phone app (Kotlin) — wake word, voice, controls. +- Admin app (Kotlin) — restricted actions only. +- ESP32 voice — "Hey Jervis". +- dsh chat — per-person chat. +- Console portal — web dashboard. + +## Destinations + +| Destination | Job | +|---|---| +| Home Assistant | Lights, switches, timers, calendar. | +| Speakers (Jervis) | Speak and announce. | +| Internet control | Parental limits on kids' devices. | +| Artemis | Operate the phone screen. | +| Paperclip | Slow, multi-step, recorded work. | +| Web search | Tavily search. | +| Apprise / NTFY | Notifications and email. | + +## Reply Shapes + +The Hub returns one reply. The reply can hold text, spoken audio (TTS), Artemis +commands, a notification, or an email. TTS can play on the house speakers or on +the phone. The Hub returns the reply to the source. + +## The Dividing Line + +The Hub asks one question: does this need a decision, or does it need to happen? + +- **Happen** — fast and certain. Go straight to the destination. No LLM in the + path of the action. +- **Decision** — slow, multi-step, worth recording. Send to Paperclip. + +## What the Hub Is Not + +- Not a central brain. No single personality or memory. +- Not Paperclip. The Hub does not wait minutes for an answer. +- Not a destination. The Hub does not turn off the internet itself. diff --git a/docs/outline/02-config-and-env.md b/docs/outline/02-config-and-env.md new file mode 100644 index 0000000..f792cd7 --- /dev/null +++ b/docs/outline/02-config-and-env.md @@ -0,0 +1,43 @@ +# Central AI Hub — Configuration & Environment + +> **Writing Style**: ASD-STE100 Simplified Technical English (`ste-writing`). + +## Secrets + +All secrets come from `~/.config/environment.d/10-secrets.conf` on each machine. +Never hard-code a secret. Never commit a secret. + +Relevant keys: + +| Key | Use | +|---|---| +| `OMNIROUTE_API_KEY` | Model calls through OmniRoute. | +| `PAPERCLIP_API_KEY` | File jobs to Paperclip. Does not exist yet. | +| `TAVILY_API_KEY` | Web search. | +| `OL_API_KEY` | Outline docs. | +| `VIKUNJA_TOKEN` | Vikunja tasks. | +| `GITEA_TOKEN` | Gitea repository. | + +## Services and Ports + +| Service | Host | Port | Use | +|---|---|---|---| +| OmniRoute | 192.168.20.13 | 20129 | Model gateway. | +| Paperclip | 192.168.20.13 | 3100 | Job orchestration. | +| Jervis (voice) | 192.168.20.13 | 8501 | Speak and announce. | +| Home Assistant | 192.168.20.30 | 8123 | Devices and timers. | +| MQTT | 192.168.20.13 | 1883 | Voice topics. | +| Apprise | 192.168.20.35 | 8210 | Notifications. | +| Hub | not allocated | — | This service. | + +## Config Paths + +- Brief: `hub_brief.md` +- Rules: `AGENTS.md` +- Docs: `docs/` +- Outline context: `docs/outline/` + +## Rule + +A new project gets its own service, its own port, and its own folder. Do not +merge a destination into the Hub. diff --git a/docs/outline/03-code-map.md b/docs/outline/03-code-map.md new file mode 100644 index 0000000..de94862 --- /dev/null +++ b/docs/outline/03-code-map.md @@ -0,0 +1,56 @@ +# Central AI Hub — Code Structure Map + +> **Writing Style**: ASD-STE100 Simplified Technical English (`ste-writing`). +> **Status**: Planned. The Hub is not built yet. + +## Planned Folder Layout + +```text +central_ai_llm_master/ + AGENTS.md project rules for agents + hub_brief.md agreed design (source of truth) + README.md technical readme + docs/ + hub-architecture.mmd Mermaid source + hub-architecture-map.html Archify map + diagrams/ rendered images + archify/ Archify JSON input + outline/ AI context documents + vikunja-tasks.json human task list + src/ Hub service code (to build) + main.* HTTP entry point + hear/ takes voice or text + understand/ LLM intent routing + check/ authorization and approval + route/ dispatch to a destination + answer/ reply shaping (text, TTS, notify) + destinations/ one client per destination + tests/ unit and round-trip tests +``` + +## Entry Points + +| Entry point | Use | +|---|---| +| `POST /ask` | Send a voice transcript or text. Returns a reply. | +| `POST /approve` | Admin app confirms a restricted action. | +| `GET /health` | Liveness check. | + +The API contract is not final. See `hub_brief.md`. + +## Primary Dependencies + +- HTTP server (Go or Python — decide before build). +- HTTP client for OmniRoute, Home Assistant, Paperclip. +- MQTT client for voice topics. +- Tavily API client for web search. + +## Destinations + +Each destination gets one client under `src/destinations/`. The client calls the +destination API. The client does not hold business logic. + +## Source Control + +- Gitea: `sam/central_ai_llm_master` +- Local: `/home/sam/paseo/projects/central_ai_llm_master/` diff --git a/docs/outline/04-agent-runbook.md b/docs/outline/04-agent-runbook.md new file mode 100644 index 0000000..42717cc --- /dev/null +++ b/docs/outline/04-agent-runbook.md @@ -0,0 +1,55 @@ +# Central AI Hub — AI Agent Runbook + +> **Writing Style**: ASD-STE100 Simplified Technical English (`ste-writing`). + +## Phase 1 — Prove the Paperclip Round Trip + +This phase has no Hub code. It proves the missing link: a job that leaves and a +result that returns. + +### Steps + +1. Create a Paperclip agent API key for this project. + - Paperclip board: `http://192.168.20.13:3100`. + - Store the key in `~/.config/environment.d/10-secrets.conf` as + `PAPERCLIP_API_KEY`. Never commit it. +2. File one job with `curl`. Use the issue-create endpoint. +3. Confirm the job appears in the Paperclip board. +4. Wait for the agent to close the job. +5. Send the result to Jervis `POST /announce` so the house speaks it. +6. Record the result in this file. + +### Commands + +```bash +export PAPERCLIP_API_KEY= +curl -s -X POST http://192.168.20.13:3100/api/issues \ + -H "Authorization: Bearer $PAPERCLIP_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"title":"round-trip test","description":"prove the return path"}' + +# Speak the result. +curl -s -X POST http://192.168.20.13:8501/announce \ + -H "Content-Type: application/json" \ + -d '{"text":"Round trip works."}' +``` + +### Definition of Done + +- The job appears in Paperclip. +- The job closes. +- The house speaks the result. +- This file records the result. + +## After Phase 1 + +Follow the build order in `AGENTS.md`. Do not start a destination before the +round trip works. + +## Health Checks + +```bash +curl -s http://192.168.20.13:3100/health # Paperclip +curl -s http://192.168.20.13:8501/health # Jervis +curl -s -o /dev/null -w '%{http_code}\n' http://192.168.20.30:8123/ # HA +``` diff --git a/docs/vikunja-tasks.json b/docs/vikunja-tasks.json new file mode 100644 index 0000000..5432a19 --- /dev/null +++ b/docs/vikunja-tasks.json @@ -0,0 +1,16 @@ +{ + "title": "Central AI Hub - Human Task Overview", + "description": "High-level task checklist for human team members.", + "tasks": [ + { "title": "Create Paperclip agent API key and store in secrets", "done": false }, + { "title": "Prove the Paperclip round trip (file job, speak result)", "done": false }, + { "title": "Decide the Hub language and port", "done": false }, + { "title": "Build the Hub skeleton (hear, understand, route, answer)", "done": false }, + { "title": "Add the tap-to-approve flow on the admin app", "done": false }, + { "title": "Build the internet control destination service", "done": false }, + { "title": "Build the Artemis destination service", "done": false }, + { "title": "Move Jervis action tools into the Hub", "done": false }, + { "title": "Build the phone Kotlin app", "done": false }, + { "title": "Connect the email and school pipelines", "done": false } + ] +} diff --git a/hub_brief.md b/hub_brief.md new file mode 100644 index 0000000..f737789 --- /dev/null +++ b/hub_brief.md @@ -0,0 +1,150 @@ +# The Hub — a short brief + +**Purpose:** tell every project where it fits and the rules it must follow. +**Written:** 2026-10-10 +**Status:** agreed direction, not a build order. + +--- + +## The idea in one line + +**Share the plumbing. Keep the brains separate. Put one small hub in the middle.** + +Every way in (phone, house voice, chat) reaches every ability (lights, internet, +Artemis, Paperclip) through one place — built once, not repeated. + +--- + +## What already works (do not rebuild) + +| System | What it is | +|---|---| +| **Jervis** | The house voice. ESP32 "Hey Jervis" → STT → agent → TTS → speakers. Controls HA, timers, reminders, shopping, calendar, music, weather, web search, family messages. | +| **dsh** | Per-person chat (sam / jo / harry / finn). Memory, images, video, documents. | +| **Console portal** | Logins and dashboard for the family. | +| **Front Door Cam** | Its own separate ESP32. Visitor detection, Gemini sees the person, voice asks them to speak. | +| **OmniRoute** | The model gateway. All models go through here. | +| **Home Assistant** | Devices, timers, calendar, notifications. | +| **Shared** | Apprise, Snapcast, STT/TTS, n8n, secrets in `environment.d`. | + +These stay. The hub is added, not a replacement. + +--- + +## What is new + +- The **Hub** (this brief). +- **Email agent** — its own pipeline. +- **School (Compass / Teams)** — its own pipeline. +- **Internet use control** — a destination the hub calls. +- **Artemis** — a destination the hub calls. +- **Kotlin phone app** — a new way in (wake word, voice, controls). +- **Admin app + kids app** — parental control, admin only. + +--- + +## What the Hub is + +One service that does five steps: + +1. **Hear** — takes voice or text from any way in. +2. **Understand** — the LLM works out what was asked. +3. **Check** — is this person allowed to ask for this? +4. **Route** — sends it to the right destination. +5. **Answer** — returns a short reply in the right shape for the device. + +The reply can be **text**, **spoken audio (TTS)**, **Artemis commands**, **a phone +notification**, **an email**, or a mix. TTS can play on the **house speakers** or +on the **phone**. + +### What the Hub is NOT + +- **Not a central brain.** It does not hold one personality or one memory. +- **Not Paperclip.** It never waits minutes for an answer. +- **Not a destination.** It does not turn off the internet itself. It sends the + request to the service that does. + +### The dividing line + +One question sorts every request: + +> **Does this need a decision, or does it need to happen?** + +- **Happen** (fast, certain) → straight to the destination: HA, internet control, + Artemis, speakers. No LLM in the path of the action. +- **Decision** (slow, multi-step, worth recording) → Paperclip. + +**Paperclip is the work bench, not the switchboard.** It is never in the path of +a fast or high-consequence command. + +--- + +## Where each system fits + +| System | Role | With the Hub | +|---|---|---| +| **Jervis** | House voice | Becomes the **voice** (speak / announce), not a list of tools. Its action tools move into the Hub over time. | +| **dsh** | Chat | Calls the Hub for actions instead of keeping its own copies. | +| **Console portal** | Login + dashboard | Unchanged. May show Hub status and approvals. | +| **Front Door Cam** | Visitor intercom | Stays separate. May use the Hub only to speak. | +| **Email agent** | Own pipeline (n8n) | Standalone. May report results through the Hub. | +| **School agent** | Own pipeline (n8n) | Standalone. May report results through the Hub. | +| **Internet control** | Destination | The Hub calls its API. Enforcement happens on the kids' devices. | +| **Artemis** | Destination | The Hub calls its API. Artemis touches the phone screen. | +| **Paperclip** | Work bench | The Hub files jobs and hears the answer back. | +| **Phone app** | Way in | Sends voice to the Hub. Shows replies, notifications, approvals. | + +--- + +## Rules every project follows + +1. **All models go through OmniRoute.** Never call a provider directly. +2. **All secrets come from `environment.d`.** Never hard-code. +3. **Own service, own port, own folder.** Do not merge into another project. +4. **No LLM in the path of a fast or consequential action.** Deterministic calls + for anything that turns something off. +5. **Paperclip only for slow, multi-step, recorded work.** Never make a person + wait on it. +6. **Replies return to the source, and stay short.** Speaker → one line. Phone → + notification. Chat → text. No long-winded answers. +7. **Restricted commands need tap-to-approve** on the admin app. This includes + parental controls and any job filed to Paperclip. +8. **Only the admin app can change parental controls.** Kids' apps and desktop + exes may only obey and report. +9. **New work registers with the Hub.** A capability is added once, and every way + in gets it. + +--- + +## Safety + +- **Voice is shared and unauthenticated.** Anyone in the house can speak. +- **The admin app is the only trusted door** for restricted actions. +- **A spoken keycode is not the lock.** It can be overheard and misheard. Voice + may *ask*; the admin app **confirms** with "Did you ask for this?". +- **Approval is required** for parental controls and Paperclip jobs. + +--- + +## Build order + +1. **Thin slice, end to end.** Issue a Paperclip API key, file one job from a + script, and get the result announced back. Proves the round trip. +2. **Hub skeleton.** Hear → understand → route → answer, with one destination + (HA or speakers) working. +3. **Approval flow.** "Did you ask for this?" on the admin app. +4. **Internet control.** Standalone service with a plain API. Device-side + enforcement. Admin-only. +5. **Artemis.** Standalone service with a plain API. Screen control only. +6. **Move Jervis's tools** into the Hub. Jervis becomes voice-only. +7. **Phone Kotlin app.** Wake word, voice to the Hub, replies and approvals. +8. **Email and school pipelines** stay independent and connect when ready. + +--- + +## What is still open + +- Exact API contract for a job (title, brief, project, agent). +- How Artemis receives voice (stream vs file) and when phone TTS is used. +- Which Paperclip company / projects to use. +- Identity: how the Hub knows which family member is speaking.
    + +
    +
    +
    +

    Central AI Hub

    +
    +
    + + + + + + +
    + + Central AI Hub + A architecture diagram generated by Archify. + + + + + + + + + + + + + + + + + + + + + + + + + Ways in + + + Destinations + + + + + + + + + + + + + + + + + + Phone app · wake word + voice · Ways in + + + + Phone app + wake word + voice + + + + Admin app · restricted actions · Ways in + + + + Admin app + restricted actions + + + + ESP32 voice · Hey Jervis · Ways in + + + + ESP32 voice + Hey Jervis + + + + dsh chat · per person · Ways in + + + + dsh chat + per person + + + + Hub · hear - understand - check - route - answer · Architecture component · one shared service + + + + Hub + hear - understand - check - route - answer + one shared service + + + + Home Assistant · devices, timers · Destinations + + + + Home Assistant + devices, timers + + + + Speakers · Jervis TTS · Destinations + + + + Speakers + Jervis TTS + + + + Internet control · parental limits · Destinations + + + + Internet control + parental limits + + + + Artemis · phone screen · Destinations + + + + Artemis + phone screen + + + + Paperclip · slow jobs · Destinations + + + + Paperclip + slow jobs + + + + Web search · Tavily · Destinations + + + + Web search + Tavily + + + + Apprise / NTFY · notify + email · Destinations + + + + Apprise / NTFY + notify + email + + + + + + voice or text + + + + restricted + + + + command + + + + action request + + + + do it + + + + speak + + + + confirm + + + + screen control + + + + file job + + + + search + + + + notify + + + + result + + + + + Legend + + + Frontend + + + + Backend + + + + Cloud + + + + Security + + + + External + + + +

    + + + +
    + + + + +
    + + +
    + +
    + +