From 70e40e42426657e5e0176c15fbf7552a29e2ca8e Mon Sep 17 00:00:00 2001 From: zhengkunwang223 <31820853+zhengkunwang223@users.noreply.github.com> Date: Wed, 5 Jul 2023 18:43:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=20rabbitmq=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=8F=A3=E5=8F=82=E6=95=B0=20(#199)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/apache-doris/2.0.0/data.yml | 16 -- apps/apache-doris/2.0.0/docker-compose.yml | 41 ---- apps/apache-doris/README.md | 20 -- apps/apache-doris/data.yml | 19 -- apps/apache-doris/logo.png | Bin 60134 -> 0 bytes apps/erpnext/14.28.1/data.yml | 9 - apps/erpnext/14.28.1/docker-compose.yml | 221 --------------------- apps/erpnext/README.md | 21 -- apps/erpnext/data.yml | 19 -- apps/erpnext/logo.png | Bin 745 -> 0 bytes apps/rabbitmq/3.12.1/data.yml | 12 +- apps/rabbitmq/3.12.1/docker-compose.yml | 2 +- 12 files changed, 11 insertions(+), 369 deletions(-) delete mode 100644 apps/apache-doris/2.0.0/data.yml delete mode 100644 apps/apache-doris/2.0.0/docker-compose.yml delete mode 100644 apps/apache-doris/README.md delete mode 100644 apps/apache-doris/data.yml delete mode 100644 apps/apache-doris/logo.png delete mode 100644 apps/erpnext/14.28.1/data.yml delete mode 100644 apps/erpnext/14.28.1/docker-compose.yml delete mode 100644 apps/erpnext/README.md delete mode 100644 apps/erpnext/data.yml delete mode 100644 apps/erpnext/logo.png diff --git a/apps/apache-doris/2.0.0/data.yml b/apps/apache-doris/2.0.0/data.yml deleted file mode 100644 index f89d477f9..000000000 --- a/apps/apache-doris/2.0.0/data.yml +++ /dev/null @@ -1,16 +0,0 @@ -additionalProperties: - formFields: - - default: 8030 - envKey: PANEL_APP_PORT_HTTP_WEB - labelEn: Port - labelZh: WEB端口 - required: true - rule: paramPort - type: number - - default: 9030 - envKey: PANEL_APP_PORT_HTTP_query_port - labelEn: Port - labelZh: query端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/apps/apache-doris/2.0.0/docker-compose.yml b/apps/apache-doris/2.0.0/docker-compose.yml deleted file mode 100644 index 4ce42cd2a..000000000 --- a/apps/apache-doris/2.0.0/docker-compose.yml +++ /dev/null @@ -1,41 +0,0 @@ -version: '3' -services: - docker-fe-01: - image: "apache/doris:2.0.0_alpha-fe-x86_64" - container_name: "doris-fe-01" - hostname: "fe-01" - environment: - - FE_SERVERS=fe1:172.20.80.2:9010 - - FE_ID=1 - ports: - - ${PANEL_APP_PORT_HTTP_WEB}:8030 - - ${PANEL_APP_PORT_HTTP_query_port}:9030 - volumes: - - ./data/fe-01/doris-meta:/opt/apache-doris/fe/doris-meta - - ./data/fe-01/log:/opt/apache-doris/fe/log - networks: - doris_net: - ipv4_address: 172.20.80.2 - docker-be-01: - image: "apache/doris:2.0.0_alpha-be-x86_64" - container_name: "doris-be-01" - hostname: "be-01" - depends_on: - - docker-fe-01 - environment: - - FE_SERVERS=fe1:172.20.80.2:9010 - - BE_ADDR=172.20.80.5:9050 - ports: - - 8041:8040 - volumes: - - ./data/be-01/storage:/opt/apache-doris/be/storage - - ./data/be-01/script:/docker-entrypoint-initdb.d - - ./data/be-01/log:/opt/apache-doris/be/log - networks: - doris_net: - ipv4_address: 172.20.80.5 -networks: - doris_net: - ipam: - config: - - subnet: 172.20.80.0/24 \ No newline at end of file diff --git a/apps/apache-doris/README.md b/apps/apache-doris/README.md deleted file mode 100644 index e82d4c764..000000000 --- a/apps/apache-doris/README.md +++ /dev/null @@ -1,20 +0,0 @@ -Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。 -Apache Doris is a high-performance, real-time analytical database based on MPP architecture, known for its extreme speed and ease of use. It only requires a sub-second response time to return query results under massive data and can support not only high-concurrent point query scenarios but also high-throughput complex analysis scenarios. All this makes Apache Doris an ideal tool for scenarios including report analysis, ad-hoc query, unified data warehouse, and data lake query acceleration. On Apache Doris, users can build various applications, such as user behavior analysis, AB test platform, log retrieval analysis, user portrait analysis, and order analysis. - -前期环境准备 -需在宿主机执行如下命令 -`sysctl -w vm.max_map_count=2000000` - - -查看 FE 运行状态 -你可以通过下面的命令来检查 Doris 是否启动成功 -`curl http://127.0.0.1:8030/api/bootstrap` -这里 IP 和 端口分别是 FE 的 IP 和 http_port(默认8030),如果是你在 FE 节点执行,直接运行上面的命令即可。 -如果返回结果中带有 "msg":"success" 字样,则说明启动成功。 -你也可以通过 Doris FE 提供的Web UI 来检查,在浏览器里输入地址 -http:// fe_ip:8030 - - -使用mysql客户端连接 -初始账号: root -初始密码: 留空 \ No newline at end of file diff --git a/apps/apache-doris/data.yml b/apps/apache-doris/data.yml deleted file mode 100644 index 127ebbe89..000000000 --- a/apps/apache-doris/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: ApacheDoris -tags: - - 数据库 -title: 基于 MPP 架构的高性能、实时的分析型数据库 -type: 数据库 -description: Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库 -additionalProperties: - key: apache-doris - name: Apache Doris - tags: - - Database - shortDescZh: 基于 MPP 架构的高性能、实时的分析型数据库 - shortDescEn: a high-performance, real-time analytical database based on MPP architecture - type: tool - crossVersionUpdate: false - limit: 1 - website: https://doris.apache.org/ - github: https://github.com/apache/doris - document: https://doris.apache.org/zh-CN/docs/dev/get-starting/ diff --git a/apps/apache-doris/logo.png b/apps/apache-doris/logo.png deleted file mode 100644 index 8048f0e1bea6d3abed54bb8e554ddf0cdb2b227a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60134 zcmeFYXE>Z)+cvBW(G3z&gBS!6EqX*vjFJ!}QKB;zo?j10td_K$`F_@9ZEt&3!2{A9Y?8m0l{n;jmTho>Q*4|-1tgu1F1b#65hQBI04 zAWR65pnW)a+w0tf3cm3pBO4pru-&W2%Z#nx87UK_S=p{H_^Ie8(e4^Xk_$%EZA_LX z-OK&((2)M4Z%J-G5gYhn@sRMl>82$$XT?C7%eZ&wNUy_CQvBJVLH~Kg53sYG4X>HY zf5tUS?X%JCl=$c42Dd+-vSdp9`E2e+I;4rIXGy@a%UBJ&9n8xZxAiv0jx%GR zier*f@`bs3Vs>=~r)$O^Cb_)fK9qE%{3_eYZqQ;S6W%3rRgxDavGVqN=3HaK8TCAh zomt-akyM9A*1_0=+>%ZQE2O=9Yg($3ee;`x>^AK@|1i;D!HR4a8#QOQB=gDNV^vZx z>8l%qn{~0@W9;nAc>boT9`O=w$vxH%FH~K^4xl;_{um(A93vQf3M$M(>M%cJ|^Ie_L|srmRgMVE}XVLo(z$ z36H@uAG-sf#ISwSLgmrR8nFFG@MhW%2nwetwB^Y^DHB^1tbWJe8`Jrc6M)^;?d zcKRK2x|#`l76+r=YYyA1$4BfCzwVH>Jx;Y22{~$>&Cl$PdvooEaGh1z&AwfV1N48` ze76c3b{lUooZWgcdB$0Falv`8W_UVL=hCmnwL{GB!$tf+0TFL=d|EKS=V^1Ox(%!R z&Z`vXi^|_Yt^FeI9_e6qR7mR{r(gL_7k2Qt!%AQDR+iIyFB|v4xv8f4#uq5qNX;L2 zw0OJ1y45}^4#-!?%CmQMRxxo`hV5P?p$dq{q^0o!LMPUv5}WS@bDvaRn`0kP@h;d4 zuS;nJwyLz*n0J6HAZ{%ZN{Ed+CsS=3*i0RHtR&}Tw)sHK*-U>77SKC67;gj5b>em& z%9rbDs@${Xp3M5*dvh-a^J|>+Rjc55d9(TA@ZiEmt}oVG&D(OgqOO%q7S-xAH?>)Z z+ig(gamMa-HjzFs6N|&v{PAeDUCPCX?9-%1~lhhM>^ zug3b$9hQXdUbH?=C?Ieb98+zC=3qmH(9SSR)F7b(+cRkH8YBW6?%M2?n|!qwywiHg zV^7K%_td$yy}}%`WqF7pNro&I5Q#hThvxM$vZyI8)YU&JV-qDOyIcUZPR%aO(g zZX6Rv!Zt|+kDEAe)W}vq+vL+l_GEJuN6^sVE2sI2l|04an**zZL!pmQ?ylS3Ij2ug z`xojPJ%ZTRzA^_No+Gv{5-dqyJ&x}T^bCeHn*TYywF#d&$IdLbI&)=n21P6}#2o+B z3B|o%J6G?kvNl-5eyBPy>z!-9v6S`wtt<|Aw<6oi<`OKqb$EK<)j{x3SI9`07qzRz zA-ocGY0)2tIgkt<3H#L?x^ZqHY;TM+=_z{C~iu9m%nui!yCu!4gCS#R7`*X-;%92cr5yKXWG<(vaN@|Bp^2#co? z$BCrhJ4cj@dvI&zzYnB4)2}!=B_$*oH>#8zDtG%N!@iH;hf+urmLBt~b{QUGvTJse zA(bm$%>*n7e@GO;9G*%gqu{P)DYErW|1w9poNPXNrESg6#+|{{EKc<*5oc+0qCosP z5=uOl9A4Pq2|5+_hNCHl}RFI7k4I68u$Rf%u#6_+r@Fxi&aE z5L=D^0xFwvT-3D}K!(#I0k8 zu&o{9{u-tsS1yP>`6BGkiT&uws9*PiW7N0r~EtvfsDdk&b*a5#86vGDIzaU^`gz#-- zI0;ISjlLly&^8Sn~U8~2r*zU&$I6)($;hMf+yS^QR2jTE;IZh{QVZLZlXab(b)E~BHDAdZk{*a^ zltp=F9FBx;SHMYYq@T?AvPB}VD_ZDmU&~YIGcOI-wE9ek9fciF_Y#*b!msYYTzQ-) z8;82QCM`%GcTOYJjtPs^lS7i6D8MO%eeAgWHuhu;yD<`av=XFtGgn$+C)9N^Y4>qZX!GJE ze57lz<@czw+V2x*=WSQT3ar$|Khw=lHVw^@#tVq&3h*(NN!;#-&8@A#ged2csFkJ7 zXB{i(lxN?2)pln~7PuTZ*V2Ab!TPtiE(LqY>g!XGx2 zpB?wC%DpleFi>UKuvzk-rP`oX;bAK;Mo34_ZMN>NZUb}4Sm}i=ocCet7Q9tz0A1gT zTk%e*m^pkHw!BiQ8szYI(qr6$?0e|rWUUp$mP&{nUVO}o+pYzz*1xYQxT8`sC$CnR z!_3!026qE;RAnoJ_klSv(%y&SJ&M$S0`i6`mhEZM_ZU^&k_YBEQ4QCVGuah&I%vKj z-^JU+#$ zKfd}?$?~(d60)`)^5pV`5>Okt*tyAhi-De8Srq$l7$O z87cq~80@-XR{!wk{$|~jn)B6v3_tE^gPU8Wx*E2(hVk*1jWd_+HLu6otx&G8OXvW6hxj_r}|h#SN;Rdn@v%0WL$GubeV`7kYV8>Stv4 z`gICgaVOle{uuithd)fQJ7@}b{VJBeYfzDoIGA}jGaMi07?hDw0qDc*y_uao2RK$YAW6~U3T-a z=6|fyq60VVcAKkmS36i;QTB!<*vPvM=c_U&$D!7!Qm{8yU-FTZe; zz}jTCH>!50!icCfdDj9g&#pc@Y%vo%Xjb19qUs*Bwf8eFY_-m?RcSl1TH;R#S=XsD zqK3EJ2Im&n?1qN2zYAMiI4@4#Ty5i zw^Q5q*hPG!f^#))h0AMZWd0Ccf6#dqyMUWb8Bwi)E!q$gQZTs97uA2_{mjxy7jXeg zgHKgtneT(W%}=u9#jHhP`Zim6a7jSro~Z|@@J_FsYon|yZt%unlyA^?0E~hN-aSwM zUeF@Wlt&irampB^R8dz^_wiv}LGupW13)2k>sB3KL6GB68|H+KFKlau+u={`^v3|H z-#Y0zxoJMhppRGXf#Y_^Ud6}_T!neShF;ad2r~u2IKfKHQc~t{LsGWN-!U2FX4u_% ziD{Aaen$xBZY~*Ep!uZ5X~o(pOUlM*V4G?%(Tg~Q!G)Ov{FhTQN$}5HLg*4F@6fe+jK>c4 zDwfqIXJydhtZrc8*TPP{Z2}GiD=X_@OE)h~{V6%S*Q!-7#HmV710?rmz>S5~3KpBR zx=Wj?&K|Bq%9ot;W?ZqWA!_)9g3|&uLgRN&%S(R<{jPhpDx-tLkVW$MbC?w@rbY)( z@*KW#;}XicVJo|}clR-GQ0vK(VGHqNy~N6&qUfIjfQR+;VE(~T95I{urj+ck7gN_@ zZnms9$L_{V&=CB++`ucWg=>Z!c2jO4FqGsU_S;1E&?zOehm&C?hEw*>4%_+wsC>1B z58LcuY*_FOSvx*lJH;?Z3X6bp*@Y6;-`;>!5Bmf_Be4VE{M;(63VQ)m z(rofBGOrPBRpP2LrETOo|4y48G{?o)@328DrgZPGNXXJ(T$+~xiV?Yx?r+2}wNnhK zFZDIGQXHB8@NuiP`q;RV>m3X zQd5TNpAjOQ1p!6Sst?z<1@=!o^w~5`ya&99iKgkh_f~8_Rb^+fO+3cP;%mGz=u?sC zm4A(OwGPM2RqCROr*%3$S5qh;e(4z?o(hxSqliGZysEXlh&hxNMuL;Guqe; zgoUa6&MhCNgxtwQXb;H0zIQ%J$Ns=JqU&DRc77b11fmyENT;EpxM%dQ@!3C8x6>BH zF)AB0D22pJLXe|6Zxr^u+?z`G-ty4V(L#ZAEjR4(0P4CDUp3czxa|>pRC%&#i-2ptJjz7(lM2)Pr+v+wYxL~?`ZrpNVLKV**ztO zuUT+s$6^w}f$KzK3mqSFpWs$_AFo(s0R%L8?rDdXuRTM&P z2i5TXA_^Pic9@lcY&t2WfQ(Y8(tdatM=~7Bw{6BY-JMGY~?)#DS ztLHjpPx06A{^#mB=&jqd8eQ@KL``HH+dlKSl!QaOdJS`$3l3^vNKu?BzalK_e zJ#qQdjb1Bhvd(waetyy-9bkfo@b!a%-|ZqON2LUWKn_meD{#W81M%Z8L2M>GV2&f9 zA_9?T|9W!!dH?w&^WJKc`EndC&p_$C8;JTpA^XrVr_KJVW0J|q$>)@|-*s}>(B;`? zm2Gw9@}g}>T-$F1{V?gF2*!z8)rA7QVrLA3aDqs<47tUifadeM%VO#LSk{ay9I`XC zEX3a)EkE94WO%_4rvGe7jrJspeB6N^jFcp8VB2clhLZE-e3_)wZ}Cpgi@nM4ziCDK z;f%r9ACYs@a7w$U7K=Q_58-FLnG5J*)2qqFWkfj&=AZIUae+CYIqLs};`#mT*J|;X zP>E8u4Xdt)!9ibyZ`BKzU8eQlP`^MPeSd|CxTEi3Dcy1@3Rx|SVCSTufZo^wOWOF% z?T$0Yl%^Nz=_q>|NnLtbT{WFYNfGg%74y-Z+?wKNil`#2v#ES&B3dW9bI~|E^0Fi} z*9f9mC)B?VU;=t27A-xb9E8;`zkw+*veER~K0bEwUS+!bqrc3ml*x&ou164&$J%9h zBSwlm>wgAFVzRcq`ueNN%AwLb3Wb#SU(l9l3YQi#`O*$##B)g=ck(V;*J&grdK%qp z6fjV5iYtyI;gVLI4b`re#(ci!|Ib~3NNBlfX5?;Fs+SO75{4*wsx@mWDzF!ITKF|Uf>_6IL9SwBN*TRlr@|x&IgIvqD{`C@RJUd5`FF7JC~Bysf*gw>Jwg{UC0iXH2k%eUw+4U+*tagrK=+*&BTLT*GoN*XEnZM%RTnswMEj)4vMsCO@7*c z+MgTH z<>yd+$lJ~MG42Va7V9y%{cDQ54HLR%B7-JR{C9Lv3axXaIh}HL2c!xb?GNf>r^dms z&2*Yunjo-kv0wT3#AKDwlfS?(jZJ?*&oR;ECvGL*`!&my|58?mIIxG)raER7$#GbO&gM2onKV6paC zGd^<7{@#j7$_<`ApO<#+NiV;q&SNiO8{s+lAHH2GP0dpO)MKi1MxPDc_BtW=U;Y#` zp?%c0pZwR7uP}!o<=s&lS{51;mFuebdS@QBpc6Zd3);qSo6g_3Xnx_9^sVC9WJ-sg z?+I2aZYFCdyoT0+i$f|ut^Qx`I$QMaC(}=+rJZt3o6q?w%o_8hS>H*S=jqm7Zq2b{9;HSY-jJBFEZUy~H6 zrsY5@sjs=FIAlH|B^PeiK5cb@j6n0#rUk(lBGfVF#%9WrIgzx+tfu@ZHZ%QS3E7pEr- z#_}W$T2oWf_9+TMs8N|pX4BMed$J5Y@*}XE0*9Os;M>rCdE1-q zwQ$*9s!Ugb$VGtrh*bQzD#lOzlgT#LKB}`;elTk2hIaS*s{1I@#0IrId=6f4}u-V61#2V4M+QoAgA; zRw&ZZqQs)@*9#GzXIFkeg?b{iSgk~nx_$C*CN3YS4J&qb#(sL95k+8G=0uXMoXcO3 zsW}x1=lUU~CvLw!>Z`wvxo_+Q5*>(-yeX1!5B)54rdX&?{wq6Rc~yp<;w5%lF512; zy4MXl=mq=aZ7q>nG&FC&fdxdRAwBZ8<5hPCfv9Bw{M#cBfk2Qm`bfAs63!$;KD|m-eaG-~3NizZOO+8&zYSxK zqG6d1hhPziaJV`ve?kVWsm5odV@`fF2r??A=t(2RsEZch=XcYeriRSG3O4{Y*l=4v zV}TamgLe>%^eW@I&XYX&x<5dLx48ses3C?cfZ zk_FlIhU~f_ADeTWqkz~+$!Je!RHaVqpHDK;{EP%aDH84p;G`lDU`^qBZgcxzdtNZR z&s7~qykORyoksQf-M{Z^rC;;-*cS!k3E6kOyuAL#M%JMx$pO~pw>tQS(@Clhp&l)f z@L-Is)=eK^?nuS;m}oc<6B=V|`7_lU>D7O2*@D~ ze0>b*rr*hbVgT68lGRoPf<=NEu}CUKFf#4@7c2k8dfx$Do$JoCCj&H9fd@ZRQ{ma1 zEWp>@zd%fUJh`fCM>K9D`62jy7ZccEmbCZkXgHa)n2;w2L|X669T4FrrZi~mitNJ* zYWCqU%1-_sD6PQT1b$j66QDlb>LnOzxlZ0Z_IYbiUhATW$TomT_sdJ@${l-HdpE=| zXlj#ncuU#p(?wTF)WW{8kh{DS8K-1Y=yjdZ`64233;ADb`tK~(3m;JUR}(aCOvrB|m9K0K=P8w$yhzgY_# znzwS+{+zZCdIM=BpGH3T&}3zrE!r0gjdA7+o2%f|!93gErC-h4clF4Z_3eN6m{y9$ zk}>Tv8DMI1w2-s_)IOay2TbTeLvWs-k;wBb;V(cGteUL0maGz3q+$TH<~^e0Hl4J* zup8t&fZJ`3mPmLV85ZdV9Jho7IN|e6D<9+zD=ZFL`4;MM+jWOGt6We;$|g&(5FTXs zU=j_MF3lbK#aAI@yez(o5h`;4tZFD%$pM$^;5>XIa5z^9{z2!PBlqtHsZe7vsZNt}A4|7ElBLbY1r%@yupWdbULuBit!Xheg zLmnEB=p)yWY0Sz1lFH@lmTa+2_18NO9?l3ziN?iDOGZ8Bq>r%MJ;a=c+JcKb^H}Ug zX&i!<-r0~k6mp+fvQiO5;c~#vt~Gu$+_ng+FAI?FQ)M9s$OX0}KTu2$%QBrWy;3LZ zJXEFXy*lUsYl+Q(19=8On1m%`JAj&1MNZ)9jB*Lf+Ygw+4kwqe4?eWO59SZQlAU*l z-c5?K(MDRbkOK~8oX&8xd_R~JKbR}$I$2hN-#Dhf8+dA7awi8T2Dm`G3k_*ULx7rr z40oCe{{GWx;C=M-P#HzV0|^geozF$qr`ww|JFJZno;FS?WGW)x{F|o|?@f zu1}z>e9*lJ-2GjDhipNf#0X6JRF7PMJVHwD-W`A97H2PJFUNKJ*;A1#cq!(Un;bnJBuy)KG?=5G`D-h@d3h=;=%w7I z_kaB=$C_l_eA7Z)4MV)SH&qAWxt_kanul-7))@kP5cy1`_1U%?6sQ{LFUwyYQGr9P z;t%JUvZ`5vW}y4BXFDl$3UqH++VN;`S#R3#n3ef`ohioU3S1|ew^sXQb~HIQyr`C3 z&aFK=ue`r01Ee7+bZb(SHX8Zh$suJ99{|K}6y^f-5hf*VPddsA%K>W03yVC^Z&7&r&_{cVh zoh8!h&2t28YD*~ur^Wg{-cz4-+ihY0)9MiO=t&rH8HFr1$o`$7)H`J3*PthZ%raKZ@+`5SbQ#``Sqp;$Wu<;U}ln zF#PO%R;fm38-6S~4P;n7+d9aRhcB0;yBPJ4R!NA$+b2v#&%MdzWIDt%5W0se5P6Dox=BCPhdrI7@6kRPr%f+I zJUKmF+<(F)K+YNzzh(|5bo2bPxTK8EA_D+%$&a`jztPWCJRm03T`;# zswuili$tyjuv4NT7V?E6-+|m9;@2u0U^5TVNjL6jZQ5C~qL0jx>HulP2>^u80{K|C zW+*g^%g%LZUajfdn4$I4A0mt13o461Dz*6%6S6KKd1X?q66S9knyk{?Y#*-*E z!M0xk?n3x(V|9E?I`p8nIq0v)gp6W>MwXxL-8CqMsuV@PwlmW7M9>S@4`eK~*$41~ z7^9@g`=+U0CJow_SP;=OB0SO@a_rGYFJv6Ksh@nYk2EfN6l3L3ZV*VEuds1S(jK4z z592%3JmzNRheG39DSW-o%~Wo23Qc-uYj$YzUMbj1~U&G@CQRiSHz0GV5 zyt(kU)k)Gfr>Sc;!P`4ml{a$VVOnlDK^cnejH1q~J~00El(o@sD}=AEJarZ>FBJ<%4%XLJ3&aht|;b^ZF(DJ!l3uv z8^=i_gfI7V|O?ee$PZtM+|RXWf!Y7wIT@Z`dYyAqe9|P)L(9 z%ckA_?40`&BEIt|WaOOMzD~)Y%IVK{m{@gMn$1@X1{!=|%IoFZCfM5_T2?ni@}8c= z-NcVFa`S1@l26Mq31C^NBvW4tCA6|)e>sN{8)fgR9sYF96wLM%gPtUr0u-qP{)wX@ zY$dAT1ZBuZ0U#Hxv;Zj0GRC#m@kgFk*TxeW@QSgLlw($fp!7I(dF8cS)x%$9wop#) zs>^A#@A{K@tiD7S862rOkI1apwO?mQ*`D>os(GNN`Ldyuky0 zMO+0=@hi?!SFRct$!a|nww?a zarW7?D16DSpxScOawu_gC*<7&BAMoe2Xx;M(a6v@?l9{6Mls483hpPLNxP#q1^%lq z2iokoM8zl^)In5|B@^yZCgI^?A0DCcMO4nAn`5LVrww_mag2JYM#li;PKEX9%J^Ni zwGkq|<~_E4DL=ldCb?*2ni?b!=l0~5#0=MKk+=P~S#4#>K~$Wp0P7}B{tD#kOv+>Z z3mQ*GF*tFzE_l?d*HGBvsqX1Rc%Mf!DRtC87Xbq$2{q~I1_ZO}4)og18zCb=Ix{Z7CvH~K~=Bt|yg{j+x z+O$P=c6(hHNgX;1zT2m<4+&&%t@I1+=&Y@oxX|sYntG>_m|t(%46S`u?q~@M2na|6 z(Ng=OL;cke%FrtGBs=lp;+`SG?|p1n_H~|pA>D?RicZQ8ELY}U3suK;gTMyv!V>y- ze+udE@Nik5i+3EPkP<*Lq}5Vu4H)Lg`g`gC{ASiVUy;j;T5*3IX~X?iw8U8&DFM|AZ>m^!hfIL>n^fvw z&D-XLznH`Jza2Y2@*R3;px$s-Kzdi#J{`h?cxcm%pEA6;QtpaLm496Y2`uzeD5IT9 zSO%XM&LYXS$Sx;^bt(?Rn1~M02&sR>Q`&NF(`~c6O_;DvS6It$qn?jR zGW9obD{;-()M+(N=gTpsU)VVi(1&#<9I^Rkm~TW&A)(^ew)lw`?H>dfsj*11dI)9Y zV7HwaW;c~yk~rNwtV&XO*JgMjUia}z@z9R)8sXxj{n1po3jcSqO)g*Z5-}!nH+{70 zi2<|$J%*4|3?EESM_)c87-@Hv2u&NLOMM`!5cT(cg{c$_u^S#olZCSEmDb*s zFTv+q&O>Hy2R?ONTi#nZ1(-s%l-xEMQo`sZx^th89Q{%kE~M9-VPL2(wFFADD%LF4 z1O!T_hj`nM{Rc^@?R0^xrMdwf#DU zk^6MZ534oeiu;#9V5j5chyhnv8k?MvD28NUv(+`surQ(Zq~D-a0cPyw}2@3X72S`hRCF9 z(}v4iq3SRhMo!)Eq#rCVxrDunc)0>MiH5`@OF%VcC>oMA(CFBELygH&=f~*@&{j$G zb=SCNl1@bF)lQFH=fk@ZfS`x7%ek4sQN{UkQ&5`U1=##r*w@Y!{BA)?QWBY{QTY<0 z>x_TF0|5zcNFD;5zu!Pc5dreLNja=S{9qbTA&D*}`|0Z_5_P>||4%5!SH;f_^fdg6?$nScOjB7VakSAAVuTwCfMhzisG zzf>Z<5T&}FW-{#Brahe3HTP^(kAiwhiP!3qc`=5z8F}nGg~eO5_ct?C`i``l zj1|upi-+y>z2IxzDc(A`rfHwfLPaG>flXqa=Hi?Q?GqvHH4g`oG9(1;G|Z-X$0Jz77jRb9SMMiqbKra;i zV1a5jI&BPl4-sK-9-vYF<1Du^xj2QW7ap{Jd4$tl)fRf zn0g+2dV;HlqS?;lDasmxfA9j8{&9S|6F7{JJfaQ=NP@xWMwCQ})PxKl3oN$vafuYkqcHC8W!cZ=6 zfgnS4UxLllR9?GzSkE`TA5Y7~1ArbDkdADDP`eM3_q!0mYg+WJor%_xNeN&H-Q-Tq z!U*BZnf863D9+_C)Ue^WKbGtm1By%&9E`OiubH#63d_=>659Zer&NJQz)YJxO zgAS`|v0cNjWwl4GxPr0g>wxm10_lM!zh+fM3eD8qdN+LiN~bMUT*5S4DitjNhoDp< z0qMxy=*E<#ZG;3i{W8Ol*bGOvGj6a5 z;X-rCk9fk5ruj&HF&9ZopC$`Fr$Kq7fU^&n#qWi&oz^UM6nWXOsWwau*c{eY$`PjR zSPW+ZVQbweWn#rKcoIOg@b3k&Ug{jc7J(=fdOVX%!w(;C{5Ga$-nwe7iJ)k{eLksx zOBjwjn!89`J>kZj7QsV5?S zmKLPp^CNQeVfb2W;IFWt@q1w8JBD`lQ)dG$jw+YvtB?@*-p^kDtqR}>;vy)0J3&b3 zcFi5GGVY0&td)Gvevh5HFO1F$1p?TZ*e(xdLCJnQ?SzkX_6B#qjHF6lkwO{a)}GlBcg!Yi8RF0CdjO;w)xEk)VOxe2^Tb$&3w z;{X|8ud~!C=blEP_L=DGJzMDi!8(MQKM+tRfnHl=W;&#u5dm_WNACfb&j}(rXbp9} zm!cdBwAg9Z7tH_^0%y^&egjoWVT{cvkaynx zn*JeoHs+@h^)i3z%d0D5yXp_V?r;ByGku8f*&uI@WGS$=g)WAbRZ3(b3Y4fc}M%SSz<{As*2?G%^!9`NW@?g z{Q#m>>uWg;ZNiOyg!YK{hi=4rYf3!j7%uz^s4Q^*LAPZc)9c5)2#t5|S!2npQwmw1 zNNVwG1PKX1OJ8oj4lm?v7wBOyGE|K=0HqzAhHi(wchs_<*PRp=w5q&lrw#|UZZ85Y z90FQz1e>U9#Q36enVeKj@RY$R?XPm$-uPjTZ|M}86cl!J_ZYnwPG(m|8eEsO-sOXY zUKi8g&Y`I^boCN$BVQh!bUQG^Z}eU(jjX*N6>V#aWT>Gfmx&h-ll9ONM&A;;(9T|{ zB{1{h{C#67V>&F$=-?RtbF&)aEewugFlXo+C9C5x?8d^fXJ)}1X`PfKmZpPSX4B(sGq}MDqH*<6gXh+4U3kJ^dinLv{lxge^zPT%09L@bQx{Bs zg!{04cW|A=?B3bQ^%|J!O;(Bs1yJwfrTcni<^9DH?@IMxrBpwfQLDt1N-O{2nH{jL z;OIwNXiX}pX}1^~ivG36s)-i7JZ^0I*I5I==kh#*m_bY+lhWhm=uFJFw<1YuKf3RA zrEuNELv?{3m@XIruAQl{+Ut(IMIXVpKQD6sa8B0axaOt!B|`mRQoB5e0BlF7dK~B! zO_Su-ms9#pKfTrb8u_7ZyI1jUzT)${fR0%geZ}!RjhOiRCt3KswBFp^*0_r|+8)R` z;+R=qUte0AzO`JF$+y?Ph9fhM(GU>&#P6pb?ugKsYko3QC`U@>Mb2m0sta8Nn58+_XKcVm z2DTs1qSNX#n0Pyh!)xN6PV9Q-1kZ#vyrVPjVWqXK2a!2b(uO!5qt7m30fP1q0{ZkC z#7Q_Tsnj6t6*r4@tNQ_G+QPxs4;yaP!0Yfc5jjy+81TGh^cKP(UYJSO=44DRZ6x=4 z#hN;ck8}W%f86UwdKq=9@Do5qH8=Vs&r8SmS!MsLLJRRrN&d;tacdG+1YAIS2z?&? z);95Vf%eYlD3QAy=L~YCn2y%tMx-S|LJkSAi=@{(5w{ZA$&oU$m)%fSXrbMT z@z;qFkWyQVT>GB~hm@7C6!jn=O9+UPEr$w_Gv$lY<74}36~zlJ@S{$a@AGsi>Lg$ zXs=-0@?LMQX9a}%9v~Hk(Eb^$VDne;=Hyzycdj#yj71pTj7aoCYBkYnI zbYf5RfX*(uSC8lE>!Kk!8cvFH0?n_x$>VucPL33EPi7ND@)W%~6%!(;Ngn?fZ%Jo0PYASV!1nALjZj5B^yE#)*=ktuk-?o%($s^Wv?=7QSmXxb>DczH64p zG)&?yw5he`q6wxkbgL=!M2^%6p7x)<8)^sHBX{$DH@;5n(4%2^&Rx8Sb~`4ek43l3 z6VAiVu__o@Bxp_4lsK;kErv`sFC2W(io2va#19!Y1iGeq!WP1J6}^_D*_M2u@y|jI z=f@A<1g*}iV0Pjj0Jq;vCemvY`t|OOB7tn*Bsu1U3`WL<`FDILY3i%jNYd`L`QxY3 zM0m7@Ca!90erAbkuZ{nb)6eN0)_7DcXKu%$t9d0)qsy(lba26rQ{Q&1_;Qjgjowmt ztbTUzpm!ygLJjz(hR0ET& zb?mLfdqC0M_BBZXvzLE-nDC$95M-)}@LP9cyK7#JuSchL+bW&^IH?qNu&8!2N@}hz zdFTf4-R4`u>=!&wH=Eana!B(t{_oAIDG=#qJrA}nu=UIb?$w#eL4mg3G>OW}hyMal zQ~T!HgeJ86WxzhASI+KeX>orUOtbOnTsntLHnrzbgp8(No^f>)g^xv_e*k+82~mHO z{=)f1Ao2c+HH~SHp0cx@0oI=c-)()DL1nKX`>Ek}j>M0{C7T=7Kap`e!8LA$64HQw z+jNm|ekloBPCaEIv~U8NmaPY~w(0-K_jrvjE37vp1SMJUbjhV8U&irMN5fxI5L*>7 zqgiSh6IQ0F_HgaqPT{j4a&7p{JD@rfwwuxbt6RK z(+AnQLySD7qGGy5-xR&aIP33{dP4Sgf=6aN_~h`%4WNvqs1AK-{A;>>BwI3J^A;b5 zw6J4!_+>yi|2mWIgp8I;B150NUc0E0X3d?rbcBCC%%uoCY*N8N_`)r6F zx*Jc9=oh?k*qv9h4#S%{!?}3peocK4XAw&CjFq7x;Ml@Rz9ygsqW$lYfDWq+AMm z%*&Rdc^zmv(V8{ceNj_ALDAWva%LWI z+s3gHo^0lJRqh)(m zJoCnWmw3q|pVUzTlF@llumOh`#L26bK%^*W31&87RS=G?`E5%WwWn~z?Kyl_ZFh*_e+BkJnE z;(pgEwD_&=Z*1@6c&`@8UUj2qKnsRPn{s$^^Xf$mJb#(ewmal;ftADa^GA6=+n+H2 zm(N7LhG85x*TpgWF)BL^PRqKIl*WpV@_ia{5b_6_{0TpcbDXbP?OuWVkwZpronrvH zTUtC|;C_lso{6^IO4dqB^Tse|B@f9)`t$38v!L_iO$#3~DSD0uU_NA|c_H+Ww|-$! zVNH-Pa3p?72Yg!yOmN$CWAPa+W7zw?!5)n95S6o2{@3|#e7qEv|8#D*iz)hFw_~d^ zP3gvvP@2tE@;j8Nug=huL#^gAgRpegU0Sfrh5~`uFBD>UU12t(d)ql@NVD{<%nOLP zgeB%gR;>Wl=5`(|W3`Eb%zP++J~U{n2(^2HoPG{zXQFu$yKkPh7%*S=aA8W}w1pYt z|JbmSC;WY_QH-MsN)-Ibr@VnyyW8;Mwd3|UHH{(IPAUkxtah}$+1w`eU5uwT8=+ld zDlkJOl+zf$YIFA{VWCasL(8(aU@Tum6#6>C?;f{pj&sj7gd0ok3y#q4iGgdOU-Nfb zpLQm=#1+LOv#Jn|bo>d!W$eTsokD#0Um|Xx_-kmPgc2bLq{wj=LeA=NyFkj}#5eQN zk+iOh&UKFSluY*;iw$-8JVx{ZHiYG7;#ndGS#WdOWpN6M6bwdKAQW=&9pLNq;p1HhUNO>mT_fNPm z4{upg#1}b`XMuHNb!P*$WNlPoZaawL+}U`&E0ops=d=4+1)9z7nfB%1_+9m`=S6gp z&@KK7;XE0R?#!@|ow0)yDw%1R0(~DmJjvBayW>SsLgoi6-z6>oX==x&>4!7ao3#?O zIU3;TB=R)jH2X0?K@4|cVX~9bNm2ZX_a>c01Yr(Gf#>IZ0d=F)%U>SM#AuXVuISDH zTB{_yp~C#-KF}#^S7Z!x*t%AMlo_Y#G()n2U5=FE{h*K0nTyYQlf)&P115f5w6)M4 z@}r?CtGSZ{c~b06>tb2%Hab!}9n0ahzvn!+KjdMEaqmu*^n_g?7bu5`A~|{D;Kl-r zo_qBkO~((Cek`j2H;FRB!>g$5#xoE!wAqKbgh?e-$svx%p8H(XJPXc^&{!}M0w2Rd@W27GKDU6zt7k2LuKM-9 zQZ;nHDk@SezDQ4QMqf{mR;Tasz+V-YU!_?ewUkM!73+Q_`(`VfIBY)m>r+(7yG(l4 zcXTKb?P!QPoIQb8EDJn_JV>!=^vUnYx`y*by0O_C0rv&8<7vcLo+2_HJ+^RR1@nU? zV2^hYDY>U@L16(?IyZywJ{Ej(Tbtd8-jcT?EimV1?e~0<;Lw z^hA2G@I7ySfRyciP^!-lTL_90zJ@NRp&mF7dBW5sqDF{`N#rX`gaelht0i>9wTIZF zJLKhh^>r{u+e)%M$u~1Jsu{B`(>`7;KG;y0ySWjx>cVQZS^Mk|4`r2enq|?517+F} zXR1Yb5~DJNL93!jH`J{veci$Wh`K0Gc!zC7X@c|n*NMrFVvb^_OMgyl{v(!pai9mE zk?I1{OLSx9vAT;&&jz#p(%L-F)NOq^YRkxpg{5EjO>)DNxlg7p9O5prcbem$GnwND zc0zsk1l8_r8pS*^W^K+Ux3pD}jgY#)Dq5C0&Gh3GV;T6pawiqw`HJ__IIimAbt1vq zZ)0g#YB?FG)5C4eMmp9C4kM03{0(pXaDthbIu_GLL6k+Lz&)YCTTRTtM``wz)$}>p zCBdt*7m048l}5-Kp~hI&$h*1?5!?=dS%!D!{f1{eF3?6irl!{Nl!;-T#w)r$Sx(USl;WD;&cQnqu6} zlBwfi%8@Ca9D(1iN-q{$F-pI2de3Q9-4ed`uB0?eLv~EA<|;xO5{d8Nj1T5l_>yOmoYAD_I_4HTz6-2~JSch%$f`;O|1x7{qGn1rM9V5}87I7b&1 z#hh`!f3z-bjsCd}Wl9H}L565;pNO^y8hlOp*wN^;>|ytBde5^FWBn0JF4b^*A`63j zNCXPu-Dacz@ZMC)(x~H|Z#{8rYQ!WeohV|V&uLXpES-}bv{-LAO7GO+p}S+OIGw9J zC00|HOP@fC^!TT8J#_iURgnrQFUG+4&hj~B*xJ~yrwu-z^LhB1i*d0FypbcyAtdT`2!|7?{Uv)Z*`G`mS(fWPe;wHko*aRn@I4OnzX%U6f)6jc< zFN>*xLR(c3csvCNiHZq3kBk`XW|gqutQg^z$6@!MP+Ds22a zV(DIDrHmRX@;_@+dF9P7=ZWINB^QaxtBs}NjJE^~1JTxi1k5HB))~V%x8&k?^3g1B z|2t;um=I-XwBwWDB)InZdW!*#T|J4@VTk`Agquha9Q3n>#Z55I?sSI3^h$qg za8zE4MY&fJb#br-TYo}`jH0mv?`0uc$ReU=hG{vC)imNcEW!>K;lrJ+vQfM z#Z8iHc4yueUTX?G2`Y(s0_9#hmS*ePilyPpmAz%jcC}it-GaL5u&xZFxb36FazHf| zY3KIwK#|9ikPHc@!WLaiySQbgK)Orv!Q$rovB#@h)tY=d-?*8eh8O3rkUY}>Bl8ti zlpNVe#%|M}0b7sdQWpj=ANiy*E-v)h8!JuLL@v7Ul;6^}D$`Vb?S~bnQIO1}(T(ec zC-McO?oRYR>p3${^KSvxnEMJe-Xwu&BYjl_E#)V8_j|^Ms3&6#!$mPX>=h|&`s?3a z$FOjRIxlrvOAk74q;kz@Objcp4ngW8KI-Rk%iHj=xE`!k9lJxo20dJdL9ssQeP(v( zwnO+9H?@?vpyhhImqv#IY*_SX zQ6?NwQ@U~eZ`{Wz3OzM?q-rBOokj5FfI*GWDZyX_Td$2u{(yOOmYWl(Hhspkst;Cq z&NVSv!ezC2)I9`1$}25=ZzQ)H^S)o)yuvyEV{Cxg^drx7s8_yRAnuFnBO3B;lBn;H z2U$4M)|l5IAB118bTm&0=2KS{!MXXtWYqeOY>Bw>!ha}pg89GnTLEPbCGtO&Ie}@0 z+IDcp$VrVNFN9_Kqx)-Ia|SjsZAiKi1yS;qo>JyB&2!<0VWBkC&LmL?1xe#o$AhiU zG>#-jv6^L>@W>P#diporghVfaV@d0jQqFiOXh@>$`rcc^?rvwE2^b8QJ$^p@C9mAO zMP`t-JnP0L(F0js(+?J1V{QhRMhGOi@V7qIJn8>eOP)QN(;^LAl4Nzx&x`nb&h=5_ ze5oJXsu~0SSrU!$Q!xrV7I*e#b?B;4wru!k6^9iW>}ERnOk(=OjRKxXd+S*E~Dj^81Syj65dOe@1wB7>po~ z-amT-y==L7&D+Y35P#;*FWJ|o0sycxb^#zPA@m^>6Ga@@HtIeT{y}zBXnZ93tQBI6 z{S}yW+CVg$11EXP9`Gf~(SbLg_5*bEsOrfg(Fo()o>%_&P9DHcod`FY;a$qq-7vA?Y{b7S6O=dewcxra4+V=R(YBrT2I6&-KWE925N(+%0Ueovf^b2hs;^pYD z00ksJi+^+ifdKhi+2S?37o(LO0Yi+hu2O6SCb-ziU+5B&e89MqC&c*lB+?{?KM{GuCZWl|k~b1L@thBd7$&Ye9KIho zE2Q*3V5sXK2%JzxtNf=RsKsYE|JWEIJ%K0iqCE7WJ_JuiAMdKGJKuwD3`9baHS|cl zW8R&upLcIMBrr@A`x}16?{;6P3hQ0uVW$3Z3hPqnHqPQ@2a(5z&39&-ygl&8zkwh} zc_UU6iVA&N1651<MGz4sCj`bpNSH-GHyCLdiy6U&+a#nV|IE(mNP(g*sM9?-@I5!>8t+pO4Fpf4#&@zS3sEi|r{;9;X zAIwY%P5ZBhnh)vSKyJ`?7B;WlwPb%EN%+V}V4^+=<@yb*^0eofC%#z^$f*u1)4mNJ zxCkEZnqm*A5pd94J!;&~LYXV_a^M3_B&ERsV6=UB=^JTE@(N6c*8RQ8X>;pNDwz+T zk?tNAPGf9nDfY}HiKbt_D&`Eh*sB&FQ@d*CkxK+@LcKRuSV5sM?2FLF7}gcy-55CF z+x`hJvcCTLu=Ro^hYplCEGLJ~T}CN%uijZxm&%~6R9DKI0E(NyKLd)wW12{GvXA#{ zt<)%mEjQ27n#^YoFoufaQnb|NzV7deW`#<-gIteJ2MQqm zQcHH=An33qp;E(ujg&FE?!wJG1=JHbcEX~|jhOLUpSamsjK8T+vr{u3;J)dSy|4vY zt3PQ~$ z6!}9Yq78{E zSe&K&s=z3V;GF~?vRH4R$9Z`*Z*t@=kQU)~4M8GeDL~F-a+m_eoOW9Mt#2+9n{~_% zE9MZFI{Dbhl81KXZ{Kj|DKDF1>!D`M*npaNsKbgrmz?L%disTJSt&OJ-M`r*A_}^v z%6--EZ&GwaTK~-+p{f0Epv#P!azFa{azgYxno zt}eWy9NHC)VuzF{$QCEd9id`cAMfqiHo5;^0_0KQ5fKzHG!&}3wqYNb?RNHf?&j#r z>y1z}NpPfKWc-zb|v1)*G+dnpN#h#IN0}#X-Q?;ENQ=%Q-ZhrYkwkj^Av_^c{vv zj-|<IdJyw(zO{=qlDbPee{=*h9GxOZB5IduC>#udFuHzpIeVq@=;rI$&;K z`g&8Kpo4~D_qKEV_OE_46p^R`&~F;i)H9~`9)`68txz!EFCK6i>of3exbI;J8Zz+v z|Jo7%J8(_`FJg67#Es`{lJr=*!I{7>Z_@DfM246zL|wXg7>K5Oo5kvR1Es`HVJ>Hj zr~SAh{ix0`5pz}w(zXjVjuCbMbIRpA&ycPux?od~-HjM51pZO{KAWuNo6iOWf1f<& zE3XELxm+NbnAC=XR|;F%xcl7mHkG*fdBz%y?SFCsNMQ7vk31P0J^oYmy5=DjvhG-s zLQRRIs(N$auX~CQa?-@A_X?{i-u`-P&L=g>UnDMV1-%&cjS!aw!ZhQ5)xy3R|7)m>59NjYCVACOE#orUf0()O!q$9` z665KJ(>RYI;Yg>Yy&kzM8aG_ME`F8~!wVya1Gcx0_&W0tO!eUh~&*eA& zO>Xp|*O4^galnCQJ_E<@m-}FENVLEp9$E6xvR=l1_kFuwOZ`BV_~qOpG$0x95kQTs z#(SlKZwL={)3%Un_>~^drU|5r@F>}+!$MTCcrLkMO83%s+73vrfZ!23U-U8w(`RyF zkeIAZK${po@bo+7L*UH-bD*CmQ*o1traw7X=PN9h0CVM z{99_Dq^tQb=YC&}E1S9`6L)QTM$Ho>uZ()l3aQoni{(qIp(dSvUn;-Ne zSDC0wp1a|P^>rY~8pky4V)0&#bbBB|?Z|81?0BL3E`%BM=QusouX@;H<=xF^@j}k6 z>}=7Qcw9D;#urno8M56%66jj3TQ?nYNtQ*s)HyIsh{;-A3SM(ew)+IH$Ig!FJqK7( zc~_6tgH$Vzy3WWBLplV#G-{lH(LI_oIX2e%lR->=A`1PGrIkbj!!EFB3#UnA8Yql9 z^0#M?<$5D5iF`Shsd$PpW2B|H)CJSykMx%gq^z}de%Bi(jZsg46R6D-()ML!t)@L!DW~3fj^JAz+TUru@PM)NE>&tM2|;({+<7^euO1lnI6g(sNmNmzB3*7r*QClZ}{!agoUwUG4omn0*>Z#j1Pm;_KI5l7`GWC2#@K%FMJTP z$N})LagO{MP>9W%P5;X4uLrtSP;$p3x=b#F?w_05O#O1Rpq@5I=@oG z`<=C=t8%x~--a5MCj!#zqPYdcMg$Y5@;q0fWih7X6q>d1s<69di4mMrM%UeNuF~Ro z;_^AIz8Dr4n463pvJK2T97y**g1SN;Cf#1_rVkyoq#J(TcFLyu?`}i50XPg4#*-lN zNjM(k+aPtBaE)Vvr&fyHS)d23x!YO7y;7)@S680_&%ugtMu4g1`1yq=JC`DnM;ve= zwe`cu$_yw{kBtsc`M@v4mL;7`mZztCR``~0GU zve|vb8k*2ka8-Tbn;y-47UZo6#`QHpCL?#{87?0AY?Jrq)U#xTV(n-i?e7(3&6*r~ zZsMRLUNIie%EF=*Qg`Hkwk5<^ZCllzIReI#y}X;ggeDulzJnA8MUjDibl@ z`48l#`&Cl@^n>^Gr;bc0EEv^}Op%^PUJjdaSlctZ{H-eI+f^pvh99iM_EyFRFV)YC z-C@QDGWRlY4t1xnt+xJ3cJzIBSW!4!)RsK^_Y?gwnzJ+o;K#Xw9GO%iQR5CqSZgc)!)wN@F`;(YeQv2A^C%$zK`@|@VZaLcZ`-8nt*$_s^8Y{rFB9zPKgg3Gy zPVfY<;Key_{#2C^NK3t&Uh$SEj1iM)2NLVMo%*1)>7DbZG32Eznpy@@bbChXtdQ@U zdCJ`M-Hoq)mG&*{gghh$don)|8*+LLW!S$ zslwl_LLdKr=#U5v{@Hn~bXa6&R`_dF@%mP)(3zvO(KDVUKG-Wc8B2sVVf1n7tA*+- zpL}17iLq61a?|$pb9;+nR$l0MF+;|(Hk-a^Jp~(KDbq^axGvGjSAcKK`T30fR^9xmmoY^WajqUhUME;y78-1i3aY*CRQ0)(9VX;hsgX?{i8g0g zg^+3H_w|?KkL$aQijNxatxZ>fuQDum8$4nHXAQLdwD8tiJ+`d*XY1{k5S{lXROpi^sP>`gF@!+AHQfSfGFAbxuzCKCFc1EPbg8|7Kw_50-`;y z)|xwoT{|19{f)CI&nJUI_{Wd;?+c@&;OBuech{0PPWHw{n7ffWzq^ z^3v{=q08Aibru3FNcL?{K+KZOIQzywug}m^N?=@yOxW7c;fYkmwA_^>Vn6W*KUWVy zEXb%>+#(Gf&2wT!Sy~VF_|h;?aqo9Oq&1GWb}}k%ljAk+0U>fB?57N9E|5u^KO~0( zJs=QwBRCmB+*%%W3?Gp-=)bh~Jt%Z0Zn@Og1axjK5aBHn?!?2u9waj4_ZevYZFco& z(q_ZN@fyeb1h!^aI^TpvXS|EJ@@}*FQDMk8KcS2MA7jI}{yvuwvrx$4@t}JPiR+B; z;m2_)QIfCSUp+jo|8Bt`P3Hm6Zppvb&bHBPri=O}l9F}K(X<*T4=N;bJ%ixloNVTBk^voVf}D!Wck9CC4NE1UW5XMOO)e1 z8Ts#bBF-+49{mN8(UM*21B$fp{z?EQ>L{{I?#kO+MPFHX88X|80UMV;KqhSOcC-T5 zNKqRbHZOFO{WB-GLkMn5ntUUFk`(-fLqG*rWUJQ+EOHSz{kKI$f&D{@^FWk3I4gE*V&vHX-%eY#wBhG|)tUiwCVa>2-`ksV%IB8gG?lD|6mv&ccdQmpA ze5_l^^A`limLHfvRpN6x04vRXt~vfC1mEv_rS1pT-uiUF;Py~YKNN`@i5N2w`o@VA zZn&}E#&wpRH7t{m2j&moM+6Gq{%WtzQWZJR@oG#;yHUx|Vx}l?T*{9gaI-x>31X|L zg;R4wJKg;qAq8V8g2b*KB3PU~H>gKr-tK0;3$>N7zzaFQ|ek&{Jv`!J@ z14~v-$Wh);fYb;Oi#+nLkCkqx)7t`WhO~;qc=%UJM`<$~DUF5V5uonzPufd_f>#5Q z(dEmW*{2y=T3w_O#Q4GQbl@yIz)=Mb?usEAqmT9Z-AQA1acMwlF%4kIV-R$~_S$R5 z;3eB%++TsGlbi^j_zyL*DCCtzqh3weVfV7{fuG;SjVFFNcfWS|S6^$|V^kx?WI%aO z7VKpdT?qUCou9(7i$k3y&f>5A*X@Z4^EhZ zV5Eep1_OPQUBmY?ppBn^1(?BKu?o=j^$!E98;3lVt-JV$7~qA%+l8ZvHw}F$X+E6( zNvmaTa!YQdu9YYZiF4LN@1tRC%Q$>SS=LH^Roscxgs7SFGg*8tsl)9 zoqLNR66?jrJaQO@$pliS*ID~Mo9CB)irTJ={onbsZei2UE~Kp^nXXSZj;tts)y~a>-6BKIFrN+7 zrI?T}iZ|H@6~Kv@xsP-%HPy66BoHn1-w@V%krR8+y7`ntg`R|kA(2N@B7#_}h(0H5$ zCou4Pk;t~z%>1U|_vjBcI^*Ky$SidA(cLb?$kUQbQ{P5PE!ZuoF~y?1u~1^G$DS~K zJbH&E3dx&mY^e~91Nx8=GUZP8(_3}Q<|L5aXwQ#GqB`B}g0Ld!xA^~uJZMxp3o0mias~o$vwPjIf zG77;nVOiqA;Vj42nq=>FKPvIaw-{7G42_N&RO8M$G-TxY=yS4L$M{HtRsetUgX>TR zW=~{iE2BoDcuZ~hR$lt_)(yv|@5`K#uVcp2PBb)3G@!h$lJpUh4?I3Acl?|qgWxIu zE-KGw1|$)gyzoEw7sC3XZY7dTjWN*gC`LDkaMF40SjIRrOsD3WZCjutqtA1-SnK!tp?EUUl1FA@`UpE0Gkkc*U&&OR#@$Q8)fs4XGjmsrY zHTGEqLVC$&%d6t0j$BD75=DT5_|00Jed^=gEXCv5KaZ++`5=~1D3@5ykg%sbB*wC4 zUMTD@hZ-c84a>sw-)2y!8_2Pvjqbu;>lAiwQ0?`o=yH~4p-DMqVwe5jpn;wf*w8I%1U0i{?>Pr z4okMM%QXz_w76}+_>Bp{hY9@~y{@^`IY$LhbNK^c0Vocord)dPQ~0&)!4XhLj)aD~ z0@|B)8)CvbL*xk`yh9wIxgii+yK6!JE`2M_KHh)u<(xb|Lbg|27$Lt;Dr#dWI{*FM zLQe~+HGpA)g$IE6^JRlohby|w1+uTHz?M!yvHKWDJJhkJSRkZzB0N7i3H;045R~AF zRxI=#zd_9XSKtElfi@e$VgZ02PFx1{*|0d>T8H0f0sWbJ;xkg=y)~}d{#u3k zM0MHp7Z61{*UkdIHm-$Nm0Gt((81JXtY;ljk;IYFgJLwiT5mD8+v2QRCHj=yW zxW)Idjx45|;Do2dzXFTv#wk)L=y_bNeA7{JgG$ZPz1%5>mx1wL8FwCJ+?VD{GDNtH zosD{3?D-ndYo@t*y3#R%=KPbB0dC|4@MWU{9{|IPw#A9Q3<;(=k!{qOWCKzs_}tcj zz$&Z)J`J(o60ENR0SQ%Z%!o-+GRmI%aN^pACX3ZP1lpVGX;sonTf9wm@SU+*E;eeq z%aXT~li)I3NCb${C?_ksXu5Nq$%BL3wNAMr)5gAd%E_V1UbNk)bH@nQj zzw3qvZ-|A5cCa2Vn%f2HP?2@TTqvr>06!XlRkU*32n!^T?@sRcHg6duUpn}vwfk93 z$d;cmpQH`lFXv{}r?PUX{iR6LLKK0Fl~~K4MjITrTJdPS^YkCHDR;9Mx-dpy2i<{Cj7%X@y ziNmgRMA3<&&PI~bn7rxKcrSsVe*M?4;>bJ6Pghe6vj7N><}67bF4YAnLbu8%!+sUx zXu65?e=T`&NZjFGH!$?65s0C}qQ>znbSI@4D7ir0yO_9|-~{wGDN5iyKV)m&SyLlbEUdfnJ3D94C|P^tSod)^B#P9-E#PH zBh>YtDMsn9GTyk0fm);-T)zTgC*X8V3+~L!XI~E(B&eH)E(q~lVRJW1sp*nWdz{NI zoG2Vs&q@H=?=d>4%_Z`W#GuD}M`}FR-}xTuGxlGS@g(s`Nm5lXaOg`Txyr3Mkle5b6;+X9L$_Mmc?=$g8>_1MF#`X>1G&)oa}}gqnQ4p z1bNLGN3AW`N$Hlf80j?pozXfY0NPZWhVH_+C>bhtI@_P04>vS ztjmViU9!P;iGuzsO0d+h5<%*U1nnF$*V6eS1O`(Xyg{}ckPkfxbAQ+4%|f{9J%1ge z%-Itb7(jr5L!t8Szawq0ZI{H`d<~s?E5tXwW0~P`7Rz#*)|i*2yhEiC2H3}%k^jo1 zFa})c^7G^1m5uO&>JLKNjEu+=%SG*w$_MYv1+YN ze7@hizz5St!k(lcLx$7foEHRr>=C+pe|`Q>^Y89l#qu#a7B2&|Gt+C`c0u=2kzsDy z4zz~E#!rc`+wJz?9=__m5DvU{q=^A4KUC+F(>W0?F*+t(b_Grf5kWedc{BPA5B194 zM0XeK!Z%N8+->WNrJ46=MU``MpUfPKB)qT~LjmS%?5zAa1GqA~o&|u=~wrppqe!=0Zi1TBAWD)Nl@+ZQ?#SnF4yPEfOteizgy0G z`&+8aSn^1B7d0cplz*SlpxfxUJ$IcB zs`u2!<06P4?7|En;fuVAbq2~irv$_*@$OM<_}zcT{0-aXViz%<+UI}Mg1)y8UW_V- z659ixLsQjfl}FevwYGENnSz~Uq#>QIgOyMIoSbN*$ZPDx8hb2vpE3WYPJl75;y=Ow zpHuQAiN3ITDfQvJ2yUb#fi&Qo?v@=uRIDg5$p$c8z7Oz2WolK)#D6Zf)w6K>cSgHI z0TvY2(CmT3=iif%Nra>hvRfRMTL%azF(T>1G4D5AdmIi2?q?6~GYMkFOro2v);@WB zY4t96V(|FRj!*Vrqvt>U9VUG2Re($^e3=?&A#V&~6|_{Tr0v$>PS~x3jrDQ)UnvSs z^nz{gd6X!P80p(f3>;StV@oa!gncoXJ`VOK(2|!T&FxBmkK7my+kQ$rm}MVPZ;#P0 zN>C|n^Tp$ie;Dl;;nQMd`IYVolSeD>TLOqY-~@06aca{LF7Nv_>_n!!c-@i;U@IP+ zfC(6e`@$cbnF}rlgCd3XPlF;2r~9!Ww3A-z*OYlOCsG*;W8sOXE@|f~N`T$(?|=*7%+^jEiZ=*N=Z!L83|f*Y?z4_x(AB8YFL6HN|no- z`lCum4;hI{MZMt^{9vPT=l8^POV}J8YKCb)3iMW;7Lu%(ScG!-c8#J$*vcj!Eno;h z;*seAy)&?4fI$7RmGOK%L4e0wGbKaZJ(yp?k^GyTWZuzWFKUJfos(rXwXhg34M`U_ z0mEH*mB4{3jRSKRW46 z9m}HLbJK;|aL7p^p0?I-Q=!or1m(}Ty8IMCP6Xn?lhKlkH$j*$6X`5!(YRbC28cy# zjN)bmqYs@O^mt#y5@SymW^qd(hWrm%IoSE$ z)`wHDVi%|w0_<{U0Tq@{ji5U^L2U}I)}?|mv5JFTGp+>2igJ0Mr)&nydxOv4??a>D zqIhI07x`O`%4*O@wH@QrstB}mHVcQYxRto+#r4OJCPQ|LK}+%eZ}T+5$C(-KDgcME zZrc$M0H?&GyPSY_uhbCTh44DQJ!hsqzpC|SLw!f)Nq9HCS-!@7k&Z5HJ+Bfe3%I_Q zU2MCY#ichc^E}PB6r>S+yCCbJw5c(AIr5gm6{rehz2`BrZ*r?I{@J{G-bTlqoj^rR z4Q+Ij_IPn*vizg++MB0eWk?Q)A{iz=VtpE(3adnk#RKgj&Z>sGE%F@SSu0CL!BPMW zVZBdPJ$R2czkg!!gl|3>ba!%al0$oYlgEfS>i#X@YdGMv6W1d4OzP6=C5lFX;DJZLaVB z@$OV3&ts6Fc7(LpAnoA71c)#rc&nC~`%o8rLQ#>pH^d_M{BF^?@D0UNG7h)4E@wBb z#<*4hzPw@SELCMa9PcKOC}_d-9UrYtK8+_6A;Twe@7KVKqbX}RX~3oz!=Xf>G3pL{qGb6vbtT1v9%`uoLzZYQ4I$vn@>K?M$xB}VdPI$70LZis z>0a+7C|>e@_w}y$SF!}GzOFv49)^pHz?WBe2#^L+djra4d*7;oWH$eZTlVkNj$gx% zjG*JRRux_3kdxBhDTy;dThk6<(}Z22-A`Wok0#G)l;S?1Eci2I-I*m7MIrfXV{|wg z)6i9dQTDmx3*P_gsq{0z#1`>i3A+f_7<#ZW`gm8O?cu`8ed!-SvXR2YFE+4-4s}fko_E&qv1STHh9=6diHn$)FO8% zPvdoxVlq1Y33Sh_T+DJcHjH?}wwptI^MiVMt{*;+hJwJG2Tw@oC(?t9Gc1LBXP34H z`*+*3g+Z++HsL~KkxOox){{F2AMOxZJp)o$*paD0`O)AgX2t60RULi4E=l0G0&(ZHp z4vB>NmkijCWVaFJUar%?#Gf-cdn$bLt`-V-**{k(2KYP+R!mONS;VM<6tGe$Rrq&= zF9ycNhuuU;%3AF%)!o$E{}grOgDh%X7Ab0u78ofC^0H^S^FEMBYjE@fIn0~eNnmmv z0=ODd`|JHtODve4lvIpdmmrx8sKg)}xIaTjPN{#EqaI4$W%e_oXT@*+bv4sy{)xp( zE?v*PPubK(P-9^$9B8o;2<%$O*7Rw4-%4#bK9^9Ab&7z`FQVyd>=+{kk<&vPjVHLZHh!(&nGO)Q}*7T7TvV%kjynl=qxF&Cp! z-OwkCo2ui5l7?0&kRLr!+u$f0gfV(ad$n%1{tu~J#}YAtA<}Zzl+2Xh=17x)Igja| z3@6UmAAbKS5iXvnZP>86*HKChEaWrLW;m-l&Cu~>#A4=4d!DbR16NWk$&o^`?;hs) z482NF4fxq6LZPR165!SHU2*@@jO-41M^Z_f^qz($}s~7fK`wkk9?aZOGOwJ znZ~#w04!3blt-_*|5$IjEj~edI7XiXTxS!~O*PhtbKzzLpDzH}?qo~Qkw&C%Kl(9! z^wQ7Km5Bvh+CeUX090zIj|DCqrCrP&>bkQ(9J??X(D9}Eu_|@E)KVsrK~1O6SjVyP zI}?L`B?w8dRLGd&+n2w0ZU}8AYUK;NiUB%h5?)I06o5^dW=<#~+`1EdnKH8H>k=dl zc}h&;K^cZFhTjpZSNm#dEEqJ?vj4CK!bjtR2au?(O!M-YcKqf~lGg~>j4LXQ(A0uZ zPA3o(^>;h$d3-4(cKK(SP#MSO-!)&fK!d!A1{XOh%7eDx7<~C54 zk;gJWbJNJ_w%_jUa&)Yjb+!WCDad%n(L;v4fx{}gM4iqSt-bdX++oL^ua82I!3aL% z8F1r(VPB8!@q?p-31Gm==M_cQqEAbU;Bs!q#1bJT=ea82Npl{}Kl?{+^j?vQT41L= z7xh1Y-bF!DIIFXSzWlJ|FD!5{oe?Grk4Y;WzOX&K)wY@;+nV9R!$P=)%F|X09dCoN z(DN~%sln_|#yL3c&8x7E)>8}TAZU?ouU>yRAupxtLi631t>kN;(pDmT-q+v$l=gW_ zb(u9Hv$#VA>Eg(44UKU+_O{^ie`QXVo3WE z9}ItrM_Zr{yv60gH09>eTA!BIoYF-&=^?mDAn+r10$M83j<@6Z%@*5f@mo|LNJjnx z{>%*8+7H&MOeKmVD(FbultxHjk69sgq9ydd?S-A)>7~uP0^YroOjUI{&&q!QZkVG; z!(JaPvZ2yoT!DJ{+|Rh=*~O~{3Mnyet=kHI8q!9=aD0@X!`+t^P~^UxJx&5=W#4j? zoA0|v9c?|#eljZu6=`Zw;4otkjSE=%5s$%3zjcLF1t(%Cl{h|5kNBv(?@2`WvuBRR zN9At3h{5BSqX6%sQw8znSNovj#q|$+S}SeL^(R*y?t`liLrB*MPZl?fBT<~BDA?v_ z#9Q-ZB&4mNMCa}23K+V`ih(y_yd6sXd2bFbXD7?!H&>Hz&;AKJgXa@v0{WpTxEHX# ziUS*w3uZV3lLV83=^g*0!E`~!_jKEV(J=>()fqm>&s<$q9!j|Bu>IA9Gx>rhpJvsN znMsjRt9gB?5Qz8a{0o(wn31bJiblnS{qK_Xs2|x?z3DkJCZ*o=|oAw*Bdl zsqfg3v(IH?g)80e6@QYDQoOwo2bj03>do2K{B+>Pk9=;~0`N(}JrMVLuzu?E-{-`J zI3!Ej%Q3-j9nXxiP)qP5E*mNieFo1ff9{@Ci6mr>q1-$I_7m3r3p z(M$V#(+&d5Sy5kM#2R%hx4XD(cg{@+-3{@rPHgovz2q{a^9YIc{?73HDUDzFCC0nw ztwJ@@19)JZyA-uLUMm8QznXHRTKD=N0|Kw`h$!QmgQR7Ajo3!9IA7GN#`(XCtQQ_o zL-20uid-J5Yz%v!<2COOPo?inegL=iWW(O&%(wp4ymWuH=bB=lT<#=(e#T33i7}07 zE_<|`(-9#F`n-+E}SvL=N~#A1yAZ}*&i%7&|(^+-JnT}E_NF9 zE0#>;Slv3uqvuV5d(c#lmVsnYN+Nm*q5_z0pPWU5bebKQokkzpllfIpFWU zf??z>yz_g5%tu?|Llpav6&}8Hr~O?*Zk+6yY;nIg8_dfpEc#G$MbV4J6c1G(gTUuT zthz3|}{c0s*;U6a1Hmb3Whz$jQzy*wQ;p^>b@q}G%S6e)PFBfF}>-+%Su=apeHD!Hi3c+V~d6^<6oOu++`dM(^ZR=u>S%U|*|ElBY%g1@IU{djWeaOeT~tQEW; zwT@jd*ZU#(2CEWg==R;kl?NouSH;4T1U3Y48_47p}tj=*zvL{ztVyNE_> z^J%iTOWeG*=;TAt=kqJoipMMrws;=K8HnwCD(>O{cT4!CWqgj@pz*u^A)n?eg0}|x z6#?W|&L=V1g@uy|kty#?6sah(E)}`_w7+1x@6Qj@>>5j`nF!Nhlvj@MiwiFu-~9a8 z)^OFS5mA&S5}ly}2TDfnXE%gloFGn>J2#~H9d^(hPYR{b;6&}}?>)w%G}dUcL+g_* zlEB0hiHpltVZCdiy?evoBN@r-4;NwJKRzP9HYuooooQ2hnPPaFr31k)%m}Nze`}zJ zXA;VY^bi=q1m5da5sxs^`jz$^<;5&!$gqb~WZ_`JDqEI4-n1c$a-HFMcZCtd4ujrk z*?;2qcq6WL$QrF5k(-A00zivu7U9>K6&+LMP0mj!!A@?pozNyHTA3IwIRiAt@S6> zJodEDL|lhN8EyO?{2jg=-T()8k>SI)Lu&;Y?BSnkj)ISKl~{!NMo#us zv4m~qLDzh8m2P7KyZ>`%eg%+XMoL?*!v~w{1~u-szuB5jz z;CZZoyk|!?LSLBUunqfNa9Qhyx(X|3OHZO0IJMyfl4G7O>|L*0?h1 zjH`+}>I^dZI+56%=l-H5+mT$j10f=0U=N)Q)-IL(xxmx~1p*lH?_k6~pXndK?X zM@(L)dYg4aC{|P|i%J?5?G;BmM%Uy5zW`UWAK!x)HhZA%sGbYsSEgS*A1iY4IaeqR91a=j>b!?d#zq+073=jKV@0dy~N(bY(3!r$nP4UF3?b=c}Q@B|caW zS@`C(Af9+>BI-r;(fgQw9)$V2$R@apHadvZNTLhe}TRZ8I>JtZJ4bpB&E6JAwEWHt-|MLki-wV@#Gb(y`-58i+gnvz zRR)uL_m95iu3s`C>UG$lDMC*6vG6y7uVtrTbG~mvWk0<6u{u^bHYLnl`=}*-pNF8z}hm zAO3&wr(+gzCtu$x)$B9EjNqY(v^gNJ%(P5xOztwvr6yEj z+JzPGNb&N%UUqzPmoAimxL1|fy+5VyH`}^)HIae8ibeGQaQ5cmP`>Zqc-D+4`;wiJ zJ^Pkr#+DgmS0wwE5F$gCv9A>d71^_vok)c2yP_DoD3UGNmznupdVfEk_xCxD-#^cD zA4mOx`@XOHyw2-9U*`_yKy5m(A=^6G$PE;>cWq`{Z~ESiWe!{OJZ-;qA18odulG)J z{;tP2-)hS#*Dj|7rk|aA8GZTpGezwz-#?c8B=vmZ#l@+lnvrhASF?_oPd9#@Z~8N`1Rv78W0;*FN!xZ2l5iM41ZgFU(z@0 zbML+6bpCwP=l90=;+Px;(=nlS$#Vz4UhPkNy#rPVNi1bzA4?nbJA&CDqmKDv z6dR4QSZ$ZDRBi7&lgZ|gj#e@A-|}ENyCCt@ZCp8&lH2dPS^}*g16&xG##+W|XMSq+ zbd`;?m7%Pw4uurinhe=wV-gww1h#s8&5C#ka--GYVp`-v9#8-}#I6Iw;gKjQ6Y&L* z&D6fK3B!F-!5e6DYZ8HOnXf+C3)t7E$mrQzraAxxu;cV2{*GQGa*-aX$`PGJSVp=S z55!Emg55;xwH?z`8s5$we$wVGkVJsWQ6WMyQ5$)Ea(S7Z>iANCj>V8N{K3fUoK{?? z$%N;j{5ENQz{gr@i0iwfWzTHXw?f7kQiOV6$qT{Z#5?;9Nfcq{_?4<-ZP_khotnqF(|caB$5%ls=RA40nglceAGx6M+zJ|>Rsd!> z=$y?tA|2@s^WEw{nZvIXm(5o}!1~4FR8yL{!93El+5|Fh@ZcA%3-;Hwq^Qr^T2epw z7{0SVi=rb3 z?Q+03D%5qcKqF^+BY`kkPesc2Jl!~5;(j8irPM&!#{kL@m6}p9xKEh+G0+$`ZE~tO z5O(H{9#xx32um@kU~KogW5lf&E1YphOD>>kyVjpONdw*|?`K z_R#FMRG>N3h3QaM`wPaSw_5(#h`(FFXmfJZiS-3ze%20+#s731ts1QtOgWg`X}>Vi zwR{Ac&X42_r3bG|qA4{=3q0B?Xt7TzvdKg|@@nkAwsN8uTU${-gz4+~N#v+$Px1U3 z#Njs~TtD-Xy7KwYhX;UGBDS}w+jg;_ z01CJ*?6BQgvHl}R%$4)MOK8Y3Ob)`Xh#HXssAbZ+AQkz8j)iVd^hrhRMPO&y8OP`; z#&Vc^vL{Vt%;z>GD#hxX3D!DqqJ~S+k4evF?y@9ApWA-ZGcMM=Rq^DZuG)Rz4$p!n zNTo12^nF5Jj-!_1u`9MJUD-f`{(7)BIXdbw`(jW^H3{aHMk9c7t=?G?SN8m#5D#Gk^xJr2Bidgm+yhi&izNZ7+-U#O0~kSFAeRN{T#a*&kzg?I9t8u-1IU%v0qmIUZgP z3__3-sLfLk#+rziqkUhQ_-REMdH?z(RJknQc@cV7QVJtn@l+z&O!%4ejU45zy3$A* zFo)%FIEaF857<;T{d7q{TY>a7)LHtPm0m)%3oR{Hs!334EVSTvzzNrO(Q_`4+rKM89e=#h!|u}#oBJaMayu3eggt6G zAds*PSvO8lL9lJpxR+D!$j^T9dhbo4F1h~ehN03UhXd)-7dvFuDG~WyRn~#O!?tWB z44`21YKF#i*o^7EZ=iw?q~(K>CBTumsZLz4`4P@r-GN9ws64XCX~g@4wqw@&ds(l2 zeC!%i>j1QH=qnIB*Gih|+AniWSsuy~rW=(R4P_;Z&;b3D$E|7}csER^r79E%i&FLv zUi<|`)UoK=jrx^TE4m4h(PTEw4_b&TwaH=5Ih534Eux_Ce7jqHNmo?8yY^~V*wH}J z=JB2n27#+xBr#Ny%97f|DEeB#mB;fN8E&cTo0Y z`F>QDS3!@jY}KxuFb_r)7+`KB6oX9O!SDgIGRitn+z*o&TS}iVhFASkm_vpZ%AL zYfk66zvT9)8|o!6#l^>MiR1e0Vz`2T$WDBvqL@yS`2v97+{KQhOe87wbjeBMNXVnb zceCz7p-GgsmhDU<%rD`)R!u)0fSeNfIcivRBL^DIOnWwbKnXKCJIzFBkmuT2(S0Un zAWGRPQ2$fXmaV<>c<&`s$O2z+jyHg#gzGFX846ex`MHI5qF>$nPcDG8mfB0t_p9$A zBunl{Y;i!Y9^^O}iEH z>lC2!5BqtVH0y?XcUpd$G|X;W!R<<8?O)Q?yeU{(W>>MZ%>)7VyWvcHG*83b3unw! z9&}sp=;sLk4G=^pmD)3$xrSDQQ66QMR8}rBH6R&2PVj5t)Gpw1bIKGDX_K{`!)vqe z{lU@1xxTnge8uVZdM1V^{pV)kKqAb06Djav4Ijga5OGYFG5rZSo)G{7Y0NNwQM8EG zB}effmNh1hml1KiE)0I|Gg5H{D&fZhcyO=i<$buTFt-p0c(6vFKzY9EMSQevyBKe~ zHx)A%GP=qPh8=*w_h~i=77!Ur&Ul|3JXKvTpP2Xec?kKghm@J2eU+qe&M5p3>bceF zln^>HnbZooi;PayOxWNLE}}KL81VIkNwkWZgj1t2J$_UmqC%cI^uPUH2bGxBHB>!7mu;EDsL_{H%d;%PFXw+#Q22~fwv zpTMakX=|DE;(A6jRKbO?s{J7d_L)95`Yr>UG{0*rJq=(RjO5vLjKz%(FaXquE@Im2mR-30oO1kE>^Fa9%ya)hrm zR+WbbzWrXqI$$qf1WMA?tHw7d0j*B^JAy^SJ)sVl*bua~H?{)WO{|Oo?izJ@3x=vgZn}ENvl`H$E%=maS{b-S`G%gz z2X8lD5U&Q!vZIWZrI89=RZrsLmbzP)zBj1Vq+zSU%hd~+94AZ_;{T>0aKC)ztfz|F zG)1KHvM7>thsy*5kCElOUr%oU1r1csSuud*GsjF;>hIAK>-LR2qJAPx&4f_-;YX81 zV1dk1{I=Xxqo?}rx;1Yc5luSI2)J#?-oh06-8PKN@37h>Qxe@*^CPKL?531@k#Kuy zZY+k8{Q(^N%;Aq}V8~|e1P^!T1;fk-qlDmn)?yN?GKnV)ulOOc6t-SozhNN@uRC0t zj|OaxuFJaUMXWhn)pc)iX}f6J;t};Ze17L8qf!rxzj- z*L&rtwGFwwVm)R)W&@9E<%i{06cnHB>lQQK5XL&Umu3ugx}zN<=V})`Lmm=tS6_fq zf2I+;F6QW>Q$to&HetCJS`}qQ^wX3=aFc#a&vG5$4?sWS`m02$#Hq7Ux)Z)-ijGfa`5J*XKsT3;VtJEHm|`<%O4jRxel zGTHwl8F%)=BL=+Akz{5t^~d()FugM29eq zA0jGS227{?1e-Y|3|`wml-GOd)91uxv$H^A<|;wUAW7+}#9NbJ)h_6&0KLJ|+Oy*M z{{CX*cF{=lxxOHfs1Mu3PQu@72ZOm6>)0X#%n7uScGjjGM_9HwM8$A~>;h&Dz(x1C zJCG71-3_QDS*R|u=TlUX#I=w{0MJH5OBDy4@5+RB-J&6drOYpvV)k*q>}#ER}? zhEo^gTAp8gOgOzUaf5}$WmK-H>+X#?RHa+R@m+-AYz!q|-F;m5g}FcoIOdn*TqSRV zj0;)bpAd>(5J4CL9SuSwF6NwU9?YD6CDep;yh^eK^W}JmXc>U}xX=;t$%Un}@B83|b7;v>3J#V={xozDY5{Z;+&!d8=;$*i&AR3w6g!_6o8 z9`9%S!GgA@6k&xDMFJa;ru9dCYPAQ`dxfDM(9ererNUthad$~yK_kz=XgX(H;3jVJ zgUFU;&8{{|9QSSN?WLNu3$K%SCh7Rygjq^spR%P>PQrC+$QVwaR0iXdB5ZDSTwjbr zLcE9aFI8C7E*Fbzn($e9YdT)xj&sRZJpfZOi7{0L8Gmq>RO^0^8r%svDxUlE%mTPv z_tT~4;5i;h<+#JYgH&j#BsEf_waK|o`iE>TldlVkx9vpE>pB&Lx^|hg^2p< z&nDB{V8`OzY;dP7C+o-#j2`7@`&9ekOjwrBpizT3-X#L+qGPXFK)~aEJh$0fJ+L~Q zC}51v?fMDEuR6SpCgCRyruClYm~Y&8s>BcSls3wHIAuXYF`*dFPI~CY%lYCU)t(Jh z{D-x1*H@RT9_!iag0a@pnuufk=#N`>j{3lMvzc;7&|*51^mK)jcyb;t&md1uc{J#V z)$PxZ=5?8*m}V)o_cAiR8P1kFni(sqc|t|^iaYhX`stsEwW~*yi$iZO0N2`A8HUe8 zq`&|ss}VzRLmiX~wzFV|ZDC-KHk?=@lU%pM`IBbOQDHG)_;Q>!=dAyT$^nARtt;Ma zZQ@eJJJeUOMW?=BN679Kn84|3#OR3ISp{!A;eDA5hS!{<66F7?6It-+2P0R;gI=z% zL+b5thPKXa`WEjs=0wQ(4Kx5h zU4ylx>(;9DoYzdIg=f0-birLx@M;bmSZs?g0 zivJB0s>v$qbuEHX^x94N+6Yk4l2H9U8crDjNvR5){DGMm4Eb?iT$vRU71O`ZV5aVM5VM+JCS=c*=?SuO# z`-^*t_X|eq88BmJ4A=W_k|w27HaZK=H`(GlA%R##%^Oot?ht8v{xdjwRc?zHzm=8r z?)9#w0B>5n8r=33jd?HkbunDE^B%;OlN^pbx0`LXDC5V3yGl)&??t*_?<7ssZS&KF6Z0h7YHLn`mY@m7 zO|q1jQ7a=B9#GJP&3js^hWc#Ah3@I|d_@aKC>TLW#U+T@;#x8#?Aj+<_q&!1lsD$m zU@k9#ZHuHD2?kvpKvL$#HXR-lA|i6h0^et%mLUf3W_d7R%wj7euwzB_`Bi&I_kr981d>a`HeP)$o_821=z!VbtOR_$ zpoz3g;bl3RD_XB8lj{qu?m0(>e$?jru(98Tn&GiIVnu?8r}uB3^B*4k`5wGK8`$r5 zF+;)o010x!vzsp&0F=)IDui8e#~%Z4mf!IqM2Os+X>eS8nW3jG)*4%x~haBbuIDT~+%10*A_icbL;iU5r$# z^H+QAZp0VwLBk!BDRf=acNJ2f3^+bIvQ2+mp_ZSLCY@FIaVGQ_>a?sYu!-NR3~}w} zsch%gi$BMJ<>4n47v-@tjuh)`YkTK8cYM^4?Z4cg22xys>$pDPHs&01Glf*)eSxGg zj}qLtkU?XVDOOec*(M*`1V}NE+M8`T%n6`OPRAI^W4m4_B^mbtqv#7G5izt;?VP$9++ zhVlorn6J6>LFmFcbYikB^GsixrZRdl^h%gPh#33VUH=}r|HOOMSTsj|-B@D=!F`9> zJBCwQQeTYEx_jgsoO!U-$(6LYr+LiSOYGS`R%AU7`kDL6rh1yRo-SV-SXkTY{EV07 zs0-Nz={pf*ty*-6x}BboW9as7y9EStUI#(JUUGp58`AY%1r|6qZ=m?yOh!|KbQ%Hw z9S$W1gBjb}+8XZT*0%*RLA)r$4kSfO5Fs^$#+WhgJDQlEDI}7b5K?<3dnFykyRp$8 z(L8b45@|eO%92L70G$EI$}V7VR?1HnG)z~hTAT31Ev9N%lf@C!5FuosVRyHcC~a*| z@81$X#>NR`kBbRLm@>?8gV^Jci6jCNE8~4+mXjgrFy(eBfZvy!=UkIc6w^q&DYss% zBg>*ZNT;#Uvo<<>Aeq5I-0I6myTY{kyCrVd zLXAB$y$?~Fr^k6Q&6Mp-O79>9Sm1AB+>zA;3V#%YCeUNj2fq^wV+NBTh>E-XI#Li1 z$9GV;N-yXA3iUe|{KD)$!@um?QV}g?Pf`A=cWEepvsY*78M|L6(#ZX`m@KuvY1;m( zISmEFtz;GqjUImfz^#=q@5s&l(RrUsDuuAJjeU69Un98Ss2Wx@Im@nj_I2T!lr5NH9&uk8J&9#jf4qLUA!TPYF=*>3JMv+dRrEV;E_TW{ z0|L5(+z%WI4-ZgT8<|2KyR{w&Juvh(r%I+44%)34xf3w9hZ;IKN7Qe@>w_|rtSZI0 zW{j_}(%fki4SVZ)?dH7ivh=}ym?F&!U2<|coAGOF@2=hup=YDa_`){#`xokTY9y!1 z=eg+ZA0-pUu#@_RJKM)xg8Xh-C1p?^GN@6<=aDN~*U_7nA2ZT<7*?|W$i~aw$}%M(`#^ zqRPybj;S=e5f=DlP(0)tss$fo?O`6N9d7Sd>rw*oCim4D9hTT=_1b!4vtKSqBMgb* z(PSe2Q#~@f-)(vSom&g4T{QAy-|exK*`YS)d#eSnN$b?H-0Zj9Zsk1ebDcIIC$*y_ zA$ciYPcG~oHpIJkXu@@}wsqJje+Mrd2B)OVcx7Gv^N#n?8+;$^c#=MG-r_RTP<)z} z*~13*J&gIsXF_pl5(D+4&zpZX-G8^AC6HYekxIeQ-nQ&R0=ec|fc~{*CCy_|+a7J) zVUvGnZ4;W&i9T#4EH+i(CYX?49LY_|>t8>MaCeuJk+J>JC4M@b6MSNjRK+{=xf1*5 zOZs3b<=0yM&p76F#ovE+1e2rGen`Y}bS!q{v~GCL2Fmv1SNa!b~-kX}hl_$<03nk~8a6?EeGm6s7 zDIUFRd2Q6CqfoZS`BF8kz~9Xo6C3Q zhq4x+Nw2+zEesy5D1~fmi9gErrQ@a{=e#DId*xdaV2RfWSN(NBgGSTaoN&6gS1?so zlb>=vtoc-)eB{zfO1sI5eZB6OJ@(_ae34!nzD?xnNqU17-;E2ATC|)*@#SLaF3XS& zRsm_7ppV%k&#mC*LUe*W>i$)v-(I1Dm-}B zoAR&*_d?t1;W&RW2Z}BR$}=b>E%BQM5vBEDaa$?m@XxK_1)RLH$Gk~Ft~t^Crr+LtdymVOE^ ziwujw^y}pB8nogB{5F)Y3vkCVa)wULB478X3WXIc1){fL`0oZd93XdOn3!&HY5hag zH%EQ!UP%tVG{=9(>{b%o=nvT+3PX2~v1oe~3fhd*Z< ztO5q8fg~ayAA9>#adg(?tBgwqy<7>Edr`U`kGr5s$i|B|BmVoVJ=tyfV_+Ip*B2@( z_m(Ph90__UkkGN!vJ%hr=m`-e1ynlM#28MOrO+RhcKv%ucKudm^GY;&FTQmn4gU$6Tc(zEbcO%+cEx0H0R_LCf#3V;` z+w3bOQ;>LKVUif38Xi|-C~XGAu%p_8^}3BA7uB`hC4IPDDn0l48*s_ru|*GH$SpRGv^4lRuzu&eEmzua<@(W4BseD% zx0AbtbRD2al+d`GY@huUgpsW3$NID|-INEh?3b>&kcC zg*cnf@uAT4Nl9BO6lhxY3 zHK%=1q+uR$n6cXJ+tgjr|#s3hZV{8aJ*dYwWHPxpi z#b;@fIsUrOBzFmZ!+t2|uoE3TdkKH{kWM&8(2%Ok_v#c1FH{`Fmo{u)K|B%m`qzE# zIPN4;;=6P=eZv=do^_IyfO2_1Ze*!#d>NVX0jZt}KD7sTEKWGJta!f|Y1JdZooL%N zo;#)&8VB{6c4J}~T(dxrw~X1Gd@x9ki0`nEbvOL4C~|8#PhmJrm)`UyKI}%C-dLUL zNazBwGomODMb*6vx{7oc!A(1(cxi^GI#kR%B&!$!|}6a3Pa zHDQNv=rPi?n@&GHnj+-8SuY%?hkTa<70&%5Yh*TCPD~u9?|9?WIoE3MEG^E5K-^aP zwyaT~$>y)pb8LK4eo$U5i}fjsThP-f-kp)tI}xAR`L%_+$v~l%|Hn3}R~@dp z-#9(z4@BO`fj$<(&tWSzC%rl&Nb<5Ms^E3x-KZ)xg^KYx0KN>SL!`LbibAQ}&CI^e z-lK!_o25m3ffjw)w>E~m(qSNBljKFOvp=_Aw9WAuPoKvvGAplOaDjd~#H0urZjpO* zvT^;-O#Ys==go&l;sJoNN6*na0sxDk*Hh4`*#pq8OpOiq%9{q>1_W2cX}ve&)RCqQ z8-<#s4f6CsN7ttsms-(%=!5tzLUzxVVwzWyK0F+wNz&CutM*HAq~%cYc}S0^)yXt6 z4@}LLW-?3r%_!?5`Pp9nPQVY@ll?5h(28=L2Ij77M1NcGZQ1Vaj9?YUV?nx=$=>3t}rdN13`gA)i}xDC%EoJ-5^rJTc8zM?X5W@%(Yw~{HPqf;La zUcxWThX8Q$Ez)W_f>dp;$Lce(HPQ%>ZX5#Fz zkgUj$$Td47ILb0DGA27i^M*4cBA?ofzO$~$AYcZCKG?C@mTy_a7i;-&^?^1}v-Dy~{`Cp&_M%;U^tE5JPB$b5}l|k>J-mG2^vr?+h z@!7O6X!==tGEAsXxEgeiE{&Sn$(;19IqCO-5~OK8g9Y@eIWqh%9R=X#9h*P-%rk(K z@C`X90)*3Ba{)aZs8aYMFVgHG@1^q1n_Y6?4&2$&#qt{%G$Kc;~_az)x>+Y~yW$=gq?5I=`Qs`Xx8qr&(zMZ5K z2_2W5E$1b&Fua2XPF)VI>Y=yU%+xd52~?G+s8z4l<2tl;jH z5yh1+vx#JwlF)t~L3rLPI(5UNd?5R3_Mk?SpF)|igHE)uZKX}E_#w~Z&+@IS+UT_@ zP(nEW9&a@<=e5F-lfyR|dLur@SV-jSPOW%Aw@=Q_V_orpV@Q*qj(1X)ATbYbZa6ze z(`msjMN=e>(zo)t8}nvhzeo$g=}h^_s8r`ir=P##k(|_7Z+P-Nif4cE=tDN`v{e#Q+o%9}JSz)At`7ADKW`eh#2c=d-33`=)D zBQ|BSf8n&KcJePaCH8sGq%t!0W!5Ckhr|f(WGg-7Xqo9`^d9i`8Rc=`@%*XnN;rFnK~%UY@xS++x+9Cn+~5tiP>8C*^KisM)7FP;c_yt?~nY z+#o1}y3h~B7#HL;yW^+dsw=bAnW@+OyZwSb_MtKf3CX25)1IwMAX(&C9(-vz7vXz( zL&%>GTZD5ANu9zxkeJAmUYjp)K_(z)4k8nFMqq>)9|QCsMVBm};mMV3A94{u$V~^j zrxIMvKgMpg;80k@Ps#}TVbXpr7w7D%a>zt&3!(kPdFzmD8MgTIBAOSaxRI*+N3g)9 z8x!*?^CG@A(Y2|5^8IZ^u2OaaslGZ&Mi$Vp4Y!`=y+Ie1kP~DZ6+Kv~b^{csc{L@7 ze#3mo#1r{B-?bjt(Y8UzA{hLAXwZuGS>ynxVd;r{4JLBby0*q2EOLG7t#mpF#LZX< zu(zJ1_GHz&989|8G`dY}KS03A$;ml^KLUC$9Fr>wd`(&MbN)M^1Jr&5;i$V}wVTbe zWutz&WcBO?xcOEjzthmHsTrz?XC()%YPg$iVlcaNXp#u{Kc)3(eKzr=+XMyECnoC+ z2F2uny_m7W5I0N8C(Jc(~p6N z05j=R1vM@vcV*{Y>16#Rgj52&+5Vw2WU>LY5`wZvM}lIuZ6dVTt$uJbZs^9JdY#cnbpYj>%>u77cAPDTXdvuJ5_V|7rl;{hz z456!03;NFxmz(gK8Vj>!fY?%{V%mvO3O7%$nlRgCL_4mNvXEFfS6xGc1jrOj6{dtf z6)ca;O?mPE7xLth7Sa5PLCx%h&33R&ct36r1 z3%kLAPgVM=)M$yNBqY3cb@GXkcf$1Z)e+T6q)vInNYhP|GN?D%?J(jm(97IL31D$C z8esK{l({u|VbE)8$rgobNWlvh$ov}2y9JswM%g%#83Q`T%kg2)pRmaadxts$VjefIEq!ED(&Qr$mL8hqj2s%O@yB( zY`ecUyYW>$EAN9G;LD+6FUORWm4L+YAF4HfcMm{YT**waInq$ZUC;?o*DhJpNs9~^ z5^R))a-^9U^BM`7O%vgm60oK;#v7y8ykWv@@nI(niK2bV(gt@&6w;3tFYE&}L)@;D z42RIRM>xS%Cl2r<4X0~Oqgi?iDR7~zz$=ex3Twl{h6?;Z`FNO$lK%VUL0!}%Jsw_~ z%M@pnV=xJW0xkq*4mXXV1=1Y6kDCU}U5mL$U7j^)7zY-w90bg15#&sgBRL4L{O ziWtTj8U~pOiy(7-7eg=-zkiJTJC-u|+E07Wp+5=%K{!HVNoi;i3+$EiefXK5Z1 z1A&8(id?&A5X<+0uOHm!raW_zK!pu;9v$q{&p+zs@6n%bC$~tB16!p{Aq&YpI{|7) zL#BS7@~-%x^u^pN8Vcbv@g{%v%g@G4XQBfrd|-^9*Z3iB$a?s|jh&TPjv*3zO)Uaq z^SM(-dd+bJelNU2Vj9Tk-N!ozXXsDeU8v=;o^oy|9KN}=sd#JdL5H>~T8WM(C6~O8 zK9w;otRtj6}jc{B>r1-BhsvVccK3jp@Iv9UF;>N}UR;lfGo@ob5HtKA`1Nq*Vr)=)hk%XkPxYqQ+;ejHuxyQWBy@ zJ=g-YAtX1cn)EY+q-r^%fylMa(ovxeO|rsI)MYsC2!27$KG9d6ob*2NMT3`xWXLNy5>~`|me9P&ii} zTXWJ3mZGGB)Uct{0tRYmI-(HeIsb6a;yHU$J+(v`j~&ndeur^nn)>UUHgvG6}%o8%FN{cg62h`K#D|F`WO9B zsPNxU$P8HBzCS>mL=8^kKUY;_JYU2x(!9HeY1;#1Nqq2GA z7;>2H4cwY;YKsK+BZit=43C{3};h>)rReNW)7VEM4^a+f>62}kYqG5SAG zm#8|5=j+O#9Av!af*$KLz=c9RzPQy@| z7Snfu*_H3Nj{zqI>gWJ*KqQ+>Zb*Ld)~F*Ti1H9&ertUI8{(;YGP+dc@rNHMjQ_cI z7`3B6MM6#D;~y;4cm^&m>3{K<6@&WpJKjf5*6_G7+f<#j9jJUwx+i!sf`v)?6VYa` z3e0ckEmz~3G^4O7%^iuV#@ko!2Ey9I*NT5EfV(7q%tTB)Yu+0{mjo52;Xdkv z9ZqZ!*3spLc3G*>)MqMwh+!P*n!u4NUd2Typ|4OqQ0!@6 zLN%fjTV$^>aC_mICI0(k>6YQLrQ28LchG)ePty}E`2V8P1l+qo zP|%gsQrMpInwApDsCq65G1-k&Egr|^-@RGEBlAa}w$9PYUXatH7#vMOvS9V@3Bc(X zv9(JDZo|#H{tZqC0q)K61EO(?_K0NpIpkekn+W@V=3kA`!T=FmH`rGX2uH|Je52i$e!3P&U z2Ms*+^zUFbfYsOcJx}_Ncn$+YAM4498WS0=s3j{MXXiBSkpMheXbbi^D^<=Hsa;-W zecA9^rOKl%w*zbQfBCB8HI}zM9}-hicKQpA1AzQU$&7mx)7w@gY+0ljdKqEN!~KCE z8EAu=(u#u9xBrJ9+d2xdypBc)1wr@2l)%m7=Q;0b1?cjUqQK4dIywdfI*3bfSGzM$kQOUteOgS2v=QWuOyPn~$JzjoDT7tpc$@{UZ@sZ*+ zCW8ORVwrf<>2BU8eC0w5iW$ZdhrO0!kn&Q96fL-x9D#X9k$^qn+KIfC6T-vWOHP#c zo%{bFk49*24F&zo?;dnjG(ar+I$>8=DNJ%ndBvDv%aHT>O;s6M|2ao23X2Su5gbs6 zNb5m*;(XWf2XIcz>h*li$tD$qi#{Us6@R$Dr6t-A1wi7Ti#;G-EWaRvTz!r(X;3B$ z{$6%S(sxo5G3tbIZaMs1%%y6g@-{GKE)t#&-LVI zB(;a|^?%ukwixgsulu{B3YgKv1tlu?8p^LmO6k8{6XybLx3r>Cq42KW_WvpruL7a^ z=w5a1pu-B-4JldR3Kr^nl#Ge&?-JMwo^@r`Vj@b55~cdDu-486=VOw_P!)6wmEt#I zRbWTzSpF2uHvm0KHlq8B$up( zM6Pld=B2z<7+8$iSKX*oS@tESOaAXMe5Fw>OMwU-E?#L$(ffFjB<59Np*kHChgufd zNt^2m;cHLku=@Xc!56{$Xs9S%|7}m(XA)j7u0;b2?F$^^95OU_AqW4^0BYBj6#4Jd zJ1<*CfCFv!;YAfaK#X~q)Ox58vEccA>s<~37?H%FF(mij)u#&9KaOt~YakezJ|`V>>i0WRHH| z>hy&`ZYW2`e+Ad)3ak_{Y5Ro7^hIAeiQiut{On)6#^gq=6%4uoR}A4*j;%I#p6364 z_DwqVKUnPz_xxv4zrR9_iX~95>?*RWZGw-Zm|@4hO#Iwe{*^W$CeKP7uX_AqBT8L> z>h#BLrlC7#KHC`|m^WcZ5W%F#D#QPtb%o>d>aWnmz%Lb0dN~qwoD@f{%p>+Ox7O9g z;_RxIq;ECSHJxbx74xsAE?a6Fev;NdBv<`0BScMNqZLKY;BQ*~0qB~8bp;{r8bi1f zE$_cf;44yp5gD$$Z6uJa=)|HRcp+V#e)5weWtj28I}f*sOz%D+C4F9Z8lofK|Ha1E z)mo9EQ{S;3JwdaQO5-2~DVQ>7{322_D~?9tK5$N_WIvpGno=D4uOi{QSzQ>}9xbpH zw0=r>d)`xJ{%3&Q^UAHQkZ}n&>9#VvqOnh5lT~6#SBeVNpZHF-vpgx5<$SMrmzZ;U ztY(``hV$|~+~BLpbSL)iD9ep9Bz>uE1phN*X@-Hp_XL}*75NC#+Z0|>>3cyHZtE5P z8(%vl#n(5}nK_lD2c|2tL-q{_-&f{B&=w-R;8OkaRKAnt@sD-YON_7_K?-9UPoC@C0wb ze|MP+p09D+V5$5tMSFH}8TY(g8r;0y{Q^et$f*{w4#cX|zL=c#OfSwMgo%T+%7dI| zlG5GpZfb%nD3-(Xv6C}r?fA~&=R|b(WB-lvtbld@joF44(EgO5n-jPayngt8FYK*# zki$GWPewExL!c@C}xj0jTN zs+{QdWUG8^*DUpy3>v@uH6EvL%dSbfowDT|w|5LHj*N`#_^w~u!A=DEt7Pq9gZF;B zyDU#$b>`g9DsBkbJdf``qkPX_qWF`1_;dYo1Z-!n7=}we2-#@BHx?HMhXB$`C)x!I zW~Hz6IG8&RDRfIDjH2x&yR|;3a#0w{j|K7UvmUXS`Y0lwO@zc1(koDC7 zu6;47Uq2~wO?labj9f^OIKF03(bWb*7+rD}K z77WKX%(>%k!^UNwIO{M>HM}15`*5adi_m_6|I)PcOtxaX&YJD-dy5q3Sd>C4W!DmN zPP0co;I?OFCu-I-ehn(GONq|oJmx`!XiH!|WQ|V=j~;k>sf_XLHqVSD>gw$3kmq)y zgpVkk;^PT&Y1IPGrdn&!oZyuu7(oSgG&iOlG<2Bpaq|ra-`VcW$@H+5gs!)CC=JaCD`>yw4^_-WE*}wYu7WlpuFESkE^#i#ES>-mM8jGcW+5aUq551 z=CG&ob1e(St-l?%T8?|~jO@RubzVRA81V~|W~~%U1aUuXR!@t+lj_dg3G9Hx=J;oT z?100QGk%XX;SkREUw{p*A02^;M2 z*4*Ab=f^A3XUpbo+4Qg7*c?=LcEMpA&=ZLvr%Ki03U1>L2br}^iQ6pmn!~r9oqJLO zZV$Mq?r;2k?~8^(TU5@ozqIn^@T^b&7$EU12S1aD{$)8As7#%`;lHu%pP61eeC+%O z%WSRe$2l@$a1t?p+;{ffAEYZYC7-2Ba@PJ`fwfY5_BQt0hn?hB{0G?fT)>p~;AVEf zhU9*f=Vd@aXTO6%RW9@@=qL`XjxX9dbC)A#IXIbm{(iXshJUTtxSMoS!q%geCBile zZ;`lXzdZTWt-HdL&c%7ewr3MxXb>`DfX0j4R-Fv8usf9hy|Yqr&b>Cfr|hls<8R_2 zzXI_cBlw>!EIpzw!4gW+El5$$lRE35ZIk&O=^Whl$C}K5KT{p{+GktU>8Uj5wFGgn zKI9+_7q@JQqyOx1HaXb*9v^n#tl;SAcvQW{=7NgZp7Qs=RyRrSe4T7PjT^!3x}bx$ z%{va?ds9W9F&gc*Y;Dux!R_U0^v-j_=KN7B;hWd^4t6%+qXV;aZIg?0FyDs%-tUjw zi)FL2(xNt};P4E(5FUaTIGim+^OWf6;VqWTBZHQc9{eIIXkXHLeN&{?0p-%2&f&6r zw2j?<@~2LD-`g3b!W7uOS&Lf~fE|qG;C9@qm%9F*tytKn^@_viqDyc0Y;a4h1e?=- zg70{3@Y~uZ>4;mGMq<)~l?M;6`(p#P&83&to{5Jn*1~ogTdVvY1D0Gso-L!3%iZtR z>6@~ibxF>X2EwX1{(0-^0sd&`R<#4?+UokI^7vp?i=E%#quVxFDm|*4u$`mU-#`Z1 z-ASC4UV2pa4>N|?oRMQ{7RZqa+^8r17`=Z9zh8+4v9q3p7?pv+&EdzMN#Cm19`_7S zqL#m+cV}V8^z++fgHu2<)DQlZle{75zeIIr6@O-T#5`hy8$oYx;ZcMUahQt2&Tey} zG|RaB=x=QB7MK)<`v^q)Mj~uIz^nTar$O0-Gwa`-X>Faf+71-!kQ%7+!^-XeX~~5f zvN_&DFGW-;ELAH#-F^b-v!lUvLXXA;;)hVy!JQ66ECZq)4nqq8%5i5bc1SX~84t@4 zhqe4^z<(y3&Y%8*nYT`FW`8V84^ZY*kWQ3zL#>b{O0IRCul3we_LG$MR~_CN9t>FD z85?}GUB|gp9q7DVohYp|e0zLHsZ#aN7NHNe5TH4r`2aKsq4uI;51mf zgh8w2ZQUIgQ6W$qTpR4`!ASJ{FS>0 z{mZ0*uCAEPO6S631qf3s=u?A`?;m1Rl$8ETrcSPDz#$#Coy)V*oyKAK{^x}8%2RRl zNzN(Pr4vWaCZ(qz$96&<`ehGWBz~)Q>3*BpvpE*f?4MB_!?9xy&L(KfYq63Uth_&{ z?58N5*yAvK^er*?Pi4qT&e7ObaQ~p_l3k+3|BxQ-3-<4lTe=fievhOx=ZTXIPN{W2 zfv{J3inGD>du9ggH78n#J9k$wOLy!nc@IxYCI&ZOt86*;&tzq4a*lQa?EkiDC%mUZ zdIt+TiG%HJh5R`ma_EpVCplo=?KUt~`#;C$^Uz=7ZL+p{JhO5UUFs75|MvIU`v3g< z|DFE-*#5Wu|A+s7zkYpm=J9iupZ`?Msf?13&_8!3`D_Bvg6_LtZ(X+RkKJAUY>l{l zZPjb{eP1uze_K2M=XJY}bKlR~o_1_2&$YgTMmpdM;!%GdFpDJWHmBB{eK+gihPc_O zH9tR2jsMkK|LgnyKdbkDx_bYI`u?xy|8Lj-|H>$C_SYMgR?mNaoFTb8z4q(XJykzW zRsMUyey{5FTKzr0J0tDCyjyPf_1kf~&+m@g|Nr*8dF$h&32W~bmi1hp7HbTPxWmAR zbB@-(cCKfAWLxT=KA`2s>E&mVzs;!sG5h})^ZEO`+W#K9{r>->{Xa@;eqG%?|Hq5! zvf~o_lW&?P10C9TFv=KMFx=X3V=g3L)XM-Pr$0fmtUPUvY;&s4V_ - ls -1 apps > sites/apps.txt; - bench set-config -g db_host $$DB_HOST; - bench set-config -gp db_port $$DB_PORT; - bench set-config -g redis_cache "redis://$$REDIS_CACHE"; - bench set-config -g redis_queue "redis://$$REDIS_QUEUE"; - bench set-config -g redis_socketio "redis://$$REDIS_SOCKETIO"; - bench set-config -gp socketio_port $$SOCKETIO_PORT; - environment: - DB_HOST: db - DB_PORT: "3306" - REDIS_CACHE: redis-cache:6379 - REDIS_QUEUE: redis-queue:6379 - REDIS_SOCKETIO: redis-socketio:6379 - SOCKETIO_PORT: "9000" - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - create-site: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: none - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - entrypoint: - - bash - - -c - command: - - > - wait-for-it -t 120 db:3306; - wait-for-it -t 120 redis-cache:6379; - wait-for-it -t 120 redis-queue:6379; - wait-for-it -t 120 redis-socketio:6379; - export start=`date +%s`; - until [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"` ]] && \ - [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"` ]] && \ - [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"` ]]; - do - echo "Waiting for sites/common_site_config.json to be created"; - sleep 5; - if (( `date +%s`-start > 120 )); then - echo "could not find sites/common_site_config.json with required keys"; - exit 1 - fi - done; - echo "sites/common_site_config.json found"; - bench new-site frontend --no-mariadb-socket --admin-password=admin --db-root-password=admin --install-app erpnext --set-default; - - db: - image: mariadb:10.6 - healthcheck: - test: mysqladmin ping -h localhost --password=admin - interval: 1s - retries: 15 - deploy: - restart_policy: - condition: on-failure - command: - - --character-set-server=utf8mb4 - - --collation-server=utf8mb4_unicode_ci - - --skip-character-set-client-handshake - - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6 - environment: - MYSQL_ROOT_PASSWORD: admin - volumes: - - ./data/db-data:/var/lib/mysql - - - frontend: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - nginx-entrypoint.sh - environment: - BACKEND: backend:8000 - FRAPPE_SITE_NAME_HEADER: frontend - SOCKETIO: websocket:9000 - UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1 - UPSTREAM_REAL_IP_HEADER: X-Forwarded-For - UPSTREAM_REAL_IP_RECURSIVE: "off" - PROXY_READ_TIMEOUT: 120 - CLIENT_MAX_BODY_SIZE: 50m - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - - - queue-default: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - worker - - --queue - - default - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - queue-long: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - worker - - --queue - - long - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - queue-short: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - worker - - --queue - - short - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - redis-queue: - image: redis:6.2-alpine - deploy: - restart_policy: - condition: on-failure - volumes: - - ./data/redis-queue-data:/data - - - redis-cache: - image: redis:6.2-alpine - deploy: - restart_policy: - condition: on-failure - volumes: - - ./data/redis-cache-data:/data - - - redis-socketio: - image: redis:6.2-alpine - deploy: - restart_policy: - condition: on-failure - volumes: - - ./data/redis-socketio-data:/data - - - scheduler: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - bench - - schedule - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - - websocket: - image: frappe/erpnext:v14.28.1 - deploy: - restart_policy: - condition: on-failure - command: - - node - - /home/frappe/frappe-bench/apps/frappe/socketio.js - volumes: - - ./data/sites:/home/frappe/frappe-bench/sites - - ./data/logs:/home/frappe/frappe-bench/logs - - -volumes: - db-data: - redis-queue-data: - redis-cache-data: - redis-socketio-data: - sites: - logs: diff --git a/apps/erpnext/README.md b/apps/erpnext/README.md deleted file mode 100644 index 36e724f65..000000000 --- a/apps/erpnext/README.md +++ /dev/null @@ -1,21 +0,0 @@ -ERPNext as a monolith includes the following areas for managing businesses: - -Accounting -Warehouse Management -CRM -Sales -Purchase -HRMS -Project Management -Support -Asset Management -Quality Management -Manufacturing -Website Management -Customize ERPNext -And More -ERPNext is built on the Frappe Framework, a full-stack web app framework built with Python & JavaScript. - - ---- -Wait for 5 minutes for ERPNext site to be created or check container logs before opening browser on port 8080. (username: , password: create-siteAdministratoradmin) \ No newline at end of file diff --git a/apps/erpnext/data.yml b/apps/erpnext/data.yml deleted file mode 100644 index 385dc7f24..000000000 --- a/apps/erpnext/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: erpnext -tags: - - 工具 -title: 开源 ERP -type: 工具 -description: The most agile ERP on the planet -additionalProperties: - key: erpnext - name: erpnext - tags: - - Tool - shortDescZh: 开源 ERP - shortDescEn: OpenSource ERP - type: tool - crossVersionUpdate: false - limit: 1 - website: https://erpnext.com/ - github: https://github.com/frappe/erpnext - document: https://docs.erpnext.com/ diff --git a/apps/erpnext/logo.png b/apps/erpnext/logo.png deleted file mode 100644 index d6bceabebabe49a05e60c8d8c3d12464ecac7848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmeAS@N?(olHy`uVBq!ia0vp^DIm6m?0hofh$|;YUKd{@4`15Gi8`#ZG3ySu zx+G`SWW1|=|K+ET+tYjU@%Ng!8~4OXv{gLY)9ogGmM_Y-YorN23DjNi zrvE2@QOTXfG(kGRT|#jWvl-k(pNYx1Apu-IZ7HtDK%gg$@#tb_iymus13 zJr=mV{P6U@bC=qFZ94ex(;5+(svn`4vi`p@P_#m9d6q&+_xdL!=j zwYuh9$o0T5398}VA$GC->o$BbzNe~$VVX#H!u!i}>v!%v{Ab;3#W;6sB$uE%ZbyB- zg?abmr^sO_?=m-{n{;XJj4xDxw*vdtgfKit8>H z1GCv2au0sh=@eHrV(_xOqTRRLb5qsQdYRb&mf3rI)*g83(79EVhkw!KiM9HYmYe+B o9sA6G8k}I1HMaUT