From f1b50edff6cb8abb3726ab74632a3a335eea45e5 Mon Sep 17 00:00:00 2001 From: Nick Minkler Date: Fri, 21 Feb 2014 10:03:30 -0800 Subject: [PATCH] Add overpermissions support, fix missing licenses, and correct all the formatting problems. Thanks @OverCaste --- lib/overpermissions-1.0.5.jar | Bin 0 -> 123761 bytes pom.xml | 13 +- src/net/milkbowl/vault/Vault.java | 20 +- .../chat/plugins/Chat_OverPermissions.java | 293 ++++++++++++++++++ .../chat/plugins/Chat_PermissionsEx.java | 42 +-- .../plugins/Permission_OverPermissions.java | 175 +++++++++++ 6 files changed, 513 insertions(+), 30 deletions(-) create mode 100644 lib/overpermissions-1.0.5.jar create mode 100644 src/net/milkbowl/vault/chat/plugins/Chat_OverPermissions.java create mode 100644 src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java diff --git a/lib/overpermissions-1.0.5.jar b/lib/overpermissions-1.0.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..c84b307c39fb3f963ab2d8a19e1693a3414f81ec GIT binary patch literal 123761 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
    EUUOmZ_)Q+q_Y+g%5xcM#3nYY}` zU`cvN@-$LEnK19kr;Sf@=rownTw6AygiRJx+yE_;GeQ8p`%Nu!7Y>n}-IQa%{eEZ~ zoE6rW)9EJX`y^};v(26~w9hS*bY@U&U(}OE)-2v>xmwY%s7SAvQY`%URB1rbDp{xu2`&B~6*ahsW_dJ6lGl-Nkn<2&lAP}Sp9WuLN&a8D2+S?{Rmh>qa*nE&j7dx5 zVzQ0XwEav|k`dOnl-M^IB>&t?qp4Yz&1r<=TQ|);><60ZFrVEBSkx|XeX+_s1Xlhc zy`_W=2=!uks5TB;tY>6MQQw<%5~Rl7Joam=ZQ)2`}fqmbdG z*ouf>$b7sUu421*Cm+2Hd522W>StmrnEV$riT-34v=_&6ct>m8ZTdNm`C0_i8%1_&!m& z*9y3ULU{~AsKWwuSpS`c!)(>9!pqwqqV^V#Q6GXb&F(js3hT_^$T{JLW4b-|P;al` zhOxpfx^O_*i0#yJ(Rt0B^QWyJDZI9bv#-pXkst79JB+rwXvz6PM@Y=(>5xxGJWe-X zT{8>?F(Q8)NU-e*jO8f4yK@0DbxD?RXdb~(yMjkDR2tfL8pl%y@rT;so8lz(k5YmI zgta(2WZHBFYWkD(uJTFVsp4=G&QUKfBw=l4J$=!-v(l7=N0Ulb#c>gxp<&sCK0`wG z)0X3*vMl)iF%$ExvBlIsa@dM$Pa5)@@oYBco4M;yg-imG(V&0qNa6lP!N&?iB8Ee} zCD;`49EcwU9WpY;4QUWk;)9tu3BbXIaZN{t&XtmjsNq+z+cSE}w#bvgiB@(^nU()- zqKsm*=k-jGYSd1ui5FV@vAU3<&8@wmMSuMR5K~BD%2o7hyh@NJdxXA%^G;-2^hAoB z4Q8(FzMw$$q1e*rxp{O{^1)UOz*CT_T=Wjt$q>+44Xy1;jQT5fggIA1yWZ{)&B}?L z1*^WQUeoRG_Ioh~c=3?Yd?EER43>TINRNjpj>MCf*dXn-Q#MX2>}z{w(49r?Q4dx# zyOA;Ed2|Fe7wbi^0S*syvJZR`KyDijX9`MT%f~IY262>))cOcodopggvp{OVm9vqB z(j)4fj?2?mdquR1KaU|iWTBbwSfVad-DMP6&2A{xSstlr3f@Q(`cBG;Wz$NG)2>Gs zV^<#asnkpJRcI;|Lw2jvr+Zt{b~2LHmAt(Y2=)!*%e2g2X3-h+;b_G_lm`H_UtZ%% z=6#bSL?KxJT$kD-FSO1opKhEA2zJhY$UnN9KQf4X@nBu_%D8!Uf!L(3U^i|_AZA?o zT_!#gaT~Nio&8!ry3Y%CgLB}O4GTPg66H;|2?)Qg-jr!iey6GhyTWf!y~iJS#4GOq zC~{kE?oRSAn{N(#93KZqyCf=XxbHN9Q{Ka;230X(n8qqe0FPnfc{aq(%$rwn-z?*j zpM5E072}5Cp5P}ELeTzAUXuzUl#wTuygUvrw=H6tEQJfh?TvUxpZG3uNTKQ=9G@6N zUt-h|EKO7hb69M-D92JBwz(*Szb=iT6u%50cr7FN(v@FP3bre;Z3?Q%Bf`!j>0{nb z0KqFJ$PifBwjNJ8lL)Z2$bRuo!XLn34#HzGgEa*ws{d zO5E6tnHzc#!5_V}0zlG@TjEFvvg<$Bwt$#4MvIn8V-}!4M!0eT&|>^%GBuM^HVznk?W|CH#g_?PjEhr0@0@tH%#e zPRS_4qX~nP=DIu8x_kV~)t^Xkg3!cCP8N2&s`Cer;B`wGvkJ0T_6o4)rH@5NcrG|< zQ6;I-^N&TcQMsv>t+Sti`MPu9Q_X-#QF`PSgbDRjA%tMl5Ayb1Ou0|EMg@_?nORb= zl<8uO@(e!&Lm={GS5p2MnG`5X%)Pm#Qg0e*Gk?%xHkFdCrWBu1hsiX52I2$j#|LIc zs$fzo-~#0f^Y|a3TOJ z{H0Xux*=fC0~Y7sLIJ|7^BSLb`EUtLk9t66>U7Ij0({8L|3trJ02OOZrw~(!A z45aEQ(Jel3n(P_=*ka6$$WuUf{g2a({7dl%^9IP^Th_VZeG8&;>QROF*a?+z!1=Zi zS!}`9p~9@0!riYkgy3_0g?bT|kMsxa!TmD8T^KTy6zoNdiQ89 z=!9x{QZ~Hi5!oM(0(N5Y?VXm|kv%km(ZRpofAGg91i@f8=~L}ug2?@>aYCgy4Z`mn zxW-J(yFw_6M7%1k{JYPF$LxBg_jarI7H(bz=6TAkP)^&Xw;RVT9XG2PtMopC>@pxv z4emmchu1U;@Je!dm&=(a%E-ZY<&*~T-wa;bBx(rU&*Uq9A6wg_+>*)VWKD?mlZY}% zf;`ia9MTa*pf91)5oYm#Yxm?`y47SXk64U8?ZmhI$4p;Hn5vvqI-krNQ*(6Y0ydMU z?MZ%RLa{YOkG)Ur6;NqOFjFA0DmU|B^9G+QQG3tpm5njqsWYJL$;HziJ9CoUm8R~< z$KgQ3;RMCuh{5roX150ttusNeo7t9af7A@b(i@TR027$Td9~agWN@J9old>uxjgW9 ziJ$J@BM2n0j~wRbt4ZPUZyZ4i}7GSJI5Y ze1;t@(a;Q)Y=N!B8~3^74Zvg+OPA~I*Px$L)OoZP^gL7>KjWZuP^kb&pS3zR+1OlIhXAZ;`Q^N62^pLT(T zdrFMiY|6E}a=0p1U{h6H7s$@rKz8w7LdpnJbQ<}k%7F+FW1)SOk51M$Mu?7iSY7?5z6)aQKeAq>`;bclLA0ne=t;uO7w;KtI9fJb79Gb+=+5~A3fUz@=b&b zV8su{^7}<=Tgu#nzVxk^#_h?;^1)NhtKLThu<6S=GrIF1qZ`^V9jD~!hSqyUS3_9$;h zZ|OQMZBe?(RFHb8b%dTpK?`2c$nefHhy+(xB?J=RMKCuh5p2R}}&AE98y>h@y#mx2=!J;--=_UOGrY zGdD4Nii8z7O08u7{;|jN%I+8WmiOL6&SdZ@ak=b;3i@D@KSF~JAX$KOAbld)?h_;; z3K0eDA|K`w-||Xryil!AD}1NSXnmt|3o~CJ-cWlbTS+Ld4)y2l{33Gp^oc0HGW0-e z)L&HJPjLfrm%Sz$s_B9=WB zKo`Va&yX{kt|NpPA>r?ieXrfC)^o2~j*g4&ix2;bj?z*JmPBxuUVHy9*KDuKj_DJ= z$_{S+r-`1h2#Yc&E8HmKnW4s$HCXxQf+*DI1WHd$#aifdfAA-Dp>AqFJ?HwBwH=+s zv9f=mumbkymvk83ncW8_H{5I9-0z)<-8V)Ab%?r2qx?<{ak`5kz6Fg6x=l%VXhFUu zjWY*p0;>W;GZ@_OO6K}7_tx3Ig^l*E&)L(T#f|JKMtkA+7ar3xGi1`Ed&XiavCG zekiyCU=*TG&blfS5mD3O2!~k?UJ3a%fG#d~L_THHVP`;6ru4+2fYNXZU9qdZee>WK zEGqnHWC2Yh?m`GQab8TEnURR?k*H&oeGm3rN`9!L{dym{0z+0@{NvsULb2L9Io*C@&3$O31YDZ@Fad+WA){ zA+-yi^yyUC2JsUb7rn{{?(8k1w`zAoc^aX5hFjc%0UVd>6;Hw4*|G=Kf+ef$+PPP) z?AnD_uk2iM4Yv-#J-BT9+1GS#0htpVSHG6&nYq_?ZUKdplM5hdwtm?|luM7)Nv5k` z{dCRznh?_o9e1zjN$NR}Ia|NxfyTwJc=~%5OWeKUCoAVb?riJ`&#LL%h1Umef1yR+ zxiNjG`_yb8nt1G6#&E^CmN?eykt+@4O7%Tk6=kXvUzt^JZ%56tfCuC~i^%I-bkaRH ztMs(~vF;JxrM@N$XK78#vO0dBG4B#}N)r1bqcm&IiidS2BnA|Ag>~iaETFz6AVTVpr;60tpcMPTugpSUGmb+du(T@?`2zPfdMB>+UH-Fn>j$%vKJCAz$(8X?-a ziTg=oH&S%(MS9+h#VHC)_8ziJrpvENQVJ~uZjq9!5X~AwbmDueh|iiRsjrD3n~`WS z%}YmmnikctQJ2WV7*VYPd!IiFNv2WJvhM1+LrY2a{mN3g| zu(GyhcXc!MuQ23PKu}1!_1GuCDmC#*DBARtiJYW^7z`p*MXihVCQBqN*jaFVp0*+N zLwwb`{t~bs5a;&RlPg}L%y5Un4z0iC8Hi@zq)8$~i%>WYEvYtd3mSv1n+|JPN4ISK zSWC+2AluHM>~ociiO?30mS74!vvMSFZBRNLr`|~l?HKk7lx@Vy1hY`x=PK->8*9E4 z5!Bh5`K{rWfN{&_0p=>KkNcab*#M=|EXgEOPtUf`yiCPg|3S(%oSBFUMJW!a0+PW} zr>BdX(Ib{}U?4GbiD2Qa3WAoTu&VnTGCGm^HlE61o>3?3=?Oq}#b4HkH~`pJR#e|F zvkIGG;&WU1styS+;ytqqGP}s9^PBgTwp%M@#~TLb<`m?&vRN4gK%KJ zEt18g3toUzQH9=xH3y4GJ^j=ddl-UsWrqw8x?hq>H(8uEs!3xNpR`(tHimXWCZsHf z1z#GvY|v)mKVDo~)W9bidp4+8>0O)!g8V6F3dKcje87b7kU)#sWYa)9K1bL~GxuUI zv6KePo8>h(@EzF>z`wT%@;{n zvdc9ogDnwX8!ix{{+_I)dnPKY2$=LRnjScBlW95|_48(bQ4{nxZsGmwu`T_zRruoe zKt!H~v4w%x2!Z4?9e1`KTiH21ml{`>U+fwL_31Dq8#Ug3%A}bfkYQ9LZVY%tK&JLF zluL|{yR7RTO3d4lwWlM8=GG0AHN!E2_Wp4DtlQg_2>$4^+0aC`_x~~HJWeQVq4aLm z3m~aou3DIz#%PqqXu~o|U6eG5mOn5l9gY>MwJ-bLg$U3?kfJ>SGd49P8Lm?ZA1!<$ zqKs_kX+w0VP|>m5);QX&h|~5Za0#M^D70gmTDr=C!eDyZWUw7|4JO{2s8omyt&7}q z=NrqzROA~Pc&q_T8Qfq(<9H^SR4FY)G05r;0AbXGLI-xbnU?!>bOi{E2U!6We%M|t zZi#Fhe0e^8*!e1fvBI-&%Z7rdoX(zOkw{A<`0oAy$@=B`HEHPZmWEQ-2w4c#a@ z7sA?xI{II5T*2t0l4}g&Qkev{sC*hDS&~VFnXnNKP#5Xi&jxA^?DC;i!_Qmo{hgcY zr`qtnG-NP3ai>a?9NP_s1yJ2{>t7?9h`aq6Q_#qWub4Kx__l}z(VERHHbNHam-pDE@^aZ8-yLbiABA=HW9)s>DeQ~Y=-z{KL^x3CP>utB1*95M!1SwR0yU@cJfaUn|?1;-H02i|Tu=*g||xhg2LcUa%O zG4}Txj{m?EvQRzg^53x?mqvLY9Y>V89mmCxSCpL0R;19qs6jj@2qtSeh@odtV(-=Q z&8<6D4Cgcon8ygZ3&<=hxQ(m1?6c7mT8?0L=_Y3fl8Hh249VWDN}A1s2Ut!I#T(Sq z(`40ML|5%{oLoyO_ip*Kcim2n7=>$dkO8+aCRN!Z*?L}Ud>_yIJ_beMq`{#kc=zGXqlSsyKP$B(O zfZkrwW;=eRXN8z4#z|3e`>O!BXdwDAWpgu~ax@>GF~aamem$106%4ja=sL5TNti%0RcZ(9>4B-Ei;ebi5S=q(wPtv{g1gL2O8}J#=01-W6tym znNjSo3eGENJ(rB-F#m3zA&mGXwA13U28oR;GpJi{0N?iv^7R^&dDwzRr7AZaLhqKmU_VNkRarP##=9A#&pNEH+F!l1`y~4sAM15{uwOOf z_)76VIs9^Z@Q>Q^?z|P+1bSb>t$|(oaeM`SogNF^C>+moMxV6F2)XQwL2b2ZID%CvG)PBhssGxB6>)h_6k7_IZFQig+&`#Z9& z^YECBe{7Pp&tj`P=S6^zgNQs30d**v{;l&eXIEx2t17MgfH%(M9>Y@TVZ$hGu0a1w zmACd}6tpHxLO-RyoMbVs4m4-`=7bklYRsr`T#_bGQ3I(9YYyTfu}`KUnZ=E)t<1sI zZqy=M-Y;lvBYQi@eIW_7?H%i>S$V-g|Ws)(avY9qm>$jsTaN}_?!$C z{Dc{8a`GCIvmiv1rOL(E6Y!xbN~x zPIk8bPwP}}{sEFt#EU1auRj3GOD3(2%ZS(WyBa7)uqrf)n? zzPZxbB(Mv2&(5Hhub71bX8sa~lja~9CVD!8xpy18lPrud!Z41ocVjF|4fJxXti(i03O{)hatu!k6!6gq)a6 z6|FX;mS@JZ#x9>{TgdY57&ezO>FIELym=S>l-CMV|GLm3kCkmSZbIn>e<3T53n1IH z+Epu|_Ovt2sQU|6C`V~VU|i@Z1X<$-w5_*encyvli1LTqN@^kk4R3~yC|zovnqk5A zh0|cYfvjR1D)p4Tp_&c>VVc1ij-7#y;*E|Sk_tLCvcl||`Um-!pZStpku@gCR(#;f zI-+@qEeuh6I4=cT+&Uh6t&e=%P<25YgtN*?Eh%DDIbw7?2TQC4B`RD>%wh1fuZo*{ zz7~^w>bEvNxY(7{Cdi=39$iTo>w;U`Lg-kOcY<0_+Bsfv+%1}fa`h<%z_65OO4a(2 zDUbd`Y?ah0R?edUa(hbFZo`yA-2SybFal3^xP>ojV^%ksgjBm#tqNJrU43;*u*o=W zXKg6P0uYqR)xhfqT&U4(QpLp=u@G(G?&;pz)eQqmWF2lAUbZRqII#8SH za3_K!*IO8+*%ilE$JsEO1f5(zwJjNITvl8PK!4k|=I7R{oKA)y5sCQ}vn}*O>6Yf@)AO8+!(f}irBP;&r^m1mrY4&$qR_2fNxmD%jeOD0qK zf&Vq%As(%D5wz)%;&pN1+w5D1X5N`4U9U}rwCAS3;ixJXQ#-DmxTUy6Nx!ig>IhNG zX5xtnAHG}X$ZuM+Q$@AR!OZN}NH1yPaoI{ue5v=_wbCSkgOE?JT>HDw?bs->O3&e) zwRNL*Ol{h-2F{=-nw~(E|L{_2XWG*c0O)P8(Z+nTaam9Pk)%7 zx(5+aVS$TvYt!&l!|4vXX!ip5MjO5*LP)f}PVmD_IRb6W9O$GqgIw%PhdgDCSBY4s z*(fDb1FHB~>#+JZ=56wFl#D@ilhZ*;;dOOc+9`aJu|=!q&}2oq<-^d^hS$M$VRbE0 zePHZUy>9EO0!Z@?#wd!Y17st%FT8bT_3Wpoo{>rUs{YGz_;khOG%j1uIyDGY5y6FG z-K^OyBp1c5Se7bIU)FePDyzo?1mn_it5u69>sKh<_as2u7cUr+lws7-omnrh*1tLT zSLAKQN?^*`K-wie%~Sdm(`|UWvD;uo$AUKXjnJF-LETMY2lZNs1g0b#WrzkGdrmBR zT;Zk>LVDVyg^y*v--?DvM4V_heDl0U#6|BK8{0D8+q5At9+!pwl3Y9mdo#*uV{K1+ z?X+6R{;FR<7Hshd8oF!gxAoW@Kdeamd9AhJRMFz`&K^wRuM>NneU7UtRN~hu9Z=(6j!_#x@)~Q*-2R^M3)E^{^gazoJyl!XAO?x;%xe=c za`SSIfOFx;ZyaoUd&vF68s*GTtD0DQBKXgxi*H;El^Bb(IXXi|qB^rHU@uy#{V#F4 zCTStHWtq=5r16$pY3gzVcCc^eRZe=YZi+VPJDu6$Tnan_ihV{7@@swaNAixAz$Gen zG6y>}7c$z<3Tvyue|vSb3&LB;hv<`V2y^Y8nhv;zuN2EmhH}lJpWuAfU+i3_ua1q- zmg3@ov=r6R1_9xg=-V->t@ykoYD3}o)`F0HdZ6&#P*d|_m!+_Wn3Q2*yokB#t)_}T zJKgh$-6=W0Vyb@Y`ieogW|ly(!sE^P;HZ;6XW{&3h+!jQ#1K?NqEE73+s_N<#ChX) zW`TZW(GNIFw@Jk7TN8^Wg;cG(%=-fj{pwq~p2)MFX5w9##q`|Sk`nPKk%A-;kPRTk zIBCkD7?USnMk9!!kkEdA0^chJ2cv zq%}dsNOGj~hS)7_J*o(1=9F7nVMjrF4POaRazze>Op&lv6cjnoThopDMaVQ~0@blw z1?#u*=l70$lIU2Hn68HU;pXr!+7MR~qpcwmz&r%X*F!$v`*R6= zX$UhT>Vs&Z=yFNvyb)3|hl2#tDc$3r`!M?N+MQ>lHDq?^N^BXc8ofeVcd(2T zSTK{C1AT9;6ySqiZ5&B?xJp8a5vV_RTl zk>gkhG|Mn7NjKvjm4(8wM1eOsI-*u11%P$p!CUG-qcl2kBL z7PXS@JKAO1(}yx43Spiz`tgz*iEhc7HE&4_U*yRejz0UVqA1^m9lj9ujI`sod6PI@dBo8y|71l3+N>Xy?U@G1VZ5gX!RV^PIaEb$JiD5O^e*UIWOm=1P=Rp5(4Z-v zNWg&8osc-%#RD&6M$mrpGN8r+q59|3le32KN$mZQikM+qRt(8z;7H+qQ9% z{A1g;ZJpS*aVGcsyi-&2e3+@JTGhR~cJ;UJ-D_XH*6(8bqmq_YP_dP55h6leu`)=O zWkFU*M=xewpd^y{A?%3Km}S8>YBXxXtxN=JTuZ86LNqeH{(MnMy`hJbS8!bny;;_) zM7*h&mT?4Us`3Yt)!m@uYD}itAX<{sD64siYBAO&P8NMUS4HZRU`PZ(iH|>MBVJhU zA6ytef*C#plfoQWfM9TL5%(k7xnS^jE@Y)1;OLRWi(lmFk?!3ucO~Bjbb=$O2kFuD zF)5@2s(TjjYy*UKC}b-qLZ9*lBePy>P);XD^MSsA!y66ut=#gS}$8FdPId2yUJYu*U+n$c_&Skk<;&e+ip87sMF{jQ`HYEs%#S;oK z3jFFNRDqv3S2~95MtIb8QEf1$AM>S3SaAE3*&$a#w}ibiwvj;5~!fkPw^)e#ajC2042F zeV>m~rUP-4IxIfOSyLKm1BV;EO)+<7gE#T#)DhO^9L&GERhVQ=5*~>ml;8c)^ zXRvZb-ZT`%X3GWCIA>0Js4y0N_-Od{8oko=xBK^&VxRYL2zz)i#x? zBZ5OGWU~lJP#i?lbs?anD~&Y$v&@auQs<(n(GjH40k$Sgr%P{i7S*?~%#&8rVtfWO zxPVY32r@RO1sPI}o(f8lPy`n{?fn%u5V*9Ca|3045^B9gVrn}6){4Cn}!Xvm4$7^l}$AOW8THHsU*My zP`0JNbiH^lwCVS@9d~~=8g!36uc$^ZF^!iJyMv4tJ}m??kc7abCuIZY8g_O*J<@*{ z7ml10u*QOm;7(#YY-Y%)b28|V#yBA7H&ZgV>X0Hhccda&X`g4%_KKym=?88 z*OG!>e^eE++^F0VIBlk0$87_dJ*j74dg;m$?>lhpoJzmT(30?CRC=#ugG@M!@xXU{ zgkBY-&P-TqoazHwxzE{9>_b_3+_~noJ!JK2Z3F%xwL4(RtSRr)%ubAHZ!_3o;m$a^{5|X!n_}2U2=))PJ47h!-lA0N$ot#FhRZ(XAU^9FQrNtGfA*e ziLMz_9Jh5G{eUc{BP%Z z`$}CbukZlXjO0XBM*UP2_GDFtBLic6rDabX`j#rX~5p(IrELX{!qV z2Pk`i4gLfNz=re`R#<=Jy5+h1s_q{ZpiB>8RNXP?A+e-2xoo0hd%~0PK|ULy&M_DMV|8$X z2p9ew1{Kk^=rYumTS}-G--WOyhm&)@6<=PHheQmbz`5$Zu|>M`_Oyhcwp_2k{~7;IiMQ z<%7x&`C0U=?TR5B`!RcL$*?V~Vbj%rm>;Jkm4f>!rvn7z217w;lEY!a*Zf4fE$d~i z1N>q`y@<&TXZ#_~;|CS-!UR8Ii|Z(nLj*&sPZwQKyu)A&Hlx>~*|NLA+Wpgx8&52l zCw!TJcH$m=XJBxyB$Ra77!3KwMzuGwfp#6FDLfkkUcUu-k;T z3tw5_kup(S(r?a-euJDDG}UUJKqILvellRDc;@cH$(gBBLxA-JHQ4M+4T zE3;jg5cLCM3j;@6zPvIOgIMwv2R_3`1p9G%f7zrWhu9)}YYOWmg?3+B8_lGXxMxC{ z&0RCKE8}^HL@p5P5Im1j6Rd;aYW);Z^g=-Cha-D~!ug{5?b}+-ZuiUI=}K;TD`xhJ z`s_#;JP^YzO1O}JVD%qULOBQ&OROn*CHczF*7+}7T*6+$^cEqmuRhX$r1=@_%rjo@ zB=w&JX#QsFgM&2_rjJdIN<>0*6xb{3F{q?+p3^(0`if7sD|BgulWlYhpW47@v34KR zsAluHLUxc%FMZcNL-mZypTEFrmB+)=GBV>*P;GUIM`cc1YP2cJ1EOZ5%`#QV(sCbDtrgQBhGaTcNVoxu?w5C&4_(Y zanuFfkF%f?+XbCOxjQ*Y#z!9!8!29qr|iq_z)4mz9Tc$VP-+vLjnJX~g_ z$>_7i^AvW2xjd+JY=Z?00L>B`B9HDWyUzN-)JljulSg{9&y&Qm3zhuVM0zi$obg8F ztc%w4j({!qrD&WFJi!gLh`$W#ZM_RKHBb+(BkHAvPXdIlF#s8^PP54hcH}<+O)x6> zyF_epx3EYI)CPFPBB&MI^A6=!EA5EMnB2VKLENeoZdC;j1lhNLI7`3<=}Hq9Mqyj?9*^lyE+-8_I83w1_iEMaW!fsZX>BCm#4+&@+=< z;R6o}2f|;CuLfD8;fmmd(y?XEJcQ!7uToI&@`0W0(B%-zn_hJtVlut!vmdK(W<$dEw{S=`GZnh^*O4pMFee9L0Mb-I7VT_mfnk zXorw{567G`qdvvQ6OUM)7CWevsvoa?;J8>2@URi%WPv2^`x7IV@=oTYd{APK+Sx)C zN-}+5xL8ut4%+ih0%;d5@K52p0ys#vreNt0P!we34i*UK19!tvlaN_hwdw3^>f7pv zmk@=a37}XTrS65W(x1}yYS>~Y!3UbK-t)<=wZReb!rokM();wy8~3%^&?T7W2-5H( z^lRrhoJO0@)#5pD$>!Z5NHt);&{2HzWW~POB6}1{XsL)67f<0bH|7~3-iw9&Ip*>} zAAN;-W0c?ca7IoREqZ{SEr{h#qKEv`Lwr1Xf*A98^yGo(tUbwd!XEkbOxKG%v`Ai% zaF*9?l3aJCR|07@A!}R$O*dxQ<#>%tH6eTx-t?-H(6fwcDJr$8g|Ta-aI3K+b_}rH zo5>FdY)CagW#N;rXPh$T%YUT|9-#w`qgjr2j(z$}2_1@Q1#D$Wo-B%F;zY<7ArM&` zY*~*FUzG9Jmj3F&z~}*R&GmNCX5E} z8XP4}#FE6vv8k9j@NoN1SqDj^4Kr4n%rd@_HkrN%!YuOHeigHzzu{O$NSk&f&R zJ_9Uh;pV5Aezo=?ZNZ4TAi~XG?T!)}L|g}i{FO?6nA8mmaVm@j*kTfb zB;N8i49GGFcs30CFbqH#0OAJ&bpe7nC4!qH#sUNjJtppq1KFCGXRqbhOqkMhgu7!v zAo{d~4xp&)Hv!wstSdk(k zoAB)FyD}f~#ks!0&OW82j}?>{zu80v%q^eyywgnXS|RO?0ZHCHEyU!Edbfo_ z=d46eh(u2cL{H!e?LgBn@8 zRH_FT|4&de$WOFh&V#E7H7%nhWe+lFy7nfbur@T!wdidU*RO9+WLjW4Qh3$I7(6fJ z#nc@I8}q_%$+52*I~;V~2sEb0;NLF@QC5KcAsACBhO_3G*CNUMNli(-6Kjf}Sl9=$ zrMaM$Hxg@_DAN~!^=J}#Xrz{;&cvvt?eD3^Q}SI(l2aK1+G*v~lr0E;=(mkd!=kCu z?phU(0CXyAp>>*+YH(kQ(}z@nCb2Ua?Nq-s8;0ib<7o_DyOtT{+WHz3UDKRmJp#ux z8Y^9kpAlG^tx>jIH-V+JEj_Aztqbs9`SBclY^T`AVEyyL>0e3Z+M2&**gw z)Zw#|-4FUePWUYkZ#ZXvnTSx_F@sJuF&%L>94vlRB)4KI7Ie?OP%*tCR!e!b8#+YW zl)C^Y5X*^QQ7TSj)rX=0*s{tbnXi=b0B4vGPZ~K9Pl5?^8c)?C*+T9yMj^j?WvKp{ zQd59B4J%zgeFJpOPSB!#|CxDuhC@wL+>}){X`>9i!K9qQtUdA?q!9?Nof67k>EY(^ zg&*k}I?84H&%(6)pHns9h(#B^vwj1_n}Zzm5+y(vrtSpjvK`19x{m>J?E&c7C!ib1 zfHCBV3%#KOtl@{!r3+SBpOHqYAMYbn4p;`v0{PbLHv-i*0sHlUzrJDYo@fW;Sp)aX zgM6~U-p-WpYY<%ti;Qtf0oJ^qEr@M z;E!;3fB0hmC2LWUi=hsB+MQ*zG!YiFCz%gakW@tUTjF zr82sH(TmhyUVoL6o5gSzc8y+SViamlQE>ZWw+Y)N&GsBG8h@b>Pe^#R>!G&IzUR(e z=IgN5S5mljeuEFUd+L_~(NE~T8DA)Ow>i%V`3{}-yc%@^pltW~t%+cRJG+hA%ly%l z?#F_Ar0xo~dFu%QFVx4*31Bb6vy+Lz6?NQw-%^8K5^M~Ue}cvLQOS9;)5(M*HKwbX z%vQ|5gd!#>SjDH!`!&7-BK2M!wO0DRRFx@6#vXS)x9ldyWqmYy3TI{csG?a=5yxE+ z`HjFT;@4+a>3A)2YAsjZvfLbY5vXIMEi#vS#qRMuv8&;D)zw65VN*wu{J*j9P7dbU zDR=q5gHBJRq<`mv%+2=W3o87cfSs#1FB9hmnae8_PpKALxBSmWR?&05A(Wj%yKNjy zskG75WE@E|*EHy~1b*Z$lfD71xdyUJ+{6>K47Yk(sOPLhUCht%&O)2y->9F;p*^0a zeBjF|$)a?Ehk5J-h1tF)%N{#7~%M)^+m{uWbYd%YvZ9a=? z6EIZ|lxggxAPhd6D?=}2XN#WD`?&)Il3f-DMpOtSi2;NSFEj#_01ae92PCXL=V`?O zlnEq6@huc;gCswHxsGz*4d=XHvSf4mn+G7R0RElJ!0@h3&HZcV#KbNHu z>iO9`T0#GRn@4GS_)Z*W?`U=7poC^0_G84Ar)ZJG;q<_Zx@44AW4Ol{YYc_ZZF8`j z?lnD&$4IYMk?m4!d!4$uD|Nk*>>E~;#(k0Xls4m@#^M=Lu^a^iS7Nw@@+Do}Uz8Qm zmI>#fbM(MbsY3NIL27Z`THy3T+tEJ79Vr#UtHFAOYT-YQ7rJ^*nZ}(PM!k*bzg%)$ zGmY>&2fJkJH+&kAyBf)BTK;0c#eo`8&z6u^DE!0hI#9F*Ho`wUmzGw;1vL9v*an1^ z#r^<|#n#VxA`ZPQuB@_ZYVtG3(n$m{&rqJ4)OH-fh@*W*^XH5%!2Gojp#^B+_8w&w z-KUd3PAfim^L8uEMbu|SPRv!3yby{mba;gMkZK}Kgvna{z2PDnDEYWln5!G!Is;8u4=t`ITT z%3NU9*2GF+nZI2uLM1Vcc$?-1#B((&(t)!lrGD2IA)Np2JGNS@x3&Oy(GLVvBmK!X zxNcn_D^gj`CgxfdMYRv$--PjYL!A~~7nwT(q?fm9w4tv#RMtCG3VX~6Uz4Y6wnC+4 zwL)Qikams^*#<;vH-~OE((5gp;{4?zptOhr-e7`~$IP5b4q_86c`#@>W(U1O2ymkm z>VySs$>}Z&D%(F1NdInKWOAi6a}w0qOB7k?&+arz#2UrNBFeST&SDd&#Q74PGg4!nL5jY420aKFR*$_Ma60^rE3l zjrjUQU`aA>eQ0GRC)X4hQ(O^^!B2PP3Nhj3yIlDGP?6>x{=%;A|Ldbly2#!nU(#Y* z{0_o(N5XZ7!gUA3btkwxq~9N@-XFOd@Tu)m@y?;>AMSI$6Yz;E^i8i7+3>Tt0(S#H zdY*Tt@s>w9HZw%LWnvtgYh={M_vtLXCx^cI_W4L?3!r(P^*)LsKZ)*sB0GFzarsBp z$Ag^A20Wbfy%E;c=?@P0fx>>!GyMxXuGAOV=!H1mA=-Y!$nb}k`UjEpty@VL1?DKQ zjVR{U@L{ZVl&;-0q00jNKubc?AY0v0cqPt#=kF$2$(K^{b5IT2RRJiG3;tpk+@t zO?`+Pq!H|M%LH^=X&s$}4$dM<9qR`taWi>@66>&Z3KL8V5nWbm#b1=ks&=F%UR~W) zR&Z^=U(ERQes;`X81nR=^N97derP}B#!KzKxwWt2%Dn_}s+`jNNFv1Jg_R~=j8{o# z#9pc;Eu{9<{6GEQPFDEi#pFun)u>MkN#(sOnPC>X7EK&LKGNXv$`&0f@SkV$&dmge zi(U&b)tKN-+b&th`Epu>9Wbu75?k7d+mVm)S~y#kPlX>%sFs)$S&D8zrr|<@!0(#$ zTgq7__B!fA|*7JQa8vC#nSG}$90)8bi`az*7E8d)W=h1gWI;_G-R)1cj0E~#m#?2npe#7(jUza# z?NLoBG49nQ^ux!EDFfT=7AjJ!_e6J#W7S8XT_6GKP`74tlGR`<D$)N;nz*zyWb*C7ST4!Tig4Z-Yp9EF_FEhgp1Cf-R$LludR~oylVM1 z0g4}WRWwjf%D2ThKAI3cbm5AtqGjqLWf#OtwEgK2P){(oB^V;Qi1~WZ`E~*S|KwNo z$is)$Egqs~?g94$*yUIsrR2e;=y!1TiNQ_lz6j5T&KL(x@X3#@FCJmjG56FAPspDU z4(T-o!ZdQfrf>lPtYh}6)(Yr)9V-VL`a5l{>0+UrKXA z^AlQajyUwjnZX=(N>L6pM2;9}Q!JYXZ??GQN#E~3uTl>3Y{4>a}4>_8^2w$-Pm=8*noz``fe;i zBj$T3UW1NE(o4fL3Y61?GYXzL;6*vIc>y=Y+-vA#ad)gdHg_y-W3Cv`l0lCMd=_3B zHePAAA~JlP&y+-*mD2p5egDKJ@DYAX4{CJ}>JecximxC_iqJNGV<1>VNMN`j%Td}K zeG&rxx6l`neE0L>e8VoG(Yp;NHw2Eqy9uJNA5&J}_dy1j8@6~^4BDDM2d0Ltps!L( z`pR`aWAwAMw55cFA^2dXL=V9gMXy13)g{C>++PA{vt>n z$qh{(hUbKUyA6h{2&PKK&EQ>U#+(ZFd1YI|>Vc>gOT>B24PYL9?~IxygoW4*Vlei2 zB7i3v$~zYR%C{_|W%!xg6}FcGuLz;l>;mORvWu#BRFBYlE7b>qsi5U7lNj%S&W3Xu z8zH5cTxInWjn><-%ebn;?p4R<9kyG~;N(v4otZU(DC~ zrA5_Q;C{%>n;D~TXQ8Hg?RrO4<4^d^9MHf1xzT#y{`ao`#BJYy(gmO6gGq744>h)9 zxUd~Q`vxR%q5^fM^!i6(&pB@3#0Mhp;ipAr^p-ns-~=yp_6_c5{`F7c&-FiwJm-uj z4&hEY0pdDdeW8_K|IFAhyfTQKq)~lm$Ei5K9nKMt^;P9QnI%8b$ovpcdch*~VhA^IHT1aRnFYt}q>T z)hhy0mU*zM9UV4K6)hS?i!1SQw)P$7wh$=!cOy#q5jd}$Pn&j-B_I?1;ob%%fU!EaEiudb(R{xNV<#H8e(zT%rb1ylIVup=~CUO|Q~ zG0IW{#X+Pn_CKN`qWI_RYz861jL3muN_^@GE4LuVFf2GD%=v~WDljGNT`97l4LD{@ z1%_%#+)_3BIKQ2#(fg1Dv*g2M#2&^KTkRX%{o%?N^JK~=VHsn5h7fO>DK(3PzkLVu zsdd#fm0J=f;6>5O3VF**&1KG~3x@M@W@4PPPl6>1@5mD1V20WH)raO;X1o|uq1Ide zoFj#;={YTMhyA*5t6iJ?vj(vXspE{zs6Y_0)} z4&BmUM=Gt}sh{PdLYjob?)E{rB9?B%E(!*0^Zwd*T;~OvUXpyQq$->b5Z~Zes3iCW zA|+R0i%PfL6DethYkDJzCX6}{qYT!w528e`vARoABh-_=L{db))fFm2YjBTRP^)}1 zjv9+dRZ86u4C9644oKNcXi74K{N101VY`=i5bqEsbd|J1RN6G~2sGNSu1}(DDXLT}Fzd6kfpI$a_A_D=vFaQBD{Xe~g|AlF-)`ayzTV58V zL^R8k1)&?mg^oZ%8KVg53W5p==m#U&i!B(uPN1`K8x#P^r?OJ=X;$=6O%d=xuWSKl zi;fVp)~?pFwQjbm_FZjhc{bGk>Y1&*dJ$x8%wC^vxL#oF-Pz`Tnfc1|{tvX-`T8)_ zpWiVm!s>1C+eHww{1FHfc3DBJQ1T$Dq?fINjeNmkAw^n+Vj3tEvO*Px4AH1nF<6)H zSFX7ftLl*3o!9lqIN z%npy9Xv{W`{OAkaF3DmXJBK?XOh)8H29%Xp7{=e00;^Hf3~Fss#a@+*bW1FljP8!n zkBroN=znRZr7>%h5|F3|L97huk+cHv?4D;8+Zs`e+*w#yc@&Z>?k z(R)OS;TP8XItH>;H>h%AFMqFlB#j(dI^(h=hjzUt!=bT2{jt;n=**wM7UNauNpu|e{x`f^<{TlkTpF@H67<}`W_{kq}LR8Ti z;A~faA`A|#LNBf;Pb^(TO&(CMR^%|cV0!ubGQr(;$@nJDiyVXH-sK&PrNTaD-Ff$s zza@%o(~Z2O`D5GPF0g7S?tBDOwo^JdYp)psapGVapO@)R_=Z>&+^Y< zLE9Q!F)sws>wj4jB*|6a z31v9} zNn7@7d+a=gr=U|xC5?FUO%42b8w^t>4~EeGL;E`CtiS5hLOPlL*dLy?f^?kj-GY@U z;Wo&_UtDXM^YGaV{e=kjEXvIA zaR$2BhzW0TMwu3|kb!Koc^wMr?o(q16TBS1*)8fvS@WkqBiK2zY`VcX1-oAFM*s_b?p0Q zFs!VpFrIOuzxK057hct(4{>}W5v*OJau-gS&*x9k^Yv1X*)6vdj(@UUx@ql&uGlca z(L8gUG`svzX8%6(5cKb$5&c7Nwx0AG(ZANQnG^PL;2>K^VVS>u4i1mLa0G=2sXxhM z5g&phT)8Q+V|%Aw3}j5B;q^V)R0$GaoF~}*A_Nv*4GlTDL?ISlk-cCv$IOq2^qa*Q z7gS*U#SUukSJ~cizcdd>3-*-+N^T2r1V{K`M%e{s;;nr|w)u#srTmolYOQ^u`t7VR z`n{cHlZzq&$YK3&mZ81Ci}$Q+%u7|vYAt7wDCC(VJBRkvpSH1iM<*FkydBJOUL2D& z(_1q|N*%+k0DsCD zJ-a-P*O+$ql9go~!C6GB#||4s+igpU!tm3*OL3-iXx9jPMcFDE&x0gCw3p~8CJh*&#a(9R-zbDt*)3x(sK6H z<%GzA`fK3aq7=}br>2=2k1AB9V_=B=Bp3FY5ct=wqiLq-tB5)>wRGB zDT*sT+_phhHfu1tI3&g6-kq61ORERhoZyTSIPGThhG}+izqTiH0P+I%XNaZRHJsK! zew<>|OIHqNPwmHNilvtx3|F1tr1ez~!s7$p*X+Q{dYArT+Y?5Yo-{n3 zHJX;a0~Bnor;*@}a!%__F5(~A2}Cna6*O_g@{zL0IBL-`c4u#g#q*wyj@?V7t{3&P zj1IlB?qB!F%};mlH)(HaefzckX)O-Fl>X=uw>zvtnb_MpRQ13Uu!%S+N!mx_fdBjt zBDZJ6Ebz{KoG19*Crt5`5XWEW-&D^(UzA5KiOg;6h~~Fog5)POR_5-;MW_OV46VJgoOJt* zAo!XKZTZb%Bi#+3&XpOC9dvk2QQ1L-QpgH4e+Or%Wpj$-Hd^!=3yqMA?!PTx_&LCZ z*gY{FLRL(m5NXn7sL6$8yxrRBVXlng5Zr9~76Nn#lfhK&v4`k>vcrc}gj5h>j|_t~ z0Vq2ZCjKaoY?tw%*X-fOhPv|cKPh^gg!H@D2~(TbeF$I*np_}kYTSSL2m=FlmW#FM z?}A9qRtx@Ib*08XLdpCnB~*;10dbe-t?sy-}vWdtlwFme0Ma+00P1U^zrv3JoESnmwivPwozBi3 zdV~EagsX?0!s6t(M-1j<0>p5WOvUv|bj(cs<>WsWVaPa0RWvwq9{bt_u4J>9$BOBc zTu1wglqXDx4pw`Rk5fK#-KP3I7bO_JLi!1mJjJ_^etrV4aPDC~)w#;9$He|4xT4#y zO|YQ1&JP2n+nD!ZFLzm*Z_@rHv@dtrI^7I|y2SDHH{QR2JoMsrr#M499&h@65B%!i zl;D~XKoAy(;;APuiB*LRRVE*60pl;BIrSD=B=tK-Z9>q>-l{K6{IIM0p95CtB3N#@Re3SDxsZg10LdfdOy-s^UMwwrAhVVyh#-NgJTe%~OTG zO>x*-Rxh^Q23s5Om9|zDP1%~OSl+WD?s}prgJ5o#N2jj=^`F=o2o1!`* z#Vb{O5vQ`wjDu7fcrEPcG-~PaCk(G-T`pBDfyi`0F_R50xniGK31c9TVEj30+) z0L<9yN*luN*J9sK8OXvL0&e;bD&-KhW%`QdF-k0K^z5>vLIo3T2AB0+4@a5(xQkmX zl{9Lf%}s%r@cYHP`*Ukf+s%V%dgOXG2>*PFy(DI+CUzuZ|QO`S+4kXoj)dL7C_EpDfcD>fYLqzafHxYyY`6w3;RA8}F#YH>FF z4AUSp6v0$t4fYeMmn3HFxI0V7s-9b%4bO%$7a#?vUZVjiDqq7VoEn;PT?6m1GK_FN z$m-xv-=8ySqpFkQpx$0OWNDTBRwf|%g|L|V+b&+Jwt`QJ{es4})n#=6Rc_4l+A;ue zl559Z%I($T4IwV)RN}1`^yexU^qy<^35l@e4uR8swi)m5RS(hL{sUk?RKvdKv;z>1 z5mbZerG&_?Dj*K;sP(tfoBWZ;Dr80`-w{=(JCkIs1hgsY8nEobSS|dj5iL|d(=@Fp zW4+07ANVCvM^>tF_EdDiZ+X){BdrooejN>vKx7wz8>zhmqo)UmswSUeV*CL_M_a_I z3{uo%ZIj1)o5FO2XQBFjtosC|p(jk2t1mY0mHbLy0P284=thQoa5}9lY>n&~zgT;P$Ecr4-a6#n=rnQp>%$)3A%ybs)M0^ZR&^LKtB3Z71f@~@Ic;Q zmOcm2Qh`+@yUlTIh#GDnN^t*DGReVWk;0s60!_@{G#pE3!OQ1No=H3l(4%eeWqAPJ z3I+8t4FlC8`WM;cxw6hDv-jv7vg*q3;>%N5*}sbeS-3z}*qRjc9F#cq6fm!6=pu@^ z1$ENFEYF#Feb%!+#TT44HB;(v?Eoj}yJW%zQGbKsJ$^Sv_-oa$`~rF4d4Fr#!y6P~ zBbLjDlUV<65}(Ea(M01TYH~Ow_0nd$#Jz7O>6^f>t1qbZkKI?u?_kN9N0s+X`e;an z#6}JIt;EBiuc`h{ycK%+AbshEQtwpR2eW;K^UM2CpxJD<(eNK*^wfuY<+EkdshH)LBQCo z-7kX`Z{Z6=hh`6=w{XW;Te|N`R}nlz*CY+D;oL`?G5S$1u;v4=)JIo-3OA$oKgI4)t0hIArXUfwD<=7Ittx1I3Ychq_>BS219mtzra`eqWS_Sp%W)6 z*R=F=;klO@3pyA?(_IQ-eno%h$Q)8RGsK8vxH0pB_yo2i7s@a2Qz2garaV)YYZI1! z5EOUDXEi*pj1M9|OZ53C`fBun>x@B4CIOTBXZrtlB^2$C)K%Dz2vbl0e|1{^Z%U}J zqSSxsFwI)9J}M`!f}?3Jwr?8&!Xsfo93w=%4nzU{SWtWA25`VeLoo3n_rrMjP@d9a&{ypAL zXVPi0`Ing@!t{8Jj3&1}E@}3tKhnvFXKhCgmX!2PftER$aPGwxw z!cI(HouG3HPvE`sGiDamKMzYWk52Q_=VV-j1sEsFdlRz#&q~wJ&;{uWdy|@LCvMrX z^-^PNaUWOxDvB^o71Mi&2g%#tIQ`zW-%Ike&OEX85@YShFE3a=T6F&LX8KBm-AvrR zKzs$~1wA(T_$Zjwrp~>bL9%=n3JX3i`grN;eNlQI=gFMvpTY}2lfL5Ba5rp#^Ld^Ue0_0)L&we%qeK$sICl&r9AM}Ua_;7_ z@ZZ~+E%N^4BZ2|*cpnRzK`g9r7C(!J>1}GAaP4@NWE|S$6k{U_w+#q*`g?l}WdKAv z4&VH)lx$DnsewM($kNh0{*8SkVLi&%*10)Qqa+J<b25G&d6}gJc ztu(`mJG1A?kT+ckG=5^nGWVK)pY$aZVT4g}7wI;BoLeX=@|zn5e|c~s*_aM+>aw<| zkOm(TJYgdW?qFLt-I^nn57}Q7_|bQ*mQs{Njh*|us->L~Rg+%SbHjb4WJh&A}P0y2qpp?gRB)~g~w(*EIuEuB&&L(a>;XzNi|nuP(N41Q;+zN z!eEa;;IO+*fi$WrQV*IlzLZ300xe2jkBz3hZL_BXhQ*3XkLjLlzq&F;WI{Yer(8}3 z?r7EMWpZscJ$CafevA}&Cvg>(AZn#WHd0edEDkL?3v9c(oxH>2znZK`!CPBuC~K6D zn$#Z^8#t}YOE=@C-lF-)teKY^2*b*1dCCsLCJ2jY-quX$ku4$0Y9xQ6CJA1c(J89X zRQg;ETuG1xR*((!#x}<)9OSo=MHX>)NeY0dLos3d4HUEv+_EPOKmss@phv4v#3VqU)we zEoT`UyD_TScN|_RVRs$XCa1;mRevKUpq!063UdHg_VGLj8^{xHQ`bf0oI!1g^1d zV;3jc+?l@X{+uWI^^8|JrBf0hj9DElsk9|ivyakBlf9E5vDm*(r~A$A?JC~J{pzqot*60sQ!9D8{O>{{Li>uUQ z?vT_ceO%&f7EZwIek*~+SDfvgf&133XY|nfji2JH9Is7*%tKJ+0sVK8X4ab1Zo+cx zoElaN)jHF6_@zPJmNcGHCW^of4at>h+e;C0v|Cestnb!*-CS-S<-l_M?_}wo4L_OD zV+Xpwl#DCE?^t835{|8QI*`RhGKDD%)Cq_rWM`x0IcF?p{)BAsr;`r zxp9(r?}*MNR!KdPcOx%GcPX9yr-gMIS3)3@p&COcpfKXd8@f1&y9d>?Q))BPG7f$f zgPy@OYgskIPhVqeHy{8XS54vt-W6EIR_so&@n@LYG^`o5qJb2UCF!8XxoXdsEf;6cfl1VFjJKtncnk!|c0v~JrKApjxpH^E(*_F|030TjOocZiN#U zc^>f5(@9UTE0r_h;d}9NB*Tv4M!OjKYz+PClJpfBI-`7&W89Cr zOtJJW+LURP%xRu5pt6^th_x9yd({!swWHJ!a6+#pH&QKiWg{o=e$Pz${l4BVh8$5` z`Nedz1|pj`tDlbdSbwp1@|<(4?Tp94mZf(ez(<6 zUqC+^ec|POhwZqOk>VkcMaDlqw&k%XIh^x9ID5zF%%ZGoG`4M96;@cWZQHiZC$?== zoK$SvuGqGnoA>Mc-M-yF-X5dJIOqQvW3RdQJZsH8ryv*Bdg9Rzk5wVqGef(I!$Z!C z5aLv_i&&L?pNrycC9B8k1ZM07FZWE~qj4qco;YmvGm4T--)WF^Ww0%a7#D}MW5WPP zg;vNq6T{m)FRenACs-pg13SynATs27@tDl%Ff}V0O}iZ3v}F>0BEq5E)yuhEeM5FN zhj};71g7~Nu8@ze=F7CKJ-BgZ+;ix!%uM!)gSRsU=5MO)r*KwZ+{A^`=yhVucOTMb|$39a@`}Ov|N9RjhTW`EgtsbG@Zmci-jS@xxLg;v#nV zI%r@kdu}9=)9++9y2i@p+c!e`(8Z}d|5rn5SWol)pEMa##EZfYb?7~-U+CL}@!dOc z4nlh@%GV;^=rh1kCdy@^h%$MG8R8qy<+XB3h#JC{6gAAB4~n^Wha&5Y*X^x4tmtqG z2J?&_FlCcU2d(1lD^|LdFEHle%P-b=6rj1hM=aa$&l#b=M}#QLdD74@XQ1J&a9$W? zfy;n~V9JYsH^k9c(7S@|iXzp3??F-v>YgXf6Hn|0bz?YPz`fa zQ_OA0%Bq*g;*@V>qD}jiLB2o)fDX@%UW5xZ#A!?#1FFaty#6SsN zIX%&}EDEiARj@1>E(_t6f;~nH_Kd-xHhAg-*#yrgr-H8IgF_FijTDyGT=`C|n6@&= zUGC!*p~eZWO`R8#JlCD!%}Y80ZKOFeDItAPR`{)=z*bIEqGO~Y-HoE6?M7a%4yc2V zP)AT{5IUx1(gJs=1jyS3(kuz~oaIG4$PbD_9hpMep(@wC;FRxHJCyBG;X7&T=w5F( z&mDR~46yzA^HMO9-)a$NYQjOMcGMIvv4$+^y4^07Z(Dn16`btc98{~gL(>C~>fMP8 zm3}#!L^#-t*)2m#&5dJDP+(cs4$*d_&&$0%8cpnVeXE<-if{hdd;QeE-4C-!@@5lV zE>UPXS5}U%>=G9)F1kC|sTNb?>g?T_HwWnrsRCCKba^W9#@_ox5PhX`4i%jpW5h}` zeC#|U=*Dv4PoL4jpJVqL$r&HMdPziZJ!bpBxQO1?_h4-j=tdGtX3nLr+&^O4 zpLx``fB`&(!+)j9u-)$+f!YKt&C;xtPE+xBBchcVh8mQ9Ao3zY#^927a{Z~66x)3H zAiW)q)+ryK5KKM=!=I!2NB@R4diW)1!CSxqu>BKJ%NxD$Xy|rHH$0{f;f5sPOgMBJ zt6uy6dDyMGR5`rq^E_gtm-^v^<9XLxzrF&NJ@$4V`uSgwx4pnRcwuz;AcA9o*M`3> zGkVYVmZO#-@pK7`p19(_I4+?9QW~=zcXZ%xx%sa@5#P_mKS4;h@k;<8I0ZvL^^)z< zGO+mBM=H}#z%#Z?IY26y0c9p()poSyG&lv|m`E)LZfO|Iy`gsQS!3lq^$q4>7*{-> zQ!K;3*+^^11%XBfi5Z1VBlu}YJj=abSFN4{7gBxGQ{WZWU>n}aR%nzBZG+6icmr+_ z75;jo?0Uc`+{PlY^MO0~;xJvaFqZG#3k>Xsp2!`u`o!dvPS2|y!%E(RDhE0_C5cDc zTQN=C5SJN&yYvxlLB{{&Pisn(+dF@An1b|lTBvT>B(G|c;?mQ0ycNOj+%L1C`32ek zNwo0Dy~6G=ru!1-I239?)fDi!TRHH23lLQ|@-n+?r5qWj%!I|vnHWVV^}n^~aK=#v zX#dUE-lJZ2AH(N?;CP0LQmF4QYy--p!F}5h-GI+vXtwG~IX{)B(bnfJ zZS+|b)OvBsh&U_L`m$#t?+zZ;4HKaUx~mrOjLXnqgJYAKVwG79yUMzXjdL-)v-@-P z$2NGpq*Y8ec!!*6D2|#=x9I7sKUsStb{RU%7`uY6H|*@!+VdxZ;*y(=LXk?p^&+Dd z+k`4)$%HSWDE)@y4AT{t&U++#3HS%vRG2%4na~p$k4K)@{LC-l(UmjDfNluKEy!!a z?YB^(=QdeWqP&0~OFfuY+mS9CY-+s^+mFKF%aMt4GgsX9SHm&#<&(-NXHGpJ*}|{z ztp`iE%94D2@54aPB~mwyIO%wj5s`>EKOL0L)U$jEU$#Hy3>T!S%o$;a&+~Z5cVm@|mf~8VZ_n zi^VQ~p8F?ly7n5Vw0cFGOe5!h_sS=~QXooLjtr2s+rMzKzQE4Bk-s0Sse9o{oZ`13 zGd4Q~>>B-W#ncybHlK;^$*OK|XSLJO{Q93K?5b(UwfCuTjH;Q-#f{1G6;WRX?umN9 zH}kH!mh|dzCCjY&N1KPOBMwRfzFZqOrbRdxk2oHBI>w-UMP_HxTDG(4CtThfFYf*x zN%^*6#<;KLK8ogGaYHoajBJkhhIX}a-Q-Z|%jK;1lX;gH>((zSGwZG^`{!!@nEJQq z*6VyB$%3ekCusa-SY>gjwsG9W3F6M2N)*Hm5>4kWomFL~EZP}d*<#1)A|Sa!Y@Te> zI~V0)7M&f6vROzMI7BXy$cee*pqM4e_Nr&Py>cl zS|X=^SV+`%GOd7J5qg$pjdR52ImH*XuV8+#;h0B5Xch)6ndh;^q)8!zTjxcg^xc>} zay}T1ZIl_S#8N>=X2B@-Y%;?&&X=jgAabo#YuYMvR;vzEGrOVfiZWr?K4ei%fQ5(H zyY5na{|}VA^DfK@I=KT^9fdT6*yU-tGhJ+xqaCQ?Y!@eO|E#KiXbWrIR2e90a8~51 zEz;+A)#p5B6;m+>iRJ$2H&c*Cr%LWTeg~&rpo&R(2(8H4ZKb{m%b8HP z;BrURzk|pa!u_2i)R4t)0Vp}?)?IA>^hBS73vp(`SNv4TGj;tLPcb&Nl&i$b7wbeB zS7oE69f97ew!|phPBC9^X3?zVwR$|@816dTcJi9a8R8ad#31CH zSsy(q6Jw&xRt#VGr%q$JtA^b)LMK_+;|Kc91r&|j49TWgRfisBm?&886RnI234NGt z$X^qLG7>OdY5|SZyvMOn#y@}g!qYF*N`2w~Rp2Jj4fkpQ0t7S<_8(Kw|0!-0GB>a_ zGZ8XyaWeTwXD3_fOlnR3I|ZG>X6|R#tE21X!Me4}pQT{}<$*aBqyl;=^fBJ3G!q<& z#MuVlRYEq}iMqO-qYnk6Bi$gX#DLA7mkp=sGdJ1GkB_6bA3!D@F+xMuAWrTj`r5sB zV4_UZA`*k@fl;vQg_R_e4hkZGy@Uw5VH0p#xVjQuo8>KLy3>>`>K8HBW+UilVQxw& zye(MC$w;4zp8Lm(jK7HIFhPn|*0}JUQ$#A6nQ)pFU5nmZtLx?LuA0Uj0M~|of}u@e>YNEkLJQjnAv%mt)gz>I$^pAQe~~GvB8qh zd`}lElOLEn0~I_aXCI(tL5ZY8)1aBg9ayK^Ddeyn)_cLsg^Og6Z4(l1A2lsoE0{SpDJUu^7$Y+ys00NB#=i;LxH6H09llkiPZ0l6(Du*o zS8=wmcKXM+N2{#a;)-B>4!L$tc{({}6=mhi^t$dc3@c_Jtp)>%IAkN&f&ogDQ`^!9 z=bG(%K+W3MP~yLlPT^@#1OstX8x$958CrILUtxGaPx!Qk9Xh-ev|f*LulW2}jK1!^ zIw65JzuB)*EqsS92?V#yNTx+cNOPn6a1S;r#HP$nrS6v0PL^(IV;a*9uc^xdB*auE zR$$d2IQ^k>jt3|qPRmGKR(y=|AGjNB-(+H@D_a;qZ-TRMYilQQM}>Exta!=3s)tXq zm*Ul$zMzdnu0gr7OS6renETqIzC|2`k6v4ho!;f~a#H2nJRB)oKEkYut{se|BaK?y zs9Vbh*^hQIAGYi(5RBID#tB?B8v=@D9dHJh%Z2lZ+ae{>*t9JD5m)eU)tbYBr?He< z;}GM5R)YC;Z~+FXR4o3%cKZ-8BI+*>(>|L?#rIbGC8%iz<0+T3KyCqhJ&`56>I{O# z_Stb2<6fxGoUSYlhfG}+I`Ln6O-D#_XIQX%98-*VG=}=UePZgYwZ=OryiM|b%<&sq ztAg0HaFyme%++zs7CWfQbl+Ni&)#<~>SkD1(b-mGuO-)X-hgR(@BG590X4Xg z((Z6EF3rC!)aB0Cpkf{-;-ilT`Fqm`g+Ej%qL{I?)_+9Wsa)5a2M42C*F#FQjVVSL z>u|6&qI3K}e(T!Jxm_*-h&t^k&127x(YJ0v+2yu2^Q{~UOU3i{=hO0E zTphc$-Zm0={UUUbC|eXwgy71AokkTc2tAAj*#E@-p7aCq9@CZdCBJRIrGJ;7Q87GN z5kw!8b;qbNN_H2#qJqx5rR=jb{IM`;AfR0be`8_flVW}W8*n14YWn2S&1*#bu}gki zpzjLoKnC^p!E3mDMWRb{PTX6|(->+5*Zv%zMAk2ab+Ehj_Jyt`PHwyB&NROq=wbDx zz?4W~f;r0l_LVS8!&i51=v|*?o}ZidtcPW8V1I#tfzW{%9UjA^*Ah!?X`oIyB3~^H zOX@W;WDonX@3-Bem-!xq69XxfBfuvCO8uIX*E`iez!Tjr{)`UCKl2qFWZ)f({2oQ; zOTOe=*vm!@j`I%Y+cQ33jTiJB?n)VsK>~`(Az}s7y{*zAx_@BKzEpR>-30QN0(7iY zoEBpBWcXjVpGdpF#A6g7Akyzq2;2XzN0qlW@c94B!i5c-4gP`Q4NWh7<%48CGhH`R z#{eX8eIR5H@_mB=63IX)0MIPi02vZ6GUaF-92tv&X`uf?v&y$FHKNyTu>?`GcTC*7 zTTko4%4%&2rhccH_$TDeEr#?rqAA0MyRsVZlk5 zHCOLJ5!9!0max;fF!onNG;jQl685J?A)ki?OUjoBz%O}c%lKIuz~{yE-VWy%zf<_b2z(oOp6_3A+4LyM;8RYwSu7N>K~r1>sohc z!tO;B*2%noP$w(KMvy7yvx*eI*(jVF>{iI z_GK{+Q9rsjjj1+uzXkIIrk3e==)B1z8{&^`7FONk!8>UWPAUIqZPQ5OG8C7Xu}V$A zpkdEnW-XFGPR30Olj8#uP9|wr2ROP6fCUh{>OtUJ7!Mulej4mku2J zEn1f9(G8Yu!e4M4_VHWEzrRJ!`Q&u9*mV2%ProzkU;t@jXWV_A$vYPT;&!2)_XZeI zqCq?I4UTM^nF&{m5!2l)NCp{-gfY%4O;2_kI8iDPf_3`VW+sWR5Hwn~iQ#8yS*ZZh zUuo@4Z(gsU3MCQBO$${CYjlx=@Aw;?anKST)U48|r_ImJZ?tbly*XnlpXP2s-H5C? zDf((7glDl}Y323Q7`RfuKIPR+r07uKTvSRcvv3ifz~1vu$&px@Fm6H%1kTr!+A0d! zk?vUNxfEs(Bg9=@MEX8_;*xVoig>ZmQ8A6_=m}1QRU`0(_ILHEu(bM|eMiIb40JZG zA=&NdqpG0YK!zP2dgb%#x|@F?Sv)j9=@;kmuJ2rFe1F2hhPLxSTTrd#r#KE)Um_RX z)A0LDHx-J1N6aUIA6*>ud72pE&u$q<>|N7@;SgN&)>M*^ zR%Uu2wS%oqIGv$WAofAG`T&qc%4+_Ii5qHWwG4(y9qA0Nsy5lP2%4cb zdAgZmkid3YB&i;C<{x_`jbLD+USvq)T{}a~yXT7rQ8}qnuZ#^IC5kTjlLk8zC1cRd zY4ew{5Q3)#XvR*x)B9RTGd;S^8Kj>E8X^L8HN%rkE5GXa?Q&6~aq(fC8=;`8yX=)^ zh9G|0Ar!rC|1DH;#7bmKvwrS-X3dM@_cT3RE&C_{a!lqUvjdj3aW|RA!!_$>t7X}6 zN!Sv0wgCYIPs`9?Uz&I9sJju>&p{FFfuu)8ItHNb&ue^PE*Ikcf3i$+Y^I-xQ*Utnnh?ltzE;il zYEe5v3S}E=w!xd_D0hl_bJ?6qJ?#i`v+R)C8=sS|ug{!nH(7h1Fj{yytLNpVJw5j3 zbhGphnNpjZcH!znazNLsx?}UMnp(bLckarun|T(^);;)zvsH9Axn6ann{BrvV}UY> zR(4l)Up>`)bHTMGKxmqcP|!KFC2U$Y^P+XHBt7Qbm3TGhk=r3Nru?z~sV`>+#Ias= z2XwXkLeQlKcysQ`-JE{`*6@nkTzn?Z?v{a^t7ONMJPLh5&L%7d7_CFav z^ZJzCAsV~-`<30r3Wrr$0;Xbb1fmg7-Z{S1OSf)OxqOIe4BO)i*t z3+|Bkitpy%qo$^BoxX$Mgt)qi;<`qDFlBpZK^5MO*MHF76DS=(tENjQhPJ1+9Dhzt z8CUcwt0gRDls!TX+?M6I1?og9fzy}F&0-#!u6N~i^%CB?g$F8*MfK#84Fa4*MZ&6O z66EDtHntMOG11bZ^f|P9QCVRv!xw%FQ-`<;Jkr1*fOQY`#H2-ZmY*y9I8j)Puz%q| z6{=gR#oon?!rFCu#6X#)EVa-;y*!EM;wPs|#q&lSW73nbMVWOfK;N1tx=mhykDOJn zZ79h2)5B}D4{8nnSmFvl+MnguCp~m%y2?y5c$2Pi#wZZx&x zD(qj!R}?<){F&#r5w)n z7axusVK%!~7O(2^*;PUnx@)En?_BUcG@H>r9jl^TIB+e1N7{LuV@D$5z?K zX`A4Vcpk(Dp>V0YqD(U%#0$z@7Hy`L74Bjz5NB5f)WR|*lt6QYwu%1Ip=o{1R32fI zz1&>8(GJEuotM*vWAK)_JtkT%8;B=-fH~SQUAIb=wQgt0ZxbagowIV8=!(>3!MjNs z?!wry{87LxmQr?H1(~g8d!;Y@{;ABv_|oFfibjm}_oQVo3B#(!rhIAvwWQV*qNy{e zP{U7ss&c~sk)@8xy5j1lI<{WBs{}0OCyr8mosHj|2V{>6%5L4Bf7W9kTHn_Dw7Z~+ zh95#b`?Gr|PnSv1hfR$KhbnD-3_aKKUooMvMp}LYOMyW3*(CA>x>LB(0Lxg;j6Syx zA;XL952u}n#Xx1}mRCABnZ;nePNF5+4FoJ~duonCqpOw^N{|0y>}zDxFN$<1hv&7u zg2rYLLftz;vbZ}&TNQ;D-p>cI@L{BlyA=C13$$aANFe@e_NvTM!Cf-0- zBzr;17gY(=Gfv`x7QZxBRFIt=Ot`{hIy%^c80dnh%;;{Urc>DG=4_U!!eBr|NuP{FU7*J0d5qDwQB$u0>Jp~xzr^PE z#)!+3LFe~Ep9HTSY)Fwb$DagED8BY**4L7C^WWv=O3o>i^dv031)fxUt|5W*?Ut@X6yYDy33+D9(KmO=!ZVd;+fJd4r3bEg2F&NPRazoY;RPM&#;q0!(nLM#S_D(%pRY5t->lJo3jpK4M{mJ%*R?hG)XX|WoIR1o z5DcM)0`9DVCwN0E$|2VD59D4vW*Impt51gR3V|;%2l6(}nqtn^T(B;`Imym;bQ88 zf$jb7Ic{`uPzv7!8T-&3(^7vmM3y6I^}MC}mN4!K$Z4Uei5oR*Hux5k^+ag&P;ua6 ziHWWLHI+~3$}NzQ$qdZ)*5J8Ui}#r4GQ+bzLA+5ub{g)4S)osUf7gtKp~As!t28Tb zayqbB^5MMyFjDrU^1)-POhl?l2~|V|53gKr0!Q|r+#&rYv_HUeJ_N#*CPDl69_1ap zb{bhz_<6sUo)QF)d^1#TSQq)@4`P*UvQ(dW95k^@RUFE#oamep<{*@=fmG1A9?fpD zQU~|2iVX9!sFNt+fB0Ol6!aRQI!qlQ%GNEh5BK z|9NY`NF)dVp_56EAt3=ozVoJ@1MAZ>vRNVWTL+vp^*B@ZIK!?&Gj5OuoJ@ht`)D(6 z6hh2rLztqB!ZOE8YjUzLO2+-n6mN4PNpBGr3Ko3+qExLa9JZ7}s4V*F?_vdMj!Lzv z7@V%hzzX9ZvfFe92V7zpvI^vpw?WhjX9cq)G%R=lWfL|p0%!}*9;<>H(iOHAL~v5V z-JJ`enpq;gs}wum@K27EH@6X{_F&pwq!`GNIwpEKLANa3QiAjm&c4S6Uy<3!5)&Yh z(rSroy0t#tDP9<_Lfid$x(DA7?M2y@&SR!|t`FaaP3*k?2mPv@U*=`w z7vS=bpWxG4cOE1jY@7?3BB6*x8|c!fKLSy6<1Fzju_?iRQ?v4fD`>i#3f?l(;8*36 zcC9PP2b42TYKF%qI4wLi!HTuG!ySDI8vG*`o~_oz{*3;#&3&4E4_9LUqjDfX=P-svD9*aC8AqnNv z>ZUN`5TJ#ReF~N@kh}d6RISb}(+acPPL1J>l*ebwPINKXQbeaC*1)iBP+65>Mf^R=&lLe8{y8=9pf>Ii+Khh8pCw=5?iC`O(i`%;ArMNAiq=Mm^NW|BHNLZOua;?aQ>Lar}| z6m8(-0r-tdehWd%wHF|q+yufl9$C8)zLY2W_Yz32P@@-Z`;d|*Z9^3twJ=o~Hm*|N z_`swh&;$IB+DRiG!5*iePCCKeTrI&J*V1OKU_ z)*q31JDJzuxb``=Dpf}sDrZ{vZY51#lQ6ys>!_r8nCz+@vQxJ~=#aQOMIa~c)=Qvq zlx3y)V`vA`e2_%l{CS_`U7s*|TO!?0R^tXPWyHjNF)FyLp}AE06dDNJqt5E-omC4a zFHbB=jZW7L?XaF6{H4nf3HK}>dNwM?aTk_35ZQ=%t-4CE84zcWx_hE1U=Sg-t*PDiDg z{A5~zWXF?zWxAQtQ`0h9BufcOm?VTdEgzh&z2ghQ#uW#OeSgJA`(-M{Go?p(rz^$# zU+Cy$6GrxVf;gX^w>>^9#(l^{0W3$##r-HAWQR+ z#3u3c1$@eA|{qP#=wPgIx?_XPI zza99;Prf_fU2s4^wEuhS?BBD}vsKPi7sQdOsm8M7-zMMK{=m$3wjq>-g~bDlg^GZ0 zG@6w_$4mD~FlQYsJ`VHt@GcP0W@k{0I>+t3|NdRWpr_*Ea@76x^@0gR;J*mpf$PeK z^~YV^VFme#cHM4OK;O$YueZTAWAGN!btFpFoO>wY>Q7-kelR(_XGPONeeHo0{Ne38 zhT)7swTZIOmTT3VQB<}-o62wnlb8Tk@sZ=^IMcz5^k}uJtDDEK2E>>0t44%4V>%@! zWFF-n*n_rZ)()Y{I);H>hep5%<;c*PS4UUwg;*u66YbDDOx&vXYH@gFak5?L<`@)PFd!bIg!M7twVS*8V5Y8pF`zwR`QQsQ$iSW z)ajq(u#ZcBfe$s5wa_YGIw{=f4>M<+jxmw|N`In@URMoeVQWHt=QPNPD^u8TvbkBK z%U-*}WEalZ3dI{O*jtxj2FaCzJ0o_h4--a@CD2Quy7uoVHsjYvaO*yBU(C>_k+B`z z##(E7pfTBCuCPKm>Y-gmakP1Ut7`8Mb@quIh@+eR2^q#KOHovdR>{_{?N!PzEOVov z8{ur)>TFf&$Sc8hjC?cX5E7sXf;cKT3j>E6y^zGQ2ZeD(+AEPt+1dApJ`0CH`pRD5 z){0VkFjC^#-(N0TNYpnL%T6F zMsjPR;=i_-Evr6!xLLuZO(MQ7^af8M9#!*{jB0TIwxYy|{e#xgyahZzV0Kk6#0(#eP}Zp9SA>xDH)#5R9I! zV!l7;F7pSmAbnu8$HBG9^M$TrbHsYG--~x*KJXr=z5<;FF@pKm17VW!M!iBsN&3J& zINWCXON7hi^TM+z=8AlfXruV1j()*tqu=6aW8OlnqupZswM+bvEs({3Ao=S@^rq87 zxsNviYZ3Rs`yfMyQfC*Q}mX2bZaL*j$9qd5t(58nX-&;a$jrgc$#XO zdGttm7-kfcOzrnps&cc$Gp#ymJ=~d~t?|@}i(pOOCk4w)_K`YzT&oK{d6r$zwQ_bmx>Byz(7C`-$Uvj z|6#{)HgI$naW^utcm8%@`F}@c@#C_%OlSZQXQZzL+r;fT%MjJ5cHF;f)UNu!OU9r2bmH#5lgqiQj5@MlH`Auk8OW6djJmShpr0M$HjSQO*M51 zY4771d@6$|97lq7lA~eF)3S?Lk_rc%m#9_?GKAb_yCLq@)a-rNKDn}0PQfS5EZY1@ zbiV}+mlUgT`pNms<5}5^-3qbkbT1cH#_zF8dFad<#XA`x46$p3`Q#HCWeN~iaXG`8 z&|OB$z}0@xN4v;be?|e|F`*mKaR$Avogc9Oy67cNFOW*#3r_H@O85^G7G(Pd#{CJh2gu zGj5`A4=D$TaDLW^kSQ%O)Q+O0!%w0RsaL!QLVUR@7F;ed`Nbe0F9tnv=b43{f8i8= zOXE_UFXx{mh&SC2k9cL1uEF3OU<&U;`eY8#XyY5G^YgJGIjv05tfs&@!3S+KrN0s%5SNL~pyC!Busu;&C@g4mh1 z=2xADD^zUbRZd|;S51ue>*jQhl7|GhIjOLCq*9TvS=#&bF!%UFC$PzJhpzHThcRK9 z(#Ucn*kdCOW7=b!zB*rEC3dn%^A)J#o(3QN={6~PEvbb<2aN8^9MYUR4mF)6` zSh{>7lIn5cBvNf@VN8ik+9L;Q#my4ln6cq*B44T#LgY-6S>7b-gjFS~QkIusAk*M1 z*Cn)3CQrgt(mwX!l;diZE>e#`!voxec9nvIg{!!Oj&Bo|BH6r=D`KhAIc+l1#}R>i z4K|cABsR|k9T@0a9m_v5RxOe)uX51+8Zh1eHpX{8BD^g5CNq%GKtP=T`_}Y- zs`Q@)Dq~=4U}oa@|9M2IYAKD<>95T@EFi||s5MoShax*% zi+hN1g?ktNK-Ay8;C;rBdNW}2T_#bvwa zbiiJ-hj3}xQo7Rx00(Ts??}JzzsNSKo9K%`RMWwWSxf4r$Nc_%ra~^{ck+7$sf2Vr zqZRM9NvnNU(@wm5iczV)qwU0IW*{P&dF_8_m45Y#i-u0bJcCUpbr-jGb5OVi;BT{- z9qw2kI@?Lbb!L-Qs1qC?F8%;!o%uKlGDw8iFy!rr}a!T1{3Lr33j!Y3cN@RPzyvQV?F=$odi$Vn6z?h8(P z|MZ=Ef$Oj{r8V=-fMJ4KvW}57y zL@hj-f6OEftzNa%+EFLdoncp!TXhz-HT5iSI{O6dQ77Gg>1+SJo4(QAb=z&!^M&=% z;%HTRBl8qL%-?}ol(K-seI(ub=!>MNo0&&eQjmwN%L2xsnL$mF<-H&8~BkLsg2 z=2*)L(WP7zjK2*e`x^jeaLH>VYv~T>@2cL}0fX2K)Zr#IQh>IBk`;`)%39_+lWC@^ z2`EsttzYSDnsKr*`FsW|t!bSyxcz2Y4a_>r4fO0O%ubFU>9<|>ROFcGn}8G7M<%!= zR)$sb5OU@@g~P%U6Hg;JLLtoB*st7$Rwbw!Mlee6sB+X2@}t{Uwv(a(%_XtPpTe#p z93`t)ut78?5J+` z&@C2(>W^dC2;gl4-zBlZNy@6-ml!BuOvrXJ}01Krf6*L zVjR;&*e^|Pb@W?0Iv-^Oo@(Ee0ia#CVH(^Xk9KOg@JU%DpcEFr<4Wbwk%+L4hdx_H zy#Jnra2J&mv!P&8f5lr!6MYht2z4vpagR+Zatwj)3|wz!&Oyy2*xH%IT^>hjF@gP3 zdA%QhDZu?p{(<$VnnYcx@DPkYOEhHKLi0Hb0QJkxKCE|9vONM(ErXJYTA(HB8dGeSab0N4h`qC#h7wLN19s3335gy%Z z##}}8tH(_nhDaw)j{;*oD2G?MLfO)5JN($L0li3N_Lufc$Z4RhOh!}Vpt~(UX+{y< z(eb?poKXP5wg`@&lsM_Z@L%;X6TT^f2*zMW5gh)3C)7dwT>;NOUb7Ok*7J?1P z&f8-fHSBWxp)OA5^WXqs5p>y25MK|WN!Bk~)?z~m zUd&X=SSj>tXKA`}&-mQBZDgZFaXGkY-1VfI(ME$9ZXR#3UNUXW+D7JRKeoT@42yLD z${SYDfGl#I8;Vobkna9W1PcoK>BA|8r{Y&aDy35*IDJOl_Uh|11Vj*ljO061TDtjJ zMYMi{G=`K)pUpi}G|6G@C!ft`W2A(DuA3>04f!2&b^Q_B@uuE!Pso~k*cdqxq(vfKu7jJbgz_T7dCka3?s<0E1AQ(xBj(4J1tIW=)Vt>|FIeU@0cX( z|2<6pQK2cSvSZX?P$UJa0yW^Ay54>Q$iNk$c}U{#{Pmr-W4#a6n>tMI@Tk!Wdun`{ zP!Zw2_d$GP99}k>@?}XB*&Er}9wLLyFY*!!&)KmLDW`o090f*y3+ z_i!F%9f8Fzv!f&hC$Dt=oSBBao z6RFVJ{I{pjv9L4eR{&$yop8(}r49S!MYlzgcMEuV)KB_{E8=i7I31BE9sIS%1%@2> zB=^~9`3B_z&FRJzn`Q@gmByrUq-*vi9|C(W(VE#1_ZzTIIn&<5fE5&+sTuZyaDp;Z z;fzd^LQq!4nov>~J|E@NP>q}Uk!J|&jFMcMxy2HE~E z1~ruC<aDT>J2{Mty2n*1TX*js|0rNI)Y6cQfSdYqswJkQ5L zHB&87UxPR6{`7^i`NkA(oKIO-l~3!_-Mrpl@&k@&c%+WvNBNiNQ_ay|KKYgNO--LO*=9#jmefG4^Pip!W9q&?(t4^u z_~y!8gkiK2&Z)fALP(~V`7oz@;!y`o7Me?k^Iwh84WiC6&MDuPNcuvh2xE9AIClE{5Am@)D}V(| zZiH*p*b;}thDpXK-Fz4EuF`G&@R8|pb(sEv$L~vRiVbD0pky?3%?<=KF3Jwr8%0t~ z+5oXeA@lxW#c{^%aGLC|5c-E!Hc2Uxs;|f#50Mbb9Dtxpk+zc_B1@tV>9DcM@q3{J zM!0VS0tg{bL@3@JSR?EoQ``WKBtbaE)XNfI2N+2@iYr`x7M)i65-D+;&gf5GvamC{ zDpPa9{8skNHSlqS^8)(Jt&jwt$dSyrH@s;40eJ6T4;+t{%RzAM;B%SOIG!F)cyi&~ ziA(=Zp*I39^F`6_deDboT<9H@gdzvC1PzLps0-@^Z8)na=A}2ZuQ%`>-ld_(kexJq zLKopa@Q|x_VF}Zz65WCM@}Dq@tYXK}Z4tnl7WG~v@4o-WqEtxmGoTTHfc{bg0kQu# z-Hv~tqfryuU3<~xv&J-0bh@3)t6@cSq)CiNC^haTDA+`xd zEof2$JVy~UYZ7bm47rVBC_jpHZSZa|7icmg*zd_a4A0lpd^Fbjm*YxY`n!NywwP{61%>rhM#V7 zZ=Y+JS6@I0eUHT`efRrg$LnCfF8bx(SE6$xQc_J8r^n0@Nop3x;JNN?2ZKOmayvMk)FlgNdP4$ZkNDbRjC z4x{co#@~md#w)kaZ*|GJ!I`dVH+YiZ@R(4(jVXYHYmdrsb8CYLN=?qHqqF}R&*)6=9I=i6%xff^jD6nE*R1HDBxfdp&?T@U> z7Yn9e2sXh`{J41zzYkvWVa~mzQ!u4Nm&mqk=D8fp@YW$g=2;|^D8T?;zO*(%C?ZE$ zO?zTkN|WcokfcPxvuhr>@PwyF*GfHIG1+ll1~Dq>Zxnww4P9j(ZKp+vEOMo7U}qp3 z&WNFDY2Pc{|E&KMpTHB3jb(HTBvp8pt0`c@ziLD0q^Hx zuMtl(;Ic3=<3X0r%80J(%NXkF;)TsHXT-22lqM&svsasEI>jJ|(ZV3$1lQx?qM0Z~ zPL)9bAIww5q{tNfEwbFDFm+LQzqT8GT-K0MWX`W=Jwpa72A#xRGONS6Oj<2jB1FtG zsu8i7oJlz;&t(z;dCpl@>x-cMCve(wSski!E=flV?dOj){(fr(~a|+FXr4*l0Q*a^1j+Dn%u};}^Cxknu&WMqz`v?9+mWGwA7&xouI) z2;HwhgoKCNLnrh#*;dhJW~ADv8TOa!m6uF@P8yfDJz%=#x_?VrmgiNmEMq=+`t2x$ zZ5f`QQf>l+4@*y^T$%E=03%eTT+#AN_i)9a45p(maWSxehF@I3?$wZqWfmWvBGFXQ zS?yIhIbXGc4FFSSDYRIoDYW>z5ujPR^tONwC?BQ;v?)Hwtki0-q~jjhnvI|t?e zESKS3G%urAv@XK{Hdi4SdseQ6gDKH&V!GjyRm;Z5))>TKt*2YFmbH zS(;z1x{Ot>^#8Q>7GPCo-@`UYhe&rxcXxMpNlQwDba%IebT<;x9RkwbN=XX>0@D3G z{$?EiGBeIN@At^LIG3Eg?!ETed+lD!5z9QWX{OK#$2@w@qG)G|4-CcSD96DHMQ1V3 zD#lZ4VJXp;+c}qc>I6CE=95pho62mC%sV==W9$&2C?7c8*A*T;6*ywnjKT|GI+0az zWoY^F$t+Mgg}y1( zu4 zYC|wokECJj)A%SXEq61AGlnu=EOw*K=m@Mtbz2HtL};B0%D0#$J)-R^6yYN4ZsJdh z-CRjijyhq+s26Z`G}dt9zzg3#+UdwSuBOi{hk+TGc127hFEAc)l`og_ljbB4PcrYNGTb zu{+vuq7Ot3>{nBC1Bu2XjdHK*QRxZZ$AvBxxXP(g44cMkNq^XIgy!$G`=IIFm`sxL z@)9Ckri@jWg3bEkMA&O{xLN=6EPv!%6r~yB$Bj@+=h&G~^1+A1S*g{Sc$w%hIu|1^ zBKHu)a=GSH>Fh^!l>2ZmRJ&y!f^P(8h4mCP@+ea{Gbwwy6`QAVe^gf{7$tB;e%HfO zT;iVX?`HP)R#Z5^M1J5h-*96=SCbE21|f;Otjq7(2xT%-n>|elO+y6}Lwn`QAww21 zaY~O0lgpL_DPF-XBM?&^5Wdp*9k_P2foYL;*TNMb zPLx;TvRIwXfH}c4cZL$rfW29h+UP3Y_~~2L($zDDs6$s~_s@n;VLqe}D<81(M^4xu zsM9B&P*v-C?Wj&H*dZ)!CP>E1ACU#xtJ|p!dV*!*DE63;E~p3D(G+f?K_4_`aIt5@ zmZ?WtR6yFSmr_Ynd*St-v?n^6zec;eh4f3X`lKsG`SD$KIbKF#WzB=Zo}JGKpO0tw z`~;4a59AC)W#8y*r1wZYa&j5bb1bNz`J}sH?41AcamyYLRglHWI;DzJf?Wo=0$1oO zIQ2yhbc$wZ?<`Af3m3j=Vh=hbjgLr})(MWj6O<~mw68In-LYBmWpbP-axJhONwXk%wT9r}19?~qk4-8AgjLKT1oKot4H)q=l@S}qku5o|&~c^6ELwFK!` z1)2+f432$>uN`@Y(jX2q!RfG~oOXe=JI>Gs<253$2mUzTZkpmQ1-|R5GRjat3YiaT z-Gng+y5r?*t#j3!cDaMW{B{>Jy#wuY7K4y3;T^IKI&k_~k{2~y6Qae)TfuutQ%q!^ z;jyh$KbvWK%Ol_uM(_r_PJ9Zry`{J? z0`E%Ayau}2?Y_M#9H91wS4Kh$MiSOcXsmdJH95PUS+9PTEeaVNY9ZKm0`g4%p;_oH zvV_i*S3Bgy@S!pm;USap#W{l3t|c{!brUPtBAZf%&qpFRunc%5^yc}3@zow0NH;Lu zVS(2SFLtzOA>ED`4ye-A1cjJ|@PqnV70HT1)7OVUt2Q0i`w?}Z$C2U?pfOunPJD)` zUSk3$DV)^NfS)?Nr=3D^Ik@a6$7{6ln=3=}w!sfOq~l2^qAaRvkbSA4zmtVi)?51@sb$q!JQFZt|43Cy#do8Z_lszC>CaO!{ns8qFle zKH0~J=g6rbkiX1{aCfYHvWu1;>G%xl`` zNeL>f*mx1CIml9HH=5eRhT$~J`#^pN<>FMKC;9B;wxil^r6({KPl;;ehnvV+{riuaOTG6= z&X&5HocWax&-z|E#{nT}bg!|*mp&eR#+-AMa^#9uD1e$poh*Qpyirk)+3^1Bvx3Si8piNz>*lX)@Yv_8i*HR{ossFXCxR;A;?N$ zeRlkch2rd;QI*=#YwGw2WB(jX#MD}IR(FSq`7D+9S*3#0?3zz7Rg$~pqu?oYwdI(pZ+9ual}nHYM6&Yh9t4kQ_xES%t8J4jB5|7{DW6rJ+2-`x*7Q0}EpzVj zR&zY&ePk|o4H}K4#_BrmWD~6%slmFS#INo>ZWwdS#f@iqq>(ef%`CcE;--fa#3z7 zPe|SH5vO4x=QGt1{?&ot!;rnLBYWK1Rmu(ftgPIVx?HGDF3qy;8$ZbFScEnq6E9Jy zr}_Sg&p4ClR-5pID+4?KU zo*(77(RmTv@{AgcUZdYZj2_Ia%3XzRPA~Mg&v9Y7lucjmfFWxRTnx5|HEf!^O>PO7 z-mE|Ozu;AX`{L6Y{po_B^TXDpfAABj9eMv7>-rDrr_J+jHv~Vf0H4w{hx!7mPp1Fu zhvT=i1oti$|2DaPsUjtPR`UInl^AWB8eL}*os6;VKAe$KSbigMXXEZmk?WASP6OLAYKiW(`R-^ z>R?%OHfO9tzly5g3!t0b3wBd+PJJM~VLnCy9?WE^qRNpqWW~1l#s)p9y{?$VCWD{M zb32@Djv=R`rIKteV68BG*aEBIuX2bqa)}y+6~Q#3EgTS(PNK{+aH{!*->uP-?1rMV zxR*mL;?HPFc;(H52Q`R0I-vxMTJi?WOLKT)0yo5)G{lq~b$X$*nAC_=dNh%#aPnbf zjScg}3$JWtYNks|u=}u|>hGGKl9R~kt2sFgu)HLtoTM(?;^Is+E{YK(U5TKZPaxbX zTeK8zFSIV89k~|x1TD?{Ax1Nk^Z^-X4@v$|A)a9fWzm#;44+@Iw@-PxDTW6a335%4 zB%C^lSD<>5d+Y)2CF=r_wQjA8wMfk80*T-^R)MiM_ngZp_@Gxy02NvV4g^H&=SxOT z`i_r}w-FlYBotqik#k#9EUvvv)AI{^ri37C1sPFNS(M!`6oh z0sR;Q`k|bUUW6dYHf`WUUJy&o=0uVJ%$P_>x9$s4qW+=dV(;Aa?aVD1p~uX7$CT;Y z(Vvb>jSRtp0uI+ZnoFubGd7x2x4@HFXOrZl-gtWm(A_MKWmf!!$HK{?fUJ zli$@)5y0MYV4uU6dSdp74!ORjwF66&xpTF;yOYZq{n#;%WDje8Y*=&==}RL?gajn~ zER|Z-!s8OG6}N>|1b;58@eG6oCYot9{SRhd6v?!8tTyQOohem*@5GR?=KIZdy7#PB z%sdjcGBz(YHCdla>7GwDzdGdR%L^bmde{aUlx>e`yyc-(!=tzy-ib!yWvWqE=pG9z zJSr*OHfOjv$KWY7jwk*u>cGn&B=bQA{bT5|p`l?p`XNQ{x&&oL$^}AA+^{T zuILBCG!__m{`|-jS|(+4k(S%dO<_AgAiK!YFgXWGb%jIJaH<4`tYs*)LBRiyXgAeN zNG~G_te46mE9-H}j55s_L*`9*rrk9hO zGxZHC#mnzhUMR-|D^%ng;1u}z!NS$~;bHYiqahd_5wL331U=g0yCEEwgW*$59nj%; zJjkvaZ9-LOjk%Ejo<(Z1zto=MVMe~LAr<6neA3gJ*_dp~-c~|Nm8rLSj;|pNs_YK~ zUckz_`9@+bPS`6=xvSiSI%zx;-dl_g=WB(bZ8LW*bG@O18<<@Qe?DgtDrnw0QBTi z46fV5gln*D68FgGOrnGPB#*L#XPiVpWu0Y0sqALlW)m_^r1^o#k`rb~S`rmf zspw)tTF~IB0td#MqTkkY( z(C$QIN^6)1q+g@1Z3y#jr&_VlUj3x0O}w(x;$9YEvz*FQ-gUy{w5p{&SZ~~Lkgj<= zy9$}y)9iAzsA;+K0ms!oE+W+y&Zdog<;vr%jLC_3Fm?X?d2|HK!bmFj`GFjk^NMx( zDL&TODpbpvFostE!OooTE7YEWX z?FObxrKG(%#VRaF`;)QrwMI59FK1RYV+CQlx0~q-3Y0X%IymtMBgEF=XJVcOXb2hhE}WGE*gG3 z_mPJQJGx+&0e6o&x|F><-`{ZjUERuCtjc94Rup0wWo3rfHS-@v^`0h%n8H`P<=R>q zKC@Jp&L~3YHSL*9g)XV|V#V4pG>na$j5?m7Xl!{#b=+yL{*k%Cx+I0KEFQeKVMHg( z?hX7zQNmJD6jFR6pZEUuC*azN@>*_3n*$Rz!A2pnY+1B@1yauYj|7CXrh}VFZe;J} z&56hH;DfKEoD)XWUpc46Nc0e;;f0Ha;aCUB6okp*E5=B|A>L@0Ws~enK7A&VDTy}9 zp)6LI5fCj$#9i_;Z6R0xoN0~gSFSSm#nGz&?7$ZWFF(cNPs>AF+wf;zvVjQau zt#rGi{&5Vh^5l+lK<#0T*Xn5lv;t{P2DR}iHOSwW%Q5F-TPYc7vK4+NH4jU5ET?3CTkHaC&r9t zMxK+-!jix*0znB~K`c)((sPS}n3tO-H*HRTIW9MHNLkVhnaVawq|+ODmp>jL4zOp0ST{?=oRWUlKgn{ z)5dw&j2>qANdG~lLIgXC!a6$XT5DO7I7en+;xesHe)MB0Qaq7d{e#t^TUGvUJvU2_|D zOOS87+h0?<;N5MuvXfi~d*78T%UZ6t-buPhcg!EhGxnI1JX21>OGVq%lM9uEEirb4 zjdNWyfF)?Uc#-19Caqun9yicc-M@3QN-UI>(h}byA?b-etz}y$dPN|t)>~}MsD(^o zV|6{nh(JlD5N3zVSJd>WgD;DDY)s8~t+$Mdlc--z6;i(Y7%wwn7LGdXh+EjBdU%P? z;(A3Q9E3>8eRk(kOx-8>wrAB$KxzBsl-LEWRQU%vGd@!D>CUN96aPl{8J$~kka{%} z&5#uygk3N+wy4}3X&F}0lYIp>{r;ID^OE{`q zbMpdLlzj1Mp?U=uDRI2%4gM~z9Q@3_jXmebqRWU0obI)188f-^NqOd=mu=<~4YwB7 za=Q5%;!-)M3oJr4>KW?&=(>C&YmHS&UWWl3b1(8UA+9&fTl@flw;(nA?oL_d11hzw27cl(@)}P zS8jfiq{Sh#2JP9VP}Hf^(BIhyQcpB+qHdrbxiJkl{BoxJv&v&8xg<1-o!07DP4&n? zW=7Vs?dI(V$2%fKVa(Xp0@&$o{Sd zN>ugTpTe|`-mAPZ>EIQ{QCoWs!Zx&VLUm&90zuuTQZw%S7!xhgqF6^fcXlNpy)6^k zVIe3*;L7^l9J!uJl8^ri0!KaggL=W7MopXt^?rL@mk&VY7s1!DEq52fH+)CjSLPmy z4Z@Z+;5lb|!OgOTKL)yQt=){KHr}MTz+hC?U18$cdJJHQFl_MInq`5==TxB?m(DzO z`3+CsfdS=aE*@Op%Rq21q^0O?%r4}#K>q_JAYsyvH!RrX7l+9}3X@==yTjTni*k*EB70`0d(`SbhZ}u>X|{S26N?5R zwNMZ%`_7UACMFU0HTBriirF!XG2?5@UaIUIRSf1uyA_u-!Wo^dTzuypku;;CJ@VRX zOXKW1=I~9PRwhru_$ft)^`fFB zR0T#Wy|DMDthA-sNTMPv9VW^$XEzSGPCMS40^0<;9eyfiOQ>r4?TopB1uJn5n!a!38PQlDPIA>S^f0G{ zUHtKmOBah%2%MY?&YpY4J0eVGhsJt1#Nh4D0<(IvIja<>)Pltj*h%=pMAD*sDZddS z850!2k7J*DO;31;HvFidu}ed;tdx;ekl8bd{P=ij1^tx~QFG%)P*k`n{nB*Fk)|x$ z`*#-nXK3cEKgF7=1Z9Q8Op=O><=41jmFddmX=@0*P%#GYhJ#*ZXYjR+BP^_-hBhbj zOHdaXn-&>kWsb;dAlwo*hA}UW&Dw#UJP{d_(`@xsb4H?MR}*~U2#$slpB9@H3*Gb* zdXBdXdICo3u@z>^T!Vqv4z2^@M+kCV$MPILxNhusC-a zCy8R1A)5zBspKEoeJ?`eB9@IRZA)5`WHr{|J4O)FG(LOLRzqiAg`~GK!)He5ee5!R zZ&sX;4h22s|8_+9?MT=9H1T8=vpOlaiEO`|e!@7x>a8W#GbOOC~eFX`55%uI1nWHC9s+ znIOA`GDZY!Bp+WMO1NP5>(6=7%E^oE6GTPt2d>*BtvFjSwjp*KJZp0q^3kCqZ%f2d zLbqhrTWaOACWBN*7T&S>Zm=X^=a)F7G)&6nm^~2W-bf;|FIPmarrs(IozNi5*C-vz z-0JYV!GInNN42IOKR3SAIe@)saD9o`CYHawv)+&67mniKQSbq2azDfsg9v!TWwp5f zxNDz`3WPISuBuAxfMWbJ+^~8>2FpR#={6niTugU!#9*iVxFFh;{!C$$#IAcd(XN#X zv;uKShtRVwA>BKx_(rn*~Z=#oiVN-FXx;mv@pLXHzm^m(z4QN|o8 z$#9&N7R<9N+JGeS{btUck}vV$Pkbq#Gqd}aiG!s^URWY%CX0jU^WK8gzy8y<=n9$f3glz#0bwaHCoO7p4f`mot8O zrNc@YM-|n}`hg|1mXxw)wx|Fo4)TDK=Bt;QR<4z%5-$kR5a&o~Ryv<0ezqRFJcUX- zEKyEBbnKyTix^RdAK5xD9y!m&9bJ@_fR&t!+78}rJzKEPI7+j(9%;S1zPic;8Cl5{ zt694sOgZ#R(t%wSjR+gvAZrPrmUY2;4gS0qW|o0WUwc<3WYh@cwNwLLfwIt1EupSB zO^DfBe+fOZ5OxOY1j%eBj5nzUX^GE;JGJ0DtcC}k&uUs6~0eqiXfXBd1NE%B5>*uT1CZ|QN0_9morIfDmoIfNZ8!{tY;Pd!7dkt?PV zIGQ}E8q=kmj;iF66weA&Jauau)ISC~5@83`5lJakL$mf+i8Hf=3uZ8x;vS_j)6Dvq z*pS-9FFl(~8m~69mchjD>Ucg>GcjQ9WD(9CR+ozvWzei9RlFMT?m3DAJtoqma=z1i zx%rac!c?;W{CF>jiD~9AHo~as(ZVK4n>l7dE*B9=P2HKDB&ovKGr3oZ0K|LTcF1=9dJM%_e!Q{Q0L3qt(2A6kwURg zC-)Iwegw$u-t2m!cycRd!Y!gWuseTq3-zX!!Ujoa*V- z-EHxyIaU7qsnwvOeht=btD9*7g!*?6{O$cZ%CH%WCgA6&_83_TSbIyrxNMx<8mq8L8V|^XAFdyiNe7Qi>$ELh z3i;V!B#h5Qm!|L&V%)8B?j5)HR!OQY1Gqqdlk3H3ARrR|znH+^*GisjJEN$g-pR%} z%x#Y)2$(^{R~4E`OLai(2vKTf$4kAZUS+}S95W&tAqi|+Y0D;Dg{1nt>IZ8|y%n=Y z&e40K??Q#)tNirpwE#wqE6~bY% zXw?Z4(vAStK=>*mF%k(5?LcD8vd%RbPjLB)@i?N4S8pbXqN?6ABWHBmBWLu&A?v=C zj@UJZsdWhqB`0kOn@!^AdAlRi((%@oOpf7@423+|B|KCa87a*mw?5e=IMi9Rg?!Z$ z^r7dgyc?l$Y_WOV-%$tAuyZGL7V?nYQHIhrZAD>^NvIy z-E%R3x?O&BTLX78od>dtD)JC7M05hY>g=i_hnw7c~uvg~{^5DL(QV%at~0k+42B%-ZZ#MmAor@@PG% zJ7v}gPNRuF=|$?=>+tnxvmU|jPoo9t2D?m3W`QqQ^EM>hUb4wdNJ#ONYtH1<)v>N>!=Av*j^8S3jY_!?S}_li)=GLxhH{dpT;tKXamps&rdH9vpdHuu ztj37OjD(^`q%=6=)pn?3K86c<<}r>2b9wo!dROWbjymHAogTBa7+V6h{t#e^8rDOA zd!SxL3{F$jgJO+14ehWpLjIuG$2V2}AV&xa{b-#TDRc1r!PBsFsUA)b+BLyabVOR- z(FdFGGFTf_VfR#U)yN3!iM+JJ~)$KVu7knGd zM7NwHlNjKHm3R;rl4EV8D#BCS$3elNegI6<6tBHb4B9KC7)| za}$MvFsCG0T}m3^5q5AK8x5P_y6;4>(0mA!ZlM{CQL7PELvblH@0O)aU(w2G>?=H=Fu6WLpU_YuvIcy3jg?0ad6Yn zT>3aoc3(}8w4dAT6k`AeEG^{LPmcu`TiCV66@JxNMO!f6=L6wh=tT3YP3jk5A-554 z94!m_SwKAmIUFFSjo(e!J*3tu&l1b3&f%Q<0%hKd*Z}^RhxeGf)BOQ>@?(YO)c5V= zmJ{=Hwy=hy z9HAdeoZGCxf8K&1j1Cni8gT7OpQT_uSU z>9HYqw2^p>lGd*Lw5hMs{C2`zIgXT-GZL8eHDr`r2e7#02w%g!SnY>}*{gJy=rTS@ zN4?<0x$N`-9qK9i@s;C{KaG9NqeLGbSK_KVztdx41g1?w;nL|Vyae85#8d8N@$7Zb z#Fvoxc{kSn+!XFKaRxQ6`|6M9t9MD+(xQX59uOkNxH0SE3Uq>wZrJz`;_YL&sPU?6 zx*j|mGR;qZTp*lggE`znxJ^&1h@MXoN&wKiRs%2C|Mjxg&&*8d zT&*lwBRd{;5h8-$NgVt1bo{(FtF+~TR~JuQ4p_$V5U)?!mIR`I(*6WHA{wsOj6{}*;;*5 z+FHEPQyYu+Jua6&NT6nq!E-~TL4cpjzaqu<$te53c_jhznlR^KKnP5VZc%>A>vKy- z6Eo|td96)SjGkwM_xS*}&X0Ijp&cw-$Gb~vBRc!gb1r+20bURvHB>I3npQq`-|fxK zxnk@dN8Q@N+{p%A9c2uGWK4~;;xgo|hlqQ0-Pnkka??f*V$*^TOZVJZu27Hnw4?#A zrr_+#EToslUCXUwBVsK-_6}Rc!<_wqqXsQHJK`xwK2NW!!=tBXgWV{f(@%}wM0WP7 zp_#R6(53aabizu)=EMKDDGlO%}4pC|xwgY`$QBa;IDwrBz0TL*usdHgE*nIxh zSHkZg?*{1_sY8{*u|QGKxVCbR|MiM6WWH}<7HkbzFsGC}^4w$-PcU!iV|MqL*KuSq z7Ap*h`0I3wT&|{I!qK8|0ZNipPOFFw-Y?E(UZ}gT72+dV;nF!(SVb;$Sk>$g%R;^G z8!|ipuo?&Aof9cNa}ZrD7-qNem^PYEF)5VmEOIDBanTXBvBu0E;klt0m`9HN7TmD` z>^{mRT?I9iAbbFU$Qfv6M{38gc+4zxPp8x-#V#zV-#9uW5i$X7QJ;Y-Tax!JY2UbV9cW{Nq6h5-D@rdhIkNprsT8nQsl=B)T^yLv0UhF)#ep0#g zS}D?N+f0)8^*}eXEcRCJwPiz*aVpJJP(uLGODY>0XF8TguOhn}xRa2{SCh<77bW>` z9H4@zM;^AVM%(L$S+y*spL9D!+g;^At?I)oNIFDt;JueRaMe7a$xw5ND$F4^F8G*q zb!-Y-{FXkxI9lkVL8c-1q6f5Mp@$d9b&gIN^7^=GsD5enxlI}ED@HG+E?dD^qe}KF z^5c1cB^rTDJT=-BfoTPBSKa9ywoWDxjtK38Zy`TIhhR%Cpu3?rM*&}v zPy2JJvS*D&RcMmjQ#c;6^%jX!czq->Nyue^QKJ;0Jx4kEoUxX`UbB!s@;A!0<&TlaPmwPv4pv;XpILx_e6=Hhnfv1bt{#ENimC|GO3I1R zTj@I)Tho6tkbnL#_Mbm&Xk$fZ1DqSNGW6ha6~-Dl-+4 zRC01IUf>dM6yOnp@t5R02eRg3WtpxjYqP+H$lEM%2d2Mn8e>5&HV;9~@=%Gz2Zj6n z)K)eI9cw~zzQoJC(_GOz_n@g@%HH?ryju)5_$K%!LBva3S1?9|S7JDKYuldCd$E;b zmK_S?u&$4$no<_E+l}eB{OIJ|H|_SP-!APrIh^qv(xHdjpI*(Epy6AJWJf⪙F5I zO-13UJcenjQUW&~_LdND>v?ze3M%|u$}knv}ZZI!=~ zE}T;j{X(kI+D>Hgm|Y=ahaAq>EMFkdw^vp zaSHQ9wNcJ4d}~!k)j!w12{#3Ux5gxYDZ9m||0>LV#>t|LWQ_)2QsW(u?6XHg6;8Cv zjuC0`vVBFCyX4PsV@KUQn0CHMB(a~7*z7wW=bTq$(T7bpC$g73ea%0T;)z_su6*Dq z3i-e)eyMa%ZnA9an9;bt^)93W?(+KD+rkXtR^F4u^9#m1Mt`l&rq#H2VZ`Qil%FnE z8d8Svo5Z1ec>|8{3!D(#VYmw&L|gaL0%pbLI6iFH5O`CzecYued^EUe>zadr$q?hBHsG`8K(;vgk*iq+W^}@zQaqd%w^*&hO0MpeWHvIg#f|1xb(ULS zJx`xdfLt+$mN8%9UDlFE%MFG!p}Qz-=KVx#5&|2Bt6qz@?a$^ct-W72DM+%YT$U|?6A$LQGo+m_3n;!f36-ch@vhnI` zC*wOmi%f0PTAN~}x%JI^b2Hj@jvXlL7-v9TQ7E6T_3|2ne8G z9?H5j4k(3(F&`aSK0JXxmT_&I2>&7t$D?c+cVvI^#n-N}zePJ#lr-5aw4YQ!|Ahjm z0!uY!UU5<)9I&no`T!N|>(K7c_6+ba_4|VevM2cU?H{J_dopN{uj5429fdLr-~;}^ z3-#+Ke}D3P$$@u&B$E}ClN1wGR-uy>`!3jf{kUE7{-H^6q04a_LL-fi=TrL=X`EZw%mfo-Y_s z*ME}vKVcN~?SS(BDXe3VB4-`Yi3EW0{s8L${^wUbkH z3Iy{PP{MY``VPiFC5ie?`2+(>$pT;0k0cqwUm%GXTN?iZsSNG*d>$ZO|A|Bkn3R8A zd`iYvKr8;KPV3DCt^)w+4j_F!Z};uV^EIIRWzxT>7%RRax8A^T4H}rI{#Y?00JoF> zS~F#12U%kW{hz94!?1*11*oPAs3!1DFW`5c?=!xChmr?IpWk;4?SD#BNwvFJ0~*pb zItU2Y4>Tvye@FW*a@jvMV_T_!$WoxXHvrZB$7Wn9|BIaenT?++1x5#@%n2yf1$1jb znf>wP`8GZIMc6;KV}e#N_AZ%>{t zO7^dDege7UBju?_e~YoC|zuxT9xBT&r*ZqEz6wBy@4H&>z0IPOnKS<}R z|GD(9?!y1t3LZbvh2sLMfGGk92oT=&k0;N!q4%F<{_fZLuSMrurEPq5F!t4$Gyfs@ zYb)X%`Kf4WGeZk`YcYMZe<%-mfeptwpl8YhX3~^D0G^Eh6d-GCZx8sR{yn<%{bKgm zY*H@)TK+ijC9?e>)@9+RV!usXfj;5u1Xjk(!T9fnKmhhWkx-i7B6@$r|Mv}&D$^8P#h3so)1q$e^_eQ2~IR}2{`KB|0 z{%jU;Z$$rhh10#YTg46xu+M-w(2uQ%i0xP8|8>Ejrb+Gv0n#ghQu(o37K;ChbU_8l zzXk}l!(ZwH^?nktIzQGQFO8o9zIPbFg-~k~V_|(qd*i=m+>Z$V?OVw6W!CHR$a_wIpz4={ZnaX<9Vcf_9kPZ9rA{qINU z_%4{h<>!L`B3{S+T;Gob@m)Bo+fRl6eO!q9i2H8*zayGF{u%MTlHPObe;;$-Vfc4U zz0ZHa{O&&dKIXo&+weQ4DDppG{@O;}ck%EY0-63VAom*jUo-CCxc|O zzd9oHol4RAmHO?#(EZ%rKd$pV-4u}S`{AAM>HfS?1T1U*{vd+f-QjkEe&1^Pwpsu8 z`zv3!>wkN`CYJnjVxXme-@N~OIlx5V|H$$Eshq#xQTprc{BM%;eEWY%?(duX-^=c= tcPPJ$SMB*z+5I2&?`Qj~`0x9b3eph3system ${project.basedir}/lib/DigiCoin.jar + + com.overmc + overpermissions + 1.0.5 + system + ${project.basedir}/lib/overpermissions-1.0.5.jar + - junit - junit - 4.11 + junit + junit + 4.11 diff --git a/src/net/milkbowl/vault/Vault.java b/src/net/milkbowl/vault/Vault.java index b04862f..f8fd9ff 100644 --- a/src/net/milkbowl/vault/Vault.java +++ b/src/net/milkbowl/vault/Vault.java @@ -28,6 +28,7 @@ import java.util.logging.Logger; import net.milkbowl.vault.chat.Chat; import net.milkbowl.vault.chat.plugins.Chat_DroxPerms; import net.milkbowl.vault.chat.plugins.Chat_GroupManager; +import net.milkbowl.vault.chat.plugins.Chat_OverPermissions; import net.milkbowl.vault.chat.plugins.Chat_Permissions3; import net.milkbowl.vault.chat.plugins.Chat_PermissionsEx; import net.milkbowl.vault.chat.plugins.Chat_Privileges; @@ -69,6 +70,7 @@ import net.milkbowl.vault.economy.plugins.Economy_Minefaconomy; import net.milkbowl.vault.permission.Permission; import net.milkbowl.vault.permission.plugins.Permission_DroxPerms; import net.milkbowl.vault.permission.plugins.Permission_GroupManager; +import net.milkbowl.vault.permission.plugins.Permission_OverPermissions; import net.milkbowl.vault.permission.plugins.Permission_Permissions3; import net.milkbowl.vault.permission.plugins.Permission_PermissionsBukkit; import net.milkbowl.vault.permission.plugins.Permission_PermissionsEx; @@ -139,7 +141,7 @@ public class Vault extends JavaPlugin { getConfig().addDefault("update-check", true); getConfig().options().copyDefaults(true); saveConfig(); - + // Load Vault Addons loadEconomy(); loadPermission(); @@ -188,7 +190,7 @@ public class Vault extends JavaPlugin { }, 0, 432000); } - + }); // Load up the Plugin metrics @@ -215,6 +217,9 @@ public class Vault extends JavaPlugin { // Try to load mChat hookChat("mChat", Chat_mChat.class, ServicePriority.Highest, "net.D3GN.MiracleM4n.mChat"); + // Try to load OverPermissions + hookChat("OverPermissions", Chat_OverPermissions.class, ServicePriority.Highest, "com.overmc.overpermissions.OverPermissions"); + // Try to load DroxPerms Chat hookChat("DroxPerms", Chat_DroxPerms.class, ServicePriority.Lowest, "de.hydrox.bukkit.DroxPerms.DroxPerms"); @@ -315,7 +320,7 @@ public class Vault extends JavaPlugin { // Try to load GoldenChestEconomy hookEconomy("GoldenChestEconomy", Economy_GoldenChestEconomy.class, ServicePriority.Normal, "me.igwb.GoldenChest.GoldenChestEconomy"); - + // Try to load Dosh hookEconomy("Dosh", Economy_Dosh.class, ServicePriority.Normal, "com.gravypod.Dosh.Dosh"); @@ -330,7 +335,7 @@ public class Vault extends JavaPlugin { // Try to load TAEcon hookEconomy("TAEcon", Economy_TAEcon.class, ServicePriority.Normal, "net.teamalpha.taecon.TAEcon"); - + // Try to load DigiCoin hookEconomy("DigiCoin", Economy_DigiCoin.class, ServicePriority.Normal, "co.uk.silvania.cities.digicoin.DigiCoin"); } @@ -345,6 +350,9 @@ public class Vault extends JavaPlugin { // Try to load PermissionsEx hookPermission("PermissionsEx", Permission_PermissionsEx.class, ServicePriority.Highest, "ru.tehkode.permissions.bukkit.PermissionsEx"); + // Try to load OverPermissions + hookPermission("OverPermissions", Permission_OverPermissions.class, ServicePriority.Highest, "com.overmc.overpermissions.OverPermissions"); + // Try to load PermissionsBukkit hookPermission("PermissionsBukkit", Permission_PermissionsBukkit.class, ServicePriority.Normal, "com.platymuus.bukkit.permissions.PermissionsPlugin"); @@ -381,9 +389,9 @@ public class Vault extends JavaPlugin { // Try to load rscPermissions hookPermission("rscPermissions", Permission_rscPermissions.class, ServicePriority.Normal, "ru.simsonic.rscPermissions.MainPluginClass"); - //Try to load KPerms + // Try to load KPerms hookPermission("KPerms", Permission_KPerms.class, ServicePriority.Normal, "com.lightniinja.kperms.KPermsPlugin"); - + Permission perms = new Permission_SuperPerms(this); sm.register(Permission.class, perms, this, ServicePriority.Lowest); log.info(String.format("[%s][Permission] SuperPermissions loaded as backup permission system.", getDescription().getName())); diff --git a/src/net/milkbowl/vault/chat/plugins/Chat_OverPermissions.java b/src/net/milkbowl/vault/chat/plugins/Chat_OverPermissions.java new file mode 100644 index 0000000..ed14e1b --- /dev/null +++ b/src/net/milkbowl/vault/chat/plugins/Chat_OverPermissions.java @@ -0,0 +1,293 @@ +/* This file is part of Vault. + + Vault is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Vault is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with Vault. If not, see . + */ +package net.milkbowl.vault.chat.plugins; + +import net.milkbowl.vault.chat.Chat; +import net.milkbowl.vault.permission.Permission; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.server.PluginDisableEvent; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.plugin.Plugin; + +import com.overmc.overpermissions.Group; +import com.overmc.overpermissions.OverPermissions; +import com.overmc.overpermissions.OverPermissionsAPI; + + +public class Chat_OverPermissions extends Chat { + + private static final String name = "OverPermissions_Chat"; + private Plugin plugin; + private OverPermissions overPerms; + private OverPermissionsAPI api; + + public Chat_OverPermissions(Plugin plugin, Permission perms) { + super(perms); + this.plugin = plugin; + + plugin.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), plugin); + + if (overPerms == null) { + Plugin p = plugin.getServer().getPluginManager().getPlugin("OverPermissions"); + if (p != null) { + overPerms = (OverPermissions) p; + plugin.getLogger().info(String.format("[%s][Chat] %s hooked.", new Object[] {plugin.getDescription().getName(), "OverPermissions"})); + } + } + if ((api == null) && (overPerms != null)) { + api = overPerms.getAPI(); + } + } + + @Override + public String getName() { + return name; + } + + @Override + public boolean isEnabled() { + return overPerms != null; + } + + @Override + public String getPlayerPrefix(String world, String player) { + return getPlayerInfoString(world, player, "prefix", ""); + } + + @Override + public void setPlayerPrefix(String world, String player, String prefix) { + setPlayerInfoString(world, player, "prefix", prefix); + } + + @Override + public String getPlayerSuffix(String world, String player) { + return getPlayerInfoString(world, player, "suffix", ""); + } + + @Override + public void setPlayerSuffix(String world, String player, String suffix) { + setPlayerInfoString(world, player, "suffix", suffix); + } + + @Override + public String getGroupPrefix(String world, String group) { + return getGroupInfoString(world, group, "prefix", ""); + } + + @Override + public void setGroupPrefix(String world, String group, String prefix) { + setGroupInfoString(world, group, "prefix", prefix); + } + + @Override + public String getGroupSuffix(String world, String group) { + return getGroupInfoString(world, group, "suffix", ""); + } + + @Override + public void setGroupSuffix(String world, String group, String suffix) { + setGroupInfoString(world, group, "prefix", suffix); + } + + @Override + public int getPlayerInfoInteger(String world, String player, String node, int defaultValue) { + String s = getPlayerInfoString(world, player, node, null); + if (s == null) { + return defaultValue; + } + try { + return Integer.valueOf(s).intValue(); + } catch (NumberFormatException e) { + } + return defaultValue; + } + + @Override + public void setPlayerInfoInteger(String world, String player, String node, int value) { + setPlayerInfoString(world, player, node, String.valueOf(value)); + } + + @Override + public int getGroupInfoInteger(String world, String group, String node, int defaultValue) { + String s = getGroupInfoString(world, group, node, null); + if (s == null) { + return defaultValue; + } + try { + return Integer.valueOf(s).intValue(); + } catch (NumberFormatException e) { + } + return defaultValue; + } + + @Override + public void setGroupInfoInteger(String world, String group, String node, int value) { + setGroupInfoString(world, group, node, String.valueOf(value)); + } + + @Override + public double getPlayerInfoDouble(String world, String player, String node, double defaultValue) { + String s = getPlayerInfoString(world, player, node, null); + if (s == null) { + return defaultValue; + } + try { + return Double.valueOf(s).doubleValue(); + } catch (NumberFormatException e) { + } + return defaultValue; + } + + @Override + public void setPlayerInfoDouble(String world, String player, String node, double value) { + setPlayerInfoString(world, player, node, String.valueOf(value)); + } + + @Override + public double getGroupInfoDouble(String world, String group, String node, double defaultValue) { + String s = getGroupInfoString(world, group, node, null); + if (s == null) { + return defaultValue; + } + try { + return Double.valueOf(s).doubleValue(); + } catch (NumberFormatException e) { + } + return defaultValue; + } + + @Override + public void setGroupInfoDouble(String world, String group, String node, double value) { + setGroupInfoString(world, group, node, String.valueOf(value)); + } + + @Override + public boolean getPlayerInfoBoolean(String world, String player, String node, boolean defaultValue) { + String s = getPlayerInfoString(world, player, node, null); + if (s == null) { + return defaultValue; + } + Boolean val = Boolean.valueOf(s); + return val != null ? val.booleanValue() : defaultValue; + } + + @Override + public void setPlayerInfoBoolean(String world, String player, String node, boolean value) { + setPlayerInfoString(world, player, node, String.valueOf(value)); + } + + @Override + public boolean getGroupInfoBoolean(String world, String group, String node, boolean defaultValue) { + String s = getGroupInfoString(world, group, node, null); + if (s == null) { + return defaultValue; + } + return Boolean.valueOf(s); + } + + @Override + public void setGroupInfoBoolean(String world, String group, String node, boolean value) { + setGroupInfoString(world, group, node, String.valueOf(value)); + } + + @Override + public String getPlayerInfoString(String world, String playerName, String node, String defaultValue) { + Player p = Bukkit.getPlayerExact(playerName); + String ret = null; + if (p != null) { + ret = overPerms.getPlayerPermissions(p).getStringMeta(node, defaultValue); + } else { + int playerId = overPerms.getSQLManager().getPlayerId(playerName); + int worldId = overPerms.getSQLManager().getWorldId(world); + ret = overPerms.getSQLManager().getPlayerMetaValue(playerId, worldId, node); + } + if (ret == null) { + return defaultValue; + } + return ret; + } + + @Override + public void setPlayerInfoString(String world, String player, String node, String value) { + Player p = Bukkit.getPlayerExact(player); + int playerId = overPerms.getSQLManager().getPlayerId(player, true); + int worldId = overPerms.getSQLManager().getWorldId(player, false); + if (worldId < 0) { + overPerms.getSQLManager().setGlobalPlayerMeta(playerId, node, value); + } else { + overPerms.getSQLManager().setPlayerMeta(playerId, worldId, node, value); + } + if (p != null) { + overPerms.getPlayerPermissions(p).recalculateMeta(); + } + } + + @Override + public String getGroupInfoString(String world, String groupName, String node, String defaultValue) { + Group group = overPerms.getGroupManager().getGroup(groupName); + if (group == null) { + return defaultValue; + } + String value = group.getMeta(node); + if (value == null) { + return defaultValue; + } + return value; + } + + @Override + public void setGroupInfoString(String world, String groupName, String node, String value) { + Group group = overPerms.getGroupManager().getGroup(groupName); + if (group == null) { + return; + } + group.setMeta(node, value); + group.recalculatePermissions(); + } + + public class PermissionServerListener implements Listener { + Chat_OverPermissions chat = null; + + public PermissionServerListener(Chat_OverPermissions chat) { + this.chat = chat; + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginEnable(PluginEnableEvent event) { + if (chat.overPerms == null) { + Plugin chat = plugin.getServer().getPluginManager().getPlugin("OverPermissions"); + if (chat != null) { + this.chat.overPerms = (OverPermissions) chat; + plugin.getLogger().info(String.format("[%s][Chat] %s hooked.", plugin.getDescription().getName(), getName())); + } + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginDisable(PluginDisableEvent event) { + if ((chat.overPerms != null) && + (event.getPlugin().getDescription().getName().equals("OverPermissions"))) { + chat.overPerms = null; + plugin.getLogger().info(String.format("[%s][Chat] %s un-hooked.", plugin.getDescription().getName(), getName())); + } + } + } +} \ No newline at end of file diff --git a/src/net/milkbowl/vault/chat/plugins/Chat_PermissionsEx.java b/src/net/milkbowl/vault/chat/plugins/Chat_PermissionsEx.java index 94dc46c..3af086d 100644 --- a/src/net/milkbowl/vault/chat/plugins/Chat_PermissionsEx.java +++ b/src/net/milkbowl/vault/chat/plugins/Chat_PermissionsEx.java @@ -12,7 +12,7 @@ You should have received a copy of the GNU Lesser General Public License along with Vault. If not, see . -*/ + */ package net.milkbowl.vault.chat.plugins; import java.util.logging.Logger; @@ -33,14 +33,14 @@ import ru.tehkode.permissions.PermissionUser; import ru.tehkode.permissions.bukkit.PermissionsEx; public class Chat_PermissionsEx extends Chat { - private static final Logger log = Logger.getLogger("Minecraft"); + private static final Logger log = Logger.getLogger("Minecraft"); private final String name = "PermissionsEx_Chat"; - + private Plugin plugin = null; private PermissionsEx chat = null; public Chat_PermissionsEx(Plugin plugin, Permission perms) { - super(perms); + super(perms); this.plugin = plugin; Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), plugin); @@ -56,14 +56,14 @@ public class Chat_PermissionsEx extends Chat { } } } - + public class PermissionServerListener implements Listener { Chat_PermissionsEx chat = null; public PermissionServerListener(Chat_PermissionsEx chat) { this.chat = chat; } - + @EventHandler(priority = EventPriority.MONITOR) public void onPluginEnable(PluginEnableEvent event) { if (chat.chat == null) { @@ -88,20 +88,20 @@ public class Chat_PermissionsEx extends Chat { } } } - - @Override - public String getName() { - return name; - } - @Override - public boolean isEnabled() { - if (chat == null) - return false; - else - return chat.isEnabled(); - } - + @Override + public String getName() { + return name; + } + + @Override + public boolean isEnabled() { + if (chat == null) + return false; + else + return chat.isEnabled(); + } + @Override public int getPlayerInfoInteger(String world, String playerName, String node, int defaultValue) { return PermissionsEx.getPermissionManager().getUser(playerName).getOptionInteger(node, world, defaultValue); @@ -121,7 +121,7 @@ public class Chat_PermissionsEx extends Chat { public String getPlayerInfoString(String world, String playerName, String node, String defaultValue) { return PermissionsEx.getPermissionManager().getUser(playerName).getOption(node, world, defaultValue); } - + @Override public void setPlayerInfoInteger(String world, String playerName, String node, int value) { PermissionUser user = PermissionsEx.getPermissionManager().getUser(playerName); @@ -233,7 +233,7 @@ public class Chat_PermissionsEx extends Chat { group.setOption(node, world, value); } } - + @Override public String getPlayerPrefix(String world, String playerName) { PermissionUser user = PermissionsEx.getPermissionManager().getUser(playerName); diff --git a/src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java b/src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java new file mode 100644 index 0000000..415b7f7 --- /dev/null +++ b/src/net/milkbowl/vault/permission/plugins/Permission_OverPermissions.java @@ -0,0 +1,175 @@ +/* This file is part of Vault. + + Vault is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Vault is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with Vault. If not, see . +*/ +package net.milkbowl.vault.permission.plugins; + +import net.milkbowl.vault.permission.Permission; + +import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.server.PluginDisableEvent; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.plugin.Plugin; + +import com.overmc.overpermissions.OverPermissions; +import com.overmc.overpermissions.OverPermissionsAPI; + +public class Permission_OverPermissions extends Permission { + + private final String name = "OverPermissions"; + private OverPermissions overPerms; + private OverPermissionsAPI api; + + public Permission_OverPermissions(Plugin plugin) { + this.plugin = plugin; + Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(this), plugin); + + if (overPerms == null) { + Plugin perms = plugin.getServer().getPluginManager().getPlugin("OverPermissions"); + if ((perms != null) && (perms.isEnabled())) { + overPerms = ((OverPermissions) perms); + log.info(String.format("[%s][Permission] %s hooked.", plugin.getDescription().getName(), "OverPermissions")); + } + } + + if ((api == null) && (overPerms != null)) { + api = overPerms.getAPI(); + } + } + + @Override + public String getName() { + return name; + } + + @Override + public boolean isEnabled() { + return (overPerms != null) && (overPerms.isEnabled()); + } + + @Override + public boolean playerHas(String worldName, String playerName, String permission) { + return api.playerHas(worldName, playerName, permission); + } + + @Override + public boolean playerAdd(String worldName, String playerName, String permission) { + return api.playerAdd(worldName, playerName, permission); + } + + @Override + public boolean playerRemove(String worldName, String playerName, String permission) { + return api.playerRemove(worldName, playerName, permission); + } + + @Override + public boolean groupHas(String worldName, String groupName, String permission) { + return api.groupHas(groupName, permission); + } + + @Override + public boolean groupAdd(String worldName, String groupName, String permission) { + return api.groupAdd(groupName, permission); + } + + @Override + public boolean groupRemove(String worldName, String groupName, String permission) { + return api.groupRemove(groupName, permission); + } + + @Override + public boolean playerInGroup(String worldName, String playerName, String groupName) { + return api.groupHasPlayer(playerName, groupName); + } + + @Override + public boolean playerAddGroup(String worldName, String playerName, String groupName) { + return api.playerAddGroup(playerName, groupName); + } + + @Override + public boolean playerRemoveGroup(String worldName, String playerName, String groupName) { + return api.playerRemoveGroup(playerName, groupName); + } + + @Override + public String[] getPlayerGroups(String worldName, String playerName) { + return api.getPlayerGroups(worldName, playerName); + } + + @Override + public String getPrimaryGroup(String worldName, String playerName) { + String[] playerGroups = getPlayerGroups(worldName, playerName); + if (playerGroups.length == 0) { + return null; + } + return playerGroups[0]; + } + + @Override + public boolean playerAddTransient(String world, String player, String permission) { + return api.playerAddTransient(world, player, permission); + } + + @Override + public boolean playerRemoveTransient(String world, String player, String permission) { + return api.playerRemoveTransient(world, player, permission); + } + + @Override + public String[] getGroups() { + return api.getGroupsArray(); + } + + @Override + public boolean hasSuperPermsCompat() { + return true; + } + + @Override + public boolean hasGroupSupport() { + return true; + } + + public class PermissionServerListener implements Listener { + Permission_OverPermissions permission = null; + + public PermissionServerListener(Permission_OverPermissions permission) { + this.permission = permission; + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginEnable(PluginEnableEvent event) { + if (permission.overPerms == null) { + Plugin perms = Permission_OverPermissions.this.plugin.getServer().getPluginManager().getPlugin("OverPermissions"); + if (perms != null) { + permission.overPerms = ((OverPermissions) perms); + Permission_OverPermissions.log.info(String.format("[%s][Permission] %s hooked.", plugin.getDescription().getName(), "OverPermissions")); + } + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPluginDisable(PluginDisableEvent event) { + if ((permission.overPerms != null) && + (event.getPlugin().getDescription().getName().equals("OverPermissions"))) { + permission.overPerms = null; + Permission_OverPermissions.log.info(String.format("[%s][Permission] %s un-hooked.", plugin.getDescription().getName(), "OverPermissions")); + } + } + } +} \ No newline at end of file