From e0371aa4b700823fbaffb86287d56317dbbdc18b Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sat, 22 Apr 2017 15:33:14 +0800 Subject: [PATCH] updated docs --- README.md | 1 + docs/images/lib-rounded_square-1.JPG | Bin 0 -> 18809 bytes docs/images/lib-rounded_square-2.JPG | Bin 0 -> 14386 bytes docs/images/lib-rounded_square-3.JPG | Bin 0 -> 15679 bytes docs/lib-rounded_square.md | 44 +++++++++++++++++++++++++++ 5 files changed, 45 insertions(+) create mode 100644 docs/images/lib-rounded_square-1.JPG create mode 100644 docs/images/lib-rounded_square-2.JPG create mode 100644 docs/images/lib-rounded_square-3.JPG create mode 100644 docs/lib-rounded_square.md diff --git a/README.md b/README.md index fa9ee9c9..20e0d61c 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Some modules may depend on other modules. For example, the `polyline2d` module d ## Documentation - 2D + - [rounded_square](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_square.html) - [line2d](https://openhome.cc/eGossip/OpenSCAD/lib-line2d.html) - [polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib-polyline2d.html) - [circular_sector](https://openhome.cc/eGossip/OpenSCAD/lib-circular_sector.html) diff --git a/docs/images/lib-rounded_square-1.JPG b/docs/images/lib-rounded_square-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..25caa63a5494f94ef52645af4e5fbb919281cd43 GIT binary patch literal 18809 zcmbuncR-WL);}KG+DpWU(sZd3+EM}nBCZm8F(e_B04qf#^n@baRZ)roDFF!tG_({F zq!SR>r4t0COA`@7FVd^{&EDPn?(Ti>-o5YdH-9Aa%#+N_bIQy)=X2)y`u^)6;4$Fv zp+nysI(Yb-L*E=ZeE7&Q;PGQej~)Y^K63(i0mOIl0_XxSzmUYY{DNYFycdLJg~hH& zN=ZxcU6xan11m^?rNH|RA31XD=&^IhkDmhzTo3^NpUc;u0l*{sTK5+n00;y20r%|( z?)zE?C;{vP9N70u0sONZJoL?h!~6Fg;Wq8(-uh=V_j})={Ra+ybNCEk-+=@B5AHv7 z=;Xnp`;Pu{gWG-xc=p?Gc!cH8fewo(d=I;M$IGYiyr`HWL|NsQsojsU9a;_#U-2p- zvEJnT(a-kcP&fh?U-WYga38lj?*ES-IC$XK!G7rt`0b&y@;nOP-#I4?^ZGINRmbOV z6!UMI{yZvTSF`kW0C3^}cU0hhAV3qa7Yz_N@!${B1RVL`cxxifVoY*3RHE*_v5Ws3 zhNVAIk)&4ACQo`02RNWI&A)0@ZwogIj%wLXY@4wN5{<2gz4A9T;H$*@Dx)AE+BkF} zoSGi#cSS=aB57zBrian#)4BlsIkY){4V#KM8B6&|?XtE&r)mNgKWuC#29BZ+lqU%CcXq*e> zZm^gkB|IGO{f?D~^Tbah5!3F2;``ltTRkc}OVVcb1Pw$249;iHKGA||#i>ZZg_6-4 zv}ofgiuP;I;Y%kszXJBjI8>?8>-EOK>9@b2DPuJnGkJ(QqjiE8q2aw&*y#PLzP%i4 zkLudF;v{i~z|I2G`(5!{UtR~yjn@1mM>=hw$19jk=rr=kEj8lriG%mbmk*Rd4OOFY zLXnYCiK@-RAXwA*ja0zpUn#whZ&YXEoC5qlF%qTDCy^bm70UvFn9yO~V-cO>W-Mi_ z6cXmFDu8m@HL}(OnkueAfXc)|!5&jHyNiOu3@2GpbSWYt45iz7K+~wf>?;5S5**-b z5p!tQO+MKsWOYd-iL7iK`MPOCn4ED@gtX$w)OrU{3=-Ky)i0Us*y}v{GH_uHd;MY` zQ?FDD=fBPS{`

C$ld{wSC~dwW3LG8iP7vPI8i@Q-s+p5KN)Ln1MrgD?I=l{G+V= z-|PFnnY~;3VcN>XCo?)Lwo)w0^v>s|a7vu^_>6s*)YD=ZmsCf8Ix+IxdR`+)J(xmN z4pg44c%x;$K#8Z}1~|5f8*IFetO!Dze0_$-s3w`|M>&Mbj+zJ~Va0(Qn{K@e-R{Uv zJ)R50vMu>p)|m&NCGn#v?jN3(5leb3Osw@}h^0v|BPj>`X2et(4hi$5P*-0uzDtY0 zZ_}l@f61t?w%Np*1CdL_s6|NjW?3AFeY0Rij29NZbJj>VqCgyks}Kcz^BW`oL4X4U zBPCEmK^L-CV0A^_K2g#<+5wNKDQ>C&gJnVITDw12ibW<`R$Z!Su2m|UvvBw^wHh!i znOe@9{UUi@iY0Zn0#2|_RfULqgntE`w7yby_d4b7&cgIpz_CW}x`pZ4%vx`jQk6JD z9Q*j`A=5s8t3|&Nc3-ff(Tp{(xTw4E(?kv~qc(uV$7dA_y0J4vJp{}~-=ONtt;RdlF-Ye7u)20(6nI0V;pkO15bvdOc9-S&vrIA(HxjVeX zn>PSA{x~!T4nHI)T@1nL9J(fLA(n{Bu;7O&FtN<0@CX7@@~Sb>-x(v9biv_C`RCPi zf+8p{`$wKLHz*bPmTftO;0Wn>uB4x26r+U#$JzK)h#9Ev`t2t{) z;gw>7(&Gn!2Y(#)|5JURmEY(fbSHjdeI|e^xpv?GL%WqR{aLvr4^722ib{)&3WKu0 zwHkkO%Vjqrbm?_zvEanHq^zp9u4x)_?r_IA1ZgGeYGzzWOt-@fiGCMZn$5Yr4WskWwXLKLnxQs z^njeo`jJ?_u-EK0>(_)c5Wa@&mardZ=n3876b9+ZbG%oX>42M$AOGVwME$F_*Or}8 z_w4zY*ij(TGi}^3A>DUXDKynv<&@A@KsW2=hg(()IGQl-<6Tr1-!zb2X6U0L)jnD! z`7%HBE}1jzerYsd)BHkjk|7khripJC&MN1A)~%G!wl(T0k51 z?UI6D>8V+WKJIyUcW=>o>XQ^mtD|tBY=HlhFxD4p4)mYL<~7-iX=lVMfJF#0jKAkd zEd2LvxAohURs6Qhr#veCdi?}f*B|`Kd+z5xzA?|NqJfzOm81Sj37%E{zawk4*9{UHb|!uD0~~&*$Nv!K|5Blpe=bg3LkyJf1cj(R(;dru`dyFK z5N+CF4iOtsQGmxf3XEG5aP9!E$`;!)Z19_e1eNgF`7}6^Mw~ob{_2@II`SC>lMQ1G zt3C@HqEM#QidFusu}^FO0QrAT>Og9jLfYXL;nn<8VS;;k{aJQuj1o*k&TBU?#kcO8B7|CtOPlqk;#@vdjTf!=5GbH-e zLxKd5?^!zLhJf=%|D?kI^?M)xTS`z@%QZ*MnDNb+qpcn)1iFc$HZI4kzdsyyt5U?p4YB-8iT%qv%n6g7;S!pWEt)1JhEDx+!;G7R$ zga+Z01q*y33yq%dq>m+JB(r^voeFRg*j%etXZLVhuu@F#knku! zPd09qHcDe)ruPYRH{kOvljZjfhkZXsXDew>?~b`ry;OK4Jid z;4G*}?6m5DZ)dmm^zC;>ijp6L3gisVG`1?vNN{WLK8XN2sfHS|;RE)m@_J<2@?&?VJW59#`>Wz~uT7~lL?8yYs?H)Ag`@O-VuE*4&?;wTuT1*Fx^A7fyUXAbhI6jEFy2XIoffgXes!i4$uoOv z3gG?S@ALh?)a-&KJ--xGKe!(~si92V4uqIRmWg^ROu3r)$+X*%t2C@~-H~?8nMk*1 zf3%ez|Bs!bif9|Kv=9$%GFjP>SW!#h-LAwbr>v`yR(Gmf_Hs_2VLw9$Fz>I%gig%& zx~&uH!AX^!x|5XwskCbS^vjo&laon~zJMctp7eoC2oJoXTX(`eYGib2GxcWz1ZlVe zSJRW{;nV+=9xm#BHe0;90OQ`WlGnZm&C+1U}D8O~*8Y-n%} z+f~aBel!)YKKCad6+vAMG(A1RoD_o}&ega%-p(yFtfep z0W`9oyKCqH1m`dR+nN9S#y{E0|Hk)d{Zca^si_jAbIM>jh-_@ATS;g!ro7f*lho4r zlP=Vdi)k^S`t|BHHh=KmCFk}M*1gFQ2bVj^ZT7D#=!w3r^d}rDUH9m@#J%tG(e#X$ zkrlOlEosP;-g22#0uY33eR8*W!5uiP8%dHKajYk~nZi1%tP7*lbB03DGTkbei&vOM z-fP`)W636P9@#hI z8FDyH-F|Q+b67D9Giq6}j)0o@zpsZ%jS>p9I4%RMTTqWTI>_)DrAB41Qm4>c-5-}y zEFf5Pv}ILXUPTlV$WX6&3$S7R$0`1HlWTZ8<)&4VHkIJ|x4dv9i1%1j!cC~hpEY_uZq1#m(N(r}afsVnMkod1tRdmFgY)s%O<8sg zyJJ`K2zRlov_(3K%=7VAjov3zLcKCIB0F3j;WaWd0l)~oP39` zZctx>#p5x#!Ygj}ZrrU`P@mMJVw-FPTP%}>qVj`7irUiCYcjy$*%Kcw1In=v{&obw z8OKV?k8f)45ji@7ZLgw4l}t!)runPk79@R=>@d%G-cLt=0w{*WRzu$)*C0;s-*jHA z)*T^#0B;iu=WLvh0#1A}0TuKhrP1HJ=e`Wfv$4hr`#`0}pzFgTK>sVf(@641*^%DU+)Dpw zpr}Ht2BPzK!?7c?Uo?NTs8{&H%ZG_xoxc?NC_`w(*(ScjW>PAZ8*i8;AZ;c;9&RgV z{ykv<0Kt0$8$(o)7(S9BD)do6(k?N(sqOQydM1Tfdi)jTb>j%#8ztx7ucg)ab3^z> zDvywx-3qdou_tsamA1un76Jg?VE>-H2VKI-pUmG91NBCymB*oRk~4O$vDL>SlU-tA zp49ZLqnA&N3^9)akGxrDp~mIoGGNWgARwD~L$_fGKQR)xs#9P5k9dJ#c7de#j%U+z zRWnt-O2YsrUsYgpKkQ^|#A+5-OP&Ij1UqTN#yfZjksfcIVYrlG7g&@T@l*r_jvN|o zn&gHfUsu=#0RVQAvI1hROlI8Z>F`ptLqqvs(85DKfo?7PENy0T(Wp|1StTXe@DB34 zawQ)LaM&Dw>%H})A$|2;2GCn;M9G&y(m8IC&y%K2}36w=f=x9%3jP2ul zzGzN+DIry9BYP_^#&fJ@iV5B`hC zxsL94zCvqlEluVQnFY3Lgh6;2ZJkqo0E4Tg@es^whe zC65gQY)J_2Jy>!r5OhA;kuAORg3>gopzb8=ZwZv|qk6|FJ$Qtvv|KD=QuBu>zj)UT z)AuHS@vebL8UtxKc07i3v_bgfKwi!5ickv)1Ha+xQeOdSyBFueF)G^+GfW-kM%-hUw3UsMmb%d9Cv^$rxZ+@8O*kmILb z?rWI0d_5}UVpea#P^gFet?FjzjLqJL#4dG7`l_#7mIG8s&}pbEVA4s8IXyj^nd5M- zBhyQpB%}5qSV&mO^uhkye=!ySZ{hx`Z24MEbQ-!bb|_kw=NmX&AY^Dz3P+0QDHiOQAZDy9>^%3Ar7Eq(h?ur-OPcj$)I0K` zA0?yXgvUtb-<;#d9-) z^WPeCJ$Hfr7xSgwZ|Ys*2l_9Nx`In5Zv{k?pVpxzF*2uJTYvmKq$J<8Aq5MMc1dlV zLFEI@C&jIE2B4Tj&wqGoLVEZ zSq3F8F(Zj!W7)z(T)T@>19?v#f0nJ^Pp*1jG+Vhn$CfEmpH8|GD@X4t|6P z3TFjWSdLyOkC((TEC;guX8JqZzEo+}Q9kvj;bYXdd)zMh8EaH^R&L+C0N9%O_*XLW zhxUCdEy0EzrZ*O?{wSNu@9Nn1MV_3Wj#kd#uV(QafqAydR=L%W$o)xHl@7o8SVnrH z>5Q_hjyYYP1D@0f(9s1P8so-#|GHf6=ajX(I+TWsWYc1o)#K`S(U=WsH(wCkQc+)B zpYDU{q`gobBCkl2UuCm4Eu1GF(z35w&yvn+pnK;kWdg@KX%xytCVrtj#X(nq=KL}@ zE0M^&FqxAaC6KRQhZDtQb3w{}7#B0kxqX9?*mCLPSAZ;yQr!6c6NO_kCnJ``(@m#_ zdfd|z$x<+ZZZ@P9>eVUfUWHS_!8!`w_ezLo5!}7oeFxQKEg{r-_ZXYzk{#oN;mY)S z!5Ko=yX(eJbFn%~a!<@jkFDkKQ!#dmjAz8eIwRH#4KDA7SBQ zXJ{09Klc2MN1*z}H?1CtBNnHghxN9=dS{crA%{q4Es@6c&VsMphywt=FYjk;l$&)8JBv^qJoN0kNuK{3(mbs`_Ccu3 zN`rq%E@A1U(<8TRy7kHS#Rlw_ENY5?6z`>{sxIsHa^N?!6FkU&vWQQF`OM_izRL}j zbuHZt{0hifQk1Za%JoY=%S^t$fd$|E;ufG^hwKtT_kpF*BqQ_=I9Ut*s%fk5d~@nE zT4logrPJ%>jTv!6{txz3-~6=z{qv6I*^8J7M=@olL(9DVlG`9Wsno%C^3iJfC`}VC zR-?Vv?Ok88TQolm^h4)$WEPB;r6t9l3sgx=*-%%z)_404GQKK&=k)8-8CtH~=<|On z+7CwzOstVs=WK&|ru4G7-fJz-NsMEFWimDcel$treM>4`^dB7@#I%ITRL6eGdN-4t za!|UH=^f+8;tQvhX`#UDE|!zBd_9Obv!CT&49_IPT{{E|?%u~F4|Z=^pGR+Y!0%>= zbuf6rbScm9p)xg#`P&w5&&b){aX!t`acnBnLNqWlcA-XCn6-c-0D;t0F6;|LVIF2D z(yj=KohUYO&7)@2VORL@+LfpaSh76VvL!MwkR}G3=K-i-t5PEA=UX6+2AO0Fq!qF` z>1YztocjF)Aiod>l}MP+#<)FSiLKJnXf zDh}hrst2XJL@Q<1GlR}L2Vzq)y`&cwl9Adohky531*|twHJ+tA_O{Qy0)C7!(HtcO zj6HSKQAuZLgh}164rlN#Lf_os@bYnS&bb~N;cqm1yJ)rI{L(Hx{3VFaaVV4xc05-w zda0&LE;4kG@7kr^69KGCCuaLZ2g#~$z8s(XR^y=B2pe?i3o5kxV=!_ydd1pEnc*7$ zqVHZ8HD<;z2&R#`HWf~C-+*1Ax|!5+rC&jGl?|0FoS-n(cxvrVBSr=zR#M+*4@ z4f;bKZ+&(%Z)oJ_LdVZA-o@0%TASbM)gnT&4IblXDbrDIol5_d-%5>*!*#1cA()CD zk9CB@&}5!2*Y^Lfd|iMDI>?XEv!(NNX*X%p7DOksc9uh?M~riw_{XlQ!L>Fe?IJD4 zsX?yV<<7A3@tQm6`73z#23lC+=QA_EJ=aeGW*M)_2R@c=9nx5?j)x(dY!BGVJqcrY zw??pg%*u7JKeT+eo;xs@X5q)VcFSqDzWksX z0=}pm%|{F8%87$`1AF4bU;>CqqEY!F&Yjb75G2;wuHwpjv+Lq+^`ARYHARHZoAHXJ z;H;GGCYwmgI!zn~LxR+$VnHTI`61|3Vc7ksWR(ZY>}jECL2EbdTB)H)VOG1Llml|a zpKlI>%?4o+PM$5Qp?*;Mnw8f#$|a9FZ4be>2XwDCjPQ^286@`JV=G@PJxZ{deH_YW zj~(vG>2!Qp<&as%-qEPf^Tu}e72BI>q>Y$n1A$nQInvg5%Kt<(h+x0%vx4tMI9TP? zzdl@N+IUTxc$8n%6e7@=KP=leMWGI#E@1r43V0&hCm4Y+Y-ieNej{Z$g3DT9EU0%$mlHfJMMFG;EBEzLr}vGw zX-DZ-+*GW*HE~th%H_kO_On^gx1Q|ChRSGrfjLODcEbjX_r)+t*yB9ZBmLnb%vK_f z*e_NUdQr({$a8rp2Ip(tQIXxUD(UXD*vHr8wo!I>G+8#`^&p2Rc-kSh&rWmAPth-9 zs675iW3g3LF7xp_0N~6aoim?{V+%_#k&J2DT2By?S(rG)bte)KlqK?)y42lOhNghXIHW0Y$ z57Lc?Wf~aJgXGC#)93^o5~cZl9P^{5ZYl&OJtP+#6@JfW)={wILp7C6^kK5`?u52% zN0{$OsCw*n2<1b)<(3IIH^U(m4f&xaCv(az>5}Z2x>)F`UW{#HX|hl%9o96lqszo_ zt+VEpU1bF7n0kT~q?~!Ij5x3Mksvg*(Etlv-*ZZ@jtUj>t}twzEbcdAyDYG804DDK zh2(~SGc3yq^3P~_Wv9zAw(@1Spv!`@;v;L$!|LRPGLui)-Pxn%(8wRTu;vQ5=hEIR z&wJw;5&^YqD~}C6{Mar)St-=Vin=U|>*D|brMSNs=YKV;supfihTq22W(YE`ThfQ- zO7$}eA8Tp(!jGqBPlrJnQQ^W*S|RP>l9{6e_igZ@#O@p2HKRcGgzma9xI*8tiM8R| zS_U}Q@0!1NdU=Kxh4#K+f0_L5efnAFHCcSC+4M9|1Mw?*qJkufe@m(46&VBv1bD2PA9F`#MMD{@RJL8jD10C+#UJbxxRpazefz6*oP z2FTOXpXb$N6w!>O+`N?-6ne!^#i!$@*#xt!$i}*chVZ6XCPo!+oO922YD?6bzz%zU z#sh|SdW{y&Zx@8L={xi5C{Yu26pCTdzAXjn$13FBWq!(t5-x53*^iPJ-)!U>H=^z$ z9-*)~YW}P0u@LlEShS`Pp})|5Pn<7jUi;H4qno%U$Oh8X+TEW=`7>y5p`#G%Rqo{NfgpGl5> zCwm&|T#d5`w)_DEbUC`bU}BXikT%x+J&z%hPv7pY+BMj_ZP@75%#{=)IS_nG2R9$1 zt=p&CG_0nSK>(_t<%4r4hkWt_Oh%&?s;h&l%*fmHC*LAHTsbIyre|_nONolci@JcD zqZKNkO&38VGm$*&=>fI+Wb7uRWGa7`5Vzq%jJp$_+%oQNncGV>iT&Bj!_Pi3s9MRp zgMdx{?qagWiQ&xvmC%efSxV-V`@IFP%#O-|auSv2q_vvgJI?gt!?cX(t1*v@LNkre zQ!*UNI7q7wu_$<9c#jWQc(oGCgf^%JPm-EG`YTtY6$M)tIl@r!LC2ybKo(bHP;o32Fj1{Pg9*0*b)t>BLOqgCY6<$Jf`xrXF6cv3gav-Btld> z(yFJVRjE(8F(}ui!#=XdFo8C~bX_QPyCD19C zX)?9riP2N}Hg}~`8ED6_w-f>C{);aCRt~7tXodyZp8EbqflxT#oL2|hBC3`uc@i3AjL52JzT5Hmjjls=svcGZ5Gg~ zimSzMpP&qQW%$GFVd!W>8stOg0;$68k;nr}`Z}hI?dJ(Hr%2~;eHO$#Ulw29FeOFGYFUXq+CgIq_4rgi>eM{3bne;1xXR1)0ErL9Mx1JJ z872tSlEBSjTO4$3OlulVHvcl?v+~rDcfPOF^7%gW&_8*?{SMJ+YEa#p#yD;68+aJ= z);;$7obJYmyMvBeHi_$q;oy;ja0jI4m(!0+SMEBEfTZ5WyA7m^RmS?7V0V@+)3rv; z)A0C9!@Y=pUUmK52m9_#{-N`~to{PVn|8Lqbha}XGg zPk5DAb zGvdPg5!uJR6UAr-CeKHU8xhnPNcxoX>zZ`NL&aP=5tD+4JH#f;^{}4`G?V)C^SRkf zA2`~@tl>7TjreE7CVL%T4v1&FB)gPk3;J3y@xrEk&5n`1=md=>eyPcfh0N26Re8dI z59GG49M+L(qb|_$60c1MEe<#JAatbo=M>GR`7exk@q}MJ5LT8WS7jkd6UTKdQ103# zv+r2OiU@#&UtlhhUmN7r1kH$F6sX zZR*C^^cc$G3dlKSc}=5b{es&eRw^AK93i=@g-bF?;leI+8{hzjA!^EgdzCx}uAk9r zQ$cLx)D;OYoqiP!dV>SId0wx@_Qutt-2CKjbr3DzRNEgZM>#-|827uFt1g|WL!C|A zV4}NxY0dalymT%n1KEy%qNNCf!Wit%RS#U-_~+vZdt3|Bpx_xhl*SLRW9-GxUsq`< zi{^{IRPN$(O~%{ZePQ@Jj@FrANVzU-Q@uPbybAj=s9g59eYA4;Allhw@4 zERu3|S3ch|sa?H(cBC~qJqVGfU{s0;N?eEbYqTsjd)3HmhzP4z6fMfSrlcnLv%3Mo z`+ilKf9TC$e;iP$MF%s0PxKOk(i8@OhoID>J*S-qu_W|P=!7-6Z@>VsNZHNqmWGds4`?$J)`0oO2J zrjt%_VUO~Zoetzw<$%d|*-W=!yf>!pBiV`(qUSiFuHPcmu8(Vo$!S8je|R?#8BYmwRa z(~z5-)V+QkfA^9`p@jZCEwgM;ML=b2V8Zfnu*l~jXOlW#T~3$CSHMvPS%*{hD1V{N zA$&x56v;F*SUu0_9IEV;kzjLVb&|EJ@0a$QstAOR!Lb&FuK@J!8G5Pb=!aGzp)cw9p=t&2B3^SQHW?PzH{iqS>d5Y;54In;vH7k+<9%~pOY>t^QNCl2jy^r; z2M1pL#?`-GptyGqd|O|lf9%7R(HUaQ#ZO?GXz7acf)AoaKv-;^YgX(9dRQfB`&~rER9BEg4&R_0eRRw?m;3s&-C8T&`k(5W}7qi z6`=ogK6T_PAW?nN#A3<0RH~=cBZ&d~3ZRv4Y6bJj_Q>ne@92Pc)LjqycY&4zFjUBJNt0KlwO4qvI(uThwycTgUwmhHP; zkD2tz>U5M4?46`6c@EOsEB~Nw?P`5r|L@1>J6J5=M zHDW)u64<>NJScqm6q@b7gDKoC*+pG}URy-JP<@73-$6tRpb_yuh^_43Rwa-z6)4dfU{ zvup`EYbli-&?1JUA+v)Dz?@4`7Eg>R6=eOs(gF6JHYmfbFH)v-O9ogH6QO#pm6oyt z(vp`-eZNd&M*BN-h=2Dy|GZewE1@nu|MH(53K2t?6wzlncbSN*6NU?|_;4CAZ37Hp zv@KvI-r#G^sPkrbw;p9AP9ipts1_mbD!+ws3{8Z9U%yEA#y|5YYx$r$xLML~Z7o>k z0dy~GCY?ha5j+^DN};XSF^v?RYi7KS17Y8>YRHU!zESsA6}OwAJ{dX8%p?JJz>5@7 zj~a5ewDLkS^jm4y`rk^ZX`2ZoUfBrmMK7LMdWOhDwk2fC~=;~tY(rWKHDeO+P zT!V+HzU1-Hmg+ft7nD= zZoaZGfdRL9{MaPF%uff4!k}ogo%uF3o1nPs9Y{gLcljFd%y%4ooFj;7HseYensJHa zoll(bX(()A`1n-uk?FNJx87(-2XK-Mkly*#k}dr_AIi>shaI)Z%F4;6Q@dnrpU${s zz3ZjTcJ_n-85mU<2u3aN)jNCRAb=ZyQhH}*+G2z{f$Mr(A8npxry2)=AL|pIqi{3z zOwX10g`AG=_oNh?-X5(w6?x^Xq&d-xKX!>_*{waQB!xOwv0nfDfJ)smZtl%3Xr1>S z&(q8jlea9>cBVG8rLH`~jC;lvM=19Xr_{F*YOOP+?*9j;f6Asl_VPcE8R%}z^5AD-*k%pC1B zZ|*6uex!D>Qhqp%<8q;a<2_!$T~K~GC%EId5;cSM zUoG?Wa0fpp)!n98?7Vz7P=N1-snuppJ(d~$5WINWR@NT@c~=#ejnG1(lrIwdSY~A_oJ2K5CCcVzmc0w_(V+`=+5qVb=StYV?bdQ&iPm!`eF^KF z*!+BDlfVz%?GA0IBNzMp(p0h`>kT8igHx2q^%nd@-^T^{f+tyVYF9-f+S16{7*~8O z)BTQvL1E!joInFOAFfq?fWPK?%;k?WIejp+Xxf-pU{)2Pl`jMsi)_=$0K&dCtDMc^ z@5*Y^5lJ!_EKqRfZc_(6ymfcT=jLO<@P@@XdMph&-?!w2Mum}N| zR-KCoMjXh{>IVY93x6E_a{u3D)E+ZoVP->7r@TNlNjt^O3uQlT$g(G;nUm{ty>A=H zWLaKW9p`-_DjPa}r6FFPJz8G7G`d#Rb#W($7GN&Pn)JFUH9Rts*}zclrS~v*^k;rO z8`hZn+tDx}$dcBBXajMNhVev3y3*q+>YU{X)FHxdNRtT(^0+OA1j{slXXusgPGIvYF~7= zEPNV-ZndA(IT2FJoE7lW&}fR!UwCRd`XSHe4FqLOYIvmkpBKYpy#`~8g+FT)b`P?! z@Lu*vUuB-oatB;Po<(KQC~x{yR9&8@{O$qCfmI#MfRtk zZ@I24C`65U#k_fjrFThVs#{0%rt1(Bb+o|gV8rEL59e|;lt8fMnOD(wA#<_(BEV*9 zv<~FGZGb8e7R(OMx&2MZ7wv7S;DxCMGaF%_Dr+;|={UZe%#aqC`6QXe_pGz$T{(dp zu0_22Hvme90J}$9bx^ixzRz*{T&nKxv8jI*!+*Wr4`~=Ra4zl{azDH5d}TCfr8&#` z)iVsM@%gW%uW?X^N%%7-*-);{O&B+<-=#j|N+wa!?(n?L;brqJsR8<0qEs zNNSk1vn+Pp*anDp-X~1%saLk@fm5%@0yih*9pWCk)*^YZ5!BBbXSK!WYgp6-98ww4 z%KC4zQn8EfyThL>!^gIiO7Fi3GHjcDN>5g+Q0FYOfFKw@UhS6diIHI=pX!|OP2W+2 zFB1ce=pO=;yj@JiS9bhxuk2wkxKtvYIllqsFFxT@LSqNa=;2x@*@Ob^T`+mH6$!1$ zzMjB$^fx*9BLfZ)3{BD!&Be(>(r^v&%9rLbPXry#X zocz2(%}7fRzX&HIu=%TP4N&n1HUhg71z4fZpi%?WB*oFeYO^T`P~o zFpVp(wON4%eC~Lq_18RCRpW}+hQOOGF=8!ZV%aMzw)^@wG*#ag!nY*Ycjdtt4ycLf z)^;2Iy#ZgN!3od&_8_9Y9R#Amo>V`&hyv5{Dv^j^6Fl%^qbnwI9k90Xm9_{18kDB*;*hwt z>(CMCRojBqXzlmYUPzI9m&JnB6W&>F%C6a>pn|~~GFARrnMr(LzV|~Md_VV z##~m}XYQ+Q{@Y^K&k#b6jVFcz;kH&{h?RRC^sBCJT?DNT9^n{Cyd^|-ChPgHo$Zg0 zWP%WhWz#aI%giLbxX4JOD+}MvTbGY4YBvCQgcfgzJy{r(` zJFfJ2^Hn64~z5wAsP!v90@c-xKiT*Z%(p9T3Sn literal 0 HcmV?d00001 diff --git a/docs/images/lib-rounded_square-2.JPG b/docs/images/lib-rounded_square-2.JPG new file mode 100644 index 0000000000000000000000000000000000000000..e5b88495f309556ec69cdd0d8ac3589c56db19f0 GIT binary patch literal 14386 zcmb`uXF!u#x&R!zqUazZNKuETgeE0a0~UHUBq0I`j5HykCKTz8BTA7lbmN^S;~FM@}3*bn@WU;e$_qygqmyI(qoXvEwIx0314UexFz$x(*F z9dJJH#=r7Q!r~JMd2g0`cn;<{bm-X8Q%4UU%=i0re++k9K@swRS5(RS=eV-&ug5Rk z8P9nqwk)oE7rQ?MICJFSN1nqx0Byh?9&q8(?;Zc=BJHuG>+%{K{N1~-N?(P{%c@U0 zPjV=HIS&%1F+d1l1X~A&DRVqC))FPCJ;nBId|uBQcJ};{yiR?yLj9^F-Ai$EVIwJl znW0Q!Wh?D#6QhgHKa*Pd+Ck$TcuZFfH z!Q5@P5Y+Q}AfY6mc%3FyaQsjcKIlaFgJB z@fJumy>2^{M3Y9?A-{wx>L0fSGYFy};ni)u0--Nc`U*Z(vM`-Hx`XNCU0IZ*x2D%% zN};DP`v6}DdcLR6YLC-U8r_aps{hg*!WRDpi&p){)s2D0%a4MHw54C-P=?1dp|EfE zFlXzmn3s_evB@H4OQr6nrpH8NV7+zLxM7 zXV&I@kMCX8&&l;0mYO8X4RcdT6tOseSuxW)QTaI#?Q(tAz98?Jn$)njRcxt(Mj^YA0yzO;5Me|4T7_X{( zqeYGcdN;G*!Wi!aHZhG?9fv?=u|PRKrR6&bQyIyfb-eUm>)ovLIbFrM&5r0h8-(|L z1wNJh?<1LsIO`a3*E3^@o~@pIq0dTo+nTfG{bJc7DcPo+%{di%)-XCmD+>bx76@I@ zG~3RI7&Sie!c*n@SiF{O5f$ES(Xs%FGcN3Zrt>qStcAsKU}~1N;LR8jW{VDv0EItr zeMGg<4%~14!IM)+ex|mdQBxUva?hDxLqxjYf&g@S@w0Frjr2=&o$uES*}a$jliJ01 zFK30-Xsk7#W#B!vtplT6PkjL#{$sfR!}I-?#rUvp)|zpi-SN0P-Xuu&vf;UQ7Y-g;N=Gi9Yg&|2y`4P76b8$mXQ*2)b%$z zFPcb zmhB`EF}!UeX%U7pM_IYMf0}{656=35LhZF7Eo!_CvWpZAIejCcP73;v${|0$TwY%_N_E}B73zd_QbBWz#0}j*iSL6(!m96^Y`90I8e9$2i*Rp%aH`qPwp_E z&NOWvF%dD*zO<3PVo0aXVo}sOp|rvx=p*MgebC*1$dYL%`^F#W2NrjO|El5)YKe-N z(ibi8BBg$Z5x3O+tHQ25N+zi7k!3&0U*YBPhwB%oYSd`5S7v1W^PfeNT&rKnJB%8k}*U@okl^Z%bX6#!@mFdfIp>K|S< z9qU+rhx=w~JZ5A3QZn7-Y@>J(pNN=-O|m+?IG?8bu0|;oQZMlqzAad>AupM00J!=) z5NF|_8<3thC_>o_+VCOX$|(>ON96_10OunjQsGcy`h<2CB@wA~0Bv7pTFoE>bo;@gm4E%Sb)j zR0gku7E3l@m39jB&1jKC{RU>Fs+a*(ZzF`XEEqYft%VeE7hhAyC&IzEe)wen*9Yiza!}HMQX9% z!;%z;@ZI&_^BlH`XX%mKA_nk;@ix+9R**{ux?rOv6wNvt6j_dZfJ^C zFPbJfT+-EDv^TGIj?dBwmdA-KD}LCH+6U~qUOBfEC`*W)lzpYN+P`%_VyHm8X1ilB z4B@m7INX;uV+@ZuFNVs7e3#$Zo2)Gy3PkCB$*(ehx{}?6&Hw6H=qB;_Z1gPvfNQw^ z+^~E`wi*+imW>cCkP0M~dZEj_^T;p0I6j^hyspVOTxp#s z>ZKI=Q_WD|rr&pnvfG+_zyG6%vQfx2*bJ3Xk6KC+#3S{JVswH@q{@8&uq5eX%U*3m zmJTTwy}_t0idQHaDb9JN(!`ZX73wy9r z{@vT0qF5X=pQn^T@`+l*WPJk>gp!0)H2lO9Ac}t9ay>@PoP9-oRejA%vR1sr4;hY& zzaH8VA&qwwrFs5Fs9|ZL&@p{qEcAgbG>o`kz7=08yfN+l14)}km*6q(&a51&Z?$t8 z(3L}o*}YygYjs($7vVOO%LC!_YxvpmugdB#u!;4tBt(SR!)lG8taSm$TJIiDj~27p zH!Fxy$_N>@N}1bU+8Ha;8XNq6{an8~l8sBkWspc4+UL^eK&haBM@xe}H$~d-&*5uc z0WPHfKIVB>3P|}S+kmdb(e&8|q>NZIy^p9Ydl&n!rP4!7_W?#f_$YtZhZl@qsFFW5 zb0up!eY`nz!0i?388PdLUj6#+7heTgEVX5tw7~$%+c#uwAkM0%IeUDn3Jwm#o8K+m zy^SBK==a%dR{OpSTgrX8Xl%m82^tk2m_~;W2aZ-O@2SZMPT?ROuqMT*=#ff?ZE_;f<9wy=Z#UuIRga>bjLAs}ZJ!_dK+M)6IU9yt@<4sCVn4V8F)4tR zwkFp9S<%bfa0MJaFx7&SUioi^IE$*M0+bWI>H?;EC?A_ZNOprLX&fApDxO-?)fEiA zZNC?z+eRPJrmuZ1`_50gKPp*3nrw8%+TYPP5lQzc0|{dQE^%wlv7iJplk zU#CM5CvybjZ9>*(BoLy8S6oQ(X_vC$PdSG_>Gt z$7l_S0%ClY9$`|pUnp%s`WdN84UU0B9p7I$_r7l*uwu=SZnuLceR;zSTGO~cG_85M z93<+&NcDsGdNzwB7<*K;eVe4c*fhbq6RUq-fGvCHR<5O%?;Xex*B-c<2|w_!D6q)V zc52AkrPXu0Vcw}*c5Vf;wckpxA)e|LNrLiaL@i5xb!doeAVsMX(t=mt$@1p^LeCym zTXglStl*wAse5Cxb|8~9<;{gUOe^PcD-+2fdJ}YU-W=_}iLc#6s1WQ!w5L@~A!jjr z!tc#@jB&b;?W2cX6*C82Q+lRKAA+jYZrd0`#c~Uaq6`I^YUeRbsP+6T+-x>eZfOxp z8zNWdvNAcJRxvRR$xKXf^@zk&52RshCc&uYt^f;{ax$v;saZ>^^drkLxFIHJPy{L`}*jkEmk+JJ8qWRlA->|K_sBOPyER@&F zLOybrGcj;I^Xq@o-r_7Q-<8YBOAez$$9u4p%3 z@Y0`dVygGFugwKBrgH_`AGep4ouMMOPN|r*9)#zFQ_IerZodfccJ zm&beWl+)e!ykxg+l&O}Lio=jJv|-o@T!0ze{?2^Ud+Z{qi8|P2;e@M_dc+8DeROg6 z;3#E0P1^nLWW1_0vRT}$iBDBmcRksszZTp7EU=jszTw6A0{++1uhmoDbu z>8sPtD;BGXW^-U|i60M)Pi`7<_R0w*nM#c8iL?0IiowTY18s4r=3T1=OX1lmj!ELy&SS^9vNphwA`+=jw8q$)M7NGHp(xg3WLK-s>c5Ci8wyCj>DEj4tzyAFyyoRC zMALh6-y-UDd-rCW1Lef4Sbd67w!YlBZw1Mf{C75JymAJt)&i8;r~?9|f*i-bRhwA} zcyCAGg!xQ53tFenUW^%;9-}sgM7%Sjl&OB|nEIIhxG$_&!`(w7wly80W1i za&dRpaZmg6!=IVV1ykGXB=@?T*Rp5c5w?T<7oPQ~JEYPHL3Z^lWVZ7aBb^2&^$l8w?;g!u5V*=5 zodqh*s@pB7>;o>ppRA8okzq|VyS!Y1Qr&G=0Y@-@GB1Bd?LXHKa}Sj^+^Y#Qyk_h_ z3ZB~s*p3KRI8%iET0>tHTTuxlW2#*=#cvOv5_F%Xg94`NyEEkeVQ8rNt%2-PEt~Q12{orc0I=d8GoD>t zqh6p*8BGT<>7n^*M>K3V7d{w{Y8kwY8P4}Ne-GY4+HHru3yX9=h60;^H0oc-co@bS zX+Af{0Ms`u8E4t``2Sxh&^1An_lo`|oPUoi`wz z)zV7L^R7#YUA}u)ybBc8>R$l0hicZd{MU{fBh0P!t+wU9%<%@K01i!{ZvE>hgvspI z8J^H+;x03~CmJ7iEkk!(u5iOlb#|8uUS4wuoiDw0{Mo;DJKM{GS{TKK&yBIxH7B0M zKbhgigv7OF=XQlXf6K@w|7E*8Pt(<%_f^(3R>22j#@D~Pv^}9YbW|Sm&7!U)cFm}Z zh>45|3zZXe-8kfb|&mD9Gxr$L?QHHBRR z;<_lub0Z`(hL|#G%{6wsjhdVUEGF_&xZ{`&q^RkFL4>4Yun}EZ?`X-wd7Ya zyAr6mb@ec*^}XNRj^G!k)pX7i6P!@^A~9>U%Cu@Dxv*=&*y549Q2xLeFW`@Zp+8n~ zGR4LR5e;%L&+l>rC9XhQzOZeLTj} zO8bDLpyMh@vm(B#VFeF8sV&*dD*Du2?XaC7L_-)er6kr?9B}!-U;cOHP|QTwwKx9g zY>h#?>Ed348U35Gdd<=-+$;}oFuSFAtT@CV;+Z_Vw6!%AGuh%)IU;nq&Ql(VQ*{Hn zbj~F$R9e>%=7SUtFFRIxAFJ(EB?(|$tG*;HNJ~)`^n9{OFC1tv-&_vGFzZm-wFACY|i0Cdas-C z>P*z5T(-6o2R#d3G#yavi@m<1!44hc*D<#QX9}flRSo%U2gKs=d{n6$xh=eF$7kS8pNf*wK*nMJ&FX znx4LVW#XCjPkT#MP*om5sy>~q^R{jA1KTR?%+O(D>$NQ0vNvulR=fqEVfydq`~B;g zdfoty@le^gZ>WVA%N`Et6QALDWHE$?L9Af$3iRQ1HXJ0m>RYw>zJ4m)(w?vq&vW!- z-nN};3(`E(W(mS&7W?Wsfct?#*FlbrvGQRVie$2F>8YZXaKG`uP3~KSzW-n~o6k{ZuW8wL5}H1(U zY*$^KJWy&Vlc6Z7iK3skm@?-2)B&U%p9+e3!Xc$5{n4LJ6aIx3XV>YHBa}#CvObeZ zFq96;&8RCzghj14wJwRaNk53}(Pp6qi)Bw2$-ZzLGZ+0PIW{L>L0>nKY{odaYI_$= zya}YvtXuX@eJ+$6ybm}RJo)%vX850)$J}S0yY1XHZ>_U&El$m8f2g61%k6#X_uL;{ zT1$%Fj=p*#zCVB)|D>${?1_5T5Rg8~Nbk{G=x&dd3fFVGL8r165|J0mQEy*;eUZIU z@jMgvDmIl;_jA$Wvl?m9FN0(~O3QSG7VGZlA#+F$lLOATaZO(3tQhlO{<^zM{>tho z%-5(5dDZn|DNlxkHRI#T;4FLrv7;Tw4ekA(z?Ri2%w3ET)rwobkOr2Ue+kBVN$B@?D3GxA=+8-ZOKu(0`{}=;`GiJf zd{*Yl9y*jNZu+KYbFNXl!(zfpb$bk=`Mn#pT{~UfVl((b7;HW(n^=_=aJj;8{Mr;; z$+A^YU$n$R+Ph|}j8N$8q(PS5LAjJt@WT@Nk82FG)1_;<%^-Y8vi+_Y^z3R}@k=`D zIZ%|i>YkpvOUaT3S9BtgTVRO|%5NuhU;Wp0{hK$38Y-W~v-P%(V`M-+Jq}2vrdWs9 zG!v>HYU6vX(&QD<^+0-)|U;KI=)W zW*Q68m19eM@i3JLfgoIYh=X4Km0S19V7;;uETGI<&bsJ z^k_`Hlpx+=U@=8>F)Awa<98)~c~Q6@gH{}zy?kN43fvL)qzIR+s(!gRJkW!zHy<%w zuf>v@Q_GG~Q$aL0AyqhO20m!oJ;KT=$5NU#TqTDDf_&s=6HN+kuIE1BD16tp*^z_7 zjRRCa=ahMqpGRa2kXaqea_G==KxuIX;eg?{884Bu49U}z&l5zJho3FegZl{fKLG^9 z|4blpYnM#BfS7ImMo6hbXH#bar)se?q>jC)lf-FZ4Z#<;$!I5Jak*$PtZ&HW=BNjr zo0j#4vNJ>B)Fyn+c0RlKp?f=cFMf1rHxS4v_k#NPFlLbho}cdxxYkhh7!(+C^mBI<}6n07AJ4aTIOETD$!e;jqK2A;4BqdJI{}SmrX-9 zwn6-gEYH0;<_E)hTcU$oATm0Zn^+uqCY(xI!_@WA3!1UHG-%nJP=0P^g#txK*OEkq zD~0Pe4?UeA%r*4cu%PIna4!I5IfPW5DBo zp5mC!Tf^HP6?eTS48_L#Ox9vke2LFMn5ss2N6<@B5eqA-?zah)s0ILj@KC)kTYm3@ zv|~JayP${Jd|7eE6*oeI>*!zvHYkV+K3+K(dacT4)?I~e>|Q5lDj_WM zsv?P0ZH}gxSpR*5ZCL)s6B5I19w2t-6(_p=27RBkj7JmPpb)5B;dlQi{+lyq{xxN8OwZZVbKhb z#O_3szOS3uBU-x>&+^QTr%&;7?oT=d^Eo@9$`9CM1_&bS>JBb+xyk*o{;NydFBj2Y zrzo2bZH6l9gBo0R3O9k(U#ffBtn7=})a|LrZB#jXh>xcOUF`LewN4pSQE6jUemkea zLLIX+MlM2`P@Yk$Y7N3^(5ptO?tk(cL-r;+J+kh~oJ;@U^}*f$TwhtlKwe>Lk3w-$ zFI!*kZ86-YqFd8_?52p`yT&kwn@W4yTGBp!)|w-IzcrekOZ;>ipQRa7E_W?=@GVCK zYs?{u!6EcYW)ijxH*5)ub6Ck~ta>!L4AOEZ`jhz(#fctp3v+}>Hy@nOd)VhdT{&@H zhl%WY)tGE9vC2-ow`jg8lXgl-+yW%rTsA7FJIcqWnX`@)`Wv5~i*#Zu4b9Me%Ch=t zL82if6MY4(R{cqjw}V1oTs3OkX8BYWv)+%@`??nYX#HPRlKqd$+j?C+d;R9t!A|cx z5_)WJ9SX@e{D9yh86$m?i2(@XyjERZ$wYstMNG!5*Hq8j>OpZj;^d-j2Kz%2eazUE z+GFFsjCH*}?)ZZ~5tZ`-4I(DN;SE7>tYyzIhor_RU+{`f5s{J7_3+3;nFJ~t<`0I} zY`OJJF&>2&RL2>Y-vZpaRR8Pxko?qp)`9#}hVSSf$UnN|oWp_qd**eQa_g`P9Slxg zsu%j;m)&%6DD=n3u}*8AH|1p^ZD&@B;lyy1s~mR9%$5gfO7+$)_y*$`8AXbfU@qF7 zurimB)tA4X@jl9u%4w&72(Fz_b=^DvIVxDh`*Y+3muCH``y}aVk6nmd=8c|VkA>wj zLm9lDzMv7st!0KWU4@LNk@ZWBK)j|Y|2f0p_^&+V4WJP9jBh205y&ybwG|a4mFw*Q z3F94b-G&0K>xNhVp@6vXSF2I(Z|Wq6jWNktl3GSY4+Ou3;zcTtuhWlld%K^ORoNTB7&jbWgpt`6SmlZwtc-;i4ZZ7bB8t|rvl5)1!DskK1t04= zHzG}`1O^W0*K|;o&^tmeXJ$R}^)%%$!f9zSekmY|M~ONQ4m#ji=``$o$g zzT&6@TZ6Zi%h%ZQ@%^w(2wxv|a3EKA*f8`pjOcYXwo?qsfzu%H(zFuoJ{C;;<{q+Gky30^!c@A7+U4COIoTOAKXoT$d=Og^RBRt|5cXZz2n)$p{&=YD?LT1uYwci$3(T@t35AgwysEoYTMlB*qqJ0#>6z5SpshkW~H)_?`Su`ChU>-Rlew;c0A5j!e=9?DXbq+OC86j}x2 zb+BT##Amd2KjD|UH9(n_;iW*eXUV5PEv-_o(%_v%Hqr^mpkhe8E2g_+ZI}V?OrFrK zJ}?)Dj??=X9FkEspOq;{Y)z@LSG^<4f#^^l7lYBl31A6Q{?*FzR6=jQJ7kh z%0Y0QWut8e#MHxIUbtD)Hih8S)f;^|=47T-@8}`Ohxp;opKE%nTEvN!`kvWMclk@j zZ&pbUjWT^bTIs>};yix$V7TN&KT|{|YA=UT?;^w>G3DkHPGzXtz(op)2s7`b&eI=H z#Im+7y}h4#A_;}MoTTaW#h#1+1T`*erbhS*@yvOkWzUS*N3s;Ld0;)i{Kp|wr2SB z7JlKxc?+D@GvcsZy6(Sefy{^Is-W;wtrFTdm~ z($Klu8n_kF-?WZqQz3l9Qz$vp6g54{0IW6l)ugQut(lVi&2UcIr+p7v@nXJz9IiFu zuqG@+mo<~yz4mQ{ihNTA|03-;p(z8Qn`?BhBYZmh{We795TBn~sTHJI#b>e1Aznp+ zK8n}-m&^tS6>CJ(ihq$U^s%%uEf%p{uvV?`))ZFpI`sjBK7|t^`k7jx;%9(3gO`qoXx@6PLB)qkcd5_l_q*$-`X8ybc#`` z#>UsI+Y&7CAsYw{7wf-7{jNG6ME$JkZyul7RlQ`h1B3ayU}TaKz@m<-Y5{J+c-x3U z4Pc|#NL17dN4$SXdB3R3S-A2?ON%yB#2Fm3{R94fzP)-p2+GwjI$u;&4YT-V%1O4q z$BT^8eP%~Irpa1;w3OqDd|OFHg=3rIY6D-dBGh5Zk2|)y4zk?vWS`%&+}0|?53<}? za|SyHS#F7q5(imsrZTAeZo`NRgPw4+yjRuwlP^ES8=b1)hM6)X3x8WR6iBb)nl3nq zv=2gM8%F-Rqr9}IymQxd+j@8(@agf#OP|!@;=Jb18%>wJpbsNwG%LJO$Kfz)?ml3! zc^|;hDsdl8%Jd(H^V|zD&o4UIk4IO8y$-Sb~H9sqEgZtRWM@Kk;$T;2-jbqX%- zzMxSdo#KQ1q7SO>vPn&35-q%KJfgEvkVjE7lTy+-&l~hl*B%i?tGBE#7R`VivBk`j zWCNy%My8{|K}->gd$puF?!KH%;_T)JQ%@Ll=MMUEy)+LgT8&HS)c;yDnRWQQK-^&N>n z^GM3}`3->c<3FYb0LbJwkG?NZ=&rlmHR<9$+uGSdJ}M}yE)$Pby1(x9OwGMN!VFya zYX#+PKNS%t?mL8V*Wycj=zMmjIizA4^ruQNkqBvTOcXI7@p($MY8L>pYUbPQqE&+49})0`c6>@g51w7}6I^F9JZnmllZP96khD5#cv#vIR@~#`4@$)56wd4S?Q*{KOHOa1D@RuhT#hWedi96L}pd zagB-`o^-R$nJOM zr!N{hC4K4B>oqCPIB?xXo#1A#4$NzGZ{_yvrACB+IPu#D&|RnS==__S)-g$)eh`R~ zjN2^ADvpo$WnV?qRebtaqRmkmlyNKOO<5-vNGR@p+u53bIR@4SZxi+U zi)(qvMmAYHePd4`~Fh8Y+U| zF@Ce8huG`@6*b9r}N%9R2?(!=b#is%K<&_?QoJAXOPkr6*}j#FZ=f**Ofb znw^^XuNz)__2&$SBN8i?HS83Ihr70BW^Tt&=J?iq_GZSUmV8Q;k^p=A@~6bUC;or( z$gj3N%uW8r-LLbaBs}_xqExn^!RXgPL6+XZ?FTj*%x^?vi~vaqkNL_1J|%SW_8Xgf zNBej8bX%-AHK0*vgA=4}*|R!!dZ`QwkKe4J?~{V$WUFC`GgNaQlY)}>*l&V(gaWS` zmY^_~T%1Nm(@5logoysrzT894jHJmTU|;d-X=v~JL9tLiKE-}f!Z=j>g1Fw>4>Me0 zpxd~wd>{?SRgd?jKgTO&=5paZtQQ1_X!b2E-OkgZgl5^gWuZsOPflH$(Qrv?%|lHW zI^_AtF_Uz34Uwx1vDd5mqCi(;FTn5Q63&?2fra9=&*cnFO#{J{HXnkj01Sq3!oF;9 zqrnaOigV@OP*NKDEVNWhu#Hw`U$UABq9n;c+sI)XzIN0q?N)~6vM_S*BE4}&TN!t~ zz%#?w^=qnqp{lxx>sm$PW+AraKl=ZtE`I)xyz?)t^v}&-P_oS*EN*)|0iV}~>zcH6 zUvP)DL5dDc)K+6?abU(lxWBoTNPL1%woaqvKFPW$6W=D?T@q82icm*5>gX^?apYd5 z?pBm6+%3txnB+6$uXk%y*1^F6jyM@(4_vAl*?2&IlNb3n9{*2w91IRu+910FYLn4j zD$IN1SzH>Aw$6X(N#m>5S2cz}=)%3aFt|R!^?twgryrjQRml291+ei^hO+USi8$xX zOHAPsl%V2TgEVpqhDqwQA3t4Q6)`dMmD+bjeJeLrS1EY1*!*c5pE`}N=#@A6HaOF-M&9-kbz1Yu`IT21f{vQsBcn|+oFaGb) z@|VAFT!t^g`I6qTQ6F)HC3k zm!D=}J4dYqLu#$*cBmuBk-{=-QdCwi{O+w&f4|M3S8Y?|(W?kSxy&Bi0BBasDv)dy z`dUOxrt$G}Mbw`+5P!JIRS?)ExdS@LnosC8b1y zBtSw_Izd26=tWBCy?1`hZ@y{w-nsMM_ulyh#$&XU?8yxp4m6x$|sSzPZT4!Nz%mgN=ioi&x|p7mpARI|sicztC+_F>x`@ zn^JeBfHERLG2pQ?XV0ELcmCRi3)g_$9NfVF*Vo}E0L$591;_JF0QdpNSdJZMId)hB zNCF%K96xdF*fGHG*U3}IPMkh|=Il3sV<%1=KXLNp*>mU4oH%tff9z;w-deL25?t+Rn<#J;6NB|1_cwwX()Wr?Cse;5IQ!%PdED ze)<2|(?{6;FRoukN5G^{$$V?cdKcmrmEX2>n&0S$cO%yXK0R1I>;qgpafI{O@ne8{ zfPHSjO_kqC{D;mN)@j{WPVASDjVfirX~~v9Bql&%JjvtL%WSl_wHsE z?^FOYvfno?Pi8-+*T8#5J%GjN$`O-H5I|g)!iKb;bVnh~H{s zChFa5G_~o42E6JSzjZX$E49fF`t6fLfNdIc(3x-0XXDXce66^13>5CxTS%3@dDR;; z3}<(uq0*QG&R8rTZ-$p$Pz8r29XO_|Y=8zgPc+I|R^aOV#MV6n*aOPg0rXBOh7(F*3Aw=E#zMX$smnq3t5iiC{7yQn@0R5HA! zN?6{(P5wuT;`3a`;cjQ7DkWX!izT7%`7z*Jv}UIkSeokw_tWeON%KrP749(2TL z7$8tO8a(LPgbew@NwohtCo?XQ%rTjj5XPOaQ-c*my%30NHeRzMX)S!otky!! z*uSa%tBpiumuoIcan-v3P$;cg{HeNG-;TrbKJ zbrdX=SL_i_tvJb;5f->>NE@qQOj6z#ovIQl~2mKt_#wyBNRNOd!m_Y5!NkJJw2fW z!XhT!bYNkU|5;QCnxR7cJhbGF8JJ0#A#Pi>#JB7Zgu~S_`4!b5=cxSfm0QLE=3}=d z4j8B6^-&gcjj-``7AY9&(&rZRNHeCr{Mz)z@BjCVoq#dE=_u}Q=yD_`n3rt&Ht71N zPfV{T`8R8Wd z76kCV`Hk_*F75K4T-f|CnQTfas{Ls_ef~HNIDPcg@#v9S*`mIU`U|V zpe4COcG!yoYn$U~{lT8t62|vic%!T&lG%udfl4v0;5cA@cr~MWO8yGMxF|N70 z#?xFJ!~6sPp=L>>=Pv4zppgc^91>iS4Kg?qpNrXdTY6im=0wx9I*>2v&XU(n8a#Ghr zt`C#+0uC}nz(^(*=Y=E^*KdC~xLMErzB>>+9VrDDx#Qjajdc6se(b@$lAM%P zlY6sQB`S^I?C(Fk`L4B(RC&!#qU6wyR zt}oCONXMEF&yXPow|g(CcP^}71t+Dg&qfB8RdyWQY(k~0c&$c2*S2pBYne=H_x3)2 zo*FFZd=)QTnTB?5TFGnL4b$<(2^oN~^2S5#9`tR$N=TdiuC8u2Qy05oD5_R*F?ROc z&u8Qj8x2OhN@S68JkVfFMc!Z+EtTh#)(-gPSH8nR(#^o z-3G(3b*vwd`J|MiDvd%Mh)e@qx%sQ%R2kD}rX|1G2=l1ZbI2`jnG%d@R@YR7p{J7! zSaoe2`a)vs*dSIr_EY-<}7kH)3xo`{Gx*N%(0m~u#d?X_TXgdX*?7C6F3Gg2cUxlM8_pl!et=))Um zpHwTPp&8D-J&vg`ac4qk&J_jo_ZCUdb0-T~t#tS_-CN41z1KWl=Bvd_FkW!!t~_b3=y!v~g(H z@kF5o6Qql>yWpSSc=Eggo97~!EY0XU{SqUED#MprQr=NKN^BE>_A_bW2iIWkIgyvp zVnx`t;Ox*+OI`j;6K1dF&?)23!3&DA9WplSezm>ifGHX$iO{obuhAY_qS5g7th7n) zlDRFdqh0HghZ+lxRpYBk+nw+UD?1V-I~-wSni$2#()6ZHZr$;NeoM3x6J}^&5Zs=q z{Y1}^NzZQ|Gh$wq1Jgr-JKQh08aD+NwR!n@`Oth(sQOD;>ABhA(dDyQ(i9eYBt|TX zU56?|2tvNIete|t->-|{hAz@uLdTJPUBn^!D)fQ(YnPi=)?9WD0asN?5R@F3P4SPm ziu&_xK@v_zUB;@Y<+t+VhWrX=J{OqxO34?Sm^-nBe}8P`r{7_oB>Lh|a$u~I!4SLi z8$+p>843HX=PIRo26pP5gB?tZn9W!~e#b@}$&en$oJ(=rT(GaW=rwzp&KZp6nh|u^ z(CGEC8(xrm3+3G!iU@D9Dk~(jT{!Q+)C0a9(EDsvTd-eQFQS&U_ibpurqBE&_t@g- zD}SE!WDzf&^D_<%@hu02rKjpW!{V*4?;WC=wLnlj1lw6zon4z!_9*x2E3|10jw@0qiDR{%xM{O6pdSdqeb{78V3<@@S|v) zINlHqxO0*t*YWu(s18VMt>XxfOJ2Y12i6lnb}5N+rtxR}sH0>=ilT?Z-U6~iX|vzj zCZ=s`aIZqk?`fcMwvpB*M)Le%(mePHx?x{N1MdT-n*I&j*@vRTVs9m7A;yhLSV`|cN; zfplp+OUx=8PmHh?88xc<{9wF_ziuN<>B1;NV4dkcZJY*Fltm0R*(O$oj6{5-+ht(2 z5pZ^qMo@vic@@=_;UnENQ8x)N`wU=XUn(uIfbY1!F)s!yKY}tKq_=B6I+0F|+od&!vA^X|FPH>)M$c{e6uU z4?DV^A@VABOzoxT&B4onGqQ=l!ujKu>oGAAxASw<=gmU^kIe_z*X~fYx6|ERZM>h;fcOkO{B*2b zmyD5$5ZGyqmrqmVWuQ1M(fOt)D@B8}GuP|m8+xFUhbOKfYLy9QBq~Xnk8Aac`3s}4 zh=3~!VNiadi`>w8z z!=6;Vy;Zu`yp_cCMm#N`uYH1PKazSck8yPeiJNYAz9frt?KY~1=q(}yAVb0=6wU5D zql)4+l^vR5J31jO!Br)HA7B&Yw6Qp_CeHk}k2oW20}_%eSDrR6(O)8lqtU($7J8TT zLe=!gkzFmf9>UbKeZ1{VbXvM*gx?C-LY#)l9>jnb+LMHHgd2jK_?QbaDI@dWnRpl( z1$@RC7+L^5G`t>GlLZLUPKxW~(+h z2(-L=MMJ$lgqTYw!O7K8tmN|5yTTFS8}-sW7e7ZeCq(puoo(63hW34JjpKt{Xp>r} z3CX3bg=|Ux=lCqWl-wTNl8h#{&=S&o6lj816P*xb_WGx>ntK#3KjM zLDrr%b+~$K&{Q%gA6YxB8~awX#4OvnQwD;1Iz3Aes+UQ@3pa8tWgqR-+1Sq~Y<~%t zAU`cFk3+Z259$TG@28pnqUDA&`?!73``8TzWGNmSQvN zY?&bvgahl5V*@D<(SYsbT!%g<=YsM+emTIIKVBREqmrA*oVccXv9c-4>}c*4A*_n^ z`I4q|AMZEwQ68Y9eI&K_+}Cw8)3RA5ZRx9N3t^PvHJV^f=?)Wf)+~pf|t=$YQU^Nzmwu~Cc;wP#~=+xOjYk^v^!{=Vz>W@WY zm!8#FXmsv(gm}v=+vah*w1C%ADq9yzQ6!3;%@p88&su$je0n#7pgr^$bn<=ax&L7>H4p>tRmXgKhO`E#h=(I%jmIIeND37D@mnC9YL6iAinmXbSnXV85`{QV4CDQ+E|k4%`NAtxpW zh$(j8X6>mtC(Ks9_5WruegEo=cvrS~9NNJ{EF&s*uA@1LyD^#3t^#3&4lxnnp1~IQ zs>n6>J+*F1?IB?7;KH7+sZXCz&We!3fkD`Y=uzCNrcYS++^5~LxHR3x_3>oa&wp|?{y<0BBoCYzD;y7;=b8c)I5 z@kuy{a`$2Bx934E*g_^7o!A+Er&K(csi8?ScKZpyaU4|joGbZaEKVxh+QB-bNEc$SFku2VY0s=4|JN0?_hE4n{Z&h+%M-pfPP8 zLYMRwh{R~SJ&zWZ#_=G^L0)g>QEJI#cR%DH(DI=hsx)VfYIVv7kvAOOp&j?Zr~JOTi>OD4ar23Ld;cC*+s*}3<4-Pqea?zxWzq;^AxRs-hp?w@}3tJqG?_?Dwo z{q5ur@P~j(g1uotR*donjc+e1pgQ?fN-D*}Ct$uf(t7ovPb#ZE;QicVVis}2(|$B5 zcK<47DB{bU!26P^5{#q@J!RFcR!jV+QkWrDu0F`sKT`Jl(am(-0ugS>Wc{M%J8-8@^)Ka6OQlsVAVV`&$^&SaWY>6oN#FPPptjt zdk%@V(2v{J78kzhfeg>=CmKtwr&ji)PHud&-uI^cYmv$9$f8qiWV<;qE77jg;OI%# zZtTZ1%}(}38_T$fe$9`7mHzb;0z%Q&In@JMU!{N zh8M-B^H%a%D0=8>uITTa3gw$AIxxTORqNyRt`MMy{ugThWq5X-67>aA zk>+AU44IqfQhA&5Qq=QiJ$Yc${E!WPl{~k=Y_Yn4*?On zG|sKrF)s=3Zh6k6g~rAh3Am`ft8Hd`y*H{O?GQk|u+TD(+*;{Ma4NTpzef~yQjsu8 ztd}NLoFoP;A4 zLJy=3Gl|TJyYA|S%6MpNo?22ywiAjQez891i4xgsRc|l(GHcOV#Vg3PKxT!5zoY@s zN%hjl;~}?y$Mu)aU!1)m8w7?dky}^O;FH4>pL<){W-P0;Q8^P(F&+l^Io5-|#rc;K zgShvA_P=wlCy0d%3HS-*-t3bpucpX*A5L~86fib?#>0nddR)4hd#WGssv*6mc`NR1 zs?u~=-)p}cB0Yc$>aKqw>t6<6fj4bZL(onMF2e5fu;$kH5%A8>jv+xBFm;1h0oXE| z``b=Y1B64sTQlT`Ks3nk(cp%DaSNNDk_T`Xs(WCN=tr&6OcgoBxW9ZYJn_0N=N4}# z)^i2gyGr>xPX2|2KMy_D;Myjdjh-!c7Nh)H?ias@O=bHl;ryR?d#xI-9RiN8=7Y>% zL8m4&sR0Lk>L_DXpv#;);6xeh&rtroulh_^caV)D_w4RgDQ-z=f7}3>wrvB!gl4~K zsj23TQMjBHF5#Z{fl;sFo|aHhEw<8$5s9W|lhH^1K4DnN*)I`4GA+7x z5XR9>tce9y2o+Wd_*C#ZT_8qcMPc90a(s-kw6!I^j3&{=cfKf?v1f)|YRk2$ML7_# zQ8b&TF*-5Lawi<(hOLT@w;{yReq?}9VvHMHrU@wBjx)r?T5c8X zerM;IbKuV9rf|i+h}lIoOWx;ajQZ^f<8>uz4m??S2#cH`A2f^oq?-qJwG+VG^Eb%; z=eFBh-Kne>C21x^;QU}*feV@#GLSWCoQcVLf0T4(wxEf-8+v{%d0&cexRwq=KNWX% zIo8vJ!S<F*CSA z*?6FQJJQ~ggpc7INs;yC38LGO3KlCn{aW^?&IBz;A85qkTjgFj_&F$>cfsl1@{HDe>2oS7XwFUqMo zuFdLb_rQI%r`K++RZTT`G4^VE<;Nip#nl_BubJo((~$0Sgn;Jlc`d6M*Udor(#7!v zeSL}Xou@bZrHuPOEBC|Q*#fRp2eR;Z0UFxHnA}t_;%VdtK`(8l+iQnJ9%T{!yBhwO zJ>mZ{vdkrd7*!e8=512c5*6USvfq^X(Bq1)mFE3KJg$-3Y)ldrLmsy8>6cjQn_q7K zm_qj+eC^<~^ zA*06hN(=OaT?d_Do~c*KZ^y*mvj2SL)$qNTfuHnG8J;#DCK`sL?b%odSkX`@#1f9+&hN<~}GW zE$WaUC}%F~vS+IDm4V-PHq2V@K)2hoq!i#Vt+gsEQsJcNixnk~%m{B2*{gC7Gtl5j zt1`)!scZt{42uu%*MnPa+xKWpTNRspuFH75r}4<6((P%+%Gd3}p(xs^i#-LttiDZW`5T z&+chdw0hTU+tpengaKx1@CDq{wA5Z*f3x@ULTz0UFF*E4F+#qOO4usP&WQnr5`)9$ zftJ{;+i$@8nmJ@bHXp4-z?@wO;^7oSeZRWTNGLl)uaqpf|w8G}*{84DK zS5NE?L&qo=n=Ub>9B8`8LqK!;#O=x=!l(s7ZrG_MJKQo}~1 z&1>86jYVb5e62>z)vD2B2g$>dR9|khFBXdu%K1#`1yt6km%a>_> zqV1w=YuR_|YgSyxJ@HE7y)3L(DY3-w})w<~qb(Q$)RnGrJ5lA(X*O4q7>@f(QE5<`~%C&6lKdh5G<|DMP zb(*IDxt!WxE^GFcqG0gvlz0^e+g!tf46;k=nrPN>uJV=ly)GalOI$Tp;3-ng-zu(T z)&UofW5CYbzI+Y+)<|KS(&(IX_~qTG%6MagD8L zr3(_^(d0uwWaWrVBCYk=`p=l_k=g@yJ!|}PJFilkzUDf=s1n8!*i1v1v^1uw<2v&? z5`1Te{#mGtQ5*~a$^17RTrIJUFB%joIUpuUt5w#)mZdB(`@X)R^i8;@otjgKNNxh# zdyPDUEUV^*&|E{G5x4GB$+Sbjmb~-JS0VEr*IRT0Q=pV}cjr~#F56;h(A{`N+q%wW zOJvuKqGWYj3$h}yjb16MVs5~>R3DamnuvZQCi;YskqDlic%pqRUxmAolMsuA%fVpC zw0DK`xcmQ&-2X6ljO@)%%!)orQ|VvKG1le|*8RJ>tJ69uAf2ABtkTXv?m}#pm;+icqUHC~~>}{^20o*zQ zrbp(O14DVAzUlR+d$Mt}JkEE~R!czsr!{VMHO3>Zbwpxm zO{MCn%lI}rH)@?*%6!*qO=;Pr%{I(9wmq1M($_F2(hk%`K|Db}iYN!h1?*j&CY5oq-51lP>5OE5r@0skX6Y1)eOLwtCe(r_6lbuRxau&Hw5y2tU8C+7In0bL-T|d45rM;2{ ztXNd#r7fp_Kp->vlE(6j&_{7w%iJ#0C1>Ulr z2`k7k@b!NSOiv{JLpe$ot4~3zHL(cds?k@_i$cK$Wicw~?B0{;h$z&>P|`JhJCgbj zPxLW0444MGQ0YC^f7`b(@Znt9j*DHf38izbA3D9ZYC?eD>Dlh{>KxacF%#2bF_juv zm@4UDXd7k~-ml;3^FWRi)K%ObEWpR}ADt>dZ>L*Y|G9$bcNJumxWO+K&~(mc6P0}P zd!{+NRwZw!@6~O2vfrK~x$~m~;>660AOHURzjV&`CHTT;#H_noIFQyO{J(T<8jO!xNBQqsc#3{WI9hd3@nUV9apv%dLCS@*;E{UowWGtM; zT_yL+MpikCe+KgFz97Qw5)Z2WrDUw}keV3q=|pHULtLx&GnS1r51k%mhSN(+V=BkL zyP_I)I{oMza<5-BZf)7Gs%@I@rSm~^Z6RhFfg$-DQCQsOrGgNxXPHPpx`&Y0H$Im} z#Oh^C&*BSVrElh8dFwudZN~C8EZLQ8iJm>%>wy3t?XL;vFkf`&8YU4ST}Ot+$tM(NqB4Ar2o@VU6oCq4!7r-eei*z(yNy2=ZUq|QFj*&WjAAQteJ-2%ORpL z?FV9aj$L~HFX{w{xaRWN6BB2}0!N_p8&sK8B z5gi8vDiD4)M6g22SvSX;eUe2i?Nx-eTb*&!iw_v%ePya$Uytn3tQMK+c{j>V#)inH^ z@rSDV5r|OqHPl;F2lQJlT{e)Q^e4j$R~6Dig1a<3^#n{q3i$agSuTcWIt{;?k8d&b z?m#D|BKYy5JQtVHb!21?%ooJZFBvZkwV^wjoH&uRkaFw8)?9qR`m3zRWmIJe{lqR< zU9(e_B)q-I?w*dYDREM4sZPmjtza1P_-IF)?JJm$!P5y!Y({dEXBi3n2sB#2!-jBF zBk>Q1dDwMjE|+qi_0%N^(+^U%{Gk*o_hfzJH@luP*1~K0nSV&^#!n#{WOYcn* zM7KhtQps7kLdKh^;QV{vG%Q45x1;!(eO7w>3X1oQ%(iH47AT$~orq7KG52D`%Jp@K z{3KkCMGNT8q6sH8EVBob28_4;lU|QsV%`&g&C(j5T02gt(o~HfJNOxR+Bm!kd4VKF zxh70^p8GhlrFo%s%)?7Jv#KC8UCZ(%^Q3f39X{6x%paKes*-*atjQs2PP-DksL#NEeXA5QBuuc`yNoU`v=By`H zFt;?3Ah!8V<{-U91Fk8}_4rwYoCcRwNUqh5my}#X8`d;_-bhGAE2QEh;NJrkbPE3b zqjnuadQgO~fY!scqw~6`TxUcxGCMd0o&CMj5x?PXISaEWl#6XPaqdfnbE_^d)ux?+ z5_hS?tf{XekDV?O3;YJ|0;>q|H3c05J63bcE@Md$22o{LZh4U2plwGOLZRos% z88OMs%)*lh9TFCH%b@lt2e`*Hy7Fung*!VmyR%nOFy`iwGwqyc?Mq*e+VH>J%_jk0 z@HESW^j7inD~SfRK;5g-s@|1rLDc#ruTieQDzg2!<;=-3?u*N=(E_ztt&8;p=U`(b zJLdT*#~ZRo8**2dP%~oVD^N4R;?{oQu>J^Mv#15VMJi44` zr)ghoK`wh}0-Hj(D?4k*4yur|Q*gOE9Io`3mcL_`KQJD_6(&?$1L7cmsD6-h(uziMek;p z*0ey#mg!W#9akTUkkGYY0YnH>^quN|nD1>!gs^xnd%!0tJg-vul(DsZ=XQjla9xk_ zoiE^0cHX7^{oFZ5b5?ST<_0?R;rLPdh2P~BaBP>~Vy~(8#*h&v>NF5m$Ttdw_%W zZw7WI#5Uq=oc6e*Tk)7mV2dr=cJkQr`#0uJnS_&)j@vX3ORz@^E z%@y#Jc$(upwe{r3)Vm8Sdych+1-`dS5WXv<*p=1U7`(C?tLWDV4l}$$-)oo8Aum)? zb=s$A@zosVp~~@Ng*||)rXK;{*w23l9dd9^%!nrDN2$-F-&niNe5p(0cZ`VEvcb%i zdsTtB6#j=w0i;ByJo?6Ma^X=5DS9ly5Xx#Dz6FCdAw$E0^!BEV0?sqc0@I3VVb+0H zhasGB2*t;egQ?BY>CBQ}FUBz_QSC)+XGORosFC>oF{OoyuVz)GOJ}`X|wpl`3 zkz6XeVNNQ#nsz$Q|Mc$agNca#yfKe(YCUL{+$Z zFcT@Ptl!}N{jVi2|8%Y$4Pg57nC8a%vDoJo_sy??5Mmy(3=9NPZ`cwj!857}VkITN zSQ$Pwcx4QJwR_L78F~ol&=?#Z^4!+P(Nt=$oNG7)?8}UxA962vz=^oT%E1rOgD$^$ zN&~V&?=`0gVajV;&Mt~dtU++FBcsNEydHr|*k0Mv+S82OFc+w*yf*_rSXu*sGQR(9 zvHhvNS!1VUMaPT&$IReh-w}MIh-ys8x@{uMXy3w=cE38w}+4 z!I)^Dbk!I1<#*^7u)=nDfg799+tP9x#i!M;4-&w!*VYT_)ljZaXy-W-(zV~_qQUd( zT0pRAN*4|zf*f;$u+`}{v-5k87Hc-5j6VA`S}$cd4YJ8vT4Tm8clIombcU80x?~oq zrY$$ky|0kp8k_K`@ikVFP={mJr`y9dFr_-6yFWNkzC}l5MNbR)!(kMtt|X|u)zg*q zf)1iR8d$U97`}NF0v>&)K*T4Wr<>RlM*)#!Yr! z<6HCb=fmJam$`bT(thB_g=Dc%`M7Yo>dveWD6XVRJxy9;&E0CxG)hNDyROi+x7C&_eNEk5m7-FzS%{!ir#wRmJ}^{{FUor1(($eG!)`4ej7u(0GP0+Qtwg`$BPn*4s*yd% zEx!(}zE_0;c^(3~6btuMdYqt6zL- zH`y0knr~J2h}LyV?&I33_T!8v^A6xy{06hg{#!@h7)Shc2uR)^R;QyyUD%y3sgRQj z+~hY!@!gFTz(We5`*s z)g9vfTwhKMo5Wk$0!oazJwQTkdP9fD%T+6XHdDCrDmVP#NgqL$^b8m9!3a3nYjIvG z4#K);@Vfj{&!gE^!TtShehY;C)OOI7^b5(pz4yKuSaWPW!DbUlQQhk4(>8U<$5J998%7hs6wF4g(hgg1U!}2udM3E%F6}P zN;IPynA0!fgwstsXM;lMq}Z0}OyA}_htD1fsjnCM!wf@3DN?Pib^gmuV}%dKuMNNG z>^ubE?a}jm-MQi5M=J=uT6cZ=T<|3SB$smn_0G}T+ka|yDb;=LCxA`%Uj+8+fMGP< zuPbF80Y=LLYq<-=I3|xixQgP=J<6Q~muyPizojqbRIb>o@*zq4q%>R+@3~XqB5f>} zf0Tll$kACxrsY4=NnphFvgCe&Lrte|mcTb=O5RzC5SfC0o9Phl{c|5MRHSg@+pG6~ zMaWjBB_$9<{@`WjyE29M^0H_2E!CPE-=Q+*#xAT%J!tsRCv;5Z`3PHt_cR#;eb@)i zG(3qFgL6zemI@T3;wPZ|u7CbYf?MjpC8o!$Xs6`{;~O2#f80%nu?|05+pCE}(ot8u zVvEs#N=Wy%X*G z6TTmRW#TWt$3YSmaiM7iK2HmEQ8I?#&FhZ&Xg0KYp~_hD@4V6fz<@>n_4%YF(_zCM zfn>YDLx4-5r1Cb^vZ`hh=oBxF;Mf$F{5C?rWM#a5Ai4O!e|c<|B+BFSoDhXH(>A%V zy45UZ%ogqztEE1vB+=ieMP&ALyy$eGElX6?!+OXI(YWY*CFK@dJWLyBpyz{`)NM0T zMhEzvotNrxhM~OC!+u1^V$Vic!<*z3_ItXbwCKb!Ai z+XV(US4^Nf+tW|t9tq<8UTZ1dfYZk4Hm38yT)I0Fm_>#4q46P0Mzz;IG#YL7guAz= zdo;eNqV_?!a5E+9hL~H0pzr^}_|XBmT3YeYqFYmIv`G%gz(s`9gh%ZwIz8TzYIK9a zdLgTe3_*tA^(Sb)PKkJOM5xYAcJGX+Rf}Derxl1_G8O^kFNf+vC6WBV=*RfyajGbB z>8g5_6)~$PAdm`uQt8|T84kAq!Jz_Ae_bRepoE`2U>=e$Rol3DxP-nW_H~QFn>A*F ziFL%Rl-SK%W^6)z4BLcQN`VE5lAg9`VwKhF8p?40#*&2 zN5n8-mkdJ3hL@XKBb2P&TUn$WI2 z7HuMggCYwaZfXk*zEIb|4om|11)vJ*>Q#bYeRRc!S(v`d)sq*NDDim&a3)JB<2el6`pG>+qov|W-ZF&gvr=j+COlL{8X2jwgh z^gb5p>S;}_z_^o9J@-_q#*XJ>SDp33USqG!Zdtbc?r`&rucsWn zXx>v#XQU(+OvHqBya{C1s$L!-G2KeTYM>k3Ll;022`kL24GgIMDI4)ZhHJfw^5;j) zP-B4v0r;I+HLDXMn%NSnXYCqy3|eoV)lP4^T54okm578x!Xu5CUee zLuwtbZiWvLaB|Ho{la#(gyael`c%PWU1$>MhGh6tD%`~Eg(kBvWr2UL*j9@tuMiZu zKphlJ6vU+CLS((0SV-@PxxN(dx51y&jp&IYpLDMowF>EuJppy-gm(+Go}aW=cSaCL zSX3I0QUn~oiRq}mo;mJH>2jW13_x9LS(sNWHRmAF>(~{`-&*>tnFmFkUT3TGJyj*f zz1)Eu$43=nbyChw7!##idOfwAOQk;J)xRG5{x@*{pW0*11O9dyO(%`K$7~8lzN=I6 zEHZA?scQ%sAGa<5u@eO&4I+?h-`@cIfe&2yaQIXid<|qbP&R$+&7Wrefs$i~z5fTz CM#s+p literal 0 HcmV?d00001 diff --git a/docs/lib-rounded_square.md b/docs/lib-rounded_square.md new file mode 100644 index 00000000..7349efc0 --- /dev/null +++ b/docs/lib-rounded_square.md @@ -0,0 +1,44 @@ +# rounded_square + +Creates a rounded square or rectangle in the first quadrant. When center is true the square is centered on the origin. + +## Parameters + +- `size` : Accepts single value, square with both sides this length. It also accepts 2 value array `[x, y]`, rectangle with dimensions `x` and `y`. +- `corner_r` : The corner is one-quarter of a circle (quadrant). The `corner_r` parameter determines the circle radius. +- `center` : `false` (default), 1st (positive) quadrant, one corner at (0,0). `true`, square is centered at (0,0). +- `$fa`, `$fs`, `$fn` : Used to control the four quadrants. Check [the circle module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#circle) for more details. + + +## Examples + + include ; + + rounded_square(size = 50, corner_r = 5); + +![rounded_square](images/lib-rounded_square-1.JPG) + + include ; + + rounded_square( + size = [50, 25], + corner_r = 5, + center = true + ); + +![rounded_square](images/lib-rounded_square-2.JPG) + + include ; + + $fn = 4; + rounded_square( + size = [50, 25], + corner_r = 5, + center = true + ); + +![rounded_square](images/lib-rounded_square-3.JPG) + + + +