From 9dd9b45d2d7ff64e3a89a874f6323dbcd6843d7b Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 9 Dec 2017 10:50:37 -0500 Subject: [PATCH] Added Day/Night Cycle #14 --- .../net/simon987/npcplugin/HarvestTask.java | 4 ++ .../net/simon987/npcplugin/HarvesterNPC.java | 4 ++ .../src/net/simon987/npcplugin/NPCTask.java | 4 ++ .../npcplugin/NonPlayerCharacter.java | 4 ++ .../src/net/simon987/npcplugin/NpcPlugin.java | 4 ++ .../npcplugin/event/WorldUpdateListener.java | 24 ++++++++++ .../java/net/simon987/server/GameServer.java | 14 +++++- .../server/event/GameEventDispatcher.java | 17 ++++++++ .../simon987/server/game/DayNightCycle.java | 41 ++++++++++++++++++ .../simon987/server/{ => io}/FileUtils.java | 28 +++++------- .../net/simon987/server/event/TickEvent.java | 4 ++ .../server/event/WorldUpdateEvent.java | 4 ++ plugins/Cubot.jar | Bin 24431 -> 23718 bytes plugins/Plant.jar | Bin 5710 -> 7528 bytes plugins/Plugin Misc HW.jar | Bin 4634 -> 4670 bytes plugins/Plugin NPC.jar | Bin 0 -> 8231 bytes 16 files changed, 134 insertions(+), 18 deletions(-) create mode 100644 Plugin NPC/src/net/simon987/npcplugin/HarvestTask.java create mode 100644 Plugin NPC/src/net/simon987/npcplugin/HarvesterNPC.java create mode 100644 Plugin NPC/src/net/simon987/npcplugin/NPCTask.java create mode 100644 Plugin NPC/src/net/simon987/npcplugin/NonPlayerCharacter.java create mode 100644 Plugin NPC/src/net/simon987/npcplugin/NpcPlugin.java create mode 100644 Plugin NPC/src/net/simon987/npcplugin/event/WorldUpdateListener.java create mode 100644 Server/src/main/java/net/simon987/server/game/DayNightCycle.java rename Server/src/main/java/net/simon987/server/{ => io}/FileUtils.java (88%) create mode 100644 Server/src/net/simon987/server/event/TickEvent.java create mode 100644 Server/src/net/simon987/server/event/WorldUpdateEvent.java create mode 100644 plugins/Plugin NPC.jar diff --git a/Plugin NPC/src/net/simon987/npcplugin/HarvestTask.java b/Plugin NPC/src/net/simon987/npcplugin/HarvestTask.java new file mode 100644 index 0000000..df37864 --- /dev/null +++ b/Plugin NPC/src/net/simon987/npcplugin/HarvestTask.java @@ -0,0 +1,4 @@ +package net.simon987.npcplugin; + +public class HarvestTask { +} diff --git a/Plugin NPC/src/net/simon987/npcplugin/HarvesterNPC.java b/Plugin NPC/src/net/simon987/npcplugin/HarvesterNPC.java new file mode 100644 index 0000000..cb54a4c --- /dev/null +++ b/Plugin NPC/src/net/simon987/npcplugin/HarvesterNPC.java @@ -0,0 +1,4 @@ +package net.simon987.npcplugin; + +public class HarvesterNPC { +} diff --git a/Plugin NPC/src/net/simon987/npcplugin/NPCTask.java b/Plugin NPC/src/net/simon987/npcplugin/NPCTask.java new file mode 100644 index 0000000..2bb7353 --- /dev/null +++ b/Plugin NPC/src/net/simon987/npcplugin/NPCTask.java @@ -0,0 +1,4 @@ +package net.simon987.npcplugin; + +public class NPCTask { +} diff --git a/Plugin NPC/src/net/simon987/npcplugin/NonPlayerCharacter.java b/Plugin NPC/src/net/simon987/npcplugin/NonPlayerCharacter.java new file mode 100644 index 0000000..e54571b --- /dev/null +++ b/Plugin NPC/src/net/simon987/npcplugin/NonPlayerCharacter.java @@ -0,0 +1,4 @@ +package net.simon987.npcplugin; + +public class NonPlayerCharacter { +} diff --git a/Plugin NPC/src/net/simon987/npcplugin/NpcPlugin.java b/Plugin NPC/src/net/simon987/npcplugin/NpcPlugin.java new file mode 100644 index 0000000..ca7c6f9 --- /dev/null +++ b/Plugin NPC/src/net/simon987/npcplugin/NpcPlugin.java @@ -0,0 +1,4 @@ +package net.simon987.npcplugin; + +public class NpcPlugin { +} diff --git a/Plugin NPC/src/net/simon987/npcplugin/event/WorldUpdateListener.java b/Plugin NPC/src/net/simon987/npcplugin/event/WorldUpdateListener.java new file mode 100644 index 0000000..d77ea5e --- /dev/null +++ b/Plugin NPC/src/net/simon987/npcplugin/event/WorldUpdateListener.java @@ -0,0 +1,24 @@ +package net.simon987.npcplugin.event; + +import net.simon987.server.event.GameEvent; +import net.simon987.server.event.GameEventListener; +import net.simon987.server.event.TickEvent; +import net.simon987.server.logging.LogManager; + +public class TickListener implements GameEventListener { + @Override + public Class getListenedEventType() { + return TickEvent.class; + } + + @Override + public void handle(GameEvent event) { + + LogManager.LOGGER.info("Time is " + ((TickEvent)event).getTime()); + + +// NonPlayerCharacter npc = new HarvesterNPC(); +// GameServer.INSTANCE.getGameUniverse().getWorld(0,0).getGameObjects().add(npc); + } + +} diff --git a/Server/src/main/java/net/simon987/server/GameServer.java b/Server/src/main/java/net/simon987/server/GameServer.java index 03effd9..714c906 100644 --- a/Server/src/main/java/net/simon987/server/GameServer.java +++ b/Server/src/main/java/net/simon987/server/GameServer.java @@ -4,8 +4,10 @@ package net.simon987.server; import net.simon987.server.event.GameEvent; import net.simon987.server.event.GameEventDispatcher; import net.simon987.server.event.TickEvent; +import net.simon987.server.game.DayNightCycle; import net.simon987.server.game.GameUniverse; import net.simon987.server.game.World; +import net.simon987.server.io.FileUtils; import net.simon987.server.logging.LogManager; import net.simon987.server.plugin.PluginManager; import net.simon987.server.plugin.ServerPlugin; @@ -34,6 +36,8 @@ public class GameServer implements Runnable { private int maxExecutionTime; + private DayNightCycle dayNightCycle; + public GameServer() { this.config = new ServerConfiguration(new File("config.properties")); @@ -43,6 +47,9 @@ public class GameServer implements Runnable { maxExecutionTime = config.getInt("user_timeout"); + + dayNightCycle = new DayNightCycle(); + //Load all plugins in plugins folder, if it doesn't exist, create it File pluginDir = new File("plugins/"); File[] pluginDirListing = pluginDir.listFiles(); @@ -62,6 +69,7 @@ public class GameServer implements Runnable { } eventDispatcher = new GameEventDispatcher(pluginManager); + eventDispatcher.getListeners().add(dayNightCycle); } @@ -112,7 +120,7 @@ public class GameServer implements Runnable { //Dispatch tick event GameEvent event = new TickEvent(gameUniverse.getTime()); - GameServer.INSTANCE.getEventDispatcher().dispatch(event); //Ignore cancellation + eventDispatcher.dispatch(event); //Ignore cancellation //Process user code @@ -212,4 +220,8 @@ public class GameServer implements Runnable { public void setSocketServer(SocketServer socketServer) { this.socketServer = socketServer; } + + public DayNightCycle getDayNightCycle() { + return dayNightCycle; + } } diff --git a/Server/src/main/java/net/simon987/server/event/GameEventDispatcher.java b/Server/src/main/java/net/simon987/server/event/GameEventDispatcher.java index c2e1271..b6beeeb 100644 --- a/Server/src/main/java/net/simon987/server/event/GameEventDispatcher.java +++ b/Server/src/main/java/net/simon987/server/event/GameEventDispatcher.java @@ -3,16 +3,30 @@ package net.simon987.server.event; import net.simon987.server.plugin.PluginManager; import net.simon987.server.plugin.ServerPlugin; +import java.util.ArrayList; + public class GameEventDispatcher { private PluginManager pluginManager; + private ArrayList listeners; + public GameEventDispatcher(PluginManager pluginManager) { this.pluginManager = pluginManager; + listeners = new ArrayList<>(5); } public void dispatch(GameEvent event) { + + //Dispatch to 'local' listeners + for (GameEventListener listener : listeners) { + if (event.getClass().equals(listener.getListenedEventType())) { + listener.handle(event); + } + } + + //Dispatch to plugins for (ServerPlugin plugin : pluginManager.getPlugins()) { for (GameEventListener listener : plugin.getListeners()) { if (event.getClass().equals(listener.getListenedEventType())) { @@ -23,4 +37,7 @@ public class GameEventDispatcher { } + public ArrayList getListeners() { + return listeners; + } } diff --git a/Server/src/main/java/net/simon987/server/game/DayNightCycle.java b/Server/src/main/java/net/simon987/server/game/DayNightCycle.java new file mode 100644 index 0000000..655b1c9 --- /dev/null +++ b/Server/src/main/java/net/simon987/server/game/DayNightCycle.java @@ -0,0 +1,41 @@ +package net.simon987.server.game; + +import net.simon987.server.event.GameEvent; +import net.simon987.server.event.GameEventListener; +import net.simon987.server.event.TickEvent; + +public class DayNightCycle implements GameEventListener { + + /** + * Length of an hour in ticks + */ + private static final int HOUR_LENGTH = 16; + + //Current time of the day (0-23) + private int currentDayTime; + + //Current light intensity (0-10) + private int sunIntensity; + + @Override + public Class getListenedEventType() { + return TickEvent.class; + } + + @Override + public void handle(GameEvent event) { + + currentDayTime = (int) ((TickEvent) event).getTime() / HOUR_LENGTH % 24; + + // -0.25x² + 6x - 27 with a minimum of 1 + sunIntensity = Math.max((int) Math.round((-(0.25 * currentDayTime * currentDayTime) + (6 * currentDayTime) - 27)), 0) + 1; + } + + public int getCurrentDayTime() { + return currentDayTime; + } + + public int getSunIntensity() { + return sunIntensity; + } +} diff --git a/Server/src/main/java/net/simon987/server/FileUtils.java b/Server/src/main/java/net/simon987/server/io/FileUtils.java similarity index 88% rename from Server/src/main/java/net/simon987/server/FileUtils.java rename to Server/src/main/java/net/simon987/server/io/FileUtils.java index f00684a..8e9ba15 100644 --- a/Server/src/main/java/net/simon987/server/FileUtils.java +++ b/Server/src/main/java/net/simon987/server/io/FileUtils.java @@ -1,16 +1,10 @@ -package net.simon987.server; +package net.simon987.server.io; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.UnsupportedEncodingException; +import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Collections; import java.util.Date; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -48,9 +42,9 @@ public class FileUtils { /** * Created a directory if none exists with the specified name - * - * @param name folder to create - * @return true is the file exists or create operation is successful + * + * @param directory folder to create + * @return true is the file exists or create operation is successful */ public static boolean prepDirectory(Path directory) { File file = directory.toFile(); @@ -67,9 +61,9 @@ public class FileUtils { /** * Converts a file into an array of bytes - * - * @param fileName the file to be converted into bytes - * @return the byte array of the given file + * + * @param path the file to be converted into bytes + * @return the byte array of the given file */ public static byte[] bytifyFile(Path path) { byte[] bytes = null; @@ -88,9 +82,9 @@ public class FileUtils { /** * Takes in a file that had been converted to a byte[] to be written to a new * zip file - * - * @param payload - * contains data in byte array form to be written, typically a file + * + * @param data + * contains data in byte array form to be written, typically a file * that has been converted with bytifyFile() * @throws IOException * if an error occurs during the write process diff --git a/Server/src/net/simon987/server/event/TickEvent.java b/Server/src/net/simon987/server/event/TickEvent.java new file mode 100644 index 0000000..c2483b0 --- /dev/null +++ b/Server/src/net/simon987/server/event/TickEvent.java @@ -0,0 +1,4 @@ +package net.simon987.server.event; + +public class TickEvent { +} diff --git a/Server/src/net/simon987/server/event/WorldUpdateEvent.java b/Server/src/net/simon987/server/event/WorldUpdateEvent.java new file mode 100644 index 0000000..c47fb3b --- /dev/null +++ b/Server/src/net/simon987/server/event/WorldUpdateEvent.java @@ -0,0 +1,4 @@ +package net.simon987.server.event; + +public class UpdateEvent { +} diff --git a/plugins/Cubot.jar b/plugins/Cubot.jar index f574edc225de05048582658e986c587e9c54c019..9d3d9847785e7e36c110759d2a3bae8b52a4083d 100644 GIT binary patch delta 14422 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∓4Ek&YkuN;U*aMJr$T5Ukb@QgSU0 z{Z*Y`b!u;)*GCZ25gcr%6-%3ZrTZ()wJb-t8pnU`&C~759|)yoPL~e4v%?SWa{`*_ zKsn9EjJf2(d#|GXE@J(j{SYn>E_h5-T?5_F=J(C$4X!Ju5%*>4)e~F>=TP+^O-_%e zQRtDe@vI?^y?LF|2pIvDZ7KY7qYGBggP3{X$SEDs))~C%qqm@=zyV^PW~a^f!bRtk zDAisaODC`H{S>x*VePvX?@O0@K0s&gaui?UObb6F$W^g#OeZ*1wLUr@&m(G|vU(Wb zDStQFCxasPb&*6e7wI7h5{^(Zl!Hq;UUbVHu0Pb;cW}AHEoZEb#Y7mw8X$&AZBEXV zDSu{p-4^uSNO*~G>qO$SaHUDX4)^D_Ys;S5I^A{z_llzm6A~wYf7n)jNB8hDUB_B$VHi^N@7_8CXuhTf4!Sko9bg@g0=f%T;A`e1_Yl=+X1VE%mfqCk%w zD2QgLFi9RnIAOQ!kCmfrqqnQ45q&YWBaR{=XhJv&k`y%y3f@y{Il2ROPK>*Z7?v6s z)6}MxRJ(*2M+s;sfIW8%%RkcG1^zghyDiy<7(Pi}oYPij*Qe$<-ML?^dBf4Ah;N`9 zHV$FF8i@ObE)5Xa=k51yPeyM5!Whl4w#OaCx9@sxc(c7*W~8JD()GC_8;cX~+Q#OH zvr??#HdavMj|vo3&3RN*cV5sJ7etY1Yfnz~!+cHtNl6H(lpTO!fv+1_I>6X1R#(BeezNdf0c%{o1R!khdW6c8 zJ}f19C$J=D2Y`6>nEdnWu9<$nVAZtl1&*Irm=59aL0u7H%8?Z;9agpKXqAwEzbfOQU!tv`eDB zOHzT^b%+~PhR+#wh(AE$hj7ORq;5K&Sm;gV5GQu2WL#Xx^#*Ed`LlMSMM`k!nN z{(mWwz-nbNfR?Vax+d;#Wgw@GYbu7d1s$9?m0aph1Z`AWvnXlvs(VBEj)R*VO9{`- zc1g?STQos!`(AWcI~pz#(XfmAFkXJZ(;AJj$KutdpT2l!;XX*{>HXtnJGoD8%XLU4s089w3*XCauJ>c_zCzq zaN(EO0b!h}%}}Dmc7ixs+zIN=5vih1GA&HK7JUi?ZjyMhM?18+7)smt;l_KrP}H5X z44T&-v&dyy(k6xWW$OIXi_7;QFFWH#B~ePKY54=>s&f1xBQEWEK}C8>*0P!aH#?O| zKNUNDfWEdLztS9Ki>GJl=g;DBVV>O$m|MAq$(j@e_a0PT8w}pW;6F@kNR6>{ z(%75LHs>SnhOy6>6E-%*Yg3luyv3(i5TTxqZo>z3vK=ozS?3uA-i6_&+VY%47;Vzl zle1?>TC;G-9&q3n>0)=lPYH!rwHdJ+ii8%uSFdh^O!4#k}XDP9Cvw!n;Elt;3I7` zDoPrYOJJU^R1qDYd#kk+EujRHXwM8}3=OAFakSHP^$q+ zsf*=9gtSKd9;|7;Y%S0Z#7D9EnT`bJ9(Y~+B~!`%pKe`8JsBVFB$}N zk2F%~vKI%LJ4JHm@RY45F9i#P09+Nava;lwbniIPV<=~2r{YC8ZGTER7} ztx5~QKta9-5)m(Qj4QkcWpLgMp6E(PoeeH-Wsru;Wo5TvN!1{r$B^C;lJVG%cD(H? z2_l*VqBr^I3L^8Mc(rtQh*209_PtaIOKkxQS%3|60G@~u$zzTeKmy1QsdvV{rHVIV_pm)^UwqM&?Wh=@V9drn#f7UD{5;cr zm;s_@^`IRMpguA30o}lEJ8>NeX|b4!-d#E7hihkMJn#gGKeB>V>od-K2KT%6i;u&y zlTt5;Rz8lTZ2mcufh$Gu4Xw9Ii@5BVx0fe=;Q^&*nW2U`31&P4pfBAX>w~X=E9EUQ!OIqJR?aip`nz!`RV|71H8$5Oo5Qq*f&IAAv7s)2N9W3 zRRJ6V3+#VGqQbuk!*u`YRF3wi6Tv@c2Y{z~NPnMT*J)G^{^tpYf7r#0|7pCA1w_YY z{*U%Qq+*4Clk@2R(}4@`?~oGoasO)mH}!+&KMh%lfk}pBKqF!};I%%|UsHVO6F^W= z{vDkXB^*%10O22U2vE_00K)8ls-r1MfoO*RGw1~X*bL$yRtX3Z3{3bxsw?RJ>NqoC z`)gSeLjnj=mcLc9EGP{BuciLI-}hfj1pyNcdH=q~zmcf_wqY0e`x@{@IHZ66U4?%q zDU|;i)Q;p|!x$T3{MGpHiNf-qhDa*FBqJfnf94FGF#*F5O)xNLdk-rcM`mYNCua*+ bcN+^gRR!ojlMDHeuqxS(IP9qLn`VgA-& zQ9)L4w=Oa;PUp!BOB?&WM4u)TtqGgH7`MosU7k^0Tp!6st^)U7jR<^u)^}a*8`&|?yLIr({#}*_GDanTo>|=WoWy-@)tsh+w2lR6~xNG$_ zs;%0D3CqA%NrNKCW6hZurew^8xFFBwi2K@t_GdHMG5UCTY+;hbb@E2tCLMo%LoAD= zCQFbf(X1-N5>j!!_C%FOL^H}6tneQBrVlbjW$-n*pEdCZFkoH~*F(1dwqZ&-wpXR0 z*DBBkb_+L5Qt+W2eyM-2dFUyWZ?}$WAOB%QTyG)j=EL_Wb4y7OGibG@R&Aq_{SCj< z^D;_cyXvc|y$sj%h$G3m<&t|sm6{nQkV?elGH|f z6Z?&|ejFn5)*K?p!MVYmzVS9367<#`^5dJ?55OSZk;EX~4T(xv+sE=(m}*a?u(gzk zd(b?T>W!MgKb3~#iksnIWSPdq5alTb&h@`Z45dFR3{g);Jrd%1`%~^2`qS?D8R5FX ziaP5}MMa&0lH$h+D4F+UUx)UsF?4T`<-52TWBX*w@zT#ry?MSDXOz!M(2ep2ZcA*dlTX0 zl6jKOWl5@hP^e))pC6(yqpD&BQpr117*LM!0oG(8s5avENyaho zpz~@A*_d{+5(C)j;cNDt}<>*V(-z)XgGWR%(PE@lVz{$by+=Ht(e1hxB zuMntZQdrCU2I0|%xa*3H7V}oIcNt{FKZ^!!%}!8m+`ne@$_cUKQZy~FXZhvq5zH(! z=BQ9cybZ}wPm`-OTFUX+d4HxHg8f_=`I7FwGplmi9!p9IQ=)jQTt(UwOxRv*C%L1# zxZdVfR$MW?bv+^&543Nr(BgL(MbGoMr`M%4oi5)rDx(wY@F<9Jg(cq=BR|4Yp@qEX z-6iOWSLV5l(OOzt^+&$vX~}7xb4HHioppCK!IG0!R#Rm&R>AtFve^F{QcV#a!Rf~s z?KfBm2m=%dh`+Z2HUt6!0>mG~uL$w4j}Zbap-a}di#!JdO;G0a=Tcw*e@90Le$g`4 zB+|wYK?mz3Ktz;Wr4GRimnI(jw-yf#Y9~hv?UfY`OXJmat-sazD z#uG5lACKK{79Dc|JQNF=!Su5~-s zM;y6TgMIaCt1~p%`!r)K78~Y|)-%W(&i5;mE*u0|wtSoIX=4>>#=0$lO8TNECF4w1 zR%RCMmJH=7@_NeM(~U-;uiZ2I?8)RtL*r5PvW%DXl*d+pqX!pQ_{fEJTxX-^v@wEC z;ycFk1+$|p*ab(D1CEVucZC01Do}m|r;E{?MAf29FOluqs#Kk6TyH>=VCFhJR%k>8 z^UH;?48a5@3qlg8ocj!9$9=}pGX#p&_NUJOZBr>ZT#$3vS0@DIxBPAMS~8U)RXVCS zS8lB9B}LUKLQQ_|f#}6id|#ft;x$HDps}!YCa^)%RF%b!x~^TbX|GBdrJo1ekA&dx)t`z2d|iXmjmjx9@Tpe zR_f)Nz%*xT=!Ouei;Um`XEaSLHV*rdB2iGvnHfhw?2(#6)Q`1ilzmtVolL5Y4{|=N zZ8~bx=S#|_n?>1vFi__X8sOzzmO?jqR?n0R}X-s^-KNlr8I-V2ITJa zcf!7I6k<62-Lodn37_GGA54e%tT3eGH(S||V9nbGH(n%x*w^edd?vq~ZrOe%x1G>a zx7I37%HV^$*65HiudN71LWW?4Vc%uMpJV8|t~+P~@0GCyX^;j6K5+z1u@e#?{bnWN zY`V!fcBA?_>L`@∨S~f2_YE^N`K^P@;{Y0a(M1qQl(W1h-=8b9a_;(s}&ADLCa!gl!-Uw8o2z?zInsn z8ZiAz{ydhcb=$5rBccJ^*%R4*ieEC_3Bil%9iaBypx;Bvw|6gJFnq&z*)GHy;$4Lp z{JNH~3P)@ym>>^ihDtI*z(T(%6A;8n|f?j)@>_##Ov+CVONYHs5aE_V=!~rY*r5Eugl3z zpRaybo1JUDzu(?eA@(0lq*+G{ogsN~x=IT$_8Dl{%0DScgExIh=d3n0T!?@RQ;%Z9 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 XN=*+OU_^xW_q2fi7}puSzq9=x&*07& diff --git a/plugins/Plant.jar b/plugins/Plant.jar index 9e8de1f11520a2849836512f15e4979bb42cfd6d..35a0817ae78875114c90a0529afb7038e44511f9 100644 GIT binary patch literal 7528 zcma)B1yGc2*Iv4n?v$l-=~zORMoJo#Ub=VbkWK+<5Lj5G1f;tWq>)s*RY0U96@_2E z_y0#<=X?F%GqW@I&fMpEp1Gg7?sJ`UX{n*1;{pKK0D!Y@j2hsVKnI`$T%d5it6=~@ z>mPR!{K&Z31+#Z{brBa6<@@KYG{0}Pw0Cv3fWh3HJZ4@v)IBNCyxSGaj_HuUX)3&5?h_pKhEn$k8-g3DH)A2+QyPm2)_SkBw-_- zF4IG(0{Hl^LzX{4gG^7Q(i)v*)YUJM#3Q8X84{8Gw^WcZt|Fmjv7OM}6vV(e&|>DGSir&0 z7@WbJ7w&%V)nt2zgqlKhua`P12ZtaDxoOqcN;l)jHNr^a4VmFATfyzTNiC_0Y`%ZCAq~|_2}gT4{thA)abo! z?79y_ta1V?H04skX9S*DrH>?6^iOZS>Bw`l&)dU-(r?8)L-31g7wQ+teb`}FxX5MG z_-aDhg(&NYmrPxEiHTsaOPiNOd-t&G2aU0?oszj}DbN4_bIiYJ{TJon_x?^f?teu& zIVV@kzX%tv_fTh1pHQk63Umqq71qnjF;2{g5I9T`${lN0hsgJ>k?LRf<4kL@rN>ngR;Or=ld&dw&VMz53es*Wn58~!l_>I zr=xS@`4B2ls@v`KOKw>T<3E6DaJhC=bn zeWD=s1>)rn>Y#IOQI@o6XGe60Z4s0NRvqzj)1-6f5$j-KNQwdOmxcg$GcIw`@jAL& z6swOoHH-vGBxIkHeqP)Ql73!YtANX1?+0AC63~AOc9BVH$O$l;nu$7R)CYr}e|w5d z7kV{W#v>wG2%n8j(}h8#4$u5>6O1MDSA07t=pJzyS5u!RH&zHfGGm-S>GUgAy}(zw zWgzpIA!_}&+?qtD%pMh?azWol92Bf-pvkAkZW+11nnYaarWWpt0g>sgsm!Pf^}#Xnmkv{`6aLA1L=-O9|<*mLOeu z(8+|ruyHPA1K40GVI1)#9CC*7K4y;5Q`-9jIsw-MM=iwSP4NN?hrf;6iuFLv1oyYsBMyVmzb!L36)Q1f-!k%-=!E z9Q~v-TCJWQI*!3>g>6;;$jJ=JK=AsZW~(1%9_Crq9Yx1hJ)q9JBo$a8^Umy=X^YYn zu-=}CSa{!K)L95wvEm=O8OgfUwcd77Nt z#aBzuR=@=aCmk8eGf!R$=&X^`rY>1jg(U0Z|^--UFp4M*z~^CPC9 zse{tp4h@hfs(dRLz457Al=5r~bCSGdQdWZe2MH3DdXlVXnN_cu1a^pbioZ)bKU)e6 zBaE+=5l!2t$fop(!cz}8fsus0i^im5NP*x=NHZy|#)PpaJrmuI#_AVW6-`NFoLb!? zBp=LR5-@sK9c^oPi*VHwYf!NzqD>cdcTOtSiKy$gM z)HGjk&)F9RG$sl<8P*h0=FevX%N=;#KHEl_*!gIHHZ<_j7U+Tw0EpuJdXN1sVz~Z%j~TdnI9cn#?VVtMU1PcW*WRQCWY_JVGUjswnV76Y zLMB{_fY|_}!pue$RW;PYMc$BF6l%gfpd>e1c9y5N2;sN;4ff@YLC^KMPSuENj?~_e z@0w>Dn=~|><_Whyn<;o3KV? z%J4pA9CY>tyR%!=z~`9KYV)yF}*v)gsn-uA;(AJfOO6|Z~rC_79qB>+# zNelX%StL|#pOOUJlMzBvB&anDMHL2&Etz)%1#=4JX*{_SY}1t0wexHI(tKa4?YTQE zEnDJ+YgF@~#yA>r5mMFV2I&u#`qoB9vO2|)g{u{(zy`!}1f}=%gp%VEo~R4sh>tMg z>IQ^RhDV!E`mRkd#fF=5XBt$R1$p+f#%9!cZ3VRYRf$@gh{qd^(@J%YaC64%9?THU zU{PZVgOTgy?^NHumMk{lm<(*WmK?fH(e``$B31E4uE^yazm8XKh2cinT*bO0vF64u z>Ii0;r=8>%bgYi0`T6JTG{l85gxVX5?^%Ra%l&D<@912ASjp( zwRulWT(#Lm+-0>~wRw)JXzA6#n$TPn{#iK5I#Lw4(#Igw&T^!5>#%kADMbbe(rI4G zW0bn6%+$j(>^|EVkY%sN*JX#Z=ac+=UFjyO%d562rN-<9NT=^RB-CS-%ozQ_= zZUglqw=#_obRv&Shnzd-R86cZm5rfmc+N{JtTX|q$f+#0e-@>$V=XStfpU@D@N*38zE#3A;cu2+zwL2Xv0ToTSp=G6)eu8 zqA!johiw|ZD2p^qM>g-|IW4VONioq-vVHYqpb3OiuWxZYyqosgc2c7{rZXVBhSa^H z$D`hYOs~&D)f#V~aTwszX9}!NJcP&#)+BUJne1G)qixOwW7QC)0FT)95;aecaaB6+ zF02;3ydX*I&zlVMp5!W+;{@Ks=kP4XGnJap>5RYN7Iz=zqVvBV?Ltb~t*(Dvo~ zV7I*@sh5tq)NRRCVBWvew*CHgF1%`s55U>xJya=KO?GPCBiWo{2bx+fw@a?LIoO*iO%mp;;U8O z)!>CqxWx@xh~_F*m%Js{tGtYMa?c(Hhq^#L{t@m*aOjd>tb&k#=q~Fpmg41uOC#Ew%=LIF91!U~Q z8Ci%G>A=?UlTYJjW?d*gq0V%(ASBarBtEOBadC2Ul@+z1N~Q{Uf~W^Vmw0Gca%e;c z%bcywx6tk-hFH#f?J*7zs@tAXTKZOvQc1)%jx_DQAwKthkqklX7kHbC`=`6c)p_)X zLfZPPwcx(yZ$Fi7@$!ylvn-YyH!NV4nASW@VStJ9pG&QBYz4YtG;Wda8FxS2x25vq z0&5L?j*MQC`Ys#eKb5tSI1DYqN4m+9E)nj7oIuD!Y% zs%@fL|3*Lf{Rr@ZE1?Z6)p+&j;}yzky+UhG`qXReTWGo4mYFThu$X0HKur1_yFqHh z{@4&&eS1=6LcL&8xn3PKM?(s;ij)t0_hpZ2Vu#NU!S z?|6umvvV^+dAY`4Mjxv_7{e7gwN0XQS2;&jRO)eVchj<}2s36HYN08<6~&AevH+qU zb%%tMkclnOeYv<@{|txvI~rYge(06#<2xZ^n$Za6w{$W}mJ0LK z^WsppAw-;dpwc^9XGqii8or5)jgJ8dj%esYXXC&)bB0tSoxUX{=$TcHm@O!r0DmOb zgQ>hs*-&(c>-$D^xCto<(+s{#3K`2McE!P1?MU9*0p)PXvhoR723W|j_T0bgKh%|& z5acBO(eoq!*7N_al_mZ)_w?MXE#T1Kn5VxBBhe$h<_UBnZmchyK>f^Vs5~VXAnRLC zzIdOJg_Omf>!Mq|wh%8{ea^`^_I5zX0TwRj;TT_#o)YRa!CMS;*DQ1cs~t2<&eKob z1?K(Fa$w_|-mhD{uP-h$Rso-SUH}@c?!7t!=risQh~ykvfP+(fG}^%jy&N^H0m`wS zFQZgyG`<{$8fun{k;u}R>K@$(@NK36UT^4Gs8J-Q#=-%)gBKQS4}ue&0Mq;!2klzT zguxLxbM|q$zCB!}&8083wRQ8yKG1Oq7G>|_bmZqt1)1heK4Y1!FBmx45X$rT5#HyeDmr*B}2a8<*D^G3tg-1z=uuf|7DL>hAJ zZ<~CXQSP*E!%fXJ-^nO5ydvG1F1CP@Uf57sOpStq$$K<3Bo*By_~ggXik(}-aQz^{ zo63VwplhCB9gC9pSo<;qLU%$ed3@r5<5GS6(S2U1n2HoMiRAItbgS@l$zq=>ewtE%p5gDzVlsSJah43b*17PFT4`!0(K6=j?$e7b47@#7r)!&2x34-u_k|fp*BKq z)S)?CoWMdpoP5#0COwj#iJLKTc|xjRJZ;4I_}EUp~%YQA@7P#wZm1WV{@z{=gRCMiuBAOk+l9% zOr)l}dav!pgInuSG=R`TNED6^_qb-EQ*OR1> zu@Ud*p^;C(U^!6DrwUlQcrNYx%*^ZtWZArWbHdOu|7h>HQbcT=GjbuSuie5(A&{sm z!$v#d`%4H@d*8jLS#!aX0^j*3I089o;Hn49^>G97Ef{zG=`VY2OGg;zBpM3ijKFH# zjjsw_(!iotYTZ0jpJjpEHAnIub^+G#=Opiv1nBDZWwWZ)1!CbOrng2M^!E2F)wDxY z`BoklzK*umK#t!rS&VX)KXTq8_tuKS&?!}Ip@c%@+~6Q+=Y(I!`N7M za=)<~hY((aNm!P3jQqKFD~DT6DhZZIUXcVy4>e`m6{1tdFNG0*A>-1h>OVN2aHEJ% zLYV7Njd>%JKdTIDaxy+oD-=>`cw)@*{4GOKcFDyOCPN;L9e8k6@k#_VHwJIRz^WmO zdVVA%ECJs7RR*Ic&vLRqyKix2BbW4`J%M%e9DLm)vBU?^9Z{sofRY z#iVy-ZFZSecQXwcNK}dAg_4@1QC6_Sz#pUBXq2D}{uA=1Y%JqXRCQp4QP^nHfzexZ z;1N1nKU17uN+zEuu3%qDrIzF9cS7GHq{);-zpEfZt%$ehWNtK<@Vy3AZ43Yaj`!=3 z!{j&7MD*k0{>wz+b@Om_gL=U2p)j@AD%`xh%G^WMV`@B;T(3vR#_Q_&XVr#B$1zmi zr54+M*b%?$gJMo^U~1`7#-po@!l|EbtecaSXX{vMd-FIf?1(chSJ@xn_kaAf)KE}y z0sm|j{n+wL{4|dKIqSwc`WdW0mcJQE|D1YbCH)NTAIra`{%$OxpppW9T1&r9z;CRj zpAq|G`3Io?Vl>^H%Ku^C%+PAZZ`AwG5Fz{{@c(J~pC@pm=6}^1H){T8c>Wu>KWO{kPvlo}+-R4daYXVj wUi`0f`7cW5*XP_&?N=7uQ0-@wQT-R1_VSz6lv*@R!VZDV*u%r1_1%-l3hD<_grf|Yu!Kg-p{@Ez4zMJzQ7<Q|ISpL!NHUyuw zvn3q<8sg+lJx)5y+&iI~+3_VTV?mDL9ZQ8N&yoUhH>2i~6qsp-vBEk%326;w>WZ}w z67sMzrkXz7zLdWk`0#CBkc?sRu(C~Jwc*oUa+&=AByuRD*Dz@{;ojLCeAjooVW{4F zP4?%Hv-beHHcYi#%T9NJsE0&4h7y??ZC%+|$({-Ep^wx;m@A8On2vNM=(OArY~^=_ zX)l%b!_Lwj zGLsk4Da|97S;MX>uw*9=;>Dg(bq_6_*JJoEZA@Kkuk>;Pr|W_>ml3*08r_nvNm~#S zF%)3zw)?IfCu26F`{vir+gF~Cmx3^Iz||TJSL5skqKKQ{L20m0j3+L}j%Miw&L?pDAbC0^Nmp zO`8%-&ZV31_pJ{U@p`x!I3#Egm8 z1h>+db)%;55Ra)<8^A$yEc%0GBt?&rcd0%-D1(e{>G4j2Hak$QK&xGj5M)Mh7u(kv z*jLs6opEy0y0AoS!?WkoE5@Ox5P{ zaY&r}`!41O@kAakMK^ zge|8AP96jY&Myy$T|Zjj)u8a9-rKLjnY{{kNsMs68fnSeM+C|)O9RtZA5g-Q1;r;h zDeL&m_pB#cENsrX?Szj@sA%D{6}A!>*TLPmSG2wp)6sn7u5-FO@Odgn!ztV1RL&F- zWQ`=mgk*be*io74%ih%IU}YowDG#YyOW3R~-LGN!=ousy&a8>jroxXC8eU*1yCp!TB(iV|m0y=o}sD8KvC`RkFQ@Bvo zW@OGgl{wXWbv)90K)f}V=GA3=y+hI&X|2ns-T%n3tklFX-6a3`<4+J}oVDFS*6ScC zegu4k4@xo35RX4tTVybv)^6(8oXcq;y4LgQWYY;@I9EKK3(3sn019nGb%$!kK?z30 zC-s)BPEK4#N8Cobi9%#oTD|%&x z3#YH^`ua}h4#Gzg#lAwr^m<2tuGA~McOgz6C1{%EHG?a=>Y0BCRN*J~5=LdHr?luq z1-m}CrbyPNiCTWJAVnkA{UmDt8gZg2deNmYA1_9F{!Ggy=x9}&Amfsv{43a1rCZZe zgdmG{b9@ZQqQI$E$en%&*&e!vC#6-DM1L`C2Xn(+k0D8&<3}B zc0--E1z5 z9$qpkLG(y0=V_I{-Woq4nFtX{QoXDL=iq~xHZ3bIH<^B)L)o#EkLwsngBhm6!D|Zt zL1Fh1$_Fut$JuV~Nsv-nWj^Bun|$6Fcu$BN)3fknJdbf4nVw?t*g**t~%H1fu{l**OV$gNGIPEFu+%NZRn$WP7i$H z4lQf%zBX^l_2@afK#qlHJEem##TxZVKYD8)z#zU`j@xe0Z?`zCDTfx+$L@S6nqfcN z7yQ_ngHx%!Fw=S`kGzwM$R+QhKA$2sCKqe%rK3N4qyRaAOd0d3$O`aVQ!otr?u%q- zH-b6eN+r#z`74PZL!>l8hfEF*_0+Qmqi-zDvVe{PJka1Pp&9*DZ+Dd^T4YLbUS_Ln znVC_-F~DF|pJu=T_P<001StzozbAGtt-5?r*c1>wnHf z@W03EUz0IWZ%2z*oLMfN5g9!^g=mZs==dIy8g`{Xhl#u|CBqE{@RyiBD zKzvRigF>Yn$<{S56E83~MP{5w@B?nYwwnUqt3MmOK0jHde$H9av(fPgjg}(LO;;K4 zQZQJ6NFFE0GP0MVyOf{JMnfUd%|w}cSGA5ihxUv`L#^)K;vGeY!75GHK*kuVSvxGd zbQJrIVU4s8$!Fg64S9RUD`8MA^V%A(Ns{%{`x{LnAl&xU0qJU+UCGn!{wm`t&lzrG z+xDt)&GPxw0=c+InBUn5T&9 zo3CT|p6CLeoNu~t+dtR0UEHaa_Ud*oRp?qp+Dp{fB}u{H25luTLR3L-boud%{GYzs zWZKkOdX-Cm&nPc;U$xbmC;Xuj-XMs~u&nBB_6fE2=Lc(L2^6ux73`frrW&3cm zXM|<0QLj@=dVqwymXKnqmZDSU1of`qgA!v_hsQ`^3$>~Hyj~+-CyF|(n_vTCQDC7t z$8bghBsoBk@g5W}ZPij7gO&4>P06vayz-z(`BFLwl3I&q(Q~Dh&r>cVOx-tOIOdtccqIL{5)4f?c!tGLKqw5qu5Up zj!m$K)!Q{s1vB)FDN9SOyC2azjJ<$WFwS!>;~3@P$l)(l37SebHEzb=IVjh5xCn2F zutwu{n7s%EYZNh;(&pJzynZlM!Z!ViQvMo<8Nr|ADgPwD@uQEVUE!aRRtp8wrt693!Tz}3UqM$yC8(i7?m(}2P~ zZDF<^e|233U$~0+X}T_B4b*TLj|<)S zi4+2`Oh~tNb)uT$whj2XUUlbA|KO5&j?d*I7lj{uKp?}?8NWT6VI-yRW?wnhQIp~9ea~`H#gY}fBA_P2T`Eo2wZ89*ZUHXG^;7gwh_XnK z3}N+V3A(2iLYEZJ&UzNQlKJpJC{xExueA~<3LDKJE$LecDOLxuKT4j<<1T^%jg+Jj zVZo}gp7$pi;t0L>+w#(r@7FcO&&WX;vv%@t#ce6IDjwlYP3#my*h1jQRor#uiu^>O zQ_7_H?b@Sy4U@TH+Oe94cC7+D%=29QqE2GhLY4CB`Q5?L$68Xc(>Z%%@j?ljHLJ%8 zfo-j`$i&$9UCZ%9+!Po7%5$8O}C$&32eItPkrN4po)*|wH!%O;ucPVDCr?}ro-vh}uY1FXU?Q2CIPPWcd zD0*uX7c?Z{lhBhD9BOP{X4uraJn3UA-A=|dw_SBiMyp~RQ(p(>4A8}{J1TzP2!eJ< zpMMk>i&=Z&J26TZS4I_`+ijMUS9Tv^&_(-F4cmEsutm>UfH$DHadHIn?D1wh4BJ#g zwx!EPlB>?3HJMaO#iYq@Vl*RG%1LPdl*rFaU(atR_UdiKYD5f8t<@2s=Ro@R>_x49NNjQS~XQqBTVV!WHo~;7mIm}*@=ifz z>9A3s5YrgcW@awZF=rQZ5fqSJU(G$G+D!!Oaw7lEtgG!okYBq#ymxB`<~yD@dzt&) zBah8|i17%AWKFYZ#WobIJXK1Lq=>upwI5LD^%nFV#hgGz%LDnILJX?f({T4$7jo<( zY)5~hWT^F%T|dwD5SFbf{C>n_Kf!SzS1`FoRTwzCQl$W z^8D5HP5z4b%{au4Lh}4uZL$UU_|#-WCNi`_AB+$8#Eq(6_{u6GSi$zOMXzfIYG^&2 zU7=hePchNfhE^n{`Af}CaizyY($2HZu>DL*s4K%Tk3l z_#jrm!ZqwiymRe33r&XW-1p8BQO8-?^9vx_V4$gvS+t17_&d+%);kr!a1Kr;@B`>N zY0Y+q656FU5;%M&`!7rqEFjCDhFqwiZ#{bA$cvNG~UIGMTZrEO6Yzy8h}@j zyPnhPa4ya<;szhqkHm;x^cpg)VkL@be35JwyDqTD4@hpkWL?n@wi{%R#fvi%U@Pn!fB-`_5*2q*? z!c7`+P!#S%nm(B{d{FTnqQ&up?@<4%15-fS3h_#Wp-xAG^(SodG9nahYtC<0WN_?2 z@KAG}!-I4=t+M^TkzOOw#YSK)(@VB5bwJ<4982ra-yg6PU|nyjQpnO^Z`WB#zBo(QG=!iTp=cYxN- z?2~o3*BWiQ35~h+y2)2_2^h8j3;sAR|U832xilIZR`6~?Yn zHF`%(ICJ(IrVX6tK`GFR1lm2%Q%rup;Wo!Ce6-OzIs<{rZo1 zqD&uvTM_wpIqIJ`)PL0rcC`WB^ zMl^PO)iWu3j-r>#Q(Yi-Uv_8$JaqdzOe{%z4MMq_;2Jj{7<2~(2k>W&@5bae{8Ie> z>~*X8{Q}#~@xK(nKfB&)fWM$~bNrj@-xa|-C?tSin&9u7(XA%<3!yj1KZp6H5Z-3u zKM`-a-tQFhcBA@*^qZ&q=ZL@WSO1jZTLStEoj1?$$GHEYqkq5T@0D~*NPhw4?*9z- r5A^i+WZc%}?^#GGSYbOoeQv#-2{Wp0XsK z*;w=|hHFv?0y{>XzTh~iZ{++Tq2{!E#q^p7_EYmrpKRp$Gbd=OR;KXb6Y=ea zZ*;lqf9da3kMEF_n|8g@V^aDiKY?A}yhMI*rC$~P7PE0fKtz<_Qj6;{^W7(|(5XEC z_D@zRcPB^C>DR?9hYkK%dz`AQjGZQVL+9|iq%+>E5YfyN=~4n|JK3y`bp4JpBCZytMg?Q^S*A-ZVcv!9LtHuzYdn z%&3OxFX#N)bgpb&^!NHlC(qq^<+SI3>eN+g?`*#BT+Om%&Y>?~=CboR^SVwo7n;$@M1`)7r0d|@EIGhFl+>x|?L(ee+O-%W4! zdK)<-O!QfyL(y(2sosSj^m)IfS6r&tQR;Dz+v~i~m60o7%m1y-?$!nOVlV048|J62e%4UObK#Uh$HJ-)&P>^hOB24x-m+8t z_``P6?2P&^Vk_g4g=KG7+4Ni>zb@+vzF$vzz2ntuhPJJ9nk_=oD_rfgijvlB zFBX0#UXpvLsxtS7>CL{(k^>72Jr*|~i&?ml|Hf9w;O}g=FP!|AxvXr~Z_lF&n~oIC zk~pWhHgrk$5BpG`2L?A^I6AbQDw`tFm-*(1c}k>_XMJDxJz;x>0B?4Vq~a;XR?G|x zYuOlpe5BkriNhL{-!|KEJYWJd6uFl&Gsn(toP3h61)Ku|_>IAI8@~mZKFIG1QaG7Y zAb=N`L%rcfPfio?l?RD1AOQs=HUoqBWCcNG?Er5^CJ_b^1`ZAm2B1maTTS8=%b0); zV`X5lM^PUNRPP72tx!;!$%1>bqM*!VA8u(BBY=+ePB^{Z&kd+G0Eh)qjCe5lgP;mq IDnCdN0NESj+W-In delta 1129 zcmdm|GE0Rwz?+$ci-CcIf#Gye&O}~iW)Nkp0jAMG=;tA`3g57!|uT5`GFWHcA~>$k($^_iYqY<{=eLo_|d8f93Zrc-*kq zxbOTwwc{W2Gy*36`nsXK*u4C_W%>JiPhNlTpU=pX?CGkzODnMXHCNsWj)mT?=2cpP z?)j|0LcTmsW4#s1lMv9jZV}h^kUPgFbXnI+gcXDzv}IN1nOJz)?5}5Az@GA6MVrSd zEY7`&w~{R9-xhcmyf5*h*W8Coc5Xcu8~m&F=!X57RXl}<#rD0MX?a{uTJ~b`vg!Bk z+}`*p^76ImCn6*2g)BI4Dc+QLWqe4OC3U9$QKoX^>N~1CT6a9$5m|e>IHz-4GNziC`CZ64^a?oJQU%p9Sa^B69WZQNk zVD6{Ns_M@7B9nrH{qFg8yDuxz6Mb&D<7oNLHmfVy5=SKtN4)%Vblrwp&Af?1(>bf} zn9JTau#LZQD6}Bnndvc?nu$+RmtvWehLPb(DQi#dvNP-IA2haQ+JqP^P82KV30&#E zeaGCZyvNUFRkT#Ha!ZL#4EYdoj?MY|ebLT^&leTzxh!LPuTu13k;i4tbw}SsE{tvS zT0O!1?kqOt33I>ude1M5-KT%P#Ve@(pi!*J`pTU)s>I(a7F@`>Fa1QAgrLJRDUP?!2=50n`41bDW+(^;%U@{%@JKFL#P_*o3$H zG}_~*KS>NUyuM?qxMR7RZA6;6EOJDQmC% znH%SPF*|&vzL<@Hv*c3vIjf)w&&TWeaaiQe+g(~+f+X>A<$Jh z@~s7fZ^p8j3!j!08!<4?`h9Ql8)2vOeFAnaKYv-fyqe-1GUuVIrjW{_HWd@Wzmj>M zHS@IBi4??N)|0fq6CYm5@s)cO-@?7KGOC@kV;R*JT*z1$=(u?Af96&ECtUb%I8Ipf zBuC}!B{xoczZc9IhXt&d-rX>)YmBzD*!oawqx(z#3x0;FB8nTG?+c_qG}!x+r(*qI zh5&DNj!(~*{TE|qV6bOn0P>M?)?^h9Ye8Vv@@7B+_LCU}WGDM`uuV=El;6CGV*(Q> zpKW&KUdqf|ke@yIEnf>LA5JdeHwM$I_$|QnQ+`)a#+9Y7(bd#sqX0E6{mJj$mLgA;zDCi;&bfI^`>GghYK)C=Q7DQ3AXR?Tp3Y#N8NDu%cXUIwb diff --git a/plugins/Plugin NPC.jar b/plugins/Plugin NPC.jar new file mode 100644 index 0000000000000000000000000000000000000000..eee586f94ef89e1a6b79c6c2af6cc50ac34f5d5a GIT binary patch literal 8231 zcmai3WmuG5w;sBsVd(A#krI$@7&@hg5ExoQK)Sm@7?2i_25IS#?(P~uN_N>`!t$W`Kq=bNo4gjD601jFaN`T*h2tWitz;0YWJ^=urKU!hk zuXwO>wRLcW2nh;s{n?cG@1_tZ3nzPbYg@=a77+kYQBeVrxdDIK1@oU5$(y;n1iQLv znYr3=TG*Spx~AwDYHI2d{CMe-h_&JGkBmha6^;jwXUM?}YNa+^bYh_n|KKejyCLuL zNK`2I!phFU?&!|A99xy@lTtC?d;S;M&Yv-|_YF<17yDJMZ{aA4Q!0G%sA-j1h8O1Q z+v~3k){I3yF8@4x;!n}|S%Lxjsh9ET2<}x!2GlLGC@OymA(j#wDp85z3nQKi@&b0` z+B|Z`^aA;Jn}0{`SKnJ$SkR~ORes#xyUH^$4%5#%eb!kuAMPZ54npTAX2Kon3`ZeV zjmTEtkT61J?9tle7VHBq7v;&tAWAuZOXhux*w4X1`MG{B6KG`d$x{PtN`p5(!#A62 z)|Y?7uNkA4`Ib*B)O`k>u|D|i$>IWza_MgH3uFsLNvu&N+}IZVDgLsM&izVC(|Cgz z=C>8-cFl|YP@v9;A6T#gohdpTj|!x$GRzm1$e+hR#akFB)3>?Bqk>Hd8nBr>&`r#@ zET!hnla)1$>CrQ)pDuCuQU#cx&Bt{Au>)$xY-6fWF10!gH)q9F;(rrd2C?`?KoMki z{)Oo%w`hro?nXmP$$-|yS*F-{c4kWdY_mHv0hH)Q?x@rHHM5A9gi&;I4^3swQOeV% z&QWz)0m?gli+w_(NEyAmJ#QraCaq?rH4mWy2jZ7gC@m|J!b29@IDAHqo7zoZd=u@= zm)Bs|rD~@0;viUoguf(3JqF;wx%(!1WS%x3-7j=TNsu`?iF`WFB5`XFUs)r=x))=#G zJB2axMrzYrt1>+fQ;3KEx%fcvM{lo&1zwe?w%7836~b_wmdTuh27%A7b#`pd``Nsn z*&NSr?#3_=a+W%~39cN^4l689r+?g_aIfbb;GjldLSU{sZR@E#3&;R+l!Dl1{NuS63%|r{Dz` zT>a@I9)ALiT!}=RMejnxUSE*`(!+dGZ8{(B&f1KJkLD59A|kx#O`=!}4`l$>mQ6SB zT%l6G!)s_}uJKJ(kla7W;%1!oQw%ahl<3KfnhufPA;c^M4OYuA8QYe)ScHNt(;K=3 zDf(o+SJ?LNJi2H~Nn*(Jau-CkMPG$Q(8?d_WL_@0=00|!VDG5t#BD^{8+VtVTSphH z?7YiB+rq03Y$p?QtPdSw=%RB8Q~F7g5OgTPm*$4m;9>3%R?=<0WeJJ= z?IaC7?K%{$DGwy50S^~>7WD3YV`B)vVtv6J>`N1G=B0VEx;y@t7uU1jmRUSyG+hwv z4x7@_e39bPK73n_nY{QMt(MuDz`Ku*yh}*`mU;pG5b+ulo?lECT`cDUU$GdppLCq7 z)f^#5j*2-Efxg1T+&VRILwOiAq%m(A_L|fT&RC}wAitKcIWT1JSZE{YC#&!8O)RA6 zhd?H?NJMQHER9YWG&S%ct z7)fxT6=<3Qw3NWC&KB&;bjqrqh?D5_&+jR6=*jo4p-JfV`Ai=txKK$Sh1HWN&Hywhb*6x#boolwOEQ|2pX@ZgWoxW?YYrz!gr?m6c%X?6O?u`#O!Vz}Hn!3voHa zOHsjNx;W>$DSP6PAF}EBL2C$WpdZ98sAzh z?k3=uV2Imqjp*;~@X7zTRM*kP-csAi(##F4Z0qUE5>C?DfT4Y5$`R9&0{p4aVWH0kS zY*30pdYOcG&)$U=#J*gfIU^x*Tkg+;7Y9vhkWp^BG887)l^4`?y@w5~V_=n$){xF3 zW-j}}RdbBHtIwp9W&*M4APYF z-NepHEviM-YRX(qY@!+G2pW0xKN@ne!~Bh zw<^Q|!DO>Kv=Y-N#__R_-7|AJQ(?nIx!5B;1Z?`}JSD~bT$dB^eDNq=*v6nMzPNqm z#064Mc%|+NII>sBSL)oL;QUU0P?shGB{>3^;k%-6$J;N3@y{$1$U?59y^ zhJ|Jr*Tj@7ih%K&dVtQTyGm=X{*N&@8yE;_6q%NSv#{3ge1E%3=G^U3QOl!H-AMQT zqP$^MX_NjuO2xyaG+5u5ETY0uGS|8{h|ga!T-g$k`PfqIXC=Ij?}+RN=cImham3ZlN(ByL zN^zP`%lx-g>njA8k`#*7X*kuVV>aG>EsO>l{cKKzW^S8A4Ed2g)T>)5TOn^V(*!FI z^h?+-rZT*gau43|VP$8u$H~uV1;dQ9qmNHdP_=Q4{bF~~4Oqv$$FJ*-Zm6nBUIi3U z#Ycn;91C4kun_`3=J_5nR20dv!qU;chWzZX$#Sv2oxY7hZ{GCXAcj@sGU0f$c_zi% zouSX2*80ch33X$3F4ons-W9kdtF! z9s+mHaV9K!qPba$w3KueoUga$J0;=s*~d|)8zgTFQ@4OQKEPy$TdIeO^>!9&jE@Ka zsNHk#2h#jc{yUiG{ulmB|L3x!3X=N8eSJaIs_+sxzTFhL;o&w8by64=Jh(yCO+5#J z^mynk-~}g){$ub7_gQVZGW#t+{FC6T$pfO3qt@Y8uZ+r*I5ohWpaV^ZGkzPRDr$^~ zgPWHc>UA2QBycH&mYiX+12@2Gf4O!K56={u7 z<~+A=nPwza+kD47OD8E;q*!6mGRUW0DpP;FKxWg#hH2*-?L`4zM?#Y_rP4N01FNP2)cj%9A1_` zhxcFC3$V+5oc~$KW3=}@@U;nkswDCbUZhL{z-#Dr`nk?arbJdMV-DJ;enifMlg?&yByN+cBApPS7Z#bB{B{-r5{qmh zmgZ=mBv4L0KOMDe5+tclDq7j4v#x~24AMYfOk@~xb|0dcjUwz;3(X9ad8IPs_Lb#S zF0UIMeo$i-G!A{jL8qAkxMZJsKC=N+U?Ux$!EWsM zIa*m38!;Qwlp^`$kwUjKmWb=)1v!%x7h{j6N{+*WrZYP4CJ56uu+H!?#ps+|-hSe9 z`Dh^qrA2n)n4XQ#rdCdt!vjrqc=4|Z%Ck+%_#LNXj0+|#Eya#t@LONc)2}=fp(mLrX=&Y#2@JpCu-7q{b z)r`306=|E%zI*S7v)D)vuu$=*?K&^G1sqT86E;0|5~j#zZTSKv9f@@WALdhBF`{qM zk!ppFp<{?*{qBS&s6G*uh>&%=m($_Llk?LVXm?#12Bxg-xZjA@(0sTMqDOJ%i!3QP z4m3lv$!8oAx#xFEEj$&#-x8WW4K@}k=GeQv6E}r<)x>69_;=L>R19Qc@i+uH2!BM@ zOd{iV*&0l=e=;}l3gvUbaCOGk+Ghm?((MSkttUW65%q`TxDQY0?yq%Tg` zP|a}?1(~VZ$H41@ru$H)u_d?AsfZjFTRy?d#!8?@5H%)KWyT>#E;7`R_`33Lha~&) zXK9HXZal2E_LjIY(fWaU%RLn(u9~C$qK~l<=$PEkx*)8d`CZE6MbVxCtx__SfD^0B zPp;_-Tx~(qL*AN5omz|{(>V&q zx>aXTS?lDR7a6-EE~D(s;bRH=nJy}2=7;Xcq8M5`z0y?nx=2HBl5*S~rdTfq`>@YG z&7Z6Q=X*RLWI4P@WmObyB7l{sw-i){YAh$0 zR7o|#>g-3eKYk))6eE*7lslQyLE5Yr#^Lk%!`rgKv#aJU(OZLcVm7TVABqE>TNw+n z*t7vvrT*^8xW&l^%mJ_yW!e6B0s^0*&sLIz_Q@<+~Jk1{g>tq zWCW@SM-o)B_B=dCFD)t@SL$g zK5iVa|4b`@bO&wg|B3WaXfMvWxA5+nx7)pp^sCTns|5a~k1_ta(5gCFfc_x^{fjPZ zEok6N5QvT>qIFjRE#=r*S|~-9l4$~eRW&=aecRC4an!#n$9mqcZX@mgVbXw34LLeT>#{Kpau`7 zXe2J7fU{Dk1K|u%+euCa>zEa&$z5R@NW%*jN)_)0L19bgCGyQAogizySiPZ>6I92f zlX=Ss5=iEf;d1S^*kheAm;N8hC8SAwU=I$tDKC5D-C zpYaJYwIXcnzcW>A9<2cHiXIzQ@Ufh~Qy_i=y#BH9W z@3JlHaDZ9g5XScIvcBugav#RHMtn_+MH4CQ+U-Q~Iq*x6uW!O2th|-2) z&1h;uR+XZVlprt0>PT0&P>iH7u}F^t@}iA$D+F<3D;-;)*o+UI9LS9M9MS)&e7rKc%nW~&0_FwZ`=p@yz%7=%@Ig+OV;6lpjfZ)uWcpk4ZYOb%9*X;tjsd+Dcg$KC8CcwTb(^|XGM@G5nHXig z9v;`}F-D}vDI9m1&>v@SIp&He@QI_A(5-uZdr*R`IXHl4ZXzd1WEli>JmMG!hr?(#y*2yb#S!foL|} zBN*yrQ(zfQw^En<*j0eu49_%IiCE~BcXPh6ZxE~lWty@&KbKJfPYNmKz4WZ=C`DZ} z5l$}#&1m@IASF|v!F80#gbcw-NaDx0+LI>OlkH~+57}fX^$Ot{9su}!pHaWE>F=zN z>%U}^BLrk`<^^_8_whj}b6hG^Hy-gfDmaSj`gXiDdZd*EU z|LU7_v;5}P_vEWM+|vjX_>z7xapdYXY_3NGf;N3MEFAi^oE_gpz7ljXs}$-DPz zsdDMQ#LQ%Gqu_qM+(lM!5y?4kOhBD*sXhf=X(6M-2p&t(;}+c!*_f@OT04}af%M`! z#ISbIV^W8w((RZ>(b?m@j4FJ(3ED>qTg^P>WGu)0YE|*Y^HBw^jM6l$KsBVeEi{r!7EcOXBr=?YaY4I57Ec66 zR!@vQ!q%8`-c|Ke&Q-cf^i|>{s`ajIPi$d2q^0p(QxQ^6W^}P0Idri;CSFd~Zv<)d z_6L!aup|3N&3O=L=0vmUesG{Sr_J`1ElCbbWAqrIQKvSN2{rAO5|YUVsjc(llppfPUAOGR!sUBt zBYG|ZDnG~3isau8hcBj4=s4(p#VAU+3o;slzz)K~gVT7L`DO>10ybGAUq^Zlt&n3D z?lAoDKkt%W>6AcA(9izzteT6tf*>1ikKe|(BgIu9CQ@w+GcHu1IEO)-(yA+s;cXH`6TY>kLP5f4_k8>Kf$|#nE9Z z==rWtW^Fwtjnyh=+e|YFiRrU9X8inge(TfrI(*ETms3Z=;8M>I28PW|g$~V{ zctoK^@P>?#!8?+ghH_w`zMYK8&sAycl*t83H7DT7+8*Xtk3RfW;UC#0D6c2hyLq36 zB45pYiR&g0Zk!z8nGcO}NSYeOC0?=pZdH@A-(8&il1^?UD{Y>2V=2CCE8P_Xx<-D% zxCk&brL^GKq2kChVuyB3*)!PprJ845+V^G_d*A2{uIwqlXLh|zHu_H6R56LXX*sID z0nhsF@{Enkr25Mv);DeSt1aPk-WaDQ-Ny!8A^{({KQslGy>CR5N%!(Nm9MRw^++q6 zzD6%;4rtmcsmL&Sh82KO;p9h-p%3*a*DJOjeyd>FobVmat}1?dHle|tzAi}mD!xaQ z{g|3XM0Qd``kayy+I%(af4&4h(5 z$Mt7V->WK*OzEdd_#~N65*mXPZ!sQP)Zttiw=6OMaE1AMi*i?W{R`p4y>C(fobGWt zxi~t3UEFNJu1cc{?3|qP?1NP!N*ohxqr)R(wRPNcLu~S#11u_I!&B#M@{a(ujbHFw zH68BYvj}r47J zhjHdF{0C|MZ(sN@-uwmi``5qBMSmZ5!od>&evLbSm#!bioxc!z|M~|f|1tdhZ(Dni zy?m{fQ|D1xcZ|g{;=JD2jPL;{4Uo#XkNb%davmJ zVY`1(!2a&>_j}2M%<~I7_Xqb69{*GH`Q7cqrRH~n_HaIaK^5