From 4c36ac4a10d2e80dd15c8c078ef3ce44fec47c8d Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Fri, 3 Nov 2006 16:01:45 +0000 Subject: [PATCH] incomplete folder for downloading torrents --- macosx/Defaults.plist | 4 ++ .../English.lproj/PrefsWindow.nib/classes.nib | 2 + macosx/English.lproj/PrefsWindow.nib/info.nib | 8 +-- .../PrefsWindow.nib/keyedobjects.nib | Bin 44021 -> 46337 bytes macosx/PrefsController.h | 7 ++- macosx/PrefsController.m | 23 ++++++++ macosx/Torrent.h | 3 + macosx/Torrent.m | 54 +++++++++++++++++- 8 files changed, 91 insertions(+), 10 deletions(-) diff --git a/macosx/Defaults.plist b/macosx/Defaults.plist index d7d3e11d9..b24ea7233 100644 --- a/macosx/Defaults.plist +++ b/macosx/Defaults.plist @@ -44,6 +44,8 @@ History + IncompleteDownloadFolder + ~/Desktop InfoTab Info InfoVisible @@ -104,5 +106,7 @@ 20 UseAdvancedBar + UseIncompleteDownloadFolder + diff --git a/macosx/English.lproj/PrefsWindow.nib/classes.nib b/macosx/English.lproj/PrefsWindow.nib/classes.nib index 943615f29..3448a766a 100644 --- a/macosx/English.lproj/PrefsWindow.nib/classes.nib +++ b/macosx/English.lproj/PrefsWindow.nib/classes.nib @@ -9,6 +9,7 @@ folderSheetShow = id; helpForNetwork = id; importFolderSheetShow = id; + incompleteFolderSheetShow = id; setAutoImport = id; setAutoSize = id; setAutoSpeedLimit = id; @@ -31,6 +32,7 @@ fFolderPopUp = NSPopUpButton; fGeneralView = NSView; fImportFolderPopUp = NSPopUpButton; + fIncompleteFolderPopUp = NSPopUpButton; fNatCheck = NSButton; fNatStatusField = NSTextField; fNatStatusImage = NSImageView; diff --git a/macosx/English.lproj/PrefsWindow.nib/info.nib b/macosx/English.lproj/PrefsWindow.nib/info.nib index e6d4c2d74..ec7c4587f 100644 --- a/macosx/English.lproj/PrefsWindow.nib/info.nib +++ b/macosx/English.lproj/PrefsWindow.nib/info.nib @@ -3,15 +3,15 @@ IBDocumentLocation - 18 87 356 240 0 0 1152 842 + 19 87 356 240 0 0 1152 842 IBEditorPositions 153 - 123 483 563 267 0 0 1152 842 + 294 445 563 267 0 0 1152 842 28 294 434 563 290 0 0 1152 842 41 - 294 420 563 317 0 0 1152 842 + 108 420 563 342 0 0 1152 842 66 294 507 563 144 0 0 1152 842 @@ -23,7 +23,7 @@ IBOpenObjects - 153 + 41 IBSystem Version 8L127 diff --git a/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib b/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib index 2a542f12f7bde2a7fe9c8c7d97464b57b3d6a14a..16114bf1d2d1d1072b2db701a9b0fd49958c4ce4 100644 GIT binary patch literal 46337 zcmd3PcVHC7_xQ~0?CoC3WfufNT4*8&A%zYq9T5qEges7PE)Z`%jy&?Sc%YwU)w`;;vCkqbF5t~E2AL8qN`0+CvM^)@uVebMLLk%NGH;bY$WfJ zPskzi9XU-2rPN7XG>V$E60Jh3(i*fby@fWW@ic+9rR``}+Ku+1$+RyWKnKxbbU4kR zS#&hbqkcMpPNY+*MIWJ$(r4(ibQYaW=hFprIbA_l(~a~k`UTxX56~a!uk<(i2R%>! zq<_=P^a>-4F_pPl75rY6)xp0ptO2{3HDS$I3)Yg|#%^cbSa-Z8vHolT8^(q+9~;SX zSswG#7?#fp*?4vzo5~($kFnWo9$UoTV(+r|*r)7sc7Pp5h)38__8ne}*+u;Ox1!K1 z3dfIExe@!F0)O5bmaKO}(04U9YRx(;MlrdUL(C-bQb$->!GlyX#4MA3a&`uMg1g(TD08`b2%I zZs{}hNA#!lXYl%xK2LvDU!pJ7SLv(uxAae>Jj7!w32A7mHrJ1-z4ViUV<;Kj^wau} z`Y-w)`g#3dXLQ-J&iZOEXQNPA=dI3IXM(e>vz%zPjWusobG(s`K0qH=Sz_sb-w1D?_BI$?p)zq<6P_9;(Xh=!}-4RQ|D*S zz0Q5kZ=Byde{ufmJnKB~yx_d({MW@?ip$}0x(t`;s^+}lswFt@s_m+y*L5|(Ph?b+)v=|C*4oEXS!c-&%y6=-Sgaw z@!4GW689?nz1sbzdy9LfYmfVF_xt$!1NVo)-(R{9;_t8AhulSYJ>fnXynn|12mU_q z{?q>LAs)@O)1!Nw9s{qYr;?{SUT^Z$@YHiNyw>+L!K>-H)sukt6Fn_F?eW^dbDO8L zrwe}W#7}Sh^uy0U{0#MEd3>Ico>880o?K6!XOibW{52VWJ>;3@neKVm^AtXR+VhNj z{-WnqeEziOHT*Trv&6H~v&ysD^Jeh+mS>x1yJv^zeb1Mk-JU%NVQ=u?KF?8na?EqQ z+>@U?zj=y1e<97f=R)v$C5lI>_;KMUI;yH`XVi^R)uQU)H72TV)Gc^z9MvQ$-p%lu z5Y^7(i)tU$LC_b~IjWcEKKymJXIfOhsDV*~qJ~8ckNQ073vUPS3v?v^(EF?RH*Kl6 z*n8IdyZ4;;5AS*JpWeS%Q||@uMepDE{Q^F@x^(OR@lH{;WD(N1r1G>djcyXod=4}PM&SE9WL>yPN@XhW2VHlr&=SB}=BZ-}nq zJsVv$`bO`C=xWg_!gWShkG=^@UqA>v+KuJB(KVuLM%Rk29bG57UUWl)8Q&O1#tGx3 zamx5sY$v?(l#s%Y|@waiw z_{aFyxNKZ8iAhanDke8o(_w0+ZaPhu={7xPl<762O~W+JN@ivA2D6G;)x43MG^?4_ z&6~^`W=*q}S=+2*#+Y@@dS-pIf#ZPL(7f4fWZq&nHk+8YnoZ4SW~|xVj5FiS1T)cW zVYW0|nXSz>W?QqJ+1~76-e%rz-eGn$JDHu$E@oG=o7tUiGkchK(htp^=3Qnl^KP@Z znPm1clg++nKQqNlHT#XQbfA-S0}BDavnqzSo| zG$qYQENM>Sq(j=rc1{Om1ea=^;reeX_Fx=+Xx6NlHn|80VAUhb5&1i-{-YL5g>507Gp6A>2k%%7AP{oZ}mq zotu?6Auymproblv+GL zYizN-$o>S9NLnBlWX%PA7Pk~+aB{wHWB{oz$j{5k@#XI&tw|fwmb4pWSIrj~Vt>iS zR~C?Vr2TM&Q5Y!58)sK*P^f-shS9Tgm%PlpjBq{nlG_pU9i$^RL~!&Fc+Jvm9Gyv* zg`^AVO4=irdlwdDAX`&>1^ts!@UQ)5cd}u%kxP1zJ4sJ+7wJXrCcQ}#=|hr9U(%1H zkW|v23?Ku^ATpQ?A@`7>WEdGv(nvbVAR|a7$s#^7l8hpwNj4cn#*!Q|j^vU&;wSf# zd=el9q>zj!6Uam|iQGpfll#dO@&K7iECS>~@(`Iurjv)s4DtwhlsrZrCr^+k$y4NM z@(g*FJV%}x8SIKK+K3PB(l0{@OSwfbQWn?*7L0%_s zkd|^a#+S zK)(a}Gtjd@&jCFTEC8$!*aTpcfK3KA1=v(z0PG=P(}B$Z_9(E&fjtTAX<*L+dmh*e zz+M723)m~b<^p>a*nD6MfxQWAJ+Mu{wgTG*>;qsQ1N$7>p4FC=O6upm;&43QBEI>VeV(lmt*(fzl3?+d=6JN_SB10woEQWKjBn zk_yTIPzHfA1e6R=#(;7!C=)@s9~29eCqbDF${bK$17#5?OF&r$$_h|cfwC5qji77+ zWjiQ4LHWc=-A~>kn^4*|lP%>^)~FUfAQhwLT$$bNEw z9JD-Eb*q+jtJT~}v|3votU=aLE8WVnQollq4wEC~YjPCnI)-)HLW;-qqMEn~mCTGd-*`~u{oP&HUA zs56Du8GzM5rP8^updc?-Ql5}zR7y%o_T^{iWo2jf#24}rI5ucR8HqVmq^mC{W0FvA zSYHVt&8QqfMF=M33EWp4?OhJA|ZeS$FPWDqq6;hRQs!|8lsE*7Q?T;6sTd@sBN;>LwN+!fI ztx6`pVd&k3nb}zxJrG8gPwGJGrk(}VL)znOLgDYFUW6G<4XldfoYd1dSXG47A|08d z?bj;P8y3(TNPAgJnSuTVdO7-)CsGXmn$CG z@7AQX7Smd^wip4C_K4kn7aKBYDUe{%Y)EIg8&n{&w1F+Mw2>6To17?tHA*BfA>Nii zDUH`7fwUR+qcRd0Y{r_{lWw%CrWrN*`Nrj;w8Z3%EZ1rkk=Rm@NL$l3lEm6htBF-7 z&8Rwga+`#vF$wYUvX8{I5&dP#ltZ*V?GWrERk3gUPH&^Plk>DA*+n~(e`%LA!$f9f zWR4w`pI4Zh)g><{Pw0nK)EDx*RoA*1g)Rnred9{JBS9%MlJoP%`3qtS1HSy2k$L&; z4$$tj2fdT_L|M3t_M&&w-ZTmOc?g)i3ds=SED)slGctYHJGx+GE+=o46q*KBeZyhZ zvl`@gotP^^ZwBn+h87trpc zeI!wX=@6SJ>lUk#z=4$rf)7_Tgd$C#=p08v@J7(gMKsfvN!f+P8{M;gIawvr=c6N+ z(2;ahNdAHhl%4pj(=olb4YdlaK1RBGR4+lJ>MDt%V@1rDTw_3T}*Nmm=uaBY$0lP9;v&Xd#fE-HeiP)#67!jdMURZT$Z#0cmI)DCCJuXGdLOwQ6RXi2N0ws;$D>-XeGx|RGw z-$A|c9^FQ_(;f7Eat`~+hx8-56A|sDpQ5!rL3hz@sAqfoatqOJic3%I$hO@>r`?yI z@5}0j@`ycO+S@=%0ai_#&i*(A5{0{?Y7sBWmpbL==S@h?3uFsjZyA-Z;D6IPUG8Ym zN{$CRUa>k`ovf-Rea0G4Nf#l1^hfTn45!g+FZ~jgMHRXm^?z)jAU`{Il-1Ez4}0mp zg>)a?FKiJ`9)#R@SwZm!a@2KJwy-FBlK%}lpaHP$Fbf;^aOI?Bt3=o-#|~( z@97U%o8Gyo!gI4T@6OAV`V=Khrbx z7t}l4pKol=q-#T}RsxA!V6_oOzX%v9{gZq+ zV`W#QE~~eY)noPLNHi#LDB2m5kmd4f7i&m2EufpQzG6Vj8nIiJvRhc=5{F1iR0Z2dmDIg?^0jP~W0_^2@%`M$6@z&=|MshxtPc9osTC2?S1Q-mEL9SbAvFI8srlpM1TVP)bts`1cHg#~#r`Mv;p<`tP~mJzIemc;B6)gM`63tP4km=oi~VClLVY79Ae zmD-QOL7i-l%Fv4t!K4@@btH~A@P0`f4w>Atg|I3u+Dx&va2>ik zsC!v}6)a)}wu>%YK^c@0{dwrf9==>(euf-b+44VuO=AtmQFWqI z8jPNy=;O`s&+urPO=kCt(X^EZG_BltnOO`-EPIIT#9#v*Zuv2ALWf#ofey1Z$_%n$ zK6}Kv7c~icT#mC3vnQyBJxPwRr%>ZOO-`_95yxaUQt_89^d9S+P3{a#%{#(EnS_N2twmXKAVI8w#YuQp1p(A1g!DG;h11|Od*a5akj@H$0+~1$HBI<9g!XfR$*tz zX zu0e!iL=aIG-+U~Bh{s1_ShWBHr9P4$b8{IjEhJK@VQXonwv@;xg_eHG)|K%>BIBip z-sai^Wu*aID%7;nC^)cs8v91$N(6oHpqx?19I8pPjR;(u1)f6lfNt;6Ws zUVB`pv}DUlS&8SdV>TY%DJ!c)<5q~fgKa02J0$KGgq?WN9?r!JjI9!dp-5;IwCKl0 zBu(jj^;nwHjht6{u;pcq1qy6ZUjDd@9O*jB$i~aqA74V{A&ti^UGn^sO39p%z!>!7 zVgh!64aYb+7?KP+i%M_lEY1?nVnt1g*%>0Ds0@(RdPP)gj$JJ=l!AM%DZ=toonvWW}aV4X(2*b3NaU*n-Vlu+QfR-7J zalQyBVeAjNoSEm(_MxyukQ*LJDg|OBsZ6NXDJ~fD^VE!pnkbW$`+`xE#nvJ_YEmsL zJ0N4WXm>>#}LeT-&B8D}>fmW(k|7ylJhr-jrJN4QbQX z1Z|qKmYz}8TWis#tt)HMlubCQQsyaJl(&(F_0~o!^;qP9Sa~-zBo=BugjU+J6CuRp zgz_=Ecs&DMg93wepfPjeA4!PQ+7L1uWlVDjp7L2lHTK}^Z$(sNQ$<2`AShIaWMgd+ zLiKiuP_?jys%=Z`ao4RIzG17bDpXt1FOou4ZJ-#%gu_^w7#u}M)fcExqP`F6g`Xsm z?+U%}9-8OLlM_+!TeKExxiy-HYm6L}Vz#=JN!o_)S>t<>aY7*m2lcsG72^FX$eh0= z-W`HD@0TzqAt=d0iC!;rIAw2Ml{p`v!zh_^qhwCN=gShB>YBXaPP?~pkEHP<(c5-P z8WY7Zw1rJ$B95#6hnN+QwqsV@;AW}bwuV;?_qLC%&#X`F-u9vO3HG+IjttJ0tP+8? z|8^_6VRu0uBV?C*L>J^YBk<3q?Cz9Za96Mk@>}Q`-o*L>yWp2)yC9E6$DW%=RN09& z;aTt&K}NNfjM^g@wYP*(q2S*Ckx}h=hf<7M%R5Cd>VUQ1X4GzL-*u@a-ag2aJ0(wA zOP(ZI2dsmVCwnDNz6$Xq8F|vrI)pqqT#hFL1W!63{t9_A)b3b3P4eVx(Xo!oj@1Ht zd>h%ZS_x}=^+^%#W9v#eTgPy`(|E8Pl4oR9*sXYu-K}_@#QKfsRz(qhRvSBdF9O2X zH6Z7OY<-1&%CJu0&`b8H>b-nEKN_r1Uy`o;)hrmF5)>6n5_n38%D0lh1X~jZr&O_j z{STcg6bRywpfL0NfL%8DgrBX7a5#?*9u%__RBJk8GlKFxqo zo*zKZDK;k$18x{>%d(&6`bJ?4ZoE%Emv3h0Vr66HtSy>WoJoky@?~b@SPWY_Rusz~ zQHWlMC{!>yuP}g<_%<;iP&P3(>7z3Op+W(mH#&hv0d)hd4z!9zbkX)s@uvpRn$~5Y zI?x;RedKnvDst;awXS-rsPI_KPFs$Qi9(juK*rTlYa^2o7#7FB2+tz{R{~lY0U+$< zYCW~S+CXin-mErKZ&4eoO{^S*v`2H*?~Yt?1((k zAfcb)yKf?9F`uK4VGz0!(=!Np=Kcp7ymw_cLB6`2 zvY)G+)h-LvE+SldlgJ~Il8{t5ZiFu%J;O}jXgSR88*eH<>{EN73fZsTsrFRwLQ(4! zmKC7UKuw_DzHyxpWNC}%n^)jzoy)-p_p_(o*%N&y6G)g21qDnp0Oj&_yk#!sus@6@I z>XOtq)~0r>nzK;NL4AS%F%)aF%5GN_n22$(nycp7<6xk5fY!E0!j%g!4WJ}+8=0k` z7RVHWcpUpifT4rciJ>F}pmhb5!2*VSv&?WtC`WawtsK<{g>nR1AGIUU1~Pz@fMbP( zcxhbPib3+#eH!%<{#E2)0cb;1(Kyi%3SMDHDmz|~*fGv6vP{(HZ0wCB_FJUqkl0!( zXFJvs_aFFQ=7$7+^%XQOm`DP&G1>QfW#RG2%5r3OS`Nv`M)Yoh+bD zgI<>KtXc+15s|Iy9lfY4_~8mYEsS3QZH5+1cw56$aJgAbMuEsp$SxP(_+FPp| zZ0edzMqwf_Cgda}Na|#qv8C|FuWrTEEojA#gshltxq!wCT4K?5eREybY8zUs9qRk) z2kM8yTB#qapWyW~v{t*+FVrtp)W6+P4R;252hbis??lZGv=h+Vg=+7LsvT$o(A$7^ z3+wj1>M`}!75Mrm2>2j^+<^dvUjI@Syj{ZTD4`%+gkkIUZY$K|>NjeUdO|&^o>IS6 zzf(`E-vdnq+5%`xpsj$m2HFN_TcGWLwg=ils`omgPlT0606Sz-(DK>Y$tW{HGZ)tX z<+aKga)n$G%2#!xR$1^ud99+S#>K{kmE7;@xuBAZ)En68Y<1WL(~mcE4%VFY8m|l@z5RME7?74Ov#|n=Um6MpMjvSw~!tu!vJAr>3dLzAl;I;W9B${8iuug&+^Zwm(O1m90?h!-JSv;4?C9?pKw=$( z$WF%)pzDE-5PD~=n0;L*M?8+9WWx%_FvoC5nj_tj;TYk_bYwYvj*&pouA?2F3iKhM zGk`u0bQaKgKvw`=Rc>&BbR;{1d36p9^rQmE zFd@yfOUQ%?a)dNj>L~`{BCeI%B{?QJFTbFy7)U~7Y8`FucpyZ`Xh}$R(3A^8?BQR~ zL>vhZbTG3ya;W2Y2nW~a9K&rh;dnG;CdS|hrz-L%G{|}8ddD}8$H@uDla8kxPdlCw z76Th+raiuKyzH3em@O>E6x36bfKC94^xq#G3ycqq1%P7X6#|_cG8m4zj-~3Y%kk}* z2zS2YNntD;vmMXKV&f&Ci4vl1C?+G&<&I^J<&G7O*Bx&-RytNWRy*DVngetkP;5M$ z$M*xpfoVQa9GeuNnJBMn*Om4oOS#Dho{?^Hglcze390t`%7fZk3e=S=k;Wqk>iX;f zDU}f~Md8z+M%Wb+1zb*14Jg>kJx=HW>B}UbSCx=>%@lXXZWIO~4rz`9G@cC6I8D+x-R?IDLT$)2lla!b z`I-OB!*~4PNUu<389*P#9&IbEs-+W6#%1_pLhb7&elfg?K1^%#{p$&bsEaN$E%c7d2i3z7dkE_R3k`ZCa& zK%c+?9Y%jN7wNb}b88+gO7m*b8uIE%picpP8t5}Xp9T7yrQuSrPJWzih)M3+J;sk? zc;AS;jC`E$Lquste3EZaYD_mwNAU*=b3{%GDycw0N@jjGrf-jrk4-55PHp*4YR~T7 zW5&0LjVoW^rXa$eT~frPaoUzoNxxb+vjJZ%DxiiBDV$Cgu2$t(`CofVC8{mrgm^ zqfmFefXeG7+!Nw5sl-t7gR{(912M}C^hGhvJg7&$&zIXZ&$f74W39;|t%-K4Sb~79 zCg-(9YMn^q4*!tGQER5fF4kfra=ztrVGs`qnb6|M5iOn^)e=ZmDG@ETR$6PVjn-Cc zhhu$zwp?$4WcSXPD1BQTii?Dx-WeFWK@};CmKpB?I;Vce!ALy*XR2r~X9JzP2jv6( zK!P^5b!$lz3S;sJcbj!q z&TXwfFY*9@(>xP<@`F>Rx5 zs}^{xl|5CVZO}F@&^C$?8K!&(+2_OQZPc;@CdeevuL|fZ&Rh=q2GLVHA^#PB1wMEhEzL5Fsqji$Q{o0da! z0twwAARG`7CSeO8qEJW;R{@AoZf+@@-{Tua;*GDw8xY2cY&(OGPKZb7xoxthMLs%< zk4}k4UyDcR-xzkfRLW?duOMY~-h>hy+Mn8AWUF=&=n0_TTIf3;E29IoOZe|!TgB)o zI>+VzIA@7Eu&C6kQl04viPcrIQ`dl@>-{H+8q33h8uLqCl+ad00NO~sT`IDLvomD| zEy73DF4{vD{(EpvMmnd*aJ*6hiTVve5^oHVcv6yhDgtv$IiGtynE$K@^9jU!Pc8=;o52!^+9&YV?h6~JFLx>GUYDm!|ig%f#r*G(!>Up|fzgN%K1A2j8sH06rEGQO86*BiPpqGGN0j2<}4y-w_L}0CfwFh4Tcituf!-km)Tmm?I&RfQvPx^qHy zR>A19AsNYl6+vRqZ<7pQToR)Oi4n>TT~T39u>)TtY_G2+=k+nARSYl(hV7YxI_A2< z_WCArLf@jlt#7r%_NaKb+d&xpL;WLtCk9~{PRO!Kz)WD(?6AGi$A+-~HAK{&p_Z-! zEIcEtf2!|OZ(XKu*WXra>08v=`c8zj7he%DFhq~Qa0Zs$AYZGxOy92`&=2Zg>4)^g z`VswWU^*~F=>mqxJ;0)Xd4WY&6nfE*UnAIV$4iiy@QkDWT`=^*D*s=iD6;i}!+#xz zaCYnAI&BoC8q(vDrm2mLQ2bZpUBJd0Tek6PipHyc-HmsdoNy8+b+S<7IW@cSoNlMb z86_I88FKO#V2yyqmNeeYC5=}L*sZ{tgd%88!&x00`7TFXh)+RiA1R1Mh80)}Y3 zTV&&5jq$an%bYhkYdC8>o{Yab%E6eRtH!NF#KK*Sbbm(fZ@Df`M6nRnQQ!iZ7FAPt-7;KsHNg$OX135jKL;K4QDTK{tpf3yj{;JrD#|J>f8zy zjkBxWx1BvgI9o`ZxMWz2HwDf%auD@jD0}PUN~3IrI=*6*GA*69b`A)kY$H*&mDLnd z7$3~ZOAryhtLrxBP(8P_Zfl1|Md&s&#gFqgF}8*qmzPy;b(rWF&foyoi341_V|0*o z+$QOWZ!MI$O^8TYz7`!hdR}QdZb!>jaozKS>_(s2#@SKg>{No&UOpHveW7dAeX{N^ zjk7bF(u#3H5a+ZIPE0Ju?$E6Sr@d7O4rj2QSC9WWAJgv@IF)-bw2%4qz`CRD7W}?V zrmbQiOKeaQ6Ultctk2KS&cb-0$geMBY+`bR2?|sYJ(2D6te{&{oim*;i0FyUuRbz* z!jggAX-7|-FJtt?Imyl7M9a^VQ$}fboI= z11xQy^9SdT2;wK_&(1UA6|uFhxQc);unb`7z;Fq?(PXyv|s#jED^ zDq6j+Me&;tG%H#&r>}qQsJqhF-Jj@R-=k^zhM`sb8yk7k-)jGtf0Ls)eRGY&{>`WN zroYY47r*_{`t+^eepUR=>fJ@}ez3Xty{Fd}ZCmt8@%Fr#MLVWVDSp4t_@WQ8(uzN9 zKB(xU-uL@=Mz<^axY=<3#}@{se;U=%|LLK&>7PAP?B84e5C7iuOGWz%zb)S1@mSG; z{vQ<|jCrr{1oQU9^!52hb~cdY-LN3+t4 z=JocU$nKtg@`2|5Q$24<|8}_P|88Jx(diz|iob7d6#dXBy7PzY8@?P}+kv1v)e4mN_Kkv9F z{jcUj{1&#!19y6X4*M;ZP>-9fbTz|~!q6RHLC~kPy zvqd*oSyJ4nNua3F<@f!KUHyw1A7AWm@>A=gTi>1GZ@Movz1h5Mf9$$e>CGSL<&S&5 zT6+AbQN;=Qf2Sw*=vmyN-_i7zjczS&mGEwQYb~m{O^qW(ZBGAI-1gGeqIMtcDQ^Gu zyrK@PfA!z?wpDcd)4Tn5yfUJwW8PYSr)g8uJNKFC?~;{~-nIF7f48n((z~5oR@|dm zT2YUEj}`Zf>QvNoT~6^`ztk`4HRn3usi_xCG2 zot{$D^r!a!I6d{!Isbr`E7Avi7hOE4_D4m7J~&%E`0}!%A&d4E-*f!2qM_3^6c2kh zr)YTAOT}sPl8VxMulHxn7@Iz#*^Bq=Q|N z=kLyQ3!Uejf5?37P!c05QOxK?^`2oD`qTN>0_R_HK1ZncA*hSd05lxjtl_w34YOhz z-r25U?{*DSVjA9Om;c*&X`%Cy^B;SwL$Rq@Rz|+C7B*C0WESFG&MUzzL>v>0vU3@$ zX43f#a-$mmm1pt2*bc7W+=SngiCYji(PtXDojjdg>6*@hSKG+4W$c* z7q+1sYa7ZO+ea6vDgT3^bXC#EhYY1Ofx-Ze!>9|e(P5M4s_y*ORl|82SgviF<=wLd)33w@Vz)0loAo7`$SL*{iu=B!;xNoMS(1RtgDs%4$^VI{Z6%r zcR~TR(%~<*($zt{Wvu}Afc;XXkv+$W$@PlE+pf+Sc76lH&dd^F=Ox22xGg5j>DxNcG=g&hdk;!T9J1t~S7(8j#_!;YSF4IMTjGKz~d?|4_^T;4X8xDlW2678Y77 z3OykT?G8U;Yh2lqRUZO-%4SvNaF|kpDLoay*1Ga!`Q5;t39&YqVOK$MB(D(X(9#6v z=MXa{G~txhXkU(B<~hnqw-P!X>8{DLwK3<3%@oiFk4(xaC>=@w+PR%_IY_?seXn|L3*HajfbKGHm zIkH^O+a%&3WsY6g7%AoiD=eMqnq`;9tvu)1r7K624$VTBfcLpxwO>HdeXTtB(sJ$? z=~`@;UIlDHIm%_>L*y;j3bM)dy6X+sN}NaA>{{ho?ZS18t~IW;u66u4y2LmskepF4 zI?bplCowzYJQvO+h9@xx*e6k7!Qd18*2gaed^k!_E~_L!?on< zk4g(%U%0*mwi4JXTwRc6+$^#-!~zI3)f&y^Jg{k1KBd&GibJ>FHfUNp3{zcH2!wh^M*mht$f()z?jM7xpLIZ=( z%E5H2ZU?#G*24VR2@G}qM?wBnuMno-L3v0~ZZATLcCAA>7X2Tq{|T^91*Fa8x{p|; z9b&RH5G5U_+@tcSs=9APRMimGn-UdvpIyMd5U94N8MRCESip-kMWIFr#Fl+h9#I{4 z3?izFh_EAIoltQ10NX1NeVAs{Ez6zjAia_M7KGRsA!5Hmh+hFa0PLWExI4{=sR&{u z@#RTu?v6u%@z{XK1q6tb7Kecy5dfQ)W4p`&2=N_r(6Q@=^i{b>zCXwBek=TR#YOmb-NQ34HTROMLsqu z*Whv$i?sPA4PJ7uJoMMx^AY+2gpT?Np+|w@2E`+x$5zndC9o>u>@qj*!{lD!emxA& z1SJ|21C&Z3khXRUOQ-}Whm~armiI!8T;txL_F0G?8vc_$T4nsZ(7n<9mU|N@l|i`y zlq!c8#5GlbJ?nTZD54Iwj-*LZ-G{5KG=33_%E_qNLlp8^*2Fgv6 zW^{4NXgJ}wiIGH!h6~*Z(fg76(~9W*%>B807brDAsR;@?o47x2*y*=DKKCB?UL>L3)Bz<%Qi8js*+LiQ9u9tRy^Ea+9_mwp*vPvTRr!efYs7KXeay8^L=F&3 zLs062(g2j31tO-DQ-@_o|G^dusly5%hnR87{e4Bu_`&_7`zKHufr2M*G)87rMCz~Z z-;mT|_gN%$tR%G=D7S*r6qHy=D!Rc9OLx{1T0)&NNUZIJpsf%SmhxVy0wHq$a$l;5 z+<)Bvx-Wy$9F#av;wx%95A!JGf`=oi0ZD30P!d6DA?d`0U^cVDZC65uP@|~8g8HQN z{c;lGaeF+7B?__Bmsr|@(i)UDQbJCLEMgdo)CIQDFEc2xZsWx3|2y-4c#t}qn4*O;;7?VC!$j*f1N$>z?z3?>j_E^Q0@%TW{*9>^$*oC zC}W}em%3fP{;fQ%5l5Ra!M#E01Zkh(ACct=V64~p~MyGnw>8XF`Cq0mI&!gJ3wGNKH(z4KJOXr8H0w}lMPDx ze9u@=(xff1hx3I#dr2YAM*8xTa5@p?v)e>JhGTtMA{vvL*At`E5oHdOw>v>i%QA80x-22_kJi8ArAZCC0SKGz$FWm5ujv(;tSQbKy1%_&DzQmp$gsa znTjC|&lJxCpo|73dx6LD04O6t86~SG_Z7&=!QoM81BP<7l68}dDP_%5b1~RoQCmIY zc@(SlnCEfy8gb-{-ESNy$io~^as~C1Q1g{;t5D~#W4tAruk`&;Ri5=cFWLs(C;xoU zOi=Q$0u{4(zGs$aHq!EnXHJ+FJO>94dCCVR07_wqoYKs!80~z|LVjUmOyaVUr9k&s3J$T!%7t?aV;Xtgc|4r&nIf1MV=2mA9;3qJ_hAcP#y#2aZsLE z`Zxq~{bUFM{$CC@+IDYmw(W&uP#1o*zI#VSXMI6y_I@8<9#?WZW+ot^EorM==IA zFd8nlDh-Z6#nydgTt?6Do^x2WKhR*KfTN_o3d&p%Y7;%VdocJ?*82UIgYmcL62kij z;fE-01xLYlJo~6dl>Sv%Fs~VMw;2+My+)z(=$l40L-etTeuG568I-p`K^wl>I+0lNZQ z5!E89B|>i%)fxwg(BDo;J^*D0DDQ)UVOX2Q()Q!O2Nx0+#m1??`4RaQF39 zdLh}(9>ILe9oi+{ULVanI3Cje#NF6W@-uonN0xqpE#rsS>-=jy$1#FU=EwChY`cCh z*{jTDGs$PT{@cfP;68kxEAwy%nFD+Q`BGcp7{*TFf`(k&Bkn8a**A_%Ws4(&@4_QAR_cDT2e-u8r>}L4#9iQ*;!=o!K9&{X@`&-u+bXWp z8--^MU;s1`=oZ}4GRwlX%DwTJp}%pL$}_kHX`xujUCT-mOCM+k?ti|-+Kj3Z&(yhB zB#(B+xqj<_SRSw+=op+Ow?4!j(*KodSz2~oOzinZY@$X)|vsSddW4Lw+pKRv`wM&j<Y&?U+tg8LAc3q?R+#&0Nr z@~(XEI10uEJb&e+AQRt_qzVFqq}(Tpt`>j(!cyUQJAK?9Y+CS@dOGTr>txj0pE*ew z#Z6H%B6}=bk3F_jf4yd34fRw}`I1gru8U&-6nzsrU|yN7*&lmfxKoyN$#93n?wD!! z#8Ul`mFtIc50@EMsUBz{|5sJe{lcyBqHGQCOWv2gv%IstuXyKp=X&RPU-iD`o$p=X zUFcopUF==rUFu!tUG81seck(pccpigceVFT?;7t~?>g^#?*{Ki?_1tY-p$@E-nYG5 zz3+J6^}grb=H2ey;eFrxf%il2N8X*@kG-FGKlOg*{oK3D`-S&Q?{4oN?_Tdd?|$zA z??LZZ-b3EQ-Xq?xy+^&ryvM!Yc#FIzyeGY;`2I zD0@NK2g-g>4uEnHl&?TJ1j=Dhj)3wtC`Um#2Fh_zz5%5OloOz!twPWCTTs3OU?`KdD>@T4F3d(Pw6oYaWl;1%)2g)CyoCoDkQ2qkt0w@Mb(-z@vbBfky*3fSbT80j~`F2H;hI zR|S3}@M^%T1HTD)4d69_*8*M}cpcy|!0Q692fRM;2EZF)<6#uH)G znV5kG7sd~k$u)Op2MRC^**@f`MM8YZ_e6XL6VSr%;4AU*Vqen|Ad$Zk6Y$m0@kn?= zXXL9135ZanaL6+}TVT#Z36O!oTxB?hRVejJd;(S@%(gNpODfwkl1B-GN5OaE z<0IJ+QSoxTLt08P6=>|&>Z8bPboQPnlbKV`W_Vt*vW47B=AxT6 z4o_r$k#FTDn?qLXquD9`6|O1ull!zk$tp6R72y)JX?h-RW4ntyN#EC=z%|IZcxvbz zJgNCvGMGGv#yxk2_i4<47Y@@Eq#_CcHoW=v6#d_Z70Z))tI-?WuDLN6# zTH(o}!&y(R^t}V{{Ar3hdle{S&|?&NqCW_e`ma?BPnfnkNsk3*+*@1K3GUF9)N?h>sa-4>xewZy9fsX z=tECJ&kV=yTck5S1ATRjk_ZnPqfsk_Kc6ec2TLp`9?~t0{5j#vv(Lpr-xMuiRdnZ- z*`VBoXK4!$@w{|C(3mZ;vV?ChhZ5++DQ0GHM%jj2NS?QO~GvG%y+(Hye$NTa3m=6XRB+snN`cHJTf7 zM!b<=BpNM@mPRY1wb90CYqT@k8y$?>jN6SnjE+VpqqEV)=xTH`x*I)=JB^;kT}ChC zZlkx6Wb`qTjlM=dBgIHH`Wpj`fyN+Xurb8A#~5l1GlpZbUAmEBj4(2dEW>AvG)5Vt zjcj9#G1ka2#u>Rrp5Zs{HS&#sQD77rvn(H#Qg>jkk?*M-n_l0l?%I{uS^;fcYLc z#^qlFKMI&bg9d|t1H1_M3E(Gzp920Z@b7@12L3(pAAtV|{3qZ)13v@&7vR4F{|$IC z@UwusoA7hM{{Vg-_@BW40)7GbMc{t}zXbdr;Qs=@4Eze0y)BH0f@W&Omjs(4^H(R@XRg(oB;cHEC~? zK4;Q>#$}V%GOn1c4)(E@CUyM3rp_}gjV$c@!6ch(RA3YfSSX?(B8ZBh2o@}$AfTdY zBG`NHN)t5<0cJF&C#LtFY&M(TOtR^{Z?c=7xXGGsdS0IAz2573=L0i*ILsO5n%}wS zfBxsb(T~xm07M^p3E<=fAl^Dias)v1qfY{e1!z2g*yVtam*cS-YRfEWc3?*YUl2dAh2q6{v@b9xA^@QP5E`^EfN%z!+|bVeL0fgi3YyuE=0Fn8>@hI@yxZTSQ+5h)= z&;J*j0{i~o7e{6{;2>~lC2;6}7XpbBWd#+EIa-H4u5naH#*PaZM<2%;7vqTi6po0j zXk5vZjwyyIXQ$ko^4Zzh+0&Wi9Of)>p5|QT+~{m{xT=;qd_Tt>R++ob51pSlKX?Au z`9J43&hMSaoWD4KbN=aqaGBsT$z_U*iwn{PaB+9>b)mY@T<9(WmsA(I%M8cFa;;07 z%WRiHmt`)?T~@kma?G_Ic1&PhaNXj%&2@+CZ?1b>_qiT)J>q)Y^`z@**K@8HU9Y%a zcfI9$*Y&>Z1J}o{&s;}bU%9?^edqeo^|R|Y*Ploy# z2m+TKLcmRj0C3Oo;{V9;!v6yK5;=-|i~N8bLrq3`qWn=5R4^(86^de_M5t_3KB^w2 zMd?vSlnK>~nuP*U1E@`?EvRj%9jINX-KagNy{P@DgQ&x(qp0Jk6R3x%|4<*%;~a4X z+7U@${x^!iIpPO@$CFX*7=Z^IW9d4_=s4^c*`A?40}}xsfC|t6I=}$JfN&rZhyr*3 zABY2zfD}Lk6ay`Q7U%(NzyL4^%mWqzYk_URZ@_+F7`Oyn0j>e}fTzH}ZU{FgH)l6b zw*WVmo4_sAEz@m=Td`Y}TbtWlxA|@h-4?qoaT{`5?zYcu)a{MiJGT#RV{V__zPf#P z_i^XC$GFG33*6(}6WoRFGu^fB{q9TMm$|QSU**2WeVzLT_pR(+V`?$=m_|$=W)5Z^W&vgeW+UbR<^<*n z=04_MkI5cWJX}1G9w-mM!`*}KA@z`XC_J(}lpeVr(>&@u>>jYkfXAT6T#xx43q5vu zJogy!c^0GAlGm?Z&R(uwC@;V(&@0M|=f(Gm^Gfhid8xe$yo$Vv zy-K~xy}G^5dtLMT+v|hJ;Tkf6d zJ;S@$yVSeRyVV=?9`HWwect~|c1!{P8aDlP)Y z#tCrAxKx}NmyVO-I&cPDH?9ZQhcn|WI4jPMgK_h5!?=^UKXGSp=WrKrmvC2b*Kl`m zk8mTn&prsBDLyD4Zy$;e&nL|%%SY`~<1^dG<^%ck`waLD`pom$?(@Xwna>NKe|=v0 zjQYIsdFPAujq>IC#`wni@_plc6MSd*!oCB(gTC{87x*snUE(|ByWjVq?_uAgzQ=rr zeNXz{_x=; z=lIX{pYK2Hf6xB|{#U#^o`es;2jVICV0;KZ6wkni;Un;Dya1no7vhug)A2L$D!dwB zfG@&V<6-;&eh@zozW~1ozXU&oUyfgiUyWajUyt92-;Cdi-;Upjzlgt#zly((zk$Dn zzk`2Ih$AErgoI>5DnU$0BS;7t1UW%Lm`<2U012}RHUdQGC(I$tCCn!*B&;Q@Cu}5a zCTu0_A?zg_BU~h0CR`<4C)_05Cfp_5BTgZD6LCaeqCb&9BoWEPAR>hrOw1%^6LW}D ziPMQQi7KL+SU_wit|YD|t|hJ~ZX|9dZY6Ff?j#-|z9Nni-w@vsKM===pNU_I--tg* z6jCrLgcM3*l31h&5}U*!C6P3wLQ*lQlvGBlAXSliNoz^#NgGLIyAU+^3AU{A8P#91YP!doU&>gTp;B>&* zfb#(t11<+#4Y(d~GvGFP0vRB?lRd~@R19C;dffILW^M_xc)L|#H3 zA}=SeBp)T;C;vl!NPbLyLViYm5jZ}O92gWx4WtFq0~vu~f$YHAKto_};H*F}&>FZR za8=-%z;%He0*3=H2i^<(JMdfJkDzfuPC?^?CI(FkA_Pqfnh}&2lpmxCDhw(PDh(B?pp8MBg0=*03;L7dPVu04QLq#riXX+FLZFZ+WJ(}~K?$SeQSvDoN+G3~ zQc5YOR8p!b9h5GLj$)vIl-ZO)%3{h=$}-9d$|}k&$`i^n$_vWBl$VtMD6c7RDeoyC zC}UJIHHb>3(x`MQgBnH+r$$m0)GVr!noFHZolc!eZKiIeZl~^~{zm0|sjtfo*76vB=D}rl+>w+7Cn}VBzTZ7w!2ZGNA zpAWtmd^z}P@b%!E!MB6&27jQr(J(Ymnl}wg^P&0CqG(2%iPlS-MFVNGX;zw@2Ga&; zb7-q+Yia9gJ7~LT|Ii-N9@C!Ep3_EXFKPeLUemtQeuf}I#)r6sAVa)Da3Q`S{vo^& zen?zMLP%mrQbzmZ`aJpq`Xc%g z`Vf6R{RI6K{WSe7{T%%Q{Stj76dy_q4G0YkrGy5DhJ=QOibG36%R(zct3sZaz znOm8Am}i*hm=~E>nAe%Nn0J}?nGcwcnNP#UhfNHd6!vS_lrWbtWEdq(5;iq#Mwlv0 z9aa!l6jmHo8dew99Cje=c-Zx@dtq~^?>!5^^7&bdc}IpddK?6`po(k zjtU3DG2vd}xNyI4LU=%UPdZ}`#h>>7Y_Dc2|_FDFO_9pfT_EYwA_6YkWdzAf_{hs|f$|Wi|DkLg2DlE!TH90CO zN*)D9&5p7~K~eotgHiLN7Dg?O+8A{z>U7lEs0&dSqb^5Xi+aUz<9KkqIX)ae4uM1D z1aK-i)tnkmJ*SD&%IV;AakLx*$HeL7m^rgKc1}NMkTaLFlCy`ik8_Z7gmav8l5?7K zj&qT7g>#)V!g*7qOs9F(SFf{Xkv6gbWpS)IzL(y zT^L;)T^3y#T^-#LJtul@^!(^W(Tk&(MlX-v7kxMSUi9D5527DOKZ|}5gN=!b;l{+o z@M8oq@iD@fyqI}03t|?9>67w=UkF4T;33G9d9S^DDMjII`0M{A2tR{FD5v{HOdE{FnSu{#*VB{wMxd{tp2{fDw2JZ~{L8 zK@cDa5(EqA0;V8bAQKb_3I!#CQbCiTRnQ^O3Kj{r2(}7#2zCng3l0g63N8pP3$6)n z3f>FG1YZQ-1wZ1(#f^{iiIc}=#VO-*q98FPQIR+;ab{v(qB^lSu_CcGu_Li7QI|L?5l&o~xF&ID;{L>w ziB}TeC4Lu97J3N1g+4-mAyG&Zh6=-k5kjtzCrlDLa>Wa)gv~;oa8S5cctChqcuaU) zcv5&;cusg;ctiL|_*D2p_)<73d@KAQ97{qag(XEKMJ92Ql9E!B#7XH%%A|&*=A^cy z&ZMp+U6L_rQPTdTgGq;zjwTH!ok}{L^fB2z*)tiN?3?VDj87&d^O9#KtCH2p1QL&c)ZbGNrd~+BlzKJwM(VB9N2%{qKc;?8{g(Pegc1QFjL1ub712a= z5mUqxMTp`>3Q?9QM>I_|LsTqk5w(drMLLl|)GwMNnkQNyS|nO0`a`r&bWn6ebWC(x zG$MK_8Wp`2y%$duPZCcNyNXd_f|w)@6jQ}CF<+b^R*193IpS&J7IC|{ORN_g#NFav z@sN0hc(r(~c!PM8c&qr7_@#JM{8s#4{89W_{6+jN4V&hhhEF4<1*8S0QPUFAO47>H zs?uuG>e3q1n$lX*y3^*Q%}ZODwm5BR+P<`dX-CqIrwyl_Ogo+SDBU|9m+qVHpH56C zrw64|)7j~X=~?MH>C@6@r01n~q-)a+>8A9a^uBa3eO3Cc^gHQ)rQc6~kp4LRY5Mc@ zG086yF9}ZKC&5dIk}yevBuSDg5lhk~Qzhk+DoL%RUeYM(lB|<#lx&e~m+X@KF4-$N zAUP~KCOIMbQ*u^vL2_AgO>$FmM{-Z{kK~c$iPT9tQ94=bEOn70rGS(sO_xfgGO0qE zEzOlqld7bhQk~Q&?UD9MXGty6RnlSUN$H=`Gt%?YOVTUSQR!Rh2k9s2XX#hzj|{I2 zZbnQ-Y=$5sAtNaxB_lthD?^{roza`omtoGBov}LObjG=iiy2oku4UZJxRr57MwF3d zfikKrM8=S@WD&ARS(GeV#*+zT39=+vsw_>GE}JSVmsQDXWeu`sS(~g=rjr?E1G2fY z1+vAmA=wJqYS}v3M%fnG8QDGAec1!qL)ob8t?YyBlN=$RAfF`1$i3t^xt}~n&X>o_ zh4LhMid-z$$ou4=+$x9U{qjNiT={(Yefb0VL-`Z=bNRpW|KzXbZ{+XfALXCqU*$g( z2*m`&B*kQfhayN3te`8Hif{#6!By}S0)8CdF384#gqGQN^(0l;W}CnPNooO7WlKwc=f-OJ-;$Gn17Wkr|a4oyp6b znmHp=m8r=r$Sle%&D3Wu&s>?gI&*F2hRn^GTQkpQUdX(hc`fsL=FQAIneVbNS)N(m zS-32}EJ7A3D=I51D<^AO*37KDto*Ektj??@SwmUNvsPxU$y%SaG3!*;nXL0!m$EKr zUCp|YHJXjicFV?OduC&^eY5?udD(*OgzTj3s5#{Y1WDYvVEeDh1m4nOi&GF9>a*A_Gb1HJWb5`Z7 z$yt}PA!l>WwwxU~yK}DOT+g|cb2sO&oWFA(=6uNw$c@Pr=Sp%ja^<<1xyszBxifN$ za?5i&a(i;ExeIa^=MLqr%iWl}C--pfsoXQU=W{RRKFWPL^U=(wGe>8B%$tzsoQKK7 z=8^Mwc}aQcdDHVWc`bQud7XLMJbm7RycKyH^A6^n%)6X-KksYa4;4Z+K{Zh|S>>z> zP)SrWl|q%J%27>I%~UzcX{s7kT`IlGqFSihsM@01uG*>EtvabXtvaW=pt`JjsCuG$ zt{PFjQvJwBw@viueK z+w+g+AJ0FTe>(qc{^R@)`D6KC^1tW*RJ*AC)C6^aI#5kfbJa0wzB*2wsLoO=)l=0o z)OqSsb(^|FtyLS;-Re2&x#|V#Md~H$o$BN26Y4+JXVmA^57ckf@6}`KFY50al!l-Q z&;)6y8k#0jldMVAq-mrYxn`=STvMs3(bQ`iHNBd7nuVGrnjy_{%}&j6%}LE^%~{QP z%|Dtqn)jM9&1cQm0-%6Y5LiGhpcT*y;tJ#iSp_)-QwydSR2A3?<`?{4aHQZ&!TEwq z1y>7h6x=TOtKjc~mjyoyk%g#2w?dCX|H6R6pu*t7kV0``QDJpqQz2Bir0`JTaN*yD zFALukzAqdr{8sq0$f;;z5u+%zNM4j%R9j>%f{F%;<`yj|T3ocWXm8PlqJNA2D|%D( zzG$rIOVPLDfMQ{>y139$F`(SB#-O&izIa~oZ^f63uNB`czEga!_@Cm3#otO$CG-+z zNq7mngj>QZ;g`%PDJ(IRm`eIez!GZ-RMKCvrQ}S>`I1W|S4(b`+%CCW^1al%lwHa# z<&_Fb6H1dxQ%Xxqjip1SD@s?Ft}ESGx}|hm>DAKLrSD2VmVPe%R{FCHQARFHC`&3! zElVqtmdVR9%bLodvdv}N%669RF8iZwf7!vZdu1QX-OD}8vE{zy_;OM?xtw1vE3YcA zEpI4qE^jOEEZ3GVFF#OzyZo>6zsnz%KPi7+K2m|MU{**fWEGhe%8IEKGb-{bx+|7d ztgKj5vA$wc#ny`L6=y5{uJ~5*v(l+@V&&vY=StT~T4icwTBWp7UYS*yQ#q}&wz8{o zVdav_WtA%{*Ho^r+*o<6@=@i}$`_R{D@QBeR(_})tMaMhRwY-7s?w`6suWe(RSi{8 z)j-wUss&YxtA?spR2`_gRQ0Orb=AA7k5!+mzE%CK_O0eu$5#uhQ>w+)l4@CXW_5M7 zvD#iew|YVK;_9L5HP!2@H&t(~-cfz2`c3uw>aprC)!%Ez)r_zCr3PQasu9#A*NAG; zYcgt-HB)P5)TnASHM$yOO;63N8cU6>2CmssbG+tp&9j=3npZWiYu?p-todAvuNBm$ z*Jjo#Yp2%Es4b{1t}UyrtgWeqY6oiP)-I@BTsu^|qIPxdx!PB?U+NHb6Y3__O{oLw zFm+yaxH`YOm^yx4e4Vf^rA}NYsjI9r)h(}ERkyZoL*3@OZFM{AF4R4$A6GxV{+Ie+ z>s{(m^=|cH^{Mqm^`-R{_0{!t^^Nr{_4Dd?)&E|Y@OQL(%Rp;wRKnPt=7A(_gf#dK5l*1I@0>8b+pZ+joudBme`iuCTdG> z%V^7Oo8Fe^NXA##R?^nm*520Drf)O04YuuQ`>kzH+rGAgZAaRUw>@r0v`=WC)IO!% zwH@8=-cD{0Y7cIww=>(5+Li6O?bF-y+STp#?Tzg%?d|Pd?F-wNv@dI4*}kTIefy^N zOYQ%4ICmgBfDTNDR|l@cuS3{T(4p_>?&$3>cg*gvcfcJ7Iv#ZV=tOi*=$zC!rPH+& z)yeNvb!s|`I!ik%I;%VDIvY9{cOL9K(|Nx0Qs>pq8=bd1e{>%4ZYc7t}4c8hkq zc9(Xyc8_+i_JH<~_K5bFc368-`=|D-_Pq9@_KNnp_NMl>_OAB6_8;v-?Gx=Y?TGfJ zc2xUD`(8Vy{jB|}{jM9Q8?XCCH(BSbbJd}B?mADMx6ViBuOsLJbb&gGE?5_$W9V4A z2pwC;(M9WGbplV}P6Y0`)Qk`6vsZ;85b<=b+bt;`&SD-7_mFg;VRk|8oy{=K$ zqHEK2>a;q&&Zz6r_31#}Y@J=#ubZQrt6QL3tQ*oT*R9g6)vecU(rwl4(H+p8&=2WX z=vV32=-2Bv>No4R>bL86>VMP!uKz>7Pk%svNPkp+Tz^9Ur~Zuooc@CTlK!gxy8fpA zj{YzGef>ZBNBSrF=lXy3uk@q(H~RPbG5r_)H~kO8IEN*AqG7VbH0@$Q82|&uQQh9# zfHU|S@CK5BYzQ(?9VOT428JQb5N==_xP}-5-w^MxNhcXn3?f6CL1M@-$PHNrr6Jca z%`n5Dav1Il4aJ5sLxrKrQ1d@_Ylk1H)nP5t8uSLE!%#fSU~xEvAj5!R&@kVy$gs+o zX;d0>jnj-Xjrm56vCvp-EHhRZtBf_qI%9*e+1P6AFm@SrMuX90>@}K=7NgAw83&Am z#`(sD#wEsO#udg@#*gFUBuZuC6vdDru!cXF>+Z*VWKH?23fx1_hOSJ!Llo!`5%cX#h_?~UH) zy&w7}^r8BQeT+U0&)R3}gZmctE$Um^x7M6zR+|gWCFXK-mATej zZ*DTTn%m7?W}Vq+?lI3YgJ!E4GWVMY&GXC)&5O-L<`w4E=5^+c<}K!J<{jo;=HJbG z&HK%V%ty_`=2PY~=JV!D<}2pw=3C~w=6mM9%@56w&Ckpu=2zxX^IP)=^C$CH^AB(w zI3D~3{1tQoQ6K=igPtH3^ab%C2_%C-U@%ArnIH>{0HeTYkOvCDcu)wYfMQSr%D_x8 z8_Wf#fiuB;umCIu%fJe-3akO^!6vX3YzMnQJ=hKQfU`glw1RdJ2Iqit!3E%Aa0pxh zt_IhE8^F!rHgE^H3;Z423+@LGfk(mP;0f?g@CkAT5B!-QsD%T6`^d3(-Qh1X+SDAr^*(Wr?(K zEHM_oCEk)~Nw$bAX%?wPZppM{TXHSaEqNBTrNB~bDYH~sYAp4ZCQFN@-O^>zTe>a1 z7PDox#b$vmb1d^L3oT15LzWemRhG4u4VKN8ZI(Z*wblk}v$f6IY1LVc)*kCDtHo-w z!qz#~dDey2CDvuumDV-Z_0~<+t=1jZ->iGA`>Y48N36%KC#|Qg=d2g4SFG2qx2$)q z_pJ}CkFC$FBi2{e*VcE|kJiuDZ`PkSC)-5ZWSg@MX#;E+o0kn|^Rp3b0k$Apu#IkG z+QMyY8`s9O32X_rBwMO2%_gnWLsfdZChvCXxn1jZrf%1-L}_uz;@Vn%yz=|r|qomg6*>H zn(e0Tj_sc9AKN3_Q`-yMOWUaJt?h&DlkKbRhaF*`V4q~4Vt2Kp?e2C@JJ#-N$J2Apnbl5k$tIsxqX#=t$l-ivwfR=r+v5m5Bq-mA^TDLu>F+% zjQza*lKravhW)nvFZMii9{&3=|8+L5WZ@B!bc*DI|w7AtjUxO@n4aDo70#Ld8%S zR0&l>wNL}p1hqo#P#2_w3{W@J1NA{5WQ8E89~y+_LyMrL&~j)Mv<6xSZG^T!+o7G% zZfFm*7dikPhK@qVp%c(4=rnW=x&U2;`+lUN9E+h4C;ECc_js7^cGvI1G+}qhKz~gZXeg zoCqhuDX6}FnkOihEKs~;B)Xr_%eJA zz6sxk|AOzs58%h}Gk64k36H{W;rH+u{008rKd#@Ye`5dS{we*g{pfzTeoVhtKd#@e wpU@xNPwS`mv-_j^qx%#4h5af0vi|=~13Ye=)BjYUbZo%k|GWQxpZ$gZ2i4&cWB>pF literal 44021 zcmcG12YeL87x2vN+}>W@IeJq=7ilSUEc7A}N}{J-z_iI=_Goqg}kdo!<18xzXT3g^eipCFVl zq7hCUL?=$-9$GIwFJpYxlwjVFdiW=tm79}VFF!Xlq+afr3Bio~@MvKsr}PR=4`z0Z z6s$n#-K*Xw262t-*{PXbEHgbn-J&}K{B7bPUXnmsl2+tqatrB5x{{~JbL4e$jC@84 z$v@;jRHK|asfT*0Nd>J;YtlNjE^SPk&?MS|-b!zyJ?ZVV7wty}(7|*F9ZpBlF*J)# zpp$7Hola-ax%5tYFTIaGOqbBd=?c1*uA`gjQ}k*2Hhq`AN57=s((mZc^c*dsztO+w z-}E1PfnH_~X41czVAb(&4R$??WA#`=){Hf0tyvp(8|#4A9;`3x#|E<@Y&1(_<5?D) zKx?pUmdipcpG{{Lo5z;0N7+iYlRd+pWv{UV>@a&DAs%BV*crTj&wj_Y(bE zb7>XuZ$+(!R#U61)zcblO|&Gfh1OoXS?i*8)p~1vw1L_nZKO6z8>@}evbD)to>rjE z(q?OSX?JT6XbZK+w8yn|5{tG;+oC;%*XI?~1KPXVA?<|rf%b`ZM*B+pTKiG^N&8*< zL%XP5;x6vxeqL3+$7}NIcx`?oZ^T>hR{S<~uQTt;d-8s~KOe$}@?m@gAIZn?EIxrx z;$c3G&*S&;`}w1MKYyPehZqqgHlMqGGGMSX;xu4n4w^;|uq&(vq@^Ypv)2lR#dBl=SP34Nu$Mc=LO z(f8`l=+ElU>HGBk`T_lI{T=8S~NbMAM(=6v1xw(~vb zQRhkLDd)$|&zxtS-#E`Xi=4kW|8V~4yx_cOFr&H=XVf-sG#VN4Mgm^j7`GW6jP6Dc zqp#7=7-CFN?cqb@nrsd4^ApA#US!-UIfgCcdt<(Fud&d0#8_&qG@dF`_5hZBySVHj z<2~cJ@v(6l@qA%?XMB&>UyQ$uzg@&dU53l$Jn0gys;+9zbFLd)4O|Uf&0Ni0ZDKj< z>gej^>gKxL)yp-&mEs!i8sW-tWx6K1vRz?UzRPmm<67u?(DjgOsp~P~veR%IB$$8hyu2-C|x!%CfLHxYuI^p`j^|9-;tI+ki>#XY=*N?8BT<2ZC z;hCg1J zt@du&(nC_<=O4ok9c-@p7*?l z*Ug^SJqPjryPiXy<9I#c`M~qB=QMr_@$)r)zQ@lw{QTy*;JN6z9to$tNJ`ykT1%DX6XUFKckeF8sg@Uzjo!#&!& z)BBY7S-d{y-RGWc=V zp}0{r5;uv)qKRlKnu+EjUL=S_ktAA(mZFttE!v2-qMc|jZWgzYPsFX_Hqk+J6rDt8 z(M5C>-9&fML-Z84i(YiU=q>t)WYJgj6aB>iks?yXKru)R7DL2PF-!~>Bg9BCN{kk1 zB3+CT86r~z#aJ;;j2BsAf|w|>#Uzm|t#h(%(tct|`fmWW5hQn5@tDjpNd z#p7ayctWfcPl{DywOAw8igjYW*dR8FO=7dyBDRWcV!PNOc8aIO(_)v{E%u1L;u-O* zcuwpS`^EF(1@WSINxUpx5wD8Z#OvaKctgA?-V$$%cf>*Qt~ewP>+8i4@t!y;-WSKj zadAR?AWn+Y;?sfkatgAuKNA&*kNAm61PPD|q#~(ADw8UtDyc@QlNzKZsYR|M*OMDa z9H~v}kh-KEsZSb^hU7-lh}=XPlP07oX-1lpc;yiGwVlI3>DdKAbP=m3r*zE72!_L1 zW3sZd@~3ys&B;OMF*nb4A3JBKhr_|JU3yq@O5d!^FuIiC;mIk<>63!$`^e;!NHO`O zEJ*o|4Pb-~Ac|WgrwqzM#M!~YSvi@xQ^SMmWk`GypiKt)wDOliWxs{LA~mp)RlS1# z7y`THA%#t!`B-pJa>{_*+7Zjii$?B!gs< zAQ?->k?|ypOdu0UHkm|nNG=JH$s~`2Nj@ncQ^-^@jZ7yq$V@Ve%qDZl9mFC)=8`+f zJaQMgo6INokOkykav!;$JU|wb2gxF`m^?%tCQHa8WGPuj9wm>F<>Ya)f;>T1k|)V3 zvYMGO$0UxST3;1z{0=^fK3H9 z9oS4@vw__K41nDU>@HyQfh_=bAFv02JqYYEU{3&B4QxHI&A_$;dm7kYVEcf*2<%m0 zZvcA-*kNGr1N#8jDPU)SeGcqvVBY~d2kcj1e*(JI)c_2wA(>T0c{v)>7WHc%K~i*Xm^5k7ibGWdjPZtL0b&k z!=Np*QcsYl$u4Y9yU8B1mpnt_v72-WhV!#>((|$34Ngw!ojxX*jSVs-w;(SgXt}Ly zYm&u2B>TvI@;rG#^@114OQ>94A+M6xus3v_mLJTKktnv%l!7r+vVv1>JtBMDfM7V3 zo0A#L!-A?!r)13tS`#dfMXd4GL@Uc~r3c8)ZR8E|CV7jzP2M2~$-CqbIZTd__sCJp zYgMEptv4>||4v$3LX%jXJEVpX&Jqea!3GZWe-HHk}T z9Y4EC+{}bF3HZIu?Ad3?=j03WCHabcP0o^U$hV02JMumGf&55*B0rOJqzLPAp8QIF zBfpbB$e(!k?`Tlob#g)0l=SRiPCj;Y)M45A!8~Mqu;(PyQAiuo8_LbgM?Okrg2f_Q zQRvmaP`)$QWn{VobJVhfO9DK@0DxEqwyWa;&Glclv)Bdp=V7Fe^S1tuogEl{<_ zYiWVBA@-vyT3|$swXi2uwW^F3H3tMI; zW#-H_iA~}X6B1M(iEktO%k0@FX-nEF(nqRb-}sTXrftYM+K#+MZzg}zTSkijGAlh} z;<&urf}G6Gx!Ji=Kcu3*P~WZERs(EwaoFn{Rp1>6wldK#FLzQXKdvAg%!?bFo7e6G z+JSbYooHul3tebe+KqOnJ+PlgfvKx(8L~M`1Sz5Pj3D-o&Y1hk&K;*3O+Blw(5*UF z{Xr?y!}-BUBQk6wu3k7!d(%z`y$?-RkOz;?$`AI6Z`R8GuPqUpRo`w2{b`3av;%1$ zOH>L?wTZHBv>HkrScwSu;)+I543#K4#giz!5p?7_I?`^Fste0Ex@85kGfP_EXqvWx zrqT3h`-?D8l^TIfxA>LvgYzJMdeQEnd5?SU2-!f#${oRm2PNP9u)HfJae*h(=+4pQ2mxi+T9V-7AVqMNYYv=1}Ur1)}}1!T8#pI z5KUV7l(j;mrYH;8lof>jm9AwG!7W#GwUL5ri!7fxvo&_U#6-IvN`|$%NeFhd+{SFFG3dZoWN)#-?xQ7UR7%46C#McfX$QxSKI z%NlIm8etl$2_#8c(j>I1iAbG{alSz9aF%>achTMC2f7C>X%*BKd(pOjPQIkikZvg}b3@kuR#3I_Bl&PVJW)&XT&`5*07wfAczC>L6$Z zeQt-#Rwt{YRV6?dS%WGVGO3RK$ZeKziC)L(JE$y7dJy%0vv7W1R?ax9gRLG8(Zg%$ zVR}T`B23Rm9d%Vk8ZGtZG;-l6eV-nq$LR_B0sWAEgz!#cy+5X>kprL5Gg$wfw2*#I zzrfn`$w3vKlavPkMMFszOy$yryR5XG`~@Z;rBm$fjsnM4pSf)2oE}HwzM@~#v-BI( zJW;-ft=`r^tIxnL=~>y+kJIl_o{97a`Xl`beHS!>%BfVUx0}`7>WaiEj5b?P1gZ&6 zO3#~UGwv69el0yuf0c|whslnaqF}JrsOC!Fi=zBpqO^KS9O_L;pQ>O)`hn4*+|a;~ zl)hcnb~eKQ(A{gWEw;CXd66C*);E8AFi%?Xu#_goVvLZTYw3%OF%6qSven;8jfyTt za7>Siju|n6+t2(MoTa9Z!*5cjNEJ#Tk@Kt?!Wa+(BV}N65XXd6 zMOaN%Yb~qAu2ZpQq`_g+PM?k}S692(4RqHUx(n+oLsnLs)!E4Eu(~A?T{ovZhK|43!#om{R_U2~t_KRbEeGOX*Ww zi`T=FFkUEM#SX`aL8;ifeRHy>$4wm{%qj6vwzGM8|^s+_=187(Mgy%rqMwss1R1IVh_?w!{{;Y$Guz#mivnngo?ej$Wnq z<1naGf@&s7nuH-~MtU|%Oj3qkgiII3A*o|A-oX1MG8{IuWeaIlTC|yMciigqU_|$_ zNi1g_%duT_=?bc}i|o%M#&!?p1oP5WWM#Mi$t-Uz%VS}wZYp7nk~OAp0jf@PN+bC( zZ2EY!_-Ao6%?j8Q8BJTcKzo&mm)Q(9lQd(q$*Y(}ptoBgOpVYU)0K~4sm zwM-SgWAt4awSO=hb9%wd)bug3y0%qBzq?Cb`qXfV^Nn^P)sBR*axrDYE-TN<#eaop z-KsUO(1Vgz1=J;vtZzZL8WD<3N|+4{sfV;6st?A*atvDIu1 zTg%q5^=t#%$TqRfYzy1Uwz2J2fpx#N$Xa4OYOS!=S(~h9t>>+mt=Fw1*2yvn|F~i! z6tz4bkewUYe)bVN$xgA4*=eNZ4hyV#)_iM$mHJ7@#}OCIKsT1{oJ2 z0b9{`*d2O?yJUq`LIf3d&u~gGl#U*8ZXVKC#p>e1KZ-z?Wqn)%JqkMtnf(}3we$Gu z+?cA}iCrlL!?3vYF!o*a#&Ytp17`>S4c;Fy@Gc;{yJFzoJ+fo=)b#0Lgf}s6Qt*GQ zv}Tm4***V4iRLMxL<``n_r_3i-&o9|=3`zoNb=$uT%odML)EI-DqE|r8tMa5WiPZ9 zXM)m}t(DIH_o!LBfvuK0TdNa^vL3|l(x?JKM|?z=XcUv5d!^!5_!~y>-=y#_miQmC zO-5^}tQGpU{~qLN@oY^glkqV2)kdQ_W@eVC-*R!cmbl3ot)0UCh%_2Y?bt3sVr-Qp z>z>%^TFtxGfvvrY)mVnQLs^X*JLiU`muh6P$;F`q7Z=oF(Ks|B z&k>5oC!{=AMrf2SQ=$sn6WhuVzD2p=pO&VjYh&1Y)u4jdpjKO}tS3?LHmV>x$uvuA zl@~%cC@#HNzG!*T*yhQE5$5)gnHjmEtRTuihTP&vQ5!EKMQvi8j`5L{p0`#^Rz#bm zGq4=5dTFzUMmUB?aN+Y-CgwK%xi zQMTzSEoVPEH>%}S8!Us6;w)4K<~GsK42H{XHYX$9{d6R<0L!rZ=s3thepX^t$yHcBW$G7a8W*Br|0H-81CG?qOW0_Ig3~FkS_L zA5`u24b{Wmjr1^Hjh^K-tV7tt4qw^B`1RqF$pM`d_|&Uc<9Vdvx++LcA-1h4^GXUV;GH&HBpv;)DwCFu3FSq#2)rq21Rqa_t(4 z?D%xDb2Fd8XYyHmHlM@q;1&ly*E$Q-53~Z%DnM%hZ3(n3&|83ZEF%iUH<{0mh~i#E z`IYsJ6vel8^GuRXO)I5+lTa*}-Jboi99rTJ*n>+LAFJUdzK}o27h$veiO;}<@XdTF zUxqo!Zn=4wLcmc`pe~?Z>pKkJs#s@TRwI?vT{8JnNA+b<2Tnc{0sa_Y&L8J1_!E33 zf0D1_tN9wfmaoI=ujd>1M!tz}#u>9)`8K|t??8q;g`Zvc*~9npXZW-HIsOzTqMPMp zWvg^%GfYw7^p>%h&d(2H)~(r$U|z1ur!@yYXxtSVIL*0ov-e#G>jI2p&K)9JKmNljT z4U8<5KR&l0jKixoF;P%9F*fPr)5Fn1VW67J`rG;wr~@dqh+z@yci9e{Kn?4A>o=gp zI8JWm&m*T^;BWGyva%C#R?uc-$}VKrE6B9h`0L1^9oBF7?w{6Q2=J118Q(;ZoB3P( zZT=2F$lv9M_+fs8zi0hm{b>DU{cN4HimYF(^VY9G8Imi<3qx4F;y88iq^z8*Nd=Qe zMOkVK9gEu4LFso2j!&PGm79l-axoh+?UXwf9)?00VN0r;k`%^AIK~+6ekG<+Q9jui z2BWAX;{HuO;-By{{8RoJFGL1>PR{c$$lr87PObimoW`6A3N0e4S##>WeEH~8hV_Tb?%m(; zZ`bf|WzwpKoXw%6o?I|#OfU}(d`57*ih24c1hj9D^B+-h9N|ClpZPg#RvnAmh4mln zqV-Sz_^2Sy^I!RIt5#VTY!rX+KiBX-)c|>yEHw86Ja)sY;j^ciHTAi6&;oAClhNd{Kiw*$;^+_m0B@FfE6@I8xg$~)DgN);>g z3Gx30|1Er$#P8@}8%Cg&(Hh7I6H^wby|6Wxnj}&lBf3gb$Qefuo0O{PdIGIxhq?(e z1W$~RqPTJmvvM5Ce0KTHC(!C>sigZkDg_tP#HHuUG2yH-2^GbnK@k=WwdtywVRa*QJ9_#E3(IWlbP1oS$bv5Irr6{D`vAUSXt-!aZH z-jU^)APtgZk|T#SbA$mdT1O+?$*3}|DZNkChm`Uct*=uJ|A$D;xVdOgra zKog=W+%eTLmml4Nuje4(nFw+m0z~!g$X5liMIx*w3JSuFxAl0!7RQ~Ad5*grcRS`g z?r|(|-0Qf{aX-)-fW`r>4YUr>xTURQ$Ml6 zMC@3x&M%`*9GDL$e@lhSpF(xA=8-b$#7K>A79Z7Zj%AKVZQT~DFrKg#Msu9!`Cn8@ zS^OI$e)J8>!+#93=YJUGHS+C|#`Kikm|CgE)LQlSmNJ}6R6{yy0PJ6S`!oEG(!IS6 zx?EPHAt`ncRc=pzF@pIO8*@8_8I_`(^d{X;98t2fb8;fV)iX(sH@T&72eGGPCJE@x z=FpW9S+QdD-1 zq0$Z|652}jc}-M)!{=U&$}ZA{R$+1t9L3JdFHX>f?IBH!I)a(Q>z1=ejm6}nJxfoH4i%4NInFzNl_Oa|`v6^CW+=cLQ;}Y4q#c^3DI*woIn$C5HuIo-66-{5DDL}C#4w9i)ITh$#K<@>* z6zK9Yp#joyUiaDUR7b^#)ZqX9R7>q|hfE3BI$PN@UJ_+)=IWh9uj05Y8)`IG13Cc7 zkqxy%&m8oyWU?W(bHBKLxq10l%2^R|U4)RhC?Tnekbx1?ED5oLw}|4uYM7$emtl%d zqG3u@`45t@3GxTk|7X_{is((qX}y`=T#wfi>`+8+X@??uTfLp$UTXd<)cir9XkaD) z9j_dBpktz*JJ7*E(}9kQDt`S|y$3(K8Q*S+a69SEq|(>h>j|pZ7zHR3A=(Om9D>}e z_tbCKd+ELPK6%(mwJ+>^Ik)_~Vz8q@-Y&h4T*GtbPR)U{scW@mio7*igTXk`qUxYqc%XrzX z?STyRi4v3k)e+Grqv)mZsXm4Ls!xqh57uV@#fe6C1DGgktC;j|In@aJI?gd7Bqo(~ zg{o9ES`ixWjM5lVG)}gANuo?a*xpiWB=VZHkiI}?SJOfmP3PKLs7mQU`bp`bI5~T{ zJQ5d2`p=RmiTSGk;EXGrLYg2ua-wZ+ci=>E)CKc^T0o~^7>1b|eJkm(LEolt*LUbU^{4cwflddC z!kr0p7SP#1=U7f$DAO^7souDLUAo1EFv<>&$xYA0u@po!S|lU~hor`J#i9IAxFB1O z=c7sr=ci=kW#QD+Ncle?Gm4kn)C(MxEdM5adbq{Q^+^%uxj`iuHYc2-9EMEc7p_`mg6_1E;* zF)NUQIgFsZ=1v#i0qU$famD&2Qh{O1k4)#%-;mR}fX!qc)t}RvS*tG}+pBnNk~%Dz%X$1Fi_O)UfQ; z?Z4BfJEhtv2}vJAx5H|bD=L%DY5+fjOe9&jtZ5vH!-Y+`xUeZ7zsbc->GξW7jK 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�a^gG3f6`4 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 diff --git a/macosx/PrefsController.h b/macosx/PrefsController.h index 8e07c0641..a38cb12fd 100644 --- a/macosx/PrefsController.h +++ b/macosx/PrefsController.h @@ -36,7 +36,7 @@ NSToolbar * fToolbar; IBOutlet NSView * fGeneralView, * fTransfersView, * fBandwidthView, * fNetworkView; - IBOutlet NSPopUpButton * fFolderPopUp, * fImportFolderPopUp, + IBOutlet NSPopUpButton * fFolderPopUp, * fIncompleteFolderPopUp, * fImportFolderPopUp, * fDownloadSoundPopUp, * fSeedingSoundPopUp; NSArray * fSounds; @@ -68,8 +68,9 @@ - (void) setCopyTorrents: (id) sender; -- (void) setDownloadLocation: (id) sender; -- (void) folderSheetShow: (id) sender; +- (void) setDownloadLocation: (id) sender; +- (void) folderSheetShow: (id) sender; +- (void) incompleteFolderSheetShow: (id) sender; - (void) setPort: (id) sender; - (void) updatePortStatus; diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index 420348fe8..341442449 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -44,6 +44,7 @@ - (void) setPrefView: (id) sender; - (void) folderSheetClosed: (NSOpenPanel *) openPanel returnCode: (int) code contextInfo: (void *) info; +- (void) incompleteFolderSheetClosed: (NSOpenPanel *) openPanel returnCode: (int) code contextInfo: (void *) info; - (void) importFolderSheetClosed: (NSOpenPanel *) openPanel returnCode: (int) code contextInfo: (void *) info; @end @@ -396,6 +397,21 @@ @selector(folderSheetClosed:returnCode:contextInfo:) contextInfo: nil]; } +- (void) incompleteFolderSheetShow: (id) sender +{ + NSOpenPanel * panel = [NSOpenPanel openPanel]; + + [panel setPrompt: @"Select"]; + [panel setAllowsMultipleSelection: NO]; + [panel setCanChooseFiles: NO]; + [panel setCanChooseDirectories: YES]; + [panel setCanCreateDirectories: YES]; + + [panel beginSheetForDirectory: nil file: nil types: nil + modalForWindow: [self window] modalDelegate: self didEndSelector: + @selector(incompleteFolderSheetClosed:returnCode:contextInfo:) contextInfo: nil]; +} + - (void) setAutoImport: (id) sender { if ([fDefaults boolForKey: @"AutoImport"]) @@ -508,6 +524,13 @@ } } +- (void) incompleteFolderSheetClosed: (NSOpenPanel *) openPanel returnCode: (int) code contextInfo: (void *) info +{ + if (code == NSOKButton) + [fDefaults setObject: [[openPanel filenames] objectAtIndex: 0] forKey: @"IncompleteDownloadFolder"]; + [fIncompleteFolderPopUp selectItemAtIndex: 0]; +} + - (void) importFolderSheetClosed: (NSOpenPanel *) openPanel returnCode: (int) code contextInfo: (void *) info { if (code == NSOKButton) diff --git a/macosx/Torrent.h b/macosx/Torrent.h index e5e28e960..aa91e429f 100644 --- a/macosx/Torrent.h +++ b/macosx/Torrent.h @@ -39,6 +39,9 @@ BOOL fResumeOnWake; NSDate * fDate; + BOOL fUseIncompleteFolder; + NSString * fDownloadFolder, * fIncompleteFolder; + BOOL fPrivateTorrent, fPublicTorrent; NSString * fPublicTorrentLocation; diff --git a/macosx/Torrent.m b/macosx/Torrent.m index 790afa140..2e046147b 100644 --- a/macosx/Torrent.m +++ b/macosx/Torrent.m @@ -65,6 +65,9 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 if (self) { + fUseIncompleteFolder = [fDefaults boolForKey: @"UseIncompleteDownloadFolder"]; + fIncompleteFolder = [[fDefaults stringForKey: @"IncompleteDownloadFolder"] copy]; + if (!fPublicTorrent) [self trashFile: path]; } @@ -85,9 +88,27 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 if (self) { + //download folders NSString * downloadFolder; if (!(downloadFolder = [history objectForKey: @"DownloadFolder"])) downloadFolder = [[fDefaults stringForKey: @"DownloadFolder"] stringByExpandingTildeInPath]; + + NSNumber * useIncompleteFolder; + if ((useIncompleteFolder = [history objectForKey: @"UseIncompleteFolder"])) + { + if ((fUseIncompleteFolder = [useIncompleteFolder boolValue])) + { + NSString * incompleteFolder; + if (incompleteFolder = [history objectForKey: @"IncompleteFolder"]) + fIncompleteFolder = [incompleteFolder copy]; + else + fIncompleteFolder = [[[fDefaults stringForKey: @"IncompleteDownloadFolder"] + stringByExpandingTildeInPath] copy]; + } + } + else + fUseIncompleteFolder = NO; + [self setDownloadFolder: downloadFolder]; NSString * paused; @@ -105,14 +126,18 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 NSMutableDictionary * history = [NSMutableDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool: fPrivateTorrent], @"PrivateCopy", [NSNumber numberWithBool: fPublicTorrent], @"PublicCopy", - [self downloadFolder], @"DownloadFolder", + fDownloadFolder, @"DownloadFolder", + [NSNumber numberWithBool: fUseIncompleteFolder], @"UseIncompleteFolder", [self isActive] ? @"NO" : @"YES", @"Paused", [self date], @"Date", [NSNumber numberWithInt: fStopRatioSetting], @"StopRatioSetting", [NSNumber numberWithFloat: fRatioLimit], @"RatioLimit", [NSNumber numberWithBool: fWaitToStart], @"WaitToStart", [self orderValue], @"OrderValue", nil]; - + + if (fUseIncompleteFolder) + [history setObject: fIncompleteFolder forKey: @"IncompleteFolder"]; + if (fPrivateTorrent) [history setObject: [self hashString] forKey: @"TorrentHash"]; @@ -128,6 +153,11 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 { tr_torrentClose(fLib, fHandle); + if (fDownloadFolder) + [fDownloadFolder release]; + if (fIncompleteFolder) + [fIncompleteFolder release]; + if (fPublicTorrentLocation) [fPublicTorrentLocation release]; @@ -151,7 +181,13 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 - (void) setDownloadFolder: (NSString *) path { - tr_torrentSetFolder(fHandle, [path UTF8String]); + fDownloadFolder = [path copy]; + + if (!fUseIncompleteFolder || [[NSFileManager defaultManager] fileExistsAtPath: + [path stringByAppendingPathComponent: [self name]]]) + tr_torrentSetFolder(fHandle, [path UTF8String]); + else + tr_torrentSetFolder(fHandle, [fIncompleteFolder UTF8String]); } - (NSString *) downloadFolder @@ -175,7 +211,19 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 //notification when downloading finished if ([self justFinished]) + { + //move file from incomplete folder to download folder + if (fUseIncompleteFolder && ![[self downloadFolder] isEqualToString: fDownloadFolder]) + { + tr_torrentStop(fHandle); + if ([[NSFileManager defaultManager] movePath: [[self downloadFolder] stringByAppendingPathComponent: [self name]] + toPath: [fDownloadFolder stringByAppendingPathComponent: [self name]] handler: nil]) + tr_torrentSetFolder(fHandle, [fDownloadFolder UTF8String]); + tr_torrentStart(fHandle); + } + [[NSNotificationCenter defaultCenter] postNotificationName: @"TorrentFinishedDownloading" object: self]; + } //check to stop for ratio if ([self isSeeding] && ((fStopRatioSetting == RATIO_CHECK && [self ratio] >= fRatioLimit)