From b97a8434282ae8939dd62a528f3b5db515185468 Mon Sep 17 00:00:00 2001 From: Daniel Ginovker Date: Wed, 9 Oct 2019 17:30:43 -0400 Subject: [PATCH] Players Online On Website, Changed packaging a little & added SettingsLoader (#44) --- 2006Redone Server/data/secrets.json | 1 + 2006Redone Server/src/redone/Server.java | 23 +++++----- .../integrations/PlayersOnlineWebsite.java | 37 ++++++++++++++++ .../redone/integrations/SettingsLoader.java | 40 ++++++++++++++++++ .../{ => integrations}/discord/JavaCord.java | 36 +++------------- .../META-INF/2006rebotted.kotlin_module | Bin 0 -> 16 bytes .../2006rebotted/redone/Server.class | Bin 7174 -> 7351 bytes .../redone/discord/JavaCord.class | Bin 6060 -> 0 bytes .../game/content/skills/core/Mining.class | Bin 7181 -> 7181 bytes .../integrations/PlayersOnlineWebsite.class | Bin 0 -> 1718 bytes .../redone/integrations/SettingsLoader.class | Bin 0 -> 2288 bytes .../integrations/discord/JavaCord.class | Bin 0 -> 4757 bytes 12 files changed, 96 insertions(+), 41 deletions(-) create mode 100644 2006Redone Server/data/secrets.json create mode 100644 2006Redone Server/src/redone/integrations/PlayersOnlineWebsite.java create mode 100644 2006Redone Server/src/redone/integrations/SettingsLoader.java rename 2006Redone Server/src/redone/{ => integrations}/discord/JavaCord.java (71%) create mode 100644 CompiledServer/production/2006rebotted/META-INF/2006rebotted.kotlin_module delete mode 100644 CompiledServer/production/2006rebotted/redone/discord/JavaCord.class create mode 100644 CompiledServer/production/2006rebotted/redone/integrations/PlayersOnlineWebsite.class create mode 100644 CompiledServer/production/2006rebotted/redone/integrations/SettingsLoader.class create mode 100644 CompiledServer/production/2006rebotted/redone/integrations/discord/JavaCord.class diff --git a/2006Redone Server/data/secrets.json b/2006Redone Server/data/secrets.json new file mode 100644 index 00000000..d0bd3246 --- /dev/null +++ b/2006Redone Server/data/secrets.json @@ -0,0 +1 @@ +{"bot-token":"","powpass":""} \ No newline at end of file diff --git a/2006Redone Server/src/redone/Server.java b/2006Redone Server/src/redone/Server.java index 5b6c0b39..e3763f44 100644 --- a/2006Redone Server/src/redone/Server.java +++ b/2006Redone Server/src/redone/Server.java @@ -8,7 +8,9 @@ import org.apache.mina.common.IoAcceptor; import org.apache.mina.transport.socket.nio.SocketAcceptor; import org.apache.mina.transport.socket.nio.SocketAcceptorConfig; -import redone.discord.JavaCord; +import redone.integrations.PlayersOnlineWebsite; +import redone.integrations.SettingsLoader; +import redone.integrations.discord.JavaCord; import redone.event.CycleEventHandler; import redone.event.TaskScheduler; import redone.game.content.minigames.FightCaves; @@ -52,24 +54,24 @@ public class Server { public static int[] cannonsY = new int [50]; public static String[] cannonsO = new String [50]; public static boolean sleeping; - public static final int cycleRate; + private static final int cycleRate; public static boolean UpdateServer = false; public static long lastMassSave = System.currentTimeMillis(); private static IoAcceptor acceptor; private static ConnectionHandler connectionHandler; private static ConnectionThrottleFilter throttleFilter; - public static boolean shutdownServer = false; + private static boolean shutdownServer = false; public static int garbageCollectDelay = 40; public static boolean shutdownClientHandler; - public static int serverlistenerPort; + private static int serverlistenerPort; public static ItemHandler itemHandler = new ItemHandler(); public static PlayerHandler playerHandler = new PlayerHandler(); public static NpcHandler npcHandler = new NpcHandler(); - public static ShopHandler shopHandler = new ShopHandler(); + private static ShopHandler shopHandler = new ShopHandler(); public static ObjectHandler objectHandler = new ObjectHandler(); public static ObjectManager objectManager = new ObjectManager(); public static FightCaves fightCaves = new FightCaves(); - public static PestControl pestControl = new PestControl(); + private static PestControl pestControl = new PestControl(); public static Trawler trawler = new Trawler(); private static final TaskScheduler scheduler = new TaskScheduler(); public static ClanChatHandler clanChat = new ClanChatHandler(); @@ -82,7 +84,7 @@ public class Server { * Port and Cycle rate. */ static { - serverlistenerPort = 43594; + serverlistenerPort = 43595; cycleRate = 600; shutdownServer = false; } @@ -113,9 +115,9 @@ public class Server { System.out.println("Launching " + Constants.SERVER_NAME + "..."); /** - * Start Discord Bot - */ - + * Start Integration Services + **/ + SettingsLoader.loadSettings(); JavaCord.init(); /** @@ -168,6 +170,7 @@ public class Server { FightPits.process(); pestControl.process(); CycleEventHandler.getSingleton().process(); + PlayersOnlineWebsite.addUpdatePlayersOnlineTask(); if (System.currentTimeMillis() - lastMassSave > 300000) { for (Player p : PlayerHandler.players) { if (p == null) { diff --git a/2006Redone Server/src/redone/integrations/PlayersOnlineWebsite.java b/2006Redone Server/src/redone/integrations/PlayersOnlineWebsite.java new file mode 100644 index 00000000..4b970f45 --- /dev/null +++ b/2006Redone Server/src/redone/integrations/PlayersOnlineWebsite.java @@ -0,0 +1,37 @@ +package redone.integrations; + +import redone.game.players.PlayerHandler; + +import java.io.IOException; +import java.net.URL; + +public class PlayersOnlineWebsite { + + static String password; + + private static void setWebsitePlayersOnline(int amount) throws IOException { + URL url; + url = new URL("https://2006rebotted.tk/playersonline.php?pass=" + password + "&amount=" + amount); + url.openStream().close(); + System.out.println("Test!"); + } + + private static int count = 50; + public static void addUpdatePlayersOnlineTask() { + if (!password.equals("")) { + if (count == 0) { + try { + setWebsitePlayersOnline(PlayerHandler.getPlayerCount()); + count = 50; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else { + count--; + } + } else { + System.out.println("No Players Online On Website Password Set So Task Stopped"); + } + } +} diff --git a/2006Redone Server/src/redone/integrations/SettingsLoader.java b/2006Redone Server/src/redone/integrations/SettingsLoader.java new file mode 100644 index 00000000..04bbe4a0 --- /dev/null +++ b/2006Redone Server/src/redone/integrations/SettingsLoader.java @@ -0,0 +1,40 @@ +package redone.integrations; + +import org.json.JSONObject; +import redone.integrations.discord.JavaCord; + +import java.io.*; +import java.util.stream.Collectors; + +public class SettingsLoader { + private static void initialize() { + JSONObject main = new JSONObject(); + main + .put("bot-token", "") + .put("powpass", ""); + try { + BufferedWriter br = new BufferedWriter(new FileWriter("data/secrets.json")); + br.write(main.toString()); + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void loadSettings() throws IOException { + if (!new File("data/secrets.json").exists()) { + initialize(); + System.out.println("Please open \"data/secrets.json\" file and enter your discord token bot there!"); + System.out.println("Please open \"data/secrets.json\" file and enter your Players Online On Website Password there!"); + + } else { + BufferedReader br = new BufferedReader(new FileReader("data/secrets.json")); + String out = br.lines().collect(Collectors.joining("\n")); + JSONObject obj = new JSONObject(out); + + JavaCord.token = obj.getString("bot-token"); + PlayersOnlineWebsite.password = obj.getString("powpass"); + + } + } +} diff --git a/2006Redone Server/src/redone/discord/JavaCord.java b/2006Redone Server/src/redone/integrations/discord/JavaCord.java similarity index 71% rename from 2006Redone Server/src/redone/discord/JavaCord.java rename to 2006Redone Server/src/redone/integrations/discord/JavaCord.java index a2067a50..ee93b136 100644 --- a/2006Redone Server/src/redone/discord/JavaCord.java +++ b/2006Redone Server/src/redone/integrations/discord/JavaCord.java @@ -1,4 +1,4 @@ -package redone.discord; +package redone.integrations.discord; import org.javacord.api.DiscordApi; import org.javacord.api.DiscordApiBuilder; @@ -7,9 +7,9 @@ import org.javacord.api.entity.message.MessageBuilder; import org.javacord.api.util.logging.ExceptionLogger; import redone.game.players.PlayerHandler; -import java.io.*; -import java.util.stream.Collectors; -import org.json.JSONObject; +import java.io.IOException; + +import static redone.integrations.SettingsLoader.loadSettings; /** * @author Patrity || https://www.rune-server.ee/members/patrity/ @@ -18,7 +18,7 @@ import org.json.JSONObject; public class JavaCord { private static String serverName = "2006-ReBotted"; - private static String token; + public static String token; private static DiscordApi api = null; public static void init() throws IOException { @@ -66,30 +66,4 @@ public class JavaCord { e.printStackTrace(); } } - - private static void initialize() { - JSONObject main = new JSONObject(); - main.put("token", ""); - try { - BufferedWriter br = new BufferedWriter(new FileWriter("data/discord.json")); - br.write(main.toString()); - br.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static void loadSettings() throws IOException { - if (!new File("data/discord.json").exists()) { - initialize(); - System.out.println("Please open \"data/discord.json\" file and enter your discord token bot there!"); - } else { - BufferedReader br = new BufferedReader(new FileReader("data/discord.json")); - String out = br.lines().collect(Collectors.joining("\n")); - JSONObject obj = new JSONObject(out); - - token = obj.getString("token"); - - } - } } \ No newline at end of file diff --git a/CompiledServer/production/2006rebotted/META-INF/2006rebotted.kotlin_module b/CompiledServer/production/2006rebotted/META-INF/2006rebotted.kotlin_module new file mode 100644 index 0000000000000000000000000000000000000000..2983af70661ad375cc499ebc4da5a68ca46c532e GIT binary patch literal 16 RcmZQzU|?ooU|@t|egFVe02KfL literal 0 HcmV?d00001 diff --git a/CompiledServer/production/2006rebotted/redone/Server.class b/CompiledServer/production/2006rebotted/redone/Server.class index 56c7f70b60cd9b2078ad7d736d12603d6b0fe71a..29ee460ddb0d3498ed9696bb089cb80d2d808506 100644 GIT binary patch delta 2899 zcmZuz3w)Ht5&zHKC40Bogb?z82qZiMNi+}wgiyjeyb>M;2q6kya+eSYcbEhO6pptb zM$iL!2_h;{5GnV;mxBX*RI4J26s@(kK3ZE_t*x!LwMa>4ztjF~f86i)&HQI}cV>2W zcJ?+EwhaqhxPIn5fC73<;Aaw>aK(j55{qsn4$KP}iU+JN*o!BMucl<-(pIZ5iL|^Ch1Y#O%lts*p<3z!l*lCaLOoC+v{OD3&0Wl$i3hE`P zH}!E+Ul(OjKPUAUlr2$7IZn#es+%Qd(k+tmXn+<6YB68ZAS%%I25T}z&``|_H5sN! zk)Ywc2V4>KBi@1LBRGD|i#hrl4Ms{Vu}+Cb2^!5i(aJFrOQXuMg2wSyv~s+}%BZqL z&;*H9S~-!^7*$TP14pK4x05xQBB)eQnK8@ug(LHGK~n`y<2?y%CCKs1YrIRE>;1ka zLDL1z2v&>XgHGa zJz{s_VZtyy*zfznv3_4|eVw8^$StT^Q4M(%c{Qn}DnhSdnY~v)2UMr93%eC9pn5?I z6)mC$Lb?^b&)b|giAlM?W|6mfw8zuvZE8|@1l#n&DnW}C`N%J5iK07ooQ;Z_G;db4 zl$Hs)OY`M|Rw!Dj^>-_}NAp#JRx1kFa4L9A7FMsJwTjlzIz{VggTfxP2->JVh_ zaT%EpDtd^5gbwBIWnNEaoqMr2v)133$)~Dl2ki{5j_YcFm}A->mzBE`@9w2>ZbZ;uFG_{$1`gQ z7pM1s#%H>l78zf4+D?Iu+){ybxb$urx%7rD&KtJ){b;df@Qy5*b6|1KJ#(px)Z$#E z7UycSI3F`}mrj?(_gS*kly@<33gb|e|>nwk-i`kbv1P9*bmebFqL6KZizCvyh~ zd=HtLEafrh#)_EiHrP%uu%V4Qb6xBHex(H`$Qm zFwr$9(PN@p1l=o>kyaIbr0Q zxH*hlOyq?zAdG=wg`U7!g9TiIE|U zGBG-YF($@_FwVsI5K2r;2xDRxlR}tmVoDgLCd$H?8pgB`rhAhyW5T^}@c#{@p~YIH!rgEV-Nfm&ptj;m?`hN2!L z`9+$5MVQ7fQUw;Hir=0Zerjs5f=5@g6yP^zEx-HgxT@FlP1wNozKNUHX1@Ge@EU6` za@V-To$4LFFYohh`G9AAjGg#|@5`sy$NvQmku!kDDFIJVGM=P#9HvaPQeQkpxp
    Y3nae?=EhK?da$8nb0aE>nF zJiU$Q=v}-(AL2#&3@_2wc$wPqip_~vZGmi@vkk!OwgOzV72*wB5#F>FbKLp@6(EM4 z4a0MIp3x=Ff=03IU?X0@i+n@)Uf?HIzt~7;@Dg6;oAgs&IRgpbqUstB3%qh2vjtuy zx`s{yuU*A}ZxCY}BXFUeQy+*Gc%3J)XiWnDcS`1INy%4{-HsU8qT_7yB7d>$^9{TS zCr9{QC!jPP2mg*H=AV@Ys-vtXG5;Jq2E29ywb5E+RFv4yKwSh2_yW}%D2@cMkl`W& zqatWvwAjFy2z-qE2F69OgwdS_8Y5_8)NG(6f~Aa>8MrHg<&0Jsm>j`MMt2*yCxTUs zRvWNK5MZ>%z}lpB2C_QZ<``J7L*Q?NZdg{&sl{BRvM`vN%n&4S@ui}OTi|eHauN2% zDD=lz48k~!z<4gn5>D*|K8T52w3Fb+WG=`lT!5wABFp%}ui!R22Zy-Q592bsc#Cb@ GaQQzXq_XG$ delta 2649 zcmZuz30PFu75>i*Gk4~4RRm;n0ivjg5d~Dxpg~1MQH#U{O+=K%6>y2-mQh3#Lo|s` zjb;@$s@6o_vyZ_snxrOC)7p}5Nz7J;SoI8`W-`B76eeazAo_p>&|GW3x zGp{XYSGMo^-3ylhWYIGMKagldhZj5WuD}mH_>n{yeyqh$y!a{J^Wc4npWy=!e(u39 zJor$u^_L!eB+-dq3H(~3XK4LRf!|0(hX%hD_*fzq9a{V@9KXjOH2R|!zCQ_k;$i~& zS0T|CpX&U7)^neEa6sZO_^ZI*wDIo}DfmY?{)vA{e2y<9ZsE4X9sFAhMt9Mr#cfF- zlH?$#q%bX9Nqq*NNBhiQ5^RMNdPOvg*tVz{6YT4!jHsYRBckxU;Q zf<`fUtw%F;t+Sc9);SV2=qT0RV+4)mm(bSxB-RE`jdBHzk zR*JD66PChRyllK8;-X9{QZ$`r2%4$r8&pgfV04PU#%Dr!1kF-ZLPeI_GlHBC&}?Ij zx1V>8qPegLnfpYhOW|qkGn&20ZUg%XIr~ITtfF~TDrml<1@xezhqPG8i{s?rUM7_( z9KbO@CVns`+!k8@+r#*{33MS1KRH>+nss$}ov<#M@<%(8ly;9LCsu5JHb)BHq ziq>fRT1D%$ept|YMH^rlmu2?+dfKR{o;E4kOj{J5L6e}ZiXPDfp2PEse0m#Rz>5km z;fO*rjw+nMNkQ8LZC5yj(}EgwsvU|NX{W-IcuLVOnqriOCni0r=rQ6g?om>{zOo{z zx_nh-QdRAmB;I{Rk5iLzD7=sJ3FgukKB#yPniTD&Ck1hYr#Ua}tyxx6t?(FjE9~VcID|cfIHS`UXB4RI?qfJkNHChi zqKr;{MDGxIXLDsFrJI)OP2aUsFGgcu7w876KFWPZ|EqZaE;0%W};nXRJ*Cu|wcm}%$aFGMDtMeA; z6&yXs*b-ai3!rCd8zL=41rW`smxY)BVj0C1rP+vgwj;rTv@jdJ(;_Nt^a-GEX*Bw^ zA<05Ad)yP*-$b&F0j3U-Qfgvg8wQz(No&X8FeaMn#}Gf*bEqHp+8E|Xx*x;+7~w~T zSq)DBnVc;va-@w>yx7KQ8`(CbiJWKgQZ&Z+ai57?8{=^g|qx9nQQ(x;{%*A-gO?cSx3%c z5lYO9EzD>Pqn0jzOILXdc26H_V;(PzEDiE1Hb%uK`{o};_jvbfm}O&ujR)i1=kZX4 z`^bNc3vHAI=l@?;cK)BNjV{i2fcPNziJ>B=AKhE|9J{EQj$`aTr}VLM}8@xDQ9ECyr4p zU)H`jLH%)(Qqe*~`L?Fx6ph4b8jCYj$k(+DXQ=`&Q#H;}9a_0jSagW(&3K#Nt&L8= zPp8mMt++tf5TF~lNFBID@8dGv#Ow4a-k>jV#o@r4jsdvf7=o(~-!NQrWZ=3Z3-36x znX|qiS#WW(9K4E4jIQz9YvkqxJ8>DW@eSa*$Lqm6-#~461K;5-zQQYu(fu|S+`%z{ zH}9fE;4Pv%h!S}F7KVQgmt%s!)h^z0x4<>_5k6cEI)T3%qS-An`WA+C!39Uifn#3h z$IUt4VRjyT@9Ue+TgE*2cP1j^qO`Cmq{<^QUd3VyOPm%eLN&-JCt|RL$^fePj#OL7 z4PYswWfpwn16a;*g@wETRx(;;VPXI^jA|{^1+bdY8VmUWtYx&$!ovZqXSBgWVF2}v zHd@#ez-C5UEI0$$%IFae9l6cIz@CnI7Pe~&{50r>q?-ybA2BR57jhHHLU)YhVK%q8 z93&wZ127J$$m6f12|Sv}r8tSVHlGh-G8bt9YB2>HQOI9nQ@Pltarw>0^O%F9T&yQ? MgHzn#;0}EMOPM8Ne*gdg diff --git a/CompiledServer/production/2006rebotted/redone/discord/JavaCord.class b/CompiledServer/production/2006rebotted/redone/discord/JavaCord.class deleted file mode 100644 index 026b5a0c0997a793988b027a022a16f0b120237d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6060 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 F@(;Ibl6(LF literal 0 HcmV?d00001 diff --git a/CompiledServer/production/2006rebotted/redone/integrations/SettingsLoader.class b/CompiledServer/production/2006rebotted/redone/integrations/SettingsLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..65208ae387f9a6b568bf2c2d767f1d05882ed070 GIT binary patch literal 2288 zcmbVOYjYGu6g|DW$?Q%B5+;OKP=*jN56FT_6hlymAdiIv7KuSoXLmcB36q&+W|k0q zzaKxrKfq_SYJ;ZAvi#^Lf0256W;ZUfmQ_|N-93G8pL_4=dvEV=fBf__fame8juD*E zFry=dGg-Wv#aXpHm&I!u&TF`k#YG)CT+)$6L5VJ_)fF|&YM9f}hpQT{=`fX!iK32Y za6O0DaU+X)9dBSEi<=tW)bN&$L8Y_@x76@<7VqeI7j_RyC~K%Fbc$1uIV_@@!x9_~ z%NlMAbf0uQCpsmN9vQtMkeTr-QlPisc=Aepr6hyvcFE^#rI_1@gi9b?8x!GFkh5W+cUYRW|%W_2VmSSX= zZ(p`+v6s99(kWoL^rPidC)3wt)6cYDk5s_1Z?5fC^TjA&B!o`;rDX=P=?sI{i+(*Q z%X5xmslR0)33@_77#PJEMID?K$d&x)NaWv^j0Xl>tO#f|f3;?Z#NN@F9y-?&D6F>aK}KPKEv3Z7D5}f1|lUgS|SB*ppLr+j$%y1s)3WZ zCs3Gkr5#GkuSw4udcx|Ewa9~(?Nuzvgb1uPGGtYpu@tHth%u!o%82B7tX!z2=SD4oDwSjLiEim-omGKx@lEh53n##ecktdU| zZKs*>qyJI|107DQ8t-rJv+SDXrgpQDpQO3K_L0#xE1SvRwW^9!psVcqA?My2t0Ibv z?RsFBxzjE0Ibp=aWiz??SX{-mFp|veze{>9IUGoPg@x7M%DJ{}RS8PTWp1?j+^kdO zbCWk&7-P4KW_;IWukZt&)s}tsC9f(l+0NI@k{uM~ox1eO za;iy3M+iE<^9ciqZGx8*O9Drm;GHqr`QGefxvC_)s`CgOYWFSKYl~Q2G8+LCk2?K{v`2U;C~-dfAXl%lHo*# z&-qJ?Cl$x@JL5@HtFi$z_PM`-?cZVdBMf|x9p=skcBy$c=La~wfjtavFjm~Vj;Ag$ zwx`W~k6`_X{VDu{p@QONd>scaA2u@$4F7@u?vNC9nyzd+)veg8uq^cPC3m!rm0*TS1#*~q=3_F(^_g&M@4GA>+ z&M|2VG#Uj{;KotM&7~As#&NSLuBCREo_ZcGn51smV%ny^mE=9W`vscPPL_h_kD9jJ zQ_LTh?u2pJ3RF26!`g4Srh1PSoBT=B6X+gwW!AA}%Cvo%a}D2gY%i4!)ueV)cbfXB ztV!t-Xdm~D%&{?}5Q&NJJf4w-fJ?(i1=>7mXUC-H898dcrKi@*+7)HIAoaqktr@XY ztz{+++m;p`&3ifKk!Dy%{&3dlQbu*H6G-;V87rls%wiWUt7|}DQymsLC2c>I56w?S zZlqml_;RP(8d8Fq11fp zI=+EN1y)~4R0NgOggox2L)hr}CcY(bUB#^#aOwCqwsl~Ffp|>EcksB5@8Xh%@9FqH zo)Bmq94uJIv~)ckKfse3eyHO|__2&kq<>$;uGLoBgY{EhI>-Ytp(6Jl8q@^LZ=~Xc^EfGtZgHReA47qtk27M!I3{uCS zf=VJu=DmUB70Gamo}@-xJma>E>Ax)*p0=$*hyK znZZe8N+#91>3J*+N#98pTzSNC^GQ`ck{KtTH|#9YyMAC`)7m>EQ}0W@cU?ME$ljSW5%Bfo5pF)~rWfGM70@jLuDm!)c$gkmOnFz)u;}E%>cSMN z9_l^Bkb2S&@GP*onk1^wy|qWaQjw$VGyKh#lQUVy`+9oAl2-IhE0uBV2n?yTlP_4( zSLJwD(J#7kD2_kik5{m3f1Ew$Pqg01s9Gy<(=541igrd7U`n;UVqUtmpgRccRn-y{ z{-m^rBe}OlE(d(IVz1d5fweW~Gmy!+Ffh5)OlC*9Aep+xoTOjtdhV=h0YUK@s#ZE< z(yqv5dfG0_4al&pX@UAa%rI1on=>J^@iXoDGEXy|BF&8Y6fwGwecLBCq>-m7GtjMC z=Fu!DB8zaC1-de#*ic%GLV;aVU`I9N%BZY`+?-XDb}X$4eg&ii4?|s59lh<-Y9JZO z*^VpIhR0UaS8Ybw&MF|M9n0cbCFH2Avx2nBI=%LtVb?X7kcBeTXCaJWkT<_Ccf=9LN8$VhdH{>(b+*s~hDzz~m9O~@>hDYvD2d2dD4a0L>cr>uMah+AJclfJi8Z!r}O56Wg8T z(lUE6?Fb8JHA?EDnI&{ZRH}1CRVwOoseM5gy`8N9&f*oNo;&Rlq z1yc305<$NnGFWu3jN2-2DrI_E&q!1b>Tbt;Cj`I1mMcrXYK>)b;+}7~zIVX%Cs|f1 zQ6DaH8e=%t&Ee{0!)VAtnY9(Repx8%Xg9s_;PYcRn^(Pw5kI8iFFO8;f9iOqngYi$ z!A@Ig$)-KU(JnO_jM|(WjUz_JcU+$7wtVGH!@pU=Mjhu^vA`ZY!b#l?O1EU6eY`qw zk-TsQ4YA;Lg^WX0bw8>&RV%X?C#DOsn*7=~LzQ#$Rs$lEoMvMgH+?yz;XeYaYT{GR zAA#j_(_sax(XITnZA4tnYiTF^H~oGumd~!){0$ZZU~sCc~^hwb7(k?#z(P{*F;kZ&G(`AB3cffg~pWlkgJh9t1lu!<=3q)q4P8r_MOL~2As$B#OL})u(*U9s5>^cri7)Z z0`FF071cEczAxt&5g4i%!!)11u4EKe(cfpn%UyVu@7KBNp zK%S~lpjb<4CGZm6T+Si=rV^4TaPS;fG~JIiTwEz|5jQg)U5QmCbaSJGTM|8dETQ*2 z`l$OPdS??da%DnBsX`d(SR3fLjHjQ3r;*|{F;ItRT?y+?ppOzZ2)evc-~{HW{6B^H zKgoCmmL@iZ7O7~2`RGR*pOctJa4%#wwxSDJ^uR?g?!_8@x~|0o=;s&E06()fR7L9& zo`wD74Rg`Fb=8LMcBb_JlNzGGI|v-lM&hYwkP=LYQY!)&#Dm0kq8W>5$g{cLfP?r4 g?{QN64gbR5iP9|J7jZ|D<_L0_44&@BD{%M!0m@EX-v9sr literal 0 HcmV?d00001