From b7df5c43db535e319f43a6f33686f27941616c34 Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Thu, 7 May 2015 11:26:26 -0700 Subject: [PATCH] Updated all name lookups to only use most recently logged in account. --- .../Models/AccountAdministrator.cs | 36 ++- .../LOC.Website.Web.Publish.xml | 208 +++++++++--------- Website/LOCWebsite.suo | Bin 474624 -> 474624 bytes 3 files changed, 121 insertions(+), 123 deletions(-) diff --git a/Website/LOC.Website.Common/Models/AccountAdministrator.cs b/Website/LOC.Website.Common/Models/AccountAdministrator.cs index b205de2ef..5aa571908 100644 --- a/Website/LOC.Website.Common/Models/AccountAdministrator.cs +++ b/Website/LOC.Website.Common/Models/AccountAdministrator.cs @@ -93,9 +93,6 @@ { var account = repository.Where(x => x.Uuid == loginToken.Uuid).FirstOrDefault(); - if (account == default(Account)) - account = repository.Where(x => x.Name == loginToken.Name).FirstOrDefault(); - if (account == default(Account)) account = CreateAccount(loginToken, repository); @@ -241,7 +238,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == token.Name).FirstOrDefault(); + var account = repository.Where(x => x.Name == token.Name).OrderByDescending(x => x.LastLogin).FirstOrDefault(); if (account == null) return false; @@ -268,7 +265,7 @@ using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == token.Name).FirstOrDefault(); + var account = repository.Where(x => x.Name == token.Name).OrderByDescending(x => x.LastLogin).FirstOrDefault(); if (account == null) return false; @@ -287,7 +284,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == token.Name).FirstOrDefault(); + var account = repository.Where(x => x.Name == token.Name).OrderByDescending(x => x.LastLogin).FirstOrDefault(); if (account == null) return false; @@ -314,7 +311,7 @@ using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == token.Name).FirstOrDefault(); + var account = repository.Where(x => x.Name == token.Name).OrderByDescending(x => x.LastLogin).FirstOrDefault(); if (account == null) return false; @@ -331,7 +328,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == token.Name).Include(x => x.Tasks).FirstOrDefault(); + var account = repository.Where(x => x.Name == token.Name).OrderByDescending(x => x.LastLogin).Include(x => x.Tasks).FirstOrDefault(); if (account != null) { @@ -356,7 +353,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == punish.Target).Include(x => x.Rank).FirstOrDefault(); + var account = repository.Where(x => x.Name == punish.Target).OrderByDescending(x => x.LastLogin).Include(x => x.Rank).FirstOrDefault(); if (account == null) return PunishmentResponse.AccountDoesNotExist; @@ -364,7 +361,7 @@ if (!String.Equals(punish.Admin, "Mineplex Enjin Server")) { var punisher = - repository.Where(x => x.Name == punish.Admin).Include(x => x.Rank).FirstOrDefault(); + repository.Where(x => x.Name == punish.Admin).OrderByDescending(x => x.LastLogin).Include(x => x.Rank).FirstOrDefault(); if (punisher == null) return PunishmentResponse.NotPunished; @@ -399,7 +396,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == token.Target).Include(x => x.Punishments).FirstOrDefault(); + var account = repository.Where(x => x.Name == token.Target).OrderByDescending(x => x.LastLogin).Include(x => x.Punishments).FirstOrDefault(); if (account == null) return PunishmentResponse.AccountDoesNotExist; @@ -436,7 +433,7 @@ using (var repository = _repositoryFactory.CreateRepository()) { var account = - repository.Where(x => x.Name == token.AccountName) + repository.Where(x => x.Name == token.AccountName).OrderByDescending(x => x.LastLogin) .Include(x => x.PvpTransactions) .First(); @@ -496,7 +493,7 @@ using (var repository = _repositoryFactory.CreateRepository()) { var account = - repository.Where(x => x.Name == token.PlayerName).Include(x => x.CustomBuilds).First(); + repository.Where(x => x.Name == token.PlayerName).OrderByDescending(x => x.LastLogin).Include(x => x.CustomBuilds).First(); var customBuild = account.CustomBuilds.FirstOrDefault( @@ -538,7 +535,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == accountName).First(); + var account = repository.Where(x => x.Name == accountName).OrderByDescending(x => x.LastLogin).First(); account.IgnoredPlayers.Add(ignoredPlayer); @@ -550,7 +547,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == accountName).First(); + var account = repository.Where(x => x.Name == accountName).OrderByDescending(x => x.LastLogin).First(); account.IgnoredPlayers.Remove(ignoredPlayer); @@ -568,6 +565,7 @@ { var account = repository.Where(x => x.Name == token.AccountName) + .OrderByDescending(x => x.LastLogin) .Include(x => x.AccountTransactions) .First(); @@ -617,7 +615,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => String.Equals(x.Name, name)).Include(x => x.Rank).FirstOrDefault(); + var account = repository.Where(x => String.Equals(x.Name, name)).OrderByDescending(x => x.LastLogin).Include(x => x.Rank).FirstOrDefault(); account.LoadNavigationProperties(repository.Context); addAccountTransaction(repository, account, "Bacon Brawl Bebe Piggles", 0, 0); @@ -700,7 +698,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => String.Equals(x.Name, token.Name)).Include(x => x.Rank).FirstOrDefault(); + var account = repository.Where(x => String.Equals(x.Name, token.Name)).OrderByDescending(x => x.LastLogin).Include(x => x.Rank).FirstOrDefault(); rank = repository.Where(x => String.Equals(x.Name, token.Rank)).FirstOrDefault(); if (account == null) @@ -724,7 +722,7 @@ using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => String.Equals(x.Name, token.Name)).Include(x => x.Rank).FirstOrDefault(); + var account = repository.Where(x => String.Equals(x.Name, token.Name)).OrderByDescending(x => x.LastLogin).Include(x => x.Rank).FirstOrDefault(); if (token.Retries >= 3) _logger.Log("ERROR", "Applying UpdateRank, retried 3 times and something didn't stick."); @@ -747,7 +745,7 @@ { using (var repository = _repositoryFactory.CreateRepository()) { - var account = repository.Where(x => x.Name == token.Target).Include(x => x.Punishments).FirstOrDefault(); + var account = repository.Where(x => x.Name == token.Target).OrderByDescending(x => x.LastLogin).Include(x => x.Punishments).FirstOrDefault(); if (account == null) return; diff --git a/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml b/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml index 3aaebf02d..2d91aaa08 100644 --- a/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml +++ b/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml @@ -7,7 +7,6 @@ - @@ -18,7 +17,7 @@ - + @@ -27,27 +26,27 @@ - - + - + - + + @@ -61,9 +60,10 @@ - + + @@ -78,7 +78,9 @@ + + @@ -92,12 +94,11 @@ - - + @@ -107,17 +108,17 @@ - + - + + - + - @@ -125,24 +126,22 @@ - - + - + - - + @@ -156,7 +155,7 @@ - + @@ -176,8 +175,8 @@ - - + + @@ -188,13 +187,12 @@ - - + @@ -215,16 +213,16 @@ - + - + - + - + @@ -239,14 +237,15 @@ - + - + + - + @@ -261,12 +260,14 @@ + + @@ -280,27 +281,28 @@ - + + + - - + - + @@ -319,7 +321,6 @@ - @@ -335,8 +336,6 @@ - - @@ -348,7 +347,6 @@ - @@ -365,17 +363,20 @@ + - + + + @@ -388,16 +389,17 @@ + - + - + @@ -409,7 +411,7 @@ - + @@ -437,10 +439,9 @@ - - + @@ -448,7 +449,6 @@ - @@ -461,13 +461,13 @@ - + - + @@ -481,7 +481,7 @@ - + @@ -500,9 +500,9 @@ - + - + @@ -516,7 +516,7 @@ - + @@ -526,10 +526,11 @@ - + + @@ -543,28 +544,29 @@ - + - + + - + - + @@ -582,7 +584,7 @@ - + @@ -599,8 +601,6 @@ - - @@ -611,10 +611,10 @@ - + @@ -622,24 +622,23 @@ - - + + - - + - + @@ -649,13 +648,15 @@ - + + + @@ -673,13 +674,13 @@ - + - + @@ -694,16 +695,15 @@ - + - + - - + @@ -711,7 +711,6 @@ - @@ -724,13 +723,13 @@ - + - + - + @@ -744,11 +743,12 @@ + - + - + @@ -763,9 +763,9 @@ - + - + @@ -779,7 +779,7 @@ - + @@ -793,6 +793,7 @@ + @@ -806,28 +807,29 @@ - + - + + - + - + @@ -862,8 +864,6 @@ - - @@ -874,10 +874,10 @@ - + @@ -890,19 +890,18 @@ - - + - + @@ -912,13 +911,15 @@ - + + + @@ -936,13 +937,13 @@ - + - + @@ -963,10 +964,9 @@ - - + @@ -974,7 +974,6 @@ - @@ -987,13 +986,13 @@ - + - + - + @@ -1007,8 +1006,9 @@ + - + @@ -1026,9 +1026,9 @@ - + - + @@ -1042,7 +1042,7 @@ - + diff --git a/Website/LOCWebsite.suo b/Website/LOCWebsite.suo index e04015bc97ed66f58583fa005b775a2b178eb120..2b103f237324a6eaa86dfcf9c60f6b65c8c18b4b 100644 GIT binary patch delta 12654 zcmaKTeOQ!L-aqHu=N^%09A}XwL>fmzVrd*%bcqN@LPJ6vk$fSuk;r_sbVSnfg+?;p zGIrzuU$<=y&D`AWF-()TH5=J>x4O#EZTGPH&UX$0vFC`HVdm2DFQ4^?iKr_ZQ+O^=C2ocx~^c>Oqs_U&P2g7Y42F&s=*RxxUEO zpH<=OMLoCdxo|^lhICGem!VP@z2O%5HRL7QWh9a zay-taQs7@KS~g#DvsdKV+lKCOm35A!hSzMfsB0(l)L-(-3m0ps{uD2iu6&O?bkV`C)!azo@9AJSwVAGP<2Q&x>^V zx65wUKwIC!o0^XrS+eA^jgB-jzx3YhBmWv<7g154FmenLb13x`b4uIi4tf0DB?SHXh z&wgs3W0qojGiYFnF-DX{o#Nz*=5dz8*WbvJWZp>|)qlX9~zbQB^3W4Pj9-Nl~MD( zMm9|GCniH}rPThJ>7~w#%t_0NnUmkF7f?*iU-NhhR2wPsN|%kCpI`yr66SBZXryAj z1L>1-Y!G>OvH}VU!zSPSCZ%sJNwocOp48}KIh6b$bCc&87BB7J*r?jiGRd)0xTODG zuQ?pn@>}cgJe^2Y+)!4IA>U%|rr-nv!G2oMYALGag;V3%ad>*M^xvN+eZR`Y8Y<-3 zlh4V5lP#3Bj>pMR#&`-f;nBX=qWODV`p(yrI~vPwHd(1mI-jaC38DTYOCb9Y!_nyC zquDid&@Jwy_I^BGUO78mcGbjeyTGaKO`b-+1|waD&)O*NSr`XTDWuScuw`UzJiRd# zYYlcdsQG1EEIoOaCCHMsHrjrGXX<2Y1uWcnmJcHTX*QF>ZmhyPS;Wb%gR%0$$#UxC zSW??om^5e_X)3$o>G(L@6&!37QWs;X)UX^$7}$v*?VQZ)G>@?iM08GLCrfP@Ia2U* zq~L+x6r{YXERo)MKq&v*NDKQTMqs#kvhBoZ#9$l+Oy;4uHD)gT5MZ(7Fd2-7SRub) z4^!nbYwIa+X zgb&TJ70cIU63rTqONhekrbi7orEK9zt$AM7_A^@2A8R}_0PE`*r+!r^5-HNbQswI# z;;;%Yttwz^W!YM+UuEj_0=U2J3Jj_ODs-F`vg7pYQ+!bUeN*X75zC@CzC|(et7+fJ+>UvDB->lc80GPv9x9? zOQzLJtjP4yr8`*$T}Z}9ApRQKJ5UtMmd{csxI`plle-v2rojUKGQ=}a6-#7Gffv_n zIW@m$#LM8pa{6^XSN?yK-fLv@>C8-)OS~U2!8Mc3p^EkR*nAhuroE=&q|S0|1-sus z+s}0~5sE1XbSrGoTb8+%X?R*DZ7mV^lIuyM7@yvw-KKFjxkB6}yT;k*#XlPktm3d$ zRKnBPbaHnfFvHVX?!H+p)1b3)XN4MO{?6_wleR9$qMD1S~)#RPS(pfuACV&9E7h8YHN!9nU z(F!hdnqFlottoR^^FT2eX{VUnH3U~Zj}PkeC;LZHOC_Rv^)LglR;ly%x3sB-y$m)n z^d&B-u7=szMp|@?O`@=mdy<-RiV1!tkVyByF zcQm_K(L5h*c^tu_oGCkh%%=9$2u5Ay{0(LqWvo_Nx``{WRZPV}{_!lDf@yF>j7|=dymb8wKT!sN14)qGm=-i&_{}6*a&0$MwvxQT_|!CGxGsEcPAosx~0N6vTSpw7Bw61IAO5)cg_ zpI3h=1Jz>aCO$@!2>QrjD7ttPYw8C=j{Gg9-1%Gu-g3~6?vmWz$~?H~GY->$wQon2 zuN)6k`%P7Up9RqXXxA#!B+JlhH*Fta0J%4_wtjTZ!%E5VEF8c3Jbt0Loot!skPj@3 ziRq~jHzU)xvMLm8%b#@}HhO+53M`0>VoI8il4C2LgtE1Z{KQ(wLoC^R9f9}0%7@>O zgAg=r(-2&N7g#xp+u@JcTFtKbbBz46MIJf)uxaLfFo&w#ty6cfKQPMwBg?@v7fogh ztsJaQGSYbrBX2F}X=Eqz0i8=;N>D!gls?on3$B8My5O$-bCE?d2v&Ri<$B(VRjr;w>qqssip}kBk0M zsvnC*9_xOMF1*AhnNioMyhfh4R_|dORTHzq%H8%cC|s@*5zW4p>@3RoG(61z50A78{(+QeAp4|;Hf}jy~ z*f1!DOG7?&9%Ht~3*bHeXIVb`J*_$qR;5F1|3`@Q(n}&}d1y`nO9aV#afYE;m!_+E zwEY8wAh>ltt@r@d6R19w9H)hy;y-}Lf%#L(w*g(lmZNx>Dgixwa5TA&T5GomCHRh@ zyT=%+2&L*ccv!Z~aFg?Yu;%ucxNcAru~KLKeU)_RpFsN~pRgu&MlrRCRCkOwW24hl zE2!63N^f*x!Npbw5P3I-$~uuK!6_bU|2KSsm3n1YMJaydR9)#11tf*Ex&R^OPXmyw z=m6}$VTF09j@ziS9mFN61C_0PmXS?2nj#Kyct7G$1JfM!_#x$M+kDJkyp{~I)eK`l}R7{lyswWb6E+rplt{q<>iOy9cH#8$y z_Y%*bEuX1tgVnr%W$wSXz0zx42$KrUjXc#JC7hs zK~t&-xR3sI9<5~CiCn9>`rQ$%v*tXi+KS#lBwvWf@z2rFHv&-F6U|H+XiH|dBL_9y zHOZRr9tx;&pJ6LQ!<@OXTx5RB^*fw6@vC%0r9Z1o0-{^qdqF^Mw;dk$ZQg<{B;y{l^DRD zA3-H_cdDvg*JW52%&ANL=e(B<*3s6_*eLRUZg`~cYBu|&^*QnnR?xW1bb~s~z6;-Lg{D@ZNz=>_P2wy| zusKVICn-DtrINeGrcfP2n4qa>Qsid|Wyheoa!)lzQ~Mvm@3rIi_vZ=Z{oE*~z*yjg z_ph3oB+#bkQH?<|Jmh_bDgGFsNteK8JI^Ll%uz7o=xCr}Rx*4TUIWUk^e8AlSkvlj z1*+a@Hjno2hBbXbtU)oo`umE=IS^KT^}FoWqFBD~TG=)tRk3;}Z{rmHfX|_$$yniq zA^bQU9fH3KrXlMgKT-J*ysROKuR)_)gf(Q)+$7`_qDO;cnj+$Hy8jw!S=({mEJ9Sg z0%z=_!&BID+CNQ`xquw2D)vRBm}8ht<3Fh`4XOPH2}>I@gQBO=1-AW57yjX4GiiDaUU(H z=4seKC504kySy0j*R3XLog+uKfvbWFHn0y7uv*?AZxvJ`RV~Re&{l#itwNyJ$yNSE zR5BUG<15uUE(PmOkby$wry#8whHkSx$)8=z)1ei7BM?*L z@u3Q%N(L$gzA1w!c9|#1&i$k5y}``cv;zLq4TBeg0d=gvLxRh>#{%0`gmRurhn8`- z6lX0qFI{Ceax6m+c;sQ;MsX>|yrxIFQ1Tu{9tHqzTgv}H4Xf~%4&66H+@pW&{aVab z$diET3-^9ZWX6PH|_A+CF;N19q~M#+I{t$X^dvHaCfQ zpe1^eM<^7HvgMiqwc#=BBeRxoQEwj2Hq+R7d`zovHE(0&EJ7C)UCVP(taKTxTZNn9 zxLj3d-O!n$Y2$hx$L7#TkC-M`6x+$Q9=AA$K#bVD4#80Rp%J3UV$@F0Iv!2&DMk)r zqW~^=l6Keew-iM!RMKQVp*&@2^-_yyN_sL!13>p_ex;;dN_`S{XhzjlhT`lmLS|NP zM3Ct|HLOT%M=bYJ^hS>I)+OB3dAAUhFpOuygU?2hcLRUb@(0ussK1V0h?%Y!tCCGs zMaeMV*U>bx=ziKC!|fED#-n9>u4>-?4$)*QP$Ik;)w6CBHmf_t<}hEaq&ufdm~2`4 z%&yj5^}KXAm4=}asjA>Ff$e>tnW+fYb$I+5I-H2+&=Wx*qg}70_ScMrrUt;p(;pjJ z3vgM0+5q!QYZcnTjt9Y7DGM5b#)0zA5Muc!Gf_UUQP!HEeUPd!BL=wA$Cbt9fT+z1i z)Nv5oMSBE2;~-D%rgPKLcGeO5JAbG*s9M8qJZQ?=%LQ~Of*YIv&EG_qzI8qBsku`) z%@VzT^onEASFifJdB60Ih@pok8*%jI%f@xB&%DiNUqk#kqk!!H#ycTk_$hLXxj`hf zsH*jrVH0>fJo2{oYj<4?l_<=rV5-7ANL$ZAxNJVkbGjvLAbdZBMh1Yox4%?sEuQj% zmJCvxK2k{cAqT&xt>QC*Ga{A0%xKG7yn>n^;N#)FuYjJtoWMbKZ*eEOfK^+>f68ke zy5Y)JZ6@`x>cKRigOBRdaBH4raj4AX_=Ja558{@g-R@TRr@W&deOheRVjmvmlb>tR zLLm=%ufQa_U1^WEg78n3dlXrmff0thQE1@ES-kp^8rx8;%2o&?JqiwXH-)e85~cgfE?+(_ z`c&gQpCTXkDX!^s)n@Fb3qf>ynlONS#FJx=kq)7IatvZ$(}ZrN5zp98o9+~&lzd!3 zFU>%UpcJkq)5t?k7WL{cqt)KKWz#neK!fffyvark9)BdBN#)^$&VM5hUNzUs<75Rq27AP0hbh%8Vn%5zl=g{OUYyw2uSW0w5VH0Py zp%STXD0mf`aX)prU_8|#sJCaxL+K9kRq;f&m}W0yR;#GF=c((BG~^T5$x8D6jCql9 zhmdhKeJs2!*+{hP9aw72qTo)n5a>eO{1r}}ImQO%-D>H$?1OYW@Yx<_sMY=09PCeN z=;)ymcBEo|82%+tc(#Et-_0=a-VvZ_jsrl)+$qWAy4euA;iI6PB~iz_$j{)_XugC| z=hwVe&p)X11_KKHR5lkV=9IosN#w;97V2GaulR?pe2J|@F#ft!Dz;{+0!ghK1RNDQi#msA(fY)aU=4ZFHUY%et zPW5hi zgw9)4LC(@EnoHYGA&T`p=FkyTbntIG?Hyz&5;{~VYH?ck9$acuX#X{4Z&QsmYLTT1 z&DBiGPSI2G;-1({pqQ71!gM=tO2u916I|3>X5>=-6yprNRBD8k7^EjQ3v?&N{z98p zp&7v}B8~RVL1uxX_0>i{3n*XSLVv!AsZwiGumUbQ%Se{_SF>8P%8hqS+SX}6?0~h{ z$5zy#;=9xmqv?Zp43*rAXrK#K7>Slk2Zo76WVaG3x@8aKo8lU-a^Ymt6-!f7=u}$d z5x;2tMTPNCMzsM%yY6k!c+VtP058NsYc+MC4Ksi<@DV8DA+893S1CyUZLwrjihOFB zW;kX3dGrQ}wgL*xRdF}h=)i*?FcK`%c49tqK=t;TQ~Kw_iw*NYg4KMaWjTis<_6B6 zDNrP29%2G8S5$u`fll3T#L38cI~!mr;LY>E;_FTr9=3xgq-+uRTIc~vQP zD>b0enNB=Vb)w{GHd0xB>(xaDn|tl-s0C3yqTyuu`lX*r=YRMZ*{^kJ%`2imHj-5J z^U14EK=V0<=Rv;8r>>8T;y%dE*W7>&)cTtycj?QumkU+vfmkX*Rde=d?xsULwY9Lr zc!g2Qhk#vx(<`7}I{bokD2Qm=TL;n~c+J>Fp|9|^h8nhlTz_R=IB{QJQKB4@JuX9syfxsD`;y5>0lM| zlXtJj2s)s+wtJ18VgaE6jiQkq79R zrTlI%{A9MU_3Bp!bIEO!(y8WJVFO9j!-4i48o(~8uo$EJ#PnE^)Eyrfd(+-)(C(;A z!&-i&AtH%dVni|dV#HL8=CJ!5kxj`l;P-m)n09o?f!6^@5L$MWHHQQ20>Xb^;%ic@`?_>?ZMP%rVzu%? z)ea{fow5>&r_C<1HR%Wh6DZIhGx>MMsQGF&C&%^T6>4^f3ObQ2(&<7c!dN3+N2bU% zZ-Z4!tl7tpN4V-Pocid+I<=?@3z_n)0b9#7QAYkG0J9##^^L0?>!CQlIT*IUZ}OGX zlF2(*cqubcY*BP;1tmXc=-E`CcHBotUsD%lXz?71Bw$|q(or6Y4Z;xJclC25Z^CZ z2jx-?6Sz68`aPSi3R4j+m=8s=*ksYI5wGw;Omu@7uXGqn2uwmq{LR{{cR21vXAYpq z6C173EFd`3Y7nwShe^#P82r6*s~FF4YzYFgtb4SIBDt7wCvMRBvjV-5o<+@P)F#d(NAMIuL;shiz?F#(TPB^wMX zQMQ$2P~dtVEA3;WTYWweVU)=r@uYU?(^S8vvD3uOfHs?reCrV!M+>3%SKbAS`3prp zd)rz-`)vr=GH%50C=kMY0A2szX;F@N+$wAs0J^AViJ>M-POVevxu8E^cu@&-SNXyi zoXcv^zLmkzZt{+ScY5Zib13YGA5ball=$mZvkSKZSy;AL0Mc!MXOc+M5@gAAXgbX$ zh!0GsG8Ka;W;f8;>hAUcVyesB16Oq`>z&0|$^(ic+^#27h#c}2V+ml=tCiANF6~w6 z^2NQe*ut0Cf<6fW%k^lB@O-NkovX};XvJM3nZ4c98>G|o`8FSQF|GI#noF-NT!98al3P(S_pI9EruuF%M2c0auk z09NagAL++aHNo@-U`ik?m~F506ut+y0SckT?#$_SuDwSN&Y)0*LZ1q8Y=9bd;Yg2~ znCP<=u|vUOcF}ADLntc(=R>1;8>|E;DXb}oOJZBv)TuhLki@-8>__<(J2ncN z+;%dpv6DOa@AL$ly!Ch@NST*fo`5>gC)G}W0_d;1PDqq1sHGY6zwal3$sSi)%S3AL z}gW4@0hc|afdKtm~$JZi9WS|twrt_C|!O8OViz%&Y{Fo4`Pwt#$xOf^1x z1I0Xooq%ClJ-0d-mCkNdf+o24tt<<>nxZ>i98UC5(UVv%)c1I{vX|CiN`kgyv60-G z{FM0g2Ksa}y5t-^aL>35UY@@hiMB*7ZyH@DK*;gla4eo_CeRi_4&&sFcSjq5!IhCf zSEh(mXky*$9C@bBw$+X2N^N*ay_Xyh@qkk4bS;clhXx$1Tn$52S6NEQr!hCxU2xzO zP+h5%O{WkYI6a7|FhoV|VX(DH)GkGyTrga94i3wEks9u!&?aa-(`eHp03&o`b1Yr= zT}#nM?F-{n&O5k(T@e6qM`-L?570lQ5X$S9CUllMBlSay7g7 zttD&vo`fK5qU$bJuPK2$J)>zFGpiY*QzULgZO( z;`md~Iheqcrl;qGPB1|$1XtC#03yI_G(4Ynv4Ylub>@D??xVvt<0jCVZw6ytisPvX zDxeibT4+t${0Z#{yr#R7@#Q%yTKx@ob^#sQnF1c(< zeORob6$R$s`jqV&&3flh+Gcp8pwSGe0k)qGVC z6KGvON2N|_1i9C`ReQ5bC+rTXv}kmv<44K))T z$)2KvzpyO@i%DsHy2-4>rJ(7d=GDe5+;$M|3R);JvkpEGixnAq(yY`c6Dj1!!StjV zF*}|z`JjbS^P}$jNw0YXaZ#rRu&PDzstH>m1s582iuL2H$V2)haaQjs3p*`41qnh6 zRA~O2q=^!;#hf)JeiW8!{TmU<>;9`?A8mR=%-z>vPK+72v*-J$jL4tx_kYo>6Xu~o z>KwlHZ*1g7{4oOm70{x;i`U67p--Ip+RRXh-lBk3+q{hCj07TdoHWt*qP?f&lO_(` z_noJSQ)5LZZTX!!TBRf;o~O+!MJzx~)$rF38Nc_eBmbt?3vPXE3)6e^m`To!#!Rw5 zjdw%}Y;&lzz_vim@vXx$J;T*;3hc+JbB&PQhO4|CqmPxi-t}l%i%P#m3<4WQ(>oVU z9FEYnLP2uLwT7w>e#JV*?7L)U6jSJb%>r68&bEyF&VG4Ralpuecul+zPM-TV_i4Mt;2st!QqC30tw8$zhhyAsOeDEDnL(0^247K6*NJzs6@>c6BfYu)1R)d4T{3cEC!0q@+u2BY=+CLtHi{+4bx)?TIkf0;K1#Od3F(?$EyF`n$nhvo zR2Qh^A){PI?#z|G`=e^^@toP-R z@G5$B7cY{Iv0j>WzY!x-!in_mIQ*>L#>U8Z*VcqOv--3%N+RAs_IjHm^rB(f8AUvO zj*!2P*&;jNA4Zv9F~`<*zn$ik1+N#;mR}m#)MDdF?q>0_{n&81 zAvlAwV?-%EJso>g8nmtH!f(TAqMDlAEIv5imLUB*qS>c%*JmT8&zmOGF1qzR$s5md zXvb)ghUrhDQx(Q+avU~>V||A5sHi#CQYb(tp z_8RSOVYkT6^cZrCGn}&N?L^vBWDFz6XDp`q?O~MACGzC@{i*WRy(yaxB+BwLRWf7$ zFg5jBYW)Tg(7HF4YR?NS#7VZ0d`m^Fh>H4@1@9L5vMD=;ouF5C@v+pDB(mwy8O$&L zn2lbVVJ48Pn9ZP;`;6gKGt+cZK(K7t`em+Kxl9W5Ww|sspT}b=2e8%Ua?1W&scodN z$v3`8q{%ggTYA2jNC)r2a|3tSN~!*FET?1XL~>0t66x6+nGI`lgB;(vl@6{!0APF- zvTcS#rgvtBT03o3j69`gA)bE|ma0}gU$&pjVm|#Q&m100fw#C#Za8V94No&SMXH#G z@|Un!>3G}CZjeJy5bGTl9(%&h<{^6Tkd6s<3cEzKeC@cKD*EbOUO-#UnZ@`jn%X*S zvE*+sQZYV1EsC&PnvZ+PyV}UWg$DZCCGI50L6$0CI#VnI7t(|Kc#ia(u~BLj9_8Iz zE*G9oV=HKAkuin5518rrS&L++hHmQOGW%2|rA|N^wJh^X{}~q@n_+m&6`0|6nq6pn zidxPI8-*X`cDZ4xliaU&FPguIMU&^Ok%EW4OrJLJ{!~|M1Z3re1S%gWeB`k6Tp2F6 z_1P3PDk?Xsdg~A0Fi!8DXT#*oJx*G3l_;V*gJsAAyWO&)(?@mV#4y=(M9uOu6`4r# z9Y!6Ma+bj!mZx?VyUS=cdnVolBuB! zaa-5KlBoSL=E5Uiq_{3|8+lI%yY&5#Oq-UO6J_L5u0p7Pu}L)PGp=qktN{1?JTWMY z?$qu0-Y&O%U8R6ZPX0cV5>k!1w8MrF*<-RLY9{gIHQ8cTq$454#5V_h-AO^dbe4?= z3x!+vlTTns?u)FR))}mvwq&s&ZF&gM63AlN)UXhF><{oN>6ql8!-Eh+lPisA^I5$e zi=1LUxdyQUdbbES*A3+9RQC}RK}4&{cWQAmLHk-*G3nh2f69~DX&N+N?M)0@Kx_Lk z7ZS6W>Nc@LIuXO1B;2B?)sElSoK7Lv0B)m_7!1GWUM%1CzAS^0=a;YlFz8 z&Cz(XzYj|c{z9ZuT0Bn<<-6FPt7vW?woONe0?q*CJi+|rdfBW%av$Zv#|$^6Zr~}Q zd=J}m4J|${DrwlWodHPiUitF$TWm!Q`38FICWgj;<0{H>7BcP z`+;e;61hvNsC$uCU1I&EC%u^LV_70?Im>+H+im7hQ!(ZlxzHT|os;lo`yF^0CL1qX zKF^@YCCtpVi^rQMyP;wv?I>c2Y_iHnwR*|42uetf>2<=3p+PX;+akmg??db_zVioxF@uixldhoq!In}* zC05kC*GtV6Eb|I918CUEUBR3PZsC*Rv-0RDE0 z9Var`J92!mKi)Wl@~hdf-la>Dd9~>Xr));P)uNC(s}SgbxD|A8gvg}Ga@>o(&Y?n+ z>++jQb(0X{?)e;{xIifO@Cm(qmQ83rj>=rg@>C{w*UhI3cmkgN2B%1+@NJvS>;UrH zJ-GB6POjHcx6}%hwJ|5~KY(3+OFVGzFzWVrL+EGnv4qeA91mY`6njshQ| z+#H;Wa6&CAAjedePp>{`w%4jazlW8| zK$e{x<-Fb#$qV>QD$c=X=scnqq=iuKL3^lPhjkkEqpO$EkHn295EKC zt;uHprnvQHe+7Oe`hxio##@c~4yHhdnM$n#S+d+2J1o=?U@IBL{}i09`=|TXeY&U?tY#=6$qi1F+cfEyz~PDV=?Pp`lN(*JJhYi@fF;X~BP*4(eFSY$zh#(H03I59@+>177H(rt58$bYKlWE@Sbj~v)w7rsygPqutB`G2Z$GM|e@Yy>k>Y*>9|r_&Nk1Ly*CK!)!K8PRm?bDo3+ z7vQW#$d0C3BUQ5vI@XNrSbYg^j4%+qyE_eFMl*opIj1$K654rzIe8(cwzDW!ZGMqM zks%_*tj8iAwAMDfUZ@=2MSh_V2K&`)7*m(8N~uBBS~U_W`8siWw(U z=^wFVelE&8&0Ac7r#TIW&M7FO1m zU4_pBdai{Uwz8Ee#1FCxRRMMNN}?72LI^=$Wy|*4?9x%6kCe*APikoBayFJc(`|_u zNe4Z+9HgV|9SlKNzLtGvGF8VJN_GrT6m|{q2wP0`%Xxsjf7h!&4A?skIG}aR=D+bw z?8pb!wdSd{l=U%c_P#+NNI;^AR&o6^EjkNQpc#|j8zb8$xyf?~NvcGa;zsFIzFMe# z(bNz!;F{Q$q}R*>b?@jmwU^nch|rCGYM zyLBvVp2&ZpRfeh zL8l%;UaURDgShQ3JhMrG_dS$#4a>$7o@27@>uSYMDE1^mho4~Uuq~^0@~6pHYDDvS zx}N6r(2R-Jt3l?+klzOU*l|?Bge9rVDPMg8!B=J9EjKl!(Hk#9=sI%DX!5m*9(mmQ z2Y!tFFAE0+9<*(zoiA`lDD^9Lh|8M2X-b!8(1HH~Y5=bJ^yo7@8G-QyZ7f9WYu0z8 zDO5eaUo(a7m~dT#Rae>-Uu@N>nu0Q;ie?8pWJvz~bm&|sznzok6F!sHokbuh42DW` z2Y=v+rVEQRokmu$@wC1R1+aV$qN#2fA{uCGqm(YBBM51MB4G&-2M&ccHrjp$4+2N6 zQm|B~NI#;#qy(!y1`mAgGQpt(YJsyq;d#&s>9TW95@xm1VmIE=!-C)8VVdGMJ%dXo~zCDT#UtqH=;@x%_!Mx)FOJ(bj?eoa0xBK}Dg%|OuJ7*7;@+Ix zJW?sT=V@a<-XA5bs+DuDJq>n>Mw$0@rb5h>IU8qsjgF7)9r+r0bR>B@f(c;i{y+#7V>BY-xz-MS!jkRYdQW zzMnzXo?+2!3O)M}p8)A<^I?OlIE9Ohe3evMo6+G0m>!@uC~i>e4Upx?t9dH3C+pZy z>|~lU1<7|B#H_QPqtf@lNnSmeM-O37qRq2;h7uK*?Xw&WvA+Mq4i5hqG;kBmUdaC> z_k5N|-unSjbqn#h^0A_^ml|bRGPHYF?J``EfQe1O#552;rHXc*QU#k4_&W6dIe^7u zW`ByJjz{=@2vW-_L0Lllby3_&F~Oouo@Y@n{Ew);trS={3sYmHGbCPAT60{<5a4l)wR^B7;Ld4WnF)UMz%JbB4kU@L4X?F!{D#Za%9 ziJ<2n$F8{zV=mbr$5JcWLAtsI?l3a?djLo)EWah{uBZpWvVRe^mPS6nM})jf_#Q^( z72v!F76Eis$SF6Gyo>OTqq&Ak`$A0PDa(L^+^@o?3K&H{2`=aL6j%mO)sPA4SE3Et znadE)OCrcUZI-nxgC+AcU?}wo;islXUa2ZYwzdm<84g`|iVv4LC%T7y$PTf#4wo!? zd1NKeVB4U=mr>D5o&zk{I6zEMju!TC7;4~l3yj(-4CKiQ+!3~_tK*2_WouyQTISe) zO+_`9WAOde*lH>BHSVB-W5PqeReYKz+C7RhK^seKoMK)5o2O1RMn>Hy$3OdWXmc|! zzd`QIQ(^EAdS?xrpl}}_4yq;kqjsfwlz+60El#1$yRd_ccVJ4L6|9KbKLet|XMjm+ z!YBOU-Yon$UBTYXDzD{;rYywW^;+&Ap5aZ=tk;nNctWdoE69;2hLcY{aFc{3qv02< zJ}bBbFY4wtDdaq3fCm2+mmnmIf+ui$$s63ss+Hs$P1|+@C60u7qqXTRpU1TB!Mz2K zf_Y}GVi|labVMHnq&D1O@nrGCx`-}ettc(`A|rN}oA*o4kQj=T;l3~aY+M_9_ANf8 zA2ko+3Be2S0(Z>h8JNshnx>XFAJ3-AhcT7EpEq;ih7?lU2f#TP4VQ7+O|c&!m_f&& zEjnyDwD5h5YELJO3jZB!Aw~WJ$OYET3Vx&@>_dLYpcPfzj<>vp0T&rLJ%npI!hWg6 zdYr#Elu2+FX6>825kROFpzAZEfRTa@m@aV$PTw&^+~TiAk@h@$>@ue^vo&8}cgn|J zxjy7R!VmYkrY@>BYD!c?)YM*^B~@vRpDTgtp#$xRcC4)FTbjmDKUz6zK3XUJc$74vB{yUPr?|ik)Q6m zmL{LzrIh_9R|6=t$cgJXUn|8aAGJfTk-|mFs#-Fpckv z2WsQw@XOpSy(eSf7%Bj=w2Nnek*k8LuG_dvHnLb7VDUZ+0^oCjN4yFl>q^ENPS&BI znjKWy*KlKXw84Sp%3*4R576Z6v4+~l)g2(E4XDFyMAJSKA$+-4r76~*zBU|KthJUf zP*9dhjn`o@0rlAwaUlvcuhL>>-Bn!4jNeAlhC#+GRn9iBwktr|8*NjBJsG^P5{d2z znYmceGPI^fkn2{X7=yj8Sj?dvxxg@;Mmjw@$Aavu9tVE=wjM|doW4bWKwjXgGZaWO z0&%kZvqFk|foV(|0jH_yt7tYC=HWPMc@k=@Wrdj_XMW=ZD}=BZO^zvsi-r$}6^*1? ztbnG7z^yAZh4T$Igwm?rr3`%^TA|#*f)bmXD$3 zX&}nK!n4u-u24k>eXcRhWi;!0%TUWCk^r3lC4@%B{=MD=iOX zI8@RUXl_@WGM3=nfrRmJ&=FPqd0cbjR{J`H16o@nzo z$!bc_bz{Y1D^HrHBB(SffQ07Bny+#~IaS7flj{4i6mZgX>a4}DwSnCEBC6EzS|bfs zld?l00%B!jrCQcX`s9?DL^~Y<4dw|-)lF7j%Z>8Wn}0&#YLO87X^ru3_(FbwQ1c|D zfn&cGFCWvrUFHb->rG6FARCp972P;}Zx~wqUbnS{k?R7l?P&R@O8ReZ3r2 z|7&UC3_!#Rz`}eAuVD_fh+q@_=8CR$0B*E`ajUJXXbX8B#4_om_uUK*6)qI2`FIVD zuN0%n^^h2bPl;CW{m7Lb(e38XB>(3itbvKl!CSj!z2+NL8+2P?3tjhwn1J4YHGSA_ zprSs+ea**3YrQd@4py026w_{`TI9O(VW7VMW3{!t1;smAr13aT?O|RUJY-}lZm*n` zAD&ds-c7m?PN$TQ0E0dCB9DR}VuhfRhtZ~=z#sFUXKA6L!^Uj1yoC@z*km)~XPQs65r)a7Bdd}(B;c=S`t3DMoUQ0TCqek_s5-cm*AwMGqqrHM zS>Y-ujRpP0^k6@cL7o_~TA8j8#BN`FnGwrY{awkS#8Uv_>`LBG%CDmNokwp!c*s_v%uBd8)Rzcpyg?hKhu_i82ZnZ{v_OrG}<`` zgk2drx>==|Cmxq=d6Ezv6G50g_~BlZuYsbur=f3G&XNqz5R^SoxRiQV)_ysyPQi`< z32Q9{!0||+#cHQ5k)K*Mha;)s%&gbAW7jE!aq&4s^!K(2(R$0X*Zl~7rpWc zJTS-7tl$d66>{Z>c9S+10LJP{R5UemSpBz&6!wM^El*KcG||Mhf2l9E{IZwdXD8eC+1@Mss}-yn+05l6BwCq zwpob#Hgh!i%E?!5D*4|^afA5HwCN1b?B%-AA+J}28Esn5eH8O6Kw97qVY9|*wbuZ- zE?PJj?W#x-@StlvQZ_J3%xEn{hsW0dz3~s4GMnE*jiZ zk)eIp+yX?L7Azh&vVF%0k+fzt^Hcj?4pbX~H-Oh`!XabpGnCqaJ@7>@AMf-Q;BzBB z&qSHKT?2)A05x;3B&1wev2B6^NQ_C5c?HACuPjc{F>Do|WiiDqEm;2k^E> zRIhX(Mec-tfN|Yh$I%73Nkp?g^m>JOmI^D7(dw83z_XHO+{%+EzXB7~nX-0*NClaO zx(QAYUiOy7=%J1@WzEs20`%OeeXW^Fo#Ta&>J(3p*XmIPTw7!~77;BkmMTAHE?xJe zxR1P>G+%g2XWx(9p_i`L=WsUDl=EVo44laf){87FgAwyHR8y@|C3`F#^`k(*)qtkJ z;U}8r$I#&jH+HAH2{e29C|9q&q|XfEYho2{JYN#Gy6QIGb3yP8E#-})YJ zFZBJB!m!clIykzG%?L>4+heEl%->?rICL?M{Zbzf#4uk_C#G=dN6A|YsUWM!`6TA9 z91wNXE`v%}h!j<6xAz`?Q{^j$TE^jEnQwPAxt>6}DD(J7TF2av$sM)gx}@4v1^9m0 zMQF6{2_uAZdu#@@H^Qi_n*8YgN6R{WqOBQcT*guHQ&2Ls&wyRPyZ2G#HgKLjbD;B_ z>%@`4R5OC%up#8#1l1xNtxnP;QB^uqsdb}jpx}fP0UOo9Le(rpxzfIhr*#k3ux>HH zQXL*+cTrqP4+Gar(YOla%h!Ra>80o_f%S|#6LdfMN1=J_1lCDKi)FERwkFcb6HrUK zqmF)JEPZ)gIQ0RmUj1nm(7NN@04D>%MC-6>(=il}ne<8%zgx9$u}x#ODU4vMk$FQ@ zfAA0%b~;Vz!)_$+Sy8ArMw{&Cy1*N7($cRPmDNhWa0dIQ$o>_F0ZO~C>C=(J>32WX zXIu_NQTr*;c!htY+Fx#^hqqHg$rW4+9sEvg8CIszI{5d$0x$f8NHX8XAdjgW8Apxf zw)NPLFVz}PkdEDHWdBCwsT3`+1WMfn1S+=ZIoQ9&bn%=yjC|*@GVXI?E=(w!Kji;b zw3rkq!Th!ZYvB#(b114egcUM4c?0G_%Y@d>D9+b9s61d>M|GxY3$<`FdO+XfSi2MW zyA*n5p!t(~)Il2RnrD`o?B^J){@5_zEbAMUi;sEu(>?G|*L>41`aTeKhj#jYDTiLX zhCQQw8m+=m{4?beLI({eZ|28w7Y6hjU134Uab!;w%f#-U-_NvLCLKef6|jU{i%lGP zDo=uqvLLLD>1tJE(NySdOl?wFIF8`hc-Z6gNtlnbNWrWnIO*E9$Sk$&3eBuEQJD1< z+L>=zL?IF|)71Ig6a^lMbfl9Nh6pWU_!qq7z@;zz#)GO@d z{3Y6A@Jb34woaxE^LZA(mr?986O4VSxmlGRBvr9I@n8bx{2`~NwdTVX)3c5fFEI+R z@4GF_E)s3a#;2F)oe^RP;@zooJC-e{-A(3H1(T_v6;0+}m>hNY&`?9OiE}{(&mjDY z)?obIeW41P`fIKZ68uFuH~rNaR?1v$x~StQ$hP|Q($lybYBrCpquoEXJ)|7D)X@5% zS<9%YFFN>XPn)oo5qg-ilU$!@ZoX6C{M!ipOH0`P(VBO%khPhkUnLLf=2-J#SC=HwBH4}z5S{I?kYxE_Cn z+i2B3F@4)%b6iZ^+MaKthJ-ib-|;m0OY=bgq~6QGHT-)B{t9XKKg2F-J8o86)mqKp ze;h?uxn)?5B3d_?`>(Jjv))QXn@eI4sfL3M?;ZPw{P-%bOBu@Gg_I?$mG+?QSjpJ3;C6ZXqFbA{SG z%e;Xt?p7yx>7{cBvd*)nSM^(*+b)=yB@{S|U~PX7Ue2Vq6kWXC=8>*iG&M_&6w^dD zMp0a$?SpM&Z0k7-$XD*Umt2(`BIJ_Ii83n|F#N>q}Ve4_lS6~%mz_VY&&;# zVghcp{u>f@;~&@JuW&oXRofm5y