From bf275dc86c2f528beaf339042c7bacc15ef1a2c9 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 30 Apr 2017 20:28:05 +0800 Subject: [PATCH] added path_extrude --- README.md | 1 + docs/images/lib-path_extrude-1.JPG | Bin 0 -> 27720 bytes docs/images/lib-path_extrude-2.JPG | Bin 0 -> 26003 bytes docs/images/lib-path_extrude-3.JPG | Bin 0 -> 23089 bytes docs/lib-path_extrude.md | 127 +++++++++++++++++++++++++++++ src/path_extrude.scad | 27 ++++-- 6 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 docs/images/lib-path_extrude-1.JPG create mode 100644 docs/images/lib-path_extrude-2.JPG create mode 100644 docs/images/lib-path_extrude-3.JPG create mode 100644 docs/lib-path_extrude.md diff --git a/README.md b/README.md index 3e385cb2..48e1dc0b 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Some modules may depend on other modules. For example, the `polyline2d` module d - [hull_polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib-hull_polyline3d.html) - [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib-function_grapher.html) - [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) + - [path_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-path_extrude.html) - Transformation - [along_with](https://openhome.cc/eGossip/OpenSCAD/lib-along_with.html) diff --git a/docs/images/lib-path_extrude-1.JPG b/docs/images/lib-path_extrude-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..7de7cadb6a5bc4910bcff7c87cf11c6ff215be3e GIT binary patch literal 27720 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 LcljvqgD z_SA{TRyF(4!3aq7*{*O&ia=}jvhaD;>78Hf2LnOvpSZ1aDqc0 zDD})a|KT4|UzSc@5s-OW(=jaVqWXMf`LGvo?ilMK*pIRUQ~*2o0X987{x^Z;(WXCACH)Q5&-VSWj?Rt=OK!y z?HiZD;ktxL5KtHnzf`ZnYrLSpp?tpFcu~$MwLz0pOdAb3j|3`vu}5rNqtnU|Gp3@N z0;yddZj_prnRW%TTA8uaoJunHCuond3GbhSu-2yu1VXs2ew#~Cu1kjPd4l(~$sCG2 zgjAG=q*1?@tGYof{vc#0SlYXPWK!Z`^z6xU=_airEY1#t7Bo;p zR_e1$zg1IH(Pky6klF=3mqHKdTX2=F4I4t3?}kl|PU~XI&l%#o^fGjnL?c2sTecvbJcR23Zzsg&H@FV&?!6tVCR^C*d7Mi|fT~W+qcS ztG2f_LAejJ+QUn&?;=l==s?ZimXU!A zrJhoM9-~`b(LOF6h;8g$Owo?-&zqe;d~&G%CA8 zOvXqSaM*RUc(dj4(4od8j6$sJ!p+w&_A<==$cb02Fd^MfZhYoWYlIN#oG><(j}E5~ z0Xm)m2Or-ZEL+ON`ve+nKC+Vy@#4hPPS1$Qr0??H8AF4>`mj&yD2)iHQZp~54BdF# z_T6@$OdP@S&n2DkQiFAS?N4jSr}^>_LT(p`WD>6b43%e?^OgskI8@h-wuQ$<%gb{k zY=W*Gpxt)pa8_|4l(CMt0f0;YZ214j*Dg5}o0x9I7BX7w`KT$8T0ESV=M%zRfLI87 z6FwP)^P4&T6LAQLS-2LqF-kN%@Hzn2sq{Jfu_&zyy&~KMEs^i@x*q0QRnQlx)i+w)!&qw{nlTu?< ztX!N))*6bqGZMmqB0t(_uk^J^U< z7DhB|P*1B}xUBag&wcGr^OPHWZj**jje;pUdk1@yq(R z8~?koEV3@QTQ6kr)mM*#u<@Qs4aG%0k1AUrU|xhzl{V-be{$F7YziL#`U_Eu1eHmn zHY04Hw6s%S2q0H4Z>oDU2lW$OVi*3M?KHN5qaW^``-3uLRFW~@l zZGqj%#*?veza76OfuIoOGN&C3FecoM&3zUrq<7lV_}&iJ;d^DM`9N^7_sd02ovOiG z(P9^4ItpF#O_=E|i7^mjwXB8%C5n&7yrmBLDUViD7pE&S3UUCgfh*T&34UM?D{I** zU-0!Okqwya7|(n7ASR_G6w+s_TQVue}4DhAyhQbG4K#@t+Zw3dqBbTnXAA3 zeNX@E>xhLzz@(C!*8-i}1R{=Ifc#KxK$rUm$G4DzQ;w zTi5Smoavo~M%}!+33q*c-dxQLo9uZ#JuAaz&TqCRqm( zCYdnqLLkQeTJ{D}g8z4h3IO~!2KyWzyY#e0^oiEftsat{q=;Knc7jI9({z_g4p7KM zwiN(zAg`*|U*1#tdO)rRjq9*0S>8xJuc%bhTqF396Tv~s#42E@X<;8VcJ2v zT&5hYDKAMK#N#>Gvhm3*$}X?tVgP|exG^E2fs21l za$w;ga;)oVO`ka2xLi!QQhqsH&*v*ezyStZDy0GiQYR#P2gM7WN}i=|eydP&EZ5e) z5QoXerh0jpUTVyh!=%oOIe1`}lCp=*E`1q3urg1dUvn$EzAn3E!h0px6cV8bmY;fo z=Vb2`F(w3eH#9)b$A)%Hd2_8=&%@m~lyRgija1h>6p0DfD3Zw!CXCx&YZ!MOV*-9V z3O4l&OJV!VUBkg|~Xz8p(!zf)2JlW18Sr6ppL@O0Cq>?!?75j>2yaa{%f8 zD^mM+eEk<%z`xx41H#wSG@2cA5B9C#ibE+;jiUaON^?u$O0MtY2rn18P_->*Z*@* z{d+w&zuh&#tnC1w$sw=QQ%kU}v;UgV?1C{u6KL5(28+B7__vC?pSCizfS6Ak5MBn@ z1C5=_#wl}VSDkIsYaB_Yht>7hm=0eMTpK?nj-Q+VF}Ja1#8Z4D@<-|N3iZ}=r32B} zmPeJ|+A-**_Im)sZ+~IJ|FC}JM($lK%*9oi*en>#c|YnQ-n9E}8^y`q6rrv&43}Pf za{Fk>UYgT4^EbJv?{@ryvf~C?R~XFxR?i{sg7+lJ*p?BG7klTw`983xucUdn4_e0$ z*(d4BZOBY2Or8n(j~e`&AA3lx{*q<5l8&j{z&tb&wJq>D`eeGdT@Jj>hx$n^{LeX3 z#B}|43Jpf1?^q=_zx?bfS-!xg^DM%LF5B0OBJH|rUHx$+_#eZinR-T~wi@&hZAg)p z?=>~Sd=zvs#3eh|OxtXNU{^V&W~!BG`tD`m-sh!n=5HPR-|g@xWU)rE+R@A1>e(lc zd5?4c*!tlzxHv+9?0ib$hg_0hdsJ3Z4`x^ zD$#G$R=)wdYF&>a!BNCyVtF#lpcwy!?vp0>lzP9?=3Awj}sxMTBrAO-N_)aG0 z7bUs&G=H9dLk8YJWpvo@n!0kTpLjFe8OxyeLR?xuS<&mRJAq<>rY=NbvV z9~v`JZ*tkY2XhE8s#>IX_;UJ&qNbr0-pQTt_6JBlI4>#GCLYE=w7jFJyATPtSKPau zbEi2%;s#gc>%7`Md(Cg+_JY+I#?-b-g0OVT*)+j6F26k|g7HOIq>u|TG^PTwk<;z< z>X_`!e~8KdsCC3-IG{mXYOmnN+|I-QpixFy{#^wI8ldnmtCPF;cFzq2FgFrIlZv34 z`7_t|)%Onpb;o7D)|(hX?bH3>mdT|Fk%=TEh{UqQq)09Vtbjfz+$lJe;JXVSmCw~# zf-ytp`2x6}C;EDBx65c(Hg*{3_&!;kv5x%!gUxicMzy>hVx#CQEEuRG@*~~3t||12 znT3aXv`Ez-o_sfx@b;z&3vD5o0yo{GFx;M7L> z*}z&{OVyL_zL|FANG8z)i6+LyxsO)!RAx}cIpsmtJmUIJ-kk4-aifnK>b_mE&vVGw z#R@$d>x!ikoikekb$~CYDT^^bU`V~9=B)c!1-&)qUzZy%E(`Q=7FSkgw(6B-es^&Q zB?O1fgDm_&*{N2q`f{-y6`)V4KLH>AM>6^EUpn!3J@M?VzYD7Rhrg6H&Ye`b{2z4f z^9{z-lMmM|W8I2pLcI|nak*^YmsdI6)#>lVn}{D^M2o-M29a0{z00cV57^!NB4bGpKD873$E6bwqfwnZ#Jm7Re z6Mcg}x5c<$AdyjxSVTy}9@No1M2ak(pw52S*jeo-RALHLTVya1{(U_fQi02J>sf@% z`|t%7%|}o9lJ@SGA-vkhIkpa}#2c^l5ns7?X4&6C3wXNLw7n@6aCN?~@ulgw}itaSV>;n>>&UtvccmL+gM~)6&)k7P-Nx4KfpM%f#ch54Hvt=ia6n&G?uiH z;ymjYt`%;Kd5;wi(C$yk>H_eoBIymJKUC(yL z{EJDJyh&zNr*Kp0=BQxL05!ts5Rm?SdTCL-IdBy^u-|2Dj<~#dPRc;1=gaddO_EF^ zPwsOAI`LLiJ1!8OZy#P^`u;Y`+OOkYLeD@yT8ZoB@;v-ILUV2th_adqtM*dBciC%4 z=h*+u>wETc4q%<0o>+zd3X_9XtHN6S8ff1|EMA`hSzF$dG#6k{I@|5GbVh8&G_xs` z;ggx}q1`#b>xj`_vmId%HFZ6r+e5zLkHwFVV>8=rv!7$EYR8RI_S~sB$+4s@PO{Tj zNwwJ%B`4bty>pcgvPK{q>G(TQLf9@<;HX@&aM_yl12>VLL8|L!NU6!DeVs&6ol zv)E62^oaZqkJQl;eYXF;CdqV)Yq1rS=b0<^nKWhbt%ZC7~3lncnomXToe6o94r8)=WT`+4Oo)v^Q$Ujp#1ZWteTw?qexK=HvncY}2 zo4b!O3^C|8cVM-Da!6d^5Uv}4bLWehG0n~L}RTMo5nqM zIr^UirZt6b0zRC&fH9C{w9@DI)klBM zEPBPIlCTlOa4kKKj<3_+Hm;#`8tM5smpvbBzR&TFS{&gEH_esYG}hUTgHy|aK>yJJ zJ9k>4;q)D+A=qWxPGY!id8~95CzXJsA%oXOGzjHJaLR^7NCIh`Y=2L+(rhf2N0sxd-SIHQ$HS$Fpyy z9z}5GzXv$?;lI1+|D``eqZD=5-arb$XlcfU z@iw~>ie=zxw7J`E_+(=I3oM9$1roFX$m!C}H?trtE@Pyecb!8?AoLFDUfBu+dAfU; z35PS;&$5i@L^i6?OTuu3x7VlqmMb}$QW}J3#$%?joLp?7HYzcsa|afIc59u!&C@pN zL53B{&DVk_AoA&n+1ce-Y_w=l@xI3zICr(~lx=Q|WQV?O=S&%$kQ>5v_Wdy2^gTFx zQsF!rpHb@6N@!LUs_ROA;NWZ6r9bVRSYkyD*C@W8A|i;1r-U2!6G+gz#K+N|h!%6` z_p)V9xVn9V9XYMorL6GdY^E0|ADlmfl!MX32V9Fxff|i>>~gP0YOWH{S@ZFrTqQ!D zMv7-!oMf3Pdx=P90?G;wZ^sNy!`r%`UA+beDy1LP^2`wpyN7_rSxBl_%p29XzKy=+ zu>xL48{3*bt(ukY-B(BM0st4tkDAh5qbqYP*in-Zcl2#IT;a+g;H|>Yv%=zmWBY#A zCHsb5dFoUv_Z0(LV5zfL888+5$2TsI!9`5>W+BA&8^gEzwps&{-!{A;Mgc~78BXOV z(L)g;d^ZVxBJibjN+NVF=?v1SAm-TI(A06SwQ9yPj zllwPD?9_Btg6;}(CnY;u<$E{!`Oyx9tFUC__cQKsp3-&u87@1+2RIH#4Xv!`FFP3? z^zn^re@aZ%*l#HmiUqJ|n)D8;pLHvT!TM0?u>MNZwDT(ZvsMAGa~2DnzDu?f(-h*o zt}Q0uInLK&L7>|PtIfYF#+A#Zq`r{XyyGf~4EhY{Fuq2(`#ZsUfW7DtkT++3?2fRo z_n#dIr%hys!hzT!pe#Vnyv-6j;x9PNAj=}4REIQ}{;WXfP+~$G$JvOPtSMEO-|=xL zHLxhg`^WL8!cpKZt@o>I_P#+3+FL{RoZsz`_TK|~5vI@+7N zaN}nx7Z$gL;Z4F~vnJJ5OWu5&A4)>(cy!)eK5Jfk<5HhVdXa3gl1LD|#EcUOp@l}k zmj>XH8(g+}wJEqfWahKz{`s|XuTNurc16-Dj5;2-CHd0zQpX|3B(t8JiZ>^O+=P5l zy=>WN3wjnxN}y|o>Y32m^eHv;&%X?Ye}#TWPR?4foTVmE-{KCIvve&gAMx8SXDLV^ ziZ?WY`9mwlm#Q~8925IhX@NoSbjVkie}Q;Zk( z?dp`jt0_*tZL^aB=gotDP1J81Acw@ljsAai8zE+@+lcAe*JtgnR5T#VC%Sbb)E>K< zr|~!)poQ5@abP4+=i7(kfD|~5!K^-|4;9GO_xwJmEJVOm7*9Z^xxsKk<1E~z4A1ug zaGb5t`w+lCtw?_~?*i#tSFD~Fb~q1q4lp>V25(vP4$uIe!d;}8z~=tr3k?^xRKss6 z6;y25yHhoe{D!;Vggv%%L<%Ok6S5fw{PY(f0?|kND zQ?`pyep_45X*x}dKOxPYrx9b8x3p(Y9e66I~} zV%d`_GdhI*q|09t#M~);ZOLtihER{_r01S)u$!mBL*U7#dF6bb#SMy>6V(OR8849)vq{hER<(BWW!*H%Sdy^^bC9i@j0xEa5v zFN-lnW-p)SjmQf0!x4rTmdy*WepN3vLmXNjXngo>++MAD9t;z84BfBfm|wZWLi>bS z-te8)O8y&rX|F5d=H{NK;y|wJ5j#mE8Ei?|NvK@!oPRoNFIYe-QOB22V{^zW?GW2m zR>VO3X-n$U73OdRapS`)Sz!J-xqiU)n{ueTR%?rwY96nxpIa|jT;(9RsSm(8?7JXK zGFkXNZYC3I<=3&}MUOz_drz@~w0u&bB=xqf4XBcX(MZS=x*nnNA*5~_)te6u!pXGb&)3XrDaZJgClN{WmgT+LX5@6ASQW!d`J zD%_3dIS)PS^?rTXPZ;b|?q;y0Tb@|Z(JIvP?iv33NAKU`9TvauHFpFwRt(e=4vG-i zd_B05kg9b?;v?Y~uFV{Dk^}5)AhhfGxa}6K@+m|K*kn6OqZEM!{3Xf2qI)4Jo9H}q za*~o_VP}pTJ4KG=u2XsJ^(E|-Hot9Gf2?edo}rI@+VIsnS4-cWh?*z!Wp4a!&arj- z$!=M(nkM^7|7P-zjrs+pazE>r#gk$BpS@<*p6eaP;D6F_UV2Vrgcy zMW<@4Xx=Di{w5&*Zw}%A3d8=(pv8H0M%aD#dV^lu@dJi^w$EjadLtuV2@D+0@`f9r ztR&NN`d*jpB`<02@YNjx)=(;&T4SQGa`)5<1FG-8IRx}9+}N7HZrfMuH)}c;JJ+vh zr_?W4@>0D|Nu4aBq$!3!wsa4g@4D_Y`n)W0{ieerSbESBKfJ5h`EXM@-rOm0X0Vn~ zB5yc$2pHrfgwnQy@d8yAf&*Q!2bwGwiJ)YS-r39du_3|T8Z;dN;}9|s_>BE@H__l~ zB2xWqMxv1!nP$)$VXqb%9J)yW3Ofa}$}iGKx^XvF7XY|vk+O5sr)2t#p$;kbI=A$+ zICAEut#ZJwdZHA1l-KXm-eg)wSx{Bm!p}y$Z`(!L@)uC83Fn-tqwenA86uUvsVy&4 zM^Te5HywRcJ*Xshc11dzqb1;|(Qt)N{UPAGLwHc&innaqSnon~wQqAoCD)nMknvbm zAN7p=$=ergW?~aaX(8i|1p&Rj^%| z-uXS>i;h5)Jz}>~;rH?h$SCzG1|#kpP>H-7QrhlP?! zI6_OsUCYvJH9u&c4D^~y+etLC@@;2`6y4tmT3)(c<6(*-T+by}!J|6$b#iBui@4`? zY+WkZ@$c>5_N1GsY`79%Wc5gVZJ9;tfb&JY1%|HsxS?I_QmMd&az3`{z0%&V1jlM* z=+SY{t=ps8vRT@ei3D+U1M^PoZ3g3lMu~(5;WixYY0Xv&lCBXGQ~O}>ZRD~)Po2wi>7p;s$ zNA*U0t|}UyYV`Z_NHhR&Ro=W}_z>{MaYib|m}bGAt2+xj?GEXpI~}190K%Ozg2*Wr z3E}R8-Exk!Dn2$SROVw$4ot3chg0!KMe~Zo&PST5{eJQBaRIOI8v!|~8WU-^kMD5~ z${{Y?bGZ;5e+J)(*oQ zvaRGzjeq`EVE6Bz{fi(5J4ues1WF=}I>pCmX`Y=-g@WeKS-{&+tgVS%9%y+EX_9j_ z5z!)T$-40#Fzon7~VBt(OXD!Q@`jf5qYVKEP9Is zG4jqYddrxF^Tc>d|E2;Tc?gblU0a_JS2q`0da6I8S9Z%MaZ;e4Zr~eX*h4aa+q$M3 zB|}ymnptc|CqhzklnAclhFDcswLXzZV`#r-+V`!d{-72m={CWr1v-;kUS7A}9~*~A znTSnn&MFREi!cEkJN}CEKx*XEmT_yZj4T?T(vlU@)^~q^ngYjSr295`6emYbWV>p`bZpmz|sD-SJaiR?%K*qV2BHkH#^B>uos; z1mZ~6J>W+0A)xSGN$2z|uKr47^$5w@%U)kr`nD?jK-d7#NUCmy<=%R!VpIe!O!JeT z-`8kjG_~>9{CTgD>(tZAR9aiq;?6n|vz-|D;f+tIBlmdP4o?Z02s3(z5g}bME}Vj;JL-|vz$bNpX+9tgPNxA;1KI=#^LTbaG6;! ztwFZdPCxI)t~|T|HpkUtwNAuw_rxi&FTSs&6hY*D?u0Qc1|Pid%qh)Wu^;`J7B1SG zA{LF#E+g_-Vhz&FQ4sF_N^X|6iXTn}{lr&ABxJl05cyBKFoe#zuN1p)x(-J;sp%7UNNU3;|1EmI-$cSShkQgi&JBLPi+R*xi?A z$@6cUhrMaGn>>bK$i0{j@O0cqA^Ki3tucmc6rEm z+?&7TN`CuUp}_fQ2zP`oLzk~^*lb;S}e1sT2BM~w^ zQLZZZ^xGOn5ZyPm#EPM3<0+u4(SKO|th!pZta+`)Wtgahs!DM5$G*PHH;B#jDM4&i zF1TzH3mC#rB!1@ZJtPN63XLQxzkeOKZE{Zk_8TJ}A&q=|2RBVktriHp7+P}G<8EnJ z@Xf&L+gB4Iu5vY$u`JBM+df$Tqy!v}!XIryOa-)279Z&ikvqRLOe_u@idr?wKq+g9 zkyMROU2zzFbHZ(D{S$n|p4KqkSF0?F6C)_ePtb*Dt89K4D z92on)^3|`1?R`vCE>fXJ>g9NpRc!lajP3Y>pqco9f4Z5cUay#SLY&O{v{|*v`uXpi zz4u=o8SeuC&T-Od-M!asMR0akmP%k_oBr!dYBL1i&2Pxw2!Sf7Gu~0cjEC1awwZ?` z9j21v&5DPfiEdm9uRlmG6(a{OR}E+bA%ZXVrX>U2ePci&;qh+NakdAuiqe{6U9HuX zDj!7(7cSrF@PQ%w2^lV?$B>^UJuUY9({ml(!`i-^Ez^K&V5U%~-&%XgIu}1%iMM9h zT_uvK{KmWK#?}G(Lx9O+zv`E|8N1VIjx$OoKWqDw34JkZ>yJG*QS6jTH0RAuSe-{c{abG3d^4a;1?nv9$dwfV=0GV#EZ(e~tm?KBzGCLL^nD;L}iUN-RaXuATH3@ZyTzI!xyl&r+ zm&b3ml4n1jM@r?F8oIIdc^{ljJ@m59zt_pQ8##Q4ZIX|Z^=c9+=yneEu=?_x7GAy z73xJl=rlj`NspEj__QHGW-TU(*Kxxw<7T1_^pWt)wI&hXv-LNw+oiddFYKUXv&u60 zlBZof9YU(1t7PG`kf~|U%IEZHF@B#{$7KHg(pYVpx_!Am6PJ})t!0FoOve%_osGA} zWLw}L1n=PAq8!5FtwAAgM5~g*I`$$p>1$U0m9G1)6NdSDSw8e~QU;6eM#-@I<0L37 z689o2`*Y;iDNPu?ULTLbheM-6X$Wz+>ogLZjw0lsfDNI0hX7TmGsTD$H>llFnX*)j zvjz^cw^~VO!gb2|Uk1X}pnvwgF_B<5zFT>tk0i4ug<9_UnHyjo=R3Vn47oRNI)N>@ zu5O^N6a9PH6B+}q4@1COk(%j+U5z59g4|tV-859mU5Yi~k|1kt|GoTIK6X_tk5agv zYfzm{d=yeqJQZ8;SS7zULIax)=Y&MUzuAm+^+&Z3<8s_}Z&KP-wV7gKEGm%&fA48Q zYQa;Wck{h$JO^hhvRoOeQ~BLCqc``7@k`Sy;?Xayyj%2PvXG+7AfU)#b}%b|1_TNi z(`=2yZH5QL7d5C-qsY?b`0~zn=$d#jB45b+_Vl`I0{HQUdY>JM zJ{61`qpKgz$8z{j=*@x%pUkn(ZUUZsq#j>y-bWA)MyJI2O1y8sv&kMJCh&U2Ae2fx zk`tiCa9F)3Ti>*qSY}q&OkxGo&#ZXbVavr!oV|QsU`RLq-RPuU%!+>Ez)b+3``5qT z=3n)1Wrp)5e###*EZh33%T2>KXrEAyU0)Qh^%fP{+YEAWNOnvzRNjPKCuu{?*+&ce|tx*WE&2{~kU)=$Oz< z^F)Zorb#f;@PM&7splKjV05KJM|H06XSUnSqN!}Dm zWf5&%%E#fl7rNBNWWsot%OZ9tyZe*SM{bD=4;plTW9>aZ0W8#!-)sAPVdul-9gE}V zbA#4lzgIjke>CY`0({hJsAZJ8%4Nm$&y7DzzZg(Ba5oQ;Eq(>Gpf#(g}i_J;| zfxPT|8L>*ppU!9nA%?kh!76Zky(8}eeW6Xpdbesc{YwjasAV36K?uuv8v^FRf4!oA z)W^tL?7NnXHtXd2<-T=r!7L{IP0YWY~xf5>Ia2Dz;;hQ0Y}eTi{-i+bGEsF zw-M!Hk9s4R^KDcUouRP}{egumP8}8oI<77oI9#$U@_S>Yy8~DtahygV5Cfqf1RsQ^ zj`B^sOf%;#p1zj&(p+yA7-PB66rtAf7T!5QEP^1-?$N?IJVWDJ<>a+ZyC-w6^07BR zxR6rpGT{Nt@^T5OYJNLo|0g%o0lYRCX&Gl6nt*ohHCLC>4UO_CL&|GvOv<^{7KIYR z&1S^eUDRDI;}df8GIK%=d!l8LUF9(%vIAtCQ8EGd4x~aMX6f=4yy6Zn#db}-Bo)Cg zo7nvBEoDS1TzN7LuNC&1e?AOv3a;dIZ-d5ybvQrf8+1Z>*H$G3Lk&|SEW-_`5JD0N zB(DF2YU{8Eu^hRemzC4KnqC%s$>wOfKSH+>2%z@(?gIHIbK7EeIEy;Xw+vgD|NXw`aQ(cdYG0BrtAB+ z=)2FoA<S&#aI>Q@`|Bfs6nz$5ECA8J5xp zxIg(A*Q$%6|Ks9hos*v9LJmbk zslxSM92b5QtvFM6_gjTp&&;RECtW28`joZp9I7ytxGv7#gZg4BB3Fo{CG^V09s+*W z1^RK?uGL%k&*p|hO!t$H4mXqSV-4CPdZx-A?i`s~9$lH`d}-YO6ma(1tA9Yv|7x8q zp0r3W%kOXMge(sv;H%tcC%YQgcy1zN_@o#?%jKY6+tvxWS*SV=(WvruQ$k!17ZP~^ zPe1>_W$QN<<@*q@oOTEhl36zXE>n}*Gu^4uuz(YRPIHKYWj??QplZ+n23jw+0Jtn6k>YLW@3~icZnuzX`VR}3Xc?;zHt&}7<*+>sDZ+Oq8PT% zrBL<)FyGz19Zu@5I`o3sm=>^|DpxnFcai33(QdLQWYGQW?9*_~Cua3ScU&wWH$6^4 zA7ipF{5g8Z1+cOBnkwE>!`}Lx(K{LKXw7|(BDuIBy^#v^bpr#3YxR&%HZb+#6 z5HPhR7>ZSR!-Lvfi*sl>nw~_NZ!t_7E=M|Y_ItGpYWdGwA*8wzX#Y!(5fNLM&C*TX` z4yw2MiL%}=m)mq=3ROXjQ1?Iw;u}%d>RUpCX|?j+CgXOJYC|Wqkl6rP`nV}G=}bJ(${N?Qcd_#cayL6Y}A+R1nEo1%$$f$+Wv zAMp9@#mRx{$SY5kL5G0fM|yTYET6zH?=>1Q2d7QP@(>1+ghjBeal#bsL9b_n@+8*I zO=aKlG4!JJPJdO~{`J``ll(4ZXwQ+>)sjsj$EN)n(}8*jXgK@LuenryW?R_@Pp}!_ zh_5%yONc;hizLz;5tGj=zg3^@_TiH$%&#$-F2<$SC|xNF>Cqu3ha<}H9|s~_6cog{ z^y7!QhOhE-;^waQLp@>@avk`ZsaBjYY#Gc|oyk!#Pua55k{;YiWL`x#Gf*pK)Nu@j zG+QM_+@>Sl;0jeYhH35Qa$wm!dz{za=1?@z__=$Cd)~++aktKH#=!5XSZlOz^2Fkf zyWVj%CWl2S&>J*xu#|ZSNN`+IQd0-YMwsW7>B)Qzqp&OSoa!PR0#?Qk0Tl|ohk!jQ z@j%CX^Gt6+|3qKW01X2EDmz~8V=9q0$clx3lg5ys8`=1^bpxxX#8{=K9JTgt{Q4K2 zuC%-Resd*uH`V9aSx&O^`Q{mUX@vr5wmCm&a7+PDVOA>p3~?O@+6E?Fgm&z0&^3m# zgm}N(!dg+eYHFLLCjIERwE@X{O!X@<-Y$T}*aF15;NNli`f+;DZkuGsZOxnvBsYhL=wwj+7{@$2%P zfNk?RVJuFmA*IP9=*v=`2eWN{71*@aTLamI}JhC9JQrJR_#(lPDaebmgX@h$n_PWqt^_y1uWy zO*z1*3Ocg<{)Q6@Q)TzE9brO_3xve)Zf=09l1HLX3*u8g{8{fCi2`R9GwSYjju_8N zw^U>J+P~u|EGBl1T^h8BP`5!f}gyycyh zD?|z(gcZIDh7MBR1dn`4W%DL@4^{H$Y`VvdK75oH4$~7$K;}^T=A~qwmzm@UGa&2E zG?RJ8wP}$;$p!bgWnEbZ5jlxA*R{1d6;Z91@~;irMMQ0> z)uJ)6sPR=+M#c=mBE6)uZ+kyZ>;gWa>-+xW$w!->tjs&)>0p{J%i5&X83#u{I%Z-U z7Vlh9-sxA8WXx~@`;BiZ-laAmuQy6x(~E7BlhwesidAXn9s)X+v^do~PRf=oPKyr2 zozRqX>x;{mt8*s}iU>Fyxk}25>5m*&p@WO$lfCUQ@uKsWe!0`@P0eqY-Jk{#(EZ~+ ztXOsOFx;hleTHx`Y3p6E6~l6*1l0Iw&DD7{RP!bPgE(;`vUEq8H?VuxBuS`S;}GDU zz%>c-EN`wx&%br`m)+9NDsT_8if5pb`dxc;QD>_H3fEQ|*pdFBT@6BUS`)rqP18bA z)XB=(L3a;0+>GF{r%-oWumRQ4QploIWFo8jzjT|M8}5|#Poo9f@ciSL5)@%^gh=;w zZ&w5G=RRUd%&|Cysx%|%nOm2CchBCRxEeA2cIRZCWZM#peRU)ItD$JD;sfv3Lys8V zjlgCBlR}+#uUU#+n%V5znQWUWo|(Z#aO2kAWceP?QhE*|mP88wo|l70M`#E?dkz|| zvLTWQevj}U@70I3wJa?d_k)d}7n%$g?A-n6w4?IzD@L3^T`fKl!fBT-uS3{p$rE;B1h780XC%<#qvXH`;3 znEdi&;)urqR5)t{T$Zw98+qx0+^WltH`(;Ul6!~{hA(hPyLTc_U0vt%R%JledZF)2 zr_>j_lKt6ut2aaVuZ02Uie}8tx zp-r;bO`tQGWm(zYe?Furwvk>uc-3gX*F;8A(qlG(r`S2RR_wzOlPxClVovE&|$lXQzgfkwBS2-&JRwpMs1 z*a$Et6L%mpY+K~&iXaIUFyJkzrb=Mnr;ql4gyCEl!mw2JQywz7c0kqrOLXY0rk<&m zILoY&lzlW5sIF7glwE4j-W?RPtvGzrZ?dj<*L6r1*T<&c)~+N~mpMQf&8)%@tH2{U%BN<$;CaV5LCJJ{H+*~>ZIKO=W~SA*}F4*@CyxwcX4?4PZr4S?c2T9U5PyYd^o!W z%$O~zr*8)y(38>IXDvpGPVp&)V=!GaQYJuSwv#nMv(%XZCt}+08!_=M;`lvWN4QV8ewA2(beQuk9k>uQ0Cfno$h0mB*KJ!cXW`0Q zA-=*d0w1^o-bmDn_Med%8YL94#l*SHY zr&)g8TyYKcOu6pGku_1ny&UJqYwx(blXSknI@)maubKSc>yx0wPj{xR@WjOXcZZ)h zi;^q3n|ecHF|qDyYC42$wgmGNqU8GHu@d2-6LptMP@i%=QW&s&NgSGE10wLuhvCXNw z^yYa9a=(DS)Vl9a0N^H?QHj1&v5pzKY!M*zoIUM1ZumK{b_paETv3e zMaqqpEP*`PKlQVI962gx+ZX!V-$H14ltiEX0|?$vxl=JpO??jUyG_S2E4q?X7_XU>x|neWV;`JSBbr#yc#t{N-NTi$P+G}_c2 zm<`LFMMirMk12*`eCoq5=ih9dyZ|3KAX%}jQ~KoSg#M*+_Lfz3wU27sQh9r>=#B^` zWA$16=a*I{n>x>{ZHs(*H2QOU2t*z2o=JdZ`)*t%mp}c|!HWIhuCT0)!Z2>{sI9>+ z{&DA;N^C|3DSaZypiWn6kQRI~f^MY$65BU;=9M^D1k2*jxM?wPO!Ke7{zv16u}7{z z{QIhfR{E?}#jofh@Cp*D_X|zvXX1JktbujO{IVU-7inRMO6Ov^;cQZm>{nrb>|v@^ zc3j5`zX||pSO>^^$Yl@x+2@9Se#G+r7bGBKCyL0?K<6;lkXnl!!^br8nbe)T>~!%~ z!n9>m0Xmrw@Trk5C}a;XdAu8*U|&|`dC_q$XPrXRY&$}ozSk)2om@iDB7OJbu!hG} zwz4Gb`2Q!8>H$|Ck@Xp4ug&BfZ;Ft}5cVXLzW+*Nnke*m$t3z|dS&ux>$6W3vKJjT z0TNj`7e~|Z#7q&Mnu_4(N{V4xOY#p+E9g3I=tQ%zTES5t(fh3rjp{;y{B`0Tf~=z) zdEzeFa>%H|l0|jN$+UW)^Nwa#tN(trOQj~ayU(;bNlXWN?Uf}V^M{5#X550`&I)5p z4~*q*7X+*>=``6bEn|y6`QAqOk;#w8O+UG0`)O$8XY4^*DdHP|2SYYnZZVO7#7%q+ zDOHXcmpJR#FeENk*|9@D&V3ZgZ>`D=SC{TzGI5Xux9`oEMQZBd3_DuWufmSrZS1m3 zcKFx{+18ONrIzmBfrZh+eyfO)`+~o~FNoj9d+V*7*tUfXO+{o1vn+~D<5l|MNT<>_u`$L5T(dPqM&-F3GOL))a`Mx7cw*r*O?DYZ93Va-WyC6HnN6$i4SV+qXPXJDdcDgOXlGDf-s0}zm9|DvKzaDw`ymBk+WN~^7*qFRP}*p2+Su-m~E+-n@v{l;Rv zF^y9C=$YY)&Y|A9veYu>c#}lfV@y$eU&aETK+Z3JPTqfOt3du}1?)Vh?L=Bq3vlu# z#=G(l{OJGzxy5t!!WvyRci)v5Kx>|`tdH1`oe7BQv9wcGmnhN>txW`RzcLmgnom2w z&Lga9i$+)-5hep^;Z}DwaXlpzvs!tfv&2oTMEin*xh+_e|x`sOdInOE^YU%8z)F z?m}8p#ERM2fP3m&%urWmR_$4Uyr1(r)OT^Ec_!24t`rnL9qantx#VY{2sCi;8(-L_ zNKm`G_(gr)(v?`J1Z^81-Iu+#4?o>2T7PL&ykMD|KbPIX(0hjG=LW>o1-wPSxMZ6- z-*@q&!$-_WF4??l(A-3=0fVisy)z{J@$0l;t=y=A1Y_N&mzM3#|L`hS;zWqSkvmz@ zNlD^*Ue+=x-s6%R?#Lt!6wC446p>a0J@DxK%DiMg7J z;WbY-l!OJAHzef~1a&yaX2a`u4SXk1A8m&$bX&65GrEd38y208lEZ9dpw_2yDh+<; z?23Ba)jnmXmWl;|(<3dG3@~7Yh|ORo)M8h?E}3xl4OX3)p7N=uBWaN-4Me}7hiQ*r zj{+(UTj<*7-!^EkS)&&D_?f@{EvkR`JnS(v=UR2kFT@GkQ!g!OMhPy6`-JJaP&e)D z&Q7!NW@4oO*8ji^+;+X?;~G(nFjAv6az2W()pPV^sVz5Wuw(U9g+L1GE~)s(=LFO$_m=d7h(zm z6)o^a`CQw~g&;m<>T`3))XDiZ7cD<4tlK+puix-7D7S5*=}yt_pVj02k~D1R39>5v zbIDrmj(I>TxMJn`hgY4;P!iGV)e)$dZ<}zslPFWHN!EyG>>=!CXwxjvU;+8>AdWj% zohV31Kyq#OcZC3L%JU=6O8phJE&9eZTST>1pm;ggmVN#`pT&t#5n=KHvD-1;YPDs5Ukrb|d$6 z*!DD!o6W1nHNBItg9@q33iY${(&oghjUI(}#7Qnp$9cl>j4%YgC_>P*r*oDh^=6(Qh4G-^AFqNb_W%Ik^N~ zw~lTW-4EdLtyPxbMaJ?n@H}Rlxlc}JUIB@yc&5)Hfq_e@`HGLrT&%`PIX}2g(u0~^ zxcb^n@fu_qqjvkF%i|Jllkv01DIHKuN;?z^11O0H`3|bPRYgoTe+?JcgSn^CPGcre zTQ(H~adgZ11O*;@{}Qf%%t=)3!MH|dh-S^)<|w;^#hF}4M{CGH0|S?iSa2x3jpw#n)x|B^z(-9lPjY=Tmd2e`-neKRmqajX)AusktEP~ujI zS9*9vr(Uj?q3pboX3FC*D~QI8pdDIRptklaaBD`!Skg=rr4v-e%K^$xN9I32eMud% zYem&SwO;iGL{PyC5UaN{z155Ti5pOpSmDr!&PcBmeYr|);?P;OMq*B~5kfFG0;&u9 zpt3CpsjnAPacIyq%*k3b{DfhPrFnt&*fqx|7Y(6S!6gF^3x2AcRV;oO{Yr;rx+JU> z!dsK_Ku@ipJ*?VjgVxY&Nn$!SWCxEA!FNfeFDZu|OZKNN-Xv8+ z{*b*zxRU7iP-G-=1L8lP`mz&w!SM{?H!a_$NC;Dl?xnc8LHDiniKPodwjCljpN!RO z1QwR3KK5D~<1>tN9KQsElU&H-Rb9YxJfENpUyoHW1rKt< zjFq{O*o}s%8Pks@DlJSgrV)>ckQp1*JA<2}>fSoszNHnaXQvbysACvUC)6$Fa4@jU zO!B?&4x1Ari~74_K7sMJJ12ph%n(b+Y%J=MOH$3lJ{nXtQgV^d*0>zhX~EsIC2dG` zsorXDYM%*6ne7DGOAx9MpG)`@p2SVw+*#$0kWAA#CCM97(|)oL7blCx{C9DkNcl-6 z!x1T~CU94uO?RJf*y*3QGtg*Kiw?0-#!0f|>gXB@Oceou8FfMUIt{n+*VaMCZwGVV z5Q5rxrV8`+YoQheZE<+UG~pEBh34?(?LRter7L;09j2xN6e@Od zg?X)uhHqU+^K)z3W-mhn$@)gqwR%^HX%If{>fpahpcadi!Z;o!gUaO;=QS zRRrhG6`@`NsVW|hxyp9-imN>llZJ}3_NBZkJa*=m!@kwcTdy8-IXtOpJEgoX5mVY} z@pdlQFI`D2%?N@>x))-W9og$Z-MwW5UX}gYZe$s20J}FQ834XI>ddPM%1ges<5l#E zaNqbWD}Ud29{a|Z#P{9b^RURgg91R24~Dv_F=81Vo%d#nX8|H{b1yP8)8!r0b{Y!w zJ!n45k(NVR7@auqJG$YRYaLeF`$Ha;KJ3jXOTt1Rp-BaOn1l+?g`C&So zbq$F}TT>n9u9T^6Ke@Z5;JUDv_O{-v+D??F)ooe{*Mq+-v&hBWo^#wO;a97;u)yeX zd`%!$*JG@N_L}coYLJIqzhR&haWsCbs3TWj$8&2`@rEfZ43N zx;z>$VUb6{c#|_j=n9l--a^WK4%l>k)gx3VXDv(%-y@B7t|pfSWLwPDzn!U$Jms{1 zy_*S|Ww(X7^R&d1z_bpS7)`OCC9P`-`Z4RvF&CM2w0lFuAprqwd2g%vv)--8H(doP z?p4LhWg2IyM~gJ?r#i+&zmU-w`?r7WeB7{Si^s7s3-cM&^xZV@80K>HpeJI)$jC8@ z0B!Z>X^!hWI`ihLu^%23k+kKX_<81av$o&M0aXr3P$orCgFDCAo?1!o`yg zvv11UqRvubve4Gh)W+sijmW6-{OG_F?6L%m+|-~6*etR^Qb}_FDy;p8lAn=uBb^k< zo0E@eR1X*TSOF0wCZ1k?IN~nrSl`xHHjjOiP>0er&{qKM&Fm?|e4Z)XL5Eyb8?LRA zdmj?2nxj|Ny6M?EuAL8N>)LU88+#R^hPdwQq+~4`FOePa`Ev0<{-k*foxL3l|8XZXR}@(L z{AtZEx1Rwoda491IwKQs^M_xNo81%Cpc+!&p_*ArBm2F-svexOt}d+b<@wjpsu8n? z6?blV=ep@#6X+51TG?as1V)QImo3F!wz*N22*0<^)wy5LsgoWlOHjmjBo=C8-PIKP zTM_CJ-@)F$nxX&P@1!O9H>NeC>imwOm%mraZ4?S#2vg^o9OsJwByDiZ$=82>#P4>B zP2B;TdB4P#(3h}Y-9^PBD%OSW!rDxB!)#&qz>T~rKf%o8u?7ej_0-JM6Md}r{ocoT zq-PvflmDg0L+1MhHy1<_5W}hD6Oa&vfXujIAJxy5w4CG)vRw)HhYK-caXLR5fmWW^ zfX1CBmo_veoLbbK)|E8MUVWP62_!re-^Vf7!nQ%_u6X(`30b+V!0ijO^dSoV=k#g4*cs)j!3QejbTL)!MHe9D9v;aG=S((+R`9bFBt%AUB6BEd~vPl47oF)HDl3Hyd6@n^$sU%jbsXyp( zUN1PhQmMVc%O~d&1}TM(Vm}B-6B%Y*l%w|UADu6g@-$)%3=v&tzDrA)UMhdw_M zcp~67kv4>>E?&0F!VzgqOQVrOr=yt*)Sa^-`RGFT?nZY>%|!hpo9gsO{#+(QqLFPpTl zII>aD1W{^u#~I_{({9Q0bEz&71pIoF%44Q-KE~apVxZWMNwxC824NB9qvwWA*>)M? zSkgEMD3{kpSpK$G?6?McM2puNv}f3fQ$+F_>HUkqffCXaAJ6PJK(1TxWfNLSP={@y zX;Y1wpF9oT6iD``3xY)z8BYkbZtDPI47HvAGDpY;m5fj{WNd`+L<>$r%}>Y7tq@R$ zb58!uS=L>a!pppm_4a9w^I#%Z{v9SMuA9Uh7flV*nXSH2b6*Z;!|oEg zSY#o&ven2g$t|g0z(@yo-<<3$o8D`w0>*u#^6}y7no{7YFpbA5pAy)!Q6vEi>e*3V zjsoVEgPm-}FirJNwQKWxHLRbu4NN{afd-NCFNfzzWRRaJZ+)i)bF~19uz7f-7sEJH z(u}W#_v}&LkNg%jQ-Z9@S5fwh#zpUHSm9dtTPJVMxEx=hH_kLO>~bnvu(jo5hvOh7 zzAh-zeti4DFAxk4LFeIWnn=z>iN=?MygP6xX8(jDEOl$$xB*!>*6%?{seWdJ^lIIyYhW&^$nJxiJ*Qa>A+*~6=L@Z#s#!#!!zVLAI+%f|U z;xtHM@^_W?Cmm!+oS> zdviHLK2Yi@NyF%zxA6@Pb&+26v&VT{xacqcb`mswX+s?<?U=sYZfKvcXN@eEwQ9?=!`e?i;cg;jP|!ycZ1=+&@wSm48i;{A zUvd02wJ{AR(>9G)`cu?kVebm$B=EqZq9RLQK=?iTVzk>zHlZThvmLsaN z%o8Bc>pioQyK-! zZo&Dl23JkBj)VQ1&)hny0MgY=qk6@c zmRWpsN!=dE_)%m10nBgkJ!7QMXuf7XwaZTaQYpyi>7GA2H&=$TnERD(c2VE;cp}HWn@pHVz&x zF5V+z{6`NTJ|cPign*cwgpz`sgq)0umiYx04HFF+IXxFW6ALRl2Rr3+Za!`{US>9S zHVj-myhjfoJ;TR;#zsv}&GtWj-E{(p@i3Yn4~Q}DegN747ywKFCI$xJ zKVMkbI2f3?5Ag2qJ^0H500!0rOl%z7Cjbmg%m2?FG(L zo@eyZBn-T-HOyRaN%=H`8TkbST|E-2>N-crm}IoxSMR@kqwVG%0?ApH)eX)4K6(H) zw@Cb)M0_s;;}7Xr*jSi<`zrTWSob1%u%Ak6xX|;O1t;u3%c&Y+;CrpviNnah{J#3& zZWcgr|6vT`2gCqLzzuaoWataxC&a`Uf0;;_z6Y{~G^sHe?w%aScIA1f_}5m;f5Xlf zq>wr5pGe-_wLxz?gK~$im)plKpm6*~HNF5=&br#_PW0$j{wJg(ET$PrLC$n^+J7VN z6={9h=37c*&+|sy=z{Kv9i?cB@CO{l=d46x*Pw#yBioxC)!L|sKj!tj8s>mNf!I5M z9ZZ`SWtW&FuTMQ}C;L5v?8&GquhanID?R;(H*c`sNd5Dq)3DQ?Q0|mPE(Wqsjg5>l zPSJrID80wUrRZdu?lPc8nw2wQ*-dPAifu*4PSa+$npG_1 zVhEE#gjOD@q6XwW`~-<%F|zRSRr7peVkvt12lUVXccwxAuUgW;utmmSy$oA>$*>ob zog0X`9LK_J%mO$CEfGVvt*+DkvXR*YiO;rMYn9W-zmWw*MBqhy_{UW0cr9t)=IWoP z0<{e=iu{uA&evH=33L4xUZW16;i90Tj!A+%AG(I`E(SNoMQ}E?C8E)DKTiWrXKGi2 zWK`YSoL?PEl8kzBUhAl7kxezvrt`y2aitjv3Ad`uM25YiG4f@_dkhMZJ*363REnPcnR>VRmZhQ&+^Hh5bX%FUNM9ytei&xIdJb#RSQa6Paj z{NvX~{O_#v-=z>N(%f>5-ul!9{wgw%Oy_p!1ZT#%P+_o=r@Fgpoq2`CVgNA8TTTq3hk!aJZ4Td<08LtIvh|i6}73G0TR@ zQx(@EoT9%2EBr9Di#U)Nc0sr8W0_^>B{Y{;E0A_j?~bIP=#g`e2xaQ_VxwxnRiB(K zW!))ZYMB%9cs5$Euox8$SRP`eej@*a)Aq-~B9Xp`c0)UZ;dS|Xx*p;tDdP^%ZZmWI zWn%Np_joRM?%rDc$-2rKdMyt!KXLVMwQQKbpoD?ylM-D|z@i?Q(Mwje9i@S$&TB!T zTWp*>cK{9RimVW3x-xL^u8o&;adbj(2F54KH~Q^q4WwSIjbjndKeo%0rir)0`e}8TxA5zk5+0(ClxQuqeC|_^Z`i7`8 z$3`6P0I5HFUV*_7q>EoFE+3aUp`B8;cnp?sRWo5#N}C`VpK;F1A={9C%fbfDCPfO> zA@P~2pQ#8CLm#Hr!io_R>?NE{LfLDZ75jGZOFf*5>sxV7dck@lHSrY-1g@Putm|`0-ZDKAh;D(&b2w4BFaew zofvQUO_2&WSFVJ2|9p^L7;R@w_+1v}#o7C8ZMg1O zaQ4{$YqbxRQUGD3iga0tHQIgq=5+Cg!#*av6Loa5VE@zEQ*m5@q0J@VCwjrK*(^}L zkpF52JH8|-qReSbUZW!WhSn5B7biW@oUtpXW>l$CfMVC185~|+DM-XpYdT$fcjYty zf&jZ~DpLWgeQd1LG%|B`W zayZ5eV@s}ltmjJ48U5zJLYe=;k@yP?qWH79j1uY%imGkTaxkf7olH>phhkH-Sy7E# zv<-Ki#TjM~ry+{2#9K)yPPZrd#uT=j*o1qKG8;RMf++Y&GpEk8gvRq^GS%K>b80f4 zBJx24PrWJqMeK*`>lJ>r;Z`oUuWHIoPq}byPJ5U35Sq<%4j0Epoke>Lkz@Uj^43M? zc030yBrjFI&uOSp37r%q3s%9V2{QWuj;~9zqflquJY8f4_}!ycbus1wgxQ}*rQAnx znty>^QG*`TubvD&BDU8f8O%q4RRW zK5Wd%fk`au_G--^LJU=;Jv?h!!blN;djbGf0E`bsHYUD$gnlBiaata=xFWDcTw&p} zrP~mgZta|>A8G_14>R#4n;gUutC}|et>dL97D4b9O%)|OIDTZY9Yqv9U4Z(nqrjo! z{y2CyBHFx}aot|-cYr}KS9m4|lRRjQc9V932%+R~k+| z#3$sWR3RbR%O12+E&sdP`qek|&c=;%)KOByy5OG5%XYR&xf@0wWa`{hhnU#a0m>kf zE-8K3!p==bcO&|Uj$)#1^+g51Pn0M!h(_UT#T0Gz-FP5sm{mfz#HZcMpfC(5@tOCN z(5Yz{YRbP{Cp(H`s#j3-QP0tF9M5x(Km}$1okARq$oDE0RqDh#`zc|R@i*8T+15WH z4wEj{egH@|I~m@WmBo_5^5dy7 zBZT{U0$DgmJhZes^_56e7)OTH_^=X`o_3`&DD=50OotFjp@u0x$t_my(lBDceYYr9mD2?hD4JBcX_7&h3US|^xaC6S1_Yn6b~ zG3%Jy?9;8KENb=50y+^#mGVm^CW-J7Z$YT3B45Ie+yatg7r#!D=mB#%X-H#HVF)CR z&G#KR4DTHUwM(r)nKczZ*c32_;aTxg=|GJuVQlZj0dbViT`+)DG|*`NU8?s8wBW?8 zFp3aE`a|3rx9SBucQQ-8Atj&vfqI)4J>+Sl=z=*1R0rege08~ZImwaSE~oZQp$~Gb zD4ij@2*~U9(S-F5kg9nH$de>_q}ASty;(e}+iFGE1J3Q^7K;{Pa(^`e9bH!W7}N0ULbqBt>u2(qv|!+7kZNeD;doZ~$iW~J9Yn-{a&p0F

tWxTK^vP#))4GJmzh!?=_{IRr=M$r!Z*q2t9g0rt?;M%pARE$4aZ zut$JOn$XQIif+agnwDnZWs~%=z15bC2y8q$RV&g?@NuxhPTtsI?43-lOWo-}-%3bn zrW)Nb3E|{C7=XD25C=SWI52G18;B{a)Ju8+nMd7J*HC%aS^@oe8ceW*OKQ7cf-u&b z?*Oc~kD$4+239_k{xnN^S~%@Y0W%j$vip<1UB{e2WfFH(7Q`C)ab}EBjmWVV7t3$T z_Igj+MBfhTpwd+M)+exrCZ?L`ajiLF?4SeqLK9l_L+@NnOS1BJoc`5`X8v=++NH-N zQ{A(|cYq2(-FkeWB8hBXB*$63{IneyDS5phQ>eVkXajT>my>U|aBLE&bD)~^vi|aA zo1VV^zr+#$c9`DbVuHP2S2!hOXuDhrBs9`Xx8ll83t?Hav|GY$nG9{5ThhJxi-NLZ zy;1*L7|wShj@@~Zq&YsZUl8m2Da$-r-{BYRP&gw+jI*B+tq2O@wRv%rywm1G_N4Ju)=z&=wq0oMbdIv%vW>R57a%I!seBL zyjF)Zemi|v?*G=&!(-Hy^=r$oA2*s?Za2arqLh@qufM13eAP(D!bM@VEMz z1XA~u%uzE1rWA#vb#xL11!3r810hhE{kocGHe3+rvMr_e4iGn)Gp41YuQ}jrjbN;% z-7#pIUpY$=Mz2D2Gn>4{!Vu11fDHzdUvlCYcre>?9~+rIZ2&Pi3~bIK5bx`dd?SS- z@NGCtd0w5m|6*<53@E!9Im&zX0MA;294NK*4er4ac?pppWY14R`zqxi{F1m^AtQ(ua*q zDaTjR2S(7etFV?X4D==Z^eP-?VK7wiR7}L9jSV?G&9m|0IwdhH3!aUwdnzH6tkBD| zsMCeTzCdd;roKyCj_DMc?o!`t+}X~hdwC9D=t3DbFW~Rb?rk;_^EXH!YW`_?XnJWW&i8t=U=Ce(TH=$u-Cxo? z^aw&9ORiiM4&8o@-t>mxW7X!3z)t?Oyq*ypf_^UHRqGH*h(Xq;jpy@_kuHbdp*$hhRC{i_7duO5GaKh$b39;R7sX- zXuPLyvQgpYjob?Vh6pHyJc_2curMSxnax%K9Fj$fw-Wghr&=)h!(?zhfE@7rqu$xr z?eKV$#!o-S#8keGqu4!hermGcsJ>wWOdnHYKvWgEA$AVE(0-@uq7!#^bVo!a^vxS- zwQiy87yH)}9G6}f#gZJyK)h-5y{aB@z2u&i^VvOWY;f;XHtPXKVbmsz8<}e5$*}SX zz&jQ#ucMDalO@@YKeF}8>)m^+vZI^S3A60R-VTn|m7K#{{8;PvoyS@i+QfQr)yfw`y^(w{bl_9m{2&I}eF*1UjtA-Lef;jKDC#Sn11 zgnBlf1GjR{eq-KVxa1A?kMq1BqHk3UY#G$OclgII91{@HPd@})t?i9pk*2I;Mlb}X z(=^s35Q)rJOA%2#5GVX5$Xs#0`MQg}N!hdZ>}&@p@niz>9{7bA04le>(vvQ^S8=^j z`tJDJ3>tfs9hU_faJ%1(|4!3h8%IuDZ zOy2?IDlb`BBG>ImY*P_A-vXBI04GH!*w$b5zf8`qjskf-{NOHEAz82)kp;ujkqIpo z5+fYebj1E?C<>p`#33!X%b1QT&I5HLKdlRstN2v+tnwp*TJ-91$RMflg9-46>uECZ zr*l`DvwW*_lLP&{bNB!zN<-GMc{?qpg3$c7mhcojX+5`q6wU< z7usy{{ld2N2lzh_8-WPjga4R_vx5>-@6#A2lglBe(@TucmgmWZ}Y3Q)Z82WSDR#*#Alg`z83o7i#&rT6ln!_)eR2B ztO-BpEJ%|H9b8kbG7yh@eQSRMt;n?+pBUd9gC`-G?IDyS1<_cIbDQ^)o)6Y?V`u&Ov|_f#1W@VpFL5iwO5c zEf0f{;QU1F>ROcZor@vxJSevXIU!i9DZzHZ=wIEWXpC%KgTY-8KTa4c;~%Y;-{990 zrg-I+hBYV{<+7O5)8l86HHbEyJUv_2N?=Fq;WmkSXJ0&MCDGh30OVEmzKj#oK+=pA zl{W78oS!ARx7=28`y~74K_*2}8vd=Qn2&p+hASF-_V(O9ql>@k&{%+>*(cx=!>fUj zw<-mn;c(j>6U`%-eIVhmNn~V1#Sa-h4dQ1pIu(2*)i}+xv6Z84SL1afvS%M9FAHxA z7GSz(>8oFxm_%&Y>yS-N7MHxA)E8`O`)0!~Z>IeHCD$*L-j7c4i-rWqJb#s4>qu&- z527YrsmxP>DOHj6RHqFrbe|T?an;rPcIr43yFazzoCuDldqDKVKOk6YTubA$Bxc3y zcMm_4M+e<>#MT9=t!c}7t#l z*m$NRql;H#Y%I{B}WFToR;7#AJ#_|2`v$on6wt zz{*w-x^W-R$iP2sLTv~%g@B_XHFEnd(IF$@<`0%IV}qYXFAmQ!A0I5R=51eWmw9~a zesbWp<}Y1ly=}AtpkVw^INMkg?o_8*Sha}qVhelKw^_WykczT?{Kq29j3b~&ZhvoLdH{ zxj>t|bbJob!acvkr4FUZh zcFsW!&&NJiOpJ^eG$s#&^tgQ7k0%Zk8TKCv+Zic#^q*sU<{5F03)xbzRMfhkj6+sa z)wG_P$DBWpuImU5;X8QPrzo3#tJe6QyK{1w;UX zq4|iyh5oIVKJ~}%ul8`hpHCx6ky?Fb&g*@>HqYz=+L9+^XlMwG8o|S5M#$e3-R?6p z_ru6YkxPUTqNu6(HZdIBu#~R zxk~;_P5TW@YxD6Jul2xn4CRJ9fZ}Q337A26duye{M5YUK=`(ELVmfE_Wy<5*@Z>hCgu}Q^}J)~(jfxS$Pe`E6E z4p0eGA0Kan8s7oJa~Iz)gL?&!^;4%yN&>W-vX?g-rkgZK`eIdH)3aj9&Zvi{MBjxB_pSa7x7iP31M10TCbnZI681Z0^}Fo7*~*f z5sej`@j#JLpq$7p%3z9^DjcQtYxK0aCNJycU5{v+_o03<=EiCt)|>B093k2%>egYm zoOeM3Z^K+T)iQED>CEFg<3)MSq@8|;*akjCRM|L^Bi|C;6W3hSG6n%%OklnTobIh7 zbd!s_>U!gGyb8#xseubC8#`wGl6n)Oge{_v>|LPW-x!^~KQ#G_W)n#2>6Kw<28y+9 zjUE*0?aFxWJ4Fl^EF-Y(8jqsd9OkGK5GCPG#?&6 z#Fb9QNZfnwH^F4mpF*yo*_La^*hCSR0}%nidWOJJaVCJWGp|FlZWBR`XR}wpfr-Jx zf~Jb7^ehvb;E|mkz8EPhs=%a&cIJsrxdGpo2|28`XztV3+iKIidWDLNg4=?8G?Vs>_7?teY>lGYCF>t9=Qz zoQrrPJ7WFMRWg559BrlV^%VBMW?K^ENeIP$*8b|mi_lVpZO9hk2!$Y@oGy1jq_Gu~ zC;Pcy&8O<LCW!X*gxDYK6%<6s01U&2s|krRa|kmdUFm!r3s(O@q?N8HvU zmkNYqZvVsU!cT8&8pqBA&MGgxZ!R0|{Vw7#A_`d=^3k(NOW#3jo;?coM5r|fCc+HB zKrsgIB2&th_v}o!It^W=B6;52Oo*7OVvmBDRj1mUxxf+&u54yqwmU%U zi$nJ`wS`7|pPnBzDr0LkBZo|0HCk-9^YI&TVbiC3OE4clF;0=O3=Ta3t5UeeJEJl$F`2l}#f8C5 zp&na<_kkz1ATw>(l8!IZphbdkgomD>iz(2$3Yo zNExR-#*pZTPV(pHP-ye39;oCwwdd921CXfY?Z&4{NU8d1q2AAgHdg9>N`s9I?j*CQ zIxM&TRb4$S{OuVp35T>ZO+5{a<86NQRM6l_j(G-;ng2N zFz!#um`>-Ry0uERCWMhEa=OL5^m@8dHotP;wg3_UBPKSm`-{T<84^4r&uzT0w1G0m zijuyPS5te^AD=;{$Pm%@JY=%28KdM!VwU3lNo5>&dv!DStn3FD1*1amlU>?P8_SkVgHS1Kgp2X=t@Fmn{PTcz@yWJWc{?ZX z@HYl{DV&b(-(X$Og#{23<`L}R6?U0T>mBhtH3ET}N49~#Znd&`7+u}lu@p-xY|JQw zZLl8T>AodguY?R~J@cGKXKc7OQ^W1RpCy}Q2CMl^A*c*@B%w=}nvtg{1$!~NfsHCa zWjl?S?6aZ5WFI2J*^CJeRxR@KpvEOmguO72tY>HBZ&MGTvG`6=dIZ&*RFq`u)unm* zlH1&y3m%UEVqgKtv}?(VIev{9a=Y}u>&>!on2b<0cSK^xH<5-m0^%?l8P~C!Sa=6L z4uA4=$;(}VzxYgWm%3Sk8)m9p2aSL?l$ zy7yZTwfAECW9z~0wQlwITmQg7Ns*$52)HarBL0th6+>gkZ~7b)LX?I546HMyNkk%v zVtHUwMq9sm8H0H=5@QAG{f``{LC}C*zPK#&!n2mma+e^(6l)Lt{XK#FH-YqW4~0mPruOy>nDkX>i}Fg$W2P6-|gI)3LPp z4|pT145();y?G{v>KSms)?z-Fe{ox%T(WK{X+^Kv}K-4&yTaDFCi|;^IkpG_$4DQc_YU}K0KkXA*3o5{2 z@L_fN2z|fyepK=XQVGlPYr5jqA|>Ak434ef*iedogM5R-_l0VKLKfWu-Zx`w+h@`x z$3J76UX*Tv!f|3#Z4MYZo7#0<|CPng{mh=3wdfO?-y(^gTQf#{s+a{1*hR$*!U zv+Sr>%(r3ce&Mw`NY;ZZ>~($vHz%*I@Lj*20<|fP~gwT9%RFG<95Rdhs@9kHD-b137A=*G~ysa~h(GsG%$qhAZ(rML^#$3|nNA(@xOHoHx=4gM6F z8K!g?C`r@PIOqCb@{V6)vtGt-(#9#TQu*Ob8@e~%0ff(qdf_Q((iMMm)*&Jh5ny z$lv2YZIHLxJz=9#()Nz?55h)%s4Oqms_rX<5?1OjVRnvR(YXGLou5jY0c_z?{FT zYiRw|W5Kg%A|uB*89$VppoviB@vUcE4A;}2i*jN~Bpl!TP6WwUeC7%n9nax%(h$xQ zBgw9P&HZaoh2tF6hKEvEiAddx2`y^U7y}db{dt02su3tkbyX-YX7d_py?oVM+P9|S zICfKE*%W=nze%xE>~2JLzn&Vm#7mcvpMad6f8fTVX^_}gXU|^K?>w;wBA5zlI{&Z@ z3%^j*_qIXr-Zn^FQ?bT6iKlK?NaQ3AsW`QbwYDpgC9vg>?h#iA&-a?5l3_zYX$EW; z>F#R*_wv}-nID4CffBylN50c*e)pu3wF@(5P)MW34(izJEh`J!JziI{KgL=64I_A8 zn!*N)n&$R}|DFc4qLguMuUyBb_1&@j;^wzTpy-Dg_FP|Z8bs}#@i@ozUmbup59vjI-w1;|HDnGMWcrL{ei zYg?#iYwZ-m%tY4nrmG4J!eSri;P>Y;XKd?~H-B3a@D3-C(O<7-Y>Tz9$SVfw&@Q5E zRE1c|@sa*{wGsv;y>WP;a`VN^<;vyv!@9@EbsV8r0u-Nm7sE|g7aH~r`>DPo$Yhz` z=&ki3vQN;rYg}Y6tnGcB`hV9{ z@-BgnY@{m{^h(rZ;L%;EZ5pSw9IfT;`Gv1_US_otdihDTqgMYwu4ij+WCQa5%zk2z z=_q2`zoaZqXP2xMb%>5LTZE!zpHi!*WEr13`l*(z9*sA(O6q3~nUqSF3hNIHYoUyP zwoJv8A17aBfZ}i1mE*!ye=Y(-cZJ2g!AmV|?KO6x=Z(mel->4l@x_@2-PcY9>}4k) z$PFvV!p*Gp`{%_xrw$gVVPH%akDY_n`3m$11N2^8aLUo8}u zU_%l6sc@yG8EHgj-((B%F>Rc#BoLD%SN$1N{(yO6n9taUrQRGm_u^3=-&Eehosfni}8lB0ugxvUb46&Cwnht?>M2B1Za zT`44ujNb~*f4Jt%Oel&c>OovS>$*j%HQuR2#|yPy250r1DD01vpb70<{gomB-jD|| zGBQA*4oC%LpTs*Z*@T#R##5U~V0RxrxFWNTGP7a`zzmv7PAkTPuCWgp!y-$@)U}(N z`dh~Gkn*7mX7<(mWCUWPjt1{m9YgAG$V3rjN7;!Ir~)rZ-ArFwh9mvHOSQZnuc>Hu zng$(l6@eyvW$u#v#7GtP9Si9q?vQ{Nq|@n?Dllxc9k4G(bv4*#@Qos|kA zW0^H$OuoE*&WpH)`Afd+LBzAxJ9UzEirD54bn9g@Xt-&naLkGv+Kt-RuI`~Ujs2nI z)STe6@b%{>e;y+pLey7p0XJbQbd22J#wSk&9`SI+YOr{?2&7@rv z(I9{{Gc&gwMK75Go_;&X6#8YtaWW#iDX(J>5wYr(x=0mFZan6;e}@HO==E?k{eRaZ zXcXV7mslZB2OmGtaJ6)&yw0+tVwl?>6?clTq`>{)WORFZHP4^U(O$ zMB{(2g}P@2TafFx2O*D7?=$m0gCi*!*I#d6N#71E?uocw>D>wqfz|e^Aaufek>~7N zcL0UGPbTa?Utg^&S&cL-J(HPGiuR(~f5agpUnuvkonVy;z*oGkD|Z`+_w<1OMlr z`Gxj8S7Ot&2?uN>X^0s!{Fj_f$Fp_wLed2?@tX8 z#1+{i?f~+D_GIe&Owq8VvwS{|+-t+l>uebsA)8|8Sf<-}e}y8oBA1I821L!{t3aOR zhhGm8n4A?5uHRa~z1l52o)*B#u=Si>@l-QAAI+GWo#=SyS90N*`YW`>P;a|Yc&l_PWK^b+;Mtv9=CytHVWlaFt={duP;mOBDy70 z2+dNp16vwV@X>-VrE9vB9>WliWyLN`zXj#Y-_s{|fISn*3DYUt@`d%XpFfAsuTx6z zDXDD^vcpc(JAe!<=rZpPuuvmzb(p+^c$~OvpOu`Zdo#lL)s2x(-84gJu1!rP%q@@1 za@#48mZpuPG4l?Hjx@F6( zrzm)Vi@3WsJf$(Zb5>r-)QS5tMaS0CvM98~c73_o z#6ERHPghoP^n*-ahMN4jSX8rarP`q2bkSIBnwUsYuhu;h362pK8Koy!zpPjcwD zKLiZ#U`kv=mL0<v(zR#){o+SY1CoTG*bJu$T z+1&c&_W~;P9189Qyn|;-tqN20eq$xQFSU9l>?+xLoJ9KNK1EuqrzZV0Zjz_tl)w4w zxST=<9MH8<-kmw%$iIU3!fB+tFcw6(?+9a^KQnbGLA%9iD)y`MM-86O+Ays^!xYfF zDqxC+u=w4;6q2$vmsX+7!|=!RwReED(}%^dEIJi&b_NJ#j3bJ*M*Gv6?@G5JH=xp}$U9j4gy zC5p`5ulzh@%JX{PyP@YTj?(&Xfbg_rwQXqrll#suy70%2t1h7{EoW|t{eGWp@*86s zv?#^$mfBv#DV*IF2!_N=B)v%AJVER}s@olS!8YcE`pvD#D$ObHChzL|>I+t(4u+V`}T~wZC)>r z<%5*>^xU@V5r6JJ{l6N@kovcCnF53sZ%$*!7_~^p#tgR&E|{a9<38nPE%RJU-hPfz zli{i8y!7b2FR8n>#%is zCU|CuVsWaN&q#ygQEH}?S2~RL+iAsI%=hFmyVAyarnOOx?-$5KMb9vv0=O_BF?b0_ zJ4w-^PTs1bIIl+E;nYq{Y?k$_xg#{S6BaMH7pR#IK?$aN3G)+a#r~L6!Iyrbv4?W28Y${3uRJyq3h1aaed}6 zcj#=DWnpjMo1|3McXc%=mYr=|DsqtU@C^~i$f7trJ<;eXr#3-`PA^Z&pnETHM6xT% z(*E)nqMXEwijY$Wba5n`m+hQ@`ektx^FS||C#TXc)G+@6fc6eRQv`Xp9>57Up?Raq z;l^lVS3e!{ID$Q@q|4qo>K*FGg-07MoqoI1fjV@nSv*ux)JRb85zt(G+pWQ;ef3ef zlh~2{7j1g_>L33Zn@P{$H!rM%rO&$Bna@6Im!XEK_XZpnNs1Uxe%YV?{{8RaZSVY)qiwKAQ(lP#FNF)~ z<}^NXeZKwQ6jXi#5CF(*|LFGSW?AXa%Z@BHdD`3*D(YRAlOGtbS6WHaMu*&qyHajn zV2_%63Y@SzFc|Y2EifSw;Q2M$ROksqjZX?h-?u0taq9BK%wZjlQj4xQZ&6_U`6ko+ zWWT%}c8XjUaReh5L!)2kD5~Cw2v?I*G~|rmnM~b5oW#*QD6}N6GD}`@DA$Q;#C*30 zm}WFt*E$~~`hhX_DEWJO=yJ~QK3sd=x#?3W^-TdXKdiIAbS^hKmRDswO~+TkwT#MS z5ub`Xm#?zjCA~GztkBIQkZ^Ly2xzz3Ip@@F%hS)|(eynzh%16vvPNcT20JWgvDV3+ zJ^pQE@F&d~i1W3NL13{v?`wn@VQpf@Swx2x?Al3Xqb0lRj8hT`YP03Ciu-kFITo9( zuzNB$V(`XzhltHAADr(R*N*#gGMz6-w1Q)AeBb1WG=3lir0u%t6jdv)j%>yZ;IPZ^ z1*ksozXL4y-KVK_#tp!?ZF@36ELBNuMKSVGbdiDx12Z`;CZ1ClgZyo)i824_N+xZye{&8jrtd zj>(H)fd+Vs$7pEf%^+Fl7*+c^(Jl8L@cD=P4%2s8 z!6)jIT?`uqF5I_^I|Hm~DDQjs2(2Hy{agFRqq$?F9d{FWpz>9H()^8q$5wINkQKw0 zL>$GU@vACHwhY|$CP_|x)}Tz&UXiNZ?TC(3aLYlx=x@A2FLLa?lMVd^i~TFH62~rH ze=0NoQ=A;vNE0XHSk)@L{UsG~VUS!>M{v7Xb5?>Ma9Gfx!#^=Wtp&Dh%w8-n0^@*% z7o>1?Gb|RKug`_JU+g}8xboO(4$U5%{n*1|c9!!Iv=64kMUFnfFEE(u`dKuw!xvQ3 zt;4bP{>>ZxuYWgM*dE_?`;Jz8Of=ApmJH>vs(H- zxopc?lAD(wmX;19;IMaT2;7nCpxPVp%;jp3)%aI@i}(7~{`%lep~)V}u3fh+lul1y zKsmT+BVklbO-d0y_;HT()aJ-=%;U57OitS!fW*bB;mC;10-oFqJD`=s{%!G%oh|=b zT?`Epd}~5dk(ZkcmFrfaQ}#A1ySMo74`(>-44duGhc-j-|dl4NhIvT=L$G2QRosNM!(kd=@|dP@UW2t8NR zw}^=63+zP=hIBxtXGs&3tC1`e2@8I+9Y#`2W!SSBOGL@x)YPUY(+;$9b=41xP#)Fq z-_9Z^L3$$AM4zKGtN=JjLTfw2uv%>MzyC+Tc1dAKb+UnNBRDI|l6*Z<7nfHqA!G`( z3XA%Q4(_4PcY>?oaEH^aR)chV`dCjt_d%kR1_p3AL5TEpd~HO&<*k*cQ^&mg4^o7Q z;+dDjhM&Zh{j5uSPLar>FnM{EWEA={cS(Z_Ve2W{ZBACht&Rf9_THvf03P-ZJc_jC z;IJg{Z}?3qvbs6w^ORzvr(_GO4=;jgXK1jlKHl3a?Ux17ZKPa-;>NaR!aZd@*9cGF z+V%9^%spN!fb~F4clH!N%B#! z@g8&-^q`i9dfOYZPW;-tKu{2E{OVH^4Zb2BuFz!xrLkAkfpT2OJ(F;Ox2$NmmzGM% zzG}gyJ5n`_Q0<>#s>~l_f8xX05lT!K^EJ9btMb5U8W4u0D)%c8hMQ_)Qr@&aG-gKw z!n}A!oLA;ykc%m+)_cwE@zHy7U5K1%Vaj<$8q!<+wgma+q_c9U;+?5@6`miargz|e z0Wm9}6js*!S1D^Gsj~*>!IAIl7#UGx*PhtDF>L=8siErHO*NUQ2|ty#{mk!Vxi#yi zTg@C25K;A$@^8&}o$AdzX6wQne5I#kMqLT))5=QW92z=v&SRt|DJ*H@RJS$$&%lFQ zh@vXuOH&bp&Izc6vF2BYE0t#zpzn!-tM`Q^l@W$oDr`UEVgy^@IpJIKgXeVsrW*8@ z24oMsye~}gdvnbeyOqm3Il6gV%YoSEhxf?WGw%%4Whl!VEp*7so|NW=?YH|jw!WgD zMxBEhGF3w^R^7FsO*=p!_14_30Rr^%OK@$e*e2@Y{2PiC+i(R+(Wj)#r20afnGq^n z#jNww@~c#oD$~ZbalTWC%%ODfK)N8&uo~6D^;{xfe3=^JWo)1*BMuL`o~0tm=AktB z&b~`J-SvKZzeds1KhPEt4>9vB9KqV*%Bvt#kWB~cWRfgH@2aAU1C@V60eoiBD)@1_ z+v9`2j?9OH#LPm&xAN>6cfC}TmN(OP<{7igZ!gw*~%%U51%F2$$k8#m?r7%ThbvbT%tW^$ZH;U*Cv}bmKb_@guigm48TTJ_WJa5q)V^Iwr|cc8=bc>#CN;3~ zZw*AQzgwB*KS|gKx;kmRg}BFUzmvF~OTJ96237nHGcBw6PU)E%%Z0_P#zs^|(6EqR$PjUDkSfoB+^|VGV7n zgG9^z)+oZsYHnVacy>Z2F-n z>%EubQ{`_kSh_~4R`1?bD*{uTx>k)B;ShyC_=_Cgz?ZgMB%VJ$E#+VC^sN1x-M9ESDU z_T})Y^ST1bx~CJaRGZILY%*>|m6!$@6j(aDy4o#BufC8b5nAUfwD)#eCe02{UC-{O zaFk6TN$}!aOzNeuLMa!td~tvlS}#?bo>56yw%bBfX392Ui={-N18nj{rlYe}Y@W>a z6fGC6{IZz0w(ah*Gk)$CZ=hDqNmIUvis_^7#N3a=`isNh+GF9?BpE8zpMDgdrawNR z$Av&EJIk@UJkv671My-ADd)rej~jyX3RsD#dRiHpTQxEFYZ=-um}pEZL$ix{fJtF< zh9=3s@tbHykS`1ww?3%gF(9`9{T%}Oy=K3>Ll0W3^0nij4pN8Cc8S6M$}{!cx0X~6 zLZuv+xJs&jTb+v2{q)!NR7X$A2dsQI>^kUwN(nfP3(tvlsBU(S?%dD;t0jx3wn9g7 z&iJ#${PFVhN}t2VwiQ-cNLEkej1Mj{E#*^8C;>o_mwxvTp!}(_l$wCXv2EF88fk>H z`tyl~SeH)|C1psV5d6BOqAxhFF>#JnT`1V2*3ykn*$2}T@K`e*(6&SrHiF9S6ZU;0 z%9_}pwiek|w(+ol;QT^)fwsd#w(E#Zm$qP@U?+?$ zM+tmbV%DI}*mR=sWlr7AeF>*2y!o`6dSAjcn5l{9R*K@Vy(UDksOUU%^ttJa)t2}V z`ZP!R6fbX}&HN1G20bto!+fGS)}7s|*cf>!B$pZ=Uw_qegMR-Q`o_InCFmp9BLO&v zx2hL>c9>Jj4Iulrenzo55WIl)nQfl-zxH*<%jmn%TRSNVqd4@@(iS%Eef7^)KmMl->JYE3QWd zfS@XE;H&J|Ii7{DQ9hMzFu{nFC`{BFJN0!f6uYohwa6t5DG(oA)^H%4s&68D@W6RB zZXEa^j1w#?(>~|c($WmxOJUPKlx%e5@e5pl_FVC_#S}?AU06O2qdZXhmXs<&k}`i7R*F#cco=5ld8KOK_11ySsmpnv zB7ZP%KirBpxygm%Rk+zE-~r-~n);o7!mXD4I%z#UxwytEg!v9MJ04j&K6Xk)aXb$= zvrT4nIsY}_UMUy)sPHJ`-JxZ|r3%>;SxQ{x;D?6GV-s_G0(5Gj zJirr&8jpOn$W6P!Z5m6Lf&s?2Kg_-dO;G6r6`QAZF4gmamvS7|-+3f5P3)`oiY^B( z^fecV!=|@sW51zfmW@5MPQ9kJs_wgsVmJP>r55@(uZGL*iC=JDwG>b7^mSg7-*xsA zLD*;B=pxABi1f&WFdc{$7psNfr|644?ungP%AuIWo(&3~7Dn#P^S9VeBxIFCjIXj) zwD(UeOZn*X_kP+hz}{W?;H2D}XViV}INxk6edt&yvnA9O?)qmbq@P+~_M$ ztR-n#vR18OtRid+@`#=xZiN&tKUAL!E}I{tf=Tawz&LatAv?6vF-QmDGCOKO*bCUmL6#VXrFT7KX3VE(9%-$R!{Q{BpOcFiDy zaKIlWZa92d#^zp8PzG(I(rUg;=Rku^X=-ZzAu|2V_x@M$aT-4%*%0gGic{w}=h(lJ z??=9^9@Wi*K893u5(F1N>rp|03-rq;11rwRZ9oCc-1hnT$qVg<8g}tn3ukX2ag@-( zem|Vb_D}x@%z3o@ij4Vc`WkQ8|CY?{{)WF1CO=Rwx>2*e3_kT$< z!k?@xrlUcVgtD{F&E23wA79PNjlha@m30_cz}lyb`+NhR3{HQvk5O^a~wXcCA-6sl#B*H;R8zo{BdAVm31Ic#$SV4|MPv z5zp}2y_%A$lsAD%U)dRDa@{euqrR|}mF^p%r;FK3?^dzuavDLc*i|}t)j~iT%pWS} za|7|h+c6LJwbqfu-CCt^Hjzne4%U8T9K;JE-Rq(6-BMJUn7rUkC%_j;(u5>wXVq;& z`JR8t{&YuXx=BQT=UTm}<=`OYrWsuu9r)s)_x`LQ`eiSN`$o2Jau{$3LfK>O?)ys5mvCI^PbU zfR;>0yXj!V;V9lJnLRdNUj8Vr;s#ph0&=vp&_{H#?iFR?sGgGj+k3l!VpJ=IGgGC3PIt59k4^ z0ja0OYn||p7d%Fxys4uECp!7YP#NiPqklj0(^K0MBLFZP?rJ5X@5dzk}lbQ@>&RW&9r(IQB6B literal 0 HcmV?d00001 diff --git a/docs/lib-path_extrude.md b/docs/lib-path_extrude.md new file mode 100644 index 00000000..9945b8c4 --- /dev/null +++ b/docs/lib-path_extrude.md @@ -0,0 +1,127 @@ +# path_extrude + +It extrudes a 2D shape along a path. This module is suitable for a path created by a continuous function. + +It depends on the rotate_p function and the polysections module. Remember to include "rotate_p.scad" and "polysections.scad". + +When using this module, you should use points to represent the 2D shape. You need to provide indexes of triangles, too. This module provides two prepared triangles indexes. One is `"RADIAL"`. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details. + +## Parameters + +- `shape_pts` : A list of points represent a shape. See the example below. +- `path_pts` : A list of points represent the path. +- `triangles` : `"RADIAL"` (default), `"HOLLOW"` or user-defined indexes. See example below. + +## Examples + + include ; + include ; + include ; + include ; + + t_step = 0.05; + width = 2; + + p0 = [0, 0, 0]; + p1 = [40, 60, 35]; + p2 = [-50, 70, 0]; + p3 = [20, 150, -35]; + p4 = [30, 50, -3]; + + shape_pts = [ + [10, 0, 0], + [15, 10, 0], + [18, 9, 0], + [20, 0, 0] + ]; + + path_pts = bezier_curve(t_step, + [p0, p1, p2, p3, p4] + ); + + path_extrude(shape_pts, path_pts); + +![path_extrude](images/lib-path_extrude-1.JPG) + + include ; + include ; + include ; + include ; + + t_step = 0.05; + width = 2; + + p0 = [0, 0, 0]; + p1 = [40, 60, 35]; + p2 = [-50, 70, 0]; + p3 = [20, 150, -35]; + p4 = [30, 50, -3]; + + shape_pts = [ + // outer + [10, 0, 0], + [15, 10, 0], + [18, 9, 0], + [20, 0, 0], + // inner + [12, 2, 0], + [15, 7, 0], + [17, 7, 0], + [18, 2, 0] + ]; + + path_pts = bezier_curve(t_step, + [p0, p1, p2, p3, p4] + ); + + path_extrude(shape_pts, path_pts, triangles = "HOLLOW"); + +![path_extrude](images/lib-path_extrude-2.JPG) + + include ; + include ; + include ; + include ; + + t_step = 0.05; + width = 2; + + p0 = [0, 0, 0]; + p1 = [40, 60, 35]; + p2 = [-50, 70, 0]; + p3 = [20, 150, -35]; + p4 = [30, 50, -3]; + + shape_pts = [ + // outer + [10, 0, 0], + [15, 10, 0], + [30, 0, 0], + // inner + [12, 1, 0], + [15, 8, 0], + [26, 1, 0], + ]; + + path_pts = bezier_curve(t_step, + [p0, p1, p2, p3, p4] + ); + + path_extrude( + shape_pts, + path_pts, + triangles = [ + [0, 3, 4], + [0, 4, 1], + [1, 4, 5], + [1, 5, 2], + [2, 5, 3], + [2, 3, 0] + ] + ); + +![path_extrude](images/lib-path_extrude-3.JPG) + + + + diff --git a/src/path_extrude.scad b/src/path_extrude.scad index 5e820cdc..30eaf4dc 100644 --- a/src/path_extrude.scad +++ b/src/path_extrude.scad @@ -1,8 +1,23 @@ -module path_extrude(shape_pts, points, triangles = "RADIAL") { +/** +* path_extrude.scad +* +* It extrudes a 2D shape along a path. +* This module is suitable for a path created by a continuous function. +* It depends on the rotate_p function and the polysections module. +* Remember to include "rotate_p.scad" and "polysections.scad". +* +* @copyright Justin Lin, 2017 +* @license https://opensource.org/licenses/lgpl-3.0.html +* +* @see https://openhome.cc/eGossip/OpenSCAD/lib-path_extrude.html +* +**/ + +module path_extrude(shape_pts, path_pts, triangles = "RADIAL") { function first_section() = let( - p1 = points[0], - p2 = points[1], + p1 = path_pts[0], + p2 = path_pts[1], dx = p2[0] - p1[0], dy = p2[1] - p1[1], dz = p2[2] - p1[2], @@ -30,12 +45,12 @@ module path_extrude(shape_pts, points, triangles = "RADIAL") { ]; - len_pts = len(points); + len_path_pts = len(path_pts); function path_extrude_inner(index) = - index == len_pts ? [] : + index == len_path_pts ? [] : concat( - [section(points[index - 1], points[index])], + [section(path_pts[index - 1], path_pts[index])], path_extrude_inner(index + 1) );