From 789e62a61ddbb2afc73be9a9dadf710846e9b8b2 Mon Sep 17 00:00:00 2001 From: JPMartha Date: Mon, 2 May 2016 10:11:54 +0900 Subject: [PATCH] Add `Find It` (#6) --- Documentation/FindIt.md | 70 +++++++++++++++++++++++++++ Documentation/Images/FindIt.png | Bin 0 -> 46975 bytes Documentation/Images/tryswiftdev.png | Bin 44016 -> 44174 bytes README.md | 15 +++++- Sources/Command.swift | 11 +++-- Sources/Error.swift | 3 ++ Sources/FindIt.swift | 29 +++++++++++ Sources/Option.swift | 5 ++ Sources/Parse.swift | 3 ++ Sources/Usage.swift | 2 + Sources/main.swift | 7 +++ 11 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 Documentation/FindIt.md create mode 100644 Documentation/Images/FindIt.png create mode 100644 Sources/FindIt.swift create mode 100644 Sources/Parse.swift diff --git a/Documentation/FindIt.md b/Documentation/FindIt.md new file mode 100644 index 0000000..be6e18e --- /dev/null +++ b/Documentation/FindIt.md @@ -0,0 +1,70 @@ +# Find It 🔍 + +### A Work In Progress 👷 + +For now, support `$ tryswiftdev -f -name ` only. 🙏 + +
+ + + +
+ +## Example + +### Building your project _Pokemon_ with Xcode + +``` +ld: framework not found sourcekitd +clang: error: linker command failed with exit code 1 (use -v to see invocation) +``` + +### 🤔 + +
+ +### Running your project _Pokemon_ with Xcode + +``` +dyld: Library not loaded: @rpath/sourcekitd.framework/Versions/A/sourcekitd + Referenced from: /usr/local/bin/pokemon + Reason: image not found +``` + +### 🙄 + +
+ +### Finding it with _tryswiftdev_ + +```bash +$ tryswiftdev -f -name sourcekitd.framework +``` + +``` +Searching... /Applications/Xcode.app/Contents +Searching... /Library/Developer +Searching... /Library/Frameworks + +Found it! + + - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/sourcekitd.framework + + - /Library/Developer/Toolchains/swift-2.2-SNAPSHOT-2016-03-01-a.xctoolchain/usr/lib/sourcekitd.framework + + - /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-04-25-a.xctoolchain/usr/lib/sourcekitd.framework + + +(Check your `Runpath Search Paths`, `Framework Search Paths`, etc.) +``` + +### 😇 + +
+ +## ToDo + +- [ ] Error Handling +- [ ] Tests + +etc. diff --git a/Documentation/Images/FindIt.png b/Documentation/Images/FindIt.png new file mode 100644 index 0000000000000000000000000000000000000000..77318c19a8857208e4f97b3f6bdd9715c6e13ce2 GIT binary patch literal 46975 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 bZgy#6(`$*~w)em?;4e5J>2LoB@Io|} literal 0 HcmV?d00001 diff --git a/Documentation/Images/tryswiftdev.png b/Documentation/Images/tryswiftdev.png index b41360721a397c411deb326a1510103ab6ca7f35..e8ee0c74acc11b9fd112df3a03ac840734508989 100644 GIT binary patch delta 37453 zcmcG$cUV*D*DkE+3_2DN6bk|h0xAj)Y7h`m0g*1f6BQ641foq2*l{IJ05 zgNNYB28GH=p~rszL;r}}R$*b`jB|g8>;bmglQt)oobFqDeEi&RC$E(qxjOUwbX$~E zR&CsqKZ1m>wVV->ekW!0hw&xlOGox@w|Zq+TH4#ls3^6fRn+uqPUreF8rYG7&U6f+ z8HX5a3di}AjSU==dk;w^-zzf!qF!t}e8%$2zW5#Zea;a@yEkvUv`Ikt-lnZn*KYJ4 z_E&Q9gs@nKzh#9%?i|_lpNDDDn*_^moVHm#^SaYt$om(ajW_;zzHNK?#AQ#b-8;&Z zd*^$uZu`$$M>a*}Za>BQ>R~4&+@*%hW%#@WF8{UK_jjM~7cdOIYhSdbRk^z`y(#s` zkF!485>=m5&#P(Bfqg?lR?o7XFrn0b95-zFwPFMS< zwNGsOI6kkOkZp0qz#|dDuPF%>Qw56b&txC{_h3iP9Eq|!eCKwei>FTP-7^PD+g^M# z!5rWE!}0F5JleK1@b$ry-byoV5w-_jqL1F9UfFrj!T-~h9}g4L@>KBY(OW`$YGTat zBg?b6Sn45%?6zOt{4i(}AaM4`C&E`(FW)e20^#yY3E57tR-x~g z@m)MOg0^zh9@M@H$;`&Dc*Y^#f3meexeyCX9SryL6*a|HYS$rRh<|0Wc^lLC2Jyb$ z#>1d7JcneP!*v;&F?G-u=R?o}s0zgNpTOPtrA}JsjUNPcMn+&s?Qm^3sSO(ke-LWV zKYqK)YfOC6V=GuH4qLtERUSp;apdc7Pt5hJl`ESp6r!WfQ;c2H;mfqt7)@ToJ}A82ojhE$;eKkQWa zx&Z#LSZ0JjN6jh6k=ji$V5+&3Ag#6N9BvJwABm&&+EEByF!Z-CJL3K_76`@ zh=t@JQ52$-au6YN{{Fv4^(?pLX%;VOC=ddlNQ55~wGZ@@9WJm@hm(k9P&0L=Tr+$v z8R|lJZjLo@;PnIlI*VD<%k$GKJ_1^cwM^n*U^6U65|FcvvBc4C15F6conVo zXSNC4i!?aKxy{w~sVBYf9lqKql2P}$3N2>x$|yqGLEMmA802ZX<40SDY&8)2EifqY zqWn^0QPsy*Qh!IlSR#fRL24W1-fq|So*=#N8NRBf)D@>&3>CCSteS_zPZyYHtmvR2 zY0HN6{#-HO#~W4^C=`64)^sg5ImVmKNoTSQVN9&C%fb@mP?^3vok$EL6Bn+FuRwfh zUNQ~osZSt$xvuMn3vS zCRXapg{=~;5cF~^FjtNZDrZlAnc$J)%Y?;mJu*_1f*Bv;liDEhUkbFnK9Sy+*ThXY zr-_%D?ACYKt-<^x!(V6c*R^sH%fktp)RO$U;4e{vxf2)8JoxvzK!4%6ZFUU9ovLuC zi~N=et8Dn@n-D%iL;H{;9o$X|%Bh~}a1%NSpc#Rm>rK*QNJ8BqTGY!_i~GJF zA3-_Hxdk~A@-FI^?$*}>R^CZPjvaK*Uf9tTL^oJOxtk()ir;9Zi!y_a&Jpt zk#UwBlmG>Ic@fjWk<$#T=t87TO;WK@m~E0iF)ql7OzN;zgyH1uxImqWH@pDqIn8@p zby$wmJo`d+e_c;cmz$SckQX<}kZ!5yuU-(A#B?dni{vQH4pqsF1`?bOCq3A^|6d*7 zwAEhtso<{a^fV3BY=v8bQ-hQ_q9fOVO%^d@PY?-Js0FoyU4>{^K7v2k!L}=B8PJ=d z7c`Hj070T@V%F}{lMPh^x`@P%m+*#Z4aVw>IwPgd-0#QWut@+f@)U!bttz{KEW@I0 zpqx5`YQgkkwMH$1{Kb<2XzZG5pi0SWH}P@BO6h4kW8PV=Z0&E@gNu zTEvF4C@WalJ>bBYv%wTsQ-S}o2159$M$kSz%`?V%$MtQ2Ye^anl8>pJZ|;GgZC(9B zo6b`%@s|UyC%tTP9#c`V&Os+xaEYZxV)Wn&O$UDT)ufKS(Ulp6Uw(`B2j=~!$bl?PH^>GS1(yyCdvSgvQ@Y#dVvA-z5 zwkbqqBvd<$Tj67B6Ty4T?0~}-dbDQOm^1lOIf@sj-Ud+L(7)~L-J-qi((|a6p4vcK zPr!s(w6XJvLr=`K{|Yf_f7}Db74yOFijYBI^s&+WGEKD$+eND^oX&~aQ6^ndIds5X zUMg9GUYP9jSadkl&bwRa@Vklpd6Z9Rh3vmH6f?BzAocHd1xp)(UCR0^ealKT*5l&UW7k5BK0>|nLc>gue zG+GL$ArTqC3T&CizkoJL!}(Me;L-b{xKJZHrIkCRqLmiOj>Tmuj#G;h+R0{{3WmNzEU$(&5Lta z?k$|M#U~Wj$bpfK)XTJzHDX;lZ0FcSkP4oK7Kk?GnFBnL3MjvvkO<`By8 z6@pUfb3yaD%+>_QRPXXgIf>ws=CSUt#87QcnY*USXb^u#U)^ClNN>`~;F0+#W?mk* zCt&>-wqY<$$xE9Gr$Dv*+#1(9*+r&2+Ad1v{R9(vDHtPuloHF2a0?^xvC0T)BeFoo zL{mdzG>MDOT0ajst>TnS8NBznA_vA$O1%1NeZXt1$XtcDJ4Y*T&9-rQ2h=n=FX9TZ z`ZA92bT?>oQG;72F2C=Bt}ohH#gj^vR%h-uFy-TXWO7pVp^7XAarj|9h$qcKs*5Jx zj?ggkG_W);*>L4a+FasQ<m72-laf3nT;SoS!$tQ_6%qjR-_jzL2VE^A5@jRBdU*? zCMh<2O$u23nrA>MsVOCvzVbjs+wkp5Wa3TIeJTP{yJJm(-%Zmd;=laS@^RbjHL1`g zH!A>L(^ovkoeLmH1RE>+kb3BGfrV~L@A^EP^4XN%&6Htl-MqEX5R8>}TAPC5R}(^wh>H}J!gLH*n{rSo z)S0uK-#M2qp#q%Im~I7}MuUV5_m7REnH*e%ZWyl^kj5}y2@Nw|N0O#1fon=!hEJtm zZfdUo7zUrX2o;_919a)1l%g=D~G?`8}#Bhp)3t)x2-j)Kp`}U*>)6VLzwRgW4JA zqK}2%bQY=${#CCqV9gj9xJfCBE@+zbHG|}W6D;0e_aGnj2;TRxP5pK0LWyYKr26^^ zje=^-%=?IDFXa^BdzTahpsVl2@i6{m6r~tgSMR$#P`s(INg{2oakZ3L)TNbyrSB0! z<{qZ0z{+03+5|^V=di!%6)ly19?x5`@R*J#;cdLvu5i-XjzFsS*z%_U>p3m|*ON~J zt_7~BzOH_SykSc8^DNw-MTI3Zg&b+YB|%~PGZOm!zFbZYn|Nx&Q(+XvH$iaPeN*>K zhnh;?neX%Glw?$wLentZcj0~GxvV7S7Iz!1S-ec2ozKc7vzR|mVe;7FmTI%hus$g) zC6hUm7a7R`5(TY&GO+VUDKlg~ommPrt6>)Pu$brQ97-~Oo>)6wE?-CvAIvvrHPtb5 z$Uy;NU!`#Bh=mv-6ZhClm7^-fb-b@xg9QFlRQQYa+qO$zp&MX}zI}GoU!}g&^hgz| zqFzTikz@!jFR#^#V@%LJ3S%0H`cdnP%IatU!LqQ^SAc}$4hb1BR<9ehAGT}w5F0S? z;j$~kiZyveI=Zm)w!d2wkD^s&BObWBc~T>}_-ZnAyz}S@wc}Q|LaUFV!?7%i*)vQv zJ7QepgoG1M%zQW8Jc}1MQ_#;kB&2>6GfiXYn`#}E^6|N$CVa2Oaw{6KfS}YVVNL=X zUk~CECGYlN`43s$be8AgS?=WDbM*ScIid)FEINR4m zZL+v0|0 z=eUGr7V($0@I>z2YDby8nY*W#@tXvk_zI3#3#R48=l z(^JBo!i>|CODLC3L#~GP{W3kvX6lY`>VtgvS2^bUX5NZ2AYV@~1hjy!1vTc4x9Gy0 zRG5~vN3W@nDnI2sZ*zNbwDbIHW;`L{*yzfNf8VR*S98}Ke2{}v+Yno8D-QWow!Iul z-mP90mK4DE$A9&EU4E=Rdx1{rXT~!pD}oDZc0-p|*P7Pd8&7J;@j8*&*D>d(-qBzV z2mLot%}jdBm`2@p1wboP$GPuN9Y#~y0vO=>y5^%XD7>bb=Sdy8NhPJ4@e*XUqc}w; z=+d|YW8%K}TyQU{FuUA+Qda%fhEo3PL7k(~dsnsTrj8n+3SBxj?1YHB@2Y49+iN5} zrK?&cvGFLNH+rOFB34mFB)QN2)eypax*!79i z6mH~K8+=t>h;P_bnPgh-s)MPCyA;AAtP9FF4C`Dfg_g{a#)5nd^Kf%yd?nTA36EoO42&01JXX zChnGzdN#i7*;Vt#wH-o6y^(Kr^i|Tdo;ojN+7ym6R>LV=9BQ2&3-2Ps0A>b7OY^QN z2agLgx9p8nGU^wUFpp z%L+vmF)b8}cgIm)G*k&7oD-DI_)wc3w})jVhB8+EEcJ=)qi1t^tair}t*vQ^Em4A! zxw$Jfy`~Ax!K`!RV@k%jkUqXa`r4pUA=gr9w`O2oo`F_i=bPkiitAkPXr^XJhb(2u zJtuWH^3R3t0J=)ANiVRhfghDK-CH^>+&-$Jv9u3a67)_TPj>)tN!S%1LQw*iZ`vpB z?C%-YW0;p^LWtfq0PFnPo>LEqmP{(zNW*zuf;8AWdo8*j^@rhXX7d8A6&WPHXj4%j>Np zsu_1#Dr#CR4NAbx@DUfh#TY+O7Bm*JIfTI(4FAL+eFLrz`(wxXQ{k+>i zFVB2*o78GMlWMaz?mVq$B{g*^~>kr=&I66R^MlAsxV) zYliuRScdg5A_)^mUTGd$Ni%Ie&HL(5X{=?58DQ)U4gZ=8r(n|8|Ga0Epho`^K-dKX zB$L85;u`xln5&ulEv`7HU;3lsxzK0^@Z0#q4XQ2Lf)Tj7mw*HQ921| zAGs>{<6`ex5OxF$=;f?FXU=yb=v=tJ+R|68+(?gU0>0G;194)K*v45Cb?ift_zp@3 zO*~@XKpi)dri9}`xuQA7l-KztChSIBgvLb;xAvae&?U{LxT>IH0N}2u_hkr$&#ebu zct^s81hV#i8>6h~m*;r&-kdHJl{ZZCV2YObLPg#--XzBtv0kCm4kjxx-4i z{kGfD2w9D_M|pRi6w7`FwVk)8o<$5c1$OK2zsMt$6^mP}!_BP*=Nza{1wad1ACgzZKAhYnFAg*LWDx7HitGcClUqF_X%F+QY4a z8b)_szOrtE66_R>@fmwIwkD1=C|+*?Ovt`3LzUBZn+S0-Vl7yrH7pdlx8Xj($j#kz z_%Pd2aGR>nNJQ6i?eqk7zqX&17HQ&JkTZZA(2@;|(Ob8V zEryU+`~s_0S#K!W$wJTs;5yLQjwypaFT@!@Ih_&|lBs45C#6rQNF291AJEHM8c#>A zh7{t$)w~vUO6>V?e(o5D1}3apj0FmXP0n3k>m!>`D7}XJbL$vBU%h#=>U|7Hdx@md z@VU4C2_*G&(0xxLD-D6^hGc7g=zx!w7OzDKb4+7ur~e%*Szv=Hjhfr)TI_|Jkgs^c z>Z?La6Cx|E01w&Rp`Nuv)aS07DFx-Hs16yNYh`{O{s?5&5QBZ?PJSi3PHWkW0+ZrQ z2h4V>m}-uC`^`MNXxHau^(+gQi4E%YF}_9G>(joFV5|c0v?(bSjPmu$6W5O8y2~VQ zj7EIT*V<7KNj@k76qK;M2SbjDYa#{Bg zxYNq5K_i)(>pfk4Fmfn7Z0)S`GwgJ^%OPB`p}EA}y0iG$Qk*&`jKw|$t)C+X43v%4 zuWy|yXKpc#bZzWaWgE#$_?K`W)aFpgW%Bw;06#$&D)t7xqh2gVJ7MO_Mk^^`q(o? z{!m?kUT(M_vDP2PnO0Cj`e_`=2^x7bKsv_Al6*bQz$=hfuuPh1*d<~F9#^0hGLE8X znyv$Vz5{Qrd#+8TYo%AJGNSQ-&-zChIVBmT3(V&M!^Pf4!MWkzCMr_=&H$eQJ~u^j zWg>u|9AvCnuRRtYva-Fn$U<_lmYF12x!(ry#}^4`y)>DnW-T;$gSF^L*Ef|+7-eE~-kf1)F*a0Mc%U4J$GqNYy z07^*l*tHhknEi`AMorv;PNfn=}OJ4(?6_j&6#g zY@0P90AF@dQUUIp6q8V$ut6V9jT|$cuNgoFvdZd666&jJEQelwp@uKfeLYlszc+Th zky)jnXsm?bv5UwNtK;UZhhJH+V9u;Vo}~D_H7G2U~&+m~dL8 zFvl=KNwj8W|Mc2jmj2y=-qEvCskzLjHpRFwO6=gdgpg}$g`BPe;{j7nw>*dfS>Yhk zMy}%13vdp|1un3bj@Q^t$_esLB@oB^(lAoF&-3Qx{e4zKv65xR{u9Fq#=V@+>Uaex zSML=kaF`>z6cWKYYyV6#FLz}mPan$X;jV#n7)_pYR%)T2DJ5CWm}cKB27)=Md6kwl z*xml&{RR90bbN3@FXApDEtPKwl&Kt^VcqZL?yi_BO`__~Ut5hEO{<+04t1`> zj&b{$8{y2z@RH=_8D~fP2IkWm2oWe3l&L}m5p6J>(wulyMRFN7-CExAQ2Be!>Z)om zX)8e~lhdmrI}X<>#mXUnlaE}k$xH3M1#gCohPbHBN-*@J9a*1ifz`7FqghbtgBr)1 zq@JNQrV>2}CyLLtz5Z3u3-`Ok;y`dgcb#)8WOO|v#*?sTx+teTBDit9zTJ|KNDW%> z9tm{`Yo{}=*&vomnHdrwOFZi5&6#_LQ`eY!)Lvi#sf%@o6$*j&ApaV}L0*M&=iM6d-g~Z}K z52V_W+49_{Uc~0mEu_%_;3>M#D;u}h7BSzt`(}+>*RQyYL8XqMxoe~{oP4sqkh=62 zdql{4I;k|_(@?Fd#Mi-FQ>Y|iu;g<|Pk@bOW2CMF4Uu34#|+WolQ;1^KU#uLLYqfJ zPWGa#r@6{$hW^O7Z-AkfTyEI>qjz2@X+z;zja8|J&~`H#OAU>-Mzfy>um)_h$aU~+ zVUhn-xi;##&o!d_dsOwtX2m5^n0Jp|MjJ%;aUDdQEmy+3+JLGLP1^Nwet!J%@5C>`LA13;I;a!(KcJ1Z=R2_B~h!m3ilK{Mn zA0l>jBA{NnQw}sG#6Wnc()bG@1N1eac4`4K%mV>!r{+V9;Vd%4VvcI?V*w7V?_RpJ zKGHhZ?theCG%`nLT{?y()}b|vR;HL^*rj@~{E_oo=>xTv;jmzqv7BG^;W6&Q@$CkR z{~iedCoySZbQp@xT-IZAf@Zn5WR&5u(e$n%XVn}OY?d8*eX*n9Ltht>h+XNb?@rJ4 zlBd(4xaEbi!ar~PP+tROzIV@4jmFXNIvzuD=Eb!n{ZkSo?2Mm{ILR@4SL0D31Mws) zfs99vSd=n7HjWtc5n7r6*gL)6q8K?YOF^3g-CX4#%UPSYs)<}!Y<6k2V1KPFPq3O2ZkxsAy|7dB6XDqhJzT% z1%c4ND4Ty<0C=L0mdBRq!PTY-imIDJb2RqGn6#sPTn0K?ue!i?GUUgvxziu7k56Xa z(Q4nlB`&|>!8}48eWKivvurqSn?WaCVE$b|2mUHGM@4QM(x_t?KD<`6SR#P3$pL{7 z7JZUIgtVPNyzDR9l-0j%=<+Cm<3UCrYVUlB&AmI2``^wu`zEmWG@>CwK^YO2ua-!W zRZA_)p=R1ISV)n478Ux0e6K$ip-mtZ(9#wStcv7U2oC_}(iiKFaQs~Zgm19L;bELU{0(V2@KINg0sAJa`*6ig3c!Ej;!9%lfedhz)jVCcQ3p;$*UQ zcLMsK7KU=g&BL(iI2kS~L z8YH*}UXE{&O&gB)Z^_HtV2=<9GoNh(q|>|5o@LeNWB)4t?)*dxyWZDfWRVnilM6tK zqF=iBAjeBk3p0P0E&rZ{Ck$HIN&L>BQ;6`@s+neltBcDy7Q9)G#A7-M8E}6&ak$^O zT7OR7y`9LeNGYg(yLje@h6&JI?S)@+;dHL`+gC=~q$*~9S;fW2zo&XVx}TJnB0-9D z`g$uL2qHeNNF`Nu=3CF!|FC@!>fhX^6Mk0-|M6s<3njdPickm&8^(TEv!$!mX&+8e z+i!99vXDu;>H%2@zCY%t%eKzB)RC)RZI&@DzxdfvTQX%s*!wq&DLiXqRqtc~Q*F zL|+iR)~DPLZl#rsPPm`6cdRgk_1Rk9QAI4YAl5ao%F^WLC}E`6GWQM+ec5?IJ~jY- zXaEKaG)62?zSTiTGZlz^xt>fe;^dGxOEY* zpOadd*gk<8(VFiN{QzqKz9h>(B`8ku^0_`9lhxzb(6>>1oM-Vm7q%or%c`4wF2Q-; zUvx~}jLscwx4?9|dEx%+wwR_ZbC`TgXo?vRNtLB+sQTo5$OM@$OvE(m`X6NC$Nzhmlw{Lda=dFpb_1`G zud;^kV%`$Br`Q6oP_MT(rcGCVb?R(Iqx9h=1A{h#WcW zk@shtWsFo=#C%Y$U}0m&r|IM$U|_Bo3D&mYStP*G);k4@kwbjjvc@J#WO!c1`r=eMI+vSn96Lu ztpD4c%xeW~Wi7O58GfLn!UqAUF%Z5nH3_=?_f2)&@^)%+ZFMwObS#%UzWgtLbO3ql znv&!l+mTD-AKFBpL^OBzkAn`mQS78}<|SK%6Al)+_8)%$Y*=Yjm_Q)cM7#P0tml@lcPJ1_1o3AV$NEP0g~ORgdalY@3rHEdxJYS=XV`9!I29L%Sn+bb zB|Ber4zm2UCNUTT)x)#u0DcGN@W%PZ*a!q0yW zQEDQu!@Ws9zsaNFvsvF*l~UZxuh`o~H}aDoLfIwJC|yAPI7%Zl9*lpr7iNA8&}VLe z+abc)3;ub_FC|j;+TvfHqnzLUvnHRBh$_MaCr38UZV6SQUhepI9mG}=KQ(Gz0((0H zOe^WL%Is{9gS!nRJKici&J%X|JDLLD&GJchOCSAB`oi;bi{XzJ|D&AWb+bzJ%ky)~ z`(A4P6Mw%yzA?4+!tw6Is@s3u^QNf(!@;&w!2P~H#A4f!j~w-f2y3ej^3$)j(gK2~KRY%WyY)6^0e6o3DT!Jr+3;Cs!o_Lg!yy<6 z*wZA(F{Mt~h5nxQ@~%R^zmu=;_P2Rk`H`pr&Evz`_vv+*Jxt-Gr6q{dqQ?_CD5`7V z{_dYvDv^EN=!02`-lgjJ$Vf>`tbuJt@*vqwWumRueiX)Qfvwi;=d}W{qzk&?XUfki zR=rx%{kI7kwEACUUlRcz3=Q`A<+}#}H>+-egY`_jpqc*R;Yay}h99rtwGJrmNihqu zh&$;6c0%|i#P88(Y@C~a|FA9BQR^{-em)xQj2ut0^)&o3L`TUUZE;}S#ykx>k{Rf{ z_;c4=D>x^xFaPb&YH7Pqpe+3QqG?d(*dK$_5?}q<2b)f$O{G~YYB?v*ac%1F{y58x z)@|j>JxdKUq!%5Njakw0mB|>Qx-H$&>daSTB}1xf!v2eca26;7 z5Z6U^$_hTpHa01KM)Q&mJqCN6ALik|?l}zy0g=JDUHDHg*$N1haR-}ZZ7&x6iwHL) zwNv}v{k}7fF~9u>CvNdfZd20NNVQhpTtkAwfU|NouQKbinIwWef*SFAjLSHVbo zVEQ18?_hvZJNV*9EF`v@ZjOF<}n*Z^Qg z9Sj4S(2-*z?qdGw%{3qJsXHS7@TayGo5Y8kEp^|T(=48vYszVL zbdwLp0j-U(D2PmJ>HE zkIs#-PA{`tE3ZhvqfBV>3-DaW-4(Lc3%mPI3}y;po(xbzx5)tb}YJtxzf?N*BHzpct678G0unQrzAUtZ!*O(hE}>6VMQ`}O z*GE7p#(BJ$jeP;UIBbyv_e=~O3XNe@f2??LKQBB+2r@4BiIBOx&)uu`8G)(r?ch}{ zz2e?0Tfb||og<)!Ikc%;M*_30bB9~{7TpPgY|nL3hJ9?F4dH@zx58r@EZ*yB_rrV8 z9Swlalu|fU7or)@X83!-4g%UENe$^kOx1L|){_}FG2P`gOx%bPS*A2akd7&-x&rq>D-& zN*&Uv0<5g5&|5aQ@LvAZxJojg6NG3iQr6M3XzS)}0Y_To8n)ER-n}`Req&FDzy{d7xov*1 z>1MsizKyW*TKO5y{Z4VW(L5M|6e}h z|LZ=09{}P1;XYa}zkA^Hyd-=Org5aiF3{SIE{!2VhV3w5HS>2F&|I2LZo7m@mF54# z2>b;-y^g#l3d)9mc#VkdkWvQ9a|Y}hSm{{eq}Tf%DjXURHqhbEk&|K-{>*pDfoP^8 zczymz^ufe#+M#MmjgoGd_r#BbTK?E$OP4p0jhz%SUD6DgiKJ9+|sb_KULgn97h<{v}{qS*r=>QO*{G1~wC zIWh2k=J7ZC5pO1OUHvQyb0T0@a^ONe{X)7k<0f@|*CN@Vmc=Wt_Nj4gr-dEA&L}1*}Wldz$ZIOZ-Jo`HDI#aX7{~!gBv= zne&>#?E5iiGtDyS18hzcoo(0TUN){4Y0S}t$%uh;#2SN*ZgCOFwtl7d-l@lLbvf7M8l)TIJXmNSxB=IA-P(tH2nWO(MXb3U)I*@^ zR=uFCvN3x(G&wES>Ao7dXeCiIshgUc;0J#Am8B+U?alLo!q=K*#H--;v1(e~`4zpz zek91Gh(jKdJ~RcR8hV9$Agn=fxPRC#?BL_3wy5s{Y{ui(wWj=fQ}flhl(PsY?V^U0+K=QQWsj zPhe7;n;Y}j#r|WZ(jo2c7vS7kFQ{4Wj-fA>{TZBZ zbYNU(>10*RT66gclf0$HhJ0TOjYOg9RpFVXu^E?9Zh7&8J5uM zVjakIr14~p7kn2QZ8vxcthwEg-H7SB_P6JYAsnM1u|OfPJWbc4b6k`JWXP#$$>N2H%1!ijM_( zbT?itT$XK^hPzB3TcXmaZ?D0s&ZoSOS@U|L$w_j_?CO=-uT-2>^lJooxw}9dTD!U9 z!!OIxujmO4UJk`{Shw?3dt%Pegd*aoM|D~3o`D-Kp%^Jry|erHqZ~rn$2MT5jGWR% z(Bi5REw$nb7W`|M9*8X5%lOokMSbA?vP?k^&&Y%;P zs_zh{tD17z;|U~4GjD|$s_(6C9j>6zvA_F;;=`#=^?^a93?e6!)0xjAg=nVtd$9`r zU;8$$z$C@>-0<)52LLk#-}8BNJ@kgp$N)XlInj?A@>N;|aNP7c%)^>MB35oeS*x9!Bs+s zl@dJ0IL681Fp@nEIX@Wz&vqoY-#L_i=1y`ikuzf4APsQkq_Rx8fxeb`u?JVvKDeHh z8XnHZLfw5P(F~rOV=>!LOEGSew|3!iezlr|0+I&X=|LjeLcy%~pX}$20Fmr`+Ln^i zB(Rma?ilq-S@)krwM`eyit7hm&;vtc$8N~k;Um|t-V3jNB5Eys;PJf(Ar1hwokytd zg?|G%GZ~qd%O0*fuBe{h8gjF8^ZgKy?RR^X=zWSK@9X#P_wG0j5-}kAk{3o0(tG(Y zg}1Smp$@o?$Z0u?sJ}qQ-%mM5!B8d@uk-V-X^%Dls=ZN>z~*hhscoBA$3wWNBW@PA zk8b9F75vlt*+GFC*9%>aw;!WMlk#>2o=;yHl)DOsxDYVdUEI^Q5g2b@zO;VH8ApX^ z)Rg4I<8@0>^bt8B z8weVHt2zRHRS6t9qb*R~aC7OR_LqXcNxXBSU&h~L{S{PiXl`Bm`f9H31Nc>|NLZm%A~U(F{UZ68ZT z!TZXbDhCdDj{C}q=jB)>A=s~3=|M=xNZ!4d)?Hi0S)48%fX za)w9>o$f5GkN*%hAsN5=%-AJv(*NA*i|Cf$Hn6~z*ltVE>VAw~bC!*-y3n%JLkvpbV2nH6bGJC6>v5ZY=l^5uEI$bqTv2LS-LlL;}lH6bXEb_u?b8#p6%G&v^fT1`}wvUP)*BUfiyJ3 zNtw;KeyP^$P1lP3t;Hn>t<{|0nTXNIcxSSkv*tr7cK6Z8O3E1Kr57%!I!I|3YMFbL zPQ7&}UQT@=7>+OwWCg^L2TW;?sS92p$wD}<5-Dse0vb%3>(Pu~!6g6ERs)q|g+UFk z^nN#R3-p!YtC6lbQvv8Lf-Bw{>JF7>sNsr2j5)`V>8l68Povoo&D-ADOK|~-M&kqu zb%Hug65*<4U2~RRioOE1@IKs{Fq<`-$rPzk$|})x-B=7HJoLqqJpMNRzxhkvo-Z-x zz^NE88~y7xPwshItjrNp$pOD`KLnsQ@{Fs-p!+CEkN)=eJHiLfZ{B@1-&ykU{g!iE zLujMtnDalQ?X)D&hZH(m%l()%fW1^3Ea3k%7|5?p>9W6Yf-6|kH7`kX%QF3{Y~lv# z2HJ;}WJrrws2=R{^g!k*z2 z@Y|f1_WKQKpX(EIh&pO4m?v-Kz2;*=iXkgg>G4rD)KXY#Y}`!1EFI8MvPq8Yehm0; z_1mdyQ@y)kr4)Zr&D$QIozqqt`vTiw?P4n~WeTrlg)QvM`7m(Rbxg5Xl$&$_1gRLm zhJMhST_h}9`71_Ky%ZAzU)i|Cy-E$88S%pP9y*VGU#m(zP>RUG_7XSJJCM`4Z?1H} z{jg5tkRnltSd1Oz$S?(?*+R#PkA5{gG-Obds#j&`rkT6(PP%wHXM2qZNlx5NDJU>K;d9U_UyP|! zrAX)oev0vocP*?c&*^#7c?^w{R`)sEU!M?G8wqrEFQbAKVi!v#z|zW@lN&m0*=1(? zWc`NXIjKMGDsOWIq+1`unOAPP^bemi9&9VAVX<_A#)@DXhtzFs^eeM*Q;)utR2qx7 z?m0-%6sVSLlq1gJy+Da~6m&BxN(@YaFE(m1#kDA@M*a-7`P%f^Uq3-{tM(%`U(Ox;q_g`|WXAW^do zq-PJ|l~?!w8OlF%`c?7!q6bw87T@p#MMy_k-)3XNd6w@>kW|x&baJivI8cbKTKN#R zqwLP8d&g^}BjUZ8Tu_{}rZsLGPd5j!k%D;=^i%_!@K{hlJp^l8Jk(pr8!&)~dO zwltGvr3|I?6Kt}J92cc${R0s1FJ4A#McMs63&Pg2 z+fwqSzJUFbgg$0@`T-JJwzOE)t5Dk8V=;ZcYfw2m_;gLS3RvHWG7|y7sFClOwojqc z=L)sR2YN1l|B4zed!)^>DJjgr>)co^Jl#=t>9LoAC*9msf5Z(H6QWyvXFVvcKq(UM z3@K_m2@2rq_-Ti-**`B!!OmD~e#U$*98_dKRz|NHeA9`9T$SQ^G^~Ugi6awK_iPam zJ}wQiXVOLocA2!`o&wjdBo22GLvm2bSgdfUy14f28u&TB?qZQGRb~69B`srC2u2E~ zYVFM}Rf5Yv6Mb8^rlh+SDAR7Tr0XEg?z{rradz{d2Mw8(m4h213=i9Cvk;?LF=Spa zM)t5Y_VY!9TcP4{a8=!^im~<*anc2+weyv6`PClZJf4&Qsr8w?%Q6nGV9>m??e6tM z-R676l>3Di-ZFDO8o(5*Xz$wE=UsAKa~xTHX+yT$66m4)jvf#&`#Xe^ux(EVIrgii zY+Aj};j&zt1(6p%wW$lVy<$$@mb=Cc#ZiH1YiB~;f`M1L23SwLF$Yq_-H7c|j`w)G z2-${5c_Mp0aXn*--dq0TvTaX;!NwYfVdquw=!5Hrt_nYk-vsvfuFXsC-`tSL`cKI1>S7?;kaQNH_<)3F?Dg@*5G$LinlBuLs7Xw>#2@8@l7<-W_VqHr+mN*NZ8T^8$7G6qx7PT|E9XJ!5sOrTsqgTj^PMP=>#6 zTOnT}@Pe8fXpTgzrhH8mb_T{5FnxbcCZY-=Xb8}obP(C@AEG&+^)UW+RwVz{oGGM z2Dq&9gl1I5X)#PdOLSNUvlhr~^XnF-dAG)n!UF~85DVqOrrnOIgfIL@2qnDjRtK6= z-|G};@4#?`x1cyM5ehrOr_gQ1*Q$ewxsSk0@$uJ|!bA=~cfA`IAJ+twZ4x$6_~VvpkmQH!FRS2oq^HZ5%^;j)`*tae>0H*~TR z$Z^Z`_lCrB?El^?3?P$HTVHUD8#h7YCFVM9$fQQY$VtV^V$wx!G zz-B%eYl-*MdME>;@5{}*zlpd2Xb4*kE6E4F25mn)tb7c5;DtxGP?WwOBTL6M8amd! zRW2~zQIL(ZbyCWfSv~mQzOu<%perXn+H!5*O4au8X$A1)|KA>-P|;7b!#wzVDpI*B zmpc~?%spzp#ts>d4sxWSwC1F3BxmnPLoRtez3^h&>cG@6htwILL^XZH!pxOy2P*aK zzPWiMZ=b%!-(`RPaV1F^`CPe23G`1%30sz%P-PwifldD|(kpfPug1Na*lky#l#6X? zUq-hS41l^dZP%kQ{$*uE%9%MlGpIE8uSGyEhj+@QeNUGB;?7AZoKbxFz;X_?l*sqc zeY5EqxKPmWx>v~yloAeoUE|G!O`u{GWlmd+qfFP7Z5D|Xc-5>J$gc8PrH*V|q1MCN zw}(&5tO?L=>&E7^VWdi1#?dX7#kM(EIAVL}49X_?!(>2I7`he*Ae?1M#SKDiGP;jv znaqS^^Yz_ZYdT?Dn*)<;b9<)C5k|6JQ`gnU!HjVO_uTSvYz106IF-iqPmb(RVp!6u zq4oDcm)a64!dj?+zy5;#;X>_cA(5Ji!P#{u1#Q*dt9>#?OKhF1;rTI_@|h`e1Z-j^ zr-&H9k8}oJVPjMT*;liV>*=OOrL;<8|>}G0mB$ff9>yyTmyaH!hNX>WaK>a?{62E4nl9G7JBg zo28?oQex(;9gK7U)7xa=a2D@R*9BwbH-|(Y;Htr}LlS4u!!)eiQSa~gAV6uGZF3^%C|{;m{z&;;bVjTE8j0C!qn3#M;W$%JApCYvwosG zCqd+ND^?j6T-aP2p4EMsx%eV%^Y+yjU-XlCGdW)P(YO!jq|*M!y>f)cf><)^QT%DS z`~>Ou(E(-Xfzu7vo&CThgcBt8hgPw$8BFUyiUNzp3ai(H)d=KA%n_R+C^Y6qQEx%o$TuU6HUdr3-o>p2x*bU#s&R-Fw>_=!mxPqFNnZ zd2b(G6ZHJzrS+f}1|GiL4XZ=^3&gpNaw13qC4mdsYn5!jlb&UA5;_1zY@o$$@f|B( z1ftVH5sO&0P3$XDeG|rR7H^*TV|#cZc`^(UOil%QLe|)(dYz(?VPjYZxwl=l<>6iF zo8xDqRDwPEd`(CAn_wGb(^Cx34k0ROuGdtITG)%{#}yO2Xw}Wk?H4Zh8PAm~UP2I_WFH7Jify{rB!?6L z{zmE^C6N#^)uaY2gp{K+M77B{``foudo}cBVx}w)~9fE zkCMFuMSju{tYMpKSVi|UUvyd$^vLOBtIJu^dfnwPMB!d|C)jcespDU`0RgFqFz6(E z5A@zT#i*uU;b-8`Qd+2dpf%5krOZ+SGd(CnPM|ynl9ANMNP9Sw$t zaN%L= zfX_6s0eR_mTiS=AXbH(pjrY$>&Xl3gOdSx`(=C#s1##>G-1o-A+BDsY3gts)|8^B3MIi2TEKmmR$H zz5iGns&nL1g~HUtN52J=u9w?4NEZXnJ<1iF!#ssBnpl<NT4cQ4cC@s(w~DY$)&1eo(^J9cK4^M6ZLiYln~ufe&skgK;Tl{9 zT4p4KwpZz4k?6F^m)40`IOQT;8DXnl1ao17B-O>!OUwFj4R0xUc z0poU3Novxkj;t=%bAj27UzE7`i%veXiziO2$v;!*N~Cw0k1gN~O)K!W8D5y-{D5Ra zssmIW&T(qjXu&r~tAWW$-jFIA0&~U_x)mPZ@W<$bTsPL%-V|>F)3%!tp#>i3&^T~! zi0hOsc!O1kqbWq-a=b>4LUfo-a@T{AhU)6{9idvApLL}vJ0u4ucL`w?A4ql8B5#Y| zENlJv6BGd)fUO1WjMK+4IX3boB?;$1hcM* z+}|ih^oMU8@-`r4>uSSew zbXxs;!tYK|X2Wmq_8$!KF1VcKUq+3rintin@@l2aTxlyh)TCLU^nmNRJ;aPBnk)G; zTOTx8+b@1scm7O{aVmA2{ktgc)3RVd&^LWwi7kdIHB=?0t& z+y49X1Z_`KHMBtI=k%4vzd#RG>kap_o+D9Ji651??)9%-|!}Vo%vkfyPCJJ11`7t(zX6&%kEZkbCKe< zIolLeORF06UUj0)BmtS(I>9xSI`9M?^=ioTsxkv)W!AGjzRP>{=9nn8F!QfM2~*Wo zSCO0EBx24`^0VVIRZpfJNYzORq|GPJ#ts??8ehdl2e`S!lxDe_y?@TDbZf+3L@W<+ zdKJj~)}EI>28yePLtF0m+?Af%6=20~-m>+c=);Tfr&!Xuz;2dSRM>`sN$~uvGi5E8ctX^rX z5Jz#F)5>Egcx$V8HUOdZi>HdBzSMPL$6iAUV?3wa&ark!-Mbq z@%!04eOUAv|F#SJ7=p}_VCbZlrN*a54x;X#ERhKuZ+d%h^?*dTgEagXK?fghVMrh{ zI-U2^>HQ+l@Z0isid>akkYNu@6i@Si-0}@@pAgPn*sBIi-ZBHB1(wvqH z-;-5Xt<`os=Y11aK|=C-Le|YIqC}0WTi_~ZX&$fUT@9-d3TP7!oJ(&sZ*{ZF|Z3;1In>(p`wIyp}ZAo9PI zrAorfE+4A89{8goTUQUXgy(UWRIbwwMf(_u8`qF1L%DW&4!hoW&gMsI15j# zy^SIV43BXumBX#$kLY!qK5=<2fwT--69C9BUVXm$DY9C)q6(C+IGwC_CCbClp3UgUa1~7`j%@f&v%fYm- z$n))^vM+#Z1T{vVCJl7IaFF%RH>vDKmX zb?v&JR*hzF4yi1$onjVcA_jUT1a}giEDZ1hB|R1Tjz`o6%SCzp?1ml*rE4DF9MSdp zg3sd3-kQfZ2ADZrBy-t?!AZU)kXlPN68Tm~elAS@U3ATVxc6_RAuemM3zxE?1EZ!H zdB%Q9538f|N3r(SOX<)-*^4x49mD9S+)RT@H;Fs+7jGWj!rdVo@cPT-5s!Oh?`Mth zN5ZhpU#;yM|CBxgCZ%R*ZI_wOzDj$U6B#6}Vh>HZUK*X${vCoqC+YmnFtFO>Lbme} z{^4{)|8C89VIxm}UhI|&cXuFbPsL~+7^1zZwf7PJIu!M9Pl)bar3RNB*TrT1UI5n< z^9waLOElABh{=EY}{q+a$wYpNgNlR=PLmw2!;(o4|FO_Au)(6+eAd6vBlLKqUSFMBqQTdj~wA;W?Y$20qtqi><&`Cc&u5;p6 zS+sv_`z;No$GUm7cV&P?jf_Hrf5N^_|IPR1k+gliHh!_~t%9RpQ`=)@K^fG1aqlXT z$l=pb#`yF1q$Ahrt&|svFJ6#Y|J(O{VeST#3<6#IWT2GCiUn7j)4hGJ#UICqEjgg+E?_Y&AL?<;|JE8 z7}(U9p<09*$`3_xa`&x64Fd?Jit0!1G7(a9S?M0?Stb7diM7sr~T-C6ZS<$0^d zEayWZYxkac?My1Di#t`!W8yyS zd*$o+t*&w_=)UjYmo{9l`_6Nho7D@7gT+H;d&#S9AWQqsD@3$HK5iy*AA5d|F;pgu zkf`Dz$6>n#Xgg(Ps#Bktx91a_>u~7T`qvCFeFB;thuj|XB~fVQvG^bqD~TP9}H}55@-S2Q*Ey7$(DvhhMs~fn|tN;-J&d{@-k#f zk_Xv`Hc-PmZVdm}<%@iM)-!F=pGZ!5%~mE3%%^RGCAQlk77hRqBQUb+9Z)Fp5)O9;xL4q3gKNTI?!D<+Jw^j0T~8;JNk!y7PYcvf8-{*$W#3Sue8`CENX{QYHbY=)(-%<53bHIohd7swV_`SXA4a$kM} zyT<1raP42~@W{vg>0ZZ#DcJF^HSDD^bm%{~P^{678Ur&CYr- z6;k*2^CJ9ucey@&>yP@w2S-3%^^dnyl^l<;LON@bnRAJwa_<{}<*DY57J9X^stf(y zS)HKwk8gW!7?6)8{Nlf-$S6-W3ko4Ij^)1+$9P*VmF$yNR*q!2x-i=;$>y=}ZD3~l zE3kpdl=3UF1R_s)xKqz2x`}aAH7%gb5OC%of|8=G^*LS7uu9v%`h8${6HMF$srHac zpdFlcF2r=8Z%C%0L29X1Ia*+u;e?}mGFn-~M7&z3F43lZ3ek-cl%Xm62i{C;IXLub zdAIvtLg}a;O%TQnA5~ulF7L0vg_*mB{34Yc4?!Dn_IC){0hkj9H)3Ya=@b3Vj<25^ ztegdLt9`GPicEpm{+}G72d71j(96ZwjA+#zE`6#U8uqfp9d)-E?%o1#wT9RDkSkjG z`3@nc^c|500eHqa_%~umccub zPpO(*{N;Vpl76=U zfkT2Ja%XwBrEhA7pJUv5_T-?sLZr|)Y-q#v6Mu!D-@}B2K&Dm zh1D;g0GuD;X!&D*AH~;+=Rv1vH|P{~QgZ6c(DhK2U9X+YWLf+ED2pDP_?W>QJVa~% z`wF?*R|gV_(;fbnRJ--6NI72X@oSHVk&hJpx4UPiCFt^rXTG{dt^bW{M7XsO?LViQ z4McKYc*DmLx$?s^zeqi{ktNLdbXr3)@g0$LDtlK#lb8TZUZJ;=D8CMnRF&-Wz~p#| z7?F}HqGQgY69~QFLpvg|b=26@L0;F$0z)|Vpy-QJD%`rf8ooP=N&@XO{ZxMbwB1~A z{|R)nv)GW7RYW8a&pmk(YXKx6q=JtTv`i{mvp!Hk->QG6U~sOdbGAgPJYJ9=`O?Xg zQ-kvTtq1}B@|u_5q@aDGNW4n*dhrGsDdt;rlo(_s6?)+YhS-Pq4_^PX@06lJ{*$YY zAJ+B99}xy;x1Jk=-I_`Uj7MqOu*&SHT~6KgyAtTI*laFi|fLMW@pj zpInbTYFL*PYZwL~>e7XeO{3w~iDZrzLUVS9-iy)T4hA`U658j5_c*3;iiZ9r>g!c> zSEOyN{!H3_O5v3dYDrssSyTCae4>dqlsk1aGU#Y=^~blW+Hi>u=#%4-!(ds7 z$P&NhCtY1Vc@O4r6P;sb(bsSPLi%QRxKF=ihi-xSU*b+UqQ@er-Sm-*B_*GH9Vtio~s5M!lyi>DU zsdHzRg~9JtFm}&t$+Li1iH|bPHhFE~?PrGX_Q_YMhV8qg?34}c-6|!c>>1O;WDCO^ zRck7nPC9-<9JBA%WFyk<(CULCy5=(}8H>dSRFj4Ah0SH&Nd}I}9nV_FxUk1zUsV^j z2=`OnNa} zZzAR%nFdHQ%bW(|8_PeqZbj~Y^?=N_-=*h1r6oQ&XM8TURdJp1S2}ne4vMzcQt$uJ zUK3*aQX*pE$==(aI0IQP5`T+T>A>2x8udw3HPi`ff5myVQ5+=swL!s2ud5Hl`ws?D zOtt|q!X{qW@c3`xZ1wTLT&`^yDt^O(f^c8Ifp| zr~qn4g=az^{o!6*;WLu-Fv+5`xQNI~_2CUJk^GcZ^Q5o%=2hHqGZep9;wC<|OPqO+ zfz`aV{&)E6^_LY_uTi>&Lb;fS$<9)NaGqS_f>2sv|FJ&gT_u7Od#tUZq232O^Dncu z)a2l}&Yq!y#|AUGoSag11*}OQAt2Fn9F<77S}vbmxBYNs>hXiCzPyp1JbRe6G)Z>8 zFI4z!z?c+ID;AW6RGZ*tn^J8I>2L%pT^;fTH=!=aDm zg!hR2^%UHEzW*sd8^8;(Jd0tNA)0?RnW4$m@6OF^Kw)N52F&5!=qXJH-}Le9VrO&` zp%<@ZoCi^Nz%}qkJ?TCIBVK^zG8db@v1XoLYFwq=K5w#E<$vS7@;RBaE0OU~>?+{Z z)N4<+Vrl~rJ7gkGYI1(p^Ysq=s{cDguR^!P2aQTR%)G!{bxHgy{)!IvC;H|Ii*fsf zZODJ?Kccc)Jfpkz`9Jt8g5okY@TV5Q`=k}W+YV%l?S^-Cp(ojLY=MfOoeRsbwVWOXG{yM>B-~??E3;r~KuhJ-30r_Caq8r?QUnwV1VfD8s!AoIc z82st~Y|h~N|M!#r56<}q|NP%f`v1k8p-mEtohiLnPI0e(O1eG~+LTnO(J;PI3qY>n z$yG?sHg0Yt%!hnZls(-<9v*iK8GcA@Ij%Xy{rq|5#;yu&I($B@P~XmO(bFPa7L}_Q ziqr>tQ~lRLCg+x4F_%-3D#(`9GDw@6z(3mf^RH1G1I+?}{xysB6(qqIr$4VvRSorz zW9&dn4~ z>QCz$0A_d)L8I})e>)EFwnk=0(Zj{znmBYD;X|su}%8gnFS1-+mln*CfDRwb34?13TYP_lEi(qW;)h0NmVxnQuGa)Yh-4O)Tj2 zn;3;0%IW=eaX8uG@#w|X>_1i-!NgyiW{o`N3iSYnE_BPh`6AR|-;S02T|zfXy+O_N z)N8kUQ6qWo=;*`atIM;dk2vhyv9ekubffee4v<$qb7*NuFNCB!L<{}0>gPkx-F;_D z7wXALutNy(OERiQR_^kc@!|2VAy3UP*i5S@&hO4*lthN+r|H&1+oRU6)cjV3j<1{U zqRh00us$84N-67O-`ps&4%`tp0+zIW*Z)KdEZg0VbO7E4E=WQ2_1>w%l4mTQ{M@^; zank|RMr~Mf2SI+|&`T5Rzw*uE{pUyqr;o4ne!;5s&9iw3Y}kdDpkS=2ojad*6vWNj64Fu@`Zn~fy(N->^~c}40%g{us`eFq!s znk)@mKf;88FIjQQc5GZ8lPa zgj)S^nPv9ORA8aaVX@N~{FRX!J6865TD{5k!g)VJt^e1eu^~GYSbeO8ML%G1NHSzGi?ujbv@}~( zG0#^4=D1n689c?G&SBxYDcLJaW8k9{r7sOjf}*8K?$X=0wBv$(w`Et{$n;?@* zw}tcbeoM18z~TaHX(|<1s?na$qM6Ru#8m(6c1`a*w}2{jSek06m=^*|lMYMs6-!er zW78%6lwe@0dCB|=I$CSUhMS9#;7%U&BSWmV)zJOqu%Cs)719R!Jxo6?d!Y2=IXgp` zBCEJ?vNTfS=)g$nP<~v#_>rNG1FESQjPycxsdkE%Hoyba!0b@FZW`QwypV2Tt1UZJ z>RLg_uESsC#&||c0IZtGnkC*7#YPHzy%kqc)QL=AsLNnddthOD)Phz z7kqizQ^jyD(t`QUXX$x7ElbVSqbErWrTG2Hx7W+%Gn5V#d|Vwqc++Fmh=om2_USzw zJ^o{UFaP(^QbCj%Ej<{aDBGPM1f+NPQLYFta2?@LEWZ6Be5Fm;1Mzpqz&zA$GH!Ta zj#lMy&z1(hbit&2Y29T;2@XPs-U;p`1T6X*!X|MRiN$K1u`kWQs~bCBydN(faSIj} z=lKAIq~J~y++@HzRD=>l3u^qiv(_yh9|=F`2Vv+!th*p!Mx7M*dd-T6)g6yDC8-g* zY+$4l77+xLSo+y;5T-HXZ-qI2RHPnedb-wHAfBBZD_LR3VM-Es$2ruK3blutj|*1M z*bhRCk?sq#X_f);F>&uv@s1ZlmKppVUfLp5TaXi~jdUqdB zRr{uah{VWBr(J_%K7w>REdVm7i0v9oo6A8C*~AH_e>~3;l z1rW1ZBtwp+WU1|dN4O~d{C3_>@a>9};zB70V8#s1oNu+{S!jE1k!Sc3v+J7N{PJja z@eq|6&yM3m=gIw%^BOl9m&bdfWP+!^1f+>CJ?)x(ZG>^O!5wjM^LFZQ_w}{MWtZhX zfYZjk89g#zR$Q7B(d&kj75b<}GT@Pgq8vthjqujg7`zG5BnS+qmjanELc8iX_D+B4 z^v=Kr@D|zF`jQa(QGCN6cKOUE?1>9|aPQp{UqNfm_&Hoq4VhMNT||sykl`fv;6;-p z?%Qe%;AAtjL(!x8_|RSdsHSrZzpPv9z4kLPofA|OhznVVdfRN0CuBJD<%F+w-(zs8 zO-&;KT#S@q{zLe$olRxjmJ)eL&_9SCS|j}iRl$pKvlG^<8>#bRd3rNua|ICyQv%*L z#C!43Qek7~MADN1i*5nTj1xr$3dKvu90S93p;M;=X2 zMNCpVjIj&w`^Ru0^X@I9sa@l4@hMV$Q-n+*7KJ*rqWMfE2W)eB+r`;Vh~d5kAx1LT zrvgPKL|>Vp~JS{SOHkaHB7``o+`4!Gzy$%KEC%nj=sB z$Q`Eik|$VjujgYU$A~#tWn!~hiekON%x!dUYiT=%>z(HvzZFjm9LqqrjG^n-Y2F6> zI`A94q?)ZxLGRc%coD4N=l|cKfa3$!u3SmX|e`p=)S3JdJ=@gj5%gHEJ6MO61j9l6}x%V{hNQJ4=U# z#(!0rh;V=Ab2oO&JPfcq)OK6LLYZhHXQ$A<4b4r5S~j)w3)CVdWCe?tX%iY;Qhi<9 zWy%+u-p+V#F1qX2_>_(YsjV4lvj*KM;4rz!p-ea%d(s?=aRBJ;)&z_`~8qO zin~_$@N@)S6^lxolk7M?;2Ln=j*U>XSO7GxB330CbYt4$_%(rQar9bC1?INssV4)0 z3LVU2F89-e7-~kNHzqF{R!>4~fe0!qInIBj#kC#%6bMhrfkn8Ps{(~_!JW*hbENJZ zB$c5wSC&1t)+vnPm@<3`BWc?^JR; zT~8s1u_w8Om3Ty8-9U-LK?aB^z4MowEXmciu4A~r$f(?G_joVoD+;UntCcivPGKDP@n8N$kxYL z0EN~e@*b~RwaZe}c3`BjEgVH_6);+03M#)%V>M&vKOR?2>1eE*nXr$*cGtHBte|$G zHAg?q4G(6Q1i_}=%!?boPON2HBTEyrM8LGjWs$+2I+00O?&Z*P;ZYGHoV1Ok9)2&z+MiSbSTZkI1q~v>H$X3XKjXo5T0u87O4) zkL9jfH)dQp(~3(jEy+<$u^O0fPMM}Ls%4$#Y?RxuA!9bdRpJ;$aYENEqhSk51<9m- zV+WV}j`z32j#ph*8_Kw(T>HYrS1@7$0t0KCA4=u)=Z)X%(YD7-eG3PU`OG2|ICD|t#6I~#4s|a>6 z9Hu+qu)Ig#Uk<(-(0X`xJlm!;a`^gq5WIk%3azJaIPNq@vht)b<{I5KD`4CSFf^CV z5G1zSDCw)+RhS&YAF5nc_+TL^5pLs`jPscb@bb9l47pAVpf-#aa|V;ETsG=Y#x5Ciw(;U5|TI(Y^yf$X-z%GMb&X9iZZJFxQbrAx~v`iTs(?;V!Wwt zVJxyRcPI!djv0?yylPWdykUilF;TWI$YIpz8M|LLxrVHy-)w^{Ejxr`tH_T{!8yXqFNgSlA3Ryo+w4J$o20| zJ&Ho*@U^B9#@RcHTU%ztWByM54RF0>#uM*J>+FQo``s0-WgM^-{>%++dJkO8;u(#I>j_6f61jbr45&dFFm zLrz-~T-O(?%B%-{4s|~7vVk^S4KPNi0Iv^%-0X;+*g|6m-h2m?Le6cw;ei@FsN(%;<%gFh^?C`mh894gI;(%jgU5PjSmwvd3}V(pL25*7z-yUg~ZUZ_TkW zNF+Z$PBqSQS={9ShqV^F@pCO4h~o4V`iv)s6}z@P4TQjv5l7a58)nBir+;(6$89Ip_E5o(X#RVqh zhKx+{)OScz0~V@9iPVb(=#eZGHPY(n3i4zD%1`lhe>mm1Q8(FLXs-Zid!oca<`E0) z;ps9C@0qH@sdcJtZtg6us#ez+;@SLpLU^wBe<-2joRrXU%ox znU0i9;W`5B8R>B$DsIMFaMpY|y5-^ez3Vma_!W=)z_oJORy1F;_{`5GNTsFefRM~5 zw3!lnb)4UXI4PwsNDR*|*uEmE?-Tr&iSi+$#~ zB(=U~JQfp4xVGZPvj6MuSc**=<4JGpsGo0ohWrx7(k%z>!)eq^Dq=%&J6(I2^l5Vd z-BN#l=sfYv8)bsE4X;2K^MH?>>MP>nT-{kbT8@3bt{cSSeKB(C%oxnp24RO~hpo6T z?8EPlKeNdi9?pr&U(i&BV;!6{@r9tR&@H*SN;~jp?K z-VS92KZOwH85)uST{cx8uc}het(IoJl0kEh+`h8=BPH9qdK#fq6XI4>*odF)QGnx6 z%ESclbGB*fEzIas9wxNe|6RoP6Xdvn_UTG$$cQ5!K5kF9Rlt7sSFB*~f%kV23KoLv zl19z4S12E|?rY+0Kb5KiW({{5{In24$Mib}o%Mmq2^3p?>7Dc|GZRQvdlERf1=|l| z*6@~x!?ovS($-xO%DFuyRwLmddpw7zevCjr)fK{BC`bBsopgv&*6@D6#j8jo<=`ml zxnPbOrTF`}O`kbe5Oo#PyU1!4SgbVwE)TVDF23D>-JgOD!GVWxp{aR#rbjsX>&p4w zab6RsFl84^Kie~z%yOD(eH@Hqwak+>n!Kn6I9_S7UH8V(N8nD2r(s%YZTHnkcHkZ) zhNx7qOEFP#B|##{6Om=X)J!W|;|F5~^LInr4!_|zvgqcBJy{+s^JAm;wOb${W9&@u^m3EaBE2m7m@uw2L>mo6mgM5|Xmm5gUUfI@`;MYf zC62orBq31%X{&0{@b-j%4U&EPbR*KI;j3UCd)@MQxQ=1f(MWd-LdFUFXGl|X&0DM& zf{4OlSWhC$%J8|6oNS>SH7VHUU^{t~XideF9noFf+@uP<07iO6krrq9DqGf1L0YS! z9a=6nZxWo96-R!pN-EEYgEzF*2A9s_US|_hNO`fvE=#rHf??~llANaAMpQ`F=Etbc zR`Xywv|rpUqb*5-Qm3&((f~WGts`OX%2#B#gfvtr;|T-eC-ePV{TWz0kaC4QDs5QY zv0nW?9pLMt%u=h;Y=`v(e?NuqH^@T6G~HbFxD@u&6=AhI2iL^gPwMg1%3=E@KXb$b z6!&L2AnoJ~)2QlL$qEau7FDkPlsp>?j~Es`Ch%I!erP*d#j1F3QX67Y$!s8lBa46WQcMx}r zAcgNnwDZtWEN%1?^vu6G+fv}Dd5^WOmb0b}4D5FrIFq@BQJl%xe^S>UPz@^a{J zvHPJdkP-+rA(9mc)25~zFCyO^w*$rukT4EiRzefJ$bUXpf84-zkxnn?UHuSyH) z+k`E_YklB&lMu73Q6X4{y&_@8*7%ca{5&lUm#dl6k>*ECma&%VK2|iDN9eX0_cxffkDoA@PM~xo zO3)*H-X#v0PZ}tEvT0`62Qpr*(BwY}HXrC%=Z=FkM0zLpKtp!Nvo$K19RbAYSF=Eh z*p$IE6QcV|=-Pdc<(WZ}zCiWHkzB;O)1q^FWKBace-t)LTzTSB%qqk z=W2ZOoxjBpx}qyHwp9<8rE%5vVgr4U_?APTqk&Pyk%WpY^P4ja2mV>dNw-mn$h#}3 z{B6B8sq~#A-G0UkDa`GBBCiw@Pt+@U>M$o4-&o;n^mn;$NZwy711h0un{7MYZO<-6 ztNM?@IUH*-U@p?PS-aOi&#Dho98dnUsh!v2=CYDfE^G?YeSe#h($)x}OED&_Ejskd z(e6t?oheOotWUWIKE0Naohhlp*e}Jw19$us=Ok@9 zKri!|1G*eXZE`y_=j2EC%g+=ARNLT6x$Cd3P?c7NZj`-^)n%J=58dM>VEzi!;A&2v z>#xe+^p7U6YMsaVPlqTCn$vH^DFo#Wsb9KM^Eq^d=j(r*3s9fB2CgJ+a(`f))A*Lu zg~_F@O-oy)n%<6ET!j2HRHf9;I}g}>`&06R#?!8Cv_>VWYqmr1MKF+-LF1g>e-08aCN`ZzBHZBO3h04{U-vpM~#ap6e5e%`kbct0H0XHiB{Tc5i!64F^q4qIW8+(=|K#yp8O z9Kg#a5HC}BGv20(?#d-z2MVb?5B1HJVbDKevT@fJR`D~KWP4y#qPs@Ki_$A7yCPQ{>4*e7b2eC zN^xH9yv^~i8F$_di{)(J9CfkgIkcpNj-|osfop%i^K;raylg%Jo~gNenp8TnkA@C+D`^ZZkF8H^8O>L{^YW8m2=6`eUZyp&Q{;{;HM{`ci&R8b@ z8;_q4*~scfv_a*mV?WvZZ$<+9*{hV&4_wl9{!yiL$Jgk-0HZXrySe;gI7q0u1mc&4 zd(VFDJN-eo3F?hq=sQvU{4K`3>;~aOIVw96;1%JjLDj|F68VQCyV$IFABE5#jgcE$ zI;+7y`zq9*#2|<#W>*I=d>{R&g3?cX(g7oDlf5_oAw2Bj;pD#2Hy$JxrsyUR8ZG!SaI&*uP3UJ4L()Y12XU4l5$8hB$`P zP5t=aQUd+F?YaJW=dv}MmBlOw8~UsqrKib@CW6HNvU1$=Z|9ky zG171|7LL!!)15*t>U7lQ*@!zC%6I6%<1LNUE&}kBB5kS1`c*>kql@{U#QpIC!oSLL zf<{`y^+eb`n;eOFt=fxLvDVY>#QfxbtQTOOwjvs&ujc3H$aM7Ho!T?`gCcp)s7ML( z>FK{t7nIs#>S0nmdyFvpELkh>LwM9$u6ZeYmq5TQ{WhQlnSej1Y z$m+#)aEZ*b(L)@iRo;JCP35wrh%QsJ#U6J5(Xp^w=f6^NNY_w!qnxh9mN{=nK;O09 zIQL~wUJR5%upm3s(GCV=tX?E0OKDC)eG5@f<0W{rl2I|)o0iIDxxZ}ev4${P<-Vt~ z)yXR7m#XqH?M=jlR$r1#NZ%SZ7PX=iyFUD7ATpykW~N3`jz0qdm1HeuGYRH*DrFZU zhX|&Gt}=rVa}MAaZTP@3aq>P>$c;ZGlQnqG=;nxZ$LbT1OFWVeCSu@J9Odnr_xg2 z_09}sb@+(ifYsUuG1Zxv>Hr$9;Bw-gc%h_;;(dHXV5MrXLObbobf=9PdSKuLCG1_2 z!Ba1fc95~dZF3cc>Orp!g8*t$siJvC5;DwWV`;j<8E1bM>2V#cw%R|7wUE0o0Gz8ck;;b59@o4vo-8<4R^4dYK zDB@i)Zq>}nT~fBPW+bXKmu4lL@Zm=eaz!V`C>J&H4TlwvzeThZdae6qE$u^0`S1~J z4Mo+qH&KLJP~8XB$e}fz$;Zst{`hI7o~yp+u9%L)5ZQm^2xNp=bO;v;IC3bfmyG#0 zR-P6D5Q70@PfrW!OOr0GkdBc2rmO1{ZR%u0od)jJ`0yyorvnpfqxJ8l4v0Zf0@5KT zk6quz#>dWlmZ7}ztRYsxVe#Gr+ZQMPmcq+F_o98X^GNW0apiL}C#@Km@c7GzmHV2S z&$QKs7FyQrnVYZ&iiy@rYxxQ?%FTCgAH@$$=^@13*GIG( zUeVTbKS9U!2ZLu9Y$=hNPod=1+X|~^v-YpRSw6OF6TJ03vBIqi`NN*mVhzn*+a3!3 z(~hHGsq)XLE%V&OI7u92_!##VA<=fl1h&6zUzSi3z=MxoX@wzVH|CKDc}pxUX0*9s z{$O>Sy7-*h>{rk69O(#&fLi6@N7K;c6S|xRSv^Ze+XlL-()_5C6%A1_( zqaN$PfLlX`MI2`Y%!=EFwc0n@Kjz#cv#*UZa-gWT{7GH#JXeDiPwlDDHrt@3_B`*d zOCsFcYfovM)7JEto`C_j68g0L+pL9xdOj2QsZgd3jB^F5Dw`fyTC1E?kK9_zr+03{ zjaKIl+Hgi>2HsOB7G1F_-*l^(1#Awh(PseQU;wG)qL9y+jBNq#$UNEuwyK`B=1{Q} zZNo#?Awt}DBI$xF(Y(vpBq<;RTDDQx5APY-&`(}k$BfeieYgaCDP*l zt-o9?X}~15I{2Mo;)UG%u=n=R^AXIlnAV%++Xb`GfW>nzlx%=6wt|{;NLRfQ@Vvxb z9Gs*&ML!g)X!nk2HaHxxu+XQM6eV`o!lUA!DH___1^;iaseA z7001S8N-WdEuNd{v5-1w;=b+9p_%^Ro3XYIg=oFu{FYl)))G_ll@B72O^a1 z4g$xcvhK%I4(qLs(m!e@S`%Z(5XJ;vs&rE zTNPxc&M2X-rsjwG)pW0kZ@Rqul1fVDht2LV`E%>D&j*QV$`9xtmOuImSlJ)#eQe}h z+RY(8wMCW<7qGc-=p=lUCjw;?Y_VFR9_p;HJydrbG4ZxVM-oTRG>On6`NI`fIQ2M) zML}+Xlj~|HGM5$wp2F16&=5mD>zegkQd^WUY>00KeJkLp{N`jqLt4>VBt6PGGvKrB zW|6ezaqBfQ*?2 zfU0=Mt2dp2gVC+#Vc@kMU|N#X&!Y?r-cSJ6-fHRlnpn);u&~C z1HOzmoDQ%N*rKBbo-P5brcuq4)-{f-`lb3;b=$;Iplmx38rTsR8gd&N(%`%`deC<5 zMeb8_2x$ zJ3^dB3tNX`B@tW~BOrMlTep4nXI*0=gak<2jFkvy5oBz+`ek8Iu=v8P zY*-Ihscl8vdO@AAClMKCO!6n(<~&evBe1cgVGlR?@(^8Kx7atJVqtsuIJYYEqi3US z#Is8lX8`S5$KNjxI##1>&ne z$0?7#I8X7AhBNx35?VXC6XK zn#4+wPAp;i$}YXA+yP3yS`W7~iBA$mbk20S#1Ii8ukz|Q2ONEjNu;qT#-Q^DtG_^q>joC>7Y09z8BCj(GbH7Ggo*^Qajm zH{ix#FYx4VSm`f7)AuL6b(elrqnRWxtHAa10H%0B+EsOCSTjOXb$OWnxmWLC%MefO zVCmTnx|X#N4*eW=1hB6tU#-p~hm4d**uZDrH~dvl2Uu0Ekl;<^yM*#A>Vb0Wl{a+Z zruf|KF(@J}Dk~&pC5p5K$@$|$RnaXH>efM8^#(e6&)21f=s28w=v)W#*+7l2USM|t zLN>kB*FJE>O^Sz@wd^x0FXE?PF`imbpA7_iDQu0Y@1J&Gvs+yn*n%o7rEJ4iXG&uC z%h#*`exuS`-=U-5>Sj7CYTsi9Wi0~+LocA=CFjoj&y!kee+p9gi!N+EE)=s`gez^mkm6jc))`Pz3_RXCeoD-XR;bq*N4ZXVMY7Psl&pZYM}!Yu!>Gg(h-Qe+8LGA zeKyCWg7m$_FWAjzXjiNXW@NE4J)=IUPDPF$7h$z{GGYRrh-C)j&ygn53fy!akccLq z6s8bjPxfpdh59IXYXV+pLpMYkDAt>C>lq?8p~>N%B!v{_ejlqSc>Ia%;Y5bw>|E{> z8$@&M=xg$NAN}pvNYDUzah3ijd9$eXnm+t0T{sKjyxLH1BZBxCSU~0u3K?B2qKCC@ zUDtTll2s!&9MBdOF=4IqzNmC3qN+M|c?c#DR@#@m*r2%r%v$GEnMz>C$`>0bpK;B3 zL_%O$XxhnyjYj*s_7ItrRr5-w0aRN|RwC;KL*4_!cFUiv*hHK3pO>^&iRSTmDW+L0 z6)$#o_Q98%H9iB4SaDL1?er7Ru6?2~my}i1v-F$sVAN$a$FcL5;=T-CwNL9gcKZxM zJ;R${ivf3o@0#HJ;a8qRja2;Jg9(OIUWKt`%_l8K=OwmD*eAUrOXH(RCPLM6F_zMB zt8VlAr@M#{^r(Esu}oamUnUQNs+ktR8g(0=^}~ICgpikA;O85Y6q(WEAxzMF_0RRU znD5_a<^@Fbifq>Jp?E$E0A>hd7aR99VB$?ffQH4>(@)05^pH`F0X8Dmn?+quvNojE zJrFr_oCCP=#L<{0=az4kh#!A!%Y}BePPKMq5*xOICq?D}eNjv%>rXOIoT{zjoRt3} zkBY~-d1rP^d_&Ws_rh+TCh{ZrTn6j_EOdLK!*5+nAvcity~j59sSOK5JBX~=N*u)l zky9_|H@brF1#X1vNs%x$!57Tn<^~(zvKm!BycD4?$?6Ymoy*R+QZK!|CH>4`MZ`QB z8RbSkECpX588wrxQBVnt*!b%!i4GHCrO{JOtWWyaEDkl@pB++O^Nj4fvaof6c0~`4 zn|u{_FpibR^NeRisQwQDRmd>y4Z{rqw8+s8)GZ0nE-u#{?yTEB9ltgl)S>=Fo?Ig& z72Ln4z6ZYY6gJF=X$=h+fd^E8sjE&7AE!$h{QGxuD{Jh&V)-b>^1jpEL1ylf{zvqD zx1w6@i-pu-B_6}eZ%U=^?+Me!+lXtG$z*&fv}{S#OJJ%@9X@Tj)!&*+)Y$^~UA#HE z{VvvPzvCy**GSB*ZE=Z8E8rd}<7huxo@Arp4<~5}hPL%OTl(dJZ^gGZPCbYA@#eP( zv6AUwR$0lRRU;F$?1@apQ<>jPIsD=0Ri?gXeSDF7z8egVM-Epku~u}r?+U1_4@Bn* zUfPD_U2vP}bgM_#%ymVRW|{ypTIGVu_jZGZ@}sc7RP$HU5<4tR)aKq4vXr+bsiVbX zGL1e`YBCE;-{*B5w8n0}wTDp4z3U6DdU$ml&!(&ats>;p{IFsn^3Et|R^igrM&!CN%h)5z-% zfj@Jp2N`iCR{TSV$9^=tTSRBp+L|PUn>;M=Oe+elTJ8TV4PAL=qr7e-+;dpVri}Gg zKw?Rv{wQ)en$}dFUe$OOj%qYWgN0Tq45crB@$8QznvBD^SAd5LT%~lA(JAyWFK)B3 zH(KxF=A8;gS{!FC3dj_x3mwVbzqwg|I$rF06N|=Lp~u<)Myp>H^|-qbKj!Jv$W4Ea zF2sWhdU{#i)9R%q8h4$Knb#fh`AV)XHK%RM`7PI1brn+U83MZIn@j>3;k6oO6C4y+ zpEvb2|K886cn9Yf-62G)p80V~wmtM#(WYU+R?j^ZOa{Q}8@SfW)^pd)tPtindlrSy z)?w6o*a4rp-o{iB$eWEV5oq{wRzr6=S#8a?y7jI7qQl)1K3k7%*HwZG`NWP@$+XWp z=CRGvY>3UEUEC_V`1(E~%|zvM6@2`UYwiVOstcdQp2d-v-So_iZQw9^_5Qxi>T{g6 zvJGcQfJyxyAvg(@g^#m=uc8itnNl6jxymb{v#Q7l`I>1KePX)iYG~JSO{1-}&bwu! z^xlTHs5)g<@WP6uP0c9Fli@}#X0d}xyhjhP4E$=A`;<3UX%K#$K%&#Y#Fb0R_~u^TI+ zaL=lWDB+1Fv;6$Pa*(yRh8u@@OYm2m*rDr>%`8 zjyeLNH@rTF8n0r{?vIr?bT40Xr~dE;64vTbO7DU2X(0ATXIK)D{Wf;v3~^oyq6s-! z+b@QQ!lYimA34*YB(arI9Zq^`p0(D8R72Z1)gKS*KfS(>rh zZuIJnnO38k5#7vlaK={dv+Dh6wNIf7q`l+9GakyP=akmodA1>w8X~L7)u0fnRa}z_ zsHk-{7I!RSTiqvBwloZ9|k!;ySq)y!J zSs^Wb^z4=q_ydDV1!z%c$zXi#&z@ATBZBY=>>wk~JrRyO*tOo_9AOZxE;Tz(CMS(i z{WbM)x~%?^`XGUg`-2vtsRXM0$RV|$Nykw>7>h(tLkH_$AYHBrzVx)KZgZeMi;u>F z6Qs9p2Yz#jNbE26ZON@KAT3AIOKr9?Jlz-e{?!^+nw+7F#8j64P`3;{V!7b6vfL7po3T5h-(aad%R9)9{8d^SZ!eK7RO0s0)c-b z>a*HwfwAc|*FvQZTW2*H6`CgPAUdc)#ytS$8k!`Sh;4Bv)8oIf%eWqrE z7nb@%516~s04Tty(<`TQLjzV5v!o0Q+&mjo1fFdB=ESZ%kq&k6OM1F35hXA5gAv}f zp5eKbw@<*w=5?hELdec~NHIoRS}DA{jfR#+xWMq&`HLZ#BtqUilCz}8Y0vda!t z0~rZ+Q90EKWlN3~PLwJ9>)A;8vv3@1{u40S zSMw|VxO9~=E&T_- zNGL{g(4C0wgyl1|ifcpa=f`NRANp@_$9P^+QyH7LYSMh>FFeeaIV;gM(T;;^HQPi3O-1J`S$Z(Ds&DH%7JEg|&(OZ?ubo$x*fV zQfd3mBPo_jQc%SUsK;Z<|ID+CT}kx&%6AMsc<``Ah*>2q8ucaAZ8IAkEKPG5Ub)uF zKQn5Yv1}xbqESo%__v(=OIz!3ypdr@|!7>kwOk}X=w79-wW&yh!kZn%1!9{f+) z@F!JfU~R->h2*zg%@us%wZjpu7OZsDH=`B^pL0f0S9njA!&42>Ge{Upd)@B6|CuG^ ztUXF<@R=6L+ogh%iVm`A{=J@agDoP%rxXaBRkLK0yzht;t0}whgw8oq`))hn(6UhI z3la-1oG|yHAgUbOQ*OUtlme40Lat*7JIL;rxke7t*FBCC+fD`+TCV3KF|2&;W`fCj zF*X)z_QG#*IQ%s~PD;A7Ik_Uv;JxcDoSRI#YQl zw?#^ES5SuP(Ma7EEX+Q!wduCK+X0%`cycGfakHgOu6uXv!M!ImEjUNl{oM^rE0?Lr zW{fPc-0R1$RXGra9{LpGK}H^sNx|FmeXN~zC`2;LjDmWxvbysCZ?@7OgCDS2f;U3H z>8)e?6pZ;P6iyTBe+k1p$Cs0qE5kj=w(>K*x$^nEDc0`{DhYW-`F!dO%%*sqr|#{OMs`knsjg~&jzECqqYdd<6y7ORaw z<;SCH_s)>_g(;pmJ@J|o*UK#K2?6UFQ(ho^2h=CcAwTLae*~8cU-npVRO8F|8 zWo5ENlUi7=-=PHa-|B#$?y%4Go*Rm2o3v15%Wr3jH8+*Zrpz{#7ubJjZg(Y~Jm=eE z)_UglMF1U-!Gn2-yMUX(rPtW73)m+I>uF;CsC2 z%YN@|-_{md!+9*e6lRevjk30*Nf!uY41UyJCj^r_o2}G=2eXBr`ZU-y>TaHcSGpIl ziv63yX}?G}m{~@$Ew1mq zDFq9&*ckh(su%h$-4_#HGB{+N>#eS++>e9FWqtXXuLF?>@b^)N&2#=ZX?eztTyC7p z_c3PH(8B@~Y2^s^dPtawYzv>asSze3%tk@ON{B*%8^znB22phrs>yk6PC7$}#cnxM zd*|B{djUx{DG$OfP*GTG>lV+{#xCZwr@j$j2=kX;J4)S@%pP zDL_f#okm@#yG<#gW~_TGL}Xt!|KwbRgZ-BelUmZk7Ado(I>Zkua@TdW(yyLh{Vb+) z3N^VErkAQ=-nO|X>uOkO()vC%7d97a4M}~$tj(Pv;ep8!P!9QWI7GMrUG`w8ouEbz z7US(JC`1Rlpmc^5oX!@1LpF~6`BQ?<{`+4JX)PK>NkOlL9_N{ z8^+(#I0FdpuA^b?JM=|)Yky4i_&b(Dj4QGES@(!d*Y56z>DRCx74S+4MyupRx8m*c z(tlBLP{SW-ex7fD+PuRnoR6Mym&+gMpUr2D^)}KTS6B%paC7|F>&I2f#KIb)EbDF- z?SP5@_6k5byYKcTl%>B=Jjzsf)r$IUTLT*G0PjsYSPBd&7La(@I(^~|J&YVE0KhLyd_zS&%+N}r-qNZ2`x2JK2DTQ?ENpV$onaTHb}CR z4Gt>Y?`FSFf@CjYQO&(77w*1A*dg4-;(N@LV<=R|IY&~Q%&+L>)Ylgp?sdZP+3#|h z6zl1hyb6>b91u>>kEbgsW8o?3vDsxd`35O3CVMcY-Y(U$zk{DsU-@>AxUH*JG_J@h zV-Z;X!~!6t6K{{TCO;Y;xR#fHjO(Ol|D(9+dxro*?aWie0L_v=Q zv6EGzbfJ|U*m$z35b%1;8BQI<`;6P}`vocO<}l>_T8kY4qLCsdn&u^6lf@V86IV!` zi*F1el}8U0#N&juRMe%~!i4@Y{5y6(=`lHaeY0wSICn9lEX^D^u`gRn6l#Bm9Ltx4 z2OUP=Kg0n)*Bd!P2bp@(5_;9A{kC5vR6yo+WscYV*KGNsM|wk2M2L}zGx&*qq}p%% zyq~2pWL>Q-b-boC&K`m*PL3;gQO)eXmgn-8?d|?2eMm;yR142Ss8{m!{%T~9R?>O zh%UE32)vGOTW|8dt5UWk)8_qO`rXIwTW$tT!M;>*R3?-#pl%%ueRpOt7jO`HbFQEqko;ep6j6 z^`06qNY@$%TE-^f#%Id5)jBMx1?Sm*Jz#zI*|`qNV2-zck>Da&W0Cki`?&;*B`boJ z$7CO;E=&s7F>SVgPVCL@-PP0B&HVdz7A-h&>uJ_$9HVIIF7xDN|73dGJhTSab_OmL zIpU0yauehKd!-$m0w(YGYCLq`cYbJoU}$jwV^t?Kb}53JSX7QLxFgXWs21Dtz-b(g zZ%!@HmiF#=3r&IQ7RuU8{DLNywBK~6yRveJb0wp0;9t$-%l*&OFr%Khe5 zsTLlj9Dj2(D=ymuRqjHWzT}l76VR$0qoPy!{cpQya2_N*ze3{mOmr!hZz|iBMr+BA zz0iL+nUT{vmDQ}|s@B@qBo~wFLn$pAL=OxP0W{x9#cmaUjdUW7k4vi@j2{MZ_66pLxoxomy}czm&^ELMtxjV z!Q(z(vJfiCD8uMOWHJ~!45+Z3Ky>!fCoHLRR^O|XpN95!ku#2sVFg*lyhRNVRZiR> zBxm&X{sgdLo#4sO3e9k^;kinIZiZ~1MJ2WEs*ih3-0I|)eD|B=X~${fq?Umnp#D2M zVr}?K@>KYVZ5x9F16KpuyB2$Kd)u=s5IGRop0fQy}BmR`Sjmb)bP-EQ~=-OoOiLc9C$9r_&vAU(Rb5vqNGxOb##sw zE7e4@2n{GYg}W=UZ1E$DAd*n|>-o6?Tg%-#B=oym*E%V(EYLExy~=0j$E z3QoMylj9$C@=+86Cz1FThrG%UvoB`wV+GJeobDw>%vD%ED#{=mZQzs7-3Rz3O7n?< z;I=f!Fl~GQB!f4;$+ZpBhKX!4HY);Rtzu)QP_909lY@6MWvgX_jG#Y$8q7C7Y&DD` zpAYO$eu>z2u{Y~J7Q1I}b8Yr-J(yyjvlt0X?M*+Mxnu37UV_$2(b6!7eK*I|Q=dgE zcLSx0p0*>?4-cp899kHH19XvyiX(jgcs0;Lfr`(4@2s`TyR8iz-(L-`#v2ik!>rMJhQB?1 z*a(UvXn!v3^kx0C>mL!|rv6`P{+Iv#za#qpBhA2XTlxRPX!m)sx##bs(EU}X^-E?8 z@r0&jR|`jH23Un_elc@vdeTu=uy@^5cqcCTW&MZ3VNGfmhHgBgT4-;*w51ky;!$)U-*QnU1k5}}iW8oSi~+5f}cporv~Pe^f}Gg7SjM!9y+E*8a< zQatoq=JOJVFN$ck0k>C-0Ps zw3(EjbVHXRTMhMoUViz9g@#8==fYoqj}$gNYH=?YLdbD9P+|-~90hwP@mFzBdz`V} zZx?yE?mhG(2baI$>MZ?TEnGqI&p&SaJJgUo25KP}_Pe&gKRg4K^CKV%s$uG3{$IED z`17BKzrQJc$kplle>St)$XA5l~m%$pYmp-0Yn`1#}h8 zwBM@tG`&ntOBKFFECwy>a+&Up?|>TiL{24tZ@Uqen`vz%2y`{OH}(@FCFR6K#0JPM z%UUfZ z_rr3~%sdM{l*Kz{t>~FMWSF+GrL62pDf$0fNx% z?w&5IEP+JK6?@qQJAnAlk{9$qKD9O4+~74c#oa@X5~1}@)V#uoILm^oM&7b^bh~l-YA7ikNYx&FAqGDX* z%heNFb9QTnBE6Auz-+d(Nn*x;1<*Y+NYwe$`A45ern&7{P+&@I!Rn-E_c1%lk~x?V zEkX4}#}OV`B%$xYDB={i1AXh3?*vlHmLRify{_q|2Ra z1JQA_c3b%ZbwbLRaudm{zPPurX^(ZQ{`sNViWfGCxHbat9PBYRJo5dGVdSHSdlzpQ z0-tAjzJ(=L6r~rrGQAQSs-Ez%F|-y+D(yz?SjpPnO%sruJ|eEHm1?qPQA>5(5S3k6 zKspLh3Tiu?*YjTM%Hw8*c)ZonOkD8Qncc=}eyx7#bY^M__ z=l0`rlFmWDeUWoK4>)txLzOv3ES^ibVV4pSHqz&CQ^$lXw6wD%mMRII5=JJvMG1AC z7x^{){0OE(ue?x)KT*1wB-7|B-1LB5?X3Vn9Tr-YvsCPE$HUsqeJax_+3O9Kb-1p9oQ-iw+2ra!W_>F4npQhJ%?oVL(?XrI@($yhbF#FjZc7xP;}b*lKrDeMX%IFmtuY_Rw*cL z0v|~(%}gJxl%t%OBur0amc?Ymw-*!?aGpgq^}pm5n{u}I?M4a#P$~5|!^Y0X@4#$>3kFL%zMD&0I3pklm?xEXoHOTp@~O&EwGJmxg2tb7r} z^qC%~ZkSHnh?>-vDnbSgbZ=Nk%!XccpC(HO#E7d(pORJ>OD^smT&)8T(k+-j8o%f$>fiWG5vBocgK= zdWMX%!e$!l#DZ6ex|LiS8nmuIlEn@F4Gtfg?jU(L)f|hM&5l0bEAa=}g4ioGmlSOO z2*YuFsk^q##kFO{yp>h~n$6FkA3ibo=Y3ty-PXxkpHF34unjNyRF}R_JGL_RBk9GT zU|)j=2R$!f#Pi&K_EW$w)y>PA;5r@McCviGA-6YzphK$~y>s-prw?Png;L))If#Rc z-r@Kn(n3VPO3+D3Vc&=laj3F&;?RyCz3P*4G0EQt0ZHgfAGb(7_6Pf^@1Vb5ym@RV zs!!g#dkxqVv?)$p)_xybrPyrfHd5*5Xu}xYcezm1s_BzbJxh-wu{3kW#B8q0yHb96 z`g(qmYzC{pBU+XH)FCjQz8Lk#=^f~M@yN@LgK5(j*~Iw%#x8GCcZu*=cW`j+5M6Tm zJCB}Y-7Q_C+`6||jGb4Z^;ow1H;7YwK5)x#7Hu!6>FZwzxmY>a7<#h^0m&ug>(0&b z#TQ8OYr+kbVDGW!(X(Z!o&u}*Fx>(#JDID<7z0s*G*h8&my>1j z{lxqjthKaSe)L*_^@jIcBgq;QYD`;)L{QfiE@s4;$@QD6X(oyUb4VWAK?FeQpf-rt zj~(7U)VO+3TRZ8>d76n_QZnhbgT9`&RMoJ=6wDDLWDHv}t)yBA&gA-%AaX@f?WaxWJw${P&XqNP)p;)>A34;o>Gntv zXp#0g@33o^#;&_JuNkfrJ8A~Xgs1xpSAvS*#HyT8*z~!j6AeZYK-NmfG1CX*^}OFB zd+Nz-yTJW9UH|N%VJBEP=p^biaBIQOJBU~%7X;*~^WUJ_DP@!pepE;%_3^x=QJ6l< zEYYP!nT-lJZp`YLUM-%ZO2#2>@2d;}x9yRSR%Qn}9ysQ*a!}~J!pxk7G?t4MCRjxf zOslx13aWFobAn9qDSoNFXGc=Ph7aB?vT~ip9IGrYu8`T5B_^v3sJ9g1bBb{7IBk+I z!e}9X8B=3DWp5bML?*5#=Xv4f!6@}A0=!mTgur!Rq`}0TkHgmeA8x?C82bf#rjfr< zaO6;;PNAB^p=4f=c^K@$T=94N%a! zxZdEg`Q7G7anj}Q`BWCB#1{jPm3U~F%&SSyY`jKmw$ zmzh{}NUfffecli$0^dN6191<-|BO}#v89!MzS?WNX7b9UdE)@QOQ#GLqox&E+w;QBOr<%Uh#nT{*yl~CkxLSj+tF@j9roLdYk zqdXE7#&QuX!Fb{43N2Zfw&uv09e2c~2kO?PjZ3?B{flXLIKSBD&Yim2bMXO${nTYZ z2t=?aI?X4H-qoEikv?!^8)XV2pxnXG&=<)%C;wtd=R0CbPsRwA7^EfZZswb-%VXl2 z3h>#%9Rks(mCBZa6Qg5(_|8#pf-n}*6h*tpcJbM}HnRxB&_0)w!X_veysmv>(|xjG zflOgc92nOG*RDqCPPm?xg&}();ehS|&}dobS-MU`4KrP<^A!_s_(70gQoj{oo_)is z_~7=sAC$WH7RdI4u8OkJ-6HKNQ{k7j`rK_aKA2)+YF`c>bA%Yhm&xGW;i@u#GOQP5 zZ$`d^m$D0Nw z(%R9H?x~fj-{g;qn89rMELL1(=fq6}yb>a<-X9Yw5V-*qF3sBMP+1oua@+`hs#wU+ z4>h>%1Qxue=qVi=Ql?(uF__tAY}345U9?!2sN}R+&@zZ?Sf4jEp$tns%Zsd zm;z4Ew{(ZK-`K?F=-dg?H6TCG-jBj z9YZGrk`SQ!c8@?E78#R=@t$qPbO$c=i-*{LZ8~uvQE!g)NZ&0!9x_dy|E#8Hnzftrx>`W5msxwVifCIa zWpktA?g0h{<8H&iUg{006d@iX#0>?eh!nsIFO`%n7UN=&_V&~n5O`e?15NIf*5z@w zIT%pkWVwH4`uSs$iO<#ZIc)#7?RGmE2vZ9DyE_$D&i(E3pBl<+!xq%lQB_GcZ}s&C z^_A66{m)%@?EJFE<8XbR`s#UE;LBC(kjBy0}?)vfB z`XX7|E~(XC5&yqh`wplk&$n+yZM6;@tpgCWsHiB& z3NoXmf{K939wEpSLO=*%!y|uNsUk*X$&AX9gb*143A2?UBcMPMNPs9K5kiO%RtV#J zqS)g5e((2=@9jA~CntvcxyN z!iumo2x)jB*Q-4?3Jl3Tx&T`BwolH8b5hPYOGKjR0ViP%o~gjcNI{E-BPS6BjYUp` zJ|ZF8b&EhN{W)m8Tqrsuwwlf;Y;?`y02}%P1e~F^EzjF?Rfyqiw4>J6+Bc|<4|le2 zWT%60l_uB(xQBxFi_D%!CJy}uX0Wh^LnH+Nedi?%;0-z7S!L!2A3FvTjf z(~9r)GQ$nVM0QJ6{$4XG^?8`H`WQJ*w_Ve*y+CbqRYLTDK)cX9X5r=o8zg!tXWV6S zsSo8H-mgvTt5E6Ir+S@&d$fEHZpk+$&(0T&Hx{F$dhwH7V&##Sle6X^mXr1R=tN=D zu!`-;GWzEaDfNo+A_vPM+*uI*DoFK<&ZL}iXY!LPL%9K9ixw(le;I!%b<8{6VjHQo zXcsd9cG+4J!^mT#ho1lfcG|2H)4|W~Ht-UNY5mJX8;3omqn~cF_0H|p1jC9mCQttH z%|7*&nC1Nu!TDK#@zB0%!c7!bmN9u}G|Nh6d*QCZffBk{G5br%L2|a2F=OZU@>_RWzNmJL5o#&l? zsT*+l`Ncvxm0BC8x>%Npvukl~yHoW5WgXr!XdegzMv7IUX&oQVl&0o??&lz;+DD!C z8tNv+#?w4CrA+qb3=_Id zWLUC!2}3<2ex7OK*>$!hWv@iU?zbYCe?mW=W{4;%gAEAutxsWSPYG+^i61Rf27R3DKqxOccVVu@)GS zg|$5mi#S)6>iYYHdvAD_4O)A3z#c}6J+yOTXZpD&U}G>B)^sjRGEdpCT4C(Wc}vRj z?`H6Xv;-#<>0Z|nP5qruHbp5-gh*%cwE`0H__JC93dN0=tqf(3Il`88+nW0?P_#n) zk=}Y0`k%9-Ki*qsmJlkzJYE1?%b3|}_?cFn2~U@i^FDN@W23V)PaimDu_WCc>dj05 z086ENijY+NDKpb_RTgf_k%UXWqL3N75b(D7vjN&Fc7_473lM)@G`aKww zWrOSOZ%e){aS}i{d>_{jI7|-OM$42%?D{CuA0NsrR}l?9_p5B7TFMXYEy`g}@0EYAL(M3n5K!Cm>HPf*Ab!k-9xOzdOvXH`OlFI?i$2)j-`3VDTNf&Jh{@>G7NFGhCq%*Y!0||h$Bl9wv4w9)2u~eP7h*GDn5qRH0wgS zc1*bo0R3><_pGh?JahqpwjWVhe6OLbI9=D7l><9zb=le~dT!E12hJk8a3cx$G$qM$~*%%cSW+3A!;gnO&Jst~PRT z7^HKChPTbCrF;K%O=)dp?9f{%2o_6f$2NTP?HN_@(S~JC32VBmiD{A$e=_M+J@nt4a~(U5%7j(4UU;!x$swgJHAIfu5DtL- zqIy1#4B2EbE^>JV|0b8}?bfIUz2hVA9~_LlUi`#V5S$?wb1?enoC|A@HY#N|7^y-} zYHGFJI*v0w5cUP%zZ_ay0(iVBgT7B3b~t{M$#wgjuNeA(9|*d7od%b{V(t7Ml?-+< z*>jjA{5Q15@F}M6l|C>IL z>!L!$-XdA+M6GYVMFg?8=yyqvZ`UU)&LC^DbTeK1{M+Ejpw9d7`oQOD{hdPg#0dQQ z?kijoW{aG2M)y}Imv}>>w2r>)k(1P~zd$v3ToyBX?Y$}=r==)uTYHk3uF>9{vL`Rr zgpTq88QhMj7@BHq;2(%Hu^}AxZ8N14QwXXq9}7 zJ2!Ej*tA=Fi=MLJ#D#s-YBC^dCJ-DYU zrjJoS{;P5gt?*RRJjYSWnzwZJXgTQ*SbV6n&{_2!QP?td9IIMg|6a`1#X{laE)FGZ zi#Sr`lm0W#?&nx@(t1Va`-VlAG8J3GFR?{5T$*uKY5)On6b%?Q7BQ+b2$iR>5F^U#J@qo0AV{{vRkBaUI7ioB9bx{37KlV*0xtnkWE84{__obw|^ z#)&FI?Efxix{@en_a`SFxRPxjQ!H7@>@gioJ+?92pZ!6Tpz@tc+OuwKYF0+fG~fX% zAt+b|C7RN+OsXI?mNOyMH2f5fv@;?xw(JVx_=ltBtLOOQx#b7kT~}+0M2a4#og)L6#w^W|gc&Q_#xdN~ z`LCIibr#}OpL{3Bw@1iPRM4H>ArV7+TH%uB2F5B3e0dIR^o9W{!^R3p)7Yy}-l#-B zZWWESwua~{xqO*LUHWd&k^N{dK=W~B_&i^9H)%vG$6jM2xYQmuFooX`k47lLbn+&l5(Gza!cm$jAUwFnSSP+z$JEH ze3Ns&-ru<MM!gPMDiG?{u2O+93LvDBC53gTD)6_Qw5HZ9M%(xM=t@PTonnK@+4`X?55DVX7>4&R6Db?_c9^!C28+KMzv3rwN#{39l< z8gqA<%Vc61(FSzCfDqjofUWv0W4@u+eDj(;;o( z%%sZ&oIldi#~w@)9iN)9!9IydX=^%BV(=w=^;Pfux&^$g$M=5I`1p3+&wFgf6@bf@ zioV#B8WH3yE%l@aNcc?Wf`Ul|^njO+g1yc+#V2jM#3^3FJNHf%K+``yYit$0+Cm1i zMv3}k3dh#!ZT4?<&Td|!!4)C?Jb!=Z4XcLu7q#~D%O2qSob=zj z?>s6~!S?J)e{xWD?UtT%`f=m@ndolS-q&&Zr|ai{Qwwy@i7qhf*S-{toI7*fBE5$^YZcS9C%corsUh0>t2nyy)>+N+n`s}yfVWQ9 z)aKh83jX*`r^IQ9`BzXE&mUN~aZ1dUhJITO9ItZAm*+sB_zy?!BHfRunhQ`oB)xXu z_omhjM(WOAO@>KcVz9%H%wOenW-FxxQPUG+>xspb{KEF#M5oR0EQd7HiJNx~TnXxXMEAh@oX?>r1=es$R5ittmr#aep>U zTQrGih3HBtdpK%Aq%dU%*4LVz@og+>Y4y)kXbg1x>uGbJ`rY{?m=?sX=FR7zo6`re z9R6OrY2CW0-4Z4c;?ZY20fo)O{z)dl*wsfDqkdRrYG5UI@N)}n?@o;at{G7ZTqkLz*FomHt|do!&l`N&1> zWxJS#dUl3O)^cZ(pJhg=K8A8w`(T)kw84UZh%|+$;tW9cG(|TNu zFT|>nYRsa+k~)|@=|wWM0S=h|J(NuCyC55TLy+HAmK2?cfU@P{K?fVzW*ebl%o{!k z%=;CdV&|dJ?*e~-HSo;Bpn#dwkwxPCugfoPqszlucHVueZmHB~{~DM~^$>K=+%3%xRC_9&oD0kd zx4XwvFpb9rq#3V_|A>0vYY0uVmG@cbbemYq^zJ5Rejn{4vOtN(|Jm@A4@*_#TQHGM zfoB^C|e-1u8vIz!=kYmOT z7f1b3?D|h27eSH!Ef>l4MfFDZKRLllFcl2<{DDk_T>(YN*;Z5>>C;bx(v5h|$Wxh& zoB*_Uec7dgCz#}h$Q>cl1WV?Vf!0NvhzKs2M#TFX#raa=uzvH8Vn5JM-#fswsuxX= z%Lc<2OulLhF>-!<0&bG_ciQ_t1jn>EoRW{feGal-IPze*(mL@%Z1l4p^eBAjN@}Wm?>{cr}Igx5!hP z1k#q;kdYCg`i(4y=o%ClXx@1l6CCr51K)*leBy8Iwt)rac7hmDIZSr)bzjsS`+~-pSLu}$i z#O>bakArU8{hQbKPUr2|wBba&>euCfndN3+8oD;~1-YWj3TQ>(cW1CR<1)qys;6E2 zDL0VJ#%q8y&?Qcw!D}O{9bK$O8w%SDhl^gh`BQpxsXcb__4lb)6JIYRH@qn-3Mqvs zcGWaak#G)(w?*Z9s>jrG%Xd}3Daa_l#!>>E55aZb4C3m7H62viFxNg5|NJtw1b(fA8+Elm@sJ^sr))0+NNu0x$`fC~VT>xLM)HqSJ9QBqKFNM<}`2z@;a zyDg7$EKxb93lqUz!^md?9(ZcnaJqn$bgc zmR6df(-@K@Ws((48!N-KIK`K9c`}9ly`3(DKMZDIYDyNXv`0M9=y+ZIm&}*^GpCp0 z%?b20y#9pM-Rj=jYN(pHp`{@8&PQHjam(`U_dahM>A$Bkt|Ckc<%}zY7g0y#+ZCPpO`!_C3o_ca~dn(h%%94$=Fs;lycL1*{ zT-f|Nv3`f72`(1scagF`+f093XhSi;$Azv+j~;`j2jJ^dG{KR7*DG9)#- zUvWtgGD0=bDTJ}ScV7Let#ntgW_Gr-aoEkTs;}{YJ=9|$(sXP{>qQ?UOd9N-Uirta z82e)-a{>K!8o9(?47HuTJEdcvKmd`#;|OVrNdS}mHaH)2EB|B9M2TY^*_+;(M0=kp zW#!gbJV;Q|^f2A#JJh6aZC~Ap-;>u?cBN1&n^IIXYa)UTH^*Lc+t=0PdP1L8Q$Q>z zaC9q+9d%LV?%{G4hI>M!p-GF5dqqKfWO%|@65x++ z>aF^3qBe=6%YXXb{y5$HQXG!^3`n%EfCRQWJO(OJ^0CXhpV0+aJ+^aB)1VB*Ms7*@ z29OTD)c{?rusuh`fi7uF`cn@aw&AtCk;Rf@8c>KD_7a#J)TNob~y9#Pj+!uYUl4U?|4RkI9d=tYN$0 zN0``ot8s1cTmG3P-k53QH{YxTSQk|&E_X{kKDl;*>!RL?wba5<*Dts2>(tND!CgX| zBm}Qj7Psp@fPEhKlbN;f2Xy7P3G=b@V*y++x*4* zwQUDZ&q=Orzaa=+$@b8@dHVlm2?Juw??f^=eM)m!3aotjuZ?g?y2j#Y-)fN@upWH@ef_RQkqH+>oa zk%xA8r>$WQI0|m$xy`quNQp-|9yG}^c|2c#>Dpbh)E(jP%`Y4xa5&%Wa33_LSwW9` z%~R`mtXIYHZ)_wm%{GeCby4+|%#B^T+}hn@Law${pU3aTp7s0%>|gQkdQGez zIwPbS=q$-JJ`JL9tDD>PZv+)g0+dN$ynX#o5zOaTjXW_1zh?W}ru_KLNxZ!aUPZ|C zr?vJP$R8hr-&QzS9TPWa|L6XfiZjywU3%evnqBxc{vp0EPD)~j@qb~`;>Z3k%^CQg zO!}Wy|9{W8Resh9pcjD z2rtgeSY9a7B@hR`K*w>Ib_{S=2%RJax)s$!=Q>|`@taOm5H5_TcJFE37k??7Vx43p zOc*`--M+sC^Tm0mBFW1zByODDK8rpKrd>8=6E575LB(WRndY<}1u6wM5;%(@TTY;O8 zjUz-}JO_UWj#fiVCI5lowxw9_)5<%Tg%>p!d#Od+r1wcxI%L@#jC6$c&c7=1Gc9}~ z_qU(QPMnpjqz|UvG*aM2lyop77Mc_+#cC{5v5*zS_U1>h2m}SIXsYq)NN=uyY@>@{ zW%E%NAK1tu_H`iuAB6Q@W26gV&Ud%`UQO%0X=$_{yF4RiBP~V6>0aES5Ga%utP%pI zSA6vXfB~T$U>)Q6X5Z55XHedF@2VQFzOu}OTB=an0`z>lI>V1C$0Qb;jjB5`A(}?X zf%!HkGTJn9S893bCXZcP{W7-PHVc39*7b;o6mV;cI`TZ1D*H-8N~2q%KBdhyH|pF@ z{`wa4-aJu4vQgiw6ir27Y-`D>An3%0U6XFR4*u!$w5xFBv7mf`9v<6|$i_@%EyPXe z8!-||4{^4=b1im?5ih`msLzDLX;BGYj?)@^m&!M_!UxUJ7r1?RR|j zRZn$@o$sGbOR?nhE=nwdU9!Ggmf!t8XnI%ePqV9muwbLxD=N`JXEz7#3Z}LW;4=~Q zWaEEIE$0~_}H#h>uiKp$TRVliJ-d6zVZI}BQ*SzEukIe!dpg&xKfJF#S9~1f z3ubz^R%xz2rY^H`b|7q#li~cbQ*k*c;X9*)Z-g`Yf7KSzBMbYDGA}jhKWABC98mbO z$e-wKgz8K!z)?7XaVHhCJydwJk2y2?V|@BeM}lC{p6LUn7kGYGHm6P3@Nim9ym-H5 zi|&HKCF?tS^d0b{)0WxL6|XWS*|5Mf@X^^`A7VzChl0_k6yBdpmZf_A_Uq zudO7a2;C1Bpg6~h0FNss%LJpspjJ}VL*8kC{#^5mV7*tB5GwdC*!Nph=0)OJAB0BB zc|l=yynH>G!PlAv`zX<@Gtz5zFW6ZkY=Rx;1^ua6emVBB6TyLJ85H)?@y{}5ihm~z z;)4Qi5(gUNeUsAtJ9Bgbg72VeWb;)$kLE__@#)m~ofD=vOsgpe)bUM3cYU1X1wmAT>Zx$uO;Stxa`N8taX1W6DvHJVim) zjF(B_38;W!6kAyh%Nkioo*kX-@f?G8RtGlKX)zftinJ;_c?zQ0W0jxDrrlmXqT?(> z<&0J9{spbJ|GmgEIYd-ueTM;f->P@>LB%yl@EZ0N9Eh^@@yj<;*10dZ7Gbqc_XiK2 zd`Cu2$2+QS%W`#795sZjmLHiNR6W}rD6pn6OYS1DBVqeh&VOl`V1490G{YO+I9;jc zJEG@7YM+T_hONXtUN8Zob{NV2ciS6sOn)?X>N(vGh6z&1QWucDCLmIuqfN{^16X&w0i zkJjRxSs9SbG2ZdBll)EjrN`(AwP@qF5wGCIUQ313Oly+y!a!I%?Lb1uiZK&cI~P(K zIoCgYKtBw?V9Kx^`cUo{cO8EB{-x2A5eZ>7doiEP_}XXXA1N-p$hGH8mLh^`HCV|G za392C@UH{>o7`|dp1;qsP@|@)z3O{ne^G%(VT1-VV=2=kymYBAeiP!0yR&5X8z`l- zLoiN7P2`C%vznLxm4|1vTt)shvDj?|gwATrOuZt%9%suYw^8)%Yv|2ndtwSAc9Bf9 zpBVjv)aO##F`^zGr%RjwCB@9}1wXQ$wt-e^GmM{c_1rQo!i; z&o)Q$p8fsr4arux3aKCsbaa2Z9SXg80LaR|;~;7ZpMAvovxr^Alj$Vsqy?=Mb=eb3 zNEoAb=x*tiy?ULQvcgIi->)hG2zQgH@nzos-PgSNs30q~06tlXwql>Ahc_B{hN!WA zK!1Fvp@I78Rj$GrVeREA?*5G7!Zhc}!|Q8^hoyGIpR8L6n*6;s{GmAF=yds95HED4 zealQuCdn4$mUt3&H$a0{b9b2E=zf*f<(Zm{I=CXtUKvdgma~=vI$VH2d&9LpjXKos z;7WV!L{DD-%INgF4Cb7#+>1toskrbzh#GTYUaH$FKm&?TAIZ`mzFwK=F?cqY`NvBJm?A)z8t=f%=2rPYvIfEQIPW-g}q#IddzB|AkxfZnu$8zc*V3CRW{t`Uf0mK-FOpFU1Al7!OV(1Gu{oLXTtYo&|7Je#*N zTgh6P0rYr-wdv~LeM3lIM%RsEnM(`N@Z}l$iYO0Q9$Hy`y>ixMX|9Wt+-0-^JF1s3 zeTik~G4rZOiRH(!kEh;ph%j#|mMSDJ+ZPWLBFZDH!uLt#eV$6PRpi{{or_wc$Z4Ba z8_C0?!n6MR8hT07zWhjFVR4bNGU{p>k4Br!O))(2#8;7~ok5gH5A%3<^g{gBcxfQ? zkxe<4CYfZ~_1Z{oi4wP*pCM}m%(J<1!xjA-E~U~)Xe7)?gNEZrz((8T+-E&5 z!$Bbk7Vq5(K8VrwZeQ43!i*6jfGo+@wmrXs@wI{%v^&UMjQr6Ok1lAQGfIu1r)LMH z25hJI0()vlGvHi@cv`jj>*zHtoP!-C$jR-76pub(X92UEsxAEVXrO`STCN{DKJSZJ zJU10uENhAK$qpOXMME5X$K}1dbunv0>PM%@bv?u~CG#7{+c9H5abxKFyjU1HTfNlM zLL@s|Cy9?y7Zqw<;+HCwC6z7Q*XvGOQ(gjmB5w?U@(jmjk(SCVtkSIf8x5GZ2~CbF z^1ba!VA`2y+!Zl1sRA>4_Ayo{DFu(x*VA9{O&D7rFt3-qRA2@bU7jT?$xLYg9C? zq;NW#t5me``&)xID5`Z0x?xn2_6VX~%hpNeBo^M_$z%Xz$2hK`uzPY1BbALm7nIkU z5eNvo$2$uAvoI6*_8ec6z-$jn837ukwih0w^LOZv z;pbjNpSQ6d$7oO~cezGZsEjVCS}HCIasqp?tr{n0KUhv;}e8W5r}X zx0hca3e*BSpM2%_QBCq!`C;g2m_BJt$5fG3#4jzTAqhDoe(GuaIq3Zo3<4<7Dob2G zGqhLo=)p6}QwQ>(|8hDPdG1y6bUHtnNL4<6F!JMZYY=W2G5WZ7FWtFIAsvO~g<73I zhP|>XT579QB5<#R_vmko0k4t$oDN@?+i5-E$4DWjL&-!>J*WHDY8cUNASG2l0K4 zQcZ%RIe5zqBVeJ^Yn&XzJ1u)Ti*i%YzX>p&d!}by#OZ+-Ej-p(+=)Xa1hq%n5#Vwc zJI9*B;(bvBi+|JD0aJX5`UBN7?e#$_jfBz@|<5@CtB#-)jO5GYZdl4#mM2~*!6aqf;(8vn@ zLhd}wgw3YA|gOZ5#o6QjBdHTNAIMAA07)K+~+JAyZKAe{ON%Pag@Z+QF6!*;o zRI+a2hu}hQuPhsKjT7{ygM!KH(8j`KYRKZP#~^fV?&k|xh?~vP=?uEcY$diS2x0KL`iPKyRJ>V2RuBhfF^ij6QDHfucW^`TuQ9_4Z zQ+~$f0jldM`0E+Y$HkH^Rm|56Ls0NO*=-E>rI=e%CfiPOFrmHW1dMD`nLWBasH~9Q z(5bGwBC|B_2@6ELY7E3jS}$8k=8(4_9g_k3k%*^2_>VT`j<2=2WfM7PBRFm|@Am13 z{g~0ok~5g1wqoS%5iNM^;Nry&o0`Tq?h}MFUI+8g*zQkjgf0_%n_t*}$xF#al#$5B zEHH==Im1~Ugo&VwKj_HmyaRWF_EOJCb3teea`1BO&S@v$ssjPx>QPf; z15MRt+1U|BqVF$xnH}ZJUVi8SK~3pZB@KC%Pmwae^!59UEANXo&(~-(ER)SB%WWr< zLz+C%9G)|`40k}N1q^f3TRgMTOIm{4Q0UOJBb&+ZnLijT+}Fsa#z}7I@Pm1n8^hr~ z5l1d{ePYS<0-+|hfQ3gbBNf%x+l?dk7$DB90k4`!Ret)qb-T#ot^+&PvtZnN=KOGk z=SWZyx;K2WyGN^cT91`FWQi}yhZt#U3Z_sGBbat!HsR9-m!xNpLYMk(Q6nyP;7Jb? zJM2Ug3Tde|=b#U}4YUwtw5l?1ec%b%CKakMSE+20#V)8mTDx?M0E$?0#z^rFap}e? zu)MF>JU_wUk=cgebH{>;xUSqgO+^I6L8cu)^kUbW)CXNbgi@JId(s1*2WC2>w#QL) zwbQ+@;!Oveo-SE9gX6y{S@>mXKHutncL%xSXD$XI!we*ofD}tpgNU(@rFL1tq{6hA zHSK9X2{(qD_1jh8!LB+m+~tb6 z>KaJqzU9!JBkp!=Sh?HG1<^GN!h&rHKk~i+^#iM+#nZdDAS7)kN+w7n!NO){WhOa@>8ng(ZnTaCo}h`C_U3e5_!qvWLuOl$%f@8Pghh4=oAp z@?VouLB$k&P@<-ieGlBB@jOD!AP{$~T0c+~H1YbvTqAOoi0NoL!Hy!h$YNLqjy%i0 zP}#aT@Oyugl>o0yu*c)g33ta5=`RzB${ms*=2>7Rv!)XT3$sYG{POf6JI-R;$-EC0 zoR3W%am!hQ;{+Ntr2cOy0+H(Qd(lVQSQZ(lliAw_GD9Hjr7u%2{JJp<?kqEcCAS(wZTXeY{NVaDNMrIe?p>?|I=oI9HYO3KZd z$5_%R_tSSJKl}np2vkc!?w1rZn1~=ZbMf?0dvb1^hn$epA_py*h>q97%3kF9l_v5R z*g<1U7mc9^ZNLnv3A{KcyxMupXx~y>FVQNk6jUmDiS`ES*aFBWrOLL*A2v(Ti zxPyl|zQ%d`oQ}~_M?4lQ59mK$%m^ktz+*)PT1}oXEaSp*oMaAR`^~Nr<641!x)%>0 z)NTT+@Cm>?dpFdKK*TOw<9EvtdkW%+ah$V?(8zXwDDKl5JakN~8_%>y9bm$XaLw9H zo(-BVqA+*&&mN8OT9qRjn}iR)D(H^qlm zU_(P-++tcnxle6Lz9qcKurS1G0gFd3d9Ue28D(_zWoR;Q>^c`j+pc|k8ib>zZSX;S zo?%9qRY&NICH@-Ec4@LpDAy7-@J{k5GBB`+Kcz;A4l-*pJXGz~POu>Y1btyXIW$DF z5TEM2oo-nh1JalDlE2K>Fht@Nr+_9xXd`&>ArVESq);!lY8u)P_Il}hxpJC3f)JF7 zDz+CE^iN|VkE6GGz3w-7I`$B6Y33<4<{~DY%|x=GYyvMUyjIhilPiV&6J>79LU*c{ z4Wa<52#anPo!a#`IlNtm-_=8I9jhX_|Cr|khkyi~q9IQarXx-hrlj(l=`RBxF6e1- z79Q{_u|uzU1JRE))hplN-F*j8IBJx+`8fDGth<~r$M*b+2bO#rlrA{Nh%jDb-WR&{KXykx-<7g!@EN|wAi5pz4_Mk~G zCGJ`tP_uVEE3DF-?$9`k)L=z2EP-0u2}f#G85h)2<%tvTJX>M|I&|s>#-3$UIIqvA znGgi#t*>p9sh?a%WGFyrAzmiTH|s1~H1;8+O#U=lD5b?I2w$wYF7Vq6w!r!tRj9-7 zeA|ygfUhS?Coi=>EbShF@8Mn{83naFybeK3+~|i0XoY3vp~nG&_m%H)k{b|e_<_`9 zkc1Rqv*w^MUkw*gCe~`^zJ@lwLaIF@3*%=!#PC88Qx(?Y^l6D2bDsRt{JuN$4;frXtp0X1|^IhW_`=$~rU?yJnHG+)(PSx7Mt>m#{njK>r1{#vFZ9qn% zBg)6MQa{TsV2#Le4&Q2)f0||vs%qx_hfD1~o+fd}R{3-F-5h&it#-}6BU#-GbI9k0HxJOb>(B4#dxQRGNQDv3a*I3lId?k_{-dAc_ zwgSPeLHfuA=j>o(W=my9n|t8`Ot&*TEExVUnMX?glqiImP*o?w!M8r)N7c_i)^9!F zN|@|Rm20pk3o>RHupMBhoxd4K$QB3xdvcU~@UB3+(&J6w*=nY&3R9GiyPEZq*fc~1 zL-S7y>5hL{bAr&8tvxjWVTa4g?y%-`2NacvzOPZWti@QaD37d^|LN~x*GXWmIPrh4 z!4vHo!EFp1&$KHd&e*5cDtDmL1=qQYK0elS=XC~usp)jFh!0(0yl`P!Qf7)rg9L~g z`~lDWR{E`4RKRktXNnmJmhEdzF(7!mM3~Yn3`qs8k6Gk}&gJ|4xY32!(r!Gl=QTom zV*E1bLpRYGbgp4!;qhWK)av_}we-R^N@@xm1x`2*H9g6(S{~ZArl(pI@uCy=FV+Y? zX)=i)PI88msISt%^A_W-+)!a7iAr(tbdp!yTgkCS~tWg=hw=;o$s{=KyGU4T5kK|bj(kA1Q z=Mo*WQgI!FZN25xC?3-hKe9NcNP9zSZxM1XcBD?v(Krs_YqQK{ZwtPCxX~^T4dzdW*rtghSQHxqYE>R9j779?Po0W;`G`t6SXu` z<3qj<`1uaDZT1E`*Dod|2~UIm-S#9sD`&wAL4kE8XqQ#TRJJZx{ww28ui9%cD&R4B zJbB?-%^6o^m(kK|1Ww!d3zqi|tu=Rne)!htQ9zy81@7jq$l14=@qP;$VxwiOs$^l3 zEJFV;&>fp;^Kc1l$Ks-8cph2u?wzi7)*K64-sj)GMgnIkpFQeoSr{sEYE8&5{* zNk$b0UchS{$Rk#}=}sYF`!J;`g$@TRqEnd%S!10wdHfe;UHCwgs-VITv=H#Z$m@)0 z;*8dK0_Nk-=IsDZJ4grVE%ImsG@Z)4vb2@+l_N(Z%=os*WIW?t(K%}7UCmAplx`5U zoo2&35B84u8|DN%&yGEZa@AVUq11;DXDHp7LL|lCww#(rQ)()&dBh)u;(7jxjB6U- zF=kMvfr?mC*rNSRf64b=|5#_h#)tARIfq|*Pzg0z;d#~s@a*i*`#;5)nHP6u+zmTjo2j1y&Fs0ZETAV2NpR|g3+(w_kXTG<62pTQK zF<3t?mlsIVZ#>0GEe+$MCc0N1Y@Hj>C>t{pn!>3Y^YK8&=$1frO@z{nZ?C9RPi0NY z-}_Jr&B|eHSy^Y8MTrsLOUI@b$5Pc5d=bvTs(7 zSkJm&Mq_lve10$L7Z8c!DBK#Bcf!+8LBXBM6Q;dV=Lo6o3sgqTU`G}36kbfDrQ1d( zNRLXKZ6yqQ!2h!1_d58mL7<&yq7brM>`@-VYd+bC+LFG@10JT8R5gV1EL1cVIT~s& za2Fb*?rNv;Kd(}0jT>>@Mx~=K=hhcphvF;L^8^%jdpj^%W!nJ>A{s9prJ9#Yn|^~-wsCi zn(R4U<)|#Vt@tIYv4^oj zz943>W*lg;qrXJ*9F`Hi^|&KAnJMLx_lHh)kkmdaNH-t1Oo4% z&QSXFEBA>U_+NUossLi!nlQ$^uEbpM8HWDpoMeCp%Z-YN0Foh7SPK|38vUO62Ww*4D0E!!+J6Ff?*xWKmurpIS% zjKl7>E)iyf@imn->+b(^IY8gZ`;9&`k18x#2DkLPTt2AHE*wC}Of|gQ_>baSC!u-h z(*aC!hs}_eddI?niBT@+5U4p)rom-;G zUHuY@`YdjrHgC-QFgdv`%)7SLnp|JoY0HSef!_nj88y#Z%IzbD7A{V#WmJbg9pC6U z=$CM&w&l(sK3%QW{u?CjyI ## Example @@ -94,9 +97,19 @@ HomeDirectory
+### Finding It + +```bash +$ tryswiftdev -f -name sourcekitd.framework +``` + +For more information, please see [Find It](./Documentation/FindIt.md). + +
+ ## Availability -Recommend Swift 3.0-dev. +Swift 3.0-dev
diff --git a/Sources/Command.swift b/Sources/Command.swift index f7ccb52..00bb6bc 100644 --- a/Sources/Command.swift +++ b/Sources/Command.swift @@ -20,16 +20,19 @@ func executeCommand(argments args: [String]) -> [String]? { close(pipe[1]) - let N = 4096 - var buf = [Int8](repeating: 0, count: N + 1) + let bufferSize = 4096 + var buffer = [Int8](repeating: 0, count: bufferSize + 1) var n: Int var outputStrings = [String]() + + // FIXME: Return value is not correct value when executing `$ xcodebuild -showBuildSettings`. repeat { - n = read(pipe[0], &buf, N) - if let output = String(validatingUTF8: buf) { + n = read(pipe[0], &buffer, bufferSize) + if let output = String(validatingUTF8: buffer) { outputStrings.append(output) } + buffer = [Int8](repeating: 0, count: bufferSize) } while n > 0 close(pipe[0]) diff --git a/Sources/Error.swift b/Sources/Error.swift index 5ef2ffb..8d93daa 100644 --- a/Sources/Error.swift +++ b/Sources/Error.swift @@ -5,6 +5,7 @@ enum Error: ErrorProtocol { case InvalidValue + case UnsupportedOption } extension Error: CustomStringConvertible { @@ -12,6 +13,8 @@ extension Error: CustomStringConvertible { switch self { case .InvalidValue: return "Please input [option ...]." + case .UnsupportedOption: + return "Please input `tryswift -f -name `." } } } diff --git a/Sources/FindIt.swift b/Sources/FindIt.swift new file mode 100644 index 0000000..1aedcf8 --- /dev/null +++ b/Sources/FindIt.swift @@ -0,0 +1,29 @@ +let maybeHere = [ + "/Applications/Xcode.app/Contents", + "/Library/Developer", + "/Library/Frameworks", +] + +func findFile(targetOption option: String, targetName name: String) { + print("") + var existingFilePaths = [String]() + maybeHere.forEach { + print("Searching... \($0)") + guard let outputStrings = executeCommand(argments: ["find", $0, option, name]) else { return } + existingFilePaths.append(contentsOf: outputStrings) + } + displayResult(sources: parseToArray(source: existingFilePaths.reduce("", combine: { $0 + $1 }))) +} + +func displayResult(sources: [String]) { + print("") + guard !sources.isEmpty else { + print("Not found.") + return + } + print("Found it!") + print("") + sources.forEach { print(" - \($0)\n") } + print("") + print("(Check your `Runpath Search Paths`, `Framework Search Paths`, etc.)") +} diff --git a/Sources/Option.swift b/Sources/Option.swift index c7e2bdc..6fb47f9 100644 --- a/Sources/Option.swift +++ b/Sources/Option.swift @@ -1,6 +1,7 @@ enum Options: String, CustomStringConvertible { case DuplicateReadme case ReplaceStringsInReadme + case FindIt case Usage init?(argment: String) { @@ -9,6 +10,8 @@ enum Options: String, CustomStringConvertible { self = .DuplicateReadme case "-r", "--replace-readme": self = .ReplaceStringsInReadme + case "-f", "--find": + self = .FindIt case "-h", "--help": self = .Usage default: @@ -24,6 +27,8 @@ enum Options: String, CustomStringConvertible { case .ReplaceStringsInReadme: return "Replace strings in a README.md" + "\n located in the current directory." + case .FindIt: + return "Search for specified file." case .Usage: return "Display available options." } diff --git a/Sources/Parse.swift b/Sources/Parse.swift new file mode 100644 index 0000000..7aeea40 --- /dev/null +++ b/Sources/Parse.swift @@ -0,0 +1,3 @@ +func parseToArray(source: String) -> [String] { + return source.characters.split(separator: "\n").map { String($0) } +} diff --git a/Sources/Usage.swift b/Sources/Usage.swift index 1678638..ad2f1af 100644 --- a/Sources/Usage.swift +++ b/Sources/Usage.swift @@ -8,6 +8,7 @@ func usage() { print("OPTIONS:") print(" -d [--duplicate-readme] \(Options.DuplicateReadme.description)") print(" -r [--replace-readme] \(Options.ReplaceStringsInReadme.description)") + print(" -f [--find] \(Options.FindIt.description)") print(" -h [--help] \(Options.Usage.description)") print("") print("USAGE:") @@ -16,6 +17,7 @@ func usage() { print("EXAMPLE:") print(" $ tryswiftdev -d ./Pokemon ./DragonBall") print(" $ tryswiftdev -r Pokemon DragonBall") + print(" $ tryswiftdev -f -name sourcekitd.framework") print("") print("_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/") print("") diff --git a/Sources/main.swift b/Sources/main.swift index 415c1fc..3604c53 100644 --- a/Sources/main.swift +++ b/Sources/main.swift @@ -22,10 +22,17 @@ do { duplicateExistingReadme(existingReadmeDirctoryPath: value1, newReadmeDirectoryPath: value2) case .ReplaceStringsInReadme: replaceStringsInReadme(source: value1, target: value2) + case .FindIt: + guard value1 == "-name" else { + // TODO: For now, support `-name` only. + throw Error.UnsupportedOption + } + findFile(targetOption: "-name", targetName: value2) case .Usage: usage() } } catch let error as Error { + print("") print(error.description) } catch { // TODO: Error Handling