From b05dd0fde1155f5cc048abdde7bedaff9cb1f6dd Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Mon, 20 Nov 2023 13:43:33 +0800 Subject: [PATCH] oenapi doc (#493) * mongo init * perf: mongo connect * docs * fix: select file * format * remove seed * doc format * doc * perf: tts model type * doc * upload time * doc * doc * doc --- README_ja.md | 92 +-- docSite/.zhlintrc | 10 +- docSite/assets/imgs/fastgpt-api-baseurl.png | Bin 0 -> 190543 bytes docSite/assets/imgs/share-auth1.jpg | Bin 0 -> 122995 bytes docSite/assets/imgs/share-auth2.png | Bin 0 -> 348018 bytes docSite/assets/imgs/share-setlink.jpg | Bin 0 -> 221341 bytes docSite/content/docs/development/intro.md | 4 +- docSite/content/docs/development/openApi.md | 546 ------------------ .../docs/development/openapi/_index.md | 8 + .../content/docs/development/openapi/auth.md | 58 ++ .../content/docs/development/openapi/chat.md | 254 ++++++++ .../docs/development/openapi/dataset.md | 214 +++++++ .../content/docs/development/openapi/share.md | 257 +++++++++ docSite/content/docs/installation/one-api.md | 4 +- .../docs/installation/upgrading/421.md | 2 +- .../content/docs/installation/upgrading/43.md | 2 +- .../content/docs/installation/upgrading/44.md | 2 +- .../docs/installation/upgrading/442.md | 2 +- .../content/docs/installation/upgrading/46.md | 28 +- .../global/common/system/types/index.d.ts | 1 - packages/global/core/ai/model.d.ts | 2 - packages/service/core/ai/audio/speech.ts | 6 +- packages/service/core/dataset/data/schema.ts | 7 +- projects/app/data/config.json | 2 - .../src/components/ChatBox/MessageInput.tsx | 2 +- projects/app/src/components/Layout/navbar.tsx | 2 +- projects/app/src/components/Select/index.tsx | 15 - .../core/module/AIChatSettingsModal.tsx | 2 +- .../app/src/pages/account/components/Info.tsx | 2 +- .../src/pages/api/core/chat/item/getSpeech.ts | 5 - .../app/src/pages/api/system/getInitData.ts | 5 +- .../app/detail/components/OutLink/Share.tsx | 2 +- projects/app/src/pages/components/Navbar.tsx | 2 +- .../src/pages/login/components/LoginForm.tsx | 2 +- projects/app/src/pages/tools/index.tsx | 2 +- .../src/service/moduleDispatch/chat/oneapi.ts | 2 +- projects/app/src/web/common/file/api.ts | 2 +- 37 files changed, 883 insertions(+), 663 deletions(-) create mode 100644 docSite/assets/imgs/fastgpt-api-baseurl.png create mode 100644 docSite/assets/imgs/share-auth1.jpg create mode 100644 docSite/assets/imgs/share-auth2.png create mode 100644 docSite/assets/imgs/share-setlink.jpg delete mode 100644 docSite/content/docs/development/openApi.md create mode 100644 docSite/content/docs/development/openapi/_index.md create mode 100644 docSite/content/docs/development/openapi/auth.md create mode 100644 docSite/content/docs/development/openapi/chat.md create mode 100644 docSite/content/docs/development/openapi/dataset.md create mode 100644 docSite/content/docs/development/openapi/share.md diff --git a/README_ja.md b/README_ja.md index e169cd9f9..1a2684ab4 100644 --- a/README_ja.md +++ b/README_ja.md @@ -10,7 +10,7 @@ 日本語
-FastGPT は、LLM 上に構築された知識ベースの Q&A システムで、すぐに使えるデータ処理とモデル呼び出し機能を提供し、Flow の可視化を通じてワークフローのオーケストレーションを可能にします! +FastGPT は、LLM 上 に 構築 された 知識 ベースの Q&A システムで、すぐに 使 えるデータ 処理 とモデル 呼 び 出 し 機能 を 提供 し、Flow の 可視化 を 通 じてワークフローのオーケストレーションを 可能 にします! @@ -34,7 +34,7 @@ FastGPT は、LLM 上に構築された知識ベースの Q&A システムで、 https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409bd33f6d4 -## 🛸 クラウドサービスの利用 +## 🛸 クラウドサービスの 利用 [fastgpt.run](https://fastgpt.run/) | | | @@ -44,64 +44,64 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b ## 💡 機能 -1. パワフルなビジュアルワークフロー: AI アプリケーションを簡単に作成 +1. パワフルなビジュアルワークフロー:AI アプリケーションを 簡単 に 作成 - - [x] デッキのシンプルモード - マニュアルアレンジ不要 - - [x] ユーザ対話事前ガイダンス - - [x] グローバル変数 - - [x] ナレッジベース検索 - - [x] 複数の LLM モデルによる対話 - - [x] テキストマジック - 構造化データへの変換 - - [x] HTTP による拡張 - - [ ] on-the-fly HTTP モジュールのための埋め込みLaf - - [x] 次の対話ステップへの指示 - - [x] ソースファイル参照の追跡 + - [x] デッキのシンプルモード - マニュアルアレンジ 不要 + - [x] ユーザ 対話事前 ガイダンス + - [x] グローバル 変数 + - [x] ナレッジベース 検索 + - [x] 複数 の LLM モデルによる 対話 + - [x] テキストマジック - 構造化 データへの 変換 + - [x] HTTP による 拡張 + - [ ] on-the-fly HTTP モジュールのための 埋 め 込 みLaf + - [x] 次 の 対話 ステップへの 指示 + - [x] ソースファイル 参照 の 追跡 - [ ] カスタムファイルリーダー - - [ ] モジュールをプラグインにパッケージして再利用する + - [ ] モジュールをプラグインにパッケージして 再利用 する -2. 広範なナレッジベースの前処理 +2. 広範 なナレッジベースの 前処理 - - [x] 複数のナレッジベースの再利用と混合 - - [x] チャンクの変更と削除を追跡 - - [x] 手動入力、直接分割、QA 分割インポートをサポート + - [x] 複数 のナレッジベースの 再利用 と 混合 + - [x] チャンクの 変更 と 削除 を 追跡 + - [x] 手動入力、直接分割、QA 分割 インポートをサポート - [x] URL フェッチとバッチ CSV インポートをサポート - - [x] ナレッジベースにユニークなベクトルモデルを設定可能 - - [x] オリジナルファイルの保存 - - [ ] ファイル学習エージェント + - [x] ナレッジベースにユニークなベクトルモデルを 設定可能 + - [x] オリジナルファイルの 保存 + - [ ] ファイル 学習 エージェント -3. 複数の効果測定チャンネル +3. 複数 の 効果測定 チャンネル - - [x] シングルポイントナレッジベース検索テスト - - [x] 対話中のフィードバック参照と修正・削除機能 - - [x] 完全なコンテキストの提示 - - [ ] 完全なモジュール中間値提示 + - [x] シングルポイントナレッジベース 検索 テスト + - [x] 対話中 のフィードバック 参照 と 修正 ・ 削除機能 + - [x] 完全 なコンテキストの 提示 + - [ ] 完全 なモジュール 中間値提示 4. OpenAPI - - [x] 補完インターフェイス(GPT インターフェイスに合わせる) + - [x] 補完 インターフェイス (GPT インターフェイスに 合 わせる) - [ ] ナレッジベース CRUD -5. オペレーション機能 +5. オペレーション 機能 - - [x] ログイン不要の共有ウィンドウ - - [x] Iframe によるワンクリック埋め込み - - [ ] 対話記録への統一されたアクセス + - [x] ログイン 不要 の 共有 ウィンドウ + - [x] Iframe によるワンクリック 埋 め 込 み + - [ ] 対話記録 への 統一 されたアクセス ## 👨💻 開発 -プロジェクトの技術スタック: NextJs + TS + ChakraUI + Mongo + Postgres (Vector プラグイン) +プロジェクトの 技術 スタック:NextJs + TS + ChakraUI + Mongo + Postgres (Vector プラグイン) - **⚡ デプロイ** [](https://cloud.sealos.io/?openapp=system-fastdeploy%3FtemplateName%3Dfastgpt) - デプロイ後、データベースをセットアップするので、2~4分待ってください。基本設定を使っているので、最初は少し遅いかもしれません。 + デプロイ 後、データベースをセットアップするので、2~4分待 ってください。基本設定 を 使 っているので、最初 は 少 し 遅 いかもしれません。 -- [ローカル開発入門](https://doc.fastgpt.run/docs/development) +- [ローカル 開発入門](https://doc.fastgpt.run/docs/development) - [FastGPT のデプロイ](https://doc.fastgpt.run/docs/installation) -- [システム設定ガイド](https://doc.fastgpt.run/docs/installation/reference) -- [複数モデルの設定](https://doc.fastgpt.run/docs/installation/reference/models) -- [バージョン更新とアップグレード](https://doc.fastgpt.run/docs/installation/upgrading) +- [システム 設定 ガイド](https://doc.fastgpt.run/docs/installation/reference) +- [複数 モデルの 設定](https://doc.fastgpt.run/docs/installation/reference/models) +- [バージョン 更新 とアップグレード](https://doc.fastgpt.run/docs/installation/upgrading) @@ -112,23 +112,23 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b | ------------------------------------------------- | ---------------------------------------------- | |  |  | --> -## 👀 その他 +## 👀 その 他 - [FastGPT FAQ](https://kjqvjse66l.feishu.cn/docx/HtrgdT0pkonP4kxGx8qcu6XDnGh) -- [Docker 導入チュートリアル動画](https://www.bilibili.com/video/BV1jo4y147fT/) -- [公式アカウント統合ビデオチュートリアル](https://www.bilibili.com/video/BV1xh4y1t7fy/) +- [Docker 導入 チュートリアル 動画](https://www.bilibili.com/video/BV1jo4y147fT/) +- [公式 アカウント 統合 ビデオチュートリアル](https://www.bilibili.com/video/BV1xh4y1t7fy/) - [FastGPT ナレッジベースデモ](https://www.bilibili.com/video/BV1Wo4y1p7i1/) -## 💪 関連プロジェクト +## 💪 関連 プロジェクト -- [Laf: サードパーティ製アプリケーションに 3 分でクイックアクセス](https://github.com/labring/laf) -- [Sealos: クラスタアプリケーションの迅速な展開](https://github.com/labring/sealos) -- [One API: マルチモデル管理、Azure、Wenxin Yiyuan などをサポートします。](https://github.com/songquanpeng/one-api) -- [TuShan: 5 分でバックエンド管理システムを構築](https://github.com/msgbyte/tushan) +- [Laf:サードパーティ 製 アプリケーションに 3 分 でクイックアクセス](https://github.com/labring/laf) +- [Sealos:クラスタアプリケーションの 迅速 な 展開](https://github.com/labring/sealos) +- [One API:マルチモデル 管理、Azure、Wenxin Yiyuan などをサポートします。](https://github.com/songquanpeng/one-api) +- [TuShan:5 分 でバックエンド 管理 システムを 構築](https://github.com/msgbyte/tushan) ## 🤝 サードパーティエコシステム -- [luolinAI: すぐに使える企業向け WeChat ボット](https://github.com/luolin-ai/FastGPT-Enterprise-WeChatbot) +- [luolinAI:すぐに 使 える 企業向 け WeChat ボット](https://github.com/luolin-ai/FastGPT-Enterprise-WeChatbot) ## 🌟 Star History diff --git a/docSite/.zhlintrc b/docSite/.zhlintrc index 6a01ab669..b97a85ef4 100644 --- a/docSite/.zhlintrc +++ b/docSite/.zhlintrc @@ -1,6 +1,6 @@ { - "preset": "default", - "rules": { - "adjustedFullWidthPunctuation": "" - } -} \ No newline at end of file + "preset": "default", + "rules": { + "adjustedFullWidthPunctuation": "" + } + } \ No newline at end of file diff --git a/docSite/assets/imgs/fastgpt-api-baseurl.png b/docSite/assets/imgs/fastgpt-api-baseurl.png new file mode 100644 index 0000000000000000000000000000000000000000..bc2b3196f2b7756f6f7ab4a4bbd77d8bb7cd9aa5 GIT binary patch literal 190543 zcmeEuXIPV2*Dj7D%%H$n5DCqO1q7sbumJ+nOXyLM7J3OiU>S%~RRpB>8XzEq5=c-H zBE1HL01-nCCA5SR5>A+T=RM9`^PTJbKj-;_(QI~EYv1c$>t2s94fVA+*a7S;EG!(_ z_wO0AupEc6u&~|!g_Zd?0{xt>%pXVmjJ58tRQB>OGC%z6d|U4}3rlsv@%=}~n4f?3 zzHjNr{3>&l0PIM@?7AZh%R!;`z1yZicFS}&Q!}o~4n=>9lId zlx>b0fA0LAN-D3IX5owDlhGEt2I1d(*yrkbd64D`SiPDxgS?M>5{wv(Y{uBjHG9;m zcl_SO?7JD41+u&UDZ1&!$Yf~AB#PtW%vuMN@cj1z)8?ZdBV-0Ox>KI*e$`-bv-0>; zLY0_EsxK~Fp$HiVJZYA!1U2VOz84%_Bp=5Twy<1~^fn+Kdn|Haz@S^Ej=~~7R5aJI z!VEG0Tfp@~04Qrn{UO8O{2gS<_IC|e{XW+O#y zX_}#^ZY*p|C(oa^>*QK*+50}+`->mTm)zr0&gC?*Z+Q511f-3kZts@gt+ZQs%&G8B zWU}|y;1&)2#E-F(q5(y7RzkfWK4vnXO%X;<+}SJXdRRYV_nHk&)Cu1a*{koj9#fjF5uH2|q= zq#;!ViAf|`kK}!1gBA6*^^ok+p=dQIa##PsI(*RGxOW?x=!+qSd!!lxuh)T7TG~!w z?mIWM_oz*IJGso15^2Oa&;?{*!erq;nw4I#0PSXk`K8+aX+@nMSC?{-rITm=O7v_H zt!mt@iW_QC`pOe{gbCbvFj7l;p=GMs&*y1_uw(lZ8$dGI`c0lveAX 7=T*dR!eyk)R@m^##9`C^Zey(qMFJ?!yg?bbot zu+*gMtD%;XgVt~Ac ETcunX4Kj=7AxF#H? z?w=UJ2zEMO=m~bvr8sw(cWpcGqQjIvt?jq#(e; LW3`c@D8{c=qR9xy>y}SR z8HHNPjyFx8SByU_wvK}ybvZubEm%9ro)ax;XGnXyzNa%#QfBk3BB5j}zOfiVaqOO2 za%z)^Lo;!NL!dXbVryvSoe+cEcY-hRrjPtF^NxM0C!_BW3h4>voL_woHwkL4E`9u* z yM$)-{z9p&Hx~OLQauf6i-(3IxuS7T;6NR^{3-JLs7X6YMUXKkP$i}N zOX~5l9v==T3adK>cVXnAW6+!}8KkM4KGnujQzfSRvVH=+^FD(E!RA!uts{sIDs!fnJFiisr3RMbM7~D34gLM_`%zvlGCkx^c6o zfPCcNnnd?G$Ax8Wm%(;QnBS??a>0IC`u2a`rbQstYRXCzh$RAgA*BQF;m{#q_O(=l z#k+WLST lE&7Y_=ycXR+K&(8H-m&7^R1_w!aeIQ63? zFUUp*r^l&OcK_qL?IM8{F;qUl%qpu3QM|EOd;_x86TP>veB;PaUJ^{ U)I{ z72A?rv>y{|-pY#N5Z>~IUo?PCQ}kG)Cn-0-yj)W33pj|X+A1&c @MIOH7xHXFj3 zXM;{l3y7zSUtmhp$ec*TzZN7VQ >U&t|Fr?&bg-m_9@eCbz=PAK~9$=r}RMJ-^w-+~%!%WFcQ=_dh z1qV4JDP`F7AXP%;vu9BJYT7^;&F39t$4Ks1%sbqNH6pdf)~oFl=M(oWN8rtKXwMFl zm;GR7tq_;~zKFk#f7=1djhobMi52m1=m}gdM-v V-xR?FZ+Pfq3{MK<tNu)UJlgIMuITWt0;GCr0! ?t1;CNeZ9RX=Ekn2 zQ8POhvk^^O-_utn>%mJ9`% 8;53e3xrjl&PKj~%n?XyhnPOZ>PT z?p850+{nt0Lp@8sh-@E@nd!KYl>A}VUQANpnz0!y*siaLl}+5MtcJvilvbKYNGmU9 zGnqv8%6BPjKB_&tv8mqsHfDWeGj#a!s`jF63C53!>+ D{W@wxP+XDcK8!i2{&iHw|#@UE9LMQMf**1#TvRaV=_TEb@2)sLsp9y3&HTs5dE> z;iLU%>=E~6p874hXAu`qbtgs$ogX%> vUKW;^e;|%KTv!m-9Vb zWc<5cHX^B^g<93G5k{Z&&B*<<9?aVgRdwt--LHLqjo_~8@%<&0Wyr;zs7D^LPSIq= zcx!3e)Kf{ao&*t>_&vWYT4a;sNvFkd_H8Jl;1#b`3tEdBXw(r{1#aqDl~532HDz}) z>m9}G@0jbwgmI13lWWMQpyLrN$Hw+@#O%HQ=E5Ah#pr$KsPZFg%v%(^1atU5HV6#0 ziS+tmnxSYy^l-r6O`E9H$wdkGZ66h{eCm|^{4ode^@~z9Huenuk0;c^G_~*E&v>q( z*?(Udoc-m#O-I?Rv4VFxs@NoRwots%Ruy4k{aBkD^ZRZvtgsj>v$cIPhFo%ai}ex$ zBfVGzTw3vSPK7Ne;uX7ox4e+umJaz_MwwVm-QM??7*25@KU=;Uf&$Ns_ci-Jl-MvZ zFzEN3y(eiwG4#bNAwi~DIl`t{Rb$OzaEz&|I|v77J~YU=<@S$vwnHE80 qzh$H}bHmo5 z^}^BMW ^Ea@zZ3V0wVW}UCe07JMY(BVMv@S^U|Dd!eYB2ub{zdaE zl+{%)y&$HVLSI#p`bmqo$!KDKZ;a~( 8PuC((s>NxwK4ZAV{qgY2k8GD@wCe+Y z8T6h1je&uU2QzQ8#mH6|c>V^z$DB^E)lFT)Jsp*9L!im;e?*v*S-klt8srCl)(wre z;W(8g=J=TGD%;pNIl%{Q?l1w%6&b6ZsNU~+_k%UM (3 zt7jw>p4S{x&9NVh hCLp5aO9;RH#)Yo*cONFWEC(knQ;oNnhCXSRZluWQH=Pq7%JP(kj1|--Z?Wa? z^C#_ati%<^myKcuf|otBDY_TiL_~YGtKBb1*rHxp%-K{dL#fm5%nCwUGmepujPiOn zvy d>^PRfbWro%W_x>@IT4@qrY7tas;5b|q&mJ!UO#+~~ z{tY*Y!!zNJ7bu0_=PZJs7Z1h-<0UL-HM4=Tk)%Sjpzi`(C70sudzo1N-}i1tYPJo& zaZ!$pfPd_4mX-6A&^pfe+!l|L5Spyhku8+AUwqYdvdgeg9gDIf_gjT=vt|soo>u9^ zBfey#$mZp$?j&xI;k==w?Sv7OW-U&ga^|+Tpgb;C^3sv-Ngs*o5w;;Gox-{8WNn+4 zQ1`xD<6PEW4=>B+jPv%`jjW5yJ@cn8sDnH=$5fW(y&fFbO4D@%N?y!L8~+6w%Vp5$ z&!+LSu^EGol!u-iW1xC$^uQ-k0BOhJtzYE2z6m#zZ}Sbo=b8;U#iPYfb?-`8t=l<{ z)$1!OjUk;ik1dhICu;nqo?IEo6%_N2IY&&KPf>?24(77Q$%@_~o*TGOOMCH-C?)uG z;)a!jLS9?x$32s#guQ`Dwx!4ijuoq|{APR8Aq@?_phQenKC*#wmmnPQv2bK{aV@D3 z=f3G){59Z73MpNmR&b= W^dFIf)uC12eouI6a8?#NrwMTMs&d(F|hT6pR&x6PXV@%VA*g*X7FU;byIMd0VN zY}`sl Rl5ij^P@LgbLZepi32=XBIweT(SHax-*WR-B~XOy)b{e<5Ueu0%l^RUJO1Fh9WGVjXp2_= z*lb5!y-mK8sXU^uG_!)(YP+oHdgpi# iX_-qg+PjnPK1KF<_dJiG 9rD+k)!D_`cs;@Ks8#?e`8YV#JdB{a4LqsY6`M6p?M9%kTOT!~@ zew#APFsE^L2fBNHY=n1nclo>=X^2b6FfJo_fD-?G@?P8d8vEhzAJy0=^*{0`#yzct zj}{UHMLV^Q_<0T6L-%5Fr1{*nA^%y-cimlK`K)iAsuH5&pqV48i)k&2n@$4_$ry*A zZAX)A#oA$hDFLJL^Un((eY-Eocyho$@Uvf!b;JaRg6S%G4@dL;FtNT;h&p>@R^I;2 z-MI+8+R`Jl>9-!5$yTNB*h_5du sUKVC##xyGV&Xc zy-Jr=S86L~PE%6P7q=F$v1=&PotaI0$BVH&H49HbzJJZv6~Q!2UX|>B|2EXP$};!4 z^H>gRhZLXXmRIwQ=GGppI(OwtW^}DzA^H6UPRgdPqaj-BUQ^lNqyeV)@z$xHcm9T9 z$5e7`A9hOM2@m7wouVf@PV{#Uoo9Zhq?36*MBrHn`q(k1ci N23912LGv zIS^OsS2Rt82|80{f;Co=q9+t3A?ufpYHY=7?LGY8FHZO3uFYt=L-AN*!4NsKB0#H- z5p0|<1Y@yVA3my ZA6J67EKC#SCD4_PSM9-5>DX^v}A{bIRb^ zw$0J32%Tqh4}Gx=@lc%0|9(Ca+$6uV@ p3bU7pvf( z3qT1TLgP{z#1W05S6$&A-+u&-*8@eoqla#f|JTHhzZvv+?9`z{BmXtZ JfHAqe$73cUHt!|60Bd*<}H)bTHz_Q+y_1q*aC_+5Ixo{po%*zH|K+ z;~%cpevmMv4aQD2XSx((bbqdSujL6vg(H+Dy0Q3y_`w=mS1kFuAMTID_$2bu^^e$Z zzp^whYEOodzK-P 3SA7ir>r_Cqa^cgR zdVkU>>@E7 QklW!suTUC3XvZtn#(i*^5dcC0ghxXeH2MeLVdQ>p@plW8q{ zW0zVCsaUW54QJG(i(ZiK4pr}tUR5rsr>c@i%k4!2O&f@ZT7X|Eiv0aYT?A~4toZ)w zgFv0)Pmk{B1uqT&FMFiPL`uDF#P3D4Ou2)-LE3#UJEe-(W|ZtkHL(;D?(S1l5AMeG zhMmy4zswW-e-TA%#)UYUVk&wtZYhrsn4c4n?qI4owi7Ck$njaT_`=+Da7kfe-I3uv zvDJS2^JrdJ|M#VcF-n6aDYPJ10{u$b{ypS1JWu6efr}^yQoaOUTxRP8F>oie>;GJ= zla Q!?J9c4#qx*67I)uI2C;9^8s=952d=Gsq~63yzQ;}plEfK# z_bDZ2-Qc&gmcJcqv%gT@^*^&9KgVwjCIW@4Gwb2>ZizsLh9RKDYyW==kUziQQe7@6 z8mJJs{&jZ$ez}!@(y&WLRaglu)t$Eg#`-}D82R=yO!$L$Tc+kP;>ENhe^9&|kjLhG zEIfr+&7Z{nSpfab2$*s7GqT^8#R33-d4Kh@tVumdW+!G`_V wlNeWdh_b+un9Pc}q<@~JC!qWE{y$WP{zHm@`3whg z_UxIGwb%8zkKsczHx4MX3T*FxI`(IopYymPItiVKFA5%|eq#p DPBd5@(K zt8s8)lmGuE{A~=-J`Ml>O8|7l|A&$gE4V#B!P9}(UEciO?rT;>kDVp&t4P}Ozoc(3 zo4h@YPH;v(KB`qTxzE~qvH#Bbhy=v 8&k2ZyHU-XfZn}c19b|Yi{i>?<86<6 z>*1K2vrQb{v=_nMUZ_ElrF+3(e>0Kb CJpfYZP)y}jxf!C#fy!jwm}z3l?vv<9In@{ z*}6>+oEqKHpTdqM59G|d-sckV n%M`jTl~daKg34lm8ICywp~VrQUv z;@ZwERR6}evwInz7Nusr-S0S)t9>%Xj;yoW&)lSOekgP78$C&@e+?XEG4S8@=}6lp zV+no^<4d6FQ)ac`TJIHz9ll$MO41u~`@Rcr*~zpSG}9K*P}1KNm1eQuT#blc*TH!% ztZZLk2q5=t<0W-!t32g);!085Aqiv7U4nib25>@cJk4&TTK&2`Sj-8Ut*shPG9l#} z@un%Qnx(y$Z?<@^Q=Z|jHJ>67<*-j{ufM57{d(A5fZcKOliH8TBKef~I#2ib7V6Lr z=~W0@LuP>ps)8!76` j41z-_Omkca5RoR90GOargT8;HD~+`uP0qTKom z1vAY_%E*+E)he@{?L|{rg)0sv$<($g?gPX2f3Zrjf*zLf7#ywdlB9%Q;R*hPrsJ>& zsIq8&4(!-0=?M!7eABy1TVln>3}dILfd~2@_2bN$dwsy~pQkmfuDL2t$|8c(kxN6z z%##C`jUwa2RKIF*!!Q@Bu@ #n!4WbJ(Rl*FM72eOt9T_Sap; z3T{3jW9jHdVs)dt9GoG3&-PY4BxVLfzBy9O-5v$EmtvGQ@ANe)R0wpYD~vO{_sO&f z+jhj=?{FWUKF1rS2Unx`cVws!V;$BB)RbikHMyBs;E=6+1u*pc;{ET2f3uG4)$#S+ zQ=g#kv0C*T>B8NygvrRmUx3>CjeIrJ{MC<6!fSkWVN>?8OpDv+v3>VHH#{K|ymfo~ zxH%@Q^#W9g;7ZNGD6%pOq%*cw4$hs|?M%sDbJe34yo}F3IpY$p9kFgG;{14MjY%O+ zPsYnNfUd>F#8;RS{fY%zFfe&RQQ3W#$w>`6)s;Br=?5MX^kqD-&gmw98FN3{!kk4U zZ5+CgP5XG#m8^yL9k;QX4BT4<`4V1CPVO0?yO)Pwxh|^(*7VYoJxV%vy)>{>50uB{ zKYZ~@n{~##B1J0)7Q{_npz3{0o^vmmxBn0{FobYtfylVpw-ImpOz+4P08Rp6@C3U5 z)lb?~5UjWGnGKn!d8ga_)JGdwA5r9_0y^X@<7D5ae_S0l$1oHSx)mKG4c1u8KHK5x zLwJ0&l5R4EjEp8f+cb5g71T|sFTALki&tiZRycc2#h ~A`?)2&aYr>l6+hx z(u3+JRD#%uXJ%_FGd0k@X3%-12LlFyImGC&h6l~c6B7ZGDx&*tUV;6-3;EM4T-YTw z^}kdhxGfMoZ!BV1XvE36$&$L_>h{zl6R9J)Yf>0!msw~cXY@ L|^@xKS(Qz-o32@>F!XKw^iNBpugIc_20O;+l-qvGl> zts%r3f*JHLFj%grq4vGgE_a`Mxq~4WjfBRI#&adJgU&y;GoZ}Oh3^%c>
kEEiPtrGuKD2kbd=Mn+lQUw%-w-S!>lp_>XEu*=`?a*h&W# zNI}dzpe;kqBFly!cCM@@P|`1f?m>I(!^)Tf@_|=u$!GiWrZ@7JybTan-X&DkTgWFa zneW8fd0f-(qHWgDkiy{}MIWX=yIFM~K9wF&@SVP=JGGoFjG0+$zyWAMrt9%v1eLgv zd o0e08Cj39{H)E{h<&WP~ zT$MmPb_$#fS7yXy3F)3Y1=Z2Aa--QQ9mrgs%)ff@10rUC=vPuRMdh5brZPh=MqLXW zAJm GCs|3yK90J(N!wuU=CR6Phww(54$E71R1llj%UTU`smZIOA zLV_K8&4R=k=W$Fuey_FHWhlA+?93z<%OarhZB@2bcwzhe6870?&obp*ExhCSDdeJ! zC%d~Af}_9x{hjTpY9jU^#Q7)hZ~Ja2pX!;RNzorH;B%z- C%PMOf+@@aYzs3m*zMESa51Y9mPx85uG~!&T3OdQ7 zb%Uy+2q{_r_9Y;=f^I(rq0%I!8OZst1xI$_CWmN;E#=UfiXuKm`=1K38q@sHOR zNqbCq0$ax50Eu(LoA9*n(D&i$Q#I7@53(Pu=!-nU)3%Dc;gq{1&W4Kzx3OsaHw_pV zZ+?9YkY05tGz>tWvI}}-Oakimxh)Z5gcmL0SDNVFeOh$Zh8Zy9DjBHP9+z|)3S6G3 zCgm@?0`Yr1D=gZe9|1`qS$W*DH0;A3gv=RkfLQ!X(5cw7k2t~_aSbG~!w2O+q+lxp zOy#MSE}QE$fkSeSSqbR?Hi6vuczVW5XO>94FuS}tbq9Fevk%&oZR^AtzFIe+#oKR| zLE|9&8>;*(THMNB8c|1fE(=iW93M~lZqxf9G2Iv6_pplChT;W-3Etg7PVQRD#{&Qd zPUEDrrKAKBKpZU1#k5vzN*NH^hj%$V_PpQa0vJnN-iZMUKh-wxzw++LxB+~(I;&|U za5&Ms*qNkI*eOGKOrZlRQ6q7(GytkS8!e{<-@7w~rPC@O*d=*Ak#^$HbGrNP2Jdi% zkQ}KAEr-6T)1>TkPbAXNiM*w?x7+ *PP5wW(g*|hmbvMZ?TXxW zlDQgvyJ Hiik3fY&CBar*qSgFngca zjI*)_l-SGuSKZ_@E=YW_*|S;Z*{(kY%yY6#2LTQX3)5S6fq5Gh%MTl>oXUy{ACi<} z XeF3XV!%xgk7yEHR|peORDOOC^J6^z)oVw} zvx1J1jQIiNAX!U=6#>v$5iVH@*z8<|&xjHr86){g+n<46X_LyyX=*d` up1i-WdF1n|xP-x`5$r|RtCGD5O1rkS9aMD_^1rpyhK zt&5i6*Z&$#ntK;?-l~(ayzJ!3jqzyaf#C{)hL%MJzJiT)Ce2RJLox=(ZNgLeSl-5U zcD3KN$~Aa%P8}g%M<>W*D|^c~W!df#Q#%aq5rO{CSG?Yy*J^Ao(a^0{7c=+zz2+kN z$xtyw=Ox7MB(-xt8fi6OzdUy71q)nWS!f2;g1y9T?+HgF|Hqn ZGYP^ *mIvEPZE=-H }0DP@S1Qhm+pg_nN3L zwWG(c8_YNXKv9>h{o^AZtvJE6CY&$9JAA-Ao+(g7Dgc-X0L4OUyoZ$pob!&g@os%< zv*MiCt)9iwmmVi5&}racxIERZk8r^6dQW85q@o)Njn^NJEjE~m{wKvp3XgNGbRmAN z6{zmMHRgrzk 8+AT~%dfb0bPX;O|o-yP)Exie8W4d;7ev2Ny@|P-i2NoFNmEZB-(LJu`NHld(8E zvD4CJH9dqOLL2?2ocAfbrTj=mgNC+urR|pv6?CM6-W&=6v?g`OXlZoy*Q|zjk0Pxg zI-9aLIK?2T`jV_LX`O*?vq40vT!mll{0!@Uf>XcXX?_&ptz_G!P!k9vsDtwUe@dQe zD;WNbuL{>m17gQ!4M?*mnH6MBHY^vR@qrEPnXu#5j7yu+!#&8&hE9-Jk)}TP@00*S zYIgv&JkZa_h>&2#S7M(x2lZ~1xawO3m`ODytYG9Z!RI8$4zfVXOnj3kB=_PnwPi|* zDOz|SE|6X_3FWCDsJb(yEX{#_%)2VD#Bx9?usHCp!HnseS(y$){z_Y$A_X%~PR!T( zlLYJftJX_fmQ$7Cf>!^@P6eJVShzJ-Ww*1nBz<$0oQU|=ma9fXDl@0oGEA $H8VkpThiRJ6^s>6hNKJ-$%CDs5McWZ*`h3|_Wjh8VCXQ@1lIDgcc8 zK6|!rps?$ykE=-I?J EdFWwn6eR)pXgb6n}|Sk(%hd*rGa5>isHw=a`1DDD++ zVr6?%)gpR5P@2KS%>WJ8n vLJ@}TdJuqI|(1EY`0yviw zXbc>7tXFYZ(ZdHW7}=yNMQB|u&cNDI^wQ$Nc*chCq(veO^L1j_>=BEg5=}r38n`DD zuy3I>Cnxq$jVojBH2`QBpzIkH!vWGEl+H*i8|;g5-hVv`Twu~)lp{_i8PL}$DoD8* zmytTRoqG_a${>it^bL5B3g~Ll;{242Pv65Yi)tY?4Qf}M(t!9l3YFHCfCL976+So7 zFA)Joi**8Jyb19ElmRaF^-J F_ 0*L~nU^rzOhB*zb!qpFCJ7q{uRC#I2D%>;WcP8I=Z>5uDC ~B%Wn5|rA*|@O%Y2DGY|7c#Fvh2Omq)~qhXicGXX!|raiuktD;q%bshtMi6lk( zD~dYrbT^AgNqzlh^i1K@OesusE-Lc#u^>< W`6i1AHDq!}Y*Oyxv*9*eO@UnPp6}K4w*sVMF)h!)jg%htWvi{> z^rlc$!%2Vt ?h+iCVik%+4A({Ad_`!#_XBc5+ z&0c4kwHv1n9eT?o_d#dn{m5fHcMpERx7K9*1Ile+-9T2`k-IyGO&VS>WygWv#C3Gw zW2c_!>yr=jTtakS-|QW$x_K6r?jl9?t9iKz!Yp)?#Jv@Scp^WjHFgDkw}vhU->orl zdV4BzfdCKaY9JI(`l^}xS*QGnF4A;jg4xgRoMa`pf_ZZY3rD;B5u!)zr`o4-pS6k5 z4QT7@Cs}FTa-*I~?%6wwR@`lS>Ju*2ubVJyJ<4(Z(6!%F>gY@6N8KBz-n{v0o;>Af z)xg};RPe&5>gsOk4Da{~3Lr*#7YA?Whj7R0nU(KtvBh^*0~9 7CXKq)L|K}#=@wjTg-9xY^k^{iY2_bfGdz hFVB4mTkC`)8OKK^)bY9 zMD=^{?Qf&pD}(ZZPj=5PG|alGL5ocs{V6;vn@W%o8KYR0+jk?&s|jgtP1Ji<+K!7} z`9^zn0i;vlnAHZ)YlS0oh2J`M`~w9rT=lo5xNF%KSvU+vOP;<}p!hP+m%y4Tw@jX^ zV^rx^N{e;w3CI;ud3>L)7#mevc&3<=oq`qSg+X&JJLBSoLR9zi;?I}w-~WO#H1X!Y zUgyXz4AwtmsxgqN%25bQah#KRdd$qBWBlw*z1wy5O;fWu97(()R1=kXp}SjUwbPnt z$AW@T<=W 93#3WJKNc_^7Yw8 zY=}t9Ef@FQ18N>Rd1A_i&&1)lHplh-R)F0PP5iS_zFig6^}4vZb3Y84l4rIld6HI_ zn6H7Dzid^A>z^BGLM3)ZGPngS$KCEV+QrbQLPpx>D;;3Z=BV&Tr&C7pvrd@3Dn^UA zMqcSGjOaCXKejtN^0WBKwE`=_a)$Db(fYFK;&d@9YajEr60fJ%IilXYnRS+_DsG%c zP2ns`kIV=6I*4OWh|gP?tVCH{`DGflVDVIuyxkNkMMmcyowUgs8(*ap(6PGI^3~IE zv$PbS$9OhIq`6c-LsrW6>TU()8*->Awc7)>Tpk4j_?cBNzOHNA;)eeF04mq2U$MZ8 zLOOx%7KnISMAhG3_$Nlt?JHL}7_GvWFNbBm21-mWb9=~SkBK6aP|E3vY9>|kv399> zPpXQ4sY0l6F@_e}e)(wOqdxA(x+%2Eyxh*d0@XYQNi`NyC`vWHV#!4%-~KQ*cOaqf z{bjUgO{7jI?u*%@AL#4%WE8XyD^_*Ft7k^~y=#qPZgG1WlJOe@T>AV|F{YerIOME} zbm46HNf@YOJJfvW%hRRI!fI>#rsNYV6@HpHVZy#LvN*v2L&XC$D=6UNO4ou=nU_kI zvqzstoqyijj2d$_INI1{H|cod4amUYSWaXxx_UjX$agEniJd9}24BY>ab8@nEBnFV zdu (+pF2~ zPxw~%DLFVTmTbpKFn=vaZ%z9pN!&i#oY _3M`*h0X=b(xODi0j0O~3BUU^w7>Lq z^gAOqDkaS+;w-fLh3$9M`}cp`oYPsCPr2nSeArde883lT|9^8d+^dP|_v(Crx;lHd zT%6;pLHrlTCg!{P{9~yjp##=MO_hnyQ)D&Y-(kVKq0s^r#Ye{EE+c}bv_G$y9+|fD zo7({>`{wJ-@xheyktmBeI~n|rRC(H*^YQbH2fbr2x)1-Cfc{0;uLV!gLThQ^u0@9c z0ebVbPtl9=>~aaDvb0Uk^orhq6d`-gksVPlf$wx}JYDlOp;l2cXv!Ga9Hq`@{oGR3 z=&>(Dn+`L8QM>BpwYtRRAow6(;1#|Foi7l9&pDgmvR|fi=#a<7-(cRC?d z`c4pR&;973dDHpd)v7Jc#T}svA}FBSP7>HY(MwlypMa&k=NPr@P)RedSv^XHy!~xY zg}@?DhS-;%cmpep+TUb`wP@p%ogrSLvA`GK;w;i-^|R}f@7n7o`9pH25wE_D7Bo%U zjdh3Z%kb<)MiDQ*vFF;qOm{`Pr#gX_?T$iMF kca!|oG28L|UE{^w*^K{))bdlQ&ufY1er T$Ic{mUi8cjKl zW83|v!Usfqardr_LQ5XIhQN2nQ&4;HEl|NzIZH`b{GAJ`9sC>!fsmz7sDdBGck$xZ zUBbzBTz-Le6TveDKbE%8D;{)*&BGWIxy5G-GxTvz+REs9&Dm3jX2Th? h$M9;xA610LZ*75!0REG7bT_w~0QACN!hvs6<)%hTc5)gV#W>Cs zhE3;crfCMCj(#~2vQOF^5;`czv6*jVwXI>kCAD(f_O(6{6*+01-0^b;*pr99!LV y4nlM;qC q-iip{d4Gf-g87f z`o##dBeN4CV>hI|mU&jqwraC2A=10UUFf#l6;@t$W2%!;`JH3*W}y|i3oX3Qz8FFK zlWQWyJfFmGB0I;8u=kZ%ebHm2Z}(VJuXRvIugge2;-Zfw-t72lAhh&b?}@(8ac Xsmx$f#bWTwajJ2tEqz8 zlkZjkB*$|UKI?ZAQ8md_$AFaP_s{ty5*ZGzb>Gp8W)-M&JmpC+-ZeQ6WI3AUb#IRW zo?oBaN!XIwM1h4*{u81O@uuPBdS7@Q`4hv6gt9x9By?py>j L( zOmgi@(Rg?6brb$ff1q1=YlFF25%rb9gOH|Lg)LN(QKi(kIaiD)mJFK+*V%(SSvNyZ zYTa;pydb@xOdDHJmEpMk@$dTJ_XB;95@ijZI(DFvh!&n285%`5pZ{*6QL9I6SN)H& zRL^JhA`~#bfnkwFMW-Kw8B}lWv%RRis_<_p=FB>zzt>RH&@I%uBOq%zegEWx-#p#< zIlgyGUf_Cg^s|2D`kIG6+70_B4L+=O8kJLpn^n8id(g|K@sN6&tZ4n?f^VDoC(Pf< z$~%61&dKO(|4p{bBbj|xXDj;!>;|Qkbz54@!#RlPo4;8*b#Y-M-20h&*X$=3P)gc5 z`{FO-ul#0m7+|EyW$#;tBVDWnscL_(#mJ?Q1*Tf+;5Ng|(V-KtBYYmW{ ;(VWV*oQN~YMD2^^YQ9RzfBIQwYWnZ-r@aXlKBoFF$E28m z;P`%Lw`t>8(l681kJV+Zg{E8%cwn9b;DHm1Ejluv%vw)Q+8F~X@zi5*S9xkF=Y7`- z@!%#ngx1^|Sn!LF(#MUvAx$EhP{W2Fj|nXZtyUAcfUy7rR0Nv{QAZ$9zG(FZDeyCU z;CFtc?$QK*Kjeod&{g003g8JLpTiD{Mbb`*lil&LPLrm+M8HLRV)xex6C2aHD-|y* zIeXjV-d3IbSh%b3!5q36P25TCoVl{E)SqjmD#hBc2-+_R8^P?u?ULsd;sCAimlv ^iz{Ll6I;uN^d%%SO)S#mZkVv&w*wH%ZvXXw!S+q>9vi!@|34sEi-ph zO>?9vZY w zyzl#uf8oc^4}aHvUEg)x27Y4BY3oCdf8RRs`)E5*JdQr(Gtd1IAj0Ed(3re;t=9Ed z2k<%wFX9Wx)eJcE!;AwIIV3CyvFE%MUu&98V^6hpDZ*@DZLwgp2fhJAdQRCrlxY&z zxHClpXyGYJVLd~)r>a)C5guCTymok4+TH+3RFhNF%4eaeCSK|G{>Z6P?ogEEqUp%U zZMprwZ~t+mKU#Fu?*;lJYnZw2TH{Ur O&CfGufr`_xuq0+^_A-w4Z+SA{sgU&>?Moz)}A{=lOxBJjAabtgozT-s3*1 z9M%6-&HRw;R>>~y>gg70+r3&rs7vZ zIwDEbsF%GPtP}35OL2m>k@LNwXP@-{ZcvsjhR0x&{A_X2dQ9_XqxBZa|3&cTSDng& z>A?FL^+t>Bo~K^4Q_Zl7J~rhE!Sog36>{TdqIAd2w4K6~or#`&!jX3=dH)&Vt*6Bf z+v1Vl i2iDC+?|#xK7o>`NV7H4kdo7!s5b*m6^Ik zo?lJwARH5;>G(FOy&b4`j*?q?v^AuXlfd|%4ykjI+O3uO5woli?a?gC$S+)+n5t~E zk=ouk7l9^-X{BB?$T=X1^5dQm_~4-sBi|z5F4XJrxBlVinZpszsU3T@m9?|}jjxSL z4tW9fZ iULmKN} zs%Qm!2OIqRbi=@rVztPP@|IEU@$!9CBx24>{H71zbJ}|`iiQ*SxxaLmDSj`Pe@3&K za!7D1J&CFxiBF3CXBbVlboj30g7G7HX7m1j NHH?~w4)h`G&Dj|+fbppkx&x)l6HNdk43VzS72@^&$)pcUm=WC)`! zF=A+pF^~Da7z}`PJh;}Lw+5uCBaJl(E99czDy;ZdfqrR?cxKvZ(E~y;ro2@DN9$MN z|6uu>A!R{zRdG1Al6^Di*$|BijV}!0kIxPwE|Lx(`BaQFz#NK2xcU{$r5V*g)P2Ln zpxS8a#DC_rg5Z_OwxM@nsH6NhzX+bknH>Jab9doUcvdX+PLSO%j(E>6?7I~Dh2N`G z+@#<}msJmLfVyV+cVRDeQvC-Nz2EK^fCGlw3g(O~`)8sXH93TpiQBD{f3YqBx6MPR z{cACTU_gWa26^vp`X%3Z|BbrMl~Eocd!A92UU)?m(^K6=O(N%Pkxbh}F55EAHF!_& z%)5UNz>MOYVn5S^Ft2>1xgWxr?V!LGQBEg`bS*)#S@s)+jX!)U%gU6Ei?LHHd+pS{ z-{}${@nsbqVQ-n0>~eY0t@WFg6L(bI$z%Rk6EEf{zX;V3!^?mjRUMs+Ps+IsUB1gk zw5MhEmAa%F6LTKMI3*jZ-MsTPxgfA?WC&<)r(;Bpim8&oCc|_tD~U6dj3}%mJN8XG zoO^KEe6n=~D>(^S&cP!+=GCA%WxAn*qb`{}fz?H}LtU?bL`Uin+0`|`v~NCMtoG^6 zd8;Pda#~n>t5K*?_74HRA_;_YYy;~RP+&)e7W5WfOzW9IxSPENL|x0pcYpV!jrNyP zqDF?Zrtr5-Zh8!UJfa#w;*uou6d6`WCGwK0=Z f^x0(tUf^+Wo@7LNQU(RG~8`rG& z+`H++nyLs(T)Y%okk#!k;4^}|S_l$+{X;w`hVKdYy7(mb*&L`3ZhiS_nbcZ*W3O9v zr_PZij-o FvpaqZM1ER zYdHAO1OgbcpvIW)QC$8>KUU3v?;F;QrnB>=&PJjdA_&{2DN_vLQCsCt-zM6qTBTbz zZyv5fv!kq=*UIyIW$ZemGf$LLu$z$@`0-c`=e1vIT(o?Db+nI1PZrCaK6`Qfc0bIn zuL2XKe^S<{f6*|eR%*iCmCP11c_Dl_DN@Dpp_20N*Zdc&K~9{xhpyB!AH*}a*`S1# zhBP5`tX$$z!5#@gGXRM@qhP&9+xCQ9`F>KcA|+pe(Eb*b %d0)2EQ0M3WpeX>};4GK{~eODGWwJLXLhD|I`o9!UXb7h57@ z$IzZsKM6wn`VZ{b!=|;NAzhvvhbfX&3H57Qhl0n-eDq`z-qy~KyWwxOOR4eHyi9$E zCe&@(wWo6({o@&^ZtNq$^)IUGgu$Awz4uW28epKSy=i4zr!G!n&1Bbi=t?O;r-2iF z1 -U9g;rY8_m@d}?KHJX#uPHNE)k&soRhV?GNV zVCZ<3{ #?C}4-!S!%?yEWCI}0UGiQP_^l9D6>WU+A z;I+DrEElU9Fz`m?g`bL|P#vJw!=f6T*J8&Qnbvc)q=h`oWgnnF*F@)|eir_NPz$W% z@Y2y-39vUzBh667(NsD8Qg@BY_PYW>iD~bRx3Ug05x9d}U9adzXrsZ?{W}X8P}+ c4)daZOZ*uyu9RglujWiG@_ASph<|{$WP7= z3_4a=jeG9V@4l-uk_Io0O*7FPgRo{PZ32iwS(w6FX8rZ<>1DJk)4{(MC{VMzA~4la zj~U|(xtT8QWvtOB)hg@TwJP|Xa+dQ_o)8C;sbMcj9qFq&MI)qBYR* 2!AY}?v z n<;C9S6YDlqY;Y1290O`z^6{D{>>u%VwUM&3d?o2 zfk&CCTui&+L@z$fdOf8;nj_a07nXiAfs2_c!|P{3roTsk%ob{o{_gu4moYq*Cc;eF zNd?)B_{^D>thWZWofHJr$+MxHs;KEiMu$+*l>H}1cqgVUPX?EA`; +)e0`^T%2*HLv`$>pI>neS%p7x_WK#per!^sW^kde=3O^QnKIFj zDbb8N>a%o9zqMI|N9XsDtFL&jEnO8Iv8Gm%ss-RYM>|4&OB(c*`Ca6BFLFS8E=T2C z!1w07{dl3v rV~zs~TdW)WfA*LbnP_nP%{G$P8p#PlPgP6XoOnft!i zA9YdroO_?LmmDsPykAog^VhK{eE&Mfabwl1d?9y6G53)F@DuAFw2u<8LooAel90B! zx;kkG3mUfYI`@OD&VWoO;_kNHExsd%ZTml(=p_CJ4a$R5wz)iFWqcEN2ASga6v7ae z=A@P*ni+M<(zdtj8vuH~!lZ lCqc%l$fQ+^ssWy zB3AgR3Q1 Hg{RN(q#ADM;oBA?WbZDh(;f!Ur<_* za(To_Xw_ARnU?p}uo2x`#Y3a5IiQ%^_L<~X;x5Qd=I-bdySd%ysZFw)yHoTF2LVT% z$Ejh{b+W-ydzs!&E!l9XPXD;`pUl`7-XnpR=1zLojV0e4){fS6w8I6No@v}|A1 p6lXFearO<9Pae`G|Q$t7z$4 zk0aZiwrVH+Jwt&-4yneYzVSb>hZ+}4zhqMzdaRn47oKFH_hc!KWyFN5MFm;G_p1KE z*!F)vx+qYTUJE)iC@>9rb(-T#0NBz2ULl|eh=VM~ZsS0};_1_pmov|FDBFm$HD^DK zq%K~L>>Pp6E5@Xl?+k2GLs~mNFY*+yhBMP(w<-3p%a`dt5haxv!6-dS2bp4xd!h#b zyB06Jggu(fl6Xs{_qz|GCmjwrDj?mLE>`V(hdkG0i9TNZ { zIku|2 P<)@tO>>g%&!qKzE7lUx~(FF{4iK~TH zrF|Mo^Na}M39Vr|{#a$uw_Ct_5=|&E4Z7JM(@^DZMcucN4ax~74j#_RF WJ zE^{@LQ%w_-U97OX1dt1$57*XQSl*Q! TzWv?&E9&! }8Nu-SV*(xJnmrl+sED^Q?fj`0vK1i#tzyuik^M_l1p zP ~XH>4}q zX4bbZ%6i>%IsP2oeiw2J?N9SN2R}+)IF3>${0((}(UuU|PXF-2 zIr7}}8z~JD?i3i P> zReJZP{fn6;zsknwVEi|DQhtU78RGl^bRVSJALiA8p%u(;uBVM{9Er+C90d9b*8FP6 zRI2Kfy3=W0(fEN17TPv(r6pl{g^{JzC)qUT#F<-)4V<1yytYe!k>0*C*!Iq#H>7eU zcIul~RZC7)HaY@?KPKG#_BH1ye#Za3-6xVz>@`N|y$vh)(|%C%p;CN7^S$M$k&`HX z6khw=%G5DI+rg(@$fX?g((PW~eFDzmUrzW9^b1KF)*&L3i#O2c7c5?WPN+*jfiurf zcrM A)D7l0sgFu8}so4SDG zY1WX{8Sp)fHO-7rQ;)=i?OZCI8trk-sjvxe{eW61;Rl{_JrLXH#2CH*vo@zm_EXR3 z{iO!yg;g)My-UpX?wp2k?xdG_?XY8seyKq?m~?)=R`SY!h>Sc%F2XPE-QbGyJe=Sd zbyF=6pHL|(o2(vK-Fe8mraaY9ExxUEPQv1n{WoP2O~OiKYNio@HLvZ*_6*bnu01JN z%(RBv<}%cchMXR@X)l%X#J2f7D#Ahop-jWv_D({9J6oxjOc2u38XfJebJCgT%#C BpY?Pib$?#0u~1T9MGfB^RAC8&521LI+iWh&JBH)ra%@ zjT`mk!})7+fTvnb<5=nRt@jPWJJ3Ah2P#E~rk~|40O>vnY|)#pil|B;)reA*2B9!S zBSYHF8y6GRCp8W(8BsuB96zqFu1Oz9ap6yo45ms^0tM^wSam?@wosjg!NjfWZ<&S( zX_TsXMRs~S0>)-c9YpNQ+Z~O=b5>{lBO*&T4V<6CbOyH*UV}9o1D->xj8lWiWC=|d zU%Lh)Q}@--$4A9N_?_(Lan#SVEJxh)m4J=Yebtb Xs73$rs7!{^YG UWMdj_(z7Weah7FEvO_+wXU+;&3wF3D%5{h4^7$QXjIcSHGgxjHm5^6?67E9O*W z-`H_e={} b=mAKVVa1*mr5MzT< ^&nPxf^wY=7(y<{Vm>3Fw-7fYg_Prz^kSbh{yYHLIk 0b@ 8#;hp8*m z^;L@@XE=@hJ~@Vyw^UCKfRVVU?wSQ;Inqyjja;wdSm;pt7s69tq|kn0RrbVx*!36S zTJKuHcw)TO=vHc}m#5I{94m}{sYoer$&l%qVL}t6vBomgrE`b%{cDK$)RHh{RJ#mO zQHL>_n>xl)JOF7MzU17X$ceDZ-L>p-LY`S%|K$8^E%R0B6Cv<)FnwV4V};vFqrC!~ z95`)z$$pym3EO^`E+>rlcv3)5xy@1W9Y5WtTNc^VAhnh;f!%-W0y}&DV}G|L{n0&- zKqB)z6oCOnH+qDP4RFtFvi`|rf a0NSi!>WG{hJt}-eD07xK zE``W>Dq$aFfW*@UB*_&g IA?Ij5H zqpOKEXxx0YqyDKEoO|IoE%-5<+8X6kCp`9Tl5aZwg;)DV`|Zl_6x4IdhgUT4m(I7~ z-)jx_{L&{Hv%jlLI2*48a{He2L3r33|Ba-nxc&1UUC0_6KxcU}Tpv>6o2?{4j y+y*EI32OZavn$+{$MMYP1y*p1Ec|=CKe(k}i?H{rV zJ2H@;Q-$;cC_&3VO3OU@1hh0eR{A7p>}ln6#pCHED`3@IugiwhE9plos2E Kv`!E<&WM5WO$wP{AP2hvKA|FAiwI_-qur*Dt2&0oXDP<-iV#cV6C4#ru8s1#3IqU!AtAiM&Ed@6cnqiUkzqdb zbaKaHtQh)KNVx;nM3JK4X4_uEhj0&d3AtFHB_t|5?!2S`1QKH2caj(O$ATxS)q@X9 zzFZ%g&3v_bjCRN>ntV&Df0-XHa^}sE9dg>w?aTx&_FAK*rjgW0Dp_KHBm7~(3Ys=A zyHS?z8e6n&FNLau6tDlcaE$T 9-vi93}2AkwVaGtZqg* zip=C}6=tlp&z@Hud+5Un*pM$l>%PhGj$e1`m-1p4`*c3Y^s%n&S|6RwEC~#++`=d( z7Z2iigTLBWxoEt_RUL(#Y3J?|odX+1@^qLh!)2LaMWo125!oM|T;5~qP*3#0kuaJ7 zDW_{L>?LZC#0bnMww2J9b*Cm#exd&I7WJ<}wMrk$71x&lPx>d`?;LdE=DUxm ZJfifcc?n*Q(uQBh2Ab}7g|3^qDMvoB|Vui!H@*cZ=TPCTU6PCTj|GM b>0!gyOClK%(Po$?mHmi&Ki!@i79prj8(9X#ug^E zGL-zxKt(rC`zF83Ire zY_)V71)*9y9(^#M4ebX~sd&Q|koW(>Xoo?WlJAZgYBn}nQyE-Yv;K5| fg z&ha66__Cq@$OD@$D80Pq6{srs!D;zxqU9phA4!Let>2i4^WSE6F2K6i8ogs@Td0NF zaz}-4J*aC0d9oH2D_)Y0hsUv&ACgU?9C~XCJPV9N(G7N=%xxFuwRWp7XH#T?c%fHD z)&NB*dmTVnCHdkC2ows)0fSy!4FXF0!P1Nn!raL}4_t9)YGNWWd2SvV%ZFm<3fR`R z+RPUo^u!duaLu_wU)2Xkoto`=yBkan*(RIS-wU@kkTVRI jF;-D6EUx+P~k zMk=wPg>Or`#>? r#6E_Q8|_o-Te*X}gG_S)p1X&7!PYCzNFC(SEwGU`tmxU2TL!!o;q6J< zF!d nE{*F%m?PaBZ$#~vB20SC@ ieq6)!nB{B` z%fxTDN02O8CPr>FBS()PD5B6;hTopRxgC{sPdWsr-B+Ue*U z$y{E9%X$t=y{#}2v_0Kn6C{RwKQ|dtA{@0U)HC{oHz%Rvh7PH g02<)O7WZWl|kAj*oSS>q$F9A<9K7=Z40 zd^L!O=1Rh0&2wM62>u4m4o&x%0cO$sC;K}b91P^NzrQYD7JxIB ^X zFqEiFGKuKn3%uWTW8@=7X21#iHl{IV!KN)a$+SqIl}qbQIMSW%biV+VvR1nXl9FyT z^#Nnl$`K-W!@XPTuU!ZB-|)f?tej6`Mzv6XQ1#1qn&NO)Bk|$yc?L2EX{o`F^Y3Q? zt%_WQg0ELNtkqn12y2%pvI#X?>OMP1m1N5N;gGuRTUG*IDIBRboL*n=UY)*_*CYGt zv8mUFzozcoNx7ZPV=qenVeIc}_viBEUw!?9ps|{#!n8wo@@M%#nFu*)F%a6Jhw 8m8MMrOY&mFlw{ c3J=Id*m#T&Dv{=qUZ;l~Wv`L%!TW@u*POHG?KM0VN4wYwJQ@f1or8az7o(Xz0% z*><9S5oqpX^N5gle~>(Q#jW2xoI(a781JNHa;Qt4LU&}O6JPlG0DL)jHKf&Iu?d!# z0MshtY#qc!Lf2|22VE`8L1%*N2?(X{KO)>xVuS*snphX@!p_$+uyCo;$@1(U>?_f^ zfFv=wicb6an2IiX^f$ex@{Yqi%uAD*n;Si*yJ6 3F89^;p&Z!4a;RWh5S z8PLLb{UMmT^vjioi%lqQA3Boy%h2Q41oTU{2CyZg>{&7je}!#wB(zSp$G8NiS%3s~ zm4P`IbgZhVT*_oZ8V=p+SWayvCvyb?(I|V^PQ=-noa>rVj7Pg2*|0luq$?0YuJM>0 z*VNI~ArPc6c{(U_&m(`$v@yPK0*$^r-!0G!E^q%-Q*g lRDE5*wbML)(<|%PGVyx?$wN9Qj@EkLt(>XJlUv}rz3S%#)TUsY~0Lj@P<{+ z>xt@Xh#p>+?~DMvoSKx+oaEl0uqxQ00px#mTiv8a`dgx%cl7yaeQMUsy@E=cb@mmA znX-A_6OFmlNke3#cdy>G1fK+-MF$lGsg6?(?!AV++Au1H*41d}%O${kVy4zVdFvD+ zVAoEa YLA#^Xk2IU{9 zXPfS~F9g>Ji9F=$wwK-Rs#Z^yc?}N7t^7z!=?-(f-X1uKVtI#gM#D&Yb@~>~Iz3Af zXPxeSWjhZiHqQi9TTn`T4RxWl!KwNAFQLQu>XWpdfrrC5+z* e99HnF`v?r2xv5-HwV zC@EX8-g#w&s~}3zFNKyYtV{PjXdKH>E&o6khXt!_Cy>d@D^U#5%Jzyg6w4~x6Ah19 z@?Ip)+|Lt;6Pu7TpQ1#nHU;Ng`@ooOoH%%JSIG|6GXqX@#1yY0^fh>8T1FJreLS|r zcRuBw?yMksqE`!T^e*Pd5T2IS&M$WX;tQ #Ttv>N*Tc}HfC>+B%Sg1!0C9M{YjkbSk9>p%K0TgH8^)%ZE^k^7<0OuVNm;SuIg z3Qfmv?6<+L>M33r?H`7|mO!+?Q!iX5w8@^0IpcyIaYzS7hG+R6dcz;4scI*+TdJ(h zVWiX0+$uHcZr_gCjUg@PjxB`sZFIQuL5eDWTTZp&@EF$8)!7THA-%-GA!VQUXk`Q0 zcy9UGGir#bs=>1sTAQyFH!{neJ$_TvK7IZXKLV}nDYcQI $sr(0@6cY5t*K%$Y(RlDz+3CRp(vN9 zG}r42ejMM~pCtIyz0w>|7-RvV+<%~RL$GTmcO&s!wz4=6)j!e$cUn3^$n6~Xjan64 z#*l;;X-mwfS?wzsv9I!q>kN=SY|+2kqV{!6zir~8d^qi44xrJGyoA1Ydrr$(TrW{$ zPN#sDJ6n743;Ir&^CgTScd(q@=L98}(BeC3!sQZ~%6JkInSTtT@jwrEJIxfG`$CUd zqp;cg+6LQp)pm2ce|%Q8yfW 0w1s{T!R%&OS19V-PZimh&RIPMBJngo*k$>=iKYN0GeR{e&Ay}i zHez-ocSXUpFYJ@pJTsZXte%%3w1?Qn&^W_YB}2l7 i8Jp@Yse+uhNx;YxTSibKkax`2fNZ@%%#QfCvnz``5OG^SzjXfa5 zY&b5huB=Bvzt)#n>^hsG1;-=Arxx0qSGe0&^B@p0m+0BpH-B*rj~n2Xk>-Z;S>mi= z1qPWV>XiZM@QLJ@zI`8$PilXXyJP0H1x#y(b4(9F8%|v1X5()E33qFl;f)}M;`OzI z3&FpH57da9`1-Wic4;~v0`TGKu@)#`%@?p13rMlrhq8;qix+I3t?*vp^AlceIs)(r zId#9*7?^=i_*y8biV1^6pePqdEOTKx= T4K$KYyHz1*mB1BXMsZG{!5a!UIwnKBrtXNd9+MZlZfbPE zjY5l__S-7~u2~C%WRfa`3H?#K+d&@YjP0Y$-WNMNzm&C&+IW0FC^6B}Hak(!>iFjN z>;o8vSzmp9RrjafwJBc5%G#mxgY$00BJIW^WJOLeyyLtC%J8ZuuGsCfZqtjP|3+Q_ zbW#bWzu4yur~Krd3hgRR)R73OCE}+!-S>v&g+FLT3)YWsF;%+wgw@=+skwfC742e< z?pWYvS(c;zpb)9h#;tpOR1`h6B4wxgIWsq=+zR5mQG8nc@P!?Gs;BT;l!>qS*;Bb= z&RW(&W 2}N}4aDKR1R#K7N$ES+mFkU(^U2iWq5Z zTigu-_fM|Jzr68qc&EvDjv>iX7RtK#B6O&5p{I}(v<>grs)xkhVWlaJT-LHU=pvLp zhTF EAA3bSb}Nboqi+7IFkpaDRG9AQbZL5 LxVJ9@y&!KumnkO2{WmvB`2{sy7Oz+f6*wG5jCv`i|H2yEX z{WE6g>@^(Hg6nh4pDzE0ZhydS5z??p5x++)aY`eRVHvfi%XN5P#~JN>5Q4`zz-%sE z+p@JOs38nwTXNk^N4b_~T^Sv(wKuIzI|RR&sRXB(i!t^#6GF+8eXpff#$96CB&SQ2 z6^#TEedeayi~vY#PBK7wi*$J>aJ%CJhnrQgJdl0|C(d }j1??N)~g!?ybhB{}YHhTFS;M^;}2H6%YUgWy Z3^0Rl|~1PJ8WW@%%M(`<>mr z`LmIh?CT(&P!nfL`3>t}Zh@9q3*r1S)hy!U 65v0R~ex^5SjtmPQbRhKXobz28GV(0zT>0dZBhK<^lM@UIJ%7YBxXHN*NK z4Mlzs2R41
rjWp$M@%JKZPOB_}kD$7w0-(cJJlIN$*qAlIVDO%TW zF8W6_tTGS_ts2YGax1_rM~)|ivDlPMzQ85y!!-H>ZRar`qZ7D(CS!TB#)M(Es^csd zL`fgkQYZdi-n-{-zxjLl=y~AL>YIa$j>z<|Yrm9h#UlTW(U5u4;g6R4zj$@Ob-E1t z>aQ-O2UKUExzz~773Z#1WXY5&u_Xgt2YnVV$5NMm=M2*Cu8TL2F91(|x-F=_iB%8L zaqoV?YD?!(`wrj{^X_c%uzGy-7Hau*rTVsixRT71;pa;%`pV}Sr@#+efoE>PHrMuU zzGDMo@o=sH-qrOv;r6+M+&-5zkXq75*=G9H7Vs&`uL@-fCfjn*<*E`gy?}c9 zoOtLDKuRi?uY5kst+~e_=j+;7{#jb~$d~$!L7tR~pO80D)`6(($o|U&FaR96*7ei( z$zIoxKR=6!U6#K<+-HdX{KQhZbtb`UYAFyn$=*RMhK6&^Se3Hp$0q1_+E!Qcc^`T+ zwdNSs+!S+Lp`4S-7k_iVdeZkm(CjAxKtu==W9wOPAbr$G5)BgmbMVs#)=l)|L|^H- z-oZ~;WZb%I%iI#!(&4jQ)fOA!mu>wyY_Rz8qAK##@DdB3DxR=(SFTL>B;nJ2izRi= z)^HS;K EodklF%HX4Ntt)w$@uY@mps6;r`c!OT2x)`?m>IZt9^nl^6-j` zR_F36aO3<(RAYtIXjAZmu$csh9dvm{YO!}YVQ{;AFmUsUwX9Urny*iT0{4o8^M{I9 zPItf%*_hI|t*OWsR6WzVOlqe%m7WiBP^pW~AEb;71l{}DtQR9bERaA5wzg>y618c2 zb_A*DyH3DuT49e5$LNf~qZP JSpZTI4=9; z$RC@oNLMc%sz P{WSCf84D-MPCP$Id<_aio{E)BD1<9EQ~#vRb2b#7X2%+8R(VfOcr z6`TD@E3k;bs&vO)_es)YkH~THm _Ryg~sF;CN(#wzW>}*^%yu@aTQs`U$G`7>qd*d$lJYNp`^yq zG(HRK?S=Q4_N&mY6ttZe|7%Vr50&MMRQLcd{ZN9aEGG_qhwGTtSC|n16lMbLUh-Aj zcja6sk0sCXd^XZQ-fnQLp)G?yL~}kfd_T4#W&%h+Y|icz*?b!0o5zDde>NYeZJW|W z{7HWhsf>>6#ZGieD8+#Dgcv73@%HN!*Q*u;jU|w0K!*tI{NBfc4B?+`b5WZQ`A&Lh zq#yoVP-AtpLL(+%>C8y_pVQ~?ZtXw;j(MVsQQos-yT{s@_HZIFfD(E!`b+tTJN2 zAmT@EA~>9=)z5amCY{@3gKVcYucq7BM)JpCewA@8*EP;{eqE*s3*YsvYwU||h|{~3 zvXiljRMRHpep1NhWb`bTw0`34dJV HOUsh$XwAjD>A zWv>T04b*A4_V1_NHIY=#T`#h!Nrjgh6iy`^90fqx^BI zml z@shN5BswtBcUj>np`QK#GPam^XstP9iTuZXv`D3sEjG!D^8U3o&^>L@l}lB7u}E?s zGJ8Cx0|uew%>;TDU}tH_rmk`*@-Uk#