From 4ad3219156220950cd1756225f3686d3f8b84310 Mon Sep 17 00:00:00 2001 From: Seth For Privacy Date: Fri, 9 Sep 2022 09:37:49 -0400 Subject: [PATCH] Add PrivateBin --- apps/privatebin/config.json | 16 +++++++ apps/privatebin/docker-compose.arm.yml | 21 ++++++++ apps/privatebin/docker-compose.yml | 21 ++++++++ apps/privatebin/metadata/description.md | 61 ++++++++++++++++++++++++ apps/privatebin/metadata/logo.jpg | Bin 0 -> 37960 bytes 5 files changed, 119 insertions(+) create mode 100644 apps/privatebin/config.json create mode 100644 apps/privatebin/docker-compose.arm.yml create mode 100644 apps/privatebin/docker-compose.yml create mode 100644 apps/privatebin/metadata/description.md create mode 100644 apps/privatebin/metadata/logo.jpg diff --git a/apps/privatebin/config.json b/apps/privatebin/config.json new file mode 100644 index 00000000..ffd55638 --- /dev/null +++ b/apps/privatebin/config.json @@ -0,0 +1,16 @@ +{ + "$schema": "../schema.json", + "name": "PrivateBin", + "available": true, + "exposable": true, + "port": 8109, + "id": "privatebin", + "tipi_version": 1, + "version": "latest", + "categories": ["utilities"], + "description": "PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted and decrypted in the browser using 256bit AES in Galois Counter mode.", + "short_desc": "A minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.", + "author": "PrivateBin", + "source": "https://github.com/PrivateBin/PrivateBin", + "form_fields": [] +} diff --git a/apps/privatebin/docker-compose.arm.yml b/apps/privatebin/docker-compose.arm.yml new file mode 100644 index 00000000..89e2171a --- /dev/null +++ b/apps/privatebin/docker-compose.arm.yml @@ -0,0 +1,21 @@ +version: "3.7" +services: + privatebin: + image: privatebin/nginx-fpm-alpine:latest + container_name: privatebin + dns: + - ${DNS_IP} + ports: + - ${APP_PORT}:8080 + restart: unless-stopped + networks: + - tipi_main_network + volumes: + - ${APP_DATA_DIR}/data:/srv/data + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.privatebin.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.privatebin.entrypoints: websecure + traefik.http.routers.privatebin.service: privatebin + traefik.http.routers.privatebin.tls.certresolver: myresolver + traefik.http.services.privatebin.loadbalancer.server.port: 8080 diff --git a/apps/privatebin/docker-compose.yml b/apps/privatebin/docker-compose.yml new file mode 100644 index 00000000..89e2171a --- /dev/null +++ b/apps/privatebin/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" +services: + privatebin: + image: privatebin/nginx-fpm-alpine:latest + container_name: privatebin + dns: + - ${DNS_IP} + ports: + - ${APP_PORT}:8080 + restart: unless-stopped + networks: + - tipi_main_network + volumes: + - ${APP_DATA_DIR}/data:/srv/data + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.privatebin.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.privatebin.entrypoints: websecure + traefik.http.routers.privatebin.service: privatebin + traefik.http.routers.privatebin.tls.certresolver: myresolver + traefik.http.services.privatebin.loadbalancer.server.port: 8080 diff --git a/apps/privatebin/metadata/description.md b/apps/privatebin/metadata/description.md new file mode 100644 index 00000000..7d90ef14 --- /dev/null +++ b/apps/privatebin/metadata/description.md @@ -0,0 +1,61 @@ +# [![PrivateBin](https://cdn.rawgit.com/PrivateBin/assets/master/images/preview/logoSmall.png)](https://privatebin.info/) + +**PrivateBin** is a minimalist, open source online +[pastebin](https://en.wikipedia.org/wiki/Pastebin) +where the server has zero knowledge of pasted data. + +Data is encrypted and decrypted in the browser using 256bit AES in +[Galois Counter mode](https://en.wikipedia.org/wiki/Galois/Counter_Mode). + +This is a fork of ZeroBin, originally developed by +[Sébastien Sauvage](https://github.com/sebsauvage/ZeroBin). PrivateBin was +refactored to allow easier and cleaner extensions and has many additional +features. It is, however, still fully compatible to the original ZeroBin 0.19 +data storage scheme. Therefore, such installations can be upgraded to PrivateBin +without losing any data. + +## What PrivateBin provides + ++ As a server administrator you don't have to worry if your users post content + that is considered illegal in your country. You have plausible deniability of + any of the pastes content. If requested or enforced, you can delete any paste + from your system. + ++ Pastebin-like system to store text documents, code samples, etc. + ++ Encryption of data sent to server. + ++ Possibility to set a password which is required to read the paste. It further + protects a paste and prevents people stumbling upon your paste's link + from being able to read it without the password. + +## What it doesn't provide + +- As a user you have to trust the server administrator not to inject any + malicious code. For security, a PrivateBin installation *has to be used over* + *HTTPS*! Otherwise you would also have to trust your internet provider, and + any jurisdiction the traffic passes through. Additionally the instance should + be secured by + [HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security). It can + use traditional certificate authorities and/or use a + [DNSSEC](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions) + protected + [DANE](https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Named_Entities) + record. + +- The "key" used to encrypt the paste is part of the URL. If you publicly post + the URL of a paste that is not password-protected, anyone can read it. + Use a password if you want your paste to remain private. In that case, make + sure to use a strong password and share it privately and end-to-end-encrypted. + +- A server admin can be forced to hand over access logs to the authorities. + PrivateBin encrypts your text and the discussion contents, but who accessed a + paste (first) might still be disclosed via access logs. + +- In case of a server breach your data is secure as it is only stored encrypted + on the server. However, the server could be absused or the server admin could + be legally forced into sending malicious code to their users, which logs + the decryption key and sends it to a server when a user accesses a paste. + Therefore, do not access any PrivateBin instance if you think it has been + compromised. As long as no user accesses this instance with a previously + generated URL, the content can't be decrypted. diff --git a/apps/privatebin/metadata/logo.jpg b/apps/privatebin/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2b4adbb04c1423ef14a1f61522ec99d40b859ca1 GIT binary patch literal 37960 zcmbTd2Ut^Iza<=MlqyX+K|oMIY0{)bMLI|?(jp>VKswSQO^_CffPzv*I#D_ZgkD5I zx^xH#(i2Jukn+X<`+j%knYqu*y|ZDTbDr$eemQ5a-`Z=h5PuO@09SN0v^4-^WB`B_ z=?_3$1>~v+xjF#=`uYG-003|aKt;v{pdxLNb^+*+asS7*G1(0O#Xp~ulNzM}q$Plf zRIOrN0hIrI4gfqSt^XF%ng2QdpLJkh;B8k=cV7ql7ml~Re4I&b6!~QTJ{RdK`Q-oq z@npyO6#rxU?}>N#4X+7@&r7 z>(%9VyVwWe#0~({C9-3(V+t|>067yG1rr&u2LK}77Zuq*<)6by3o>#FN-ApLrOPz5 zq#f$70LaNGD99-(sHpy4hAfQK4xnVBV!kGIpPI$U9w^|=Djktpa7pmN*G@L$F_e(Z zQ=iDoG*{UO)YI56H_yD3(Ln=4$mB&oLyYqeEs|b z0)t)#M@7fHj*WX0pO*eMBQxvW`|QG^PsN{0O3TV?YU}D78k?G1y1ILM`}zk4zmHE$ zPEF7Jnw?ukuC4#x*!;7#jXpd&KEa$~&(8nGMfyJf6&7jvugLzFxR^+BkyBDqPy+wP zMMfU@H*h9Os%uiz%=e9e_TDT4(h-+fAEXw1?Yt}~V~k>Z>N7@jRp`#@b@boR{)z0r z7Fgu}Q)K@U*#C%Y9-syw|EExplT%PpP*6}&Q;`bwCF;NB63wN53eCR@-9LrlZ(;n8 zLL{ApjC2l4N=hK<{|fD8+AII1Co|0)PQ{Tw(kTz<<9U8N@-Z z;%HGr`W~9S!Jp(_y(qQxdKwI9(^j1%+jLif#`dsLv-&Q?= zqk?1~#N9K&ui&o;H^OIC70^9tfASbS<{wNHQ{I}aXgM@h;7q<9z@Yg9uM{!e9)!y3 zhO>sMPyde6irloG`W=>K{PNSg1TRWkyU;G)X5dibdkao=f8;Bb{(d5${(`SD;o`}x;Ask@?s?yQDA8jq0u5`AQSE)*x$7}D7zbFhMa zEOS_AWF;7tv^}2kMy%n&^&Ju5W7G$oeJ;5#b|R>T=1V{--8iA=+E;paoh&0Yf&;8W zxL%*ffUWH!tF|6O%f-G@|DhSq0=|tN5;165iI|^mPr>IwpBu!3fwu*{sCQstC4%8c zI&Dslvy*2YN78GJ%Y5I|0Z_X-i%s_3Eh2!51#68CvihScm`-3?48KR#&~hy>H@XNv zV{-~*JHPG-buPWvC}&(bhPd{2oeR*Y&T2^Z|4@O%pa0!=tbf{n57dqEf$Xq*&vkNK z&(@#;fUE$&sttN`6;O!CJI(bl7B|UX*7u6v7r$szky&cz#MWMTZDsa_aj%-vmg~ei zEPtODpHO~51oZiC^#u)wUawrnt|9FZUSVsrJ0IN$$C(X{zxIEaib>Yj+|!=Bys#_% z?yTL;g<=Ph0BXQglwbCPM`Lo$zIht#aliG-A$xPkPZ3%|W5BVNntdiPq>j#m;f$Rp z%};w;b}Kph@@;HZbGYMw+czYh&l2w)@vy28+>HjOBW*rE$m zU8Jqf)_n!okJx}8`=eRUh5UhHqQ0=K@SD(1^~zTH&x0$_S?lh>)hcm1xvCK6w&M{E zF7*etYVt3IoKu^gsy#CVPR`AAFGoWu{IqcQFSN0rm$l-9a0AEOoP4_Tqi;)@@1`o3 z>pWqzbO5fWE(YU_&@ckcP2@*wt@I9XEhdS*8&0c1=RM>`4yk)N`hCp9l1v#X^(~F| zihd|n^-jAaHnw^c9+YF)JYBEbck6oZk0kNro>M2GnHt<(d|s$7jRwUyJYPQx$F z?5-UBu782p&&CI09WJC?tmuq}{5^%=JxN=GeQ!fpVsEWpTu?WJX#HYJ^kBo@_Bf91 zH0rsyE4cylJ;6ytbGVrN?nN4xo?rKCgPeh0wK%~mgM8M99Im~A(S35X489U1@Ug;` z?=m`vJ2Qd6H0&6kDqFKLr!ji{C)1bH@27i^LLz_-`s`=u&M>t~)!;A9Ls^t_f+`O- zs%yr8YOnV5MDl(3bQ1(tvpY>=Dk_Ev$;(5_$Ns`KF28+QcAPfF=TPxDsJm0<0YR+J zeV+d8^*Kuu%dg5PkbHOm;^IO33O*O?m6rg${7`OeTeCNu?^V)tqeQ|xhvUcG)haw; z95aJ+7H?$3nCzx3^<71nt$)b(to9s^1g0_eP$yH7IdF>)@Q6eBZ43%JswF6GlKNW5zcS20bo|#MxGd z)#JHHq;gobY`;GT!@XU}<=vlx=hlVoo>;L9lTab-@8bTj6}%H?u_M*0_|=D=t8Wi4 z9m9*JGWvciQorK;Z{h@yIQCz~h~&qG5p=bZ>PBhWy#Q@939sE_EY}9c@%0@}@gB0? z&|0(?rU45@{aznC?)M0^>6~|UKS~Ml@@k2KAq7<`juMdUeO_;tIfQb(uDFSP{_}nI zg14?u%%8h~aK5q@C`id5)5-gXVxI^|fHcHL;Y3gGGQL_P0-_TvVWNG)y>;SBgA#(t zE549iK4~<(2a<3K_C$w&I=y?QFiD*6WPQ}QF-jQN?eG$NV%QY4gIza$}+XcSa+l= z9}vRt&Idh{{-SC26I<0ho8qV0w&L;=MJ1XkgbuZp zr=6q1*@Du0vu?6|toY(E!(+iGFIf~DRc57qec@Pow}L65w9I~GefeoDOjQu4fo+2i zB0+ra7FPQOH!qHwpG4IZ;wOz}O#w<4k5|Bvxx(nMo~PVSOli_RPskuXxSRO&TUD(U zZ9ZVRM+{5d+wKPjG`KtCcesO)k&9PE?om@gmA(66O*W!_FZhnX9fMs5aJLFx>oj<& zKvTVr!Wfg<*$CfT?9#s4y1jU_!672}n+-D)+j{x43#w3^rqu2g9hvR!Rm1sGQ$s29 zhIoPw^3mP?4S$}U$>$fF*%}#O`>4ngh9P*xVunC{G8-9yqb%Mz%EW^;nhe6Tu~d2Z z(R}H%%6_^>P>j$$UpvmV(a3Z5Hy)poH>RE~Fxsac%N}cgW(7tK2fuU*iR;ogEt1Pt z5$E$ThqcrvEUK8CffAS5ppM)ZSF?}qKiHNIa7ZP{qJzAPGl!lR!e$`AQ& zb~>3(>D_ub+S3#pg`RzW=6z+NXc4U8;IgEEHt0TJ>KEGcU-bwdeoGsts}Z!-#U7)s&o;9oP?x&ijPIFH~Fuq1zU`PZbKa) zbgFVVC2VtHXBAe)GLmq)L(n1eCGVvjyT+MRNY7?BG)Ywg>xg8X43#Li!CF|nR@>;$ zJQPxy)*1v{Y`Q}m+%XlH01|U6vd(NkE%#ePc4s+axDsE=4d>?6es{*hJ96vDE_~I! za~ZJ_t6*N&6t^YL$%6LAk7{BXs}aCI?zQ>k@i+cUm6169e?!8{fM@7?RI=|4Jsn=D zxDU2p4}FdeL)AVCS!Q)h?H0b2Or=zu`b{){PzWz}JRX?C7)=mg$Rj>;{GfaHLf zp|0TgysOT6kLogTDn&d84fW9F-42n_520U^DlZ$2C~|UEb9WE{G_BTaRd!l_ym!|u zzrDQF+~WF9ox9=*zVM_|>9vMKlAZb=6EE4VaD^!%z-e^WlM<51m4;pJ{nAIL$~#d6 za){_kDRddS<3LBPw-y#s4;abw%6qC2pv;0*)AxFUQE9!msJ)G^Xo zYh+@|qsh{f4JKz+7d+OIDQ-W?Q#=!Gu<19hJNnX6;vjsK(F$cNzaK0U=A{WEYk35h&=u1#&GDAN^VKvqGxxf zxO1fRB>_ZnRY<2*Ko!fUuQwM|#E=K^h?KgvY zY#W7*w90ilz%9hHgouEQy+i2cXsw*RRNFLv%MHuB=vceiRjH*E}BW>eBX!9>FY|Y8UyY(O@RDVuQ!xN8H4W>kp&>D9?EP_mw&lZj zfZ>y)+#?(XYenQhFRK$q9>U@s116Uxff|_M*nUxSq#@^H4oQBzm?t7-boK%>h^;^c zA2O}9+3D-*n^WtHp3HXKdwFR+(}wXhw#*8@fd7bCDFo3FB=6j1K*-|+&o2PF z=Lwg;Io!4tWP`p3 z3Jh9CYDR_gxth51iA`Pm(iqLGm&{&bpL=pPgf_v9qb1(_Xff!TH=n5F+2xA)@!Zk7 zL-arO5P_RI8-&55xJplNgpXRQXMODZy z;xg_sDqY)vEBt4>XlxgkZ#DM#m+*4wA|R0JC5vAxvxQ?jIq1yObOjJZow_p09dz1L zIY@sHS3lTrmjBc}=5|4Uo>D4RA=5V+ty_sbx}o(4R?E@hG=z~k`x&syGE0Z2rB_0? zmG+TvUI27@{nNz0$zV!1E!}Gk<-D|Z325g-&*yh$P>j2^h5ai~Mu8e`Or#W4ZbeO+ ztofSwC8gI}^7LKz9*G_KY2@^H3(*wAJdVx;hG~poarReERuZ=T7~caMjEgUv7TPJW5_K1L+m(qHE?$B_P@L z3oN+~D-KT$mBr__f>(nCq~_r7@*UqfBF?9d17NGx^wP4HYXF$rw(<4*F>JVyzILe% z#ZMnho9$;os$tWUz+0=}Kyi)w(39|T71tfX8 z=ey^jb6#BU$fxGd``=eNj@kI*7(RdANGESz7_pFgN0DDVZ~SC@uhjS20L-<>L%Ys+ z#q=oQU4l#ToT%ZA`8`bqn^+HSHyawcc*U-DCH-p%&<2NT`4SlT~!(3y4ZsW3CzvkGor}*@duvn`{&0az#9o0NfBBkj=ub~|< zdS4ODi+{#mN*}&Z-GWcbL99kwCRUn_Yi=mQTUWiV_|jDuexylWgn2mm?M$4v%h7yN zKDC1t;Fg1yR~g@gUh@?SG_PjU-sG{!+X|j;UafeYZt!t$=-FK&fRB06MEH ziKWMUT;2P58Z|JIYzLA{1Y89_`@jjmLpitbF&ZienQ3KQTVmuW(&XJALa43CjM8jP zKWZ>iA_BY*4iC=qKHUAButEfI)M(RDbkBA3yhkcD1c+3Kpz=bU!)trr={x#ZH27BwGPcE(eRskrojmniF;bc3KB)+Qa;a$9a1vh>AMJh4zkdyNg zr8Dri!ikBkCKJ9_O6f@9J5>qGjJXWyFqNesNucSMAz5(}E#ztj@&jpJDmO zdsM7O|7isgC;t;z&2MUMtV{aboT3pgt;+)tTL&lP)e`{`I9l-*_SZ5ez+{T=O z;Nx+F7DR4XDaDSyrs>3S&SMFG&haIVx3w}~3;`#??N_n&7al<&YVuYR-MZfJ?JN7{ zO^Y=n0y1fbhYV5!hVH8n-cU2_d-Q8p&sMXtcYc+T4b#1aHMa9|6{>-c`UAhSdOVdw zO>N~df}OpX-7>-R?IMSvBCA8{%-Usc_P1u)-wJcTl)T2_Db)0&Tfv1CH7uyH*G>sr zP%*!VJvB);40#hUKPRgFo1H!>6XX3l(+SA?rjt%u0q%)9?a&1?x@h(xz$n@$P@ zCP)_FO|)0CsxUUviz%qz{M(Gbb)o#Izu1pW9sn)NDN$u$$Sb+O*xY?~g5c_U z8h8ex301{1A)y>L8s@W^0veWybQXV>yWq19nqybRauEJu2AH`C7 zcarDd@1P)W6Q;GyH~d=40bjqZh#uvId1mq+stw?y#J>CdD7L0$2+kXp7~}DbSotWg z8N+KFrIYK6p6c~sH{}@mDjn{`xcUMWO)F^Ztr{D$Ehf!`jZ-Z=B;)H$#tQ`} z&2C>FAWV>6?y zdbqe{^nTSQ7swwHPv~BObNTF!h<Y#rTb*5Gb2zZJo6pB!=guNVxC%_LnS<;w z&@WuwDtc?M&+P}^0RMpqSSiiDj#@XLljwT~uDe5Eb<6Bl;FS>|*W#=EmNglV|B7`+ zm#l8~CUMcbceeDl;aExqhf-Juj;RqzUsvd@gtE-AFM}njQX6wFzYj%$7grQ{rJLNQ zv99Q%J_x|>ln#e?Nm*!3r=5$jsfF+!&!6NIrXD^Ae7yq!85HvQr*w9~j! z#M+Ai=Uqqm@xGyao5`^%N11$aLZy*xS3kT9tJdGniXM5-P__C|gL~)YTS=D>lA8-G z_jr^36O0BCr~W5=PDv>eTA@KR#zX5EyYr$k#jR>(f_9Rsww0PcavxB?_*!jAAb+LO zpv`<;LXgU6VP+U|72yVs1=CLJD^?@wWeXXz9Nphs7y0`9Ma6y)JR^t}BwgM#D9hiV@m z#S+paLT)Q$&2lYI>r3S5L)dAJoBZ~eWi+KKwt!M)bRf`6Je9{&TP8(b*%?iXvBzh2 z4I`5bL-o*0A6EB{hvY1GJ%k?wd@S2gV-bGD`D5ZH2bHG5FeI4>Xz=PAh1IC$Rk{g2 zM4>zM1@)HctAT1FKkUp8vK%5G{RFa-orBhv=L|5<@$a1E+G%3KMRE5dXz*=IG7gT{ zG#)TNv@O5usq4@8^n-HoYxg6HHSnH1I&badEWQ8kdX1&n)!0W3_~EyzIrcW>_ttzJ zVLt9d$|@^uUOg5!=|6sJ_WkA5zW8^5Z@YBIBKwdH2y{|}ry*5kI~@HM(6Ve7{;H#| zu`HnX-^ODKrVSppJNFS-upUSd>%u2F^O1`I9tub>P86Tcq$i)f8!{hNi_;J5Trr5U z0==$UOP-q&qygR^JkLJWy(Ky~My~PdDI&dTr+?v*NOm%C5f)yu_t@aF<6~oE_j$8@ z0^6S!9ARxpnHL3DN8ww&?>|p1Uwb7sAk_mA6_OB0r!pI34UqeM=%mZp6u*jTgkmw3#J{;JM)R)%tXr420NVT5M z{*k|5-!uYlnOfO^YA&R;gbyp!HZmfo0zV5!3$@)k1C1kMRi&_jR%UXiS{I0xj+qKe zcMSUg*G;zC1IUle2((hqIo;s(;`M|&j040vR1pt9X}g7tvhuz2OMfX#P~1f?=-7i-d8$V2u>F`_K#Pk8l_rra%-py+aU`C$KleaY_?fV zRcnGl10_P*{M~djH!Fke`c2+sYITm*2MC!y3#|Um@qQxoXMhr_>HFJH#XzS}CA1pG z{b#5yYfZoB*B`#IM!4Q^Pn-_^15R^Q`&sTBbtb^zN0IEs$sH!0Pm&|<(P&`g@tz&K z_EU2@MI^#w1;$lN*P!!J+gGjj?vXgPZFYYa@1qGq(819@RCZ#{%}RCz$;auS%#?DU zt=PZp&ytwdp0bCV@L}K8ZA#N-(18L-5~B#8M#SgUOea-UlJuxJVMRrwPOuJc0~>{s z=~-fIN@@Fc=iUcNPHM!LAhllcM%j3yJn;(|^u90(!5x_ZkH!C1MQ?4l@UfKzN%W}l zMbv|67NK35g(7B#p#vE(%|xHp+;W}tnejHwmDoKQG|TGMDyshOVK-|)Qr3j0WqoZ* zFx3F<)}aIb`%%-f@t9}ym)cGNp7m!wD((h`kV`>>a@hEvt}O|C5>*<~(5=ca?rq7i zo#UoKS-)_{8w%fK&MEO9p(~#WcePDN7pG zbPN<9S;?aS6SP|5aC3?E(DD3rBmo;8n^kM0# zFoJb`M%fJQ+!xTuccU$n2lHKJcDz^K8E%g43aKfYdZ!@wl zEvtGWhTaWPbF_T(N~2@GoWwEEW@O`SH}8!)S`F+-qEd!j=wQ>9ALzy~s})%4O)S|l zaRPMtjg&vVrJ;FgbemjTDBgX|D-nV+La=YQxMKw|&~XRs%hjgNWW^O4S!x4}Ex=M{ zhAFB0^U*z!eb5Nw>gxykC0iBxI`(Lz^kfXtACYdFV~-@SLb6f`}1cGq6V^PaXG90I0-9Px-1Kp zhQ|w;PNd00MWLAq5Ixvw`ASfxR<%T-WJeFrmu;1b?vbVh;H%HuPo2_K)A?8R0vt_d zS6v%7$AW7&7A3mp8ov23FUe=DE9Ytp&CDQZNfX{}5UU{1leiyJJUmQ;Af1a^l9+_f z4|2P)U@fKt82U1Z6WhKe(w%7)EZWP#fr0-fD541l*~vDQ-}0KCwe$X-^(c3M)R)bM zicOs;gH|^?K2mg{G_KW~J)yRQWw$3x)G6t*(sGf(+@_PS-+v|A!Mk$?RY3BXOBa>d zc{GIGmXRwn7X1+Rt14|QtfQ3GUR@7puSZ>Ml-%aN`2luS?*(tUnGNbDYe3nQcSog& zV6M-X^0pW)p#44G7_Ew57RsM|8fe;L^eSLgqSXp)H~2Eros3f=+{_+re5i;|k*IRK z$#Yc7579BH*D$zmAV}f8V(}h()Q3^!n)saS`hb!$%|OrmmpHGUy1GvGH>V~ZHqzFk z?8&S?JB10HlC#jn_tGoO+6sMQhu_vl_a2K4c^3x-KR={oW?X_t)+asV51Bvn%`+KPjYKrH3ZbMk`963zzxBE`4lUb6%X5tnJw?5AZzW6; z0a`@B`^li#-j?b%pHqudy7@OkU*VFIt!B<{dZf9tEoMf87BJVEzeo6iiLhj7Q^<{j zlL|W)6eM2Rx1zfs$Ur~Gr2S)L<%}zGl>q3(**HlBH*c&D#u)x%uT+;#fp=O zRVa>S2=fB#?!`EZQ>4fLc;aN8x*?^CkbV9HD$u}3hjuEJcb!vN95_h^+Mm-*Z++VNNtCQ?>nhfs^oQ=!a5NRPXc)=$w26hFzLAn&<|fY0q)WSslHF=u(_;K~oJ6`)97|1^T{ z7{O#~naa~M#9p8bD-QO|st_t~G?(@RKcElwVnfMM$QN!QpTL*PFg&t-?|w7{M8kot zc4c{!B9W>BuHnM9@h&2dDPLW=KOnmuXRf{wD~rS6Xz>O9UO=}iv&)Z0-LxoKCbl4T zd9(x(*Y;Zz{LPIY6jJX4!6S%KB7g-a()%pq0}`&kJ39Mkl>WW_k_=gK`;8OG2F$~8 z)Q%pU}2N= zMjlWfLN(MCmDQ8W+?=LVVL{V|@`j8hE#*;tXG^_L-5S*gro98XGOx|nTccIUNNI5_ zPZ4yG(0Mr47lOt;vRRAqsa%v-xDZAB$b?NnvlgJLcRlN?f`WZWCPmx#j5oTQM1ur! z0t-ki;pl7!#^7eJ&D=`_@Ez)=Hi}Bsw(Ahg&OvAkj3NK<%lyxbBF+qlJ zVPd^znKJkS`{@@92Uj%^+%-EFX`N93sgV* zn^5hQJv+hDH-2r#i&4EVJp&Z>X=+fW7cWA};LD6y5re(ia@<1%BpS+c+uXxWhj#i1{O27%PA0{)$)BAnIzrwc|}Uyy2!K3tYC zi2ylIdT##odr!Eh<-=$KF(phvIoZ2|l`(R)PhUoub*?i+&mf)S{LAW<1`iH|gqSVU zA+yVxqqJ*6wR$#w7vK%o-r2eDFWfJy6V3}y^IY2VzyrNgC(qtIL$pEd+O&_^*0OU; zyvuDkKPwoWT6|$stuG%ex4lXk_jZ+?w6rM0H znC$F8W(S2TVI9AP7iUv1#KZgZn4qpOCUu5%PmC4aBdXq`vN_<3_uKC0um9><4$Cp1 z+UZy-c&y(*@#F)T+`c-!Sfg*c-6$y^$w#YR2{In-3TOJNt7~m)%56&iLMnY*KR8T^ z{-LR1DS5;%lhVRhG&lZL1=DV97^jswsw9QRUOXW5fq(?CD@!ljRZ6XlP1S5c=c<|K zLi`1JJb<7`1h^r7g&-lji{-Oa=%b zzAbYFfx5$0e(r~Yk?uDRJZ_T|s(6kkiGlFn^O$3N)CugB)$nK%j@|Rr?#j2+kCBNv z#{DXY*RNEsjn``(Jhjg8ea)*`0B-<08zcuVF-@&Z9DEj@{Y8FxC1hr!I;Yg2coC>} z$m7Wy2X~n8Cr@JgT^oEwJxE!z`&dR?9Q7-1QD%8{gdd*u)FG}AZ=pdNq$FU&*0>Fr zwo*pvBDzcYqqfB+y!%UK&nPag;oQ>f*<%kj&(gW2p*nbvad_JKu&~<4ZdrmoHnp?f z=XsZ(P+fa&?Ecx?o8~2S0qiSzE9dZ3k1UW*#AHN9#WT}~7Mt6eshq5r4vbRGKS~X3 z88XGsYVAbFubVzIixd@5G9Po=di(K3SkgUBxAvjbC^L?Lb3z0} z5yYPQ(hN}~OdUISpbw~?h_1Lf1t}cr$ZgolZhr%j2lZ_ukF?^IUQ5&Z9mgkr3@d3W>F3V* zbAlhZnV!$Vw|H(OxYY$JDW>yPS)K^s=LHj*G>L%x`1yZ~Q;h$%kyD^a&WB?yti|fM zf}lkM!5?>uWy>Kj=Uw6XkmE`O96y~ozDAlh3jv|sLcx0#) z1pMjEXE^8vAF?+R0ihQAn;iv20Baiz?_;nohDzubAqZoz1T1`UIpVP@``1z2p}}v+ z4-&(jAq?tnK<{H!2x}xsr_rF0b#j0~I%HB*Cc-?$7t+h@JTshDy2d8S+RM9bD3+;* z{197uV3OZ4TBT7W!uE`&v-YyocO|nJ-m*BQ$qsXt)P7^NS7ko~@ATTB%>mT`BQK>) z1Ixy|hh^E7CszVVqlC;)z2qfk{nM%JJlXGPHq#a70aA9}X!ahaKP`8Tl=f&oZT=*) zd%O1Zs!GMm^4vr}&mjSj;ydwY?NHCJi7^#(e~^g2#~;zjap-b9p{k;`CQH1 zG|VuIquhmoWkC7x-3p8cmT5KbRUW+`0_Y+)#L~?nqs2}y6dl?NGZ_vyAp$xDz|IQd zceqEBtnk&I^%TEn+3n1)Z)=3E(clkn3wrG zhp}jEZ(r)B3#^_ap_wG&Idrzs4F7>3wjAWT=J3f*#=!pO9|w`^GJA9FA*kGfj1W#n z!3~@9KsNkC(p@}iC!fO^U_l|s1lkw=Q2MAqmWU&JMSGHfkzs9dakYxFTQu49VzuQb zaB`Ve+1h^<%3@`wc1^#!1l|T!15t(Ag5q#W?mqA)ZLVyBOVwhP=hSP{GLRL%44;6r zJCBVms7*bz=l9=rKZ9=F>_Wp|CCiB|B`4xbx|KuVuX`Mi_J%=bh}APtanqVCCr3$7 zU|-3kaVliE}uzyrntf)m2_g(V;XPC=w8OlRA7G(>5 zh~B>tL4pE=*1@TcT_qs`1;zJs5&@ohY8pyYbv&k*6xdwVp)C4&kImIO_Do3fS$n;7 z^3<@L_h8yz6nIorFQxt{s?A=`cQREpK0`D337d4{2a7wi{lZ#N6e`1{9q!P41O|8M zZIYm4&!ljD^GoSuK!vE1#hv&4!U_y0(h|PC|w3#=ya!-{wiGcAH}oS z&6U1s9zaoyqhOYWcYe)r;5)Hin>OI+Iz^m5(pKVLgYn@uyVSjWfBYJmtwdrDo`#Kg zsZAH7I#xik8jVu?S^zl6Z*K|;u5Td5CeDrt2(U8|K=wFP4y(U9N@Lk4Xsx96_LbC; z2PfWrb~`sWfj99|6hMFo5N-ZXod|y&3Ot~mMJ{@1NAOa*&$qRv`ix6`z8NIx5E3^h zf?CWITzGPPthl55mSaDV;sid}>SpwkD%|0Cl*XDcY1`}wZO*Hk zgC5*U$z3tsZBn?C{XE3uN(fD@zp!+_Gb3OZ3?-fiSCi>Ows zQ~8%FYBv2D%J@G~cgqH|^<&ij!ltP{GG>-$7~b-nYH6`TIudzk<}DZI zG2PoSk|g!vGHKGGeV5sSlBbLzMz&X+&4eAc1@WAtU*Q8@^PFExI|*B)K5Hi{fjvpz zf~4d%fN|0JM1UU=AOmT`(vXx5C!j_sX$9o`gSZp^9Gk!S$g7m#4@XfDbmgPKySLnl zfP!goJb0aF8L}(0q3{p^&7RP9yRVl+b};BoB17b@^P%{hX5I zv~D8;24zvF_?TNHSqZ+mL-G|L$^=Cb+BS%Qv4nfPh}YnCDK7$+;D0fU5+kUGfX>(R zz9XnxC5V7)30|lDNAM-D2nWK=gnu=>S4|}X_TRQUA2UXS_7z4i0#8)q6a6a0#tZKE zJ_70xgmNa&gz1v|eQs>L zz$z=F`SIo)#b^Dcd*-I5T1u1KV!6-P$^=Y#xBWp?QkrfbsUNv#>uu!J2pP?NCVyAd zrbFec{UOaswJGQL?B1~~R`$Zp^-v92B*h~MUk(|FZrIN)MDUXE1bj)$!B+nYE;`a1 zJ9ErFHY%G$x6hQ0tyA%G-aAaRWoyxa_=34ZtuLoPVrD#ZS|0gE1kCF87zIJrP9tUC zjQm=gbkI;8_qN%9yWI8=X%rM8#dE~VOxV<%dV*-U?kWCTyGXD!DCY%112OIw4j4Vq z)oM;Y(5r8b`z@5DbSm!@f3_5GZS@}ZWP7? z{`dM`D1p^O@PlY#HUR5R5{I)SA_zb?E{$~lyEAd`{Vo(P>Kf?;Z30&s^r6bCKvWVU zUR5#3;y%p3FLssovF!Yqw8yN+^N2MIK|*jZD*$w$4JlY|2<%mY#6#I7JTkY6P^XcC z*%YF@-*0mXhcpL)4-Y)P@jxpxfQDl0!|bGlKu@v=Ls@Vxli#-p*RgBR>zN+`G<#Pg z9EG3JrZ+Qfn5wVven}*`-q#J7wr|0)q&Yd`b$t2if^#md#m>R5=IYH`ex~hyof)rH z|ITJXQrj<$InBskxNA)|2a-DfpDc_&$_g9U)nLdvXDmC)i%y3OgR~zBC3A~env$$) z5Y#B`ZrM|*!#~Xy6(qxy?^dbcEKTX|%^ymWzh5Yn4#1D#+54MbDvRHZZ!@@&E1AvM zB${b}ioK})CsJ+V;R5SURgF~-y6gRVKVAvAA^A6P^Ee2O7kF9yNlpk$AK}3<)~}%Fmp~|H6_|?)AJ*D2DAXtM7$EL4%cql~yo` z$6HIB|0{hD{Jd|=HEiIL5*}Iq=L(6#k^S4uOMxc+Hj$u(4P5=23$80zL&G~5De|yo zt@rcJPIHI=ja#JO%|bgNXV{Qc5?436fq3_K57M)_EFULB1SkuWP$BY_5}cIn2cFL3 z(YT${q7?`(9s@oZ1ZRZPVj%>ztIG$lO-LK$FCnq4Ap)wkaTRBE@&(=-26 zwXy-_cmf^n7Tk@%jHaqCE*|larN8T+d6|sAGA=lby8yle!*Jot{h)J#t4W`-OvJ5Y0Z1bG4o0|wo%9Tegcfc4HzCUWWA_8nD zK@u1bX3o%ygg4S0f=i>3B|eFlQX^ll^&;G1@!6U^u=ra=*xR!8DCejZnEKDXB9Wow zk%@KV=E1W8aUbo?GI(|SZ8r;WjYUV!0njbWXc!G&qrn&TnB2eVTjCm8Y3|Y;V;eiv zm7a=7%Y6+0F-naMIOxfqylVc(W?&`wL^fH3iObMmcsI43n^Cl0@Da^ko*iKzk9GqM zd~8U-#2I2--I4c(UdAWzk&%4LiF$~I4y+La84TF|e<;{|G z2hAuF4CPlf5@IZu{-XsxdrHvNBypLW9waVfae9XPFuKn|8s(+v!|}e5-&Pq}h0p=v z8A3DsuuA9OV~l^?^~fYNNGL6ckjHkY*52 zln@j~LSR&+C8SHn0O{@=0g(m~0i_k`80ltcL_oT`TV}|C3BLz@-*Y_iUFU~$%^rq_ zy|;VCeXo11XL{g>-$S!w?2}Q9==!lkitvnX8;DP`pj}bcecV^MSlD$(S3kz$YIa<@ zL+4zS_*)XX+s5&}9)qt}bwT#QmpYe88XxSb*#X=Y*XZpFd*v9YksmoAvH^u@}UJHls+9O!k{g2qYw(}6G z$x}g$4`QVw-k?bE&a(#76ze*dMIOJuRmji=44v7a@7W;Vf}aez-7$7F^!d?>;l_}~ z*y0A-?b5RLkn3A%c}AWLtK$_>@Bdj6I_zh1 zeMNq$X2+<9jn86CJZdq#FN;W%oa&)-(0T34`?Nx=x4dXMqYc6oRlMA`MTYl6^9P1{ z-Et}VIIqFw&OGnskSBQ`>4Thy>>CoYyi9PC*jC6zHy6`rl_=iQB=1P zYOrmCfRlEk2WREaFQGBZyYS&#s?udy>~z)F4T~VDSAUPy$ji6Y@Arab7+Q?wt=n2# z1x!xNkcdh2?^)|NJ^Y%WK9HfyKcoKhryU8)I|XE$D!@8{19c)6nT>3;rtq`5F(=My z4}3h+&W*K>3rm@wdAg`oFD5WXKOg%EGu{%)`WlEi(J!Mp6)djZ<*4%XG1|6yb^qd` zgY1rf3+L=~4ErK=ok@AQWja*nLC37>Yh$H^z!9Ki7P&LgW_!-cZpi#5ozB&lUJFr`>pSE7 zDTH(h9h`#OI!*fJKZZ<<8K7_9BXvT)dh%`g6^V=%370#(IWh=H3HveR z8kp%&8~q)vp=(pkiLZ@;8*Gq$Bg=gd0LORIxCEVVL<|ei@xv7U{{*OvK5 zlMEl_bp24()_IoFnk~4lGoG&b_F1m3kcCywAZ5h)M{QYjPiieQ_|`K*B6|j3?&U^^ zwP;H6W}MsfXMZ-7E0}AoWl-zXf0zCH53!u(TD|DPEarTt`Za%ENzG^NboNJDI_pma zJy_qGxU8y`>wl~s;2Z3Vs9-oM$9tf9hUZb65!0AEk*fq{pC*fG%-S*O67kzX&at%} z#uIS$kVBTHC8y=-ZT6Oq`J`;+c{yfua(S7r#i_Ui~5g znKn)eU@J4UDZo~!T^`~u5?J&oq0ua5`z*-Z3M}!t>P5S%ho?Y(Hw-0eW#97yjjL4u z$WKWz2qGovFA@%_0MrIIWEWWvBlVMzn}eAB&cILz*vwbhHapgU*l7QYL=k@q4ZLEA zf3qAa8nixq11TB`xYKVIzW z!p@F2R*tJZu2fGyFYql--!R{3+hZC5)qGu}!6%+t=>>Yl@2p}-#JcRJgwZh>s7$4E zg>NR#Ea^STkdzSC`L3kxom|rVHYiQp&wCEcMaZzF;MGxucyg zM;x)2yJN95wysoVwy2($dFm2={iqBx?3d>yW5TEL5Msx^V4Cm42L!prAJ7ZM>s6X} zpK-;iNv#5=>levAiF23&(JX2HwvMS$p}sjE=Jbz`W1snHXT>bD5iR%R7MFvCuex|6 zWXCD9C%JfAsazhfc!umFM?LpHVC3o{L3fO}`)u@_R!w9EtVN!SadMO0tG#`9I7OB6 zK4;_nDPtx~aAOmK<9g#yPV%1Nz3;ArkWi@UON0yTyo6&qUKS0yZ3rCqua>2qRQ$q1 zn2q1!-Jv3$eLN2$8m&)Pym$KU8`*v?PiJnJvnt(@`=k5EvmoSE$W$%#vwd3lGVL4A zwC$!+eS?kPoiF<|*B!)EGCGpae1i-3#uRpBVJ(+?vFZ8q5_Z-ZP#fs3>ktTk3`NJuUH=5+of%_l6Sw3K#Sddur4S$Fb^a`5Tj(SSYq zUfVt+MS*7-tnn_m7kYNv^<<|Ui4HG1x}Kg*48vNMM7?nL70}s_qq%2dqh~g+O+J4` zR?j!G5RVsW6`(UW)-{!lCTzqe%dOVXG`?SJSz?%;l{3M2mmem%)_41lnfeQRnq7Hy zvxQM~AqA8)WvCze(ms8jWsbgD#AhaW+Ct|rDrH#fW2d zF1#X&1;kSGqeLyS3o`DvOp{KMNy=!&Ma36QT2vGIp9tQ4s$o-lc2%SF!Q^@lw-v>f z7ISuPq!y5{uKJ6w7FBDxu4@~l>-dxop8xTUF6HN-%epq?Q_c_jCxWJiXLRi>(vm?> zr+(HXpr|%8vngG3y880jN;N^fE6M&g^cgYex9>uLxJf;O62s0X1{Q z?H9=;taEsms`nQOQSRbl!arWE6F-ho#k)}*1UNy8mtjm^46rrc-+3HtE(ME*Y*DPB zOjA``k*DX0er3}~bO=PscRu1w$zLu^&x0H9XN_0~$pz0q>ha@9{*UyJ6yr&xJSC5& z4>$wz#&`q|{xlkf55!9YE(`Eky?!Vk;L$#U*&pPM73+jAsH5{fq*!Ly_|%nd_%%3z z;W}w0x)3t1J-r1G{S-j@P5)3%z@xbakU8f*BaQ%1w}=)2o(=+V@Hd?u@;-p3ih2)I zdZaEPzM+7tvms{oo*mE%$XNw1$T_hT1+@<@+5P$V?rOa*a8Hcp=bof{<}v7m`weu02ieu9Tc_9IS#COkF^0=j48KTj)w7N3rO1n&ZbS^S zXKbMPn0n$VUE3=82&;MR6Z10aji&z(P#s``lubn(K{m-Tq^dq5@T-k`3-YN{i$?b| zCz(+fR+US9X|355*0h3<<*1o#BWiK-%_~_(?j{<#Uls1Ro-m92MPgKU8lChlLE7?Z znsd#U*q_oD$d~Uy+hGCEY&hkCj0Pqlz=igd^E>srj|hBl?jRqC%+>BjT#&9e_2W280Taq3V_<*9Uw;HqIwl@Yq>bS)oX z(Z?Btn)r;4Bu`BsS*C53MeguJ#_>nK5sq44HnpidklYq)!Q<4`z#z2^YPBs^GMxK3 zY)aL3bFGJR*kbx3N{rX0F)P2V6J93wzgTDBZ|nSk`me?bDE{9$M<;&rU+Y8_qwujP zzznMc`Q3v8%N7`B1~x_4M+7rEw)OGgDSxJfAW)!C-HX={wnu+iWL_-|@%|muUKb+9 zLX90{%%uM+a4?QU%Co<-4aq$ypp_Jm^$1dXq+1}dQt1~-+G!s=qTwl^bEMILy2=9P zy+VdMfxqC0#0Kqls)NIZd#r6BEnX0@2KC%&0pICuK3$O4fMlpg#)k~6N|bh)-U=aX zV*%^R0m?hagtgB0FOohb!dPS{DDXrQWk$MniJ3jemYLHrpcR9hQvl}q(NlAEC>N>t z6=WNpEYbX#lXRk@P%Txu+j|9o<9#?=ksCUemH$NgEpPm%4lSDeN3}V0+1iyE4oc6D zj_uR;E&yajq8WOsH9TX3T%sHW`Hqhka#U)b=jCe|4VqZS%F%Y*IFPxcTCJFLCR2pR z@@59>Bg%vA8JB$|2%Ra-&xA3?`5lGxtML3fu7r&t>TjN;a6fn%Dp+|d*rz@}ieYtc z36)kC;Vw7iSmjt2HE^^6g+F^gSIF8Ia){c7iIuM6t0_N9-Y3N%1^W4oaBAhnVJ4YT zoFuL{>k;}tCG?~^P6x3W+oUM2z)X=89rLPT#Ea++g_?;qL1RQw7{l<9S!4q%F-7^4*XuX-SA;7(vE|!|je%gwp!i6muSi3wC-JZUH4?CIZW|?2DScN=ULP zt%!CSvAT}lYh}q`!lbo`eR_396ox@SdZt>!SHzN8O1fG7jvpJCu zDKml$@^yUPWZIPKO9vEGuzuw!ebDTvUap_lmR;~6>FYyv5jw4^fi11^TBrKWj3D^W zLAiD9lw*VLCC&Lr>YB6dlHIN7r;@5;sIn3>U8`*q^Q?LhkSeU2K?(UktUg*Oa}yypsv*RQ zMA&;hLhZ``0TcdA`Xj|y5-9-}%K-t#w{Z=&OA3EQBm;!YK@ej7J?cnMXR8f=nLgzN zRvt0%2m!2?)Qj@6^E7p#GyEna75A3U?m2<%rB`?1!1|BT0tQ|OIVFnzU4R7|4e3VM zHuFEU%7NEKQFPZI@dl`*UnOn=sBr%`RM;>DW71ZPB}lb>Nd_O{N=4Urv9YFo$~14d zG%ZysCc>0|!n+iaBhV8svZ?1)ke&Q{)dOX=9p`~rYoxipq;RN5u< z4tRr;dHk9|n2;hWX~SYUx`!&I&Qyw@OD%+29J^RbF9)RO^0?)s?r414G>n#`?X{+Y z>Br{Y$Yq>|hDCL7xg(l$XJ35&G1~Us^01QdMdF?_l66|t%9ry5Xh8HvnISJ;i=0&& z4c)v!18HN?*?BhKB~vPJX>vly)F}+1Ph2{>Zk*E63SIEPYr#j1owD-R6j1NRcT5A^ zs=S9E8$`|+rnJ^=fD+nMw~N@O{f~WHUqU+rWr7Q+SjZ$O@VH@adZxtAOm-HkMwAwWhh$O6%yqhumz!q#cpUoC!%wWyt)iW5SJUQ*36W#ucsFBE=F5 z6WY9^K_b~m4SNi4xl?F+Cpw4A!5*3zPU9(jQxoJ`MD$*@@PKe=^$ik}_-pD^>FS-LcS@f(xPFlo*AsZR;3LB=!0cENgvkTe_nWT{XSF=FJNZpQ~h{#7EDwD>UE39S2&~ z?eecng#~vr~3Kz1+?DVF6w?+zYa7Ts0o@dBo>U@|a3^TaXoe z;LJJWdo<|SGtlWVaQ=y!oYm#mw_S3=+@UX}yZdqq3xYTc-d(YYAtkIO2_;S{7e_k+|fRI;CYZG9APJJ`^CKflZ&6BW~?Magba@+m{q+ zcsOWo6v4kq`$gh<6i@U$0_Bx&b1)$rcF=@I_S>qZ{#f;%GpslTAKML#Zsgdg%YPen z?GxLLiBCjPH$D+goFZfyKHat*3M=>i&-klt6bvdh3GkyO)c4Zse`+*;CiDHa>9dj8 z`w~}Ej?N;9uPo8@4Z2Lzz@kBgW@QmMjl}YC|=jzS9 z$GZGFm^l8g;o>iWvwqn|tmG#8!+nq2civ8xE2A7`JjDM8{7bpBwGg1=-@3L=50Ax zBk4AzUqa*W7XgM<+1UH*hVd)jUIRn&QW((K9Otwu^OQmEMoDWZjLJYh{Oz|dkmtO^ zABLL|MR6g+x@ec=mV--7*~=Akb;DFK=i&3y%qFU5KWcv->PjiGS7E!=QWZ6({qAt> zwrqWi)(dqZqEqP%_p%drwA%CMoF0A~R6XMI9~qu^-3&s^IWz17*t_v2 z&)$+77(L2L_3(V#?lBUE^b!z_&EAaV03`a;AA>~GWr2Up7_l)5%B>xs+)DkXlIkCB z&!cKC6E2$AZWl5vk4$9Q+vi?~lz$tI?78H=C$w_%gf> zb_yg8`bB_EyahZ12a2=?fc`7he~KM}pp1Jt54HXtadZZ`xb-CtR}1+_I6q5{4=qeC zB&epQ!LIM;QV!)j^wfImhMaRxTg~Bc&h}lgI5Cv2-)OcJWyAS{r*Ajsy50TU5X*S8 z`JCW}Ee(Dh{SRz=-CT|e^e?PJ64~}t?lc??rc36=TWW-S<`YQQ3$AF^7wF`^;8{v`j5xj%5oprj2*5Z#1N<1d+`f1s}4IMl13BvOcvTM|x zr&*_X>K4PlM>d6E9b1N3nyjcE71I5LT`V;n#4EWwwYjV^5KDJrYaREK6dzo8;FX3( z?%@I)248oq%nr+^ZQI=FG~$Kmqg=X?AYD!YQySrO0-OA^39_M`<^6_JO0D-U?RL+@ zM;7yVZLMi}1TWnKMQy-C_zC0h;7o(OR58>`EO{sRpLy9wbvVL%mAy~w%>F%_70yi@ zLr`hV!8Q)(YEQLtMdd9z?M9XDEn*%*Uh>T9stIan9rCvV=9Zrm$@jkhy z`obh0k@^!BM4uh$WaWjFpVa+vpWT0NDbJ_Z=v+d5%H}-ZTC~5Lw&86Pc*_2EH zRRiHepBx*2jaQxVjnq&pl^-N6<8|Zw9Dm!{kr>PkxGmewplOUmBwNbB@P)AkXYTwG~qeGZJ%L4;#_xN;$Ett62?hb+l0L|p~B49uTA*p+yg-z z4on%O=Cx1CH`;;uAB&>)Y5fm}4|?&*-J4B++4lcd(fl(vjTEE$CpCw^25#byDeL%E z40#<>UI4kvh7fkasSodI!v5KBMvDGA=pPi*oj3L)9@IyUAG`0vW4YXjo& z@&;->?AVwaAZHNY9R5)I<7fk-Otrw#B82G23)1o{#4V7PKXd~L3&-!Yd|GWLq@ph7 zzUr!W&jKmDMM!QyOXjUxw(n9dQa{F}y?&^#vJq@><>SuRf*SS3h;BU#<5X z=vdVn*w4NX;&S-s#+1JNG-FcD`ygIhv3LwiM1k-0Sg3hwJ*~G_J*Vv0&Qfr7Wjc)M z!!4)+v&3M4kirvE$^ye$6J|XVG^5Xp zbPSh!5GV%0=$H5JXnL6N_X*`*#PLTBiFs5-M5yls?n|L+kgpory)4QGz<6K~RbbXmQTsL{>$jTZ)!-yZYY= zs_aA^>8xIL?{0)s8eoNHe+JHW7@vvNE|l{ne)lyB*OdQTB(0$*ovqOmrjZ4xFn=ON zA$pj2Ng#3>{nntVi0ablPcA2+2Z;LNWytHFULB12dT*ZF)w?#?!+W~%m#Jol_fwjl zFt-i$_}>h5svfxz)xLcPKtd-k3845Nni~ATqsZuvZz1tkLc^K`Qr(6c7w+_Mfl$!L z-B@el%ztu9%ep?5b2Wr$fWPZD#B?0%!>AT4k7x<8UfR%*O~cdhbw(pjiUWUjcr<~kWVD*%b@G63QEJ20vLKLvGVp7N$IVDQ|L(+Prz-k>~KE$D_2e%cWY5(dw03S|dZ~;C>a(vs-Fn^+yAF zo?5PAVg(=43a*ET>%8bvYzxWhiU1az@m@B%<=%3sScC<&=dhxj@x@k2)pSkA7M0~N zk3k)YIS}_NIJvb&OAzTkqQnue^{8W*ZMiR`B~}u>Vu|V4ZxkEWAON1UM~Xz?*uXDv z!!eO_sLkn4{5l49Olaqp6F!ppNMIq5-D4vLW0sETY#m3OAfnw94I{jsMQ-^YLQ}?V z{*MU$uT(*UNJ$RN%k(wsAG=2QalCt?(Olqvh4cATQx_es7vyb$&m{zA27$U{!TVA! zTDoC+n;OGSa6}N8u9McG1Mz|Uzk_%!iVU`3a2&%Q19OM_8G$VR?c$&Gym+PoRP`J> zjx+bats8r6-4n;4drGHNFK8zu<2Y;nganh~*DW5_QPEwOT&qglS=YF+Y1k)suJ@TY zj}|OlM?>9z>gzkfcmYo1mziYQvLjGYo55~j`yZ!M-CGnha&BY~7D=ur%QxEJ>2Zu2r6)3uYksQrLkY=((YMM(3~tP*&=wK!dpryQBhfL!)(If}OM znC$9L{OKZwx5U}5lsA=W*%ukfCyOaeDT_AeNdvD`$k#h{b(?f3I#&E=FwAOSu&&|$zxWIS|XyNZo+ zrWc{+ui=wJXBsjQyI>b!o~hx_12~ONzB;Y+KU*D6Y$G-^(fhDqPz?#$rD1p{ZOYr$ zs%zy7x4W4Mb=ufspnT$~*K(4}4myRrre{@!qmR9hd^Tn(5O= z9_q2r_PBk#>Wb_T;`Zrh6B_LWwoN*XTaQBSImXb{bcOsP;mhq^$eQaeY@VGIFY;e$ zNMO-CwV!@1jhl9!`V;dRRSVy7n4)8uD62(r`7;9<=0*{wu4uLBsYF$afDbwkIb0ra z8qRoIRI?52TkU8qSW!6|w6F^L(v+!|>TuUehCgg8b!uR>3u?5uwwoC}_34Fg{M7X| zzblUIP`%^)U+2XWK{>-qak(sd0D7|^tVolbVUxrR)bl-!1i2$7yaNFwU<=|YKY>yX zbUD=1fnqFX*BJBQ7fBcb92_U-f&Yf*<&7%X9H_O^6C2+G?r{cx9M1v#-$I#m9}3g~ zO#U?y^f%W=E@U9AtKfM5&0i!F@I{@qH*o-b;}8e*hgwJf=#c)5eImv15-DjSu`+n( zltZE|;Y2Q4uAze1i(!K;AEWOEcpV(Ao0UMkIDKXkamsauhPeHeSc?Bef>qypJ_P-6 zf@G32pc_0gB)i>b-a44 znfJ}9#&P+WBdhEOD!={NSe8(iFh;fJm;540<^DaS4Byh7G@7Yl;^iqGfl zEe%p5``Kw0^QxK~TpGOOq^DT?pX>^?-Cn$4iM3?(%a%1PrTchfBt)tmx|o$`E<4JQ z%YKlz=fyIZI*Pn)FA-c{!f?TSHc~M!vs9kSqEUYNy^=gAzgvZTrt+$9=! zVoN>uMU>Y2gWq{Tygk4FREBnohIU(DCfV0_V(HW~PJ_*02wGA$>*SheDqRt6jMp^V>5_2C;-9h%R7D~&IS37K zhnVcGS&ZR;=?y3&v`S8s0~)!g#aiU3Exwc~a{y~|3?L4#V3Oq4PB_5;BrkzII+#5P%Rs|&pDiqCmksD5ZNeXZpQ#mwC2x^Q=vIzBKE_gBR7$tF80! z5Y+mB%Yu;qe*b%>GUDH=_f9{NLJ}>lfo(%`9PyJ0h^Y6;R|ni{e;K;eg5c7BO+WTB zUD)+fY3aaCt)8&kqHAZ6V8GK9bC%JRGZnMn8ObxyLjjyVh+?#aZ%=p=Aa zp78^RFKs@t=OC48DNPxp-NP|Jh8Two=y+$Wbq3h*z5K?qsBDPs#R=g-A81b3v-xmp zGwa?UrL2LP3*_ES>26y2i-Tc)O0HuFK?@Vw!H;SQp*4C3h^FqyIxh74-qzvsT=T@_Su(qP{?E*dopyH$XHs6k-!LIUp2c07isb)AQX{T|$gp&cy%2ZV@zTUa z%bg2?=-iuK&lfv7q*e$TZzQx@pU!1Hk1I_d{aMSlLX0kf)2$wTQN(=DwA(A_V~iSj zx`a9-#YpV)VMljH8BBeD=_@}QVGmD3odeC2DOA{ahUiV6cV)N3WDyj^2lH@pp>u_m ztr9&yBS(umeZY9AgcIt0M7gv>SE(+tbn;pUebu0iQii5BcCmwkBrfem6-!JA)?EWU zy?3}N#T^#oi}^``A8Xi$>au924zqlA-wC!ipc4hqr7)LbGW><;p4cLFk7SOCO=}L> zrmFUaW%99q^u@GDh^<(Bl?;~v18IWar#{iC-$!y{^O4u$QYSjQUS%~CPu4!H8|0SI zX@->AhRH_G-W||s5`WKfG&}(2i(x*-@Z2&e@nn%yyp^}!Z3a3-bzn?Bf>__ZUnKNX zlR`F~;rR6>DjGxgs=(L_5ARX6*1piGvg|m_eDSVR*)4qkpe_!fzDF!rbd&FCY7BEx z;5jVa2Z1N7*VCD(TyiEOaB>7$b?D6D88p0{R4b%ci( zbMRk2z5a_N@U2@p@m0J4@%$_Z(gu4`Ta85%oiDa$+X>s*ym61hk_VTE znJ#>q-GnKZ4Sw?U%zmn;$8}0jd(nZ4Gfb@kk_{;o2t&DyX-0m3dygB998O@4yfez+ z7zOX9+9;eW>-93Xrj#0p@gsWaY{k9aJK>(*#4Zs-M|AV%zEgaD} z1zBQDl3}8qtWF+4JK2@g6-H)dH+8$Nl$(xD-NxpB#(In?*x0B;)jZmZ~S0Zl?KywWq9U_;M2)*riZ{BwU z689ZlKg8o_zNcu((PRI(|;yUS2~tgCCeb}z(!wEr|?j0)8`4ZI%scdU4%2I zBm2bJpHym=XxIHDKzS*aG+5D$2_NNl>%;X8cBjC5O78N-@BqWR(QHf|Rt zZRDTkmY~s_p|Fu@(#Gy@1O@}1#-=qel~i$ul#K3nj4 z^(xbkd-a~bS6XuX3|0qK zH0;If^yQpZUaEMxF=^BoTnZ(0q}{)ltF&;Q**|_<`;;BvCT4Xu&FwAFqw7C(&z(P9 z#_S<`sYvn9duo)eSz?D3*q@5CAuhq&CZ5guyogc8$&0WNs0Ppjf)z(TbtC77$wGMfBE|H92a{n(glrVkMPjPsB3M~3-6 z12|u5WoPl!A{EL}2vKZFOZrsa7nGk=JchdRi^Lj1)A`85qx_s6D&42bC^O0C+uaa+ z8zE2X(pufMpy^c%BO42v{P7UV1P!AL_>|b6e09`4`HSEn&tgTDuCqsk_|5z$hInrm zzLrRjH3_;@{Eb0q3yfx3t^BK%O|d13Egd&jS)Gj( z!?G>0=6Ma?Q(_gm;^wXefJN@k!$sq-bA2E9p!;L>u05c}yVSl|xZc4!L zc(^-clmU6TPn_T5cHOx9i$vz26`aC0jQAkqCm|5Ef^wTC;vzvdm%BYryeL48=>C#& z(4O|!TbwEt5O32@{l`KO*9}Rq5bk)P2?Rbsc5B3w7GD|La`-diy_4i{5nu z5JNHtZIIt*rBJ;Og6U_%JOcLmj-jtibs@!THBT3#ZfdQ_^$r%|2EN23B+nzOzYa z14@ekl!d?u3dnjz_N7or{JpwIU6e-BH1ftqkIyAsp%5W)EDT!jK8fNYO5u$Mh!S3^ zgG5dX7rWJEHN>PrV=A9LJ4J{pMo{f`+dKCHq5r&J?Vap7>Ww6d46tmVc;PM(`rgQvLa$FP7k;rUa?;|fNEO? z%`zty8kUvMji0}H$DNC^e5y_gn~75~lVXj~eOf{D==RC%c?@)~2G+{Yd}+3uVg>G>oPg@7sZmMP2mN6NaFmice-3`nek5?_`R0paIKL_e zQVV+A3+%NGf*)kvmR}~hpm41&5qk;8fq#i5WJ{C3-gUq7)j?!RC4fU~k8vH2LKTbP zskdfr8$WD1Z?U#Y$P{D@^9y#$Hx(fjcOzNw(u8Eh)0A)&TS01-zlt}_LkG$ylUEFp zILd+HT{_$y5IFBjoyVUmFCQq_(9s{JJvl7GF2!8e>B2iosNhp)!{;!Mw{+e2-J>DFjdJ{ndy0-#2f~sN&7mIpMouKA=Y431I;}N2u2j zHsN3^FTFJB{n%4in=LMDak)I@MN{s_g0O0Ue~dL876)|4+bPc8_puivvDk1Aq9}6B z;d4AgrZmepRs+8?T_gxnkBrEi71uuVvC_OUSG9L+Vw!2$Y^}&uB1d&ev!l=ct@Qz& zy-nOhpN5pvb&{i9lEm0}mpsiwSC_R*O&*EP%V3lMY)qPXb{LZ|V|>7roM1-e=!xdz zE`MMw(~Y^lpGp;7viW>!i^}raFsmloa;WAC2G(puTd9y&@Z>?%#PD|q8AlT#u8>|O z#)eaLPrVzKs`z2e{mlU*2-_vh30|8!kEO!DHF(V-H#Tn#Ba)~Q+Q zrf*yAtxA-OGVip_@$Ql~!fAGGFB-`4*EY)Mk+UzM;t4P@v{wb!0 z!5Y|$oKJf5=Tj_3wY!JDoL^UrQRt5oX8lNOsq(%ub)%cL5_^BPBb&0rl9^^Lb%1mx z^UYnoX2c9Bo_CzCuiD;~CW^$QTz{tXgKB$_w<`3P=5_gHTDd6&tzrBA0=z;>e@s*%d>Lq~HsUTfd znN-K70RjsKpHiALG~G#N1u#vnaXuZa*9biGKdUGHIr4n7_M|bBU=G4r_wYe9v1lHa zh~C1g`!E3KE{fU$e}@7#tAKq$^qK>AoF30R;c$Hdz(9QvCwBG-v;XUFs2(q{WlB## zqh^g}3|%sQ(jxLjLA*U8f}pBrpYp@a9m_q7INS~;V&Uivh@TIAH{SjDBKSRH*B-@N zhWuH6-cTuw=-5Qn0HfS5`u*K6uv7S3ATmBiOj8o+e(KRC)bhm9z5usl9oO;u+u$N+ z72QmUUci&pU5+NwBHw5(=(YU0L6y<#%KWQ3#F7`N-@l*$mhaq+3>3c;TixdS*9gPHf6jjVk#ZXqTTqtRMn@q0gn|QrF zkCP@@kfl@g+9!89GTpf%=y{vI7RqlkFNW$|vB8+}CgSDtsDhg@diNXscOZ?m__RQb z?pR3DnLDGKPm4TaG!puFU3Qh0Jg0K!?(&P@G3O#>+uL4l?jGZ9BGSLnv`jbG5tR`W zBgUX%EvjSHT0?A>%GA>5OgZf&fU;2#OkB=ccdTvM*cgvcxQ5EY(yZ)>Z4Y-Q#o1*3 zSTR~%jKU2s2HDha1uz;@3>dbgdqH-(o2X1tl^wW?xXHOng& zcosXIL|KF36fi88U$pt0ZG?^#C=;7w?9xWNJr26#VJvl*h~3k)b$2W<=02x-xvTXU zcnxVeXuETrkW&Jq(ZsV*fOyV^s?vBpe{bpWZkE^)Ce66Z?u;CY44gjRSFBCeUmEQa zO_pMPGT@{zh1(uyzK0Bn1CbtW`v%XNDUoyY))Cn@`*CP4jJ)9YnTv82P>&E2d?z6THWQCJQztCvn2&WCbvp0u%L}a- z%WK1}i9+#5UI;>{l(5&y0dDc1(fq`>VJ>ikD`xwk83YVo>CPoLLLbk#V-((W_|Dtm zu9*ua2VV3kIf18b<8R4Jn13E7DOymjin%w(y9hdLBG-72Ls$rWSd9{5YxZXDE0A4{LBl{}2 z+nk}hrcEhhl+9BYlZ7qcxZP*e7NbLl=WkAiZux%4xj;wFiPzpd=d58ffXuP-ws#dt z+`N;J9_;tdwEP|B^6>_RvlgPo2Z&ktrpza-pJ-}TqV%o$v1LE+aPR0(*e2D%=dvMc zuAaj?ynu;}_srXOycBU?1Fq#INXYP#o(+CpR`;Rn7u_2YMDbtCF2KK?VfsQ9C!?JMH!kXE3!m- z90uRRT$L|j?iujy_Q+vjaIvkZfFSI1k8ZA@`4+&vTo7$F`t z6E{s)$5&fWJ-=vs!OTY5`Wfz!e#8Y?D8+^EM|Z!jQJ7~{XJu|;avFg5{kf2J9H~FwC?)Z$@0y!FDv1=>uLs|Kp@&R#>T(;Mksr$2SsIRp123PG|ywDad+`IvHYK#(y#(Dem$}z<|j!xFHMx|9|)2# zke-bF-=+Zl`RxDN$+m!|4R*eU8AGp-Ad9hyBl~1~`m&0AldI=p(y#z}oWdA2ID@f9pES5jra0p+l4>nstnxw~~qfAZNi zsYi7Ls(E<+bjdQF+O)ZjUc`qB%YAFW>di9lRLVNZ`fI5{?ED;x%q^vXDen*AQ$3=f z9pZG|K~iYwm1Lj{Mm9U`QQT#XqRoYimK)Onh|-tH&o$cd18>aUkSQ#HjVPa)9}O=0 zj;Gv){VXJEO_(3;B~6_~#c&^}?m~AYq#H$9ek5duWTd2Mtc$vaVGfPA0+W+824PVI z8ZU9|4q&ut$6I@z@ZKWjQSF3L9C4}+Z3@g&(fFr$5KXzS#vbr_w zW1NBESjin9c87cQ)5!>kK2c>Jl{RT1F}S_uAz77DwlHBGvlRTG{HFz|79qhlBtOKFK;b5eFK`LRQsNTmLg`JwEev^KO3 ztRO8|>F$Y;oo;IUy}lA%HoZ(OirWh8 z&+8syb8+e`9w(J-P3*Wo7?Wg%5iEB+fs*pX9D=@!!~4@aY85(_(?091miuAMIIsl>x|ECsP)7IMy^GlO!parbn+p_HtIJI>#n-kEV!{0mIIpg38d1~{3Iyo-^6d=Tw)U5T9$`LuC>KfR#V(_hv$=tG75GzU97 zDF=<|&r%mXHM|08v>lr|TazH^j4z+D-Nc6A9s2PK!Vl#Sm==+gDvZq~l7Az<_qvL?D~CB<<1jwK6*BL4 z!Ezvf>sf_b?^m${9PzBUDPj!hko`<*F44tb+jWqp2RZg-fj{37Wj+&HgPF`VG$*cSh?_@n~u_t~S1 z4(DA94O@8L$gaa*&3%QMwYPq;`cY$KpdD6eA=@$uQjAZNTe4doi-m39lq>pdayG9& zerHMfcsOt4QnDUNTfVvC>x@lWYdK2s$XJTydpkVmqC=LPZD~f#ql%T-Pk9c5cGF8J zGb$=K{j*-{=@(LG@1G9$u?1VNWbfsBDC7%&JSSKtNB&N#^l11r7WQGONPS^3(8c*B zR8Y)VGUJ7M_n~$XVsS?bhfTpLx_LGUb}$*{MU&VCx#N|6ti2u)(!J#7K3**^`S{5< zcveLe84r!5wh%8tN^We7F1)ksE~UEEbmG=H6_kK@gZf$_(9l`V8-wkv|q5lw-Sv%5ByWk?iaHHy`A z#I?L^B?4lB#F{tRs@Ktc!d|=I)Gr_hj-ehYTsiV_p1CtjinK2_21;3-x{M3hXR(s2 zp|9W$UBpI#vo84eDpdPs85aaFuUDbzrbEuVT7X-AhB2zwDEFXOcvRuc-UV|uLZ*PijY@sB(#KUO*2aW z)+h~Nb)%0)l^H{M@&$eZo33iNDX0mRS0UDb?QN}ATzPt5v}eL`x2L`&tFQ&4>@;q46x2HSh#38jU^`K1yFtrMyOnO;7cUT_mzWia zEX?49Kg9>H9>{HZNw=!7alCkO7MqSzV@8%}B!+Bn9j=VHUa!xoPOMsP8?3cdMf|)H z&C;vC<-e#FxMpAwxC^RXc9cWGk#UwPg zq4Agfi`1p9%7dKkBzn+jUJC;}WX&jArGRJfV8Uvz72K`9U{#o)lDm)kDu2#G9H=oq^EQrNsTfWK#|My9TkShieihwuBG|mV0 zhe~{*9Y$Zkew*Ljxh_||01(#pb2go#1qU<t)=Xw804 zsS*Uo2U2DPI-t>hiv1qeU5CS2f7qDTSbzD=jUUtZ9eUomx~4a&N`fS|Gxge#!LD(* zO6RQdmQ7;3x&JhB2(yDMPXQA?d=Nm=-ghzAl{U(~*F>*;8Fe#9PZcq*oNTJNAYKM@ zLMdkm$AK5f#@dMs_=V9F;P|3CA5r3tw0)25$IPurzLP=$