From 5a2fd345dd33fb57795864490cea95d4aa613e9a Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Sun, 17 May 2009 17:05:02 -0400 Subject: [PATCH] Fix memory leak when switching between servers after an export is made along with some UI tweaks --- iPhoto2Ansel/AnselExportController.m | 50 ++++++++++++++------- .../English.lproj/Panel.nib/designable.nib | 13 +++--- .../English.lproj/Panel.nib/keyedobjects.nib | Bin 32966 -> 33207 bytes iPhoto2Ansel/TURAnsel.m | 1 - iPhoto2Ansel/TURAnselGallery.m | 6 +-- 5 files changed, 44 insertions(+), 26 deletions(-) diff --git a/iPhoto2Ansel/AnselExportController.m b/iPhoto2Ansel/AnselExportController.m index a77dbb7e2..01de285ae 100644 --- a/iPhoto2Ansel/AnselExportController.m +++ b/iPhoto2Ansel/AnselExportController.m @@ -106,10 +106,8 @@ NSString * const TURAnselServerPasswordKey = @"password"; { [spinner startAnimation: self]; [self setStatusText: @"Getting image list..."]; - [browserData removeAllObjects]; NSMutableArray *images = [currentGallery listImages]; if ([images count] == 0) { - [browserView reloadData]; //TODO: Show a panel showing there are no images? Or just disable the // view gallery button? @@ -148,6 +146,8 @@ NSString * const TURAnselServerPasswordKey = @"password"; { [NSApp endSheet: mviewGallerySheet]; [mviewGallerySheet orderOut: nil]; + [browserData removeAllObjects]; + [browserView reloadData]; } // Put up the newGallerySheet NSPanel @@ -208,10 +208,9 @@ NSString * const TURAnselServerPasswordKey = @"password"; [self showNewServerSheet]; } else if (![[[mServersPopUp selectedItem] title] isEqual:@"(None)"]) { // Connect to a server - if (currentServer == [[mServersPopUp selectedItem] representedObject]) { - return; + if (currentServer != nil) { + [self disconnect]; } - [self disconnect]; currentServer = [[mServersPopUp selectedItem] representedObject]; [self doConnect]; } @@ -290,7 +289,8 @@ NSString * const TURAnselServerPasswordKey = @"password"; } // These seem to be called when the plugin panel is actived/deactivated while -// export screen is open, not when the plugin is finished. +// export screen is open, not when the plugin is finished or the export window +// is clsoed from the Cancel button - (void)viewWillBeActivated { [self canExport]; @@ -450,8 +450,10 @@ NSString * const TURAnselServerPasswordKey = @"password"; // Make sure we clean up from any previous connection -(void)disconnect { + [galleryCombo deselectItemAtIndex: [galleryCombo indexOfSelectedItem]]; [galleryCombo setDelegate: nil]; [galleryCombo setDataSource: nil]; + [galleryCombo reloadData]; [galleryCombo setEnabled: NO]; [mNewGalleryButton setEnabled: NO]; [viewGallery setEnabled: NO]; @@ -476,14 +478,14 @@ NSString * const TURAnselServerPasswordKey = @"password"; NSDictionary *p = [[NSDictionary alloc] initWithObjects: [NSArray arrayWithObjects: [currentServer objectForKey:TURAnselServerEndpointKey], [currentServer objectForKey:TURAnselServerUsernameKey], - [currentServer objectForKey:TURAnselServerPasswordKey]] + [currentServer objectForKey:TURAnselServerPasswordKey], + nil] forKeys: [NSArray arrayWithObjects:@"endpoint", @"username", @"password", nil]]; // Create our controller anselController = [[TURAnsel alloc] initWithConnectionParameters:p]; [anselController setDelegate:self]; // Set up the galleryCombo - [galleryCombo setUsesDataSource:YES]; [galleryCombo setDataSource:anselController]; [galleryCombo setDelegate:self]; [spinner startAnimation:self]; @@ -584,7 +586,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; NSString *imageDescription = [mExportMgr imageTitleAtIndex:i]; NSArray *keywords = [mExportMgr imageKeywordsAtIndex: i]; - NSLog(@"Keywords: %@", keywords); NSArray *keys = [[NSArray alloc] initWithObjects: @"filename", @"description", @"data", @"type", @"tags", nil]; @@ -630,6 +631,8 @@ NSString * const TURAnselServerPasswordKey = @"password"; // Need to do this ourselves since we aren't using iPhoto's progress bar. // Not really cancelling the export, but all this method does is close // the export interface and notify iPhoto that we are done. + [mServersPopUp selectItemAtIndex: 0]; + [self disconnect]; [mExportMgr cancelExportBeforeBeginning]; } @@ -717,8 +720,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; [self canExport]; [viewGallery setEnabled: YES]; [spinner stopAnimation: self]; - // TODO: Check this. Assume we can set back to connected since we obviously - // are connected if we're getting gallery info. [self setStatusText: @"Connected" withColor: [NSColor greenColor]]; } @@ -731,20 +732,37 @@ NSString * const TURAnselServerPasswordKey = @"password"; } #pragma mark export notifications + +- (void)exportWindowWillClose: (NSNotification *)notification +{ + [mServersPopUp selectItemAtIndex: 0]; + [self disconnect]; + [[NSNotificationCenter defaultCenter] removeObserver: self + name: NSWindowWillCloseNotification + object: nil]; +} + - (void)exportWindowDidBecomeKey: (NSNotification *)notification { - // We only want to do this once... + + // Register for the close notification + [[NSNotificationCenter defaultCenter] addObserver: self + selector: @selector(exportWindowWillClose:) + name: NSWindowWillCloseNotification + object :nil]; + + // Only do this once [[NSNotificationCenter defaultCenter] removeObserver: self - name: NSWindowDidBecomeKeyNotification + name: NSWindowDidBecomeKeyNotification object: nil]; + [self updateServersPopupMenu]; - + // Register for notifications [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(NSPopUpWillPopUp:) name:@"NSPopUpButtonWillPopUpNotification" object: nil]; - if ([anselServers count] == 0) { [self showNewServerSheet]; } else { @@ -767,9 +785,9 @@ NSString * const TURAnselServerPasswordKey = @"password"; [self doConnect]; } - } } + - (void)sizeChoiceWillChange: (NSNotification *)notification { NSInteger newSize = [mSizePopUp selectedTag]; diff --git a/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib b/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib index 2942f7325..51473bc3e 100644 --- a/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib +++ b/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib @@ -2,14 +2,14 @@ 1050 - 9G55 + 9J61 672 - 949.43 + 949.46 353.00 YES + - YES @@ -1038,7 +1038,7 @@ YES - 879885888 + 611450433 272630784 @@ -1048,6 +1048,9 @@ 5 YES + YES + YES + @@ -1096,7 +1099,6 @@ tableViewAction: -767524864 - 1 15 @@ -1104,6 +1106,7 @@ YES + diff --git a/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib b/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib index 7e0308bd5f5f795a023e8bc6381c825900b2ec94..206fbbe34e9a7189b56af902b65bd7abc08fb288 100644 GIT binary patch literal 33207 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 gczURODzmKf>4>ny4!~g&Q literal 32966 zcmbS!2VfM%_wdeax!c<$+@+Ix=?UrOfKbzWzg$AckQ^Zpl8}TBvV$ms4G{rF6ln^G zpr{C_peP*#5kx6sK}Aud*%0{N?B0b0F#P@>nq+Tx_RX6&@4b0#=0-Ht*R{09#eL2o z1~V+fF+3wMBBL7+Ji*%BQrFl}9^Bg4G%&cTxq4I`+!_$vIAXN5y0yibL60mu!e|)n z(A=~b^=3^~Yn6$?=0^R1JuHL13jHW*k3Mq(V8c*ewZXZkRGnN%i|8O<~^Pc!qG zXP70-OU!C!9rG^p9y?AT%63fUIaFszsww18PJ~s2R1OiD)XCj%K1q(39vXv$6TOYz zM<1Y1&@OZceTq(^Q|KG?9Xf}8KtG}L=x6jhx`h5ff1-cT4Rj0ZuoHH}fw&uv#7WqM zd*T$Fip`9KTi~Y^Phw``Id~p^1~0@f;gxt5eig6Buj4oHoA_<~F5ZTB;*arud;p)o z-{5cYcldjJ4*!6E#6RIn_$vMr-(ne7!)jSQYhb&wUTh#6#Ky6SY+ne0RC6YP`h0`^&U5&IImjD3ZDm0iQGWjC^Ku$$Po z*tgkj?0f77?1$_}>@IdcdzAf(k=T>$ckK7!~@`VDSP$&|Lg%Y7uC=<*=xnL10gi2w6 zFi;pI3>Jn6Lxo|&aNz-=N*Ezj3pIjO7%9{Wql7wPG$RRPga)BeXcfi_Q-rC4ED+%l zVV>|bS1-&Lo)gv!ZwuRnox*3rQQ=GBTj4w52jLgtf^bo|reQQlqtR$JI!zaiUgN3h zstMEtX(BY;H1V3=nm(E|O}ZvWldCDwlxfVG3Qd(}gr-_EQq!Pm)U;??HRCmtG&3}^ zX13;0%~P6rnniS8G>bLQXqvGe{G4Z(g zg?K{zQv6ChDV`Efi)X~I#k1l!;$dhouJd`v^r6z(@8o9oukf4 z*F~q-8FbD%7oDrlP3Nxj(0S^*>b!K`Iv<^{&QIsBGwK3#fw~}Fur5RwsteOa>SA@9 zq#jaFDOu_z^_KcbeWiXs**-X)l!XQl}1Xn(kQ7;8ZC{H>ZP$#gVZQB zN#mquu2yQ1TBY&Q1Zko)Nt!H8k)}%1r0LRw(hNzKh%{4rNSY-*EIlI4mL8SnNOPsf zq{pQvq$j1Pqo|l$LFGx#qvGk(!lC(^ESz0cwkXA~o zq}9?Z(yP)MX)QlaS|`0Gt(RVxHb@(#H<;_vo6;ufEorl~ReIkN+%Uer{%gH6#SCYT9fLYXiooQYt%F_BCZ z6V1dhu}oY=k-4m~v9%(&y1uHVWoVJPSY5DSMQTx&rgVDW+EP(fKi&#=x)zyJtE;Uo zEp;R6>g!r37uVI;p2556jSUU3+QB;5GPuZGR5jMxLgB!5Rx^B<*w{RVwo)O|Cxf6r z06;I{f%3wCb!3Cx*i2hyH8!*sRy9=BTAPRK^+o22I>4viT3Odn(>PJZ+cpk6IFEba zO}iZk-C8HL0v1D5T+|n2OjwCvXM$%DRwru-4w89-A0qf+f`bXGl^M`0IFPWS0p}9@ z$Y(Ge2}~lB1cOxuNCzWxGCN%FmfFx_t zsePm|=_{CYCWGk>Lo6KMS_PCcTU#wfX85hXnZ;zw$s6>6Ob(OF$LjYMD_?oh-_q$Oq-a z@@Mkr@=5u$d|v*AARmJK2r?2BNKgbpkpx8(w2YwT1g#`!H9wF-$!(mT3UyZeqp(FJxF-TI(9BDAxgr%#GultF4tq=7Opb z)_VD48Ou6(=hu2Y)55gE+vAxD%tU4qGntvfOl79QoK0sQWM(ijLztP&L(DAZVdfEL zHuESmhndSf#yrkE!8{4i<|)EJS*6U{($v^cV{Hc3No$-`KDo&Xb6#H8T5nCa*4IPV z%CrpEyTF7s*VO`U^=%vh_?9e5~g=7<$gTP#e6rycr4l_rX&j7chfZJx!wv%dGImw)2PBUki zubH#VH_W%pcYw$_<_D^B0II@1!}SK3y{hUlwaty=8*0)U>l>Sa&1_6T)gAB()kHQ< z0cAuv1-PyaL;_`JV07hOXU=dlMGldD<*u@q?B=Xb;TSov!VK(YZKmRQp81*ig}K1| z%KXM$gz-_1fIn3I0r!qnkdl3ZQo9EXARn=7Vln=B&IwbI^>Kkhnl{X~kyU4{ zub~qFV@p*QQ2Iedz!kZzLT<<%c_2@ww{32e7hp2!ywWM8OQ3ZkJZ#fW_uxh3jeL-= zofm=i`pDsOgpKvwrcUkAJ<8aWliJ{=@ZNu>4pX#^=IZ zP&C0(NUg7{Z5RvMN})t*b93WFyH->5XKH<`wHb7~)y}`e_0C1+5^Hl^V@+LkE-1R@ z303v5P^OJwr1^mcDV)rW~JUt5#>mIzT8_+Zb?MjMZock`b}XJt*lCiipZRRM>$ccDmUV!R==%l!wr))o2!a z*scm-8r#8u`BGoFhu|}Z(Hu0lo#2Pc{p9}b1iwd=F)@(}etbM!cCzT8`REyD4|bFt<80l zK&fTPnL#N7)t-V<;?xTR?;v{^#_8aB`VnB)^>T(v)D39kab=P3)L4kp|@6|w^U`U=%|wB#@c3Zh;kc1B~`UHHs5;!-bGtFOhAsD+i}rP z>_I0WDN*h0KNfxTAuRg)=%TOCKM&UAY`PqSmKxu3kB-qEv={Ab*Kw&_AQ#@A`NZyY z>Jw_=ikgo_htUyGJVzA;e+(UG_M;Q%OZ1g9hi)=*3Fy48 zpzn(0VmV*G$63oUjG_=90fkqQUe!=-t#8j1XMicrQlYeY= z!>evHK9C*kB*0c7SkJg9V{(#xdVWM6E9{fw4oey=VXdngCb81h}f00E6U#)C6#8g_Zmc z)2qD|@Hbci@vtJ^Haz~70}A7eaWOsPlz;Iy6X7N^etgcVgq(oY~Qu=P_TX9l^=kYhuUBCkdxP9 zPuvxIVQ=h%eX$?*$3`3=SIHyg2j!Xalk$9dp}bDsAis4NGhz|#!67(QWk%Y+Tq=){ zt0^-MAFhYViceHn&_t&-8DKsdA*E`rB*=Wlf>{ zDO=&E2KcjTPba7$y}6uWbb<*k9*Kofz9VXal{4p=9s za%;KGR*Jb|i+9jvEFH}JR%#Vee}XPtpuURCIaMtc*5+1FNcHAwHQ*qRbWR!vw)`~U zY-*N_6!pAZC(40e>)n|aoQAS-Iko_Ieu*n^B_4nW;z6L97f??I72&~n2r~l@#l!G$ z+z0*}0YUs~TmyKIWH#YixKoEm!>4*Y7B}EVXf+N~7r9(@YlrLom7&yvi&?8W>C`I8 zYHSAM0IZOzdSzg#_4N?Ip{}nPXiyDyp$8ZR)XoF-QBN&?c)hZ&rgfAOiUL!9{Md%n z@t}3BEp<~U=+?>gV6S=J{Z@{(u69%_*f<&BBd8bv*|MAKR3~Y;-se9MRIr2PS)s7n zBMoVlHBMAP%A@5`@+d{ueU<`op{a7K7?h&5uR!WwMji!5zdS~i>*Xo(M12={Yiv+T zqWZK_ar@$6iJ@_vEIffq=tQ~UD?FKT!c*{6JPl9B58@eE#+g9mnfM_*i}@8l%*@4) z;MuqY(93NBV+fot$_FsY9BUN>5p1SJZVgz$btCJn&0wY|E zLGAP(p07AuiS%DWvd!Vb3-Gh6@UypFBoG0G^0xA2IuQPBAFnI^vO+8AyT+!V|c|6tK?l$-Bwwx(mqO$tn)%ca=_!Xu%7+mdm zpaVp_79g%uAWoJi$$kTC?R?dKyc^|!jJOyR1Ny1eF0Sp(P`nAhwHm*LGwmjxYUwtP z9nq+COvPJ8=^eaz72a$o63k#aZ3IypI-zQlEqLo{y!E!{2s3VPbPx5$9L68u?d{ZC zs60cK+o?CIntP}=VqE7o3f|3phrQZt6ausUpd474T}8v5lWle%KFA!zhd{q5aS|-z z!}tg=_EG$~9S6WSv!+g=6G$6q!CI;oT433DLY^zikI4@y*r_7ZAAcolR^yZS6h4j5 z;IHvnd6xXJ{D?eTepH?Vx+1lysorWV$;dJ`RY5RdL}OKRjj_`u4-x-Uk|Ff#t4pUE9ly~rdH#G_?U#dVfiWVl;>t; z87Cyg#NFM%%Z6lbdimWCJ*G}gFu@vQN~X(WLVOanW_nIn%@}+h|BQcu_2mNo75@fN zG58N(WR8NgD+-Z1C)CxZpF!1Hfwrj)bz=cEQ>1VT*g;c;43sh0fbjp z&)Zye4gawU|6%7(`*X^e_hzbp@OAry!pw!rPs#IaOl2QXd=F*8kEes9_NQIC?+ACX zEO3=i8&^FIT=k?J2#cMKuZ$VikyYdCTa60B_e6%3AhA9N6vShS^${vRBQLmv!xI#n zGG3wXy+Uu)N@TuaT>%$g*289nKMT0bhsYQ>#(_hW?u|4G*2{PgERZ+r%lfs$qK~{t zUTnhx{02BR24_lUx~2xZ$M zF>EaA&pfGk*y;)k?mk4}CPBzT?kztjKMyMN1$m(;%1hf@Mi8Y?Eh7*&Hi%BH&0v4ol^iK&z@D2R4h%hA_i2`DIH1je*$lYo=H!iz!MiC=60MUeVU^N{e|c=&^f-XV~7#7>0KMP{V9eK&);9 z@k&LZwWep%vE5lX@jwLU>2kS6)w9MkL_Vw*w%JpS1P|Iueb3SgqRad z;L$4HW-?qPfD-vnpO2k#+vj5+M9*M{K0xVpaFf&OYK%0u%3`o4yrV$i7y_Xu|2Pkc>YkV^38P)v(m7b`CUlm_9 zAwKcHhPs|Qsq6-2sM~=0?+sJ4i^k$6CHZ>CsFhA>KvyARJgAjKSjlaj(jh6GnyAuC zOa=$}4s%ZRjM;aUPPZzZ?to4|v?#fwJNi;p!FG1Xa(0KB!lc<=^Tetq$WT>|RdY;g zqn+%>E7*_OPpH0dg^WSnh~n{(M58%U>TowUgINPN+dfi#WJ~_Bdl-LqA7uA-L4NPR zU9-v_KzrCj?5A{A*(2-$c{jM4d*pqhyjR|>dc8FNr{uNRBg{hfI5UU+0$P3v4a@{x zCFrKSm!Mk;2PXCaip49$qw+$%(*Kl~_AwInYf!#>KwiE@Un%Zqq`V(kVwW>@4J_&P zjV)kE=&R{po5)b{X&WW`1LKeV+4J(JFvfNAAqeVL*Vk2#p^a?q)!-$2f&Fy_`>RSw zFj!QY(X_z5NQb?FbeDm2GXd-oK%holHDYSyPki8^+` zlfA*-RPa0|e`Sv#D^m|9b#4y9MeQS9NmDx=sXpHisZ zab|8eW*RtO#-H;C%A5hp{B+llxj-(63vL_okMh^@Ss1b^<_REY-4%tFs00dtpT6QE z?hF(#XSi-$Bp0QI2%tX*5pa;(fC*NdWV&uQjc-+)Q?QD^b9SZ9{SP+h{){Mp)4@TZ z87r>4Eo1d9I4Cq&W%F@hndEwLz2$Q+bA9CRhwDR?F3K9mRy8PnsLpbW+SP4WQjub= zKbo?fhQrlQsa)DBF3s+jDA<~<)#ID3Ohu2yD|UC1 ziON{AY5Md*AQnbdF2GMHscNu7OvYo?LOFp6ZGgVo(XxQsANXET7e~O#euJb?S zKilM$u8?4dL*ManG=_XHzd%jNbBmzoacu^`U(nq(>Z5ciscIc%Y;80)H&w?pjcU4A z|1WXN+V%gBe7&uII{0Ko3I2~`Z&t_NHsrtmW5^r0jqSR;A>UNGq%{aIWC*Flh-rGD zvjK000k^gd_!bQKUpa69WK$t)JJx!yac<{!-0qYhi1UNx2b$5=ZFgm$_v>~ybUWVO zEkUf@4HyhMw(Ey`b^IxJxP8YwK|&je=_pM-|EDSb0=k}XyK4>YnuD&3U}^rZF@MdS zZQr#>kWT5kjkQf`*4@4wbk5onJ5DbM)xG8yR^5x-?`_?d668RTqtY$4s*@Cnq9gu4 z*)-@F41aQmm9>acK)Q?K(Em;DR{Q?D5Tv*FA5WcqmEg)64?f5lD$gi{=V<2X-m!jO zgO2iAUPKAJ1b9qACzzSM6KK++#%6HK6cdJ8T99Vd&m_o|UKuEQPR==fN^cD*tQupr z#|fz2YD-7+E;M6IkPG!vC)TxAj{?_`cjrBLPkVraCaDQ>C&*1%yLd0&dpYk-Emx@W zQkNN}cXg>8G__5uDoehSZ=(7mIf0sz@jYO;Dja{_xSTiIQrfn4!aBBzMwEs%SSPC5 zSXuhouVND!e?C5LFZM@p4zuMmZ=JU`qd=J%MRqbzr z!sJvyvOEI{6706OO0ELf*wKFMP~7Fun_=u}bXeUgTbk;?D^V(*6dy#f&OP~o3N@<; ziUKX)GOBUnZR4XoG=3;R8%}2|hJt(PYbdK}0UoR3M_?KRUBFlKHOw^L%8z7b@U{FX zzK$QwkKyb2vCM2BTN6KyZ-!EuRp70_Z@wPFIkWl6{A6bKfGS%cZ)hWUPjwB}78M(ETuk^q&0IkdlMjO=6G}IClOVEp2nEN=rGeIwa zO9t1mqL!eg@W1w?S{A@hr}cvTgFurRKoOZI{7n8K<~l!%f0!Q%RQLw&3R0?f;AEYzMijgH%5&V_2-|EH5>Hf z_$T?N_<8)({CxfyegXe1zmQ+VFXo@)pXZnGFYrtG7x|a?W&F$ha()HBl3&HI=3n7o z<=60Q`E~qj{CfU%egnUee}jLM-^9PgzsI)@u&GS z{MY6VyUbD?#H4nm`at@g#yK6EuaOsRT_UXgWa;5;TJ#nIJ;YOoARFXcj>L{1Jj? z6Z9xSa|oI%!@b97vVfq+33@_?druPd6hZR{dYYj51U*C00)n0;Xdyw1WO!{cLC+EN zJV8r_>-``^30Z-fdt?fFWt9vVt`F#>K^RR4gemFK{{&J}RG!^=H{)9CI&V;7&gi^B zVOeG84F;qYc8(?BFtT$HHPnAGc0!C+2;o+B4x_<(pH7N0vpR>6e!r1sq?ZlX`*wn6 ziMjJ0TInDl-~FExnpcu}p9yWEr0R^ZnrL#ovp(vo8(bz|oZvQk0ebcSSJ$$gM4&ra=}5L9Dz-Um$jeI|rTz=58g8se_5UM-x1H@bgMDGk&ib&^p zCwctYssqO9j5&bGJ8w{ydLJPurh2KfE`Zwin|F{`nD@?vF{>o^ zKI>Xx>V1|@NJDgvXbZJwIzs}e2}W0EV;xy_UlRd@pfdWgwvZ$PcifMifx zrc)q2(@M$Zp* zP>u#mMZ5N}W6@uj z0qy(J_NxZBD4Pb9eX{LZ2@gT5hiRzl7252F|ICr`y}04R9AU2T7|oFhPY6${IWmaq zK?;hXwFG@n&>Hz7L9Y^Yu6^n$-eimN(>)dtcb{IV2I1^`ZiEF;vcvZf77B|5aI_() z_!>c{2s#VZ@WS&DxSb#@5nd3MGLwZDA$m4Lc!`IYA>T`QSy(Qt5LODSgw?_;!mG@i zaBr=!PFM$V+#Gu$G(>q@>^n!&8=E1jN2fw5wY1fk*4H)BTWTH;c5A1OZKV~z6?O>9 z5RVgd5-MTz5J!23piKm=FV^c*jSQpwEQY`EqqO{tpx5DlTRoDnK~7!;IIRV2R|~6@ zXV3z`0gQKS<&pOImm2*N7V^nqz?;6fGR4PD2Wv8KUK19$5ZHV-;@W53PIiwW%cQnpp_6M!a^>{wb%$D_uhCn!v{Q20qW4|qYy2k81PL7U-1 zNmO-DfP|5f!HkDzU^-wB8h{|NdpC?!L= zWMCRL4uCCwwyf0cJ;YElMJu#5tcIf{JsLr7Cg=l#-lwtg?SoZOG}7EbyV@RFt9@5N zfyPlSC?IGDEu!u+N~t-gseUB@dsii=#z5<|HLj?KunqO4b=m=Hoi;%q(KO9QIdC9- z+eo9&ozO+&qw&@FY5Z@~MIpr}1brNoQngGOKS8?{3XBI;tLEkIMS;)`6xgLuU=VC# zt7}jQaNiL?jukk~j(le*CuvNY?wTI7U|-XdPNjnKK7#fJrA%zHp?oMP`{J!zbN~wO z)`ps<#=3^qFWRNL?X%ZU)BiT^2MF4);BE$$-*K8?o029=nWjMm9hChBtCRG@#hI(xSE$pXRYeGBy4Wt?sz7MUHI|hciz*Pb{@kWmzhqiy{Usd5Fa;GcGc=W& z0ieQq29M#UCwcdnfTOpvLP89l4 zeWHwkCJWUXSFoCM zr^NZc=hif{&@;lKj=8n3DF>daD1)8F6Yfm?(x$`ggP=d!nM`R1 z872*68PamllHuW}!rUbjCw36jJ^E-6OkXAmK^bNtmURa-Q5K3G|geQ6bcsz^BFgfy9F`=TP0*Te`2u=0&@uVK3tba zLA@2#AGuJ21Tq6L4&5<$17qHya9mSIHx(*6ItjJu+A+p>luNZ?j&0 zM?M2eUS0sFL4ck83RqciNKT>RqivPvgE=d|K(Gt!&RR!R#GBxoUX_o@XMy{H z3OG7o_5zf%@=VxdtOF*w0ILzyZ@NL9_JiOF0Y`usz9v@_1dfpttsdkEHiA-+Uxj)M zN7+;U6KaXhbgbUgK5Vbw)IP!uWe7K1J4ZWL`<#dT21e>?$2D&)vlPJc3_61O3^em)7w;|YD zB_u1Y;Ak=Jav7))096fin;1Q60M350bL(n_TY19zVK3AVIE4YuishPdSE!ToXZCRu zc>?zqa}$6ECj;mC07tE1*08b6T45oxhGRgh_kak&TG-JYz%jsQzQD^jKpR|v<#9jw z(c7TqHfZlpxsg2}EQBK2CiwAX4=`(i{}`@V*d{FEdr@8m9$X9WK16$gWy{tFp5_AYwnA8z|1B_STkAcdMy+eg_)%TCXThQbhz%@`AaHCx8 zWSb#TLuY8XW-s0jJDdDaPrE(=diK$5;&$ArQ9z$`wP}=A;osXD1^b}6>=L%vu2F=C zI2KNLSflahdw@QagsP$oFYyYr-{?W2gMnpED~|1_>eeDd{}%$oGm^o&JpK|kBN_qPl!*7Pl@xy zr^Wf=GvWgAS#hDbNL(yFCq6GO5ns@36JHcx5|@cDi_66o;!1IqxLSNgd{tZ{t`*mb zuZio$*ToIuM)3{tO>vX>miV^#j<{KTSKK0Q6}O4+iSLUah}*>-;)mi#;!g2n@e^^E zxLe#qa0tPn1cwnEPH+Ul-3X2(IEvtCf?*+zB{+`Yc!CoMP9!*qU=zXJ3GP8~PlA&P z?nQ8Kg8LBMm*9Q`_a``o;8cRs2u>$BgWybpvk1;6IEUa|g7XN@C%Ay%LV}A3E+)8y z;8KFi2!;dV$_cg*TtRRp*q#IrAb23bg9si>@DPHB5sX2ML}*uuL!^cqSO{IgQPAQ=o9a3O3T&&Pa%khcufKflvrV)G>1>RsA_H^k1RPT7x7;Z0_2C$xY zJyg$?fk%cr9z{b`-&wJojJ9yLQSHE;zEW3hRNA)(?$d!f?JIFr8s5=?G2C8IO?$tK z>|p72fT!Ay&@}8WIJWWI>weY!!4U)7s5I1mP=>JpswV+(hY_?Og3fIBi4lP&opEb8xJQG29-#g}&~1Vvh_) z46>0I)P-G6R9$1&KVBV>xPw1kIy|&9h(X0djq)q(*?xv#U=ivGrEuthsyJ;de78QJ zRPNA)oyzJqFI7w2R<-xgGgQ6agJNy$bhkpYdwm_)DiO4zvPDZlRaM&UMW%y3x>LEd zvEUt(U=JjeFSh=Zem<5`+cGM;IsdBcl=(Hv*(sqyK5X7NlcgiVVioW*k0OpSUO@K_my;Xj97er5Tzl#{nt}TlgLG)p6Bn;{d?F1Db71%HVb`6s+oZbw(M)t(~H3+if2) zB(-I7L$y&ks&TxJJ_8{$pLlBgp1Z;R8%+$e&&O_it$$iW~8j8S2 zRi}X|<_S|nodzaPGffRbFe9*c$It^a3IY!c;k4)?aQ&t*m1^(-9J;-Xg_~y&nJ^_Z zRKn!*Lm^0_1WTCewqVI_+!anKFsrT&IHa|zOT!FehT6jH%CaghJNBzO2s}qS?#cq9;x(@eVjt8k{^D^pGK(=cAl1t%LZ+ zDtk=h9eVyW)+>inuZExogffDzdRjKkmV@c}R=7#`j&8H=UELPlR^2w;d%E{^ALzF0cIZCTeWcr| z`&jphZkKMiZjWxSZl7+y?tt!~?vUJFoj$_lxd=?pNJ!x{JEsb(eIPbysv(b=P!% z=>F9GrTbg=kM6qeU)>GeP2DYtk&uKXR^lXH5+seJl|)G=Ns@!)C^<=8B)w#ioFx~@ zRdSQuB@f9{>MD6j-ja{xEBQ(Ol2Hnf0;M1+SPGFsr7$U6ijcZVky4ZtEyYN&Qk)bo zB}j=ygiQr`fzfACQf>#g>oVSYL)dasn@T&x`A$Tpp>j-|0;PnK* zPVfeTHxm2?!EX}0iQu;gew*NT2;NNay993`cq_r%2!4;?_X+-h;OzwOAoxRqKO%T1 z!5G75PX5)UkUz= z;EM$RPVgmyFB5!);Hw0KDE&e3p9KF!@ZSXgL-2Ki|0Vba!8ZxMMOcQgh_G<{K1*1R zun@iw2&*xmRR+xKT@C0f12!0NjsbmYK&K681sqstKo<%?1C|WvSpzz0!2SlTGoWV- zXqExPHujYUWHq2a^m7epsR4J@uQ8w-26WMY0h2=pblrf14LHPro-m;245&mYgn*NA zZy0cz-bH`Hfc`O{FAeCh0i8FXg9bFmfZYw)(|~?6pjrd&XFxv~&{GDiH=r{HEEv!? z2Fx1JX9jfDfWFs1Za`NI7!Gc~sei?Q78%ee1MY7?j~Orw;(!6W=%Mek26WAUvHnqg zssZ*kVNU;~KE;4;8PLN9bi#l&1{`3(nFe&qfV&v5qkfJa==rk&L!*ZbXtn|UYd}vM z&~XD!H=u77>1VQ}cjV+{HccRHkp!}@4pt%U&f^tps7kvB44b3erhHpR7!ndC|YP-O$MxS8?{@sJG2M2N42N4XT%UOOpFjC#b_~Bj29C{lh{K{ z7W;_(#WXQf%n|d&BC%8~7c0d<;!yDcv05A{)ou98~#W|9W@ zK9XkmUXb%co` z99$jT9XuVp9DE%79E=XB4ml2G4&@FN4g(wpISh6f>M-14g2N(*6%LynK5{tV@Rh@l z4p$uha`?yLUx%BHj3ai`IEs#X#{kE0$5_Xnj=dby9Wx!X9m^euI*xFxb9~V85yxj7 zUvgaUxWVxa$4!oJJ8pLTz;VCh3CFXJ-#Y&0_^0E)P6j6zCpRY#r>;&>PRUNao%%Ut zJC!(%aB6g#7di6PDh-MIvsO5?sUTGE2qm{`gR%ArM}C|E{nRX z?(%Mzon4M~`MJwqdY#^&_t%H(BlMB_Xnm|cUZ1Ep>3ist^}Y1H_5Jjz`gDDcexQD^ zzD7S%U#B0fU!-5Ae^vjUez*RZ{%idO{Wbj!J;;WEHE0bwLl=X=;9_tyco>2WafSp# zlA*hyuOZJc&@k9A)G*voYnW`9X_#$z-tdZHjbWW(y8qIUjI7`!3sE zK63fkWtYo-mxC_HT~50E;BwPdK#cOB#Uxa*Uy^IYe< zE^uAwy4dw4*B!1Oxqj@r%XN?IUf2Du2VKv(xx0D0`MUYL1-J#dg}8;eMYu(}#knQB zrMQ*4ncarC4Rfn<8|~KOHqC9e+fujHZtLB4xgB)-+3kYcZ*IT4U3R-QC^O z-OJs_J;A-dd#Zbed#StGy~=&GdyD&P?ytLVbbr(RE%&$GH@k0f-{$_l`*!y|?)%&i zx_|0^!TmS)-`y{}Uv>Y({VxyX!FqUlczO7E_<0yT0zHB~LOsGgx_Lx-6nYeUlzNyw zEFKje13U(Kw0OMgvCZRskL?~GdhGQ0#ACO|UXRZ`&UyUkao$ts>EP+)srPjDbn$fa z^ze-Hw0bsq&hmWDbCu`&p4&Y?_T1&U$8(?O0nbC8pL!ngJnH$m=kc!bU3+&O+O@gs z<6U3vy0h!yuBW#&Mz3*R&wH)$ddF+0*M6_#Ugx}i_qy)&uh&g)#v6Nc-j3ex-k#nj z?_S=0y!&~lc&B-1c$a#cy@z{`@^0~-?ft6vdhZS1Z+LI=e%t$9?=9ZjybpVS=KZ<% zaqkn}m%RV+zUAZS6X+A{6Y3N0)6FNzC)Fq2C&y>7PmRwwpIJUn_$>B$#b=|>`#yVo z&inl0^Q+HApG!WMeXjca;oHSG&Nsm~$+x?2Pv2g?eS9-~$NEn4o#p$8@1wqReIN6E z!uKiPdA{>~7x*sqeaZJV-`9ON`o8J=mhU^h@A`i3`@5gkuaDnQzbSqT{NC`};`gE7 zUcb-%zVtikch>J4zn}ds`Q7jr{0;uT{{8$@{L}n1{ImSC{d4{E{jL6w_&@4D*Z*<< zC;jL7&-Y*Jzu*6$|EK;({Ezy7?tk3>g#RU@v(eS)ZuB&I8GVca#vo&yvD9cbT8x#( zfyP0`A;w|G3C6v~lg3lVGsd&VZ;js@e=z=J{Mq=6@q+O;%3xCeL!1O$W! z^a@B1XbqSWFfHK006Ac0z^s5r0v-*R8?Y$gxqu}BO9NH}ycY0!z~+E00Urf?9Iz{3 zPr$x_D*@L6{tWm#;CjG~fLnnmkPQ?Ay9f3R>=oE2uwP(GU|L{CU{+vZ;FQ2=fe!}C zfinYV1wIn^XyDwy1%Yn|ZVucMxGnJgzz+g<1b!6wWsokYOOPSRCCDwvBdBYTcaSkC zI%rtX13@E#YJx@v)dtlCjR_hX)EG27Xl2mqpjU&|2E7*adeECe+k-v~`ZnnMpdW&M z3i>(dm!MyRE(U9ZBZ4D?ql06EFDb@3>g^=GuE`^Gry+Zqh_6to3O$*Hk%?iyAEe)*+ z9UnR|baLp_(CML1hdv+ra_E-OeW3?J4}~5M{Veoc=pUhfh5i%zZ|Kc1hcMqT|FD3t zps2F z&qurv@nXcXh~*LQMC^{(8?is)V8r2WsGC!_ux?4+(z+FN8`Q0~+qiBIbz9VJMYmPm zUhTHF+xl)By1m?|S ziTpM4x5(e4#HemjQBg5baZw3TNm1RSa-ytJwNZ6ZW1_}JHAFQ<&53$FYGc%!QEx@P z6ZLM?mZ)t}C!)TJIu&&$>TJ|EQQt-V6YU-C8|@z*5FHd95*-#D7hM=#99rxaj%O3!)cBKNr0u`o-vF(QBf2Mem8;7kx1LaP*PrqtO>)9Amn~7-C#w++(`N zc*g|Cq{gJjWX9yg9LuyLt_`lu8dtB`)cgE*!8g+W8aK@ zJ9cyI*4XW_2V%dBJsEpC_H69=*vqju<4_zI=NRW47ao@wR}g238x%J-Zd%+EaZkm~ zk6RG8DDJJePvUmR?Ty__6z>!77jKLYiVuxXkI#zFiO-KO ziZ6~Yi?5BZiysr;5I-({PW;yR_u@Z@-x0qv{*(AU@dxA2#$SrR5`QiJ&-i~5aDq#M zTY^VI*94!0n1ucbsRP1tEAIOXOq55`XT9j(uJgpNtctZCH<9jJ?W+i znK+Ziq%%31^d=XRyQ!dd9TS^qlDh(@Uo1 zrd6g_P3ugro8BY!1SrL>K)a)r1!Yq^LuaV{dw;{`grx}-Dh|oxzF-GJNumLEA$QPo71?X|SSX_wO7(z~ZurcX|PK7CvIsq~u} z{u$je5;OW_lx7UgXvk>FXwGQOn3(ZU#)6E68H+QX&sdtVDdXdeT^V~a_GKK*_%h?? zj0+hTGcILZ%?!y5&y38B$&AlT%Iuz*oY^O{U*^Efs?5=u^_k-{CuL5}d@z$_Zq3}4 z`Dx~<%!`@-W@)peET=3(mTQ)KR@W?_EdQ*8EK^p`tlnAuva+*sv&yq7vj$}i&3YiK zI_vSQr?Tc}J)5;C>-nsuSubTR&svrBde+9QOC-Lj*z zW3uD26SKQ#_s`DDuFf8rU6);--I(2+y(Ig^?3c4wX1|iXHv6^g4cTvIznA?<_Mz-= zv;WNgC;LVYlf&kC2YcSG*R+)cUf<$jraGWSgGH@V;C{*Zeq&pFRE&poeeo_C&K zo-wa5uPCo1&zx70H#~1d-k7}lyvDpqdC%r8%6mR=P`^B>KBEdR;;r}G!&FU?<_ zzdipz{;~YC`M(tC3tS4^3%VBg6!;ee7DN`L7Zel}6_gf~7mO}=sNnH}XA71WY%lnz z;Nybb1^Wv27aS@$SLj~oS?E>hQ|Mn9P#9boS(sCpUszaJQfMwLFRUzVDtx(cMd7N# zR|?k_zE-%QaBJa#!qbIc7k*RtUEvRfSBkhIp-3!}ikyl*STwBY zfua#bHAS^Wtwj$P%`Tc-^mx%zMLUW*&M3|*&Mht|E-o%BwieeG*A>?n!(lGPQ;Vk;&nli>Jh%9X;)TVFipxRSXg&z7ty*;?{m z$p93_1%U&;gqij>z z+hv=}wv=rv`=D$`*+*p`m+dawS9YN6)3VRXj+LD#J6U$R>}=V0W#`I%EIVKJOWChw z7t1b}T`l{w?C-LF%Wj$(Gd6Q(!7Q33v!l6-+1c!7_Aqxf` zniI@P=I-X6=3eH$=KkhXbA~y~oNF#H7n@7XX0ydyX&z`EVjgCGz&yfSW3DyVna7wL z%uVJN^91uG^HlSLW@3KG{IGepd5-xp^ONS?=CkIX%@@oU&6myB%zv40lr!aQxlk^a zJCt`R?^d2zZYu9ro>HD!UQ#}=d~o@&@(0Stlusz1QBKNdmCr9bIWnd3Cl^# zY0KA^Z!F(g&RKr6oVWa9`PK5f<%;DG%U_m%EdN?=RxlN81z(}5&{a58bg3{@xKy}T zcvg5<_*VE=1XKi7gjR%CbgPK2h^>gPNUG>t(Z7tpz71D&*(%2&!6HRRmLQH08OiD)^4QbjBy*}LcUvb}8D0GGH z&=Yz=ALs}DVE_z*Autq1KqQQUF)$9Izyb%j!3%yMU{II!hSdahad$G!x15u`(;Ut`fvycPl;S%IR9^^v- z6v9oo4R@gk9>7C*3T0NRm1d<|nO2r{+RC=hSr@G5gR5hh?FuE5o}4maQ?+=@GJH}1m&_$?mB zBX|rm@C2U1vzUVy@G@S-M_AX>zMtFVR8Q!(tRPRY|uD8_t#@Ec(*4M{3#OL+NKF zv%SaOXAYSZlWLBbqvi*bX-=3^=8XB#oHv)u6?4^GGuKUl`PtkwcTACaU>=$hQ)-@= z-^?>pZl0Sz%u7>YD$N_JK{cs1)up$o0lh=P6hckuU1~ussWrVvA5eShNS)|I>O$S9 zC-tU&)Sm`Wc(pk$f`-uuilmV=n#NHSS>z-)`N$AcfF{vYnoeKPOqxZpG>_&}JT0aK zN~Gnqiq=pPZKO@Km3GiB+DqTiA^MKKr!-2Z3_4CH=?rC44qc$jluLQ^6J4hpR7f}J z4i(XTDy9-DrE+>6{b%&6=+|6>YjGV8;`-c(gE@qoaSLw6ZTNj|&mFllcj0c_lY4VN z{)EH%Qy$7A_;Vi3;~3b%ZuYTZ<^WIPsT{*Ic{b1GuQ;9;^AcXhD|rnk@kZXv+juAM z;r)D&Q#h5=IGr;&i%)YlpW};sh4VO{3%HPP@m;>h#azOr{DjN6oL}%uuHZ_plA2Om z>PkInD2=6wG?nJkQd&z}X(t_|lY~l`^pIZCSNh9987vVpTq0$ZjFl)safw%Ki58WK zGDW7#44EZ!Bu*B{Lit*j%5qsHYh}G8%NE%#yJU~-mxGcbsgfq?k|8JLl$@0uxgeJ$ zSMnrZ3ZzhO$z8c8#Zn@r@