From 5473747e59075b918f8c595a5967496da44bd323 Mon Sep 17 00:00:00 2001 From: M Sasan MH Date: Mon, 17 Jul 2023 23:56:52 +0430 Subject: [PATCH] v2.3.0 --- MsmhTools/CustomControls/CustomButton.cs | 468 +++ MsmhTools/CustomControls/CustomCheckBox.cs | 357 ++ MsmhTools/CustomControls/CustomComboBox.cs | 413 +++ .../CustomControls/CustomContextMenuStrip.cs | 233 ++ .../CustomControls/CustomDataGridView.cs | 772 ++++ MsmhTools/CustomControls/CustomGroupBox.cs | 322 ++ MsmhTools/CustomControls/CustomInputBox.cs | 772 ++++ MsmhTools/CustomControls/CustomInputBox.resx | 120 + MsmhTools/CustomControls/CustomLabel.cs | 382 ++ MsmhTools/CustomControls/CustomMenuStrip.cs | 250 ++ MsmhTools/CustomControls/CustomMessageBox.cs | 578 +++ .../CustomControls/CustomMessageBox.resx | 120 + .../CustomControls/CustomNumericUpDown.cs | 361 ++ MsmhTools/CustomControls/CustomPanel.cs | 495 +++ MsmhTools/CustomControls/CustomProgressBar.cs | 362 ++ MsmhTools/CustomControls/CustomRadioButton.cs | 354 ++ MsmhTools/CustomControls/CustomRichTextBox.cs | 794 ++++ MsmhTools/CustomControls/CustomStatusStrip.cs | 175 + MsmhTools/CustomControls/CustomTabControl.cs | 484 +++ MsmhTools/CustomControls/CustomTextBox.cs | 646 ++++ MsmhTools/CustomControls/CustomTextBox.resx | 120 + MsmhTools/CustomControls/CustomTimeUpDown.cs | 362 ++ .../CustomControls/CustomTimeUpDown.resx | 120 + MsmhTools/CustomControls/CustomToolStrip.cs | 181 + .../CustomControls/CustomToolStripComboBox.cs | 348 ++ .../CustomControls/CustomToolStripRenderer.cs | 197 + .../CustomControls/CustomToolStripTextBox.cs | 424 +++ MsmhTools/CustomControls/CustomVScrollBar.cs | 705 ++++ .../CustomControls/CustomVScrollBar.resx | 120 + MsmhTools/Library/ColumnSorter.cs | 327 ++ MsmhTools/Library/Crc32.NET.dll | Bin 0 -> 7680 bytes MsmhTools/Library/UtfUnknown.dll | Bin 0 -> 250368 bytes MsmhTools/Library/libse.dll | Bin 0 -> 2647040 bytes MsmhTools/MsmhTools.csproj | 24 + MsmhTools/MsmhTools.csproj.user | 77 + MsmhTools/MsmhTools/CenterWinDialog.cs | 66 + MsmhTools/MsmhTools/CertificateTool.cs | 215 ++ MsmhTools/MsmhTools/Colors.cs | 92 + MsmhTools/MsmhTools/Controllers.cs | 135 + .../MsmhTools/DnsTool/DNSCryptConfigEditor.cs | 244 ++ .../DnsTool/DNSCryptStampGenerator.cs | 438 +++ .../MsmhTools/DnsTool/DNSCryptStampReader.cs | 528 +++ MsmhTools/MsmhTools/DnsTool/DnsReader.cs | 199 + .../DnsWireformatTools/DnsByteExtensions.cs | 221 ++ .../DnsWireformatTools/DnsDomainResource.cs | 25 + .../DnsTool/DnsWireformatTools/DnsHeader.cs | 230 ++ .../DnsIpAddressResource.cs | 58 + .../DnsTool/DnsWireformatTools/DnsMessage.cs | 132 + .../DnsWireformatTools/DnsMxResource.cs | 60 + .../DnsWireformatTools/DnsOperationCode.cs | 39 + .../DnsWireformatTools/DnsOptResource.cs | 49 + .../DnsWireformatTools/DnsQueryClass.cs | 39 + .../DnsWireformatTools/DnsQueryFactory.cs | 111 + .../DnsWireformatTools/DnsQueryType.cs | 296 ++ .../DnsWireformatTools/DnsResourceRecord.cs | 120 + .../DnsWireformatTools/DnsResponseCode.cs | 95 + .../DnsWireformatTools/DnsSoaResource.cs | 101 + .../DnsWireformatTools/DnsStringResource.cs | 50 + .../DnsWireformatTools/DnsTextResource.cs | 20 + .../DnsWireformatTools/DnsUnknownResource.cs | 48 + .../DnsWireformatTools/IDnsByteArrayReader.cs | 21 + .../DnsWireformatTools/IDnsByteArrayWriter.cs | 21 + .../DnsWireformatTools/IDnsResource.cs | 22 + MsmhTools/MsmhTools/DnsTool/GetCompanyName.cs | 70 + MsmhTools/MsmhTools/DnsTool/GetIP.cs | 602 ++++ MsmhTools/MsmhTools/Drawing.cs | 109 + MsmhTools/MsmhTools/EncodingTool.cs | 102 + MsmhTools/MsmhTools/Extensions.cs | 669 ++++ MsmhTools/MsmhTools/FileDirectory.cs | 364 ++ MsmhTools/MsmhTools/HTML.cs | 77 + .../MsmhTools/HTTPProxyServer/CommonTools.cs | 306 ++ .../MsmhTools/HTTPProxyServer/DPIBypass.cs | 610 ++++ .../MsmhTools/HTTPProxyServer/Decoder.cs | 225 ++ .../HTTPProxyServer/HTTPProxyServer.cs | 782 ++++ .../HTTPProxyServer/HTTPProxyServerProgram.cs | 569 +++ .../HTTPProxyServer/ParseHttpMethod.cs | 54 + .../MsmhTools/HTTPProxyServer/Request.cs | 1312 +++++++ .../MsmhTools/HTTPProxyServer/RestRequest.cs | 699 ++++ .../MsmhTools/HTTPProxyServer/RestResponse.cs | 157 + .../MsmhTools/HTTPProxyServer/Settings.cs | 63 + MsmhTools/MsmhTools/HTTPProxyServer/Tunnel.cs | 684 ++++ .../HTTPProxyServer/TunnelManager.cs | 52 + MsmhTools/MsmhTools/HtmlTools.cs | 614 ++++ MsmhTools/MsmhTools/INIFile.cs | 54 + MsmhTools/MsmhTools/Info.cs | 98 + MsmhTools/MsmhTools/IsolatedStorage.cs | 315 ++ MsmhTools/MsmhTools/Network.cs | 910 +++++ MsmhTools/MsmhTools/OpenLinks.cs | 66 + MsmhTools/MsmhTools/ProcessManager.cs | 534 +++ .../ProxifiedTcpClient/HttpProxyClient.cs | 542 +++ .../ProxifiedTcpClient/Socks5ProxyClient.cs | 684 ++++ .../MsmhTools/ProxifiedTcpClient/Utils.cs | 117 + MsmhTools/MsmhTools/RegistryTool.cs | 31 + MsmhTools/MsmhTools/Resource.cs | 98 + MsmhTools/MsmhTools/Screen.cs | 43 + MsmhTools/MsmhTools/ScrollBar.cs | 31 + MsmhTools/MsmhTools/Settings.cs | 546 +++ MsmhTools/MsmhTools/SniReader.cs | 300 ++ MsmhTools/MsmhTools/StringTool.cs | 698 ++++ MsmhTools/MsmhTools/Texts.cs | 34 + MsmhTools/MsmhTools/Themes.cs | 292 ++ MsmhTools/MsmhTools/TimeConvert.cs | 390 ++ .../MsmhTools/Win32/ControlScrollFilter.cs | 26 + MsmhTools/MsmhTools/Win32/NativeMethods.cs | 296 ++ MsmhTools/MsmhTools/Win32/WindowsMessages.cs | 1199 ++++++ MsmhTools/MsmhTools/Xml.cs | 87 + .../PublishProfiles/FolderProfile.pubxml | 14 + .../PublishProfiles/FolderProfile.pubxml.user | 9 + SDCHttpProxy/ConsoleTools.cs | 80 + SDCHttpProxy/Program.cs | 567 +++ .../PublishProfiles/FolderProfile.pubxml | 17 + .../PublishProfiles/FolderProfile.pubxml.user | 9 + SDCHttpProxy/Properties/Resources.Designer.cs | 63 + SDCHttpProxy/Properties/Resources.resx | 101 + SDCHttpProxy/Properties/Settings.Designer.cs | 26 + SDCHttpProxy/Properties/Settings.settings | 6 + SDCHttpProxy/SDCHttpProxy.csproj | 50 + SDCHttpProxy/SDCHttpProxy.csproj.user | 6 + SDCHttpProxy/SecureDNSClientMulti.ico | Bin 0 -> 188478 bytes .../Forms/FormDnsLookup.Designer.cs | 520 +++ SecureDNSClient/Forms/FormDnsLookup.cs | 222 ++ SecureDNSClient/Forms/FormDnsLookup.resx | 3207 +++++++++++++++++ .../Forms/FormStampGenerator.Designer.cs | 598 +++ SecureDNSClient/Forms/FormStampGenerator.cs | 453 +++ SecureDNSClient/Forms/FormStampGenerator.resx | 3207 +++++++++++++++++ .../Forms/FormStampReader.Designer.cs | 155 + SecureDNSClient/Forms/FormStampReader.cs | 98 + SecureDNSClient/Forms/FormStampReader.resx | 3207 +++++++++++++++++ SecureDNSClient/Forms/SetDNS.cs | 177 + SecureDNSClient/Forms/SetProxy.cs | 91 + .../NecessaryFiles/SDCHttpProxy.exe | Bin 0 -> 1482049 bytes .../dnscrypt-proxy-fakeproxy.toml | 344 ++ 132 files changed, 43876 insertions(+) create mode 100644 MsmhTools/CustomControls/CustomButton.cs create mode 100644 MsmhTools/CustomControls/CustomCheckBox.cs create mode 100644 MsmhTools/CustomControls/CustomComboBox.cs create mode 100644 MsmhTools/CustomControls/CustomContextMenuStrip.cs create mode 100644 MsmhTools/CustomControls/CustomDataGridView.cs create mode 100644 MsmhTools/CustomControls/CustomGroupBox.cs create mode 100644 MsmhTools/CustomControls/CustomInputBox.cs create mode 100644 MsmhTools/CustomControls/CustomInputBox.resx create mode 100644 MsmhTools/CustomControls/CustomLabel.cs create mode 100644 MsmhTools/CustomControls/CustomMenuStrip.cs create mode 100644 MsmhTools/CustomControls/CustomMessageBox.cs create mode 100644 MsmhTools/CustomControls/CustomMessageBox.resx create mode 100644 MsmhTools/CustomControls/CustomNumericUpDown.cs create mode 100644 MsmhTools/CustomControls/CustomPanel.cs create mode 100644 MsmhTools/CustomControls/CustomProgressBar.cs create mode 100644 MsmhTools/CustomControls/CustomRadioButton.cs create mode 100644 MsmhTools/CustomControls/CustomRichTextBox.cs create mode 100644 MsmhTools/CustomControls/CustomStatusStrip.cs create mode 100644 MsmhTools/CustomControls/CustomTabControl.cs create mode 100644 MsmhTools/CustomControls/CustomTextBox.cs create mode 100644 MsmhTools/CustomControls/CustomTextBox.resx create mode 100644 MsmhTools/CustomControls/CustomTimeUpDown.cs create mode 100644 MsmhTools/CustomControls/CustomTimeUpDown.resx create mode 100644 MsmhTools/CustomControls/CustomToolStrip.cs create mode 100644 MsmhTools/CustomControls/CustomToolStripComboBox.cs create mode 100644 MsmhTools/CustomControls/CustomToolStripRenderer.cs create mode 100644 MsmhTools/CustomControls/CustomToolStripTextBox.cs create mode 100644 MsmhTools/CustomControls/CustomVScrollBar.cs create mode 100644 MsmhTools/CustomControls/CustomVScrollBar.resx create mode 100644 MsmhTools/Library/ColumnSorter.cs create mode 100644 MsmhTools/Library/Crc32.NET.dll create mode 100644 MsmhTools/Library/UtfUnknown.dll create mode 100644 MsmhTools/Library/libse.dll create mode 100644 MsmhTools/MsmhTools.csproj create mode 100644 MsmhTools/MsmhTools.csproj.user create mode 100644 MsmhTools/MsmhTools/CenterWinDialog.cs create mode 100644 MsmhTools/MsmhTools/CertificateTool.cs create mode 100644 MsmhTools/MsmhTools/Colors.cs create mode 100644 MsmhTools/MsmhTools/Controllers.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DNSCryptConfigEditor.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DNSCryptStampGenerator.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DNSCryptStampReader.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsReader.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsByteExtensions.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsDomainResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsHeader.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsIpAddressResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMessage.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMxResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOperationCode.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOptResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryClass.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryFactory.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryType.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResourceRecord.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResponseCode.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsSoaResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsStringResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsTextResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsUnknownResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayReader.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayWriter.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsResource.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/GetCompanyName.cs create mode 100644 MsmhTools/MsmhTools/DnsTool/GetIP.cs create mode 100644 MsmhTools/MsmhTools/Drawing.cs create mode 100644 MsmhTools/MsmhTools/EncodingTool.cs create mode 100644 MsmhTools/MsmhTools/Extensions.cs create mode 100644 MsmhTools/MsmhTools/FileDirectory.cs create mode 100644 MsmhTools/MsmhTools/HTML.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/CommonTools.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/DPIBypass.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/Decoder.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServerProgram.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/ParseHttpMethod.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/Request.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/RestRequest.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/RestResponse.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/Settings.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/Tunnel.cs create mode 100644 MsmhTools/MsmhTools/HTTPProxyServer/TunnelManager.cs create mode 100644 MsmhTools/MsmhTools/HtmlTools.cs create mode 100644 MsmhTools/MsmhTools/INIFile.cs create mode 100644 MsmhTools/MsmhTools/Info.cs create mode 100644 MsmhTools/MsmhTools/IsolatedStorage.cs create mode 100644 MsmhTools/MsmhTools/Network.cs create mode 100644 MsmhTools/MsmhTools/OpenLinks.cs create mode 100644 MsmhTools/MsmhTools/ProcessManager.cs create mode 100644 MsmhTools/MsmhTools/ProxifiedTcpClient/HttpProxyClient.cs create mode 100644 MsmhTools/MsmhTools/ProxifiedTcpClient/Socks5ProxyClient.cs create mode 100644 MsmhTools/MsmhTools/ProxifiedTcpClient/Utils.cs create mode 100644 MsmhTools/MsmhTools/RegistryTool.cs create mode 100644 MsmhTools/MsmhTools/Resource.cs create mode 100644 MsmhTools/MsmhTools/Screen.cs create mode 100644 MsmhTools/MsmhTools/ScrollBar.cs create mode 100644 MsmhTools/MsmhTools/Settings.cs create mode 100644 MsmhTools/MsmhTools/SniReader.cs create mode 100644 MsmhTools/MsmhTools/StringTool.cs create mode 100644 MsmhTools/MsmhTools/Texts.cs create mode 100644 MsmhTools/MsmhTools/Themes.cs create mode 100644 MsmhTools/MsmhTools/TimeConvert.cs create mode 100644 MsmhTools/MsmhTools/Win32/ControlScrollFilter.cs create mode 100644 MsmhTools/MsmhTools/Win32/NativeMethods.cs create mode 100644 MsmhTools/MsmhTools/Win32/WindowsMessages.cs create mode 100644 MsmhTools/MsmhTools/Xml.cs create mode 100644 MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml create mode 100644 MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml.user create mode 100644 SDCHttpProxy/ConsoleTools.cs create mode 100644 SDCHttpProxy/Program.cs create mode 100644 SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml create mode 100644 SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml.user create mode 100644 SDCHttpProxy/Properties/Resources.Designer.cs create mode 100644 SDCHttpProxy/Properties/Resources.resx create mode 100644 SDCHttpProxy/Properties/Settings.Designer.cs create mode 100644 SDCHttpProxy/Properties/Settings.settings create mode 100644 SDCHttpProxy/SDCHttpProxy.csproj create mode 100644 SDCHttpProxy/SDCHttpProxy.csproj.user create mode 100644 SDCHttpProxy/SecureDNSClientMulti.ico create mode 100644 SecureDNSClient/Forms/FormDnsLookup.Designer.cs create mode 100644 SecureDNSClient/Forms/FormDnsLookup.cs create mode 100644 SecureDNSClient/Forms/FormDnsLookup.resx create mode 100644 SecureDNSClient/Forms/FormStampGenerator.Designer.cs create mode 100644 SecureDNSClient/Forms/FormStampGenerator.cs create mode 100644 SecureDNSClient/Forms/FormStampGenerator.resx create mode 100644 SecureDNSClient/Forms/FormStampReader.Designer.cs create mode 100644 SecureDNSClient/Forms/FormStampReader.cs create mode 100644 SecureDNSClient/Forms/FormStampReader.resx create mode 100644 SecureDNSClient/Forms/SetDNS.cs create mode 100644 SecureDNSClient/Forms/SetProxy.cs create mode 100644 SecureDNSClient/NecessaryFiles/SDCHttpProxy.exe create mode 100644 SecureDNSClient/NecessaryFiles/dnscrypt-proxy-fakeproxy.toml diff --git a/MsmhTools/CustomControls/CustomButton.cs b/MsmhTools/CustomControls/CustomButton.cs new file mode 100644 index 0000000..76487cb --- /dev/null +++ b/MsmhTools/CustomControls/CustomButton.cs @@ -0,0 +1,468 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing.Drawing2D; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, April 19, 2022. +*/ + +namespace CustomControls +{ + public class CustomButton : Button + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new FlatButtonAppearance? FlatAppearance { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new TextImageRelation? TextImageRelation { get; set; } + + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public override Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + Invalidate(); + } + } + } + + private int mRoundedCorners = 0; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Rounded Corners")] + public int RoundedCorners + { + get { return mRoundedCorners; } + set + { + if (mRoundedCorners != value) + { + mRoundedCorners = value; + Invalidate(); + } + } + } + + private bool ButtonMouseHover { get; set; } + private bool ButtonMouseDown { get; set; } + private bool ApplicationIdle = false; + private bool once = true; + + public CustomButton() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + FlatStyle = FlatStyle.Flat; + + Application.Idle += Application_Idle; + HandleCreated += CustomButton_HandleCreated; + LocationChanged += CustomButton_LocationChanged; + Move += CustomButton_Move; + MouseDown += CustomButton_MouseDown; + MouseUp += CustomButton_MouseUp; + MouseEnter += CustomButton_MouseEnter; + MouseLeave += CustomButton_MouseLeave; + EnabledChanged += CustomButton_EnabledChanged; + Paint += CustomButton_Paint; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Parent.BackColorChanged += Parent_BackColorChanged; + Invalidate(); + once = false; + } + } + } + + private void Parent_BackColorChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomButton_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomButton_LocationChanged(object? sender, EventArgs e) + { + if (sender is Button button) + { + button.Invalidate(); + } + } + + private void CustomButton_Move(object? sender, EventArgs e) + { + if (sender is Button button) + { + button.Invalidate(); + } + } + + private void CustomButton_MouseDown(object? sender, MouseEventArgs e) + { + if (sender is Button button) + { + ButtonMouseDown = true; + button.Invalidate(); + } + } + + private void CustomButton_MouseUp(object? sender, MouseEventArgs e) + { + if (sender is Button button) + { + ButtonMouseDown = false; + button.Invalidate(); + } + } + + private void CustomButton_MouseEnter(object? sender, EventArgs e) + { + if (sender is Button button) + { + ButtonMouseHover = true; + button.Invalidate(); + } + } + + private void CustomButton_MouseLeave(object? sender, EventArgs e) + { + if (sender is Button button) + { + ButtonMouseHover = false; + button.Invalidate(); + } + } + + private void CustomButton_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomButton_Paint(object? sender, PaintEventArgs e) + { + if (ApplicationIdle == false) + return; + + if (sender is Button button) + { + Color backColor = GetBackColor(button); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + + // Paint Background + if (Parent != null) + { + e.Graphics.Clear(Parent.BackColor); + if (Parent.BackColor == Color.Transparent) + if (Parent is TabPage tabPage) + { + if (tabPage.Parent is CustomTabControl customTabControl) + e.Graphics.Clear(customTabControl.BackColor); + else if (tabPage.Parent is TabControl tabControl) + e.Graphics.Clear(tabControl.BackColor); + } + } + else + e.Graphics.Clear(backColor); + + Rectangle rect = new(0, 0, button.ClientSize.Width - 1, button.ClientSize.Height - 1); + + // Paint Button Background + using SolidBrush sbBG = new(backColor); + e.Graphics.FillRoundedRectangle(sbBG, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + + // Paint Hover Button Background (// MousePosition Or Cursor.Position) (Faster than rect.Contains(button.PointToClient(MousePosition))) + if (button.PointToScreen(Point.Empty).X <= MousePosition.X + && MousePosition.X <= (button.PointToScreen(Point.Empty).X + rect.Width) + && button.PointToScreen(Point.Empty).Y <= MousePosition.Y + && MousePosition.Y <= (button.PointToScreen(Point.Empty).Y + rect.Height)) + { + if (ButtonMouseHover) + { + if (ButtonMouseDown) + { + Color mouseDownBackColor; + if (backColor.DarkOrLight() == "Dark") + mouseDownBackColor = backColor.ChangeBrightness(0.2f); + else + mouseDownBackColor = backColor.ChangeBrightness(-0.2f); + + using SolidBrush sbDBG = new(mouseDownBackColor); + e.Graphics.FillRoundedRectangle(sbDBG, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + ButtonMouseDown = false; // Fix a minor bug. + } + else + { + Color mouseHoverBackColor; + if (backColor.DarkOrLight() == "Dark") + mouseHoverBackColor = BackColor.ChangeBrightness(0.1f); + else + mouseHoverBackColor = BackColor.ChangeBrightness(-0.1f); + + using SolidBrush sbHBG = new(mouseHoverBackColor); + e.Graphics.FillRoundedRectangle(sbHBG, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + } + } + } + + if (button.Enabled && button.Focused) + { + rect.Inflate(-2, -2); + using Pen pen = new(SelectionColor) { DashStyle = DashStyle.Dash }; + //if (RoundedCorners == 0) + // e.Graphics.DrawRectangle(pen, rect); + //else + e.Graphics.DrawRoundedRectangle(pen, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + rect.Inflate(+2, +2); + } + + // Paint Image + if (Image != null) + { + Rectangle rectImage = new(0, 0, Image.Width, Image.Height); + int pad = 2; + int top = rect.Y + pad; + int bottom = rect.Y + (rect.Height - rectImage.Height) - pad; + int left = rect.X + pad; + int right = rect.X + (rect.Width - rectImage.Width) - pad; + int centerX = rect.X + ((rect.Width - rectImage.Width) / 2); + int centerY = rect.Y + ((rect.Height - rectImage.Height) / 2); + if (RightToLeft == RightToLeft.No) + { + if (ImageAlign == ContentAlignment.BottomCenter) + rectImage.Location = new(centerX, bottom); + else if (ImageAlign == ContentAlignment.BottomLeft) + rectImage.Location = new(left, bottom); + else if (ImageAlign == ContentAlignment.BottomRight) + rectImage.Location = new(right, bottom); + else if (ImageAlign == ContentAlignment.MiddleCenter) + rectImage.Location = new(centerX, centerY); + else if (ImageAlign == ContentAlignment.MiddleLeft) + rectImage.Location = new(left, centerY); + else if (ImageAlign == ContentAlignment.MiddleRight) + rectImage.Location = new(right, centerY); + else if (ImageAlign == ContentAlignment.TopCenter) + rectImage.Location = new(centerX, top); + else if (ImageAlign == ContentAlignment.TopLeft) + rectImage.Location = new(left, top); + else if (ImageAlign == ContentAlignment.TopRight) + rectImage.Location = new(right, top); + else + rectImage.Location = new(centerX, centerY); + } + else + { + if (ImageAlign == ContentAlignment.BottomCenter) + rectImage.Location = new(centerX, bottom); + else if (ImageAlign == ContentAlignment.BottomLeft) + rectImage.Location = new(right, bottom); + else if (ImageAlign == ContentAlignment.BottomRight) + rectImage.Location = new(left, bottom); + else if (ImageAlign == ContentAlignment.MiddleCenter) + rectImage.Location = new(centerX, centerY); + else if (ImageAlign == ContentAlignment.MiddleLeft) + rectImage.Location = new(right, centerY); + else if (ImageAlign == ContentAlignment.MiddleRight) + rectImage.Location = new(left, centerY); + else if (ImageAlign == ContentAlignment.TopCenter) + rectImage.Location = new(centerX, top); + else if (ImageAlign == ContentAlignment.TopLeft) + rectImage.Location = new(right, top); + else if (ImageAlign == ContentAlignment.TopRight) + rectImage.Location = new(left, top); + else + rectImage.Location = new(centerX, centerY); + } + + e.Graphics.DrawImage(Image, rectImage); + } + + // Paint Button Text + TextFormatFlags flags; + + if (RightToLeft == RightToLeft.No) + { + if (TextAlign == ContentAlignment.BottomCenter) + flags = TextFormatFlags.Bottom | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.BottomLeft) + flags = TextFormatFlags.Bottom | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.BottomRight) + flags = TextFormatFlags.Bottom | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.MiddleCenter) + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + else if (TextAlign == ContentAlignment.MiddleLeft) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.MiddleRight) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.TopCenter) + flags = TextFormatFlags.Top | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.TopLeft) + flags = TextFormatFlags.Top | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.TopRight) + flags = TextFormatFlags.Top | TextFormatFlags.Right; + else + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + } + else + { + if (TextAlign == ContentAlignment.BottomCenter) + flags = TextFormatFlags.Bottom | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.BottomLeft) + flags = TextFormatFlags.Bottom | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.BottomRight) + flags = TextFormatFlags.Bottom | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.MiddleCenter) + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + else if (TextAlign == ContentAlignment.MiddleLeft) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.MiddleRight) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.TopCenter) + flags = TextFormatFlags.Top | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.TopLeft) + flags = TextFormatFlags.Top | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.TopRight) + flags = TextFormatFlags.Top | TextFormatFlags.Left; + else + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + + flags |= TextFormatFlags.RightToLeft; + } + + TextRenderer.DrawText(e.Graphics, button.Text, button.Font, rect, foreColor, flags); + + // Paint Button Border + using Pen penB = new(borderColor); + e.Graphics.DrawRoundedRectangle(penB, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + } + } + + private Color GetBackColor(Button button) + { + if (button.Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomCheckBox.cs b/MsmhTools/CustomControls/CustomCheckBox.cs new file mode 100644 index 0000000..919a173 --- /dev/null +++ b/MsmhTools/CustomControls/CustomCheckBox.cs @@ -0,0 +1,357 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing.Design; +using System.Drawing.Drawing2D; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, April 17, 2022. +*/ + +namespace CustomControls +{ + public class CustomCheckBox : CheckBox + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new Appearance Appearance { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new FlatStyle FlatStyle { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new FlatButtonAppearance? FlatAppearance { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new ContentAlignment TextAlign { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new ContentAlignment CheckAlign { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new bool AutoSize { get; set; } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private Color mCheckColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Check Color")] + public Color CheckColor + { + get { return mCheckColor; } + set + { + if (mCheckColor != value) + { + mCheckColor = value; + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + Invalidate(); + } + } + } + + private string? mText = string.Empty; + [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0," + + "Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))] + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Text")] + public override string? Text + { + get { return mText; } + set + { + if (mText != value) + { + mText = value; + Invalidate(); + } + } + } + + private bool ApplicationIdle = false; + private bool once = true; + public CustomCheckBox() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + + Application.Idle += Application_Idle; + HandleCreated += CustomCheckBox_HandleCreated; + LocationChanged += CustomCheckBox_LocationChanged; + Move += CustomCheckBox_Move; + EnabledChanged += CustomCheckBox_EnabledChanged; + BackColorChanged += CustomCheckBox_BackColorChanged; + RightToLeftChanged += CustomCheckBox_RightToLeftChanged; + Paint += CustomCheckBox_Paint; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomCheckBox_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomCheckBox_LocationChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomCheckBox_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomCheckBox_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomCheckBox_BackColorChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomCheckBox_RightToLeftChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomCheckBox_Paint(object? sender, PaintEventArgs e) + { + if (ApplicationIdle == false) + return; + + if (sender is CheckBox checkBox) + { + Color backColor = GetBackColor(checkBox); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + Color checkColor = GetCheckColor(); + + e.Graphics.Clear(backColor); + checkBox.Appearance = Appearance.Button; + checkBox.FlatStyle = FlatStyle.Flat; + + checkBox.FlatAppearance.BorderSize = 0; + checkBox.AutoSize = false; + checkBox.UseVisualStyleBackColor = false; + SizeF sizeF = checkBox.CreateGraphics().MeasureString(checkBox.Text, checkBox.Font); + int rectSize = 12; + checkBox.Height = (int)sizeF.Height; + checkBox.Width = (int)(sizeF.Width + rectSize + 5); + int x; + float textX; + + if (checkBox.RightToLeft == RightToLeft.No) + { + checkBox.TextAlign = ContentAlignment.MiddleLeft; + x = 1; + textX = (float)(rectSize * 1.3); + } + else + { + checkBox.TextAlign = ContentAlignment.MiddleRight; + x = checkBox.Width - rectSize - 2; + textX = checkBox.Width - sizeF.Width - (float)(rectSize * 1.2); + } + + int y = (checkBox.ClientRectangle.Y + 1 + (checkBox.ClientRectangle.Height - rectSize)) / 2; + Point pt = new(x, y); + Rectangle rectCheck = new(pt, new Size(rectSize, rectSize)); + + // Draw Selection Border + Rectangle cRect = new(checkBox.ClientRectangle.X, checkBox.ClientRectangle.Y, checkBox.ClientRectangle.Width - 1, checkBox.ClientRectangle.Height - 1); + if (checkBox.Focused) + { + using Pen pen = new(SelectionColor) { DashStyle = DashStyle.Dot }; + e.Graphics.DrawRectangle(pen, cRect); + } + + // Draw Text + using SolidBrush brush1 = new(foreColor); + e.Graphics.DrawString(checkBox.Text, checkBox.Font, brush1, textX, 0); + + // Fill Check Rect + using SolidBrush brush2 = new(backColor); + e.Graphics.FillRectangle(brush2, rectCheck); + + // Draw Check + if (checkBox.Checked) + { + if (checkBox.CheckState == CheckState.Checked) + { + // Draw Check + using Pen p = new(checkColor, 2); + rectCheck.Inflate(-2, -2); + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + e.Graphics.DrawLines(p, new Point[] { new Point(rectCheck.Left, rectCheck.Bottom - rectCheck.Height / 2), new Point(rectCheck.Left + rectCheck.Width / 3, rectCheck.Bottom), new Point(rectCheck.Right, rectCheck.Top) }); + e.Graphics.SmoothingMode = SmoothingMode.Default; + rectCheck.Inflate(+2, +2); + } + else if (checkBox.CheckState == CheckState.Indeterminate) + { + // Draw Indeterminate + using SolidBrush sb = new(checkColor); + rectCheck.Inflate(-2, -2); + e.Graphics.FillRectangle(sb, rectCheck); + rectCheck.Inflate(+2, +2); + } + } + + // Draw Check Rect (Check Border) + ControlPaint.DrawBorder(e.Graphics, rectCheck, borderColor, ButtonBorderStyle.Solid); + } + } + + private Color GetBackColor(CheckBox checkBox) + { + if (checkBox.Enabled) + return BackColor; + else + { + Color backColor = BackColor; + if (checkBox.Parent != null) + { + if (checkBox.Parent.BackColor != Color.Transparent) + { + if (checkBox.Parent.Enabled) + backColor = checkBox.Parent.BackColor; + else + backColor = GetDisabledColor(checkBox.Parent.BackColor); + } + else + { + if (checkBox.FindForm() != null) + { + if (checkBox.Parent.Enabled) + backColor = checkBox.FindForm().BackColor; + else + backColor = GetDisabledColor(checkBox.FindForm().BackColor); + } + } + } + return backColor; + } + + static Color GetDisabledColor(Color color) + { + if (color.DarkOrLight() == "Dark") + return color.ChangeBrightness(0.3f); + else + return color.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + private Color GetCheckColor() + { + if (Enabled) + return CheckColor; + else + { + if (CheckColor.DarkOrLight() == "Dark") + return CheckColor.ChangeBrightness(0.3f); + else + return CheckColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomComboBox.cs b/MsmhTools/CustomControls/CustomComboBox.cs new file mode 100644 index 0000000..79d00fa --- /dev/null +++ b/MsmhTools/CustomControls/CustomComboBox.cs @@ -0,0 +1,413 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing.Drawing2D; +using System.Runtime.InteropServices; +using System.Windows.Forms.Design; +/* + * Copyright MSasanMH, April 16, 2022. + */ + +namespace CustomControls +{ + public class CustomComboBox : ComboBox + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new FlatStyle FlatStyle { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new ComboBoxStyle DropDownStyle { get; set; } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.DodgerBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + Invalidate(); + } + } + } + + private string mText = string.Empty; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Text")] + public override string Text + { + get { return mText; } + set + { + if (mText != value) + { + mText = value; + Invalidate(); + } + } + } + + private bool ApplicationIdle = false; + private bool once = true; + + public CustomComboBox() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + DrawMode = DrawMode.OwnerDrawVariable; + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + + base.FlatStyle = FlatStyle.Flat; + base.DropDownStyle = ComboBoxStyle.DropDownList; + + Application.Idle += Application_Idle; + HandleCreated += CustomComboBox_HandleCreated; + BackColorChanged += CustomComboBox_BackColorChanged; + ForeColorChanged += CustomComboBox_ForeColorChanged; + MouseMove += CustomComboBox_MouseMove; + LocationChanged += CustomComboBox_LocationChanged; + Move += CustomComboBox_Move; + EnabledChanged += CustomComboBox_EnabledChanged; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomComboBox_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomComboBox_BackColorChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomComboBox_ForeColorChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomComboBox_MouseMove(object? sender, MouseEventArgs e) + { + Invalidate(); + } + + private void CustomComboBox_LocationChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomComboBox_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomComboBox_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + } + + protected override void OnTabStopChanged(EventArgs e) + { + base.OnTabStopChanged(e); + Invalidate(); + } + + protected override void OnTabIndexChanged(EventArgs e) + { + base.OnTabIndexChanged(e); + Invalidate(); + } + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + Invalidate(); + } + + protected override void OnLostFocus(EventArgs e) + { + base.OnLostFocus(e); + Invalidate(); + } + + protected override void OnTextChanged(EventArgs e) + { + base.OnTextChanged(e); + Invalidate(); + } + + protected override void OnTextUpdate(EventArgs e) + { + base.OnTextUpdate(e); + Invalidate(); + } + + protected override void OnSelectedValueChanged(EventArgs e) + { + base.OnSelectedValueChanged(e); + Invalidate(); + } + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + Invalidate(); + } + + protected override void OnInvalidated(InvalidateEventArgs e) + { + base.OnInvalidated(e); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + Invalidate(); + } + + protected override void OnPaint(PaintEventArgs e) + { + if (!ApplicationIdle) + return; + + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + Color backColorDarker = backColor.ChangeBrightness(-0.3f); + + // Selected Border Color + if (Focused && TabStop) + borderColor = GetBorderColor(); + + // Rectangle + Rectangle rect = ClientRectangle; + + // Mouse Position + Point mP = PointToClient(MousePosition); + + // Paint Background + using SolidBrush sb = new(backColor); + e.Graphics.FillRectangle(sb, rect); + + // Button X, Y, Width, Height + int buttonX; + if (RightToLeft == RightToLeft.No) + buttonX = rect.Right - 15; + else + buttonX = rect.Left + 1; + int buttonY = rect.Top + 1; + int buttonWidth = 14; + int buttonHeight = rect.Height - 2; + + // Button Rectangle + Rectangle rectButton = new(buttonX, buttonY, buttonWidth, buttonHeight); + + // Paint Button + using SolidBrush buttonBrush = new(backColorDarker); + e.Graphics.FillRectangle(buttonBrush, rectButton); + + // Paint MouseOver Button + if (Enabled && rectButton.Contains(mP)) + { + Color hoverColor = backColor.DarkOrLight() == "Dark" ? backColor.ChangeBrightness(0.3f) : backColor.ChangeBrightness(-0.3f); + using SolidBrush sbHover = new(hoverColor); + e.Graphics.FillRectangle(sbHover, rectButton); + } + + // Arrow Points + Point center = new(rectButton.X + rectButton.Width / 2, rectButton.Y + rectButton.Height / 2); + Point TopLeft = new(center.X - 3, center.Y - 1); + Point TopRight = new(center.X + 4, center.Y - 1); + Point Bottom = new(center.X, center.Y + 3); + Point[] arrowPoints = new Point[] + { + TopLeft, // Top Left + TopRight, // Top Right + Bottom // Bottom + }; + + // Paint Arrow + using SolidBrush arrowBrush = new(foreColor); + e.Graphics.FillPolygon(arrowBrush, arrowPoints); + + // Text X, Y, Width, Height + int textX; + if (RightToLeft == RightToLeft.No) + textX = rect.Left + 1; + else + textX = rect.Left + buttonWidth + 1; + int textY = rect.Top; + int textWidth = rect.Width - buttonWidth - 2; + int textHeight = rect.Height; + + // Text Rectangle + Rectangle rectText = new(textX, textY, textWidth, textHeight); + + StringFormat stringFormat = new() + { + LineAlignment = StringAlignment.Center, + Alignment = StringAlignment.Near, + FormatFlags = StringFormatFlags.NoWrap, + Trimming = StringTrimming.EllipsisCharacter + }; + + // Paint Text + string text = SelectedItem != null ? SelectedItem.ToString() : Text; + using SolidBrush textBrush = new(foreColor); + e.Graphics.DrawString(text, Font, textBrush, rectText, stringFormat); + + // Paint Border + ControlPaint.DrawBorder(e.Graphics, rect, borderColor, ButtonBorderStyle.Solid); + + // ComboBox Height + Size textSize = TextRenderer.MeasureText(text, Font); + if (textSize.Height == 0) + ItemHeight = 17; + else + ItemHeight = textSize.Height + 2; + base.OnPaint(e); + } + + protected override void OnDrawItem(DrawItemEventArgs e) + { + Graphics g = e.Graphics; + Rectangle rect = e.Bounds; + + Color textColor = ForeColor; + Color fillColor = BackColor; + + if ((e.State & DrawItemState.Selected) == DrawItemState.Selected || + (e.State & DrawItemState.Focus) == DrawItemState.Focus) + fillColor = SelectionColor; + + using SolidBrush sb = new(fillColor); + g.FillRectangle(sb, rect); + + if (e.Index >= 0 && e.Index < Items.Count) + { + var text = Items[e.Index].ToString(); + + using SolidBrush b = new(textColor); + var padding = 2; + + Rectangle modRect = new(rect.Left + padding, + rect.Top + padding, + rect.Width - (padding * 2), + rect.Height - (padding * 2)); + + var stringFormat = new StringFormat + { + LineAlignment = StringAlignment.Center, + Alignment = StringAlignment.Near, + FormatFlags = StringFormatFlags.NoWrap, + Trimming = StringTrimming.EllipsisCharacter + }; + + g.DrawString(text, Font, b, modRect, stringFormat); + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomContextMenuStrip.cs b/MsmhTools/CustomControls/CustomContextMenuStrip.cs new file mode 100644 index 0000000..aadbdc5 --- /dev/null +++ b/MsmhTools/CustomControls/CustomContextMenuStrip.cs @@ -0,0 +1,233 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 20, 2022. +*/ + +namespace CustomControls +{ + public class CustomContextMenuStrip : ContextMenuStrip + { + private readonly CustomToolStripRenderer MyRenderer = new(); + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + BorderColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + SelectionColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + private bool mSameColorForSubItems = true; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Same Color For Sub Items")] + public bool SameColorForSubItems + { + get { return mSameColorForSubItems; } + set + { + if (mSameColorForSubItems != value) + { + mSameColorForSubItems = value; + SameColorForSubItemsChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Action"), Description("Same Color For Sub Items Changed Event")] + public event EventHandler? SameColorForSubItemsChanged; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Border Color Changed Event")] + public event EventHandler? BorderColorChanged; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Selection Color Changed Event")] + public event EventHandler? SelectionColorChanged; + + public CustomContextMenuStrip() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + BorderColor = Color.Blue; + SelectionColor = Color.LightBlue; + + MyRenderer.BackColor = GetBackColor(); + MyRenderer.ForeColor = GetForeColor(); + MyRenderer.BorderColor = GetBorderColor(); + MyRenderer.SelectionColor = SelectionColor; + Renderer = MyRenderer; + + BackColorChanged += CustomContextMenuStrip_BackColorChanged; + ForeColorChanged += CustomContextMenuStrip_ForeColorChanged; + BorderColorChanged += CustomContextMenuStrip_BorderColorChanged; + SelectionColorChanged += CustomContextMenuStrip_SelectionColorChanged; + SameColorForSubItemsChanged += CustomContextMenuStrip_SameColorForSubItemsChanged; + ItemAdded += CustomContextMenuStrip_ItemAdded; + Paint += CustomContextMenuStrip_Paint; + + var timer = new System.Windows.Forms.Timer(); + timer.Interval = 100; + timer.Tick += (s, e) => + { + if (SameColorForSubItems) + ColorForSubItems(); + }; + timer.Start(); + } + + private void ColorForSubItems() + { + for (int a = 0; a < Items.Count; a++) + { + ToolStripItem toolStripItem = Items[a]; + var toolStripItems = Controllers.GetAllToolStripItems(toolStripItem); + for (int b = 0; b < toolStripItems.Count(); b++) + { + ToolStripItem? tsi = toolStripItems.ToList()[b]; + if (tsi is ToolStripMenuItem) + { + if (tsi is ToolStripMenuItem tsmi) + { + tsmi.BackColor = GetBackColor(); + tsmi.ForeColor = GetForeColor(); + } + } + else if (tsi is ToolStripSeparator) + { + if (tsi is ToolStripSeparator tss) + { + tss.BackColor = GetBackColor(); + tss.ForeColor = BorderColor; + } + } + } + } + } + + private void CustomContextMenuStrip_BackColorChanged(object? sender, EventArgs e) + { + MyRenderer.BackColor = GetBackColor(); + Invalidate(); + } + + private void CustomContextMenuStrip_ForeColorChanged(object? sender, EventArgs e) + { + MyRenderer.ForeColor = GetForeColor(); + Invalidate(); + } + + private void CustomContextMenuStrip_BorderColorChanged(object? sender, EventArgs e) + { + MyRenderer.BorderColor = GetBorderColor(); + Invalidate(); + } + + private void CustomContextMenuStrip_SelectionColorChanged(object? sender, EventArgs e) + { + MyRenderer.SelectionColor = SelectionColor; + Invalidate(); + } + + private void CustomContextMenuStrip_SameColorForSubItemsChanged(object? sender, EventArgs e) + { + if (SameColorForSubItems) + ColorForSubItems(); + } + + private void CustomContextMenuStrip_ItemAdded(object? sender, ToolStripItemEventArgs e) + { + if (SameColorForSubItems) + ColorForSubItems(); + Invalidate(); + } + + private void CustomContextMenuStrip_Paint(object? sender, PaintEventArgs e) + { + Color borderColor = GetBorderColor(); + ControlPaint.DrawBorder(e.Graphics, ClientRectangle, borderColor, ButtonBorderStyle.Solid); + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.2f); + else + return BackColor.ChangeBrightness(-0.2f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomDataGridView.cs b/MsmhTools/CustomControls/CustomDataGridView.cs new file mode 100644 index 0000000..a75f8ca --- /dev/null +++ b/MsmhTools/CustomControls/CustomDataGridView.cs @@ -0,0 +1,772 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing.Drawing2D; +using System.Runtime.InteropServices; +using System.Windows.Forms.Design; + +namespace CustomControls +{ + public class CustomDataGridView : DataGridView + { + private static class Methods + { + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + private extern static int SetWindowTheme(IntPtr controlHandle, string appName, string? idList); + internal static void SetDarkControl(Control control) + { + _ = SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + foreach (Control c in control.Controls) + { + _ = SetWindowTheme(c.Handle, "DarkMode_Explorer", null); + } + } + } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new Color BackgroundColor { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new bool EnableHeadersVisualStyles { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new DataGridViewHeaderBorderStyle ColumnHeadersBorderStyle { get; set; } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Column Headers Border")] + public bool ColumnHeadersBorder { get; set; } + + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public override Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.DodgerBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + Invalidate(); + } + } + } + + private Color mGridColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Grid Lines Color")] + public new Color GridColor + { + get { return mGridColor; } + set + { + if (mGridColor != value) + { + mGridColor = value; + Invalidate(); + } + } + } + + private Color mCheckColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Check Color for CheckBox Cell Type")] + public Color CheckColor + { + get { return mCheckColor; } + set + { + if (mCheckColor != value) + { + mCheckColor = value; + Invalidate(); + } + } + } + + private bool mSelectionModeFocus = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Set Focus On Full Row\nWorks on SelectionMode = FullRowSelect")] + public bool SelectionModeFocus + { + get { return mSelectionModeFocus; } + set + { + if (mSelectionModeFocus != value) + { + mSelectionModeFocus = value; + Invalidate(); + } + } + } + + private Color BackColorDarker { get; set; } + public Color SelectionUnfocused { get; private set; } + + private bool ApplicationIdle = false; + private bool once = true; + + public CustomDataGridView() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + BorderStyle = BorderStyle.FixedSingle; + EnableHeadersVisualStyles = false; + ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; + + ColumnHeadersBorder = true; + Application.Idle += Application_Idle; + RowsAdded += CustomDataGridView_RowsAdded; + GotFocus += CustomDataGridView_GotFocus; + LostFocus += CustomDataGridView_LostFocus; + HandleCreated += DataGridView_HandleCreated; + Invalidated += CustomDataGridView_Invalidated; + MouseEnter += CustomDataGridView_MouseEnter; + MouseUp += CustomDataGridView_MouseUp; + MouseDown += CustomDataGridView_MouseDown; + MouseMove += CustomDataGridView_MouseMove; + LocationChanged += CustomDataGridView_LocationChanged; + Move += CustomDataGridView_Move; + Scroll += DataGridView_Scroll; + GotFocus += DataGridView_GotFocus; + LostFocus += DataGridView_LostFocus; + EnabledChanged += DataGridView_EnabledChanged; + CellClick -= DataGridView_CellClick; + CellClick += DataGridView_CellClick; + CellPainting += DataGridView_CellPainting; + Paint += DataGridView_Paint; + EditingControlShowing += CustomDataGridView_EditingControlShowing; + + KeyDown += CustomDataGridView_KeyDown; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomDataGridView_RowsAdded(object? sender, DataGridViewRowsAddedEventArgs e) + { + if (sender is CustomDataGridView gv) + DataGridViewColor(gv); + } + + private void CustomDataGridView_GotFocus(object? sender, EventArgs e) + { + if (sender is CustomDataGridView gv) + DataGridViewColor(gv); + } + + private void CustomDataGridView_LostFocus(object? sender, EventArgs e) + { + if (sender is CustomDataGridView gv) + DataGridViewColor(gv); + } + + private void DataGridView_HandleCreated(object? sender, EventArgs e) + { + if (sender is null || e is null) + return; + BackColorDarker = mBackColor.ChangeBrightness(-0.3f); + SelectionUnfocused = mSelectionColor.ChangeBrightness(0.3f); + var gv = sender as DataGridView; + DataGridViewColor(gv); + gv.Invalidate(); + } + + private void CustomDataGridView_Invalidated(object? sender, InvalidateEventArgs e) + { + if (BackColor.DarkOrLight() == "Dark") + Methods.SetDarkControl(this); + } + + private void CustomDataGridView_MouseEnter(object? sender, EventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void CustomDataGridView_MouseUp(object? sender, MouseEventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void CustomDataGridView_MouseDown(object? sender, MouseEventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void CustomDataGridView_MouseMove(object? sender, MouseEventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void CustomDataGridView_LocationChanged(object? sender, EventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void CustomDataGridView_Move(object? sender, EventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void DataGridView_Scroll(object? sender, ScrollEventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void DataGridView_GotFocus(object? sender, EventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void DataGridView_LostFocus(object? sender, EventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void DataGridView_EnabledChanged(object? sender, EventArgs e) + { + var gv = sender as DataGridView; + gv.Invalidate(); + } + + private void DataGridViewColor(DataGridView? gv) + { + // Update Colors + BackColorDarker = GetBackColor().ChangeBrightness(-0.3f); + SelectionUnfocused = GetSelectionColor().ChangeBrightness(0.3f); + //OriginalColors = new Color[] { BackColor, ForeColor, BorderColor, SelectionColor, GridColor, CheckColor, BackColorDarker, SelectionUnfocused }; + + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color gridColor = GetGridColor(); + Color backColorDarker = BackColorDarker; + + gv.BackgroundColor = backColor; + gv.GridColor = gridColor; + gv.ColumnHeadersDefaultCellStyle.BackColor = backColorDarker; + gv.ColumnHeadersDefaultCellStyle.SelectionBackColor = backColorDarker; + gv.ColumnHeadersDefaultCellStyle.ForeColor = foreColor; + gv.ColumnHeadersDefaultCellStyle.SelectionForeColor = foreColor; + gv.DefaultCellStyle.BackColor = backColor; + gv.DefaultCellStyle.ForeColor = foreColor; + if (gv.Focused) + gv.DefaultCellStyle.SelectionBackColor = SelectionColor; + else + gv.DefaultCellStyle.SelectionBackColor = SelectionUnfocused; + gv.DefaultCellStyle.SelectionForeColor = foreColor; + gv.EnableHeadersVisualStyles = false; + if (ColumnHeadersBorder) + gv.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; + else + gv.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + } + private static void DataGridView_CellClick(object? sender, DataGridViewCellEventArgs e) + { + var gv = sender as DataGridView; + if (e.RowIndex >= 0 && e.ColumnIndex >= 0) + { + var cell = gv[e.ColumnIndex, e.RowIndex]; + if (cell.Value == DBNull.Value) + return; + + // DataGridViewCheckBoxCell + if (cell.GetType().ToString().Contains("CheckBox", StringComparison.OrdinalIgnoreCase)) + { + var checkBox = cell as DataGridViewCheckBoxCell; + if (cell.GetType().ToString().Contains("CheckBox", StringComparison.OrdinalIgnoreCase)) + { + if (checkBox.ThreeState) + { + if (cell.Value is null or "null") + { + cell.Value = false; + gv.UpdateCellValue(e.ColumnIndex, e.RowIndex); + gv.EndEdit(); + gv.InvalidateCell(cell); + } + else + { + bool cellValue = Convert.ToBoolean(cell.Value); + if (cellValue == true) + { + cell.Value = "null"; + gv.UpdateCellValue(e.ColumnIndex, e.RowIndex); + gv.EndEdit(); + gv.InvalidateCell(cell); + } + else + { + cell.Value = true; + gv.UpdateCellValue(e.ColumnIndex, e.RowIndex); + gv.EndEdit(); + gv.InvalidateCell(cell); + } + } + } + else + { + if (cell.Value is null) + cell.Value = false; + + if (cell.Value is not null) + { + bool cellValue = Convert.ToBoolean(cell.Value); + if (cellValue == true) + { + cell.Value = false; + gv.UpdateCellValue(e.ColumnIndex, e.RowIndex); + gv.EndEdit(); + gv.InvalidateCell(cell); + } + else + { + cell.Value = true; + gv.UpdateCellValue(e.ColumnIndex, e.RowIndex); + gv.EndEdit(); + gv.InvalidateCell(cell); + } + } + } + } + } + else + { + if (cell.Value is null or DBNull) + cell.Value = string.Empty; + } + + //// DataGridViewComboBoxCell + //if (cell.GetType().ToString().Contains("ComboBox", StringComparison.OrdinalIgnoreCase)) + //{ + + //} + + } + } + + private void DataGridView_CellPainting(object? sender, DataGridViewCellPaintingEventArgs e) + { + var gv = sender as DataGridView; + // Update Colors + DataGridViewColor(gv); + + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + Color gridColor = GetGridColor(); + Color checkColor = GetCheckColor(); + Color backColorDarker = BackColorDarker; + + if (ApplicationIdle == false) + return; + + if (e.RowIndex >= 0 && e.ColumnIndex >= 0) + { + var cell = gv[e.ColumnIndex, e.RowIndex]; + + // DataGridViewCheckBoxCell + if (cell.GetType().ToString().Contains("CheckBox", StringComparison.OrdinalIgnoreCase)) + { + if (cell.Value is DBNull) + cell.Value = false; + + Rectangle rectCell = gv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); + var checkBox = cell as DataGridViewCheckBoxCell; + e.Handled = true; + e.PaintBackground(rectCell, true); + + rectCell = new(rectCell.X, rectCell.Y, rectCell.Width - 2, rectCell.Height - 2); + int checkSize = 13; + checkSize = Math.Min(checkSize, rectCell.Width); + checkSize = Math.Min(checkSize, rectCell.Height); + int centerX = rectCell.X + rectCell.Width / 2 - checkSize / 2; + int centerY = rectCell.Y + rectCell.Height / 2 - checkSize / 2; + + rectCell = new(centerX, centerY, checkSize, checkSize); + + // Fill Check Rect + using SolidBrush brush1 = new(backColor); + e.Graphics.FillRectangle(brush1, rectCell); + + // Draw Check + if (cell.Value != DBNull.Value) + { + int rectCheck = rectCell.Height - 1; + if (rectCheck <= 0) + rectCheck = 1; + + if (rectCheck > 1) + { + if (cell.Value is null or "null") + { + if (checkBox.ThreeState) + { + // Draw Indeterminate + using SolidBrush sb = new(checkColor); + rectCell.Inflate(-2, -2); + e.Graphics.FillRectangle(sb, rectCell); + rectCell.Inflate(+2, +2); + } + } + else + { + if (cell.Value is null) + cell.Value = false; + + if (cell.Value is not null) + { + if (Convert.ToBoolean(cell.Value) == true) + { + // Draw Check + using var p = new Pen(checkColor, 2); + rectCell.Inflate(-2, -2); + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + e.Graphics.DrawLines(p, new Point[] { new Point(rectCell.Left, rectCell.Bottom - rectCell.Height / 2), new Point(rectCell.Left + rectCell.Width / 3, rectCell.Bottom), new Point(rectCell.Right, rectCell.Top) }); + e.Graphics.SmoothingMode = SmoothingMode.Default; + rectCell.Inflate(+2, +2); + } + } + } + } + } + + // Draw Check Rect (Check Border) + ControlPaint.DrawBorder(e.Graphics, rectCell, borderColor, ButtonBorderStyle.Solid); + } + + // DataGridViewComboBoxCell + if (cell.GetType().ToString().Contains("ComboBox", StringComparison.OrdinalIgnoreCase)) + { + Rectangle rectCell = gv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); + var comboBox = cell as DataGridViewComboBoxCell; + int myPadding = 10; + e.Handled = true; + e.PaintBackground(rectCell, true); + rectCell = new(rectCell.X, rectCell.Y, rectCell.Width - 1, rectCell.Height - 1); + + // Fill Background + using SolidBrush sb = new(backColor); + e.Graphics.FillRectangle(sb, rectCell); + + // Draw Border + using Pen p = new(gridColor, 1); + Rectangle modRect1 = new(rectCell.Left, rectCell.Top, rectCell.Width - 1, rectCell.Height - 1); + e.Graphics.DrawRectangle(p, modRect1); + + // Fill Arrow Button Back Color + using SolidBrush sb2 = new(backColorDarker); + rectCell = new(rectCell.X + 1, rectCell.Y, rectCell.Width - 1, rectCell.Height); + int x = (rectCell.X + rectCell.Width) - 15; + int y = rectCell.Y + 1; + int buttonWidth = (rectCell.X + rectCell.Width) - x - 1; + int buttonHeight = rectCell.Height - 2; + Rectangle modRect2 = new(x, y, buttonWidth, buttonHeight); + e.Graphics.FillRectangle(sb2, modRect2); + + // Draw Arrow Button Icon + var pth = new GraphicsPath(); + var TopLeft = new PointF(x + buttonWidth * 1 / 5, y + buttonHeight * 2 / 5); + var TopRight = new PointF(x + buttonWidth * 4 / 5, y + buttonHeight * 2 / 5); + var Bottom = new PointF(x + buttonWidth / 2, y + buttonHeight * 3 / 5); + pth.AddLine(TopLeft, TopRight); + pth.AddLine(TopRight, Bottom); + // Determine the Arrow's Color. + using SolidBrush arrowBrush = new(foreColor); + // Draw the Arrow + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + e.Graphics.FillPath(arrowBrush, pth); + e.Graphics.SmoothingMode = SmoothingMode.Default; + + var text = comboBox.Value != null ? comboBox.Value.ToString() : Text; + + using SolidBrush b = new(foreColor); + int padding = 2; + int arrowWidth = (int)(TopRight.X - TopLeft.X); + Rectangle modRect3 = new(rectCell.Left + padding, + rectCell.Top + padding, + rectCell.Width - arrowWidth - (myPadding / 2) - (padding * 2), + rectCell.Height - (padding * 2)); + + var stringFormat = new StringFormat + { + LineAlignment = StringAlignment.Center, + Alignment = StringAlignment.Near, + FormatFlags = StringFormatFlags.NoWrap, + Trimming = StringTrimming.EllipsisCharacter + }; + e.Graphics.DrawString(text, Font, b, modRect3, stringFormat); + } + + } + } + + private void DataGridView_Paint(object? sender, PaintEventArgs e) + { + var gv = sender as DataGridView; + // Update Colors + DataGridViewColor(gv); + + if (ApplicationIdle == false) + return; + + Rectangle rectGv = new(0, 0, ClientSize.Width, ClientSize.Height); + + Color borderColor = GetBorderColor(); + + if (BorderStyle == BorderStyle.FixedSingle) + ControlPaint.DrawBorder(e.Graphics, rectGv, borderColor, ButtonBorderStyle.Solid); + else if (BorderStyle == BorderStyle.Fixed3D) + { + Color secondBorderColor; + if (borderColor.DarkOrLight() == "Dark") + secondBorderColor = borderColor.ChangeBrightness(0.6f); + else + secondBorderColor = borderColor.ChangeBrightness(-0.6f); + + Rectangle rect3D = rectGv; + ControlPaint.DrawBorder(e.Graphics, rect3D, secondBorderColor, ButtonBorderStyle.Solid); + + rect3D = new(rectGv.X + 1, rectGv.Y + 1, rectGv.Width - 1, rectGv.Height - 1); + ControlPaint.DrawBorder(e.Graphics, rect3D, secondBorderColor, ButtonBorderStyle.Solid); + + rect3D = new(rectGv.X, rectGv.Y, rectGv.Width - 1, rectGv.Height - 1); + ControlPaint.DrawBorder(e.Graphics, rect3D, borderColor, ButtonBorderStyle.Solid); + } + } + + private void CustomDataGridView_EditingControlShowing(object? sender, DataGridViewEditingControlShowingEventArgs e) + { + //if (sender is CheckBox checkBox) + //{ + // if (checkBox.CheckState == CheckState.Indeterminate) + + //} + } + + private void CustomDataGridView_KeyDown(object? sender, KeyEventArgs e) + { + var dgv = sender as DataGridView; + if (SelectionModeFocus && SelectionMode == DataGridViewSelectionMode.FullRowSelect) + { + if (dgv.Rows.Count == 0) return; + int currentRow = dgv.CurrentCell.RowIndex; + + if (e.KeyCode == Keys.Tab) + { + if (currentRow + 1 < dgv.Rows.Count && dgv.Rows[currentRow].Cells.Count > 0) + { + e.SuppressKeyPress = true; + + currentRow++; + dgv.Rows[currentRow].Cells[0].Selected = true; + dgv.Rows[currentRow].Selected = true; + } + else + { + Control ctl; + ctl = (Control)sender; + ctl.SelectNextControl(GetNextControl(ctl, true), true, false, true, true); + } + } + + if (e.KeyCode == Keys.Space || e.KeyCode == Keys.Right || e.KeyCode == Keys.Left) + { + if (dgv.Rows[currentRow].Cells.Count > 0) + { + e.SuppressKeyPress = true; + int cellN = 0; + for (int n = 0; n < dgv.Rows[currentRow].Cells.Count; n++) + { + var cell = dgv.Rows[currentRow].Cells[n]; + if (cell.GetType().ToString().Contains("CheckBox", StringComparison.OrdinalIgnoreCase)) + { + cellN = n; + cell.Selected = true; + dgv.Rows[currentRow].Selected = true; + } + } + dgv.Rows[currentRow].Cells[cellN].Selected = true; + dgv.Rows[currentRow].Selected = true; + } + } + + + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + private Color GetSelectionColor() + { + if (Enabled) + return SelectionColor; + else + { + if (SelectionColor.DarkOrLight() == "Dark") + return SelectionColor.ChangeBrightness(0.3f); + else + return SelectionColor.ChangeBrightness(-0.3f); + } + } + + private Color GetGridColor() + { + if (Enabled) + return GridColor; + else + { + if (GridColor.DarkOrLight() == "Dark") + return GridColor.ChangeBrightness(0.3f); + else + return GridColor.ChangeBrightness(-0.3f); + } + } + + private Color GetCheckColor() + { + if (Enabled) + return CheckColor; + else + { + if (CheckColor.DarkOrLight() == "Dark") + return CheckColor.ChangeBrightness(0.3f); + else + return CheckColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomGroupBox.cs b/MsmhTools/CustomControls/CustomGroupBox.cs new file mode 100644 index 0000000..e0b8a34 --- /dev/null +++ b/MsmhTools/CustomControls/CustomGroupBox.cs @@ -0,0 +1,322 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, May 01, 2022. +*/ + +namespace CustomControls +{ + public class CustomGroupBox : GroupBox + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new FlatStyle FlatStyle { get; set; } + + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public override Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private bool ApplicationIdle = false; + private bool once = true; + + private Point GetPoint = new(0, 0); + private string GetName = string.Empty; + + public CustomGroupBox() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + FlatStyle = FlatStyle.Flat; + + Application.Idle += Application_Idle; + HandleCreated += CustomGroupBox_HandleCreated; + LocationChanged += CustomGroupBox_LocationChanged; + Move += CustomGroupBox_Move; + ControlAdded += CustomGroupBox_ControlAdded; + ControlRemoved += CustomGroupBox_ControlRemoved; + Enter += CustomGroupBox_Enter; + MouseEnter += CustomGroupBox_MouseEnter; + MouseLeave += CustomGroupBox_MouseLeave; + ParentChanged += CustomGroupBox_ParentChanged; + Resize += CustomGroupBox_Resize; + SizeChanged += CustomGroupBox_SizeChanged; + EnabledChanged += CustomGroupBox_EnabledChanged; + Paint += CustomGroupBox_Paint; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null && !DesignMode) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + if (GetPoint != PointToScreen(Location) && GetName == Name) + { + if (Parent != null) + { + Control topParent = FindForm(); + if (topParent.Visible && Visible) + { + Debug.WriteLine("Top Parent of " + Name + " is " + topParent.Name); + topParent.Refresh(); // Needed when there are many GroupBoxes. + } + } + } + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomGroupBox_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomGroupBox_LocationChanged(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_Move(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_ControlAdded(object? sender, ControlEventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_ControlRemoved(object? sender, ControlEventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_Enter(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_MouseEnter(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_MouseLeave(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_ParentChanged(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_Resize(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_SizeChanged(object? sender, EventArgs e) + { + if (sender is GroupBox groupBox) + groupBox.Invalidate(); + } + + private void CustomGroupBox_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomGroupBox_Paint(object? sender, PaintEventArgs e) + { + if (ApplicationIdle == false) + return; + + GetPoint = PointToScreen(Location); + GetName = Name; + + if (sender is GroupBox box) + { + Color backColor = GetBackColor(box); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + + SizeF strSize = e.Graphics.MeasureString(box.Text, box.Font); + Rectangle rect = new(box.ClientRectangle.X, + box.ClientRectangle.Y + (int)(strSize.Height / 2), + box.ClientRectangle.Width - 1, + box.ClientRectangle.Height - (int)(strSize.Height / 2) - 1); + + e.Graphics.Clear(backColor); + + // Draw Text + using SolidBrush sbForeColor = new(foreColor); + // Draw Border + using Pen penBorder = new(borderColor); + + if (box.RightToLeft == RightToLeft.Yes) + { + // Draw Text + e.Graphics.DrawString(box.Text, box.Font, sbForeColor, box.Width - (box.Padding.Left + 1) - strSize.Width, 0); + // Draw Border TopLeft + e.Graphics.DrawLine(penBorder, new Point(rect.X, rect.Y), new Point((rect.X + rect.Width) - (box.Padding.Left + 1) - (int)strSize.Width, rect.Y)); + // Draw Border TopRight + e.Graphics.DrawLine(penBorder, new Point((rect.X + rect.Width) - (box.Padding.Left + 1), rect.Y), new Point(rect.X + rect.Width, rect.Y)); + } + else + { + // Draw Text + e.Graphics.DrawString(box.Text, box.Font, sbForeColor, (box.Padding.Left + 1), 0); + // Draw Border TopLeft + e.Graphics.DrawLine(penBorder, new Point(rect.X, rect.Y), new Point(rect.X + (box.Padding.Left + 1), rect.Y)); + // Draw Border TopRight + e.Graphics.DrawLine(penBorder, new Point(rect.X + (box.Padding.Left + 1) + (int)strSize.Width, rect.Y), new Point(rect.X + rect.Width, rect.Y)); + } + + // Draw Border Left + e.Graphics.DrawLine(penBorder, rect.Location, new Point(rect.X, rect.Y + rect.Height)); + // Draw Border Bottom + e.Graphics.DrawLine(penBorder, new Point(rect.X, rect.Y + rect.Height), new Point(rect.X + rect.Width, rect.Y + rect.Height)); + // Draw Border Right + e.Graphics.DrawLine(penBorder, new Point(rect.X + rect.Width, rect.Y), new Point(rect.X + rect.Width, rect.Y + rect.Height)); + + } + } + + private Color GetBackColor(GroupBox groupBox) + { + if (groupBox.Enabled) + return BackColor; + else + { + if (groupBox.Parent != null) + { + if (groupBox.Parent.Enabled == false) + return GetDisabledColor(); + else + return GetDisabledColor(); + } + else + { + return GetDisabledColor(); + } + + Color GetDisabledColor() + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomInputBox.cs b/MsmhTools/CustomControls/CustomInputBox.cs new file mode 100644 index 0000000..ed1f2b6 --- /dev/null +++ b/MsmhTools/CustomControls/CustomInputBox.cs @@ -0,0 +1,772 @@ +using MsmhTools; +using System.Runtime.InteropServices; +/* + * Copyright MSasanMH, May 13, 2022. + * Needs CustomButton. + */ + +namespace CustomControls +{ + public class CustomInputBox : Form + { + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + private extern static int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string? pszSubIdList); + + // Make CustomInputBox movable. + private const int WM_NCLBUTTONDOWN = 0xA1; + private const int HT_CAPTION = 0x2; + [DllImport("user32.dll")] + private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + [DllImport("user32.dll")] + private static extern bool ReleaseCapture(); + + static CustomTextBox inputTextBox = new(); + static DialogResult dialogResult; + public new static Color BackColor { get; set; } + public new static Color ForeColor { get; set; } + public static Color BorderColor { get; set; } + + private static int ImageBox(int iconOffset, Icon icon, Panel textPanel) + { + PictureBox pb = new(); + pb.Image = icon.ToBitmap(); + pb.Size = icon.Size; + pb.Location = new(iconOffset, textPanel.Height / 2 - pb.Height / 2); + textPanel.Controls.Add(pb); + return pb.Height; + } + + public CustomInputBox(ref string input, string text, bool multiline, string? caption, MessageBoxIcon? icon, int? addWidth, int? addHeight) : base() + { + MessageBoxButtons buttons = MessageBoxButtons.OKCancel; + + if (addWidth == null) + addWidth = 0; + if (addHeight == null) + addHeight = 0; + + FormBorderStyle = FormBorderStyle.None; + ShowInTaskbar = false; + StartPosition = FormStartPosition.CenterParent; + int iconOffset = 5; + int buttonOffset = 5; + int testLabelOffset = iconOffset; + Rectangle screen = Screen.FromControl(this).Bounds; + + // Box Size (Auto) + ////// Box Width + AutoSize = false; + int maxWidth = 400; + int minWidth = 140; // Shouldn't be smaller than 140. + Size computeSize = TextRenderer.MeasureText(text, DefaultFont); + int mWidth = computeSize.Width + 30; + int iconWidth = 32; + if (icon != null && icon != MessageBoxIcon.None) + { + mWidth += iconWidth + iconOffset; + testLabelOffset = iconWidth - iconOffset * 2; + } + int buttonWidth = 75; + if (buttons == MessageBoxButtons.OK) + { + int previousWidth = mWidth; + mWidth = buttonWidth + buttonOffset * 2; + mWidth = Math.Max(previousWidth, mWidth); + mWidth += buttonOffset; + } + else if (buttons == MessageBoxButtons.OKCancel || buttons == MessageBoxButtons.YesNo || buttons == MessageBoxButtons.RetryCancel) + { + int previousWidth = mWidth; + mWidth = buttonWidth * 2 + buttonOffset * 3; + mWidth = Math.Max(previousWidth, mWidth); + mWidth += buttonOffset; + } + else if (buttons == MessageBoxButtons.AbortRetryIgnore || buttons == MessageBoxButtons.YesNoCancel || buttons == MessageBoxButtons.CancelTryContinue) + { + int previousWidth = mWidth; + mWidth = buttonWidth * 3 + buttonOffset * 4; + mWidth = Math.Max(previousWidth, mWidth); + mWidth += buttonOffset; + } + mWidth = Math.Min(maxWidth, mWidth); + mWidth = Math.Max(minWidth, mWidth); + + ////// Box Height + int minHeight = 130; + int maxHeight = screen.Height - 50; + Label testLabel = new(); + testLabel.AutoSize = true; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabel.TextAlign = ContentAlignment.MiddleLeft; + testLabel.Text = text; + Size testLabelSize = testLabel.GetPreferredSize(Size.Empty); + int iconHeight; + if (icon == null || icon == MessageBoxIcon.None) + iconHeight = 0; + else + iconHeight = 32; + int mHeight; + if (multiline) + mHeight = testLabelSize.Height * 5 + 100 + iconHeight; + else + mHeight = testLabelSize.Height * 3 / 2 + 110; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + if (multiline) + mHeight = testLabelSize.Height * 5 + 100 + iconHeight; + else + mHeight = testLabelSize.Height * 3 / 2 + 110; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + if (multiline) + mHeight = testLabelSize.Height * 5 + 100 + iconHeight; + else + mHeight = testLabelSize.Height * 3 / 2 + 110; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + if (multiline) + mHeight = testLabelSize.Height * 5 + 100 + iconHeight; + else + mHeight = testLabelSize.Height * 3 / 2 + 110; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + if (multiline) + mHeight = testLabelSize.Height * 5 + 100 + iconHeight; + else + mHeight = testLabelSize.Height * 3 / 2 + 110; + mHeight = Math.Max(minHeight, mHeight); + if (mWidth > screen.Width) + { + mWidth = screen.Width; + mHeight = maxHeight; + } + } + } + } + } + Size = new(mWidth + (int)addWidth, mHeight + (int)addHeight); + + // Rectangle + Rectangle rect = new(ClientRectangle.X + 1, ClientRectangle.Y + 1, ClientRectangle.Width - 2, ClientRectangle.Height - 2); + int buttonPanelHeight = 30; + int titlePanelHeight = 25; + Paint += CustomMessageBox_Paint; + MouseDown += CustomMessageBox_MouseDown; + Move += CustomMessageBox_Move; + + // Title (Caption) + if (caption != null) + { + Label titleLabel = new(); + titleLabel.AutoSize = true; + titleLabel.TextAlign = ContentAlignment.MiddleLeft; + titleLabel.Text = caption; + titleLabel.BackColor = BackColor; + titleLabel.ForeColor = ForeColor; + titleLabel.Location = new(2, rect.Y + titlePanelHeight / 2 - titleLabel.GetPreferredSize(Size.Empty).Height / 2); + Controls.Add(titleLabel); + } + + // Text Body Panel + Panel textPanel = new(); + textPanel.BackColor = BackColor; + textPanel.ForeColor = ForeColor; + textPanel.BorderStyle = BorderStyle.None; + textPanel.Margin = new Padding(0); + textPanel.Location = new(rect.X, titlePanelHeight); + if (multiline) + { + if (icon == null || icon == MessageBoxIcon.None) + textPanel.Size = new(rect.Width, (rect.Height - titlePanelHeight - buttonPanelHeight) / 5); + else + textPanel.Size = new(rect.Width, (rect.Height - titlePanelHeight - buttonPanelHeight) / 4); + } + else + textPanel.Size = new(rect.Width, (rect.Height - titlePanelHeight - buttonPanelHeight) * 2 / 3); + textPanel.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + Controls.Add(textPanel); + + // Input Panel + Panel inputPanel = new(); + inputPanel.BackColor = BackColor; + inputPanel.ForeColor = ForeColor; + inputPanel.BorderStyle = BorderStyle.None; + inputPanel.Margin = new Padding(0); + inputPanel.Location = new(rect.X, titlePanelHeight + textPanel.Height); + if (multiline) + { + if (icon == null || icon == MessageBoxIcon.None) + inputPanel.Size = new(rect.Width, (rect.Height - titlePanelHeight - buttonPanelHeight) * 4 / 5); + else + inputPanel.Size = new(rect.Width, (rect.Height - titlePanelHeight - buttonPanelHeight) * 3 / 4); + } + else + inputPanel.Size = new(rect.Width, (rect.Height - titlePanelHeight - buttonPanelHeight) / 3); + inputPanel.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + Controls.Add(inputPanel); + + // Enum MessageBoxIcon + if (icon != null) + { + iconOffset = 5; + if (icon == MessageBoxIcon.Asterisk) + { + Icon ic = new(SystemIcons.Asterisk, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Error) + { + Icon ic = new(SystemIcons.Error, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Exclamation) + { + Icon ic = new(SystemIcons.Exclamation, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Hand) + { + Icon ic = new(SystemIcons.Hand, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Information) + { + Icon ic = new(SystemIcons.Information, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.None) + { + // Do Nothing + } + else if (icon == MessageBoxIcon.Question) + { + Icon ic = new(SystemIcons.Question, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Stop) + { + Icon ic = new(SystemIcons.Error, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Warning) + { + Icon ic = new(SystemIcons.Warning, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + } + + // Text Body Label + Label textLabel = new(); + textLabel.AutoSize = true; + textLabel.MaximumSize = new Size(rect.Width - iconOffset, 0); + textLabel.TextAlign = ContentAlignment.MiddleLeft; + textLabel.Text = text; + Size textLabelSize = textLabel.GetPreferredSize(Size.Empty); + textLabel.Location = new(iconOffset, textPanel.Height / 2 - textLabelSize.Height / 2); + textPanel.Controls.Add(textLabel); + + // Input Label + inputTextBox = new(); + inputTextBox.Text = input; + if (multiline == false) + { + inputTextBox.Size = new Size(rect.Width - (5 * 2), inputTextBox.Height); + inputTextBox.MaximumSize = new Size(rect.Width - (5 * 2), 0); + Size inputLabelSize = inputTextBox.GetPreferredSize(Size.Empty); + inputTextBox.Location = new(5, inputPanel.Height / 2 - inputLabelSize.Height / 2); + } + else + { + inputTextBox.Multiline = true; + inputTextBox.ScrollBars = ScrollBars.Vertical; + inputTextBox.Size = new Size(rect.Width - (5 * 2), inputPanel.Height); + inputTextBox.MaximumSize = new Size(rect.Width - (5 * 2), inputPanel.Height); + inputTextBox.Location = new(5, 0); + } + inputPanel.Controls.Add(inputTextBox); + + // Button + Panel buttonPanel = new(); + buttonPanel.BackColor = BackColor.ChangeBrightness(-0.2f); + buttonPanel.ForeColor = ForeColor; + buttonPanel.BorderStyle = BorderStyle.None; + buttonPanel.Margin = new Padding(0); + buttonPanel.Location = new(rect.X, Height - buttonPanelHeight - 1); // 1 is bottom border + buttonPanel.Size = new(rect.Width, buttonPanelHeight); + buttonPanel.Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right; + Controls.Add(buttonPanel); + + // Enum DialogResult + if (buttons == MessageBoxButtons.AbortRetryIgnore) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + CustomButton btn3 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Abort"; + btn1.DialogResult = DialogResult.Abort; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Abort; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Retry"; + btn2.DialogResult = DialogResult.Retry; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Retry; + }; + buttonPanel.Controls.Add(btn2); + + btn3.Location = new(rect.Width - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn3.Height / 2); + btn3.Text = "Ignore"; + btn3.DialogResult = DialogResult.Ignore; + btn3.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Ignore; + }; + buttonPanel.Controls.Add(btn3); + + if (multiline == false) + { + AcceptButton = btn2; + CancelButton = btn1; + } + } + else if (buttons == MessageBoxButtons.CancelTryContinue) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + CustomButton btn3 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Cancel"; + btn1.DialogResult = DialogResult.Cancel; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Try Again"; + btn2.DialogResult = DialogResult.TryAgain; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.TryAgain; + }; + buttonPanel.Controls.Add(btn2); + + btn3.Location = new(rect.Width - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn3.Height / 2); + btn3.Text = "Continue"; + btn3.DialogResult = DialogResult.Continue; + btn3.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Continue; + }; + buttonPanel.Controls.Add(btn3); + + if (multiline == false) + { + AcceptButton = btn2; + CancelButton = btn1; + } + } + else if (buttons == MessageBoxButtons.OK) + { + CustomButton btn1 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "OK"; + btn1.DialogResult = DialogResult.OK; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.OK; + }; + buttonPanel.Controls.Add(btn1); + + if (multiline == false) + { + AcceptButton = btn1; + } + } + else if (buttons == MessageBoxButtons.OKCancel) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "OK"; + btn1.DialogResult = DialogResult.OK; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.OK; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Cancel"; + btn2.DialogResult = DialogResult.Cancel; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn2); + + if (multiline == false) + { + AcceptButton = btn1; + CancelButton = btn2; + } + } + else if (buttons == MessageBoxButtons.RetryCancel) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Retry"; + btn1.DialogResult = DialogResult.Retry; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Retry; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Cancel"; + btn2.DialogResult = DialogResult.Cancel; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn2); + + if (multiline == false) + { + AcceptButton = btn1; + CancelButton = btn2; + } + } + else if (buttons == MessageBoxButtons.YesNo) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Yes"; + btn1.DialogResult = DialogResult.Yes; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Yes; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "No"; + btn2.DialogResult = DialogResult.No; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.No; + }; + buttonPanel.Controls.Add(btn2); + + if (multiline == false) + { + AcceptButton = btn1; + CancelButton = btn2; + } + } + else if (buttons == MessageBoxButtons.YesNoCancel) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + CustomButton btn3 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Yes"; + btn1.DialogResult = DialogResult.Yes; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Yes; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "No"; + btn2.DialogResult = DialogResult.No; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.No; + }; + buttonPanel.Controls.Add(btn2); + + btn3.Location = new(rect.Width - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn3.Height / 2); + btn3.Text = "Cancel"; + btn3.DialogResult = DialogResult.Cancel; + btn3.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn3); + + if (multiline == false) + { + AcceptButton = btn1; + CancelButton = btn3; + } + } + + // Set CustomTextBox and CustomButton Colors + var cs = Controllers.GetAllControls(this); + foreach (Control c in cs) + { + if (c is CustomTextBox customTextBox) + { + if (BackColor.DarkOrLight() == "Dark") + { + _ = SetWindowTheme(customTextBox.Handle, "DarkMode_Explorer", null); + foreach (Control ctb in customTextBox.Controls) + { + _ = SetWindowTheme(ctb.Handle, "DarkMode_Explorer", null); + } + } + customTextBox.BackColor = BackColor; + customTextBox.ForeColor = ForeColor; + customTextBox.BorderColor = BorderColor; + customTextBox.Invalidate(); + } + else if (c is CustomButton customButton) + { + customButton.BackColor = BackColor; + customButton.ForeColor = ForeColor; + customButton.BorderColor = BorderColor; + customButton.SelectionColor = BorderColor; + customButton.Invalidate(); + } + } + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, null, null, null, null); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// Add amount to width. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, int addWidth) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, null, null, addWidth, null); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// Add amount to width. + /// Add amount to height. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, int addWidth, int addHeight) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, null, null, addWidth, addHeight); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// The text to display in the title bar of the input box. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, string caption) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, caption, null, null, null); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// The text to display in the title bar of the input box. + /// Add amount to width. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, string caption, int addWidth) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, caption, null, addWidth, null); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// The text to display in the title bar of the input box. + /// Add amount to width. + /// Add amount to height. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, string caption, int addWidth, int addHeight) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, caption, null, addWidth, addHeight); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// The text to display in the title bar of the input box. + /// One of the System.Windows.Forms.MessageBoxIcon values that specifies which icon to display in the input box. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, string caption, MessageBoxIcon icon) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, caption, icon, null, null); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// The text to display in the title bar of the input box. + /// One of the System.Windows.Forms.MessageBoxIcon values that specifies which icon to display in the input box. + /// Add amount to width. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, string caption, MessageBoxIcon icon, int addWidth) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, caption, icon, addWidth, null); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + /// Displays a prompt in a dialog box, waits for the user to input text or click a button. + /// + /// Update a String containing the contents of the text box. + /// The text to display in the input box. + /// TextBox multiline. + /// The text to display in the title bar of the input box. + /// One of the System.Windows.Forms.MessageBoxIcon values that specifies which icon to display in the input box. + /// Add amount to width. + /// Add amount to height. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(ref string input, string text, bool multiline, string caption, MessageBoxIcon icon, int addWidth, int addHeight) + { + // using construct ensures the resources are freed when form is closed. + using CustomInputBox form = new(ref input, text, multiline, caption, icon, addWidth, addHeight); + form.ShowDialog(); + input = inputTextBox.Text; + return dialogResult; + } + + private void CustomMessageBox_Paint(object? sender, PaintEventArgs e) + { + Rectangle rect = new(e.ClipRectangle.X, e.ClipRectangle.Y, e.ClipRectangle.Width - 1, e.ClipRectangle.Height - 1); + Graphics g = e.Graphics; + + // Fill BackColor (Static) + using SolidBrush sb = new(BackColor); + g.FillRectangle(sb, rect); + + // Draw Border + using Pen pen = new(BorderColor); + g.DrawRectangle(pen, rect); + } + + private void CustomMessageBox_MouseDown(object? sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + ReleaseCapture(); + _ = SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + Invalidate(); + } + } + + private void CustomMessageBox_Move(object? sender, EventArgs e) + { + Invalidate(); + var cs = Controllers.GetAllControls(this); + foreach (Control c in cs) + c.Invalidate(); + } + + } +} diff --git a/MsmhTools/CustomControls/CustomInputBox.resx b/MsmhTools/CustomControls/CustomInputBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MsmhTools/CustomControls/CustomInputBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/MsmhTools/CustomControls/CustomLabel.cs b/MsmhTools/CustomControls/CustomLabel.cs new file mode 100644 index 0000000..027b57f --- /dev/null +++ b/MsmhTools/CustomControls/CustomLabel.cs @@ -0,0 +1,382 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; + +namespace CustomControls +{ + public class CustomLabel : Label + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public override BorderStyle BorderStyle { get; set; } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private bool mBorder = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border")] + public bool Border + { + get { return mBorder; } + set + { + if (mBorder != value) + { + mBorder = value; + Invalidate(); + } + } + } + + private int mRoundedCorners = 0; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Rounded Corners")] + public int RoundedCorners + { + get { return mRoundedCorners; } + set + { + if (mRoundedCorners != value) + { + mRoundedCorners = value; + Invalidate(); + } + } + } + + private bool once = true; + + public CustomLabel() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + // Default + FlatStyle = FlatStyle.Flat; + BackColor = Color.DimGray; + ForeColor = Color.White; + + Application.Idle += Application_Idle; + HandleCreated += CustomLabel_HandleCreated; + RightToLeftChanged += CustomLabel_RightToLeftChanged; + LocationChanged += CustomLabel_LocationChanged; + Move += CustomLabel_Move; + EnabledChanged += CustomLabel_EnabledChanged; + Paint += CustomLabel_Paint; + } + + private void Application_Idle(object? sender, EventArgs e) + { + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Parent.BackColorChanged += Parent_BackColorChanged; + Invalidate(); + once = false; + } + } + } + + private void Parent_BackColorChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomLabel_HandleCreated(object? sender, EventArgs e) + { + if (sender is Label label) + label.Invalidate(); + } + + private void CustomLabel_RightToLeftChanged(object? sender, EventArgs e) + { + if (sender is Label label) + label.Refresh(); + } + + private void CustomLabel_LocationChanged(object? sender, EventArgs e) + { + if (sender is Label label) + label.Invalidate(); + } + + private void CustomLabel_Move(object? sender, EventArgs e) + { + if (sender is Label label) + label.Invalidate(); + } + + private void CustomLabel_EnabledChanged(object? sender, EventArgs e) + { + if (sender is Label label) + label.Invalidate(); + } + + private void CustomLabel_Paint(object? sender, PaintEventArgs e) + { + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + BorderStyle = BorderStyle.FixedSingle; + + // Paint Background + if (Parent != null) + { + e.Graphics.Clear(Parent.BackColor); + if (Parent.BackColor == Color.Transparent) + if (Parent is TabPage tabPage) + { + if (tabPage.Parent is CustomTabControl customTabControl) + { + e.Graphics.Clear(customTabControl.BackColor); + } + else if (tabPage.Parent is TabControl tabControl) + { + e.Graphics.Clear(tabControl.BackColor); + } + } + } + else + e.Graphics.Clear(backColor); + + + if (AutoSize) + Size = e.Graphics.MeasureString(Text, Font).ToSize(); + + Rectangle rect = new(0, 0, ClientRectangle.Width - 1, ClientRectangle.Height - 1); + + // Paint Label Background + using SolidBrush sbBG = new(backColor); + e.Graphics.FillRoundedRectangle(sbBG, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + + // Paint Image + if (Image != null) + { + Rectangle rectImage = new(0, 0, Image.Width, Image.Height); + int pad = 2; + int top = rect.Y + pad; + int bottom = rect.Y + (rect.Height - rectImage.Height) - pad; + int left = rect.X + pad; + int right = rect.X + (rect.Width - rectImage.Width) - pad; + int centerX = rect.X + ((rect.Width - rectImage.Width) / 2); + int centerY = rect.Y + ((rect.Height - rectImage.Height) / 2); + if (RightToLeft == RightToLeft.No) + { + if (ImageAlign == ContentAlignment.BottomCenter) + rectImage.Location = new(centerX, bottom); + else if (ImageAlign == ContentAlignment.BottomLeft) + rectImage.Location = new(left, bottom); + else if (ImageAlign == ContentAlignment.BottomRight) + rectImage.Location = new(right, bottom); + else if (ImageAlign == ContentAlignment.MiddleCenter) + rectImage.Location = new(centerX, centerY); + else if (ImageAlign == ContentAlignment.MiddleLeft) + rectImage.Location = new(left, centerY); + else if (ImageAlign == ContentAlignment.MiddleRight) + rectImage.Location = new(right, centerY); + else if (ImageAlign == ContentAlignment.TopCenter) + rectImage.Location = new(centerX, top); + else if (ImageAlign == ContentAlignment.TopLeft) + rectImage.Location = new(left, top); + else if (ImageAlign == ContentAlignment.TopRight) + rectImage.Location = new(right, top); + else + rectImage.Location = new(centerX, centerY); + } + else + { + if (ImageAlign == ContentAlignment.BottomCenter) + rectImage.Location = new(centerX, bottom); + else if (ImageAlign == ContentAlignment.BottomLeft) + rectImage.Location = new(right, bottom); + else if (ImageAlign == ContentAlignment.BottomRight) + rectImage.Location = new(left, bottom); + else if (ImageAlign == ContentAlignment.MiddleCenter) + rectImage.Location = new(centerX, centerY); + else if (ImageAlign == ContentAlignment.MiddleLeft) + rectImage.Location = new(right, centerY); + else if (ImageAlign == ContentAlignment.MiddleRight) + rectImage.Location = new(left, centerY); + else if (ImageAlign == ContentAlignment.TopCenter) + rectImage.Location = new(centerX, top); + else if (ImageAlign == ContentAlignment.TopLeft) + rectImage.Location = new(right, top); + else if (ImageAlign == ContentAlignment.TopRight) + rectImage.Location = new(left, top); + else + rectImage.Location = new(centerX, centerY); + } + + e.Graphics.DrawImage(Image, rectImage); + } + + // Paint Label Text + TextFormatFlags flags; + + if (RightToLeft == RightToLeft.No) + { + if (TextAlign == ContentAlignment.BottomCenter) + flags = TextFormatFlags.Bottom | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.BottomLeft) + flags = TextFormatFlags.Bottom | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.BottomRight) + flags = TextFormatFlags.Bottom | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.MiddleCenter) + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + else if (TextAlign == ContentAlignment.MiddleLeft) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.MiddleRight) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.TopCenter) + flags = TextFormatFlags.Top | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.TopLeft) + flags = TextFormatFlags.Top | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.TopRight) + flags = TextFormatFlags.Top | TextFormatFlags.Right; + else + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + } + else + { + if (TextAlign == ContentAlignment.BottomCenter) + flags = TextFormatFlags.Bottom | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.BottomLeft) + flags = TextFormatFlags.Bottom | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.BottomRight) + flags = TextFormatFlags.Bottom | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.MiddleCenter) + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + else if (TextAlign == ContentAlignment.MiddleLeft) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.MiddleRight) + flags = TextFormatFlags.VerticalCenter | TextFormatFlags.Left; + else if (TextAlign == ContentAlignment.TopCenter) + flags = TextFormatFlags.Top | TextFormatFlags.HorizontalCenter; + else if (TextAlign == ContentAlignment.TopLeft) + flags = TextFormatFlags.Top | TextFormatFlags.Right; + else if (TextAlign == ContentAlignment.TopRight) + flags = TextFormatFlags.Top | TextFormatFlags.Left; + else + flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter; + + flags |= TextFormatFlags.RightToLeft; + } + + TextRenderer.DrawText(e.Graphics, Text, Font, rect, foreColor, flags); + + // Paint Label Border + using Pen penB = new(borderColor); + using Pen penNB = new(backColor); + if (Border) + e.Graphics.DrawRoundedRectangle(penB, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + else if (!Border) + e.Graphics.DrawRoundedRectangle(penNB, rect, RoundedCorners, RoundedCorners, RoundedCorners, RoundedCorners); + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + Color backColor = BackColor; + if (Parent != null) + { + if (Parent.BackColor != Color.Transparent) + { + if (Parent.Enabled) + backColor = Parent.BackColor; + else + backColor = GetDisabledColor(Parent.BackColor); + } + else + { + if (FindForm() != null) + { + if (Parent.Enabled) + backColor = FindForm().BackColor; + else + backColor = GetDisabledColor(FindForm().BackColor); + } + } + } + return backColor; + } + + static Color GetDisabledColor(Color color) + { + if (color.DarkOrLight() == "Dark") + return color.ChangeBrightness(0.3f); + else + return color.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomMenuStrip.cs b/MsmhTools/CustomControls/CustomMenuStrip.cs new file mode 100644 index 0000000..931d158 --- /dev/null +++ b/MsmhTools/CustomControls/CustomMenuStrip.cs @@ -0,0 +1,250 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 20, 2022. +*/ + +namespace CustomControls +{ + public class CustomMenuStrip : MenuStrip + { + private readonly CustomToolStripRenderer MyRenderer = new(); + + private bool mBorder = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border")] + public bool Border + { + get { return mBorder; } + set + { + if (mBorder != value) + { + mBorder = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + BorderColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + SelectionColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + private bool mSameColorForSubItems = true; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Same Color For Sub Items")] + public bool SameColorForSubItems + { + get { return mSameColorForSubItems; } + set + { + if (mSameColorForSubItems != value) + { + mSameColorForSubItems = value; + SameColorForSubItemsChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Action"), Description("Same Color For Sub Items Changed Event")] + public event EventHandler? SameColorForSubItemsChanged; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Border Color Changed Event")] + public event EventHandler? BorderColorChanged; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Selection Color Changed Event")] + public event EventHandler? SelectionColorChanged; + + public CustomMenuStrip() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + + MyRenderer.BackColor = GetBackColor(); + MyRenderer.ForeColor = GetForeColor(); + MyRenderer.BorderColor = GetBorderColor(); + MyRenderer.SelectionColor = SelectionColor; + Renderer = MyRenderer; + + BackColorChanged += CustomMenuStrip_BackColorChanged; + ForeColorChanged += CustomMenuStrip_ForeColorChanged; + BorderColorChanged += CustomMenuStrip_BorderColorChanged; + SelectionColorChanged += CustomMenuStrip_SelectionColorChanged; + SameColorForSubItemsChanged += CustomMenuStrip_SameColorForSubItemsChanged; + ItemAdded += CustomMenuStrip_ItemAdded; + Paint += CustomMenuStrip_Paint; + + var timer = new System.Windows.Forms.Timer(); + timer.Interval = 500; + timer.Tick += (s, e) => + { + if (SameColorForSubItems) + ColorForSubItems(); + }; + timer.Start(); + } + + private void ColorForSubItems() + { + for (int a = 0; a < Items.Count; a++) + { + ToolStripItem toolStripItem = Items[a]; + var toolStripItems = Controllers.GetAllToolStripItems(toolStripItem); + for (int b = 0; b < toolStripItems.Count(); b++) + { + ToolStripItem? tsi = toolStripItems.ToList()[b]; + if (tsi is ToolStripMenuItem) + { + if (tsi is ToolStripMenuItem tsmi) + { + tsmi.BackColor = GetBackColor(); + tsmi.ForeColor = GetForeColor(); + } + } + else if (tsi is ToolStripSeparator) + { + if (tsi is ToolStripSeparator tss) + { + tss.BackColor = GetBackColor(); + tss.ForeColor = BorderColor; + } + } + } + } + + } + + private void CustomMenuStrip_BackColorChanged(object? sender, EventArgs e) + { + MyRenderer.BackColor = GetBackColor(); + Invalidate(); + } + + private void CustomMenuStrip_ForeColorChanged(object? sender, EventArgs e) + { + MyRenderer.ForeColor = GetForeColor(); + Invalidate(); + } + + private void CustomMenuStrip_BorderColorChanged(object? sender, EventArgs e) + { + MyRenderer.BorderColor = GetBorderColor(); + Invalidate(); + } + + private void CustomMenuStrip_SelectionColorChanged(object? sender, EventArgs e) + { + MyRenderer.SelectionColor = SelectionColor; + Invalidate(); + } + + private void CustomMenuStrip_SameColorForSubItemsChanged(object? sender, EventArgs e) + { + if (SameColorForSubItems) + ColorForSubItems(); + } + + private void CustomMenuStrip_ItemAdded(object? sender, ToolStripItemEventArgs e) + { + if (SameColorForSubItems) + ColorForSubItems(); + Invalidate(); + } + + private void CustomMenuStrip_Paint(object? sender, PaintEventArgs e) + { + if (Border) + { + Color borderColor = GetBorderColor(); + ControlPaint.DrawBorder(e.Graphics, ClientRectangle, borderColor, ButtonBorderStyle.Solid); + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.2f); + else + return BackColor.ChangeBrightness(-0.2f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomMessageBox.cs b/MsmhTools/CustomControls/CustomMessageBox.cs new file mode 100644 index 0000000..cee6aef --- /dev/null +++ b/MsmhTools/CustomControls/CustomMessageBox.cs @@ -0,0 +1,578 @@ +using MsmhTools; +using System.Diagnostics; +using System.Runtime.InteropServices; +/* + * Copyright MSasanMH, April 14, 2022. + * Needs CustomButton. + */ + +namespace CustomControls +{ + public class CustomMessageBox : Form + { + // Make CustomMessageBox movable. + private const int WM_NCLBUTTONDOWN = 0xA1; + private const int HT_CAPTION = 0x2; + [DllImport("user32.dll")] + private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + [DllImport("user32.dll")] + private static extern bool ReleaseCapture(); + + static DialogResult dialogResult; + public static Form? SetParent { get; set; } + public new static Color BackColor { get; set; } + public new static Color ForeColor { get; set; } + public static Color BorderColor { get; set; } + + private static int ImageBox(int iconOffset, Icon icon, Panel textPanel) + { + PictureBox pb = new(); + pb.Image = icon.ToBitmap(); + pb.Size = icon.Size; + pb.Location = new(iconOffset, textPanel.Height / 2 - pb.Height / 2); + textPanel.Controls.Add(pb); + return pb.Height; + } + public CustomMessageBox(string text, string? caption, MessageBoxButtons? buttons, MessageBoxIcon? icon) : base() + { + FormBorderStyle = FormBorderStyle.None; + ShowInTaskbar = true; + TopMost = true; + + int iconOffset = 5; + int buttonOffset = 5; + int testLabelOffset = iconOffset; + Rectangle screen = Screen.FromControl(this).Bounds; + + // Box Size (Auto) + ////// Box Width + AutoSize = false; + int maxWidth = 400; + int minWidth = 140; // Shouldn't be smaller than 140. + Size computeSize = TextRenderer.MeasureText(text, DefaultFont); + int mWidth = computeSize.Width + 30; + int iconWidth = 32; + if (icon != null && icon != MessageBoxIcon.None) + { + mWidth += iconWidth + iconOffset; + testLabelOffset = iconWidth - iconOffset * 2; + } + int buttonWidth = 75; + if (buttons == null || buttons == MessageBoxButtons.OK) + { + int previousWidth = mWidth; + mWidth = buttonWidth + buttonOffset * 2; + mWidth = Math.Max(previousWidth, mWidth); + mWidth += buttonOffset; + } + else if (buttons == MessageBoxButtons.OKCancel || buttons == MessageBoxButtons.YesNo || buttons == MessageBoxButtons.RetryCancel) + { + int previousWidth = mWidth; + mWidth = buttonWidth * 2 + buttonOffset * 3; + mWidth = Math.Max(previousWidth, mWidth); + mWidth += buttonOffset; + } + else if (buttons == MessageBoxButtons.AbortRetryIgnore || buttons == MessageBoxButtons.YesNoCancel || buttons == MessageBoxButtons.CancelTryContinue) + { + int previousWidth = mWidth; + mWidth = buttonWidth * 3 + buttonOffset * 4; + mWidth = Math.Max(previousWidth, mWidth); + mWidth += buttonOffset; + } + mWidth = Math.Min(maxWidth, mWidth); + mWidth = Math.Max(minWidth, mWidth); + + ////// Box Height + int minHeight = 130; + int maxHeight = screen.Height - 50; + Label testLabel = new(); + testLabel.AutoSize = true; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabel.TextAlign = ContentAlignment.MiddleLeft; + testLabel.Text = text; + Size testLabelSize = testLabel.GetPreferredSize(Size.Empty); + int mHeight = testLabelSize.Height + 100; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + mHeight = testLabelSize.Height + 100; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + mHeight = testLabelSize.Height + 100; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + mHeight = testLabelSize.Height + 100; + mHeight = Math.Max(minHeight, mHeight); + if (mHeight > maxHeight) + { + mWidth += maxWidth; + testLabel.MaximumSize = new Size(mWidth - 2 - testLabelOffset, 0); + testLabelSize = testLabel.GetPreferredSize(Size.Empty); + mHeight = testLabelSize.Height + 100; + mHeight = Math.Max(minHeight, mHeight); + if (mWidth > screen.Width) + { + mWidth = screen.Width; + mHeight = maxHeight; + } + } + } + } + } + Size = new(mWidth, mHeight); + + // Rectangle + Rectangle rect = new(ClientRectangle.X + 1, ClientRectangle.Y + 1, ClientRectangle.Width - 2, ClientRectangle.Height - 2); + int buttonPanelHeight = 30; + int titlePanelHeight = 25; + Paint += CustomMessageBox_Paint; + MouseDown += CustomMessageBox_MouseDown; + Move += CustomMessageBox_Move; + + // Title (Caption) + if (caption != null) + { + Label titleLabel = new(); + titleLabel.AutoSize = true; + titleLabel.TextAlign = ContentAlignment.MiddleLeft; + titleLabel.Text = caption; + titleLabel.BackColor = BackColor; + titleLabel.ForeColor = ForeColor; + titleLabel.Location = new(2, rect.Y + titlePanelHeight / 2 - titleLabel.GetPreferredSize(Size.Empty).Height / 2); + Controls.Add(titleLabel); + } + + // Text Body + Panel textPanel = new(); + textPanel.BackColor = BackColor; + textPanel.ForeColor = ForeColor; + textPanel.BorderStyle = BorderStyle.None; + textPanel.Margin = new Padding(0); + textPanel.Location = new(rect.X, titlePanelHeight); + textPanel.Size = new(rect.Width, rect.Height - titlePanelHeight - buttonPanelHeight); + textPanel.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; + Controls.Add(textPanel); + + // Enum MessageBoxIcon + if (icon != null) + { + iconOffset = 5; + if (icon == MessageBoxIcon.Asterisk) + { + Icon ic = new(SystemIcons.Asterisk, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Error) + { + Icon ic = new(SystemIcons.Error, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Exclamation) + { + Icon ic = new(SystemIcons.Exclamation, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Hand) + { + Icon ic = new(SystemIcons.Hand, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Information) + { + Icon ic = new(SystemIcons.Information, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.None) + { + // Do Nothing + } + else if (icon == MessageBoxIcon.Question) + { + Icon ic = new(SystemIcons.Question, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Stop) + { + Icon ic = new(SystemIcons.Error, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + else if (icon == MessageBoxIcon.Warning) + { + Icon ic = new(SystemIcons.Warning, 32, 32); + int pbWidth = ImageBox(iconOffset, ic, textPanel); + iconOffset = iconOffset + pbWidth + iconOffset; + } + } + + Label textLabel = new(); + textLabel.AutoSize = true; + textLabel.MaximumSize = new Size(rect.Width - iconOffset, 0); + textLabel.TextAlign = ContentAlignment.MiddleLeft; + textLabel.Text = text; + Size textLabelSize = textLabel.GetPreferredSize(Size.Empty); + textLabel.Location = new(iconOffset, textPanel.Height / 2 - textLabelSize.Height / 2); + textPanel.Controls.Add(textLabel); + + // Button + Panel buttonPanel = new(); + buttonPanel.BackColor = BackColor.ChangeBrightness(-0.2f); + buttonPanel.ForeColor = ForeColor; + buttonPanel.BorderStyle = BorderStyle.None; + buttonPanel.Margin = new Padding(0); + buttonPanel.Location = new(rect.X, Height - buttonPanelHeight - 1); // 1 is bottom border + buttonPanel.Size = new(rect.Width, buttonPanelHeight); + buttonPanel.Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right; + Controls.Add(buttonPanel); + + // Enum DialogResult + if (buttons == null) + buttons = MessageBoxButtons.OK; + if (buttons == MessageBoxButtons.AbortRetryIgnore) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + CustomButton btn3 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Abort"; + btn1.DialogResult = DialogResult.Abort; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Abort; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Retry"; + btn2.DialogResult = DialogResult.Retry; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Retry; + }; + buttonPanel.Controls.Add(btn2); + + btn3.Location = new(rect.Width - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn3.Height / 2); + btn3.Text = "Ignore"; + btn3.DialogResult = DialogResult.Ignore; + btn3.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Ignore; + }; + buttonPanel.Controls.Add(btn3); + + AcceptButton = btn2; + CancelButton = btn1; + } + else if (buttons == MessageBoxButtons.CancelTryContinue) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + CustomButton btn3 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Cancel"; + btn1.DialogResult = DialogResult.Cancel; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Try Again"; + btn2.DialogResult = DialogResult.TryAgain; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.TryAgain; + }; + buttonPanel.Controls.Add(btn2); + + btn3.Location = new(rect.Width - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn3.Height / 2); + btn3.Text = "Continue"; + btn3.DialogResult = DialogResult.Continue; + btn3.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Continue; + }; + buttonPanel.Controls.Add(btn3); + + AcceptButton = btn2; + CancelButton = btn1; + } + else if (buttons == MessageBoxButtons.OK) + { + CustomButton btn1 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "OK"; + btn1.DialogResult = DialogResult.OK; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.OK; + }; + buttonPanel.Controls.Add(btn1); + + AcceptButton = btn1; + } + else if (buttons == MessageBoxButtons.OKCancel) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "OK"; + btn1.DialogResult = DialogResult.OK; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.OK; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Cancel"; + btn2.DialogResult = DialogResult.Cancel; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn2); + + AcceptButton = btn1; + CancelButton = btn2; + } + else if (buttons == MessageBoxButtons.RetryCancel) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Retry"; + btn1.DialogResult = DialogResult.Retry; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Retry; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "Cancel"; + btn2.DialogResult = DialogResult.Cancel; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn2); + + AcceptButton = btn1; + CancelButton = btn2; + } + else if (buttons == MessageBoxButtons.YesNo) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Yes"; + btn1.DialogResult = DialogResult.Yes; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Yes; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "No"; + btn2.DialogResult = DialogResult.No; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.No; + }; + buttonPanel.Controls.Add(btn2); + + AcceptButton = btn1; + CancelButton = btn2; + } + else if (buttons == MessageBoxButtons.YesNoCancel) + { + CustomButton btn1 = new(); + CustomButton btn2 = new(); + CustomButton btn3 = new(); + + btn1.Location = new(rect.Width - btn1.Width - buttonOffset - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn1.Height / 2); + btn1.Text = "Yes"; + btn1.DialogResult = DialogResult.Yes; + btn1.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Yes; + }; + buttonPanel.Controls.Add(btn1); + + btn2.Location = new(rect.Width - btn2.Width - buttonOffset - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn2.Height / 2); + btn2.Text = "No"; + btn2.DialogResult = DialogResult.No; + btn2.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.No; + }; + buttonPanel.Controls.Add(btn2); + + btn3.Location = new(rect.Width - btn3.Width - buttonOffset, buttonPanel.Height / 2 - btn3.Height / 2); + btn3.Text = "Cancel"; + btn3.DialogResult = DialogResult.Cancel; + btn3.Click += (object? sender, EventArgs e) => + { + dialogResult = DialogResult.Cancel; + }; + buttonPanel.Controls.Add(btn3); + + AcceptButton = btn1; + CancelButton = btn3; + } + + // Workaround CenterParent + if (SetParent != null) + { + int x = SetParent.Location.X + (SetParent.Width / 2) - (Width / 2); + int y = SetParent.Location.Y + (SetParent.Height / 2) - (Height / 2); + if (x > 0 && y > 0) + { + StartPosition = FormStartPosition.Manual; + Location = new Point(x, y); + Debug.WriteLine(SetParent.Location.X + SetParent.Width / 2); + Debug.WriteLine("X: " + x + " Y: " + y); + } + else + { + StartPosition = FormStartPosition.CenterScreen; + } + } + else + { + StartPosition = FormStartPosition.CenterScreen; + } + + // Set CustomButton Colors + var cs = Controllers.GetAllControls(this); + foreach (Control c in cs) + if (c is CustomButton customButton) + { + customButton.BackColor = BackColor; + customButton.ForeColor = ForeColor; + customButton.BorderColor = BorderColor; + customButton.SelectionColor = BorderColor; + customButton.Invalidate(); + } + + BringToFront(); + } + + /// Displays a message box with specified text. + /// + /// The text to display in the message box. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(string text) + { + // using construct ensures the resources are freed when form is closed. + using CustomMessageBox form = new(text, null, null, null); + form.ShowDialog(); + return dialogResult; + } + + /// Displays a message box with specified text. + /// + /// The text to display in the message box. + /// The text to display in the title bar of the message box. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(string text, string caption) + { + // using construct ensures the resources are freed when form is closed. + using CustomMessageBox form = new(text, caption, null, null); + form.ShowDialog(); + return dialogResult; + } + + /// Displays a message box with specified text. + /// + /// The text to display in the message box. + /// The text to display in the title bar of the message box. + /// One of the System.Windows.Forms.MessageBoxButtons values that specifies which buttons to display in the message box. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons) + { + // using construct ensures the resources are freed when form is closed. + using CustomMessageBox form = new(text, caption, buttons, null); + form.ShowDialog(); + return dialogResult; + } + + /// Displays a message box with specified text. + /// + /// The text to display in the message box. + /// The text to display in the title bar of the message box. + /// One of the System.Windows.Forms.MessageBoxButtons values that specifies which buttons to display in the message box. + /// One of the System.Windows.Forms.MessageBoxIcon values that specifies which icon to display in the message box. + /// + /// One of the System.Windows.Forms.DialogResult values. + public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) + { + // using construct ensures the resources are freed when form is closed. + using CustomMessageBox form = new(text, caption, buttons, icon); + form.ShowDialog(); + return dialogResult; + } + + private void CustomMessageBox_Paint(object? sender, PaintEventArgs e) + { + Rectangle rect = new(e.ClipRectangle.X, e.ClipRectangle.Y, e.ClipRectangle.Width - 1, e.ClipRectangle.Height - 1); + Graphics g = e.Graphics; + + // Fill BackColor (Static) + using SolidBrush sb = new(BackColor); + g.FillRectangle(sb, rect); + + // Draw Border + using Pen pen = new(BorderColor); + g.DrawRectangle(pen, rect); + } + + private void CustomMessageBox_MouseDown(object? sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + ReleaseCapture(); + _ = SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + Invalidate(); + } + } + + private void CustomMessageBox_Move(object? sender, EventArgs e) + { + Invalidate(); + var cs = Controllers.GetAllControls(this); + foreach (Control c in cs) + c.Invalidate(); + } + + } +} diff --git a/MsmhTools/CustomControls/CustomMessageBox.resx b/MsmhTools/CustomControls/CustomMessageBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MsmhTools/CustomControls/CustomMessageBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/MsmhTools/CustomControls/CustomNumericUpDown.cs b/MsmhTools/CustomControls/CustomNumericUpDown.cs new file mode 100644 index 0000000..2bea17e --- /dev/null +++ b/MsmhTools/CustomControls/CustomNumericUpDown.cs @@ -0,0 +1,361 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing.Drawing2D; +using System.Text; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 02, 2022. +*/ + +namespace CustomControls +{ + public class CustomNumericUpDown : NumericUpDown + { + protected override CreateParams CreateParams // Fixes Flickers + { + get + { + CreateParams cp = base.CreateParams; + cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED + return cp; + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private Color? enabledBackColor; + private bool enabledBackColorBool = true; + private bool once = true; + + public CustomNumericUpDown() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + // Default Back Color + BackColor = Color.DimGray; + if (Enabled) + enabledBackColor = BackColor; + + // Default BorderStyle + BorderStyle = BorderStyle.FixedSingle; + + Application.Idle += Application_Idle; + HandleCreated += CustomNumericUpDown_HandleCreated; + LocationChanged += CustomNumericUpDown_LocationChanged; + Move += CustomNumericUpDown_Move; + EnabledChanged += CustomNumericUpDown_EnabledChanged; + ForeColorChanged += CustomNumericUpDown_ForeColorChanged; + Invalidated += CustomNumericUpDown_Invalidated; + + Control UpDown = Controls[0]; + UpDown.Paint += UpDown_Paint; + } + + private void Application_Idle(object? sender, EventArgs e) + { + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomNumericUpDown_HandleCreated(object? sender, EventArgs e) + { + if (Enabled) + enabledBackColor = BackColor; + Invalidate(); + } + + private void CustomNumericUpDown_LocationChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomNumericUpDown_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomNumericUpDown_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomNumericUpDown_ForeColorChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomNumericUpDown_Invalidated(object? sender, InvalidateEventArgs e) + { + InvalidateSubControls(); + } + + private void InvalidateSubControls() + { + for (int n = 0; n < Controls.Count; n++) + { + Control c = Controls[n]; + c.ForeColor = ForeColor; + if (n == 1) + c.BackColor = GetBackColor(); + c.Invalidate(); + } + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + Rectangle rect = ClientRectangle; + Color borderColor = GetBorderColor(); + + if (BorderStyle == BorderStyle.FixedSingle) + { + ControlPaint.DrawBorder(e.Graphics, rect, borderColor, ButtonBorderStyle.Solid); + } + else if (BorderStyle == BorderStyle.Fixed3D) + { + Color secondBorderColor; + if (borderColor.DarkOrLight() == "Dark") + secondBorderColor = borderColor.ChangeBrightness(0.5f); + else + secondBorderColor = borderColor.ChangeBrightness(-0.5f); + + Rectangle rect3DBorder; + + rect3DBorder = new(rect.X, rect.Y, rect.Width, rect.Height); + ControlPaint.DrawBorder(e.Graphics, rect3DBorder, secondBorderColor, ButtonBorderStyle.Solid); + + rect3DBorder = new(rect.X + 1, rect.Y + 1, rect.Width - 1, rect.Height - 1); + ControlPaint.DrawBorder(e.Graphics, rect3DBorder, secondBorderColor, ButtonBorderStyle.Solid); + + rect3DBorder = new(rect.X, rect.Y, rect.Width - 1, rect.Height - 1); + ControlPaint.DrawBorder(e.Graphics, rect3DBorder, borderColor, ButtonBorderStyle.Solid); + } + + } + + private void UpDown_Paint(object? sender, PaintEventArgs e) + { + Control UpDown = sender as Control; + + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + + // UpDown Rectangle + Rectangle rectUpDown = UpDown.ClientRectangle; + + // Up Rectangle + Rectangle rectUp = new(0, 0, rectUpDown.Width, rectUpDown.Height / 2); + + // Down Rectangle + Rectangle rectDown = new(0, rectUpDown.Height / 2, rectUpDown.Width, rectUpDown.Height / 2 + 1); + + // Mouse Position + Point mP = UpDown.PointToClient(MousePosition); + + // Paint UpDown Background + e.Graphics.Clear(backColor.ChangeBrightness(-0.3f)); + + // Paint UpDown Border + using Pen arrowButtonsBorderPen = new(borderColor); + Point[] arrowButtonsBorderPointsRight = new[] + { + new Point(0, 0), + new Point(0, rectUpDown.Height), + new Point(0, rectUpDown.Height / 2), + new Point(rectUpDown.Width, rectUpDown.Height / 2) + }; + Point[] arrowButtonsBorderPointsLeft = new[] + { + new Point(rectUpDown.Width - 1, 0), + new Point(rectUpDown.Width - 1, rectUpDown.Height), + new Point(rectUpDown.Width - 1, rectUpDown.Height / 2), + new Point(0, rectUpDown.Height / 2) + }; + if (BorderStyle != BorderStyle.None) + { + if (RightToLeft == RightToLeft.No && UpDownAlign == LeftRightAlignment.Right || + RightToLeft == RightToLeft.Yes && UpDownAlign == LeftRightAlignment.Left) + { + e.Graphics.DrawLines(arrowButtonsBorderPen, arrowButtonsBorderPointsRight); + } + else + e.Graphics.DrawLines(arrowButtonsBorderPen, arrowButtonsBorderPointsLeft); + } + + // MouseOver Background and Border + if (Enabled && rectUpDown.Contains(mP)) + { + // Paint UpDown Background Hover + Color hoverColor = backColor.DarkOrLight() == "Dark" ? backColor.ChangeBrightness(0.3f) : backColor.ChangeBrightness(-0.3f); + using SolidBrush sb = new(hoverColor); + if (rectUp.Contains(mP)) + e.Graphics.FillRectangle(sb, rectUp); + else + e.Graphics.FillRectangle(sb, rectDown); + + // Paint UpDown Border + if (BorderStyle != BorderStyle.None) + { + if (RightToLeft == RightToLeft.No && UpDownAlign == LeftRightAlignment.Right || + RightToLeft == RightToLeft.Yes && UpDownAlign == LeftRightAlignment.Left) + { + e.Graphics.DrawLines(arrowButtonsBorderPen, arrowButtonsBorderPointsRight); + } + else + e.Graphics.DrawLines(arrowButtonsBorderPen, arrowButtonsBorderPointsLeft); + } + } + + // Paint Arrows + using SolidBrush arrowBrush = new(foreColor); + + // UpArrow Points + Point upArrowCenter; + if (RightToLeft == RightToLeft.No && UpDownAlign == LeftRightAlignment.Right || + RightToLeft == RightToLeft.Yes && UpDownAlign == LeftRightAlignment.Left) + { + upArrowCenter = new(rectUp.Left + rectUp.Width / 2, rectUp.Top + rectUp.Height / 2); + } + else + upArrowCenter = new((rectUp.Left + rectUp.Width / 2) - 1, rectUp.Top + rectUp.Height / 2); + Point[] upArrowPoints = new Point[] + { + new Point(upArrowCenter.X - 4, upArrowCenter.Y + 2), // Bottom Left + new Point(upArrowCenter.X + 4, upArrowCenter.Y + 2), // Bottom Right + new Point(upArrowCenter.X, upArrowCenter.Y - 3) // Top + }; + + // DownArrow Points + Point downArrowCenter; + if (RightToLeft == RightToLeft.No && UpDownAlign == LeftRightAlignment.Right || + RightToLeft == RightToLeft.Yes && UpDownAlign == LeftRightAlignment.Left) + { + downArrowCenter = new Point(rectDown.Left + rectDown.Width / 2, rectDown.Top + rectDown.Height / 2); + } + else + downArrowCenter = new Point((rectDown.Left + rectDown.Width / 2) - 1, rectDown.Top + rectDown.Height / 2); + Point[] downArrowPoints = new Point[] + { + new Point(downArrowCenter.X - 3, downArrowCenter.Y - 1), // Top Left + new Point(downArrowCenter.X + 4, downArrowCenter.Y - 1), // Top Right + new Point(downArrowCenter.X, downArrowCenter.Y + 3) // Bottom + }; + + // Paint UpArrow + e.Graphics.FillPolygon(arrowBrush, upArrowPoints); + + // Paint DownArrow + e.Graphics.FillPolygon(arrowBrush, downArrowPoints); + } + + private Color GetBackColor() + { + if (Enabled) + { + if (enabledBackColor != null) + return (Color)(!enabledBackColorBool ? enabledBackColor : BackColor); + else + return BackColor; + } + else + { + if (enabledBackColorBool) + { + enabledBackColor = BackColor; + enabledBackColorBool = false; + } + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomPanel.cs b/MsmhTools/CustomControls/CustomPanel.cs new file mode 100644 index 0000000..e6416be --- /dev/null +++ b/MsmhTools/CustomControls/CustomPanel.cs @@ -0,0 +1,495 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Runtime.InteropServices; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, May 16, 2022. +*/ + +namespace CustomControls +{ + public class CustomPanel : Panel + { + private static class Methods + { + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + private extern static int SetWindowTheme(IntPtr controlHandle, string appName, string? idList); + internal static void SetDarkControl(Control control) + { + _ = SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + foreach (Control c in control.Controls) + { + _ = SetWindowTheme(c.Handle, "DarkMode_Explorer", null); + } + } + } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new BorderStyle BorderStyle { get; set; } + + private BorderStyle mBorder = BorderStyle.FixedSingle; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border Style")] + public BorderStyle Border + { + get { return mBorder; } + set + { + mBorder = value; + Invalidate(); + } + } + + private ButtonBorderStyle mButtonBorderStyle = ButtonBorderStyle.Solid; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Button Border Style")] + public ButtonBorderStyle ButtonBorderStyle + { + get { return mButtonBorderStyle; } + set + { + if (mButtonBorderStyle != value) + { + mButtonBorderStyle = value; + Invalidate(); + } + } + } + + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public override Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Red; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private bool ApplicationIdle = false; + private bool once = true; + + private readonly Panel innerPanel = new(); + + // Events Action + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Action"), Description("Click")] + public new event EventHandler? Click; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Action"), Description("Double Click")] + public new event EventHandler? DoubleClick; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Action"), Description("Mouse Click")] + public new event MouseEventHandler? MouseClick; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Action"), Description("Mouse Double Click")] + public new event MouseEventHandler? MouseDoubleClick; + + // Events Focus + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Focus"), Description("Enter")] + public new event EventHandler? Enter; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Focus"), Description("Leave")] + public new event EventHandler? Leave; + + // Events Mouse + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Mouse"), Description("Mouse Down")] + public new event MouseEventHandler? MouseDown; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Mouse"), Description("Mouse Enter")] + public new event EventHandler? MouseEnter; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Mouse"), Description("Mouse Hover")] + public new event EventHandler? MouseHover; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Mouse"), Description("Mouse Leave")] + public new event EventHandler? MouseLeave; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Mouse"), Description("Mouse Move")] + public new event MouseEventHandler? MouseMove; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Mouse"), Description("Mouse Up")] + public new event MouseEventHandler? MouseUp; + + public CustomPanel() : base() + { + SetStyle(ControlStyles.DoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.OptimizedDoubleBuffer, false); // Fixes Flickers + + BorderStyle = BorderStyle.None; + ButtonBorderStyle = ButtonBorderStyle.Solid; + + // Events Action + innerPanel.Click += (object? sender, EventArgs e) => { Click?.Invoke(sender, e); }; + innerPanel.DoubleClick += (object? sender, EventArgs e) => { DoubleClick?.Invoke(sender, e); }; + innerPanel.MouseClick += (object? sender, MouseEventArgs e) => { MouseClick?.Invoke(sender, e); }; + innerPanel.MouseDoubleClick += (object? sender, MouseEventArgs e) => { MouseDoubleClick?.Invoke(sender, e); }; + + // Events Focus + innerPanel.Enter += (object? sender, EventArgs e) => { Enter?.Invoke(sender, e); }; + innerPanel.Leave += (object? sender, EventArgs e) => { Leave?.Invoke(sender, e); }; + + // Events Mouse + innerPanel.MouseDown += (object? sender, MouseEventArgs e) => { MouseDown?.Invoke(sender, e); }; + innerPanel.MouseEnter += (object? sender, EventArgs e) => { MouseEnter?.Invoke(sender, e); }; + innerPanel.MouseHover += (object? sender, EventArgs e) => { MouseHover?.Invoke(sender, e); }; + innerPanel.MouseLeave += (object? sender, EventArgs e) => { MouseLeave?.Invoke(sender, e); }; + innerPanel.MouseMove += (object? sender, MouseEventArgs e) => { MouseMove?.Invoke(sender, e); }; + innerPanel.MouseUp += (object? sender, MouseEventArgs e) => { MouseUp?.Invoke(sender, e); }; + + Controls.Add(innerPanel); + + Application.Idle += Application_Idle; + HandleCreated += CustomPanel_HandleCreated; + Paint += CustomPanel_Paint; + BackgroundImageChanged += CustomPanel_BackgroundImageChanged; + EnabledChanged += CustomPanel_EnabledChanged; + Invalidated += CustomPanel_Invalidated; + ControlAdded += CustomPanel_ControlAdded; + ControlRemoved += CustomPanel_ControlRemoved; + Enter += CustomPanel_Enter; + MouseDown += CustomPanel_MouseDown; + MouseEnter += CustomPanel_MouseEnter; + MouseLeave += CustomPanel_MouseLeave; + MouseWheel += CustomPanel_MouseWheel; + ParentChanged += CustomPanel_ParentChanged; + Resize += CustomPanel_Resize; + Scroll += CustomPanel_Scroll; + SizeChanged += CustomPanel_SizeChanged; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomPanel_HandleCreated(object? sender, EventArgs e) + { + foreach (Control c in Controls) + { + if (c is not Panel) + c.BringToFront(); + foreach (Control c2 in c.Controls) + { + if (c2 is not Panel) + c2.BringToFront(); + } + } + + // Timer is needed in some rare cases. + var p = sender as Panel; + int totalTime = 500; + int elapsedTime = 0; + var t = new System.Windows.Forms.Timer(); + t.Interval = 100; + t.Tick += (s, e) => + { + p.Invalidate(); + elapsedTime += t.Interval; + if (elapsedTime > totalTime) + t.Stop(); + }; + t.Start(); + } + + private void CustomPanel_Paint(object? sender, PaintEventArgs e) + { + if (ApplicationIdle == false) + return; + + Rectangle rect = new(0, 0, ClientRectangle.Width, ClientRectangle.Height); + + if (sender is Panel) + { + if (DesignMode) + BorderStyle = BorderStyle.FixedSingle; + else + BorderStyle = BorderStyle.None; + + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + + ForeColor = foreColor; + innerPanel.BackColor = backColor; + innerPanel.ForeColor = foreColor; + + // Fill Background + e.Graphics.Clear(backColor); + + // Draw Border + //ControlPaint.DrawBorder(e.Graphics, rect, borderColor, ButtonBorderStyle); + + if (Border == BorderStyle.FixedSingle) + ControlPaint.DrawBorder(e.Graphics, rect, borderColor, ButtonBorderStyle); + else if (Border == BorderStyle.Fixed3D) + { + Color secondBorderColor; + if (borderColor.DarkOrLight() == "Dark") + secondBorderColor = borderColor.ChangeBrightness(0.5f); + else + secondBorderColor = borderColor.ChangeBrightness(-0.5f); + + Rectangle rect3DBorder; + + rect3DBorder = new(rect.X, rect.Y, rect.Width, rect.Height); + ControlPaint.DrawBorder(e.Graphics, rect3DBorder, secondBorderColor, ButtonBorderStyle); + + rect3DBorder = new(rect.X + 1, rect.Y + 1, rect.Width - 1, rect.Height - 1); + ControlPaint.DrawBorder(e.Graphics, rect3DBorder, secondBorderColor, ButtonBorderStyle); + + rect3DBorder = new(rect.X, rect.Y, rect.Width - 1, rect.Height - 1); + ControlPaint.DrawBorder(e.Graphics, rect3DBorder, borderColor, ButtonBorderStyle); + } + } + } + + private void CustomPanel_BackgroundImageChanged(object? sender, EventArgs e) + { + innerPanel.BackgroundImage = BackgroundImage; + } + + private void CustomPanel_EnabledChanged(object? sender, EventArgs e) + { + var p = sender as Panel; + if (p.Enabled) + innerPanel.Enabled = true; + else + innerPanel.Enabled = false; + p.Invalidate(); + } + + private void CustomPanel_Invalidated(object? sender, InvalidateEventArgs e) + { + var p = sender as Panel; + + if (!DesignMode && AutoScroll) + { + innerPanel.AutoScroll = true; + AutoScroll = false; + } + + innerPanel.AutoScrollMargin = p.AutoScrollMargin; + innerPanel.AutoScrollMinSize = p.AutoScrollMinSize; + innerPanel.AutoScrollOffset = p.AutoScrollOffset; + + if (Border == BorderStyle.FixedSingle) + { + innerPanel.Location = new(1, 1); + innerPanel.Width = ClientRectangle.Width - 2; + innerPanel.Height = ClientRectangle.Height - 2; + } + else if (Border == BorderStyle.Fixed3D) + { + innerPanel.Location = new(2, 2); + innerPanel.Width = ClientRectangle.Width - 4; + innerPanel.Height = ClientRectangle.Height - 4; + } + else + { + innerPanel.Location = new(0, 0); + innerPanel.Width = ClientRectangle.Width; + innerPanel.Height = ClientRectangle.Height; + } + + if (BackColor.DarkOrLight() == "Dark") + Methods.SetDarkControl(innerPanel); + + foreach (Control c in p.Controls) + c.Invalidate(); + } + + private void CustomPanel_ControlAdded(object? sender, ControlEventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + if (!DesignMode) + { + p.Controls.Remove(e.Control); + innerPanel.Controls.Add(e.Control); + e.Control.BringToFront(); // Makes Arrow Keys Work Correctly. + } + } + + private void CustomPanel_ControlRemoved(object? sender, ControlEventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + if (!DesignMode) + innerPanel.Controls.Remove(e.Control); + } + + private void CustomPanel_Enter(object? sender, EventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_MouseDown(object? sender, MouseEventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_MouseEnter(object? sender, EventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_MouseLeave(object? sender, EventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_MouseWheel(object? sender, MouseEventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_ParentChanged(object? sender, EventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_Resize(object? sender, EventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_Scroll(object? sender, ScrollEventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private void CustomPanel_SizeChanged(object? sender, EventArgs e) + { + var p = sender as Panel; + p.Invalidate(); + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomProgressBar.cs b/MsmhTools/CustomControls/CustomProgressBar.cs new file mode 100644 index 0000000..a3401a9 --- /dev/null +++ b/MsmhTools/CustomControls/CustomProgressBar.cs @@ -0,0 +1,362 @@ +using MsmhTools; +using System.ComponentModel; +using System.Drawing.Drawing2D; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, May 10, 2022. +*/ + +namespace CustomControls +{ + public class CustomProgressBar : ProgressBar + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new bool? RightToLeftLayout { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new event EventHandler? RightToLeftLayoutChanged; + + private Color mBorderColor = Color.Red; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private Color mChunksColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Chunks Color")] + public Color ChunksColor + { + get { return mChunksColor; } + set + { + if (mChunksColor != value) + { + mChunksColor = value; + Invalidate(); + } + } + } + + private string mCustomText = string.Empty; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Custom Text")] + public string CustomText + { + get { return mCustomText; } + set + { + if (mCustomText != value) + { + mCustomText = value; + Invalidate(); + } + } + } + + private Font mFont = DefaultFont; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Text Font")] + public override Font Font + { + get { return mFont; } + set + { + if (mFont != value) + { + mFont = value; + Invalidate(); + } + } + } + + private DateTime? mStartTime = null; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Set Start Time Programmatically (Optional)")] + public DateTime? StartTime + { + get { return mStartTime; } + set + { + if (mStartTime != value) + { + mStartTime = value; + Invalidate(); + } + } + } + + private static bool ApplicationIdle = false; + private TimeSpan elapsedTime; + private string? elapsedTimeString; + private int once = 0; + private bool onceIV = true; + + public CustomProgressBar() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + + Application.Idle += Application_Idle; + HandleCreated += CustomProgressBar_HandleCreated; + EnabledChanged += CustomProgressBar_EnabledChanged; + RightToLeftChanged += CustomProgressBar_RightToLeftChanged; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (onceIV) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + onceIV = false; + } + } + RightToLeftLayout = false; + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomProgressBar_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomProgressBar_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomProgressBar_RightToLeftChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + protected override void OnPaint(PaintEventArgs e) + { + if (!ApplicationIdle) + return; + + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + Color chunksColor = GetChunksColor(); + Color chunksColorGradient; + + if (chunksColor.DarkOrLight() == "Dark") + chunksColorGradient = chunksColor.ChangeBrightness(0.5f); + else + chunksColorGradient = chunksColor.ChangeBrightness(-0.5f); + + Rectangle rect = ClientRectangle; + Graphics g = e.Graphics; + // Draw horizontal bar (Background and Border) With Default System Color: + //ProgressBarRenderer.DrawHorizontalBar(g, rect); + + // Draw horizontal bar (Background and Border) With Custom Color: + // Fill Background + using SolidBrush bgBrush = new(backColor); + g.FillRectangle(bgBrush, rect); + + // Draw Border + ControlPaint.DrawBorder(g, rect, borderColor, ButtonBorderStyle.Solid); + + // Padding + if (Value > 0) + { + // Draw Chunks By Default Color (Green): + //Rectangle clip = new(rect.X, rect.Y, (int)Math.Round((float)Value / Maximum * rect.Width), rect.Height); + //ProgressBarRenderer.DrawHorizontalChunks(g, clip); + + // Draw Chunks By Custom Color: + // The Following Is The Width Of The Bar. This Will Vary With Each Value. + int fillWidth = Width * Value / (Maximum - Minimum); + + // GDI+ Doesn't Like Rectangles 0px Wide or Height + if (fillWidth == 0) + { + // Draw Only Border And Exit + ControlPaint.DrawBorder(g, rect, borderColor, ButtonBorderStyle.Solid); + return; + } + // Rectangles For Upper And Lower Half Of Bar + Rectangle topRect = new(0, 0, fillWidth, Height / 2); + Rectangle buttomRect = new(0, Height / 2, fillWidth, Height / 2); + + // Paint Upper Half + using LinearGradientBrush gbUH = new(new Point(0, 0), new Point(0, Height / 2), chunksColorGradient, chunksColor); + e.Graphics.FillRectangle(gbUH, topRect); + + // Paint Lower Half + // (this.Height/2 - 1 Because There Would Be A Dark Line In The Middle Of The Bar) + using LinearGradientBrush gbLH = new(new Point(0, Height / 2 - 1), new Point(0, Height), chunksColor, chunksColorGradient); + e.Graphics.FillRectangle(gbLH, buttomRect); + + // Paint Border + ControlPaint.DrawBorder(g, rect, borderColor, ButtonBorderStyle.Solid); + } + + // Compute Percent + int percent = (int)(Value / (double)Maximum * 100); + string textPercent; + if (Value > 0) + textPercent = percent.ToString() + '%'; + else + { + // If Value Is Zero Don't Write Anything + textPercent = string.Empty; + if (!DesignMode) + CustomText = string.Empty; + } + + // Brush For Writing CustomText And Persentage On Progressbar + using SolidBrush brush = new(foreColor); + + // Percent + SizeF lenPercent = g.MeasureString(textPercent, Font); + Point locationPercentCenter = new(Convert.ToInt32((Width / 2) - lenPercent.Width / 2), Convert.ToInt32((Height / 2) - lenPercent.Height / 2)); + g.DrawString(textPercent, Font, brush, locationPercentCenter); + + // Custom Text + if (!string.IsNullOrEmpty(CustomText)) + { + SizeF lenCustomText = g.MeasureString(CustomText, Font); + if (RightToLeft == RightToLeft.No) + { + Point locationCustomTextLeft = new(5, Convert.ToInt32((Height / 2) - lenCustomText.Height / 2)); + g.DrawString(CustomText, Font, brush, locationCustomTextLeft); + } + else + { + Point locationCustomTextRight = new(Convert.ToInt32(Width - lenCustomText.Width - 5), Convert.ToInt32((Height / 2) - lenCustomText.Height / 2)); + g.DrawString(CustomText, Font, brush, locationCustomTextRight); + } + } + + // Compute Elapsed Time + if (StartTime.HasValue == true) + { + if (percent == 0) + { + elapsedTime = new(0, 0, 0, 0, 0); + elapsedTimeString = string.Empty; + } + else if (1 < percent && percent < 100) + { + elapsedTime = (TimeSpan)(DateTime.Now - StartTime); + elapsedTimeString = string.Format(@"Time: {0:00}:{1:00}:{2:000}", elapsedTime.Minutes, elapsedTime.Seconds, Math.Round((double)elapsedTime.Milliseconds / 10)); + once = 0; + } + else if (percent == 100) + { + if (once == 0) + { + elapsedTime = (TimeSpan)(DateTime.Now - StartTime); + elapsedTimeString = string.Format(@"Time: {0:00}:{1:00}:{2:000}", elapsedTime.Minutes, elapsedTime.Seconds, Math.Round((double)elapsedTime.Milliseconds / 10)); + once++; + } + } + + SizeF lenElapsedTime = g.MeasureString(elapsedTimeString, Font); + if (RightToLeft == RightToLeft.No) + { + Point locationElapsedTimeRight = new(Convert.ToInt32(Width - lenElapsedTime.Width - 5), Convert.ToInt32((Height / 2) - lenElapsedTime.Height / 2)); + g.DrawString(elapsedTimeString, Font, brush, locationElapsedTimeRight); + } + else + { + Point locationElapsedTimeLeft = new(5, Convert.ToInt32((Height / 2) - lenElapsedTime.Height / 2)); + g.DrawString(elapsedTimeString, Font, brush, locationElapsedTimeLeft); + } + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + private Color GetChunksColor() + { + if (Enabled) + return ChunksColor; + else + { + if (ChunksColor.DarkOrLight() == "Dark") + return ChunksColor.ChangeBrightness(0.3f); + else + return ChunksColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomRadioButton.cs b/MsmhTools/CustomControls/CustomRadioButton.cs new file mode 100644 index 0000000..a4180a6 --- /dev/null +++ b/MsmhTools/CustomControls/CustomRadioButton.cs @@ -0,0 +1,354 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing.Design; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; + +namespace CustomControls +{ + public class CustomRadioButton : RadioButton + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new Appearance Appearance { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new FlatStyle FlatStyle { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new FlatButtonAppearance? FlatAppearance { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new ContentAlignment TextAlign { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new ContentAlignment CheckAlign { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new bool AutoSize { get; set; } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private Color mCheckColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Check Color")] + public Color CheckColor + { + get { return mCheckColor; } + set + { + if (mCheckColor != value) + { + mCheckColor = value; + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + Invalidate(); + } + } + } + + private string? mText = string.Empty; + [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0," + + "Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))] + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Text")] + public override string? Text + { + get { return mText; } + set + { + if (mText != value) + { + mText = value; + Invalidate(); + } + } + } + + private bool ApplicationIdle = false; + private bool once = true; + public CustomRadioButton() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + + Application.Idle += Application_Idle; + HandleCreated += CustomRadioButton_HandleCreated; + LocationChanged += CustomRadioButton_LocationChanged; + Move += CustomRadioButton_Move; + EnabledChanged += CustomRadioButton_EnabledChanged; + BackColorChanged += CustomRadioButton_BackColorChanged; + RightToLeftChanged += CustomRadioButton_RightToLeftChanged; + Paint += CustomRadioButton_Paint; + } + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRadioButton_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRadioButton_LocationChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRadioButton_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRadioButton_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRadioButton_BackColorChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRadioButton_RightToLeftChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRadioButton_Paint(object? sender, PaintEventArgs e) + { + if (ApplicationIdle == false) + return; + + if (sender is RadioButton rb) + { + Color backColor = GetBackColor(rb); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + Color checkColor = GetCheckColor(); + + e.Graphics.Clear(backColor); + rb.Appearance = Appearance.Button; + rb.FlatStyle = FlatStyle.Flat; + + rb.FlatAppearance.BorderSize = 0; + rb.AutoSize = false; + rb.UseVisualStyleBackColor = false; + SizeF sizeF = rb.CreateGraphics().MeasureString(rb.Text, rb.Font); + int rectSize = 12; + rb.Height = (int)sizeF.Height; + rb.Width = (int)(sizeF.Width + rectSize + 5); + int x; + float textX; + + if (rb.RightToLeft == RightToLeft.No) + { + rb.TextAlign = ContentAlignment.MiddleLeft; + x = 1; + textX = (float)(rectSize * 1.3); + } + else + { + rb.TextAlign = ContentAlignment.MiddleRight; + x = rb.Width - rectSize - 2; + textX = rb.Width - sizeF.Width - (float)(rectSize * 1.2); + } + + int y = (rb.ClientRectangle.Y + (rb.ClientRectangle.Height - rectSize)) / 2; + Point pt = new(x, y); + Rectangle rectCheck = new(pt, new Size(rectSize, rectSize)); + + // Draw Selection Border + Rectangle cRect = new(rb.ClientRectangle.X, rb.ClientRectangle.Y, rb.ClientRectangle.Width - 1, rb.ClientRectangle.Height - 1); + if (rb.Focused) + { + using Pen pen = new(SelectionColor) { DashStyle = DashStyle.Dot }; + e.Graphics.DrawRectangle(pen, cRect); + } + + // Draw Text + using SolidBrush brush1 = new(foreColor); + e.Graphics.DrawString(rb.Text, rb.Font, brush1, textX, 0); + + // Fill Check Rect + using SolidBrush brush2 = new(backColor); + e.Graphics.FillRectangle(brush2, rectCheck); + + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + // Set Points + float centerX = rectCheck.X + (rectCheck.Width / 2); + float centerY = rectCheck.Y + (rectCheck.Height / 2); + float radius = rectCheck.Width / 2; + + // Draw Check + if (rb.Checked) + { + // Draw Check + using SolidBrush brushCheck = new(checkColor); + rectCheck.Inflate(-2, -2); + float radiusC = rectCheck.Width / 2; + e.Graphics.FillEllipse(brushCheck, centerX - radiusC, centerY - radiusC, radiusC + radiusC, radiusC + radiusC); + rectCheck.Inflate(+2, +2); + } + + // Draw Check Rect (Check Border) + using Pen penBorder = new(borderColor); + e.Graphics.DrawEllipse(penBorder, centerX - radius, centerY - radius, radius + radius, radius + radius); + + e.Graphics.SmoothingMode = SmoothingMode.Default; + } + } + + private Color GetBackColor(RadioButton radioButton) + { + if (radioButton.Enabled) + return BackColor; + else + { + Color backColor = BackColor; + if (radioButton.Parent != null) + { + if (radioButton.Parent.BackColor != Color.Transparent) + { + if (radioButton.Parent.Enabled) + backColor = radioButton.Parent.BackColor; + else + backColor = GetDisabledColor(radioButton.Parent.BackColor); + } + else + { + if (radioButton.FindForm() != null) + { + if (radioButton.Parent.Enabled) + backColor = radioButton.FindForm().BackColor; + else + backColor = GetDisabledColor(radioButton.FindForm().BackColor); + } + } + } + return backColor; + } + + static Color GetDisabledColor(Color color) + { + if (color.DarkOrLight() == "Dark") + return color.ChangeBrightness(0.3f); + else + return color.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + private Color GetCheckColor() + { + if (Enabled) + return CheckColor; + else + { + if (CheckColor.DarkOrLight() == "Dark") + return CheckColor.ChangeBrightness(0.3f); + else + return CheckColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomRichTextBox.cs b/MsmhTools/CustomControls/CustomRichTextBox.cs new file mode 100644 index 0000000..8c9c825 --- /dev/null +++ b/MsmhTools/CustomControls/CustomRichTextBox.cs @@ -0,0 +1,794 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Drawing.Design; +using System.Runtime.InteropServices; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, January 27, 2023. +*/ + +namespace CustomControls +{ + [DefaultEvent("TextChanged")] + public class CustomRichTextBox : UserControl + { + private static class Methods + { + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + private extern static int SetWindowTheme(IntPtr controlHandle, string appName, string? idList); + internal static void SetDarkControl(Control control) + { + _ = SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + foreach (Control c in control.Controls) + { + _ = SetWindowTheme(c.Handle, "DarkMode_Explorer", null); + } + } + + [DllImport("user32.dll", EntryPoint = "ShowCaret")] + internal static extern long ShowCaret(IntPtr hwnd); + [DllImport("user32.dll", EntryPoint = "HideCaret")] + internal static extern long HideCaret(IntPtr hwnd); + } + + // Disable + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new Padding Padding { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new AutoSizeMode AutoSizeMode { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new AutoValidate AutoValidate { get; set; } + + private readonly RichTextBox richTextBox = new(); + private bool isFocused = false; + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private bool mBorder = true; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border")] + public bool Border + { + get { return mBorder; } + set + { + if (mBorder != value) + { + mBorder = value; + Invalidate(); + } + } + } + + private int mBorderSize = 1; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border Size")] + public int BorderSize + { + get { return mBorderSize; } + set + { + if (mBorderSize != value) + { + mBorderSize = value; + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Cursor")] + public override Cursor Cursor + { + get { return base.Cursor; } + set + { + base.Cursor = value; + richTextBox.Cursor = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Font")] + public override Font Font + { + get { return base.Font; } + set + { + base.Font = value; + richTextBox.Font = value; + if (DesignMode) + UpdateControlSize(); + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("ScrollBar")] + public ScrollBars ScrollBars + { + get { return (ScrollBars)richTextBox.ScrollBars; } + set { richTextBox.ScrollBars = (RichTextBoxScrollBars)value; } + } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public override string Text + { + get { return richTextBox.Text; } + set + { + base.Text = value; + richTextBox.Text = value; + } + } + + [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0," + + "Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))] + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Texts")] + public string Texts + { + get { return richTextBox.Text; } + set { richTextBox.Text = value; } + } + + private bool mUnderlinedStyle = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border Underlined Style")] + public bool UnderlinedStyle + { + get { return mUnderlinedStyle; } + set + { + if (mUnderlinedStyle != value) + { + mUnderlinedStyle = value; + Invalidate(); + } + } + } + + // Scroll to the bottom + private bool mScrollToBottom = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Scrolls to the bottom of the CustomRichTextBox on Text Changed.")] + public bool ScrollToBottom + { + get { return mScrollToBottom; } + set + { + if (mScrollToBottom != value) + { + mScrollToBottom = value; + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Accepts Tab")] + public bool AcceptsTab + { + get { return richTextBox.AcceptsTab; } + set { richTextBox.AcceptsTab = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Allow Drop")] + public override bool AllowDrop + { + get { return base.AllowDrop; } + set + { + base.AllowDrop = value; + richTextBox.AllowDrop = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Auto Word Selection")] + public bool AutoWordSelection + { + get { return richTextBox.AutoWordSelection; } + set { richTextBox.AutoWordSelection = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Bullet Indent")] + public int BulletIndent + { + get { return richTextBox.BulletIndent; } + set { richTextBox.BulletIndent = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Context Menu Strip")] + public override ContextMenuStrip ContextMenuStrip + { + get { return base.ContextMenuStrip; } + set + { + base.ContextMenuStrip = value; + richTextBox.ContextMenuStrip = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Detect Urls")] + public bool DetectUrls + { + get { return richTextBox.DetectUrls; } + set { richTextBox.DetectUrls = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Enable Auto Drag Drop")] + public bool EnableAutoDragDrop + { + get { return richTextBox.EnableAutoDragDrop; } + set { richTextBox.EnableAutoDragDrop = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Hide Selection")] + public bool HideSelection + { + get { return richTextBox.HideSelection; } + set { richTextBox.HideSelection = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Input Method Editor")] + public new ImeMode ImeMode + { + get { return richTextBox.ImeMode; } + set { richTextBox.ImeMode = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Max Length")] + public int MaxLength + { + get { return richTextBox.MaxLength; } + set { richTextBox.MaxLength = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Multiline Style")] + public bool Multiline + { + get { return richTextBox.Multiline; } + set + { + richTextBox.Multiline = value; + if (DesignMode) + UpdateControlSize(); + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Read Only")] + public bool ReadOnly + { + get { return richTextBox.ReadOnly; } + set { richTextBox.ReadOnly = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Right Margin")] + public int RightMargin + { + get { return richTextBox.RightMargin; } + set { richTextBox.RightMargin = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Shortcuts Enabled")] + public bool ShortcutsEnabled + { + get { return richTextBox.ShortcutsEnabled; } + set { richTextBox.ShortcutsEnabled = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Tab Index")] + public new int TabIndex + { + get { return richTextBox.TabIndex; } + set { richTextBox.TabIndex = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Tab Stop")] + public new bool TabStop + { + get { return richTextBox.TabStop; } + set { richTextBox.TabStop = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Word Wrap Style")] + public bool WordWrap + { + get { return richTextBox.WordWrap; } + set { richTextBox.WordWrap = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Zoom Factor")] + public float ZoomFactor + { + get { return richTextBox.ZoomFactor; } + set { richTextBox.ZoomFactor = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(false)] + public Color SelectionColor + { + get { return richTextBox.SelectionColor; } + set { richTextBox.SelectionColor = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(false)] + public int SelectionLength + { + get { return richTextBox.SelectionLength; } + set { richTextBox.SelectionLength = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(false)] + public int SelectionStart + { + get { return richTextBox.SelectionStart; } + set { richTextBox.SelectionStart = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(false)] + public int TextLength + { + get { return richTextBox.TextLength; } + } + + public override void ResetText() + { + richTextBox.ResetText(); + } + + private bool ApplicationIdle = false; + private bool once = true; + + public void AppendText(string text) + { + richTextBox.AppendText(text); + richTextBox.Refresh(); + } + + public void AppendText(string text, Color color) + { + richTextBox.SelectionStart = richTextBox.TextLength; + richTextBox.SelectionLength = 0; + richTextBox.SelectionColor = color; + richTextBox.AppendText(text); + richTextBox.SelectionColor = richTextBox.ForeColor; + richTextBox.Refresh(); + } + + public CustomRichTextBox() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + Font = new("Segoe UI", 9); + AutoScaleMode = AutoScaleMode.None; + Padding = new(0); + Size = new(100, 23); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + AutoScroll = false; + AutoScrollMargin = new(0, 0); + AutoScrollMinSize = new(0, 0); + AutoSize = false; + + // Disabled + AutoSizeMode = AutoSizeMode.GrowOnly; + AutoValidate = AutoValidate.EnablePreventFocusChange; + + Controls.Add(richTextBox); + richTextBox.BackColor = GetBackColor(); + richTextBox.ForeColor = GetForeColor(); + + //richTextBox.Dock = DockStyle.Fill; + richTextBox.BorderStyle = BorderStyle.None; + + // Events + Application.Idle += Application_Idle; + EnabledChanged += CustomRichTextBox_EnabledChanged; + BackColorChanged += CustomRichTextBox_BackColorChanged; + ForeColorChanged += CustomRichTextBox_ForeColorChanged; + richTextBox.Click += RichTextBox_Click; + richTextBox.MouseClick += RichTextBox_MouseClick; + richTextBox.MouseDoubleClick += RichTextBox_MouseDoubleClick; + richTextBox.MouseEnter += RichTextBox_MouseEnter; + richTextBox.MouseLeave += RichTextBox_MouseLeave; + richTextBox.KeyPress += RichTextBox_KeyPress; + richTextBox.Enter += RichTextBox_Enter; + richTextBox.Leave += RichTextBox_Leave; + richTextBox.Invalidated += RichTextBox_Invalidated; + richTextBox.AcceptsTabChanged += RichTextBox_AcceptsTabChanged; + richTextBox.GotFocus += RichTextBox_GotFocus; + richTextBox.HideSelectionChanged += RichTextBox_HideSelectionChanged; + richTextBox.ModifiedChanged += RichTextBox_ModifiedChanged; + richTextBox.MultilineChanged += RichTextBox_MultilineChanged; + richTextBox.ReadOnlyChanged += RichTextBox_ReadOnlyChanged; + richTextBox.SelectionChanged += RichTextBox_SelectionChanged; + richTextBox.TextChanged += RichTextBox_TextChanged; + } + + // Events + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? Scroll; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? Load; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? PaddingChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? AutoSizeChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? AutoValidateChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? BackgroundImageChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? BackgroundImageLayoutChanged; + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomRichTextBox_EnabledChanged(object? sender, EventArgs e) + { + richTextBox.Enabled = Enabled; + Invalidate(); + richTextBox.Invalidate(); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Accepts Tab Changed")] + public event EventHandler? AcceptsTabChanged; + private void RichTextBox_AcceptsTabChanged(object? sender, EventArgs e) + { + AcceptsTabChanged?.Invoke(sender, e); + } + + private void RichTextBox_GotFocus(object? sender, EventArgs e) + { + OnGotFocus(e); + if (HideSelection) + Methods.HideCaret(richTextBox.Handle); + else + Methods.ShowCaret(richTextBox.Handle); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Hide Selection Changed")] + public event EventHandler? HideSelectionChanged; + private void RichTextBox_HideSelectionChanged(object? sender, EventArgs e) + { + HideSelectionChanged?.Invoke(sender, e); + if (HideSelection) + Methods.HideCaret(richTextBox.Handle); + else + Methods.ShowCaret(richTextBox.Handle); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Modified Changed")] + public event EventHandler? ModifiedChanged; + private void RichTextBox_ModifiedChanged(object? sender, EventArgs e) + { + ModifiedChanged?.Invoke(sender, e); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Multiline Changed")] + public event EventHandler? MultilineChanged; + private bool MultilineChangedBool = false; + private void RichTextBox_MultilineChanged(object? sender, EventArgs e) + { + if (MultilineChanged != null && ApplicationIdle == true) + { + MultilineChanged.Invoke(sender, e); + MultilineChangedBool = true; + UpdateControlSize(); + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Read Only Changed")] + public event EventHandler? ReadOnlyChanged; + private void RichTextBox_ReadOnlyChanged(object? sender, EventArgs e) + { + ReadOnlyChanged?.Invoke(sender, e); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Selection Changed")] + public event EventHandler? SelectionChanged; + private void RichTextBox_SelectionChanged(object? sender, EventArgs e) + { + SelectionChanged?.Invoke(sender, e); + if (HideSelection) + { + richTextBox.SelectionLength = 0; + Methods.HideCaret(richTextBox.Handle); + } + else + Methods.ShowCaret(richTextBox.Handle); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Text Changed")] + public new event EventHandler? TextChanged; + private void RichTextBox_TextChanged(object? sender, EventArgs e) + { + TextChanged?.Invoke(sender, e); + richTextBox.BackColor = GetBackColor(); + richTextBox.ForeColor = GetForeColor(); + if (ScrollToBottom) + { + richTextBox.SelectionStart = richTextBox.TextLength; + richTextBox.SelectionLength = 0; + richTextBox.ScrollToCaret(); + } + } + + private void CustomRichTextBox_BackColorChanged(object? sender, EventArgs e) + { + richTextBox.BackColor = GetBackColor(); + Invalidate(); + } + + private void CustomRichTextBox_ForeColorChanged(object? sender, EventArgs e) + { + richTextBox.ForeColor = GetForeColor(); + Invalidate(); + } + + private void RichTextBox_Click(object? sender, EventArgs e) + { + OnClick(e); + } + + private void RichTextBox_MouseClick(object? sender, MouseEventArgs e) + { + OnMouseClick(e); + } + + private void RichTextBox_MouseDoubleClick(object? sender, MouseEventArgs e) + { + OnMouseDoubleClick(e); + } + + private void RichTextBox_MouseEnter(object? sender, EventArgs e) + { + OnMouseEnter(e); + } + + private void RichTextBox_MouseLeave(object? sender, EventArgs e) + { + OnMouseLeave(e); + } + + private void RichTextBox_KeyPress(object? sender, KeyPressEventArgs e) + { + OnKeyPress(e); + } + + private void RichTextBox_Enter(object? sender, EventArgs e) + { + isFocused = true; + Invalidate(); + } + + private void RichTextBox_Leave(object? sender, EventArgs e) + { + isFocused = false; + Invalidate(); + } + + private void RichTextBox_Invalidated(object? sender, InvalidateEventArgs e) + { + if (BackColor.DarkOrLight() == "Dark") + Methods.SetDarkControl(richTextBox); + richTextBox.Enabled = Enabled; + richTextBox.BackColor = GetBackColor(); + richTextBox.ForeColor = GetForeColor(); + } + + // Overridden Methods + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + Color borderColor = GetBorderColor(); + + e.Graphics.Clear(GetBackColor()); + + //Draw border + using Pen penBorder = new(borderColor, mBorderSize); + penBorder.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset; + + if (Border) + { + if (mUnderlinedStyle) // Line Style + e.Graphics.DrawLine(penBorder, 0, Height - 1, Width, Height - 1); + else //Normal Style + e.Graphics.DrawRectangle(penBorder, 0, 0, Width - 0.5F, Height - 0.5F); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + Invalidate(); + UpdateControlSize(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + UpdateControlSize(); + } + + private void UpdateControlSize() + { + if (richTextBox.Multiline == false) + { + int txtHeight = TextRenderer.MeasureText("Text", Font).Height + 2; + int padding = 6; + if (!MultilineChangedBool) + { + richTextBox.Multiline = true; + richTextBox.MinimumSize = new Size(0, txtHeight); + richTextBox.Multiline = false; + } + else + MultilineChangedBool = false; + richTextBox.Height = txtHeight; + richTextBox.Width = Width - padding; + Height = richTextBox.Height + padding; + richTextBox.Location = new(padding / 2, padding / 2); + } + else + { + int txtHeight = TextRenderer.MeasureText("Text", Font).Height + 2; + int padding = 6; + richTextBox.MinimumSize = new Size(0, txtHeight); + MinimumSize = new Size(0, txtHeight + padding); + richTextBox.Height = Height - padding; + richTextBox.Width = Width - padding; + richTextBox.Location = new(padding / 2, padding / 2); + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + { + if (isFocused) + { + // Focused Border Color + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.4f); + else + return BorderColor.ChangeBrightness(-0.4f); + } + else + return BorderColor; + } + else + { + // Disabled Border Color + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomStatusStrip.cs b/MsmhTools/CustomControls/CustomStatusStrip.cs new file mode 100644 index 0000000..27ec493 --- /dev/null +++ b/MsmhTools/CustomControls/CustomStatusStrip.cs @@ -0,0 +1,175 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 20, 2022. +*/ + +namespace CustomControls +{ + public class CustomStatusStrip : StatusStrip + { + private readonly CustomToolStripRenderer MyRenderer = new(); + + private bool mBorder = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border")] + public bool Border + { + get { return mBorder; } + set + { + if (mBorder != value) + { + mBorder = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + BorderColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + SelectionColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Border Color Changed Event")] + public event EventHandler? BorderColorChanged; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Selection Color Changed Event")] + public event EventHandler? SelectionColorChanged; + + public CustomStatusStrip() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + + MyRenderer.BackColor = GetBackColor(); + MyRenderer.ForeColor = GetForeColor(); + MyRenderer.BorderColor = GetBorderColor(); + MyRenderer.SelectionColor = SelectionColor; + Renderer = MyRenderer; + + BackColorChanged += CustomStatusStrip_BackColorChanged; + ForeColorChanged += CustomStatusStrip_ForeColorChanged; + BorderColorChanged += CustomStatusStrip_BorderColorChanged; + SelectionColorChanged += CustomStatusStrip_SelectionColorChanged; + Paint += CustomStatusStrip_Paint; + } + + private void CustomStatusStrip_BackColorChanged(object? sender, EventArgs e) + { + MyRenderer.BackColor = GetBackColor(); + Invalidate(); + } + + private void CustomStatusStrip_ForeColorChanged(object? sender, EventArgs e) + { + MyRenderer.ForeColor = GetForeColor(); + Invalidate(); + } + + private void CustomStatusStrip_BorderColorChanged(object? sender, EventArgs e) + { + MyRenderer.BorderColor = GetBorderColor(); + Invalidate(); + } + + private void CustomStatusStrip_SelectionColorChanged(object? sender, EventArgs e) + { + MyRenderer.SelectionColor = SelectionColor; + Invalidate(); + } + + private void CustomStatusStrip_Paint(object? sender, PaintEventArgs e) + { + if (Border) + { + Color borderColor = GetBorderColor(); + ControlPaint.DrawBorder(e.Graphics, ClientRectangle, borderColor, ButtonBorderStyle.Solid); + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.2f); + else + return BackColor.ChangeBrightness(-0.2f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomTabControl.cs b/MsmhTools/CustomControls/CustomTabControl.cs new file mode 100644 index 0000000..a1b93fa --- /dev/null +++ b/MsmhTools/CustomControls/CustomTabControl.cs @@ -0,0 +1,484 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 01, 2022. +*/ + +namespace CustomControls +{ + public class CustomTabControl : TabControl + { + private static class Methods + { + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + private extern static int SetWindowTheme(IntPtr controlHandle, string appName, string? idList); + internal static void SetDarkControl(Control control) + { + _ = SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + foreach (Control c in control.Controls) + { + _ = SetWindowTheme(c.Handle, "DarkMode_Explorer", null); + } + } + } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new TabAppearance Appearance { get; set; } + + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public new Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public new Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private bool mHideTabHeader = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Hide Tab Header")] + public bool HideTabHeader + { + get { return mHideTabHeader; } + set + { + if (mHideTabHeader != value) + { + mHideTabHeader = value; + HideTabHeaderChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("HideTabHeader Changed Event")] + public event EventHandler? HideTabHeaderChanged; + + private bool ControlEnabled = true; + private bool once = true; + + public CustomTabControl() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + SetStyle(ControlStyles.Opaque, true); + + ControlEnabled = Enabled; + Appearance = TabAppearance.Normal; + + HideTabHeaderChanged += CustomTabControl_HideTabHeaderChanged; + + ControlAdded += CustomTabControl_ControlAdded; + ControlRemoved += CustomTabControl_ControlRemoved; + Application.Idle += Application_Idle; + HandleCreated += CustomTabControl_HandleCreated; + LocationChanged += CustomTabControl_LocationChanged; + Move += CustomTabControl_Move; + SizeChanged += CustomTabControl_SizeChanged; + EnabledChanged += CustomTabControl_EnabledChanged; + Invalidated += CustomTabControl_Invalidated; + Paint += CustomTabControl_Paint; + } + + private void CustomTabControl_HideTabHeaderChanged(object? sender, EventArgs e) + { + if (mHideTabHeader) + { + Appearance = TabAppearance.Buttons; + ItemSize = new(0, 1); + SizeMode = TabSizeMode.Fixed; + } + else + { + Appearance = TabAppearance.Normal; + ItemSize = Size.Empty; + SizeMode = TabSizeMode.FillToRight; + } + } + + private void SearchTabPages() + { + for (int n = 0; n < TabPages.Count; n++) + { + TabPage tabPage = TabPages[n]; + tabPage.Tag = n; + tabPage.Paint -= TabPage_Paint; + tabPage.Paint += TabPage_Paint; + } + } + + private void CustomTabControl_ControlAdded(object? sender, ControlEventArgs e) + { + if (e.Control is TabPage) + SearchTabPages(); + Invalidate(); + } + + private void CustomTabControl_ControlRemoved(object? sender, ControlEventArgs e) + { + if (e.Control is TabPage) + SearchTabPages(); + Invalidate(); + } + + private void Application_Idle(object? sender, EventArgs e) + { + if (Parent != null && FindForm() != null) + { + if (once) + { + SearchTabPages(); + + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TabPage_Paint(object? sender, PaintEventArgs e) + { + TabPage tabPage = sender as TabPage; + + Color tabPageColor; + if (Enabled) + tabPageColor = tabPage.BackColor; + else + { + if (tabPage.BackColor.DarkOrLight() == "Dark") + tabPageColor = tabPage.BackColor.ChangeBrightness(0.3f); + else + tabPageColor = tabPage.BackColor.ChangeBrightness(-0.3f); + } + + using SolidBrush sb = new(tabPageColor); + e.Graphics.FillRectangle(sb, e.ClipRectangle); + + Control tabControl = tabPage.Parent; + tabControl.Tag = tabPage.Tag; + tabControl.Paint -= TabControl_Paint; + tabControl.Paint += TabControl_Paint; + } + + private void TabControl_Paint(object? sender, PaintEventArgs e) + { + // Selected Tab Can Be Paint Also Here + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTabControl_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTabControl_LocationChanged(object? sender, EventArgs e) + { + if (sender is TabControl tabControl) + tabControl.Invalidate(); + } + + private void CustomTabControl_Move(object? sender, EventArgs e) + { + if (sender is TabControl tabControl) + tabControl.Invalidate(); + } + + private void CustomTabControl_SizeChanged(object? sender, EventArgs e) + { + if (sender is TabControl tabControl) + tabControl.Invalidate(); + } + + private void CustomTabControl_EnabledChanged(object? sender, EventArgs e) + { + ControlEnabled = Enabled; + } + + private void CustomTabControl_Invalidated(object? sender, InvalidateEventArgs e) + { + if (BackColor.DarkOrLight() == "Dark") + Methods.SetDarkControl(this); + } + + private void CustomTabControl_Paint(object? sender, PaintEventArgs e) + { + if (sender is TabControl tc) + { + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + Color borderColor = GetBorderColor(); + + // Paint Background + e.Graphics.Clear(backColor); + + for (int n = 0; n < TabPages.Count; n++) + { + TabPage tabPage = TabPages[n]; + TabPage selectedTabPage = TabPages[tc.SelectedIndex]; + int index = n; + Rectangle rectTab = GetTabRect(index); + using Pen pen = new(borderColor); + using SolidBrush brush = new(backColor); + + // Mouse Position + Point mP = tc.PointToClient(MousePosition); + + // Selected tab Rectangle + Rectangle rectSelectedTab = GetTabRect(tc.SelectedIndex); + if (Alignment == TabAlignment.Top) + { + if (RightToLeft == RightToLeft.No || RightToLeft == RightToLeft.Yes && !RightToLeftLayout) + rectSelectedTab = Rectangle.FromLTRB(rectSelectedTab.Left - 2, rectSelectedTab.Top - 2, rectSelectedTab.Right + 1, rectSelectedTab.Bottom); + else if (RightToLeft == RightToLeft.Yes && RightToLeftLayout) + rectSelectedTab = Rectangle.FromLTRB(rectSelectedTab.Left - 1, rectSelectedTab.Top - 2, rectSelectedTab.Right, rectSelectedTab.Bottom); + } + + if (!mHideTabHeader) + { + // Paint Non-Selected Tab + if (tc.SelectedIndex != n) + { + e.Graphics.FillRectangle(brush, rectTab); + + if (!DesignMode && Enabled && rectTab.Contains(mP)) + { + Color colorHover; + if (backColor.DarkOrLight() == "Dark") + colorHover = backColor.ChangeBrightness(0.2f); + else + colorHover = backColor.ChangeBrightness(-0.2f); + using SolidBrush brushHover = new(colorHover); + e.Graphics.FillRectangle(brushHover, rectTab); + } + + int tabImageIndex = tabPage.ImageIndex; + string tabImageKey = tabPage.ImageKey; + + if (tabImageIndex != -1 && tc.ImageList != null) + { + Image tabImage = tc.ImageList.Images[tabImageIndex]; + PaintImageText(e.Graphics, tc, tabPage, rectTab, tabImage, Font, foreColor); + } + else if (tabImageKey != null && tc.ImageList != null) + { + Image tabImage = tc.ImageList.Images[tabImageKey]; + PaintImageText(e.Graphics, tc, tabPage, rectTab, tabImage, Font, foreColor); + } + else + { + TextRenderer.DrawText(e.Graphics, tabPage.Text, Font, rectTab, foreColor); + } + + e.Graphics.DrawRectangle(pen, rectTab); + } + + // Paint Selected Tab + using SolidBrush brushST = new(backColor.ChangeBrightness(-0.3f)); + e.Graphics.FillRectangle(brushST, rectSelectedTab); + + int selectedTabImageIndex = selectedTabPage.ImageIndex; + string selectedTabImageKey = selectedTabPage.ImageKey; + + if (selectedTabImageIndex != -1 && tc.ImageList != null) + { + Image tabImage = tc.ImageList.Images[selectedTabImageIndex]; + PaintImageText(e.Graphics, tc, selectedTabPage, rectSelectedTab, tabImage, Font, foreColor); + } + else if (selectedTabImageKey != null && tc.ImageList != null) + { + Image tabImage = tc.ImageList.Images[selectedTabImageKey]; + PaintImageText(e.Graphics, tc, selectedTabPage, rectSelectedTab, tabImage, Font, foreColor); + } + else + { + TextRenderer.DrawText(e.Graphics, selectedTabPage.Text, Font, rectSelectedTab, foreColor); + } + + e.Graphics.DrawRectangle(pen, rectSelectedTab); + + // Paint Main Control Border + Rectangle rectPage = ClientRectangle; + if (Alignment == TabAlignment.Top) + { + rectPage = Rectangle.FromLTRB(ClientRectangle.Left, rectSelectedTab.Bottom, ClientRectangle.Right, ClientRectangle.Bottom); + if (RightToLeft == RightToLeft.Yes && RightToLeftLayout) + rectPage = Rectangle.FromLTRB(ClientRectangle.Left, rectSelectedTab.Bottom, ClientRectangle.Right - 1, ClientRectangle.Bottom); + } + else if (Alignment == TabAlignment.Bottom) + { + rectPage = Rectangle.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, ClientRectangle.Right, rectSelectedTab.Top + 1); + } + else if (Alignment == TabAlignment.Left) + { + rectPage = Rectangle.FromLTRB(rectSelectedTab.Right, ClientRectangle.Top, ClientRectangle.Right, ClientRectangle.Bottom); + } + else if (Alignment == TabAlignment.Right) + { + rectPage = Rectangle.FromLTRB(ClientRectangle.Left, ClientRectangle.Top, rectSelectedTab.Left + 1, ClientRectangle.Bottom); + } + + ControlPaint.DrawBorder(e.Graphics, rectPage, borderColor, ButtonBorderStyle.Solid); + + if (Alignment == TabAlignment.Top) + { + // to overlap selected tab bottom line + using Pen penLine = new(backColor.ChangeBrightness(-0.3f)); + e.Graphics.DrawLine(penLine, rectSelectedTab.Left + 1, rectSelectedTab.Bottom, rectSelectedTab.Right - 1, rectSelectedTab.Bottom); + } + else if (Alignment == TabAlignment.Bottom) + { + // to overlap selected tab top line + using Pen penLine = new(backColor.ChangeBrightness(-0.3f)); + e.Graphics.DrawLine(penLine, rectSelectedTab.Left + 1, rectSelectedTab.Top, rectSelectedTab.Right - 1, rectSelectedTab.Top); + } + else if (Alignment == TabAlignment.Left) + { + // to overlap selected tab right line + using Pen penLine = new(backColor.ChangeBrightness(-0.3f)); + e.Graphics.DrawLine(penLine, rectSelectedTab.Right, rectSelectedTab.Top + 1, rectSelectedTab.Right, rectSelectedTab.Bottom - 1); + } + else if (Alignment == TabAlignment.Right) + { + // to overlap selected tab left line + using Pen penLine = new(backColor.ChangeBrightness(-0.3f)); + e.Graphics.DrawLine(penLine, rectSelectedTab.Left, rectSelectedTab.Top + 1, rectSelectedTab.Left, rectSelectedTab.Bottom - 1); + } + } + else + { + // Paint Main Control Border + ControlPaint.DrawBorder(e.Graphics, ClientRectangle, borderColor, ButtonBorderStyle.Solid); + } + } + } + } + + private void PaintImageText(Graphics graphics, TabControl tc, TabPage tabPage, Rectangle rectTab, Image? tabImage, Font font, Color foreColor) + { + if (HideTabHeader) + return; + if (tabImage != null) + { + Rectangle rectImage = new(rectTab.X + tc.Padding.X, rectTab.Y + tc.Padding.Y, tabImage.Width, tabImage.Height); + rectImage.Location = new(rectImage.X, rectTab.Y + (rectTab.Height - rectImage.Height) / 2); + graphics.DrawImage(tabImage, rectImage); + Rectangle rectText = new(rectTab.X + rectImage.Width, rectTab.Y, rectTab.Width - rectImage.Width, rectTab.Height); + TextRenderer.DrawText(graphics, tabPage.Text, font, rectText, foreColor); + } + else + TextRenderer.DrawText(graphics, tabPage.Text, font, rectTab, foreColor); + } + + private Color GetBackColor() + { + if (ControlEnabled) + return BackColor; + else + { + Color disabledBackColor; + if (BackColor.DarkOrLight() == "Dark") + disabledBackColor = BackColor.ChangeBrightness(0.3f); + else + disabledBackColor = BackColor.ChangeBrightness(-0.3f); + return disabledBackColor; + } + } + + private Color GetForeColor() + { + if (ControlEnabled) + return ForeColor; + else + { + Color disabledForeColor; + if (ForeColor.DarkOrLight() == "Dark") + disabledForeColor = ForeColor.ChangeBrightness(0.2f); + else + disabledForeColor = ForeColor.ChangeBrightness(-0.2f); + return disabledForeColor; + } + } + + private Color GetBorderColor() + { + if (ControlEnabled) + return BorderColor; + else + { + Color disabledBorderColor; + if (BorderColor.DarkOrLight() == "Dark") + disabledBorderColor = BorderColor.ChangeBrightness(0.3f); + else + disabledBorderColor = BorderColor.ChangeBrightness(-0.3f); + return disabledBorderColor; + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomTextBox.cs b/MsmhTools/CustomControls/CustomTextBox.cs new file mode 100644 index 0000000..8905e86 --- /dev/null +++ b/MsmhTools/CustomControls/CustomTextBox.cs @@ -0,0 +1,646 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Drawing.Design; +using System.Runtime.InteropServices; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, May 10, 2022. +*/ + +namespace CustomControls +{ + [DefaultEvent("TextChanged")] + public class CustomTextBox : UserControl + { + private static class Methods + { + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + private extern static int SetWindowTheme(IntPtr controlHandle, string appName, string? idList); + internal static void SetDarkControl(Control control) + { + _ = SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + foreach (Control c in control.Controls) + { + _ = SetWindowTheme(c.Handle, "DarkMode_Explorer", null); + } + } + } + + // Disable + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new Padding Padding { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new AutoSizeMode AutoSizeMode { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new AutoValidate AutoValidate { get; set; } + + private readonly TextBox textBox = new(); + private bool isFocused = false; + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + private bool mBorder = true; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border")] + public bool Border + { + get { return mBorder; } + set + { + if (mBorder != value) + { + mBorder = value; + Invalidate(); + } + } + } + + private int mBorderSize = 1; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border Size")] + public int BorderSize + { + get { return mBorderSize; } + set + { + if (mBorderSize != value) + { + mBorderSize = value; + Invalidate(); + } + } + } + + [Category("Appearance"), Description("Font")] + public override Font Font + { + get { return base.Font; } + set + { + base.Font = value; + textBox.Font = value; + if (DesignMode) + UpdateControlSize(); + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("ScrollBar")] + public ScrollBars ScrollBars + { + get { return textBox.ScrollBars; } + set { textBox.ScrollBars = value; } + } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public override string Text + { + get { return textBox.Text; } + set + { + base.Text = value; + textBox.Text = value; + } + } + + [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0," + + "Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))] + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Texts")] + public string Texts + { + get { return textBox.Text; } + set { textBox.Text = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Text Align")] + public HorizontalAlignment TextAlign + { + get { return textBox.TextAlign; } + set { textBox.TextAlign = value; } + } + + private bool mUnderlinedStyle = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border Underlined Style")] + public bool UnderlinedStyle + { + get { return mUnderlinedStyle; } + set + { + if (mUnderlinedStyle != value) + { + mUnderlinedStyle = value; + Invalidate(); + } + } + } + + // Behavior + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Accepts Return")] + public bool AcceptsReturn + { + get { return textBox.AcceptsReturn; } + set { textBox.AcceptsReturn = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Accepts Tab")] + public bool AcceptsTab + { + get { return textBox.AcceptsTab; } + set { textBox.AcceptsTab = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Allow Drop")] + public override bool AllowDrop + { + get { return textBox.AllowDrop; } + set { textBox.AllowDrop = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Character Casing")] + public CharacterCasing CharacterCasing + { + get { return textBox.CharacterCasing; } + set { textBox.CharacterCasing = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Context Menu Strip")] + public override ContextMenuStrip ContextMenuStrip + { + get { return textBox.ContextMenuStrip; } + set { textBox.ContextMenuStrip = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Hide Selection")] + public bool HideSelection + { + get { return textBox.HideSelection; } + set { textBox.HideSelection = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Input Method Editor")] + public new ImeMode ImeMode + { + get { return textBox.ImeMode; } + set { textBox.ImeMode = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Max Length")] + public int MaxLength + { + get { return textBox.MaxLength; } + set { textBox.MaxLength = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Multiline Style")] + public bool Multiline + { + get { return textBox.Multiline; } + set + { + textBox.Multiline = value; + if (DesignMode) + UpdateControlSize(); + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Read Only")] + public bool ReadOnly + { + get { return textBox.ReadOnly; } + set { textBox.ReadOnly = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Shortcuts Enabled")] + public bool ShortcutsEnabled + { + get { return textBox.ShortcutsEnabled; } + set { textBox.ShortcutsEnabled = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Tab Index")] + public new int TabIndex + { + get { return textBox.TabIndex; } + set { textBox.TabIndex = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Tab Stop")] + public new bool TabStop + { + get { return textBox.TabStop; } + set { textBox.TabStop = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Password Style")] + public bool UsePasswordChar + { + get { return textBox.UseSystemPasswordChar; } + set { textBox.UseSystemPasswordChar = value; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Word Wrap Style")] + public bool WordWrap + { + get { return textBox.WordWrap; } + set { textBox.WordWrap = value; } + } + + private bool ApplicationIdle = false; + private bool once = true; + + public CustomTextBox() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + Font = new("Segoe UI", 9); + AutoScaleMode = AutoScaleMode.None; + Padding = new(0); + Size = new(100, 23); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + AutoScroll = false; + AutoScrollMargin = new(0, 0); + AutoScrollMinSize = new(0, 0); + AutoSize = false; + + // Disabled + AutoSizeMode = AutoSizeMode.GrowOnly; + AutoValidate = AutoValidate.EnablePreventFocusChange; + + Controls.Add(textBox); + textBox.BackColor = GetBackColor(); + textBox.ForeColor = GetForeColor(); + //textBox.Dock = DockStyle.Fill; + textBox.BorderStyle = BorderStyle.None; + + // Events + Application.Idle += Application_Idle; + EnabledChanged += CustomTextBox_EnabledChanged; + BackColorChanged += CustomTextBox_BackColorChanged; + ForeColorChanged += CustomTextBox_ForeColorChanged; + textBox.Click += TextBox_Click; + textBox.MouseEnter += TextBox_MouseEnter; + textBox.MouseLeave += TextBox_MouseLeave; + textBox.KeyPress += TextBox_KeyPress; + textBox.Enter += TextBox_Enter; + textBox.Leave += TextBox_Leave; + textBox.Invalidated += TextBox_Invalidated; + textBox.AcceptsTabChanged += TextBox_AcceptsTabChanged; + textBox.HideSelectionChanged += TextBox_HideSelectionChanged; + textBox.ModifiedChanged += TextBox_ModifiedChanged; + textBox.MultilineChanged += TextBox_MultilineChanged; + textBox.ReadOnlyChanged += TextBox_ReadOnlyChanged; + textBox.TextAlignChanged += TextBox_TextAlignChanged; + textBox.TextChanged += TextBox_TextChanged; + } + + // Events + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? Scroll; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? Load; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? PaddingChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? AutoSizeChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? AutoValidateChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? BackgroundImageChanged; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new event EventHandler? BackgroundImageLayoutChanged; + + private void Application_Idle(object? sender, EventArgs e) + { + ApplicationIdle = true; + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTextBox_EnabledChanged(object? sender, EventArgs e) + { + textBox.Enabled = Enabled; + Invalidate(); + textBox.Invalidate(); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Accepts Tab Changed")] + public event EventHandler? AcceptsTabChanged; + private void TextBox_AcceptsTabChanged(object? sender, EventArgs e) + { + AcceptsTabChanged?.Invoke(sender, e); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Hide Selection Changed")] + public event EventHandler? HideSelectionChanged; + private void TextBox_HideSelectionChanged(object? sender, EventArgs e) + { + HideSelectionChanged?.Invoke(sender, e); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Modified Changed")] + public event EventHandler? ModifiedChanged; + private void TextBox_ModifiedChanged(object? sender, EventArgs e) + { + ModifiedChanged?.Invoke(sender, e); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Multiline Changed")] + public event EventHandler? MultilineChanged; + private bool MultilineChangedBool = false; + private void TextBox_MultilineChanged(object? sender, EventArgs e) + { + if (MultilineChanged != null && ApplicationIdle == true) + { + MultilineChanged.Invoke(sender, e); + MultilineChangedBool = true; + UpdateControlSize(); + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Read Only Changed")] + public event EventHandler? ReadOnlyChanged; + private void TextBox_ReadOnlyChanged(object? sender, EventArgs e) + { + ReadOnlyChanged?.Invoke(sender, e); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Text Align Changed")] + public event EventHandler? TextAlignChanged; + private void TextBox_TextAlignChanged(object? sender, EventArgs e) + { + TextAlignChanged?.Invoke(sender, e); + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Text Changed")] + public new event EventHandler? TextChanged; + private void TextBox_TextChanged(object? sender, EventArgs e) + { + TextChanged?.Invoke(sender, e); + } + + private void CustomTextBox_BackColorChanged(object? sender, EventArgs e) + { + textBox.BackColor = GetBackColor(); + Invalidate(); + } + + private void CustomTextBox_ForeColorChanged(object? sender, EventArgs e) + { + textBox.ForeColor = GetForeColor(); + Invalidate(); + } + + private void TextBox_Click(object? sender, EventArgs e) + { + OnClick(e); + } + + private void TextBox_MouseEnter(object? sender, EventArgs e) + { + OnMouseEnter(e); + } + + private void TextBox_MouseLeave(object? sender, EventArgs e) + { + OnMouseLeave(e); + } + + private void TextBox_KeyPress(object? sender, KeyPressEventArgs e) + { + OnKeyPress(e); + } + + private void TextBox_Enter(object? sender, EventArgs e) + { + isFocused = true; + Invalidate(); + } + + private void TextBox_Leave(object? sender, EventArgs e) + { + isFocused = false; + Invalidate(); + } + + private void TextBox_Invalidated(object? sender, InvalidateEventArgs e) + { + if (BackColor.DarkOrLight() == "Dark") + Methods.SetDarkControl(textBox); + textBox.Enabled = Enabled; + textBox.BackColor = GetBackColor(); + textBox.ForeColor = GetForeColor(); + } + + // Overridden Methods + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + Color borderColor = GetBorderColor(); + + e.Graphics.Clear(GetBackColor()); + + //Draw border + using Pen penBorder = new(borderColor, mBorderSize); + penBorder.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset; + + if (Border) + { + if (mUnderlinedStyle) // Line Style + e.Graphics.DrawLine(penBorder, 0, Height - 1, Width, Height - 1); + else //Normal Style + e.Graphics.DrawRectangle(penBorder, 0, 0, Width - 0.5F, Height - 0.5F); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + Invalidate(); + UpdateControlSize(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + UpdateControlSize(); + } + + private void UpdateControlSize() + { + if (textBox.Multiline == false) + { + int txtHeight = TextRenderer.MeasureText("Text", Font).Height + 2; + int padding = 6; + if (!MultilineChangedBool) + { + textBox.Multiline = true; + textBox.MinimumSize = new Size(0, txtHeight); + textBox.Multiline = false; + } + else + MultilineChangedBool = false; + textBox.Height = txtHeight; + textBox.Width = Width - padding; + Height = textBox.Height + padding; + textBox.Location = new(padding / 2, padding / 2); + } + else + { + int txtHeight = TextRenderer.MeasureText("Text", Font).Height + 2; + int padding = 6; + textBox.MinimumSize = new Size(0, txtHeight); + MinimumSize = new Size(0, txtHeight + padding); + textBox.Height = Height - padding; + textBox.Width = Width - padding; + textBox.Location = new(padding / 2, padding / 2); + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + { + if (isFocused) + { + // Focused Border Color + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.4f); + else + return BorderColor.ChangeBrightness(-0.4f); + } + else + return BorderColor; + } + else + { + // Disabled Border Color + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomTextBox.resx b/MsmhTools/CustomControls/CustomTextBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MsmhTools/CustomControls/CustomTextBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/MsmhTools/CustomControls/CustomTimeUpDown.cs b/MsmhTools/CustomControls/CustomTimeUpDown.cs new file mode 100644 index 0000000..a735e78 --- /dev/null +++ b/MsmhTools/CustomControls/CustomTimeUpDown.cs @@ -0,0 +1,362 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Globalization; +using System.Windows.Forms; +using System.Windows.Forms.Design; + +namespace CustomControls +{ + public class CustomTimeUpDown : UserControl + { + protected override CreateParams CreateParams // Fixes Flickers + { + get + { + CreateParams cp = base.CreateParams; + cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED + return cp; + } + } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new BorderStyle BorderStyle { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new bool AutoScroll { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new Size AutoScrollMargin { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new Size AutoScrollMinSize { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new bool AutoSize { get; set; } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public new AutoSizeMode AutoSizeMode { get; set; } + + private readonly MaskedTextBox MaskedTextBox1 = new(); + private readonly CustomNumericUpDown NumericUpDown1 = new(); + + protected bool mBorder = true; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border")] + public bool Border + { + get { return mBorder; } + set + { + if (mBorder != value) + { + mBorder = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + NumericUpDown1.BorderColor = value; + Invalidate(); + } + } + } + + private bool once = true; + private const decimal MaxTimeTotalMilliseconds = 359999999; // new TimeConvert(99, 59, 59, 999).TotalMilliseconds + + private decimal mValue = 0; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Value (Milliseconds)")] + public decimal Value + { + get { return mValue; } + set + { + if (mValue != value) + { + if (value > MaxTimeTotalMilliseconds) + value = MaxTimeTotalMilliseconds; + else if (value < 0) + value = 0; + + mValue = value; + NumericUpDown1.Value = value; + TimeConvert timeCode = new((double)value); + MaskedTextBox1.Text = timeCode.ToString(); + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Action"), Description("Value Changed Event")] + public event EventHandler? ValueChanged; + + public CustomTimeUpDown() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + UpdateSizeAndColor(); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + NumericUpDown1.Value = 0; + NumericUpDown1.Increment = 100; + NumericUpDown1.Minimum = 0; + NumericUpDown1.Maximum = 359999999; // ~100 Hours + MaskedTextBox1.Text = "00:00:00.000"; + + Controls.Add(NumericUpDown1.Controls[0]); + Controls.Add(MaskedTextBox1); + MaskedTextBox1.BringToFront(); + + NumericUpDown1.ValueChanged += NumericUpDown1_ValueChanged; + MaskedTextBox1.TextChanged += MaskedTextBox1_TextChanged; + MaskedTextBox1.KeyDown += MaskedTextBox1_KeyDown; + + Application.Idle += Application_Idle; + HandleCreated += CustomTimeUpDown_HandleCreated; + FontChanged += CustomTimeUpDown_FontChanged; + LocationChanged += CustomTimeUpDown_LocationChanged; + Move += CustomTimeUpDown_Move; + EnabledChanged += CustomTimeUpDown_EnabledChanged; + Paint += CustomTimeUpDown_Paint; + + } + + private void Application_Idle(object? sender, EventArgs e) + { + if (Parent != null && FindForm() != null) + { + if (once) + { + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTimeUpDown_HandleCreated(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTimeUpDown_FontChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTimeUpDown_LocationChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTimeUpDown_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTimeUpDown_EnabledChanged(object? sender, EventArgs e) + { + Invalidate(); + } + + private void CustomTimeUpDown_Paint(object? sender, PaintEventArgs e) + { + UpdateSizeAndColor(); + e.Graphics.Clear(GetBackColor()); + if (Border) + { + ControlPaint.DrawBorder(e.Graphics, ClientRectangle, GetBorderColor(), ButtonBorderStyle.Solid); + } + } + + private void UpdateSizeAndColor() + { + Color backColor = GetBackColor(); + Color foreColor = GetForeColor(); + + int UpDownWidth = 18; + BorderStyle = BorderStyle.None; + AutoSize = false; + AutoSizeMode = AutoSizeMode.GrowAndShrink; + MinimumSize = new(0, 0); + MaximumSize = new(0, 0); + int width = (int)Math.Round(Graphics.FromImage(new Bitmap(1, 1)).MeasureString("00:00:00.000", Font).Width); // More accurate than MeasureText() + NumericUpDown1.Font = Font; + NumericUpDown1.AutoSize = false; + NumericUpDown1.Size = new(width + UpDownWidth, 0); + Size = NumericUpDown1.Size; + ClientSize = Size; + NumericUpDown1.BorderStyle = BorderStyle.FixedSingle; + if (Border) + NumericUpDown1.BorderColor = BorderColor; + else + NumericUpDown1.BorderColor = BackColor; + NumericUpDown1.Margin = new(0); + NumericUpDown1.TabStop = false; + NumericUpDown1.BackColor = backColor; + NumericUpDown1.ForeColor = foreColor; + MaskedTextBox1.InsertKeyMode = InsertKeyMode.Overwrite; + MaskedTextBox1.Mask = "00:00:00.000"; + MaskedTextBox1.PromptChar = '_'; + MaskedTextBox1.AutoSize = false; + MaskedTextBox1.Size = new(ClientRectangle.Width - (UpDownWidth + 2), ClientRectangle.Height - 4); + MaskedTextBox1.Margin = new(0); + MaskedTextBox1.InsertKeyMode = InsertKeyMode.Overwrite; + MaskedTextBox1.BorderStyle = BorderStyle.None; + MaskedTextBox1.BackColor = backColor; + MaskedTextBox1.ForeColor = foreColor; + if (RightToLeft == RightToLeft.No) + { + NumericUpDown1.RightToLeft = RightToLeft.No; + MaskedTextBox1.RightToLeft = RightToLeft.No; + NumericUpDown1.Location = new(0, 0); + MaskedTextBox1.Location = new(2, 2); + } + else + { + NumericUpDown1.RightToLeft = RightToLeft.Yes; + MaskedTextBox1.RightToLeft = RightToLeft.Yes; + NumericUpDown1.Location = new(0, 0); + MaskedTextBox1.Location = new(18, 2); + } + NumericUpDown1.Enabled = Enabled; + MaskedTextBox1.Enabled = Enabled; + } + + private void NumericUpDown1_ValueChanged(object? sender, EventArgs e) + { + Value = NumericUpDown1.Value; + TimeConvert timeCode = new((double)NumericUpDown1.Value); + MaskedTextBox1.Text = timeCode.ToString(); + ValueChanged?.Invoke(this, e); + } + + private void MaskedTextBox1_TextChanged(object? sender, EventArgs e) + { + decimal value = (decimal)TimeConvert.ParseToMilliseconds(MaskedTextBox1.Text); + if (value != Value) + { + if (NumericUpDown1.Minimum <= value && value <= NumericUpDown1.Maximum) + { + if (NumericUpDown1.Value != value) + NumericUpDown1.Value = value; + } + else + { + if (NumericUpDown1.Minimum > value) + { + MaskedTextBox1.Text = "00:00:00.000"; + NumericUpDown1.Value = NumericUpDown1.Minimum; + } + else if (value > NumericUpDown1.Maximum) + { + MaskedTextBox1.Text = "99:59:59.999"; + NumericUpDown1.Value = NumericUpDown1.Maximum; + } + } + } + } + + private void MaskedTextBox1_KeyDown(object? sender, KeyEventArgs e) + { + if (e.KeyData == Keys.Up) + { + NumericUpDown1.UpButton(); + e.SuppressKeyPress = true; + } + else if (e.KeyData == Keys.Down) + { + NumericUpDown1.DownButton(); + e.SuppressKeyPress = true; + } + else if (e.KeyData == Keys.Enter) + { + ValueChanged?.Invoke(this, e); + e.SuppressKeyPress = true; + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.3f); + else + return BackColor.ChangeBrightness(-0.3f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomTimeUpDown.resx b/MsmhTools/CustomControls/CustomTimeUpDown.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MsmhTools/CustomControls/CustomTimeUpDown.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/MsmhTools/CustomControls/CustomToolStrip.cs b/MsmhTools/CustomControls/CustomToolStrip.cs new file mode 100644 index 0000000..83bbbf2 --- /dev/null +++ b/MsmhTools/CustomControls/CustomToolStrip.cs @@ -0,0 +1,181 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 20, 2022. +*/ + +namespace CustomControls +{ + public class CustomToolStrip : ToolStrip + { + private readonly CustomToolStripRenderer MyRenderer = new(); + + private bool mBorder = false; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Border")] + public bool Border + { + get { return mBorder; } + set + { + if (mBorder != value) + { + mBorder = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + BorderColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + SelectionColorChanged?.Invoke(this, EventArgs.Empty); + Invalidate(); + } + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Border Color Changed Event")] + public event EventHandler? BorderColorChanged; + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Property Changed"), Description("Selection Color Changed Event")] + public event EventHandler? SelectionColorChanged; + + public CustomToolStrip() : base() + { + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + // Default + BackColor = Color.DimGray; + ForeColor = Color.White; + + MyRenderer.BackColor = GetBackColor(); + MyRenderer.ForeColor = GetForeColor(); + MyRenderer.BorderColor = GetBorderColor(); + MyRenderer.SelectionColor = SelectionColor; + Renderer = MyRenderer; + + BackColorChanged += CustomToolStrip_BackColorChanged; + ForeColorChanged += CustomToolStrip_ForeColorChanged; + BorderColorChanged += CustomToolStrip_BorderColorChanged; + SelectionColorChanged += CustomToolStrip_SelectionColorChanged; + Paint += CustomToolStrip_Paint; + + } + + private void CustomToolStrip_BackColorChanged(object? sender, EventArgs e) + { + MyRenderer.BackColor = GetBackColor(); + Invalidate(); + } + + private void CustomToolStrip_ForeColorChanged(object? sender, EventArgs e) + { + MyRenderer.ForeColor = GetForeColor(); + Invalidate(); + } + + private void CustomToolStrip_BorderColorChanged(object? sender, EventArgs e) + { + MyRenderer.BorderColor = GetBorderColor(); + Invalidate(); + } + + private void CustomToolStrip_SelectionColorChanged(object? sender, EventArgs e) + { + MyRenderer.SelectionColor = SelectionColor; + Invalidate(); + } + + private void CustomToolStrip_Paint(object? sender, PaintEventArgs e) + { + // Paint Background + using SolidBrush bgBrush = new(GetBackColor()); + e.Graphics.FillRectangle(bgBrush, ClientRectangle); + + // Paint Border + if (Border) + { + Color borderColor = GetBorderColor(); + ControlPaint.DrawBorder(e.Graphics, ClientRectangle, borderColor, ButtonBorderStyle.Solid); + } + } + + private Color GetBackColor() + { + if (Enabled) + return BackColor; + else + { + if (BackColor.DarkOrLight() == "Dark") + return BackColor.ChangeBrightness(0.2f); + else + return BackColor.ChangeBrightness(-0.2f); + } + } + + private Color GetForeColor() + { + if (Enabled) + return ForeColor; + else + { + if (ForeColor.DarkOrLight() == "Dark") + return ForeColor.ChangeBrightness(0.2f); + else + return ForeColor.ChangeBrightness(-0.2f); + } + } + + private Color GetBorderColor() + { + if (Enabled) + return BorderColor; + else + { + if (BorderColor.DarkOrLight() == "Dark") + return BorderColor.ChangeBrightness(0.3f); + else + return BorderColor.ChangeBrightness(-0.3f); + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomToolStripComboBox.cs b/MsmhTools/CustomControls/CustomToolStripComboBox.cs new file mode 100644 index 0000000..872cd01 --- /dev/null +++ b/MsmhTools/CustomControls/CustomToolStripComboBox.cs @@ -0,0 +1,348 @@ +using System; +using System.ComponentModel; +using System.Windows.Forms.Design; +/* + * Copyright MSasanMH, April 16, 2022. + * Needs CustomComboBox. + */ + +namespace CustomControls +{ + public delegate void DrawControlEventHandler(object sender, Graphics g, Rectangle drawRect); + + [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.All)] + [ToolboxBitmap(typeof(CustomToolStripComboBox), "")] + public class CustomToolStripComboBox : ToolStripControlHost + { + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public override Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + ComboBox.BackColor = BackColor; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + ComboBox.ForeColor = ForeColor; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + ComboBox.BorderColor = BorderColor; + Invalidate(); + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + ComboBox.SelectionColor = SelectionColor; + Invalidate(); + } + } + } + + public event EventHandler? DropDown; + public event EventHandler? DropDownClosed; + public event EventHandler? SelectionIndexChanged; + + public CustomToolStripComboBox() : base(new CustomComboBox()) + { + ComboBox.DropDown += new EventHandler(ComboBox_DropDown); + ComboBox.DropDownClosed += new EventHandler(ComboBox_DropDownClosed); + ComboBox.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged); + Paint += CustomToolStripComboBox_Paint; + } + + private void CustomToolStripComboBox_Paint(object? sender, PaintEventArgs e) + { + ComboBox.BackColor = BackColor; + ComboBox.ForeColor = ForeColor; + ComboBox.BorderColor = BorderColor; + ComboBox.SelectionColor = SelectionColor; + } + + private void ComboBox_DropDown(object? sender, EventArgs e) + { + DropDown?.Invoke(sender, e); + } + + private void ComboBox_DropDownClosed(object? sender, EventArgs e) + { + DropDownClosed?.Invoke(sender, e); + } + + private void ComboBox_SelectedIndexChanged(object? sender, EventArgs e) + { + SelectionIndexChanged?.Invoke(sender, e); + } + + public CustomComboBox ComboBox + { + get { return (CustomComboBox)Control; } + } + + public ComboBox.ObjectCollection Items + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.Items; + } + } + + public AutoCompleteSource AutoCompleteSource + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.AutoCompleteSource; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.AutoCompleteSource = value; + } + } + + public AutoCompleteMode AutoCompleteMode + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.AutoCompleteMode; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.AutoCompleteMode = value; + } + } + + public AutoCompleteStringCollection AutoCompleteCustomSource + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.AutoCompleteCustomSource; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.AutoCompleteCustomSource = value; + } + } + + public int DropDownHeight + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.DropDownHeight; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.DropDownHeight = value; + } + } + + public ComboBoxStyle DropDownStyle + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.DropDownStyle; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.DropDownStyle = value; + } + } + + public int DropDownWidth + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.DropDownWidth; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.DropDownWidth = value; + } + } + + public FlatStyle FlatStyle + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.FlatStyle; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.FlatStyle = value; + } + } + + public bool IntegralHeight + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.IntegralHeight; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.IntegralHeight = value; + } + } + + public int MaxDropDownItems + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.MaxDropDownItems; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.MaxDropDownItems = value; + } + } + + public int SelectedIndex + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.SelectedIndex; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.SelectedIndex = value; + } + } + + public object SelectedItem + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.SelectedItem; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.SelectedItem = value; + } + } + + public string SelectedText + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.SelectedText; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.SelectedText = value; + } + } + + public int SelectionLength + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.SelectionLength; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.SelectionLength = value; + } + } + + public int SelectionStart + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.SelectionStart; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.SelectionStart = value; + } + } + + public bool Sorted + { + get + { + CustomComboBox ccb = (CustomComboBox)Control; + return ccb.Sorted; + } + set + { + CustomComboBox ccb = (CustomComboBox)Control; + ccb.Sorted = value; + } + } + } +} diff --git a/MsmhTools/CustomControls/CustomToolStripRenderer.cs b/MsmhTools/CustomControls/CustomToolStripRenderer.cs new file mode 100644 index 0000000..efdaa2e --- /dev/null +++ b/MsmhTools/CustomControls/CustomToolStripRenderer.cs @@ -0,0 +1,197 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 20, 2022. +*/ + +namespace CustomControls +{ + public class CustomToolStripRenderer : ToolStripProfessionalRenderer + { + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + } + } + } + + private Color mSelectionColor = Color.LightBlue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Selection Color")] + public Color SelectionColor + { + get { return mSelectionColor; } + set + { + if (mSelectionColor != value) + { + mSelectionColor = value; + } + } + } + + protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e) + { + if (e.Item as ToolStripSeparator == null) + base.OnRenderSeparator(e); + else + { + var toolStripSeparator = e.Item as ToolStripSeparator; + Rectangle rect = e.Item.Bounds; + + // Paint Background + using SolidBrush bgBrush = new(toolStripSeparator.BackColor); + e.Graphics.FillRectangle(bgBrush, rect); + + Color line2; + if (toolStripSeparator.ForeColor.DarkOrLight() == "Dark") + line2 = ControlPaint.Light(toolStripSeparator.ForeColor); + else + line2 = ControlPaint.Dark(toolStripSeparator.ForeColor); + if (e.Vertical) + { + // Paint Vertical Separator + Rectangle bounds = rect; + bounds.Y += 3; + bounds.Height = Math.Max(0, bounds.Height - 6); + if (bounds.Height >= 4) bounds.Inflate(0, -2); + int x = bounds.Width / 2; + using Pen pen1 = new(toolStripSeparator.ForeColor); + e.Graphics.DrawLine(pen1, x, bounds.Top, x, bounds.Bottom - 1); + using Pen pen2 = new(line2); + e.Graphics.DrawLine(pen2, x + 1, bounds.Top + 1, x + 1, bounds.Bottom); + } + else + { + // Paint Horizontal Separator + Rectangle bounds = rect; + int x = 25; + int y = bounds.Height / 2; + using Pen pen1 = new(toolStripSeparator.ForeColor); + e.Graphics.DrawLine(pen1, x, y, bounds.Right - 2, y); + using Pen pen2 = new(line2); + e.Graphics.DrawLine(pen2, x + 1, y + 1, bounds.Right - 1, y + 1); + } + } + } + + protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e) + { + using SolidBrush brush = new(BackColor); + e.Graphics.FillRectangle(brush, e.ConnectedArea); + e.Graphics.FillRectangle(brush, e.AffectedBounds); // Contains Border Color of DropDownMenuItem's Container + } + + protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) + { + if (e.ToolStrip is null) + { + base.OnRenderToolStripBorder(e); + } + } + + protected override void OnRenderImageMargin(ToolStripRenderEventArgs e) + { + Rectangle rect = new(0, 0, e.ToolStrip.Width, e.ToolStrip.Height); + ControlPaint.DrawBorder(e.Graphics, rect, BorderColor, ButtonBorderStyle.Solid); + } + + protected override void OnRenderItemCheck(ToolStripItemImageRenderEventArgs e) + { + Rectangle rect = new(e.ImageRectangle.Left - 2, e.ImageRectangle.Top - 2, + e.ImageRectangle.Width + 4, e.ImageRectangle.Height + 4); + + if (e.Item.ImageIndex == -1 && string.IsNullOrEmpty(e.Item.ImageKey) && e.Item.Image == null) + { + // Draw Check + using Pen pen = new(ForeColor, 2); + rect.Inflate(-6, -6); + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + Point[] points = new Point[] + { + new Point(rect.Left, rect.Bottom - rect.Height / 2), + new Point(rect.Left + rect.Width / 3, rect.Bottom), + new Point(rect.Right, rect.Top) + }; + e.Graphics.DrawLines(pen, points); + e.Graphics.SmoothingMode = SmoothingMode.Default; + rect.Inflate(+6, +6); + } + } + + protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) + { + Color bgColor = e.Item.Selected ? SelectionColor : e.Item.BackColor; + + if (!e.Item.Enabled) + bgColor = e.Item.BackColor; + + // Normal Item + Rectangle rect = new(2, 0, e.Item.Width - 3, e.Item.Height); + + using SolidBrush sb1 = new(bgColor); + e.Graphics.FillRectangle(sb1, rect); + + // Header Item On Open Menu + if (e.Item.GetType() == typeof(ToolStripMenuItem)) + { + if (((ToolStripMenuItem)e.Item).DropDown.Visible && e.Item.IsOnDropDown == false) + { + using SolidBrush sb2 = new(BackColor); + e.Graphics.FillRectangle(sb2, rect); + } + } + } + + + } +} diff --git a/MsmhTools/CustomControls/CustomToolStripTextBox.cs b/MsmhTools/CustomControls/CustomToolStripTextBox.cs new file mode 100644 index 0000000..5daac38 --- /dev/null +++ b/MsmhTools/CustomControls/CustomToolStripTextBox.cs @@ -0,0 +1,424 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.Design; +/* +* Copyright MSasanMH, June 20, 2022. +* Needs CustomTextBox. +*/ + +namespace CustomControls +{ + [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.All)] + [ToolboxBitmap(typeof(CustomToolStripComboBox), "")] + public class CustomToolStripTextBox : ToolStripControlHost + { + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public override Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + TextBox.BackColor = BackColor; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + TextBox.ForeColor = ForeColor; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Blue; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + TextBox.BorderColor = BorderColor; + Invalidate(); + } + } + } + + public new event EventHandler? EnabledChanged; + public event EventHandler? MultilineChanged; + public new event EventHandler? RightToLeftChanged; + public event EventHandler? TextAlignChanged; + public new event EventHandler? TextChanged; + + public CustomToolStripTextBox() : base(new CustomTextBox()) + { + TextBox.TextChanged += TextBox_TextChanged; + TextBox.EnabledChanged += TextBox_EnabledChanged; + TextBox.MultilineChanged += TextBox_MultilineChanged; + TextBox.RightToLeftChanged += TextBox_RightToLeftChanged; + TextBox.TextAlignChanged += TextBox_TextAlignChanged; + } + + private void TextBox_TextChanged(object? sender, EventArgs e) + { + TextChanged?.Invoke(sender, e); + } + + private void TextBox_EnabledChanged(object? sender, EventArgs e) + { + EnabledChanged?.Invoke(sender, e); + } + + private void TextBox_MultilineChanged(object? sender, EventArgs e) + { + MultilineChanged?.Invoke(sender, e); + } + + private void TextBox_RightToLeftChanged(object? sender, EventArgs e) + { + RightToLeftChanged?.Invoke(sender, e); + } + + private void TextBox_TextAlignChanged(object? sender, EventArgs e) + { + TextAlignChanged?.Invoke(sender, e); + } + + public CustomTextBox TextBox + { + get { return (CustomTextBox)Control; } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Right To Left Mode")] + public override RightToLeft RightToLeft + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.RightToLeft; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.RightToLeft = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("ScrollBar")] + public ScrollBars ScrollBars + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.ScrollBars; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.ScrollBars = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Text")] + public override string Text + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.Text; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.Text = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Text Align")] + public new HorizontalAlignment TextAlign + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.TextAlign; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.TextAlign = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Underlined Style Border")] + public bool UnderlinedStyle + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.UnderlinedStyle; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.UnderlinedStyle = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Appearance"), Description("Use Wait Cursor")] + public bool UseWaitCursor + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.UseWaitCursor; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.UseWaitCursor = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Accepts Return")] + public bool AcceptsReturn + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.AcceptsReturn; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.AcceptsReturn = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Accepts Tab")] + public bool AcceptsTab + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.AcceptsTab; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.AcceptsTab = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Allow Drop")] + public override bool AllowDrop + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.AllowDrop; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.AllowDrop = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Character Casing")] + public CharacterCasing CharacterCasing + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.CharacterCasing; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.CharacterCasing = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Enable Or Disable Control")] + public override bool Enabled + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.Enabled; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.Enabled = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Hide Selection")] + public bool HideSelection + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.HideSelection; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.HideSelection = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Max Length")] + public int MaxLength + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.MaxLength; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.MaxLength = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Multiline Style")] + public bool Multiline + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.Multiline; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.Multiline = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Read Only")] + public bool ReadOnly + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.ReadOnly; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.ReadOnly = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Password Style")] + public bool UsePasswordChar + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.UsePasswordChar; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.UsePasswordChar = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Visible")] + public new bool Visible + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.Visible; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.Visible = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Word Wrap Mode")] + public bool WordWrap + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.WordWrap; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.WordWrap = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Layout"), Description("Auto Size")] + public new bool AutoSize + { + get + { + CustomTextBox ctb = (CustomTextBox)Control; + return ctb.AutoSize; + } + set + { + CustomTextBox ctb = (CustomTextBox)Control; + ctb.AutoSize = value; + } + } + + } +} diff --git a/MsmhTools/CustomControls/CustomVScrollBar.cs b/MsmhTools/CustomControls/CustomVScrollBar.cs new file mode 100644 index 0000000..e3a46d6 --- /dev/null +++ b/MsmhTools/CustomControls/CustomVScrollBar.cs @@ -0,0 +1,705 @@ +using MsmhTools; +using System; +using System.ComponentModel; +using System.Windows.Forms.Design; +using System.Diagnostics; +/* +* Copyright MSasanMH, May 10, 2022. +*/ + +namespace CustomControls +{ + [Designer(typeof(ScrollBarControlDesigner))] + public class CustomVScrollBar : UserControl + { + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [Obsolete("Mark as deprecated.", true)] + public new BorderStyle BorderStyle { get; set; } + + protected int mNewValue = 0; + private int nClickPoint; + + protected int mThumbTop = 0; + + protected bool mAutoSize = false; + + private bool mThumbDown = false; + private bool mThumbDragging = false; + private bool mDown = false; + + public new event EventHandler Scroll = null; + public event EventHandler? ValueChanged = null; + + private static readonly int ScrollBarWidth = 16; + private static readonly int ScrollBarWidthMin = 14; + private static readonly int ScrollBarWidthMax = 30; + private static readonly int ThumbMinHeight = 20; + private static Size UpArrow = new(ScrollBarWidth, ScrollBarWidth); + private static Size Thumb = new(ScrollBarWidth, ThumbMinHeight); + private static Size DownArrow = new(ScrollBarWidth, ScrollBarWidth); + + private static Rectangle rect; + private static Rectangle rectUpArrow; + private static Rectangle rectThumb; + private static Rectangle rectDownArrow; + + private Color mBackColor = Color.DimGray; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Back Color")] + public override Color BackColor + { + get { return mBackColor; } + set + { + if (mBackColor != value) + { + mBackColor = value; + Invalidate(); + } + } + } + + private Color mForeColor = Color.White; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Fore Color")] + public override Color ForeColor + { + get { return mForeColor; } + set + { + if (mForeColor != value) + { + mForeColor = value; + Invalidate(); + } + } + } + + private Color mBorderColor = Color.Red; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Editor(typeof(WindowsFormsComponentEditor), typeof(Color))] + [Category("Appearance"), Description("Border Color")] + public Color BorderColor + { + get { return mBorderColor; } + set + { + if (mBorderColor != value) + { + mBorderColor = value; + Invalidate(); + } + } + } + + protected int mLargeChange = 10; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Large Change")] + public int LargeChange + { + get { return mLargeChange; } + set + { + mLargeChange = value; + Invalidate(); + } + } + + protected int mSmallChange = 1; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Small Change")] + public int SmallChange + { + get { return mSmallChange; } + set + { + mSmallChange = value; + Invalidate(); + } + } + + protected int mMinimum = 0; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Minimum")] + public int Minimum + { + get { return mMinimum; } + set + { + mMinimum = value; + Invalidate(); + } + } + + protected int mMaximum = 100; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Maximum")] + public int Maximum + { + get { return mMaximum; } + set + { + mMaximum = value; + Invalidate(); + } + } + + protected int mValue = 0; + [EditorBrowsable(EditorBrowsableState.Always), Browsable(true)] + [Category("Behavior"), Description("Value")] + public int Value + { + get + { + if (mValue < Minimum) + mValue = Minimum; + else if (mValue > Maximum) + mValue = Maximum; + return mValue; + } + set + { + mValue = value; + + int nTrackHeight = Height - (UpArrow.Height + DownArrow.Height); + int nThumbHeight = (int)GetThumbHeight(); + + // Compute Value + int nPixelRange = nTrackHeight - nThumbHeight; + int nRealRange = Maximum - Minimum - LargeChange; + float fPerc = 0.0f; + if (nRealRange != 0) + { + fPerc = (float)mValue / nRealRange; + } + + float fTop = fPerc * nPixelRange; + mThumbTop = (int)fTop; + Invalidate(); + } + } + + public override bool AutoSize + { + get { return base.AutoSize; } + set + { + base.AutoSize = value; + if (base.AutoSize) + { + Width = UpArrow.Width; + } + } + } + + private static Color[]? OriginalColors; + private bool once = true; + + public CustomVScrollBar() : base() + { + SuspendLayout(); + Name = "CustomVScrollBar"; + SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + + Width = ScrollBarWidth; + base.MinimumSize = new Size(ScrollBarWidthMin, UpArrow.Height + Thumb.Height + DownArrow.Height); + + // Events + MouseWheel += CustomVScrollBar_MouseWheel; + MouseDown += CustomVScrollBar_MouseDown; + MouseMove += CustomVScrollBar_MouseMove; + MouseUp += CustomVScrollBar_MouseUp; + LocationChanged += CustomVScrollBar_LocationChanged; + Move += CustomVScrollBar_Move; + EnabledChanged += CustomVScrollBar_EnabledChanged; + Application.Idle += Application_Idle; + ResumeLayout(false); + } + + private void Application_Idle(object? sender, EventArgs e) + { + if (Parent != null && FindForm() != null) + { + if (once) + { + Parent.MouseWheel -= Parent_MouseWheel; + Parent.MouseWheel += Parent_MouseWheel; + Control topParent = FindForm(); + topParent.Move -= TopParent_Move; + topParent.Move += TopParent_Move; + Parent.Move -= Parent_Move; + Parent.Move += Parent_Move; + Invalidate(); + once = false; + } + } + } + + private void TopParent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_Move(object? sender, EventArgs e) + { + Invalidate(); + } + + private void Parent_MouseWheel(object? sender, MouseEventArgs e) + { + CustomVScrollBar_MouseWheel(sender, e); + } + + private void CustomVScrollBar_LocationChanged(object? sender, EventArgs e) + { + var csb = sender as CustomVScrollBar; + csb.Invalidate(); + } + + private void CustomVScrollBar_Move(object? sender, EventArgs e) + { + var csb = sender as CustomVScrollBar; + csb.Invalidate(); + } + + private void CustomVScrollBar_EnabledChanged(object? sender, EventArgs e) + { + var csb = sender as CustomVScrollBar; + csb.Invalidate(); + } + + private void CustomVScrollBar_MouseWheel(object? sender, MouseEventArgs e) + { + if (!Enabled) + return; + + int nTrackHeight = Height - (UpArrow.Height + DownArrow.Height); + int nThumbHeight = (int)GetThumbHeight(); + + int nRealRange = Maximum - Minimum - LargeChange; + int nPixelRange = nTrackHeight - nThumbHeight; + if (e.Delta > 0) + { + Value -= SmallChange; + Value = Math.Max(Value, 0); + MoveThumb(e.Y); + Debug.WriteLine(Value); + } + else + { + if (nRealRange > 0) + { + if (nPixelRange > 0) + { + Value += SmallChange; + if ((mThumbTop + SmallChange) > nPixelRange) + { + mThumbTop = nPixelRange; + // Compute Value + float fPerc = mThumbTop / nPixelRange; + float fValue = fPerc * (Maximum - LargeChange); + Value = (int)fValue; + } + MoveThumb(e.Y); + Debug.WriteLine(Value); + } + } + } + + ValueChanged?.Invoke(this, new EventArgs()); + Scroll?.Invoke(this, new EventArgs()); + } + + private void CustomVScrollBar_MouseDown(object? sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Right || e.Button == MouseButtons.Middle) + return; + Debug.WriteLine("Mouse Down"); + mDown = true; + Point ptPoint = PointToClient(Cursor.Position); + + int nTrackHeight = Height - (UpArrow.Height + DownArrow.Height); + int nThumbHeight = (int)GetThumbHeight(); + + int nTop = mThumbTop; + nTop += UpArrow.Height; + + int nRealRange = Maximum - Minimum - LargeChange; + int nPixelRange = nTrackHeight - nThumbHeight; + + // rectUpArrow Action + if (rectUpArrow.Contains(ptPoint)) + { + if (nRealRange > 0) + { + if (nPixelRange > 0) + { + while (mDown == true) + { + Value -= SmallChange; + Value = Math.Max(Value, 0); + MoveThumb(e.Y); + Debug.WriteLine(Value); + + ValueChanged?.Invoke(this, new EventArgs()); + Scroll?.Invoke(this, new EventArgs()); + + Invalidate(); + Task.Delay(10).Wait(); + Application.DoEvents(); + if (mDown == false) + break; + } + } + } + } + + // rectThumbBefore Action + Rectangle rectThumbBefore = new(new Point(1, UpArrow.Height), new Size(Thumb.Width, nTop - (UpArrow.Height))); + if (rectThumbBefore.Contains(ptPoint)) + { + if (nRealRange > 0) + { + if (nPixelRange > 0) + { + while (mDown == true) + { + Value -= LargeChange; + if (mThumbTop + UpArrow.Height < e.Y) + { + if (mThumbTop <= 0) + { + mThumbTop = 0; + } + return; + } + Value = Math.Max(Value, 0); + MoveThumb(e.Y); + Debug.WriteLine(Value); + Task.Delay(10).Wait(); + Application.DoEvents(); + if (mDown == false) + break; + } + } + } + } + + // rectThumb Action + if (rectThumb.Contains(ptPoint)) + { + // Hit the thumb + nClickPoint = ptPoint.Y - nTop; + mThumbDown = true; + } + + // rectThumbAfter Action + Rectangle rectThumbAfter = new(1, nTop + Thumb.Height, Thumb.Width, Height - (nTop + Thumb.Height) - (DownArrow.Height)); + if (rectThumbAfter.Contains(ptPoint)) + { + if (nRealRange > 0) + { + if (nPixelRange > 0) + { + while (mDown == true) + { + Value += LargeChange; + if (mThumbTop + Thumb.Height > e.Y) + { + if (mThumbTop >= nPixelRange) + { + mThumbTop = nPixelRange; + } + return; + } + if ((mThumbTop + SmallChange) > nPixelRange) + { + mThumbTop = nPixelRange; + // Compute Value + float fPerc = mThumbTop / nPixelRange; + float fValue = fPerc * (Maximum - LargeChange); + Value = (int)fValue; + } + MoveThumb(e.Y); + Debug.WriteLine(Value); + Task.Delay(10).Wait(); + Application.DoEvents(); + if (mDown == false) + break; + } + } + } + } + + // rectDownArrow Action + if (rectDownArrow.Contains(ptPoint)) + { + if (nRealRange > 0) + { + if (nPixelRange > 0) + { + while (mDown == true) + { + Value += SmallChange; + if ((mThumbTop + SmallChange) > nPixelRange) + { + mThumbTop = nPixelRange; + // Compute Value + float fPerc = mThumbTop / nPixelRange; + float fValue = fPerc * (Maximum - LargeChange); + Value = (int)fValue; + } + MoveThumb(e.Y); + Debug.WriteLine(Value); + + ValueChanged?.Invoke(this, new EventArgs()); + Scroll?.Invoke(this, new EventArgs()); + + Invalidate(); + Task.Delay(10).Wait(); + Application.DoEvents(); + if (mDown == false) + break; + } + } + } + } + } + + private void CustomVScrollBar_MouseUp(object? sender, MouseEventArgs e) + { + Debug.WriteLine("Mouse Up"); + mThumbDown = false; + mThumbDragging = false; + mDown = false; + } + + private void CustomVScrollBar_MouseMove(object? sender, MouseEventArgs e) + { + if (mThumbDown == true) + { + mThumbDragging = true; + } + + if (mThumbDragging) + { + MoveThumb(e.Y); + } + + ValueChanged?.Invoke(this, new EventArgs()); + Scroll?.Invoke(this, new EventArgs()); + } + + protected override void OnPaint(PaintEventArgs e) + { + // Update Colors + OriginalColors = new Color[] { BackColor, ForeColor, BorderColor }; + + // Set Maximum Size + Width = Math.Min(Width, ScrollBarWidthMax); + + // Update Size + UpArrow = new(Width, Width); + Thumb = new(Width, (int)GetThumbHeight()); + DownArrow = new(Width, Width); + base.MinimumSize = new Size(ScrollBarWidthMin, UpArrow.Height + ThumbMinHeight + DownArrow.Height); + + //Thumb.Height = (int)GetThumbHeight(); + + e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; + + if (OriginalColors == null) + return; + + Color backColor; + Color foreColor; + Color borderColor; + + if (Enabled) + { + backColor = OriginalColors[0]; + foreColor = OriginalColors[1]; + borderColor = OriginalColors[2]; + } + else + { + // Disabled Colors + if (OriginalColors[0].DarkOrLight() == "Dark") + backColor = OriginalColors[0].ChangeBrightness(0.3f); + else + backColor = OriginalColors[0].ChangeBrightness(-0.3f); + + if (OriginalColors[1].DarkOrLight() == "Dark") + foreColor = OriginalColors[1].ChangeBrightness(0.2f); + else + foreColor = OriginalColors[1].ChangeBrightness(-0.2f); + + if (OriginalColors[2].DarkOrLight() == "Dark") + borderColor = OriginalColors[2].ChangeBrightness(0.3f); + else + borderColor = OriginalColors[2].ChangeBrightness(-0.3f); + } + + // Fill Background + using Brush sb0 = new SolidBrush(backColor); + rect = new(0, 0, Width, Height); + e.Graphics.FillRectangle(sb0, rect); + + // Draw Up Arrow BG + using SolidBrush sbUpArrow = new(foreColor); + rectUpArrow = new(rect.X + 2, rect.Y, rect.Width - 4, UpArrow.Height); + e.Graphics.FillRectangle(sbUpArrow, rectUpArrow); + + // Draw Up Spaces + using Pen penUpArrow = new(backColor); + e.Graphics.DrawLine(penUpArrow, rectUpArrow.X, rectUpArrow.Y, rectUpArrow.X + rectUpArrow.Width - 1, rectUpArrow.Y); + e.Graphics.DrawLine(penUpArrow, rectUpArrow.X, rectUpArrow.Y + 1, rectUpArrow.X + rectUpArrow.Width - 1, rectUpArrow.Y + 1); + e.Graphics.DrawLine(penUpArrow, rectUpArrow.X, rectUpArrow.Y + rectUpArrow.Height - 1, rectUpArrow.X + rectUpArrow.Width - 1, rectUpArrow.Y + rectUpArrow.Height - 1); + + // Draw Up Arrow Button Icon + var pthUpArrow = new System.Drawing.Drawing2D.GraphicsPath(); + var TopUpArrow = new PointF(rectUpArrow.X + rectUpArrow.Width / 2, rectUpArrow.Y + rectUpArrow.Height * 2 / 5); + var ButtomLeftUpArrow = new PointF(rectUpArrow.X + rectUpArrow.Width * 1 / 5, rectUpArrow.Y + rectUpArrow.Height * 3 / 5); + var BottomRightUpArrow = new PointF(rectUpArrow.X + rectUpArrow.Width * 4 / 5, rectUpArrow.Y + rectUpArrow.Height * 3 / 5); + pthUpArrow.AddLine(TopUpArrow, ButtomLeftUpArrow); + pthUpArrow.AddLine(ButtomLeftUpArrow, BottomRightUpArrow); + + // Draw Up Arrow + using SolidBrush arrowBrushUpArrow = new(backColor); + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + e.Graphics.FillPath(arrowBrushUpArrow, pthUpArrow); + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + + //Thumb Location + int nTop = mThumbTop; + nTop += UpArrow.Height; + + //Draw Thumb + using SolidBrush sb3 = new(foreColor); + rectThumb = new(rectUpArrow.X, nTop, rectUpArrow.Width, Thumb.Height); + e.Graphics.FillRectangle(sb3, rectThumb); + + // Draw Down Arrow BG + using SolidBrush sbDownArrow = new(foreColor); + rectDownArrow = new(rectUpArrow.X, Height - DownArrow.Height, rectUpArrow.Width, DownArrow.Height); + e.Graphics.FillRectangle(sbDownArrow, rectDownArrow); + + // Draw Down Spaces + using Pen penDownArrow = new(backColor); + e.Graphics.DrawLine(penDownArrow, rectDownArrow.X, rectDownArrow.Y, rectDownArrow.X + rectDownArrow.Width - 1, rectDownArrow.Y); + e.Graphics.DrawLine(penDownArrow, rectDownArrow.X, rectDownArrow.Y + rectDownArrow.Height - 1, rectDownArrow.X + rectDownArrow.Width - 1, rectDownArrow.Y + rectDownArrow.Height - 1); + e.Graphics.DrawLine(penDownArrow, rectDownArrow.X, rectDownArrow.Y + rectDownArrow.Height - 2, rectDownArrow.X + rectDownArrow.Width - 1, rectDownArrow.Y + rectDownArrow.Height - 2); + + // Draw Down Arrow Button Icon + var pthDownArrow = new System.Drawing.Drawing2D.GraphicsPath(); + var TopLeftDownArrow = new PointF(rectDownArrow.X + rectDownArrow.Width * 1 / 5, rectDownArrow.Y + rectDownArrow.Height * 2 / 5); + var TopRightDownArrow = new PointF(rectDownArrow.X + rectDownArrow.Width * 4 / 5, rectDownArrow.Y + rectDownArrow.Height * 2 / 5); + var BottomDownArrow = new PointF(rectDownArrow.X + rectDownArrow.Width / 2, rectDownArrow.Y + rectDownArrow.Height * 3 / 5); + pthDownArrow.AddLine(TopLeftDownArrow, TopRightDownArrow); + pthDownArrow.AddLine(TopRightDownArrow, BottomDownArrow); + + // Draw Down Arrow + using SolidBrush arrowBrushDownArrow = new(backColor); + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + e.Graphics.FillPath(arrowBrushDownArrow, pthDownArrow); + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + + // Draw Border + using Pen penBorder = new(borderColor); + Rectangle rectBorder = new(rect.X, rect.Y, rect.Width - 1, rect.Height - 1); + e.Graphics.DrawRectangle(penBorder, rectBorder); + } + + private float GetThumbHeight() + { + int nTrackHeight = Height - (UpArrow.Height + DownArrow.Height); + //float eachRowHeight = nTrackHeight / (float)LargeChange; + float fThumbHeight = (float)LargeChange / Maximum * nTrackHeight; + int nThumbHeight = (int)fThumbHeight; + if (nThumbHeight < ThumbMinHeight) + { + nThumbHeight = ThumbMinHeight; + fThumbHeight = (float)ThumbMinHeight; + } + else if (nThumbHeight > nTrackHeight) + { + nThumbHeight = nTrackHeight; + fThumbHeight = (float)nTrackHeight; + } + Thumb.Height = nThumbHeight; + return fThumbHeight; + } + + private void MoveThumb(int y) + { + int nRealRange = Maximum - Minimum; + int nTrackHeight = Height - (UpArrow.Height + DownArrow.Height); + int nThumbHeight = (int)GetThumbHeight(); + + int nPixelRange = nTrackHeight - nThumbHeight; + if (mThumbDown && nRealRange > 0) + { + //Debug.WriteLine(nPixelRange); + if (nPixelRange > 0) + { + int nNewThumbTop = y - (UpArrow.Height + nClickPoint); + + if (nNewThumbTop < 0) + { + mThumbTop = 0; + } + else if (nNewThumbTop > nPixelRange) + { + mThumbTop = nPixelRange; + } + else + { + mThumbTop = y - (UpArrow.Height + nClickPoint); + } + + //Compute Value + float fPerc = (float)mThumbTop / nPixelRange; + float fValue = fPerc * (Maximum - LargeChange); + mValue = (int)fValue; + Debug.WriteLine(mValue.ToString()); + + Application.DoEvents(); + + Invalidate(); + } + } + } + + } + + internal class ScrollBarControlDesigner : ControlDesigner + { + public override SelectionRules SelectionRules + { + get + { + SelectionRules selectionRules = base.SelectionRules; + PropertyDescriptor propDescriptor = TypeDescriptor.GetProperties(Component)["AutoSize"]; + if (propDescriptor != null) + { + bool autoSize = (bool)propDescriptor.GetValue(Component); + if (autoSize) + { + selectionRules = SelectionRules.Visible | SelectionRules.Moveable | SelectionRules.BottomSizeable | SelectionRules.TopSizeable; + } + else + { + selectionRules = SelectionRules.Visible | SelectionRules.AllSizeable | SelectionRules.Moveable; + } + } + return selectionRules; + } + } + } +} \ No newline at end of file diff --git a/MsmhTools/CustomControls/CustomVScrollBar.resx b/MsmhTools/CustomControls/CustomVScrollBar.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MsmhTools/CustomControls/CustomVScrollBar.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/MsmhTools/Library/ColumnSorter.cs b/MsmhTools/Library/ColumnSorter.cs new file mode 100644 index 0000000..5509f1a --- /dev/null +++ b/MsmhTools/Library/ColumnSorter.cs @@ -0,0 +1,327 @@ +using System; +using System.Collections; +using System.Text.RegularExpressions; +using System.Windows.Forms; + +namespace PersianSubtitleFixes.ColumnSorter +{ + /// + /// This class is an implementation of the 'IComparer' interface. + /// + public class ListViewColumnSorter : IComparer + { + public enum SortModifiers + { + SortByImage, + SortByCheckbox, + SortByText + } + + /// + /// Specifies the column to be sorted + /// + public int ColumnToSort; + /// + /// Specifies the order in which to sort (i.e. 'Ascending'). + /// + public SortOrder OrderOfSort; + /// + /// Case insensitive comparer object + /// + + private NumberCaseInsensitiveComparer ObjectCompare; + private ImageTextComparer FirstObjectCompare; + private CheckboxTextComparer FirstObjectCompare2; + + private SortModifiers mySortModifier = SortModifiers.SortByText; + public SortModifiers _SortModifier + { + set + { + mySortModifier = value; + } + get + { + return mySortModifier; + } + } + + /// + /// Class constructor. Initializes various elements + /// + public ListViewColumnSorter() + { + // Initialize the column to '0' + ColumnToSort = 0; + + // Initialize the CaseInsensitiveComparer object + ObjectCompare = new NumberCaseInsensitiveComparer(); + FirstObjectCompare = new ImageTextComparer(); + FirstObjectCompare2 = new CheckboxTextComparer(); + } + + /// + /// This method is inherited from the IComparer interface. It compares the two objects passed using a case insensitive comparison. + /// + /// First object to be compared + /// Second object to be compared + /// The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y' + public int Compare(object x, object y) + { + int compareResult = 0; + ListViewItem listviewX, listviewY; + + // Cast the objects to be compared to ListViewItem objects + listviewX = (ListViewItem)x; + listviewY = (ListViewItem)y; + + ListView listViewMain = listviewX.ListView; + + // Calculate correct return value based on object comparison + if (listViewMain.Sorting != SortOrder.Ascending && + listViewMain.Sorting != SortOrder.Descending) + { + // Return '0' to indicate they are equal + return compareResult; + } + + if (mySortModifier.Equals(SortModifiers.SortByText) || ColumnToSort > 0) + { + // Compare the two items + + if (listviewX.SubItems.Count <= ColumnToSort && + listviewY.SubItems.Count <= ColumnToSort) + { + compareResult = ObjectCompare.Compare(null, null); + } + else if (listviewX.SubItems.Count <= ColumnToSort && + listviewY.SubItems.Count > ColumnToSort) + { + compareResult = ObjectCompare.Compare(null, listviewY.SubItems[ColumnToSort].Text.Trim()); + } + else if (listviewX.SubItems.Count > ColumnToSort && listviewY.SubItems.Count <= ColumnToSort) + { + compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text.Trim(), null); + } + else + { + compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text.Trim(), listviewY.SubItems[ColumnToSort].Text.Trim()); + } + } + else + { + switch (mySortModifier) + { + case SortModifiers.SortByCheckbox: + compareResult = FirstObjectCompare2.Compare(x, y); + break; + case SortModifiers.SortByImage: + compareResult = FirstObjectCompare.Compare(x, y); + break; + default: + compareResult = FirstObjectCompare.Compare(x, y); + break; + } + } + + // Calculate correct return value based on object comparison + if (OrderOfSort == SortOrder.Ascending) + { + // Ascending sort is selected, return normal result of compare operation + return compareResult; + } + else if (OrderOfSort == SortOrder.Descending) + { + // Descending sort is selected, return negative result of compare operation + return (-compareResult); + } + else + { + // Return '0' to indicate they are equal + return 0; + } + } + + /// + /// Gets or sets the number of the column to which to apply the sorting operation (Defaults to '0'). + /// + public int SortColumn + { + set + { + ColumnToSort = value; + } + get + { + return ColumnToSort; + } + } + + /// + /// Gets or sets the order of sorting to apply (for example, 'Ascending' or 'Descending'). + /// + public SortOrder Order + { + set + { + OrderOfSort = value; + } + get + { + return OrderOfSort; + } + } + + } + + public class ImageTextComparer : IComparer + { + //private CaseInsensitiveComparer ObjectCompare; + private NumberCaseInsensitiveComparer ObjectCompare; + + public ImageTextComparer() + { + // Initialize the CaseInsensitiveComparer object + ObjectCompare = new NumberCaseInsensitiveComparer(); + } + + public int Compare(object x, object y) + { + //int compareResult; + int image1, image2; + ListViewItem listviewX, listviewY; + + // Cast the objects to be compared to ListViewItem objects + listviewX = (ListViewItem)x; + image1 = listviewX.ImageIndex; + listviewY = (ListViewItem)y; + image2 = listviewY.ImageIndex; + + if (image1 < image2) + { + return -1; + } + else if (image1 == image2) + { + return ObjectCompare.Compare(listviewX.Text.Trim(), listviewY.Text.Trim()); + } + else + { + return 1; + } + } + } + + public class CheckboxTextComparer : IComparer + { + private NumberCaseInsensitiveComparer ObjectCompare; + + public CheckboxTextComparer() + { + // Initialize the CaseInsensitiveComparer object + ObjectCompare = new NumberCaseInsensitiveComparer(); + } + + public int Compare(object x, object y) + { + // Cast the objects to be compared to ListViewItem objects + ListViewItem listviewX = (ListViewItem)x; + ListViewItem listviewY = (ListViewItem)y; + + if (listviewX.Checked && !listviewY.Checked) + { + return -1; + } + else if (listviewX.Checked.Equals(listviewY.Checked)) + { + if (listviewX.ImageIndex < listviewY.ImageIndex) + { + return -1; + } + else if (listviewX.ImageIndex == listviewY.ImageIndex) + { + return ObjectCompare.Compare(listviewX.Text.Trim(), listviewY.Text.Trim()); + } + else + { + return 1; + } + } + else + { + return 1; + } + } + } + + + public class NumberCaseInsensitiveComparer : CaseInsensitiveComparer + { + public NumberCaseInsensitiveComparer () + { + + } + + public new int Compare(object x, object y) + { + if (x == null && y == null) + { + return 0; + } + else if (x == null && y != null) + { + return -1; + } + else if (x != null && y == null) + { + return 1; + } + + if ((x is System.String) && IsDecimalNumber((string)x) && (y is System.String) && IsDecimalNumber((string)y)) + { + try + { + decimal xx= Decimal.Parse(((string)x).Trim()); + decimal yy= Decimal.Parse(((string)y).Trim()); + + return base.Compare(xx,yy); + } + catch + { + return -1; + } + } + else + { + return base.Compare(x,y); + } + } + + // deprecated + //private bool IsWholeNumber(string strNumber) + //{ + // Regex wholePattern = new Regex(@"^\d+$"); + // return wholePattern.IsMatch(strNumber); + //} + + private string GetNumberDecimalSeparator() + { + return System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; + } + + // http://stackoverflow.com/questions/4246077/matching-numbers-with-regular-expressions-only-digits-and-commas/4247184#4247184 + // https://www.debuggex.com/r/Lyx0F0y1LORvNhwA + private bool IsDecimalNumber(string strNumber) + { + //@"^-?(\d+|(\d{1,3}((,|\.)\d{3})*))((,|\.)\d+)?$" + + //string regex = @"^-?(?:(?:0|[1-9][0-9]*)(?:" + GetNumberDecimalSeparator() + @"[0-9]+)?|[1-9][0-9]{1,2}(?:,[0-9]{3})+)$"; + + string regex = @"^-?(\d+|(\d{1,3}((,|\.)\d{3})*))((,|\.)\d+)?$"; + + Regex wholePattern = new Regex(regex); + return wholePattern.IsMatch(strNumber); + } + } + +} diff --git a/MsmhTools/Library/Crc32.NET.dll b/MsmhTools/Library/Crc32.NET.dll new file mode 100644 index 0000000000000000000000000000000000000000..21213edf7850f963fef91b505282f632168fc46c GIT binary patch literal 7680 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 literal 0 HcmV?d00001 diff --git a/MsmhTools/Library/UtfUnknown.dll b/MsmhTools/Library/UtfUnknown.dll new file mode 100644 index 0000000000000000000000000000000000000000..49ea45a3e9400a74549d1b0acbad8952660975c6 GIT binary patch literal 250368 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 N!;BV2#N&X#t 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 literal 0 HcmV?d00001 diff --git a/MsmhTools/Library/libse.dll b/MsmhTools/Library/libse.dll new file mode 100644 index 0000000000000000000000000000000000000000..ecee723392e8bd54c64be28447d1ccf673e61a2d GIT binary patch literal 2647040 zcmeFa37i~Ny)S;Im+F0Hs(aEsdry{`RHnPL5}28=BfnH&j%vqSx!n^Kuat(ThGb>h&t_%XLQ`-uL@Er>d)KCM>>p|DSjN@8*-~ zI`upIIluGU&hMN$;f&X-xKb*CzsDa}>f?Cw-$wa;;-B4!?yP>IQ++h^z~Ya0JoACY zr@nA|bL2wLJ=Z(y{E=;EU2uVW@yOZFAMq}^U}XCRBS${_l#%n@bDqDlP{=MbMW1+- zQqSy&tIpSa>Scay-&0FQaviIcdak3CrJ>dd2#+AV8&9RWB^=Z3CV=gif1g1-;QSX? zTd!hL{%<|aD?#}8;b%JP*$klEf8;Ze^hTd0R z{QQ?(jQ3ZZf%YO!`fA$kCj)rvO0Vf{13=owzO$px!!z`6Bc^Mm_x$r*BxG9^+AL#m z_Plh5hq6iVN9aHQ9gDx1N~(IHM}7UxCDkEN{M^1=ef&26<;kC=)p6C2WXNx;F6H5Q zp|e7%Y`nVK9mg|UQx={JrmHQSZjoPJtkpruS5Pk*XKZ?z6W_@?k#rY?TgP5R1pl&X%IGoX^?#!7$XEv|#hN z8d#lF-v%U!vSQ7Z=+P|R60zng2GI)yf&JN8G%gWy)*z_RFBNy!BAAy!LS=8M%kFY+#;}*V8QHhS zwhO&`y{c4lFtW0Xwr$sYk-TqjvFIGa9+d1-J*n&>S{d8Pq4$7~7uwxcb!7Urcc9PC zp-AQ)h96~BfLJmM8}T}I!QA7I@9Qdd%$3VZ4Y)wqtoru&ra`?7F;VI*81XORuM1)R zBhKEBC&(M{sk+qN#Ig^^52j1zVsNel_;`qlm3!SI0IzmCN8*u-^|rm|WBqOKg;YA@ z9EF6XMC}4y((qh|Aj0X{gS}7eHY%9K$u`N4gr|pb$w5}xM9HRruPK={p zNp%hSm6Cq7~5}?@!{A` zV1HtKNi04q0RS)+8X$oe_zN!TR!q6iL2=eBR(1kJVb3fu9f4|A z!+X!UU>0aXNMX;=mf4)tQ0?4}(UCTwV0m_$Cn}J4^gy1rc^1vHWS%|d2}F~0z&d$i z9m%uTJp0TO6j|T{<_W}<_aXBfHcu=OGl&0<1%O`Jt-dBqU)knZJOK(g%Vs0kKkZ-) zty#7nuY=Qj`nUCMnPn&R>+qIY_Qb?(nPqqMOYfFh_DR1~w#>3)co~}BGq`P*z0)t% zku9_Aqj~GzGRvOoHx$n9>X-g4v+Q#a!;b40)WqK7Wf(2z0K^>BW{rFb*gDq%+Bu=( ziE3s#=729)(|brlt0QZ3_}w@cE6;Th`AAQ}BJ4!-8Nj7kju-wTS2pILc&m41P6zs! zzCuDeS;Ddh%dq;V_gqjpr}<1~CRZ8n{n zjze|<+pd&ycCNli;Wfp$xkL%o;fu{Txb0BtE)xS0&)mW6UP>i!050T!+Vmr}*#C6-rCs2p(p9D&)Ewz!& z!M_%5oMrNu&Q;dLaCr;Tt08DxB3AC{DVH6{Le|*$zb#zAb=zkpb7EFwr51$ zYzL$u5vi02j-v@JVvQ!vv(pE38b~%)iCdjkXG-eVf-TGW1|}jW<8nDhDlxYRWUZqo z+dK`$=gRqVpSXIsjp^u$_}1_6pAVp}mu zrTGIzhyG~;DW&bSKgx3nP*=fKOHEXf-Q-U1DP_y0+{8=cDACSAaLn0R%6TOSeMf;i zQG!+=lOmblfafTv$Uo!nEit9Og1?C(vc@XTft+AFjS|umDS%AyuSgQJGu7!IRwB04q`f!>=c>B%2rAVzrxp` z!bClnbZ3yXU$c~MySsjo>Xr35TK2mRYIDjhzs)(AV~_R$h6b3|3iCvglnD!x1WkMnn&@MSogSQCGZYgvb{ir(&f4ck z;=L^^1fQ*?{+L~{`|Mu3GGq7KeKXDHqGhv035@v=$NZITO%vK+7De7KxlgYc11{L< z0c5P5sL__cIw5t|(ttfsUl#6bX;4(ZA$zC}bc3iqh|H=+1&s>;Asv8d99e?H_AuGS zfqpZv{-CgpJdOshtk}7cA7kmP>I~}J zB}>&xKG5nlgaK5ZTE&_{8+w)BwfPk-wii#``j^KakJnQ+mjWwaVlS!pEU@SxS1m;c zmtx>W*8;hxZNvuKTU$)%1-L2`2b0tVLDeE(NG9AfF<O!%kJtBgf6e?LP%q?7CI{sO}kX3 z(mWeQloFybo5YoAleRJ~u~|?EX^*pw)t$o(lvt<0N9D4C0)TTKNglrff5@ZmQF98CpS`&J!<-Skak#-J4nG_j8 zX)2{mZ4K1r_cIDpa2^V&Lk*YG(sLaKM<^Bntt-mTU;$+8Ow7FvIkbG#__RuyLcvw) zmQn4kn0p7(tjd^3;u<*5)J2a!{RZD{X@h=n4)t&`twzibq zrM=~7608#4Y)_9=Whz2rV3BBi*>4M}JXWkU7{g?m+}0e>>BgJwOd-RjfDj{nrf;U8 zY6+DoU{u)t$_$3LcFz0(B&nX10bJq_psAWI1PR^Gh*j)LzNuvr(CO@_{3%TVUV@?ZMW-k?hI9p*#*;rmaz+ zaE+Vo3|a;4&PN0G7(`53MZ`c;D1^9oA&kd|@Sx#KR!U{f076_X6_}M0nVIsMENEA9 z2KB^Ja8>Wu_&jov6}ry*&C&>?+&N__Yh& z;aG4z6;wO}W089&$5N%lN|#pUoEXr`g>+|fI$t}+FRr_ok#^gOVDWN|wHIPUK`f1e zowK=&v7n|-#lj4ll}CSjwM~}|!OEKY6HIjDniu3SZm>t#sxw(WIUd`SjmID&S_p3r!psq z7AOsKGQ+bv6P1%I2pnY%N=}l)Zsy!}YQjS0j9Y>B@U>M4>7Xuz@tCj5$q?Rwb}8yP z;E-C+kpKWtoisoK06;&|00{s9y-5Qk008XM8X$pxYUwx4gMf3+5%{4U?I?LBX|2P1 zXTo^~18l^4zW@nfd`hc3WKRPoBk<>)5abgE|KkdXs$e~8>5%bR#-oB~vAnngE^dKY zF9x%2V#2N20~j3_ZMr!|z&Zd_t)I4fyuu<$`+qqU$3~&;x>pha07|0`+P@U7behHq7Wb8tP$IClh4@IdF+W18C$d-5HYMWF%Rd$<* z8H-zGiF7aKo8_E^3b8sM&`}4ste)nHc(^DYq(3D|cTDG0D(=1*pt(dL)A%r!oAlvf zaPe}q4GHH`By6M;&P(vbD$QDx?;*QSG-2$parz$%~k+)s;dpR3zgj^<_w1N={Ue6tr6uA^zgW3WLz4VjK&|@V6ajrKgjIRc4dr8Fb#6Z?5rLwlUDRyY(S*#>`r1K zXVDs*-XRit0dO;>5ZFPA{Y0ZkRO&2tI+wEtB(Qyu&~*Vp+$`gAYT^rM1thNhHa=*e zDWSf0UQw*3J^(ViP#szVCxJfFphdKglysh2A61R%fnF}@g*0!{2Xh2R zeh%ze*|(n-uY@WU%(TxLz6H*JfdX3WLT{(O^EcVcNzRoAT6;NaUja0pc~J@Wc4`^W z2@337shdDnh=MP}-#7yA#~)-{`A0YwlzIjN|Aas25%Q0FfLA1ys&HL2uRx($Y#%KG z>+fjp#v8c#5~V(RcnMVEBveCY0?e#u)RNyl{t_!Vk=1wxIhumhH! zD-X3st%qwY>0X7{QhwqgtcqgZc_rU44B>WnPHbajr*3+evb%KC*P1}9g$5yYd<)Em z+XdZdAf2|k`X zgT2a1yH}$sh<6r^@s|54yfNK1eCnC=t6hrtQn^_6P5KovtPR+eS|@;DQP~&2sQGF< zAiO6^i;6wYYw!Zwe=A`ZfUgD6UbI)a->saJsU1WZ)Jlw(nlh$%yha`}z`zG$= zxLS6f`+7i1PzJblXVn`f&@%1xt?6rnf#qd;%|=W`tR4j^XAj^|63<8CqdDS3#UbYn zfZ_ef@cYcty>H>adk#BbRa?PW#n|{>?KefYfVFWq+$;pB7TlUq-9sn@(!-V^5qP2h0jr=0)W?*~M1EsU`kf9L-t}mPdkl)h zoQ_EUOiJel#5C3$pmh2#-O0v$o~vE|Px3fd(`&`@z}Slo=@p>E;d(U#IOdl`(WZT*kdBh8);)q}}iu|O6* ztQX#~u|2JHk?LL0%~5-F>bXExt274LcMS9!D>;UKLkd-(#Oh!07pC8FOz4a8_fjMZ z!+(TyKLY$qAvpE76@ce4whB%q{c8tfrRtjovx_KbW2NrYO7FpC%Z z!>kGAi}z2j#pd*$#*p}yG|J*@Qd!q2z9(kWl2Vg)r+K>hKfO@>KpxGy| z$|4$zfL1?1X%MzhbAG5Y4L6&78e65=boDTQ#lUD~!Mu>bE{^EEMh7$3>mjeK+_W;e+*IScB6cWd?td8THM zl4p7rv;gqTEEW%*S@(@t2eZeSm+Sd*JYQneH?3J1s-PJ3Hg9D8hu~%WWzYjh=*G19 zYwnu?^U!Z7(PGMCDRuB2OUJ-`{96O09M@n08*6o!{2G^ z_g|;;Nbn(@fDb=`Ro0F0pDAn#`Xwgaj*_w(@e1b1q;j^ia_9*!)KA#!V2wMMFIIor zd4UAPuB$U7T_{qPd&8iz^fJO`+ZoPV(Cun=o2e&UWv{6xRD>mrQQWIatJCWKgrXl9 zbvBNz_enb6TnkMGoujrclTGS?fHMfpd4CuNRsMmmA-vad+&>LEy{@6~=mb({C zE#-@O?Qiy0Haue-&fJ^ucB^wUe%-g>XDreD1ggg-Vr-|N-%df9oq{ksi7xKv5ieM{ zU=pIIdoPkeN3r5CeA3`yL12sRBocnDlo;7qh^rmV*H^)glGR~Ruu4|Heqyt%T)qjG zZvOOE@Y5&c0D=DMk@y|x#n0f#7qChY7#ew*4h;9>t(qBmkAAIYnYEf5xyHQbM?P;t zg^@p*P$%oCcFAwIq_>51+?2jfpMSscj2$$@YS+N(Vl(Td?xAaM z7i{yEcc=@2Vs>}APaLUk9qskj2&~WU?yGhgV7~zl*xl7)03Fm&=k36pl3gwpYfB(L zVgQQM5GRYnXADdBUgs7hxC!24urNb>8~{6|efA-w9kdfSRfl#!=B+Jb-q5hh#0WN^ zM5O9vD!9)TrnM#{)ReZ}$$Kzj@K&q#?3l4L)7WXVszrN|5U3rSW%x_}>zQA>sa&em z7Ex}uuEMpog?Gm4dDZ z1?3G~s5u0#=SXRig10?*E898W8)Aow4Qjdv_knFBq2N;T6kZTlw_)iFkmkh)bh_Bi z!$1%c?ngl^W_mY2n2qh+D1d(;AhvT8US=N5B`Yhl$=;P#Qg(#FG@)w3$|KPa=2WuU zy)vJyj;u^2;fW+}MKmjNZ;hq(Zcex?uXi(wQYfp78L~+kSDl>hoGg&M^1-Z1_A|{! zNt4iW2n>QyE_;zC)MA}s206MC&O3nL^=Sld~r}|s3 zscQc0Oc04F6PXF3pZ*u`_viL<5_mDZ_n#fRoNPf}wgz&*gA-=5EFLD-dVSf z4ti(in06>8?9o7n4YZnx?exbAiK|&}o20JhVmpsR(E#PW^9n4W3g&pc26cKb(V(s% zRkydf6RCvAY94JFw`=q-p*TlF>>sv4wy=jq<=u!3&U^6!*wzJLXGLMo`v4JHK#HcE zz6|ARIbDPZ_)EiB%w>hiNx1JvdKK#tX;6(H4L1^Q)_^=XcQOWpPunz1uDT57g;B^k zpJ~LF4Ru1>fF%H~Bxmg8t=yV&9|OrqIFM|y znxN-dC95`MTh51(N&gV@B;W6VVF@4!ehE`Im1l*7N%ElGvFqNL53160G6z&e}mFz3SP5BH)p|e9cX9bBhC#I=P9-yBbbMp zlNY?e`pzg-m3e~Xn;rFT2EKZC;ivg_^x6GKwsX|`7@_w?p9V7LJx^Tk0bP=C={N_7kaOYLf=T}9Z~3=gx(W{ewxq+qR@v3 z{caTcLqdNah5m)mE<4hTMF4oqqtFJShee@B5qeq_x|z`JQK(Dk6;bF_gx(m1;^4%E z-Up-5y9xb#6nY<_--tpVA@mnf=x+(Ni;*5z0PvPZp(_a85QQE==t)uNa|qoQg>EPG z(kS!_La&cP-$Lk}QRqhq{ZteR)$l^^TT$qD3H@0V`Wr%_o3~?X3IMM!3at{lCJH@> z&|{*|6A0ZLg`P#|`B7+-&?}?Rs|md^3cZ=o_eG(15qeJ)`e{P%k3t_L^!rihqlEq~ z3XS&wTE$P>Ivyo-LlnA+&=aE2QwV*26#61UuZTjgBJ_<>=vxWBBMQBf&`(97pC|O; zDD*po&ZBa_AoMTMv>l58U4);u9uE+@A_`qa=wVUlQG}inh0YL)jj8r>FCp}*DD*Xi z-W-L#lhBVup`R!8p(ylQggzRD{({g{Inss#0Nzj(x|Gm$QRpP0M@6B}Aao`Q-9o4v zg+j6&Z^=p9k$orHcq3cZieZ$zPw5c+5o z`U^t;7KO%p0k!edwgM`IE^dd0?b_diP&?AnZ(_-ad|b{=KwyS9cuHj6yokI|I4JR^ zGPhcREJ?MwJWq@j;W3jIi8wA2aa>Ep2}s07+!V1mA`wGP*Rp63sU>1a%8f6YIBz++ zr3L7O1^HC!(kD`NFCdyif}Yxly(5wD-+_KCW?y3o9Liu1oXa3E!b9^@5E+wn+px4u z8-usXN@eYO2M$DzHY#JgZb4wqx)DZ;=08#9+|3vVroEaRKh4*UpI-?4H0rD19wz0| zEkaI?&Z|p1GC^&~!^_cvoSTN2E504CM)^x*ZdRjCqmRJ#=3CrxS_@F2b_NdhtwV@z z@CojP!3-jT{AUQ{oYX_|K5Z36E37O)cMa47RfCTSN_iV#W7vC)I~x&d+>EW~c-!I2 zmI6V;#sUS(3EMmmEPRMclVzvf&!Q-4AC(U0b9kfL;MItp>w>%4D&C~~P;Uogf9u!NB z%UC`*<1}>$G`n;On-6vYh^hUc`qjBt>g_u2J6#SuT}nJHXJzJbu4Q5pFr18%c`wA% zLOg^DloCAYm+k!Zf8PZlbGDrubOO+m<^Du|} zH?#2!Pyt#S&f84)PYwRe**K|5H;?+!D&zban*_2LXpom;d*MVwKaS<%d7ZM0WxeJ# zg@Nrp^op~as0VvB$V2C9kf4k~K?M}dr*%t#fN-Urx*LY%l+=4(*#}4ffKz;c1OPbI2S@;b(|mvg0DvEkE>r>lJjVw}0Dx&9AOQeo ze1HT1IKu}>K-(4ni1h&*8SL54r5I_r|KYlUe@3VH1)7 zfX=%2AsvZ3Z8)Uqqu7ot6EDQL>AW1PoYr*${sl>OSpW*9)uq*su!L6jyZ0kSeZ79u zq>A)doAhXfs`pvWK|`>Cuj|$YID>rC{yC^o(3U@w(AEDUr;;%T@ut};0Q)$JyTEehusC^#7DTqSLX&~i8u$TqgfHwQpC7?m}k zF*HX1DLM*gke3t&9e2%O(jJh5sNv=ndwo0Jbk{Es8EJ$3venQq2P7`x>BZaJ@ z7ieof9Q^c{h%f~s?Xse!rKuD)?qsppDOn|YHE6*IX*Qzh#zT;ctTwp_+gi6H#w@p5 zHAZJZOLkvMN{Tb9OgB14pGZpvn}m=UiPKgBH0bN6dl}MMX1fBHfM7d$T=U^qsWtcb zd^n-N-PIV!Ga)mLU3i&j=QYRC&ZOl`q5SqW=6%nsJYXq*d_fit&x71);m8;4b>0-1%u{?X*u-6v|Rb&7lqPO zKlb6YI{0Dg`F@yI13yfAkRPTM$Pd%b>4#~N@WZrk_+i?+{cuNLD@-ejhVLdZ;k_eq z)s404$lPV)G73Vfa;eE*W1v71Qz*deV<{iOID&DlBjC6Y;9LT(3IX0nzyl$`9|_3x zx60^4*jp6>96`WoA;9wqa6^EX67cd6;93H14gu~Y;FBT1y##zC1o#O7e+&WQ0|40g z(VYY0+=xDls>ZRo86$w<0bYAUOi8w+sdIy`oBWL4N$s!O`1;Zy_S*K>ckq=wO&4`{ z`|C-FXemzK7a1GqK3=;<6V~^y4(5?ANERlO=5v2C&qXXI^I?|uL;N`3(3ANa0y+j; z02^U%aR{)6fa5}d83HZ|0j?q7wh-Wx1Uwu9{DJ`RjG)>@2z#qSfK3E!4gt<5;EE97 zdID|>0q!Q?iy^?gG9G4%--lAeK!N(#OFisTp{?ZS^iuMbb1BOIcnDbufPeO2z?k&Y}`)ZA$z~Vpt_;; z`8Evpt%9=hn&#hxYT`_3x!)vOiFYO2Gl(>aR+>h zxYd`P1ha*qzUcE!dTp|KI?5jdU8l|m(Yq}l%MHgvcpY$H2Y+1L;-5)%M^wJLR zQQ&~z_k`*Jd|di2?TF*}G}KSOyo9NBIB8UgyHQnhWoM{#V=U+{Af%Ms(i(Z`c9-@4ZgFV*kJ0>pY40aAp)A z{`Yr4x3S!2wA`n&FZxoJaCNkV|GRffDKoZYxNFgPUxw@88E`Et>JwZSb9?SLIP=lc zyE^2)Vv#4S=LopHyp~MJbLlAUoTQk~j;1Ef*jLYDH&Nnlq7 z+q1zID-4)Z=kkIG)%-S_l~aShi|oCqo(E9q82ii-hWp^S+V7n%;Q`|&I07S#_D_Yy zGUxmOhClZ^>R0FEyiWDg(h-Xmst+1+OQNR(hf`&2#8(GbVpxxd%Vi*dZ)kjd#h~y?rm-TGN!fl z%kvT867&@`Fd%l7?Aj)5t$YgY3I+?iCD?i=$@b81_#-lsB>rg4Euk}K)Kp6P4nqz=1dojwyQex-Jr=6P;=%*-` znU-={$i!v;vXGG&{R15-MPoK~SpoEw6RVOpU<(zZq$iLsuVHW!Q9Y!(+cziL~s{L(I3gI)OAB&&mU zn7f229QsSC+898a0pe~Tt|fv$uBsIQI}jc-n^>-W#?hZ9x{;U*x<&i@%5YaZLE54xZ^@lWuk>~8NJZ0=9>3$D2NnE`*E;GgRk_ZN85MZoZnS zzaoe}0$@oHS=7GMOC`P0jh+9J`x`*L2UrG}a#k+6%qj0T0F-)EZNyKpd8wa*x2I*4 zHwyq#*eFADbu0tnex+3ND-a;K=>`erQwUy+EwKT)vcvrk)ZzY?6;&qg1VboRoZs;c z*P~?YUibG1Um~e-LXS86<9y!aE07Lz-xta}FmVzy59rK;h_nZF<`t|8x1=#Mt}U1( z;Y8*k_YbV5I`J6ZidE;2d>g?zdtDpO(lG-s4uD~l85W0XTRH*GtBOl?Z8+t)*j}b< zyPfq3lsjxJQMX<4vgd=UE-n8Gofw$Z`})Y-=VX>=wLXxxE~xNiwY% zVY~LI_81zSACV9iTpGm%S4edjiqnn!6GBtZ2I66Nbm?5#!GQRp7<>L_Mn4ALjOglI z87nUoJ>W?0ck1YYXzq%RK1N4Z+M>aoabdCTjBmP}1E>_l2(=A=M`H%yxu zzX0mCXwy@rS?y)C)2D0EhE>2Cb4E>QQjRp~)$H9onw0WsQp!Peh`}J$5BTh;R;>nL*5aLe#4XQNJcc{hAOBD0@H?A{;Gd1`sfx5DkWE z8`gwqSl5QDiw1EIi_lCVL^v_b%)E64glI$)q7hAqMnZ%L=?oznX_1?hPl$Nu?0UGN z1|&)oq7hAqM&?HtLIi4>!X+s_AsW`S!Vse2Hd+B<+TTWq`lE!X+(wAX(cHy0LR4&v z1|bUW#w9HxZQ&g!r{H-yo<@Na_*O)c7WIZ`2-EYPE7GEaBJlqJjI`+V2>foqNQ*8B z!3Urh9)q%=5r*&Z+o8$Qi}*;+ZpVZ7`wDa?fzJI^!mFPMJ8MM zaNFcD_?(60qILisvXu?aMa)L623n|{@s1rsrx-7KpPddF`%!sHFud_0aOqSVdP~Fp zgltorHIIj9c!79beSp9}0eCzi-wT4XJ5ktop@NrCAGptpmXoJ2LTn1cQ*eJ6Rzeo%+goUg>1=VA zObAUgAvDcsG`$jKdN)hKTpU{T{ys`H1_RK4?Zhk$uL9c~6$9E4vJ-hJq#V6)BydERikzKN@usZVF>S9ZV7gxfSkjnkQge+|Nn z`UCXYaGuNzj8MGrcs)!=0ZenFLCuYjBN}125p;qe(>f-->6L=fEXH z?FIZ_@C?hpe?dB^Z|cVp_*VhvUC57-Cn4VdhaRc>0n1`t<`CAlNbPS?`NZJ0t>gWQSJ;h>Ya9C_`MmN=XkF)LjS< z)R*HSYqyl7Jzfjb$euv<#>as|puV-13T5o+us2xXD80TFo`pdYmeOvmxJlN{FN^R_ z0z0)Am!Q(#csSwjg1FKIU|wB<6KpaJ$~wR{o7Zpt&y(x^$g4@Ff$5U`cdY6q^FkV=M7g3xjJ z8MYJw?=1kw#5CePz!Zm~OL_|-<))D_56?EhwH3p{HBH8hVF`^Zs7$&HpnD>+@&4aT z9n^0TU%ss+652zBiir>cV+Q7gVo1r_*N>A{G&tzwZP%H?0F6F$fJ?@pk#;w=To6+? zsQfK@NyXGF)$%)a*vBiqCioGnc6?iCt#ECbb@5GqT?7WRLu1~+I5?)0;n1n^mH4=V zA0Ed&tDFLWBd-;O;&@QZ1_fJR|mtR<%J9Kws9iE9s!#a(1l0_r9Z-HxBATFoe9A^vG z{?DTOdSf6{O7xVHY4>Kdk)7G!%N^*~|HV#VZilVzpil$9K?(#zI- zV<%_Yp$}Iz?t{UQjMl|ncc#=NrZDZ^gnk0spay`)ipWRfFg6u+RAm~-CXu*>ncv`y zyPZgiQlZLE-6NYHU079J#699v3QvS>)zgko7;wm1L%C=^ zoZ!aS2DEnf`5@XA4J}uln|EJ;_uzYkBl_EwyIlZxG372sH~)lw?Y@wqZq%^*B81c~ zrfGuhS=n6#SWWcFa&0z214g=+V^aogGEl!idkB^cLa@&chkq0Uk(H0zEL%G377Vd{N;^MSU z4?wtz@f>_taS?-dM}VGbxxg z<7a;i#uDQxcnS*?9JDP5G{5FRTh{wxC!pGKBIVEpdt{mOF}92+bYN7y^y&0?qL8 zRWM;61O55Zx^|Bmo%Hc4pzH-N;qtnDYm8C!X+6 z6Jfd3uuBRBE~zTHTFp<`6Qkgcgxd4iB*Q5mN#=h*m@-`j^=>lb_Bh84Y|e5(BFt@9 zZ1QkM!Aq7G!0^Su(7or!RM_CY={4tGtuR&oBB;{QhW-ms|@FfeCZe;O!OG1Wkcb9e!E4MxT~HFnDwc6U`LgFx&P(C!YtqWxa2|z?I9@0ZCuba7ZV6`q z>@H2`%~e?LT7b;R|6}t$Qj7HL*SJCxvk&3nOSfA0cplnvl(a?iU3&+*lLg5b!e{Mn zD5T4);f#<>z`5XtoR!X`X5OZ^@$tPxRDpIi9!^|G2l-S2AW0RIf+{m{B!=JuQj#2} zV3$Ehh38`olIm-y_h{A|m#%|O#mmy$JidI54pe5ODf}EE5VLj;J}{Wno)5Snk7LPq zX!`QC9wKM*yx@#*I(?pn5rU47TPrlt+rKI_Ox4{E;3IdQe zd<8Xvu9BwCzJ#evkK8#BirJTH2p_w?!D%C5{W=13)|W_F4?y9gyBXtRJZrO;Az|}C z05OKORXAJ`+sQ&52rU*qGRLs)R@#9WYZc(6au8A*z8BlccA2^SoVDv;+iQG)HBLy4 zjB!#V{b~HbrkcTHr(l$xWWjA%qclDx!qdp60iSnrOmO`nn=H}p1{94(5>QUN2jfl9 zp+Ss37~$`R?)w+2hwF~c^ERHkAoud)RiI_nm zy9CHnnD|FjopBc<3=)e26n0|gF-W%SSp3Lj>MD-IYx8)*b~DC>HKQhHEpUOK$pRFA zCZhD$OHN=YRU6?af*DM!G``00Yy|N*5f5KdOF7sM&NdzfpMdG=SzE zx^3J0?}PVHVcvsa2IKwSBYcowB-D0v?KsYJHRIa|euY@rAjHx^Z@|N9eD5>w{T_VT zxGQJg2fdT!eaO5IduQ`qcIUFq8Fs42#bwG_g}cAq%?za6=i=dcNasSYgg6s-b$6HE9A(6%C{vvoZ*B5Y#~Y%c9QQ%7lgV8ql@cCJiO zg#cd2eKDFRzFK|mnH^ok1=9Q(JdYQ;CpY|Oy<1RYzwrerD(4&&?_Uy**XOrhd-3{$ z)@vVLaWv2*mg~O#bG@AJB{8|*-)`;$^@4a=p1rCA`eDuz{do4rAY=(^&iXEC+Y3>Q z3k1P2`kjmr?KhwHzRAJ(Ch%mjz*)Ua^N>eM>hPWxg1qbC&hD0?NKT|z&TnHL<;_C9>)ji`#P-;`4W z#@T6kG?((;_HOA+}xi7>eRK?_mhdWM|@ zEkvcnYY{z@WVcNw0d~F9=3259s9VcdD z2A3_-F`p^8T%9VrE-K2Ft@2*yLWHb}dG?xTpMEyMY~-ZkbMO>(2sH3oEE@%SWyscJ zz!x+NbPJL=@aP2A;T_$;cF)X8{4Azd0vG8M)15Psb|JcRBZ>~wolBWc(;YkMT!hAZ zR{`V`9p1hE+JDAS03crt2mp?Uv~CkWz-F&wm8nkStIb#9E3(m`tO<&yGDD1G2lhu_ zxc7r8TbRCR2U>JO)0gAbdw-|-4#(?D7%%9ScJq7Tb#GSvPt23W}oXLa;(&HJ$|QNpP`j>4cdMq(C``B>*K`>cj26p>DhJ0Q063P@1ZGu8x=99bP%F%6=rOOtC}*aMbrjcYk>ky?D9 zFURdt>+bT`mZjc+zMUvz_-Ch$U27rPaxd}+uYy{B**CFjf1iqVv6mYn@lxq)y!Q{QD z3C`{1j2Ll*1Iq;Oo0yL5akjBm%*eKl}={6`vAX2ZX?*btlg; zs3Oz?u~ooa^)Dzvb|gx<82B_)H4EP%mZzO-F6OBp-7}wat9?C?RP^juvn_62dw$w^ z3Hw9_O$*;?7Ckg*<=+5AmVLoX*`e9(u(H};1TJP=aIH*g0RTWbc zhjSy+P2Hy5CNZs{#T6`j`OY5473)^ri9gsLcRzto4XA zeyFiLG#nbsHQziRC2Kbi(hFfm{MgdkaGLkDr4h=cKgpEmCfkJ+(EaanYyR1#sw-P- z9A*o3YOBpK$v9_Vjw7neqv%;kgurHx;qt6ct^n~;Yd{=7f@TVc*MPKx^inS+rDu>k zc!5`iqzDGKaqz;>m&b5#sug;z;Wh32O(um2iE?^;`cS7HA6>EKEd|8aE>gZ;VI&(G z1wfd3@k$BOy!P42@W+D!m8YJNu(SN%dYJ@M)R`g{h7q zL;>+R3&{d(Nf&nQ2Bu})130XtJFmrTsZ9GWSLS9zQ!o`U$LS%Rgd&34l9j!X6_UN! zV4p{D!t^IAga`B|8_*wckV)7KSYO#RgH&)n4Fc_u*$6Zzk`H{GChw7H=_r|=JYj++ z#Acx>7lMCv@nh;bqTl@zW4Z;S;KbiWuYJ1O6P@U%lgA+dmLPYb2^|zS*{?HK-tMB_ z2JInS3w(JRx1fbfFyke(Amh9OO9HoO$|JuJwS=C7JFwbR8~FdU1U%|F*pwvaPkSe@ zHJ?HKjsCPJ_$V(pC2^V`!>`8jbL_CAP3)FTOlR(H!WZy24OKAcHGd zz~Ea{U&hPX0yhoqD4~h&;i%eBWmOy1-o=G;ND5AYK{1XXLB0de5iz)IO1XHH7(xdQ180iD=u`fj%wT=8die zi&&2z;TnZqSGJS7ok*=RRos?JMVn0JKa05OivOFqiAhHjx7xT73`w^r81{=`NE)?& zax(J7(jE3j!N>RyNGat$6V zB)x6?l;R2OL1BJ6pOyLo`qT%X1gSU4UWn#}*tU@G$S%MOA4Ind?sEKFxVvJVkGpa8 zR!k7=<^L!2hnB4(&>A*r;nh10HJaOeK~%*`kf<$degxKVm@!0QpiI6WC1Sn~krH3t zGg|G2ec7;q7$|qXwmD#imbZ9sVRatBJX0F^4tgoj#oI>jV*>$#^>r7W1 ztmo)Dt4=vT;qm!jQh(wyn@7N(+6p@*vcirCOa+rqW-6G!)QqVhSY>xV;VKKSF>G5Z z=;VLlo@7B>5SYuB`=T50NqYa_;Qi-gWnfuEpJ zM(l6>JtgktuPrW5N?Uqu(J0rxw#d37X1FI`TMs?G)_Ww6>*XdslX!-Jp12p>Go&Rhi~bF&v{d&g|oMO=hh^q~P+ z?L_x3YyfBV1~Bc%X}i-*nsf>#&+JsSZ96EE%8bg(+uPhVaRg8l+rO=5cjLX=yR$u= zJ@E&&#SWz_;`7aVW3AOa*oW9Xeu9}s{pK&wlM*D+MK}V@uFd`m(~Z*q#?rYn2SZJ_ zH+i7{R3rm7;6pz63Mxf|t-milKIW%oOs zSn}?bEW59^0=GQ8j6t4=w##~WALa1kwW42t!dG4g!7*%n8OO5vFuHxg=(5)`yu5%2 zlVC462^d02beB%lwO}GM2N$uwExZ|=0FvN%S!isBRP$FHIvxnaT@!*t0gmdC{0)0M z?2+>2bvsxT;utAfpmjV583%XpOY?Na= z_*{d%RQo23ohQ}3;^8|sZFb)X;fgWhnXr6bjPL4z6!(y9;UA2QE0nz=WL9jqIEpjH zpq`=Y^$ZOzG(#bCo!ayTmaNoP{BbYrJp2K-xQ8P4y2lXSia&TQiLV@j@NrNgkNg-< zpk*8UHHbVA@Xz820xkcT{$G(UgTL?M1t=82KL8kncDSy$;EX&P@7SJGF9yY1jCWt( zUkf<4v(@c@`{e}oLpb?eMNYE>4wDkl_QIbb{}$kdK3J30+XOG+ZFe7EgpXzYRu&sv z`u+ofIqSEae7LB<-;Oa3C`Aq5cIZyI5BDO=)rgVZ)C#=5dsOqEQH~cs2#EM4gz!m+ z%i%GplR_teFZD^-1i1zw>>I;LOOm=wDm)FRHd!jR7ha7dp(=Rfh^A?(Tb)QO8yL3% z5r7FO@HI%?xE&%H+#jCN+H}TZGM*1w9=k+6FF3oLPzPfiwsIVrunb^-o4edOE2VGK zy9h!S?yca(EA*<=K-r*9xk>5)S}V#{z{kHg0S4ah{ge-s$^A6C1)hbnn}5Ra;dHSs zTRT$y3BwqNBh{ZdvSCLmMrcPWeHOYgoRG2y-22hfdUx6znFJB}C|>jiHWX9Ld+j-C zZvqhmF7`IE4Lj`}8@%as)S0jc0FPif#hmt@>zC8$Y;HwQjn>K~>MO3v+6!^`!EDOM zdK@@=;W8(^efKD3KA2S*vg+ zg6-4CBW3?E?LB7$22;YOG)PgHS2cn25>RS_{sa{SqwkMX8GfoM?@uTv?ZBr8otpS5 z5J2ax`|Y~(Ff(b)#?g9aC>u7;EmeWhcYbxjB(Xmk8PYDlU8bqYwTZk0bVk8CwHV5IZ%C|%=g({uru4;a6`6j+z4bBZyg=7OSg^=+da3A zR(X>f8f9?MeSHg;YtKdLU-{1}o$G>TwyAIbRdx(>Z5u~%H-&i;#A-Z8zj*6588dFn zeW5X7;*MA#ZqUTd%#XwNDRBT-nbphiTbH#9ipV;RGeuhXj*!O|Z#CBu__m{aKo)CQ z;r|Yvew7DU6y$ zm~8XR$;i0E&6iGxkS_ETr&IFet~MJQIXAv8rmn*T@UME5hWa+(>&g-3S-DFnwW;-}$Ha#!udr!dL4 zBlA<6X?;ArV~~2tk?OAB>!pcvbse>%TXX&bERN@M&T)`mBn_e?4kOVu4UL3AzXZp5 zl5xw$YBt=RCw8PAT3*8uz|I7YZ-v=Eo#LXvec~SuHG$U76Hih-)Sc+3uncqq?FjZ} z@Le@D!nh26pQ3~BGN{sU@J3ugGaR_@ybUBl)(SjXz6pfKn$~g2jC&K~XxH=Ok|qvE zwr*h@jUs*=?qha8L10(0OM3%f&l$%R5&t+Jn$EcYG#{GDxSyF1&3gOTu3X0bFe7n& zrd+=HItcl6!5R6(JM(MTAA`WdwVw^HuOe{d_|FD5ya&Ss30Q+SK(JO5Yp^~6`06eB z)f?!;C(+El;nR#R>gd5c@&~L3cN@9pw*0ycZ}ig%^-x=+^=0 z^x8|12=k@!|$H|m%bh_;=)Ap7Pzh&Idq3(9bhX85E^!E48%AAV#HgREQOD33kxb`wBpK5d+%tSVlPtYV^Fz?FTh@eX=xd5^RV*c zhGA_j+{z)RMVt0HQaxN?6^(M=$_jDU_yK;@w~C=${E{&4*D|?+C_k57V9~f$cv8L$ ztq-t!7oc8IK*VNwncoWk#vs4$2Oa>9RpE^(AUFZ*DeS+;Z9F1yrT3M>3le`5;AG-9+iPyQ0Cot`bHP%Zol@-?RL)^&{kR@aMt*Y99J zlcU1gboo0P*p9?_jP7QPQv@%i9z@Ia<;oG85)FxV#>Z5OJL1XGd>gXiw&@TRDUH?Y zFmT5iv0T~9Tebi(Yr|=Fxo%)W=!-&H@vFEW1ZJ$Az);e{2GG+IwZbh~Q9HW0Lbn8d z-{aB}b^-SZR987~XA5g~tv-S{6I)&7uOq=q*Kgwr-Nw7n#ue>t+^=XC+)dYsNvYzm zfj?g#1bI>q^ACX!fM)wPX~Itft)9g5x)9AK{JVHR1<$ph-F`WEmG2j(06P+Yr1$uP z9BHYy;{ApHyEMM}7?1;BXV%iNn0Yk?p8YdWC6k`B{?cxqZQGBeK{dUTDMdo|sz60= zIq{JOPVXST9_GI~|4yEGI3hHIz%h0A7R-^hgW{#dF2G8>XCohg5jPqh@zn^A zSPYs^9&s_AQ66y|V6Vhqi$}y2&4$~_Bg$D!X<$&y)pi6%27Lr1_<)VjN2Mf{c0h;z*4cXLS@s3%z@mDW&#}_?~%=Kp?pBu?|7F_e{$YP@zvAy``|(e&?E^Tfl&MaM&t+vgbWAd}Z>is*sY|q_^U3=3 zy0`18qV4BE%=ZpGAKKK0W4_7Oyc8xLL8q~iyNH9BSS4RO$f|dx8+q{CgV0hj@9B?1^#rMcDr?z!2cxI@^w43O8idV18!heDhG4%c z?5C2-MC`b|>X(*p(~GPBfgyWQcud2Xo}ajqBN~$t7nwn?7cs@$<4n z-)HiM_qOonS?C0OFkmyh6`~OB=$8jJL%H*g2t$89Z7_7-iB#xzht%rdc^9g3e|O&T z9)xeAuJffXN?6%gkJv>sT2X*KGp3bz>ZkB^Sfw}hM`K!yD`*#inCu1%iaWBkn-KvM zx!d+N615X?{i7f|ub=fUg$$=LQt*5&U@%MFhnl#%K?cW>#gSn?h^A2iDv1!0BgCe$0aYQQxP#a4Yb)5j1x0yd@;m3gwBo?iSd;Sx|;VzZ^ z=DUJ%*Yan6nb$u-+&i8i?oP&iia+<_r@fu`KSA6h^W(q8!Id63aS`o#l>=CQ^jl57=|9THAPh)D*Emq~UMlbsSyMuFM?d_4&Nob!*}`3Db22?T^tt!?JD!~Qt-=GI=Soj z&`3J+Q~7}7MotI$(#lKTgq3J=B#B+DPfapM!?-hEiUomkVIN#_pqRhHgK zY`nR?ku>koj8Yd0&2!+_#$7OY?O8dHSrER-cc+oOT$tFyr{!%AdPashW*~;zSmXvs!kPY;Ek~^-*NubG@wyLwZ%|z%FnqOYi3tAwDT!bL#!$n5C0D+mr zwuF$M{%KqzpjN`fp5rp*Pt;} z&7hz4%JoPz-{oPs^WG^j1GMiA3h_55^K{>8hp-rb3-c)zZN z3@e6XYj;ZTLr2p)g&>=}6EDLcm~jkBfPtM$K6o$MHcNz4averjsIsK!rhwWJcCoys zVhNh~Iqc$G!i+Rrm?cxOEff3=L%O~%rC#`#1ofDM4*}9GUvCf=NE20GQVX# zzhnt*^9zH=BoKk~TgLoW_-mF{pPt|TVqdYpIN;B(-RCRvL!!vj_B{#Hj+DUs;hCrY z&Y3R|ZV9ec#MGVuf--j3kev zX~qZj&h*M*R?-3=)*rz71K6MslL=;ht`O-J=oK3rM!=Q!N z?H>Wh0t9?2#k3=!5Q;H_fOYu!pdlDtjgSqyQC`z+H|+Y_lwDuMqqyQVwaQ*4sL^Oc zjf3qvk!`iTy1o?1R+qUAp>Mq{^*ltvWn#zsEOU*$W^!1g5rGDc))I}@YBXABuM-Ng zR-;i)QiU+)0Q&$RW7a~%U1#IhV9a`rF$Wgc7Y{5R6kyEy2*#|p*9RE0ejdgkHi|Jm zD2y>aEQ~QeEP^ov3&yOs?6qug7-OdFDZ!Yv^Dt(87-J3$W6VMO$C$PAFy@JhX~!52 zwY}D0$b{up!tayzBr#^vo&d&7v@m9ay+JT$vJD3gwkL=&2ipe=#!PrDJA^S4ZK>yB zjJ~Ft@^0x6`;e)#{)kVtTOQRi;n5<`LVuxJCJLGlpjy@jSOK z@PSI>_PL3hkyQ3rM!lt&A#IBu_11*K8$#iuLgAA_;WIt;6D=X6h$FkqLvyf%6`lmS|68QQY0-l< ztFGtt{jj}rF>0DTN^z!2`{kx_y*!sS^`0SUOqTFZeB!3P3RO$%<2JYzEPkSQ3v zN@;Q~cau_EIY~{Nj@r|r*e_T)jh=0lr=@Z#K%vUhPh9zPSb2JZ%D)B7Pgl3OU&Ek8 zdQBbV=NOo9$8%CQ?G&N9bNjE`&gnYo#}{EgfCTI(Kac$&Hp+f{P?-JrurT}aVG;I2 zu&|#zXX9KBNM7F&Yv$q0f&?!`MEgA8ZZKnRzz5|5BuG|Hma(9gRZ{yO0ep=}<5GDI zZnwGurHj(c5~%?l*eWqVBs-BfQBvBrD8nbsD}5~OdvVHDUlrWataIo)1y7QdfU|6w z$}~1R$UmSPP4&T8q7o+tS*iLg!smNmjz%HBSb*LKJUB_o{f{?78*U2y)VD(W2ZG8l z!mXduXYf&lHUrOVn-Gim6v!=BrrL=23h~w+p++T~=dFsr^|)M42;H6tf!q#yOLllU0N<3(tC_u?N91 zfY+LC*qvyE*`wfrj_s&kZ297_?J?Hu8GQ+*z!W3rIS%quxp`CrH=J(wV~8F@)BAMO z0TI7_Y`y+3_TD@`uHs4?zHYU8Q%lxWORdGWx{a}E+>!wcOiS3aJXsz~ne1V;Vq+v?FT6omD8TDgyvTDqW77RH}O=6)%_lo#pH4UcQ;@1j(&Tbi2mD)(tB-+?tH!{kR(Q(lEqYt;LfC@<}TU^_AowoT>DNJ<|a zW*qW|GzmJOHAw1@lE52j5-dVS*pVoS?41;t^~!xn+CNGn=LGe}ymmBV9yT#JbALB^ z0R?Q+7~hBYDqq8a>=#2cL|*6-p3%y-EY_b9{n=N4EK8$b`|D3de@69ZET207i-ETy zbuo};9)fW~F0TT7YcY~r>XkFSeQSawMOv;*B_i`ARK9Gj zt^-QTi0`~|1r2RShE@J5E@NiME%wTDB|4Tn%0G%;t`>_Gkfh472oUrTYYcpbzf{)P z(f-k6XK;;q6Ge#Z=ldh2Yaku1{uhKpaJ#Ute*Htg7K6pa*e+R{z802 z8JjtONtkwwe~hLrsiwr{&)+{xJJvr|)Ap}sHLVh+9p@jXX_ab+rj3SaYyGvFHd^h} zw6QSlc>j1!8#6Y{Xx0JMZh|3H3{H@($HS?bV5A<){%ZU9z{#NpW8+pB?j(3irT8=s zTpUE}{B=VxQ|c%!62_Ll zEO*@Sq1R$iT;ULCoSe+H1~mVKH2p3{(4Mu3t}Lw)_XA36fUdbzNvYF zAcm$hO|K;{4E^Fg0+jICIZKDSZx%VuiMl-4vXIMG$?OXM4Z{w|WO)Y%XOUox|-f)!IS5 z6xl&BMc(e&{-3ol|4En!F);IYFr}0Oy(I7Z)OfAb@)Ok$0}yUKy5iOIamPHkfGv9* z^MjKatk}a~b!sjUXDizf6?$%pTz(d|ieei6LE?pN66DzqesT0DmH{sUld|$jP=OJP z2X{uF@I^!!4Sx0p^AyQw$TFRbta+H=AA)?S<2%d_Mh7$*mo{(yjX|&LC&1o;Vc^z? z%j=+-4N`;1Zq!Bw6hOIMl7)}Nr!?#Ss2!q8mU783?FU#YfS`946%f=QehNE~3N_aDbUjw8RQ7Dm z*9$dYn|&AZcQtAMQSwG(j7tu!Olw?dzCNzoN3=mTGC z7Y}Zg8<8J0u*nypgfK3sqP_YA?Za51+Eke7UxH{uvXBos0v4qCKBZV@%0rp+pWcgm z^Z;Zk{T3$3bb}l=g;uupP5B3wozs>#hUm$(4tqpQQgYJ%Tz3W6rMtt5MeIA9+hojG>`20fjIgHPLi9QGM`E2w#6Q92gKgpeu zg@H*#e}1;gWV*e|{cLZ4@Rtxy+Lv5oM{=0$>xn+uzIo9n+qX~j$@VReKH0w2(I?xt zDf(plHiw^VAFYBxlJ@6kN&A%NMhi2%GophEbSEP|5UvJ4=MVTfD=jyR!2sLoA@RDn zyS4~Fr;-a;5RV-Rst5&I2w_LQqgK5zXPbgjnGuSc(fq%*G1aY`8s@E`0>Ml7Rwk2zvK0(+;T zSB9^KUbzKhRn@Xt0D+fYpU3k_^*Q;vjfeveM@Cuv8PTyN22_cb=rh0AmONs_A^~;` zFpl^b8k9>s`wNW90%55S7Bn;;nKKW%VRL8BY7^z;EM}bT99uc-}j`neWF{FofqfN#* zI)F%+(ONZdJVz%Y52bBW5@w@5I$M4`RvCh8=#+Z7hXsp(t7Vf z9apdpQ=*hEXFWv!i@o3@sM#&tE!izr{Lo~}>uXw<34Z7_Jalp5miJm3YsA~)1Mnjm z&x1ce>>1$zL{8Lh7~}rREl3r~S*EA0C;Mvhjhg({LY zWSb$zxp{LN9F$ewC_n|jXt-raYXS-~gh-@GKRhG&#jIC327pMLcZ^M=j-P1|o=^dg zwEe;~s`9}&7Acj% zO?-ElXyi3T?79jJRatCwKf;J>iV(R}aK1A!x`bz>HN{-UtH2i&6F(UiOJR+4rOm4x zrHNk;6Dh8dL=4a(O?);?q`*cJF+#p3{w_?U$VL)7yvmFlC9qL{svVNX-q72vhd=_Xl~6dV106 zBBTXHzsS`H%DduM#x9~v+^ckePxNOSGiNc)HDng_y`%q*gRN$@Ls>ogV~vE&Y1Zso zF(S0RH*Zd=?=p&@=7JA;9opj`pr@_~J`*aK^(wcroI<+LQRplTC=NZ4GNyB-{7|f- zTXBWIobnzDl}0>&MM&9Ej09decxk$7up&^Nie)HFs>x095pxe5H%%kG3Z=J@vQXef zX%Yy}71kc<2(d>3qqd?j917McQ(}>aPhaE?Es{bq%8*u}NdLeRd~qc3^AHXjI5b)j zT#N!_HIaIvK#8SZIen=MwN%R1C`}rjQmROkSja=u7xDslIrJ8Dn1e*AQ6a1S)zXsR zPhZHrS_tQh0;L8mp)83lS+I86ao?ncP?|>R(th4{SnJ0z^N--b%TcJr0>-B=U_c9? zoR4Crx&kO&VgcKyFW`ru?l2aV1X5O1R{&)}EZ~9Z3%ElIpsbKGpt=Gm_F(}(n7)AZ zS^x!vNMnvK&T}GjeD6XEZ76O#e(NYqxdN4n3_}QC1FRo#mhP z>O+6Ff3_64X8Iy|(FjH2?ndq$|D0DZ@?8I1Df05^i~I#K{&IMposrw@Z+`V6&-2fd zBJZ2N$Xm2XE`{^`^93IicGnyHib9#P#or?3JT+}O<)hH9UVvWUUof;BD?|=~AwPJD zS;FN;CgMW>LMaR{Xf-~3*vA_AdDX9uUH=!Jh(Zmnz|tLi@qdY2WS~Z{YaDm8MdZc~Vf+CvQX|h3Y|b(T1!OhyfUI;Lh7Cc&hbv zL%p!UJ{YwJ`(l*z&_@b~kHSFQDvROb7oC-=!m<}4zm)i$iHXY@(MgCpBFrls6TFU~ zVAXNLN$S)}SOdj^Fn^)w5ccsh+UBwtUL$wJ=xnR__VDYQWABWqM<{C}GwS_*54Dlu z*uMqx?>BJl#ZfCRFTE4J@%|665G~ws6e{7q)cH8KJ2A;E&ZPBMegU$ot6wJ#_oxRP zt^$%8m#d&T^Y4JN2o!P^WHp{KkvlO*b^6-De6CQrSJDUlf-)3JCxOOuxC&k#2Io)! zMSVV?krr_khT|w$j-%*s6^7#|SdOC@L`;R@I0_-hQFNFJ!*LWsj-wbHjMXJ{OwMo| zg^=SY22(hWLdbCxgDD(GA>=rUQ#p=8$Z-^>avX(_<0ww$I0`w-aTJ3o97h3j`f^rVq2SbkI809#=M#5~?G#tl+NUYfjfZ<7#ON*a~Mn!J0qta>Ml_bQJ{5-HCWP;r+$ zf0?ED57HY5WIEcAV918UgpbD+=Lkjgja1*Q*>2Wsq_D}KylS?)HQRd4M!K4e%ByC3k7g@sHd516 zi@$2N_iDCZlSEo7N_KKI?rg3ueUg$r@+fWS^6Kg*Bnw_@)I21T$*H(`j@3NmKbYs( z>c>nT(PAwXDwynsE~tmK4QFY2q;AP~%*Bf8TBkBbvJot3UGUoaVZk%5#T=~<>MtA0sS{H4G;5JUI}2-X1wJNC=JfvSrQ9heZR zWoSuE1BQUwJrTKWrkPxwXSyN?)1 z8uWG`_8}q=YGvBNncjrTt#H~r)eRjOpS?3rbn91N8W(6JXYJdO`Y!j_xuO4ra%3K% zRJ0I9#yf=CICp#Reptz8(r>)+yj}WRgoOvJ^QM1>J6m}VfFln8!8h4>abm%qkKT&W z@zMh#uhMFvQ8!W~wP(Hn6}6V$fez-9yd5c*(0i;oO;RmsU|Z;w7bg3VOhUVewU?}l zRgE@y5sqb*_ zy434KcaKaCx2469)UXHC+wTjuKs<=whIO<#*Qr)V`qD+`7Jc7hzWQO%S~Dn0CTIm3 zGIl&)s1TL2L+o2~m(U;LImmG${{9(%J^1Sena{nmJN|HNdOyIQ<+XBq$Gjrq-^le6 ztFl?8OJRu7JD!2L$?JK@K8pXubcL|{0d@yr=ON&EE8e!kc|rQwyqDM%lQ+J%Y%Cp* z7H`fZwoKfJLZyIkqw4zy8_!BJh{=2DSIaoJB{PXR8xHG70v7~Y!xnnLrPzJ?m`MkIJMq_r zzul+#!-A4DEJCl(ga_~o94(I(7xB9r{>rBXeFXlF#NSc)TaCYC@JAS4 z`o=2dgW-Hwmybe9{3iUCHIQRk3ed$y9-oY$V-wb)UOUeoU zh-9@6m8BC%(md8{)5Jz2-%dRJ?RK78LeFCNcDSFFx^UVvuC@Gx#Zf3Z?>wtsKMVzY7BJPPkh?t{tDXl$RDudAGvvprm*68UjvWm?1ulSWhL3}E z#aiMec~O&ke*0X=pm{AVqiZZC~}N6k%fIO$^|qY_DK`5R)7jpDZj?+&2o;LhJYhPQmfX!P67T z{_)9i9Kf^2@i+}oWt&7wU_6&fBqt6-Nx3vcOaz!Lj43`EJy6O4{M1~CnmC8KvPr*9 zbFD%yAezzS^tnLlC2^*{4jCtIXYQHCur^&i0-x5fHeFrGFChWIwd0Mf+xY!C3~A0U zpWo$|{+U4_Ay`IT$fRre-(!r-mG|z-m7rb~8yMV)(Nmr0Jl>DL1aNw4AB+fVv63r2 z4*21(;qc78l0P=0s615l1t#5uB>$ECnkY%98N~~2;_b@SlO#fr#C*^)<3(go+&?H{RA2+c2^-~Py*kWnfLb({`)hl zPd|1!&^v`@%fcM6e~~=>u+?H7T>p@FQ{?nM5bLlSfRL%~)9WR+Y*3;C1DOYn4ZQJoT*0)aI@mOGYF-*MX?tf!?M0Lj zWo;m~$4y&9iU#mhyfpt+4Xh7DzJV;<^+ z*MwobbX9sQaES*#;mvyqyD*MK;6B>FegXUHdS|bj3rCp>5CGjlk6;WSsXYn9& z|Hy(={w^!)Xeq&uP-ZBX>J6jf62zxR0<-py8`W6@s zG@Pifw^61m^0ZG|d0ogyC4xnOsbzwy_kawHm>?Ju@l{o2fadqRZ+3h3q0fS@0KSlZE^u z_#&DmTnmiJ@K9FohBhy_7fgyBsn`C_Ytnh(s2vz5Cc~=(Kpt=w=%zQbzuh%f*X9J1 zyJ&iquD!yuB)V(sc-51MR(@VMU3k(1cAEuPWE^;tK-wAC+p?9{p%_rQ>K3qXq+>g( z$B8D-qI2!TxOwyr4k7HRZQ7;SDplB}WYqW))N}YcIvg%XucN~)t@}E9)^Bq^;o4kZ zjcpHKM~AI61vOcH%)DKG#2~fdv*wlC*(~L2hdSU9toju!_`(WhFv+)pOec zoYDwwei;cso4}j@x8jX^Yw!lR(f=QB5O4e$qyK*bZ*X`cyfGhmvanr9f)RDNn1l$!ViHB+29wZxpcDlUYe6!+ z8U|65TwstyEe0W)Pz<6F`3Qp$U({j{q6uP~*PLBL*7Ugqk znZwf9{H8owO}>TkYAVZn(D3olgIGh~q?O#}X+}&>G7i@qp246F^_fFq_C7c_X6w1J zEfPCH`QM7G1y6FlaYu+77L~6K&BQ0YWUAjl9w*!ygX*D{o1qiODlDbYSz{M~t92>mlFVov~&c24%EYc;wX39$63r zxz_EN4!h%tKSswm86J;akuUEJF0=Z6+hS?EG~1EoY9kYdj82-H@~xI|=U9VuSE(8i z3WcSdEO=7AOJux$vR4D+ezMPm`dn|v=y;*sT%x(v3R&b5jYxgPs$yyr|Q| z4&JBW0+8(rO?whP+lA8ZH>F-@OND6(S_7N=>wtyW920a9QX`ppcZMu#c?*{7?y_7( zV0|#UY1PPy4Iv??*UI1oxjY!97o&7VV(?)gB%l>+^9?KLl9Jd4()5U6ncs+Dkr^b0 z`)|*ngLDoevcbQV_?wG`u^E4^oSSmB=MeXI{57CwmZDFFp5Zc!aMAmaptz_puHc$} z1ZBT9!WGa;nB5S=!p)X1sk@n2YBf3}vpwU2Z^;J2A(%+7)4DIejC~n=6%A0_tz$VA z;=6zVg-8b^I^MD?&5g9-t5r8pc6cP&CH8&=Z<_+tby{xK)7@N579Tfe<;LR#KkGF4Pr?!Yqde*!Bc;xcRW9Z{9p> zByy204pWH!F6H8EwyP*bpR%i_ZkUvxz=lcbhH-+e!T{vbI%{}4K!rQgNp~!-{U=?_ zwY>JkGdQPPCT_<6rKj;%9;V-jbdiJNu>v^Fg#i^;SF)vW(KzrtW_tKji6S5NEPV-+8AE(^ zt(|KnRtzl?>_M!?6GgGIutGRCaWu4IY$)%C$(9EijU zN?U>K+FM#y4L~fOOr_-xwRuuo%J>_~nAEjf1!oB+I9}udfATXmpPTHbh~i9A-u$-c z_WLG=5KYlTQ9pVOL|<)=XaHIwxnpqnMjX-)v%@J2O$MvGxPzlf^%4k|eQ*~okH{({ zkMMAH^X6GM`@9;!o&d)u0l8PvyMOH>+t?L#`9Jg)HT?NUS3b06dniqOdI>@Hs=cSB*FAmCV)MSRJBy3uudMPR>QU?Pa1PQC* z=ko0?LWe`({;rJP+oiz-6uRHwN}-!14+#*`XNGqH>t<>sQ{JwUI}9v>0CEcg7& z_*;O#L1)i1KErs#fkYJ@3qCRSEgmH*Z|B%I(5tBAzD~EYojuv7k#1#_>I9VYIE2IP z>HK7&GBTR(ohnv z7d(aEcrbr=Y^8U>TSxG3_?As2FPCND$MB1&-ZVcYOip`ve-`WAym|@OyTQs$*iE0p zT3rAooG2S^2R6yI;@M>}68H*sf=Lg~bzw!PF+J?HE-aZVr@4PbnpoA?g8v=?gsL2cKXgW4_1sfN&gA=##=$3n8RrNfPH!Qt(@=cMHZ3(!Y>LQ5MkhC*|&lIiXBX z1|al2_zP_OT6vuEKyArj2`dJz2+bv)XvBy5FVurq)Bw0X*o(R+-T@OG7#<~qGnwU9 ze5r@CMCCh}ny!ROQ<7c^1zkjtNr05FG|RaZs#-NcaF zq_x58VVrI?7g^O@bV2ZH9tvy^6&IAJ?rRnbO4&)@FWE?A;kQTOSJ7UuODixiV{=t~ zk!Y;Gm?8FFd2g=qXA;9H^y1~J_i;AF1L!F>#6$eSS=d7Vowz~V7-!;X@7Ju0-ouNl z{#nr)CQeLKc(_H{=D28^<5*7dg;u$O`gv~tXN%{7CIM~;&&}eUK=g8S!j1f_oyp$9 z-aC_hg~dCQ{e?w4lLP#mRT$ZsoQ=deg@bk`2Mbs1gsQ1<8vf4|F2?_Dg)08f_Tj(P zz4-4q{8u~`he+W71WscBt$75dd)U9Q+o4g|;DlF2eoz-R#7jXX0q?ZsE3= zxC@-P3r!qv<+9ud@!P77{iskBr2D#Okno|}guyeSq>m!0kOs`h5E#JkAMiVf-r z{``di83Yc*AWAouGq4gdG*v0ysr{INFxwErZ^JgU)F!xX=s{9}b@kdnKLRXm79;jR zU=9OW1PTbSnY-baS>~JH5&>2tVowG(Be0NxGZ26yPp=Rl0D-2*DJu>$FoD1#8?zS! zXCr2B1~9qBeHbVru$Y145g1_rvtQhofeR7Xj{%mmgaHEY&j5id44j3)C*y|ox!&I8#O*Y3cRO+Sn7DU4arc_IPvEzZLm>|#z_s!)fqtqB;Sq%AAnubE z=urdoPY%$h1jr>+TYD#ZaE4`ZLnjrz1B?yc4;eP?K_Rh&7&cwn6_I@Lh~$GD)nT;j zNIv2Ju#CNjv2scC@m8ee^B50Q;PE;0-{P+gVg4ijx>18*7~^Kg81^F`F5g;yBv!}C z{8TuZC{o0HwUGtO+E}PM76)vED71dYq84hqXhMa3M_MPe5!_Nb9v!(L6HC-KH8FT* zT|}X?Hio!5E`GJ{k}^v_M^z~2=FPq1h8xMZ!I7TroHC+?{a=Y^Q^UWG%`rpZ@Kk7~ z(9Bok_gyS=;%j79AfJh;=q0*llr1j{4PGIRQEwqQR11ab6UgHw=IAeuS@0~Gv@j7> z5O0vsQ3i_4D-b{Y8I`u=QL&-)6IHO{ST=^wRsH*HZ`Ij4_3ZP{&^|EMA-&OzbmVyf z=4BF=#yEdOWh{R7#A71}%0lP(B#8Na+LMKq<7u@q;lWPo{3O^YATm+<1xA(xM<}o( zHN4D&HBqAU0@ISoK^shIYw+4pa!ct-aNk?}lnJ<}I*U$^lWIj3m^0;_#?GS=iE+KQ zkZXA_EcCl&etQ8zp_lbck*IVdEuV?UCg(s;Nx=^YbhwmU5RX9+z&HxP6J8(Uy5ccN z1sDeo4SJM*TxgCZU<_46sT2o60RVGVuO+d8^^mNI>iIBftOqb%ZL%P;$k?84fq_>p zUbzTqUb=tWkMA`vo<@0l&5nb!V*sysqfP`eaR9J#4lJ!NM?tHVp6AXm2Bm2{zYyQ6 zEskGl5&>ykY`8>Z$7LrERiQ)x4rooNKx;w;+B@bWnKiWnX(1{=L)d2ms<2krP-I61 zv?IkQD)6-el&d32aLR7sIJmCi(jJs6J=Jn4&9x0Dk6T`a(m3>#*)E<^f>ekSq$^qi zbyTJV4_cTM@|*3Xt;J=ZI2F@lS3{&0wTQxeBc=pyXcaqS2tlz=s^GYB9~y6u;SG?O z?69^L*_kSI5D}CR=CLXyH`p`81>9?t1B3el&f)?pbe`VA#Wi^PcuQ<@T-Z2=lKl2U zp(Gy@N>Xvj2Qg_FSNNOx0}@4^6+DG>VWBcLZ~eA`+utOWn+;8IaC_xtv;Z80942vC z5Wk4r)l-m^YfT1!4L`6Y!Cbsd{Y?f^h0yA{dMb;=c1%>yKxjcSNS$m8z@9NW9YM&s zwyrjZ6SEnUHY1dbre#i$;#+{6-&=i({mr!}@dh|FLm5vJVNM8(tc;kgX1!fd+u~){ ztU&P-gZP52EB<_5_ceN0uER*)y-^OVk;Abu>{L^G)I^$A8@sxU~qUFQEJUPA*W{+ z%B~J9=iY5^n&HKtT@1LXdi9hHXmBD6K99AYkNo6?>1jV z;4K8cfWUA}sPR|U#_KcIIem{1swb%EudA&lTY<3$-*Fry^N-eQB&$jUAlwGtYFgEljEKDoxcpVhbEi3U?J9)4enO8m)A$Q4{B-Tv1)09xk`V+Im-9N zj5b<7Lz_T@ZAyP6l(^|Ki@~6l;d@m8KJZ#F&Q!L^>g`p2&CTSP*GaHljs|`O;NbOTh&4i=sp1{+8&o_p#2rT+t5Y zxPQY~-p4UASVia&5HTv~X@!ufRi!*2WUvNt>_M)DxD^NtQ^?d>BO|FnC=?xP>*e^- zmJSW+Z}n+(FSr5?73=fi9*x$npNurz$LAF)rN5r#yAqy@mJUNicXs;|Xa^p+l|iU} z8`%^QrOIc)OF@Jl=pRmNd^2l&9Jz!%!)%|;^?QI-%oa&hzUlyp8uy)}+ zb>>~LK;I7KSRA(AI6h#3?)#%(!&t!I{y?EkY!h93L(oEECd4-qM!C5F7$54?d9ZXg zyF!?*TCFZpH}c^(l%=Ow}6%!_Z2QZr}j0%R5RpU z?)BzY>~Va8xAp^GhvJ>5z2M*(2HpH<#`UMEO*iR4%C~`&uy^{+qlBeAC=eixQm_2> zmHPNw8o>Y13%ia(J7SJ!P_@!6dcpl%Y}8H0jA4%Md+v7X$6ddqC?Ik?iUJ^AM**LI zl>!|1qqAeK_fZsA<9t*+N(TS>D#baDQBgqT`4sJeNRmiJ?Te%v>;WVg6i6x!{5lZ8 z@00P1a2!0Uu>bns{Wc_MY}y388Wj$l$mG?C2_rJglQB=^3t6#q(&1#Wppc@$ax$Uc z$VC6I$kf&#(~Qf_6gipDS7f3uS7gdG$P|vFlS$~XC|h@fY`qQY5?-}=wu2gFBWv9} z+xd;M5&bsL_Krr`$RRh+_W4HH$V4~K_UlI3$Y?jumb+r=tO+(pHZEJtTcZhB)+ieh zeDiGQG|I+9pn0~*M%l=AH_!IjM%hSxHqZ7#qikfxn`fJOWrL983od)mw*ykVoqO^iG3&fx@}oP|K-b7rYhiHTGLPw1Zzq z-#q9*o+h^nmFn{cZ6be1147^=v~3u%g*^(pm7W115LqPF@a^A6u84LOl_dHBs(pj{vh2t&gWmvJEi2WUCzZ z-;Hqv@jMM}8wYJ0+Jn=iS^6D5Lr>ba)*RW;vJYTtK)t`jwm*U4%OIs_y<=lmSzknoz4no}qs2sGTsh}_X%pW6c zwhW#6fXt&+{(7SPl>a4vyo54cZ=W!wU6R&b`U&R1irw zvQWm#8NQ>qCS$a(^PfJz8ZKp1#mifHNt1Z%a&QW8Uw&t*pBe7Z3@1eyctFAyrLJ_z zP<$NFFaOmfwK!>*QY6>0M!t<1b z)k7iEzq5AmakE2B-7#=ts9m@eIvk#kcz6l7J}%X}WZ)ZVPrX0J&uEk)%RR)WfMK#V zlbX+UmGL%1GBjN4f?XL-&%!DQtZ^I;{{n>5eDI~=Rof;jk~b>$MqvtKmcV+m1U7|B zpr!$sT%c$wKFnFfJ%YMOfz29}QnmIM zJ5cE~z5w>d!A=~a<`*FT2aWX_5d-Yk$~X~p+xJ3kkV36_t3CiN;`%CxY_=$`dJFiW z2iZO|#tm(@cA&Vn?rh~8ULY~~y5X^T6cl3E3cyOg;*D~1r?CWwnB3(>)TI|0OtIl@1_R0W68xkHkgW70 zX)NGS{HIYa+ADaQ25^OL-bcsAAG;o6h7{!!+}87AO2)bWLtTk+M+pz>PCok^2{*tJD64J(FU0K z=-m=vg5fVtoPe&j=i4gxae_>v>Y6lNQ?Vj=3+wEfY>tznx_r_!Apm8v+`8%@h3XVL z@iYhM#Ar6A3<D}rAkSmv!vZxOG;}=+svCocv4#v{Hg)WC?GVg zR>&{UaB6peW348Fw|VN6pKVrA+O&aUh4Y#lc+G2Qpy~#N0iq-y16!+hJ&g(^u}>{W z3|>-o7r88$_UuA?{$GG~MEy_>>&WU#r@JpnTAuG?e;Dg+;?4%T(v?P6dRM)!lnEk( z1Y`FOc94wSP-ilDkNp6br$SAzc^^buY7`yQXil#J9L|T6Fa*ITSx}@XjaMp2#MDJ9 z3hZAIszYOn0sA&GsVXB`As>q)DFVgOn^JAYp1a{_e;kb!`;#H)O0j$e%~FaAD5@!y z=ROz_=Ae^zVQmpy8(IX`-za6;ES){J3@WM=H4ZOJD{Z zofOriJ^6wSC9ZDyt$KM&E$=BeDxqH=WxE{PntyOLkaSVon(*978hx(OUS54QwmETL z)+|MFKhs|MDEjXnNOuv=9!QV!!yZURtWe7Gq-%UGeKUl|xdeDY;8Wql0mI5uxELA$__D2##m$;A*2N~r)+A7k@)!D)^Z3 zDAI$>$a@igb4@&!ocARDjz%0G5wm#R#nWn4xC^61dzlvT$@+0LPZtujs(k^}G?=;IC%1{keR zq&1Wl%VwJF4POVsF;=S?=oO=vP!(Ww0lRtI@6~NcdC}u24QwIKpx`~%p;yGcnOJZE zoU932Age8udT)q#)dfr9)F&4m*sIa! zF|AWm1zAvdUBc2&S>UiZnD4#SMXt9tkM9}*+{#r2`zsKKPgf0E|J%o=$+@OP3=reXT;(@BLE**=c zO#aoLAm3u6cC56vM1 zQ~{>;5Y53lK16d=_E|I+Iyw$P8R`x5XZd%f0p+}(1X%n zaNIv*R_7vYaUAT@1jqdj@s@U?KMPR2FS ztj|wM-tgXStOSGkj5=jbs^SldXSk?H;c5z0q#2_$hI)6eM0!xQAXtdQ&z5-yzGz_7 zTf`teMS#K@ej%Zhs=DtLx+Y(mN7P{wrV+0ipwe-uIM^4>F20EFLh1fPG*Vlaa8%7M zi)s_C%#0BQ$l4`4|Q1(q5fE(mFo@ARJM5!#nh|3{pJSWflVBb|FqIv*9rs zDnNVxuaGtqvbEuaupUzHwjNBR+>j|N`-_|Kj;OZoLMitcmbOQeZ0;dm?6&+bKsWWW+KHf=G-n+q;n4t3+v^>*!i45pX5 zWk59Wj^7HD1O0Jheedp2;&OwAcj#eF((1uG-^|E4UmTwxL7M4oPeL8QAwEXHzLJis zdl^_~h^k+tRx$IQx_-=dQq+%-$e%L1a33`3Aijwkh+lSjczaxQFf+VE4)yZHPqb&d z1=1|YIGgK=Nik7Z{0atGnXYz_^i(!cb6k7{v5O$dGTKclSiyS@@3LtS3E=R-Z$qUDNY;QI+q5N zk7Hy8k=Piprodw3Up-9hS_XPE1U zQU?U=cuui(xVDc};+_M&8bRPx4_QDWkMcs6m+afnCJa)ptHKjN6zuiwq1@KAXS;OF zwilh@7}CDNq@Tj{UTrTGrHgsR=Ka8~!Z4^o2^&Dm35c+|l#jrA!X*nGrP+v$@DRqO zial+-nJCDV{y~p9c8Kj?R~09Y=-{cOgws&1UnMF1X?SOMRI%nDPUE0N!)1M-aa1<0 zx0VG1<7Ndw$EdRp$LTWrvvl@FX-m#g+Rw!Wy8xYOVHfj!bA9;d+Pia_0^%KZ1#}vN z=jWg*RE&USX&O`Xi`p2zj>x50bQ{BowTqmuvXA}o?@-|n6;f5WJ=2RP%F7~S2{BJoJP95CCnX3mtQq^C~Lkr%niC!jVo$|*ha<-ZKev0 zwGmUrt_3XMX;p+^*!+y@reog0-mex~o6lD7N{sPmF~$?`X}|*UjVrSRMfW zJwwAz$WuV^?};*DKa2R_O$(7o{d3#2EC7YA=I$i=2q~z!PxtI|m@~@`+`&pBsYh$& zPNYHh4Dxd7y-Ar*NV@8)rM(&sKI{K8H zAkF;;m|wwe*2jhZLYr}2dX}Yt+CUUNhj}LYV6cMJqa2YF3k_ ze}%b`=v({YCvOrJZ@Uln4<`6t1j`43Od~8fGs2Q5+a0tOUXsFz7n5TU{__eaYDWA@ zF3>=zO{AP}R&!a0=28rGIW3)D?tz~;wW^}`zPc1Gvp$j)c$It5SjY!AqG=Rx@vP)I z8qDZ7y3XMte0`_Kel5Y5-)X(KIA^%7`$|27VU^kZyF&q~vbQ)g_B=ANTD z(MV(BXn)}!0PK+cf@B?(G!F1WH&`7U+r!V(G|~mImXTcmpk?IqEy7~WA5JXL%Yyn8 zTVXZ^kSBE(k0%#q3$fO29$=6`{v!rixYgk~&R8;54LgzFoM$}P;fqt=HVLz$EOJrm zpd$xaYaDu7Yop6IR@^q5*G~$w2|_zF9O1)1bxQnm!^SYSzA-%IkJq~E@(cYuwI%&E zE$PSb!tN+)2@e0^pVHnN52(~Y&H^OujAo;`AOVJ-2gIBjh&h13S&ui-;yE7Wn5sez zfO$?97L4&6PH+OutpS*e5^$myIF~rLho3KW7$)W#yIpf8jdYvb!_p%qM2xt19PT~tw3t2Fs-be=G|+$vpc$jrP}7VBXa?SG zF5rnbU2S{#dkp`yzUif!JSF5Q`6UqX@!X#Np2N>isrpsh^xw~s&n>KJ#6mP;p}&wT zuI!hGUvMVzPYoxLvGp5d$RBF3K?G7Kv3?+iYuYf3HVpg2(FR%MFR~kCuNug`0J)dH zmuwI`0*wu#3)Rd@Z8h=2GUZ+4#kXP!XgK&Pj>BB5)6Ku4LqmnS2Q-$;1RVEy6D;9Fow;`*HTEFd`Y? zMT~wQ@w6RZ^2Bu%;eInV8|fQ zf&{j5U^j*)2HQT&6pa1F;TgzL-eu(TQk#8dT6eU<=8nM z_=_^`)PN`*1ykaA#ZSbIJM(P1un%Svgr>RS_v)RXM5(qDYhObrXaXN~q90wy25Hy{ zahQcC$1d(dOVfqLXdXz<(KGq!w~O8Yi-L|9vM8Z23&Vd1(vb8rAdp0s4-7C>&#i0(I&_9b};{QYgq;2u0zOmUTVLny^r-6bj-Q zLV=KVp^mpuyDJpTKL|xy(<$p>3-t=N4hE5^8&IGoU8r>y>IVw-xON|8rh&SO?Fw7} zkU~A7P#_6isKaboHz^di9%=-w=t3Q7q0UyQXA}ygq6>A5g<7FdKU63Xk}lK<7HUAD zb_`05p!i&<^%m;SIJPhnKhv^65V}y|JU*pRzfvd?e>$o%5@*@69#E)%Qz+1PF4SfV zb+tnMNufaaxlmOLb&^8;MWH|ex=@!`s3i(@mG%+zVMC}+h5CY)MY2v?e>EbadHf9& zniz?Mt_hH2F4Q5m#xE-rFKS{QL9n?{;cVZdP~TFhef@o1sBpF~S14KmqOAS={amP{ zZH;Rc>JWum;xBQb)>tSY9Jc;DS|jKu7b;vi358mxWs&rAMq;fk>t~|OE5gGP+ePBf zfeLrpXB6s3TH}~M=0b(5@HU0IT4(40{{R;%T!j}Z)U#UFQh%unwZXP)r9xey?ONt9 zbD=g`sNEFm=UUc*{(&x3xT60K={&|Osbwwqm%C7B*s{K_P&DDeNUZQzxKQD`|F}Z^ zPN5F+4|1Wxb$_Em(MoET?7b>u2{Rsjyj06mE*sjCTafd?vmzH&;f20d_g@xLvP!vU@U90?6F4UD4YF~x=qLy`(f0Ti`1`*NT?ocR@ z;4JHC|7aH~+}pp($Vfb?Wv%vCyHMfY{-Q$7*0R?4Yh0)!Y`b-5l zU8r!^9vTU4muXjvQl4K7r;YyS$K4eNf6mbKB}=t7-iNAwsCZcwQGw5*f;lU=CuY+0u()StDiQ~Xn0sBmvDRVdh5 za#UaEzs`jUcWqvw{-$M}>YwUDg}e5T;9@ZnmuOk1`KP&1;jVpBp)OOX)BV$3sBqW5 zPoci0P-pmO7$|ZL(SF>nP+5gK(?8RN3isoRJb1>SEywQwb|e7LWSq{T?$2YCCWO_ zKhK2<&+Us9YFwet_s@5s!V`IoLY=BmTl_69RJdzP3U#JJUEp8fLWNXqOrf?Z)P??q zE>w7m{-jk#;wgoy`c)Sy+>ehcRJ%f5%>ka-JT&Qr}KcP_H*0Q$w+gzw{Mc=1T z-&3gV{&p8CJcr((Q0HomZ}i{jLWL*Hi3;@#Eo+Cr!-Wc0A&itbk5n*Ywy*N9a-qW6 z&M4HsYgt$OSG!Q*JU$q3Qi^$vylvX=EG|4jz! zIz&XcFi@y(DAaZSbuLthzm8U@e^IFG{p($*aE4$x#F3z>7)Ig-{{|N-9DACX0qQ3T z^=ALgE>t-7KSJjKb*<8JH~KfaP~qwRh(f{co;AM3e~Swhp6)j*)bm>7P5w?5_INK!8P}WNd^)~-)E>t*=Oa|2773voM78fd< z$EOwQO*#^j{-g^Po{tYI)IYSWTm4&IsPKHemQb%QczV14_Bz4SYmuJa=HFH)cxo;^ zV^bingz1>@+gE6`|b}ryiYA7MoA5HGet49R zrBfnkT>Q?cI7)UQRi08DihVz2peZyxwQv<*9*pnA^MbwO>kw?+DgJ9t!3=znebIL= zGLh>m)d&SN4v?#_n@Y!{w9T-VRDDa0*2P8|*F)yh>R@EtTD*%;*E?BPBVRdd>wM*K zTTbIEX93JCY1|Rox`|26^iLH{XKP8D$BS?xd`bJ?0=Z-rWFKBu=&mO40jq|`@qQfN z`?wWNpH#B~QG-%CO?3f;&xN$aJE}3&u~dHt1sNVREWTaxz87+1RV6bomw@JFd`(_P zRR6%dqKQZpKa2dc#YE2-Ov*mi7^A4xr!EJQ!I@B7lpe=C4Y#MF4_=$)D(N$CFlt96 zlh{Z=i^y7wJ5bZ2_GIuvhbe^_A-0ExTJ_#wP2r zb-8q>+TX(rr%N8P6%$ZDCpLi+L9xH!5uziC_2IL+15xVl$g5n9Au+|`;>4%1o_K+R zHskY{LeF^h=)s@4Q7>BpkQ&zM0Xsv$>6&MKC;7#DQQ6`F-!Fa;fxUf{O@*!dsvFb` zqt_#m4HRYW*WqPN)T=`|8+F=BL}8_hDu&i96?RwQ%}-%lfAxLX`@Q3;pM~H+^{{gL z*EFbHL_SHkB~w$Y!)k^O22gRl>xlN?HIZ~^AxghH?}TTC(4vj^&sOxpPMx@?mCDPu zFxJ2H6e;c<9xE* zn1pbRu9nLJF*toji9 zd-UgMgfn6}9kLw8tfRb%W7dH&o2g2>nL1{*I=wznJfi%AP7i0gwSq49A|8YQ3#c2m z4$uf#JRCN9&bkW@!+6YQuv422T$I{;32niUode;f?anl4#A)-5$Ri-Obl` z*VvJwuht9B%mCV!A>kbXVH4_D<_|LV1*jw z++e~Vw2g1H$fML|UBirrrKnz4c8jydT>w$xDu68Yhh@z;`-Gal|G_??>Tk+Ec@7Fr zcUwU7hZ`sj2PfgrYdRER>Z=Sz2nW5acJp4M0PUtz$83}OzJ{rDOzHy-QwL4zha09A zOzOuQrfzDQ_oSwIPd2HKxFz=)ELpq?V+}hyJYcE){!~+_!wl5tnnE3EpdN1ub&P@f za#N@i4Ac`%p-wYU-)stXmVtV@Db!{I_1&gWRRi^drcjp{sGl^1BBA1r{m+_09b(FQ zzA2QQpjEu za^g*))|;|YO`$dzsBBZHjRvZ-DU@BS-A$p+FlF^Mg|aJpc2g+3qG3rH;j}5^wZ+u9 zdsC&- zI?t4KOH(Mjw{L3-Wq0izO`+_r-Psh%?%I2sLfKvWzJ^fO*6qg!nnKzA_~E8dhnn&F zcvC35YaeL}Wq0kTnnKzA__?M~_S}BFDU?08zuXkcp2$x$g|fT$@Qsa57(4ds%y@mX zX<7CZeYz=>-H+dG3T5}>51K-qY1;LZrcid*{;VmK-L=m*g|hqcS52YpiTrO(q3ntL z$EHyBto?ISD7$N4ZVGj=8Lz)Lg|g?PcXOjP@us@{7;g$?*L|uflwHx;rcm}A>TC*S zPnhneP<9peHHEUXJ-aECoyTHRD2sh}Zwh7cYN;XAb#-Gu)D+6%uf3Z>*%{imDU==i zN>eC1_Dh>W*>ihEQz$z_hc<<>dwXS5C_9fwH-)k@bZk>7J45T5LfJEIydl(0W*%)H zYvc|geQ%)-GP|}$4q&Ax(}{pW!AP;O2*{ro*7N4N)|}L^%@)eG=G2Bzl!=oww)p7G zrcn0uIkzd4#adgMLfJFwq6o?nbJ4u~e<0?fy?MQuD}hUhp1%Nk%!GFbv^Za(EIo2; zfom)x8--rBawL**`K4DbS@5b(BAhmwKpMtb*0X{Bf zpX8$#cS-2P&Mk^o+-^}6%Cjh{(54i1UrkZ(tt;w3>WZT7j76zfyslMG*AzwTDYsRB zt}BXqF&0H1DN|bYN=;ETWpaz6A&A>Sx=~?KykIk>sG+yHWA#O3b&I00fm;-P6z+kd zAfBIE)JC_c@|A8m|5;ZKFY3%fIlOVxSu=g`h2xbEbo0JkmzVc#x{&9Fn(Ep-Iylx9 zpgQ=_J^=c+vHPLcNy?KI^&_C_cQ`rn^9xV6dSd=kkryky6|bU(Z?~_3oi_hXWFVlP zUl)- zf*(0w8-iWV*T&#E=j)K*Mdxcy@Cj}f)9NFG-#BT91;2N`HU)ojzD^8Ya=zvUe|5f& z4qkD-)&{X#q8d&L63*8tLB{zyE$DE*Rt83!SvHgGJ8QnZaV`>)2q4^L1V@=6oF!9O!(V9~|s_9U2_&d>t38a=wla z);M2B1#6wJdBI#fl4oaSOK@VCwu4$Cd8=i9VTC@3g2iS72iw3QHgKp79A*QD+rSYv zaHI_!Z3C-qV2uqNV*|(9z;QOP)&|zuz=<}n-UiIuE%OT-Y|KU*ILZcA*}zI0INkAtwx-MHmkiW*CP3P8fdF2~#C!%K@4Q!_b?DVfg3?!!+oy@Sk(SxJequ zQ@d(mcz@Q0A9uoEaKc2d7UoM%82aTf9_M2i{;CuHniGD)34h%QKk0-go$!yH@Y|j6 zPn_^Oobc^V_?=GpLr(ZkCw!L^ewP!*$_@L%i!!$FyPPmId{} z&j~~O9L7WU8HPXLgdcFiv{kU}c`yv`xSN}8Zx9mmgN@vR%MtYE2d6mU)1C0yPWU`0 ze4!H#obaVi_(~_d-3edqgs*eLH#*^)o$#$r_;x3JmlM9n3E$_0-|vJUbiyBX!Vfv& zN1gCzobY2#_=`^Xt4{byC;XHXe#QxZ-wFT73GZ^k&pF{2o$zm*@b8`QpPcYZPWZ1* z_!TD{n~df?;e<0zxWfr|IpMq$9&o~gPWUMpwAppFn-jml2`_ZQi=6OcC%nW7k2&E3 zo$$d<_;4q@$_cM=!fT!IiB5Q<6F$WWpYDXucEaa5;R~H`;Dj%A!dE(BJXIHt&(%&C zWNsLL`^i!Gx)5f^J<(Aa9*p5J7@j}jVHF;O;h`6vTH#q20*6OaV9-Wkvkko71}?OL zi*4W}8@S8{!qfN^8xx+`r`wnb8@R*<&a{D3ZQwi`*kS|W@qW3DxzYx<+rR}jaE=XJ zVFMT0z@;`|58=W#8*{b|yuk*x+CWGqgw(;gnzVz)P!oz%Zw%*ZesHrBzSRle?u74h z!uL4g`<(Fmov^!h9(3YA>VzM1!jC%P&p6@7obVT&@K>GilTP?4C;W^P{=O6bkrUqK zgr9T5FFN7hIN{$r;XgUymz?llo$xD8ICg8aR}xM*97U_p$orrEk3-( z>0`sz%W*C}ORZR*-fSD4%YbYgZO+l`kaZ++UIo0d$)VZIlVjm zOn)!l*j)~g`=cBz;Nj?#1w?Q3&~%rKI85K?46=YhI1-sszf&5sZw*UhcACYa{=q(E zALv8<2LU8%;xOxvDug@NbP&B8!~*DkjRh3gfC2oE764O$Am+1W>3}w-<|W^DJX*a^ z%5SsJiPD-Dj-JzbzYU`evKbbTp17ulz{NZp>O2J8ZR2PZ7QF`Cjso=6U%ZQox3=lM zjow_d#ivP7K0&#FBkIb{tdNLDwJ=PrpiZ&)H7_jF;B^fQS0zrYerdp%%^P>tO#er>A<@rd0TWfWUm=E(>_a)Y)wU}0- z7ae$Ycz=|wHiu*L;UW?aUFg=j&<$68i7L2)jNf_Qc+PkHR(0pS#PBdgZF|B~B5jq$ z!>I8=E#VFGI7r?_?_BW;ee`ms>HOmqxU12GcFEuV@sB#^-WU_>OR5FQY}y}9P=mYT0y@wKIN1q5yeUhck-C&#vFcpqhyOekoJ zPh%|FlGV@Pr%2v-nky+6)IZ<63E22?Tpm$})dxWI>9fJ_WGT6sw zkgY#JUJOaVF?F(Bgo{*+DQ=n2r=GqQOgn8#B#~zX9Ls-H$^8D6P4_?;R)<{=U@|z0%TxPrVNjhX>_cYoQyn zj$q$->2PcYb=1v>*(O4KH$#5PI{`9deIuvXPfl6y$T9Ylb2faC{obxk@ zMH6W`IuG&SgO!J1hnE%udLz9?32NkTj)!kxpD_=QyENYScpFyv0+`ufhk}J1VWHJu zBUUbn^y7X3i4=+b4PxyrwGE6ZK8{>_wKE7$s=A(g<=k2T^n!GrT&Rr4k&hKVGp&}= zMzCJ)#-W0{FkLm~_P!noI1!RSC%i?G;bAaS4xGB)`El)>pl-dff$e495ajVHy_QPl z%7$Wh8YnBUA(!IjzDpc;V#Jd>T}Q!FuWUw)cPl*Ii|g-BdR4{wG4@+={k^=2>+ij% z@e4i-S2A1p0EaAFdYgJ}uEF!U!3wdFCGiH8#4DIC44U`9fqx6N8_#^&jb}d1#xq}L z;}sfjyeZM{#-j~89*ot3{Nk&xZVx8(Nd-p89~PvHsVG`Py=Tp-ol8#IT2JY7k}nNyp<8Zaw14X6u<36yp0k6 z?nKM_ zP=CdYPx35jaJO@m!rIqJN~ zHK1}0M2cMML?<%(V&dMoF!?6DoLIn#OY$#?t0B>Gis1BjMgRNfE8M>E9bBBp`E9J! ztno%yOp7~Ew^3JD9z+z#8sIE zA=rxPzy$fi{rE9ByAyc(KmsXITnZYMcPQJn;pQcWlpaXQB2^{^7m6x{=nyk8b`Z8L zc~JVUun1}z9#oF@+c9nCXy1S{Tu$#PJ$A|X(mvSZ^X|Hn|31AO#6Z$PRW@3%D%Itq z++aB2&C688Px>s4%Oy;A`huG%y2U$i;hPSf>}YGSc*_fMuQ^%5&DlhjhDk;u9#uqGKtX@T*pHHw&k-e zagfxw+S?v4w2zaxPgFjEWG}@VX{$I09@}E{DKuT#D?LJAi&}OX*4+4qN=3-#u=^@^}Tv;7;6bl-tf=a6y-V zRxixN;)P6S_%>&N3NuGQtCq$wdptx`HWTwZC;ote+Qt=x*GO~iVA0yKUGYv!%sUIe z|H5?^GBLRRFAsUQl^5Y{$`<6zf-MO7fy66u>(*e`kQ1Nr038SP@YnI4!;Csl&2iKj zXPtcCDF*amuGp!M_Y^oSe_#!D1iKY(#)i6hDasNeK~eU?Eq z@fA!WYF`W|$P!#TvPWV-gNsIHC;B8L@n=RxDF=GuDGQzPk4fbY)V{92LVT5B98Z2dmW3(9@%!tdK&aGs` z4kuy_BW`jc)-htI6S0vIE1if_8F8!=aW*4Paw4`cVoMZJ+K8Qscf)|4xHouyo{hcm zZSDm@>>1e+K<||#;=Nc(7F_Shf|Qzi4Q$wJRxAasO4jO}k&alZPe1f{#fo3*C8dxO zq)KpeFV4UduJK?Z2+%C$#DhB!Y(p7YuW}2Hm$1VAs6y0XDx4irxwW-WSVW^p$3!s^ zyuZGdUe>ZOs-+L71W&3;O^ek=v97GA>dNve&qc%2Z;qtea_qhRnl`;Wr5p$kZLiTi z5yR|P(;l@>tZPqw-@Nh(X6Wd@oz{r8g{WO(T_N?;;88DQiZK!mj69HWXy%9WXY7|S z^GnPhjxXpgw+eln6weSKR8>$f@4ATfVn*>R&ZpKG{=-qS@a9-?t;L($h!mcWM*AV7T!o*A-vJ)Z?t(NY zpWS6hKRFXTZ;m&3fS2gT5mC$QxU^u*8$#XRVco4#e8$jH%DYG{38%sjqch&ZkVOxl zJ3f?M!G4SLopkTJC~x8eP+0+G%eLEgER%(NSDET&mXz4a1R3SFWN-=! z8K{ET&16Akg{NZq^rR>WQUXw-zF@p}e4if8kQ%7okD}B&1`iDqn`Q5{@Q7r(%B|Gb znX`1dahipG6@f3l$9{cK`qh9~HeEdqJ&L2N57u{;35~kiE_!V^sJQ_{=cPcd$*wJU z$#g2cK@6FNMT6Wj4pv62iBfnQ*clETAdyiD@z?^l^JaJ)C><#oTcI97Vx~oj^uO7A z6EL}o>V5cTrlM9Yh3)Y@#4r z1O+1?q97v8VCN4O70pM6-U>5iA~ovaDAOmpB*tYb;d|}8f9aB zehqHgpH32%*WvP3f`d(_y7J3N0dF(SZ*0iDLej?Au}9RES3_SDK<^~ofYi(!`p7b0 z^-bGRonQJQUI=N(y^1sn--VXc@OEa2|7xj)+-D>AzGLtK@U4G4gKI_1o2IoHG5O>^ z0d1BW8vck1EGM87(!4rGFEsS6Q4-X|P{r_88^cCXAKPizZWpO{@oC19s0DtW8cjXb3zB<~@OEAt1lC za4$ZzCiJ1v7?)sXPE`70y)|>5(ihvO#;sS7_af%4=E$h~V-&0XEQ*ew@`^1I59q(@ zjrFe9fRSCZ+SL1KV%Bvh5}He$D^vudI-fj9byjz!Nsou#o{;xZYpmU^lOHnmQD+^7 zIrI_MhaTmbWD|DCRg)CE;W<>R^j?OVgejg?miq_3zgfK-44HKHsy57AoXFQ8<+|o| zxk<1UdBdK-}Hu!>=Ux``ti34f4Ab#!5=#zL@$4>ZBfMC z@n`lAz45f2yA++VV_-*QbRq`|Y$$q!T?P;8f}Cez*t8xsV=Tj0F*(ZW@lIc@5>pXt z4HlgkUS-_djFm7%6)yf&Hi~gF;P^&YU3m(aYRez`m2Lu<0=n#o_eMF@tdUk+#Bmgp zvp-V#_U3HlTi`o=wS$MMdZ1E`(-GG3XPAB&x1LA&haRW5Vk88|>D4kmTip$tG)@m2 zYMkn1tBup#0MzZv%n;SC_b@uoeAm%w*0;M`$KIprf$Q5nP!H$^cnkH?Zm0}eP}Rt; zqn0GiHL_1^%J5NE=oe}e2Im7CkKlPDqGaVKNM-P zZsXEI;R;yCN8*q20`hv0yf^|)brSxJykOti6XAX%ZQG(zD%mL)?P#Y$EuqnUMh zv1wfzEl?kAUFSq%^7M9G{!hsN80OfPN(T1Y_52zTNa-(n0*QUZ7f6S|0|JTis0n2Q zu3pXgzC03$k1vw!i0dMbzHAXl0{1k}Nvjm+lmw9izr&&x<|w|7OC`CZ2aohA`%1P? ztt=^&8mu+woW6|1WYnF|f{sl}<70JM=XbpdS;x*oS;x*&UDov#lnNFWcQNiCOCLfk zZqbOUq7V;8{{7}TBmbfn)(jTT8~A$4rKku`PciaO$-NdW_gdWt5r}%qANV_zo+9gA zPXsCjLzD#3TI&!e`V759tdE<DCuHlxn2QsY7Gbpc}OQUnAWah0+s^ ztT)n7hMPs_X+TV^^vPlyCSYYiXX27Wr9@%;u||{*|BI9ilm(_btV>)0xye|&`w!9YVw`psJ<&p0t2p87sKL- zIxo$9#KLJ_E58sE8bCnVP9+s7wqVH5Z=tx|ip!}Dh89Uu!)ox}T_!~opeiEDr#JXK z0}|{|0$d3UC0S(zCWe1tm}^aya@e03cDz8@P-?9nd^&Vr&mIH`L2b6Rj7?^v-AB9Y zP?&rQ*Zt+VY)<8^7{@E$t>#?#d&XDmxzK{Fcn&-(1f5z*?ScG7{z#9Iej?8LM7F#9 z6>1e2O)&V2cS8P`B>`&KU52EEXlUW5Vj1nX3<3AG4H7Wt|H9+RX90$wQFohg@5SLrxaJDO1H6TPpa${~T) zWjnKl-1E3-+lj=R1FpJQ2EH88DJf#*|p;eQ&h@68j2@b?#5marCUoI`TBaKCa!STzn#H!ym9OssT&8 z>d6?lPf~7Yk}@0mw$-h?RXoh#f{#jM`{d|Hrl)=l7~0%QA<3B!2LNbs^(?LH2U}V* zJ&g(#u?Cxi5xM1>v5oOn&0DrLe@}l+Gaa(%5B^*oRWUDtJe&}ow=tm)nzuiWV1+GZ zQcx=rA^nwvn%F%PsXu4u>y#cCFUNrM5be-Qha8zt+^-qiYQ?lOC>TL2 z9W{Ydwe@Vay%(bLktmi0VzyPQg4`Fm0D!R;wi+R^j5c=LkO9VynTzbjyb3h|I%FKx zY^L20z@SSdwyHt*Lo?BQccUg6GZ*iUdOHPw592R57dOGZ2bzPg-}v?!*hIj`5(Vv- z?Ncq0I~D4!*yg;snrWe}cf~LNxzo`1v~=LOt=bpeix7zW7dOant9zgPwz+@huh<1n zla~F%s(dOPF?sn}z%6(MaqqV!kZCc0p*@R|f@lw0uq##AIX?L}9 z)f@le?q?NeMBt>@dc3ZJ&<*Z&%Fi~T8{K;q$1$8H_mMA4jw1~xckp+Rv)qOT-|x{%KRhC@%2UR&DCw@H^KdENAKoSCmrPJtFZEZj zLYz9C>sP`l4+>sA*i|M~_eM~O@>57MSC5Ui?6~qAcH(i65C9SUnOW_NCUQo`-M8q#gXD4yNKQ$Ga|UXX?P_Pr2jFKy+;uKC5rB>KM??8; zHeL0&%_i<7FD_0B1>*i<=(sH=?mRCpjtb%Hh^EY42GOG0#+0+wgx}2zkEi1iUhJfU z!?&sMy1Lv&Cz!Qq;XuPX#OEzCy#0~7HqUQuc>Y1;off8%lvG- ztdI72Ue-rc$=W~S>}MS~1?^?+ACzX+qfFL;FZ8mWUnT26alEhgzsAoxaDse@tVf%y z0~P6IeZ2pL8~y4)<$4t!ID778?bigqxw^cQXX^*ioU!(3 zhY#J449Mg19qg@Rto+V)hrDk;&cbmh9Fj@eW0#IxdiXdDGXC=tLC`UQAokcLfv(TQ z`jJ}38JBU!54^>Zh$GdV3QvB=o=hR;HBn)0cFVx_j9CuGgMXAAy_v{fV72??i^`l*RE)*DieWxKp>qJkRIdcR=bFdkNwx_uNq^jQbt1DxwQ0Blk9Z z_1M#y%}|*ko!h*0x>19C@Ev%cZufq&Me17l9BPkmyo<+U0S~~1y4`1dhWV6kGqPXx z5--^84qt#r8U^>xQ-X<)a`@=GcsvmBK;i{Akef-oU=pvr#8l}Ndy3mkmlW6poT36| zoGoN+=}c8WJ#n|dup(Bc6@OKW4q%TfWb8@y7RvVRUkt$YA>W$c-m<594+rvDd7Lwu z1{TyQQ?WhvwDLo&XIZSm4~t%`5}TcI_7*Mu&K6d2U*u$u>kee3ZX1}1fXoOF(f1PP z5zGtE&i5wBi@P$%N};!jyIXnRj>qKP1^%~hqdLZZq-_ybhYU@{3L|m!AJ;3MXdy%e8=#nm;lDE6c@A&;rCp=dr zY>&rD-|_YqqggTbHo7Jigi|+S56W`s;QGYiv$w$c4AkdvAW!^8+XZ!?O4Qv%ZmTM3 zc9vMjS-*U^{&>X5&O$?f9Z5U$1FgzO<~O-jnL#$)Z_k$>1p~}o!Ug97yUSis2FMI= zwT;K&h4J=$mK8HH+?k$04+ST;0 z9jZ6|4%M38bed7jIS;*QsY0i8e)rswTu_(QOf{2nX$fD)$;DTmd81KjULCz0~Lsu=YtifW9+HF zyQ1Fs0DZXL@YsB)-gNxEO}#CyUT=#7^=1`MVyEj-a;v8a6vdT$us2XRDDYl=FP6MG z(8GnVgNNzek0F5F69iei2LQ>V5N5I(4hkbYQg1I&>m7d;AcAlJ38DalJgKCXYfzic zvivsovT`d*b@WbHm^#aG$LsR)ee@S8f`{he22jLQ{8Cl%``Js7ZA6{Y_bVl*G4t?4`k0 zu!=9Tzm0S7I(_eV+0O!f4{y<{W4XZ^Juujh@WOnsA04PF;Gn8y<~#G@GUHA8P?>e~ zgH4$atlo_d41GX;TCm7`fWGrxWo)3 z<_SF&qG212EvOCqW8Vb4<-{`64zwPbxK#QGIkulg)j6~9-isxV7`s&Y-W;}zvs{1$`? z7e)A72pnM_(RVN`ns(ed5_YpAX*Zj5ApXNYw%1(z&BGt?1Kxh(6T>ZQN4O`$fC(uf z|0w#eM%P#kRecn!YsR)o{=-nuK89uYP60mm6!(DN)9BGwt`;&Y*@*4Ue&i~`6g$Sx zVaK>b-MIW9nl)P=pc?~pvrm_C5+C4eKmusLJR0c(CPLv*6q$Z8|O7PV{?pl)$ zvFe)eQN$;-qu!oHc?NC~d#c`1*Jjma`uxO?!e-Tw)if209?x(}J4Vwal?^qfZK&9E z$97HeCe*dRT1jIIURlpnFxNAP(c((OD@^_{aPksxnGo*B;s_V7sF}yJh?&5I3Izf` z6b$T{$V_1F$p->I77Xm!@JwI@h4G4^?1Q=(o`H>l3$;!87L=CLotjLQ$t_2d8$XC! z?pgUD2Jy{t>ihl}EQL3-no__F+%YUkt99Jt| zay&~G_$JTzr@rZ#YVm3H^WxKFTUi{>ELd5b=Oj6d7stV6at#41K9O6x(Y-x@GEOGo zv`q2rB$~xmY7GR?FsBjPRfPJEqgJ5m2(&X&?7L1z{ow7_#`68F6G^7M_z=3c-5yA0 zlx2?+=r7$qG|*%?d+!1XP?7r=9{uY4&^RO?t`1Yj(zuEw!% z@_h(Q!sApp%!V0Q5U~LRiwB;7SYX*rTCGgm&9X$)dmgmFjD_zq-6 zxenjYSZY;lXPjnU_|buvWHU}@#u;NuA{GNv{)zU)?j60tdtRzgIXfqY1XU4}>`6GB z4wI3UZ-xgA3Cd%#JsDuEW+&^{g7>xjQkY``d3atbk8W)VQAri-g5=T3Ji5g;p*&!J zkUYj9j}AM#!XC52?p)z)VQ4)UtGAwG%dsW{vI) znjS4If?EYE?$0@wZ5!pt*t*yax4m_syKe)-fa>m)ep1ohGqr(2EwtE8y2lM-Nj9Q1 zx0km@C*(2*RuZ*MY(k5v!t^uRMfOG!+s*#iBs3KE#|8y1e;HZkE|p!f7I!BJ)rwI3 zFrt`uBS-e6bZz82k*r*Hr9-Kgw7-R7nffaBK#s$g%N{ZEs87ud${f9wp8}Ij?_Z?u zluhM5*9EOLAJW(E8LY%VLE^ukN~B>VREg-3>_4iSO|_w~aP8N3Cr$)o`M0%N{=x2q z<=^wj>N5+7X=v zl8JQkg>p%Wy)e+pVOZS0is0VC-l6;8!CsOr@4+y_81|p;S*V-p!kA_qTnE~u?lD0P zE>M-H3kso5DLjY|#`cnvu4)umYI+`l9~paLwVK99!(_yTT~qL?JKb`jk9to)Pk$0@HZ&@=4LPO2W6fSrHs!Y7Jwd!3y^*>pZV*Uzok*V?GRr$KM0GEITSW$e8Hhny7AEHYP|YH7%gIq^IlLV8F~O7I~)IY|uZ$vI+3PtGMn zdUB&_NKfuK4e80*ZLnvf8Y1(!o4^sN#z89-CefT_|Ip{RfuBZ0RZ7&|3|}Jo!@IXS zzjBOs+jff#X<3zG0;e#Bd9iyh3m*Q|-kr8vL?s%fu9}3+v3oRvj8c&wWOLH|Dxb;D zGg3(kBqD6i4PfgnW4kr?RZKT_oBCfpgWglrFXx^WvwNvIIqWq9Jf;)131;0pX%M{K4#P)nn~U{1EXgoY#*;=xsq< z6A!PwcgMQ>cKA0#MaHm{e+>UA#D5lX4i50?xik37!Mh4;MJQKZ`bF@+3jSl@n{;?D z?fwY!9KIKeVctW9Yjf%>taLxZMf4ohYto!asLyxeAu@HL%~rVHhWZ$hJrcYV=YN*e zC)BM4Tz3|JEz6gvG?^@%kq_@v_#}Rxm;74QdA0k_F}HP>uR;NmIHM+~(b|@#YO+&g zD*`YhfXiCfwPvT5A43@N2kNZz8GMvn+Y`qvf}nZ1j*88rhdk59bBFwm4SbGgo7B|^ zymNLD%7N(&XD$z>iupdzT(<2~dEU~)bam7m|3kvB#@5uHAOslLM^y|VJYd#WQG&@R z4{aMbWp4c$3#7amx-Zyav1z+&K33~We17Nf6LR!i=R3CFEeN{VP5ke)# zExaiAHDnZXPd7dV1pBse&~U^yU88N=bqIM6Jl)3_f;Kq!cXWOlfHH9+!@qzb)1zYW z9xbtW1KC9YSOD-v3qu;GWt5uBOUmjuvC8G@;!qD!+g)#`o7XiC7YF4cm)Z3=T~u!m-{*u|&`~TaJH}|& z%P$kfP$n;;&-%YccWdrjqF1-MtHtf3&rTD!k3M@r+(Go&$G^@LvMHS;5NK~IP5^uRh`a2Ei31s{B=O$`|54G@1`$ zBftzC17eG65L+}1V&hfF8v(IBg>|>DrFd=mdrDYq zmdmuy2GHs|dDS!Tr#kTjEi=cCvqYRQCSxaBPxOSVvkdZ z$~seiKP9EFd4@O~ujA#5w|k;V>Jo5B!ck=HI5LK?Ji7k2MVc*5qoGb&WXM0o_N z*%=+g5aPCH!4OVqoDu{hjh3p%I|PF;gn(bEE+l()whovz0e!$=r`=g4V5bQvTD)xU z;-2an6kOne-+}B`-Or>v#zgSpfv{&Xg5U!OM;NOj=&A_g16B370rcD=6D|O2+uHC# z_&^;u0AXt~;e13Lm5p(R9l{6d=m9{UmvsmqsKbTuftu%|;tF2YTqzj@PBZMaI%wbv z4>Y{_82Bn^!OJ>O9Pg|BuK_+#rx(HpYF;?&E)z6RkzUpze4vhA?W+To>t!9n2kN+f zO|Zfz=&Th!5Y}Ra56r;=EGWOxxRP{|9T^N3oNRZ|I$H%SIEi4v3AD}Po&}wZJ-I4a z5J3SJR5>AtJ$W!#a1w0X`Ha)8z=8#ap2p=}Pw@e6Q1>XX;4}=?L&8IKdffdaI0^;< zV{qf7;2@o@2B`+|#ocqgpj+a@fEgp2Zp#V`-vnnHdmH5uK-J}8ve`0(;nRt4sYg@T z8Fw%7@|p=y1MI3ya%KgjZ@fUw#G?YzH!}q3(}~YCL*0k;!HVr(&8(EP(E+zo0W(ff z?WFXopS~cZuTJa4^$>luhywdn0_zGikIu8tE(H;N zy&j@3Zx?~+D_X@rV(p6UgFrr9!F&0@7}@(G6@frjv^@TjytsP_VMvH$Zvab`hYwqGiw5 zl@S8v_1W_S&=7?99;#~sJGos1C=XQvD>lI)y4nfKlL7&g2j*Z*9w2VSqbRBrZ={Fo?_Z3P8(I7?uaDTCiK_RChC@0<8d8 z9vW}g>W#N+wZ^k`vjbLF6j)uawBOG-5dI|1YZp;zNVSMfo~^(EtPbX(zAq70*G*#) z0CK&6Lx(y#AaT84u3A%j25Sn?H`G)BTeqjGsl9Yf(Q@!M?syaR|_ z_s4?L4w$#@{RfM>l|fN=pnYJlHCL+gAE>ijS-mk=hVmyu%^#zH%yoCZi!?`Zr|U-7 z2sPaouwo;O4zuF)5JGLVJzb;Ax*VYDuw4r9>13!Ef=~mw1SDtl+2}oeV_%1%bwp!N z7@;;=H9Ch7?TtjzeQNO34}hG?Ss~{}+pAQ@L5%tJ%hlY;N>hnD$oSKedYy&oyvu z0x*nw9ho*=fVXfd1LR!q=O{z;5Ih2xroDsObB?r+EH@%xX5f?f8mDX@fxB0gp{|^B zn8IqyKBC+Ns>xnm9*N%x_7OF2N3X#$V;}=(xf%Zf*->w=#$Z4YB#Y~-Hgq^g;p(07 zR|Bkal(MN`4j*MOlk0loxgR18#{~?{ojeByVA`+04ItT$_V8*8)zpdpAN|Hyv^?i_wcz*Yy-w)gJ_@DGD43w{TFX+N9^TWJeEVgMIu zB#%>f%bbTa|AM|f@N==ZhOt`*!n(@4Z|@A7T?b*e7*2`9jao}9Y^AFDLx3)Q98%+C zc2!4nsgMMI`5{A4uCvija>7!Dq)pZjDaICq(z!Go5|FRn zt606J0Ah`ai^WsSGqMRU_a2Q7Sa&?bPI-eI^vw6@D74zBC`5I&50271TSuwMeG0f! zC)JqBwW9UpUX?L{@B#le_EVLS`HUZgKZ6J@|AUonM_0Fpa#K}97?vM01aZ4JoF)-g ze#j8M?Zt3N8hQPYkBDWd5(%errzO%48G^P&uJM|%JCzXWq=61FO!gKz|0=HQnP%91 z__%2YTaV(*_fow{LEE&SXGLN(K5076i{^Prv>>8Q$MuX#j7!TT&g;rnP^G_0Ktu&m zm>S5YLwU9$rova={DOO4s^AL0rlWagBSxd0u_ANNzcTXxYz?Tg=D^nA(6F_ZVhVe8 z*trxmK4jT22b6-XwW(EByTT2OQa{+zYz^Sm#uWE}OtZ%X;sXaZR_(#^B%B%@fS2{Q zA|Sn_fH%fei)q9g*5ZVO0WLL!M1#kgeWBk8TxvOpx1;N+4l1}5eH2`ZmKOt;YFo2k zIL57vq2N;VQE;gh;V?gC7zLN2PXN>egsy>0wXNAd9P2heW%?+%)B)izxBDs6CzLX# zBpGiNNTICZS0IHt!LNoC+RN}O2Jfuu{K^rGBfeUI5&;;53lSr?FA%rBWCezxLnb7R z79!dWQ)@?cv=HjfpoKd8p$X8l-7#vk2GA%dYcf*HbEiT_UJA1t(SU;?n5@i0C6W1U3I(4|;2 z1=mmm2*)?5e-q#{orU24264t<%`+yD&UElQpv&Mz4=){_-I+^567cbpqa`R=gu z-mvq5u=C-t^EV-<)`f-vDTQIBj~W47gV#gq^Nj)2Q++;CQ!hXk;#Q7AegBPhS^F-y zCw;}j>~m(<9DfU7Ap0!M?T&h1l`?QA0rG4T+)3q5+*Q6?e?nhVGbGZ;|U; zoKi` zGkq7Z)8Gi3!A?LlZU#F=o&N@~(_>hsZ3a7iIAEtGSV|M@lo8YhY@bQ7-x+A2oEQCI z&`!@{aSro)AfxatQiMA}aYrD3FP?Cxd&&EN;7%?4${^gy|IYs#ywk6_3=QF(REho* z0Z$WIRsfy?ElA^~Uxh?GVObw)K_Z@hQMCo%H{wYeF^G8bOYk2Kc{(oydBU}dp{n{1 zhdk}T<~NY1rXb|Wum8=MCqSEM^~Jqpf`CUgsV$?;m?!MHZ4C3&{@;&zTKVtCJhgut zi>wb9^K=VV8=HW6ItL{QVV=bJHZ+W_;q-I zIpR8NbyU5kor+UzhuJw24=?q zPjgf}9t(avAvdGBydzD}Y&h~Lx!jG!qKPukdgBH!DQ8R-DQV$UZ%>p3$sI(r%4JMe(mj>DL)!(k~Vrt8;X6Y?NT7sG7|rYmgh-Hho{ zK#I+nE?R*;g(J!Vu-&F%x(Hd>4CK;=G*-rk59EscKLWY-grMFeAXgg#dT6K3K(7BR zAQ!f}(KrDhms0XKBf0d&WB-jvuF8wY{U<`%iqK`sy9TE=nONLQMF8YM$NdF8;oM1lNln6oLzP zE(b7NpMc@{E&O45=3%(@))=lY2C!PN8e4||lXVERh5G`0&QDu||7*kCmhq@2%B+C zn{iB!0ouJ8$Mpa6OPe<1n4q0;OK>xe2^FCpQyk*rrp-7eb1eP+Ufr}A$Apdj&38BP z{QKs+n=0;Z+Kgiw@`Ch@+}(7`cd#J)aB)ocV70LcIHsxBSKye$_@;48cO#98yPG!S znErh@rhm|O{5!E7hjC0t!%|Ef(}u7Kc@U0?;Wh=w6gKv5#xZTiF-5%x`!?g4yj!OT zNcxYxkZLoIY4e3tGxZI;n{iD4OE*#t4Z+zBd%~f&|MHyxvHf@7NcCR6_Wz$arX!)% z36ALq5N}5xrV^-dO!TRSV=9MZJi-_X$3!26V_F>!^C-h8920#)Xrlm*>8Nn5$NZG( zqi{@aILvSSl<5;nc{7d)IHq4>)kPc=e>dZp-tYZMgmwI{IKiv&6_gUkR1l3D(b$F64pQ@>i4q)6~N14LcFJbfAd(R8W=Wqp>d(F1ULtgTVxsBfiqYeKV#vx>^4lr&aI9K?0WwREMiU0SmiA0ibc&l=(FIeGlZ z86I_igjCeU__&-ncNAi{cY$SIL_|owHWa!i%<#^}O(5pBFvC07=d~K%=RIC-6fbC2 z*Y4M=Q==o)snMu=ezz$I&dF3Q2wyR(EQs(b3L?CUf(UP;1!+(PX?F0)Z=+=omzQzW z<1V|l0U^E+dWK^N(I_Sv2JEOeu zm~h5vE1rb3ap^Fhg=n|i@d%*ZjAuoft>XUhz|+EQ{(~&-<(cS$e6Wg_B925tS)_?4 z2i*h;(NylN$RX<9&LJWLU=006+oRp7+o7UW8)Q@)j8>oC;xyw8I;;3xO)%fzF0@wb zeDMNS_ih`@?TT=2d;n|KpxpFzG04p-t_fxJE1VwGS>Z{n-nUUNQUT5VQU%#r<-7R# zcm<1^I}+-BkR6r%D~SU&lLd!X^eM7Rr%ERRKRU?t+- zXLMqFWO*DI&E@f`17%c)Riel5u+_4V3#Mb%D3m#0XSL#o!>0)39E#tDabh>_*WK#J z%(#lWN@p(U3dNh>8M$Xv^8OjS1z&D^1Vl)%+HL4PZRk6y z?(tL$?w#&C4EGjf9GioFHe&R>^G|u)0k1IvUEQv)pS2@)y&mb1wh?rVzSDS8VMJpp z^aw;WlRF91sq5Sv1k}0{;dH--+cafPal0@9x#gU8I(4<>ItWg@nka8;rL0;!{->T5 zw(Fc89DeNq#(2&Q^`63M7)ZPy^lVt|aLic#fn{xpUUU*>gPQ{U4HhQcx?CJHuAVp6 z9AotJkAZkQ`XndyF7$=26X{c)0MeSA%mDnH8^vf)A5Pyww20I35hw@eZ0Zq<(CU`l zex3}@NvZsHjl*O<;&k+7#EGj{>>h{a5?AljDe_GSd3CgS%W1kQa%Z7t%a@=TCRj*? z^<4N4DtTDAl6~B?)+6|SY>m}q?S8PT65f?qKz+QyGHPqOzL51}NE14ei2G#mX?#ed zCDJ}+twGm`#LB4WWOq6y<1^bLXOVGE8ZZ08N}9>0MD7fdA@zx~SGA!5@pMD)ISh(p z)2H$=gSuEYJ#-`$COXiG3uwF0>TjV=tS&sA`;HK?Y>UW4ky|dSNh(ZwQTd+?;>6T< z*)el}Ev_^ld}FPA%FPGo%?4b-Z8Kv zihLrQ1>JDo_oW-|!k-Rn;1g&_JnbQGDMv8?-b9%Oo)Wz_ynk{m`Zf1Y{#2>I(!=jc z&@xvdX-|noeFp9)=Bvt4t9U8CyyBwJ`hzF#P94iWeY?9SPir zj!}xXmJ5`>z`z7+iU7+^#PA#7?3&GIm7WWK88WZYQRlwzl4sLLn3T}vg3Z)bE_&=jel1%r-bmEsQAZI_h4z<4OuTQqQpYN9*coo`gvh=&pBmC|tuP+Cup{%KVBZSv5w&H{5wRQjNjgx^KdYRoj+r5>b*?L zml1YuE5s<@jsNNsjp^JrAlQNNAiACQFJ|6{y;k?n@v~=+Fpk-un*DZ!fHXey(iFHl z)E*vw%EoTA)l)XS5unObHuMiZWn<;%#$};dNXE0{%MYMf)a>}83#R;hm-dW8S*T_H ze6t0&Xw)44>0wr+x&H+INE^*Y%)Ui$i>$}&8R%|i@L-sTPQgk!5`U-=>vH^!!Jio? zyj$dZX!M8hXLJp3JZ$IoVnWg~nq2`hy6y)uLPqchN(A4zhxE4o#lDqE4opR|E8g6XGjkqcA@kYr>-)Hx5^F=%6zxvMDd7z?$p{ zvbsq|Gt=s$&HXB@^r!lSdgBE_;31DbRtY8dvK)oGQ&!<&5VgMHV9QLy=!&X-$?9sx z8}oI|{q9O!+pe!$L87QZc+_M&r3}q71RAi?TY^yqChN7k-gxWOXxV^$s79a7i^*9( zbP4DHlh{OOHKAI%G68X|jRoHQ(3DQAaB(`HvcDd6epwEyw4?|i^ryq&Lq&6m>OCv@ z1G!XZorp}ZHnaoh!^&yAE>%vWn39kP%cOe}qNLob@PArV()vVH%UxY4F_%P&&?qgu zm@Vd#I?KHjmIzaNOsIqHADS1`W=yz{*+GY++2Qa?&BlpV<|8JGGZEHQ6Veo3MLxo- z$VYh9^Fi|`8izI3o`I(TbBL<1PjKNLpXk{$w!=c1^3`Uqw@yvAN@dWp_F z@V2$dJWw8!IiK=TUq{&t3o2{Z4LnY5;`*g5n7E;D#;A>mph8KvMM+b5@*XQbs$bx& zR2-C@{W@jUEsCkKV=iOaW4eb&qPx|_cB^$TI_D`(%>t=}gVN2LGos z^-w4>xZqx`f}Ch^CBipGl_-v3T2@n#ZO1ZYi0@=}{M*Cy8Xoo5dk0$ETJv*Ae5^W- z!ALBBoYEK)xAzP5!rSR*T_F;|y&w5qmMPcKKPjsm%*4sFSG7(b4;7N*%}!?4<=#Zk z>}~{yz1vPUD-I_(yyDio4HKp4vQyFW8wddf(N4Ck6Di<6hAc!BsI~P)7}CB|Es_vC zC5@DOokKttP6=GrshF~ZYE&xbNj;zwd8n;b9f)R`oS20rI%XX|0UFMN2~gFQ1n6OM zp#>+DK%Jk!H!2dKS|JJ0!zA#-$^=recw-bwXwO6YSl=Cn16CW=kMYOc46zn6|v5mc>vC;H*3?#v)zm*LpaN-M^#uGVh0?`!@N+4b)5UW@*0{|-@*0LuP;MJaRTdj~M~nh7o!>v0sEA*9 zQQoEV+qo3j>HMruyB z6~6)xE1`?UF7X*MYOvCln|@39n1J#)#)`(eWAZRizD^DKo6!~%aNFFl6gpsjCokq4 zKPELy#Ec^*$1h^aSeKY_#7r}$%^lo`NJ{-GG)5M*aq4MCx#K=i->y(J)iTaWKv*Ya zPww-WSfP(lcZ_0c{D5TRY zdwHp-6xa{Vukb_jV*;VmQI`V84^5Hdho)a3bbZua=+zWUvX8i+C?;8wiqK9Z>VC`* z-W_#M@q;5WKT0J&9g!;v=G3VGE*sTUgH%(H!8!_skeUmIV6rZo*QD_U&>;rvC&ak8 zG6cWN{YD^-YZxNPV6BB1H-Qk(jJ|M@wzWFzV3Y`IGj6P`Z8__k zGOcI(F79g1mM$(|g^43s6U7X^8dUi#nr~{Nn7+k%j&inW=UU}#RnEh6$HQ7tK99`i z)Q0E;E0fw_#U|@_Z-!a>?gx`NvJ0#?-$9}EdXw6RzhXG($6PU}@@`%;L__vgv$oiT zHN%92`z6%mhrecEzj_UG8}!0W)={a`4%SgSd>wU4BPQeDVy{BUuYkf@%e4#VmB9+@ z1Jo^%Mz&Sk^|j*qBh*7R#kJ+VD6TFO4=b**Y`bsKho+gb>))>itJOZGaNLIS%5$V* zXC0*OZA9DkbWKWNqienwZI`NIC)H(2SChbd(RQghN&*zECIJf3kh=U~YP+|K?8`@nn^8J0gvJ4kG?1(W( zK-5PDi+b2VdzVn;t^s%ix_7`f0e!1CFQPuOQBfaLHj20%J9`yHz1q9R{NULr)D|{O z9KMZ$h7V}HTGYpljUo~f^+_8$YMUhLq5D-DE9|&g>T555sjmZ9&H_~SXu1n}XI#z_ z{?3QQQ3eB83T&FW3uwd2tOqHtUF8E&uQG;yKjhhp!`Y z?cavBj)}bR_vFl_f)A+eOWD7?19L}wNVziD-ucP*uS<%;xaMvOm`da4S4F@;muwMT zGTW`dW8Hc`G-&^PPio|LOt(^vZ2h3r$c?Cmo*nc3s)n9!`F>SHPq+L(Qw;~1HQ&_` zI!Kw^6xC1}HaFc6s#M8MGK5l#d{3&OvTtsJAyny*n`#K9B3WSwJ+``P=*fE8LC?Wh zy{Wox7+dejdJafm*6$9Ff0wL(WpAuF^$sXx>xZ_7SdowH1AfSRh|mrHJ+ht{lt}xnTDWxhZ_`IF+RYeVT zN(EF!C_cTuI8Pf@F$VJkjn<-(VFjPIhi{Uq2(_zHRirpqOl3m80m*7ph?d4_@i2j^ zuJm;Rl-j|4EiH}HYNf9ORbA<8KT7Rj0(zyN7UQrf!Jw6X+9SnivgvJ*BG z7XK7lcSNuMW}&R^{@WW9*(GpJP%G1+iZW=v(80q+kx-jh6xpcDRV#_XZudRp0nqZO zWQ`|PJ77xG)nScVH`!~)PPD}|RPSQ^nRevdP{3L*6`C6)^VGm+v1m=p|MdpVP*=nm zHLI~sp&6n8hG7%0S2ha)sh#Up+nZva5_UJNG@y$=JBVp{LPU|T<}_h0bx5J-WkwV-@dS^>zk zv&p463tHk7>xUfSa&^jx!p8eg#k=N;@Hh zZ`_$>lyd;qN%%buJ!2$(xvzvSWp&~2cjH46mdvaS|=YC~~bHMdPmBBJ@k6el}}&AHLAPwHC=L@F6sP*|&g&w&P0fU!qSa+dw+5piw*(avqYw0g`xm3b#t(|_i#1y`quq;ASa3V<{tWhi0+z-i#*erbE`{-OXA=wj+ z0eP;c7u~n&t)2Q+-{O3KF3L0H*jVI`4fhFrgr1~%vLSbjIk=){&`PFYEhk|JRXfe} zjUh&XOiVHq%vq-8N13wLT6d$L*310o=5B*7@F^$+GTz*7I=zj1cPgD8J$tj_W(Li_MC@=ok!By;rTvw zCY*o4=A+8Dg~gz1qnuaMc{E}u=c9BU>p8bu3gM0%K6^371yBi z+5Xl-tb8MS4^KxDbDpvQchd--7*2rx34Rk|n5G2o<8h3oy6`=;W!Ov|7sNQAHv;e& zj^{c)$)ZYpC z)(paxo!CkLhsQRU=FbU7xKlik>5hgMEe`q`ny znRHJ@z=6qVx2Ss|$Xp&|(!JE@uJ^fj`rHjZ_gSBtyxmKo38YSUvd^92bNBMN(d^Xn z>k!iJ3b5RXX4uL2O37dYG%xR3u>{sm#+ngH6jIn2ny3%600@bpHUgVJ8Fl!8c*`D~ zp~KM#obsBk!af6s>7O`-&&@m@*lAu;#sq^ibygf4rC%hP`*{S9(Q!l!x_;j$(XZlz zFzkW(>JSuP&sUscCbzA5h(8@QC(3V|yCYfw)7QBO2aH~w)qvp#H5gcx+DN7;Hyxuy zb|3f#Z9n`P*e3^0L=kX`qBa_-8y?BcK%i6%V-csUGKZEi{Qa(oLo{FpUwM@4fUdnby5G5_Ip zJVDG^GGh(ofm-aU%Wa85lwa)x#;T#t%1wcbVb}t&3IOErI@>R0Nylc$KL z@1!{HrKkqcJ_|E7=W35LUUP2tIE|WfyWs#N&!!}la*oa{qtG_F5(=b(m$7}5%=N+D zP$%Uau71kTqVP?1<)`@#R=!<*M9{O=cn*&gMo851GYIU%fApt5S_j!$S10?NBjh161th$V>b5b#`a=4`OrJX>d;7MtybR?dMpS`LK{V7Q_wysqimNF3 z=_bU=**ZkG$;55>nHMSJ&`yPXMj#)%QOu=lQaA}xhEV}GcGx3>r&T)O44hOM0cZHc z25ng@E!$DgnH>vYd>JQ5qYsp~V~v?2z1w%t#?_2ey2=Y!Ik@GcxnCy%V*qj4$T)EF zgvAP+f?=`zvn8w;-1gCpWxHcHwd`XO%I|4q?2);x2nJq~o5HW{u$uw}uR+0=*c|~* z1e~Qy9NgxSfh@(%9Ab&fGU2RA7T-=eA_KF$J--^I2^^eZSp!99S;GfraH$8e0#37v zZ52;c-y1kU!!-O4EDUZ2+z7(!Q=C?vMt)nwIDHp`{R38HP=)!;$_m5vAkg=0r$r}# z@Ezzha{G@=xY9Gmk~IPU`K-xgO$o84ku@{GauWBKr%KH@xNl=;MU{8LuRi*RyI~x0 zyLVv{)p%>%7L)0T+nFrpF$zrFWzr3U2u#ru6sBJs3A~#_P*P-Pmd&P9AQ?EGaEnRz zVusgz+8xU?bul!L!lYab^C(%$ePJHKqUEj0V>V(HG}-Wy6rGJ{Q!LN&q6<&5nH}ay zHgm%~$!5OFhJ$xkkRjQ^$(^zUigB{fZY~h|q(>jzHh0TCLEKZnc-EF#5ZfKzSt{*-a?rvl?9$zsfr@f- zYh7p8(VeqPBaQbN2er*9?FR$41ZHBTw;<3wK>m`ls=}uVwLq(j0h8qAYF6W}+vnz_p7OER-Vu>&Ui+lKRUZpR`?R9jZ?v zkX=eL!fqe-?{;KaIrBlI>Z~e|^CM_y`&bXLZ z=_80*+*<|S>&{XA@-a`1n6h_iJ5&6t_MN$R=>X$mpwdyyVvLHl!}*i?ORz4fEPnn> z&pxH^newpgC1TZzub|TK0S6yBbAS1OzdYZwTt48w4P%#;ZZ)ZsUAl~Ax=lqGcEqmB zOXH3AvnTDbqBPsMm{{os2L7T7ym0=EBjp3;K0Ee+5>Ic+XAl4M9tV_gSX8+fsB|S` ztx&OMjXUf!rQevqyMOET2TQ9>7PBAu@;^%-hpRXpffMds!}W~YC(I6E^1dvY&ijsF z$b>NO8DW?_by$1_t(|bc(O{T->!$d7VLsGsm>(hYZef1k3%P*I8-@8xj|q(uw{!^e zHrqt+A@g&>eANp%k<4R+`SXkkIhxGmck@<`;fA6)?eq=r%%zt8{RQ0)-%pVDJ zsaN;~WU})n+}%f-kVP`j6DHPEIy%

Nc{3d$GsFg>6=mMM$_SyfpD-gH_x^n4`U# zC-ktmtuRmVn6GgpV{MM;7kkX-$s8%nJ-s&i9hp2!op9^D?tLGbf5v|a_b`un8<`Ia z^P^soZX)wmVIJc#uOjnm{O6tuUb;xPsKDvsB_z)fE;qT|bA|jY$uA0tMX2RoB&197 zG9eEpd8LrJ(#CSH6>>L{HwZ}#gZl#^OC;9|IhEucLUxh-g^+C|9}trFu(;1dqfg68 zeD_5m-+&BvAC&-qCAmS!KazY($VW*&FC>=#miwZRKPCAOA-_lRUqW6@vgQtE@l}#> zA-_m+xR9SC*(BtNB-=>lk99lc7wVq;9^yu}BY%b4E$)7In*1(ui}Jg@d+Js6pY5J6 zzeRVJ@Ta=-w1l zK-q&Pn2h!=ho==8_&(GiTubo-{B)iOiE`+)2JNzDXRSj;Z^T_y*kNGs+vkpA}$p&9B&nPnZ;r^zthl zWO&E!@R10Gxz=7?(PcHAo!OV+4lp|Ysl)4nm5pCBH8g)Und z9ucFCy62Q(q8n^$Lk!!RprEqg2U8-{NYNwlNpjZ#d+`zYLjc(`4Bw%1G)w~ugi1S5 z9D}-v?WcDZh)cKqJ7!l z$jxC{ob+D%p3wn6SuMy0O2|(wfM_tDf<}=P#^Gz;ne?$6=cw&q9k+sO#ieSeL}_c` z8j82TjJ9H3vg}73*_*kXO`%Tl=N;W#@RR*8?$86m<`ZC! zQoK6Dd)nuTIgOED08f8H!i3|@(XQf(>5k!E_IYC6Bky(aRJAIr9(lO>%A{wT^xpD$ zj^T0G>dGBycov#fw?MPuVVP<2$QmBRftB4!6>y?qa_!SO8;!2`lgNk7SZ0NGjP3$5 z%&4_b`C-u<6oh1I!-xr%aI}*rXw}{l{E%gDW>AWtHz7H$1 z`p#ecBXv7gWc8gVzL;8H`WAA=OrhAN&%jm0bWFx9D}8tAX5)QeZTc6b^Nov%m9A&t zvsB>jN$IB~(I>{HpD5jK!jWCNl;I9i;Vzk$e!g^%@xFb_^b4hL8dt;C=@&~sVc;SI zr`*YFjgkvlhJ}dY_IccE$>oX^VR!VnUnBP)_z&CzJnn_$KB2hBd0bBR#k&>vj&n_J zCzFf$mnl4KxP{|H0R!u4kL4E6R-xYZScm4B_J_X&A4$p?j8MeoLX< z_*-wM?kfGvcuVKO2vSj*bm=Dy{Am?fiFfiAvC=Yv@e2#QYevWj_cT9xng!CUuczHsVP&(@O7@g}? z1YX>oe!6sv37qOlKUd-#FFmK(Il~?dqW7q zK&)boT$p}M#>~kJ(*G!N5hdZsEBvwQlT5|?4cUV0A?j1u9F zQ`~8$2lgcywq9}lvBP>O;8;Ex>^y~t%dxO;giJV)+5io37J-9YY*itCTFUz7V4 z#XZssdndWHWFlSH_oE>~RcFpGrl`v$oS756kRg^S3Ae#R91@w=8> z+)hvKy=G+goknh*;(DXHk8rsnyBxx9@WQSp_c6uwhI=1nSdr^kgnh{iyOi8(6!%S! z`w?<4P+U(s^vx&tB*jg7U(ri0t$9dyxX0zHr?{u$dh(=i9J$*nE;rm&?X-|PNpUB5 z+yGkGbAnS z=ckH~lZ*&?KgqO^caUrl@`ogwguIR<0S2k!QOLO@XA8L%$@xNdgVbVj49FUHJaP`qoq+Xo^UxQQlte~M zQnHC$x#H#2Pi4@LYD�osR(~!&he2n^EcFVjyJ_)?$*gZ|Ml*EmD-Klmr%`NxO*= zlcVG5U-@G4aue>gNcxv0_9BVJK&7uRmKKvDMej4-52w=)_+nCI>LmB#3H-&62oaRDNp*HT`6kvNHSPgnF^QdA;_Q7fDNBsS7kh4iP2)QN6CLt%2Y!Na`a+HuwBs+ynkQ^`M z+gO9TIU!#Lse8n;T*Ox{I)Ognk+F&%@!z!QY^vHRngTO|-zk~`UB&MdO;tNZQ`Jt< zRJBty`Eu8Eil#t6(Ve2HqEj?gbc$nTIM0C*!TqF=GfAE(Byg>eBSLnP{H%~8NuDWW zlH|EUz61M&d%lpbki1aH=SW^89CK^ycTfE2LX4V_~k9!t6%!dLg$Xxl96-NZusesU&|O zWEV(X@HUV&?vKF^6dXV+BDDP8%r)kgly9Q?c_x%AF_J}UiL!Sc2e+1QRPUx7BYv{b z^-LYITD_hj&r)(rv@fO@wx5W;MX|ZfMCLzMs6YQL7+*(Bz(nan!-ZBOL&A3EIevN@oXW%w}i1xig z?ttR@+VFGaa_I-{ z`A!n#3?W}336mc>&2uET7IFj0*+TxBRP2 z3sU#M(?Hg^jdzB6Ab^pCSNbi5N3}-z^;?((msf*@32=GeT^N_|c5jfid!8ANLdvOP zC&?>?JCbClaDn?a#ds&dVvG+L1Bgn1FFX8!z;)%8C!oL43@B?n5r!ktrqZ`%q5F4K zu(-rl*ag2Lfggxys7Ay=d&ll5wEpb>$GGv$f z8IG%4WG72c_I2?V1D-4@#IDp4ki)Wsc?<#Vj)26KC5+gWI^4zH5>b{g*Ql_2d0bh- zh+U~8pp!~&Vpr;LeXCmyizs%bj=*wK2E5pnI^1Ktbh!tm>`EO0N&Y0cVpr;L|LQH} zL@Lp)gs<@JV6^HN-@WLEkN(|8{L*<*d_)^`%Q4=S!V4;4O9yj8KhNvLpCk%~FudUH)-Rq@M;v(-51{uqDul6! z>3vN&5yqcqxK9OyF{Pd)Bf^-x*%j9y%1)7voQ&I~L=L>x*%j z9$sQk9UlNt2gv&~nQA1bbf{oOW>pm%U4zrcKqP5 z>gj@1K8V3M!fH6dO2aUSw>@#uIi?p>9L@^jCe&oIlgI2*#Xk|vAjhP-YGZ55Qv@AS z8*Axb+i9Ubm)7E}``Uheqy#})``4DI=|F9uXK1<|^h}RN9CgwIG1~i)m^$MjE~KFE zU*B4X&n6IHmhWKf*}jv}=lV`R{(Qr%M~Ll=V>le!8^;JZcBCU+bNnN~io^vjR^AJ3 zYSkS7sBjj-UvXmDhW>hm@>9pbet>Xzr#x^Pj2wcyBAU692f)a5>Jr)2{f>IK9GB_; z9umi@O{^t&B%6J^hNonBOm8MSn_P!K5sxtBW)U8Vb9e%~WRQAXrIN-WZ5*7t8L3V{ zBE@qkyb{^YX({~wDM^Y&;0=j+tFa+co5*d=bVeZB2o=q4z#S_#j-JUO7R()zMCXY} zZrX65SvZ}03BfMhOML;*89wUPTM{}Up{L{PU-9rd=IeRY6i&3o)HPqKpv785L((T9 zq3W@C8KA`Cy5@&_WL zQ-_Sg1AY=^!{_`cJ-V{0e-V%O;W%;3ecq3P2IC?d@lL~!)HanfueQ~VR6x+HKxfcz zn7ql&l*;Eox=gT?Hk9c6oJr#BU=n2V>31mY165{g^9$6m+>s%9w+PIf5pVelF z`3Uh<6XKm<2rLx4aYBBK*P%Mmp*nSk8bdYI>rm3I5;opw<7u`&=PjIiM&YkOm(6WU zsOZidbP;vzGVUF_oTx`j=W zwDR**$X0};m}N*FldKZ56<$1fH`vQ6a&l8eu;VTJH1|t2Ih4gm1&Ts>%M5s?aBwQY zqVR=lhUCe?Dj``E9-WSF<}k_^u@4i1~o`QOe5t(huME)EW9#X3*K7xt&{ z2IzE%d%%blqn4;Q3K~3X-B*ieq@&IhXj@YzRi_-XeC z;*K;K%we5%9y(~7^lGQVQ&J>2 zvhed7bzMTni5JhOke9@r1YfGW6$v^?yt9kjd{_>74~J7zGfrVaGC;x|>IJ>fKXS=iQt(y&LkzhmWL^@*<9?!_%7^^K&b@{+sE`!VTC@`xkVhEM5lD__q3193ir*Slb{?Arju zww;oD7c-W$Pb_yE%8JJ_RFm*q@kS^wD)H`q$_ zU3ijj6IvZZ)cDSvsP8wv~&j%O}ks+tZ zb%-a(_+lW$lVn^CJF`jS4`i$hg!m&FmjoD3k#Sjo@iZA%1Q`DxduIYCS5@WzmtJb^ z?R9m!lg?5JAxV+yCL|%y-9SjfqM#rOY62qQf`Dk@YZV1yaGP-yaBxKsbX>q?WK=}N z0Y%1b#!*0L+=-&%h6}i_`2U`B?tSmR>goW>{KxPCkbE~F{6Ppm3GnOD~ z!~daCXqL*CoP}42_5)U8!1$Pgg=A0e^_XaOCDUO|wtJ{`2eBMhQ4xRl9DHKB?dCqj z3c@cGl6}eQLg+LHxPC%*T`;CI+Bfw&nHccIe%sVkYQ2wIYCWaN#cYVt=mW1~cU4-A z9hEHcHs31s`ZTh^$I@(l<<^~ch`j{x(E_rYas<5HEEkd&(46HithS4XN<_k+KqVq! zaz0=WX9+7D^_JD+gt~he67O49FF~KPUrSTkGEdVphwYKw6G{tZOOS;vlvCz9SNn^3 zs+aG0Olbphcb8F>>~^xdVN;UdQF`1PyhYc#?y?2Q6e(m4Tawc5az$xWQrGu8 zw<12v>WO|k{WaJ5>F%oZ1?{l@WurronU~_|5{*XQM_Ac?y&?&TPD~t-pb=@A?wxVg z{XD%l-%G2e9oLuknWrs7AJ-Qd_LN@>rFdZXj$9AqWVuKw?cDcKXffhn_8<>yg7j(vo1hhzTWycJjUxtMPKQ@7BHEEJu@ z#j+q*A~5gF>2Ng z8T4c9qv;O~KvyAbRt*Uyf9$<#{JoP)-AVG3wF1Xb+KxYofwROm6-tn!RZ+p+ct5>K z`gilC+Kz4ZlO`al7mM|>^?(S?bIw$=5S0GdnvE6!Hy;m>Xj|PHTDQIXTyOfYxJP7R zaS4E{$4LuQu&uNzv92L9uDdm=3?n$k=N-Idx1TW$k9!SbVq19JvDPG0TV zd$J~Kp=~iZ+|_QYQ^r1jb-9uxW@!&4&up;phlDL{X2G$Gqm38JEU_q&76WlZ^u=Np zBl6$qKMV`;>=VFhKv0d#80LB2Kfzvl3ilOGRjkzKhi(EsO;f!r!43*-P0qz}y>C=61&x(v9?ko=9g| zADto9Vo%~#Oo@<2uP>&uXCEmbc!BGJz6^V1XG-E{NaA8yCW~y?T@;l$czVW;&CwXP zE!}BMPJ3}DN_v=`WDq>}>F8}%2n$=XdQUg3OrdWz!b^1Pe9@@ORln-l;%B_(tgBfR zSFwrNi9RmUH=JiBUQcm<3kkK-cqT3Bz=wF`QEtyHkXJk!_daK}JiCC!rFg)F_VfFN zS(YL{AJ5`9dQ9{JJ_CG4bg7CWbiwErKIhQeEBW3GUFPH4_!OYMiw_m*-+y=9axI#yCt36_J7Z>8|1PQJvx;$!EzK)+YQ zDbvW;ExTIWRcbs|rOa{VT1cA~1KUFBx#yC&#KoL!(qEo@Q6QGodT4l$=&jw6XlyH` zo!u??Z=rQ5)m8~T{4|EunKlj)&f0|f6HaIxE4^B3qp$L-_D&Vqh)=yLO1f{2&Z0o3 zbHzR6s6ML3?I%WkGnYhf`T85rhY^K|T_Xd59cWvnLt`3*$ZC!z?*juW)F&H1AU2-L zv@Qy>>_L|GW)FGZ5jM9g193g|9GOQ>GOA9!nPjwLlRPD?Wjo*f=ikA73kI#j;Sd5w zkFz3agj-?y#I^rhx)0H*cijCfs#p;h;-ZNSc@d_0fG*DxWdLp&2n3~ec|cDSQBI z!vzneqjE7qNoaKt)NmlGlAN*C6N#j^O8UA}JP|Q`w8s;Hp# zkd|*NvIx=$DU%=a8F$|z-GM(Em9w_!+9^#TbVaHWw#oTD8l8ESOJVX;s3E>->kfAe zg94$oo^fXN`7mGr-CpS@?H>9`x`$q>A8J^xEa%72rDHoUsa1;gK6qoTsv~2?cY0i4 zfC7p`>oE))XCjQN<2%GUTZ}8?$M0Zlpnpt$7D3F+a=t^Ud~}~Je@VAW7#LKPnaxb$ zvI&6-jK)2yCwtb6G%et1J2NmQ;>CfqHM`1dBJAu{0vklysK!pGmcA3UG++o4r%?XZ z^O<49Y1Aox%UUlyQq02tAoCqC^OZ8OlK+AmG~PuA>9OjSuI{lNoo-aSx)*i4!J4_a zV!hlUGQ&s@^aeNU2beh$T*I zshWP%XZlS!xjaqJ04Kf9`?=}+efq2OHL7(9qo!Jo@QQYmLkzh_s(F%_eVuJ-Oo9nd zGznsMeOf!(c5?d_B*F0)HEh6|Ib_v>3_ww3E3PyO=;*Qxs6WG!7M@xa!nks*1RNIYEMBOXzb*-go;rQ;JMrHhl#!DIqxS{RS)w1V;B8O^eotr%K;4?WvfVt5nT z{~D>2pKJk&hs1yyHOtWoR@J}ZXVfITjvq~8*>q1Yu09~j`O)May|hdVSJ z`OzH`vH-&g$cR{T26~h7heAG5A>cniniz74_`gmPe8w}u{xUaD6{%2}prIdS#{#=m znQ2OfeGZ3DdI&4|hGY*ic%$90eLbs(9|&EZ>B z=u#crxZwc0k#dKw*7ZE%8km{rC1NUTNdKJw4OEG)7F$3FhfjF+uBtj;A-^>KnSs%_ z;`{V$zrNX84?4VMXzj0}!IZeM4;LDQ>I4Fck~@z;UoAGKxisUo6j3X|YEPnWUr4bsQj7_QYk-9HLFpE}DTqb7kfkrqUJe z8$C4x<_KxE3#TxBjOs32JQpCxb-}SO`?4Q4i=!|6D5{toSBh@psrRCPW}nyrr+bgX z=}v0L>EwpTKkkwt@Btn}3^4N28GUC^YEB-R2bbGUy6&QBIjQww=8FE(?xhyP@eH3^ z@Oi2ie9lY5m-9QRL3PfS9`#!W2^r@yZX51boO-?R^kRVf!3W?00>YXsli_}4Pgj{G zqgNcHDLoRGl4n>YDoBa>N{doKV@?xA;Aq@Tzu{{_&WqZcH{hbg1kDpak>pcZLgBcr z-_lyocKhK5*iD9EaQ2L~sZT*cV#u&fIbT3tmH1eK=A0`nSB1hUHb&_}-Vnf(FMS4` z_H&*=roTRePo{JI{*&nhpFbIuH%^BYHBJ+L1guzDGb#^NGrV$AMn19W4X>01fq3)| zue8>CC2XO4K0J-&VI24+5}pE|ZxWGcG#=PZK}h@Vyj#{?b@V_P>(f&qh9dPDgsj%P zekV6Ge=(CX0}3MWxnKQiHF8H1fz66P&hD|RPl-z*zoH<|Ekb znS4Ap%P5b&%*YU|<^5cE3|8o`h7JNB{XU>WmUHT(Q=vVR8M=~dkLCV?-|vEcC3Iho z;5e5+e=8#`>VdnCL@JPVCn8>{W;(PW>SbZ#hDc7`NqQVFHwJoGjJP8*PPcmD`Yarv zBFmK?C&&`i+{d2)nA`;eM*AA*6*K!I-mI!ux2RXLbelrt5lq2fx}vAhzICz=bnAFF zW>L}QuOS1G17~PoZ-k5C7E5AFqukT6!+}P3GV^q_(;!VbqKgX07r>7vyGICj*e5{| zWnFGiUsLLn{t%BJvqP$#pxPYlYW$jl&s00Ny5gt$D*2>8U(L7t%^pPAtF`Ln$JF22 z!gaJd`8~gr;ukW)LVhRpfG{b90|LSkLU?pQI7tYn2ZXbQ@X~4T^G?dQzJI*nyIN-eix~)~@DRa)=`jFqwEv#QS=`iz*1SCtIC3;0eWgnV z-f>dv&b|4!Qj8?mG6a%EyBHi9%GQrTlPye@#s}s7ND3@QGo)$Pzk4`ROcRR!Z3)|w ztfCeCiT8g;CJ%pLWk$`J&WRNSKRwsntRxntOY;QZTQUA~4Fm&b zG%0=FmE8SC>U$#fRl1U|4D(y0JGyfdIw%A6oix;18_0Q1XzNOzEsd27eI?RnuOvuY zG6AnEd67@s&%v}AHV`Crl3iDFu}><3XLkS$1c_P9)lS-#yiroi6DW9*xyl6kb)k6( zg3~6R1^KNjxhl<3>I%%P^cM1fYS)PFW$RgVY2U{bv6UhwKY*Z)-~|Irj|)cfRq+#a zz6-y<|_&<$0Df#$VmzGj8r)DRTEPBI@Os;0AibEXhmauR`LNA@dCfn|AD@q zfF@|3U$-TFH`nliNZ<`mPuHUH zM1eJW@;K=`XM%pvXBxZ3b?4R-MjISQQMvHb6l<1fd-I~BKcBiD+V}2WxvHg;{l(-p zJcC{cUvRI#EU(|adEYnLyRU&=E7F9I>_volfx!bBMOtf=HOGd?h_WVsr z2*YyRbD01M-$ZJHEAA^Co&|ck#XURX5I|(&`DT`@l+sgP#Q^!Fi2XRJ@}Ypg{S&!C zf2r_b4pq)9yvQ@$$`z}}>it*f*>RS_+V9-rG~9lLCS<;v`Jne3tG+SHNM$vdhzebC zZ(75Q)G+CuyzwF#kblIIB3lr7w);)1#=eK@0k_j59iDQ89#td=LHuOSRu~EdBlKnG zg^K5&oj#y_VM&679Od~wDL%DGntidtE{R?p2B}KfgY?D7Dqnp1!98$n*MS?B1%-`n z7&NkCP3Gvw>N))y?J`+_1rsj0@$irhfUJM)B!l3!+w>GCB6}`ttoNSGRu|#VrsHjp z`JlEp&Iuj8Ol^JD?lJq(*S*Mo^mpUua2AY7y2QDNL_4=0Z_=;`*DJoqt_?N9~-O&k@u~GX4shZPnzeBlg`V02voQ!|z6P$2mvW;GfY-1~+t+TcxD(5QYm)N(?v&7o!>etp&p5xcn|9&6tN3f0% z(xH8Qa-JlqpAvnO`6-=$CsUxLYf*oB`qlJiR2p?e@x!*QkcY@p#k(7=SIxkJ*LS_& zU*Nl>p3=^>8g(?hWOwhyr;l#}Fy$-ruV^rr75!kx!%L8U6{0p@>O9wpn#Y#(=x}wK z#QmaqhlSU~ zETrR@Z}vjD4tUD*8C{O2NQWXKJDzf@j#QIpu?Iz)c|Wr!E4J>C;%mTLyK#O!r5#k4 z8`+YN2y-`Osnjxo2vh!6D#FOo>8IrtyZ(s7rBC4fd5gXn=UbxR$ZMQf$;A6D7o!`- z%;Mj=jjLoOWh$U0i(&7s#i(i6tL~+n%w<%(M8usD(}R~EBapPi-Wk<|$I6;;J)O0m zjKTVt_lyvS>CiJ`np(s&LcG`oqI;}fXC4se>h&^rA1?^Ku9qDFPl$grO5h3cbE5>F z5Sza(wbTcFuA$^yqr{#voLp{{nx~8;*BfP_r;KW+8-Up6Eq;SM4B+^(5J8XqJNtf&2*w@L17xN4~uqg1I6S| zX;N|K=v5IYpR~`HTKtZ01t7WZc1l~?@6*)MG#H|jCrcB3>zsE*FjI>tlD{Y5^IlnJe+D%y(gy^dDr!rQ5|RJvHq61`j5OxIaoBbuZqqL znSB7_quQkhT&uTfmmY|HX1n_-$EfRB?8l|~{(JWC+()DK7vA!u4tBeLhLebY{gd-7 zCby!qd*NJ3mvJ29A8a00m!On^s3ECOUF}O5LV^)p2yoA4pd~Cr^w1<&5q>!-bIEH%+H}Yb2kps;SKm`stTC!%;WACLr#|^1H5(d8gi_H z+cz*VNs3Tg#i1zRv3Yz-IBv;W_evSP3rhz3?J_I)@MA zBzhm8mHZaIE$iE9e4YpGn|yd;{Y%%kGC$s>|3`ynteX+^BmFL zzfWOPG7g^-j>E1tjJNTXhyqw*YFPM zELZTmrP2&V?41%8(l+|x*U8U)<7E8Heh{X@G=MdUF)^%h&jM^)O#YZAt;D+5L^MRS z3qRk?vre!@6MJGzSKaDiMnoEdDi~(jBj?&l&C2i*RMs%6bm?U~e=B3Pwnxpem_rH9AxA~o_SLq zL`p24q?AKMt5YwYH{}*ms=Qf_l7nb+wRwE!$`6% zd|Sk>yOYMOWu(vZl&(L>eT3#--??j|E->FB88D z!SD`njNWOZaw~@%$@cTMnjIEWiIS73vM~WTst!b3`C)-CQqnd^jjNd<)%k_&7gIX-{72PROb3X@*|@RHr{HK zp=9WLnlJWghJBivPeaUnOB0CK*WODmb67TCG__UH@z48RbkmEt)#Ky}x1h>oovY{E6yAHWT**B&Lcz+##8u^_;=`h|aKLF!kYN)Z7Fl5$pv`3v z7e|?>-#S!NV`V#ys*)#!>P zx;}T|b4*2n-1;wCX)4%Bi)dEXa-`AN-kmIormA>%zClw~Mon26%qc70JsS>~%u;0X zVqdN>#YAdJUKx^VOHgZ;z_hmQ3*+MNR}7#>@h!WC{5r+Y=$ZVxmwP9{*Sx+Xd~PXX z!vP}Cof^t>ZM>`MB)RuFN$zR8k>v3FE1W9{+a&?=sdTO!X;p>H{iG_}mihz`*Xa|eWej;n@L{9ITAR+=HyFC_i z4(JwkgtQVFni8o*_sw7%zg^mp$$f<>3HFPwl4(6f`WR_W=WCX*G&L;=13juHTPl(t z`)3lhK|F~NOYyi<#E1o^zJKN9;KjL4Uov&4^zo9Q)0aj>#?Pu=#?>o)CIZ_p zlZFt)Y5Hn1M)5Lj$?yt|Iani#_w>a|U%_rM;(5o*6*5EqkZ^|hsV^tO;UTg*X9D}G zc$JhX!3vL!;#FE;>y5&&w#)MouTcG^8#i+`Il$F*G)J#&TgYm4j-KcCu(U=VP?go1 zDXU9NAI$erJUofpgHt>Sia5Q3nN8Mm@>&1*rk=00K3f~~8MtgC=(D}J%KB_wyq7#5 zu?AhA?PYy7VSPqqK-Xsz^cism<8{8z_Kx?KK3f-0wD;Nic)gUlPrQ%x+4}ZA+YoQa z_1T8@KHHG%v$or=&(`MpY;C7L6BpV2c`YKsZHzZg3vL0;K!y+KjRmz$@urD|P?OJY zWG)K0rc7Pt!EkNgcwcU+LnA3tk4Cu}*EYwS<)$o_+)Vu-x#^S?g5DKRuqn&t>Ej!R zGP2_SIi%1dL>PyTg@5_IDlQHi$d85jbe@7`eY|BYbn22!=c%Tl6L!TJ3oM!%ylxw! zg#3M%Pn}OMqfIab(OqP1k@y=A=UdJI^}3GG-^#yV@D1LWqkoBOp??P67^Z(bt(5O#NirCBn9S)cbg_uNj_qfYU5o-=}Yc0O21Dt zket0#a}D}5L&qv&F6?um!nqs+h`R{cR?shf?b*50@X1)+L+pyw)W^X-?~^wrgErVX~B< ze09>g`fO?GtaYVQ&80kpeOr6bZj@BhR-9oKvIHz?D z=d`Zjq+RPmmq@j)ShTL;oYpn0>xoy>R7dk#7Z~7BDb%=3%TkRi4iu7%sjFOzXgL(9 zQizH?V5UmdyehSLcyXvo4F#%{s9%GDDm8zeOqCM#%Q`ZrNusXfr84ia7Jvl2TQ`;>r%oV1mj*OQFnE#m?|Y`QgTOB zA{45cG72>dARc6DR5km_ZuUTVkVP5sJt%g)TN23}; zqZ$iDblEHvi0G(N(s&X3(5MCp*PCfn3_r4pkT@wC)tHHS64sCpS{QcyKIRG=NyNWVDBdgRGjyn+&zkW%c|LR{*Jtaj&nB(UP@7zzP10xR zS8>z#8G4iSSu>t&?=w^>DHF{}`fQ)}K0~|7_1VVuKHHeH7eGakL%c+SEt&*8Y4Q@^ZE9=5I>`L@=tW9E829b zJDg5+J3KN>FFMs@puMwAM-sd71<-GS-mX)95c+r8(u+>@FVK2f-8ew(K8?uqrq$)53SaWdWP?%m@RU`_qm8nsr>st%E)-P_Iyylm zf5Ux+_xgyY;EZ0l8RFhPg^^6QsH;0v5qGHTC8=60O2y=Cfdx;JgyPv$v~Y51Y~~9d zwSC+14UlTJ(libitnI(Z9_&72xj%*MxM@6zFG6IhMLQ@l6~qNfwN6@n`fjAvYH_Uf2i}rInmSi9v`ejwj>F^$QhdBm&jbu4y3ET6&w4Zd z>FW{WpDlCh-idj|9B_hH)QibUUXc!J(|lZ7SCEbzDX4KBY{mSBoO=&nI*ufUpi8YI zH%l#daz68^i%;i}zYe%tDIl)*=@GNGIIfvgmMs;1DflK12QWh)ck?y;=50q0<9&rZ z`bE$Li<5oag2VYgtemocC3+bj?^__g?$3n2Rd{a~Vgud+Cq!N9mR+B15v`_DUvDu@ ztN8IQ(nujoq9U&T4`<|`S;W;}B;6AlFQE(in`=oVNAZYxW>}LQA<5j`vTYSm7wNf( z+dFyr@_b^)|6jj`{~5oAZ?m@lKZLn`cn;=v!yL@br3o-Mm*##jH1 zpJnulpkdh-IizlJ!!nI0%MbT!XkSO1?td{i+s?0Y!@yJ-LH7Sw%&nuBgJ5aTlI152 zVUUzxoO6cY0LOyicg}?(pS-hE#Q#@F-rW`x>mfq&9te)NlwtTrcw#0W^+p>@tid85 zof*nUZHkNciTHq%jGnO@$w+-7Bw@QmG{+|*OY~Qde@1(#AN|CMF7C%0XBs*g!C*3oQTWG|Vq+!yZ{1_PD<`$bpd7 z57*|~u$DIL*6Tt29OP(5ZG*WvWNk2i0)eM zZ#NnA1JIwm3xWBx4STn}i;1isCOY=RytwW@Q+Fa|0}N*FNgE>EEHY1-ja+43ADiNh z(h{ILhf!|SrVMX3j1nNuVU(M}C~@4vi0$G7pOn zlRi7Nz0VGh56|`4;q85Pc&^XdZo57^FxO`XcIvZiaCg-n7C)>ruKV!#;o>RN8P`1` zJ|gv$nS<*d86WxIhwHxmx1py@+obKRs2??HA6>07y$^e=0p-@vut#_tJmU8;(H z%(c+(WK9ms5#0Dm&~Cu7(bGw$zBvB?{qxX6OhSBdJ_-F7ZRrI!{tUE*$W)zhH53LeNOK_@pSm~dM8^1>jsRy|6 z@h_EP>j7?j)88p2z>S~sGNlB#vBRGO+}PpI0dDN@=Kwc$__KcoaASuO2e`3Ai38l& zp~L}h9H7LhR($o#rHxrw^f$jku2c9uS$`qd=DniAZePhAqU1br597Wf%l!mu$wAA- zsoNN!gvU~7nPZ`oSxKwVGH7zq)S;4jXDaTBGl|-Qa=PS8 ztpY?-x|vl2ggujASq0d|Cv(~)G8riAk#EYDmMK+(r{?Re@R?PuYv%>4Lf4z7rFD$2P?0As)M{{wE9*ruRWeRLP29bJO3v% zotJemk?VCT>6DZBl~Pb>=U?{^N(t=zpE61yuif`5O%up#>t3ytKwi7nD1p581EU1; z+S6X6xdM6ZvqlNzwcgii8vhK)YwL}YK1DtGkx>G9ZTxkbE0EV_j1t)SAMtukv&LKg z*CtOlO2bq3N=7f$H0wO2ncQHM2~U|!PJ4r<+1pdrC&XEoUfsu2HY8UYWuvETO71Yq zzMir~^fo^n8Poly?-l!KBl8D)#792|Nyq_XNSHB~07 z-t$JOJ(E>mdIi_JkyWqY{(Q3P!OY`OR#iEvO;*i`Pe_ezOVb>IB=BbF8}92YmbyYx z4oxBOm_nefTdX^ZMt)~xUNpMSd?Ef)(Fh}S+@JbF{1krr z7~avgHo0g99($O`MQ80+E>dpf*=XLb>Q)X;BXU z*E18glj?s&F8Yr@LoU)h|Ci*V^LTj@rnq<|eVNIMl_{Bd52;)f^uz;}i`sjlvs`rA zgOrP!^T|a!^YJ?^ipgItCh5!@jqguPYIj)iXA%54a?w)W-Vc}w?Q)UK)hcr{l%rn4 z01*GjN$7t?{w>Hw-}Q2l{z&Dbr!rPi&O|Oc9u4O32P+rd+CeTdT7BXnmy0f^u__n+ zidy+mO$Ohjlt3<8Ym`7PauP)#7w!9I%@xQ+ry3=Yi+*X8KrXuUA2rva#&4|l#mT0( zC?$}KUTl;=F1o=efn4;&w`#6HE^;zPAQw3qBan-nj1kC1PR0o2A}3=6a#4VX)norY zF4G2NLdJ{VCJoAjj6>fp*I6{YtGeEEGFI>B2bGwSm#vU~`H?>jqn&U;&dYu|th1w$e|Q`Eev_ zxb1(Ai7EsBHe{z}!M6vAqKn4JRtfPW-*{8e_ANRkj5M0e6tLMYJ7pgqzWS^h&iw()qisd6{D(g-n}}Z4qU>Pg11Xuia$lo)$?X= z{F*9UGD=KkFRNNMoMcsZ6w(YHdmvS}XK$-Ih2E@c*{qUP-BGlA;8nM0&sAMcj`m|o zw&uB!5$^CR)A>&ZqF58>CA~`@8W0Q!Egpr>`dFTCWB9gYO@Zfn3`~3ufyl&{5~aVl38dQzMEfrp^cn!1NvScqDj8^#%aab;hUN)`#jzT@J#)t>1E}r}I$~@oW<-@C zbQHiv+-ZZ3BtVZqM~amxHkCq0mHUB?+<{CEI&udx5zY+wZpguR0dzD+CVC{Vi@&e) z5$xv&d_o!L)6fO`sWR3=8RtysAA>##{jW>L`JR_?^an!E_dP*>K=^?t=nn`#^aT9@ z;cidR9}s@z3Hk%Vk3B(uK=_F#=nn`#^#uI^;T})WA8WcA8{piW{-l1!&!Ru&&r`d) zTZA7dG``F~PHAd=MJ~STF1{ugUw0Sms3|mdxr=Ye#W&r>opSLlckykx_>Q}{OD?`E z7wc#kIHJW=)E~Tmc#Fhml)tWI_?-*RI#2F&H7+9b9;Dg3$+9+=#)o#rcMXX!VK+g}3!X`Q5nJH|%G= zVfurX{@fGvhm&6qPqtHOSL4TI)720bt9|;PjL#!F$+9Qkb=w|a`|bW)=cp$ZqV6<` zt4>`??lxb#RoW%d)ZB~~vF-xRh-qw|jMH;7S^&EXHRGBN89%iArFTF2HwVqlsGjY_ zzPnVjGEV2Ib4!P;uw)6F_g>BV-g&bg(IKmFa5i<{C|R4&YwsUx?NJ@_Ni;h0eOmKv zZO>=@dUS_;E{4E2HD4*wj%vCXdjsfKM?Tp1yEmH(I)F}9!l~ys_Vi7?7v9#nr5#29 zFY-YY{n&Yn?l4C5Rp$!7ZTJwkBPnh7kLV#C{e4qxmYCD-`NxqAhFsw%fBW$E!lQSk zg zVpFdYXyrg2&7YAZ=NnAo7xPFdufEo6klRTTS~^~(*Ncr2OF;EU==q143TY;eOojZQ zWnta7;@_`EJH2FY4D zA5WYn?;oMQ)LR1lL)4dhOF-RY`YXI8V5O(*;Vl8HJY`RB30UnZYeGwairUqBh2V}k z!BYl&b6#vN3v$so7RloDKK8dI&-*7?8t-9gY;m#)2a|BbZ{A%$d0Cd^2lFJkj3k^M zoX=?RuZuW*3n@~YgDKy=_Em5Vwz%}=DT$6WTsChR^z&Xj3s#ox_l2qUEB54$d+|i%d&V`do6=mp}Va` zB}D?&^$~k6SIdOe5}e8|VeDQ37tcQqLB;ZqBb}yQfs1#2OY7gHS8&u8!@PuN;B*Q~ zSTQPb7~~dl8N$QZam^mRuSYtXcns6`k(Q7Q**WVwc-?qh6ZcNQ8Up1>pak|@l4=!) zxUaEu+etCHPcdGz&`#xR#Eofo(~?FgwY}oKBm~DQLOobJWqY?=QtqDaboUj~#H?C7 z-d!HZ9q%qb-SO^{RL}FSt?T$I#XFlIbt){AplRJ4?b>6FzWS{D(wFa3Xp_g{mGah` z14P+C`;^C)>u5?|1;aq%yt!dOgolZz=ig4Ju|VR6LKsBJi#Yv z;`){}r6p>GjY27N(hrZtItWFfq;?6I;A)rXdJm-b4Ip&BcH%@x?SoePrg#GtZL-=$ zk7?=Xl-f7sYk#G@%*A^0uB%;wJiOomJo{!eXJ5O7ci118&}!cwukyZlf2&{sptm`Rjjci_C!dZePxYtoC)0DkT^I%bN zL&3c?usq4o>`L+rmc(iy5lDETSJB|U-jYGVy~!J{@#|%8@=pKTVt)0sXq1F3VEK`d z1xL$OF-oo{*xxk}#0g!ZwEB?5P?G*C!xl5)(J&(#;?%DZWTb*Y@cv{a6pcCL$@wy5iYp+dWo#yKa>$%A9@}09lc!%HdO9qXT5`SiZrY$V zhA$|2Dh1{17Zk?Qoj2#6O!eB(@K9ETrF`w2l!DmUz4vghD_?~oIDbe}d}>Z^L3J$m zH|E?Ekf%c%Y@CVh!2s=EI7zRJrbqL3X09?on=lSrv$>o4AiSQrcM4@LhO!z5*+*<+R31cXP>=W9Q^0>lt1g^Lk(EU z$T;^1!^I`)%>%^6_b2It!o>sFT;%>iGN1TfCXa#Yuto=)m!__lWj4Q0ku7(b$7OOh z`82SR4x(DcP;{JMSPHiDKHP~NE{jA9w>c)ys!MnG^sMQ`+# zrvIKBZNWL7k&DsM&v~Q7=uqTpQ&jd*I*egRT;Z~d*O5^ya!0Lq>T=2^yF~90_-L7C z*XSKtVvXYg3rM2oQ`;KiqJ+r#7uE(ra@b#*h6;)Eu|gPe^jdD85!xq>&Bv!QT79{fd>&|gs*ll(QJiAd_g@gJicrBibkam@T@mKqwsnQAJ9=)TBvaOlO6pAadMq^@b^3PU{3buZ zSCK*Tqp(qi)wng=&a?I7QnyUF{40+ls z=>*^r+d47%Wx|R&hd{BC%1mav50~3gIT?|Yh&UJCEH;ObKh*3oBmk-7$qB~am+bk<0 zGA(wC@@VUQ!d_)HRg7#+W=H80?xuE>B0xt9ESPR?b`(vbc9afD)?C-Yj*^@OwX9|2 zOe(48W7~$~($s%2X|UsT3!j#AdO{;fC1*kD5*@EW0d2q`9IB0TQ%d^8Zp*7nl5%U3 z$jToAhb~FBuFqRaCSy2nMS>$bZ##Jwg%lgI1#xh=)Dcp&eG+z_`2}6yIH_Bq3GtWP zM0Xq~^D?=Ro~(2i4E*TMfYNHwo;GcSJBm%_b&ukJkCiq1dAnV+2c;L?n*Cw7W()6nlvn`CHzr!0s}#3(*~ClBQ&Up{~q5vRpk~*XXGc?y**8 z3nU&jY!sD6dG%z^nvtfR3e=E&s1y6Q-4Pd4yR)qAj=XZcGh)UOpaN;hRV*SdrEOKW|a6j@@i11$NMB>Sn9Q72I(KT4~S#!xhAf zPrL#VQDSV4Y%fi{0?S@>nP)?(3l{QC0s2N`7c4{~Rh0npO)$D&T;Y?9&3k#}a+Z3C zD~OqFEwr!j@$w3!=r}%CL;F1+FK4i>0z;U4nf^%E)uTRW>uQhg0e{f3Ge%`Lw&}D+ zt1tDd^8?js|EgjxI}J9_X`Kce=(J9Q4RqR08tilE;m|?jFV$do7Xw2urqC7te`8?4 zao51M;jy6=Ca*dN`xVo`6YY_u+oNhc@E8~wT#)W_?6|9-9WF?l(he8=zZL`I+1ESB z#Tl(0C}gndq4D?kK`*?&|G&UX|C4$0N}NHwT}9-NL1^sJk7v)>t^A?f&B-7C;^dEW z^YX`B%s>(b+ONk9UM@Y8!U26#RQ~`l12m<%n1L;HA0S#&h65TjK8wJ!F@l1m_ov)SY6&v&B28`g<~3VX=b{ixL{6XAaxe#l(BuIM z;oyN3yHD|fKmFPGz?=RYeBddD54@RPDDi^c!6#gAFND4s+Q;~W>$Bhhr$PG`AC~&` zPjGgRr{zV1-MUAUm|*ej-`HGgtY9dde-pD{_2k%^^KazGeTDO7*5HC$S$%=r zX)HmIXwWguYS-*O$gAf`C0(QEy>vm;<0jlkNT*inzMjH;g$s5w?fN6mjFsebrd>HH zeJGrEpm5#1iZ&EZ40|f8ZkNPnMNw zU~Y5PyEW^2F2K!tlh5qOoK2ZPt=wFNaGI$S6_){oEyUZ(8meUSKM^a-7Ns1gD7xgDt& zcBEd}iQ4*{6dyIumPSe-9(}MkLew6VMv6kQBW$5o-uNwp(AG)XpZ?G@TWSNP2BB1> z|J6|ejB=pVDxoPy4pG2!>IUkNN1sPrcQJVGHF4eHkNJMhV8m(~h~LHGcYI=B#s5{CFt2tyy3Hj)+-^diMT5&{^VEC?-%6s`$9HPG#)>WK|{j#Mxy4ywoG1Q zvvPIvUfyX-$MWjrmh|^|GW#8V2p741T_nt87x!Tx!V^AEyLSjrc%kwHH={qw6zyg% zzbHSK3+Kv>tW8)xe5Yzt!s`YPdHL(3)VHFmbs=N;!mGK5Qqa}9IJ;WZ)%u6*YH?TVRq0iO074bzx6+rr z(eo*ICw&>!Q=h4y(&3?+A>9>Xpv!sca3}FTdhOxE<;kIPt%kGChq@diy(XeUUpV6W zr?5pw!`+60^X))3+1WJ%ySHQ<8zKiQepnqG_}J&G$d=B6*XaDU{-h9tA2 z+W@dh1Hig-6T}~{Qs$MHdF5_?yeRtW6Bei#DZXr9W3C=AWBkQB#@*tTGAbVh{AR|s zEMPCm5Bi+kNa(|JC0#ZLY!K_L@ApTOr(@ZmsGcbp#GIu}dgykZ(9%?!4`Y?c78ty= z`)tg2f5?q_Wxv&^?6?LVVzMV!x%774Q0qhdTSGlnTZG=rB2=|SNZ^+ejMf$*JH(C` zZ%e7ZM_Ec`85IYRasTe@6{k2Blg+Y9ST*BM_i{KH1D& z$00~>8k|+uuN|{5XI_IQHED>EY=E3~_15$rtG#TGa(iB}wpGk}ro1j&l9QJ+SF+35 zm0}XMMQ+#1nt0|1EUT;QToI+lcBn)J11md6Or{76Pi5xgxpgo9D*d{L?e&o+4@*ol z!J62Vm|M3l;#&4Ty_Au-lHbA)`58T*&msH>*SQ+J>@?^oM97$&F!Mdyfj{YDy`YrJ z5PLDd#J9efzUJ1h#TUJc0$1Pm$|@q`0VHp|liQU7&Mjy0qku%6?A8x z?97>a(#)lFqF~V75gYrXCrDcoVW-BJKJ3|18($3BVBgetcw+Wu$lBWv%lZSEj0^S@ zlYtNW3$Ww>Uetr49w+|W#>d3RSUFKKQK?g153q?Oi=+Ubrr^`;nHCFMG|V+kRP>4V zP7`s!)}iS|xtQd#Cp*$Aipi;IGPZapNqR>Q<9VHAvo8(T3nvV^oKe z$On!ML(*}dl5|?0iDFc2RN37lthA7POIngJHo>s;h*f|7zlf(oqtL$NaRX{(R45>!srENL^Fk&S}2 z0G&tvp3XPt2xVP-&8o?~LMtl_77x}yv`pO_ZzP-^nv`+--1AhJY7{pL2 z`u;`uwO}Sq(!(Xug&tmt3YDITN@1j@bru)}Gk|pjvrQjxLU&I?Xv+TK^M&X~>r4t3`27Aioz)Wl%-H`P_I`^cWLY^Qi^qxFd^gy(GJ!TP5N z@gbt}CN7kL)c4k9dtxZ=;ioLxjh`@%d=E?!*Qa}=StvB5*F3i9f{<8cUS?5qWo4`y zO|hFIDohL)$2JX||2q^**wntRS6S>Pj)rfQ##+;jns>&DOjy?ib2x$k>{abr#n&}S}3x~GkF9#n!U-fd^uPuIf37yMBFp%b_%fq zRFaRezsiR3m2|?ILUNuaSL>ZDn6>*!{`R1zPiR(U+yXT;E*DlTzmlgt5(SYZx{|Dv z8#--VeRl-~{8E0a=38V%NCm+~9l3AvW18+C@|1_CzcXzq5HQA=l!BRfwjZNE2pn6{Sfe#+&%@Y*hXw{n4)Cn&^(L+(m!<8TGY(&c9l5>etLW zY|p=ts}fu|S@;nK2&iXea&Z}H`j`BA&R!HDHYE@Mt!}J_iXqkAAX6B1_*as>IwcDe zr|AA#t^}ZXj?^u%gk@A-NUo=n%$!vR+?2ZKqqV{8C%eDC0<;WeJPtzjA4z z<{Sh=X}^Is`A**X()&gm8RONK{g!(($J+>9be}{$^L&|=?^1b|k!1h04eT19I3Rm` ztykw@a-EE3nIiQS>Tfr^qHzl&Mo;wu7+q0AscAlf!elgAcd~(eV)}sq65m3Kq5PB$ky_g^$U>c*uiy zllw8F1U|W&Z_#oBpWM$GB?wDW`d3X8_~h;@lur0~+50%A*$# zQF~O;e4y>gw;)|Mzq~vAq=>>&WO}6d$pU(HJs&~0{rDBU?%$w2m2o%wcOiZ<;&Jv* zIRxcp?Ffq8Fc$I_>FN(K+F6baGI<_lwnHX`bJHB=N@)m+JC#UZat31bOd+kcgYd

shE1<-_I6y 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

h4wSL)t?nH?IY$mqsp#H3F_aMH5f7Q!7eC!PUs1 zn#r;jrCn;9-(cGnPW?s}@(XdhIrt{Mi3}Rd^s?g_*^ejvBf+Mt8}Qj_=0AZ?Hn^d` zM;`c=JXuU(-E%QGf+N32CHf~BO$Y4W}=y3SQ3bbijCG01ppy2hJn zEh=lpH5w%8=j^BEmaR=*XE?`Kk5Dp+R^f5^%^lr~@Me`J@@?@ZT1zk(^X>5}MklL{ zHT_kU-3@yFp!8K%uCaHf(}`tBkY#VutCB$?GV9d)0KTac{y~kWJk-nM`Q&>bj;hAa z=Cb#|q(+1Xi6Q2}J}O*G#NUknUV&ezxrTVIvEzV4ov_O3icc(SkeRYa=GLYB{waHG zZe6aA=IGp7uaB|IA$8q8SlX0@-^tP@FK2CFW_T|-8mkn?&~X1U5}4picVkXzY~DT5 zH{GjDOzL)JXz>D&xKi^v zB!a3??n*hi$YdhIU)J~zPO#ld+GHX-G9bB~0m(!P&NZ1SubG7vX=VYL*-tyUg&=6W z+f0lHI&GRWoe4n^I}tj4Fu7t337%ZsV8c$=qB_Ga8k7le(F&O(n4F*1M9Zv&iDr^a z)F7ghtXblbk!P#Vyi0J+4**V+_f zzInId6MqGNcK^+@;&*_5qwpEw4`<`V!$=yC?eT|t2<{otoDPc(xD}U^A!6}$?bca{mG=4S`1Tw8?%QBd@FioteBBOBZ2RaGhdJfkdA5pG=~wvTH1v7*ZaYR-qdmW+B^r)0oMic&S&vGOF1kVED|_fJ*4>* z#sjYX*

W=i_#eNy8&K_vIPy?--v8WqgE< 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 z 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 z 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

X=)$p*5(w9p8?| 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

?9E-y~5g~gjLhnQbZL$ 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 r93Ko=a&WqI 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

^tjZd-QqYg{wyr(K|f2-&DG)>A1a_ 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 literal 0 HcmV?d00001 diff --git a/MsmhTools/MsmhTools.csproj b/MsmhTools/MsmhTools.csproj new file mode 100644 index 0000000..8f7a45c --- /dev/null +++ b/MsmhTools/MsmhTools.csproj @@ -0,0 +1,24 @@ + + + + Library + net6.0-windows + enable + true + enable + $(VersionPrefix)1.1.0 + $(Authors)MSasanMH + MSasanMH + + + + + + + + + Library\Crc32.NET.dll + + + + \ No newline at end of file diff --git a/MsmhTools/MsmhTools.csproj.user b/MsmhTools/MsmhTools.csproj.user new file mode 100644 index 0000000..870f28e --- /dev/null +++ b/MsmhTools/MsmhTools.csproj.user @@ -0,0 +1,77 @@ + + + + <_LastSelectedProfileId>D:\PPWin\SecureDNSClient\MsmhTools\Properties\PublishProfiles\FolderProfile.pubxml + + + + Component + + + Component + + + Component + + + Component + + + Component + + + Component + + + Form + + + Component + + + Component + + + Form + + + Component + + + Component + + + Component + + + Component + + + UserControl + + + Component + + + Component + + + UserControl + + + UserControl + + + Component + + + Component + + + Component + + + UserControl + + + \ No newline at end of file diff --git a/MsmhTools/MsmhTools/CenterWinDialog.cs b/MsmhTools/MsmhTools/CenterWinDialog.cs new file mode 100644 index 0000000..056df3d --- /dev/null +++ b/MsmhTools/MsmhTools/CenterWinDialog.cs @@ -0,0 +1,66 @@ +using System; +using System.Text; +using System.Runtime.InteropServices; + +namespace MsmhTools +{ + public class CenterWinDialog : IDisposable + { + private int mTries = 0; + private readonly Form mOwner; + public CenterWinDialog(Form owner) + { + mOwner = owner; + if (owner.WindowState != FormWindowState.Minimized) + owner.BeginInvoke(new MethodInvoker(FindDialog)); + } + private void FindDialog() + { + // Enumerate windows to find the message box + if (mTries < 0) return; + EnumThreadWndProc callback = new(CheckWindow); + if (EnumThreadWindows(GetCurrentThreadId(), callback, IntPtr.Zero)) + { + if (++mTries < 10) mOwner.BeginInvoke(new MethodInvoker(FindDialog)); + } + } + private bool CheckWindow(IntPtr hWnd, IntPtr lp) + { + // Checks if is a dialog + StringBuilder sb = new(260); + _ = GetClassName(hWnd, sb, sb.Capacity); + if (sb.ToString() != "#32770") return true; + // Got it + Rectangle frmRect = new(mOwner.Location, mOwner.Size); + GetWindowRect(hWnd, out RECT dlgRect); + MoveWindow(hWnd, + frmRect.Left + (frmRect.Width - dlgRect.Right + dlgRect.Left) / 2, + frmRect.Top + (frmRect.Height - dlgRect.Bottom + dlgRect.Top) / 2, + dlgRect.Right - dlgRect.Left, + dlgRect.Bottom - dlgRect.Top, true); + return false; + } + public void Dispose() + { + mTries = -1; + } + // P/Invoke declarations + private delegate bool EnumThreadWndProc(IntPtr hWnd, IntPtr lp); + [DllImport("user32.dll")] + private static extern bool EnumThreadWindows(int tid, EnumThreadWndProc callback, IntPtr lp); + [DllImport("kernel32.dll")] + private static extern int GetCurrentThreadId(); + [DllImport("user32.dll")] + private static extern int GetClassName(IntPtr hWnd, StringBuilder buffer, int buflen); + [DllImport("user32.dll")] + private static extern bool GetWindowRect(IntPtr hWnd, out RECT rc); + [DllImport("user32.dll")] + private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int w, int h, bool repaint); + private struct RECT { public int Left; public int Top; public int Right; public int Bottom; } + } + // Usage: + // using (new CenterWinDialog(this)) + // { + // MessageBox.Show("MessageBox is Parent center."); + // } +} diff --git a/MsmhTools/MsmhTools/CertificateTool.cs b/MsmhTools/MsmhTools/CertificateTool.cs new file mode 100644 index 0000000..63940b8 --- /dev/null +++ b/MsmhTools/MsmhTools/CertificateTool.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools +{ + public class CertificateTool + { + public static void GenerateCertificate(string folderPath, IPAddress gateway, string issuerSubjectName = "CN=MSasanMH Authority", string subjectName = "CN=MSasanMH") + { + const string CRT_HEADER = "-----BEGIN CERTIFICATE-----\n"; + const string CRT_FOOTER = "\n-----END CERTIFICATE-----"; + + const string KEY_HEADER = "-----BEGIN RSA PRIVATE KEY-----\n"; + const string KEY_FOOTER = "\n-----END RSA PRIVATE KEY-----"; + + // Create X509KeyUsageFlags + const X509KeyUsageFlags x509KeyUsageFlags = X509KeyUsageFlags.CrlSign | + X509KeyUsageFlags.DataEncipherment | + X509KeyUsageFlags.DigitalSignature | + X509KeyUsageFlags.KeyAgreement | + X509KeyUsageFlags.KeyCertSign | + X509KeyUsageFlags.KeyEncipherment | + X509KeyUsageFlags.NonRepudiation; + + // Create SubjectAlternativeNameBuilder + SubjectAlternativeNameBuilder sanBuilder = new(); + sanBuilder.AddDnsName("localhost"); // Add Localhost + sanBuilder.AddDnsName(Environment.UserName); // Add Current User + sanBuilder.AddUserPrincipalName(System.Security.Principal.WindowsIdentity.GetCurrent().Name); // Add User Principal Name + sanBuilder.AddIpAddress(IPAddress.Parse("127.0.0.1")); + sanBuilder.AddIpAddress(IPAddress.Parse("0.0.0.0")); + sanBuilder.AddIpAddress(IPAddress.Loopback); + sanBuilder.AddIpAddress(IPAddress.IPv6Loopback); + + // Generate IP range for gateway + if (Network.IsIPv4(gateway)) + { + string ipString = gateway.ToString(); + string[] ipSplit = ipString.Split('.'); + string ip1 = ipSplit[0] + "." + ipSplit[1] + "." + ipSplit[2] + "."; + for (int n = 0; n <= 255; n++) + { + string ip2 = ip1 + n.ToString(); + sanBuilder.AddIpAddress(IPAddress.Parse(ip2)); + } + // Generate local IP range in case a VPN is active. + if (!ip1.Equals("192.168.1.")) + { + string ipLocal1 = "192.168.1."; + for (int n = 0; n <= 255; n++) + { + string ipLocal2 = ipLocal1 + n.ToString(); + sanBuilder.AddIpAddress(IPAddress.Parse(ipLocal2)); + } + } + } + + sanBuilder.AddUri(new Uri("https://127.0.0.1")); + sanBuilder.Build(); + + // Create Oid Collection + OidCollection oidCollection = new(); + oidCollection.Add(new Oid("2.5.29.37.0")); // Any Purpose + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.1")); // Server Authentication + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.2")); // Client Authentication + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.3")); // Code Signing + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.4")); // Email Protection + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.5")); // IPSEC End System Certificate + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.6")); // IPSEC Tunnel + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.7")); // IPSEC User Certificate + oidCollection.Add(new Oid("1.3.6.1.5.5.7.3.8")); // Time Stamping + oidCollection.Add(new Oid("1.3.6.1.4.1.311.10.3.2")); // Microsoft Time Stamping + oidCollection.Add(new Oid("1.3.6.1.4.1.311.10.5.1")); // Digital Rights + oidCollection.Add(new Oid("1.3.6.1.4.1.311.64.1.1")); // Domain Name System (DNS) Server Trust + + // Create Issuer RSA Private Key + using RSA issuerRsaKey = RSA.Create(4096); + + // Create Issuer Request + CertificateRequest issuerReq = new(issuerSubjectName, issuerRsaKey, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); + issuerReq.CertificateExtensions.Add(new X509BasicConstraintsExtension(true, false, 0, true)); + issuerReq.CertificateExtensions.Add(new X509SubjectKeyIdentifierExtension(issuerReq.PublicKey, false)); + issuerReq.CertificateExtensions.Add(new X509KeyUsageExtension(x509KeyUsageFlags, false)); + issuerReq.CertificateExtensions.Add(sanBuilder.Build()); + issuerReq.CertificateExtensions.Add(new X509EnhancedKeyUsageExtension(oidCollection, true)); + + // Create Issuer Certificate + using X509Certificate2 issuerCert = issuerReq.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(10)); + + // Create RSA Private Key + using RSA rsaKey = RSA.Create(2048); + + // Create Request + CertificateRequest req = new(subjectName, rsaKey, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); + req.CertificateExtensions.Add(new X509BasicConstraintsExtension(false, false, 0, false)); + req.CertificateExtensions.Add(new X509SubjectKeyIdentifierExtension(req.PublicKey, false)); + req.CertificateExtensions.Add(new X509KeyUsageExtension(x509KeyUsageFlags, false)); + req.CertificateExtensions.Add(sanBuilder.Build()); + req.CertificateExtensions.Add(new X509EnhancedKeyUsageExtension(oidCollection, true)); + + // Create Certificate + using X509Certificate2 cert = req.Create(issuerCert, DateTimeOffset.Now, DateTimeOffset.Now.AddYears(9), new byte[] { 1, 2, 3, 4 }); + + // Export + // Export Issuer Private Key + var issuerPrivateKeyExport = issuerRsaKey.ExportRSAPrivateKey(); + var issuerPrivateKeyData = Convert.ToBase64String(issuerPrivateKeyExport, Base64FormattingOptions.InsertLineBreaks); + File.WriteAllText(Path.Combine(folderPath, "rootCA.key"), KEY_HEADER + issuerPrivateKeyData + KEY_FOOTER); + + // Export Issuer Certificate + var issuerCertExport = issuerCert.Export(X509ContentType.Cert); + var issuerCertData = Convert.ToBase64String(issuerCertExport, Base64FormattingOptions.InsertLineBreaks); + File.WriteAllText(Path.Combine(folderPath, "rootCA.crt"), CRT_HEADER + issuerCertData + CRT_FOOTER); + + // Export Private Key + var privateKeyExport = rsaKey.ExportRSAPrivateKey(); + var privateKeyData = Convert.ToBase64String(privateKeyExport, Base64FormattingOptions.InsertLineBreaks); + File.WriteAllText(Path.Combine(folderPath, "localhost.key"), KEY_HEADER + privateKeyData + KEY_FOOTER); + + // Export Certificate + var certExport = cert.Export(X509ContentType.Cert); + var certData = Convert.ToBase64String(certExport, Base64FormattingOptions.InsertLineBreaks); + File.WriteAllText(Path.Combine(folderPath, "localhost.crt"), CRT_HEADER + certData + CRT_FOOTER); + + } + + public static void CreateP12(string certPath, string keyPath, string password = "") + { + string? folderPath = Path.GetDirectoryName(certPath); + string fileName = Path.GetFileNameWithoutExtension(certPath); + using X509Certificate2 certWithKey = X509Certificate2.CreateFromPemFile(certPath, keyPath); + var certWithKeyExport = certWithKey.Export(X509ContentType.Pfx, password); + if (!string.IsNullOrEmpty(folderPath)) + File.WriteAllBytes(Path.Combine(folderPath, fileName + ".p12"), certWithKeyExport); + } + + /// + /// Returns false if user don't install certificate, otherwise true. + /// + public static bool InstallCertificate(string certPath, StoreName storeName, StoreLocation storeLocation) + { + try + { + X509Certificate2 certificate = new(certPath, "", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); + X509Store store = new(storeName, storeLocation); + store.Open(OpenFlags.ReadWrite); + store.Add(certificate); + store.Close(); + return true; + } + catch (Exception ex) // Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException + { + Debug.WriteLine(ex.Message); + // If ex.Message: (The operation was canceled by the user.) + return false; + } + } + + public static bool IsCertificateInstalled(string subjectName, StoreName storeName, StoreLocation storeLocation) + { + X509Store store = new(storeName, storeLocation); + store.Open(OpenFlags.ReadOnly); + + X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindBySubjectName, subjectName, false); + + if (certificates != null && certificates.Count > 0) + { + Debug.WriteLine("Certificate is already installed."); + return true; + } + else + return false; + } + + public static void UninstallCertificate(string subjectName, StoreName storeName, StoreLocation storeLocation) + { + X509Store store = new(storeName, storeLocation); + store.Open(OpenFlags.ReadWrite | OpenFlags.IncludeArchived); + + // You could also use a more specific find type such as X509FindType.FindByThumbprint + X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindBySubjectName, subjectName, false); + Debug.WriteLine($"Cert Count: {certificates.Count}"); + + for (int i = 0; i < certificates.Count; i++) + { + X509Certificate2 cert = certificates[i]; + Debug.WriteLine($"Cert SubjectName: {cert.SubjectName.Name}"); + + X509Chain chain = new(); + chain.Build(cert); + X509Certificate2Collection allCertsInChain = new(); + Debug.WriteLine($"Cert Chain Count: {chain.ChainElements.Count}"); + + for (int j = 0; j < chain.ChainElements.Count; j++) + { + X509ChainElement chainElement = chain.ChainElements[j]; + allCertsInChain.Add(chainElement.Certificate); + + Debug.WriteLine($"Cert Chain SubjectName: {chainElement.Certificate.SubjectName.Name}"); + } + + store.RemoveRange(allCertsInChain); + store.Remove(cert); + } + store.Close(); + } + } +} diff --git a/MsmhTools/MsmhTools/Colors.cs b/MsmhTools/MsmhTools/Colors.cs new file mode 100644 index 0000000..d4bf622 --- /dev/null +++ b/MsmhTools/MsmhTools/Colors.cs @@ -0,0 +1,92 @@ +using System; + +namespace MsmhTools +{ + public static class Colors + { + //----------------------------------------------------------------------------------- + /// + /// Converts the HSL values to a Color. + /// + /// The alpha. (0 - 255) + /// The hue. (0f - 360f) + /// The saturation. (0f - 1f) + /// The lighting. (0f - 1f) + /// + public static Color FromHsl(int alpha, float hue, float saturation, float lighting) + { + if (0 > alpha || 255 < alpha) + { + throw new ArgumentOutOfRangeException(nameof(alpha)); + } + if (0f > hue || 360f < hue) + { + throw new ArgumentOutOfRangeException(nameof(hue)); + } + if (0f > saturation || 1f < saturation) + { + throw new ArgumentOutOfRangeException(nameof(saturation)); + } + if (0f > lighting || 1f < lighting) + { + throw new ArgumentOutOfRangeException(nameof(lighting)); + } + + if (0 == saturation) + { + return Color.FromArgb(alpha, Convert.ToInt32(lighting * 255), Convert.ToInt32(lighting * 255), Convert.ToInt32(lighting * 255)); + } + + float fMax, fMid, fMin; + int iSextant, iMax, iMid, iMin; + + if (0.5 < lighting) + { + fMax = lighting - (lighting * saturation) + saturation; + fMin = lighting + (lighting * saturation) - saturation; + } + else + { + fMax = lighting + (lighting * saturation); + fMin = lighting - (lighting * saturation); + } + + iSextant = (int)Math.Floor(hue / 60f); + if (300f <= hue) + { + hue -= 360f; + } + hue /= 60f; + hue -= 2f * (float)Math.Floor(((iSextant + 1f) % 6f) / 2f); + if (0 == iSextant % 2) + { + fMid = hue * (fMax - fMin) + fMin; + } + else + { + fMid = fMin - hue * (fMax - fMin); + } + + iMax = Convert.ToInt32(fMax * 255); + iMid = Convert.ToInt32(fMid * 255); + iMin = Convert.ToInt32(fMin * 255); + + switch (iSextant) + { + case 1: + return Color.FromArgb(alpha, iMid, iMax, iMin); + case 2: + return Color.FromArgb(alpha, iMin, iMax, iMid); + case 3: + return Color.FromArgb(alpha, iMin, iMid, iMax); + case 4: + return Color.FromArgb(alpha, iMid, iMin, iMax); + case 5: + return Color.FromArgb(alpha, iMax, iMin, iMid); + default: + return Color.FromArgb(alpha, iMax, iMid, iMin); + } + } + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/MsmhTools/Controllers.cs b/MsmhTools/MsmhTools/Controllers.cs new file mode 100644 index 0000000..f6835b1 --- /dev/null +++ b/MsmhTools/MsmhTools/Controllers.cs @@ -0,0 +1,135 @@ +using System; +using System.Reflection; + +namespace MsmhTools +{ + public static class Controllers + { + //----------------------------------------------------------------------------------- + public static List GetAllControls(Control control) + { + List listC = new(); + GetAllSubControlsByType(control); + + void GetAllSubControlsByType(Control control) + { + listC.Add(control); + + if (control.HasChildren) + { + for (int n = 0; n < control.Controls.Count; n++) + { + Control c = control.Controls[n]; + GetAllSubControlsByType(c); + } + } + } + return listC; + } + //----------------------------------------------------------------------------------- + public static List GetAllChildControls(Control control) + { + List listC = new(); + GetAllSubControlsByType(control); + + void GetAllSubControlsByType(Control control) + { + if (control.HasChildren) + { + for (int n = 0; n < control.Controls.Count; n++) + { + Control c = control.Controls[n]; + listC.Add(c); + GetAllSubControlsByType(c); + } + } + } + return listC; + } + //----------------------------------------------------------------------------------- + public static List GetAllControlsByType(Control control) + { + List listT = new(); + var type = control.GetType(); + var fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Instance); + for (int n = 0; n < fields.Length; n++) + { + var field = fields[n]; + if (field.GetValue(control) != null && + (field.GetValue(control).GetType().IsSubclassOf(typeof(T)) || field.GetValue(control).GetType() == typeof(T))) + { + var t = (T)field.GetValue(control); + if (t != null) + listT.Add(t); + } + } + return listT; + } // Usage: var toolStripButtons = GetSubControls(form); + //----------------------------------------------------------------------------------- + /// + /// Recursively get SubMenu Items. Includes Separators. + /// + /// + /// + public static IEnumerable GetAllToolStripItems(ToolStripItem? item) + { + if (item is ToolStripMenuItem) + { + foreach (ToolStripItem tsi in (item as ToolStripMenuItem).DropDownItems) + { + if (tsi is ToolStripMenuItem) + { + if ((tsi as ToolStripMenuItem).HasDropDownItems) + { + foreach (ToolStripItem subItem in GetAllToolStripItems(tsi as ToolStripMenuItem)) + yield return subItem; + } + yield return tsi as ToolStripMenuItem; + } + else if (tsi is ToolStripSeparator) + { + yield return tsi as ToolStripSeparator; + } + } + } + else if (item is ToolStripSeparator) + { + yield return item as ToolStripSeparator; + } + } + // Usage: + // if(toolItem is ToolStripMenuItem) + // { + // ToolStripMenuItem tsmi = (toolItem as ToolStripMenuItem); + // //Do something with it + // } + // else if(toolItem is ToolStripSeparator) + // { + // ToolStripSeparator tss = (toolItem as ToolStripSeparator); + // //Do something with it + // } + //----------------------------------------------------------------------------------- + public static Control GetTopParent(Control control) + { + Control parent = control; + if (control.Parent != null) + { + parent = control.Parent; + if (parent.Parent != null) + while (parent.Parent != null) + parent = parent.Parent; + } + return parent; + } + //----------------------------------------------------------------------------------- + public static void SetDarkControl(Control control) + { + _ = Methods.SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + foreach (Control c in GetAllControls(control)) + { + _ = Methods.SetWindowTheme(c.Handle, "DarkMode_Explorer", null); + } + } + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DNSCryptConfigEditor.cs b/MsmhTools/MsmhTools/DnsTool/DNSCryptConfigEditor.cs new file mode 100644 index 0000000..be293eb --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DNSCryptConfigEditor.cs @@ -0,0 +1,244 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool +{ + public class DNSCryptConfigEditor + { + private List ConfigList = new(); + private string ConfigPath = string.Empty; + public DNSCryptConfigEditor(string configPath) + { + ConfigPath = configPath; + ConfigList.Clear(); + string text = File.ReadAllText(configPath); + ConfigList = text.SplitToLines(); + } + + public void EditDnsCache(bool enable) + { + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (line.Contains("cache = true") || line.Contains("cache = false")) + { + // e.g. cache = true + if (enable) + ConfigList[n] = "cache = true"; + else + ConfigList[n] = "cache = false"; + break; + } + } + } + + public void EditHTTPProxy(string proxyScheme) + { + if (string.IsNullOrEmpty(proxyScheme)) return; + string keyName = "http_proxy"; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (line.Contains(keyName)) + { + // e.g. http_proxy = 'https://http.proxy.net:8080' + ConfigList[n] = $"{keyName} = '{proxyScheme}'"; + break; + } + } + } + + public void RemoveHTTPProxy() + { + string keyName = "http_proxy"; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (line.Contains(keyName)) + { + // e.g. http_proxy = 'https://http.proxy.net:8080' + ConfigList[n] = $"#{keyName} = ''"; + break; + } + } + } + + public void EditBootstrapDNS(IPAddress bootstrapDNS, int bootstrapPort) + { + if (bootstrapDNS == null) return; + string keyName = "bootstrap_resolvers"; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (line.Contains(keyName)) + { + // e.g. bootstrap_resolvers = ['9.9.9.11:53', '1.1.1.1:53'] + ConfigList[n] = $"{keyName} = ['{bootstrapDNS}:{bootstrapPort}', '1.1.1.1:53']"; + break; + } + } + } + + public void EditCertPath(string certPath) + { + if (string.IsNullOrEmpty(certPath)) return; + string sectionName = "[local_doh]"; + string keyName = "cert_file"; + bool section = false; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (!section && line.StartsWith(sectionName)) + section = true; + + if (section) + { + if (line.Contains(keyName)) + { + // e.g. cert_file = 'certs/domain.crt' + ConfigList[n] = $"{keyName} = '{certPath}'"; + break; + } + + // Break if reaches next section + if (line.StartsWith('[') && !line.StartsWith(sectionName)) break; + } + } + } + + public void EditCertKeyPath(string certKeyPath) + { + if (string.IsNullOrEmpty(certKeyPath)) return; + string sectionName = "[local_doh]"; + string keyName = "cert_key_file"; + bool section = false; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (!section && line.StartsWith(sectionName)) + section = true; + + if (section) + { + if (line.Contains(keyName)) + { + // e.g. cert_key_file = 'certs/domain.key' + ConfigList[n] = $"{keyName} = '{certKeyPath}'"; + break; + } + + // Break if reaches next section + if (line.StartsWith('[') && !line.StartsWith(sectionName)) break; + } + } + } + + public void EnableDoH(int dohPort) + { + string sectionName = "[local_doh]"; + string keyName = "listen_addresses"; + bool section = false; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (!section && line.StartsWith(sectionName)) + section = true; + + if (section) + { + if (line.Contains(keyName)) + { + // e.g. listen_addresses = ['0.0.0.0:443'] + ConfigList[n] = $"{keyName} = ['0.0.0.0:{dohPort}']"; + break; + } + + // Break if reaches next section + if (line.StartsWith('[') && !line.StartsWith(sectionName)) break; + } + } + } + + public void DisableDoH() + { + string sectionName = "[local_doh]"; + string keyName = "listen_addresses"; + bool section = false; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (!section && line.StartsWith(sectionName)) + section = true; + + if (section) + { + if (line.Contains(keyName)) + { + // e.g. listen_addresses = ['0.0.0.0:443'] + ConfigList[n] = $"#{keyName} = ['0.0.0.0:443']"; + break; + } + + // Break if reaches next section + if (line.StartsWith('[') && !line.StartsWith(sectionName)) break; + } + } + } + + public void ChangePersonalServer(string sdns) + { + string sectionName = "[static]"; + string keyName = "stamp"; + bool section = false; + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n].Trim(); + if (!section && line.StartsWith(sectionName)) + section = true; + + if (section) + { + // Remove all existing personal servers + if (n < ConfigList.Count - 1) + { + ConfigList.RemoveRange(n + 1, ConfigList.Count - (n + 1)); + } + + // e.g. [static.Personal] + // e.g. stamp = 'sdns://AgcAAAAAAAAABzEuMC4wLjEAEmRucy5jbG91ZGZsYXJlLmNvbQovZG5zLXF1ZXJ5' + string newLine1 = "[static.Personal]"; + string newLine2 = $"{keyName} = '{sdns}'"; + ConfigList.Add(string.Empty); + ConfigList.Add(newLine1); + ConfigList.Add(newLine2); + + break; + } + } + } + + public async Task WriteAsync() + { + if (!FileDirectory.IsFileLocked(ConfigPath)) + { + File.WriteAllText(ConfigPath, string.Empty); + for (int n = 0; n < ConfigList.Count; n++) + { + string line = ConfigList[n]; + + if (n == ConfigList.Count - 1) + await FileDirectory.AppendTextAsync(ConfigPath, line, new UTF8Encoding(false)); + else + await FileDirectory.AppendTextLineAsync(ConfigPath, line, new UTF8Encoding(false)); + } + //File.WriteAllLines(ConfigPath, ConfigList); + } + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DNSCryptStampGenerator.cs b/MsmhTools/MsmhTools/DnsTool/DNSCryptStampGenerator.cs new file mode 100644 index 0000000..b1c5495 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DNSCryptStampGenerator.cs @@ -0,0 +1,438 @@ +using System; +using System.Diagnostics; +using System.Text; + +namespace MsmhTools.DnsTool +{ + public class DNSCryptStampGenerator + { + // More info: https://dnscrypt.info/stamps-specifications/ + public DNSCryptStampGenerator() + { + + } + + /// + /// Generate Plain DNS Stamp + /// + /// IP Address (IPv6 addresses must be in brackets) + /// Is DNSSec + /// Is no log + /// Is no filter + /// Returns stamp or string.Empty if fail + public string GeneratePlainDns(string ipPort, bool isDNSSec, bool isNoLog, bool isNoFilter) + { + ipPort = ipPort.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDns = new byte[] { 0x00 }; // Plain DNS + byte[] bProps = GetProperties(isDNSSec, isNoLog, isNoFilter); + byte[] bDnsIp = LP(ipPort); + + byte[] main = bDns.Concat(bProps).Concat(bDnsIp).ToArray(); + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert Plain DNS to Stamp: " + ex.Message); + } + + return sdns; + } + + /// + /// Generate DNSCrypt Stamp + /// + /// IP Address with optional port (IPv6 addresses must be in brackets) + /// Public Key + /// Provider Name + /// Is DNSSec + /// Is no log + /// Is no filter + /// Returns stamp or string.Empty if fail + public string GenerateDNSCrypt(string ipPort, string publicKey, string providerName, bool isDNSSec, bool isNoLog, bool isNoFilter) + { + ipPort = ipPort.Trim(); + publicKey = publicKey.Trim(); + providerName = providerName.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDns = new byte[] { 0x01 }; // DNSCrypt + byte[] bProps = GetProperties(isDNSSec, isNoLog, isNoFilter); + byte[] bIpPort = LP(ipPort); + byte[] bPK = LPPublicKey(publicKey); + byte[] bPN = LP(providerName); + + byte[] main = bDns.Concat(bProps).Concat(bIpPort).Concat(bPK).Concat(bPN).ToArray(); + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert DNSCrypt to Stamp: " + ex.Message); + } + + return sdns; + } + + /// + /// Generate DoH Stamp + /// + /// IP Address (IPv6 addresses must be in brackets) + /// Hashes (comma-separated) - Optional + /// Host name (vHost+SNI) and optional port number + /// Path + /// Bootstraps (comma-separated) - Optional + /// Is DNSSec + /// Is no log + /// Is no filter + /// Returns stamp or string.Empty if fail + public string GenerateDoH(string ip, string? hashes, string hostPort, string path, string? bootstraps, bool isDNSSec, bool isNoLog, bool isNoFilter) + { + ip = ip.Trim(); + if (!string.IsNullOrEmpty(hashes)) + hashes = hashes.Trim(); + hostPort = hostPort.Trim(); + path = string.IsNullOrEmpty(path) ? "/" : path.Trim(); + if (!string.IsNullOrEmpty(bootstraps)) + bootstraps = bootstraps.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDoh = new byte[] { 0x02 }; // DoH + byte[] bProps = GetProperties(isDNSSec, isNoLog, isNoFilter); + byte[] bDohIp = LP(ip); + byte[] bHash = VLPHash(hashes); + byte[] bhostPort = LP(hostPort); + byte[] bPath = LP(path); + byte[] bBootstrap = VLPBootstrap(bootstraps); + + byte[] main = bDoh.Concat(bProps).Concat(bDohIp).Concat(bHash).Concat(bhostPort).Concat(bPath).ToArray(); + if (!string.IsNullOrEmpty(bootstraps)) + main = main.Concat(bBootstrap).ToArray(); + + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert DoH to Stamp: " + ex.Message); + } + + return sdns; + } + + /// + /// Generate DoT Stamp + /// + /// IP Address (IPv6 addresses must be in brackets) + /// Hashes (comma-separated) - Optional + /// Host name (vHost+SNI) and optional port number + /// Bootstraps (comma-separated) - Optional + /// Is DNSSec + /// Is no log + /// Is no filter + /// Returns stamp or string.Empty if fail + public string GenerateDoT(string ip, string? hashes, string hostPort, string? bootstraps, bool isDNSSec, bool isNoLog, bool isNoFilter) + { + ip = ip.Trim(); + if (!string.IsNullOrEmpty(hashes)) + hashes = hashes.Trim(); + hostPort = hostPort.Trim(); + if (!string.IsNullOrEmpty(bootstraps)) + bootstraps = bootstraps.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDot = new byte[] { 0x03 }; // DoT + byte[] bProps = GetProperties(isDNSSec, isNoLog, isNoFilter); + byte[] bDotIp = LP(ip); + byte[] bHash = VLPHash(hashes); + byte[] bhostPort = LP(hostPort); + byte[] bBootstrap = VLPBootstrap(bootstraps); + + byte[] main = bDot.Concat(bProps).Concat(bDotIp).Concat(bHash).Concat(bhostPort).ToArray(); + if (!string.IsNullOrEmpty(bootstraps)) + main = main.Concat(bBootstrap).ToArray(); + + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert DoT to Stamp: " + ex.Message); + } + + return sdns; + } + + /// + /// Generate DoQ Stamp + /// + /// IP Address (IPv6 addresses must be in brackets) + /// Hashes (comma-separated) - Optional + /// Host name (vHost+SNI) and optional port number + /// Bootstraps (comma-separated) - Optional + /// Is DNSSec + /// Is no log + /// Is no filter + /// Returns stamp or string.Empty if fail + public string GenerateDoQ(string ip, string? hashes, string hostPort, string? bootstraps, bool isDNSSec, bool isNoLog, bool isNoFilter) + { + ip = ip.Trim(); + if (!string.IsNullOrEmpty(hashes)) + hashes = hashes.Trim(); + hostPort = hostPort.Trim(); + if (!string.IsNullOrEmpty(bootstraps)) + bootstraps = bootstraps.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDoq = new byte[] { 0x04 }; // DoQ + byte[] bProps = GetProperties(isDNSSec, isNoLog, isNoFilter); + byte[] bDoqIp = LP(ip); + byte[] bHash = VLPHash(hashes); + byte[] bhostPort = LP(hostPort); + byte[] bBootstrap = VLPBootstrap(bootstraps); + + byte[] main = bDoq.Concat(bProps).Concat(bDoqIp).Concat(bHash).Concat(bhostPort).ToArray(); + if (!string.IsNullOrEmpty(bootstraps)) + main = main.Concat(bBootstrap).ToArray(); + + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert DoQ to Stamp: " + ex.Message); + } + + return sdns; + } + + /// + /// Generate Oblivious DoH Target Stamp + /// + /// Host name (vHost+SNI) and optional port number + /// Path + /// Is DNSSec + /// Is no log + /// Is no filter + /// Returns stamp or string.Empty if fail + public string GenerateObliviousDohTarget(string hostPort, string path, bool isDNSSec, bool isNoLog, bool isNoFilter) + { + hostPort = hostPort.Trim(); + path = string.IsNullOrEmpty(path) ? "/" : path.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDns = new byte[] { 0x05 }; // Oblivious DoH Target + byte[] bProps = GetProperties(isDNSSec, isNoLog, isNoFilter); + byte[] bhostPort = LP(hostPort); + byte[] bPath = LP(path); + + byte[] main = bDns.Concat(bProps).Concat(bhostPort).Concat(bPath).ToArray(); + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert Oblivious DoH Target to Stamp: " + ex.Message); + } + + return sdns; + } + + /// + /// Generate Anonymized DNSCrypt Relay Stamp + /// + /// IP address and port, as a string. IPv6 strings must be included in square brackets. + /// Returns stamp or string.Empty if fail + public string GenerateAnonymizedDNSCryptRelay(string ipPort) + { + ipPort = ipPort.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDns = new byte[] { 0x81 }; // Anonymized DNSCrypt Relay + byte[] bIpPort = LP(ipPort); + + byte[] main = bDns.Concat(bIpPort).ToArray(); + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert Anonymized DNSCrypt Relay to Stamp: " + ex.Message); + } + + return sdns; + } + + /// + /// Generate Oblivious DoH Relay Stamp + /// + /// IP Address (IPv6 addresses must be in brackets) + /// Hashes (comma-separated) - Optional + /// Host name (vHost+SNI) and optional port number + /// Path + /// Bootstraps (comma-separated) - Optional + /// Is DNSSec + /// Is no log + /// Is no filter + /// Returns stamp or string.Empty if fail + public string GenerateObliviousDohRelay(string ip, string? hashes, string hostPort, string path, string? bootstraps, bool isDNSSec, bool isNoLog, bool isNoFilter) + { + ip = ip.Trim(); + if (!string.IsNullOrEmpty(hashes)) + hashes = hashes.Trim(); + hostPort = hostPort.Trim(); + path = string.IsNullOrEmpty(path) ? "/" : path.Trim(); + if (!string.IsNullOrEmpty(bootstraps)) + bootstraps = bootstraps.Trim(); + string sdns = string.Empty; + + try + { + byte[] bDns = new byte[] { 0x85 }; // Oblivious DoH Relay + byte[] bProps = GetProperties(isDNSSec, isNoLog, isNoFilter); + byte[] bDnsIp = LP(ip); + byte[] bHash = VLPHash(hashes); + byte[] bhostPort = LP(hostPort); + byte[] bPath = LP(path); + byte[] bBootstrap = VLPBootstrap(bootstraps); + + byte[] main = bDns.Concat(bProps).Concat(bDnsIp).Concat(bHash).Concat(bhostPort).Concat(bPath).ToArray(); + if (!string.IsNullOrEmpty(bootstraps)) + main = main.Concat(bBootstrap).ToArray(); + + sdns = GetSdnsUrl(main); + } + catch (Exception ex) + { + Debug.WriteLine("Convert Oblivious DoH Relay to Stamp: " + ex.Message); + } + + return sdns; + } + + private static byte[] GetProperties(bool isDNSSec, bool isNoLog, bool isNoFilter) + { + // 1: the server supports DNSSEC + // 2: the server doesn't keep logs + // 4: the server doesn't intentionally block domains + int p = 0; + if (isDNSSec) p += 1; + if (isNoLog) p += 2; + if (isNoFilter) p += 4; + + byte[] bProps = new byte[] { Convert.ToByte(p), 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + return bProps; + } + + private static byte[] LP(string input) + { + input = input.Trim(); + byte[] bInputLength = new byte[] { Convert.ToByte(input.Length) }; + byte[] bInput = Encoding.UTF8.GetBytes(input); + return bInputLength.Concat(bInput).ToArray(); + } + + private static byte[] LPPublicKey(string input) + { + input = input.ToLower().Trim(); + byte[] bInput = Convert.FromHexString(input); + byte[] bInputLength = new byte[] { Convert.ToByte(bInput.Length) }; + return bInputLength.Concat(bInput).ToArray(); + } + + private static byte[] VLPHash(string? input) + { + if (string.IsNullOrEmpty(input)) + return new byte[] { 0x00 }; + + input = input.Replace(" ", string.Empty).ToLower(); + + byte[] bInputOut = Array.Empty(); + if (input.Contains(',')) + { + string[] split = input.Split(',', StringSplitOptions.TrimEntries); + for (int n = 0; n < split.Length; n++) + { + string oneInput = split[n].Trim(); + if (n == split.Length - 1) // Last Line + { + byte[] bInput = Convert.FromHexString(oneInput); + byte[] bInputLength = new byte[] { Convert.ToByte(bInput.Length) }; + bInputOut = bInputOut.Concat(bInputLength).Concat(bInput).ToArray(); + } + else + { + byte[] bInput = Convert.FromHexString(oneInput); + int length = 0x80 | bInput.Length; + byte[] bInputLength = new byte[] { Convert.ToByte(length) }; + bInputOut = bInputOut.Concat(bInputLength).Concat(bInput).ToArray(); + } + } + } + else + { + byte[] bInput = Convert.FromHexString(input); + byte[] bInputLength = new byte[] { Convert.ToByte(bInput.Length) }; + bInputOut = bInputOut.Concat(bInputLength).Concat(bInput).ToArray(); + + } + return bInputOut; + } + + private static byte[] VLPBootstrap(string? input) + { + if (string.IsNullOrEmpty(input)) + return new byte[] { 0x00 }; + + input = input.Replace(" ", string.Empty); + + byte[] bInputOut = Array.Empty(); + if (input.Contains(',')) + { + string[] split = input.Split(',', StringSplitOptions.TrimEntries); + for (int n = 0; n < split.Length; n++) + { + string oneInput = split[n].Trim(); + if (n == split.Length - 1) // Last Line + { + byte[] bInputLength = new byte[] { Convert.ToByte(oneInput.Length) }; + byte[] bInput = Encoding.UTF8.GetBytes(oneInput); + bInputOut = bInputOut.Concat(bInputLength).Concat(bInput).ToArray(); + } + else + { + int length = 0x80 | oneInput.Length; + byte[] bInputLength = new byte[] { Convert.ToByte(length) }; + byte[] bInput = Encoding.UTF8.GetBytes(oneInput); + bInputOut = bInputOut.Concat(bInputLength).Concat(bInput).ToArray(); + } + } + } + else + { + byte[] bInputLength = new byte[] { Convert.ToByte(input.Length) }; + byte[] bInput = Encoding.UTF8.GetBytes(input); + bInputOut = bInputOut.Concat(bInputLength).Concat(bInput).ToArray(); + + } + return bInputOut; + } + + private static string GetSdnsUrl(byte[] wholeBytes) + { + string sdnsScheme = "sdns://"; + string mainBase64 = EncodingTool.UrlEncode(wholeBytes); + return sdnsScheme + mainBase64; + } + + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DNSCryptStampReader.cs b/MsmhTools/MsmhTools/DnsTool/DNSCryptStampReader.cs new file mode 100644 index 0000000..edc94f8 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DNSCryptStampReader.cs @@ -0,0 +1,528 @@ +using System; +using System.Diagnostics; +using System.Text; + +namespace MsmhTools.DnsTool +{ + public class DNSCryptStampReader + { + // More info: https://dnscrypt.info/stamps-specifications/ + public bool IsDecryptionSuccess { get; private set; } = false; + public string Stamp { get; private set; } = string.Empty; + public string IP { get; private set; } = string.Empty; + public int Port { get; private set; } = -1; + public string Host { get; private set; } = string.Empty; + public string Path { get; private set; } = string.Empty; + public string PublicKey { get; private set; } = string.Empty; + public string ProviderName { get; private set; } = string.Empty; + public List Hashi { get; private set; } = new(); + public List Bootstraps { get; private set; } = new(); + public StampProtocol Protocol { get; private set; } = StampProtocol.Unknown; + public string ProtocolName { get; private set; } = StampProtocolName.Unknown; + public bool IsDnsSec { get; set; } = false; + public bool IsNoLog { get; set; } = false; + public bool IsNoFilter { get; set; } = false; + + public static class DefaultPort + { + public static readonly int PlainDNS = 53; + public static readonly int DnsCrypt = 443; + public static readonly int DoH = 443; + public static readonly int DoT = 853; + public static readonly int DoQ = 853; + public static readonly int ObliviousDohTarget = 443; + public static readonly int AnonymizedDNSCryptRelay = 443; + public static readonly int ObliviousDohRelay = 443; + } + + public enum StampProtocol + { + PlainDNS, + DnsCrypt, + DoH, + DoT, + DoQ, + ObliviousDohTarget, + AnonymizedDNSCryptRelay, + ObliviousDohRelay, + Unknown + } + + private struct StampProtocolName + { + public static string PlainDNS = "Plain DNS"; + public static string DnsCrypt = "DNSCrypt"; + public static string DoH = "DNS-Over-HTTPS"; + public static string DoT = "DNS-Over-TLS"; + public static string DoQ = "DNS-Over-Quic"; + public static string ObliviousDohTarget = "Oblivious DoH Target"; + public static string AnonymizedDNSCryptRelay = "Anonymized DNSCrypt Relay"; + public static string ObliviousDohRelay = "Oblivious DoH Relay"; + public static string Unknown = "Unknown"; + } + + public DNSCryptStampReader(string stamp) + { + Stamp = stamp; + + if (stamp.StartsWith("sdns://")) + { + try + { + // Strip sdns:// + stamp = stamp[7..]; + + // Get Stamp Binary + byte[] stampBinary = EncodingTool.UrlDecode(stamp); + + // Get Protocol + if (stampBinary.Length > 0) + { + Protocol = GetProtocol(stampBinary, out string protocolName); + ProtocolName = protocolName; + } + + // Get Properties + if (Protocol != StampProtocol.AnonymizedDNSCryptRelay) // Anonymized DNSCrypt Relay doesn't have properties + { + if (stampBinary.Length > 1) + { + GetStampProperties(stampBinary, out bool isDNSSec, out bool isNoLog, out bool isNoFilter); + IsDnsSec = isDNSSec; + IsNoLog = isNoLog; + IsNoFilter = isNoFilter; + } + } + + // Get IP, Port, Host, Path, PublicKey, ProviderName, Hashi, Bootstraps + bool isOk = DecryptTheRest(stampBinary, out string ip, out int port, out string host, out string path, out string publicKey, + out string providerName, out List hashi, out List bootstraps); + + if (!isOk) return; + + IP = ip; + Port = port; + Host = host; + Path = path; + PublicKey = publicKey; + ProviderName = providerName; + Hashi = new(hashi); + Bootstraps = new(bootstraps); + + IsDecryptionSuccess = true; + } + catch (Exception) + { + // do nothing + } + } + else + { + Debug.WriteLine("\"sdns://\" is missing."); + } + } + + private static StampProtocol GetProtocol(byte[] stampBinary, out string protocolName) + { + byte stampProtocol = stampBinary[0]; + + if (stampProtocol == 0x00) + { + protocolName = StampProtocolName.PlainDNS; + return StampProtocol.PlainDNS; + } + else if (stampProtocol == 0x01) + { + protocolName = StampProtocolName.DnsCrypt; + return StampProtocol.DnsCrypt; + } + else if (stampProtocol == 0x02) + { + protocolName = StampProtocolName.DoH; + return StampProtocol.DoH; + } + else if (stampProtocol == 0x03) + { + protocolName = StampProtocolName.DoT; + return StampProtocol.DoT; + } + else if (stampProtocol == 0x04) + { + protocolName = StampProtocolName.DoQ; + return StampProtocol.DoQ; + } + else if (stampProtocol == 0x05) + { + protocolName = StampProtocolName.ObliviousDohTarget; + return StampProtocol.ObliviousDohTarget; + } + else if (stampProtocol == 0x81) + { + protocolName = StampProtocolName.AnonymizedDNSCryptRelay; + return StampProtocol.AnonymizedDNSCryptRelay; + } + else if (stampProtocol == 0x85) + { + protocolName = StampProtocolName.ObliviousDohRelay; + return StampProtocol.ObliviousDohRelay; + } + else + { + protocolName = StampProtocolName.Unknown; + return StampProtocol.Unknown; + } + } + + private static void GetStampProperties(byte[] stampBinary, out bool isDNSSec, out bool isNoLog, out bool isNoFilter) + { + byte dnsCryptProperties = stampBinary[1]; + + isDNSSec = Convert.ToBoolean((dnsCryptProperties >> 0) & 1); + isNoLog = Convert.ToBoolean((dnsCryptProperties >> 1) & 1); + isNoFilter = Convert.ToBoolean((dnsCryptProperties >> 2) & 1); + } + + private bool DecryptTheRest(byte[] stampBinary, out string ip, out int port, out string host, out string path, out string publicKey, + out string providerName, out List hashi, out List bootstraps) + { + ip = string.Empty; + port = -1; + host = string.Empty; + path = string.Empty; + publicKey = string.Empty; + providerName = string.Empty; + hashi = new List(); + bootstraps = new List(); + + int position = 0; + position += 1; // Skip Protocol + if (Protocol == StampProtocol.PlainDNS) + { + position += 8; // Skip Properties + + // LP(addr [:port]) + position = LPHostIpPort(position, stampBinary, DefaultPort.PlainDNS, out ip, out port); + if (position == -1) return false; + return true; + } + else if (Protocol == StampProtocol.DnsCrypt) + { + position += 8; // Skip Properties + + // LP(addr [:port]) + position = LPHostIpPort(position, stampBinary, DefaultPort.DnsCrypt, out ip, out port); + if (position == -1) return false; + + // LP(pk) + position = LPPublicKey(position, stampBinary, out publicKey); + if (position == -1) return false; + + // LP(providerName)) + position = LP(position, stampBinary, out providerName); + if (position == -1) return false; + return true; + } + else if (Protocol == StampProtocol.DoH) + { + position += 8; // Skip Properties + + // LP(addr) + position = LPHostIpPort(position, stampBinary, DefaultPort.DoH, out ip, out port); + if (position == -1) return false; + + // VLP(hash1, hash2, ...hashn) + position = VLPHash(position, stampBinary, out hashi); + if (position == -1) return false; + + // LP(hostname[:port]) + position = LPHostIpPort(position, stampBinary, port, out host, out port); + if (position == -1) return false; + + // LP(path) + position = LP(position, stampBinary, out path); + if (position == -1) return false; + + // VLP(bootstrap_ip1, bootstrap_ip2, ...bootstrap_ipn) - Optional + position = VLPBootstrap(position, stampBinary, out bootstraps); + if (position == -1) return false; + return true; + } + else if (Protocol == StampProtocol.DoT) + { + position += 8; // Skip Properties + + // LP(addr) + position = LPHostIpPort(position, stampBinary, DefaultPort.DoT, out ip, out port); + if (position == -1) return false; + + // VLP(hash1, hash2, ...hashn) + position = VLPHash(position, stampBinary, out hashi); + if (position == -1) return false; + + // LP(hostname [:port]) + position = LPHostIpPort(position, stampBinary, port, out host, out port); + if (position == -1) return false; + + // VLP(bootstrap_ip1, bootstrap_ip2, ...bootstrap_ipn) - Optional + position = VLPBootstrap(position, stampBinary, out bootstraps); + if (position == -1) return false; + return true; + } + else if (Protocol == StampProtocol.DoQ) + { + position += 8; // Skip Properties + + // LP(addr) + position = LPHostIpPort(position, stampBinary, DefaultPort.DoQ, out ip, out port); + if (position == -1) return false; + + // VLP(hash1, hash2, ...hashn) + position = VLPHash(position, stampBinary, out hashi); + if (position == -1) return false; + + // LP(hostname [:port]) + position = LPHostIpPort(position, stampBinary, port, out host, out port); + if (position == -1) return false; + + // VLP(bootstrap_ip1, bootstrap_ip2, ...bootstrap_ipn) - Optional + position = VLPBootstrap(position, stampBinary, out bootstraps); + if (position == -1) return false; + return true; + } + else if (Protocol == StampProtocol.ObliviousDohTarget) + { + position += 8; // Skip Properties + + // LP(hostname [:port]) + position = LPHostIpPort(position, stampBinary, DefaultPort.ObliviousDohTarget, out host, out port); + if (position == -1) return false; + + // LP(path) + position = LP(position, stampBinary, out path); + if (position == -1) return false; + return true; + } + else if (Protocol == StampProtocol.AnonymizedDNSCryptRelay) + { + // Anonymized DNSCrypt Relay doesn't have properties to skip + + // LP(addr) + position = LPHostIpPort(position, stampBinary, DefaultPort.AnonymizedDNSCryptRelay, out ip, out port); + if (position == -1) return false; + return true; + } + else if (Protocol == StampProtocol.ObliviousDohRelay) + { + position += 8; // Skip Properties + + // LP(addr) + position = LPHostIpPort(position, stampBinary, DefaultPort.ObliviousDohRelay, out ip, out port); + if (position == -1) return false; + + // VLP(hash1, hash2, ...hashn) + position = VLPHash(position, stampBinary, out hashi); + if (position == -1) return false; + + // LP(hostname [:port]) + position = LPHostIpPort(position, stampBinary, port, out host, out port); + if (position == -1) return false; + + // LP(path) + position = LP(position, stampBinary, out path); + if (position == -1) return false; + + // VLP(bootstrap_ip1, bootstrap_ip2, ...bootstrap_ipn) - Optional + position = VLPBootstrap(position, stampBinary, out bootstraps); + if (position == -1) return false; + return true; + } + + return true; + } + + private int LPHostIpPort(int position, byte[] stampBinary, int defaultPort, out string host, out int port) + { + try + { + if (stampBinary.Length <= position) + { + host = string.Empty; + port = -1; + return -1; + } + + int hostPortLength = Convert.ToInt32(stampBinary[position]); + position += 1; // Skip Host:Port Length + + byte[] bHostPort = new byte[hostPortLength]; + if (stampBinary.Length >= position + hostPortLength) + Buffer.BlockCopy(stampBinary, position, bHostPort, 0, hostPortLength); + + string hostPort = Encoding.UTF8.GetString(bHostPort); + Network.GetHostDetails(hostPort, defaultPort, out host, out port, out _, out bool _); + position += hostPortLength; // Skip Host:Port + + return position; + } + catch (Exception) + { + host = string.Empty; + port = -1; + return -1; + } + } + + private int LP(int position, byte[] stampBinary, out string outResult) + { + try + { + if (stampBinary.Length <= position) + { + outResult = string.Empty; + return -1; + } + + int inputLength = Convert.ToInt32(stampBinary[position]); + position += 1; // Skip Input Length + + byte[] bInput = new byte[inputLength]; + if (stampBinary.Length >= position + inputLength) + Buffer.BlockCopy(stampBinary, position, bInput, 0, inputLength); + + outResult = Encoding.UTF8.GetString(bInput); + position += inputLength; // Skip Input + + return position; + } + catch (Exception) + { + outResult = string.Empty; + return -1; + } + } + + private int LPPublicKey(int position, byte[] stampBinary, out string outResult) + { + try + { + if (stampBinary.Length <= position) + { + outResult = string.Empty; + return -1; + } + + int inputLength = Convert.ToInt32(stampBinary[position]); + position += 1; // Skip Input Length + + byte[] bInput = new byte[inputLength]; + if (stampBinary.Length >= position + inputLength) + Buffer.BlockCopy(stampBinary, position, bInput, 0, inputLength); + + outResult = Convert.ToHexString(bInput).ToLower(); + position += inputLength; // Skip Input + + return position; + } + catch (Exception) + { + outResult = string.Empty; + return -1; + } + } + + private int VLPHash(int position, byte[] stampBinary, out List hashi) + { + try + { + List hashi0 = new(); + while (position < stampBinary.Length - 1) + { + bool last = false; + + if (stampBinary.Length <= position) + { + hashi = new(hashi0); + return -1; + } + + int vlen = Convert.ToInt32(stampBinary[position]); + + if ((vlen & 0x80) == 0x80) vlen ^= 0x80; + else last = true; + + position += 1; // Skip Hash Length + + if (vlen > 0) + { + byte[] bHash = new byte[vlen]; + if (stampBinary.Length >= position + vlen) + Buffer.BlockCopy(stampBinary, position, bHash, 0, vlen); + + string hash = Convert.ToHexString(bHash).ToLower(); + hashi0.Add(hash); + } + + position += vlen; // Skip Hash + if (last) break; + } + + hashi = new(hashi0); + + return position; + } + catch (Exception) + { + hashi = new(); + return -1; + } + } + + private int VLPBootstrap(int position, byte[] stampBinary, out List bootstraps) + { + try + { + List bootstraps0 = new(); + while (position < stampBinary.Length - 1) + { + bool last = false; + + if (stampBinary.Length <= position) + { + bootstraps = new(bootstraps0); + return -1; + } + + int vlen = Convert.ToInt32(stampBinary[position]); + + if ((vlen & 0x80) == 0x80) vlen ^= 0x80; + else last = true; + + position += 1; // Skip Bootstrap Length + + if (vlen > 0) + { + byte[] bBootstrap = new byte[vlen]; + if (stampBinary.Length >= position + vlen) + Buffer.BlockCopy(stampBinary, position, bBootstrap, 0, vlen); + + string bootstrap = Encoding.UTF8.GetString(bBootstrap); + bootstraps0.Add(bootstrap); + } + + position += vlen; // Skip Bootstrap + if (last) break; + } + + bootstraps = new(bootstraps0); + + return position; + } + catch (Exception) + { + bootstraps = new(); + return -1; + } + } + + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsReader.cs b/MsmhTools/MsmhTools/DnsTool/DnsReader.cs new file mode 100644 index 0000000..e0b3ee2 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsReader.cs @@ -0,0 +1,199 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Text; + +namespace MsmhTools.DnsTool +{ + public class DnsReader + { + public string? IP { get; private set; } + public int Port { get; private set; } + public string Dns { get; private set; } + public string Host { get; private set; } = string.Empty; + public string Path { get; private set; } = string.Empty; + public string CompanyName { get; private set; } = string.Empty; + private string CompanyNameDataFileContent { get; set; } = string.Empty; + public DnsProtocol Protocol { get; private set; } + public string ProtocolName { get; private set; } + public bool IsDnsCryptStamp { get; private set; } = false; + public DnsCryptStamp StampProperties = new(); + + public class DnsCryptStamp + { + public bool IsDnsSec { get; set; } = false; + public bool IsNoLog { get; set; } = false; + public bool IsNoFilter { get; set; } = false; + } + + /// + /// Read any DNS + /// + /// DNS Address + /// File content to get company name. each line e.g. 8.8.8.8|Google Inc. + public DnsReader(string dns, string? companyNameDataFileContent) + { + Dns = dns; + + if (!string.IsNullOrEmpty(companyNameDataFileContent)) + CompanyNameDataFileContent = companyNameDataFileContent; + + Protocol = DnsProtocol.Unknown; + ProtocolName = DnsProtocolName.Unknown; + + if (dns.ToLower().StartsWith("sdns://")) + { + IsDnsCryptStamp = true; + + // Decode Stamp + DNSCryptStampReader stamp = new(dns); + if (stamp != null && stamp.IsDecryptionSuccess) + { + IP = stamp.IP; + Port = stamp.Port; + Host = stamp.Host; + Path = stamp.Path; + Protocol = ParseProtocol(stamp.Protocol); + ProtocolName = stamp.ProtocolName; + StampProperties.IsDnsSec = stamp.IsDnsSec; + StampProperties.IsNoLog = stamp.IsNoLog; + StampProperties.IsNoFilter = stamp.IsNoFilter; + + // Get Company Name (SDNS) + string stampHost = stamp.Host; + if (string.IsNullOrEmpty(stampHost)) stampHost = stamp.IP; + if (string.IsNullOrEmpty(stampHost)) stampHost = stamp.ProviderName; + if (!string.IsNullOrEmpty(CompanyNameDataFileContent)) + CompanyName = GetCompanyName(stampHost, CompanyNameDataFileContent); + } + } + else + { + if (dns.ToLower().StartsWith("https://")) + { + // DoH + SetIpPortHostPath(dns, 443); + + Protocol = DnsProtocol.DoH; + ProtocolName = DnsProtocolName.DoH; + } + else if (dns.ToLower().StartsWith("tls://")) + { + // TLS + SetIpPortHostPath(dns, 853); + + Protocol = DnsProtocol.DoT; + ProtocolName = DnsProtocolName.DoT; + } + else if (dns.ToLower().StartsWith("quic://")) + { + // DoQ + SetIpPortHostPath(dns, 853); + + Protocol = DnsProtocol.DoQ; + ProtocolName = DnsProtocolName.DoQ; + } + else + { + if (dns.Contains(':')) + { + string[] split = dns.Split(':'); + string ip = split[0]; + string port = split[1]; + if (Network.IsIPv4Valid(ip, out IPAddress _)) + { + if (!string.IsNullOrEmpty(port)) + { + bool isPortValid = int.TryParse(port, out int outPort); + if (isPortValid && outPort >= 1 && outPort <= 65535) + { + // Plain DNS + IP = ip; + if (!string.IsNullOrEmpty(CompanyNameDataFileContent)) + CompanyName = GetCompanyName(ip, CompanyNameDataFileContent); + Port = outPort; + Protocol = DnsProtocol.PlainDNS; + ProtocolName = DnsProtocolName.PlainDNS; + } + } + } + } + } + } + } + + private void SetIpPortHostPath(string dns, int defaultPort) + { + Network.GetUrlDetails(dns, defaultPort, out string host, out int port, out string path, out bool isIPv6); + Port = port; + Path = path; + bool isIPv4 = Network.IsIPv4Valid(host, out IPAddress? _); + if (isIPv6 || isIPv4) + { + IP = host; + } + else + { + Host = host; + IPAddress? ip = Network.HostToIP(host); + if (ip != null) + IP = ip.ToString(); + } + if (!string.IsNullOrEmpty(CompanyNameDataFileContent)) + CompanyName = GetCompanyName(host, CompanyNameDataFileContent); + } + + private static string GetCompanyName(string host, string fileContent) + { + return DnsTool.GetCompanyName.HostToCompanyOffline(host, fileContent); + } + + private static DnsProtocol ParseProtocol(DNSCryptStampReader.StampProtocol stampProtocol) + { + var protocol = stampProtocol switch + { + DNSCryptStampReader.StampProtocol.PlainDNS => DnsProtocol.PlainDNS, + DNSCryptStampReader.StampProtocol.DnsCrypt => DnsProtocol.DnsCrypt, + DNSCryptStampReader.StampProtocol.DoH => DnsProtocol.DoH, + DNSCryptStampReader.StampProtocol.DoT => DnsProtocol.DoT, + DNSCryptStampReader.StampProtocol.DoQ => DnsProtocol.DoQ, + DNSCryptStampReader.StampProtocol.ObliviousDohTarget => DnsProtocol.ObliviousDohTarget, + DNSCryptStampReader.StampProtocol.AnonymizedDNSCryptRelay => DnsProtocol.AnonymizedDNSCryptRelay, + DNSCryptStampReader.StampProtocol.ObliviousDohRelay => DnsProtocol.ObliviousDohRelay, + DNSCryptStampReader.StampProtocol.Unknown => DnsProtocol.Unknown, + _ => DnsProtocol.Unknown, + }; + return protocol; + } + + public enum DnsProtocol + { + PlainDNS, + DnsCrypt, + DoH, + DoT, + DoQ, + ObliviousDohTarget, + AnonymizedDNSCryptRelay, + ObliviousDohRelay, + Unknown + } + + private struct DnsProtocolName + { + public static string PlainDNS = "Plain DNS"; + public static string DnsCrypt = "DNSCrypt"; + public static string DoH = "DNS-Over-HTTPS"; + public static string DoT = "DNS-Over-TLS"; + public static string DoQ = "DNS-Over-Quic"; + public static string ObliviousDohTarget = "Oblivious DoH Target"; + public static string AnonymizedDNSCryptRelay = "Anonymized DNSCrypt Relay"; + public static string ObliviousDohRelay = "Oblivious DoH Relay"; + public static string Unknown = "Unknown"; + } + + + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsByteExtensions.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsByteExtensions.cs new file mode 100644 index 0000000..d9ca82a --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsByteExtensions.cs @@ -0,0 +1,221 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + internal static class DnsByteExtensions + { + public static short ReadInt16(byte a, byte b) + { + return (short)(a << 0 | b << 8); + } + + public static ushort ReadUInt16(byte a, byte b) + { + return (ushort)(a << 0 | b << 8); + } + + public static short ReadInt16(ReadOnlyMemory bytes, ref int offset) + { + var value = ReadInt16(bytes.Span[offset + 1], bytes.Span[offset + 0]); + offset += sizeof(short); + return value; + } + + public static ushort ReadUInt16(ReadOnlyMemory bytes, ref int offset) + { + var value = ReadUInt16(bytes.Span[offset + 1], bytes.Span[offset + 0]); + offset += sizeof(ushort); + return value; + } + + public static int ReadInt32(ReadOnlyMemory bytes, ref int offset) + { + var value = bytes.Span[offset + 3] << 0 | + bytes.Span[offset + 2] << 8 | + bytes.Span[offset + 1] << 16 | + bytes.Span[offset + 0] << 24; + offset += sizeof(int); + return value; + } + + public static uint ReadUInt32(ReadOnlyMemory bytes, ref int offset) + { + var value = bytes.Span[offset + 3] << 0 | + bytes.Span[offset + 2] << 8 | + bytes.Span[offset + 1] << 16 | + bytes.Span[offset + 0] << 24; + offset += sizeof(uint); + return (uint)value; + } + + public static string ToDebugString(ReadOnlyMemory bytes) + { + if (bytes.IsEmpty) + { + return ""; + } + + return $"new byte [] {{{string.Join(",", bytes.ToArray())}}}"; + } + + public static ReadOnlyMemory ReadBytes(ReadOnlyMemory bytes, int length, ref int offset) + { + var data = bytes.Slice(offset, length); + offset += length; + return data; + } + + public static string ReadStringSimple(ReadOnlyMemory bytes, ref int offset) + { + byte labelLength = bytes.Span[offset]; + offset += 1; +#if NETSTANDARD2_0 + var str = Encoding.ASCII.GetString(bytes.Slice(offset, labelLength).ToArray()); +#else + var str = Encoding.ASCII.GetString(bytes.Slice(offset, labelLength).Span); +#endif + offset += labelLength; + return str; + } + + public static string[] ReadString(ReadOnlyMemory bytes, ref int offset, bool compressionPermitted = true) + { + // Assume most labels consist of 3 parts + var parts = new List(3); + + int? preCompressionOffset = null; + while (offset < bytes.Length) + { + if (bytes.Span[offset] == 0) + { + offset++; + break; + } + + // Pointers are always 192 or more, because the first two bits are 1s + if (bytes.Span[offset] >= 192 && compressionPermitted) + { + if (!preCompressionOffset.HasValue) + { + preCompressionOffset = offset + 2; + } + + // Read the 14 bit pointer as our new offset + offset = ReadUInt16(bytes.Span[offset + 1], (byte)(bytes.Span[offset] & (1 << 6) - 1)); + } + + parts.Add(ReadStringSimple(bytes, ref offset)); + } + + if (preCompressionOffset.HasValue) + { + offset = preCompressionOffset.Value; + } + + return parts.ToArray(); + } + + public static ReadOnlyMemory AllocateAndWrite(IDnsByteArrayWriter writer) + { + var buffer = AllocatePinnedNetworkBuffer(); + var offset = 0; + writer.WriteBytes(buffer, ref offset); +#if NETSTANDARD2_0 + return buffer.AsMemory().Slice(0, offset); +#else + return buffer.Slice(0, offset); +#endif + } + +#if NETSTANDARD2_0 + public static ArraySegment Slice(this ArraySegment buffer, int start, int length) + { + return new ArraySegment(buffer.Array, start, length); + } + + public static ArraySegment Slice(this ArraySegment buffer, int start) + { + return Slice(buffer, start, buffer.Count - start); + } +#endif + + private const int NetworkBufferSize = 65527; + +#if NETSTANDARD2_0 || NETSTANDARD2_1 + public static ArraySegment AllocatePinnedNetworkBuffer() => new ArraySegment(new byte[NetworkBufferSize]); +#else + // Allocate a buffer which will be used for the incoming query, and re-used to send the answer. + // Also make it pinned, see https://enclave.io/high-performance-udp-sockets-net6/ + public static Memory AllocatePinnedNetworkBuffer() => GC.AllocateArray(NetworkBufferSize, true); +#endif + + public static TReader FromBytes(ReadOnlyMemory bytes) where TReader : IDnsByteArrayReader, new() + { + var offset = 0; + + var reader = new TReader(); + reader.ReadBytes(bytes, ref offset); + + if (offset != bytes.Length) + { + throw new InvalidOperationException($"Should have read {bytes.Length} bytes, only read {offset} bytes"); + } + return reader; + } + + public static void ToBytes(ReadOnlySpan strings, Memory buffer, ref int offset) + { + for (int i = 0; i < strings.Length; i++) + { + // First write the value 1 byte from the offset to leave room for the length byte +#if NETSTANDARD2_0 + var stringBytes = Encoding.ASCII.GetBytes(strings[i]); + stringBytes.CopyTo(buffer.Slice(offset + 1, strings[i].Length)); + var length = stringBytes.Length; +#else + var length = Encoding.ASCII.GetBytes(strings[i], buffer.Slice(offset + 1, strings[i].Length).Span); +#endif + + // Then write the length before the value + buffer.Span[offset] = (byte)length; + + // Finally advance the offset past the length and value + offset += 1 + length; + } + + buffer.Span[offset++] = 0; + } + + public static void ToBytes(int value, Memory buffer, ref int offset) + { + buffer.Span[offset++] = (byte)(value >> 24); + buffer.Span[offset++] = (byte)(value >> 16); + buffer.Span[offset++] = (byte)(value >> 8); + buffer.Span[offset++] = (byte)(value >> 0); + } + + public static void ToBytes(uint value, Memory buffer, ref int offset) + { + buffer.Span[offset++] = (byte)(value >> 24); + buffer.Span[offset++] = (byte)(value >> 16); + buffer.Span[offset++] = (byte)(value >> 8); + buffer.Span[offset++] = (byte)(value >> 0); + } + + public static void ToBytes(short value, Memory buffer, ref int offset) + { + buffer.Span[offset++] = (byte)(value >> 8); + buffer.Span[offset++] = (byte)(value >> 0); + } + + public static void ToBytes(ushort value, Memory buffer, ref int offset) + { + buffer.Span[offset++] = (byte)(value >> 8); + buffer.Span[offset++] = (byte)(value >> 0); + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsDomainResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsDomainResource.cs new file mode 100644 index 0000000..0f0d813 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsDomainResource.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a DNS text resource containing a domain name. + /// + public sealed class DnsDomainResource : DnsStringResource + { + /// + protected override bool CanUseCompression => true; + + /// + /// Get the value of this entry as a domain name. + /// + public string Domain => string.Join(".", Entries); + + /// + public override string ToString() => Domain; + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsHeader.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsHeader.cs new file mode 100644 index 0000000..945277d --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsHeader.cs @@ -0,0 +1,230 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a DNS header, the first entry in a . + /// See for methods to create DNS headers for specific purposes. + /// + public sealed class DnsHeader : IEquatable, IDnsByteArrayReader, IDnsByteArrayWriter + { + /// + /// Gets or sets the unique ID of this DNS query. + /// + /// + /// A unique ID which allows the sender/receiver to + /// identify this DNS message (for example if the transport protocol is stateless). + /// + public ushort Id { get; set; } + + internal ushort Flags { get; set; } + + /// + /// The number of questions in this header. + /// + /// + /// A count of the number of questions asked of the DNS server. + /// + public short QuestionCount { get; set; } + + /// + /// The number of records in this header. + /// + /// + /// A count of the number of answers contained within this DNS message. + /// + public short AnswerRecordCount { get; set; } + + /// + /// The number of name server records in this header. + /// + /// + /// A count of the number of DNS name server records in this header. + /// + public short NameServerRecordCount { get; set; } + + /// + /// The number of additional records in this header. + /// + /// + /// A count of the number of additional records in this header. + /// + public short AdditionalRecordCount { get; set; } + + internal string[] Labels { get; set; } + + /// + /// The of this header. + /// + /// + /// If the type of query is , it means the query is for IP address records. + /// + public DnsQueryType QueryType { get; set; } + + /// + /// The of this header, normally (Internet). + /// + /// + /// The class of query, most likely to represent Internet DNS queries. + /// + public DnsQueryClass QueryClass { get; set; } + + /// + /// Determines whether this is a DNS query or answer. + /// + /// + /// For DNS queries this is false, for DNS responses this is true. + /// + public bool IsQueryResponse + { + get => (Flags & 0x8000) == 0x8000; + set => Flags = value ? (ushort)(Flags | 0x8000) : (ushort)(Flags & (~0x8000)); + } + + /// + /// Determines the operation code for this DNS header. + /// + /// + /// The DNS operation code for this DNS answer. For example . + /// + public DnsOperationCode OperationCode + { + get => (DnsOperationCode)((Flags & 0x7800) >> 11); + set => Flags = (ushort)((Flags & ~0x7800) | ((int)value << 11)); + } + + /// + /// Determines whether the answer was from an authoritative DNS server. + /// + /// + /// If true, this DNS answer is authoritative. + /// + public bool AuthoritativeAnswer + { + get => (Flags & 0x0400) == 0x0400; + set => Flags = value ? (ushort)(Flags | 0x0400) : (ushort)(Flags & (~0x0400)); + } + + /// + /// Determines whether this DNS answer was truncated due to size. + /// + public bool Truncation + { + get => (Flags & 0x0200) == 0x0200; + set => Flags = value ? (ushort)(Flags | 0x0200) : (ushort)(Flags & (~0x0200)); + } + + /// + /// Indicates whether recursion is desired on this DNS query. + /// If this is an answer, indicates whether the original query requested recursion. + /// + public bool RecursionDesired + { + get => (Flags & 0x0100) == 0x0100; + set => Flags = value ? (ushort)(Flags | 0x0100) : (ushort)(Flags & (~0x0100)); + } + + /// + /// Indicates whether recursion is available. + /// + public bool RecursionAvailable + { + get => (Flags & 0x0080) == 0x0080; + set => Flags = value ? (ushort)(Flags | 0x0080) : (ushort)(Flags & (~0x0080)); + } + + /// + /// The for this result. + /// + public DnsResponseCode ResponseCode + { + get => (DnsResponseCode)(Flags & 0x000F); + set => Flags = (ushort)((Flags & ~0x000F) | (byte)value); + } + + /// + /// The DNS host to use, for example "example.com". + /// + public string Host + { + get => string.Join(".", Labels); + set => Labels = value.Split('.'); + } + + /// + public override string ToString() => $"{(IsQueryResponse ? "RES" : "QRY")}: {Id} Domain: {Host} Type: {QueryType} Class: {QueryClass}"; + + /// + public bool Equals(DnsHeader other) + { + return Id == other.Id && + Flags == other.Flags && + QuestionCount == other.QuestionCount && + AnswerRecordCount == other.AnswerRecordCount && + NameServerRecordCount == other.NameServerRecordCount && + AdditionalRecordCount == other.AdditionalRecordCount && + Host == other.Host && + QueryType == other.QueryType && + QueryClass == other.QueryClass; + } + + /// + public override int GetHashCode() + { + HashCode hash = new HashCode(); + hash.Add(Id); + hash.Add(Flags); + hash.Add(QuestionCount); + hash.Add(AnswerRecordCount); + hash.Add(NameServerRecordCount); + hash.Add(AdditionalRecordCount); + hash.Add(QueryType); + hash.Add(QueryClass); + hash.Add(Host); + return hash.ToHashCode(); + } + + /// + public void ReadBytes(ReadOnlyMemory bytes, ref int offset) + { + Id = DnsByteExtensions.ReadUInt16(bytes, ref offset); + Flags = DnsByteExtensions.ReadUInt16(bytes, ref offset); + QuestionCount = DnsByteExtensions.ReadInt16(bytes, ref offset); + AnswerRecordCount = DnsByteExtensions.ReadInt16(bytes, ref offset); + NameServerRecordCount = DnsByteExtensions.ReadInt16(bytes, ref offset); + AdditionalRecordCount = DnsByteExtensions.ReadInt16(bytes, ref offset); + Labels = DnsByteExtensions.ReadString(bytes, ref offset); + QueryType = (DnsQueryType)DnsByteExtensions.ReadUInt16(bytes, ref offset); + QueryClass = (DnsQueryClass)DnsByteExtensions.ReadUInt16(bytes, ref offset); + + if (!IsQueryResponse && (AnswerRecordCount > 0 || NameServerRecordCount > 0)) + { + throw new InvalidOperationException($"Header states that this message is a query, yet there are answer and nameserver records."); + } + } + + /// + public void WriteBytes(Memory bytes, ref int offset) + { + DnsByteExtensions.ToBytes(Id, bytes, ref offset); + DnsByteExtensions.ToBytes(Flags, bytes, ref offset); + DnsByteExtensions.ToBytes(QuestionCount, bytes, ref offset); + DnsByteExtensions.ToBytes(AnswerRecordCount, bytes, ref offset); + DnsByteExtensions.ToBytes(NameServerRecordCount, bytes, ref offset); + DnsByteExtensions.ToBytes(AdditionalRecordCount, bytes, ref offset); + DnsByteExtensions.ToBytes(Labels, bytes, ref offset); + DnsByteExtensions.ToBytes((ushort)QueryType, bytes, ref offset); + DnsByteExtensions.ToBytes((ushort)QueryClass, bytes, ref offset); + } + + /// + /// A generic bag of tags associated with this object. + /// Will not be serialised and/or passed over the wire. + /// + public IDictionary Tags { get; } = new Dictionary(); + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsIpAddressResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsIpAddressResource.cs new file mode 100644 index 0000000..b06e348 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsIpAddressResource.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a DNS resource record which contains an Internet Protocol address. + /// See and . + /// + public sealed class DnsIpAddressResource : IDnsResource, IEquatable + { + /// + /// The Internet Protocol address. + /// + /// + /// May be an IPv4 or IPv6 address, depending on the record type. + /// + public IPAddress IPAddress { get; set; } + + /// + public bool Equals(DnsIpAddressResource other) => IPAddress.Equals(other.IPAddress); + + /// + public override bool Equals(object obj) => obj is DnsIpAddressResource record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(IPAddress); + + /// + public void ReadBytes(ReadOnlyMemory bytes, ref int offset, int length) + { + var raw = DnsByteExtensions.ReadBytes(bytes, length, ref offset); + IPAddress = new IPAddress(raw.ToArray()); + } + + /// + public IEnumerable> WriteBytes() + { + yield return IPAddress.GetAddressBytes(); + } + + /// + public override string ToString() => IPAddress.ToString(); + + /// + public void WriteBytes(Memory bytes, ref int offset) + { + Span address = IPAddress.GetAddressBytes(); + + address.CopyTo(bytes.Slice(offset).Span); + offset += address.Length; + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMessage.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMessage.cs new file mode 100644 index 0000000..a6721f7 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMessage.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents an answer to a DNS query, generated by a DNS server. + /// + public sealed class DnsMessage : IEquatable, IDnsByteArrayReader, IDnsByteArrayWriter + { + /// + /// The section of this answer. + /// + /// Gets or sets the , which describes the original DNS query. + public DnsHeader Header { get; set; } = new DnsHeader(); + + /// + /// The list of DNS resources returned by the server. + /// + /// Gets or sets the list representing values returned by the DNS server. + public IList Answers { get; set; } = Array.Empty(); + + /// + /// The list of name server DNS resources returned by the server. + /// + /// Gets or sets the list representing values returned by the DNS server. + public IList Nameservers { get; set; } = Array.Empty(); + + /// + /// The list of additional DNS resources returned by the server. + /// + /// Gets or sets the list representing values returned by the DNS server. + public IList Additional { get; set; } = Array.Empty(); + + /// + public bool Equals(DnsMessage other) => Header.Equals(other.Header) && + Answers.SequenceEqual(other.Answers) && + Nameservers.SequenceEqual(other.Nameservers) && + Additional.SequenceEqual(other.Additional); + + /// + public override bool Equals(object obj) => obj is DnsMessage record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(Header, Answers, Nameservers, Additional); + + private IList ReadRecords(int count, ReadOnlyMemory bytes, ref int offset) + { + var records = new DnsResourceRecord[count]; + for (var i = 0; i < count; i++) + { + var record = new DnsResourceRecord(); + record.ReadBytes(bytes, ref offset); + records[i] = record; + } + + return records; + } + + private void EnsureCorrectCounts() + { + if (Header.AnswerRecordCount != Answers.Count) + { + throw new InvalidOperationException($"Header states there are {Header.AnswerRecordCount} answer records, there are {Answers.Count}"); + } + + if (Header.AdditionalRecordCount != Additional.Count) + { + throw new InvalidOperationException($"Header states there are {Header.AdditionalRecordCount} additional records, there are {Additional.Count}"); + } + + if (Header.NameServerRecordCount != Nameservers.Count) + { + throw new InvalidOperationException($"Header states there are {Header.NameServerRecordCount} nameserver records, there are {Nameservers.Count}"); + } + } + + /// + public void ReadBytes(ReadOnlyMemory bytes, ref int offset) + { + EnsureCorrectCounts(); + Header.ReadBytes(bytes, ref offset); + Answers = ReadRecords(Header.AnswerRecordCount, bytes, ref offset); + Nameservers = ReadRecords(Header.NameServerRecordCount, bytes, ref offset); + Additional = ReadRecords(Header.AdditionalRecordCount, bytes, ref offset); + } + + /// + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append($"{Header} Response: {Header.ResponseCode}"); + + if (Answers.Count > 0) + { + sb.Append($"{Environment.NewLine}Answers: {Answers.Count}{string.Concat(Answers.Select(x => $"{Environment.NewLine} * {x}"))}"); + } + + if (Additional.Count > 0) + { + sb.Append($"{Environment.NewLine}Additional: {Additional.Count}{string.Concat(Additional.Select(x => $"{Environment.NewLine} * {x}"))}"); + } + + return sb.ToString(); + } + + /// + public void WriteBytes(Memory bytes, ref int offset) + { + EnsureCorrectCounts(); + Header.WriteBytes(bytes, ref offset); + + foreach (var answer in Answers) + { + answer.WriteBytes(bytes, ref offset); + } + + foreach (var nameserver in Nameservers) + { + nameserver.WriteBytes(bytes, ref offset); + } + + foreach (var additional in Additional) + { + additional.WriteBytes(bytes, ref offset); + } + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMxResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMxResource.cs new file mode 100644 index 0000000..be8c47e --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsMxResource.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a mail server DNS record. See . + /// + public sealed class DnsMxResource : DnsStringResource, IEquatable + { + /// + /// The priority or preference field identifies which mailserver should be preferred. + /// + /// + /// The priority field identifies which mailserver should be preferred - if multiple + /// values are the same, mail would be expected to flow evenly to all hosts. + /// + public ushort Preference { get; set; } + + /// + /// The domain name of a mailserver. + /// + /// + /// The host name must map directly to one or more address records (A, or AAAA) in the DNS, and must not point to any CNAME records. + /// + public string Exchange => string.Join(".", Entries); + + /// + protected override bool CanUseCompression => true; + + /// + public bool Equals(DnsMxResource other) => Preference == other.Preference && Exchange == other.Exchange; + + /// + public override bool Equals(object obj) => obj is DnsMxResource record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(Preference, Exchange); + + /// + public override void ReadBytes(ReadOnlyMemory bytes, ref int offset, int length) + { + Preference = DnsByteExtensions.ReadUInt16(bytes, ref offset); + base.ReadBytes(bytes, ref offset, length - sizeof(ushort)); + } + + /// + public override string ToString() => Exchange; + + /// + public override void WriteBytes(Memory bytes, ref int offset) + { + DnsByteExtensions.ToBytes(Preference, bytes, ref offset); + base.WriteBytes(bytes, ref offset); + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOperationCode.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOperationCode.cs new file mode 100644 index 0000000..9689897 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOperationCode.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// DNS operation codes. See https://www.iana.org/assignments/dns-parameters/dns-parameters.xml#dns-parameters-5 + /// + public enum DnsOperationCode : byte + { + /// + /// Query + /// + QUERY = 0, + /// + /// IQuery (Inverse Query, OBSOLETE) + /// + IQUERY = 1, + /// + /// Status + /// + STATUS = 2, + /// + /// Notify + /// + NOTIFY = 4, + /// + /// Update + /// + UPDATE = 5, + /// + /// DNS Stateful Operations (DSO) + /// + DSO = 6, + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOptResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOptResource.cs new file mode 100644 index 0000000..e6813c5 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsOptResource.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Describes an EDNS0 psuedo-resource. + /// + public sealed class DnsOptResource : IDnsResource, IEquatable + { + /// + /// The raw bytes recieved for this DNS resource. + /// + /// + /// The raw set of bytes representing the value fo this DNS resource. + /// For string values, due to compression the whole packet may be needed. + /// + public ReadOnlyMemory Raw { get; set; } + + /// + public bool Equals(DnsOptResource other) => Raw.Span.SequenceEqual(other.Raw.Span); + + /// + public override bool Equals(object obj) => obj is DnsOptResource record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(Raw); + + /// + public void ReadBytes(ReadOnlyMemory bytes, ref int offset, int length) + { + Raw = DnsByteExtensions.ReadBytes(bytes, length, ref offset); + } + + /// + public void WriteBytes(Memory bytes, ref int offset) + { + // Payloadsize / flags is serialised at a higher level + Raw.CopyTo(bytes.Slice(offset)); + offset += Raw.Length; + } + + /// + public override string ToString() => $"Raw: {Raw.Length} bytes"; + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryClass.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryClass.cs new file mode 100644 index 0000000..240cc2e --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryClass.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// DNS class. See https://www.iana.org/assignments/dns-parameters/dns-parameters.xml#dns-parameters-2 + /// + public enum DnsQueryClass : ushort + { + /// + /// Internet (IN) + /// + IN = 1, + /// + /// Chaos (CH) + /// + CH = 3, + /// + /// Hesiod (HS) + /// + HS = 4, + /// + /// QCLASS NONE + /// + QCLASS_NONE = 254, + /// + /// QCLASS * (ANY) + /// + QCLASS_ANY = 255, + /// + /// Standards Action + /// + StandardsAction = 65535 + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryFactory.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryFactory.cs new file mode 100644 index 0000000..06ddac2 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryFactory.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Provides extension methods around . + /// + public static class DnsQueryFactory + { + /// + /// Generate a unique ID to identify this DNS message. + /// + /// A random value. + public static ushort GenerateId() + { + var offset = 0; + return DnsByteExtensions.ReadUInt16(Guid.NewGuid().ToByteArray(), ref offset); + } + + /// + /// Create a DNS query using the specified host name and DNS query type. + /// + /// The DNS host to request in the query. + /// The type of DNS query to request. + /// The complete DNS query. + public static DnsMessage CreateQuery(string host, DnsQueryType type = DnsQueryType.A) + { + return new DnsMessage + { + Header = new DnsHeader + { + Id = GenerateId(), + Host = host, + QueryType = type, + QueryClass = DnsQueryClass.IN, + OperationCode = DnsOperationCode.QUERY, + QuestionCount = 1, + RecursionDesired = true + } + }; + } + + public static DnsHeader Clone(DnsHeader header) + { + return new DnsHeader + { + Id = header.Id, + Host = header.Host, + QueryType = header.QueryType, + QueryClass = header.QueryClass, + OperationCode = header.OperationCode, + QuestionCount = header.QuestionCount, + RecursionDesired = header.RecursionDesired, + AdditionalRecordCount = header.AdditionalRecordCount, + AnswerRecordCount = header.AnswerRecordCount, + AuthoritativeAnswer = header.AuthoritativeAnswer, + IsQueryResponse = header.IsQueryResponse, + NameServerRecordCount = header.NameServerRecordCount, + RecursionAvailable = header.RecursionAvailable, + ResponseCode = header.ResponseCode, + Truncation = header.Truncation + }; + } + + public static DnsMessage TruncateAnswer(DnsMessage query) + { + var header = Clone(query.Header); + + header.AnswerRecordCount = 0; + header.NameServerRecordCount = 0; + header.AdditionalRecordCount = 0; + header.IsQueryResponse = true; + header.OperationCode = DnsOperationCode.QUERY; + header.Truncation = true; + + return new DnsMessage { Header = header }; + } + + /// + /// Create a reverse DNS query which resolves an IP address to a host name. + /// + /// The IPv4 or IPv6 address to resolve. + /// The correctly formatted DNS query. + public static DnsMessage CreateReverseQuery(IPAddress ipAddress) + { + return CreateQuery(GetReverseLookupHostForIpAddress(ipAddress), DnsQueryType.PTR); + } + + private static string GetReverseLookupHostForIpAddress(IPAddress ipAddress) + { + if (ipAddress.AddressFamily == AddressFamily.InterNetworkV6) + { + return string.Join(".", string.Concat(ipAddress.GetAddressBytes().Select(x => x.ToString("x2"))).Reverse()) + ".ip6.arpa"; + } + else if (ipAddress.AddressFamily == AddressFamily.InterNetwork) + { + return string.Join(".", ipAddress.ToString().Split('.').Reverse()) + ".in-addr.arpa"; + } + else + { + throw new InvalidOperationException($"Invalid address type: {ipAddress.AddressFamily}"); + } + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryType.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryType.cs new file mode 100644 index 0000000..2881091 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsQueryType.cs @@ -0,0 +1,296 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// DNS resource record type. See https://www.iana.org/assignments/dns-parameters/dns-parameters.xml#dns-parameters-4 + /// + public enum DnsQueryType : ushort + { + /// + /// A host address + /// + A = 1, + /// + /// An authoritative name server + /// + NS = 2, + /// + /// A mail destination (OBSOLETE - use MX) + /// + MD = 3, + /// + /// A mail forwarder (OBSOLETE - use MX) + /// + MF = 4, + /// + /// The canonical name for an alias + /// + CNAME = 5, + /// + /// Marks the start of a zone of authority + /// + SOA = 6, + /// + /// A mailbox domain name (EXPERIMENTAL) + /// + MB = 7, + /// + /// A mail group member (EXPERIMENTAL) + /// + MG = 8, + /// + /// A mail rename domain name (EXPERIMENTAL) + /// + MR = 9, + /// + /// A null RR (EXPERIMENTAL) + /// + NULL = 10, + /// + /// A well known service description + /// + WKS = 11, + /// + /// A domain name pointer + /// + PTR = 12, + /// + /// Host information + /// + HINFO = 13, + /// + /// Mailbox or mail list information + /// + MINFO = 14, + /// + /// Mail exchange + /// + MX = 15, + /// + /// Text strings + /// + TEXT = 16, + /// + /// For Responsible Person + /// + RP = 17, + /// + /// For AFS Data Base location + /// + AFSDB = 18, + /// + /// For X.25 PSDN address + /// + X25 = 19, + /// + /// For ISDN address + /// + ISDN = 20, + /// + /// For Route Through + /// + RT = 21, + /// + /// For NSAP address, NSAP style A record + /// + NSAP = 22, + /// + /// For domain name pointer, NSAP style + /// + NSAPPTR = 23, + /// + /// For security signature + /// + SIG = 24, + /// + /// For security key + /// + KEY = 25, + /// + /// X.400 mail mapping information + /// + PX = 26, + /// + /// Geographical Position + /// + GPOS = 27, + /// + /// IP6 Address + /// + AAAA = 28, + /// + /// Location Information + /// + LOC = 29, + /// + /// Next Domain (OBSOLETE) + /// + NXT = 30, + /// + /// Endpoint Identifier + /// + EID = 31, + /// + /// Nimrod Locator + /// + NIMLOC = 32, + /// + /// Server Selection + /// + SRV = 33, + /// + /// ATM Address + /// + ATMA = 34, + /// + /// Naming Authority Pointer + /// + NAPTR = 35, + /// + /// Key Exchanger + /// + KX = 36, + CERT = 37, + /// + /// A6 (OBSOLETE - use AAAA) + /// + A6 = 38, + DNAME = 39, + SINK = 40, + OPT = 41, + APL = 42, + /// + /// Delegation Signer + /// + DS = 43, + /// + /// SSH Key Fingerprint + /// + SSHFP = 44, + IPSECKEY = 45, + RRSIG = 46, + NSEC = 47, + DNSKEY = 48, + DHCID = 49, + NSEC3 = 50, + NSEC3PARAM = 51, + TLSA = 52, + /// + /// S/MIME cert association + /// + SMIMEA = 53, + /// + /// Host Identity Protocol + /// + HIP = 55, + NINFO = 56, + RKEY = 57, + /// + /// Trust Anchor LINK + /// + TALINK = 58, + /// + /// Child DS + /// + CDS = 59, + /// + /// DNSKEY(s) the Child wants reflected in DS + /// + CDNSKEY = 60, + /// + /// OpenPGP Key + /// + OPENPGPKEY = 61, + /// + /// Child-To-Parent Synchronization + /// + CSYNC = 62, + /// + /// Message digest for DNS zone + /// + ZONEMD = 63, + /// + /// Service Binding + /// + SVCB = 64, + /// + /// HTTPS Binding + /// + HTTPS = 65, + SPF = 99, + UINFO = 100, + UID = 101, + GID = 102, + UNSPEC = 103, + NID = 104, + L32 = 105, + L64 = 106, + LP = 107, + /// + /// An EUI-48 address + /// + EUI48 = 108, + /// + /// An EUI-64 address + /// + EUI64 = 109, + /// + /// Transaction Key + /// + TKEY = 249, + /// + /// Transaction Signature + /// + TSIG = 250, + /// + /// Incremental transfer + /// + IXFR = 251, + /// + /// Transfer of an entire zone + /// + AXFR = 252, + /// + /// Mailbox-related RRs (MB, MG or MR) + /// + MAILB = 253, + /// + /// Mail agent RRs (OBSOLETE - see MX) + /// + MAILA = 254, + /// + /// A request for some or all records the server has available + /// + ANY = 255, + URI = 256, + /// + /// Certification Authority Restriction + /// + CAA = 257, + /// + /// Application Visibility and Control + /// + AVC = 258, + /// + /// Digital Object Architecture + /// + DOA = 259, + /// + /// Automatic Multicast Tunneling Relay + /// + AMTRELAY = 260, + /// + /// DNSSEC Trust Authorities + /// + TA = 32768, + /// + /// DNSSEC Lookaside Validation (OBSOLETE) + /// + DLV = 32769 + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResourceRecord.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResourceRecord.cs new file mode 100644 index 0000000..d0152c7 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResourceRecord.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents metadata around a DNS resource record returned by a DNS server. + /// + public sealed class DnsResourceRecord : IEquatable, IDnsByteArrayReader, IDnsByteArrayWriter + { + /// + /// The type of DNS query. + /// + public DnsQueryType Type { get; set; } + /// + /// The class of DNS query. + /// + public DnsQueryClass Class { get; set; } + /// + /// The time to live entry for this record, in seconds. + /// + public uint TimeToLive { get; set; } + + /// + /// The host name associated with this record. + /// + public string Host + { + get => string.Join(".", Name); + set => Name = value.Split('.'); + } + + private string[] Name { get; set; } + + /// + /// The value of this DNS record, which should be + /// cast to the appropriate resource record type + /// class depending on the . + /// + public IDnsResource Resource { get; set; } + + private IDnsResource CreateResourceRecord(DnsQueryType recordType) + { + return recordType switch + { + DnsQueryType.A => new DnsIpAddressResource(), + DnsQueryType.AAAA => new DnsIpAddressResource(), + DnsQueryType.TEXT => new DnsTextResource(), + DnsQueryType.CNAME => new DnsDomainResource(), + DnsQueryType.NS => new DnsDomainResource(), + DnsQueryType.PTR => new DnsDomainResource(), + DnsQueryType.SPF => new DnsTextResource(), + DnsQueryType.SOA => new DnsSoaResource(), + DnsQueryType.MX => new DnsMxResource(), + DnsQueryType.OPT => new DnsOptResource(), + _ => new DnsUnknownResource(), + }; + } + + /// + public override string ToString() => $"Name: {Host} Type: {Type} Class: {Class} TTL: {TimeToLive} Resource: {Resource}"; + + /// + public bool Equals(DnsResourceRecord other) => Host == other.Host && + Type == other.Type && + Class == other.Class && + TimeToLive == other.TimeToLive && + Resource.Equals(other.Resource); + + /// + public override bool Equals(object obj) => obj is DnsResourceRecord record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(Name, Type, Class, TimeToLive, Host, Resource); + + /// + public void ReadBytes(ReadOnlyMemory bytes, ref int offset) + { + Name = DnsByteExtensions.ReadString(bytes, ref offset); + Type = (DnsQueryType)DnsByteExtensions.ReadUInt16(bytes, ref offset); + Class = (DnsQueryClass)DnsByteExtensions.ReadUInt16(bytes, ref offset); + TimeToLive = DnsByteExtensions.ReadUInt32(bytes, ref offset); + Resource = CreateResourceRecord(Type); + var dataLength = DnsByteExtensions.ReadUInt16(bytes, ref offset); + FromBytesKnownLength(Resource, bytes, ref offset, dataLength); + } + + private static void FromBytesKnownLength(IDnsResource resource, ReadOnlyMemory bytes, ref int offset, int length) + { + var expectedOffset = offset + length; + resource.ReadBytes(bytes, ref offset, length); + if (offset != expectedOffset) + { + throw new InvalidOperationException($"{resource.GetType().Name}.{nameof(IDnsResource.ReadBytes)} did not read to offset {expectedOffset} (read to {offset})"); + } + } + + /// + public void WriteBytes(Memory bytes, ref int offset) + { + DnsByteExtensions.ToBytes(Name, bytes, ref offset); + DnsByteExtensions.ToBytes((ushort)Type, bytes, ref offset); + DnsByteExtensions.ToBytes((ushort)Class, bytes, ref offset); + DnsByteExtensions.ToBytes(TimeToLive, bytes, ref offset); + + // First, write the resource, but save two bytes for the size (and do not advance the offset) + var resourceSize = 0; + Resource.WriteBytes(bytes.Slice(offset + sizeof(ushort)), ref resourceSize); + + // Write the size of the resource in the two bytes preceeding (current offset) + DnsByteExtensions.ToBytes((ushort)resourceSize, bytes, ref offset); + + // Advance the offset with the size of the resource + offset += resourceSize; + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResponseCode.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResponseCode.cs new file mode 100644 index 0000000..87798e6 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsResponseCode.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// DNS response codes. See https://www.iana.org/assignments/dns-parameters/dns-parameters.xml#dns-parameters-6 + /// + public enum DnsResponseCode : byte + { + /// + /// No Error + /// + NoError = 0, + /// + /// Format Error + /// + FormErr = 1, + /// + /// Server Failure + /// + ServFail = 2, + /// + /// Non-Existent Domain + /// + NXDomain = 3, + /// + /// Not Implemented + /// + NotImp = 4, + /// + /// Query Refused + /// + Refused = 5, + /// + /// Name Exists when it should not + /// + YXDomain = 6, + /// + /// RR Set Exists when it should not + /// + YXRRSet = 7, + /// + /// RR Set that should exist does not + /// + NXRRSet = 8, + /// + /// Server Not Authoritative for zone or Not Authorized + /// + NotAuth = 9, + /// + /// Name not contained in zone + /// + NotZone = 10, + /// + /// DSO-TYPE Not Implemented + /// + DSOTYPENI = 11, + /// + /// BADVERS or TSIG Signature Failure + /// + BADVERS = 16, + /// + /// Key not recognized + /// + BADKEY = 17, + /// + /// Signature out of time window + /// + BADTIME = 18, + /// + /// Bad TKEY Mode + /// + BADMODE = 19, + /// + /// Duplicate key name + /// + BADNAME = 20, + /// + /// Algorithm not supported + /// + BADALG = 21, + /// + /// Bad Truncation + /// + BADTRUNC = 22, + /// + /// Bad/missing Server Cookie + /// + BADCOOKIE = 23 + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsSoaResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsSoaResource.cs new file mode 100644 index 0000000..882df69 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsSoaResource.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// A Start of Authority record (abbreviated as SOA record) is a type of + /// resource record in the Domain Name System (DNS) containing administrative + /// information about the zone, especially regarding zone transfers. + /// The SOA record format is specified in RFC 1035. + /// + public sealed class DnsSoaResource : IDnsResource, IEquatable + { + /// + /// Primary master name server for this zone + /// + public string MName { get; set; } + /// + /// Email address of the administrator responsible for this zone. + /// (As usual, the email address is encoded as a name. The part of the + /// email address before the @ becomes the first label of the name; the + /// domain name after the @ becomes the rest of the name. In zone-file + /// format, dots in labels are escaped with backslashes; thus the email + /// address john.doe@example.com would be represented in a zone file + /// as john\.doe.example.com.) + /// + public string RName { get; set; } + /// + /// Serial number for this zone. If a secondary name server slaved to + /// this one observes an increase in this number, the slave will assume + /// that the zone has been updated and initiate a zone transfer. + /// + public uint Serial { get; set; } + /// + /// Number of seconds after which secondary name servers should query + /// the master for the SOA record, to detect zone changes. Recommendation + /// for small and stable zones:[4] 86400 seconds (24 hours). + /// + public TimeSpan Refresh { get; set; } + /// + /// Number of seconds after which secondary name servers should retry to + /// request the serial number from the master if the master does not respond. + /// It must be less than Refresh. Recommendation for small and stable + /// zones: 7200 seconds (2 hours). + /// + public TimeSpan Retry { get; set; } + /// + /// Number of seconds after which secondary name servers should stop answering + /// request for this zone if the master does not respond. This value must be + /// bigger than the sum of Refresh and Retry. Recommendation for small and + /// stable zones: 3600000 seconds (1000 hours). + /// + public TimeSpan Expire { get; set; } + /// + /// Time to live for purposes of negative caching. Recommendation for + /// small and stable zones: 3600 seconds (1 hour). Originally this + /// field had the meaning of a minimum TTL value for resource records + /// in this zone; it was changed to its current meaning by RFC 2308. + /// + public TimeSpan Minimum { get; set; } + + /// + public bool Equals(DnsSoaResource other) => MName == other.MName && RName == other.RName && Serial == other.Serial && Refresh == other.Refresh && Retry == other.Retry && Expire == other.Expire && Minimum == other.Minimum; + + /// + public override bool Equals(object obj) => obj is DnsSoaResource record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(MName, RName, Serial, Refresh, Retry, Expire, Minimum); + + /// + public void ReadBytes(ReadOnlyMemory bytes, ref int offset, int length) + { + MName = string.Join(".", DnsByteExtensions.ReadString(bytes, ref offset)); + RName = string.Join(".", DnsByteExtensions.ReadString(bytes, ref offset)); + Serial = DnsByteExtensions.ReadUInt32(bytes, ref offset); + Refresh = TimeSpan.FromSeconds(DnsByteExtensions.ReadInt32(bytes, ref offset)); + Retry = TimeSpan.FromSeconds(DnsByteExtensions.ReadInt32(bytes, ref offset)); + Expire = TimeSpan.FromSeconds(DnsByteExtensions.ReadInt32(bytes, ref offset)); + Minimum = TimeSpan.FromSeconds(DnsByteExtensions.ReadUInt32(bytes, ref offset)); + } + + /// + public override string ToString() => MName; + + /// + public void WriteBytes(Memory bytes, ref int offset) + { + DnsByteExtensions.ToBytes(MName.Split('.'), bytes, ref offset); + DnsByteExtensions.ToBytes(RName.Split('.'), bytes, ref offset); + DnsByteExtensions.ToBytes(Serial, bytes, ref offset); + DnsByteExtensions.ToBytes((int)Refresh.TotalSeconds, bytes, ref offset); + DnsByteExtensions.ToBytes((int)Retry.TotalSeconds, bytes, ref offset); + DnsByteExtensions.ToBytes((int)Expire.TotalSeconds, bytes, ref offset); + DnsByteExtensions.ToBytes((uint)Minimum.TotalSeconds, bytes, ref offset); + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsStringResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsStringResource.cs new file mode 100644 index 0000000..08cefdc --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsStringResource.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a DNS resource containing a string. + /// + public abstract class DnsStringResource : IDnsResource, IEquatable + { + /// + /// The text entry contained within this resource. + /// + /// + /// The text values of this resource as an array of strings. + /// + public string[] Entries { get; set; } = Array.Empty(); + + /// + public bool Equals(DnsStringResource other) => Entries.SequenceEqual(other.Entries); + + /// + public override bool Equals(object obj) => obj is DnsStringResource record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(Entries); + + /// + /// Describes whether this string resource can use string compression. + /// + protected abstract bool CanUseCompression { get; } + + /// + public virtual void ReadBytes(ReadOnlyMemory bytes, ref int offset, int length) + { + // Provide the ReadString method with a sliced buffer, which ends when this resource ends + // It must start where the packet starts, since there are often pointers back to the beginning + Entries = DnsByteExtensions.ReadString(bytes.Slice(0, offset + length), ref offset, CanUseCompression); + } + + /// + public virtual void WriteBytes(Memory bytes, ref int offset) + { + DnsByteExtensions.ToBytes(Entries, bytes, ref offset); + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsTextResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsTextResource.cs new file mode 100644 index 0000000..4b60b2c --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsTextResource.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a DNS text resource containing a string. + /// + public sealed class DnsTextResource : DnsStringResource + { + /// + protected override bool CanUseCompression => false; + + /// + public override string ToString() => '"' + string.Join("\", \"", Entries) + '"'; + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsUnknownResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsUnknownResource.cs new file mode 100644 index 0000000..7407f44 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/DnsUnknownResource.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a DNS resource that this library cannot yet understand. + /// + public sealed class DnsUnknownResource : IDnsResource, IEquatable + { + /// + /// The raw bytes recieved for this DNS resource. + /// + /// + /// The raw set of bytes representing the value fo this DNS resource. + /// For string values, due to compression the whole packet may be needed. + /// + public ReadOnlyMemory Raw { get; set; } + + /// + public bool Equals(DnsUnknownResource other) => Raw.Span.SequenceEqual(other.Raw.Span); + + /// + public override bool Equals(object obj) => obj is DnsUnknownResource record ? Equals(record) : base.Equals(obj); + + /// + public override int GetHashCode() => HashCode.Combine(Raw); + + /// + public void ReadBytes(ReadOnlyMemory bytes, ref int offset, int length) + { + Raw = DnsByteExtensions.ReadBytes(bytes, length, ref offset); + } + + /// + public override string ToString() => $"Raw {Raw.Length} bytes"; + + /// + public void WriteBytes(Memory bytes, ref int offset) + { + Raw.CopyTo(bytes.Slice(offset)); + offset += Raw.Length; + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayReader.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayReader.cs new file mode 100644 index 0000000..e53f013 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayReader.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a class which can read from the specified byte array. + /// + public interface IDnsByteArrayReader + { + /// + /// Read from the specified byte array, starting at the specified offset. + /// + /// The byte array to read from. + /// The offset to start at. + void ReadBytes(ReadOnlyMemory bytes, ref int offset); + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayWriter.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayWriter.cs new file mode 100644 index 0000000..7d3c23f --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsByteArrayWriter.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a class which can write its contents to an enumerable of bytes. + /// + public interface IDnsByteArrayWriter + { + /// + /// Write to the the specified byte array. + /// + /// The byte array to read from. + /// The offset to start at. + void WriteBytes(Memory bytes, ref int offset); + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsResource.cs b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsResource.cs new file mode 100644 index 0000000..cbf11e7 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/DnsWireformatTools/IDnsResource.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool.DnsWireformatTools +{ + /// + /// Represents a type of DNS resource. + /// + public interface IDnsResource : IDnsByteArrayWriter + { + /// + /// Read from the specified byte array, starting at the specified offset. + /// + /// The byte array to read from. + /// The offset to start at. + /// The maximum number of bytes to read. + void ReadBytes(ReadOnlyMemory bytes, ref int offset, int length); + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/GetCompanyName.cs b/MsmhTools/MsmhTools/DnsTool/GetCompanyName.cs new file mode 100644 index 0000000..a04c910 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/GetCompanyName.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.DnsTool +{ + public static class GetCompanyName + { + public static string HostToCompanyOffline(string host, string fileContent) + { + host = host.Trim(); + string company = "Couldn't retrieve information."; + if (!string.IsNullOrWhiteSpace(host)) + { + if (!string.IsNullOrWhiteSpace(fileContent)) + { + List split = fileContent.SplitToLines(); + for (int n = 0; n < split.Count; n++) + { + string hostToCom = split[n]; + if (hostToCom.Contains(host)) + { + string com = hostToCom.Split('|')[1]; + if (!string.IsNullOrWhiteSpace(com)) + { + company = com; + break; + } + } + } + } + } + return company.Trim(); + } + + public static string UrlToCompanyOffline(string url, string fileContent) + { + Network.GetUrlDetails(url, 53, out string host, out int _, out string _, out bool _); + return HostToCompanyOffline(host, fileContent); + } + + public static string StampToCompanyOffline(string stampUrl, string fileContent) + { + stampUrl = stampUrl.Trim(); + string company = "Couldn't retrieve information."; + // Can't always return Address + try + { + // Decode Stamp + DNSCryptStampReader stamp = new(stampUrl); + + if (!string.IsNullOrEmpty(stamp.Host)) + company = HostToCompanyOffline(stamp.Host, fileContent); + else if (!string.IsNullOrEmpty(stamp.IP)) + company = HostToCompanyOffline(stamp.IP, fileContent); + else + company = HostToCompanyOffline(stampUrl, fileContent); + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + + return company; + } + } +} diff --git a/MsmhTools/MsmhTools/DnsTool/GetIP.cs b/MsmhTools/MsmhTools/DnsTool/GetIP.cs new file mode 100644 index 0000000..119cd94 --- /dev/null +++ b/MsmhTools/MsmhTools/DnsTool/GetIP.cs @@ -0,0 +1,602 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Net.Http.Headers; +using System.Net.Sockets; +using System.Text; +using System.Text.Json; +using System.Threading.Tasks; +using MsmhTools.DnsTool.DnsWireformatTools; + +namespace MsmhTools.DnsTool +{ + public static class GetIP + { + //================================================= Get From System + + /// + /// Get First IP in Answer Section + /// + /// Host + /// Look for IPv6 + /// Returns string.Empty if fail + public static string GetIpFromSystem(string host, bool getIPv6 = false) + { + string result = string.Empty; + + try + { + //IPAddress[] ipAddresses = Dns.GetHostEntry(host).AddressList; + IPAddress[] ipAddresses = Dns.GetHostAddresses(host); + + if (ipAddresses == null || ipAddresses.Length == 0) + return string.Empty; + + if (!getIPv6) + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetwork) + { + result = ipAddresses[n].ToString(); + break; + } + } + } + else + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetworkV6) + { + result = ipAddresses[n].ToString(); + break; + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + return result; + } + + //================================================= Get From DoH: Try Wire Format First, Then Try Json Format + + /// + /// Get First IP in Answer Section (Use Wire Then try Json) + /// + /// Host + /// DoH Server + /// Timeout (Sec) + /// Use Proxy to Get IP + /// Returns string.Empty if fail + public static async Task GetIpFromDoH(string host, string doh, int timeoutSec, string? proxyScheme = null) + { + string ip = await GetIpFromDoHUsingWireFormat(host, doh, timeoutSec, proxyScheme); + if (string.IsNullOrEmpty(ip)) + ip = await GetIpFromDohUsingJsonFormat(host, doh, timeoutSec, proxyScheme); + return ip; + } + + //================================================= Get From DoH Using Wire Format + + /// + /// Get First IP in Answer Section (Using Wire Format) + /// + /// Host + /// DoH Server + /// Timeout (Sec) + /// Use Proxy to Get IP + /// Returns string.Empty if fail + public static async Task GetIpFromDoHUsingWireFormat(string host, string doh, int timeoutSec, string? proxyScheme = null) + { + List ips = await GetIpsFromDoHUsingWireFormat(host, doh, timeoutSec, proxyScheme); + if (ips.Any()) return ips[0]; + return string.Empty; + } + + /// + /// Get A List of IPs (Using Wire Format) + /// + /// Host + /// DoH Server + /// Timeout (Sec) + /// Use Proxy to Get IPs + /// Returns an Empty List if fail + public static async Task> GetIpsFromDoHUsingWireFormat(string host, string doh, int timeoutSec, string? proxyScheme = null) + { + if (string.IsNullOrEmpty(proxyScheme)) + return await GetIpsFromDohUsingWireFormatNoProxy(host, doh, timeoutSec); + else + return await GetIpsFromDohUsingWireFormatProxy(host, doh, timeoutSec, proxyScheme); + } + + private static async Task> GetIpsFromDohUsingWireFormatNoProxy(string host, string doh, int timeoutSec) + { + List ips = new(); + + try + { + DnsMessage dnsMessage = DnsQueryFactory.CreateQuery(host); + var queryBuffer = DnsByteExtensions.AllocatePinnedNetworkBuffer(); + int queryBufferLength = 0; + dnsMessage.WriteBytes(queryBuffer, ref queryBufferLength); + + Uri uri = new(doh); + + using HttpClient httpClient = new(); + httpClient.Timeout = new TimeSpan(0, 0, timeoutSec); + + HttpContent content = new ReadOnlyMemoryContent(queryBuffer.Slice(0, queryBufferLength)); + content.Headers.ContentType = new MediaTypeHeaderValue("application/dns-message"); + + HttpRequestMessage message = new(HttpMethod.Post, "/dns-query"); + message.RequestUri = uri; + message.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/dns-message")); + message.Content = content; + + using HttpResponseMessage r = await httpClient.SendAsync(message); + + if (r.IsSuccessStatusCode) + { + byte[] buffer = await r.Content.ReadAsByteArrayAsync(); + + DnsMessage answer = DnsByteExtensions.FromBytes(buffer); + object? obj = new(); + object? toString = obj.ToString(); + if (toString != null) + answer.Header.Tags.Add("Resolver", toString); + + for (int n = 0; n < answer.Answers.Count; n++) + { + DnsResourceRecord drr = answer.Answers[n]; + string? ip = drr.Resource.ToString(); + if (!string.IsNullOrEmpty(ip) && IPAddress.TryParse(ip, out IPAddress _)) + ips.Add(ip); + } + } + } + catch (Exception) + { + // do nothing + } + + return ips; + } + + private static async Task> GetIpsFromDohUsingWireFormatProxy(string host, string doh, int timeoutSec, string? proxyScheme = null) + { + List ips = new(); + + try + { + DnsMessage dnsMessage = DnsQueryFactory.CreateQuery(host); + var queryBuffer = DnsByteExtensions.AllocatePinnedNetworkBuffer(); + int queryBufferLength = 0; + dnsMessage.WriteBytes(queryBuffer, ref queryBufferLength); + + Uri uri = new(doh); + + using SocketsHttpHandler socketsHttpHandler = new(); + socketsHttpHandler.Proxy = new WebProxy(proxyScheme, true); + + using HttpClient httpClient = new(socketsHttpHandler); + httpClient.Timeout = new TimeSpan(0, 0, timeoutSec); + + HttpContent content = new ReadOnlyMemoryContent(queryBuffer.Slice(0, queryBufferLength)); + content.Headers.ContentType = new MediaTypeHeaderValue("application/dns-message"); + + HttpRequestMessage message = new(HttpMethod.Post, "/dns-query"); + message.RequestUri = uri; + message.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/dns-message")); + message.Content = content; + + using HttpResponseMessage r = await httpClient.SendAsync(message); + + if (r.IsSuccessStatusCode) + { + byte[] buffer = await r.Content.ReadAsByteArrayAsync(); + + DnsMessage answer = DnsByteExtensions.FromBytes(buffer); + object? obj = new(); + object? toString = obj.ToString(); + if (toString != null) + answer.Header.Tags.Add("Resolver", toString); + + for (int n = 0; n < answer.Answers.Count; n++) + { + DnsResourceRecord drr = answer.Answers[n]; + string? ip = drr.Resource.ToString(); + if (!string.IsNullOrEmpty(ip) && IPAddress.TryParse(ip, out IPAddress _)) + ips.Add(ip); + } + } + } + catch (Exception) + { + // do nothing + } + + return ips; + } + + //================================================= Get From DoH Using JSON Format + + /// + /// Convert Host to IPv4 Using JSON Format + /// + /// Host + /// A List of DoH Addresses + /// Timeout (Sec) + /// Use Proxy to Get IP + /// Returns string.Empty if fail + public static async Task GetIpFromDohUsingJsonFormat(string host, List dohs, int timeoutSec, string? proxyScheme = null) + { + for (int n = 0; n < dohs.Count; n++) + { + string doh = dohs[n]; + string ip = await GetIpFromDohUsingJsonFormat(host, doh, timeoutSec, proxyScheme); + if (!string.IsNullOrEmpty(ip)) return ip; + } + return string.Empty; + } + + /// + /// Convert Host to IPv4 Using JSON Format + /// + /// Host + /// DoH Address + /// Timeout (Sec) + /// Use Proxy to Get IP + /// Returns string.Empty if fail + public static async Task GetIpFromDohUsingJsonFormat(string host, string doh, int timeoutSec, string? proxyScheme = null) + { + string apiPath1 = "/dns-query"; + string apiPath2 = "/resolve"; + + doh = doh.Trim(); + if (doh.EndsWith(apiPath1)) + doh = doh.Replace(apiPath1, string.Empty); + else if (doh.EndsWith(apiPath2)) + doh = doh.Replace(apiPath2, string.Empty); + + string jsonString = await GetIpFromDohUsingJsonFormatInternal(host, doh, timeoutSec, apiPath1, proxyScheme); + if (string.IsNullOrEmpty(jsonString)) + { + jsonString = await GetIpFromDohUsingJsonFormatInternal(host, doh, timeoutSec, apiPath2, proxyScheme); + } + + return GetIpFromJson(jsonString); + } + + private static async Task GetIpFromDohUsingJsonFormatInternal(string host, string dohWithoutPath, int timeoutSec, string apiPath, string? proxyScheme = null) + { + if (string.IsNullOrEmpty(proxyScheme)) + return await GetIpFromDohUsingJsonFormatInternalNoProxy(host, dohWithoutPath, timeoutSec, apiPath); + else + return await GetIpFromDohUsingJsonFormatInternalProxy(host, dohWithoutPath, timeoutSec, apiPath, proxyScheme); + } + + private static async Task GetIpFromDohUsingJsonFormatInternalNoProxy(string host, string dohWithoutPath, int timeoutSec, string apiPath) + { + try + { + host = Uri.EscapeDataString(host); + string path = $"{apiPath}?name={host}&type=A"; + Uri uri = new(dohWithoutPath + path); + + HttpClient httpClient = new(); + httpClient.Timeout = new TimeSpan(0, 0, timeoutSec); + + HttpRequestMessage message = new(); + message.Method = HttpMethod.Get; + message.RequestUri = uri; + message.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/dns-json")); + + using HttpResponseMessage r = await httpClient.SendAsync(message); + + if (r.IsSuccessStatusCode) + { + string contents = await r.Content.ReadAsStringAsync(); + httpClient.Dispose(); + return contents; + } + httpClient.Dispose(); + return string.Empty; + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return string.Empty; + } + } + + private static async Task GetIpFromDohUsingJsonFormatInternalProxy(string host, string dohWithoutPath, int timeoutSec, string apiPath, string? proxyScheme = null) + { + try + { + host = Uri.EscapeDataString(host); + string path = $"{apiPath}?name={host}&type=A"; + Uri uri = new(dohWithoutPath + path); + + using SocketsHttpHandler socketsHttpHandler = new(); + socketsHttpHandler.Proxy = new WebProxy(proxyScheme, true); + + using HttpClient httpClient = new(socketsHttpHandler); + httpClient.Timeout = new TimeSpan(0, 0, timeoutSec); + + HttpRequestMessage message = new(); + message.Method = HttpMethod.Get; + message.RequestUri = uri; + message.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/dns-json")); + + using HttpResponseMessage r = await httpClient.SendAsync(message); + + if (r.IsSuccessStatusCode) + { + string contents = await r.Content.ReadAsStringAsync(); + httpClient.Dispose(); + return contents; + } + httpClient.Dispose(); + return string.Empty; + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return string.Empty; + } + } + + private static string GetIpFromJson(string jsonContent) + { + string ip = string.Empty; + try + { + using JsonDocument jd = JsonDocument.Parse(jsonContent); + JsonElement rootElement = jd.RootElement; + if (rootElement.ValueKind == JsonValueKind.Object) + { + JsonProperty[] properties = rootElement.EnumerateObject().ToArray(); + for (int n = 0; n < properties.Length; n++) + { + JsonProperty property = properties[n]; + if (property.Name == "Answer") + { + JsonElement[] elementsProperties = property.Value.EnumerateArray().ToArray(); + for (int n2 = 0; n2 < elementsProperties.Length; n2++) + { + JsonElement elementProperty = elementsProperties[n2]; + if (elementProperty.ValueKind == JsonValueKind.Object) + { + JsonProperty[] answerProperties = elementProperty.EnumerateObject().ToArray(); + for (int n3 = 0; n3 < answerProperties.Length; n3++) + { + JsonProperty answerProperty = answerProperties[n3]; + if (answerProperty.Name == "data") + { + ip = answerProperty.Value.ToString(); + if (IPAddress.TryParse(ip, out IPAddress _)) + return ip; + } + } + } + } + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + return ip; + } + + //================================================= Get From Plain DNS + + private struct Question + { + public string qName; + public int qType; + public int qClass; + } + + private struct Answer + { + //public List aName; + public int aType; + public int aClass; + public int aTtl; + public int rdLength; + public byte[] rData; + } + + /// + /// Get First IP in Answer Section + /// + /// Host + /// Plain DNS IP + /// Plain DNS Port + /// Timeout (ms) + /// Returns string.Empty if fail + public static string GetIpFromPlainDNS(string host, string dnsIP, int dnsPort, int timeoutMS) + { + List ips = GetIpsFromPlainDNS(host, dnsIP, dnsPort, timeoutMS); + if (ips.Any()) return ips[0]; + return string.Empty; + } + + /// + /// Get a List of IPs + /// + /// Host + /// Plain DNS IP + /// Plain DNS Port + /// Timeout (ms) + /// Returns an Empty List if fail + public static List GetIpsFromPlainDNS(string host, string dnsIP, int dnsPort, int timeoutMS) + { + List ips = new(); + try + { + var task = Task.Run(() => + { + Socket sock = new(SocketType.Dgram, ProtocolType.Udp); + + IPEndPoint ep = new(IPAddress.Parse(dnsIP), dnsPort); + sock.Connect(ep); + + byte[] hostnameLength = new byte[1]; + byte[] hostdomainLength = new byte[1]; + + byte[] tranactionID1 = { 0x46, 0x62 }; + byte[] queryType1 = { 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + byte[] hostname = Encoding.Default.GetBytes(host.Split('.')[0]); + hostnameLength[0] = (byte)hostname.Length; + byte[] hostdomain = Encoding.Default.GetBytes(host.Split('.')[1]); + hostdomainLength[0] = (byte)hostdomain.Length; + byte[] queryEnd = { 0x00, 0x00, 0x01, 0x00, 0x01 }; + byte[] dnsQueryString = tranactionID1.Concat(queryType1).Concat(hostnameLength).Concat(hostname).Concat(hostdomainLength).Concat(hostdomain).Concat(queryEnd).ToArray(); + + sock.Send(dnsQueryString); + + byte[] rBuffer = new byte[1000]; + + int receivedLength = sock.Receive(rBuffer); + + //ushort transId = (ushort)BitConverter.ToInt16(new[] { rBuffer[1], rBuffer[0] }, 0); + ushort queCount = (ushort)BitConverter.ToInt16(new[] { rBuffer[5], rBuffer[4] }, 0); + ushort ansCount = (ushort)BitConverter.ToInt16(new[] { rBuffer[7], rBuffer[6] }, 0); + //ushort authCount = (ushort)BitConverter.ToInt16(new[] { rBuffer[9], rBuffer[8] }, 0); + //ushort addCount = (ushort)BitConverter.ToInt16(new[] { rBuffer[11], rBuffer[10] }, 0); + + // Header read, now on to handling questions + int byteCount = 12; + + Question[] questions = new Question[queCount]; + + for (int i = 0; i < queCount; i++) + { + // Read Name + while (true) + { + int stringLength = rBuffer[byteCount]; + byteCount++; + + if (stringLength == 0) + { + if (questions[i].qName[^1] == '.') + { + questions[i].qName = new string(questions[i].qName.Take(questions[i].qName.Length - 1).ToArray()); + } + + break; + } + + byte[] tempName = new byte[stringLength]; + + for (int k = 0; k < stringLength; k++) + { + tempName[k] = rBuffer[byteCount]; + byteCount++; + } + + questions[i].qName += Encoding.ASCII.GetString(tempName) + '.'; + } + + // Name read now read Type + questions[i].qType = rBuffer[byteCount] + rBuffer[byteCount + 1]; + byteCount += 2; + + questions[i].qClass = rBuffer[byteCount] + rBuffer[byteCount + 1]; + byteCount += 2; + } + + Answer[] answers = new Answer[ansCount]; + + for (int i = 0; i < ansCount; i++) + { + // Skip reading Name, since it points to the Name given in question + byteCount += 2; + + answers[i].aType = rBuffer[byteCount] + rBuffer[byteCount + 1]; + byteCount += 2; + + answers[i].aClass = rBuffer[byteCount] + rBuffer[byteCount + 1]; + byteCount += 2; + + answers[i].aTtl = BitConverter.ToInt32(rBuffer.Skip(byteCount).Take(4).Reverse().ToArray()); + byteCount += 4; + + answers[i].rdLength = BitConverter.ToInt16(rBuffer.Skip(byteCount).Take(2).Reverse().ToArray()); + byteCount += 2; + + answers[i].rData = rBuffer.Skip(byteCount).Take(answers[i].rdLength).ToArray(); + byteCount += answers[i].rdLength; + } + + foreach (var a in answers) + { + // the canonical name for an alias + if (a.aType == 5) + { + string namePortion = ""; + for (int bytePosition = 0; bytePosition < a.rData.Length;) + { + int length = a.rData[bytePosition]; + bytePosition++; + + if (length == 0) continue; + + namePortion += Encoding.ASCII.GetString(a.rData.Skip(bytePosition).Take(length).ToArray()) + "."; + + bytePosition += length; + } + + Debug.WriteLine(new string(namePortion.Take(namePortion.Length - 1).ToArray())); + } + + // Skip any answer that's not IP adress since it's irrelevant for this excercise + if (a.aType == 1) + { + // First byte tells the lenghth of data (Usually length of 4 since type 1 describes IP4 adresses) + string ipString = ""; + + foreach (var b in a.rData.ToArray()) + { + int number = b; + + ipString += number + "."; + } + + string ip = new(ipString.Take(ipString.Length - 1).ToArray()); + ips.Add(ip); + } + } + + sock.Close(); + }); + + if (task.Wait(TimeSpan.FromMilliseconds(timeoutMS))) + return ips; + + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + return ips; + } + + + + + } +} diff --git a/MsmhTools/MsmhTools/Drawing.cs b/MsmhTools/MsmhTools/Drawing.cs new file mode 100644 index 0000000..aac56b4 --- /dev/null +++ b/MsmhTools/MsmhTools/Drawing.cs @@ -0,0 +1,109 @@ +using System; +using System.Runtime.InteropServices; +using System.Drawing.Drawing2D; +using System.Drawing.Imaging; + +namespace MsmhTools +{ + public static class Drawing + { + //----------------------------------------------------------------------------------- + public static GraphicsPath RoundedRectangle(Rectangle bounds, int radiusTopLeft, int radiusTopRight, int radiusBottomRight, int radiusBottomLeft) + { + int diameterTopLeft = radiusTopLeft * 2; + int diameterTopRight = radiusTopRight * 2; + int diameterBottomRight = radiusBottomRight * 2; + int diameterBottomLeft = radiusBottomLeft * 2; + + Rectangle arc1 = new(bounds.Location, new Size(diameterTopLeft, diameterTopLeft)); + Rectangle arc2 = new(bounds.Location, new Size(diameterTopRight, diameterTopRight)); + Rectangle arc3 = new(bounds.Location, new Size(diameterBottomRight, diameterBottomRight)); + Rectangle arc4 = new(bounds.Location, new Size(diameterBottomLeft, diameterBottomLeft)); + GraphicsPath path = new(); + + // Top Left Arc + if (radiusTopLeft == 0) + { + path.AddLine(arc1.Location, arc1.Location); + } + else + { + path.AddArc(arc1, 180, 90); + } + // Top Right Arc + arc2.X = bounds.Right - diameterTopRight; + if (radiusTopRight == 0) + { + path.AddLine(arc2.Location, arc2.Location); + } + else + { + path.AddArc(arc2, 270, 90); + } + // Bottom Right Arc + arc3.X = bounds.Right - diameterBottomRight; + arc3.Y = bounds.Bottom - diameterBottomRight; + if (radiusBottomRight == 0) + { + path.AddLine(arc3.Location, arc3.Location); + } + else + { + path.AddArc(arc3, 0, 90); + } + // Bottom Left Arc + arc4.X = bounds.Right - diameterBottomLeft; + arc4.Y = bounds.Bottom - diameterBottomLeft; + arc4.X = bounds.Left; + if (radiusBottomLeft == 0) + { + path.AddLine(arc4.Location, arc4.Location); + } + else + { + path.AddArc(arc4, 90, 90); + } + path.CloseFigure(); + return path; + } + //----------------------------------------------------------------------------------- + public static Bitmap Invert(Bitmap source) + { + //create a blank bitmap the same size as original + Bitmap newBitmap = new(source.Width, source.Height); + //get a graphics object from the new image + Graphics g = Graphics.FromImage(newBitmap); + // create the negative color matrix + ColorMatrix colorMatrix = new(new float[][] + { + new float[] {-1, 0, 0, 0, 0}, + new float[] {0, -1, 0, 0, 0}, + new float[] {0, 0, -1, 0, 0}, + new float[] {0, 0, 0, 1, 0}, + new float[] {1, 1, 1, 0, 1} + }); + // create some image attributes + ImageAttributes attributes = new(); + attributes.SetColorMatrix(colorMatrix); + g.DrawImage(source, new Rectangle(0, 0, source.Width, source.Height), + 0, 0, source.Width, source.Height, GraphicsUnit.Pixel, attributes); + //dispose the Graphics object + g.Dispose(); + return newBitmap; + } + //----------------------------------------------------------------------------------- + [DllImport("user32.dll")] + private static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam); + private const int WM_SETREDRAW = 11; + public static void SuspendDrawing(Control parent) + { + _ = SendMessage(parent.Handle, WM_SETREDRAW, false, 0); + } + public static void ResumeDrawing(Control parent) + { + _ = SendMessage(parent.Handle, WM_SETREDRAW, true, 0); + parent.Refresh(); + } + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/MsmhTools/EncodingTool.cs b/MsmhTools/MsmhTools/EncodingTool.cs new file mode 100644 index 0000000..4b7d948 --- /dev/null +++ b/MsmhTools/MsmhTools/EncodingTool.cs @@ -0,0 +1,102 @@ +using Force.Crc32; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools +{ + public class EncodingTool + { + public static string GetCRC32(string text) + { + var bytes = Encoding.UTF8.GetBytes(text); + uint crc32 = Crc32Algorithm.Compute(bytes); + return crc32.ToString(); + } + + public static string GetSHA1(string text) + { + byte[] bytes = Encoding.UTF8.GetBytes(text); + using SHA1 hash = SHA1.Create(); + byte[] hashedInputBytes = hash.ComputeHash(bytes); + return Convert.ToHexString(hashedInputBytes); + } + + public static string GetSHA256(string text) + { + byte[] bytes = Encoding.UTF8.GetBytes(text); + using SHA256 hash = SHA256.Create(); + byte[] hashedInputBytes = hash.ComputeHash(bytes); + return Convert.ToHexString(hashedInputBytes); + } + + public static string GetSHA384(string text) + { + byte[] bytes = Encoding.UTF8.GetBytes(text); + using SHA384 hash = SHA384.Create(); + byte[] hashedInputBytes = hash.ComputeHash(bytes); + return Convert.ToHexString(hashedInputBytes); + } + + public static string GetSHA512(string text) + { + byte[] bytes = Encoding.UTF8.GetBytes(text); + using SHA512 hash = SHA512.Create(); + byte[] hashedInputBytes = hash.ComputeHash(bytes); + return Convert.ToHexString(hashedInputBytes); + } + + public static string Base64Encode(string plainText) + { + byte[] data = Encoding.UTF8.GetBytes(plainText); + string encodedString = Convert.ToBase64String(data); + return encodedString; + } + + public static string Base64Decode(string encodedString) + { + byte[] data = Convert.FromBase64String(encodedString); + string decodedString = Encoding.UTF8.GetString(data); + return decodedString; + } + + public static string UrlEncode(byte[] arg) + { + if (arg == null) throw new ArgumentNullException(nameof(arg)); + + var s = Convert.ToBase64String(arg); + return s.Replace("=", "").Replace("/", "_").Replace("+", "-"); + } + + public static string UrlToBase64(string arg) + { + if (arg == null) throw new ArgumentNullException(nameof(arg)); + + var s = arg.PadRight(arg.Length + (4 - arg.Length % 4) % 4, '=').Replace("_", "/").Replace("-", "+"); + return s; + } + + public static byte[] UrlDecode(string arg) + { + var decrypted = UrlToBase64(arg); + return Convert.FromBase64String(decrypted); + } + + public static T[] SubArray(T[] arr, int start, int length) + { + var result = new T[length]; + Buffer.BlockCopy(arr, start, result, 0, length); + + return result; + } + + public static T[] SubArray(T[] arr, int start) + { + return SubArray(arr, start, arr.Length - start); + } + } + +} diff --git a/MsmhTools/MsmhTools/Extensions.cs b/MsmhTools/MsmhTools/Extensions.cs new file mode 100644 index 0000000..2919cbb --- /dev/null +++ b/MsmhTools/MsmhTools/Extensions.cs @@ -0,0 +1,669 @@ +using System; +using System.Reflection; +using System.Text; +using System.Xml; +using System.Text.RegularExpressions; +using System.Runtime.InteropServices; +using System.ComponentModel; +using System.Drawing.Drawing2D; +using System.Data; +using System.Xml.Serialization; +using CustomControls; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; +using System.Xml.Linq; +using System.Diagnostics; + +namespace MsmhTools +{ + public static class Methods + { + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + internal extern static int SetWindowTheme(IntPtr controlHandle, string appName, string? idList); + } + public static class Extensions + { + //----------------------------------------------------------------------------------- + public static void AppendText(this RichTextBox richTextBox, string text, Color color) + { + richTextBox.SelectionStart = richTextBox.TextLength; + richTextBox.SelectionLength = 0; + richTextBox.SelectionColor = color; + richTextBox.AppendText(text); + richTextBox.SelectionColor = richTextBox.ForeColor; + } + //----------------------------------------------------------------------------------- + public static List> SplitToLists(this List list, int nSize) + { + var listOut = new List>(); + + for (int n = 0; n < list.Count; n += nSize) + { + listOut.Add(list.GetRange(n, Math.Min(nSize, list.Count - n))); + } + + return listOut; + } + //----------------------------------------------------------------------------------- + public static List SplitToLines(this string s) + { + // Original non-optimized version: return source.Replace("\r\r\n", "\n").Replace("\r\n", "\n").Replace('\r', '\n').Replace('\u2028', '\n').Split('\n'); + var lines = new List(); + int start = 0; + int max = s.Length; + int i = 0; + while (i < max) + { + var ch = s[i]; + if (ch == '\r') + { + if (i < s.Length - 2 && s[i + 1] == '\r' && s[i + 2] == '\n') // \r\r\n + { + lines.Add(start < i ? s[start..i] : string.Empty); // s[start..i] = s.Substring(start, i - start) + i += 3; + start = i; + continue; + } + + if (i < s.Length - 1 && s[i + 1] == '\n') // \r\n + { + lines.Add(start < i ? s[start..i] : string.Empty); + i += 2; + start = i; + continue; + } + + lines.Add(start < i ? s[start..i] : string.Empty); + i++; + start = i; + continue; + } + + if (ch == '\n' || ch == '\u2028') + { + lines.Add(start < i ? s[start..i] : string.Empty); + i++; + start = i; + continue; + } + + i++; + } + + lines.Add(start < i ? s[start..i] : string.Empty); + return lines; + } + + public static List SplitToLines(this string s, int maxCount) + { + var lines = new List(); + int start = 0; + int max = Math.Min(maxCount, s.Length); + int i = 0; + while (i < max) + { + var ch = s[i]; + if (ch == '\r') + { + if (i < s.Length - 2 && s[i + 1] == '\r' && s[i + 2] == '\n') // \r\r\n + { + lines.Add(start < i ? s[start..i] : string.Empty); + i += 3; + start = i; + continue; + } + + if (i < s.Length - 1 && s[i + 1] == '\n') // \r\n + { + lines.Add(start < i ? s[start..i] : string.Empty); + i += 2; + start = i; + continue; + } + + lines.Add(start < i ? s[start..i] : string.Empty); + i++; + start = i; + continue; + } + + if (ch == '\n' || ch == '\u2028') + { + lines.Add(start < i ? s[start..i] : string.Empty); + i++; + start = i; + continue; + } + + i++; + } + + lines.Add(start < i ? s[start..i] : string.Empty); + return lines; + } + //----------------------------------------------------------------------------------- + public static string ToBase64String(this string text) + { + return Convert.ToBase64String(Encoding.UTF8.GetBytes(text)); + } + //----------------------------------------------------------------------------------- + public static string FromBase64String(this string base64String) + { + return Encoding.UTF8.GetString(Convert.FromBase64String(base64String)); + } + //----------------------------------------------------------------------------------- + public static string RemoveWhiteSpaces(this string text) + { + string findWhat = @"\s+"; + return Regex.Replace(text, findWhat, ""); + } + //----------------------------------------------------------------------------------- + public static void SetDarkTitleBar(this Control form, bool darkMode) + { + UseImmersiveDarkMode(form.Handle, darkMode); + } + private const int DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = 19; + private const int DWMWA_USE_IMMERSIVE_DARK_MODE = 20; + private static bool UseImmersiveDarkMode(IntPtr handle, bool enabled) + { + if (IsWindows10OrGreater(17763)) + { + var attribute = DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1; + if (IsWindows10OrGreater(18985)) + { + attribute = DWMWA_USE_IMMERSIVE_DARK_MODE; + } + + int useImmersiveDarkMode = enabled ? 1 : 0; + return NativeMethods.DwmSetWindowAttribute(handle, attribute, ref useImmersiveDarkMode, sizeof(int)) == 0; + } + return false; + } + private static bool IsWindows10OrGreater(int build = -1) + { + return Environment.OSVersion.Version.Major >= 10 && Environment.OSVersion.Version.Build >= build; + } + //----------------------------------------------------------------------------------- + public static void SetDarkControl(this Control control) + { + _ = Methods.SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + foreach (Control c in Controllers.GetAllControls(control)) + { + _ = Methods.SetWindowTheme(c.Handle, "DarkMode_Explorer", null); + } + } + //----------------------------------------------------------------------------------- + public static XmlDocument ToXmlDocument(this XDocument xDocument) + { + var xmlDocument = new XmlDocument(); + using var xmlReader = xDocument.CreateReader(); + xmlDocument.Load(xmlReader); + return xmlDocument; + } + //----------------------------------------------------------------------------------- + public static XDocument ToXDocument(this XmlDocument xmlDocument) + { + using var nodeReader = new XmlNodeReader(xmlDocument); + nodeReader.MoveToContent(); + return XDocument.Load(nodeReader); + } + //----------------------------------------------------------------------------------- + public static string? AssemblyDescription(this Assembly assembly) + { + if (assembly != null && Attribute.IsDefined(assembly, typeof(AssemblyDescriptionAttribute))) + { + AssemblyDescriptionAttribute? descriptionAttribute = (AssemblyDescriptionAttribute?)Attribute.GetCustomAttribute(assembly, typeof(AssemblyDescriptionAttribute)); + if (descriptionAttribute != null) + { + return descriptionAttribute.Description; + } + } + return null; + } + //----------------------------------------------------------------------------------- + public static T IsNotNull([NotNull] this T? value, [CallerArgumentExpression(parameterName: "value")] string? paramName = null) + { + if (value == null) + throw new ArgumentNullException(paramName); + else + return value; + } // Usage: someVariable.IsNotNull(); + //----------------------------------------------------------------------------------- + public static void EnableDoubleBuffer(this Control.ControlCollection controls) + { + foreach (Control control in controls) + { + typeof(Control).InvokeMember("DoubleBuffered", + BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.NonPublic, + null, control, new object[] { true }); + } + } + //----------------------------------------------------------------------------------- + public static GraphicsPath Shrink(this GraphicsPath path, float width) + { + using GraphicsPath gp = new(); + gp.AddPath(path, false); + gp.CloseAllFigures(); + gp.Widen(new Pen(Color.Black, width * 2)); + int position = 0; + GraphicsPath result = new(); + while (position < gp.PointCount) + { + // skip outer edge + position += CountNextFigure(gp.PathData, position); + // count inner edge + int figureCount = CountNextFigure(gp.PathData, position); + var points = new PointF[figureCount]; + var types = new byte[figureCount]; + + Array.Copy(gp.PathPoints, position, points, 0, figureCount); + Array.Copy(gp.PathTypes, position, types, 0, figureCount); + position += figureCount; + result.AddPath(new GraphicsPath(points, types), false); + } + path.Reset(); + path.AddPath(result, false); + return path; + } + + private static int CountNextFigure(PathData data, int position) + { + int count = 0; + for (int i = position; i < data?.Types?.Length; i++) + { + count++; + if (0 != (data.Types[i] & (int)PathPointType.CloseSubpath)) + return count; + } + return count; + } + //----------------------------------------------------------------------------------- + public static void DrawRoundedRectangle(this Graphics graphics, Pen pen, Rectangle bounds, int radiusTopLeft, int radiusTopRight, int radiusBottomRight, int radiusBottomLeft) + { + GraphicsPath path; + path = Drawing.RoundedRectangle(bounds, radiusTopLeft, radiusTopRight, radiusBottomRight, radiusBottomLeft); + graphics.SmoothingMode = SmoothingMode.AntiAlias; + graphics.DrawPath(pen, path); + graphics.SmoothingMode = SmoothingMode.Default; + } + //----------------------------------------------------------------------------------- + public static void FillRoundedRectangle(this Graphics graphics, Brush brush, Rectangle bounds, int radiusTopLeft, int radiusTopRight, int radiusBottomRight, int radiusBottomLeft) + { + GraphicsPath path; + path = Drawing.RoundedRectangle(bounds, radiusTopLeft, radiusTopRight, radiusBottomRight, radiusBottomLeft); + graphics.SmoothingMode = SmoothingMode.AntiAlias; + graphics.FillPath(brush, path); + graphics.SmoothingMode = SmoothingMode.Default; + } + //----------------------------------------------------------------------------------- + public static void DrawCircle(this Graphics g, Pen pen, float centerX, float centerY, float radius) + { + g.DrawEllipse(pen, centerX - radius, centerY - radius, radius + radius, radius + radius); + } + //----------------------------------------------------------------------------------- + public static void FillCircle(this Graphics g, Brush brush, float centerX, float centerY, float radius) + { + g.FillEllipse(brush, centerX - radius, centerY - radius, radius + radius, radius + radius); + } + //----------------------------------------------------------------------------------- + public static string ToXml(this DataSet ds) + { + using var memoryStream = new MemoryStream(); + using TextWriter streamWriter = new StreamWriter(memoryStream); + var xmlSerializer = new XmlSerializer(typeof(DataSet)); + xmlSerializer.Serialize(streamWriter, ds); + return Encoding.UTF8.GetString(memoryStream.ToArray()); + } + //----------------------------------------------------------------------------------- + public static string ToXmlWithWriteMode(this DataSet ds, XmlWriteMode xmlWriteMode) + { + using var ms = new MemoryStream(); + using TextWriter sw = new StreamWriter(ms); + ds.WriteXml(sw, xmlWriteMode); + return new UTF8Encoding(false).GetString(ms.ToArray()); + } + //----------------------------------------------------------------------------------- + public static DataSet ToDataSet(this DataSet ds, string xmlFile, XmlReadMode xmlReadMode) + { + ds.ReadXml(xmlFile, xmlReadMode); + return ds; + } + //----------------------------------------------------------------------------------- + //----------------------------------------------------------------------------------- + public static void AddVScrollBar(this DataGridView dataGridView, CustomVScrollBar customVScrollBar) + { + customVScrollBar.Dock = DockStyle.Right; + customVScrollBar.Visible = true; + customVScrollBar.BringToFront(); + dataGridView.Controls.Add(customVScrollBar); + dataGridView.ScrollBars = ScrollBars.None; + dataGridView.SelectionChanged += (object? sender, EventArgs e) => + { + // To update ScrollBar position + customVScrollBar.Value = dataGridView.FirstDisplayedScrollingRowIndex; + }; + dataGridView.SizeChanged += (object? sender, EventArgs e) => + { + // To update LargeChange on form resize + customVScrollBar.LargeChange = dataGridView.DisplayedRowCount(false); + }; + dataGridView.Invalidated += (object? sender, InvalidateEventArgs e) => + { + // To update LargeChange on invalidation + customVScrollBar.LargeChange = dataGridView.DisplayedRowCount(false); + }; + dataGridView.RowsAdded += (object? sender, DataGridViewRowsAddedEventArgs e) => + { + customVScrollBar.Maximum = dataGridView.RowCount; + customVScrollBar.LargeChange = dataGridView.DisplayedRowCount(false); + customVScrollBar.SmallChange = 1; + }; + dataGridView.Scroll += (object? sender, ScrollEventArgs e) => + { + if (e.ScrollOrientation == ScrollOrientation.VerticalScroll) + { + if (dataGridView.Rows.Count > 0) + { + customVScrollBar.Value = e.NewValue; + // To update LargeChange on scroll + customVScrollBar.LargeChange = dataGridView.DisplayedRowCount(false); + } + } + }; + customVScrollBar.Scroll += (object? sender, EventArgs e) => + { + if (dataGridView.Rows.Count > 0) + if (customVScrollBar.Value < dataGridView.Rows.Count) + dataGridView.FirstDisplayedScrollingRowIndex = customVScrollBar.Value; + }; + } + //----------------------------------------------------------------------------------- + public static Icon? GetApplicationIcon(this Form _) + { + return Icon.ExtractAssociatedIcon(Application.ExecutablePath); + } + //----------------------------------------------------------------------------------- + public static Icon? GetDefaultIcon(this Form _) + { + return (Icon?)typeof(Form).GetProperty("DefaultIcon", BindingFlags.NonPublic | BindingFlags.Static)?.GetValue(null, null); + } + //----------------------------------------------------------------------------------- + public static void SetDefaultIcon(this Form _, Icon icon) + { + if (icon != null) + typeof(Form).GetField("defaultIcon", BindingFlags.NonPublic | BindingFlags.Static)?.SetValue(null, icon); + } + //----------------------------------------------------------------------------------- + /// + /// Invalidate Controls. Use on Form_SizeChanged event. + /// + public static void Invalidate(this Control.ControlCollection controls) + { + foreach (Control c in controls) + c.Invalidate(); + } + //----------------------------------------------------------------------------------- + /// + /// Creates color with corrected brightness. + /// + /// Color to correct. + /// The brightness correction factor. Must be between -1 and 1. + /// Negative values produce darker colors. + /// + /// Corrected structure. + /// + public static Color ChangeBrightness(this Color color, float correctionFactor) + { + float red = (float)color.R; + float green = (float)color.G; + float blue = (float)color.B; + + if (correctionFactor < 0) + { + correctionFactor = 1 + correctionFactor; + red *= correctionFactor; + green *= correctionFactor; + blue *= correctionFactor; + } + else + { + red = (255 - red) * correctionFactor + red; + green = (255 - green) * correctionFactor + green; + blue = (255 - blue) * correctionFactor + blue; + } + return Color.FromArgb(color.A, (int)red, (int)green, (int)blue); + } + //----------------------------------------------------------------------------------- + /// + /// Check Color is Light or Dark. + /// + /// + /// Returns "Dark" or "Light" as string. + /// + public static string DarkOrLight(this Color color) + { + if (color.R * 0.2126 + color.G * 0.7152 + color.B * 0.0722 < 255 / 2) + { + return "Dark"; + } + else + { + return "Light"; + } + } + //----------------------------------------------------------------------------------- + /// + /// Change Color Hue. (0f - 360f) + /// + /// + /// Returns Modified Color. + /// + public static Color ChangeHue(this Color color, float hue) + { + //float hueO = color.GetHue(); + float saturationO = color.GetSaturation(); + float lightnessO = color.GetBrightness(); + return Colors.FromHsl(255, hue, saturationO, lightnessO); + } + //----------------------------------------------------------------------------------- + /// + /// Change Color Saturation. (0f - 1f) + /// + /// + /// Returns Modified Color. + /// + public static Color ChangeSaturation(this Color color, float saturation) + { + float hueO = color.GetHue(); + //float saturationO = color.GetSaturation(); + float lightnessO = color.GetBrightness(); + return Colors.FromHsl(255, hueO, saturation, lightnessO); + } + //----------------------------------------------------------------------------------- + public static void AutoSizeLastColumn(this ListView listView) + { + if (listView.Columns.Count > 1) + { + //ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); + //ListView1.Columns[ListView1.Columns.Count - 1].AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); + //ListView1.Columns[ListView1.Columns.Count - 1].Width = -2; // -2 = Fill remaining space + int cs = 0; + for (int n = 0; n < listView.Columns.Count - 1; n++) + { + var column = listView.Columns[n]; + cs += column.Width; + } + listView.BeginUpdate(); + listView.Columns[^1].Width = Math.Max(400, listView.ClientRectangle.Width - cs); + listView.EndUpdate(); + } + } + //----------------------------------------------------------------------------------- + public static void AutoSizeLastColumn(this DataGridView dataGridView) + { + if (dataGridView.Columns.Count > 0) + { + int cs = 0; + for (int n = 0; n < dataGridView.Columns.Count - 1; n++) + { + var columnWidth = dataGridView.Columns[n].Width; + var columnDivider = dataGridView.Columns[n].DividerWidth; + cs += columnWidth + columnDivider; + } + cs += (dataGridView.Margin.Left + dataGridView.Margin.Right) * 2; + foreach (var scroll in dataGridView.Controls.OfType()) + { + if (scroll.Visible == true) + cs += SystemInformation.VerticalScrollBarWidth; + } + dataGridView.Columns[dataGridView.Columns.Count - 1].Width = Math.Max(400, dataGridView.ClientRectangle.Width - cs); + } + } + //----------------------------------------------------------------------------------- + public static void SaveToFile(this List list, string filePath) + { + try + { + FileStreamOptions streamOptions = new(); + streamOptions.Access = FileAccess.ReadWrite; + streamOptions.Share = FileShare.ReadWrite; + streamOptions.Mode = FileMode.Create; + streamOptions.Options = FileOptions.RandomAccess; + using StreamWriter file = new(filePath, streamOptions); + for (int n = 0; n < list.Count; n++) + if (list[n] != null) + { + file.WriteLine(list[n]); + } + } + catch (Exception ex) + { + Debug.WriteLine($"Save List to File: {ex.Message}"); + } + } + //----------------------------------------------------------------------------------- + public static void LoadFromFile(this List list, string filePath, bool ignoreEmptyLines, bool trimLines) + { + if (!File.Exists(filePath)) return; + string content = File.ReadAllText(filePath); + List lines = content.SplitToLines(); + for (int n = 0; n < lines.Count; n++) + { + string line = lines[n]; + if (ignoreEmptyLines) + { + if (!string.IsNullOrWhiteSpace(line)) + { + if (trimLines) + list.Add(line.Trim()); + else + list.Add(line); + } + } + else + { + if (trimLines) + list.Add(line.Trim()); + else + list.Add(line); + } + } + } + //----------------------------------------------------------------------------------- + public static void LoadFromFile(this List list, string filePath) + { + if (!File.Exists(filePath)) return; + string content = File.ReadAllText(filePath); + List lines = content.SplitToLines(); + for (int n = 0; n < lines.Count; n++) + { + string line = lines[n]; + list.Add(line); + } + } + //----------------------------------------------------------------------------------- + public static int GetIndex(this List list, T value) + { + return list.FindIndex(a => a.Equals(value)); + // If the item is not found, it will return -1 + } + //----------------------------------------------------------------------------------- + public static void ChangeValue(this List list, T oldValue, T newValue) + { + list[list.GetIndex(oldValue)] = newValue; + } + //----------------------------------------------------------------------------------- + public static void RemoveValue(this List list, T value) + { + list.RemoveAt(list.GetIndex(value)); + } + //----------------------------------------------------------------------------------- + public static List RemoveDuplicates(this List list) + { + List NoDuplicates = list.Distinct().ToList(); + return NoDuplicates; + } + //----------------------------------------------------------------------------------- + public static void WriteToFile(this MemoryStream memoryStream, string dstPath) + { + using FileStream fs = new(dstPath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + memoryStream.Seek(0, SeekOrigin.Begin); + memoryStream.Position = 0; + memoryStream.WriteTo(fs); + fs.Flush(); + } + //----------------------------------------------------------------------------------- + public static void SetToolTip(this Control control, string titleMessage, string bodyMessage) + { + ToolTip tt = new(); + tt.ToolTipIcon = ToolTipIcon.Info; + tt.IsBalloon = false; + tt.ShowAlways = true; + tt.UseAnimation = true; + tt.UseFading = true; + tt.InitialDelay = 1000; + tt.AutoPopDelay = 6000; + tt.AutomaticDelay = 300; + tt.ToolTipTitle = titleMessage; + tt.SetToolTip(control, bodyMessage); + } + //----------------------------------------------------------------------------------- + public static void InvokeIt(this ISynchronizeInvoke sync, Action action) + { + // If the invoke is not required, then invoke here and get out. + if (!sync.InvokeRequired) + { + action(); + return; + } + sync.Invoke(action, Array.Empty()); + // Usage: + // textBox1.InvokeIt(() => textBox1.Text = text); + } + //----------------------------------------------------------------------------------- + public static bool Compare(this List list1, List list2) + { + return Enumerable.SequenceEqual(list1, list2); + } + + public static bool Compare(this string string1, string string2) + { + return string1.Equals(string2, StringComparison.Ordinal); + } + //----------------------------------------------------------------------------------- + public static bool IsInteger(this string s) + { + if (int.TryParse(s, out _)) + return true; + return false; + } + //----------------------------------------------------------------------------------- + public static bool IsBool(this string s) + { + if (bool.TryParse(s, out _)) + return true; + return false; + } + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/MsmhTools/FileDirectory.cs b/MsmhTools/MsmhTools/FileDirectory.cs new file mode 100644 index 0000000..78ebadd --- /dev/null +++ b/MsmhTools/MsmhTools/FileDirectory.cs @@ -0,0 +1,364 @@ +using System; +using System.Text; +using System.Security.Cryptography; +using Force.Crc32; +using System.Diagnostics; + +namespace MsmhTools +{ + public class FileDirectory + { + //----------------------------------------------------------------------------------- + public enum SizeUnits + { + Byte, KB, MB, GB, TB, PB, EB, ZB, YB, RB, QB + } + public static double ConvertSize(double value, SizeUnits fromUnit, SizeUnits toUnit) + { + try + { + double unit = 1000; // In decimal it's 1000 not 1024. ref:https://en.wikipedia.org/wiki/Byte#Multiple-byte_units + double valueByte = value * (double)Math.Pow(unit, (long)fromUnit); + double outValue = valueByte / (double)Math.Pow(unit, (long)toUnit); + string outString = outValue.ToString(); + if (outString.Contains('.') && outString.EndsWith('0')) + { + while (outString.EndsWith('0')) + { + outString = outString.TrimEnd('0'); + } + outString = outString.TrimEnd('.'); + return double.TryParse(outString, out double outValueNoZero) ? outValueNoZero : outValue; + } + else + return outValue; + } + catch (Exception ex) + { + Debug.WriteLine($"ConvertSize: {ex.Message}"); + return -1; + } + } + //----------------------------------------------------------------------------------- + /// + /// Creates an empty file if not already exist. + /// + public static void CreateEmptyFile(string filePath) + { + if(!File.Exists(filePath)) + File.Create(filePath).Dispose(); + } + //----------------------------------------------------------------------------------- + /// + /// Creates an empty directory if not already exist. + /// + public static void CreateEmptyDirectory(string directoryPath) + { + if (!Directory.Exists(directoryPath)) + Directory.CreateDirectory(directoryPath); + } + //----------------------------------------------------------------------------------- + public static bool CompareByLength(string path1, string path2) + { + int path1Length = File.ReadAllText(path1).Length; + int path2Length = File.ReadAllText(path2).Length; + if (path1Length == path2Length) + return true; + else + return false; + } + //----------------------------------------------------------------------------------- + public static bool CompareByReadBytes(string path1, string path2) + { + byte[] path1Bytes = File.ReadAllBytes(path1); + byte[] path2Bytes = File.ReadAllBytes(path2); + if (path1Bytes == path2Bytes) + return true; + else + return false; + } + //----------------------------------------------------------------------------------- + public static bool CompareByUTF8Bytes(string path1, string path2) + { + byte[] path1Bytes = Encoding.UTF8.GetBytes(path1); + byte[] path2Bytes = Encoding.UTF8.GetBytes(path2); + if (path1Bytes == path2Bytes) + return true; + else + return false; + } + //----------------------------------------------------------------------------------- + public static bool CompareByCRC(string path1, string path2) + { + string path1CRC = GetCRC32(path1); + string path2CRC = GetCRC32(path2); + if (path1CRC == path2CRC) + return true; + else + return false; + } + //----------------------------------------------------------------------------------- + public static bool CompareBySHA512(string path1, string path2) + { + string path1CRC = GetSHA512(path1); + string path2CRC = GetSHA512(path2); + if (path1CRC == path2CRC) + return true; + else + return false; + } + //----------------------------------------------------------------------------------- + public static bool CompareByReadLines(string path1, string path2) + { + return File.ReadLines(path1).SequenceEqual(File.ReadLines(path2)); + } + //----------------------------------------------------------------------------------- + public static void AppendTextLine(string filePath, string textToAppend, Encoding encoding) + { + try + { + if (!File.Exists(filePath)) + CreateEmptyFile(filePath); + + string fileContent = File.ReadAllText(filePath); + List splitByLine = fileContent.SplitToLines(); + int count = splitByLine.Count; + using FileStream fileStream = new(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); + using StreamWriter writer = new(fileStream, encoding); + if (count == 0) + writer.Write(textToAppend); + else + writer.WriteLine(textToAppend); + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + } + //----------------------------------------------------------------------------------- + public static async Task AppendTextLineAsync(string filePath, string textToAppend, Encoding encoding) + { + if (!File.Exists(filePath)) + CreateEmptyFile(filePath); + + string fileContent = await File.ReadAllTextAsync(filePath); + List splitByLine = fileContent.SplitToLines(); + int count = splitByLine.Count; + using FileStream fileStream = new(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); + using StreamWriter writer = new(fileStream, encoding); + if (count == 0) + await writer.WriteAsync(textToAppend); + else + await writer.WriteLineAsync(textToAppend); + } + //----------------------------------------------------------------------------------- + public static void AppendText(string filePath, string textToAppend, Encoding encoding) + { + using FileStream fileStream = new(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); + using StreamWriter writer = new(fileStream, encoding); + writer.Write(textToAppend); + } + //----------------------------------------------------------------------------------- + public static async Task AppendTextAsync(string filePath, string textToAppend, Encoding encoding) + { + using FileStream fileStream = new(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); + using StreamWriter writer = new(fileStream, encoding); + await writer.WriteAsync(textToAppend); + } + //----------------------------------------------------------------------------------- + public static void WriteAllText(string filePath, string fileContent, Encoding encoding) + { + using FileStream fileStream = new(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + using StreamWriter writer = new(fileStream, encoding); + //fileStream.SetLength(0); // Overwrite File When FileMode is FileMode.OpenOrCreate + writer.AutoFlush = true; + writer.Write(fileContent); + } + //----------------------------------------------------------------------------------- + public static async Task WriteAllTextAsync(string filePath, string fileContent, Encoding encoding) + { + using FileStream fileStream = new(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + using StreamWriter writer = new(fileStream, encoding); + //fileStream.SetLength(0); // Overwrite File When FileMode is FileMode.OpenOrCreate + writer.AutoFlush = true; + await writer.WriteAsync(fileContent); + } + //----------------------------------------------------------------------------------- + public static bool IsFileLocked(string fileNameOrPath) + { + string filePath = Path.GetFullPath(fileNameOrPath); + if (File.Exists(filePath)) + { + FileStream stream = null; + FileInfo fileInfo = new(filePath); + try + { + stream = fileInfo.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); + } + catch (IOException e) when ((e.HResult & 0x0000FFFF) == 32) + { + Console.WriteLine("File is in use by another process."); + return true; + } + finally + { + if (stream != null) + stream.Close(); + } + //file is not locked + return false; + } + else + { + Console.WriteLine("File not exist: " + filePath); + return false; + } + } + //----------------------------------------------------------------------------------- + public static List? FindFilesByPartialName(string partialName, string dirPath) + { + if (Directory.Exists(dirPath)) + { + DirectoryInfo hdDirectoryInWhichToSearch = new(dirPath); + FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*"); + List list = new(); + foreach (FileInfo foundFile in filesInDir) + { + string fullName = foundFile.FullName; + list.Add(fullName); + } + return list; + } + Console.WriteLine("Directory Not Exist: " + dirPath); + return null; + } + //----------------------------------------------------------------------------------- + public static string GetCRC32(string filePath) + { + if (File.Exists(filePath)) + { + var bytes = ReadAllBytes(filePath); + uint crc32 = Crc32Algorithm.Compute(bytes); + return crc32.ToString(); + } + else + { + Console.WriteLine("File Not Exist: " + Path.GetFileName(filePath)); + return string.Empty; + } + } + //----------------------------------------------------------------------------------- + public static string GetSHA512(string filePath) + { + if (File.Exists(filePath)) + { + var bytes = ReadAllBytes(filePath); + using var hash = SHA512.Create(); + var hashedInputBytes = hash.ComputeHash(bytes); + // Convert to text + // StringBuilder Capacity is 128, because 512 bits / 8 bits in byte * 2 symbols for byte + var hashedInputStringBuilder = new StringBuilder(128); + foreach (var b in hashedInputBytes) + hashedInputStringBuilder.Append(b.ToString("X2")); + return hashedInputStringBuilder.ToString(); + } + return string.Empty; + } + //----------------------------------------------------------------------------------- + public static byte[] ReadAllBytes(MemoryStream memoryStream) + { + return memoryStream.ToArray(); + } + //----------------------------------------------------------------------------------- + public static byte[]? ReadAllBytes(string filePath) + { + try + { + using FileStream fsSource = new(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + // Read the source file into a byte array. + byte[] bytes = new byte[fsSource.Length]; + int numBytesToRead = (int)fsSource.Length; + int numBytesRead = 0; + while (numBytesToRead > 0) + { + // Read may return anything from 0 to numBytesToRead. + int n = fsSource.Read(bytes, numBytesRead, numBytesToRead); + // Break when the end of the file is reached. + if (n == 0) + break; + numBytesRead += n; + numBytesToRead -= n; + } + numBytesToRead = bytes.Length; + return bytes; + } + catch (FileNotFoundException ioEx) + { + Console.WriteLine(ioEx.Message); + return null; + } + } + //----------------------------------------------------------------------------------- + public static async Task ReadAllBytesAsync(string filePath) + { + try + { + using FileStream fsSource = new(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + // Read the source file into a byte array. + byte[] bytes = new byte[fsSource.Length]; + int numBytesToRead = (int)fsSource.Length; + int numBytesRead = 0; + while (numBytesToRead > 0) + { + // Read may return anything from 0 to numBytesToRead. + int n = await fsSource.ReadAsync(bytes.AsMemory(numBytesRead, numBytesToRead)); + // Break when the end of the file is reached. + if (n == 0) + break; + numBytesRead += n; + numBytesToRead -= n; + } + numBytesToRead = bytes.Length; + return bytes; + } + catch (FileNotFoundException ioEx) + { + Console.WriteLine(ioEx.Message); + return null; + } + } + //----------------------------------------------------------------------------------- + public static void WriteAllBytes(string filePath, byte[] bytes) + { + try + { + int numBytesToRead = bytes.Length; + // Write the byte array to the other FileStream. + using FileStream fsNew = new(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + fsNew.Write(bytes, 0, numBytesToRead); + } + catch (FileNotFoundException ioEx) + { + Console.WriteLine(ioEx.Message); + } + } + //----------------------------------------------------------------------------------- + public static async Task WriteAllBytesAsync(string filePath, byte[] bytes) + { + try + { + int numBytesToRead = bytes.Length; + // Write the byte array to the other FileStream. + using FileStream fsNew = new(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + await fsNew.WriteAsync(bytes.AsMemory(0, numBytesToRead)); + } + catch (FileNotFoundException ioEx) + { + Console.WriteLine(ioEx.Message); + } + } + //----------------------------------------------------------------------------------- + + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/MsmhTools/HTML.cs b/MsmhTools/MsmhTools/HTML.cs new file mode 100644 index 0000000..a0fdb33 --- /dev/null +++ b/MsmhTools/MsmhTools/HTML.cs @@ -0,0 +1,77 @@ +using System; +using System.Text.RegularExpressions; + +namespace MsmhTools +{ + public class HTML + { + public static string RemoveHtmlFontTag(string s) + { + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + + while (s.ToLower().Contains(""), startIndex + 4); + s = s.Remove(startIndex, (endIndex - startIndex) + 1); + } + return s; + } + //----------------------------------------------------------------------------------- + public static string? RemoveHtmlTags(string s) + { + if (string.IsNullOrEmpty(s)) + return null; + //if (s == null) + // return null; + if (!s.Contains('<')) + return s; + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = s.Replace("", string.Empty); + s = RemoveParagraphTag(s); + return RemoveHtmlFontTag(s).Trim(); + } + //----------------------------------------------------------------------------------- + internal static string GetHtmlColorCode(Color color) + { + return string.Format("#{0:x2}{1:x2}{2:x2}", color.R, color.G, color.B); + } + //----------------------------------------------------------------------------------- + internal static string RemoveBrackets(string inputString) + { + string pattern = @"^[\[\{\(]|[\]\}\)]$"; + return Regex.Replace(inputString, pattern, string.Empty).Trim(); + } + //----------------------------------------------------------------------------------- + internal static string RemoveParagraphTag(string s) + { + s = s.Replace("

", string.Empty); + s = s.Replace("

", string.Empty); + s = s.Replace("

", string.Empty); + s = s.Replace("

", string.Empty); + + while (s.ToLower().Contains("

"), startIndex + 4); + s = s.Remove(startIndex, endIndex - startIndex + 1); + } + return s; + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/CommonTools.cs b/MsmhTools/MsmhTools/HTTPProxyServer/CommonTools.cs new file mode 100644 index 0000000..77d6cab --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/CommonTools.cs @@ -0,0 +1,306 @@ +using System; +using System.Diagnostics; +using System.Net; +using System.Net.NetworkInformation; +using System.Net.Sockets; +using System.Text; + +namespace MsmhTools.HTTPProxyServer +{ + internal static class CommonTools + { + internal static async Task IsIpBlocked(string ip, int port, int timeoutMS) + { + bool canPing = await CanPing(ip, timeoutMS); + + if (canPing) + { + bool canTcpConnect; + try + { + canTcpConnect = await CanTcpConnect(ip, port, timeoutMS); + } + catch (Exception) + { + canTcpConnect = false; + } + + if (canTcpConnect) + { + bool canConnect; + try + { + canConnect = await CanConnect(false, ip, port, timeoutMS); + } + catch (Exception) + { + canConnect = false; + } + + return !canConnect; + } + else + return true; + } + else + return true; + } + + internal static async Task IsHostBlocked(string host, int port, int timeoutMS) + { + IPAddress? ip = HostToIP(host); + if (ip != null) + { + return await IsIpBlocked(ip.ToString(), port, timeoutMS); + } + else + return true; + } + + internal static async Task IsHostBlockedBySNI(string host, int port, int timeoutMS) + { + bool canPing = await CanPing(host, timeoutMS); + + if (canPing) + { + bool canConnect; + try + { + canConnect = await CanConnect(true, host, port, timeoutMS); + } + catch (Exception) + { + canConnect = false; + } + + return !canConnect; + } + else + return true; + } + + private static async Task CanPing(string host, int timeoutMS) + { + var task = Task.Run(() => + { + try + { + Ping ping = new(); + PingReply reply = ping.Send(host, timeoutMS); + if (reply == null) return false; + + return reply.Status == IPStatus.Success; + } + catch (PingException) + { + return false; + } + }); + + if (await task.WaitAsync(TimeSpan.FromMilliseconds(timeoutMS + 500))) + return task.Result; + else + return false; + } + + private static async Task CanTcpConnect(string host, int port, int timeoutMS) + { + var task = Task.Run(() => + { + try + { + using TcpClient client = new(host, port); + client.SendTimeout = timeoutMS; + return true; + } + catch (Exception) + { + return false; + } + }); + + if (await task.WaitAsync(TimeSpan.FromMilliseconds(timeoutMS + 500))) + return task.Result; + else + return false; + } + + private static async Task CanConnect(bool https, string host, int port, int timeoutMS) + { + var task = Task.Run(async () => + { + try + { + string url; + if (https) url = $"https://{host}:{port}"; + else url = $"http://{host}"; + + Uri uri = new(url, UriKind.Absolute); + + using HttpClient httpClient = new(); + httpClient.Timeout = TimeSpan.FromMilliseconds(timeoutMS); + + await httpClient.GetAsync(uri); + return true; + } + catch (Exception) + { + return false; + } + }); + + if (await task.WaitAsync(TimeSpan.FromMilliseconds(timeoutMS + 500))) + return task.Result; + else + return false; + } + + internal static IPAddress? HostToIP(string host, bool getIPv6 = false) + { + IPAddress? result = null; + + try + { + //IPAddress[] ipAddresses = Dns.GetHostEntry(host).AddressList; + IPAddress[] ipAddresses = Dns.GetHostAddresses(host); + + if (ipAddresses == null || ipAddresses.Length == 0) + return null; + + if (!getIPv6) + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetwork) + { + result = ipAddresses[n]; + break; + } + } + } + else + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetworkV6) + { + result = ipAddresses[n]; + break; + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + return result; + } + + internal static byte[] AppendBytes(byte[] orig, byte[] append) + { + if (append == null) return orig; + if (orig == null) return append; + + byte[] ret = new byte[orig.Length + append.Length]; + Buffer.BlockCopy(orig, 0, ret, 0, orig.Length); + Buffer.BlockCopy(append, 0, ret, orig.Length, append.Length); + return ret; + } + + ///

+ /// Fully read a stream into a byte array. + /// + /// The input stream. + /// A byte array containing the data read from the stream. + internal static byte[] StreamToBytes(Stream input) + { + if (input == null) throw new ArgumentNullException(nameof(input)); + if (!input.CanRead) throw new InvalidOperationException("Input stream is not readable"); + + byte[] buffer = new byte[16 * 1024]; + using MemoryStream ms = new(); + int read; + + while ((read = input.Read(buffer, 0, buffer.Length)) > 0) + { + ms.Write(buffer, 0, read); + } + + return ms.ToArray(); + } + + /// + /// Add a key-value pair to a supplied Dictionary. + /// + /// The key. + /// The value. + /// An existing dictionary. + /// The existing dictionary with a new key and value, or, a new dictionary with the new key value pair. + internal static Dictionary AddToDict(string key, string? val, Dictionary existing) + { + if (string.IsNullOrEmpty(key)) return existing; + + Dictionary ret = new(); + + if (existing == null) + { + ret.Add(key, val); + return ret; + } + else + { + if (existing.ContainsKey(key)) + { + if (string.IsNullOrEmpty(val)) return existing; + string tempVal = existing[key]; + tempVal += "," + val; + existing.Remove(key); + existing.Add(key, tempVal); + return existing; + } + else + { + existing.Add(key, val); + return existing; + } + } + } + + internal static bool IsWin7() + { + bool result = false; + OperatingSystem os = Environment.OSVersion; + Version vs = os.Version; + + if (os.Platform == PlatformID.Win32NT) + { + if (vs.Minor == 1 && vs.Major == 6) + result = true; + } + + return result; + } + + internal static int Search(byte[] src, byte[] pattern) + { + int maxFirstCharSlot = src.Length - pattern.Length + 1; + for (int i = 0; i < maxFirstCharSlot; i++) + { + if (src[i] != pattern[0]) // compare only first byte + continue; + + // found a match on first byte, now try to match rest of the pattern + for (int j = pattern.Length - 1; j >= 1; j--) + { + if (src[i + j] != pattern[j]) break; + if (j == 1) return i; + } + } + return -1; + } + + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/DPIBypass.cs b/MsmhTools/MsmhTools/HTTPProxyServer/DPIBypass.cs new file mode 100644 index 0000000..af487e6 --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/DPIBypass.cs @@ -0,0 +1,610 @@ +using System; +using System.Diagnostics; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.HTTPProxyServer +{ + public partial class HTTPProxyServer + { + public partial class Program + { + //======================================= DPI Bypass Support + public class DPIBypass + { + public Mode DPIBypassMode { get; private set; } = Mode.Disable; + public ChunkMode DPIChunkMode { get; private set; } + private int BeforeSniChunks { get; set; } = 0; + private int SniChunks { get; set; } = 0; + public int AntiPatternOffset { get; private set; } = 2; + public int FragmentDelay { get; private set; } = 0; + public string? DestHostname { get; set; } + public int DestPort { get; set; } + + public event EventHandler? OnChunkDetailsReceived; + + public DPIBypass() { } + + public void Set(Mode mode, int beforeSniChunks, ChunkMode chunkMode, int sniChunks, int antiPatternOffset, int fragmentDelay) + { + DPIBypassMode = mode; + BeforeSniChunks = beforeSniChunks; + DPIChunkMode = chunkMode; + SniChunks = sniChunks; + AntiPatternOffset = antiPatternOffset; + FragmentDelay = fragmentDelay; + } + + // Max Data Length = 65536 + private readonly int MaxDataLength = 65536; + public enum Mode + { + Program, + Disable + } + + public enum ChunkMode + { + SNI, + SniExtension, + AllExtensions + } + + public class ProgramMode + { + private byte[] Data { get; set; } + private Socket Socket { get; set; } + + public ProgramMode(byte[] data, Socket socket) + { + Data = data; + Socket = socket; + } + + public void Send(DPIBypass bp) + { + int offset = bp.AntiPatternOffset; + Random random = new(); + + // Anti Pattern Fragment Chunks + int beforeSniChunks = random.Next(bp.BeforeSniChunks - offset, bp.BeforeSniChunks + offset); + if (beforeSniChunks <= 0) beforeSniChunks = 1; + if (beforeSniChunks > Data.Length) beforeSniChunks = Data.Length; + + int sniChunks = random.Next(bp.SniChunks - offset, bp.SniChunks + offset); + if (sniChunks <= 0) sniChunks = 1; + if (sniChunks > Data.Length) sniChunks = Data.Length; + + //Test(Data, Socket, beforeSniChunks, sniChunks, offset, bp); + + if (bp.DPIChunkMode == ChunkMode.AllExtensions) + SendDataInFragmentAllExtensions(Data, Socket, beforeSniChunks, sniChunks, offset, bp); + else if (bp.DPIChunkMode == ChunkMode.SniExtension) + SendDataInFragmentSniExtension(Data, Socket, beforeSniChunks, sniChunks, offset, bp); + else if (bp.DPIChunkMode == ChunkMode.SNI) + SendDataInFragmentSNI(Data, Socket, beforeSniChunks, sniChunks, offset, bp); + } + + private void Test(byte[] data, Socket socket, int beforeSniChunks, int sniChunks, int offset, DPIBypass bp) + { + Debug.WriteLine("SendDataInFragmentAllExtensions"); + // Create packets + List packets = new(); + packets.Clear(); + + List fbl = new(); + byte[] fb = new byte[1]; + fb[0] = 0x2; + for (int n = 0; n < 8; n++) + packets.Add(fb); + + SniReader sniReader = new(data); + + if (beforeSniChunks == 1 && sniChunks == 1) + { + packets.Add(data); + } + else + { + if (sniReader.HaveTlsExtensions) + { + int prevIndex; + int pos = 0; + SniReader.TlsExtensions allExtensions = sniReader.AllExtensions; + + pos += allExtensions.StartIndex; + prevIndex = pos - allExtensions.StartIndex; + + // Create packet before SNI + int beforeSniLength = allExtensions.StartIndex - prevIndex; + if (beforeSniLength > 0) + { + byte[] beforeSNI = new byte[beforeSniLength]; + Buffer.BlockCopy(data, prevIndex, beforeSNI, 0, beforeSniLength); + + List chunkedbeforeSNI = ChunkDataNormal(beforeSNI, beforeSniChunks, offset); + packets = packets.Concat(chunkedbeforeSNI).ToList(); + //Debug.WriteLine($"{prevIndex} ======> {beforeSniLength}"); + } + + // Create SNI packet + List chunkedSNI = ChunkDataNormal(allExtensions.Data, sniChunks, offset); + packets = packets.Concat(chunkedSNI).ToList(); + + //Debug.WriteLine($"{beforeSniLength} ====== {sni.SniStartIndex}"); + //Debug.WriteLine($"{sni.SniStartIndex} ======> {sni.SniStartIndex + sni.SniLength}"); + + pos = allExtensions.StartIndex + allExtensions.Length; + + // Create packet after SNI + if (pos < data.Length) + { + int afterSniStartIndex = pos; + int afterSniLength = data.Length - pos; + byte[] afterSni = new byte[afterSniLength]; + Buffer.BlockCopy(data, afterSniStartIndex, afterSni, 0, afterSniLength); + packets.Add(afterSni); + + //Debug.WriteLine($"{sni.SniStartIndex + sni.SniLength} ====== {afterSniStartIndex}"); + //Debug.WriteLine($"{afterSniStartIndex} ======> {afterSniStartIndex + afterSniLength}"); + //Debug.WriteLine($"{afterSniStartIndex + afterSniLength} ====== {data.Length}"); + } + } + else + { + packets.Add(data); + } + } + + SendPackets(data, socket, bp, packets); + } + + private void SendDataInFragmentAllExtensions(byte[] data, Socket socket, int beforeSniChunks, int sniChunks, int offset, DPIBypass bp) + { + Debug.WriteLine("SendDataInFragmentAllExtensions"); + // Create packets + List packets = new(); + packets.Clear(); + + SniReader sniReader = new(data); + + if (beforeSniChunks == 1 && sniChunks == 1) + { + packets.Add(data); + } + else + { + if (sniReader.HaveTlsExtensions) + { + int prevIndex; + int pos = 0; + SniReader.TlsExtensions allExtensions = sniReader.AllExtensions; + + pos += allExtensions.StartIndex; + prevIndex = pos - allExtensions.StartIndex; + + // Create packet before SNI + int beforeSniLength = allExtensions.StartIndex - prevIndex; + if (beforeSniLength > 0) + { + byte[] beforeSNI = new byte[beforeSniLength]; + Buffer.BlockCopy(data, prevIndex, beforeSNI, 0, beforeSniLength); + + List chunkedbeforeSNI = ChunkDataNormal(beforeSNI, beforeSniChunks, offset); + packets = packets.Concat(chunkedbeforeSNI).ToList(); + //Debug.WriteLine($"{prevIndex} ======> {beforeSniLength}"); + } + + // Create SNI packet + List chunkedSNI = ChunkDataNormal(allExtensions.Data, sniChunks, offset); + packets = packets.Concat(chunkedSNI).ToList(); + + //Debug.WriteLine($"{beforeSniLength} ====== {sni.SniStartIndex}"); + //Debug.WriteLine($"{sni.SniStartIndex} ======> {sni.SniStartIndex + sni.SniLength}"); + Debug.WriteLine("==-----== " + (sniReader.AllExtensions.StartIndex + sniReader.AllExtensions.Length) + " of " + data.Length); + pos = allExtensions.StartIndex + allExtensions.Length; + + // Create packet after SNI + if (pos < data.Length) + { + int afterSniStartIndex = pos; + int afterSniLength = data.Length - pos; + byte[] afterSni = new byte[afterSniLength]; + Buffer.BlockCopy(data, afterSniStartIndex, afterSni, 0, afterSniLength); + packets.Add(afterSni); + + //Debug.WriteLine($"{sni.SniStartIndex + sni.SniLength} ====== {afterSniStartIndex}"); + //Debug.WriteLine($"{afterSniStartIndex} ======> {afterSniStartIndex + afterSniLength}"); + //Debug.WriteLine($"{afterSniStartIndex + afterSniLength} ====== {data.Length}"); + } + } + else + { + packets.Add(data); + } + } + + SendPackets(data, socket, bp, packets); + } + + private void SendDataInFragmentSniExtension(byte[] data, Socket socket, int beforeSniChunks, int sniChunks, int offset, DPIBypass bp) + { + Debug.WriteLine("SendDataInFragmentSniExtension"); + // Create packets + List packets = new(); + packets.Clear(); + + SniReader sniReader = new(data); + if (sniReader.SniExtensionList.Count > 1) Debug.WriteLine($"=======================> We Have {sniReader.SniExtensionList.Count} SNI Extensions."); + + if (beforeSniChunks == 1 && sniChunks == 1) + { + packets.Add(data); + } + else + { + if (sniReader.HaveSniExtension) + { + int prevIndex; + int pos = 0; + for (int n = 0; n < sniReader.SniExtensionList.Count; n++) + { + SniReader.SniExtension sniExtension = sniReader.SniExtensionList[n]; + + pos += sniExtension.StartIndex; + prevIndex = pos - sniExtension.StartIndex; + + // Create packet before SNI + int beforeSniLength = sniExtension.StartIndex - prevIndex; + if (beforeSniLength > 0) + { + byte[] beforeSNI = new byte[beforeSniLength]; + Buffer.BlockCopy(data, prevIndex, beforeSNI, 0, beforeSniLength); + + List chunkedbeforeSNI = ChunkDataNormal(beforeSNI, beforeSniChunks, offset); + packets = packets.Concat(chunkedbeforeSNI).ToList(); + //Debug.WriteLine($"{prevIndex} ======> {beforeSniLength}"); + } + + // Create SNI packet + List chunkedSNI = ChunkDataNormal(sniExtension.Data, sniChunks, offset); + packets = packets.Concat(chunkedSNI).ToList(); + + //Debug.WriteLine($"{beforeSniLength} ====== {sni.SniStartIndex}"); + //Debug.WriteLine($"{sni.SniStartIndex} ======> {sni.SniStartIndex + sni.SniLength}"); + + pos = sniExtension.StartIndex + sniExtension.Length; + + // Last round + if (n == sniReader.SniExtensionList.Count - 1) + { + // Create packet after SNI + if (pos < data.Length) + { + int afterSniStartIndex = pos; + int afterSniLength = data.Length - pos; + byte[] afterSni = new byte[afterSniLength]; + Buffer.BlockCopy(data, afterSniStartIndex, afterSni, 0, afterSniLength); + packets.Add(afterSni); + + //Debug.WriteLine($"{sni.SniStartIndex + sni.SniLength} ====== {afterSniStartIndex}"); + //Debug.WriteLine($"{afterSniStartIndex} ======> {afterSniStartIndex + afterSniLength}"); + //Debug.WriteLine($"{afterSniStartIndex + afterSniLength} ====== {data.Length}"); + } + } + } + } + else + { + packets.Add(data); + } + } + + SendPackets(data, socket, bp, packets); + } + + private void SendDataInFragmentSNI(byte[] data, Socket socket, int beforeSniChunks, int sniChunks, int offset, DPIBypass bp) + { + //Debug.WriteLine("SendDataInFragmentSNI"); + // Create packets + List packets = new(); + packets.Clear(); + + SniReader sniReader = new(data); + if (sniReader.SniList.Count > 1) Debug.WriteLine($"=======================> We Have {sniReader.SniList.Count} SNIs."); + + if (beforeSniChunks == 1 && sniChunks == 1) + { + packets.Add(data); + } + else + { + if (sniReader.HaveSni) + { + int prevIndex; + int pos = 0; + for (int n = 0; n < sniReader.SniList.Count; n++) + { + SniReader.SNI sni = sniReader.SniList[n]; + + pos += sni.StartIndex; + prevIndex = pos - sni.StartIndex; + + // Create packet before SNI + int beforeSniLength = sni.StartIndex - prevIndex; + if (beforeSniLength > 0) + { + byte[] beforeSNI = new byte[beforeSniLength]; + Buffer.BlockCopy(data, prevIndex, beforeSNI, 0, beforeSniLength); + + List chunkedbeforeSNI = ChunkDataNormal(beforeSNI, beforeSniChunks, offset); + packets = packets.Concat(chunkedbeforeSNI).ToList(); + //Debug.WriteLine($"{prevIndex} ======> {beforeSniLength}"); + } + + // Create SNI packet + List chunkedSNI = ChunkDataNormal(sni.Data, sniChunks, offset); + packets = packets.Concat(chunkedSNI).ToList(); + + //Debug.WriteLine($"{beforeSniLength} ====== {sni.SniStartIndex}"); + //Debug.WriteLine($"{sni.SniStartIndex} ======> {sni.SniStartIndex + sni.SniLength}"); + + pos = sni.StartIndex + sni.Length; + + // Last round + if (n == sniReader.SniList.Count - 1) + { + // Create packet after SNI + if (pos < data.Length) + { + int afterSniStartIndex = pos; + int afterSniLength = data.Length - pos; + byte[] afterSni = new byte[afterSniLength]; + Buffer.BlockCopy(data, afterSniStartIndex, afterSni, 0, afterSniLength); + packets.Add(afterSni); + + //Debug.WriteLine($"{sni.SniStartIndex + sni.SniLength} ====== {afterSniStartIndex}"); + //Debug.WriteLine($"{afterSniStartIndex} ======> {afterSniStartIndex + afterSniLength}"); + //Debug.WriteLine($"{afterSniStartIndex + afterSniLength} ====== {data.Length}"); + } + } + } + } + else + { + packets.Add(data); + } + } + + SendPackets(data, socket, bp, packets); + } + + private List ChunkDataNormal(byte[] data, int chunks, int offset) + { + //Debug.WriteLine("ChunkDataNormal"); + // Create chunk packets + Random random = new(); + List chunkPackets = new(); + chunkPackets.Clear(); + int prevIndex; + int nn = 0; + int sum = 0; + for (int n = 0; n < data.Length; n++) + { + try + { + // Anti Pattern Fragment Size + int fragmentSize = data.Length / chunks; + + int fragmentSizeOut = random.Next(fragmentSize - offset, fragmentSize + offset); + if (fragmentSizeOut <= 0) fragmentSizeOut = 1; + if (fragmentSizeOut > data.Length) fragmentSizeOut = data.Length; + nn += fragmentSizeOut; + + if (nn > data.Length) + { + fragmentSizeOut = data.Length - (nn - fragmentSizeOut); + //Debug.WriteLine(fragmentSizeOut); + } + //Debug.WriteLine(fragmentSizeOut); + + sum += fragmentSizeOut; + byte[] fragmentData = new byte[fragmentSizeOut]; + prevIndex = sum - fragmentSizeOut; + Buffer.BlockCopy(data, prevIndex, fragmentData, 0, fragmentSizeOut); + chunkPackets.Add(fragmentData); + + if (sum >= data.Length) break; + } + catch (Exception ex) + { + chunkPackets.Clear(); + string msgEvent = $"Error, Creating normal packets: {ex.Message}"; + Debug.WriteLine(msgEvent); + return chunkPackets; + } + } + + return chunkPackets; + } + + private List ChunkDataNormal2(byte[] data, int fragmentSize) + { + Debug.WriteLine("ChunkDataNormal2"); + // Create chunk packets + List chunkPackets = new(); + chunkPackets.Clear(); + var fragments = data.Chunk(fragmentSize); + for (int n = 0; n < fragments.Count(); n++) + { + try + { + byte[] fragment = fragments.ToArray()[n]; + chunkPackets.Add(fragment); + } + catch (Exception ex) + { + chunkPackets.Clear(); + string msgEvent = $"Error, Creating normal2 packets: {ex.Message}"; + Debug.WriteLine(msgEvent); + return chunkPackets; + } + } + + return chunkPackets; + } + + private List ChunkDataNormal3(byte[] data, int fragmentSize) + { + Debug.WriteLine("ChunkDataNormal3"); + // Create chunk packets + List chunkPackets = new(); + chunkPackets.Clear(); + var fragments = ChunkViaMemory(data, fragmentSize); + for (int n = 0; n < fragments.Count(); n++) + { + try + { + byte[] fragment = fragments.ToArray()[n].ToArray(); + chunkPackets.Add(fragment); + } + catch (Exception ex) + { + chunkPackets.Clear(); + string msgEvent = $"Error, Creating normal3 packets: {ex.Message}"; + Debug.WriteLine(msgEvent); + return chunkPackets; + } + } + + return chunkPackets; + } + + private List ChunkDataRandom(byte[] data, int fragmentChunks) + { + Debug.WriteLine("ChunkDataRandom"); + //// Calculate fragment chunks from size + //int fragmentChunks = data.Length / fragmentSize; + //if (fragmentChunks <= 0) fragmentChunks = 1; + //if (fragmentChunks > data.Length) fragmentChunks = data.Length; + + // Create chunk packets + List packets = new(); + packets.Clear(); + fragmentChunks = Math.Min(fragmentChunks, data.Length); + List indices; + if (fragmentChunks < data.Length) + indices = GenerateRandomIndices(1, data.Length - 1, fragmentChunks - 1); + else + indices = Enumerable.Range(0, data.Length - 1).ToList(); + indices.Sort(); + + int prevIndex = 0; + for (int n = 0; n < indices.Count; n++) + { + try + { + int index = indices[n]; + byte[] fragmentData = new byte[index - prevIndex]; + Buffer.BlockCopy(data, prevIndex, fragmentData, 0, fragmentData.Length); + packets.Add(fragmentData); + prevIndex = index; + } + catch (Exception ex) + { + packets.Clear(); + string msgEvent = $"Error, Creating random packets: {ex.Message}"; + Debug.WriteLine(msgEvent); + return packets; + } + } + + try + { + byte[] lastFragmentData = new byte[data.Length - prevIndex]; + Buffer.BlockCopy(data, prevIndex, lastFragmentData, 0, lastFragmentData.Length); + packets.Add(lastFragmentData); + } + catch (Exception ex) + { + packets.Clear(); + string msgEvent = $"Error, Creating last random packet: {ex.Message}"; + Debug.WriteLine(msgEvent); + return packets; + } + + return packets; + } + + private void SendPackets(byte[] data, Socket socket, DPIBypass bp, List packets) + { + // Check packets + int allLength = 0; + for (int i = 0; i < packets.Count; i++) + allLength += packets[i].Length; + + if (allLength != data.Length) + { + Debug.WriteLine($"{allLength} == {data.Length}, Chunks: {packets.Count}"); + packets.Clear(); + return; + } + + // Send packets + for (int i = 0; i < packets.Count; i++) + { + try + { + byte[] fragmentData = packets[i]; + if (socket == null) return; + socket.Send(fragmentData); + if (bp.FragmentDelay > 0) + Task.Delay(bp.FragmentDelay).Wait(); + } + catch (Exception ex) + { + string msgEvent = $"Error, Send Packets: {ex.Message}"; + Debug.WriteLine(msgEvent); + return; + } + } + + string chunkDetailsEvent = $"{bp.DestHostname}:{bp.DestPort} Length: {data.Length}"; + if (packets.Count > 1) + chunkDetailsEvent += $", Chunks: {packets.Count}"; + bp.OnChunkDetailsReceived?.Invoke(chunkDetailsEvent, EventArgs.Empty); + } + } + + private static List GenerateRandomIndices(int minValue, int maxValue, int count) + { + Random random = new(); + HashSet indicesSet = new(); + + while (indicesSet.Count < count) + { + indicesSet.Add(random.Next(minValue, maxValue)); + } + + return new List(indicesSet); + } + + private static IEnumerable> ChunkViaMemory(T[] data, int size) + { + var chunks = data.Length / size; + for (int i = 0; i < chunks; i++) + { + yield return data.AsMemory(i * size, size); + } + var leftOver = data.Length % size; + if (leftOver > 0) + { + yield return data.AsMemory(chunks * size, leftOver); + } + } + + } + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/Decoder.cs b/MsmhTools/MsmhTools/HTTPProxyServer/Decoder.cs new file mode 100644 index 0000000..5ca5e79 --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/Decoder.cs @@ -0,0 +1,225 @@ +using System; +using System.Diagnostics; +using System.Text; + +namespace MsmhTools.HTTPProxyServer +{ + /// + /// Decode chunk-transfer-encoded streams or byte arrays, particularly from HTTP data. + /// + public class ChunkDecoder + { + /// + /// Callback to invoke to process signatures found in the chunk length line. + /// Called before ProcessChunk. + /// Return 'true' to continue operation. + /// Return 'false' to terminate. + /// + public Func, byte[], bool>? ProcessSignature = null; + + /// + /// Callback to invoke to process a chunk. + /// Called after ProcessSignature. + /// Return 'true' to continue operation. + /// Return 'false' to terminate. + /// + public Func? ProcessChunk = null; + + /// + /// Instantiate the object. + /// + public ChunkDecoder() + { + + } + + /// + /// Decode a chunk-transfer-encoded byte array to a non-chunked byte array. + /// + /// Original byte array with chunk-transfer-encoding. + /// Data without encoding. + /// True if successful. + public bool Decode(byte[] data, out byte[]? outData) + { + outData = null; + if (data == null || data.Length < 1) throw new ArgumentNullException(nameof(data)); + + MemoryStream ms = new(); + ms.Write(data, 0, data.Length); + ms.Seek(0, SeekOrigin.Begin); + + if (Decode(ms, out long contentLength, out MemoryStream outStream)) + { + if (contentLength > 0) + { + outData = new byte[contentLength]; + outData = outStream.ToArray(); + } + + return true; + } + else + { + return false; + } + } + + /// + /// Decode a chunk-transfer-encoded stream to a non-chunked stream. + /// + /// Original stream with chunk-transfer-encoding. + /// Content length of the data in the output stream. + /// Output stream containing data without encoding. + /// True if successful. + public bool Decode(Stream stream, out long contentLength, out MemoryStream outStream) + { + contentLength = 0; + outStream = new MemoryStream(); + + if (stream == null) throw new ArgumentNullException(nameof(stream)); + if (!stream.CanRead) throw new ArgumentException("Cannot read from supplied stream."); + if (stream.CanSeek) stream.Seek(0, SeekOrigin.Begin); + + int bytesRead = 0; + long segmentLength = 0; + byte[] headerBuffer = new byte[1]; + string header = ""; + byte[]? dataBuffer = null; + long bytesRemaining = 0; + + while (true) + { + // Read-Chunk-Length + Log("Reading chunk length"); + headerBuffer = new byte[1]; + header = ""; + + while (true) + { + bytesRead = stream.Read(headerBuffer, 0, headerBuffer.Length); + if (bytesRead > 0) + { + Log("| Read " + bytesRead + ": " + Encoding.UTF8.GetString(headerBuffer).Trim()); + header += Convert.ToChar(headerBuffer[0]); + if ((int)headerBuffer[0] == 10) + { + // end of header + Log("| End of header detected"); + break; + } + } + } + + // Check-for-Key-Value-Pairs + header = header.Trim(); + string segmentLengthStr; + Dictionary signatures = new(); + + if (header.Contains(';')) + { + Log("Embedded key-value pairs detected"); + string[] vals = header.Split(';'); + segmentLengthStr = vals[0]; + + if (vals.Length > 1) + { + for (int i = 1; i < vals.Length; i++) + { + string[] kvp = vals[i].Split('='); + if (kvp.Length == 1) + { + Log("| " + kvp[0] + ": null"); + signatures.Add(kvp[0], null); + } + if (kvp.Length == 2) + { + Log("| " + kvp[0] + ": " + kvp[1]); + signatures.Add(kvp[0], kvp[1]); + } + } + } + } + else + { + segmentLengthStr = header; + } + + Log("Reading data of length " + segmentLengthStr); + + // Check-for-End + if (!string.IsNullOrEmpty(segmentLengthStr)) segmentLength = Convert.ToInt64(segmentLengthStr, 16); + if (segmentLength < 1) // Segment length of 0 indicates end of message + { + // Read out the final \r\n + Log("End of message detected"); + headerBuffer = new byte[2]; + bytesRead = stream.Read(headerBuffer, 0, headerBuffer.Length); + break; // end of stream + } + + // Read-Data + dataBuffer = new byte[segmentLength]; + bytesRemaining = segmentLength; + + while (bytesRemaining > 0) + { + bytesRead = stream.Read(dataBuffer, 0, dataBuffer.Length); + if (bytesRead > 0) + { + Log("| Read " + bytesRead + ": " + Encoding.UTF8.GetString(dataBuffer)); + + if (ProcessSignature != null && signatures != null && signatures.Count > 0) + { + foreach (KeyValuePair currSignature in signatures) + { + if (!ProcessSignature(currSignature, dataBuffer)) + { + Log("*** Failed to process signature " + currSignature.Key + ", exiting"); + return false; + } + } + } + + if (ProcessChunk != null) + { + if (!ProcessChunk(dataBuffer)) + { + Log("*** Failed to process chunk"); + return false; + } + } + + outStream.Write(dataBuffer, 0, bytesRead); + bytesRemaining -= bytesRead; + contentLength += bytesRead; + Log("| Content length is now " + contentLength); + } + } + + // Read-CRLF-After-Data + // Read out the final \r\n + byte[] newlineBuffer = new byte[1]; + while (true) + { + bytesRead = stream.Read(newlineBuffer, 0, newlineBuffer.Length); + if (bytesRead > 0) + { + if ((int)newlineBuffer[0] == 10) break; + } + } + } + + outStream.Seek(0, SeekOrigin.Begin); + return true; + } + + // Private-Methods + private void Log(string msg) + { + if (!string.IsNullOrEmpty(msg)) + { + Debug.WriteLine(msg); + } + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs b/MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs new file mode 100644 index 0000000..8300967 --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServer.cs @@ -0,0 +1,782 @@ +using System; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using System.Threading.Tasks; +using System.Text; +using System.Diagnostics; +using MsmhTools.DnsTool; +using MsmhTools.ProxifiedTcpClient; + +namespace MsmhTools.HTTPProxyServer +{ + public partial class HTTPProxyServer + { + //======================================= DPI Bypass Support: Static + public static Program.DPIBypass StaticDPIBypassProgram = new(); + public void EnableStaticDPIBypass(Program.DPIBypass dpiBypassProgram) + { + StaticDPIBypassProgram = dpiBypassProgram; + } + + //--- Constant + public Program.DPIBypass DPIBypassProgram = new(); + public void EnableDPIBypass(Program.DPIBypass dpiBypassProgram) + { + DPIBypassProgram = dpiBypassProgram; + } + + //======================================= UpStream Proxy Support + public Program.UpStreamProxy UpStreamProxyProgram = new(); + public void EnableUpStreamProxy(Program.UpStreamProxy upStreamProxyProgram) + { + UpStreamProxyProgram = upStreamProxyProgram; + } + + //======================================= DNS Support + public Program.Dns DNSProgram = new(); + public void EnableDNS(Program.Dns dnsProgram) + { + DNSProgram = dnsProgram; + } + + //======================================= Fake DNS Support + public Program.FakeDns FakeDNSProgram = new(); + public void EnableFakeDNS(Program.FakeDns fakeDnsProgram) + { + FakeDNSProgram = fakeDnsProgram; + } + + //======================================= Black White List Support + public Program.BlackWhiteList BWListProgram = new(); + public void EnableBlackWhiteList(Program.BlackWhiteList blackWhiteListProgram) + { + BWListProgram = blackWhiteListProgram; + } + + //======================================= DontBypass Support + public Program.DontBypass DontBypassProgram = new(); + public void EnableDontBypass(Program.DontBypass dontBypassProgram) + { + DontBypassProgram = dontBypassProgram; + } + + //======================================= Start HTTP Proxy + internal ProxySettings _Settings = new(); + + private TunnelManager _TunnelManager = new(); + private TcpListener? _TcpListener; + + private CancellationTokenSource? _CancelTokenSource; + private CancellationToken _CancelToken; + + private System.Timers.Timer KillOnOverloadTimer { get; set; } = new(5000); + private PerformanceCounter PFC { get; set; } = new(); + + private bool Cancel = false; + + //private readonly EventWaitHandle Terminator = new(false, EventResetMode.ManualReset); + + private Thread? MainThread; + private List BlackList { get; set; } = new(); + + public event EventHandler? OnRequestReceived; + public event EventHandler? OnErrorOccurred; + public event EventHandler? OnDebugInfoReceived; + public readonly int MaxDataSize = 65536; + public bool IsRunning { get; private set; } = false; + public bool BlockPort80 { get; set; } = false; + + /// + /// Kill Requests If CPU Usage is Higher than this Value. + /// + public float KillOnCpuUsage { get; set; } = 25; + + public HTTPProxyServer() + { + // Captive Portal and others + BlackList.Add("ipv6.msftconnecttest.com:80"); + BlackList.Add("msedge.b.tlu.dl.delivery.mp.microsoft.com:80"); + BlackList.Add("edgedl.me.gvt1.com:80"); + BlackList.Add("detectportal.firefox.com:80"); + BlackList.Add("gstatic.com:80"); + BlackList = BlackList.Distinct().ToList(); + + // CPU + PFC.CategoryName = "Process"; + PFC.CounterName = "% Processor Time"; + PFC.InstanceName = Process.GetCurrentProcess().ProcessName; + PFC.ReadOnly = true; + } + + public void Start(IPAddress ipAddress, int port, int maxThreads) + { + if (IsRunning) return; + IsRunning = true; + + _Settings = new(); + _Settings.ListenerIpAddress = ipAddress; + _Settings.ListenerPort = port; + _Settings.MaxThreads = maxThreads; + + Welcome(); + + _TunnelManager = new(); + + _CancelTokenSource = new(); + _CancelToken = _CancelTokenSource.Token; + + Cancel = false; + + KillOnOverloadTimer.Elapsed += KillOnOverloadTimer_Elapsed; + KillOnOverloadTimer.Start(); + + //Task.Run(() => AcceptConnections(), _CancelToken); + + ThreadStart threadStart = new(AcceptConnections); + MainThread = new(threadStart); + MainThread.SetApartmentState(ApartmentState.STA); + MainThread.Start(); + + //Task.Run(() => + //{ + // Task.Run(() => AcceptConnections(), _CancelToken); + + // Terminator.Reset(); + // Terminator.WaitOne(); + //}); + + + } + + private void KillOnOverloadTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e) + { + float cpu = PFC.NextValue() / Environment.ProcessorCount; + if (AllRequests >= _Settings.MaxThreads || cpu > KillOnCpuUsage) + { + KillAll(); + } + } + + /// + /// Kill all active requests + /// + public void KillAll() + { + if (_TunnelManager != null) + { + var dic = _TunnelManager.GetTunnels(); + Debug.WriteLine(dic.Count); + foreach (var item in dic) + { + Debug.WriteLine(item.Key); + _TunnelManager.Remove(item.Key); + } + } + } + + public void Stop() + { + if (IsRunning && _TcpListener != null && _CancelTokenSource != null) + { + IsRunning = false; + //Terminator.Set(); + _CancelTokenSource.Cancel(true); + Cancel = true; + _TcpListener.Stop(); + + KillAll(); + + KillOnOverloadTimer.Stop(); + + IsRunning = _TcpListener.Server.IsBound; + Goodbye(); + } + } + + public int ListeningPort + { + get => _Settings.ListenerPort; + } + + public bool IsDpiActive + { + get => DPIBypassProgram.DPIBypassMode != Program.DPIBypass.Mode.Disable || StaticDPIBypassProgram.DPIBypassMode != Program.DPIBypass.Mode.Disable; + } + + public int ActiveTunnels + { + get => _TunnelManager.Count; + } + + public int AllRequests { get; private set; } = 0; + + public int MaxRequests + { + get => _Settings != null ? _Settings.MaxThreads : 0; + } + + private void Welcome() + { + // Event + string msgEvent = $"HTTP Proxy Server starting on {_Settings.ListenerIpAddress}:{_Settings.ListenerPort}"; + OnRequestReceived?.Invoke(msgEvent, EventArgs.Empty); + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + } + + private void Goodbye() + { + // Event + string msgEvent = "HTTP Proxy Server stopped."; + OnRequestReceived?.Invoke(msgEvent, EventArgs.Empty); + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + } + + private async void AcceptConnections() + { + if (Cancel) return; + + try + { + _TcpListener = new(_Settings.ListenerIpAddress, _Settings.ListenerPort); + _TcpListener.Start(); + Task.Delay(200).Wait(); + + if (_TcpListener != null) + { + IsRunning = _TcpListener.Server.IsBound; + + while (!Cancel) + { + TcpClient tcpClient = await _TcpListener.AcceptTcpClientAsync(); + if (tcpClient.Connected) ProcessConnectionSync(tcpClient); + if (_CancelToken.IsCancellationRequested || Cancel) + break; + } + } + else + { + IsRunning = false; + } + } + catch (Exception eOuter) + { + // Event Error + if (!_CancelToken.IsCancellationRequested || !Cancel) + { + string msgEventErr = $"Accept Connections: {eOuter.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + } + } + } + + private void ProcessConnectionSync(TcpClient tcpClient) + { + Task.Run(() => ProcessConnection(tcpClient)); + } + + private async void ProcessConnection(TcpClient client) + { + if (Cancel) return; + + AllRequests++; + + // Generate unique int + int connectionId = Guid.NewGuid().GetHashCode() + BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0); + //Debug.WriteLine($"Active Requests: {AllRequests} of {_Settings.MaxThreads}"); + + try + { + // Check if Max Exceeded + if (AllRequests >= _Settings.MaxThreads) + { + // Event + string msgEventErr = $"AcceptConnections connection count {AllRequests} exceeds configured max {_Settings.MaxThreads}."; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + Debug.WriteLine(msgEventErr); + + // Kill em + try + { + client.Close(); + } + catch (Exception) + { + // do nothing + } + + if (AllRequests > 0) AllRequests--; + return; + } + + IPEndPoint? clientIpEndpoint = client.Client.RemoteEndPoint as IPEndPoint; + IPEndPoint? serverIpEndpoint = client.Client.LocalEndPoint as IPEndPoint; + + string clientEndpoint = clientIpEndpoint != null ? clientIpEndpoint.ToString() : string.Empty; + string serverEndpoint = serverIpEndpoint != null ? serverIpEndpoint.ToString() : string.Empty; + + string clientIp = clientIpEndpoint != null ? clientIpEndpoint.Address.ToString() : string.Empty; + int clientPort = clientIpEndpoint != null ? clientIpEndpoint.Port : 0; + + string serverIp = serverIpEndpoint != null ? serverIpEndpoint.Address.ToString() : string.Empty; + int serverPort = serverIpEndpoint != null ? serverIpEndpoint.Port : 0; + + Request? req = Request.FromTcpClient(client); + if (req == null) + { + // Event Error + string msgEventErr = $"{clientEndpoint} unable to build HTTP request."; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + return; + } + + if (string.IsNullOrEmpty(req.DestHostname) || req.DestHostPort == 0) + { + // Event Error + string msgEventErr = "Hostname is empty or Port is 0."; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + return; + } + + if (req.Data != null && req.Data.Length < 1) + { + // Event Error + string msgEventErr = "Data length is 0."; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + return; + } + + req.SourceIp = clientIp; + req.SourcePort = clientPort; + req.DestIp = serverIp; + req.DestPort = serverPort; + + // Block Port 80 + if (BlockPort80 && req.DestHostPort == 80) + { + // Event + string msgEvent = $"Block Port 80: {req.FullUrl}, request denied."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + return; + } + + //// Block Built-in Black List + for (int n = 0; n < BlackList.Count; n++) + { + string website = BlackList[n]; + string destWebsite = $"{req.DestHostname}:{req.DestHostPort}"; + if (destWebsite == website) + { + // Event + string msgEvent = $"Black list: {req.FullUrl}, request denied."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + return; + } + } + + //// Black White List Program + if (BWListProgram.ListMode != Program.BlackWhiteList.Mode.Disable) + { + bool isMatch = BWListProgram.IsMatch(req.DestHostname); + if (isMatch) + { + // Event + string msgEvent = $"Black White list: {req.FullUrl}, request denied."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + return; + } + } + + //// DontBypass Program + req.ApplyDpiBypass = true; + if (DontBypassProgram.DontBypassMode != Program.DontBypass.Mode.Disable) + { + bool isMatch = DontBypassProgram.IsMatch(req.DestHostname); + if (isMatch) req.ApplyDpiBypass = false; + } + + // Save Orig Hostname + string origHostname = req.DestHostname; + + //// FakeDNS Program + if (FakeDNSProgram.FakeDnsMode != Program.FakeDns.Mode.Disable) + req.DestHostname = FakeDNSProgram.Get(req.DestHostname); + + //// DNS Program + if (origHostname.Equals(req.DestHostname)) + { + if (DNSProgram.DNSMode != Program.Dns.Mode.Disable) + { + string ipStr = await DNSProgram.Get(req.DestHostname); + if (!ipStr.StartsWith("10.") && !ipStr.StartsWith("127.0.") && !ipStr.StartsWith("172.16.") && !ipStr.StartsWith("192.168.")) + req.DestHostname = ipStr; + } + } + + // Event + string msgReqEvent = $"{origHostname}:{req.DestHostPort}"; + if (!origHostname.Equals(req.DestHostname)) + msgReqEvent = $"{origHostname}:{req.DestHostPort} => {req.DestHostname}"; + + // Is Upstream Active + bool isUpStreamProgramActive = UpStreamProxyProgram.UpStreamMode != Program.UpStreamProxy.Mode.Disable; + + if (isUpStreamProgramActive) + { + // Check if Dest Host or IP is blocked + bool isIp = IPAddress.TryParse(req.DestHostname, out IPAddress _); + if (isIp) + req.IsDestBlocked = await CommonTools.IsIpBlocked(req.DestHostname, req.DestHostPort, 2000); + else + req.IsDestBlocked = await CommonTools.IsHostBlocked(req.DestHostname, req.DestHostPort, 2000); + + if (req.IsDestBlocked && isIp) + msgReqEvent += " (IP is blocked)"; + if (req.IsDestBlocked && !isIp) + msgReqEvent += " (Host is blocked)"; + } + + // Apply upstream? + bool applyUpStreamProxy = false; + if ((isUpStreamProgramActive && !UpStreamProxyProgram.OnlyApplyToBlockedIps) || + (isUpStreamProgramActive && UpStreamProxyProgram.OnlyApplyToBlockedIps && req.IsDestBlocked)) + applyUpStreamProxy = true; + + if (applyUpStreamProxy) + msgReqEvent += " (Bypassing through Upstream Proxy)"; + + //Debug.WriteLine(msgReqEvent); + OnRequestReceived?.Invoke(msgReqEvent, EventArgs.Empty); + + // Not a good idea + //if (req.IsDestBlocked && !applyUpStreamProxy) + //{ + // if (client.Connected) client.Close(); + // if (AllRequests > 0) AllRequests--; + // return; + //} + + // Begin Connect + if (req.Method == HttpMethod.Post) + { + // Event + string msgEvent = $"{clientEndpoint} proxying request via CONNECT to {req.FullUrl}"; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + //await Task.Run(async () => await ConnectHttpsRequest(connectionId, client, req, applyUpStreamProxy)); + await ConnectHttpsRequest(connectionId, client, req, applyUpStreamProxy); + } + else + { + // Event + string msgEvent = $"{clientEndpoint} proxying request to {req.FullUrl}"; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + await ConnectHttpRequestAsync(req, client); + } + + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + } + catch (IOException) + { + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + } + catch (Exception ex) + { + // Event Error + string msgEventErr = $"Process Connection: {ex.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + + if (client.Connected) client.Close(); + if (AllRequests > 0) AllRequests--; + } + } + + //======================================== Connect HTTPS Request + + private async Task ConnectHttpsRequest(int connectionId, TcpClient client, Request req, bool applyUpStreamProxy = false) + { + if (Cancel) return; + if (client.Client == null) return; + + TcpClient server = new(); + + try + { + client.NoDelay = true; + client.Client.NoDelay = true; + + try + { + if (!string.IsNullOrEmpty(req.DestHostname)) + { + if (applyUpStreamProxy) + { + TcpClient? proxifiedTcpClient = UpStreamProxyProgram.Connect(req.DestHostname, req.DestHostPort); + if (proxifiedTcpClient != null) + { + server = proxifiedTcpClient; + } + else + { + // Event Error + string msgEventErr = $"Couldn't connect to upstream proxy."; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + + server.Connect(req.DestHostname, req.DestHostPort); + } + } + else + { + server.Connect(req.DestHostname, req.DestHostPort); + } + } + else + { + // Event Error + string msgEventErr = $"Hostname was null or empty."; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + return; + } + } + catch (Exception) + { + // Event Error + string msgEventErr = $"Connect Request failed to {req.DestHostname}:{req.DestHostPort}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + return; + } + + server.NoDelay = true; + server.Client.NoDelay = true; + + byte[] connectResponse = ConnectResponse(); + static byte[] ConnectResponse() + { + string resp = "HTTP/1.1 200 Connection Established\r\nConnection: close\r\n\r\n"; + return Encoding.UTF8.GetBytes(resp); + } + if (client.Client == null) return; + client.Client.Send(connectResponse); + + if (string.IsNullOrEmpty(req.SourceIp) || string.IsNullOrEmpty(req.DestIp)) + { + // Event Error + string msgEventErr = $"Source or dest IP were null or empty. SourceIp: {req.SourceIp} DestIp: {req.DestIp}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + return; + } + + // Create Tunnel + Tunnel currentTunnel = new(req, client, server); + + currentTunnel.EnableDPIBypass(DPIBypassProgram); + + // Tunnel Event OnDebugInfoReceived + currentTunnel.OnDebugInfoReceived -= CurrentTunnel_OnDebugInfoReceived; + currentTunnel.OnDebugInfoReceived += CurrentTunnel_OnDebugInfoReceived; + void CurrentTunnel_OnDebugInfoReceived(object? sender, EventArgs e) + { + if (sender is string debugInfo) + OnDebugInfoReceived?.Invoke(debugInfo, EventArgs.Empty); + } + + // Tunnel Event OnErrorOccurred + currentTunnel.OnErrorOccurred -= CurrentTunnel_OnErrorOccurred; + currentTunnel.OnErrorOccurred += CurrentTunnel_OnErrorOccurred; + void CurrentTunnel_OnErrorOccurred(object? sender, EventArgs e) + { + if (sender is string error) + OnErrorOccurred?.Invoke(error, EventArgs.Empty); + } + + if (_TunnelManager != null) + _TunnelManager.Add(connectionId, currentTunnel); + + while (currentTunnel.IsActive()) + { + await Task.Delay(100); + } + } + catch (SocketException) + { + // do nothing + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"Connect Request: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + } + finally + { + if (_TunnelManager != null) + _TunnelManager.Remove(connectionId); + + if (client != null) + client.Dispose(); + + if (server != null) + server.Dispose(); + } + } + + //======================================== Connect HTTP Request + + private async Task ConnectHttpRequestAsync(Request req, TcpClient tcpClient) + { + if (Cancel) return; + + RestResponse? resp = await proxyRequest(req); + if (resp != null) + { + NetworkStream ns = tcpClient.GetStream(); + await sendRestResponse(resp, ns); + await ns.FlushAsync(); + ns.Close(); + } + + async Task proxyRequest(Request request) + { + if (Cancel) return null; + + try + { + if (request.Headers != null) + { + string foundVal = string.Empty; + + foreach (KeyValuePair currKvp in request.Headers) + { + if (string.IsNullOrEmpty(currKvp.Key)) continue; + if (currKvp.Key.ToLower().Equals("expect")) + { + foundVal = currKvp.Key; + break; + } + } + + if (!string.IsNullOrEmpty(foundVal)) request.Headers.Remove(foundVal); + } + + if (string.IsNullOrEmpty(request.FullUrl)) + { + // Evemt Error + string msgEventErr = $"Full Url was null or empty. FullUrl: {request.FullUrl}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + return null; + } + + //(HttpMethod)(Enum.Parse(typeof(RestWrapper.HttpMethod), request.Method.ToString())), + RestRequest rRequest = new( + request.FullUrl, + request.Method, + request.Headers, + request.ContentType); + + if (request.ContentLength > 0) + { + return await rRequest.SendAsync(request.ContentLength, request.DataStream); + } + else + { + return await rRequest.SendAsync(); + } + } + catch (Exception e) + { + // Evemt Error + string msgEventErr = $"{e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + return null; + } + } + + async Task sendRestResponse(RestResponse resp, NetworkStream ns) + { + if (Cancel) return; + + try + { + byte[]? ret = Array.Empty(); + string statusLine = resp.ProtocolVersion + " " + resp.StatusCode + " " + resp.StatusDescription + "\r\n"; + ret = CommonTools.AppendBytes(ret, Encoding.UTF8.GetBytes(statusLine)); + + if (!string.IsNullOrEmpty(resp.ContentType)) + { + string contentTypeLine = "Content-Type: " + resp.ContentType + "\r\n"; + ret = CommonTools.AppendBytes(ret, Encoding.UTF8.GetBytes(contentTypeLine)); + } + + if (resp.ContentLength > 0) + { + string contentLenLine = "Content-Length: " + resp.ContentLength + "\r\n"; + ret = CommonTools.AppendBytes(ret, Encoding.UTF8.GetBytes(contentLenLine)); + } + + if (resp.Headers != null && resp.Headers.Count > 0) + { + foreach (KeyValuePair currHeader in resp.Headers) + { + if (string.IsNullOrEmpty(currHeader.Key)) continue; + if (currHeader.Key.ToLower().Trim().Equals("content-type")) continue; + if (currHeader.Key.ToLower().Trim().Equals("content-length")) continue; + + string headerLine = currHeader.Key + ": " + currHeader.Value + "\r\n"; + ret = CommonTools.AppendBytes(ret, Encoding.UTF8.GetBytes(headerLine)); + } + } + + ret = CommonTools.AppendBytes(ret, Encoding.UTF8.GetBytes("\r\n")); + + await ns.WriteAsync(ret); + await ns.FlushAsync(); + + if (resp.Data != null && resp.ContentLength > 0) + { + long bytesRemaining = resp.ContentLength; + byte[] buffer = new byte[65536]; + + while (bytesRemaining > 0) + { + int bytesRead = await resp.Data.ReadAsync(buffer); + if (bytesRead > 0) + { + bytesRemaining -= bytesRead; + await ns.WriteAsync(buffer.AsMemory(0, bytesRead)); + await ns.FlushAsync(); + } + } + } + + return; + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"Send Rest Response: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + return; + } + } + } + + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServerProgram.cs b/MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServerProgram.cs new file mode 100644 index 0000000..b77bfd9 --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/HTTPProxyServerProgram.cs @@ -0,0 +1,569 @@ +using MsmhTools.DnsTool; +using MsmhTools.ProxifiedTcpClient; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools.HTTPProxyServer +{ + public partial class HTTPProxyServer + { + public partial class Program + { + //======================================= UpStream Proxy Support + public class UpStreamProxy + { + public enum Mode + { + HTTP, + SOCKS5, + Disable + } + + public Mode UpStreamMode { get; private set; } = Mode.Disable; + public string? ProxyHost { get; private set; } + public int ProxyPort { get; private set; } + public string? ProxyUsername { get; private set; } + public string? ProxyPassword { get; private set; } + public bool OnlyApplyToBlockedIps { get; set; } + + public UpStreamProxy() { } + + public void Set(Mode mode, string proxyHost, int proxyPort, bool onlyApplyToBlockedIps) + { + //Set + UpStreamMode = mode; + ProxyHost = proxyHost; + ProxyPort = proxyPort; + OnlyApplyToBlockedIps = onlyApplyToBlockedIps; + } + + public void Set(Mode mode, string proxyHost, int proxyPort, string proxyUsername, string proxyPassword, bool onlyApplyToBlockedIps) + { + //Set + UpStreamMode = mode; + ProxyHost = proxyHost; + ProxyPort = proxyPort; + ProxyUsername = proxyUsername; + ProxyPassword = proxyPassword; + OnlyApplyToBlockedIps = onlyApplyToBlockedIps; + } + + /// + /// Connect TcpClient through Proxy + /// + /// + /// + /// Returns null if cannot connect to proxy + internal TcpClient? Connect(string destHostname, int destHostPort) + { + if (string.IsNullOrEmpty(ProxyHost)) return null; + + if (UpStreamMode == Mode.HTTP) + { + HttpProxyClient httpProxyClient = new(ProxyHost, ProxyPort, ProxyUsername, ProxyPassword); + return httpProxyClient.CreateConnection(destHostname, destHostPort); + } + else if (UpStreamMode == Mode.SOCKS5) + { + Socks5ProxyClient socks5ProxyClient = new(ProxyHost, ProxyPort, ProxyUsername, ProxyPassword); + return socks5ProxyClient.CreateConnection(destHostname, destHostPort); + } + else + return null; + } + } + + //======================================= DNS Support + public class Dns + { + public enum Mode + { + System, + DoH, + PlainDNS, + Disable + } + + public Mode DNSMode { get; private set; } = Mode.Disable; + public string? DNS { get; private set; } + public string? DnsCleanIp { get; private set; } + public int Timeout { get; private set; } = 10; + public bool ChangeCloudflareIP { get; set; } = false; + + /// + /// Only for DoH Mode + /// + public string? ProxyScheme { get; private set; } + public string? Host { get; protected set; } + private string? CloudflareCleanIP { get; set; } + private List CloudflareIPs { get; set; } = new(); + + public Dns() { } + + public void Set(Mode mode, string? dns, string? dnsCleanIp, int timeoutSec, string? proxyScheme = null) + { + // Set + DNSMode = mode; + DNS = dns; + DnsCleanIp = dnsCleanIp ?? string.Empty; + Timeout = timeoutSec; + ProxyScheme = proxyScheme; + + if (DNSMode == Mode.Disable) return; + if (string.IsNullOrEmpty(dns)) return; + + // Get Host + string host = dns; + if (DNSMode == Mode.DoH) + { + if (host.StartsWith("https://")) host = host[8..]; + if (host.Contains('/')) + { + string[] split = host.Split('/'); + host = split[0]; + } + } + else if (DNSMode == Mode.PlainDNS) + { + if (host.Contains(':')) + { + string[] split = host.Split(':'); + host = split[0]; + } + } + Host = host; + } + + /// + /// Redirect all Cloudflare IPs to a clean IP + /// + /// CF Clean IP + /// e.g. 103.21.244.0 - 103.21.244.255\n198.41.128.0 - 198.41.143.255 + public void SetCloudflareIPs(string cfCleanIP, string? cfIpRange = null) + { + if (!string.IsNullOrEmpty(cfIpRange)) + cfIpRange += Environment.NewLine; + ChangeCloudflareIP = true; + CloudflareCleanIP = cfCleanIP; + + // Built-in CF IPs + string defaultCfIPs = "103.21.244.0 - 103.21.244.255\n"; + defaultCfIPs += "103.22.200.0 - 103.22.200.255\n"; + defaultCfIPs += "103.31.4.0 - 103.31.5.255\n"; + defaultCfIPs += "104.16.0.0 - 104.31.255.255\n"; + defaultCfIPs += "108.162.192.0 - 108.162.207.255\n"; + defaultCfIPs += "131.0.72.0 - 131.0.75.255\n"; + defaultCfIPs += "141.101.64.0 - 141.101.65.255\n"; + defaultCfIPs += "162.158.0.0 - 162.158.3.255\n"; + defaultCfIPs += "172.64.0.0 - 172.67.255.255\n"; + defaultCfIPs += "173.245.48.0 - 173.245.48.255\n"; + defaultCfIPs += "188.114.96.0 - 188.114.99.255\n"; + defaultCfIPs += "190.93.240.0 - 190.93.243.255\n"; + defaultCfIPs += "197.234.240.0 - 197.234.243.255\n"; + defaultCfIPs += "198.41.128.0 - 198.41.143.255"; + + if (string.IsNullOrEmpty(cfIpRange) || string.IsNullOrWhiteSpace(cfIpRange)) + CloudflareIPs = defaultCfIPs.SplitToLines(); + else + CloudflareIPs = cfIpRange.SplitToLines(); + } + + private bool IsCfIP(string ipString) + { + try + { + string[] ips = ipString.Split('.'); + int ip1 = int.Parse(ips[0]); + int ip2 = int.Parse(ips[1]); + int ip3 = int.Parse(ips[2]); + int ip4 = int.Parse(ips[3]); + + for (int n = 0; n < CloudflareIPs.Count; n++) + { + string ipRange = CloudflareIPs[n].Trim(); + + if (!string.IsNullOrEmpty(ipRange)) + { + string[] split = ipRange.Split('-'); + string ipMin = split[0].Trim(); + string ipMax = split[1].Trim(); + + string[] ipMins = ipMin.Split('.'); + int ipMin1 = int.Parse(ipMins[0]); + int ipMin2 = int.Parse(ipMins[1]); + int ipMin3 = int.Parse(ipMins[2]); + int ipMin4 = int.Parse(ipMins[3]); + + string[] ipMaxs = ipMax.Split('.'); + int ipMax1 = int.Parse(ipMaxs[0]); + int ipMax2 = int.Parse(ipMaxs[1]); + int ipMax3 = int.Parse(ipMaxs[2]); + int ipMax4 = int.Parse(ipMaxs[3]); + + if (ip1 >= ipMin1 && ip1 <= ipMax1) + if (ip2 >= ipMin2 && ip2 <= ipMax2) + if (ip3 >= ipMin3 && ip3 <= ipMax3) + if (ip4 >= ipMin4 && ip4 <= ipMax4) + return true; + } + } + return false; + } + catch (Exception) + { + return false; + } + } + + internal async Task Get(string destHostname) + { + if (string.IsNullOrEmpty(destHostname)) return string.Empty; + + // Don't resolve current Dns to avoid loop + if (destHostname.Equals(Host)) return destHostname; + if (destHostname.Equals(DnsCleanIp)) return destHostname; + + // Get + if (DNSMode == Mode.System) + { + string ipString = GetIP.GetIpFromSystem(destHostname, false); + if (!ChangeCloudflareIP) + return string.IsNullOrEmpty(ipString) ? destHostname : ipString; + else + { + if (string.IsNullOrEmpty(ipString)) return destHostname; + else + { + return IsCfIP(ipString) ? CloudflareCleanIP ?? ipString : ipString; + } + } + } + else if (DNSMode == Mode.DoH) + { + if (string.IsNullOrEmpty(DNS)) return string.Empty; + + string ipString = await GetIP.GetIpFromDoH(destHostname, DNS, Timeout, ProxyScheme); + if (!ChangeCloudflareIP) + return string.IsNullOrEmpty(ipString) ? destHostname : ipString; + else + { + if (string.IsNullOrEmpty(ipString)) return destHostname; + else + { + return IsCfIP(ipString) ? CloudflareCleanIP ?? ipString : ipString; + } + } + } + else if (DNSMode == Mode.PlainDNS) + { + if (string.IsNullOrEmpty(DNS)) return string.Empty; + + string plainDnsIP = DNS; + int plainDnsPort = 53; + + if (DNS.Contains(':')) + { + string[] dnsIpPort = DNS.Split(':'); + plainDnsIP = dnsIpPort[0]; + plainDnsPort = int.Parse(dnsIpPort[1]); + } + + string ipString = GetIP.GetIpFromPlainDNS(destHostname, plainDnsIP, plainDnsPort, Timeout); + if (!ChangeCloudflareIP) + return string.IsNullOrEmpty(ipString) ? destHostname : ipString; + else + { + if (string.IsNullOrEmpty(ipString)) return destHostname; + else + { + return IsCfIP(ipString) ? CloudflareCleanIP ?? ipString : ipString; + } + } + } + else if (DNSMode == Mode.Disable) return destHostname; + else return destHostname; + } + } + + //======================================= Fake DNS Support + public class FakeDns + { + public enum Mode + { + File, + Text, + Disable + } + + public Mode FakeDnsMode { get; private set; } = Mode.Disable; + public string TextContent { get; private set; } = string.Empty; + private List HostIpList { get; set; } = new(); + + public FakeDns() { } + + /// + /// Set Fake DNS Database + /// + /// Mode + /// e.g. Each line: dns.google.com|8.8.8.8 + public void Set(Mode mode, string filePathOrText) + { + FakeDnsMode = mode; + + if (FakeDnsMode == Mode.Disable) return; + + if (FakeDnsMode == Mode.File) + { + try + { + TextContent = File.ReadAllText(Path.GetFullPath(filePathOrText)); + } + catch (Exception) + { + // do nothing + } + } + else if (FakeDnsMode == Mode.Text) + TextContent = filePathOrText; + + if (!string.IsNullOrEmpty(TextContent) || !string.IsNullOrWhiteSpace(TextContent)) + { + TextContent += Environment.NewLine; + HostIpList = TextContent.SplitToLines(); + } + } + + internal string Get(string destHostname) + { + string destHostnameNoWWW = destHostname; + if (destHostnameNoWWW.StartsWith("www.")) + destHostnameNoWWW = destHostnameNoWWW.Replace("www.", string.Empty); + + if (HostIpList.Any()) + { + for (int n = 0; n < HostIpList.Count; n++) + { + string hostIP = HostIpList[n].Trim(); + if (!string.IsNullOrEmpty(hostIP)) + if (split(hostIP, out string destIP)) + return destIP; + } + } + + return destHostname; + + bool split(string hostIP, out string destIP) + { + // Add Support Comment // + if (hostIP.StartsWith("//")) + { + destIP = destHostname; + return false; + } + else + { + if (hostIP.Contains('|')) + { + string[] split = hostIP.Split('|'); + string host = split[0].Trim(); + if (host.StartsWith("www.")) + host = host.Replace("www.", string.Empty); + string ip = split[1].Trim(); + + if (destHostnameNoWWW.Equals(host)) + { + destIP = ip; + return true; + } + else + { + destIP = destHostname; + return false; + } + } + else + { + destIP = destHostname; + return false; + } + } + } + } + } + + //======================================= Black White List Support + public class BlackWhiteList + { + public enum Mode + { + BlackListFile, + BlackListText, + WhiteListFile, + WhiteListText, + Disable + } + + public Mode ListMode { get; private set; } = Mode.Disable; + public string TextContent { get; private set; } = string.Empty; + private List BWList { get; set; } = new(); + + public BlackWhiteList() { } + + /// + /// Set Black White List Database + /// + /// Mode + /// e.g. Each line: google.com + public void Set(Mode mode, string filePathOrText) + { + ListMode = mode; + + if (ListMode == Mode.Disable) return; + + if (ListMode == Mode.BlackListFile || ListMode == Mode.WhiteListFile) + { + try + { + TextContent = File.ReadAllText(Path.GetFullPath(filePathOrText)); + } + catch (Exception) + { + // do nothing + } + } + else if (ListMode == Mode.BlackListText || ListMode == Mode.WhiteListText) + TextContent = filePathOrText; + + if (!string.IsNullOrEmpty(TextContent) || !string.IsNullOrWhiteSpace(TextContent)) + { + TextContent += Environment.NewLine; + BWList = TextContent.SplitToLines(); + } + } + + // If True Return, If false Continue + internal bool IsMatch(string destHostname) + { + string destHostnameNoWWW = destHostname; + if (destHostnameNoWWW.StartsWith("www.")) + destHostnameNoWWW = destHostnameNoWWW.Replace("www.", string.Empty); + + if (BWList.Any()) + { + for (int n = 0; n < BWList.Count; n++) + { + string host = BWList[n].Trim(); + if (!string.IsNullOrEmpty(host) && !host.StartsWith("//")) // Add Support Comment // + { + if (host.StartsWith("www.")) + host = host.Replace("www.", string.Empty); + + // If Match + if (destHostnameNoWWW.Equals(host)) return match(); + } + } + } + + // If Not Match + return notMatch(); + + bool match() + { + return ListMode == Mode.BlackListFile || ListMode == Mode.BlackListText; + } + + bool notMatch() + { + return ListMode == Mode.WhiteListFile || ListMode == Mode.WhiteListText; + } + } + } + + public class DontBypass + { + public enum Mode + { + File, + Text, + Disable + } + + public Mode DontBypassMode { get; private set; } = Mode.Disable; + public string TextContent { get; private set; } = string.Empty; + private List DontBypassList { get; set; } = new(); + + public DontBypass() { } + + /// + /// Set DontBypass Database + /// + /// Mode + /// e.g. Each line: google.com + public void Set(Mode mode, string filePathOrText) + { + DontBypassMode = mode; + + if (DontBypassMode == Mode.Disable) return; + + if (DontBypassMode == Mode.File) + { + try + { + TextContent = File.ReadAllText(Path.GetFullPath(filePathOrText)); + } + catch (Exception) + { + // do nothing + } + } + else if (DontBypassMode == Mode.Text) + TextContent = filePathOrText; + + if (!string.IsNullOrEmpty(TextContent) || !string.IsNullOrWhiteSpace(TextContent)) + { + TextContent += Environment.NewLine; + DontBypassList = TextContent.SplitToLines(); + } + } + + // If True Don't Bypass, If false Bypass + internal bool IsMatch(string destHostname) + { + string destHostnameNoWWW = destHostname; + if (destHostnameNoWWW.StartsWith("www.")) + destHostnameNoWWW = destHostnameNoWWW.Replace("www.", string.Empty); + + if (DontBypassList.Any()) + { + for (int n = 0; n < DontBypassList.Count; n++) + { + string host = DontBypassList[n].Trim(); + if (!string.IsNullOrEmpty(host) && !host.StartsWith("//")) // Add Support Comment // + { + if (host.StartsWith("www.")) + host = host.Replace("www.", string.Empty); + + // If Match + if (destHostnameNoWWW.Equals(host)) return true; + } + } + } + + // If Not Match + return false; + } + + } + + + + + } + } + +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/ParseHttpMethod.cs b/MsmhTools/MsmhTools/HTTPProxyServer/ParseHttpMethod.cs new file mode 100644 index 0000000..b54a0aa --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/ParseHttpMethod.cs @@ -0,0 +1,54 @@ +using System; +using System.Runtime.Serialization; + +namespace MsmhTools.HTTPProxyServer +{ + /// + /// HTTP methods, i.e. GET, PUT, POST, DELETE, etc. + /// + public enum HttpMethodReq + { + [EnumMember(Value = "GET")] + GET, + [EnumMember(Value = "HEAD")] + HEAD, + [EnumMember(Value = "PUT")] + PUT, + [EnumMember(Value = "POST")] + POST, + [EnumMember(Value = "DELETE")] + DELETE, + [EnumMember(Value = "PATCH")] + PATCH, + [EnumMember(Value = "CONNECT")] + CONNECT, + [EnumMember(Value = "OPTIONS")] + OPTIONS, + [EnumMember(Value = "TRACE")] + TRACE, + [EnumMember(Value = "UNKNOWN")] + UNKNOWN + } + + public static class GetHttpMethod + { + public static HttpMethod Parse(string method) + { + method = method.Trim().ToLower(); + var httpMethod = method switch + { + "get" => HttpMethod.Get, + "head" => HttpMethod.Head, + "put" => HttpMethod.Put, + "post" => HttpMethod.Post, + "connect" => HttpMethod.Post, + "delete" => HttpMethod.Delete, + "patch" => HttpMethod.Patch, + "options" => HttpMethod.Options, + "trace" => HttpMethod.Trace, + _ => HttpMethod.Get, + }; + return httpMethod; + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/Request.cs b/MsmhTools/MsmhTools/HTTPProxyServer/Request.cs new file mode 100644 index 0000000..0590b11 --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/Request.cs @@ -0,0 +1,1312 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Net; +using System.Net.Sockets; +using System.Text; + +namespace MsmhTools.HTTPProxyServer +{ + /// + /// Data extracted from an incoming HTTP request. + /// + public class Request + { + /// + /// UTC timestamp from when the request was received. + /// + public DateTime TimestampUtc { get; set; } + + /// + /// Thread ID on which the request exists. + /// + public int ThreadId { get; set; } + + /// + /// The protocol and version. + /// + public string? ProtocolVersion { get; set; } + + /// + /// IP address of the requestor (client). + /// + public string? SourceIp { get; set; } + + /// + /// TCP port from which the request originated on the requestor (client). + /// + public int SourcePort { get; set; } + + /// + /// IP address of the recipient (server). + /// + public string? DestIp { get; set; } + + /// + /// TCP port on which the request was received by the recipient (server). + /// + public int DestPort { get; set; } + + /// + /// The destination hostname as found in the request line, if present. + /// + public string? DestHostname { get; set; } + + public bool IsDestBlocked { get; set; } = false; + + /// + /// The destination host port as found in the request line, if present. + /// + public int DestHostPort { get; set; } = -1; + + /// + /// Specifies whether or not the client requested HTTP keepalives. + /// + public bool Keepalive { get; set; } + + /// + /// The HTTP method used in the request. + /// + public HttpMethod Method { get; set; } = HttpMethod.Get; + + /// + /// The full URL as sent by the requestor (client). + /// + public string? FullUrl { get; set; } + + /// + /// The raw (relative) URL with the querystring attached. + /// + public string? RawUrlWithQuery { get; set; } + + /// + /// The raw (relative) URL without the querystring attached. + /// + public string? RawUrlWithoutQuery { get; set; } + + /// + /// List of items found in the raw URL. + /// + public List? RawUrlEntries { get; set; } + + /// + /// The querystring attached to the URL. + /// + public string? Querystring { get; set; } + + /// + /// Dictionary containing key-value pairs from items found in the querystring. + /// + public Dictionary? QuerystringEntries { get; set; } + + /// + /// The useragent specified in the request. + /// + public string? Useragent { get; set; } + + /// + /// The number of bytes in the request body. + /// + public long ContentLength { get; set; } + + /// + /// The content type as specified by the requestor (client). + /// + public string? ContentType { get; set; } + + /// + /// The headers found in the request. + /// + public Dictionary? Headers { get; set; } + + /// + /// The request body as sent by the requestor (client). + /// + public byte[]? Data { get; set; } + + /// + /// The stream from which to read the request body sent by the requestor (client). + /// + public Stream? DataStream { get; set; } + + /// + /// The request headers as sent by the requestor (client). + /// + public byte[]? HeadersData { get; set; } + + /// + /// Apply DPI Bypass to this Request if DPI Bypass Program is available. + /// + public bool ApplyDpiBypass { get; set; } = false; + + /// + /// The original HttpListenerContext from which the HttpRequest was constructed. + /// + public HttpListenerContext? ListenerContext { get; set; } + + private Uri? UriP { get; set; } + private static readonly int _TimeoutDataReadMs = 2000; + private static readonly int _DataReadSleepMs = 10; + + private ChunkDecoder DecoderP { get; set; } = new(); + + /// + /// Construct a new HTTP request. + /// + public Request() + { + ThreadId = Environment.CurrentManagedThreadId; + TimestampUtc = DateTime.Now.ToUniversalTime(); + QuerystringEntries = new Dictionary(); + Headers = new Dictionary(); + } + + /// + /// Construct a new HTTP request from a given HttpListenerContext. + /// + /// The HttpListenerContext for the request. + /// Indicate whether or not the input stream should be read and converted to a byte array. + public Request(HttpListenerContext ctx, bool readStreamFully) + { + // Check-for-Null-Values + if (ctx == null) throw new ArgumentNullException(nameof(ctx)); + if (ctx.Request == null) throw new ArgumentNullException(nameof(ctx)); + + // Parse-Variables + int position = 0; + int inQuery = 0; + string tempString = ""; + string queryString = ""; + + int inKey = 0; + int inVal = 0; + string tempKey = ""; + string tempVal = ""; + + // Standard-Request-Items + ThreadId = Environment.CurrentManagedThreadId; + TimestampUtc = DateTime.Now.ToUniversalTime(); + ProtocolVersion = "HTTP/" + ctx.Request.ProtocolVersion.ToString(); + SourceIp = ctx.Request.RemoteEndPoint.Address.ToString(); + SourcePort = ctx.Request.RemoteEndPoint.Port; + DestIp = ctx.Request.LocalEndPoint.Address.ToString(); + DestPort = ctx.Request.LocalEndPoint.Port; + Method = (HttpMethod)Enum.Parse(typeof(HttpMethod), ctx.Request.HttpMethod, true); + FullUrl = ctx.Request.Url != null ? new string(ctx.Request.Url.ToString().Trim()) : null; + RawUrlWithQuery = ctx.Request.RawUrl != null ? new string(ctx.Request.RawUrl.ToString().Trim()) : null; + RawUrlWithoutQuery = ctx.Request.RawUrl != null ? new string(ctx.Request.RawUrl.ToString().Trim()) : null; + Keepalive = ctx.Request.KeepAlive; + ContentLength = ctx.Request.ContentLength64; + Useragent = ctx.Request.UserAgent; + ContentType = ctx.Request.ContentType; + ListenerContext = ctx; + + RawUrlEntries = new List(); + QuerystringEntries = new Dictionary(); + Headers = new Dictionary(); + + // Raw-URL-and-Querystring + if (!string.IsNullOrEmpty(RawUrlWithoutQuery)) + { + // Initialize-Variables + RawUrlEntries = new List(); + QuerystringEntries = new Dictionary(); + + // Process-Raw-URL-and-Populate-Raw-URL-Elements + while (RawUrlWithoutQuery.Contains("//")) + { + RawUrlWithoutQuery = RawUrlWithoutQuery.Replace("//", "/"); + } + + foreach (char c in RawUrlWithoutQuery) + { + if (inQuery == 1) + { + queryString += c; + continue; + } + + if ((position == 0) && + (string.Compare(tempString, "") == 0) && + (c == '/')) + { + // skip the first slash + continue; + } + + if ((c != '/') && (c != '?')) + { + tempString += c; + } + + if ((c == '/') || (c == '?')) + { + if (!string.IsNullOrEmpty(tempString)) + { + // add to raw URL entries list + RawUrlEntries.Add(tempString); + } + + position++; + tempString = ""; + } + + if (c == '?') + { + inQuery = 1; + } + } + + if (!string.IsNullOrEmpty(tempString)) + { + // add to raw URL entries list + RawUrlEntries.Add(tempString); + } + + // Populate-Querystring + if (queryString.Length > 0) Querystring = queryString; + else Querystring = null; + + // Parse-Querystring + if (!string.IsNullOrEmpty(Querystring)) + { + inKey = 1; + inVal = 0; + position = 0; + tempKey = ""; + tempVal = ""; + + foreach (char c in Querystring) + { + if (inKey == 1) + { + if (c == '&') + { + // key with no value + if (!string.IsNullOrEmpty(tempKey)) + { + inKey = 1; + inVal = 0; + + tempKey = WebUtility.UrlDecode(tempKey); + QuerystringEntries = CommonTools.AddToDict(tempKey, null, QuerystringEntries); + + tempKey = ""; + tempVal = ""; + position++; + continue; + } + } + else if (c != '=') + { + tempKey += c; + } + else + { + inKey = 0; + inVal = 1; + continue; + } + } + + if (inVal == 1) + { + if (c != '&') + { + tempVal += c; + } + else + { + inKey = 1; + inVal = 0; + + tempKey = WebUtility.UrlDecode(tempKey); + if (!string.IsNullOrEmpty(tempVal)) tempVal = WebUtility.UrlDecode(tempVal); + QuerystringEntries = CommonTools.AddToDict(tempKey, tempVal, QuerystringEntries); + + tempKey = ""; + tempVal = ""; + position++; + continue; + } + } + } + + if (inVal == 0) + { + // val will be null + if (!string.IsNullOrEmpty(tempKey)) + { + tempKey = WebUtility.UrlDecode(tempKey); + QuerystringEntries = CommonTools.AddToDict(tempKey, null, QuerystringEntries); + } + } + + if (inVal == 1) + { + if (!string.IsNullOrEmpty(tempKey)) + { + tempKey = WebUtility.UrlDecode(tempKey); + if (!string.IsNullOrEmpty(tempVal)) tempVal = WebUtility.UrlDecode(tempVal); + QuerystringEntries = CommonTools.AddToDict(tempKey, tempVal, QuerystringEntries); + } + } + } + } + + // Remove-Querystring-from-Raw-URL + if (RawUrlWithoutQuery != null && RawUrlWithoutQuery.Contains('?')) + { + RawUrlWithoutQuery = RawUrlWithoutQuery[..RawUrlWithoutQuery.IndexOf("?")]; + } + + // Check-for-Full-URL + try + { + if (FullUrl != null) + { + UriP = new Uri(FullUrl); + DestHostname = UriP.Host; + DestHostPort = UriP.Port; + } + } + catch (Exception) + { + // do nothing + } + + // Headers + Headers = new Dictionary(); + for (int i = 0; i < ctx.Request.Headers.Count; i++) + { + string key = new(ctx.Request.Headers.GetKey(i)); + string val = new(ctx.Request.Headers.Get(i)); + Headers = CommonTools.AddToDict(key, val, Headers); + } + + // Payload + bool chunkedXfer = false; + bool gzip = false; + bool deflate = false; + string? xferEncodingHeader = RetrieveHeaderValue("Transfer-Encoding"); + if (!string.IsNullOrEmpty(xferEncodingHeader)) + { + chunkedXfer = xferEncodingHeader.ToLower().Contains("chunked"); + gzip = xferEncodingHeader.ToLower().Contains("gzip"); + deflate = xferEncodingHeader.ToLower().Contains("deflate"); + } + + if (chunkedXfer + && Method != HttpMethod.Get + && Method != HttpMethod.Head) + { + Stream bodyStream = ctx.Request.InputStream; + + if (!readStreamFully) + { + MemoryStream ms = new(); + + if (!DecoderP.Decode(bodyStream, out long contentLength, out ms)) + { + throw new IOException("Unable to decode chunk-encoded stream"); + } + + ContentLength = contentLength; + DataStream = ms; + } + else + { + byte[] encodedData = CommonTools.StreamToBytes(bodyStream); + + if (!DecoderP.Decode(encodedData, out byte[]? decodedData)) + { + throw new IOException("Unable to decode chunk-encoded stream"); + } + + if (decodedData != null) + { + ContentLength = decodedData.Length; + Data = new byte[ContentLength]; + Buffer.BlockCopy(decodedData, 0, Data, 0, decodedData.Length); + } + } + } + else if (ContentLength > 0) + { + if (readStreamFully) + { + if (Method != HttpMethod.Get && Method != HttpMethod.Head) + { + try + { + Data = new byte[ContentLength]; + Stream bodyStream = ctx.Request.InputStream; + Data = CommonTools.StreamToBytes(bodyStream); + } + catch (Exception) + { + Data = null; + } + } + } + else + { + Data = null; + DataStream = ctx.Request.InputStream; + } + } + } + + /// + /// Create an HttpRequest object from a TcpClient. + /// + /// TcpClient. + /// A populated HttpRequest. + public static Request? FromTcpClient(TcpClient client) + { + if (client == null) throw new ArgumentNullException(nameof(client)); + + try + { + Request ret; + byte[]? headerBytes = null; + byte[] lastFourBytes = new byte[4]; + lastFourBytes[0] = 0x00; + lastFourBytes[1] = 0x00; + lastFourBytes[2] = 0x00; + lastFourBytes[3] = 0x00; + + // Attach-Stream + NetworkStream stream = client.GetStream(); + + if (!stream.CanRead) + { + throw new IOException("Unable to read from stream."); + } + + // Read-Headers + using (MemoryStream headerMs = new()) + { + // Read-Header-Bytes + byte[] headerBuffer = new byte[1]; + int read = 0; + int headerBytesRead = 0; + + while ((read = stream.Read(headerBuffer, 0, headerBuffer.Length)) > 0) + { + if (read > 0) + { + // Initialize-Header-Bytes-if-Needed + headerBytesRead += read; + if (headerBytes == null) headerBytes = new byte[1]; + + // Update-Last-Four + if (read == 1) + { + lastFourBytes[0] = lastFourBytes[1]; + lastFourBytes[1] = lastFourBytes[2]; + lastFourBytes[2] = lastFourBytes[3]; + lastFourBytes[3] = headerBuffer[0]; + } + + // Append-to-Header-Buffer + byte[] tempHeader = new byte[headerBytes.Length + 1]; + Buffer.BlockCopy(headerBytes, 0, tempHeader, 0, headerBytes.Length); + tempHeader[headerBytes.Length] = headerBuffer[0]; + headerBytes = tempHeader; + + // Check-for-End-of-Headers + if ((int)(lastFourBytes[0]) == 13 + && (int)(lastFourBytes[1]) == 10 + && (int)(lastFourBytes[2]) == 13 + && (int)(lastFourBytes[3]) == 10) + { + break; + } + } + } + } + + // Process-Headers + if (headerBytes == null || headerBytes.Length < 1) + { + //throw new IOException("No header data read from the stream."); + return null; + } + + ret = BuildHeaders(headerBytes); + ret.HeadersData = headerBytes; + + // Read-Data + ret.Data = null; + if (ret.ContentLength > 0) + { + // Read-from-Stream + ret.Data = new byte[ret.ContentLength]; + + using (MemoryStream dataMs = new()) + { + long bytesRemaining = ret.ContentLength; + long bytesRead = 0; + bool timeout = false; + int currentTimeout = 0; + + int read = 0; + byte[] buffer; + long bufferSize = 2048; + if (bufferSize > bytesRemaining) bufferSize = bytesRemaining; + buffer = new byte[bufferSize]; + + while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) + { + if (read > 0) + { + dataMs.Write(buffer, 0, read); + bytesRead += read; + bytesRemaining -= read; + + // reduce buffer size if number of bytes remaining is + // less than the pre-defined buffer size of 2KB + if (bytesRemaining < bufferSize) + { + bufferSize = bytesRemaining; + } + + buffer = new byte[bufferSize]; + + // check if read fully + if (bytesRemaining == 0) break; + if (bytesRead == ret.ContentLength) break; + } + else + { + if (currentTimeout >= _TimeoutDataReadMs) + { + timeout = true; + break; + } + else + { + currentTimeout += _DataReadSleepMs; + Thread.Sleep(_DataReadSleepMs); + } + } + } + + if (timeout) + { + throw new IOException("Timeout reading data from stream."); + } + + ret.Data = dataMs.ToArray(); + } + + // Validate-Data + if (ret.Data == null || ret.Data.Length < 1) + { + throw new IOException("Unable to read data from stream."); + } + + if (ret.Data.Length != ret.ContentLength) + { + throw new IOException("Data read does not match specified content length."); + } + } + else + { + // do nothing + } + + return ret; + } + catch (Exception) + { + throw; + } + } + + /// + /// Create an HttpRequest object from a byte array. + /// + /// Byte data. + /// A populated HttpRequest. + public static Request FromBytes(byte[] bytes) + { + if (bytes == null) throw new ArgumentNullException(nameof(bytes)); + if (bytes.Length < 4) throw new ArgumentException("Too few bytes supplied to form a valid HTTP request."); + + bool endOfHeader = false; + byte[] headerBytes = new byte[1]; + + Request ret = new(); + + for (int i = 0; i < bytes.Length; i++) + { + if (headerBytes.Length == 1) + { + // First-Byte + headerBytes[0] = bytes[i]; + continue; + } + + if (!endOfHeader && headerBytes.Length < 4) + { + // Fewer-Than-Four-Bytes + byte[] tempHeader = new byte[i + 1]; + Buffer.BlockCopy(headerBytes, 0, tempHeader, 0, headerBytes.Length); + tempHeader[i] = bytes[i]; + headerBytes = tempHeader; + continue; + } + + if (!endOfHeader) + { + // Check-for-End-of-Header + // check if end of headers reached + if ( + (int)headerBytes[(^1)] == 10 + && (int)headerBytes[(^2)] == 13 + && (int)headerBytes[(^3)] == 10 + && (int)headerBytes[(^4)] == 13 + ) + { + // End-of-Header + // end of headers reached + endOfHeader = true; + ret = BuildHeaders(headerBytes); + } + else + { + // Still-Reading-Header + byte[] tempHeader = new byte[i + 1]; + Buffer.BlockCopy(headerBytes, 0, tempHeader, 0, headerBytes.Length); + tempHeader[i] = bytes[i]; + headerBytes = tempHeader; + continue; + } + } + else + { + if (ret.ContentLength > 0) + { + // Append-Data + if (ret.ContentLength != (bytes.Length - i)) + { + throw new ArgumentException("Content-Length header does not match the number of data bytes."); + } + + ret.Data = new byte[ret.ContentLength]; + Buffer.BlockCopy(bytes, i, ret.Data, 0, (int)ret.ContentLength); + break; + } + else + { + // No-Data + ret.Data = null; + break; + } + } + } + + return ret; + } + + /// + /// Create an HttpRequest object from a Stream. + /// + /// Stream. + /// A populated HttpRequest. + public static Request FromStream(Stream stream) + { + if (stream == null) throw new ArgumentNullException(nameof(stream)); + + try + { + Request ret; + byte[]? headerBytes = null; + byte[] lastFourBytes = new byte[4]; + lastFourBytes[0] = 0x00; + lastFourBytes[1] = 0x00; + lastFourBytes[2] = 0x00; + lastFourBytes[3] = 0x00; + + // Check-Stream + if (!stream.CanRead) + { + throw new IOException("Unable to read from stream."); + } + + // Read-Headers + using (MemoryStream headerMs = new()) + { + // Read-Header-Bytes + byte[] headerBuffer = new byte[1]; + int read = 0; + int headerBytesRead = 0; + + while ((read = stream.Read(headerBuffer, 0, headerBuffer.Length)) > 0) + { + if (read > 0) + { + // Initialize-Header-Bytes-if-Needed + headerBytesRead += read; + if (headerBytes == null) headerBytes = new byte[1]; + + //Update-Last-Four + if (read == 1) + { + lastFourBytes[0] = lastFourBytes[1]; + lastFourBytes[1] = lastFourBytes[2]; + lastFourBytes[2] = lastFourBytes[3]; + lastFourBytes[3] = headerBuffer[0]; + } + + // Append-to-Header-Buffer + byte[] tempHeader = new byte[headerBytes.Length + 1]; + Buffer.BlockCopy(headerBytes, 0, tempHeader, 0, headerBytes.Length); + tempHeader[headerBytes.Length] = headerBuffer[0]; + headerBytes = tempHeader; + + // Check-for-End-of-Headers + if ((int)(lastFourBytes[0]) == 13 + && (int)(lastFourBytes[1]) == 10 + && (int)(lastFourBytes[2]) == 13 + && (int)(lastFourBytes[3]) == 10) + { + break; + } + } + } + } + + // Process-Headers + if (headerBytes == null || headerBytes.Length < 1) throw new IOException("No header data read from the stream."); + ret = BuildHeaders(headerBytes); + + // Read-Data + ret.Data = null; + if (ret.ContentLength > 0) + { + // Read-from-Stream + ret.Data = new byte[ret.ContentLength]; + + using (MemoryStream dataMs = new()) + { + long bytesRemaining = ret.ContentLength; + long bytesRead = 0; + bool timeout = false; + int currentTimeout = 0; + + int read = 0; + byte[] buffer; + long bufferSize = 2048; + if (bufferSize > bytesRemaining) bufferSize = bytesRemaining; + buffer = new byte[bufferSize]; + + while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) + { + if (read > 0) + { + dataMs.Write(buffer, 0, read); + bytesRead += read; + bytesRemaining -= read; + + // reduce buffer size if number of bytes remaining is + // less than the pre-defined buffer size of 2KB + if (bytesRemaining < bufferSize) + { + bufferSize = bytesRemaining; + } + + buffer = new byte[bufferSize]; + + // check if read fully + if (bytesRemaining == 0) break; + if (bytesRead == ret.ContentLength) break; + } + else + { + if (currentTimeout >= _TimeoutDataReadMs) + { + timeout = true; + break; + } + else + { + currentTimeout += _DataReadSleepMs; + Thread.Sleep(_DataReadSleepMs); + } + } + } + + if (timeout) + { + throw new IOException("Timeout reading data from stream."); + } + + ret.Data = dataMs.ToArray(); + } + + // Validate-Data + if (ret.Data == null || ret.Data.Length < 1) + { + throw new IOException("Unable to read data from stream."); + } + + if (ret.Data.Length != ret.ContentLength) + { + throw new IOException("Data read does not match specified content length."); + } + } + else + { + // do nothing + } + + return ret; + } + catch (Exception) + { + throw; + } + } + + /// + /// Create an HttpRequest object from a NetworkStream. + /// + /// NetworkStream. + /// A populated HttpRequest. + public static Request FromStream(NetworkStream stream) + { + if (stream == null) throw new ArgumentNullException(nameof(stream)); + + try + { + Request ret; + byte[]? headerBytes = null; + byte[] lastFourBytes = new byte[4]; + lastFourBytes[0] = 0x00; + lastFourBytes[1] = 0x00; + lastFourBytes[2] = 0x00; + lastFourBytes[3] = 0x00; + + // Check-Stream + if (!stream.CanRead) + { + throw new IOException("Unable to read from stream."); + } + + // Read-Headers + using (MemoryStream headerMs = new()) + { + // Read-Header-Bytes + byte[] headerBuffer = new byte[1]; + int read = 0; + int headerBytesRead = 0; + + while ((read = stream.Read(headerBuffer, 0, headerBuffer.Length)) > 0) + { + if (read > 0) + { + // Initialize-Header-Bytes-if-Needed + headerBytesRead += read; + if (headerBytes == null) headerBytes = new byte[1]; + + // Update-Last-Four + if (read == 1) + { + lastFourBytes[0] = lastFourBytes[1]; + lastFourBytes[1] = lastFourBytes[2]; + lastFourBytes[2] = lastFourBytes[3]; + lastFourBytes[3] = headerBuffer[0]; + } + + // Append-to-Header-Buffer + byte[] tempHeader = new byte[headerBytes.Length + 1]; + Buffer.BlockCopy(headerBytes, 0, tempHeader, 0, headerBytes.Length); + tempHeader[headerBytes.Length] = headerBuffer[0]; + headerBytes = tempHeader; + + // Check-for-End-of-Headers + if ((int)(lastFourBytes[0]) == 13 + && (int)(lastFourBytes[1]) == 10 + && (int)(lastFourBytes[2]) == 13 + && (int)(lastFourBytes[3]) == 10) + { + break; + } + } + } + } + + // Process-Headers + if (headerBytes == null || headerBytes.Length < 1) throw new IOException("No header data read from the stream."); + ret = BuildHeaders(headerBytes); + + // Read-Data + ret.Data = null; + if (ret.ContentLength > 0) + { + // Read-from-Stream + ret.Data = new byte[ret.ContentLength]; + + using (MemoryStream dataMs = new()) + { + long bytesRemaining = ret.ContentLength; + long bytesRead = 0; + bool timeout = false; + int currentTimeout = 0; + + int read = 0; + byte[] buffer; + long bufferSize = 2048; + if (bufferSize > bytesRemaining) bufferSize = bytesRemaining; + buffer = new byte[bufferSize]; + + while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) + { + if (read > 0) + { + dataMs.Write(buffer, 0, read); + bytesRead += read; + bytesRemaining -= read; + + // reduce buffer size if number of bytes remaining is + // less than the pre-defined buffer size of 2KB + if (bytesRemaining < bufferSize) + { + bufferSize = bytesRemaining; + } + + buffer = new byte[bufferSize]; + + // check if read fully + if (bytesRemaining == 0) break; + if (bytesRead == ret.ContentLength) break; + } + else + { + if (currentTimeout >= _TimeoutDataReadMs) + { + timeout = true; + break; + } + else + { + currentTimeout += _DataReadSleepMs; + Thread.Sleep(_DataReadSleepMs); + } + } + } + + if (timeout) + { + throw new IOException("Timeout reading data from stream."); + } + + ret.Data = dataMs.ToArray(); + } + + // Validate-Data + if (ret.Data == null || ret.Data.Length < 1) + { + throw new IOException("Unable to read data from stream."); + } + + if (ret.Data.Length != ret.ContentLength) + { + throw new IOException("Data read does not match specified content length."); + } + } + else + { + // do nothing + } + + return ret; + } + catch (Exception) + { + throw; + } + } + + //==================================================== Methods Public + + /// + /// Retrieve a specified header value from either the headers or the querystring. + /// + /// + /// + public string? RetrieveHeaderValue(string key) + { + if (string.IsNullOrEmpty(key)) throw new ArgumentNullException(nameof(key)); + if (Headers != null && Headers.Count > 0) + { + foreach (KeyValuePair curr in Headers) + { + if (string.IsNullOrEmpty(curr.Key)) continue; + if (string.Compare(curr.Key.ToLower(), key.ToLower()) == 0) return curr.Value; + } + } + + if (QuerystringEntries != null && QuerystringEntries.Count > 0) + { + foreach (KeyValuePair curr in QuerystringEntries) + { + if (string.IsNullOrEmpty(curr.Key)) continue; + if (string.Compare(curr.Key.ToLower(), key.ToLower()) == 0) return curr.Value; + } + } + + return null; + } + + /// + /// Retrieve the integer value of the last raw URL element, if found. + /// + /// A nullable integer. + public int? RetrieveIdValue() + { + if (RawUrlEntries == null || RawUrlEntries.Count < 1) return null; + string[] entries = RawUrlEntries.ToArray(); + int len = entries.Length; + string entry = entries[(len - 1)]; + if (int.TryParse(entry, out int ret)) + { + return ret; + } + return null; + } + + //==================================================== Methods Private + + private static Request BuildHeaders(byte[] bytes) + { + if (bytes == null) throw new ArgumentNullException(nameof(bytes)); + + // Initial-Values + Request ret = new(); + ret.TimestampUtc = DateTime.Now.ToUniversalTime(); + ret.ThreadId = Environment.CurrentManagedThreadId; + ret.SourceIp = "unknown"; + ret.SourcePort = 0; + ret.DestIp = "unknown"; + ret.DestPort = 0; + ret.Headers = new Dictionary(); + + // Convert-to-String-List + string str = Encoding.UTF8.GetString(bytes); + string[] headers = str.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); + + // Process-Each-Line + for (int i = 0; i < headers.Length; i++) + { + if (i == 0) + { + // First-Line + string[] requestLine = headers[i].Trim().Trim('\0').Split(' '); + if (requestLine.Length < 3) throw new ArgumentException("Request line does not contain at least three parts (method, raw URL, protocol/version)."); + + // (HttpMethod)Enum.Parse(typeof(HttpMethod), requestLine[0], true); + ret.Method = GetHttpMethod.Parse(requestLine[0]); + ret.FullUrl = requestLine[1]; + ret.ProtocolVersion = requestLine[2]; + ret.RawUrlWithQuery = ret.FullUrl; + ret.RawUrlWithoutQuery = ExtractRawUrlWithoutQuery(ret.RawUrlWithQuery); + ret.RawUrlEntries = ExtractRawUrlEntries(ret.RawUrlWithoutQuery); + ret.Querystring = ExtractQuerystring(ret.RawUrlWithQuery); + ret.QuerystringEntries = ExtractQuerystringEntries(ret.Querystring); + + try + { + string ipPort = ret.FullUrl; + if (!ipPort.ToLower().StartsWith("http://") && !ipPort.ToLower().StartsWith("https://")) + { + Uri tempUri = new($"https://{ret.FullUrl}"); + if (tempUri.Port == 80) + ret.FullUrl = $"http://{ret.FullUrl}"; + else + ret.FullUrl = $"https://{ret.FullUrl}"; + } + Uri uri = new(ret.FullUrl); + ret.DestHostname = uri.Host; + ret.DestHostPort = uri.Port; + } + catch (Exception) + { + + } + + if (string.IsNullOrEmpty(ret.DestHostname)) + { + if (!ret.FullUrl.Contains("://") & ret.FullUrl.Contains(':')) + { + string[] hostAndPort = ret.FullUrl.Split(':'); + if (hostAndPort.Length == 2) + { + ret.DestHostname = hostAndPort[0]; + bool isInt = int.TryParse(hostAndPort[1], out int port); + if (isInt) + ret.DestHostPort = port; + else + { + Debug.WriteLine("Unable to parse destination hostname and port."); + } + } + } + } + } + else + { + // Subsequent-Line + string[] headerLine = headers[i].Split(':'); + if (headerLine.Length == 2) + { + string key = headerLine[0].Trim(); + string val = headerLine[1].Trim(); + + if (string.IsNullOrEmpty(key)) continue; + string keyEval = key.ToLower(); + + if (keyEval.Equals("keep-alive")) + ret.Keepalive = Convert.ToBoolean(val); + else if (keyEval.Equals("user-agent")) + ret.Useragent = val; + else if (keyEval.Equals("content-length")) + ret.ContentLength = Convert.ToInt64(val); + else if (keyEval.Equals("content-type")) + ret.ContentType = val; + else + ret.Headers = CommonTools.AddToDict(key, val, ret.Headers); + } + + } + } + + return ret; + } + + private static string? ExtractRawUrlWithoutQuery(string rawUrlWithQuery) + { + if (string.IsNullOrEmpty(rawUrlWithQuery)) return null; + if (!rawUrlWithQuery.Contains('?')) return rawUrlWithQuery; + return rawUrlWithQuery[..rawUrlWithQuery.IndexOf("?")]; + } + + private static List? ExtractRawUrlEntries(string? rawUrlWithoutQuery) + { + if (string.IsNullOrEmpty(rawUrlWithoutQuery)) return null; + + int position = 0; + string tempString = ""; + List ret = new(); + + foreach (char c in rawUrlWithoutQuery) + { + if ((position == 0) && + (string.Compare(tempString, "") == 0) && + (c == '/')) + { + // skip the first slash + continue; + } + + if ((c != '/') && (c != '?')) + { + tempString += c; + } + + if ((c == '/') || (c == '?')) + { + if (!string.IsNullOrEmpty(tempString)) + { + // add to raw URL entries list + ret.Add(tempString); + } + + position++; + tempString = ""; + } + } + + if (!string.IsNullOrEmpty(tempString)) + { + // add to raw URL entries list + ret.Add(tempString); + } + + return ret; + } + + private static string? ExtractQuerystring(string rawUrlWithQuery) + { + if (string.IsNullOrEmpty(rawUrlWithQuery)) return null; + if (!rawUrlWithQuery.Contains('?')) return null; + + int qsStartPos = rawUrlWithQuery.IndexOf("?"); + if (qsStartPos >= (rawUrlWithQuery.Length - 1)) return null; + return rawUrlWithQuery[(qsStartPos + 1)..]; + } + + private static Dictionary? ExtractQuerystringEntries(string? query) + { + if (string.IsNullOrEmpty(query)) return null; + + Dictionary ret = new(); + + int inKey = 1; + int inVal = 0; + int position = 0; + string tempKey = ""; + string tempVal = ""; + + for (int i = 0; i < query.Length; i++) + { + char c = query[i]; + if (inKey == 1) + { + if (c != '=') + { + tempKey += c; + } + else + { + inKey = 0; + inVal = 1; + continue; + } + } + + if (inVal == 1) + { + if (c != '&') + { + tempVal += c; + } + else + { + inKey = 1; + inVal = 0; + + if (!string.IsNullOrEmpty(tempVal)) tempVal = WebUtility.UrlEncode(tempVal); + ret = CommonTools.AddToDict(tempKey, tempVal, ret); + + tempKey = ""; + tempVal = ""; + position++; + continue; + } + } + + if (inVal == 1) + { + if (!string.IsNullOrEmpty(tempVal)) tempVal = WebUtility.UrlEncode(tempVal); + ret = CommonTools.AddToDict(tempKey, tempVal, ret); + } + } + + return ret; + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/RestRequest.cs b/MsmhTools/MsmhTools/HTTPProxyServer/RestRequest.cs new file mode 100644 index 0000000..00c448e --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/RestRequest.cs @@ -0,0 +1,699 @@ +using System; +using System.Net; +using System.Net.Http; +using System.Net.Security; +using System.Net.Sockets; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Text.Json.Serialization; +using System.Diagnostics; +using System.Security.Authentication; +using System.Net.Http.Headers; +// https://github.com/jchristn/RestWrapper/blob/master/src/RestWrapper/RestRequest.cs + +namespace MsmhTools.HTTPProxyServer +{ + /// + /// Authorization header options. + /// + public class AuthorizationHeader + { + /// + /// The username to use in the authorization header, if any. + /// + public string? User = null; + + /// + /// The password to use in the authorization header, if any. + /// + public string? Password = null; + + /// + /// The bearer token to use in the authorization header, if any. + /// + public string? BearerToken = null; + + /// + /// Enable to encode credentials in the authorization header. + /// + public bool EncodeCredentials = true; + + /// + /// Instantiate the object. + /// + public AuthorizationHeader() + { + + } + } + + /// + /// RESTful HTTP request to be sent to a server. + /// + public class RestRequest + { + /// + /// Method to invoke when sending log messages. + /// + [JsonIgnore] + public Action? Logger { get; set; } = null; + + /// + /// The URL to which the request should be directed. + /// + public string? Url { get; set; } = null; + + /// + /// The HTTP method to use, also known as a verb (GET, PUT, POST, DELETE, etc). + /// + public HttpMethod Method = HttpMethod.Get; + + + private AuthorizationHeader _Authorization = new(); + + /// + /// Authorization header parameters. + /// + public AuthorizationHeader Authorization + { + get + { + return _Authorization; + } + set + { + if (value == null) _Authorization = new AuthorizationHeader(); + else _Authorization = value; + } + } + + /// + /// Ignore certificate errors such as expired certificates, self-signed certificates, or those that cannot be validated. + /// + public bool IgnoreCertificateErrors { get; set; } = false; + + /// + /// The filename of the file containing the certificate. + /// + public string? CertificateFilename { get; set; } = null; + + /// + /// The password to the certificate file. + /// + public string? CertificatePassword { get; set; } = null; + + /// + /// The HTTP headers to attach to the request. + /// + public Dictionary? Headers + { + get + { + return _Headers; + } + set + { + if (value == null) _Headers = new Dictionary(); + else _Headers = value; + } + } + + /// + /// The content type of the payload (i.e. Data or DataStream). + /// + public string? ContentType { get; set; } = null; + + /// + /// The content length of the payload (i.e. Data or DataStream). + /// + public long ContentLength { get; private set; } = 0; + + /// + /// The size of the buffer to use while reading from the DataStream and the response stream from the server. + /// + public int BufferSize + { + get + { + return _StreamReadBufferSize; + } + set + { + if (value < 1) throw new ArgumentException("StreamReadBufferSize must be at least one byte in size."); + _StreamReadBufferSize = value; + } + } + + /// + /// The number of milliseconds to wait before assuming the request has timed out. + /// + public int TimeoutMilliseconds + { + get + { + return _TimeoutMilliseconds; + } + set + { + if (value < 1) throw new ArgumentException("Timeout must be greater than 1ms."); + _TimeoutMilliseconds = value; + } + } + + /// + /// The user agent header to set on outbound requests. + /// + public string UserAgent { get; set; } = string.Empty; + + /// + /// Enable or disable support for automatically handling redirects. + /// + public bool AllowAutoRedirect { get; set; } = true; + + private string _Header = string.Empty; + private int _StreamReadBufferSize = 65536; + private int _TimeoutMilliseconds = 30000; + private Dictionary _Headers = new(); + + /// + /// A simple RESTful HTTP client. + /// + /// URL to access on the server. + public RestRequest(string url) + { + if (string.IsNullOrEmpty(url)) throw new ArgumentNullException(nameof(url)); + + Url = url; + } + + /// + /// A simple RESTful HTTP client. + /// + /// URL to access on the server. + /// HTTP method to use. + public RestRequest(string url, HttpMethod method) + { + if (string.IsNullOrEmpty(url)) throw new ArgumentNullException(nameof(url)); + + Url = url; + Method = method; + } + + /// + /// A simple RESTful HTTP client. + /// + /// URL to access on the server. + /// HTTP method to use. + /// Content type to use. + public RestRequest( + string url, + HttpMethod method, + string contentType) + { + if (string.IsNullOrEmpty(url)) throw new ArgumentNullException(nameof(url)); + + Url = url; + Method = method; + ContentType = contentType; + } + + /// + /// A simple RESTful HTTP client. + /// + /// URL to access on the server. + /// HTTP method to use. + /// HTTP headers to use. + /// Content type to use. + public RestRequest( + string url, + HttpMethod method, + Dictionary? headers, + string? contentType) + { + //if (string.IsNullOrEmpty(url)) throw new ArgumentNullException(nameof(url)); + + Url = url; + Method = method; + Headers = headers; + ContentType = contentType; + } + + /// + /// Send the HTTP request with no data. + /// + /// RestResponse. + public RestResponse? Send() + { + return SendInternal(0, null); + } + + /// + /// Send the HTTP request using form-encoded data. + /// This method will automatically set the content-type header to 'application/x-www-form-urlencoded' if it is not already set. + /// + /// Dictionary. + /// + public RestResponse? Send(Dictionary form) + { + // refer to https://github.com/dotnet/runtime/issues/22811 + if (form == null) form = new Dictionary(); + var items = form.Select(i => WebUtility.UrlEncode(i.Key) + "=" + WebUtility.UrlEncode(i.Value)); + var content = new StringContent(string.Join("&", items), null, "application/x-www-form-urlencoded"); + byte[] bytes = Encoding.UTF8.GetBytes(content.ReadAsStringAsync().Result); + ContentLength = bytes.Length; + if (string.IsNullOrEmpty(ContentType)) ContentType = "application/x-www-form-urlencoded"; + return Send(bytes); + } + + /// + /// Send the HTTP request with the supplied data. + /// + /// A string containing the data you wish to send to the server (does not work with GET requests). + /// RestResponse. + public RestResponse? Send(string data) + { + if (string.IsNullOrEmpty(data)) return Send(); + return Send(Encoding.UTF8.GetBytes(data)); + } + + /// + /// Send the HTTP request with the supplied data. + /// + /// A byte array containing the data you wish to send to the server (does not work with GET requests). + /// RestResponse. + public RestResponse? Send(byte[] data) + { + long contentLength = 0; + MemoryStream stream = new(Array.Empty()); + + if (data != null && data.Length > 0) + { + contentLength = data.Length; + stream = new MemoryStream(data); + stream.Seek(0, SeekOrigin.Begin); + } + + return SendInternal(contentLength, stream); + } + + /// + /// Send the HTTP request with the supplied data. + /// + /// The number of bytes to read from the input stream. + /// Stream containing the data you wish to send to the server (does not work with GET requests). + /// RestResponse. + public RestResponse? Send(long contentLength, Stream? stream) + { + return SendInternal(contentLength, stream); + } + + /// + /// Send the HTTP request with no data. + /// + /// Cancellation token. + /// RestResponse. + public Task SendAsync(CancellationToken token = default) + { + return SendInternalAsync(0, null, token); + } + + /// + /// Send the HTTP request using form-encoded data. + /// This method will automatically set the content-type header. + /// + /// Dictionary. + /// Cancellation token. + /// RestResponse. + public Task SendAsync(Dictionary form, CancellationToken token = default) + { + // refer to https://github.com/dotnet/runtime/issues/22811 + if (form == null) form = new Dictionary(); + var items = form.Select(i => WebUtility.UrlEncode(i.Key) + "=" + WebUtility.UrlEncode(i.Value)); + var content = new StringContent(string.Join("&", items), null, "application/x-www-form-urlencoded"); + byte[] bytes = Encoding.UTF8.GetBytes(content.ReadAsStringAsync(token).Result); + ContentLength = bytes.Length; + if (string.IsNullOrEmpty(ContentType)) ContentType = "application/x-www-form-urlencoded"; + return SendAsync(bytes, token); + } + + /// + /// Send the HTTP request with the supplied data. + /// + /// A string containing the data you wish to send to the server (does not work with GET requests). + /// Cancellation token. + /// RestResponse. + public Task SendAsync(string data, CancellationToken token = default) + { + if (string.IsNullOrEmpty(data)) return SendAsync(token); + return SendAsync(Encoding.UTF8.GetBytes(data), token); + } + + /// + /// Send the HTTP request with the supplied data. + /// + /// A byte array containing the data you wish to send to the server (does not work with GET requests). + /// Cancellation token. + /// RestResponse. + public Task SendAsync(byte[] data, CancellationToken token = default) + { + long contentLength = 0; + MemoryStream stream = new(Array.Empty()); + + if (data != null && data.Length > 0) + { + contentLength = data.Length; + stream = new MemoryStream(data); + stream.Seek(0, SeekOrigin.Begin); + } + + return SendInternalAsync(contentLength, stream, token); + } + + /// + /// Send the HTTP request with the supplied data. + /// + /// The number of bytes to read from the input stream. + /// A stream containing the data you wish to send to the server (does not work with GET requests). + /// Cancellation token. + /// RestResponse. + public Task SendAsync(long contentLength, Stream? stream, CancellationToken token = default) + { + return SendInternalAsync(contentLength, stream, token); + } + + private bool Validator(object sender, X509Certificate? certificate, X509Chain? chain, SslPolicyErrors sslPolicyErrors) + { + return true; + } + + private RestResponse? SendInternal(long contentLength, Stream? stream) + { + RestResponse? resp = SendInternalAsync(contentLength, stream, CancellationToken.None).Result; + return resp; + } + + private async Task SendInternalAsync(long contentLength, Stream? stream, CancellationToken token) + { + //if (string.IsNullOrEmpty(Url)) throw new ArgumentNullException(nameof(Url)); + + //Timestamps ts = new Timestamps(); + + Logger?.Invoke(_Header + Method.ToString() + " " + Url); + + try + { + // Setup-Webrequest + Logger?.Invoke(_Header + "setting up web request"); + + if (IgnoreCertificateErrors) ServicePointManager.ServerCertificateValidationCallback = Validator; + + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + + HttpClientHandler handler = new(); + handler.AllowAutoRedirect = AllowAutoRedirect; + + if (!string.IsNullOrEmpty(CertificateFilename)) + { + X509Certificate2? cert = null; + + if (!string.IsNullOrEmpty(CertificatePassword)) + { + Logger?.Invoke(_Header + "adding certificate including password"); + cert = new X509Certificate2(CertificateFilename, CertificatePassword); + } + else + { + Logger?.Invoke(_Header + "adding certificate without password"); + cert = new X509Certificate2(CertificateFilename); + } + + handler.ClientCertificateOptions = ClientCertificateOption.Manual; + handler.SslProtocols = SslProtocols.Tls12; + handler.ClientCertificates.Add(cert); + } + + HttpClient client = new(handler); + client.Timeout = TimeSpan.FromMilliseconds(_TimeoutMilliseconds); + client.DefaultRequestHeaders.ExpectContinue = false; + client.DefaultRequestHeaders.ConnectionClose = true; + + HttpRequestMessage? message = null; + + if (Method == HttpMethod.Delete) + { + message = new HttpRequestMessage(HttpMethod.Delete, Url); + } + else if (Method == HttpMethod.Get) + { + message = new HttpRequestMessage(HttpMethod.Get, Url); + } + else if (Method == HttpMethod.Head) + { + message = new HttpRequestMessage(HttpMethod.Head, Url); + } + else if (Method == HttpMethod.Options) + { + message = new HttpRequestMessage(HttpMethod.Options, Url); + } +#if NETSTANDARD2_1_OR_GREATER || NET6_0_OR_GREATER + else if (Method == HttpMethod.Patch) + { + message = new HttpRequestMessage(HttpMethod.Patch, Url); + } +#endif + else if (Method == HttpMethod.Post) + { + message = new HttpRequestMessage(HttpMethod.Post, Url); + } + else if (Method == HttpMethod.Put) + { + message = new HttpRequestMessage(HttpMethod.Put, Url); + } + else if (Method == HttpMethod.Trace) + { + message = new HttpRequestMessage(HttpMethod.Trace, Url); + } + else + { + throw new ArgumentException("HTTP method '" + Method.ToString() + "' is not supported."); + } + + // Write-Request-Body-Data + HttpContent? content = null; + + if (Method != HttpMethod.Get && Method != HttpMethod.Head) + { + if (contentLength > 0 && stream != null) + { + Logger?.Invoke(_Header + "adding " + contentLength + " bytes to request"); + content = new StreamContent(stream, _StreamReadBufferSize); + // content.Headers.ContentLength = ContentLength; + if (!string.IsNullOrEmpty(ContentType)) + content.Headers.ContentType = new MediaTypeHeaderValue(ContentType); + } + } + + message.Content = content; + + if (Headers != null && Headers.Count > 0) + { + foreach (KeyValuePair pair in Headers) + { + if (string.IsNullOrEmpty(pair.Key)) continue; + if (string.IsNullOrEmpty(pair.Value)) continue; + + Logger?.Invoke(_Header + "adding header " + pair.Key + ": " + pair.Value); + + if (pair.Key.ToLower().Trim().Equals("close")) + { + // do nothing + } + else if (pair.Key.ToLower().Trim().Equals("connection")) + { + // do nothing + } + else if (pair.Key.ToLower().Trim().Equals("content-length")) + { + // do nothing + } + else if (pair.Key.ToLower().Trim().Equals("content-type")) + { + if (message.Content != null) + message.Content.Headers.ContentType = new MediaTypeHeaderValue(pair.Value); + } + else + { + client.DefaultRequestHeaders.Add(pair.Key, pair.Value); + } + } + } + + // Add-Auth-Info + if (!string.IsNullOrEmpty(_Authorization.User)) + { + if (_Authorization.EncodeCredentials) + { + Logger?.Invoke(_Header + "adding encoded credentials for user " + _Authorization.User); + + string authInfo = _Authorization.User + ":" + _Authorization.Password; + authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); + client.DefaultRequestHeaders.Add("Authorization", "Basic " + authInfo); + } + else + { + Logger?.Invoke(_Header + "adding plaintext credentials for user " + _Authorization.User); + client.DefaultRequestHeaders.Add("Authorization", "Basic " + _Authorization.User + ":" + _Authorization.Password); + } + } + else if (!string.IsNullOrEmpty(_Authorization.BearerToken)) + { + Logger?.Invoke(_Header + "adding authorization bearer token " + _Authorization.BearerToken); + client.DefaultRequestHeaders.Add("Authorization", "Bearer " + _Authorization.BearerToken); + } + + // Submit-Request-and-Build-Response + HttpResponseMessage? response = null; + try + { + response = await client.SendAsync(message, token).ConfigureAwait(false); + } + catch (NotSupportedException) + { + // do nothing + } + + if (response != null) + { + Logger?.Invoke(_Header + response.StatusCode + " response received after " + DateTime.Now); + + RestResponse ret = new(); + ret.ProtocolVersion = "HTTP/" + response.Version.ToString(); + ret.StatusCode = (int)response.StatusCode; + ret.StatusDescription = response.StatusCode.ToString(); + + if (response.Content != null && response.Content.Headers != null) + { + ret.ContentEncoding = string.Join(",", response.Content.Headers.ContentEncoding); + if (response.Content.Headers.ContentType != null) + ret.ContentType = response.Content.Headers.ContentType.ToString(); + + if (response.Content.Headers.ContentLength != null) + ret.ContentLength = response.Content.Headers.ContentLength.Value; + } + + Logger?.Invoke(_Header + "processing response headers after " + DateTime.Now); + + foreach (var header in response.Headers) + { + string key = header.Key; + string val = string.Join(",", header.Value); + if (ret.Headers != null) + ret.Headers.Add(key, val); + } + + if (ret.ContentLength > 0) + { + if (response.Content != null) + ret.Data = await response.Content.ReadAsStreamAsync(token); + } + + return ret; + } + + return null; + } + catch (TaskCanceledException) + { + Logger?.Invoke(_Header + "task canceled"); + return null; + } + catch (OperationCanceledException) + { + Logger?.Invoke(_Header + "operation canceled"); + return null; + } + catch (WebException we) + { + // WebException + Logger?.Invoke(_Header + "web exception: " + we.Message); + + RestResponse ret = new(); + ret.Headers = null; + ret.ContentEncoding = null; + ret.ContentType = null; + ret.ContentLength = 0; + ret.StatusCode = 0; + ret.StatusDescription = null; + ret.Data = null; + + if (we.Response is HttpWebResponse exceptionResponse) + { + ret.ProtocolVersion = "HTTP/" + exceptionResponse.ProtocolVersion.ToString(); + ret.ContentEncoding = exceptionResponse.ContentEncoding; + ret.ContentType = exceptionResponse.ContentType; + ret.ContentLength = exceptionResponse.ContentLength; + ret.StatusCode = (int)exceptionResponse.StatusCode; + ret.StatusDescription = exceptionResponse.StatusDescription; + + Logger?.Invoke(_Header + "server returned status code " + ret.StatusCode); + + if (exceptionResponse.Headers != null && exceptionResponse.Headers.Count > 0) + { + for (int i = 0; i < exceptionResponse.Headers.Count; i++) + { + string key = exceptionResponse.Headers.GetKey(i); + string val = ""; + int valCount = 0; + + string[]? getValues = exceptionResponse.Headers.GetValues(i); + if (getValues != null) + { + foreach (string value in getValues) + { + if (valCount == 0) + { + val += value; + valCount++; + } + else + { + val += "," + value; + valCount++; + } + } + } + + Logger?.Invoke(_Header + "adding exception header " + key + ": " + val); + if (ret.Headers != null) + ret.Headers.Add(key, val); + } + } + + if (exceptionResponse.ContentLength > 0) + { + Logger?.Invoke(_Header + "attaching exception response stream to response with content length " + exceptionResponse.ContentLength + " bytes"); + ret.ContentLength = exceptionResponse.ContentLength; + ret.Data = exceptionResponse.GetResponseStream(); + } + else + { + ret.ContentLength = 0; + ret.Data = null; + } + } + + return ret; + } + catch (Exception) + { + return null; + } + finally + { + Logger?.Invoke(_Header + "complete (" + DateTime.Now + ")"); + } + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/RestResponse.cs b/MsmhTools/MsmhTools/HTTPProxyServer/RestResponse.cs new file mode 100644 index 0000000..44cf3ce --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/RestResponse.cs @@ -0,0 +1,157 @@ +using System; +using System.Text; + +namespace MsmhTools.HTTPProxyServer +{ + /// + /// RESTful response from the server. + /// + public class RestResponse + { + /// + /// The protocol and version. + /// + public string? ProtocolVersion { get; internal set; } = null; + + /// + /// User-supplied headers. + /// + public Dictionary? Headers { get; internal set; } = new Dictionary(); + + /// + /// The content encoding returned from the server. + /// + public string? ContentEncoding { get; internal set; } = null; + + /// + /// The content type returned from the server. + /// + public string? ContentType { get; internal set; } = null; + + /// + /// The number of bytes contained in the response body byte array. + /// + public long ContentLength { get; internal set; } = 0; + + /// + /// The response URI of the responder. + /// + public string? ResponseURI { get; internal set; } = null; + + /// + /// The HTTP status code returned with the response. + /// + public int StatusCode { get; internal set; } = 0; + + /// + /// The HTTP status description associated with the HTTP status code. + /// + public string? StatusDescription { get; internal set; } = null; + + /// + /// The stream containing the response data returned from the server. + /// + public Stream? Data { get; internal set; } = null; + + /// + /// Read the data stream fully into a byte array. + /// If you use this property, the 'Data' property will be fully read. + /// + public byte[]? DataAsBytes + { + get + { + if (_Data == null && ContentLength > 0 && Data != null && Data.CanRead) + { + _Data = StreamToBytes(Data); + } + + return _Data; + } + } + + /// + /// Read the data stream fully into a string. + /// If you use this property, the 'Data' property will be fully read. + /// + public string? DataAsString + { + get + { + if (_Data == null && ContentLength > 0 && Data != null && Data.CanRead) + { + _Data = StreamToBytes(Data); + } + + if (_Data != null) + { + return Encoding.UTF8.GetString(_Data); + } + + return null; + } + } + + private byte[]? _Data = null; + + /// + /// An organized object containing frequently used response parameters from a RESTful HTTP request. + /// + public RestResponse() + { + + } + + private byte[] StreamToBytes(Stream input) + { + byte[] buffer = new byte[16 * 1024]; + using MemoryStream ms = new(); + int read; + + while ((read = input.Read(buffer, 0, buffer.Length)) > 0) + { + ms.Write(buffer, 0, read); + } + + byte[] ret = ms.ToArray(); + return ret; + } + + /// + /// Creates a human-readable string of the object. + /// + /// String. + public override string ToString() + { + string ret = ""; + ret += "REST Response" + Environment.NewLine; + + if (Headers != null && Headers.Count > 0) + { + ret += " Headers" + Environment.NewLine; + foreach (KeyValuePair curr in Headers) + { + ret += " | " + curr.Key + ": " + curr.Value + Environment.NewLine; + } + } + + if (!string.IsNullOrEmpty(ContentEncoding)) + ret += " Content Encoding : " + ContentEncoding + Environment.NewLine; + if (!string.IsNullOrEmpty(ContentType)) + ret += " Content Type : " + ContentType + Environment.NewLine; + if (!string.IsNullOrEmpty(ResponseURI)) + ret += " Response URI : " + ResponseURI + Environment.NewLine; + + ret += " Status Code : " + StatusCode + Environment.NewLine; + ret += " Status Description : " + StatusDescription + Environment.NewLine; + ret += " Content Length : " + ContentLength + Environment.NewLine; + + ret += " Data : "; + if (Data != null && ContentLength > 0) ret += "[stream]"; + else ret += "[none]"; + ret += Environment.NewLine; + + return ret; + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/Settings.cs b/MsmhTools/MsmhTools/HTTPProxyServer/Settings.cs new file mode 100644 index 0000000..183644e --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/Settings.cs @@ -0,0 +1,63 @@ +using System; +using System.Net; +using System.Text; + +namespace MsmhTools.HTTPProxyServer +{ + /// + /// Proxy server settings. + /// + public class ProxySettings + { + private IPAddress _ListenerIpAddress { get; set; } = IPAddress.Any; + private int _ListenerPort { get; set; } = 8080; + private int _MaxThreads { get; set; } = 256; + + /// + /// The DNS hostname or IP address on which to listen. + /// + public IPAddress ListenerIpAddress + { + get + { + return _ListenerIpAddress; + } + set + { + _ListenerIpAddress = value ?? throw new ArgumentNullException(nameof(ListenerIpAddress)); + } + } + + /// + /// The TCP port on which to listen. + /// + public int ListenerPort + { + get + { + return _ListenerPort; + } + set + { + if (value < 0 || value > 65535) throw new ArgumentOutOfRangeException(nameof(ListenerPort)); + _ListenerPort = value; + } + } + + /// + /// Maximum number of threads to support. + /// + public int MaxThreads + { + get + { + return _MaxThreads; + } + set + { + if (value < 1) throw new ArgumentOutOfRangeException(nameof(MaxThreads)); + _MaxThreads = value; + } + } + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/Tunnel.cs b/MsmhTools/MsmhTools/HTTPProxyServer/Tunnel.cs new file mode 100644 index 0000000..2131ba1 --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/Tunnel.cs @@ -0,0 +1,684 @@ +using System; +using System.Diagnostics; +using System.Net; +using System.Net.NetworkInformation; +using System.Net.Security; +using System.Net.Sockets; +using System.Security.Cryptography.X509Certificates; +using System.Text; + +namespace MsmhTools.HTTPProxyServer +{ + /// + /// CONNECT tunnel. + /// + public class Tunnel : IDisposable + { + /// + /// UTC timestamp when the session was started. + /// + public DateTime TimestampUtc { get; set; } + + public Request Request { get; set; } + + /// + /// Source IP address. + /// + public string SourceIp { get; set; } + + /// + /// Source TCP port. + /// + public int SourcePort { get; set; } + + /// + /// Destination IP address. + /// + public string DestIp { get; set; } + + /// + /// Destination TCP port. + /// + public int DestPort { get; set; } + + /// + /// Destination hostname. + /// + public string DestHostname { get; set; } + + /// + /// Destination host port. + /// + public int DestHostPort { get; set; } + + /// + /// The TCP client instance for the requestor. + /// + public TcpClient ClientTcpClient { get; set; } + + /// + /// The TCP client instance for the server. + /// + public TcpClient ServerTcpClient { get; set; } + + /// + /// The data stream for the client. + /// + public Stream ClientStream { get; set; } + + /// + /// The data stream for the server. + /// + public Stream ServerStream { get; set; } + + private bool _Active = true; + + public event EventHandler? OnErrorOccurred; + public event EventHandler? OnDebugInfoReceived; + + /// + /// Construct a Tunnel object. + /// + /// Request. + /// TCP client instance of the client. + /// TCP client instance of the server. + public Tunnel( + Request request, + TcpClient client, + TcpClient server) + { + if (request == null) throw new ArgumentNullException(nameof(request)); + if (string.IsNullOrEmpty(request.SourceIp)) throw new ArgumentNullException(nameof(request)); + if (string.IsNullOrEmpty(request.DestIp)) throw new ArgumentNullException(nameof(request)); + if (string.IsNullOrEmpty(request.DestHostname)) throw new ArgumentNullException(nameof(request)); + if (request.SourcePort < 0) throw new ArgumentOutOfRangeException(nameof(request)); + if (request.DestPort < 0) throw new ArgumentOutOfRangeException(nameof(request)); + if (request.DestHostPort < 0) throw new ArgumentOutOfRangeException(nameof(request)); + + Request = request; + TimestampUtc = DateTime.Now.ToUniversalTime(); + SourceIp = request.SourceIp; + SourcePort = request.SourcePort; + DestIp = request.DestIp; + DestPort = request.DestPort; + DestHostname = request.DestHostname; + DestHostPort = request.DestHostPort; + + ClientTcpClient = client ?? throw new ArgumentNullException(nameof(client)); + ClientTcpClient.NoDelay = true; + ClientTcpClient.Client.NoDelay = true; + + ServerTcpClient = server ?? throw new ArgumentNullException(nameof(server)); + ServerTcpClient.NoDelay = true; + ServerTcpClient.Client.NoDelay = true; + + ClientStream = client.GetStream(); + ServerStream = server.GetStream(); + + Parallel.Invoke( + () => ClientReaderAsync(), + () => ServerReaderAsync() + ); + + //Task.Run(async () => await ClientReaderAsync()); + //Task.Run(async () => await ServerReaderAsync()); + + _Active = true; + } + + /// + /// Human-readable string. + /// + /// String. + public override string ToString() + { + return TimestampUtc.ToString("MM/dd/yyyy HH:mm:ss") + " " + Source() + " to " + Destination(); + } + + /// + /// Returns the source IP and port. + /// + /// String. + public string Source() + { + return SourceIp + ":" + SourcePort; + } + + /// + /// Returns the destination IP and port along wit destination hostname and port. + /// + /// String. + public string Destination() + { + return DestIp + ":" + DestPort + " [" + DestHostname + ":" + DestHostPort + "]"; + } + + /// + /// Determines whether or not the tunnel is active. + /// + /// True if both connections are active. + public bool IsActive() + { + bool clientActive = false; + bool serverActive = false; + bool clientSocketActive = false; + bool serverSocketActive = false; + + if (ClientTcpClient != null) + { + clientActive = ClientTcpClient.Connected; + + if (ClientTcpClient.Client != null) + { + TcpState clientState = GetTcpRemoteState(ClientTcpClient); + + if (clientState == TcpState.Established + || clientState == TcpState.Listen + || clientState == TcpState.SynReceived + || clientState == TcpState.SynSent + || clientState == TcpState.TimeWait) + { + clientSocketActive = true; + } + } + } + + if (ServerTcpClient != null) + { + serverActive = ServerTcpClient.Connected; + + if (ServerTcpClient.Client != null) + { + // see https://github.com/jchristn/PuppyProxy/compare/master...waldekmastykarz:PuppyProxy:master + + /* + TcpState serverState = GetTcpRemoteState(ServerTcpClient); + + if (serverState == TcpState.Established + || serverState == TcpState.Listen + || serverState == TcpState.SynReceived + || serverState == TcpState.SynSent + || serverState == TcpState.TimeWait) + { + serverSocketActive = true; + } + */ + + serverSocketActive = true; + } + } + + _Active = _Active && clientActive && clientSocketActive && serverActive && serverSocketActive; + return _Active; + } + + /// + /// Tear down the tunnel object and resources. + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (ClientStream != null) + { + ClientStream.Close(); + ClientStream.Dispose(); + } + + if (ServerStream != null) + { + ServerStream.Close(); + ServerStream.Dispose(); + } + + if (ClientTcpClient != null) + ClientTcpClient.Dispose(); + + if (ServerTcpClient != null) + ServerTcpClient.Dispose(); + } + + private bool StreamReadSync(TcpClient client, out byte[]? data) + { + data = null; + try + { + Stream stream = client.GetStream(); + + int read = 0; + long bufferSize = 65536; + byte[] buffer = new byte[bufferSize]; + + read = stream.Read(buffer, 0, buffer.Length); + if (read > 0) + { + if (read == bufferSize) + { + data = buffer; + return true; + } + else + { + data = new byte[read]; + Buffer.BlockCopy(buffer, 0, data, 0, read); + return true; + } + } + else + { + data = null; + return true; + } + } + catch (InvalidOperationException) + { + _Active = false; + return false; + } + catch (IOException) + { + _Active = false; + return false; + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"Stream Read Sync: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + _Active = false; + return false; + } + finally + { + // do nothing + } + } + + private async Task StreamReadAsync(TcpClient client) + { + var task = await Task.Run(async () => + { + try + { + Stream stream = client.GetStream(); + if (stream == null) return null; + + byte[] buffer = new byte[65536]; + + using MemoryStream memStream = new(); + int read = await stream.ReadAsync(buffer); + if (read > 0) + { + if (read == buffer.Length) + { + return buffer; + } + else + { + byte[] data = new byte[read]; + Buffer.BlockCopy(buffer, 0, data, 0, read); + return data; + } + } + else + { + return null; + } + } + catch (InvalidOperationException) + { + _Active = false; + return null; + } + catch (IOException) + { + _Active = false; + return null; + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"Stream Read Async: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + _Active = false; + return null; + } + finally + { + // do nothing + } + }); + + return task; + } + + private TcpState GetTcpLocalState(TcpClient tcpClient) + { + try + { + if (tcpClient.Client == null) + return TcpState.Unknown; + + IPGlobalProperties ipgp = IPGlobalProperties.GetIPGlobalProperties(); + if (ipgp != null) + { + TcpConnectionInformation[]? tcis = ipgp.GetActiveTcpConnections(); + if (tcis != null) + { + for (int n = 0; n < tcis.Length; n++) + { + TcpConnectionInformation? tci = tcis[n]; + if (tci != null) + { + if (tcpClient.Client != null) + { + if (tci.LocalEndPoint.Equals(tcpClient.Client.LocalEndPoint)) + return tci.State; + } + } + } + } + } + + return TcpState.Unknown; + } + catch (Exception) + { + return TcpState.Unknown; + } + } + + private TcpState GetTcpRemoteState(TcpClient tcpClient) + { + try + { + if (tcpClient.Client == null) + return TcpState.Unknown; + + IPGlobalProperties ipgp = IPGlobalProperties.GetIPGlobalProperties(); + if (ipgp != null) + { + TcpConnectionInformation[]? tcis = ipgp.GetActiveTcpConnections(); + if (tcis != null) + { + for (int n = 0; n < tcis.Length; n++) + { + TcpConnectionInformation? tci = tcis[n]; + if (tci != null) + { + if (tcpClient.Client != null) + { + if (tci.RemoteEndPoint.Equals(tcpClient.Client.RemoteEndPoint)) + return tci.State; + } + } + } + } + } + + return TcpState.Unknown; + } + catch (Exception) + { + return TcpState.Unknown; + } + } + + private void ClientReaderSync() + { + try + { + // Event + string msgEvent = $"ClientReaderSync started for {Source()} to {Destination()}"; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + byte[]? data = null; + while (true) + { + if (StreamReadSync(ClientTcpClient, out data)) + { + if (data != null && data.Length > 0) + { + // Event + msgEvent = $"ClientReaderSync {Source()} to {Destination()} read {data.Length} bytes."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + ServerSend(data); + + data = null; + } + else + { + // Event + msgEvent = "ClientReaderSync no data returned."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + } + } + else + { + _Active = false; + return; + } + } + } + catch (ObjectDisposedException) + { + _Active = false; + } + catch (SocketException) + { + _Active = false; + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"ClientReaderSync: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + _Active = false; + } + } + + private void ServerReaderSync() + { + try + { + // Event + string msgEvent = $"ServerReaderSync started for {Source()} to {Destination()}"; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + byte[]? data = null; + while (true) + { + if (StreamReadSync(ServerTcpClient, out data)) + { + if (data != null && data.Length > 0) + { + // Event + msgEvent = $"ServerReaderSync {Destination()} to {Source()} read {data.Length} bytes."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + ClientSend(data); + + data = null; + } + else + { + // Event + msgEvent = "ServerReaderSync no data returned."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + } + } + else + { + _Active = false; + return; + } + } + } + catch (ObjectDisposedException) + { + _Active = false; + } + catch (SocketException) + { + _Active = false; + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"ServerReaderSync: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + _Active = false; + } + } + + private async void ClientReaderAsync() + { + await Task.Run(async () => + { + try + { + // Event + string msgEvent = $"ClientReaderAsync started for {Source()} to {Destination()}"; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + byte[]? data = null; + while (true) + { + data = await StreamReadAsync(ClientTcpClient); + + if (data != null && data.Length > 0) + { + // Event + msgEvent = $"ClientReaderAsync {Source()} to {Destination()} read {data.Length} bytes."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + ServerSend(data); + + data = null; + } + + if (!_Active) break; + } + } + catch (ObjectDisposedException) + { + _Active = false; + } + catch (SocketException) + { + _Active = false; + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"ClientReaderAsync: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + _Active = false; + } + }); + } + + private async void ServerReaderAsync() + { + await Task.Run(async () => + { + try + { + // Event + string msgEvent = $"ServerReaderAsync started for {Source()} to {Destination()}"; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + byte[]? data = null; + while (true) + { + data = await StreamReadAsync(ServerTcpClient); + + if (data != null && data.Length > 0) + { + // Event + msgEvent = $"ServerReaderAsync {Destination()} to {Source()} read {data.Length} bytes."; + OnDebugInfoReceived?.Invoke(msgEvent, EventArgs.Empty); + + ClientSend(data); + + data = null; + } + + if (!_Active) break; + } + } + catch (ObjectDisposedException) + { + _Active = false; + } + catch (SocketException) + { + _Active = false; + } + catch (Exception e) + { + // Event Error + string msgEventErr = $"ServerReaderAsync: {e.Message}"; + OnErrorOccurred?.Invoke(msgEventErr, EventArgs.Empty); + _Active = false; + } + }); + } + + private void ClientSend(byte[] data) + { + if (ClientTcpClient.Client == null) return; + //Send(data, ClientTcpClient.Client); + ClientTcpClient.Client.Send(data); + } + + private void ServerSend(byte[] data) + { + if (ServerTcpClient.Client == null) return; + if (Request.ApplyDpiBypass) + Send(data, ServerTcpClient.Client); + else + ServerTcpClient.Client.Send(data); + } + + public HTTPProxyServer.Program.DPIBypass ConstantDPIBypass { get; set; } = new(); + public void EnableDPIBypass(HTTPProxyServer.Program.DPIBypass dpiBypass) + { + ConstantDPIBypass = dpiBypass; + ConstantDPIBypass.DestHostname = DestHostname; + ConstantDPIBypass.DestPort = DestHostPort; + } + + private void Send(byte[] data, Socket? socket) + { + if (socket != null) + { + if (ConstantDPIBypass.DPIBypassMode == HTTPProxyServer.Program.DPIBypass.Mode.Disable) + { + HTTPProxyServer.Program.DPIBypass bp = HTTPProxyServer.StaticDPIBypassProgram; + bp.DestHostname = DestHostname; + bp.DestPort = DestHostPort; + if (bp.DPIBypassMode == HTTPProxyServer.Program.DPIBypass.Mode.Program) + { + HTTPProxyServer.Program.DPIBypass.ProgramMode programMode = new(data, socket); + programMode.Send(bp); + } + else + socket.Send(data); + } + else + { + HTTPProxyServer.Program.DPIBypass.ProgramMode programMode = new(data, socket); + programMode.Send(ConstantDPIBypass); + } + + } + } + + } +} diff --git a/MsmhTools/MsmhTools/HTTPProxyServer/TunnelManager.cs b/MsmhTools/MsmhTools/HTTPProxyServer/TunnelManager.cs new file mode 100644 index 0000000..603bde3 --- /dev/null +++ b/MsmhTools/MsmhTools/HTTPProxyServer/TunnelManager.cs @@ -0,0 +1,52 @@ +using System; +using System.Net.Sockets; + +namespace MsmhTools.HTTPProxyServer +{ + internal class TunnelManager + { + private Dictionary Tunnels = new(); + + /// + /// Construct the tunnel manager. + /// + public TunnelManager() + { + + } + + internal void Add(int threadId, Tunnel curr) + { + if (!Tunnels.ContainsKey(threadId)) + Tunnels.Add(threadId, curr); + } + + internal void Remove(int threadId) + { + if (Tunnels.ContainsKey(threadId)) + { + Tunnel curr = Tunnels[threadId]; + if (curr != null) + { + if (curr.ClientTcpClient.Connected) + curr.ClientTcpClient.Dispose(); + if (curr.ServerTcpClient.Connected) + curr.ServerTcpClient.Dispose(); + Tunnels.Remove(threadId); + curr.Dispose(); + } + } + } + + internal Dictionary GetTunnels() + { + Dictionary tempDic = new(Tunnels); + return tempDic; + } + + public int Count + { + get => Tunnels.ToList().Count; + } + } +} diff --git a/MsmhTools/MsmhTools/HtmlTools.cs b/MsmhTools/MsmhTools/HtmlTools.cs new file mode 100644 index 0000000..bbf0ff2 --- /dev/null +++ b/MsmhTools/MsmhTools/HtmlTools.cs @@ -0,0 +1,614 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace MsmhTools +{ + /// + /// HTML specific string manipulations. + /// + public static class HtmlTools + { + public static string TagItalic => "i"; + public static string TagBold => "b"; + public static string TagUnderline => "u"; + public static string TagFont => "font"; + public static string TagCyrillicI => "\u0456"; // Cyrillic Small Letter Byelorussian-Ukrainian i (http://graphemica.com/%D1%96) + + private static readonly Regex TagOpenRegex = new Regex(@"<\s*(?:/\s*)?(\w+)[^>]*>", RegexOptions.Compiled); + + /// + /// Remove all of the specified opening and closing tags from the source HTML string. + /// + /// The source string to search for specified HTML tags. + /// The HTML tags to remove. + /// A new string without the specified opening and closing tags. + public static string RemoveOpenCloseTags(string source, params string[] tags) + { + if (string.IsNullOrEmpty(source) || source.IndexOf('<') < 0) + { + return source; + } + + // This pattern matches these tag formats: + // + // < tag*> + // + // < /tag*> + // + // < / tag*> + return TagOpenRegex.Replace(source, m => tags.Contains(m.Groups[1].Value, StringComparer.OrdinalIgnoreCase) ? string.Empty : m.Value); + } + + /// + /// Converts a string to an HTML-encoded string using named character references. + /// + /// The string to encode. + /// An encoded string. + public static string EncodeNamed(string source) + { + if (string.IsNullOrEmpty(source)) + { + return string.Empty; + } + + var encoded = new StringBuilder(source.Length); + foreach (var ch in source) + { + switch (ch) + { + case '<': + encoded.Append("<"); + break; + case '>': + encoded.Append(">"); + break; + case '"': + encoded.Append("""); + break; + case '&': + encoded.Append("&"); + break; + case '\'': + encoded.Append("'"); + break; + case ' ': + encoded.Append(" "); + break; + case '–': + encoded.Append("–"); + break; + case '—': + encoded.Append("—"); + break; + case '¡': + encoded.Append("¡"); + break; + case '¿': + encoded.Append("¿"); + break; + case '“': + encoded.Append("“"); + break; + case '”': + encoded.Append("”"); + break; + case '‘': + encoded.Append("‘"); + break; + case '’': + encoded.Append("’"); + break; + case '«': + encoded.Append("«"); + break; + case '»': + encoded.Append("»"); + break; + case '¢': + encoded.Append("¢"); + break; + case '©': + encoded.Append("©"); + break; + case '÷': + encoded.Append("÷"); + break; + case 'µ': + encoded.Append("µ"); + break; + case '·': + encoded.Append("·"); + break; + case '¶': + encoded.Append("¶"); + break; + case '±': + encoded.Append("±"); + break; + case '€': + encoded.Append("€"); + break; + case '£': + encoded.Append("£"); + break; + case '®': + encoded.Append("®"); + break; + case '§': + encoded.Append("§"); + break; + case '™': + encoded.Append("™"); + break; + case '¥': + encoded.Append("¥"); + break; + case 'á': + encoded.Append("á"); + break; + case 'Á': + encoded.Append("Á"); + break; + case 'à': + encoded.Append("à"); + break; + case 'À': + encoded.Append("À"); + break; + case 'â': + encoded.Append("â"); + break; + case 'Â': + encoded.Append("Â"); + break; + case 'å': + encoded.Append("å"); + break; + case 'Å': + encoded.Append("Å"); + break; + case 'ã': + encoded.Append("ã"); + break; + case 'Ã': + encoded.Append("Ã"); + break; + case 'ä': + encoded.Append("ä"); + break; + case 'Ä': + encoded.Append("Ä"); + break; + case 'æ': + encoded.Append("æ"); + break; + case 'Æ': + encoded.Append("Æ"); + break; + case 'ç': + encoded.Append("ç"); + break; + case 'Ç': + encoded.Append("Ç"); + break; + case 'é': + encoded.Append("é"); + break; + case 'É': + encoded.Append("É"); + break; + case 'è': + encoded.Append("è"); + break; + case 'È': + encoded.Append("È"); + break; + case 'ê': + encoded.Append("ê"); + break; + case 'Ê': + encoded.Append("Ê"); + break; + case 'ë': + encoded.Append("ë"); + break; + case 'Ë': + encoded.Append("Ë"); + break; + case 'í': + encoded.Append("í"); + break; + case 'Í': + encoded.Append("Í"); + break; + case 'ì': + encoded.Append("ì"); + break; + case 'Ì': + encoded.Append("Ì"); + break; + case 'î': + encoded.Append("î"); + break; + case 'Î': + encoded.Append("Î"); + break; + case 'ï': + encoded.Append("ï"); + break; + case 'Ï': + encoded.Append("Ï"); + break; + case 'ñ': + encoded.Append("ñ"); + break; + case 'Ñ': + encoded.Append("Ñ"); + break; + case 'ó': + encoded.Append("ó"); + break; + case 'Ó': + encoded.Append("Ó"); + break; + case 'ò': + encoded.Append("ò"); + break; + case 'Ò': + encoded.Append("Ò"); + break; + case 'ô': + encoded.Append("ô"); + break; + case 'Ô': + encoded.Append("Ô"); + break; + case 'ø': + encoded.Append("ø"); + break; + case 'Ø': + encoded.Append("Ø"); + break; + case 'õ': + encoded.Append("õ"); + break; + case 'Õ': + encoded.Append("Õ"); + break; + case 'ö': + encoded.Append("ö"); + break; + case 'Ö': + encoded.Append("Ö"); + break; + case 'ß': + encoded.Append("ß"); + break; + case 'ú': + encoded.Append("ú"); + break; + case 'Ú': + encoded.Append("Ú"); + break; + case 'ù': + encoded.Append("ù"); + break; + case 'Ù': + encoded.Append("Ù"); + break; + case 'û': + encoded.Append("û"); + break; + case 'Û': + encoded.Append("Û"); + break; + case 'ü': + encoded.Append("ü"); + break; + case 'Ü': + encoded.Append("Ü"); + break; + case 'ÿ': + encoded.Append("ÿ"); + break; + default: + if (ch > 127) + { + encoded.Append("&#").Append((int)ch).Append(';'); + } + else + { + encoded.Append(ch); + } + break; + } + } + return encoded.ToString(); + } + + /// + /// Converts a string to an HTML-encoded string using numeric character references. + /// + /// The string to encode. + /// An encoded string. + public static string EncodeNumeric(string source) + { + if (string.IsNullOrEmpty(source)) + { + return string.Empty; + } + + var encoded = new StringBuilder(source.Length); + foreach (var ch in source) + { + if (ch == ' ') + { + encoded.Append("&#"); + encoded.Append(160); //   + encoded.Append(';'); + } + else if (ch > 127 || ch == '<' || ch == '>' || ch == '"' || ch == '&' || ch == '\'') + { + encoded.Append("&#"); + encoded.Append((int)ch); + encoded.Append(';'); + } + else + { + encoded.Append(ch); + } + } + return encoded.ToString(); + } + + /// + /// Optimized method to remove common html tags, like , , , and + /// + /// Text to remove html tags from + /// Text stripped from common html tags + private static string RemoveCommonHtmlTags(string s) + { + char[] array = new char[s.Length]; + int arrayIndex = 0; + bool inside = false; + + for (int i = 0; i < s.Length; i++) + { + char ch = s[i]; + if (ch == '<' && i < s.Length - 2) + { + var next = s[i + 1]; + var nextNext = s[i + 2]; + if (nextNext == '>' && + (next == 'i' || // + next == 'I' || // + next == 'b' || // + next == 'B' || // + next == 'u' || // + next == 'U')) // + { + inside = true; + continue; + } + + if (next == '/' && i < s.Length - 3) + { + var nextNextNext = s[i + 3]; + if (nextNextNext == '>' && + (nextNext == 'i' || // + nextNext == 'I' || // + nextNext == 'b' || // + nextNext == 'B' || // + nextNext == 'u' || // + nextNext == 'U')) // + { + inside = true; + continue; + } + + if (nextNext == 'c' && nextNextNext == '.') + { + inside = true; + continue; + } + } + + if (nextNext == '/' && i < s.Length - 3) + { // some bad end tags sometimes seen + var nextNextNext = s[i + 3]; + if (nextNextNext == '>' && + (next == 'i' || // + next == 'I' || // + next == 'b' || // + next == 'B' || // + next == 'u' || // + next == 'U')) // + { + inside = true; + continue; + } + } + + if ((next == 'f' || next == 'F') && s.Substring(i).StartsWith("", StringComparison.OrdinalIgnoreCase) || // + next == ' ' && nextNext == '/' && s.Substring(i).StartsWith("< /font>", StringComparison.OrdinalIgnoreCase) || // < /font> + next == '/' && nextNext == ' ' && s.Substring(i).StartsWith("", StringComparison.OrdinalIgnoreCase)) // + { + inside = true; + continue; + } + + if (next == 'c' && nextNext == '.') + { + inside = true; + continue; + } + } + if (inside && ch == '>') + { + inside = false; + continue; + } + if (!inside) + { + array[arrayIndex] = ch; + arrayIndex++; + } + } + return new string(array, 0, arrayIndex); + } + + public static bool IsUrl(string text) + { + if (string.IsNullOrWhiteSpace(text) || text.Length < 6 || text.IndexOf('.') < 0 || text.IndexOf(' ') >= 0) + { + return false; + } + + var allLower = text.ToLowerInvariant(); + if (allLower.StartsWith("http://", StringComparison.Ordinal) || allLower.StartsWith("https://", StringComparison.Ordinal) || + allLower.StartsWith("www.", StringComparison.Ordinal) || allLower.EndsWith(".org", StringComparison.Ordinal) || + allLower.EndsWith(".com", StringComparison.Ordinal) || allLower.EndsWith(".net", StringComparison.Ordinal)) + { + return true; + } + + if (allLower.Contains(".org/") || allLower.Contains(".com/") || allLower.Contains(".net/")) + { + return true; + } + + return false; + } + + public static bool StartsWithUrl(string text) + { + if (string.IsNullOrWhiteSpace(text)) + { + return false; + } + + var arr = text.Trim().TrimEnd('.').TrimEnd().Split(); + if (arr.Length == 0) + { + return false; + } + + return IsUrl(arr[0]); + } + + private static readonly string[] UppercaseTags = { "", "", "", "", "", "", "
" }; + + public static string FixUpperTags(string input) + { + if (string.IsNullOrEmpty(input) || input.IndexOf('<') < 0) + { + return input; + } + + var text = input; + var idx = text.IndexOfAny(UppercaseTags, StringComparison.Ordinal); + while (idx >= 0) + { + var endIdx = text.IndexOf('>', idx + 2); + if (endIdx < idx) + { + break; + } + + var tag = text.Substring(idx, endIdx - idx).ToLowerInvariant(); + text = text.Remove(idx, endIdx - idx).Insert(idx, tag); + idx = text.IndexOfAny(UppercaseTags, StringComparison.Ordinal); + } + return text; + } + + public static string ToggleTag(string input, string tag, bool wholeLine, bool assa) + { + var text = input; + + if (assa) + { + var onOffTags = new List { "i", "b", "u", "s", "be" }; + if (onOffTags.Contains(tag)) + { + if (text.Contains($"\\{tag}1")) + { + text = text.Replace($"{{\\{tag}1}}", string.Empty); + text = text.Replace($"{{\\{tag}0}}", string.Empty); + text = text.Replace($"\\{tag}1", string.Empty); + text = text.Replace($"\\{tag}0", string.Empty); + } + else + { + text = wholeLine ? $"{{\\{tag}1}}{text}" : $"{{\\{tag}1}}{text}{{\\{tag}0}}"; + } + } + else + { + if (text.Contains($"\\{tag}")) + { + text = text.Replace($"{{\\{tag}}}", string.Empty); + text = text.Replace($"\\{tag}", string.Empty); + } + else + { + text = $"{{\\{tag}}}{text}"; + } + } + + return text; + } + + if (text.IndexOf("<" + tag + ">", StringComparison.OrdinalIgnoreCase) >= 0 || + text.IndexOf("", StringComparison.OrdinalIgnoreCase) >= 0) + { + text = text.Replace("<" + tag + ">", string.Empty); + text = text.Replace("", string.Empty); + text = text.Replace("<" + tag.ToUpperInvariant() + ">", string.Empty); + text = text.Replace("", string.Empty); + } + else + { + int indexOfEndBracket = text.IndexOf('}'); + if (text.StartsWith("{\\", StringComparison.Ordinal) && indexOfEndBracket > 1 && indexOfEndBracket < 6) + { + text = $"{text.Substring(0, indexOfEndBracket + 1)}<{tag}>{text.Remove(0, indexOfEndBracket + 1)}"; + } + else + { + text = $"<{tag}>{text}"; + } + } + return text; + } + + public static Color GetColorFromString(string color) + { + Color c = Color.White; + try + { + if (color.StartsWith("rgb(", StringComparison.Ordinal)) + { + string[] arr = color.Remove(0, 4).TrimEnd(')').Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + c = Color.FromArgb(int.Parse(arr[0]), int.Parse(arr[1]), int.Parse(arr[2])); + } + else + { + c = ColorTranslator.FromHtml(color); + } + } + catch + { + // ignored + } + + return c; + } + + } +} diff --git a/MsmhTools/MsmhTools/INIFile.cs b/MsmhTools/MsmhTools/INIFile.cs new file mode 100644 index 0000000..4eb7aef --- /dev/null +++ b/MsmhTools/MsmhTools/INIFile.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools +{ + public class INIFile + { + private string Path; + private string? EXE = Assembly.GetExecutingAssembly().GetName().Name; + + [DllImport("kernel32", CharSet = CharSet.Unicode)] + private static extern long WritePrivateProfileString(string? Section, string? Key, string? Value, string FilePath); + + [DllImport("kernel32", CharSet = CharSet.Unicode)] + private static extern int GetPrivateProfileString(string? Section, string Key, string Default, StringBuilder RetVal, int Size, string FilePath); + + public INIFile(string? IniPath = null) + { + Path = new FileInfo(IniPath ?? EXE + ".ini").FullName; + } + + public string Read(string Key, string? Section = null) + { + var RetVal = new StringBuilder(255); + GetPrivateProfileString(Section ?? EXE, Key, "", RetVal, 255, Path); + return RetVal.ToString(); + } + + public void Write(string? Key, string? Value, string? Section = null) + { + WritePrivateProfileString(Section ?? EXE, Key, Value, Path); + } + + public void DeleteKey(string Key, string? Section = null) + { + Write(Key, null, Section ?? EXE); + } + + public void DeleteSection(string? Section = null) + { + Write(null, null, Section ?? EXE); + } + + public bool KeyExists(string Key, string? Section = null) + { + return Read(Key, Section).Length > 0; + } + } +} diff --git a/MsmhTools/MsmhTools/Info.cs b/MsmhTools/MsmhTools/Info.cs new file mode 100644 index 0000000..2ea2dfe --- /dev/null +++ b/MsmhTools/MsmhTools/Info.cs @@ -0,0 +1,98 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Diagnostics; + +namespace MsmhTools +{ + public static class Info + { + public static readonly string CurrentPath1 = AppContext.BaseDirectory; + public static readonly string ApplicationName = Path.GetFileName(Application.ExecutablePath); + public static readonly string ApplicationNameWithoutExtension = Path.GetFileNameWithoutExtension(Application.ExecutablePath); + public static readonly string ApplicationFullPath = Application.ExecutablePath; + public static readonly string ApplicationFullPathWithoutExtension = Path.Combine(CurrentPath1, ApplicationNameWithoutExtension); + public static AssemblyName CallingAssemblyName => Assembly.GetCallingAssembly().GetName(); + public static AssemblyName EntryAssemblyName => Assembly.GetEntryAssembly().GetName(); + public static AssemblyName ExecutingAssemblyName => Assembly.GetExecutingAssembly().GetName(); + public static FileVersionInfo InfoCallingAssembly => FileVersionInfo.GetVersionInfo(Assembly.GetCallingAssembly().Location); + public static FileVersionInfo InfoEntryAssembly => FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location); + public static FileVersionInfo InfoExecutingAssembly2 => FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location); + + public static FileVersionInfo GetAppInfo(Assembly assembly) + { + return FileVersionInfo.GetVersionInfo(assembly.Location); + } + + public static string GetAppGUID() + { + Assembly assembly = Assembly.GetExecutingAssembly(); + GuidAttribute attribute = (GuidAttribute)assembly.GetCustomAttributes(typeof(GuidAttribute), true)[0]; + return attribute.Value; + } + + /// + /// 1 if newVersion > oldVersion. + ///
0 if newVersion = oldVersion.
+ ///
-1 if newVersion < oldVersion
+ ///
+ public static int VersionCompare(string newVersion, string oldVersion) + { + var versionNew = new Version(newVersion); + var versionOld = new Version(oldVersion); + var result = versionNew.CompareTo(versionOld); + if (result > 0) + return 1; // versionNew is greater + else if (result < 0) + return -1; // versionOld is greater + else + return 0; // versions are equal + } + + public static bool IsRunningOnWindows + { + get + { + var platform = GetPlatform(); + if (platform == OSPlatform.Windows) + return true; + else + return false; + } + } + + public static bool IsRunningOnLinux + { + get + { + var platform = GetPlatform(); + if (platform == OSPlatform.Linux) + return true; + else + return false; + } + } + + public static bool IsRunningOnMac + { + get + { + var platform = GetPlatform(); + if (platform == OSPlatform.OSX) + return true; + else + return false; + } + } + + private static OSPlatform GetPlatform() + { + // Current versions of Mono report MacOSX platform as Unix + return Environment.OSVersion.Platform == PlatformID.MacOSX || (Environment.OSVersion.Platform == PlatformID.Unix && Directory.Exists("/Applications") && Directory.Exists("/System") && Directory.Exists("/Users")) + ? OSPlatform.OSX + : Environment.OSVersion.Platform == PlatformID.Unix + ? OSPlatform.Linux + : OSPlatform.Windows; + } + } +} diff --git a/MsmhTools/MsmhTools/IsolatedStorage.cs b/MsmhTools/MsmhTools/IsolatedStorage.cs new file mode 100644 index 0000000..59af8cb --- /dev/null +++ b/MsmhTools/MsmhTools/IsolatedStorage.cs @@ -0,0 +1,315 @@ +using System; +using System.IO.IsolatedStorage; +using System.Text; +using System.Security.Cryptography; +using Force.Crc32; +using System.Diagnostics; + +namespace MsmhTools +{ + public class IsolatedStorage + { + //----------------------------------------------------------------------------------- + public static IDictionary? DicLineByLine(string fileName) + { + string? read = ReadIsolatedTextFile(fileName); + if (read == null) return null; + string[] split1 = read.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + IDictionary Dic = new Dictionary(); + int a = 0; + int b = 1; + for (; b < split1.Length; a += 2, b += 2) + { + if (!Dic.ContainsKey(split1[a])) + Dic.Add(split1[a], split1[b]); + } + return Dic; + } + //----------------------------------------------------------------------------------- + public static List? ListLineByLine(string fileName) + { + string? read = ReadIsolatedTextFile(fileName); + if (read == null) return null; + string[] split1 = read.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + List list = new(); + foreach (var line in split1) + list.Add(line); + return list; + // Usage: List items = ListLineByLine(); + } + //----------------------------------------------------------------------------------- + public static int? CountLines(string fileName) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + if (isoStore.FileExists(fileName)) + { + using IsolatedStorageFileStream isoStream = new(fileName, FileMode.Open, isoStore); + using StreamReader reader = new(isoStream); + int count = 0; + while (reader.ReadLine() != null) + { + count++; + } + isoStore.Close(); + return count; + } + return null; + } + //----------------------------------------------------------------------------------- + public static int FilesTotalNumber + { + get + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + int count = 0; + // Retrieve all the files in the directory by calling the GetAllFiles + foreach (string file in GetAllFiles("*", isoStore)) + { + if (isoStore.FileExists(file)) + count++; + } + return count; + } + } + //----------------------------------------------------------------------------------- + public static bool IsFileExist(string fileName) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + if (isoStore.FileExists(fileName)) + { + isoStore.Close(); + //Console.WriteLine("File Exist: " + fileName); + return true; + } + isoStore.Close(); + Debug.WriteLine("File Not Exist: " + fileName); + return false; + } + public static bool IsDirectoryExist(string directoryName) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + if (isoStore.DirectoryExists(directoryName)) + { + isoStore.Close(); + Debug.WriteLine("Directory Exist: " + directoryName); + return true; + } + isoStore.Close(); + Debug.WriteLine("Directory Not Exist: " + directoryName); + return false; + } + //----------------------------------------------------------------------------------- + public static string GetCRC32(string fileName) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + if (isoStore.FileExists(fileName)) + { + IsolatedStorageFileStream isoStream = new(fileName, FileMode.Open, isoStore); + StreamReader reader = new(isoStream); + var r = reader.ReadToEnd(); + var bytes = Encoding.UTF8.GetBytes(r); + uint crc32 = Crc32Algorithm.Compute(bytes); + reader.Close(); + isoStream.Close(); + isoStore.Close(); + return crc32.ToString(); + } + Console.WriteLine("File Not Exist: " + fileName); + return string.Empty; + } + //----------------------------------------------------------------------------------- + public static string GetSHA512(string fileName) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + if (isoStore.FileExists(fileName)) + { + IsolatedStorageFileStream isoStream = new(fileName, FileMode.Open, isoStore); + StreamReader reader = new(isoStream); + var r = reader.ReadToEnd(); + var bytes = Encoding.UTF8.GetBytes(r); + using var hash = SHA512.Create(); + var hashedInputBytes = hash.ComputeHash(bytes); + // Convert to text + // StringBuilder Capacity is 128, because 512 bits / 8 bits in byte * 2 symbols for byte + var hashedInputStringBuilder = new StringBuilder(128); + foreach (var b in hashedInputBytes) + hashedInputStringBuilder.Append(b.ToString("X2")); + reader.Close(); + isoStream.Close(); + isoStore.Close(); + return hashedInputStringBuilder.ToString(); + } + return string.Empty; + } + //----------------------------------------------------------------------------------- + public static async void SaveIsolatedTextFile(string fileName, string content, Encoding encoding) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + //if (isoStore.FileExists("multiple_replace.xml")) { isoStore.DeleteFile("multiple_replace.xml"); } + using IsolatedStorageFileStream isoStream = new(fileName, FileMode.Create, isoStore); + using StreamWriter writer = new(isoStream, encoding); + await writer.WriteAsync(content); + isoStore.Close(); + } + //----------------------------------------------------------------------------------- + public static void SaveIsolatedTextFileAppend(string fileName, string content) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + //if (isoStore.FileExists("multiple_replace.xml")) { isoStore.DeleteFile("multiple_replace.xml"); } + if (isoStore.FileExists(fileName)) + { + using IsolatedStorageFileStream isoStream = new(fileName, FileMode.Append, isoStore); + using StreamWriter writer = new(isoStream); + writer.Write(content); + } + else + { + using IsolatedStorageFileStream isoStream = new(fileName, FileMode.CreateNew, isoStore); + using StreamWriter writer = new(isoStream); + writer.Write(content); + } + isoStore.Close(); + } + //----------------------------------------------------------------------------------- + public static string? ReadIsolatedTextFile(string fileName) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + //if (isoStore.FileExists("multiple_replace.xml")) { isoStore.DeleteFile("multiple_replace.xml"); } + + if (isoStore.FileExists(fileName)) + { + using IsolatedStorageFileStream isoStream = new(fileName, FileMode.Open, FileAccess.Read, isoStore); + using StreamReader reader = new(isoStream); + var r = reader.ReadToEnd(); + isoStore.Close(); + return r; + } + else + { + Debug.WriteLine("Isolated Storage File Does Not Exist."); + isoStore.Close(); + return null; + } + } + //----------------------------------------------------------------------------------- + public static void RemoveIsolatedStorage() + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + try + { + isoStore.Remove(); + Debug.WriteLine("Isolated Storage removed."); + } + catch (Exception ex) + { + Debug.WriteLine("Error: " + ex.Message); + } + isoStore.Close(); + isoStore.Dispose(); + } + //----------------------------------------------------------------------------------- + public static void DeleteFile(string fileName) + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + // Retrieve all the files in the directory by calling the GetAllFiles + foreach (string file in GetAllFiles(fileName, isoStore)) + { + try + { + if (isoStore.FileExists(file)) + isoStore.DeleteFile(file); + if (!isoStore.FileExists(file)) + Debug.WriteLine("File Deleted: " + file); + } + catch (Exception ex) + { + Debug.WriteLine("Error: " + ex.Message); + } + } + } + //----------------------------------------------------------------------------------- + public static void DeleteIsolatedFilesAndDirectories() + { + IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); + // Retrieve all the files in the directory by calling the GetAllFiles + foreach (string file in GetAllFiles("*", isoStore)) + { + try + { + if (isoStore.FileExists(file)) + isoStore.DeleteFile(file); + if (!isoStore.FileExists(file)) + Console.WriteLine("File Deleted: " + file); + } + catch (Exception ex) + { + Console.WriteLine("Error: " + ex.Message); + MessageBox.Show("Error: " + ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + // Retrieve all the directories in Isolated Storage by calling the GetAllDirectories + foreach (string directory in GetAllDirectories("*", isoStore)) + { // Exception will thrown when directory in not empty or exist, so delete directories after deleting files. + try + { + if (isoStore.DirectoryExists(directory)) + isoStore.DeleteDirectory(directory); + if (!isoStore.DirectoryExists(directory)) + Console.WriteLine("Directory Deleted: " + directory); + } + catch (Exception ex) + { + Console.WriteLine("Error: " + ex.Message); + MessageBox.Show("Error: " + ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + //----------------------------------------------------------------------------------- + // Method to retrieve all directories, recursively, within a store. + private static List GetAllDirectories(string pattern, IsolatedStorageFile storeFile) + { + // Get the root of the search string. + string root = Path.GetDirectoryName(pattern); + if (root != "") + { + root += "/"; + } + // Retrieve directories. + List directoryList = new(storeFile.GetDirectoryNames(pattern)); + // Retrieve subdirectories of matches. + for (int i = 0, max = directoryList.Count; i < max; i++) + { + string directory = directoryList[i] + "/"; + List more = GetAllDirectories(root + directory + "*", storeFile); + // For each subdirectory found, add in the base path. + for (int j = 0; j < more.Count; j++) + { + more[j] = directory + more[j]; + } + // Insert the subdirectories into the list and + // update the counter and upper bound. + directoryList.InsertRange(i + 1, more); + i += more.Count; + max += more.Count; + } + return directoryList; + } // End of GetAllDirectories. + //----------------------------------------------------------------------------------- + private static List GetAllFiles(string pattern, IsolatedStorageFile storeFile) + { + // Get the root and file portions of the search string. + string fileString = Path.GetFileName(pattern); + List fileList = new(storeFile.GetFileNames(pattern)); + // Loop through the subdirectories, collect matches, + // and make separators consistent. + foreach (string directory in GetAllDirectories("*", storeFile)) + { + foreach (string file in storeFile.GetFileNames(directory + "/" + fileString)) + { + fileList.Add((directory + "/" + file)); + } + } + return fileList; + } // End of GetAllFiles. + } +} diff --git a/MsmhTools/MsmhTools/Network.cs b/MsmhTools/MsmhTools/Network.cs new file mode 100644 index 0000000..a3e02cc --- /dev/null +++ b/MsmhTools/MsmhTools/Network.cs @@ -0,0 +1,910 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.Linq; +using System.Management; +using System.Net; +using System.Net.NetworkInformation; +using System.Net.Sockets; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Text; + +namespace MsmhTools +{ + public static class Network + { + public static int GetNextPort(int currentPort) + { + currentPort = currentPort < 65535 ? currentPort + 1 : currentPort - 1; + return currentPort; + } + + public static Uri? UrlToUri(string url) + { + try + { + string[] split1 = url.Split("//"); + string prefix = "https://"; + for (int n1 = 0; n1 < split1.Length; n1++) + { + if (n1 > 0) + { + prefix += split1[n1]; + if (n1 < split1.Length - 1) + prefix += "//"; + } + } + + Uri uri = new(prefix); + return uri; + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + return null; + } + + public static void GetUrlDetails(string url, int defaultPort, out string host, out int port, out string path, out bool isIPv6) + { + url = url.Trim(); + + // Strip xxxx:// + if (url.Contains("//")) + { + string[] split = url.Split("//"); + if (!string.IsNullOrEmpty(split[1])) + url = split[1]; + } + + GetHostDetails(url, defaultPort, out host, out port, out path, out isIPv6); + } + + public static void GetHostDetails(string hostIpPort, int defaultPort, out string host, out int port, out string path, out bool isIPv6) + { + hostIpPort = hostIpPort.Trim(); + path = string.Empty; + isIPv6 = false; + + // Strip /xxxx (Path) + if (!hostIpPort.Contains("//") && hostIpPort.Contains('/')) + { + string[] split = hostIpPort.Split('/'); + if (!string.IsNullOrEmpty(split[0])) + hostIpPort = split[0]; + + // Get Path + string outPath = "/"; + for (int n = 0; n < split.Length; n++) + { + if (n != 0) + outPath += split[n]; + } + if (!outPath.Equals("/")) + path = outPath; + } + + string host0 = hostIpPort; + port = defaultPort; + + // Split Host and Port + if (hostIpPort.Contains('[') && hostIpPort.Contains("]:")) // IPv6 + Port + { + string[] split = hostIpPort.Split("]:"); + if (split.Length == 2) + { + isIPv6 = true; + host0 = $"{split[0]}]"; + bool isInt = int.TryParse(split[1], out int result); + if (isInt) port = result; + } + } + else if (hostIpPort.Contains('[') && hostIpPort.Contains(']')) // IPv6 + { + string[] split = hostIpPort.Split(']'); + if (split.Length == 2) + { + isIPv6 = true; + host0 = $"{split[0]}]"; + } + } + else if (!hostIpPort.Contains('[') && !hostIpPort.Contains(']') && hostIpPort.Contains(':')) // Host + Port OR IPv4 + Port + { + string[] split = hostIpPort.Split(':'); + if (split.Length == 2) + { + host0 = split[0]; + bool isInt = int.TryParse(split[1], out int result); + if (isInt) port = result; + } + } + + host = host0; + } + + public static IPAddress? HostToIP(string host, bool getIPv6 = false) + { + IPAddress? result = null; + + try + { + //IPAddress[] ipAddresses = Dns.GetHostEntry(host).AddressList; + IPAddress[] ipAddresses = Dns.GetHostAddresses(host); + + if (ipAddresses == null || ipAddresses.Length == 0) + return null; + + if (!getIPv6) + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetwork) + { + result = ipAddresses[n]; + break; + } + } + } + else + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetworkV6) + { + result = ipAddresses[n]; + break; + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + return result; + } + + public static List? HostToIPs(string host, bool getIPv6 = false) + { + List? result = new(); + + try + { + //IPAddress[] ipAddresses = Dns.GetHostEntry(host).AddressList; + IPAddress[] ipAddresses = Dns.GetHostAddresses(host); + + if (ipAddresses == null || ipAddresses.Length == 0) + return null; + + if (!getIPv6) + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetwork) + { + result.Add(ipAddresses[n]); + } + } + } + else + { + for (int n = 0; n < ipAddresses.Length; n++) + { + var addressFamily = ipAddresses[n].AddressFamily; + if (addressFamily == AddressFamily.InterNetworkV6) + { + result.Add(ipAddresses[n]); + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + + return result.RemoveDuplicates(); + } + + /// + /// Uses ipinfo.io to get result + /// + /// IP to check + /// Use proxy to connect + /// Company name + public static async Task IpToCompanyAsync(IPAddress iPAddress, string? proxyScheme = null) + { + string? company = null; + try + { + using SocketsHttpHandler socketsHttpHandler = new(); + if (proxyScheme != null) + socketsHttpHandler.Proxy = new WebProxy(proxyScheme, true); + using HttpClient httpClient2 = new(socketsHttpHandler); + company = await httpClient2.GetStringAsync("https://ipinfo.io/" + iPAddress.ToString() + "/org"); + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + return company; + } + + public static IPAddress? GetLocalIPv4(string remoteHostToCheck = "8.8.8.8") + { + try + { + IPAddress? localIP; + using Socket socket = new(AddressFamily.InterNetwork, SocketType.Dgram, 0); + socket.Connect(remoteHostToCheck, 80); + IPEndPoint? endPoint = socket.LocalEndPoint as IPEndPoint; + localIP = endPoint?.Address; + return localIP; + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return null; + } + } + + public static IPAddress? GetLocalIPv6(string remoteHostToCheck = "8.8.8.8") + { + try + { + IPAddress? localIP; + using Socket socket = new(AddressFamily.InterNetworkV6, SocketType.Dgram, 0); + socket.Connect(remoteHostToCheck, 80); + IPEndPoint? endPoint = socket.LocalEndPoint as IPEndPoint; + localIP = endPoint?.Address; + return localIP; + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return null; + } + } + + public static IPAddress? GetDefaultGateway() + { + IPAddress? gateway = NetworkInterface + .GetAllNetworkInterfaces() + .Where(n => n.OperationalStatus == OperationalStatus.Up) + .Where(n => n.NetworkInterfaceType != NetworkInterfaceType.Loopback) + .SelectMany(n => n?.GetIPProperties()?.GatewayAddresses) + .Select(g => g?.Address) + .Where(a => a != null) + .Where(a => a?.AddressFamily == AddressFamily.InterNetwork) + //.Where(a => Array.FindIndex(a.GetAddressBytes(), b => b != 0) >= 0) // Filter out 0.0.0.0 + .FirstOrDefault(); + return gateway; + } + + [DllImport("iphlpapi.dll", CharSet = CharSet.Auto)] + private static extern int GetBestInterface(uint destAddr, out uint bestIfIndex); + public static IPAddress? GetGatewayForDestination(IPAddress destinationAddress) + { + uint destaddr = BitConverter.ToUInt32(destinationAddress.GetAddressBytes(), 0); + + int result = GetBestInterface(destaddr, out uint interfaceIndex); + if (result != 0) + { + Debug.WriteLine(new Win32Exception(result)); + return null; + } + + foreach (var ni in NetworkInterface.GetAllNetworkInterfaces()) + { + var niprops = ni.GetIPProperties(); + if (niprops == null) + continue; + + var gateway = niprops.GatewayAddresses?.FirstOrDefault()?.Address; + if (gateway == null) + continue; + + if (ni.Supports(NetworkInterfaceComponent.IPv4)) + { + var v4props = niprops.GetIPv4Properties(); + if (v4props == null) + continue; + + if (v4props.Index == interfaceIndex) + return gateway; + } + + if (ni.Supports(NetworkInterfaceComponent.IPv6)) + { + var v6props = niprops.GetIPv6Properties(); + if (v6props == null) + continue; + + if (v6props.Index == interfaceIndex) + return gateway; + } + } + + return null; + } + + public static bool IsIPv4(IPAddress iPAddress) + { + if (iPAddress.AddressFamily == AddressFamily.InterNetwork) + return true; + else + return false; + } + + public static bool IsIPv4Valid(string ipString, out IPAddress? iPAddress) + { + iPAddress = null; + if (string.IsNullOrWhiteSpace(ipString)) return false; + if (!ipString.Contains('.')) return false; + if (ipString.Count(c => c == '.') != 3) return false; + if (ipString.StartsWith('.')) return false; + if (ipString.EndsWith('.')) return false; + string[] splitValues = ipString.Split('.'); + if (splitValues.Length != 4) return false; + + foreach (string splitValue in splitValues) + { + // 0x and 0xx are not valid + if (splitValue.Length > 1) + { + bool isInt1 = int.TryParse(splitValue.AsSpan(0, 1), out int first); + if (isInt1 && first == 0) return false; + } + + bool isInt2 = int.TryParse(splitValue, out int testInt); + if (!isInt2) return false; + if (testInt < 0 || testInt > 255) return false; + } + + bool isIP = IPAddress.TryParse(ipString, out IPAddress? outIP); + if (!isIP) return false; + iPAddress = outIP; + return true; + } + + public static bool IsIPv6(IPAddress iPAddress) + { + return iPAddress.AddressFamily == AddressFamily.InterNetworkV6; + } + + public static bool IsPortOpen(string host, int port, double timeoutSeconds) + { + try + { + using TcpClient client = new(); + var result = client.BeginConnect(host, port, null, null); + bool success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(timeoutSeconds)); + client.EndConnect(result); + return success; + } + catch (Exception) + { + return false; + } + } + + public static List GetNetworkInterfacesIPv4(bool upAndRunning = true) + { + List nicList = new(); + NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); + for (int n1 = 0; n1 < networkInterfaces.Length; n1++) + { + NetworkInterface nic = networkInterfaces[n1]; + if (nic.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet) + { + var unicastAddresses = nic.GetIPProperties().UnicastAddresses; + for (int n2 = 0; n2 < unicastAddresses.Count; n2++) + { + var unicastAddress = unicastAddresses[n2]; + if (unicastAddress.Address.AddressFamily == AddressFamily.InterNetwork) + { + if (upAndRunning) + { + if (nic.OperationalStatus == OperationalStatus.Up) + { + nicList.Add(nic); + break; + } + } + else + { + nicList.Add(nic); + break; + } + } + } + } + } + return nicList; + } + + public static NetworkInterface? GetNICByName(string name) + { + NetworkInterface? nic = null; + NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); + for (int n = 0; n < networkInterfaces.Length; n++) + { + nic = networkInterfaces[n]; + if (nic.Name.Equals(name)) + return nic; + } + return nic; + } + + public static NetworkInterface? GetNICByDescription(string description) + { + NetworkInterface? nic = null; + NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); + for (int n = 0; n < networkInterfaces.Length; n++) + { + nic = networkInterfaces[n]; + if (nic.Description.Equals(description)) + return nic; + } + return nic; + } + + /// + /// Set's the DNS Server of the local machine + /// + /// NIC address + /// Comma seperated list of DNS server addresses + /// Requires a reference to the System.Management namespace + public static void SetDNS(NetworkInterface nic, string dnsServers) + { + // Requires Elevation + // Only netsh can set DNS on Windows 7 + if (nic == null) return; + + try + { + string dnsServer1 = dnsServers; + string dnsServer2 = string.Empty; + if (dnsServers.Contains(',')) + { + string[] split = dnsServers.Split(','); + dnsServer1 = split[0]; + dnsServer2 = split[1]; + } + + string processName = "netsh"; + string processArgs1 = $"interface ipv4 delete dnsservers {nic.Name} all"; + string processArgs2 = $"interface ipv4 set dnsservers {nic.Name} static {dnsServer1} primary"; + string processArgs3 = $"interface ipv4 add dnsservers {nic.Name} {dnsServer2} index=2"; + ProcessManager.Execute(out Process _, processName, processArgs1, true, true); + ProcessManager.Execute(out Process _, processName, processArgs2, true, true); + if (!string.IsNullOrEmpty(dnsServer2)) + ProcessManager.Execute(out Process _, processName, processArgs3, true, true); + } + catch (Exception e) + { + Debug.WriteLine(e.Message); + } + + Task.Delay(200).Wait(); + + try + { + using ManagementClass managementClass = new("Win32_NetworkAdapterConfiguration"); + using ManagementObjectCollection moc = managementClass.GetInstances(); + foreach (ManagementObject mo in moc) + { + if ((bool)mo["IPEnabled"] && mo["Description"].Equals(nic.Description)) + { + using ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder"); + if (newDNS != null) + { + newDNS["DNSServerSearchOrder"] = dnsServers.Split(','); + mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null); + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + } + + /// + /// Unset DNS to DHCP + /// + /// Network Interface + public static void UnsetDNS(NetworkInterface nic) + { + // Requires Elevation - Can't Unset DNS when there is no Internet connectivity but netsh can :) + // NetSh Command: netsh interface ip set dns "nic.Name" source=dhcp + if (nic == null) return; + + try + { + string processName = "netsh"; + string processArgs1 = $"interface ipv4 delete dnsservers {nic.Name} all"; + string processArgs2 = $"interface ipv4 set dnsservers {nic.Name} source=dhcp"; + ProcessManager.Execute(out Process _, processName, processArgs1, true, true); + ProcessManager.Execute(out Process _, processName, processArgs2, true, true); + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + + try + { + using ManagementClass managementClass = new("Win32_NetworkAdapterConfiguration"); + using ManagementObjectCollection moc = managementClass.GetInstances(); + foreach (ManagementObject mo in moc) + { + if (mo["Description"].Equals(nic.Description)) + { + using ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder"); + if (newDNS != null) + { + newDNS["DNSServerSearchOrder"] = null; + mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null); + } + } + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + } + + /// + /// Unset DNS by seting DNS to Static + /// + /// Network Interface + /// Primary + /// Secondary + public static void UnsetDNS(NetworkInterface nic, string dns1, string dns2) + { + string dnsServers = $"{dns1},{dns2}"; + SetDNS(nic, dnsServers); + } + + /// + /// Check if DNS is set to Static or DHCP + /// + /// Network Interface + /// Primary DNS Server + /// Secondary DNS Server + /// True = Static, False = DHCP + public static bool IsDnsSet(NetworkInterface nic, out string dnsServer1, out string dnsServer2) + { + dnsServer1 = dnsServer2 = string.Empty; + if (nic == null) return false; + + string processName = "netsh"; + string processArgs = $"interface ipv4 show dnsservers {nic.Name}"; + string stdout = ProcessManager.Execute(out Process _, processName, processArgs, true, false); + + List lines = stdout.SplitToLines(); + for (int n = 0; n < lines.Count; n++) + { + string line = lines[n]; + // Get Primary + if (line.Contains(": ") && line.Contains('.') && line.Count(c => c == '.') == 3) + { + string[] split = line.Split(": "); + if (split.Length > 1) + { + dnsServer1 = split[1].Trim(); + Debug.WriteLine($"DNS 1: {dnsServer1}"); + } + } + + // Get Secondary + if (!line.Contains(": ") && line.Contains('.') && line.Count(c => c == '.') == 3) + { + dnsServer2 = line.Trim(); + Debug.WriteLine($"DNS 2: {dnsServer2}"); + } + } + //Debug.WriteLine(stdout); + return !stdout.Contains("DHCP"); + } + + public static bool IsInternetAlive(string? url = null, int timeoutMs = 5000) + { + // Attempt 1 + // only recognizes changes related to Internet adapters + if (NetworkInterface.GetIsNetworkAvailable()) + { + // however, this will include all adapters -- filter by opstatus and activity + NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces(); + bool attempt1 = (from face in interfaces + where face.OperationalStatus == OperationalStatus.Up + where (face.NetworkInterfaceType != NetworkInterfaceType.Tunnel) && (face.NetworkInterfaceType != NetworkInterfaceType.Loopback) + select face.GetIPv4Statistics()).Any(statistics => (statistics.BytesReceived > 0) && (statistics.BytesSent > 0)); + + return attempt1 ? true : attempt2(url, timeoutMs); + } + else + { + return attempt2(url, timeoutMs); + } + + // Attempt 2 + static bool attempt2(string? url = null, int timeoutMs = 5000) + { + try + { + url ??= CultureInfo.InstalledUICulture switch + { + { Name: var n } when n.StartsWith("fa") => // Iran + "http://www.google.com", + { Name: var n } when n.StartsWith("zh") => // China + "http://www.baidu.com", + _ => + "http://www.gstatic.com/generate_204", + }; + + using HttpClient httpClient = new(); + httpClient.Timeout = TimeSpan.FromMilliseconds(timeoutMs); + var req = httpClient.GetAsync(url); + return req.Result.IsSuccessStatusCode; + } + catch(Exception ex) + { + Debug.WriteLine(ex.Message); + return false; + } + } + } + + public static bool IsInternetAlive2(string? url = null, int timeoutMs = 5000) + { + try + { + url ??= CultureInfo.InstalledUICulture switch + { + { Name: var n } when n.StartsWith("fa") => // Iran + "http://www.google.com", + { Name: var n } when n.StartsWith("zh") => // China + "http://www.baidu.com", + _ => + "http://www.gstatic.com/generate_204", + }; + + using HttpClient httpClient = new(); + httpClient.Timeout = TimeSpan.FromMilliseconds(timeoutMs); + var req = httpClient.GetAsync(url); + return req.Result.IsSuccessStatusCode; + } + catch + { + return false; + } + } + + public static bool IsProxySet(out string httpProxy, out string httpsProxy, out string ftpProxy, out string socksProxy) + { + bool isProxyEnable = false; + httpProxy = httpsProxy = ftpProxy = socksProxy = string.Empty; + RegistryKey? registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", false); + if (registry != null) + { + // ProxyServer + object? proxyServerObj = registry.GetValue("ProxyServer"); + if (proxyServerObj != null) + { + string? proxyServers = proxyServerObj.ToString(); + if (proxyServers != null) + { + if (proxyServers.Contains(';')) + { + string[] split = proxyServers.Split(';'); + for (int n = 0; n < split.Length; n++) + { + string server = split[n]; + if (server.StartsWith("http=")) httpProxy = server[5..]; + else if (server.StartsWith("https=")) httpsProxy = server[6..]; + else if (server.StartsWith("ftp=")) ftpProxy = server[4..]; + else if (server.StartsWith("socks=")) socksProxy = server[6..]; + } + } + else if (proxyServers.Contains('=')) + { + string[] split = proxyServers.Split('='); + if (split[0] == "http") httpProxy = split[1]; + else if (split[0] == "https") httpsProxy = split[1]; + else if (split[0] == "ftp") ftpProxy = split[1]; + else if (split[0] == "socks") socksProxy = split[1]; + } + else if (proxyServers.Contains("://")) + { + string[] split = proxyServers.Split("://"); + if (split[0] == "http") httpProxy = split[1]; + else if (split[0] == "https") httpsProxy = split[1]; + else if (split[0] == "ftp") ftpProxy = split[1]; + else if (split[0] == "socks") socksProxy = split[1]; + } + else if (!string.IsNullOrEmpty(proxyServers)) httpProxy = proxyServers; + } + } + + // ProxyEnable + object? proxyEnableObj = registry.GetValue("ProxyEnable"); + if (proxyEnableObj != null) + { + string? proxyEnable = proxyEnableObj.ToString(); + if (proxyEnable != null) + { + bool isInt = int.TryParse(proxyEnable, out int value); + if (isInt) + isProxyEnable = value == 1; + } + } + + } + return isProxyEnable; + } + + + public static void SetHttpProxy(string ip, int port) + { + RegistryKey? registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true); + if (registry != null) + { + string proxyServer = $"{ip}:{port}"; + + try + { + registry.SetValue("ProxyEnable", 1, RegistryValueKind.DWord); + registry.SetValue("ProxyServer", proxyServer, RegistryValueKind.String); + } + catch (Exception ex) + { + Debug.WriteLine($"Set Http Proxy: {ex.Message}"); + } + + RegistryTool.ApplyRegistryChanges(); + } + } + + /// + /// Unset Internet Options Proxy + /// + /// Clear IP and Port + /// Don't apply registry changes on app exit + public static void UnsetProxy(bool clearIpPort, bool applyRegistryChanges) + { + RegistryKey? registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true); + if (registry != null) + { + try + { + registry.SetValue("ProxyEnable", 0, RegistryValueKind.DWord); + if (clearIpPort) + registry.SetValue("ProxyServer", "", RegistryValueKind.String); + } + catch (Exception ex) + { + Debug.WriteLine($"Unset Proxy: {ex.Message}"); + } + + if (applyRegistryChanges) + RegistryTool.ApplyRegistryChanges(); + } + } + + /// + /// Only the 'http', 'socks4', 'socks4a' and 'socks5' schemes are allowed for proxies. + /// + /// + public static async Task CheckProxyWorks(string websiteToCheck, string proxyScheme, int timeoutSec) + { + try + { + Uri uri = new(websiteToCheck, UriKind.Absolute); + + using SocketsHttpHandler socketsHttpHandler = new(); + socketsHttpHandler.Proxy = new WebProxy(proxyScheme); + using HttpClient httpClientWithProxy = new(socketsHttpHandler); + httpClientWithProxy.Timeout = new TimeSpan(0, 0, timeoutSec); + + HttpResponseMessage checkingResponse = await httpClientWithProxy.GetAsync(uri); + Task.Delay(200).Wait(); + + return checkingResponse.IsSuccessStatusCode; + } + catch (Exception ex) + { + Debug.WriteLine($"Check Proxy: {ex.Message}"); + return false; + } + } + + public static bool CanPing(string host, int timeoutMS) + { + var task = Task.Run(() => + { + try + { + Ping ping = new(); + PingReply reply = ping.Send(host, timeoutMS); + if (reply == null) return false; + + return reply.Status == IPStatus.Success; + } + catch (PingException ex) + { + Debug.WriteLine($"Ping: {ex.Message}"); + return false; + } + }); + + if (task.Wait(TimeSpan.FromMilliseconds(timeoutMS + 500))) + return task.Result; + else + return false; + } + + public static bool CanTcpConnect(string host, int port, int timeoutMS) + { + var task = Task.Run(() => + { + try + { + using TcpClient client = new(host, port); + client.SendTimeout = timeoutMS; + return true; + } + catch (Exception ex) + { + Debug.WriteLine($"CanTcpConnect: {ex.Message}"); + return false; + } + }); + + if (task.Wait(TimeSpan.FromMilliseconds(timeoutMS + 500))) + return task.Result; + else + return false; + } + + public static async Task CanConnect(string host, int port, int timeoutMS) + { + var task = Task.Run(async () => + { + try + { + string url = $"https://{host}:{port}"; + Uri uri = new(url, UriKind.Absolute); + + using HttpClient httpClient = new(); + httpClient.Timeout = TimeSpan.FromMilliseconds(timeoutMS); + + await httpClient.GetAsync(uri); + + return true; + } + catch (Exception) + { + return false; + } + }); + + if (await task.WaitAsync(TimeSpan.FromMilliseconds(timeoutMS + 500))) + return task.Result; + else + return false; + } + + } +} diff --git a/MsmhTools/MsmhTools/OpenLinks.cs b/MsmhTools/MsmhTools/OpenLinks.cs new file mode 100644 index 0000000..4fff8c5 --- /dev/null +++ b/MsmhTools/MsmhTools/OpenLinks.cs @@ -0,0 +1,66 @@ +using System; +using System.Diagnostics; + +namespace MsmhTools +{ + public static class OpenLinks + { + public static void OpenFolderFromFileName(string fileName) + { + string folderName = Path.GetDirectoryName(fileName); + if (Info.IsRunningOnWindows) + { + var argument = @"/select, " + fileName; + Process.Start("explorer.exe", argument); + } + else + { + OpenFolder(folderName); + } + } + + public static void OpenFolder(string folder) + { + OpenItem(folder, "folder"); + } + + public static void OpenUrl(string url) + { + OpenItem(url, "url"); + } + + public static void OpenFile(string file) + { + OpenItem(file, "file"); + } + + public static void OpenItem(string item, string type) + { + try + { + if (Info.IsRunningOnWindows || Info.IsRunningOnMac) + { + var startInfo = new ProcessStartInfo(item) + { + UseShellExecute = true + }; + + Process.Start(startInfo); + } + else if (Info.IsRunningOnLinux) + { + var process = new Process + { + EnableRaisingEvents = false, + StartInfo = { FileName = "xdg-open", Arguments = item } + }; + process.Start(); + } + } + catch (Exception exception) + { + MessageBox.Show($"Cannot open {type}: {item}{Environment.NewLine}{Environment.NewLine}{exception.Source}: {exception.Message}", "Error opening URL", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/MsmhTools/MsmhTools/ProcessManager.cs b/MsmhTools/MsmhTools/ProcessManager.cs new file mode 100644 index 0000000..ec88d79 --- /dev/null +++ b/MsmhTools/MsmhTools/ProcessManager.cs @@ -0,0 +1,534 @@ +using System; +using System.Runtime.InteropServices; +using System.Diagnostics; +using System.Management; +using System.Security; + +namespace MsmhTools +{ + public static class ProcessManager + { + //----------------------------------------------------------------------------------- + + /// + /// Get CPU Usage By Process + /// + /// Process + /// Delay to calculate usage (ms) + /// Returns -1 if fail + public static async Task GetCpuUsage(Process process, int delay) + { + string processName = process.ProcessName; + return await GetCpuUsage(processName, delay); + } + + /// + /// Get CPU Usage By Process ID + /// + /// PID + /// Delay to calculate usage (ms) + /// Returns -1 if fail + public static async Task GetCpuUsage(int pid, int delay) + { + string processName = GetProcessNameByPID(pid); + if (!string.IsNullOrEmpty(processName)) + return await GetCpuUsage(processName, delay); + return -1; + } + + /// + /// Get CPU Usage By Process Name + /// + /// Process Name + /// Delay to calculate usage (ms) + /// Returns -1 if fail + public static async Task GetCpuUsage(string processName, int delay) + { + // To Get CPU Total Usage: + // new PerformanceCounter("Processor", "% Processor Time", "_Total"); + float result = -1; + + await Task.Run(async () => + { + try + { + + using PerformanceCounter performanceCounter = new("Process", "% Processor Time", processName, true); + performanceCounter.NextValue(); // Returns 0 + await Task.Delay(delay); // Needs time to calculate + result = performanceCounter.NextValue() / Environment.ProcessorCount; + } + catch (Exception ex) + { + Debug.WriteLine($"Get CPU Usage: {ex.Message}"); + } + }); + + return result; + } + //----------------------------------------------------------------------------------- + /// + /// Send Command to a Process and Get Result + /// + /// Process + /// Commands + /// Returns True if success + public static async Task SendCommandAsync(Process process, string command) + { + try + { + await process.StandardInput.WriteLineAsync(command); + return true; + } + catch (Exception) + { + return false; + } + } + //----------------------------------------------------------------------------------- + /// + /// Send Command to a Process and Get Result + /// + /// Process + /// Commands + /// Returns True if success + public static bool SendCommand(Process process, string command) + { + try + { + process.StandardInput.WriteLine(command); + return true; + } + catch (Exception) + { + return false; + } + } + //----------------------------------------------------------------------------------- + /// + /// Send Command to a Process and Get Result + /// + /// Process + /// Commands + /// Also Redirect Error Output + /// Returns Stdout and Stderr if success + public static async Task SendCommandAndGetAnswerAsync(Process process, string command, bool alsoRedirectError) + { + string? result; + + try + { + process.StandardOutput.DiscardBufferedData(); + await process.StandardInput.WriteLineAsync(command); + result = await process.StandardOutput.ReadLineAsync(); + if (alsoRedirectError) + { + result += Environment.NewLine; + result += await process.StandardError.ReadLineAsync(); + } + } + catch (Exception) + { + result = null; + } + + return result ?? string.Empty; + } + //----------------------------------------------------------------------------------- + /// + /// Send Command to a Process and Get Result + /// + /// Process + /// Commands + /// Also Redirect Error Output + /// Returns Stdout and Stderr if success + public static string SendCommandAndGetAnswer(Process process, string command, bool alsoRedirectError) + { + string? result; + + try + { + process.StandardOutput.DiscardBufferedData(); + process.StandardInput.WriteLine(command); + result = process.StandardOutput.ReadLine(); + if (alsoRedirectError) + { + result += Environment.NewLine; + result += process.StandardError.ReadLine(); + } + } + catch (Exception) + { + result = null; + } + + return result ?? string.Empty; + } + //----------------------------------------------------------------------------------- + /// + /// Returns stdout or Stderr after process finished. Set waitForExit to false to get out Process. + /// + public static string Execute(out Process process, string processName, string? args = null, bool hideWindow = true, bool runAsAdmin = false, string? workingDirectory = null, ProcessPriorityClass processPriorityClass = ProcessPriorityClass.Normal, bool waitForExit = true) + { + // Create process + Process process0 = new(); + process = process0; + process0.StartInfo.FileName = processName; + + if (args != null) + process0.StartInfo.Arguments = args; + + if (hideWindow) + { + process0.StartInfo.CreateNoWindow = true; + process0.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + } + else + { + process0.StartInfo.CreateNoWindow = false; + process0.StartInfo.WindowStyle = ProcessWindowStyle.Normal; + } + + if (runAsAdmin) + { + process0.StartInfo.Verb = "runas"; + } + else + { + process0.StartInfo.Verb = ""; + } + + // Redirect input output to get ability of sending and reading process output + process0.StartInfo.UseShellExecute = false; + process0.StartInfo.RedirectStandardInput = true; + process0.StartInfo.RedirectStandardOutput = true; + process0.StartInfo.RedirectStandardError = true; + + if (workingDirectory != null) + process0.StartInfo.WorkingDirectory = workingDirectory; + + try + { + process0.Start(); + + // Set process priority + process0.PriorityClass = processPriorityClass; + + string stdout = process0.StandardOutput.ReadToEnd().ReplaceLineEndings(Environment.NewLine); + string errout = process0.StandardError.ReadToEnd().ReplaceLineEndings(Environment.NewLine); + //string output = stdout + Environment.NewLine + errout; + + // Wait for process to finish + if (waitForExit) + process0.WaitForExit(); + + if (process0.ExitCode == 0) + { + return stdout; + } + else + { + return errout; + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + return string.Empty; + } + } + //----------------------------------------------------------------------------------- + /// + /// Execute and returns PID, if faild returns -1 + /// + public static int ExecuteOnly(out Process process, string processName, string? args = null, bool hideWindow = true, bool runAsAdmin = false, string? workingDirectory = null, ProcessPriorityClass processPriorityClass = ProcessPriorityClass.Normal) + { + int pid; + // Create process + Process process0 = new(); + process0.StartInfo.FileName = processName; + + if (args != null) + process0.StartInfo.Arguments = args; + + if (hideWindow) + { + process0.StartInfo.CreateNoWindow = true; + process0.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + } + else + { + process0.StartInfo.CreateNoWindow = false; + process0.StartInfo.WindowStyle = ProcessWindowStyle.Normal; + } + + if (runAsAdmin) + { + process0.StartInfo.Verb = "runas"; + } + else + { + process0.StartInfo.Verb = ""; + } + + // Redirect input output to get ability of sending and reading process output + process0.StartInfo.UseShellExecute = false; + process0.StartInfo.RedirectStandardInput = true; + process0.StartInfo.RedirectStandardOutput = true; + process0.StartInfo.RedirectStandardError = true; + + if (workingDirectory != null) + process0.StartInfo.WorkingDirectory = workingDirectory; + + try + { + process0.Start(); + + // Set process priority + process0.PriorityClass = processPriorityClass; + pid = process0.Id; + } + catch (Exception ex) + { + pid = -1; + Debug.WriteLine($"ExecuteOnly: {ex.Message}"); + } + + process = process0; + return pid; + } + //----------------------------------------------------------------------------------- + public static bool FindProcessByName(string processName) + { + Process[] processes = Process.GetProcessesByName(processName); + return processes.Length > 0; + } + //----------------------------------------------------------------------------------- + public static bool FindProcessByPID(int pid) + { + bool result = false; + Process[] processes = Process.GetProcesses(); + for (int n = 0; n < processes.Length; n++) + { + if (processes[n].Id == pid) + { + result = true; + break; + } + } + return result; + } + //----------------------------------------------------------------------------------- + public static void KillProcessByName(string processName, bool killEntireProcessTree = false) + { + Process[] processes = Process.GetProcessesByName(processName); + for (int n = 0; n < processes.Length; n++) + processes[n].Kill(killEntireProcessTree); + } + //----------------------------------------------------------------------------------- + public static void KillProcessByPID(int pid, bool killEntireProcessTree = false) + { + try + { + if (FindProcessByPID(pid)) + { + Process process = Process.GetProcessById(pid); + process.Kill(killEntireProcessTree); + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + } + } + //----------------------------------------------------------------------------------- + /// + /// Returns first PID, if faild returns -1 + /// + public static int GetFirstPidByName(string processName) + { + int pid = -1; + Process[] processes = Process.GetProcessesByName(processName); + for (int n = processes.Length - 1; n >= 0; n--) + pid = processes[n].Id; + return pid; + } + //----------------------------------------------------------------------------------- + /// + /// Returns process PID, if faild returns -1 + /// + public static int GetProcessPidByListeningPort(int port) + { + string netstatArgs = "-a -n -o"; + string? stdout = Execute(out Process _, "netstat", netstatArgs); + if (!string.IsNullOrWhiteSpace(stdout)) + { + List lines = stdout.SplitToLines(); + for (int n = 0; n < lines.Count; n++) + { + string line = lines[n]; + if (!string.IsNullOrWhiteSpace(line) && line.Contains("LISTENING") && line.Contains($":{port} ")) + { + string[] split1 = line.Split("LISTENING", StringSplitOptions.TrimEntries); + bool isBool = int.TryParse(split1[1], out int pid); + if (isBool) + { + return pid; + } + } + } + } + return -1; + } + //----------------------------------------------------------------------------------- + /// + /// Returns process name, if failed returns string.empty + /// + public static string GetProcessNameByListeningPort(int port) + { + int pid = GetProcessPidByListeningPort(port); + if (pid != -1) + { + try + { + return Process.GetProcessById(pid).ProcessName; + } + catch (Exception ex) + { + Debug.WriteLine("Get Process Name By Listening Port:"); + Debug.WriteLine(ex.Message); + } + } + return string.Empty; + } + //----------------------------------------------------------------------------------- + /// + /// Get Process By PID + /// + /// PID + /// Returns null if not exist. + public static Process? GetProcessByPID(int pid) + { + Process? result = null; + Process[] processes = Process.GetProcesses(); + for (int n = 0; n < processes.Length; n++) + { + if (processes[n].Id == pid) + { + result = processes[n]; + break; + } + } + return result; + } + //----------------------------------------------------------------------------------- + /// + /// Get Process Name By PID + /// + /// PID + /// Returns string.Empty if not exist. + public static string GetProcessNameByPID(int pid) + { + string result = string.Empty; + Process? process = GetProcessByPID(pid); + if (process != null) result = process.ProcessName; + return result; + } + //----------------------------------------------------------------------------------- + public static string GetArguments(this Process process) + { + using ManagementObjectSearcher searcher = new("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + process.Id); + using ManagementObjectCollection objects = searcher.Get(); + return objects.Cast().SingleOrDefault()?["CommandLine"]?.ToString() ?? string.Empty; + + } + //----------------------------------------------------------------------------------- + public static void SetProcessPriority(ProcessPriorityClass processPriorityClass) + { + Process.GetCurrentProcess().PriorityClass = processPriorityClass; + } + //----------------------------------------------------------------------------------- + [Flags] + private enum ThreadAccess : int + { + TERMINATE = (0x0001), + SUSPEND_RESUME = (0x0002), + GET_CONTEXT = (0x0008), + SET_CONTEXT = (0x0010), + SET_INFORMATION = (0x0020), + QUERY_INFORMATION = (0x0040), + SET_THREAD_TOKEN = (0x0080), + IMPERSONATE = (0x0100), + DIRECT_IMPERSONATION = (0x0200) + } + + [DllImport("kernel32.dll")] + private static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId); + + [DllImport("kernel32.dll")] + private static extern uint SuspendThread(IntPtr hThread); + + [DllImport("kernel32.dll")] + private static extern int ResumeThread(IntPtr hThread); + + [DllImport("kernel32.dll")] + private static extern int CloseHandle(IntPtr hThread); + + public static void ThrottleProcess(int processId, double limitPercent) + { + var process = Process.GetProcessById(processId); + var processName = process.ProcessName; + var p = new PerformanceCounter("Process", "% Processor Time", processName); + Task.Run(async () => + { + while (true) + { + var interval = 1000; + p.NextValue(); + await Task.Delay(interval); + var currentUsage = p.NextValue() / Environment.ProcessorCount; + Debug.WriteLine(currentUsage); + if (currentUsage < limitPercent) continue; + SuspendProcess(processId); + await Task.Delay(interval); + ResumeProcess(processId); + } + }); + } + public static void SuspendProcess(int pId) + { + var process = Process.GetProcessById(pId); + SuspendProcess(process); + } + public static void SuspendProcess(Process process) + { + foreach (ProcessThread thread in process.Threads) + { + var pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)thread.Id); + if (pOpenThread == IntPtr.Zero) + { + break; + } + _ = SuspendThread(pOpenThread); + } + } + public static void ResumeProcess(int pId) + { + var process = Process.GetProcessById(pId); + ResumeProcess(process); + } + public static void ResumeProcess(Process process) + { + foreach (ProcessThread thread in process.Threads) + { + var pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)thread.Id); + if (pOpenThread == IntPtr.Zero) + { + break; + } + _ = ResumeThread(pOpenThread); + } + } + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/MsmhTools/ProxifiedTcpClient/HttpProxyClient.cs b/MsmhTools/MsmhTools/ProxifiedTcpClient/HttpProxyClient.cs new file mode 100644 index 0000000..a659f4a --- /dev/null +++ b/MsmhTools/MsmhTools/ProxifiedTcpClient/HttpProxyClient.cs @@ -0,0 +1,542 @@ +// +// Author: +// Benton Stark +// +// Copyright (c) 2016 Benton Stark +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program. If not, see . + +using System; +using System.Text; +using System.Net.Sockets; +using System.Net; +using System.Threading; +using System.Globalization; +using System.ComponentModel; +using System.Diagnostics; + +namespace MsmhTools.ProxifiedTcpClient +{ + /// + /// HTTP connection proxy class. This class implements the HTTP standard proxy protocol. + /// + /// You can use this class to set up a connection to an HTTP proxy server. Calling the + /// CreateConnection() method initiates the proxy connection and returns a standard + /// System.Net.Socks.TcpClient object that can be used as normal. The proxy plumbing + /// is all handled for you. + /// + /// + /// + /// + /// + public class HttpProxyClient + { + private string _proxyHost = IPAddress.Loopback.ToString(); // Default + private int _proxyPort = 8080; // Default + private string _proxyUsername = string.Empty; + private string _proxyPassword = string.Empty; + private HttpResponseCodes? _respCode; + private string? _respText; + private TcpClient? _tcpClient; + private TcpClient? _tcpClientCached; + private HttpVersions _httpVersion = HttpVersions.Version1_0; + + private const string HTTP_PROXY_CONNECT_CMD = "CONNECT {0}:{1} HTTP/{2}\r\nHOST: {0}:{1}\r\n\r\n"; + private const string HTTP_PROXY_AUTHENTICATE_CMD = "CONNECT {0}:{1} HTTP/{3}\r\nHOST: {0}:{1}\r\nProxy-Authorization: Basic {2}\r\n\r\n"; + + private const int WAIT_FOR_DATA_INTERVAL = 50; // 50 ms + private const int WAIT_FOR_DATA_TIMEOUT = 15000; // 15 seconds + private const string PROXY_NAME = "HTTP"; + + /// + /// HTTP header version enumeration. + /// + public enum HttpVersions + { + /// + /// Specify HTTP/1.0 version in HTTP header requests. + /// + Version1_0, + /// + /// Specify HTTP/1.1 version in HTTP header requests. + /// + Version1_1, + } + + private enum HttpResponseCodes + { + None = 0, + Continue = 100, + SwitchingProtocols = 101, + OK = 200, + Created = 201, + Accepted = 202, + NonAuthoritiveInformation = 203, + NoContent = 204, + ResetContent = 205, + PartialContent = 206, + MultipleChoices = 300, + MovedPermanetly = 301, + Found = 302, + SeeOther = 303, + NotModified = 304, + UserProxy = 305, + TemporaryRedirect = 307, + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticantionRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + PreconditionFailed = 411, + RequestEntityTooLarge = 413, + RequestURITooLong = 414, + UnsupportedMediaType = 415, + RequestedRangeNotSatisfied = 416, + ExpectationFailed = 417, + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504, + HTTPVersionNotSupported = 505 + } + + /// + /// Constructor. + /// + public HttpProxyClient() { } + + /// + /// Creates a HTTP proxy client object using the supplied TcpClient object connection. + /// + /// A TcpClient connection object. + public HttpProxyClient(TcpClient tcpClient) + { + _tcpClientCached = tcpClient ?? throw new ArgumentNullException(nameof(tcpClient)); + } + + /// + /// Constructor. + /// + /// Host name or IP address of the proxy server. + /// Port number for the proxy server. + public HttpProxyClient(string proxyHost, int proxyPort) + { + if (proxyPort <= 0 || proxyPort > 65535) + throw new ArgumentOutOfRangeException(nameof(proxyPort), "port must be greater than zero and less than 65535"); + + _proxyHost = proxyHost ?? throw new ArgumentNullException(nameof(proxyHost)); + _proxyPort = proxyPort; + } + + /// + /// Constructor. + /// + /// Host name or IP address of the proxy server. + /// Port number to connect to the proxy server. + /// Username for the proxy server. + /// Password for the proxy server. + public HttpProxyClient(string proxyHost, int proxyPort, string? proxyUsername, string? proxyPassword) + { + if (proxyPort <= 0 || proxyPort > 65535) + throw new ArgumentOutOfRangeException(nameof(proxyPort), "port must be greater than zero and less than 65535"); + + _proxyHost = proxyHost ?? throw new ArgumentNullException(nameof(proxyHost)); + _proxyPort = proxyPort; + + if (!string.IsNullOrEmpty(proxyUsername)) + _proxyUsername = proxyUsername; + + if (!string.IsNullOrEmpty(proxyPassword)) + _proxyPassword = proxyPassword; + } + + /// + /// Gets or sets host name or IP address of the proxy server. + /// + public string ProxyHost + { + get { return _proxyHost; } + set { _proxyHost = value; } + } + + /// + /// Gets or sets port number for the proxy server. + /// + public int ProxyPort + { + get { return _proxyPort; } + set { _proxyPort = value; } + } + + /// + /// Gets String representing the name of the proxy. + /// + /// This property will always return the value 'HTTP' + public string ProxyName + { + get { return PROXY_NAME; } + } + + /// + /// Gets or sets the TcpClient object. + /// This property can be set prior to executing CreateConnection to use an existing TcpClient connection. + /// + public TcpClient TcpClient + { + //get { return _tcpClientCached; } + set { _tcpClientCached = value; } + } + + /// + /// Gets or sets the HTTP header version. + /// Some proxy servers are very picky about the specific HTTP header version specified in the connection and + /// authentication strings. The default is version 1.0 but can be changed to version 1.1. + /// + public HttpVersions HttpVersion + { + get { return _httpVersion; } + set { _httpVersion = value; } + } + + /// + /// Creates a remote TCP connection through a proxy server to the destination host on the destination port. + /// + /// Destination host name or IP address. + /// Port number to connect to on the destination host. + /// + /// Returns an open TcpClient object that can be used normally to communicate + /// with the destination server + /// + /// + /// This method creates a connection to the proxy server and instructs the proxy server + /// to make a pass through connection to the specified destination host on the specified + /// port. + /// + public TcpClient? CreateConnection(string destinationHost, int destinationPort) + { + try + { + // if we have no cached tcpip connection then create one + if (_tcpClientCached == null) + { + if (string.IsNullOrEmpty(_proxyHost)) + throw new Exception("ProxyHost property must contain a value."); + + if (_proxyPort <= 0 || _proxyPort > 65535) + throw new Exception("ProxyPort value must be greater than zero and less than 65535"); + + // create new tcp client object to the proxy server + _tcpClient = new(); + + // attempt to open the connection + _tcpClient.Connect(_proxyHost, _proxyPort); + } + else + { + _tcpClient = _tcpClientCached; + } + + // send connection command to proxy host for the specified destination host and port + SendConnectionCommand(destinationHost, destinationPort); + + // remove the private reference to the tcp client so the proxy object does not keep it + // return the open proxied tcp client object to the caller for normal use + TcpClient rtn = _tcpClient; + _tcpClient = null; + return rtn; + } + catch (SocketException ex) + { + string msg; + if (_tcpClient == null) + msg = "Tcp Client is null."; + else + msg = $"Connection to proxy {Utils.GetHost(_tcpClient)}:{Utils.GetPort(_tcpClient)} failed."; + Debug.WriteLine($"{msg}{Environment.NewLine}{ex.Message}"); + + return null; + } + } + + + private void SendConnectionCommand(string host, int port) + { + if (_tcpClient == null) return; + + NetworkStream stream = _tcpClient.GetStream(); + + string connectCmd = CreateCommandString(host, port); + + byte[] request = Encoding.ASCII.GetBytes(connectCmd); + + // send the connect request + stream.Write(request, 0, request.Length); + + // wait for the proxy server to respond + WaitForData(stream); + + // PROXY SERVER RESPONSE + // ======================================================================= + //HTTP/1.0 200 Connection Established + //[.... other HTTP header lines ending with .. + //ignore all of them] + // // Last Empty Line + + // create an byte response array + byte[] response = new byte[_tcpClient.ReceiveBufferSize]; + StringBuilder sbuilder = new(); + int bytes = 0; + long total = 0; + + do + { + bytes = stream.Read(response, 0, _tcpClient.ReceiveBufferSize); + total += bytes; + sbuilder.Append(Encoding.UTF8.GetString(response, 0, bytes)); + } + while (stream.DataAvailable); + + ParseResponse(sbuilder.ToString()); + + // evaluate the reply code for an error condition + if (_respCode != HttpResponseCodes.OK) + HandleProxyCommandError(host, port); + } + + private string CreateCommandString(string host, int port) + { + string connectCmd; + if (!string.IsNullOrEmpty(_proxyUsername)) + { + // gets the user/pass into base64 encoded string in the form of [username]:[password] + string auth = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", _proxyUsername, _proxyPassword))); + + // PROXY SERVER REQUEST + // ======================================================================= + //CONNECT starksoft.com:443 HTTP/1.0 + //HOST starksoft.com:443 + //Proxy-Authorization: username:password + // NOTE: username:password string will be base64 encoded as one + // concatenated string + //[... other HTTP header lines ending with if required]> + // // Last Empty Line + connectCmd = string.Format(CultureInfo.InvariantCulture, HTTP_PROXY_AUTHENTICATE_CMD, + host, port.ToString(CultureInfo.InvariantCulture), auth, GetHttpVersionString()); + } + else + { + // PROXY SERVER REQUEST + // ======================================================================= + //CONNECT starksoft.com:443 HTTP/1.0 + //HOST starksoft.com:443 + //[... other HTTP header lines ending with if required]> + // // Last Empty Line + connectCmd = string.Format(CultureInfo.InvariantCulture, HTTP_PROXY_CONNECT_CMD, + host, port.ToString(CultureInfo.InvariantCulture), GetHttpVersionString()); + } + return connectCmd; + } + + private void HandleProxyCommandError(string host, int port) + { + string msg = _respCode switch + { + HttpResponseCodes.None => $"Proxy destination {host} on port {port} failed to return a recognized HTTP response code. Server response: {_respText}", + HttpResponseCodes.BadGateway => $"Proxy destination {host} on port {port} responded with a 502 code - Bad Gateway. If you are connecting to a Microsoft ISA destination please refer to knowledge based article Q283284 for more information. Server response: {_respText}", //HTTP/1.1 502 Proxy Error (The specified Secure Sockets Layer (SSL) port is not allowed. ISA Server is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests.) + _ => $"Proxy destination {host} on port {port} responded with a {_respCode} code - {_respText}", + }; + + Debug.WriteLine(msg); + } + + private void WaitForData(NetworkStream stream) + { + int sleepTime = 0; + while (!stream.DataAvailable) + { + Task.Delay(WAIT_FOR_DATA_INTERVAL).Wait(); + sleepTime += WAIT_FOR_DATA_INTERVAL; + if (sleepTime > WAIT_FOR_DATA_TIMEOUT) + { + Debug.WriteLine("Proxy Server didn't respond."); + break; + } + } + } + + private void ParseResponse(string response) + { + string[] data; + + // Get rid of the LF character if it exists and then split the string on all CR + data = response.Replace('\n', ' ').Split('\r'); + + ParseCodeAndText(data[0]); + } + + private void ParseCodeAndText(string line) + { + int begin = 0; + int end = 0; + string val = string.Empty; + + if (!line.Contains("HTTP", StringComparison.CurrentCulture)) + { + string msg = $"No HTTP response received from proxy destination. Server response: {line}."; + Debug.WriteLine(msg); + return; + } + + begin = line.IndexOf(" ") + 1; + end = line.IndexOf(" ", begin); + + val = line[begin..end]; + + if (!int.TryParse(val, out int code)) + { + string msg = $"An invalid response code was received from proxy destination. Server response: {line}."; + Debug.WriteLine(msg); + return; + } + + _respCode = (HttpResponseCodes)code; + _respText = line[(end + 1)..].Trim(); + } + + private string GetHttpVersionString() + { + return _httpVersion switch + { + HttpVersions.Version1_0 => "1.0", + HttpVersions.Version1_1 => "1.1", + _ => throw new Exception($"Unexpect HTTP version {_httpVersion} specified."), + }; + } + + //Async Methods + private BackgroundWorker? _asyncWorker; + private Exception? _asyncException; + bool _asyncCancelled; + + /// + /// Gets a value indicating whether an asynchronous operation is running. + /// + /// Returns true if an asynchronous operation is running; otherwise, false. + /// + public bool IsBusy + { + get { return _asyncWorker != null && _asyncWorker.IsBusy; } + } + + /// + /// Gets a value indicating whether an asynchronous operation is cancelled. + /// + /// Returns true if an asynchronous operation is cancelled; otherwise, false. + /// + public bool IsAsyncCancelled + { + get { return _asyncCancelled; } + } + + /// + /// Cancels any asychronous operation that is currently active. + /// + public void CancelAsync() + { + if (_asyncWorker != null && !_asyncWorker.CancellationPending && _asyncWorker.IsBusy) + { + _asyncCancelled = true; + _asyncWorker.CancelAsync(); + } + } + + private void CreateAsyncWorker() + { + if (_asyncWorker != null) + _asyncWorker.Dispose(); + _asyncException = null; + _asyncWorker = null; + _asyncCancelled = false; + _asyncWorker = new(); + } + + /// + /// Event handler for CreateConnectionAsync method completed. + /// + public event EventHandler? CreateConnectionAsyncCompleted; + + /// + /// Asynchronously creates a remote TCP connection through a proxy server to the destination host on the destination port. + /// + /// Destination host name or IP address. + /// Port number to connect to on the destination host. + /// + /// Returns an open TcpClient object that can be used normally to communicate + /// with the destination server + /// + /// + /// This method creates a connection to the proxy server and instructs the proxy server + /// to make a pass through connection to the specified destination host on the specified + /// port. + /// + public void CreateConnectionAsync(string destinationHost, int destinationPort) + { + if (_asyncWorker != null) + { + if (_asyncWorker.IsBusy) + throw new InvalidOperationException("The HttpProxy object is already busy executing another asynchronous operation. You can only execute one asychronous method at a time."); + + CreateAsyncWorker(); + _asyncWorker.WorkerSupportsCancellation = true; + _asyncWorker.DoWork += new DoWorkEventHandler(CreateConnectionAsync_DoWork); + _asyncWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CreateConnectionAsync_RunWorkerCompleted); + object[] args = new object[2]; + args[0] = destinationHost; + args[1] = destinationPort; + _asyncWorker.RunWorkerAsync(args); + } + } + + private void CreateConnectionAsync_DoWork(object? sender, DoWorkEventArgs e) + { + try + { + if (e.Argument != null) + { + object[] args = (object[])e.Argument; + e.Result = CreateConnection((string)args[0], (int)args[1]); + } + } + catch (Exception ex) + { + _asyncException = ex; + } + } + + private void CreateConnectionAsync_RunWorkerCompleted(object? sender, RunWorkerCompletedEventArgs e) + { + if (e.Result != null) + CreateConnectionAsyncCompleted?.Invoke(this, new CreateConnectionAsyncCompletedEventArgs(_asyncException, _asyncCancelled, (TcpClient)e.Result)); + } + + + } +} diff --git a/MsmhTools/MsmhTools/ProxifiedTcpClient/Socks5ProxyClient.cs b/MsmhTools/MsmhTools/ProxifiedTcpClient/Socks5ProxyClient.cs new file mode 100644 index 0000000..180352f --- /dev/null +++ b/MsmhTools/MsmhTools/ProxifiedTcpClient/Socks5ProxyClient.cs @@ -0,0 +1,684 @@ +// +// Author: +// Benton Stark +// +// Copyright (c) 2016 Benton Stark +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program. If not, see . + +using System; +using System.Text; +using System.Net; +using System.Net.Sockets; +using System.ComponentModel; +using System.Diagnostics; + +namespace MsmhTools.ProxifiedTcpClient +{ + /// + /// Socks5 connection proxy class. This class implements the Socks5 standard proxy protocol. + /// + /// + /// This implementation supports TCP proxy connections with a Socks v5 server. + /// + public class Socks5ProxyClient + { + private string _proxyHost = IPAddress.Loopback.ToString(); // Default + private int _proxyPort = 1080; // Default + private string _proxyUsername = string.Empty; + private string _proxyPassword = string.Empty; + private SocksAuthentication? _proxyAuthMethod; + private TcpClient? _tcpClient; + private TcpClient? _tcpClientCached; + + private const string PROXY_NAME = "SOCKS5"; + + private const byte SOCKS5_VERSION_NUMBER = 5; + private const byte SOCKS5_RESERVED = 0x00; + private const byte SOCKS5_AUTH_NUMBER_OF_AUTH_METHODS_SUPPORTED = 2; + private const byte SOCKS5_AUTH_METHOD_NO_AUTHENTICATION_REQUIRED = 0x00; + private const byte SOCKS5_AUTH_METHOD_GSSAPI = 0x01; + private const byte SOCKS5_AUTH_METHOD_USERNAME_PASSWORD = 0x02; + private const byte SOCKS5_AUTH_METHOD_IANA_ASSIGNED_RANGE_BEGIN = 0x03; + private const byte SOCKS5_AUTH_METHOD_IANA_ASSIGNED_RANGE_END = 0x7f; + private const byte SOCKS5_AUTH_METHOD_RESERVED_RANGE_BEGIN = 0x80; + private const byte SOCKS5_AUTH_METHOD_RESERVED_RANGE_END = 0xfe; + private const byte SOCKS5_AUTH_METHOD_REPLY_NO_ACCEPTABLE_METHODS = 0xff; + private const byte SOCKS5_CMD_CONNECT = 0x01; + private const byte SOCKS5_CMD_BIND = 0x02; + private const byte SOCKS5_CMD_UDP_ASSOCIATE = 0x03; + private const byte SOCKS5_CMD_REPLY_SUCCEEDED = 0x00; + private const byte SOCKS5_CMD_REPLY_GENERAL_SOCKS_SERVER_FAILURE = 0x01; + private const byte SOCKS5_CMD_REPLY_CONNECTION_NOT_ALLOWED_BY_RULESET = 0x02; + private const byte SOCKS5_CMD_REPLY_NETWORK_UNREACHABLE = 0x03; + private const byte SOCKS5_CMD_REPLY_HOST_UNREACHABLE = 0x04; + private const byte SOCKS5_CMD_REPLY_CONNECTION_REFUSED = 0x05; + private const byte SOCKS5_CMD_REPLY_TTL_EXPIRED = 0x06; + private const byte SOCKS5_CMD_REPLY_COMMAND_NOT_SUPPORTED = 0x07; + private const byte SOCKS5_CMD_REPLY_ADDRESS_TYPE_NOT_SUPPORTED = 0x08; + private const byte SOCKS5_ADDRTYPE_IPV4 = 0x01; + private const byte SOCKS5_ADDRTYPE_DOMAIN_NAME = 0x03; + private const byte SOCKS5_ADDRTYPE_IPV6 = 0x04; + + /// + /// Authentication itemType. + /// + private enum SocksAuthentication + { + None, + UsernamePassword + } + + /// + /// Create a Socks5 proxy client object. + /// + public Socks5ProxyClient() + { + + } + + /// + /// Creates a Socks5 proxy client object using the supplied TcpClient object connection. + /// + /// A TcpClient connection object. + public Socks5ProxyClient(TcpClient tcpClient) + { + _tcpClientCached = tcpClient ?? throw new ArgumentNullException(nameof(tcpClient)); + } + + /// + /// Create a Socks5 proxy client object. + /// + /// Host name or IP address of the proxy server. + /// Port used to connect to proxy server. + public Socks5ProxyClient(string proxyHost, int proxyPort) + { + if (proxyPort <= 0 || proxyPort > 65535) + throw new ArgumentOutOfRangeException(nameof(proxyPort), "port must be greater than zero and less than 65535"); + + _proxyHost = proxyHost ?? throw new ArgumentNullException(nameof(proxyHost)); + _proxyPort = proxyPort; + } + + /// + /// Create a Socks5 proxy client object. + /// + /// Host name or IP address of the proxy server. + /// Port used to connect to proxy server. + /// Proxy authentication user name. + /// Proxy authentication password. + public Socks5ProxyClient(string proxyHost, int proxyPort, string? proxyUsername, string? proxyPassword) + { + if (proxyPort <= 0 || proxyPort > 65535) + throw new ArgumentOutOfRangeException(nameof(proxyPort), "port must be greater than zero and less than 65535"); + _proxyHost = proxyHost ?? throw new ArgumentNullException(nameof(proxyHost)); + _proxyPort = proxyPort; + + if (!string.IsNullOrEmpty(proxyUsername)) + _proxyUsername = proxyUsername; + + if (!string.IsNullOrEmpty(proxyPassword)) + _proxyPassword = proxyPassword; + } + + /// + /// Gets or sets host name or IP address of the proxy server. + /// + public string ProxyHost + { + get { return _proxyHost; } + set { _proxyHost = value; } + } + + /// + /// Gets or sets port used to connect to proxy server. + /// + public int ProxyPort + { + get { return _proxyPort; } + set { _proxyPort = value; } + } + + /// + /// Gets String representing the name of the proxy. + /// + /// This property will always return the value 'SOCKS5' + public string ProxyName + { + get { return PROXY_NAME; } + } + + /// + /// Gets or sets the TcpClient object. + /// This property can be set prior to executing CreateConnection to use an existing TcpClient connection. + /// + public TcpClient TcpClient + { + //get { return _tcpClientCached; } + set { _tcpClientCached = value; } + } + + /// + /// Creates a remote TCP connection through a proxy server to the destination host on the destination port. + /// + /// Destination host name or IP address of the destination server. + /// Port number to connect to on the destination host. + /// + /// Returns an open TcpClient object that can be used normally to communicate + /// with the destination server + /// + public TcpClient? CreateConnection(string destinationHost, int destinationPort) + { + if (string.IsNullOrEmpty(destinationHost)) + throw new ArgumentNullException(nameof(destinationHost)); + + if (destinationPort <= 0 || destinationPort > 65535) + throw new ArgumentOutOfRangeException(nameof(destinationPort), "port must be greater than zero and less than 65535"); + + try + { + // if we have no cached tcpip connection then create one + if (_tcpClientCached == null) + { + if (string.IsNullOrEmpty(_proxyHost)) + throw new Exception("ProxyHost property must contain a value."); + + if (_proxyPort <= 0 || _proxyPort > 65535) + throw new Exception("ProxyPort value must be greater than zero and less than 65535"); + + // create new tcp client object to the proxy server + _tcpClient = new TcpClient(); + + // attempt to open the connection + _tcpClient.Connect(_proxyHost, _proxyPort); + } + else + { + _tcpClient = _tcpClientCached; + } + + // determine which authentication method the client would like to use + DetermineClientAuthMethod(); + + // negotiate which authentication methods are supported / accepted by the server + NegotiateServerAuthMethod(); + + // send a connect command to the proxy server for destination host and port + SendCommand(SOCKS5_CMD_CONNECT, destinationHost, destinationPort); + + // remove the private reference to the tcp client so the proxy object does not keep it + // return the open proxied tcp client object to the caller for normal use + TcpClient rtn = _tcpClient; + _tcpClient = null; + return rtn; + } + catch (Exception ex) + { + string msg; + if (_tcpClient == null) + msg = "Tcp Client is null."; + else + msg = $"Connection to proxy {Utils.GetHost(_tcpClient)}:{Utils.GetPort(_tcpClient)} failed."; + Debug.WriteLine($"{msg}{Environment.NewLine}{ex.Message}"); + + return null; + //throw new ProxyException(msg, ex); + } + } + + + private void DetermineClientAuthMethod() + { + // set the authentication itemType used based on values inputed by the user + if (!string.IsNullOrEmpty(_proxyUsername) && !string.IsNullOrEmpty(_proxyPassword)) + _proxyAuthMethod = SocksAuthentication.UsernamePassword; + else + _proxyAuthMethod = SocksAuthentication.None; + } + + private void NegotiateServerAuthMethod() + { + if (_tcpClient == null) return; + + // get a reference to the network stream + NetworkStream stream = _tcpClient.GetStream(); + + // SERVER AUTHENTICATION REQUEST + // The client connects to the server, and sends a version + // identifier/method selection message: + // + // +----+----------+----------+ + // |VER | NMETHODS | METHODS | + // +----+----------+----------+ + // | 1 | 1 | 1 to 255 | + // +----+----------+----------+ + + byte[] authRequest = new byte[4]; + authRequest[0] = SOCKS5_VERSION_NUMBER; + authRequest[1] = SOCKS5_AUTH_NUMBER_OF_AUTH_METHODS_SUPPORTED; + authRequest[2] = SOCKS5_AUTH_METHOD_NO_AUTHENTICATION_REQUIRED; + authRequest[3] = SOCKS5_AUTH_METHOD_USERNAME_PASSWORD; + + // send the request to the server specifying authentication types supported by the client. + stream.Write(authRequest, 0, authRequest.Length); + + // SERVER AUTHENTICATION RESPONSE + // The server selects from one of the methods given in METHODS, and + // sends a METHOD selection message: + // + // +----+--------+ + // |VER | METHOD | + // +----+--------+ + // | 1 | 1 | + // +----+--------+ + // + // If the selected METHOD is X'FF', none of the methods listed by the + // client are acceptable, and the client MUST close the connection. + // + // The values currently defined for METHOD are: + // * X'00' NO AUTHENTICATION REQUIRED + // * X'01' GSSAPI + // * X'02' USERNAME/PASSWORD + // * X'03' to X'7F' IANA ASSIGNED + // * X'80' to X'FE' RESERVED FOR PRIVATE METHODS + // * X'FF' NO ACCEPTABLE METHODS + + // receive the server response + byte[] response = new byte[2]; + stream.Read(response, 0, response.Length); + + // the first byte contains the socks version number (e.g. 5) + // the second byte contains the auth method acceptable to the proxy server + byte acceptedAuthMethod = response[1]; + + // if the server does not accept any of our supported authenication methods then throw an error + if (acceptedAuthMethod == SOCKS5_AUTH_METHOD_REPLY_NO_ACCEPTABLE_METHODS) + { + _tcpClient.Close(); + string msg = "The proxy destination does not accept the supported proxy client authentication methods."; + Debug.WriteLine(msg); + return; + //throw new ProxyException(msg); + } + + // if the server accepts a username and password authentication and none is provided by the user then throw an error + if (acceptedAuthMethod == SOCKS5_AUTH_METHOD_USERNAME_PASSWORD && _proxyAuthMethod == SocksAuthentication.None) + { + _tcpClient.Close(); + string msg = "The proxy destination requires a username and password for authentication. If you received this error attempting to connect to the Tor network provide an string empty value for ProxyUserName and ProxyPassword."; + Debug.WriteLine(msg); + return; + //throw new ProxyException(msg); + } + + if (acceptedAuthMethod == SOCKS5_AUTH_METHOD_USERNAME_PASSWORD) + { + + // USERNAME / PASSWORD SERVER REQUEST + // Once the SOCKS V5 server has started, and the client has selected the + // Username/Password Authentication protocol, the Username/Password + // subnegotiation begins. This begins with the client producing a + // Username/Password request: + // + // +----+------+----------+------+----------+ + // |VER | ULEN | UNAME | PLEN | PASSWD | + // +----+------+----------+------+----------+ + // | 1 | 1 | 1 to 255 | 1 | 1 to 255 | + // +----+------+----------+------+----------+ + + // create a data structure (binary array) containing credentials + // to send to the proxy server which consists of clear username and password data + byte[] credentials = new byte[_proxyUsername.Length + _proxyPassword.Length + 3]; + + // for SOCKS5 username/password authentication the VER field must be set to 0x01 + // http://en.wikipedia.org/wiki/SOCKS + // field 1: version number, 1 byte (must be 0x01)" + credentials[0] = 0x01; + credentials[1] = (byte)_proxyUsername.Length; + Array.Copy(Encoding.ASCII.GetBytes(_proxyUsername), 0, credentials, 2, _proxyUsername.Length); + credentials[_proxyUsername.Length + 2] = (byte)_proxyPassword.Length; + Array.Copy(Encoding.ASCII.GetBytes(_proxyPassword), 0, credentials, _proxyUsername.Length + 3, _proxyPassword.Length); + + // USERNAME / PASSWORD SERVER RESPONSE + // The server verifies the supplied UNAME and PASSWD, and sends the + // following response: + // + // +----+--------+ + // |VER | STATUS | + // +----+--------+ + // | 1 | 1 | + // +----+--------+ + // + // A STATUS field of X'00' indicates success. If the server returns a + // `failure' (STATUS value other than X'00') status, it MUST close the + // connection. + + // transmit credentials to the proxy server + stream.Write(credentials, 0, credentials.Length); + + // read the response from the proxy server + byte[] crResponse = new byte[2]; + stream.Read(crResponse, 0, crResponse.Length); + + // check to see if the proxy server accepted the credentials + if (crResponse[1] != 0) + { + _tcpClient.Close(); + string msg = "Proxy authentification failure! The proxy server has reported that the userid and/or password is not valid."; + Debug.WriteLine(msg); + return; + //throw new ProxyException(msg); + } + } + } + + private byte GetDestAddressType(string host) + { + bool result = IPAddress.TryParse(host, out IPAddress? ipAddr); + + if (!result || ipAddr == null) + return SOCKS5_ADDRTYPE_DOMAIN_NAME; + + return ipAddr.AddressFamily switch + { + AddressFamily.InterNetwork => SOCKS5_ADDRTYPE_IPV4, + AddressFamily.InterNetworkV6 => SOCKS5_ADDRTYPE_IPV6, + _ => throw new Exception($"The host addess {host} of type \'{Enum.GetName(typeof(AddressFamily), ipAddr.AddressFamily)}\' is not a supported address type. The supported types are InterNetwork and InterNetworkV6."), + }; + } + + private byte[]? GetDestAddressBytes(byte addressType, string host) + { + switch (addressType) + { + case SOCKS5_ADDRTYPE_IPV4: + case SOCKS5_ADDRTYPE_IPV6: + return IPAddress.Parse(host).GetAddressBytes(); + case SOCKS5_ADDRTYPE_DOMAIN_NAME: + // create a byte array to hold the host name bytes plus one byte to store the length + byte[] bytes = new byte[host.Length + 1]; + // if the address field contains a fully-qualified domain name. The first + // octet of the address field contains the number of octets of name that + // follow, there is no terminating NUL octet. + bytes[0] = Convert.ToByte(host.Length); + Encoding.ASCII.GetBytes(host).CopyTo(bytes, 1); + return bytes; + default: + return null; + } + } + + private byte[] GetDestPortBytes(int value) + { + byte[] array = new byte[2]; + array[0] = Convert.ToByte(value / 256); + array[1] = Convert.ToByte(value % 256); + return array; + } + + private void SendCommand(byte command, string destinationHost, int destinationPort) + { + if (_tcpClient == null) return; + + NetworkStream stream = _tcpClient.GetStream(); + + byte addressType = GetDestAddressType(destinationHost); + byte[]? destAddr = GetDestAddressBytes(addressType, destinationHost); + if (destAddr == null) return; + + byte[] destPort = GetDestPortBytes(destinationPort); + + // The connection request is made up of 6 bytes plus the + // length of the variable address byte array + // + // +----+-----+-------+------+----------+----------+ + // |VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT | + // +----+-----+-------+------+----------+----------+ + // | 1 | 1 | X'00' | 1 | Variable | 2 | + // +----+-----+-------+------+----------+----------+ + // + // * VER protocol version: X'05' + // * CMD + // * CONNECT X'01' + // * BIND X'02' + // * UDP ASSOCIATE X'03' + // * RSV RESERVED + // * ATYP address itemType of following address + // * IP V4 address: X'01' + // * DOMAINNAME: X'03' + // * IP V6 address: X'04' + // * DST.ADDR desired destination address + // * DST.PORT desired destination port in network octet order + + byte[] request = new byte[4 + destAddr.Length + 2]; + request[0] = SOCKS5_VERSION_NUMBER; + request[1] = command; + request[2] = SOCKS5_RESERVED; + request[3] = addressType; + destAddr.CopyTo(request, 4); + destPort.CopyTo(request, 4 + destAddr.Length); + + // send connect request. + stream.Write(request, 0, request.Length); + + // PROXY SERVER RESPONSE + // +----+-----+-------+------+----------+----------+ + // |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT | + // +----+-----+-------+------+----------+----------+ + // | 1 | 1 | X'00' | 1 | Variable | 2 | + // +----+-----+-------+------+----------+----------+ + // + // * VER protocol version: X'05' + // * REP Reply field: + // * X'00' succeeded + // * X'01' general SOCKS server failure + // * X'02' connection not allowed by ruleset + // * X'03' Network unreachable + // * X'04' Host unreachable + // * X'05' Connection refused + // * X'06' TTL expired + // * X'07' Command not supported + // * X'08' Address itemType not supported + // * X'09' to X'FF' unassigned + // RSV RESERVED + // ATYP address itemType of following address + + byte[] response = new byte[255]; + + // read proxy server response + stream.Read(response, 0, response.Length); + + byte replyCode = response[1]; + + // evaluate the reply code for an error condition + if (replyCode != SOCKS5_CMD_REPLY_SUCCEEDED) + HandleProxyCommandError(response, destinationHost, destinationPort ); + } + + private void HandleProxyCommandError(byte[] response, string destinationHost, int destinationPort) + { + byte replyCode = response[1]; + byte addrType = response[3]; + string addr = ""; + short port = 0; + + switch (addrType) + { + case SOCKS5_ADDRTYPE_DOMAIN_NAME: + int addrLen = Convert.ToInt32(response[4]); + byte[] addrBytes = new byte[addrLen]; + for (int i = 0; i < addrLen; i++) + addrBytes[i] = response[i + 5]; + addr = Encoding.ASCII.GetString(addrBytes); + byte[] portBytesDomain = new byte[2]; + portBytesDomain[0] = response[6 + addrLen]; + portBytesDomain[1] = response[5 + addrLen]; + port = BitConverter.ToInt16(portBytesDomain, 0); + break; + + case SOCKS5_ADDRTYPE_IPV4: + byte[] ipv4Bytes = new byte[4]; + for (int i = 0; i < 4; i++) + ipv4Bytes[i] = response[i + 4]; + IPAddress ipv4 = new(ipv4Bytes); + addr = ipv4.ToString(); + byte[] portBytesIpv4 = new byte[2]; + portBytesIpv4[0] = response[9]; + portBytesIpv4[1] = response[8]; + port = BitConverter.ToInt16(portBytesIpv4, 0); + break; + + case SOCKS5_ADDRTYPE_IPV6: + byte[] ipv6Bytes = new byte[16]; + for (int i = 0; i < 16; i++) + ipv6Bytes[i] = response[i + 4]; + IPAddress ipv6 = new(ipv6Bytes); + addr = ipv6.ToString(); + byte[] portBytesIpv6 = new byte[2]; + portBytesIpv6[0] = response[21]; + portBytesIpv6[1] = response[20]; + port = BitConverter.ToInt16(portBytesIpv6, 0); + break; + } + + string proxyErrorText = replyCode switch + { + SOCKS5_CMD_REPLY_GENERAL_SOCKS_SERVER_FAILURE => "a general socks destination failure occurred", + SOCKS5_CMD_REPLY_CONNECTION_NOT_ALLOWED_BY_RULESET => "the connection is not allowed by proxy destination rule set", + SOCKS5_CMD_REPLY_NETWORK_UNREACHABLE => "the network was unreachable", + SOCKS5_CMD_REPLY_HOST_UNREACHABLE => "the host was unreachable", + SOCKS5_CMD_REPLY_CONNECTION_REFUSED => "the connection was refused by the remote network", + SOCKS5_CMD_REPLY_TTL_EXPIRED => "the time to live (TTL) has expired", + SOCKS5_CMD_REPLY_COMMAND_NOT_SUPPORTED => "the command issued by the proxy client is not supported by the proxy destination", + SOCKS5_CMD_REPLY_ADDRESS_TYPE_NOT_SUPPORTED => "the address type specified is not supported", + _ => $"an unknown SOCKS reply with the code value '{replyCode}' was received", + }; + string responseText = response != null ? Utils.HexEncode(response) : ""; + string exceptionMsg = $"Proxy Error: {proxyErrorText} for destination host {destinationHost} port number {destinationPort}. Server response (hex): {responseText}."; + + Debug.WriteLine(exceptionMsg); + return; + //throw new ProxyException(exceptionMsg); + } + + + //Async Methods + private BackgroundWorker? _asyncWorker; + private Exception? _asyncException; + bool _asyncCancelled; + + /// + /// Gets a value indicating whether an asynchronous operation is running. + /// + /// Returns true if an asynchronous operation is running; otherwise, false. + /// + public bool IsBusy + { + get { return _asyncWorker != null && _asyncWorker.IsBusy; } + } + + /// + /// Gets a value indicating whether an asynchronous operation is cancelled. + /// + /// Returns true if an asynchronous operation is cancelled; otherwise, false. + /// + public bool IsAsyncCancelled + { + get { return _asyncCancelled; } + } + + /// + /// Cancels any asychronous operation that is currently active. + /// + public void CancelAsync() + { + if (_asyncWorker != null && !_asyncWorker.CancellationPending && _asyncWorker.IsBusy) + { + _asyncCancelled = true; + _asyncWorker.CancelAsync(); + } + } + + private void CreateAsyncWorker() + { + if (_asyncWorker != null) + _asyncWorker.Dispose(); + _asyncException = null; + _asyncWorker = null; + _asyncCancelled = false; + _asyncWorker = new(); + } + + /// + /// Event handler for CreateConnectionAsync method completed. + /// + public event EventHandler? CreateConnectionAsyncCompleted; + + /// + /// Asynchronously creates a remote TCP connection through a proxy server to the destination host on the destination port. + /// + /// Destination host name or IP address. + /// Port number to connect to on the destination host. + /// + /// Returns TcpClient object that can be used normally to communicate + /// with the destination server. + /// + /// + /// This method instructs the proxy server + /// to make a pass through connection to the specified destination host on the specified + /// port. + /// + public void CreateConnectionAsync(string destinationHost, int destinationPort) + { + if (_asyncWorker != null) + { + if (_asyncWorker.IsBusy) + throw new InvalidOperationException("The Socks4 object is already busy executing another asynchronous operation. You can only execute one asychronous method at a time."); + + CreateAsyncWorker(); + _asyncWorker.WorkerSupportsCancellation = true; + _asyncWorker.DoWork += new DoWorkEventHandler(CreateConnectionAsync_DoWork); + _asyncWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CreateConnectionAsync_RunWorkerCompleted); + object[] args = new object[2]; + args[0] = destinationHost; + args[1] = destinationPort; + _asyncWorker.RunWorkerAsync(args); + } + } + + private void CreateConnectionAsync_DoWork(object? sender, DoWorkEventArgs e) + { + try + { + if (e.Argument != null) + { + object[] args = (object[])e.Argument; + e.Result = CreateConnection((string)args[0], (int)args[1]); + } + } + catch (Exception ex) + { + _asyncException = ex; + } + } + + private void CreateConnectionAsync_RunWorkerCompleted(object? sender, RunWorkerCompletedEventArgs e) + { + if (e.Result != null) + CreateConnectionAsyncCompleted?.Invoke(this, new CreateConnectionAsyncCompletedEventArgs(_asyncException, _asyncCancelled, (TcpClient)e.Result)); + } + + + } +} diff --git a/MsmhTools/MsmhTools/ProxifiedTcpClient/Utils.cs b/MsmhTools/MsmhTools/ProxifiedTcpClient/Utils.cs new file mode 100644 index 0000000..b88e85a --- /dev/null +++ b/MsmhTools/MsmhTools/ProxifiedTcpClient/Utils.cs @@ -0,0 +1,117 @@ +using System; +using System.Text; +using System.Globalization; +using System.Net.Sockets; +using System.Net; +using System.ComponentModel; + +namespace MsmhTools.ProxifiedTcpClient +{ + internal static class Utils + { + /// + /// Encodes a byte array to a string in 2 character hex format. + /// + /// Array of bytes to convert. + /// String containing encoded bytes. + /// e.g. 0x55 ==> "55", also left pads with 0 so that 0x01 is "01" and not "1" + public static string HexEncode(byte[] data) + { + if (data == null) + throw new ArgumentNullException(nameof(data)); + + return HexEncode(data, false, data.Length); + } + + /// + /// Encodes a byte array to a string in 2 character hex format. + /// + /// Array of bytes to encode. + /// Insert colon as the delimiter between bytes. + /// Number of bytes to encode. + /// String containing encoded bytes. + /// e.g. 0x55 ==> "55", also left pads with 0 so that 0x01 is "01" and not "1" + public static string HexEncode(byte[] data, bool insertColonDelimiter, int length) + { + if (data == null) + throw new ArgumentNullException(nameof(data)); + + StringBuilder buffer = new(length * 2); + + int len = data.Length; + for (int i = 0; i < len; i++) + { + buffer.Append(data[i].ToString("x").PadLeft(2, '0')); //same as "%02X" in C + if (insertColonDelimiter && i < len - 1) + buffer.Append(':'); + } + return buffer.ToString(); + } + + internal static string GetHost(TcpClient client) + { + if (client == null) + throw new ArgumentNullException(nameof(client)); + + string host = string.Empty; + try + { + if (client.Client.RemoteEndPoint != null) + host = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString(); + } + catch (Exception) + { + // do nothing + }; + + return host; + } + + internal static string GetPort(TcpClient client) + { + if (client == null) + throw new ArgumentNullException(nameof(client)); + + string port = ""; + try + { + if (client.Client.RemoteEndPoint != null) + port = ((System.Net.IPEndPoint)client.Client.RemoteEndPoint).Port.ToString(CultureInfo.InvariantCulture); + } + catch (Exception) + { + // do nothing + }; + + return port; + } + + } + + /// + /// Event arguments class for the EncryptAsyncCompleted event. + /// + public class CreateConnectionAsyncCompletedEventArgs : AsyncCompletedEventArgs + { + private TcpClient? _proxyConnection; + + /// + /// Constructor. + /// + /// Exception information generated by the event. + /// Cancelled event flag. This flag is set to true if the event was cancelled. + /// Proxy Connection. The initialized and open TcpClient proxy connection. + public CreateConnectionAsyncCompletedEventArgs(Exception? error, bool cancelled, TcpClient? proxyConnection) : base(error, cancelled, null) + { + _proxyConnection = proxyConnection; + } + + /// + /// The proxy connection. + /// + public TcpClient? ProxyConnection + { + get { return _proxyConnection; } + } + } +} diff --git a/MsmhTools/MsmhTools/RegistryTool.cs b/MsmhTools/MsmhTools/RegistryTool.cs new file mode 100644 index 0000000..606fde5 --- /dev/null +++ b/MsmhTools/MsmhTools/RegistryTool.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools +{ + public static class RegistryTool + { + [DllImport("wininet.dll")] + private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength); + private const int INTERNET_OPTION_SETTINGS_CHANGED = 39; + private const int INTERNET_OPTION_REFRESH = 37; + + [DllImport("user32.DLL")] + private static extern bool SendNotifyMessageA(IntPtr hWnd, uint Msg, int wParam, int lParam); + private static readonly IntPtr HWND_BROADCAST = (IntPtr)0xffff; + private static readonly uint WM_SETTINGCHANGE = 0x001A; + + public static void ApplyRegistryChanges() + { + // They cause the OS to refresh the settings, causing IP to realy update + InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0); + InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0); + + SendNotifyMessageA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0); + } + } +} diff --git a/MsmhTools/MsmhTools/Resource.cs b/MsmhTools/MsmhTools/Resource.cs new file mode 100644 index 0000000..41a3f99 --- /dev/null +++ b/MsmhTools/MsmhTools/Resource.cs @@ -0,0 +1,98 @@ +using System; +using System.Diagnostics; +using System.Reflection; +using System.Text; + +namespace MsmhTools +{ + public class Resource + { + public static void WriteResourceToFile(string resourcePath, string filePath, Assembly assembly) + { + resourcePath = assembly.GetManifestResourceNames().Single(str => str.EndsWith(resourcePath)); + using Stream? resource = assembly.GetManifestResourceStream(resourcePath); + using FileStream file = new(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + if (resource != null) + resource.CopyTo(file); + else + Debug.WriteLine("WriteResourceToFile: Copy to disk faild, resource was null."); + } + + public static void WriteResourceToFile(byte[] resource, string filePath) + { + File.WriteAllBytes(filePath, resource); + } + + public static async Task WriteResourceToFileAsync(string resourcePath, string filePath, Assembly assembly) + { + resourcePath = assembly.GetManifestResourceNames().Single(str => str.EndsWith(resourcePath)); + using Stream? resource = assembly.GetManifestResourceStream(resourcePath); + using FileStream file = new(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + if (resource != null) + await resource.CopyToAsync(file); + else + Debug.WriteLine("WriteResourceToFile: Copy to disk faild, resource was null."); + } + + /// + /// Only binaries not text files. + /// + /// + /// + /// + public static async Task WriteResourceToFileAsync(byte[] resource, string filePath) + { + await File.WriteAllBytesAsync(filePath, resource); + } + + public static string? GetResourceTextFile(string resourcePath, Assembly assembly) + { + if (ResourceExists(resourcePath, assembly)) + { + // Format: "{Namespace}.{Folder}.{filename}.{Extension}" + resourcePath = assembly.GetManifestResourceNames().Single(str => str.EndsWith(resourcePath)); + using Stream? stream = assembly.GetManifestResourceStream(resourcePath); + if (stream != null) + { + using StreamReader reader = new(stream); + return reader.ReadToEnd(); + } + else + return null; + } + else + return null; + } + + public static string? GetResourceTextFile(byte[] resource) + { + return Encoding.UTF8.GetString(resource); + } + + public static async Task GetResourceTextFileAsync(string path, Assembly assembly) + { + if (ResourceExists(path, assembly)) + { + // Format: "{Namespace}.{Folder}.{filename}.{Extension}" + path = assembly.GetManifestResourceNames().Single(str => str.EndsWith(path)); + using Stream? stream = assembly.GetManifestResourceStream(path); + if (stream != null) + { + using StreamReader reader = new(stream); + return await reader.ReadToEndAsync(); + } + else + return null; + } + else + return null; + } + //----------------------------------------------------------------------------------- + public static bool ResourceExists(string resourceName, Assembly assembly) + { + string[] resourceNames = assembly.GetManifestResourceNames(); + Debug.WriteLine("Resource Exist: " + resourceNames.Contains(resourceName)); + return resourceNames.Contains(resourceName); + } + } +} diff --git a/MsmhTools/MsmhTools/Screen.cs b/MsmhTools/MsmhTools/Screen.cs new file mode 100644 index 0000000..658335b --- /dev/null +++ b/MsmhTools/MsmhTools/Screen.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools +{ + public class ScreenDPI + { + public static void ScaleForm(Form form, bool scaleX, bool scaleY) + { + using Graphics g = form.CreateGraphics(); + float scaleFactorX = 1; + float scaleFactorY = 1; + + // 96 = 100% + // 120 = 125% + // 144 = 150% + + if (g.DpiX > 96) + scaleFactorX = g.DpiX / 96; + + if (g.DpiY > 96) + scaleFactorY = g.DpiY / 96; + + if (form.AutoScaleDimensions == form.CurrentAutoScaleDimensions) + { + if (!scaleX && !scaleY) + form.Scale(new SizeF(1, 1)); + else if (scaleX && !scaleY) + form.Scale(new SizeF(scaleFactorX, 1)); + else if (!scaleX && scaleY) + form.Scale(new SizeF(1, scaleFactorY)); + else if (scaleX && scaleY) + form.Scale(new SizeF(scaleFactorX, scaleFactorY)); + } + // Doesn't work! + //AutoScaleMode = AutoScaleMode.Font; + //AutoScaleDimensions = new SizeF(6F, 13F); + } + } +} diff --git a/MsmhTools/MsmhTools/ScrollBar.cs b/MsmhTools/MsmhTools/ScrollBar.cs new file mode 100644 index 0000000..4824683 --- /dev/null +++ b/MsmhTools/MsmhTools/ScrollBar.cs @@ -0,0 +1,31 @@ +using System; +using MsmhTools; + +namespace MsmhTools +{ + public class ScrollBar + { + //----------------------------------------------------------------------------------- + // Is Vertical Scrollbar Visible + private const int WS_VSCROLL = 0x200000; + private const int GWL_STYLE = -16; + public static bool IsVScrollbarVisible(IntPtr hWnd) + { + int nMessage = WS_VSCROLL; + int nStyle = NativeMethods.GetWindowLong(hWnd, GWL_STYLE); + bool bVisible = (nStyle & nMessage) != 0; + return bVisible; + } // Usage: IsVScrollbarVisible(ListView1.Handle); + //----------------------------------------------------------------------------------- + // Is Horizontal Scrollbar Visible + private const int WS_HSCROLL = 0x100000; + public static bool IsHScrollbarVisible(IntPtr hWnd) + { + int nMessage = WS_HSCROLL; + int nStyle = NativeMethods.GetWindowLong(hWnd, GWL_STYLE); + bool bVisible = (nStyle & nMessage) != 0; + return bVisible; + } // Usage: IsHScrollbarVisible(ListView1.Handle); + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/MsmhTools/Settings.cs b/MsmhTools/MsmhTools/Settings.cs new file mode 100644 index 0000000..822e911 --- /dev/null +++ b/MsmhTools/MsmhTools/Settings.cs @@ -0,0 +1,546 @@ +using CustomControls; +using Microsoft.CSharp; +using System; +using System.CodeDom.Compiler; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Xml; +using System.Xml.Linq; + +namespace MsmhTools +{ + public class Settings + { + private XDocument XDoc = new(); + private List SettingList = new(); + + private readonly string Whitespace = @"\u0020"; + private readonly char WhiteSpaceChar = '\u0020'; + class Setting + { + public string? ControlName { get; set; } + public string? PropertyName { get; set; } + public string? PropertyValue { get; set; } + public Setting(string controlName, string propertyName, string propertyValue) + { + ControlName = controlName; + PropertyName = propertyName; + PropertyValue = propertyValue; + } + } + + private List ControlsAndPropertiesList = new(); + public class ControlsAndProperties + { + public Type ControlType { get; set; } + public string PropertyName { get; set; } + public ControlsAndProperties(Type controlType, string propertyName) + { + ControlType = controlType; + PropertyName = propertyName; + } + } + + private readonly char Delimiter = '|'; + public Settings(Control form, string? xmlFilePath = null) + { + if (xmlFilePath != null) + { + if (Xml.IsValidXMLFile(xmlFilePath)) + LoadFromXMLFile(form, xmlFilePath); + else + CustomMessageBox.Show("XML file is not valid."); + } + } + + public XDocument Export() + { + return XDoc; + } + + public void LoadFromXML(string xmlString) + { + if (Xml.IsValidXML(xmlString)) + XDoc = XDocument.Parse(xmlString); + } + + public void LoadFromXMLFile(Control form, string xmlFilePath) + { + if (xmlFilePath != null && Xml.IsValidXMLFile(xmlFilePath)) + { + // Clear List + SettingList.Clear(); + + // Clear XDoc + XElement? settingsx = XDoc.Element("Settings"); + if (settingsx != null) + settingsx.RemoveAll(); + + // Add Settings to XDoc + XDoc = XDocument.Load(xmlFilePath); + + // Add Settings to List + // Begin Check + var settings = XDoc.Elements("Settings"); + bool settingExist = settings.Any(); + if (settingExist) + { + // Top Exist + XElement? setting0 = XDoc.Element("Settings"); + if (setting0 != null) + { + var controls = setting0.Elements().ToArray(); + bool controlExist = controls.Any(); + if (controlExist) + { + // Control Exist + for (int n1 = 0; n1 < controls.Length; n1++) + { + XElement? control0 = controls.ToArray()[n1]; + if (control0 != null) + { + var controlProperties = control0.Elements(); + bool controlPropertyExist = controlProperties.Any(); + if (controlPropertyExist) + { + // Control Property Exist + for (int n2 = 0; n2 < controlProperties.Count(); n2++) + { + XElement? controlProperty0 = controlProperties.ToArray()[n2]; + if (controlProperty0 != null) + { + if (IsControlExistInForm(form, control0.Name.LocalName)) + AddSettingToList(control0.Name.LocalName, controlProperty0.Name.LocalName, controlProperty0.Value); + else + { + // Remove old controls settings + XElement? elementToRemove = setting0.Element(control0.Name.LocalName); + if (elementToRemove != null) + elementToRemove.Remove(); + } + } + } + } + } + } + LoadAllSettings(form); + } + } + } + } + } + + private static bool IsControlExistInForm(Control form, string controlName) + { + List controls = Controllers.GetAllControls(form); + for (int n = 0; n < controls.Count; n++) + { + Control control = controls[n]; + if (control.Name == controlName) + return true; + } + return false; + } + + public void LoadAllSettings(Control form) + { + List controls = Controllers.GetAllControls(form); + for (int n1 = 0; n1 < controls.Count; n1++) + { + Control control = controls[n1]; + PropertyInfo[] properties = control.GetType().GetProperties(); + for (int n2 = 0; n2 < properties.Length; n2++) + { + PropertyInfo property = properties[n2]; + List settingList = SettingList.ToList(); // ToList: Fix: Collection was modified; enumeration operation may not execute. + for (int n3 = 0; n3 < settingList.Count; n3++) + { + Setting setting = settingList[n3]; + if (control.Name == setting.ControlName && property.Name == setting.PropertyName && setting.PropertyValue != null) + { + try + { + TypeConverter typeConverter = TypeDescriptor.GetConverter(property.PropertyType); + if (typeConverter.CanConvertFrom(typeof(string))) + { + property.SetValue(control, typeConverter.ConvertFrom(setting.PropertyValue), null); + break; + } + } + catch (Exception ex1) + { + Debug.WriteLine(property.Name + ": " + ex1.Message); + try + { + property.SetValue(control, Convert.ChangeType(setting.PropertyValue, property.PropertyType), null); + break; + } + catch (Exception ex2) + { + Debug.WriteLine(property.Name + ": " + ex2.Message); + } + } + } + } + } + } + } + + public void Save(string xmlFilePath) + { + XmlWriterSettings xmlWriterSettings = new(); + xmlWriterSettings.Async = true; + xmlWriterSettings.Indent = true; + xmlWriterSettings.OmitXmlDeclaration = true; + xmlWriterSettings.Encoding = new UTF8Encoding(false); + using XmlWriter xmlWriter = XmlWriter.Create(xmlFilePath, xmlWriterSettings); + XDoc.Save(xmlWriter); + } + + public async Task SaveAsync(string xmlFilePath) + { + try + { + XmlWriterSettings xmlWriterSettings = new(); + xmlWriterSettings.WriteEndDocumentOnClose = true; + xmlWriterSettings.Async = true; + xmlWriterSettings.Indent = true; + xmlWriterSettings.OmitXmlDeclaration = true; + xmlWriterSettings.Encoding = new UTF8Encoding(false); + using XmlWriter xmlWriter = XmlWriter.Create(xmlFilePath, xmlWriterSettings); + await XDoc.SaveAsync(xmlWriter, CancellationToken.None); + } + catch (Exception ex) + { + Debug.WriteLine($"Save Settings: {ex.Message}"); + } + } + + private void SaveToFileAsTXT(string txtFilePath) + { + using FileStream fileStream = new(txtFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + using StreamWriter streamWriter = new(fileStream); + for (int n = 0; n < SettingList.Count; n++) + { + var setting = SettingList[n]; + if (string.IsNullOrWhiteSpace(setting.ControlName) && string.IsNullOrWhiteSpace(setting.PropertyName) && setting.PropertyValue != null) + { + object line = setting.ControlName + Delimiter + setting.PropertyName + Delimiter + setting.PropertyValue; + streamWriter.WriteLine(line.ToString()); + } + } + } + + /// + /// Get Setting e.g. + /// Settings settings = new(); + /// var test = settings.GetSettingFromList<bool>(CheckBox1, nameof(CheckBox1.Checked)); + /// + public T? GetSettingFromList(Control control, string propertyName) + { + for (int n = 0; n < SettingList.Count; n++) + { + var setting = SettingList[n]; + if (control.Name == setting.ControlName && propertyName == setting.PropertyName && setting.PropertyValue != null) + { + TypeConverter typeConverter = TypeDescriptor.GetConverter(typeof(T)); + if (typeConverter.CanConvertFrom(typeof(object))) + { + return (T?)typeConverter.ConvertFrom(setting.PropertyValue); + } + } + } + return default; + } + + /// + /// Get Setting e.g. + /// Settings settings = new(); + /// var test = settings.GetSettingFromXML<bool>(CheckBox1, nameof(CheckBox1.Checked)); + /// + public T? GetSettingFromXML(Control control, string propertyName) + { + // Begin Check + var settings = XDoc.Elements("Settings"); + bool settingExist = settings.Any(); + if (settingExist) + { + // Top Exist + XElement? setting0 = XDoc.Element("Settings"); + if (setting0 != null) + { + var controls = setting0.Elements(control.Name); + bool controlExist = controls.Any(); + if (controlExist) + { + // Control Exist + XElement? control0 = setting0.Element(control.Name); + if (control0 != null) + { + var controlProperties = control0.Elements(propertyName); + bool controlPropertyExist = controlProperties.Any(); + if (controlPropertyExist) + { + // Control Property Exist + XElement? controlProperty0 = control0.Element(propertyName); + if (controlProperty0 != null) + { + if (control0.Name.LocalName == control.Name && controlProperty0.Name.LocalName == propertyName) + { + TypeConverter typeConverter = TypeDescriptor.GetConverter(typeof(T)); + if (typeConverter.CanConvertFrom(typeof(string))) + { + return (T?)typeConverter.ConvertFrom(controlProperty0.Value); + } + } + } + } + } + } + } + } + return default; + } + + public void AddAllSettings(Form form) + { + List controls = Controllers.GetAllControls(form); + for (int n1 = 0; n1 < controls.Count; n1++) + { + Control control = controls[n1]; + PropertyInfo[] properties = control.GetType().GetProperties(); + for (int n2 = 0; n2 < properties.Length; n2++) + { + PropertyInfo property = properties[n2]; + string propertyName = property.Name; + + try + { + object? propertyValue = property.GetValue(control, null); + //Type propertyType = TypeToType(property.PropertyType); + + if (!string.IsNullOrWhiteSpace(control.Name) && !string.IsNullOrWhiteSpace(propertyName) && propertyValue != null) + { + AddSetting(control, propertyName, propertyValue); + } + } + catch (Exception ex) + { + Debug.WriteLine("SaveAllSettings: " + ex.Message); + } + } + } + } + + /// + /// Select which control type and properties should be saved with \"AddSelectedSettings\" method. + /// e.g. + /// Settings settings = new(); + /// settings.AddSelectedControlAndProperty(typeof(CustomCheckBox), \"Checked\"); + /// + public void AddSelectedControlAndProperty(Type controlType, string propertyName) + { + ControlsAndProperties controlsAndProperties = new(controlType, propertyName); + bool alreadyExist = false; + + for (int n = 0; n < ControlsAndPropertiesList.Count; n++) + { + ControlsAndProperties cap = ControlsAndPropertiesList[n]; + if (controlsAndProperties == cap) + { + alreadyExist = true; + break; + } + } + + if (!alreadyExist) + ControlsAndPropertiesList.Add(controlsAndProperties); + } + + /// + /// Add selected settings to be saved with \"Save\" or \"SaveAsync\" methods. + /// + public void AddSelectedSettings(Form form) + { + List controls = Controllers.GetAllControls(form); + for (int n1 = 0; n1 < controls.Count; n1++) + { + Control control = controls[n1]; + PropertyInfo[] properties = control.GetType().GetProperties(); + for (int n2 = 0; n2 < properties.Length; n2++) + { + PropertyInfo property = properties[n2]; + string propertyName = property.Name; + + try + { + object? propertyValue = property.GetValue(control, null); + + if (!string.IsNullOrWhiteSpace(control.Name) && !string.IsNullOrWhiteSpace(propertyName) && propertyValue != null) + { + // Read filters (to speed up settings loading) + for (int n3 = 0; n3 < ControlsAndPropertiesList.Count; n3++) + { + ControlsAndProperties controlsAndProperties = ControlsAndPropertiesList[n3]; + Type selectedControlType = controlsAndProperties.ControlType; + string selectedPropertyName = controlsAndProperties.PropertyName; + + if (control.GetType() == selectedControlType && propertyName.Equals(selectedPropertyName)) + AddSetting(control, propertyName, propertyValue); + } + } + } + catch (Exception ex) + { + Debug.WriteLine("SaveAllSettings: " + ex.Message); + continue; + } + } + } + } + + /// + /// Add Setting e.g. + /// Settings settings = new(); + /// settings.AddSetting(CheckBox1, nameof(CheckBox1.Checked), CheckBox1.Checked); + /// + public void AddSetting(Control control, string propertyName, object propertyValue) + { + // Add Setting to List + AddSettingToList(control.Name, propertyName, propertyValue); + + // Add Setting to XDoc + AddSettingToXDoc(control.Name, propertyName, propertyValue); + } + + private void AddSettingToList(string controlName, string propertyName, object propertyValue) + { + if (string.IsNullOrWhiteSpace(controlName)) return; + if (string.IsNullOrWhiteSpace(propertyName)) return; + if (propertyValue == null) return; + + string? value = propertyValue.ToString(); + if (value == null) return; + + Setting setting = new(controlName, propertyName, value); + + // Begin Check + bool alreadyExist = false; + for (int n = 0; n < SettingList.Count; n++) + { + Setting s = SettingList[n]; + if (controlName.Equals(s.ControlName) && propertyName.Equals(s.PropertyName)) + { + // Control Property Exist + s.PropertyValue = value; + alreadyExist = true; + break; + } + } + + if (!alreadyExist) + SettingList.Add(setting); + } + + private void AddSettingToXDoc(string controlName, string propertyName, object propertyValue) + { + if (string.IsNullOrWhiteSpace(controlName)) return; + if (string.IsNullOrWhiteSpace(propertyName)) return; + if (propertyValue == null) return; + + string? value = propertyValue.ToString(); + if (value == null) return; + + // Create Control Property + XElement xControlProperty = new(propertyName); + xControlProperty.Value = value; + + // Create Control Name + XElement xControl = new(controlName); + xControl.Add(xControlProperty); + + // Create Settings + XElement xSettings = new("Settings"); + xSettings.Add(xControl); + + // Begin Check + var settings = XDoc.Elements("Settings"); + bool settingExist = settings.Any(); + if (settingExist) + { + // Top Exist + XElement? setting0 = XDoc.Element("Settings"); + if (setting0 == null) return; + + var controls = setting0.Elements(controlName); + bool controlExist = controls.Any(); + if (controlExist) + { + // Control Exist + XElement? control0 = setting0.Element(controlName); + if (control0 == null) return; + + var controlProperties = control0.Elements(propertyName); + bool controlPropertyExist = controlProperties.Any(); + if (controlPropertyExist) + { + // Control Property Exist + XElement? controlProperty0 = control0.Element(propertyName); + if (controlProperty0 == null) return; + + controlProperty0.Value = value; + } + else + { + // Control Property Not Exist + control0.Add(xControlProperty); + } + } + else + { + // Control Not Exist + setting0.Add(xControl); + } + } + else + { + // Setiings Not Exist + XDoc.Add(xSettings); + } + } + + private static Type NameToType(string typeName, Type defaultType) + { + Type propertyType = defaultType; + + switch (typeName) + { + case "Boolean": propertyType = typeof(bool); break; + case "Byte": propertyType = typeof(byte); break; + case "Char": propertyType = typeof(char); break; + case "DateTime": propertyType = typeof(DateTime); break; + case "DBNull": propertyType = typeof(DBNull); break; + case "Decimal": propertyType = typeof(decimal); break; + case "Double": propertyType = typeof(double); break; + case "Int16": propertyType = typeof(short); break; + case "Int32": propertyType = typeof(int); break; + case "Int64": propertyType = typeof(long); break; + case "Object": propertyType = typeof(object); break; + case "SByte": propertyType = typeof(sbyte); break; + case "Single": propertyType = typeof(float); break; + case "String": propertyType = typeof(string); break; + case "UInt16": propertyType = typeof(ushort); break; + case "UInt32": propertyType = typeof(uint); break; + case "UInt64": propertyType = typeof(ulong); break; + } + + return propertyType; + } + + + } +} diff --git a/MsmhTools/MsmhTools/SniReader.cs b/MsmhTools/MsmhTools/SniReader.cs new file mode 100644 index 0000000..7802ef9 --- /dev/null +++ b/MsmhTools/MsmhTools/SniReader.cs @@ -0,0 +1,300 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MsmhTools +{ + // https://github.com/dlundquist/sniproxy/blob/master/src/tls.c + public class SniReader + { + public class TlsExtensions + { + public byte[] Data { get; set; } = Array.Empty(); + public int StartIndex { get; set; } = -1; + public int Length { get; set; } = -1; + } + + public class SniExtension + { + public byte[] Data { get; set; } = Array.Empty(); + public int StartIndex { get; set; } = -1; + public int Length { get; set; } = -1; + } + + public class SNI + { + public string ServerName { get; set; } = string.Empty; + public byte[] Data { get; set; } = Array.Empty(); + public int StartIndex { get; set; } = -1; + public int Length { get; set; } = -1; + } + + public string ReasonPhrase { get; private set; } = string.Empty; + public bool HaveTlsExtensions { get; private set; } = false; + public TlsExtensions AllExtensions { get; private set; } = new(); + public bool HaveSniExtension { get; private set; } = false; + public List SniExtensionList { get; private set; } = new(); + public bool HaveSni { get; private set; } = false; + public List SniList { get; private set; } = new(); + + private const int TLS_HEADER_LEN = 5; + private const int TLS_HANDSHAKE_CONTENT_TYPE = 0x16; + private const int TLS_HANDSHAKE_TYPE_CLIENT_HELLO = 0x01; + + public SniReader(byte[] data) + { + int pos = TLS_HEADER_LEN; + int dataLength = data.Length; + + if (dataLength < TLS_HEADER_LEN) + { + ReasonPhrase = "TCP payload is not large enough for a TLS header."; + return; + } + + if (data[0] == 1 & 0x80 == 1 && data[2] == 1) + { + ReasonPhrase = "Received SSL 2.0 Client Hello which can not support SNI."; + return; + } + else + { + if (data[0] != TLS_HANDSHAKE_CONTENT_TYPE) + { + ReasonPhrase = "Request did not begin with TLS handshake."; + return; + } + + int tls_version_major = data[1]; + int tls_version_minor = data[2]; + + if (tls_version_major < 3) + { + ReasonPhrase = $"Received SSL handshake cannot support SNI. Min TLS: {tls_version_minor} Max TLS: {tls_version_major}"; + return; + } + + // TLS record length + int len = (data[3] << 8) + data[4] + TLS_HEADER_LEN; + dataLength = Math.Min(dataLength, len); + + // Check we received entire TLS record length + if (dataLength < len) + { + ReasonPhrase = "Didn't receive entire TLS record length."; + return; + } + + // Handshake + if (pos + 1 > dataLength) + { + ReasonPhrase = "Handshake error."; + return; + } + + if (data[pos] != TLS_HANDSHAKE_TYPE_CLIENT_HELLO) + { + ReasonPhrase = "Not a client hello."; + return; + } + + /* Skip past fixed length records: + 1 Handshake Type + 3 Length + 2 Version (again) + 32 Random + to Session ID Length + */ + pos += 38; + + // Session ID + if (pos + 1 > dataLength) + { + ReasonPhrase = "Session ID error."; + return; + } + + len = data[pos]; + pos += 1 + len; + + // Cipher Suits + if (pos + 2 > dataLength) + { + ReasonPhrase = "Cipher Suit error."; + return; + } + + len = (data[pos] << 8) + data[pos + 1]; + pos += 2 + len; + + // Compression Methods + if (pos + 1 > dataLength) + { + ReasonPhrase = "Compression Method error."; + return; + } + + len = data[pos]; + pos += 1 + len; + + if (pos == dataLength && tls_version_major == 3 && tls_version_minor == 0) + { + ReasonPhrase = "Received SSL 3.0 handshake without extensions."; + return; + } + + // Extensions + if (pos + 2 > dataLength) + { + ReasonPhrase = "Extensions error."; + return; + } + + len = (data[pos] << 8) + data[pos + 1]; + pos += 2; + + if (pos + len > dataLength) + { + ReasonPhrase = "Wrong Data."; + return; + } + + // Extensions Length + int extensionsLength = Convert.ToInt32(data[pos - 1]); + + byte[] newData = new byte[extensionsLength]; + //byte[] newData = new byte[dataLength - pos]; + Buffer.BlockCopy(data, pos, newData, 0, newData.Length); + + ParseExtensions(newData, pos); + } + } + + private void ParseExtensions(byte[] data, int pos0) + { + if (data.Length <= 0) return; + //Debug.WriteLine(data.Length + " == " + dataLength); + + HaveTlsExtensions = true; + AllExtensions.Data = data; + AllExtensions.Length = data.Length; + AllExtensions.StartIndex = pos0; + + int pos = 0; + int len; + + // Parse each 4 bytes for the extension header (to avoid index out of range) + while (pos + 4 <= data.Length) + { + // extension header + len = 4; + // Extension Length - header + len += (data[pos + 2] << 8) + data[pos + 3]; + + //Debug.WriteLine($"{pos} L: {len} --- {dataLength}"); + + // Check if it's a server name extension + if (data[pos] == 0x00 && data[pos + 1] == 0x00) + { + byte[] extData = new byte[len]; + Buffer.BlockCopy(data, pos, extData, 0, extData.Length); + + ParseServerNameExtension(extData, pos0 + pos); + } + + // Advance to the next extension + pos += len; + } + + if (SniList.Any()) + { + HaveSni = true; + ReasonPhrase = "Successfully read SNI."; + } + else + { + HaveSni = false; + ReasonPhrase = "Wrong Data."; + SniList.Clear(); + } + } + + private void ParseServerNameExtension(byte[] data, int pos0) + { + if (data.Length <= 0) return; + + // Length of SNI Extension saved here. SNI Extension Length == SNI Length + 9 + //data[5] = 17; + + // Google SNI Extension + //byte[] google = new byte[23]; + //google[0] = 0; + //google[1] = 0; + //google[2] = 0; + //google[3] = 19; + //google[4] = 0; + //google[5] = 17; + //google[6] = 0; + //google[7] = 0; + //google[8] = 14; + //byte[] googleSNI = Encoding.UTF8.GetBytes("www.google.com"); + //Buffer.BlockCopy(googleSNI, 0, google, 9, googleSNI.Length); + + //data = google; + + HaveSniExtension = true; + SniExtension sniExtension = new(); + sniExtension.Data = data; + sniExtension.Length = data.Length; + sniExtension.StartIndex = pos0; + SniExtensionList.Add(sniExtension); + + int pos = 0; + + pos += 2; // skip server name list length + int len; + + while (pos + 3 < data.Length) + { + pos += 4; // skip extension header + len = (data[pos + 1] << 8) + data[pos + 2]; + + int newPos = pos + 3; + + if (newPos + len > data.Length) break; + + if (data[pos] == 0x00) + { + int outDataLength = data.Length - newPos; + if (outDataLength > 0) + { + byte[] outData = new byte[outDataLength]; + Buffer.BlockCopy(data, newPos, outData, 0, outDataLength); + + string serverName = Encoding.UTF8.GetString(outData); + Debug.WriteLine("Server Name: " + serverName + " Length: " + outDataLength + " = " + (Convert.ToInt32(data[5]) - 3)); + + SNI sni = new(); + sni.Data = outData; + sni.Length = outDataLength; + sni.ServerName = serverName; + sni.StartIndex = pos0 + newPos; + + // Add SNI to List + SniList.Add(sni); + } + } + else + { + Debug.WriteLine("SniReader: Unknown server name extension name type."); + } + + pos += 3 + len; + } + } + + } +} diff --git a/MsmhTools/MsmhTools/StringTool.cs b/MsmhTools/MsmhTools/StringTool.cs new file mode 100644 index 0000000..b07449e --- /dev/null +++ b/MsmhTools/MsmhTools/StringTool.cs @@ -0,0 +1,698 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace MsmhTools +{ + public static class StringTool + { + + public static bool StartsWith(this string s, char c) + { + return s.Length > 0 && s[0] == c; + } + + public static bool StartsWith(this StringBuilder sb, char c) + { + return sb.Length > 0 && sb[0] == c; + } + + public static bool EndsWith(this string s, char c) + { + return s.Length > 0 && s[^1] == c; + } + + public static bool EndsWith(this StringBuilder sb, char c) + { + return sb.Length > 0 && sb[^1] == c; + } + + public static bool Contains(this string source, char value) + { + return source.Contains(value); + } + + public static bool Contains(this string source, char[] value) + { + return source.IndexOfAny(value) >= 0; + } + + public static bool Contains(this string source, string value, StringComparison comparisonType) + { + return source.Contains(value, comparisonType); + } + + //============================================================================================ + private static char[] UnicodeControlChars { get; } = { '\u200E', '\u200F', '\u202A', '\u202B', '\u202C', '\u202D', '\u202E' }; + + private static char[] PersianChars { get; } = { '\u06CC' }; + //public static char[] PersianChars { get; } = { 'ی' }; + + public static bool ContainsUnicodeControlChars(this string s) + { + return s.Contains(UnicodeControlChars); + } + + public static bool ContainsPersianChars(this string s) + { + return s.IndexOfAny(PersianChars) >= 0; + } + //============================================================================================ + public static bool IsEmpty(this string text) + { + text = text.RemoveHtmlTags(); + if (string.IsNullOrWhiteSpace(text) || text == string.Empty) + return true; + + int countControlChar = 0; + for (int a = 0; a < text.ToCharArray().Length; a++) + { + char ch = text.ToCharArray()[a]; + if (char.IsControl(ch)) + countControlChar++; + } + + if (countControlChar == text.ToCharArray().Length) + return true; + + bool isMatch = Regex.IsMatch(text, @"^[\r\n\s\t\v]+$"); + if (isMatch) return true; + + bool ucc = Regex.IsMatch(text, @"^[\u200E\u200F\u202A\u202B\u202C\u202D\u202E']+$"); + if (ucc) return true; + + return false; + } + //============================================================================================ + public static string RemoveUnicodeControlChars(this string s) + { + int max = s.Length; + var newStr = new char[max]; + int newIdx = 0; + for (int index = 0; index < max; index++) + { + char ch = s[index]; + if (!UnicodeControlChars.Contains(ch)) + { + newStr[newIdx++] = ch; + } + } + + return new string(newStr, 0, newIdx); + } + //============================================================================================ + public static string RemoveControlChars(this string s) + { + int max = s.Length; + var newStr = new char[max]; + int newIdx = 0; + for (int index = 0; index < max; index++) + { + char ch = s[index]; + if (!char.IsControl(ch)) + { + newStr[newIdx++] = ch; + } + } + + return new string(newStr, 0, newIdx); + } + //============================================================================================ + public static string RemoveHtmlTags(this string text) + { + string? output = HTML.RemoveHtmlTags(text); + if (output != null) + return output; + else + return string.Empty; + } + //============================================================================================ + /// + /// Truncates the TextBox.Text property so it will fit in the TextBox. + /// + public static void Truncate(this TextBox textBox) + { + //Determine direction of truncation + bool direction = false; + if (textBox.TextAlign == HorizontalAlignment.Right) direction = true; + + //Get text + string truncatedText = textBox.Text; + + //Truncate text + truncatedText = truncatedText.Truncate(textBox.Font, textBox.Width, direction); + + //If text truncated + if (truncatedText != textBox.Text) + { + //Set textBox text + textBox.Text = truncatedText; + + //After setting the text, the cursor position changes. Here we set the location of the cursor manually. + //First we determine the position, the default value applies to direction = left. + + //This position is when the cursor needs to be behind the last char. (Example:"…My Text|"); + int position = 0; + + //If the truncation direction is to the right the position should be before the ellipsis + if (!direction) + { + //This position is when the cursor needs to be before the last char (which would be the ellipsis). (Example:"My Text|…"); + position = 1; + } + + //Set the cursor position + textBox.Select(textBox.Text.Length - position, 0); + } + } + + /// + /// Truncates the string to be smaller than the desired width. + /// + /// The font used to determine the size of the string. + /// The maximum size the string should be after truncating. + /// The direction of the truncation. True for left (…ext), False for right(Tex…). + static public string Truncate(this string text, Font font, int width, bool direction) + { + string truncatedText, returnText; + int charIndex = 0; + bool truncated = false; + //When the user is typing and the truncation happens in a TextChanged event, already typed text could get lost. + //Example: Imagine that the string "Hello Worl" would truncate if we add 'd'. Depending on the font the output + //could be: "Hello Wor…" (notice the 'l' is missing). This is an undesired effect. + //To prevent this from happening the ellipsis is included in the initial sizecheck. + //At this point, the direction is not important so we place ellipsis behind the text. + truncatedText = text + "…"; + + //Get the size of the string in pixels. + SizeF size = MeasureString(truncatedText, font); + + //Do while the string is bigger than the desired width. + while (size.Width > width) + { + //Go to next char + charIndex++; + //If the character index is larger than or equal to the length of the text, the truncation is unachievable. + if (charIndex >= text.Length) + { + //Truncation is unachievable! + truncated = true; + truncatedText = string.Empty; + //Throw exception so the user knows what's going on. + string msg = "The desired width of the string is too small to truncate to."; + Console.WriteLine(msg); + break; + //throw new IndexOutOfRangeException(msg); + } + else + { + //Truncation is still applicable! + //Raise the flag, indicating that text is truncated. + truncated = true; + //Check which way to text should be truncated to, then remove one char and add an ellipsis. + if (direction) + { + //Truncate to the left. Add ellipsis and remove from the left. + truncatedText = string.Concat("…", text.AsSpan(charIndex)); + } + else + { + //Truncate to the right. Remove from the right and add the ellipsis. + truncatedText = string.Concat(text.AsSpan(0, text.Length - charIndex), "…"); + } + + //Measure the string again. + size = MeasureString(truncatedText, font); + } + } + //If the text got truncated, change the return value to the truncated text. + if (truncated) returnText = truncatedText; + else returnText = text; + //Return the desired text. + return returnText; + } + + /// + /// Measures the size of this string object. + /// + /// The string that will be measured. + /// The font that will be used to measure to size of the string. + /// A SizeF object containing the height and size of the string. + private static SizeF MeasureString(string text, Font font) + { + //To measure the string we use the Graphics.MeasureString function, which is a method that can be called from a PaintEventArgs instance. + //To call the constructor of the PaintEventArgs class, we must pass a Graphics object. We'll use a PictureBox object to achieve this. + PictureBox pb = new(); + + //Create the PaintEventArgs with the correct parameters. + PaintEventArgs pea = new(pb.CreateGraphics(), new Rectangle()); + pea.Graphics.PageUnit = GraphicsUnit.Pixel; + pea.Graphics.PageScale = 1; + + //Call the MeasureString method. This methods calculates what the height and width of a string would be, given the specified font. + SizeF size = pea.Graphics.MeasureString(text, font); + + //Return the SizeF object. + return size; + } + //============================================================================================ + + public static bool LineStartsWithHtmlTag(this string text, bool threeLengthTag, bool includeFont = false) + { + if (text == null || !threeLengthTag && !includeFont) + { + return false; + } + + return StartsWithHtmlTag(text, threeLengthTag, includeFont); + } + + public static bool LineEndsWithHtmlTag(this string text, bool threeLengthTag, bool includeFont = false) + { + if (text == null) + { + return false; + } + + var len = text.Length; + if (len < 6 || text[len - 1] != '>') + { + return false; + } + + //
+ if (threeLengthTag && len > 3 && text[len - 4] == '<' && text[len - 3] == '/') + { + return true; + } + + if (includeFont && len > 8 && text[len - 7] == '<' && text[len - 6] == '/') + { + return true; + } + + return false; + } + + public static bool LineBreakStartsWithHtmlTag(this string text, bool threeLengthTag, bool includeFont = false) + { + if (text == null || (!threeLengthTag && !includeFont)) + { + return false; + } + + var newLineIdx = text.IndexOf(Environment.NewLine, StringComparison.Ordinal); + if (newLineIdx < 0 || text.Length < newLineIdx + 5) + { + return false; + } + + text = text[(newLineIdx + 2)..]; + return StartsWithHtmlTag(text, threeLengthTag, includeFont); + } + + private static bool StartsWithHtmlTag(string text, bool threeLengthTag, bool includeFont) + { + if (threeLengthTag && text.Length >= 3 && text[0] == '<' && text[2] == '>' && (text[1] == 'i' || text[1] == 'I' || text[1] == 'u' || text[1] == 'U' || text[1] == 'b' || text[1] == 'B')) + { + return true; + } + + if (includeFont && text.Length > 5 && text.StartsWith("', 5) >= 5; // or + } + + return false; + } + + public static int CountWords(this string source) + { + return HTML.RemoveHtmlTags(source).Split(new[] { ' ', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).Length; + } + + // http://www.codeproject.com/Articles/43726/Optimizing-string-operations-in-C + public static int FastIndexOf(this string source, string pattern) + { + if (string.IsNullOrEmpty(pattern)) + { + return -1; + } + + char c0 = pattern[0]; + if (pattern.Length == 1) + { + return source.IndexOf(c0); + } + + int limit = source.Length - pattern.Length + 1; + if (limit < 1) + { + return -1; + } + + char c1 = pattern[1]; + + // Find the first occurrence of the first character + int first = source.IndexOf(c0, 0, limit); + while (first != -1) + { + // Check if the following character is the same like + // the 2nd character of "pattern" + if (source[first + 1] != c1) + { + first = source.IndexOf(c0, ++first, limit - first); + continue; + } + + // Check the rest of "pattern" (starting with the 3rd character) + var found = true; + for (int j = 2; j < pattern.Length; j++) + { + if (source[first + j] != pattern[j]) + { + found = false; + break; + } + } + + // If the whole word was found, return its index, otherwise try again + if (found) + { + return first; + } + + first = source.IndexOf(c0, ++first, limit - first); + } + + return -1; + } + + public static int IndexOfAny(this string s, string[] words, StringComparison comparisonType) + { + if (words == null || string.IsNullOrEmpty(s)) + { + return -1; + } + + for (int i = 0; i < words.Length; i++) + { + var idx = s.IndexOf(words[i], comparisonType); + if (idx >= 0) + { + return idx; + } + } + + return -1; + } + + public static string FixExtraSpaces(this string s) + { + if (string.IsNullOrEmpty(s)) + { + return s; + } + + const char whiteSpace = ' '; + int k = -1; + for (int i = s.Length - 1; i >= 0; i--) + { + char ch = s[i]; + if (k < 2) + { + if (ch == whiteSpace) + { + k = i + 1; + } + } + else if (ch != whiteSpace) + { + // only keep white space if it doesn't succeed/precede CRLF + int skipCount = (ch == '\n' || ch == '\r') || (k < s.Length && (s[k] == '\n' || s[k] == '\r')) ? 1 : 2; + + // extra space found + if (k - (i + skipCount) >= 1) + { + s = s.Remove(i + 1, k - (i + skipCount)); + } + + // Reset remove length. + k = -1; + } + } + + return s; + } + + public static bool ContainsLetter(this string s) + { + if (s != null) + { + foreach (var index in StringInfo.ParseCombiningCharacters(s)) + { + var uc = CharUnicodeInfo.GetUnicodeCategory(s, index); + if (uc == UnicodeCategory.LowercaseLetter || uc == UnicodeCategory.UppercaseLetter || uc == UnicodeCategory.TitlecaseLetter || uc == UnicodeCategory.ModifierLetter || uc == UnicodeCategory.OtherLetter) + { + return true; + } + } + } + + return false; + } + + public static bool ContainsNumber(this string s) + { + if (s == null) + { + return false; + } + + int max = s.Length; + for (int index = 0; index < max; index++) + { + var ch = s[index]; + if (char.IsNumber(ch)) + { + return true; + } + } + + return false; + } + + public static bool IsOnlyControlCharsOrWhiteSpace(this string s) + { + if (string.IsNullOrEmpty(s)) + { + return true; + } + + int max = s.Length; + for (int index = 0; index < max; index++) + { + char ch = s[index]; + if (!char.IsControl(ch) && !char.IsWhiteSpace(ch) && !UnicodeControlChars.Contains(ch)) + { + return false; + } + } + + return true; + } + + + public static string RemoveControlCharsButWhiteSpace(this string s) + { + int max = s.Length; + var newStr = new char[max]; + int newIdx = 0; + for (int index = 0; index < max; index++) + { + var ch = s[index]; + if (!char.IsControl(ch) || ch == '\u000d' || ch == '\u000a' || ch == '\u0009') + { + newStr[newIdx++] = ch; + } + } + + return new string(newStr, 0, newIdx); + } + + public static string CapitalizeFirstLetter(this string s, CultureInfo? ci = null) + { + var si = new StringInfo(s); + if (ci == null) + { + ci = CultureInfo.CurrentCulture; + } + + if (si.LengthInTextElements > 0) + { + s = si.SubstringByTextElements(0, 1).ToUpper(ci); + } + + if (si.LengthInTextElements > 1) + { + s += si.SubstringByTextElements(1); + } + + return s; + } + + public static string RemoveChar(this string value, char charToRemove) + { + char[] array = new char[value.Length]; + int arrayIndex = 0; + for (int i = 0; i < value.Length; i++) + { + char ch = value[i]; + if (ch != charToRemove) + { + array[arrayIndex++] = ch; + } + } + + return new string(array, 0, arrayIndex); + } + + public static string RemoveChar(this string value, char charToRemove, char charToRemove2) + { + char[] array = new char[value.Length]; + int arrayIndex = 0; + for (int i = 0; i < value.Length; i++) + { + char ch = value[i]; + if (ch != charToRemove && ch != charToRemove2) + { + array[arrayIndex++] = ch; + } + } + + return new string(array, 0, arrayIndex); + } + + public static string RemoveChar(this string value, params char[] charsToRemove) + { + var h = new HashSet(charsToRemove); + char[] array = new char[value.Length]; + int arrayIndex = 0; + for (int i = 0; i < value.Length; i++) + { + char ch = value[i]; + if (!h.Contains(ch)) + { + array[arrayIndex++] = ch; + } + } + + return new string(array, 0, arrayIndex); + } + + /// + /// Count characters excl. white spaces, ssa-tags, html-tags, control-characters, normal spaces and + /// Arabic diacritics depending on parameter. + /// + public static int CountCharacters(this string value, bool removeNormalSpace, bool ignoreArabicDiacritics) + { + int length = 0; + const char zeroWidthSpace = '\u200B'; + const char zeroWidthNoBreakSpace = '\uFEFF'; + char normalSpace = removeNormalSpace ? ' ' : zeroWidthSpace; + bool ssaTagOn = false; + bool htmlTagOn = false; + var max = value.Length; + for (int i = 0; i < max; i++) + { + char ch = value[i]; + if (ssaTagOn) + { + if (ch == '}') + { + ssaTagOn = false; + } + } + else if (htmlTagOn) + { + if (ch == '>') + { + htmlTagOn = false; + } + } + else if (ch == '{' && i < value.Length - 1 && value[i + 1] == '\\') + { + ssaTagOn = true; + } + else if (ch == '<' && i < value.Length - 1 && (value[i + 1] == '/' || char.IsLetter(value[i + 1])) && + value.IndexOf('>', i) > 0 && IsKnownHtmlTag(value, i)) + { + htmlTagOn = true; + } + else if (!char.IsControl(ch) && + ch != zeroWidthSpace && + ch != zeroWidthNoBreakSpace && + ch != normalSpace && + ch != '\u200E' && + ch != '\u200F' && + ch != '\u202A' && + ch != '\u202B' && + ch != '\u202C' && + ch != '\u202D' && + ch != '\u202E' && + !(ignoreArabicDiacritics && ch >= '\u064B' && ch <= '\u0653')) + { + length++; + } + } + + return length; + } + + private static bool IsKnownHtmlTag(string input, int idx) + { + var s = input.Remove(0, idx + 1).ToLowerInvariant(); + return s.StartsWith('/') || + s.StartsWith("i>", StringComparison.Ordinal) || + s.StartsWith("b>", StringComparison.Ordinal) || + s.StartsWith("u>", StringComparison.Ordinal) || + s.StartsWith("font ", StringComparison.Ordinal) || + s.StartsWith("ruby", StringComparison.Ordinal) || + s.StartsWith("span>", StringComparison.Ordinal) || + s.StartsWith("p>", StringComparison.Ordinal) || + s.StartsWith("br>", StringComparison.Ordinal) || + s.StartsWith("div>", StringComparison.Ordinal) || + s.StartsWith("div ", StringComparison.Ordinal); + } + + public static bool HasSentenceEnding(this string value) + { + return value.HasSentenceEnding(string.Empty); + } + + public static bool HasSentenceEnding(this string value, string twoLetterLanguageCode) + { + if (string.IsNullOrEmpty(value)) + { + return false; + } + + string s = HTML.RemoveHtmlTags(value).TrimEnd('"').TrimEnd('”'); + if (s == string.Empty) + { + return false; + } + + var last = s[^1]; + return last == '.' || last == '!' || last == '?' || last == ']' || last == ')' || last == '…' || last == '♪' || last == '؟' || + twoLetterLanguageCode == "el" && last == ';' || twoLetterLanguageCode == "el" && last == '\u037E' || + last == '-' && s.Length > 3 && s.EndsWith("--", StringComparison.Ordinal) && char.IsLetter(s[^3]) || + last == '—' && s.Length > 2 && char.IsLetter(s[^2]); + } + + } +} diff --git a/MsmhTools/MsmhTools/Texts.cs b/MsmhTools/MsmhTools/Texts.cs new file mode 100644 index 0000000..c81fe91 --- /dev/null +++ b/MsmhTools/MsmhTools/Texts.cs @@ -0,0 +1,34 @@ +using System; +using System.Text; +using System.Security.Cryptography; +using Force.Crc32; +using System.Text.RegularExpressions; + +namespace MsmhTools +{ + public class Texts + { + //----------------------------------------------------------------------------------- + public static string? GetTextByLineNumber(string text, int lineNo) + { + string[] lines = text.Replace("\r", "").Split('\n'); + return lines.Length >= lineNo ? lines[lineNo - 1] : null; + } + //----------------------------------------------------------------------------------- + public static bool IsValidRegex(string pattern) + { + if (string.IsNullOrWhiteSpace(pattern)) return false; + + try + { + Regex.Match("", pattern); + } + catch (ArgumentException) + { + return false; + } + + return true; + } + } +} diff --git a/MsmhTools/MsmhTools/Themes.cs b/MsmhTools/MsmhTools/Themes.cs new file mode 100644 index 0000000..8788bb1 --- /dev/null +++ b/MsmhTools/MsmhTools/Themes.cs @@ -0,0 +1,292 @@ +using System; +using CustomControls; +using MsmhTools; + +namespace MsmhTools.Themes +{ + public static class Theme + { + // DodgerBlue: HEX value: #1E90FF RGB value: 30,144,255 + // IndianRed: HEX value: #CD5C5C RGB value: 205,92,92 + //======================================================================================= + public struct Themes + { + public const string Light = "Light"; + public const string Dark = "Dark"; + } + //======================================================================================= + public static void LoadTheme(Form form, string theme) + { + if (theme.Equals(Themes.Light)) + { + // Load Light Theme + Colors.InitializeLight(); + foreach (Control c in Controllers.GetAllControls(form)) + { + SetColors(c); + } + SetColorsByType(form); + } + else if (theme.Equals(Themes.Dark)) + { + // Load Dark Theme + Colors.InitializeDark(); + form.SetDarkTitleBar(true); // Make TitleBar Black + foreach (Control c in Controllers.GetAllControls(form)) + { + SetColors(c); + } + SetColorsByType(form); + } + + // Set Static CustomMessageBox Parent + CustomMessageBox.SetParent = form; + } + //======================================================================================= + private static void SetColorsByType(Form form) + { + // Find ContextMenu Controls + foreach (var ccms in Controllers.GetAllControlsByType(form)) + { + ccms.BackColor = Colors.BackColor; + ccms.ForeColor = Colors.ForeColor; + ccms.BorderColor = Colors.Border; + ccms.SelectionColor = Colors.Selection; + } + // Find LinkLabel + foreach (var ll in Controllers.GetAllControlsByType(form)) + { + ll.BackColor = Colors.BackColor; + ll.ForeColor = Colors.ForeColor; + ll.LinkColor = Colors.Link; + ll.ActiveLinkColor = Colors.LinkActive; + ll.VisitedLinkColor = Colors.LinkVisited; + } + // Find ToolStrip Controls + foreach (var ctscb in Controllers.GetAllControlsByType(form)) + { + ctscb.BackColor = Colors.BackColor; + ctscb.ForeColor = Colors.ForeColor; + ctscb.BorderColor = Colors.Border; + ctscb.SelectionColor = Colors.Selection; + } + } + //======================================================================================= + public static void SetColors(Control c) + { + if (c is TabPage) return; + + c.BackColor = Colors.BackColor; + c.ForeColor = Colors.ForeColor; + if (c is CustomButton customButton) + { + customButton.BorderColor = Colors.Border; + customButton.SelectionColor = Colors.SelectionRectangle; + } + else if (c is CustomCheckBox customCheckBox) + { + customCheckBox.BorderColor = Colors.Border; + customCheckBox.CheckColor = Colors.Tick; + customCheckBox.SelectionColor = Colors.SelectionRectangle; + } + else if (c is CustomComboBox customComboBox) + { + customComboBox.BorderColor = Colors.Border; + customComboBox.SelectionColor = Colors.Selection; + } + else if (c is CustomContextMenuStrip customContextMenuStrip) + { + customContextMenuStrip.BorderColor = Colors.Border; + customContextMenuStrip.SelectionColor = Colors.Selection; + } + else if (c is CustomDataGridView customDataGridView) + { + customDataGridView.BorderColor = Colors.Border; + customDataGridView.SelectionColor = Colors.Selection; + customDataGridView.GridColor = Colors.GridLines; + customDataGridView.CheckColor = Colors.Tick; + } + else if (c is CustomGroupBox customGroupBox) + { + customGroupBox.BorderColor = Colors.Border; + } + else if (c is CustomLabel customLabel) + { + customLabel.BorderColor = Colors.Border; + customLabel.BackColor = Colors.BackColor; + customLabel.ForeColor = Colors.ForeColor; + } + else if (c is CustomMenuStrip customMenuStrip) + { + customMenuStrip.BorderColor = Colors.Border; + customMenuStrip.SelectionColor = Colors.Selection; + } + else if (c is CustomNumericUpDown customNumericUpDown) + { + customNumericUpDown.BorderColor = Colors.Border; + } + else if (c is CustomPanel customPanel) + { + customPanel.BorderColor = Colors.Border; + } + else if (c is CustomProgressBar customProgressBar) + { + customProgressBar.BorderColor = Colors.Border; + customProgressBar.ChunksColor = Colors.Chunks; + } + else if (c is CustomRadioButton customRadioButton) + { + customRadioButton.BorderColor = Colors.Border; + customRadioButton.CheckColor = Colors.Tick; + customRadioButton.SelectionColor = Colors.SelectionRectangle; + } + else if (c is CustomRichTextBox customRichTextBox) + { + customRichTextBox.BorderColor = Colors.Border; + } + else if (c is CustomStatusStrip customStatusStrip) + { + customStatusStrip.BorderColor = Colors.Border; + customStatusStrip.SelectionColor = Colors.Selection; + } + else if (c is CustomTabControl customTabControl) + { + customTabControl.BackColor = Colors.BackColor; + customTabControl.ForeColor = Colors.ForeColor; + customTabControl.BorderColor = Colors.Border; + } + else if (c is CustomTextBox customTextBox) + { + customTextBox.BorderColor = Colors.Border; + } + else if (c is CustomTimeUpDown customTimeUpDown) + { + customTimeUpDown.BorderColor = Colors.Border; + } + else if (c is CustomToolStrip customToolStrip) + { + customToolStrip.BorderColor = Colors.Border; + customToolStrip.SelectionColor = Colors.Selection; + foreach (ToolStripItem item in customToolStrip.Items) + { + var items = Controllers.GetAllToolStripItems(item); + foreach (ToolStripItem? toolItem in items) + if (toolItem is ToolStripSeparator tss) + { + tss.ForeColor = Colors.Border; + } + } + } + else if (c is CustomVScrollBar customVScrollBar) + { + customVScrollBar.BorderColor = Colors.Border; + } + else if (c is Label label) + { + label.BackColor = Colors.BackColor; + label.ForeColor = Colors.ForeColor; + } + else if (c is LinkLabel linkLabel) + { + linkLabel.LinkColor = Colors.Link; + linkLabel.ActiveLinkColor = Colors.LinkActive; + linkLabel.VisitedLinkColor = Colors.LinkVisited; + } + } + //======================================================================================= + private sealed class Colors + { + internal static Color BackColor { get; set; } + internal static Color BackColorDisabled { get; set; } + internal static Color BackColorDarker { get; set; } + internal static Color BackColorDarkerDisabled { get; set; } + internal static Color BackColorMouseHover { get; set; } + internal static Color BackColorMouseDown { get; set; } + internal static Color ForeColor { get; set; } + internal static Color ForeColorDisabled { get; set; } + internal static Color Border { get; set; } + internal static Color BorderDisabled { get; set; } + internal static Color Chunks { get; set; } + internal static Color GridLines { get; set; } + internal static Color GridLinesDisabled { get; set; } + internal static Color Link { get; set; } + internal static Color LinkActive { get; set; } + internal static Color LinkVisited { get; set; } + internal static Color Selection { get; set; } + internal static Color SelectionRectangle { get; set; } + internal static Color SelectionUnfocused { get; set; } + internal static Color Tick { get; set; } + internal static Color TickDisabled { get; set; } + internal static Color TitleBarBackColor { get; set; } + internal static Color TitleBarForeColor { get; set; } + internal static void InitializeLight() + { + BackColor = SystemColors.Control; + BackColorDisabled = BackColor.ChangeBrightness(-0.3f); + BackColorDarker = BackColor.ChangeBrightness(-0.3f); + BackColorDarkerDisabled = BackColorDarker.ChangeBrightness(-0.3f); + BackColorMouseHover = BackColor.ChangeBrightness(-0.1f); + BackColorMouseDown = BackColorMouseHover.ChangeBrightness(-0.1f); + ForeColor = Color.Black; + ForeColorDisabled = ForeColor.ChangeBrightness(0.3f); + Border = Color.DodgerBlue; + BorderDisabled = Border.ChangeBrightness(0.3f); + Chunks = Color.DodgerBlue; + GridLines = ForeColor.ChangeBrightness(0.5f); + GridLinesDisabled = GridLines.ChangeBrightness(0.3f); + Link = ForeColor; + LinkActive = Color.IndianRed; + LinkVisited = Link; + Selection = Color.FromArgb(104, 151, 187); + SelectionRectangle = Selection; + SelectionUnfocused = Selection.ChangeBrightness(0.3f); + Tick = Border; + TickDisabled = Tick.ChangeBrightness(0.3f); + TitleBarBackColor = Color.LightBlue; + TitleBarForeColor = Color.Black; + CC(); + } + internal static void InitializeDark() + { + BackColor = Color.DarkGray.ChangeBrightness(-0.8f); + BackColorDisabled = BackColor.ChangeBrightness(0.3f); + BackColorDarker = BackColor.ChangeBrightness(-0.3f); + BackColorDarkerDisabled = BackColorDarker.ChangeBrightness(0.3f); + BackColorMouseHover = BackColor.ChangeBrightness(0.1f); + BackColorMouseDown = BackColorMouseHover.ChangeBrightness(0.1f); + ForeColor = Color.LightGray; + ForeColorDisabled = ForeColor.ChangeBrightness(-0.3f); + Border = Color.DodgerBlue; + BorderDisabled = Border.ChangeBrightness(-0.3f); + Chunks = Color.DodgerBlue; + GridLines = ForeColor.ChangeBrightness(-0.5f); + GridLinesDisabled = GridLines.ChangeBrightness(-0.3f); + Link = ForeColor; + LinkActive = Color.IndianRed; + LinkVisited = Link; + Selection = Color.Black; + SelectionRectangle = Selection; + SelectionUnfocused = Selection.ChangeBrightness(0.3f); + Tick = Border; + TickDisabled = Tick.ChangeBrightness(-0.3f); + TitleBarBackColor = Color.DarkBlue; + TitleBarForeColor = Color.White; + CC(); + } + + private static void CC() + { + // MessageBox + //CustomMessageBox + CustomMessageBox.BackColor = BackColor; + CustomMessageBox.ForeColor = ForeColor; + CustomMessageBox.BorderColor = Border; + + // InputBox + CustomInputBox.BackColor = BackColor; + CustomInputBox.ForeColor = ForeColor; + CustomInputBox.BorderColor = Border; + } + } + } +} diff --git a/MsmhTools/MsmhTools/TimeConvert.cs b/MsmhTools/MsmhTools/TimeConvert.cs new file mode 100644 index 0000000..d87506a --- /dev/null +++ b/MsmhTools/MsmhTools/TimeConvert.cs @@ -0,0 +1,390 @@ +using System; +using System.Globalization; + +namespace MsmhTools +{ + public class TimeConvert + { + private static readonly char[] TimeSplitChars = { ':', ',', '.' }; + private const double BaseUnit = 1000.0; // Base unit of time + + public bool IsMaxTime => Math.Abs(TotalMilliseconds - MaxTimeTotalMilliseconds) < 0.01; + public const double MaxTimeTotalMilliseconds = 359999999; // new TimeConvert(99, 59, 59, 999).TotalMilliseconds + + public static double CurrentFrameRate { get; set; } = FrameRate.f23976; + public static string CurrentTimeFormat { get; set; } = TimeFormat.HHMMSSMS; + + public static TimeConvert FromSeconds(double seconds) + { + return new TimeConvert(seconds * BaseUnit); + } + + public static TimeConvert FromMilliseconds(double milliseconds) + { + return new TimeConvert(milliseconds); + } + + public static double ParseToMilliseconds(string text) + { + var parts = text.Split(TimeSplitChars, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length == 4) + { + if (int.TryParse(parts[0], out var hours) && int.TryParse(parts[1], out var minutes) && int.TryParse(parts[2], out var seconds) && int.TryParse(parts[3], out var milliseconds)) + { + return new TimeSpan(0, hours, minutes, seconds, milliseconds).TotalMilliseconds; + } + } + return 0; + } + + public static double ParseHHMMSSFFToMilliseconds(string text) + { + var parts = text.Split(TimeSplitChars, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length == 4) + { + if (int.TryParse(parts[0], out var hours) && int.TryParse(parts[1], out var minutes) && int.TryParse(parts[2], out var seconds) && int.TryParse(parts[3], out var frames)) + { + return new TimeConvert(hours, minutes, seconds, FramesToMillisecondsMax999(frames)).TotalMilliseconds; + } + } + return 0; + } + + public static double ParseHHMMSSToMilliseconds(string text) + { + var parts = text.Split(TimeSplitChars, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length == 3) + { + if (int.TryParse(parts[0], out var hours) && int.TryParse(parts[1], out var minutes) && int.TryParse(parts[2], out var seconds)) + { + return new TimeConvert(hours, minutes, seconds, 0).TotalMilliseconds; + } + } + return 0; + } + + public TimeConvert() + { + } + + public TimeConvert(TimeSpan timeSpan) + { + TotalMilliseconds = timeSpan.TotalMilliseconds; + } + + public TimeConvert(double totalMilliseconds) + { + TotalMilliseconds = totalMilliseconds; + } + + public TimeConvert(int hours, int minutes, int seconds, int milliseconds) + { + TotalMilliseconds = hours * 60 * 60 * BaseUnit + minutes * 60 * BaseUnit + seconds * BaseUnit + milliseconds; + } + + public int Hours + { + get + { + var ts = TimeSpan; + return ts.Hours + ts.Days * 24; + } + set + { + var ts = TimeSpan; + TotalMilliseconds = new TimeSpan(ts.Days, value, ts.Minutes, ts.Seconds, ts.Milliseconds).TotalMilliseconds; + } + } + + public int Minutes + { + get => TimeSpan.Minutes; + set + { + var ts = TimeSpan; + TotalMilliseconds = new TimeSpan(ts.Days, ts.Hours, value, ts.Seconds, ts.Milliseconds).TotalMilliseconds; + } + } + + public int Seconds + { + get => TimeSpan.Seconds; + set + { + var ts = TimeSpan; + TotalMilliseconds = new TimeSpan(ts.Days, ts.Hours, ts.Minutes, value, ts.Milliseconds).TotalMilliseconds; + } + } + + public int Milliseconds + { + get => TimeSpan.Milliseconds; + set + { + var ts = TimeSpan; + TotalMilliseconds = new TimeSpan(ts.Days, ts.Hours, ts.Minutes, ts.Seconds, value).TotalMilliseconds; + } + } + + public double TotalMilliseconds { get; set; } + + public double TotalSeconds + { + get => TotalMilliseconds / BaseUnit; + set => TotalMilliseconds = value * BaseUnit; + } + + public TimeSpan TimeSpan + { + get + { + if (TotalMilliseconds > MaxTimeTotalMilliseconds || TotalMilliseconds < -MaxTimeTotalMilliseconds) + { + return new TimeSpan(); + } + + return TimeSpan.FromMilliseconds(TotalMilliseconds); + } + set => TotalMilliseconds = value.TotalMilliseconds; + } + + public override string ToString() => ToString(false); + + public string ToString(bool localize) + { + var ts = TimeSpan; + string decimalSeparator = localize ? CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator : ","; + string s = $"{ts.Hours + ts.Days * 24:00}:{ts.Minutes:00}:{ts.Seconds:00}{decimalSeparator}{ts.Milliseconds:000}"; + + return PrefixSign(s); + } + + public string ToShortString(bool localize = false) + { + var ts = TimeSpan; + string decimalSeparator = localize ? CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator : ","; + string s; + if (ts.Minutes == 0 && ts.Hours == 0 && ts.Days == 0) + { + s = $"{ts.Seconds:0}{decimalSeparator}{ts.Milliseconds:000}"; + } + else if (ts.Hours == 0 && ts.Days == 0) + { + s = $"{ts.Minutes:0}:{ts.Seconds:00}{decimalSeparator}{ts.Milliseconds:000}"; + } + else + { + s = $"{ts.Hours + ts.Days * 24:0}:{ts.Minutes:00}:{ts.Seconds:00}{decimalSeparator}{ts.Milliseconds:000}"; + } + return PrefixSign(s); + } + + public string ToShortStringHHMMSSFF() + { + string s = ToHHMMSSFF(); + string pre = string.Empty; + if (s.StartsWith('-')) + { + pre = "-"; + s = s.TrimStart('-'); + } + int j = 0; + int len = s.Length; + while (j + 6 < len && s[j] == '0' && s[j + 1] == '0' && s[j + 2] == ':') + { + j += 3; + } + s = j > 0 ? s.Substring(j) : s; + return pre + s; + } + + public string ToHHMMSSFF() + { + string s; + var ts = TimeSpan; + var frames = Math.Round(ts.Milliseconds / (BaseUnit / CurrentFrameRate)); + if (frames >= CurrentFrameRate - 0.001) + { + var newTs = new TimeSpan(ts.Ticks); + newTs = newTs.Add(new TimeSpan(0, 0, 1)); + s = $"{newTs.Days * 24 + newTs.Hours:00}:{newTs.Minutes:00}:{newTs.Seconds:00}:{0:00}"; + } + else + { + s = $"{ts.Days * 24 + ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}:{MillisecondsToFramesMaxFrameRate(ts.Milliseconds):00}"; + } + return PrefixSign(s); + } + + public string ToHHMMSS() + { + string s; + var ts = TimeSpan; + var frames = Math.Round(ts.Milliseconds / (BaseUnit / CurrentFrameRate)); + if (frames >= CurrentFrameRate - 0.001) + { + var newTs = new TimeSpan(ts.Ticks); + newTs = newTs.Add(new TimeSpan(0, 0, 1)); + s = $"{newTs.Days * 24 + newTs.Hours:00}:{newTs.Minutes:00}:{newTs.Seconds:00}"; + } + else + { + s = $"{ts.Days * 24 + ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}"; + } + return PrefixSign(s); + } + + public string ToHHMMSSFFDropFrame() + { + string s; + var ts = TimeSpan; + var frames = Math.Round(ts.Milliseconds / (BaseUnit / CurrentFrameRate)); + if (frames >= CurrentFrameRate - 0.001) + { + var newTs = new TimeSpan(ts.Ticks); + newTs = newTs.Add(new TimeSpan(0, 0, 1)); + s = $"{newTs.Days * 24 + newTs.Hours:00}:{newTs.Minutes:00}:{newTs.Seconds:00};{0:00}"; + } + else + { + s = $"{ts.Days * 24 + ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00};{MillisecondsToFramesMaxFrameRate(ts.Milliseconds):00}"; + } + return PrefixSign(s); + } + + public string ToSSFF() + { + string s; + var ts = TimeSpan; + var frames = Math.Round(ts.Milliseconds / (BaseUnit / CurrentFrameRate)); + if (frames >= CurrentFrameRate - 0.001) + { + s = $"{ts.Seconds + 1:00}:{0:00}"; + } + else + { + s = $"{ts.Seconds:00}:{MillisecondsToFramesMaxFrameRate(ts.Milliseconds):00}"; + } + return PrefixSign(s); + } + + public string ToHHMMSSPeriodFF() + { + string s; + var ts = TimeSpan; + var frames = Math.Round(ts.Milliseconds / (BaseUnit / CurrentFrameRate)); + if (frames >= CurrentFrameRate - 0.001) + { + var newTs = new TimeSpan(ts.Ticks); + newTs = newTs.Add(new TimeSpan(0, 0, 1)); + s = $"{newTs.Days * 24 + newTs.Hours:00}:{newTs.Minutes:00}:{newTs.Seconds:00}.{0:00}"; + } + else + { + s = $"{ts.Days * 24 + ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{MillisecondsToFramesMaxFrameRate(ts.Milliseconds):00}"; + } + + return PrefixSign(s); + } + + private string PrefixSign(string time) => TotalMilliseconds >= 0 ? time : $"-{time.RemoveChar('-')}"; + + public string ToDisplayString() + { + if (IsMaxTime) + { + return "-"; + } + + if (CurrentTimeFormat == TimeFormat.HHMMSSFF) + { + return ToHHMMSSFF(); + } + + return ToString(true); + } + + public string ToShortDisplayString() + { + if (IsMaxTime) + { + return "-"; + } + + if (CurrentTimeFormat == TimeFormat.HHMMSSFF) + { + return ToShortStringHHMMSSFF(); + } + + return ToShortString(true); + } + + //======================================================================================= + public static int FramesToMillisecondsMax999(double frames) + { + int ms = (int)Math.Round(frames * (BaseUnit / GetFrameForCalculation(CurrentFrameRate))); + return Math.Min(ms, 999); + } + + public static int FramesToMilliseconds(double frames) + { + return (int)Math.Round(frames * (BaseUnit / GetFrameForCalculation(CurrentFrameRate))); + + } + + public static int MillisecondsToFrames(double milliseconds) + { + return MillisecondsToFrames(milliseconds, CurrentFrameRate); + } + + public static int MillisecondsToFrames(double milliseconds, double frameRate) + { + return (int)Math.Round(milliseconds / (BaseUnit / GetFrameForCalculation(frameRate)), MidpointRounding.AwayFromZero); + } + + private static double GetFrameForCalculation(double frameRate) + { + if (Math.Abs(frameRate - 23.976) < 0.01) + { + return 24000.0 / 1001.0; + } + if (Math.Abs(frameRate - 29.97) < 0.01) + { + return 30000.0 / 1001.0; + } + if (Math.Abs(frameRate - 59.94) < 0.01) + { + return 60000.0 / 1001.0; + } + + return frameRate; + } + + private static int MillisecondsToFramesMaxFrameRate(double milliseconds) + { + int frames = (int)Math.Round(milliseconds / (BaseUnit / GetFrameForCalculation(CurrentFrameRate)), MidpointRounding.AwayFromZero); + if (frames >= CurrentFrameRate) + { + frames = (int)(CurrentFrameRate - 0.01); + } + + return frames; + } + + public struct FrameRate + { + public const double f23976 = 23.976; + public const double f24 = 24; + public const double f25 = 25; + public const double f2997 = 29.97; + public const double f30 = 30; + } + + public struct TimeFormat + { + public const string HHMMSSMS = "HHMMSSMS"; + public const string HHMMSSFF = "HHMMSSFF"; + } + + } +} diff --git a/MsmhTools/MsmhTools/Win32/ControlScrollFilter.cs b/MsmhTools/MsmhTools/Win32/ControlScrollFilter.cs new file mode 100644 index 0000000..1ea3e20 --- /dev/null +++ b/MsmhTools/MsmhTools/Win32/ControlScrollFilter.cs @@ -0,0 +1,26 @@ +using System.Drawing; +using System.Windows.Forms; + +namespace MsmhTools.Win32 +{ + public class ControlScrollFilter : IMessageFilter + { + public bool PreFilterMessage(ref Message m) + { + switch (m.Msg) + { + case (int)WindowsMessages.MOUSEWHEEL: + case (int)WindowsMessages.MOUSEHWHEEL: + var hControlUnderMouse = NativeMethods.WindowFromPoint(new Point((int)m.LParam)); + + if (hControlUnderMouse == m.HWnd) + return false; + + NativeMethods.SendMessage(hControlUnderMouse, m.Msg, m.WParam, m.LParam); + return true; + } + + return false; + } + } +} diff --git a/MsmhTools/MsmhTools/Win32/NativeMethods.cs b/MsmhTools/MsmhTools/Win32/NativeMethods.cs new file mode 100644 index 0000000..107204e --- /dev/null +++ b/MsmhTools/MsmhTools/Win32/NativeMethods.cs @@ -0,0 +1,296 @@ +//using Nikse.SubtitleEdit.Core.Common; +using System; +using System.Runtime.InteropServices; + +namespace MsmhTools +{ + internal static class NativeMethods + { + + #region Hunspell + + [DllImport("libhunspell", SetLastError = true, CharSet = CharSet.Ansi, BestFitMapping = false)] + internal static extern IntPtr Hunspell_create(string affpath, string dpath); + + [DllImport("libhunspell")] + internal static extern IntPtr Hunspell_destroy(IntPtr hunspellHandle); + + [DllImport("libhunspell", SetLastError = true, CharSet = CharSet.Ansi, BestFitMapping = false)] + internal static extern int Hunspell_spell(IntPtr hunspellHandle, string word); + + [DllImport("libhunspell", SetLastError = true, CharSet = CharSet.Ansi, BestFitMapping = false)] + internal static extern int Hunspell_suggest(IntPtr hunspellHandle, IntPtr slst, string word); + + [DllImport("libhunspell")] + internal static extern void Hunspell_free_list(IntPtr hunspellHandle, IntPtr slst, int n); + + #endregion Hunspell + + #region Win32 API + + // Win32 API functions for dynamically loading DLLs + [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi, BestFitMapping = false)] + internal static extern IntPtr LoadLibrary(string dllToLoad); + + [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi, BestFitMapping = false)] + internal static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName); + + [DllImport("kernel32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool FreeLibrary(IntPtr hModule); + + [DllImport("kernel32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool AttachConsole(int dwProcessId); + internal const int ATTACH_PARENT_PROCESS = -1; + + [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)] + [return: MarshalAs(UnmanagedType.Bool)] + internal static extern bool FreeConsole(); + + [DllImport("user32.dll")] + internal static extern short GetKeyState(int vKey); + + [DllImport("user32.dll")] + public static extern int GetWindowLong(IntPtr hWnd, int Index); + + [DllImport("user32.dll")] + public static extern int SetWindowLong(IntPtr hWnd, int nIndex, uint dwNewLong); + + + [StructLayout(LayoutKind.Sequential)] + public struct COMBOBOXINFO + { + public int cbSize; + public RECT rcItem; + public RECT rcButton; + public ComboBoxButtonState buttonState; + public IntPtr hwndCombo; + public IntPtr hwndEdit; + public IntPtr hwndList; + } + public enum ComboBoxButtonState + { + STATE_SYSTEM_NONE = 0, + STATE_SYSTEM_INVISIBLE = 0x00008000, + STATE_SYSTEM_PRESSED = 0x00000008 + } + [DllImport("user32.dll")] + public static extern bool GetComboBoxInfo(IntPtr hWnd, ref COMBOBOXINFO pcbi); + + + [StructLayout(LayoutKind.Sequential)] + public struct RECT + { + public int Left; // x position of upper-left corner + public int Top; // y position of upper-left corner + public int Right; // x position of lower-right corner + public int Bottom; // y position of lower-right corner + } + [DllImport("user32.dll", SetLastError = true)] + public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect); + + + [DllImport("user32.dll", EntryPoint = "SetWindowPos")] + internal static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int width, int height, int wFlags); + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + internal static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); + internal const int WM_SETREDRAW = 0x0b; + + [DllImport("user32.dll", EntryPoint = "SendMessageA")] + public static extern int SendMessageA(IntPtr hwnd, int wMsg, int wParam, int lParam); + + [DllImport("user32.dll")] + internal static extern IntPtr WindowFromPoint(Point point); + + [DllImport("dwmapi.dll")] + internal static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize); + + [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] + internal extern static int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string? pszSubIdList); + // Usage: SetWindowTheme(control.Handle, "DarkMode_Explorer", null); + + #endregion Win32 API + + #region VLC + + // LibVLC Core - http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__core.html + [DllImport("libvlc")] + internal static extern IntPtr libvlc_new(int argc, [MarshalAs(UnmanagedType.LPArray)] string[] argv); + + [DllImport("libvlc")] + internal static extern void libvlc_release(IntPtr libVlc); + + // LibVLC Media - http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__media.html + [DllImport("libvlc")] + internal static extern IntPtr libvlc_media_new_path(IntPtr instance, byte[] input); + + [DllImport("libvlc")] + internal static extern IntPtr libvlc_media_player_new_from_media(IntPtr media); + + [DllImport("libvlc")] + internal static extern void libvlc_media_release(IntPtr media); + + // LibVLC Audio Controls - http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__audio.html + [DllImport("libvlc")] + internal static extern int libvlc_audio_get_track_count(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern int libvlc_audio_get_track(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern int libvlc_audio_set_track(IntPtr mediaPlayer, int trackNumber); + + // LibVLC Audio Controls - http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__audio.html + [DllImport("libvlc")] + internal static extern int libvlc_audio_get_volume(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern void libvlc_audio_set_volume(IntPtr mediaPlayer, int volume); + + // LibVLC media player - http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__media__player.html + [DllImport("libvlc")] + internal static extern void libvlc_media_player_play(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern void libvlc_media_player_stop(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern void libvlc_media_player_pause(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern void libvlc_media_player_set_hwnd(IntPtr mediaPlayer, IntPtr windowsHandle); + + [DllImport("libvlc")] + internal static extern Int64 libvlc_media_player_get_time(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern void libvlc_media_player_set_time(IntPtr mediaPlayer, Int64 position); + + [DllImport("libvlc")] + internal static extern byte libvlc_media_player_get_state(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern Int64 libvlc_media_player_get_length(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern void libvlc_media_list_player_release(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern float libvlc_media_player_get_rate(IntPtr mediaPlayer); + + [DllImport("libvlc")] + internal static extern int libvlc_media_player_set_rate(IntPtr mediaPlayer, float rate); + + #endregion VLC + + #region MPV + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern IntPtr mpv_create(); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_initialize(IntPtr mpvHandle); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_command(IntPtr mpvHandle, IntPtr utf8Strings); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_terminate_destroy(IntPtr mpvHandle); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern IntPtr mpv_wait_event(IntPtr mpvHandle, double wait); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_set_option(IntPtr mpvHandle, byte[] name, int format, ref long data); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_set_option_string(IntPtr mpvHandle, byte[] name, byte[] value); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern IntPtr mpv_get_property_string(IntPtr mpvHandle, byte[] name); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_get_property(IntPtr mpvHandle, byte[] name, int format, ref double data); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_set_property(IntPtr mpvHandle, byte[] name, int format, ref byte[] data); + + + [DllImport("mpv", CallingConvention = CallingConvention.Cdecl)] + internal static extern int mpv_free(IntPtr data); + + #endregion MPV + + #region Linux System + + internal const int LC_NUMERIC = 1; + + internal const int RTLD_NOW = 0x0001; + internal const int RTLD_GLOBAL = 0x0100; + + [DllImport("libc.so.6")] + internal static extern IntPtr setlocale(int category, string locale); + + [DllImport("libdl.so.2")] + internal static extern IntPtr dlopen(string filename, int flags); + + [DllImport("libdl.so.2")] + internal static extern IntPtr dlclose(IntPtr handle); + + [DllImport("libdl.so.2")] + internal static extern IntPtr dlsym(IntPtr handle, string symbol); + + #endregion + + #region Cross platform + + internal static IntPtr CrossLoadLibrary(string fileName) + { + if (Info.IsRunningOnWindows) + { + return LoadLibrary(fileName); + } + + return dlopen(fileName, RTLD_NOW | RTLD_GLOBAL); + } + + internal static void CrossFreeLibrary(IntPtr handle) + { + if (Info.IsRunningOnWindows) + { + FreeLibrary(handle); + } + else + { + dlclose(handle); + } + } + + internal static IntPtr CrossGetProcAddress(IntPtr handle, string name) + { + if (Info.IsRunningOnWindows) + { + return GetProcAddress(handle, name); + } + return dlsym(handle, name); + } + + #endregion + + #region MSasanMH Methods + + + + #endregion + } +} diff --git a/MsmhTools/MsmhTools/Win32/WindowsMessages.cs b/MsmhTools/MsmhTools/Win32/WindowsMessages.cs new file mode 100644 index 0000000..9ab90c1 --- /dev/null +++ b/MsmhTools/MsmhTools/Win32/WindowsMessages.cs @@ -0,0 +1,1199 @@ +using System; + +namespace MsmhTools.Win32 +{ + /// + /// Windows Messages + /// Defined in winuser.h from Windows SDK v6.1 + /// Documentation pulled from MSDN. + /// + internal enum WindowsMessages : uint + { + /// + /// The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore. + /// + NULL = 0x0000, + + /// + /// The WM_CREATE message is sent when an application requests that a window be created by calling the CreateWindowEx or CreateWindow function. (The message is sent before the function returns.) The window procedure of the new window receives this message after the window is created, but before the window becomes visible. + /// + CREATE = 0x0001, + + /// + /// The WM_DESTROY message is sent when a window is being destroyed. It is sent to the window procedure of the window being destroyed after the window is removed from the screen. + /// This message is sent first to the window being destroyed and then to the child windows (if any) as they are destroyed. During the processing of the message, it can be assumed that all child windows still exist. + /// /// + DESTROY = 0x0002, + + /// + /// The WM_MOVE message is sent after a window has been moved. + /// + MOVE = 0x0003, + + /// + /// The WM_SIZE message is sent to a window after its size has changed. + /// + SIZE = 0x0005, + + /// + /// The WM_ACTIVATE message is sent to both the window being activated and the window being deactivated. If the windows use the same input queue, the message is sent synchronously, first to the window procedure of the top-level window being deactivated, then to the window procedure of the top-level window being activated. If the windows use different input queues, the message is sent asynchronously, so the window is activated immediately. + /// + ACTIVATE = 0x0006, + + /// + /// The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus. + /// + SETFOCUS = 0x0007, + + /// + /// The WM_KILLFOCUS message is sent to a window immediately before it loses the keyboard focus. + /// + KILLFOCUS = 0x0008, + + /// + /// The WM_ENABLE message is sent when an application changes the enabled state of a window. It is sent to the window whose enabled state is changing. This message is sent before the EnableWindow function returns, but after the enabled state (WS_DISABLED style bit) of the window has changed. + /// + ENABLE = 0x000A, + + /// + /// An application sends the WM_SETREDRAW message to a window to allow changes in that window to be redrawn or to prevent changes in that window from being redrawn. + /// + SETREDRAW = 0x000B, + + /// + /// An application sends a WM_SETTEXT message to set the text of a window. + /// + SETTEXT = 0x000C, + + /// + /// An application sends a WM_GETTEXT message to copy the text that corresponds to a window into a buffer provided by the caller. + /// + GETTEXT = 0x000D, + + /// + /// An application sends a WM_GETTEXTLENGTH message to determine the length, in characters, of the text associated with a window. + /// + GETTEXTLENGTH = 0x000E, + + /// + /// The WM_PAINT message is sent when the system or another application makes a request to paint a portion of an application's window. The message is sent when the UpdateWindow or RedrawWindow function is called, or by the DispatchMessage function when the application obtains a WM_PAINT message by using the GetMessage or PeekMessage function. + /// + PAINT = 0x000F, + + /// + /// The WM_CLOSE message is sent as a signal that a window or an application should terminate. + /// + CLOSE = 0x0010, + + /// + /// The WM_QUERYENDSESSION message is sent when the user chooses to end the session or when an application calls one of the system shutdown functions. If any application returns zero, the session is not ended. The system stops sending WM_QUERYENDSESSION messages as soon as one application returns zero. + /// After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message. + /// + QUERYENDSESSION = 0x0011, + + /// + /// The WM_QUERYOPEN message is sent to an icon when the user requests that the window be restored to its previous size and position. + /// + QUERYOPEN = 0x0013, + + /// + /// The WM_ENDSESSION message is sent to an application after the system processes the results of the WM_QUERYENDSESSION message. The WM_ENDSESSION message informs the application whether the session is ending. + /// + ENDSESSION = 0x0016, + + /// + /// The WM_QUIT message indicates a request to terminate an application and is generated when the application calls the PostQuitMessage function. It causes the GetMessage function to return zero. + /// + QUIT = 0x0012, + + /// + /// The WM_ERASEBKGND message is sent when the window background must be erased (for example, when a window is resized). The message is sent to prepare an invalidated portion of a window for painting. + /// + ERASEBKGND = 0x0014, + + /// + /// This message is sent to all top-level windows when a change is made to a system color setting. + /// + SYSCOLORCHANGE = 0x0015, + + /// + /// The WM_SHOWWINDOW message is sent to a window when the window is about to be hidden or shown. + /// + SHOWWINDOW = 0x0018, + + /// + /// An application sends the WM_WININICHANGE message to all top-level windows after making a change to the WIN.INI file. The SystemParametersInfo function sends this message after an application uses the function to change a setting in WIN.INI. + /// Note The WM_WININICHANGE message is provided only for compatibility with earlier versions of the system. Applications should use the WM_SETTINGCHANGE message. + /// + WININICHANGE = 0x001A, + + /// + /// An application sends the WM_WININICHANGE message to all top-level windows after making a change to the WIN.INI file. The SystemParametersInfo function sends this message after an application uses the function to change a setting in WIN.INI. + /// Note The WM_WININICHANGE message is provided only for compatibility with earlier versions of the system. Applications should use the WM_SETTINGCHANGE message. + /// + SETTINGCHANGE = WININICHANGE, + + /// + /// The WM_DEVMODECHANGE message is sent to all top-level windows whenever the user changes device-mode settings. + /// + DEVMODECHANGE = 0x001B, + + /// + /// The WM_ACTIVATEAPP message is sent when a window belonging to a different application than the active window is about to be activated. The message is sent to the application whose window is being activated and to the application whose window is being deactivated. + /// + ACTIVATEAPP = 0x001C, + + /// + /// An application sends the WM_FONTCHANGE message to all top-level windows in the system after changing the pool of font resources. + /// + FONTCHANGE = 0x001D, + + /// + /// A message that is sent whenever there is a change in the system time. + /// + TIMECHANGE = 0x001E, + + /// + /// The WM_CANCELMODE message is sent to cancel certain modes, such as mouse capture. For example, the system sends this message to the active window when a dialog box or message box is displayed. Certain functions also send this message explicitly to the specified window regardless of whether it is the active window. For example, the EnableWindow function sends this message when disabling the specified window. + /// + CANCELMODE = 0x001F, + + /// + /// The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured. + /// + SETCURSOR = 0x0020, + + /// + /// The WM_MOUSEACTIVATE message is sent when the cursor is in an inactive window and the user presses a mouse button. The parent window receives this message only if the child window passes it to the DefWindowProc function. + /// + MOUSEACTIVATE = 0x0021, + + /// + /// The WM_CHILDACTIVATE message is sent to a child window when the user clicks the window's title bar or when the window is activated, moved, or sized. + /// + CHILDACTIVATE = 0x0022, + + /// + /// The WM_QUEUESYNC message is sent by a computer-based training (CBT) application to separate user-input messages from other messages sent through the WH_JOURNALPLAYBACK Hook procedure. + /// + QUEUESYNC = 0x0023, + + /// + /// The WM_GETMINMAXINFO message is sent to a window when the size or position of the window is about to change. An application can use this message to override the window's default maximized size and position, or its default minimum or maximum tracking size. + /// + GETMINMAXINFO = 0x0024, + + /// + /// Windows NT 3.51 and earlier: The WM_PAINTICON message is sent to a minimized window when the icon is to be painted. This message is not sent by newer versions of Microsoft Windows, except in unusual circumstances explained in the Remarks. + /// + PAINTICON = 0x0026, + + /// + /// Windows NT 3.51 and earlier: The WM_ICONERASEBKGND message is sent to a minimized window when the background of the icon must be filled before painting the icon. A window receives this message only if a class icon is defined for the window; otherwise, WM_ERASEBKGND is sent. This message is not sent by newer versions of Windows. + /// + ICONERASEBKGND = 0x0027, + + /// + /// The WM_NEXTDLGCTL message is sent to a dialog box procedure to set the keyboard focus to a different control in the dialog box. + /// + NEXTDLGCTL = 0x0028, + + /// + /// The WM_SPOOLERSTATUS message is sent from Print Manager whenever a job is added to or removed from the Print Manager queue. + /// + SPOOLERSTATUS = 0x002A, + + /// + /// The WM_DRAWITEM message is sent to the parent window of an owner-drawn button, combo box, list box, or menu when a visual aspect of the button, combo box, list box, or menu has changed. + /// + DRAWITEM = 0x002B, + + /// + /// The WM_MEASUREITEM message is sent to the owner window of a combo box, list box, list view control, or menu item when the control or menu is created. + /// + MEASUREITEM = 0x002C, + + /// + /// Sent to the owner of a list box or combo box when the list box or combo box is destroyed or when items are removed by the LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT message. The system sends a WM_DELETEITEM message for each deleted item. The system sends the WM_DELETEITEM message for any deleted list box or combo box item with nonzero item data. + /// + DELETEITEM = 0x002D, + + /// + /// Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its owner in response to a WM_KEYDOWN message. + /// + VKEYTOITEM = 0x002E, + + /// + /// Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its owner in response to a WM_CHAR message. + /// + CHARTOITEM = 0x002F, + + /// + /// An application sends a WM_SETFONT message to specify the font that a control is to use when drawing text. + /// + SETFONT = 0x0030, + + /// + /// An application sends a WM_GETFONT message to a control to retrieve the font with which the control is currently drawing its text. + /// + GETFONT = 0x0031, + + /// + /// An application sends a WM_SETHOTKEY message to a window to associate a hot key with the window. When the user presses the hot key, the system activates the window. + /// + SETHOTKEY = 0x0032, + + /// + /// An application sends a WM_GETHOTKEY message to determine the hot key associated with a window. + /// + GETHOTKEY = 0x0033, + + /// + /// The WM_QUERYDRAGICON message is sent to a minimized (iconic) window. The window is about to be dragged by the user but does not have an icon defined for its class. An application can return a handle to an icon or cursor. The system displays this cursor or icon while the user drags the icon. + /// + QUERYDRAGICON = 0x0037, + + /// + /// The system sends the WM_COMPAREITEM message to determine the relative position of a new item in the sorted list of an owner-drawn combo box or list box. Whenever the application adds a new item, the system sends this message to the owner of a combo box or list box created with the CBS_SORT or LBS_SORT style. + /// + COMPAREITEM = 0x0039, + + /// + /// Active Accessibility sends the WM_GETOBJECT message to obtain information about an accessible object contained in a server application. + /// Applications never send this message directly. It is sent only by Active Accessibility in response to calls to AccessibleObjectFromPoint, AccessibleObjectFromEvent, or AccessibleObjectFromWindow. However, server applications handle this message. + /// + GETOBJECT = 0x003D, + + /// + /// The WM_COMPACTING message is sent to all top-level windows when the system detects more than 12.5 percent of system time over a 30- to 60-second interval is being spent compacting memory. This indicates that system memory is low. + /// + COMPACTING = 0x0041, + + /// + /// WM_COMMNOTIFY is Obsolete for Win32-Based Applications + /// + [Obsolete] + COMMNOTIFY = 0x0044, + + /// + /// The WM_WINDOWPOSCHANGING message is sent to a window whose size, position, or place in the Z order is about to change as a result of a call to the SetWindowPos function or another window-management function. + /// + WINDOWPOSCHANGING = 0x0046, + + /// + /// The WM_WINDOWPOSCHANGED message is sent to a window whose size, position, or place in the Z order has changed as a result of a call to the SetWindowPos function or another window-management function. + /// + WINDOWPOSCHANGED = 0x0047, + + /// + /// Notifies applications that the system, typically a battery-powered personal computer, is about to enter a suspended mode. + /// Use: POWERBROADCAST + /// + [Obsolete] + POWER = 0x0048, + + /// + /// An application sends the WM_COPYDATA message to pass data to another application. + /// + COPYDATA = 0x004A, + + /// + /// The WM_CANCELJOURNAL message is posted to an application when a user cancels the application's journaling activities. The message is posted with a NULL window handle. + /// + CANCELJOURNAL = 0x004B, + + /// + /// Sent by a common control to its parent window when an event has occurred or the control requires some information. + /// + NOTIFY = 0x004E, + + /// + /// The WM_INPUTLANGCHANGEREQUEST message is posted to the window with the focus when the user chooses a new input language, either with the hotkey (specified in the Keyboard control panel application) or from the indicator on the system taskbar. An application can accept the change by passing the message to the DefWindowProc function or reject the change (and prevent it from taking place) by returning immediately. + /// + INPUTLANGCHANGEREQUEST = 0x0050, + + /// + /// The WM_INPUTLANGCHANGE message is sent to the topmost affected window after an application's input language has been changed. You should make any application-specific settings and pass the message to the DefWindowProc function, which passes the message to all first-level child windows. These child windows can pass the message to DefWindowProc to have it pass the message to their child windows, and so on. + /// + INPUTLANGCHANGE = 0x0051, + + /// + /// Sent to an application that has initiated a training card with Microsoft Windows Help. The message informs the application when the user clicks an authorable button. An application initiates a training card by specifying the HELP_TCARD command in a call to the WinHelp function. + /// + TCARD = 0x0052, + + /// + /// Indicates that the user pressed the F1 key. If a menu is active when F1 is pressed, WM_HELP is sent to the window associated with the menu; otherwise, WM_HELP is sent to the window that has the keyboard focus. If no window has the keyboard focus, WM_HELP is sent to the currently active window. + /// + HELP = 0x0053, + + /// + /// The WM_USERCHANGED message is sent to all windows after the user has logged on or off. When the user logs on or off, the system updates the user-specific settings. The system sends this message immediately after updating the settings. + /// + USERCHANGED = 0x0054, + + /// + /// Determines if a window accepts ANSI or Unicode structures in the WM_NOTIFY notification message. WM_NOTIFYFORMAT messages are sent from a common control to its parent window and from the parent window to the common control. + /// + NOTIFYFORMAT = 0x0055, + + /// + /// The WM_CONTEXTMENU message notifies a window that the user clicked the right mouse button (right-clicked) in the window. + /// + CONTEXTMENU = 0x007B, + + /// + /// The WM_STYLECHANGING message is sent to a window when the SetWindowLong function is about to change one or more of the window's styles. + /// + STYLECHANGING = 0x007C, + + /// + /// The WM_STYLECHANGED message is sent to a window after the SetWindowLong function has changed one or more of the window's styles + /// + STYLECHANGED = 0x007D, + + /// + /// The WM_DISPLAYCHANGE message is sent to all windows when the display resolution has changed. + /// + DISPLAYCHANGE = 0x007E, + + /// + /// The WM_GETICON message is sent to a window to retrieve a handle to the large or small icon associated with a window. The system displays the large icon in the ALT+TAB dialog, and the small icon in the window caption. + /// + GETICON = 0x007F, + + /// + /// An application sends the WM_SETICON message to associate a new large or small icon with a window. The system displays the large icon in the ALT+TAB dialog box, and the small icon in the window caption. + /// + SETICON = 0x0080, + + /// + /// The WM_NCCREATE message is sent prior to the WM_CREATE message when a window is first created. + /// + NCCREATE = 0x0081, + + /// + /// The WM_NCDESTROY message informs a window that its nonclient area is being destroyed. The DestroyWindow function sends the WM_NCDESTROY message to the window following the WM_DESTROY message. WM_DESTROY is used to free the allocated memory object associated with the window. + /// The WM_NCDESTROY message is sent after the child windows have been destroyed. In contrast, WM_DESTROY is sent before the child windows are destroyed. + /// + NCDESTROY = 0x0082, + + /// + /// The WM_NCCALCSIZE message is sent when the size and position of a window's client area must be calculated. By processing this message, an application can control the content of the window's client area when the size or position of the window changes. + /// + NCCALCSIZE = 0x0083, + + /// + /// The WM_NCHITTEST message is sent to a window when the cursor moves, or when a mouse button is pressed or released. If the mouse is not captured, the message is sent to the window beneath the cursor. Otherwise, the message is sent to the window that has captured the mouse. + /// + NCHITTEST = 0x0084, + + /// + /// The WM_NCPAINT message is sent to a window when its frame must be painted. + /// + NCPAINT = 0x0085, + + /// + /// The WM_NCACTIVATE message is sent to a window when its nonclient area needs to be changed to indicate an active or inactive state. + /// + NCACTIVATE = 0x0086, + + /// + /// The WM_GETDLGCODE message is sent to the window procedure associated with a control. By default, the system handles all keyboard input to the control; the system interprets certain types of keyboard input as dialog box navigation keys. To override this default behavior, the control can respond to the WM_GETDLGCODE message to indicate the types of input it wants to process itself. + /// + GETDLGCODE = 0x0087, + + /// + /// The WM_SYNCPAINT message is used to synchronize painting while avoiding linking independent GUI threads. + /// + SYNCPAINT = 0x0088, + + /// + /// The WM_NCMOUSEMOVE message is posted to a window when the cursor is moved within the nonclient area of the window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCMOUSEMOVE = 0x00A0, + + /// + /// The WM_NCLBUTTONDOWN message is posted when the user presses the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCLBUTTONDOWN = 0x00A1, + + /// + /// The WM_NCLBUTTONUP message is posted when the user releases the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCLBUTTONUP = 0x00A2, + + /// + /// The WM_NCLBUTTONDBLCLK message is posted when the user double-clicks the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCLBUTTONDBLCLK = 0x00A3, + + /// + /// The WM_NCRBUTTONDOWN message is posted when the user presses the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCRBUTTONDOWN = 0x00A4, + + /// + /// The WM_NCRBUTTONUP message is posted when the user releases the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCRBUTTONUP = 0x00A5, + + /// + /// The WM_NCRBUTTONDBLCLK message is posted when the user double-clicks the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCRBUTTONDBLCLK = 0x00A6, + + /// + /// The WM_NCMBUTTONDOWN message is posted when the user presses the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCMBUTTONDOWN = 0x00A7, + + /// + /// The WM_NCMBUTTONUP message is posted when the user releases the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCMBUTTONUP = 0x00A8, + + /// + /// The WM_NCMBUTTONDBLCLK message is posted when the user double-clicks the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCMBUTTONDBLCLK = 0x00A9, + + /// + /// The WM_NCXBUTTONDOWN message is posted when the user presses the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCXBUTTONDOWN = 0x00AB, + + /// + /// The WM_NCXBUTTONUP message is posted when the user releases the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCXBUTTONUP = 0x00AC, + + /// + /// The WM_NCXBUTTONDBLCLK message is posted when the user double-clicks the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. + /// + NCXBUTTONDBLCLK = 0x00AD, + + /// + /// The WM_INPUT_DEVICE_CHANGE message is sent to the window that registered to receive raw input. A window receives this message through its WindowProc function. + /// + INPUT_DEVICE_CHANGE = 0x00FE, + + /// + /// The WM_INPUT message is sent to the window that is getting raw input. + /// + INPUT = 0x00FF, + + /// + /// This message filters for keyboard messages. + /// + KEYFIRST = 0x0100, + + /// + /// The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed. + /// + KEYDOWN = 0x0100, + + /// + /// The WM_KEYUP message is posted to the window with the keyboard focus when a nonsystem key is released. A nonsystem key is a key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when a window has the keyboard focus. + /// + KEYUP = 0x0101, + + /// + /// The WM_CHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_CHAR message contains the character code of the key that was pressed. + /// + CHAR = 0x0102, + + /// + /// The WM_DEADCHAR message is posted to the window with the keyboard focus when a WM_KEYUP message is translated by the TranslateMessage function. WM_DEADCHAR specifies a character code generated by a dead key. A dead key is a key that generates a character, such as the umlaut (double-dot), that is combined with another character to form a composite character. For example, the umlaut-O character (Ö) is generated by typing the dead key for the umlaut character, and then typing the O key. + /// + DEADCHAR = 0x0103, + + /// + /// The WM_SYSKEYDOWN message is posted to the window with the keyboard focus when the user presses the F10 key (which activates the menu bar) or holds down the ALT key and then presses another key. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter. + /// + SYSKEYDOWN = 0x0104, + + /// + /// The WM_SYSKEYUP message is posted to the window with the keyboard focus when the user releases a key that was pressed while the ALT key was held down. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYUP message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter. + /// + SYSKEYUP = 0x0105, + + /// + /// The WM_SYSCHAR message is posted to the window with the keyboard focus when a WM_SYSKEYDOWN message is translated by the TranslateMessage function. It specifies the character code of a system character key — that is, a character key that is pressed while the ALT key is down. + /// + SYSCHAR = 0x0106, + + /// + /// The WM_SYSDEADCHAR message is sent to the window with the keyboard focus when a WM_SYSKEYDOWN message is translated by the TranslateMessage function. WM_SYSDEADCHAR specifies the character code of a system dead key — that is, a dead key that is pressed while holding down the ALT key. + /// + SYSDEADCHAR = 0x0107, + + /// + /// The WM_UNICHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_UNICHAR message contains the character code of the key that was pressed. + /// The WM_UNICHAR message is equivalent to WM_CHAR, but it uses Unicode Transformation Format (UTF)-32, whereas WM_CHAR uses UTF-16. It is designed to send or post Unicode characters to ANSI windows and it can can handle Unicode Supplementary Plane characters. + /// + UNICHAR = 0x0109, + + /// + /// This message filters for keyboard messages. + /// + KEYLAST = 0x0109, + + /// + /// Sent immediately before the IME generates the composition string as a result of a keystroke. A window receives this message through its WindowProc function. + /// + IME_STARTCOMPOSITION = 0x010D, + + /// + /// Sent to an application when the IME ends composition. A window receives this message through its WindowProc function. + /// + IME_ENDCOMPOSITION = 0x010E, + + /// + /// Sent to an application when the IME changes composition status as a result of a keystroke. A window receives this message through its WindowProc function. + /// + IME_COMPOSITION = 0x010F, + IME_KEYLAST = 0x010F, + + /// + /// The WM_INITDIALOG message is sent to the dialog box procedure immediately before a dialog box is displayed. Dialog box procedures typically use this message to initialize controls and carry out any other initialization tasks that affect the appearance of the dialog box. + /// + INITDIALOG = 0x0110, + + /// + /// The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated. + /// + COMMAND = 0x0111, + + /// + /// A window receives this message when the user chooses a command from the Window menu, clicks the maximize button, minimize button, restore button, close button, or moves the form. You can stop the form from moving by filtering this out. + /// + SYSCOMMAND = 0x0112, + + /// + /// The WM_TIMER message is posted to the installing thread's message queue when a timer expires. The message is posted by the GetMessage or PeekMessage function. + /// + TIMER = 0x0113, + + /// + /// The WM_HSCROLL message is sent to a window when a scroll event occurs in the window's standard horizontal scroll bar. This message is also sent to the owner of a horizontal scroll bar control when a scroll event occurs in the control. + /// + HSCROLL = 0x0114, + + /// + /// The WM_VSCROLL message is sent to a window when a scroll event occurs in the window's standard vertical scroll bar. This message is also sent to the owner of a vertical scroll bar control when a scroll event occurs in the control. + /// + VSCROLL = 0x0115, + + /// + /// The WM_INITMENU message is sent when a menu is about to become active. It occurs when the user clicks an item on the menu bar or presses a menu key. This allows the application to modify the menu before it is displayed. + /// + INITMENU = 0x0116, + + /// + /// The WM_INITMENUPOPUP message is sent when a drop-down menu or submenu is about to become active. This allows an application to modify the menu before it is displayed, without changing the entire menu. + /// + INITMENUPOPUP = 0x0117, + + /// + /// The WM_MENUSELECT message is sent to a menu's owner window when the user selects a menu item. + /// + MENUSELECT = 0x011F, + + /// + /// The WM_MENUCHAR message is sent when a menu is active and the user presses a key that does not correspond to any mnemonic or accelerator key. This message is sent to the window that owns the menu. + /// + MENUCHAR = 0x0120, + + /// + /// The WM_ENTERIDLE message is sent to the owner window of a modal dialog box or menu that is entering an idle state. A modal dialog box or menu enters an idle state when no messages are waiting in its queue after it has processed one or more previous messages. + /// + ENTERIDLE = 0x0121, + + /// + /// The WM_MENURBUTTONUP message is sent when the user releases the right mouse button while the cursor is on a menu item. + /// + MENURBUTTONUP = 0x0122, + + /// + /// The WM_MENUDRAG message is sent to the owner of a drag-and-drop menu when the user drags a menu item. + /// + MENUDRAG = 0x0123, + + /// + /// The WM_MENUGETOBJECT message is sent to the owner of a drag-and-drop menu when the mouse cursor enters a menu item or moves from the center of the item to the top or bottom of the item. + /// + MENUGETOBJECT = 0x0124, + + /// + /// The WM_UNINITMENUPOPUP message is sent when a drop-down menu or submenu has been destroyed. + /// + UNINITMENUPOPUP = 0x0125, + + /// + /// The WM_MENUCOMMAND message is sent when the user makes a selection from a menu. + /// + MENUCOMMAND = 0x0126, + + /// + /// An application sends the WM_CHANGEUISTATE message to indicate that the user interface (UI) state should be changed. + /// + CHANGEUISTATE = 0x0127, + + /// + /// An application sends the WM_UPDATEUISTATE message to change the user interface (UI) state for the specified window and all its child windows. + /// + UPDATEUISTATE = 0x0128, + + /// + /// An application sends the WM_QUERYUISTATE message to retrieve the user interface (UI) state for a window. + /// + QUERYUISTATE = 0x0129, + + /// + /// The WM_CTLCOLORMSGBOX message is sent to the owner window of a message box before Windows draws the message box. By responding to this message, the owner window can set the text and background colors of the message box by using the given display device context handle. + /// + CTLCOLORMSGBOX = 0x0132, + + /// + /// An edit control that is not read-only or disabled sends the WM_CTLCOLOREDIT message to its parent window when the control is about to be drawn. By responding to this message, the parent window can use the specified device context handle to set the text and background colors of the edit control. + /// + CTLCOLOREDIT = 0x0133, + + /// + /// Sent to the parent window of a list box before the system draws the list box. By responding to this message, the parent window can set the text and background colors of the list box by using the specified display device context handle. + /// + CTLCOLORLISTBOX = 0x0134, + + /// + /// The WM_CTLCOLORBTN message is sent to the parent window of a button before drawing the button. The parent window can change the button's text and background colors. However, only owner-drawn buttons respond to the parent window processing this message. + /// + CTLCOLORBTN = 0x0135, + + /// + /// The WM_CTLCOLORDLG message is sent to a dialog box before the system draws the dialog box. By responding to this message, the dialog box can set its text and background colors using the specified display device context handle. + /// + CTLCOLORDLG = 0x0136, + + /// + /// The WM_CTLCOLORSCROLLBAR message is sent to the parent window of a scroll bar control when the control is about to be drawn. By responding to this message, the parent window can use the display context handle to set the background color of the scroll bar control. + /// + CTLCOLORSCROLLBAR = 0x0137, + + /// + /// A static control, or an edit control that is read-only or disabled, sends the WM_CTLCOLORSTATIC message to its parent window when the control is about to be drawn. By responding to this message, the parent window can use the specified device context handle to set the text and background colors of the static control. + /// + CTLCOLORSTATIC = 0x0138, + + /// + /// Use WM_MOUSEFIRST to specify the first mouse message. Use the PeekMessage() Function. + /// + MOUSEFIRST = 0x0200, + + /// + /// The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + MOUSEMOVE = 0x0200, + + /// + /// The WM_LBUTTONDOWN message is posted when the user presses the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + LBUTTONDOWN = 0x0201, + + /// + /// The WM_LBUTTONUP message is posted when the user releases the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + LBUTTONUP = 0x0202, + + /// + /// The WM_LBUTTONDBLCLK message is posted when the user double-clicks the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + LBUTTONDBLCLK = 0x0203, + + /// + /// The WM_RBUTTONDOWN message is posted when the user presses the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + RBUTTONDOWN = 0x0204, + + /// + /// The WM_RBUTTONUP message is posted when the user releases the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + RBUTTONUP = 0x0205, + + /// + /// The WM_RBUTTONDBLCLK message is posted when the user double-clicks the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + RBUTTONDBLCLK = 0x0206, + + /// + /// The WM_MBUTTONDOWN message is posted when the user presses the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + MBUTTONDOWN = 0x0207, + + /// + /// The WM_MBUTTONUP message is posted when the user releases the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + MBUTTONUP = 0x0208, + + /// + /// The WM_MBUTTONDBLCLK message is posted when the user double-clicks the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + MBUTTONDBLCLK = 0x0209, + + /// + /// The WM_MOUSEWHEEL message is sent to the focus window when the mouse wheel is rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it. + /// + MOUSEWHEEL = 0x020A, + + /// + /// The WM_XBUTTONDOWN message is posted when the user presses the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + XBUTTONDOWN = 0x020B, + + /// + /// The WM_XBUTTONUP message is posted when the user releases the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + XBUTTONUP = 0x020C, + + /// + /// The WM_XBUTTONDBLCLK message is posted when the user double-clicks the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. + /// + XBUTTONDBLCLK = 0x020D, + + /// + /// The WM_MOUSEHWHEEL message is sent to the focus window when the mouse's horizontal scroll wheel is tilted or rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it. + /// + MOUSEHWHEEL = 0x020E, + + /// + /// Use WM_MOUSELAST to specify the last mouse message. Used with PeekMessage() Function. + /// + MOUSELAST = 0x020E, + + /// + /// The WM_PARENTNOTIFY message is sent to the parent of a child window when the child window is created or destroyed, or when the user clicks a mouse button while the cursor is over the child window. When the child window is being created, the system sends WM_PARENTNOTIFY just before the CreateWindow or CreateWindowEx function that creates the window returns. When the child window is being destroyed, the system sends the message before any processing to destroy the window takes place. + /// + PARENTNOTIFY = 0x0210, + + /// + /// The WM_ENTERMENULOOP message informs an application's main window procedure that a menu modal loop has been entered. + /// + ENTERMENULOOP = 0x0211, + + /// + /// The WM_EXITMENULOOP message informs an application's main window procedure that a menu modal loop has been exited. + /// + EXITMENULOOP = 0x0212, + + /// + /// The WM_NEXTMENU message is sent to an application when the right or left arrow key is used to switch between the menu bar and the system menu. + /// + NEXTMENU = 0x0213, + + /// + /// The WM_SIZING message is sent to a window that the user is resizing. By processing this message, an application can monitor the size and position of the drag rectangle and, if needed, change its size or position. + /// + SIZING = 0x0214, + + /// + /// The WM_CAPTURECHANGED message is sent to the window that is losing the mouse capture. + /// + CAPTURECHANGED = 0x0215, + + /// + /// The WM_MOVING message is sent to a window that the user is moving. By processing this message, an application can monitor the position of the drag rectangle and, if needed, change its position. + /// + MOVING = 0x0216, + + /// + /// Notifies applications that a power-management event has occurred. + /// + POWERBROADCAST = 0x0218, + + /// + /// Notifies an application of a change to the hardware configuration of a device or the computer. + /// + DEVICECHANGE = 0x0219, + + /// + /// An application sends the WM_MDICREATE message to a multiple-document interface (MDI) client window to create an MDI child window. + /// + MDICREATE = 0x0220, + + /// + /// An application sends the WM_MDIDESTROY message to a multiple-document interface (MDI) client window to close an MDI child window. + /// + MDIDESTROY = 0x0221, + + /// + /// An application sends the WM_MDIACTIVATE message to a multiple-document interface (MDI) client window to instruct the client window to activate a different MDI child window. + /// + MDIACTIVATE = 0x0222, + + /// + /// An application sends the WM_MDIRESTORE message to a multiple-document interface (MDI) client window to restore an MDI child window from maximized or minimized size. + /// + MDIRESTORE = 0x0223, + + /// + /// An application sends the WM_MDINEXT message to a multiple-document interface (MDI) client window to activate the next or previous child window. + /// + MDINEXT = 0x0224, + + /// + /// An application sends the WM_MDIMAXIMIZE message to a multiple-document interface (MDI) client window to maximize an MDI child window. The system resizes the child window to make its client area fill the client window. The system places the child window's window menu icon in the rightmost position of the frame window's menu bar, and places the child window's restore icon in the leftmost position. The system also appends the title bar text of the child window to that of the frame window. + /// + MDIMAXIMIZE = 0x0225, + + /// + /// An application sends the WM_MDITILE message to a multiple-document interface (MDI) client window to arrange all of its MDI child windows in a tile format. + /// + MDITILE = 0x0226, + + /// + /// An application sends the WM_MDICASCADE message to a multiple-document interface (MDI) client window to arrange all its child windows in a cascade format. + /// + MDICASCADE = 0x0227, + + /// + /// An application sends the WM_MDIICONARRANGE message to a multiple-document interface (MDI) client window to arrange all minimized MDI child windows. It does not affect child windows that are not minimized. + /// + MDIICONARRANGE = 0x0228, + + /// + /// An application sends the WM_MDIGETACTIVE message to a multiple-document interface (MDI) client window to retrieve the handle to the active MDI child window. + /// + MDIGETACTIVE = 0x0229, + + /// + /// An application sends the WM_MDISETMENU message to a multiple-document interface (MDI) client window to replace the entire menu of an MDI frame window, to replace the window menu of the frame window, or both. + /// + MDISETMENU = 0x0230, + + /// + /// The WM_ENTERSIZEMOVE message is sent one time to a window after it enters the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns. + /// The system sends the WM_ENTERSIZEMOVE message regardless of whether the dragging of full windows is enabled. + /// + ENTERSIZEMOVE = 0x0231, + + /// + /// The WM_EXITSIZEMOVE message is sent one time to a window, after it has exited the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns. + /// + EXITSIZEMOVE = 0x0232, + + /// + /// Sent when the user drops a file on the window of an application that has registered itself as a recipient of dropped files. + /// + DROPFILES = 0x0233, + + /// + /// An application sends the WM_MDIREFRESHMENU message to a multiple-document interface (MDI) client window to refresh the window menu of the MDI frame window. + /// + MDIREFRESHMENU = 0x0234, + + /// + /// Sent to an application when a window is activated. A window receives this message through its WindowProc function. + /// + IME_SETCONTEXT = 0x0281, + + /// + /// Sent to an application to notify it of changes to the IME window. A window receives this message through its WindowProc function. + /// + IME_NOTIFY = 0x0282, + + /// + /// Sent by an application to direct the IME window to carry out the requested command. The application uses this message to control the IME window that it has created. To send this message, the application calls the SendMessage function with the following parameters. + /// + IME_CONTROL = 0x0283, + + /// + /// Sent to an application when the IME window finds no space to extend the area for the composition window. A window receives this message through its WindowProc function. + /// + IME_COMPOSITIONFULL = 0x0284, + + /// + /// Sent to an application when the operating system is about to change the current IME. A window receives this message through its WindowProc function. + /// + IME_SELECT = 0x0285, + + /// + /// Sent to an application when the IME gets a character of the conversion result. A window receives this message through its WindowProc function. + /// + IME_CHAR = 0x0286, + + /// + /// Sent to an application to provide commands and request information. A window receives this message through its WindowProc function. + /// + IME_REQUEST = 0x0288, + + /// + /// Sent to an application by the IME to notify the application of a key press and to keep message order. A window receives this message through its WindowProc function. + /// + IME_KEYDOWN = 0x0290, + + /// + /// Sent to an application by the IME to notify the application of a key release and to keep message order. A window receives this message through its WindowProc function. + /// + IME_KEYUP = 0x0291, + + /// + /// The WM_MOUSEHOVER message is posted to a window when the cursor hovers over the client area of the window for the period of time specified in a prior call to TrackMouseEvent. + /// + MOUSEHOVER = 0x02A1, + + /// + /// The WM_MOUSELEAVE message is posted to a window when the cursor leaves the client area of the window specified in a prior call to TrackMouseEvent. + /// + MOUSELEAVE = 0x02A3, + + /// + /// The WM_NCMOUSEHOVER message is posted to a window when the cursor hovers over the nonclient area of the window for the period of time specified in a prior call to TrackMouseEvent. + /// + NCMOUSEHOVER = 0x02A0, + + /// + /// The WM_NCMOUSELEAVE message is posted to a window when the cursor leaves the nonclient area of the window specified in a prior call to TrackMouseEvent. + /// + NCMOUSELEAVE = 0x02A2, + + /// + /// The WM_WTSSESSION_CHANGE message notifies applications of changes in session state. + /// + WTSSESSION_CHANGE = 0x02B1, + TABLET_FIRST = 0x02c0, + TABLET_LAST = 0x02df, + + /// + /// An application sends a WM_CUT message to an edit control or combo box to delete (cut) the current selection, if any, in the edit control and copy the deleted text to the clipboard in CF_TEXT format. + /// + CUT = 0x0300, + + /// + /// An application sends the WM_COPY message to an edit control or combo box to copy the current selection to the clipboard in CF_TEXT format. + /// + COPY = 0x0301, + + /// + /// An application sends a WM_PASTE message to an edit control or combo box to copy the current content of the clipboard to the edit control at the current caret position. Data is inserted only if the clipboard contains data in CF_TEXT format. + /// + PASTE = 0x0302, + + /// + /// An application sends a WM_CLEAR message to an edit control or combo box to delete (clear) the current selection, if any, from the edit control. + /// + CLEAR = 0x0303, + + /// + /// An application sends a WM_UNDO message to an edit control to undo the last operation. When this message is sent to an edit control, the previously deleted text is restored or the previously added text is deleted. + /// + UNDO = 0x0304, + + /// + /// The WM_RENDERFORMAT message is sent to the clipboard owner if it has delayed rendering a specific clipboard format and if an application has requested data in that format. The clipboard owner must render data in the specified format and place it on the clipboard by calling the SetClipboardData function. + /// + RENDERFORMAT = 0x0305, + + /// + /// The WM_RENDERALLFORMATS message is sent to the clipboard owner before it is destroyed, if the clipboard owner has delayed rendering one or more clipboard formats. For the content of the clipboard to remain available to other applications, the clipboard owner must render data in all the formats it is capable of generating, and place the data on the clipboard by calling the SetClipboardData function. + /// + RENDERALLFORMATS = 0x0306, + + /// + /// The WM_DESTROYCLIPBOARD message is sent to the clipboard owner when a call to the EmptyClipboard function empties the clipboard. + /// + DESTROYCLIPBOARD = 0x0307, + + /// + /// The WM_DRAWCLIPBOARD message is sent to the first window in the clipboard viewer chain when the content of the clipboard changes. This enables a clipboard viewer window to display the new content of the clipboard. + /// + DRAWCLIPBOARD = 0x0308, + + /// + /// The WM_PAINTCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and the clipboard viewer's client area needs repainting. + /// + PAINTCLIPBOARD = 0x0309, + + /// + /// The WM_VSCROLLCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's vertical scroll bar. The owner should scroll the clipboard image and update the scroll bar values. + /// + VSCROLLCLIPBOARD = 0x030A, + + /// + /// The WM_SIZECLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and the clipboard viewer's client area has changed size. + /// + SIZECLIPBOARD = 0x030B, + + /// + /// The WM_ASKCBFORMATNAME message is sent to the clipboard owner by a clipboard viewer window to request the name of a CF_OWNERDISPLAY clipboard format. + /// + ASKCBFORMATNAME = 0x030C, + + /// + /// The WM_CHANGECBCHAIN message is sent to the first window in the clipboard viewer chain when a window is being removed from the chain. + /// + CHANGECBCHAIN = 0x030D, + + /// + /// The WM_HSCROLLCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window. This occurs when the clipboard contains data in the CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's horizontal scroll bar. The owner should scroll the clipboard image and update the scroll bar values. + /// + HSCROLLCLIPBOARD = 0x030E, + + /// + /// This message informs a window that it is about to receive the keyboard focus, giving the window the opportunity to realize its logical palette when it receives the focus. + /// + QUERYNEWPALETTE = 0x030F, + + /// + /// The WM_PALETTEISCHANGING message informs applications that an application is going to realize its logical palette. + /// + PALETTEISCHANGING = 0x0310, + + /// + /// This message is sent by the OS to all top-level and overlapped windows after the window with the keyboard focus realizes its logical palette. + /// This message enables windows that do not have the keyboard focus to realize their logical palettes and update their client areas. + /// + PALETTECHANGED = 0x0311, + + /// + /// The WM_HOTKEY message is posted when the user presses a hot key registered by the RegisterHotKey function. The message is placed at the top of the message queue associated with the thread that registered the hot key. + /// + HOTKEY = 0x0312, + + /// + /// The WM_PRINT message is sent to a window to request that it draw itself in the specified device context, most commonly in a printer device context. + /// + PRINT = 0x0317, + + /// + /// The WM_PRINTCLIENT message is sent to a window to request that it draw its client area in the specified device context, most commonly in a printer device context. + /// + PRINTCLIENT = 0x0318, + + /// + /// The WM_APPCOMMAND message notifies a window that the user generated an application command event, for example, by clicking an application command button using the mouse or typing an application command key on the keyboard. + /// + APPCOMMAND = 0x0319, + + /// + /// The WM_THEMECHANGED message is broadcast to every window following a theme change event. Examples of theme change events are the activation of a theme, the deactivation of a theme, or a transition from one theme to another. + /// + THEMECHANGED = 0x031A, + + /// + /// Sent when the contents of the clipboard have changed. + /// + CLIPBOARDUPDATE = 0x031D, + + /// + /// The system will send a window the WM_DWMCOMPOSITIONCHANGED message to indicate that the availability of desktop composition has changed. + /// + DWMCOMPOSITIONCHANGED = 0x031E, + + /// + /// WM_DWMNCRENDERINGCHANGED is called when the non-client area rendering status of a window has changed. Only windows that have set the flag DWM_BLURBEHIND.fTransitionOnMaximized to true will get this message. + /// + DWMNCRENDERINGCHANGED = 0x031F, + + /// + /// Sent to all top-level windows when the colorization color has changed. + /// + DWMCOLORIZATIONCOLORCHANGED = 0x0320, + + /// + /// WM_DWMWINDOWMAXIMIZEDCHANGE will let you know when a DWM composed window is maximized. You also have to register for this message as well. You'd have other windowd go opaque when this message is sent. + /// + DWMWINDOWMAXIMIZEDCHANGE = 0x0321, + + /// + /// Sent to request extended title bar information. A window receives this message through its WindowProc function. + /// + GETTITLEBARINFOEX = 0x033F, + HANDHELDFIRST = 0x0358, + HANDHELDLAST = 0x035F, + AFXFIRST = 0x0360, + AFXLAST = 0x037F, + PENWINFIRST = 0x0380, + PENWINLAST = 0x038F, + + /// + /// The WM_APP constant is used by applications to help define private messages, usually of the form WM_APP+X, where X is an integer value. + /// + APP = 0x8000, + + /// + /// The WM_USER constant is used by applications to help define private messages for use by private window classes, usually of the form WM_USER+X, where X is an integer value. + /// + USER = 0x0400, + + /// + /// An application sends the WM_CPL_LAUNCH message to Windows Control Panel to request that a Control Panel application be started. + /// + CPL_LAUNCH = USER + 0x1000, + + /// + /// The WM_CPL_LAUNCHED message is sent when a Control Panel application, started by the WM_CPL_LAUNCH message, has closed. The WM_CPL_LAUNCHED message is sent to the window identified by the wParam parameter of the WM_CPL_LAUNCH message that started the application. + /// + CPL_LAUNCHED = USER + 0x1001, + + /// + /// WM_SYSTIMER is a well-known yet still undocumented message. Windows uses WM_SYSTIMER for internal actions like scrolling. + /// + SYSTIMER = 0x118, + + /// + /// The accessibility state has changed. + /// + HSHELL_ACCESSIBILITYSTATE = 11, + + /// + /// The shell should activate its main window. + /// + HSHELL_ACTIVATESHELLWINDOW = 3, + + /// + /// The user completed an input event (for example, pressed an application command button on the mouse or an application command key on the keyboard), and the application did not handle the WM_APPCOMMAND message generated by that input. + /// If the Shell procedure handles the WM_COMMAND message, it should not call CallNextHookEx. See the Return Value section for more information. + /// + HSHELL_APPCOMMAND = 12, + + /// + /// A window is being minimized or maximized. The system needs the coordinates of the minimized rectangle for the window. + /// + HSHELL_GETMINRECT = 5, + + /// + /// Keyboard language was changed or a new keyboard layout was loaded. + /// + HSHELL_LANGUAGE = 8, + + /// + /// The title of a window in the task bar has been redrawn. + /// + HSHELL_REDRAW = 6, + + /// + /// The user has selected the task list. A shell application that provides a task list should return TRUE to prevent Windows from starting its task list. + /// + HSHELL_TASKMAN = 7, + + /// + /// A top-level, unowned window has been created. The window exists when the system calls this hook. + /// + HSHELL_WINDOWCREATED = 1, + + /// + /// A top-level, unowned window is about to be destroyed. The window still exists when the system calls this hook. + /// + HSHELL_WINDOWDESTROYED = 2, + + /// + /// The activation has changed to a different top-level, unowned window. + /// + HSHELL_WINDOWACTIVATED = 4, + + /// + /// A top-level window is being replaced. The window exists when the system calls this hook. + /// + HSHELL_WINDOWREPLACED = 13 + } +} diff --git a/MsmhTools/MsmhTools/Xml.cs b/MsmhTools/MsmhTools/Xml.cs new file mode 100644 index 0000000..a8e816b --- /dev/null +++ b/MsmhTools/MsmhTools/Xml.cs @@ -0,0 +1,87 @@ +using System; +using System.Xml; +using System.Data; +using System.Xml.Linq; +using System.Diagnostics; + +namespace MsmhTools +{ + public static class Xml + { + //----------------------------------------------------------------------------------- + public static XDocument RemoveEmptyElements(XDocument xDoc) + { + xDoc.Descendants().Where(a => a.IsEmpty && !a.HasAttributes && !a.HasElements && string.IsNullOrWhiteSpace(a.Value)).Remove(); + return xDoc; + } + //----------------------------------------------------------------------------------- + public static void RemoveNodesWithoutChild(string xmlFile) + { + if (File.Exists(xmlFile)) + { + bool isXmlValid = IsValidXML(File.ReadAllText(xmlFile)); + if (isXmlValid == true) + { + XmlDocument doc = new(); + doc.Load(xmlFile); + var nodes = doc.DocumentElement; + if (nodes != null) + { + foreach (XmlNode node in nodes) + if (node.HasChildNodes == false) + nodes.RemoveChild(node); + doc.Save(xmlFile); + } + } + } + else + Console.WriteLine("XML File Not Exist."); + } + //----------------------------------------------------------------------------------- + public static bool IsValidXML(string content) + { + try + { + if (!string.IsNullOrEmpty(content)) + { + XmlDocument xmlDoc = new(); + xmlDoc.LoadXml(content); + return true; + } + else + { + return false; + } + } + catch (XmlException ex) + { + Debug.WriteLine("XML Error: " + ex.Message); + return false; + } + } + //----------------------------------------------------------------------------------- + public static bool IsValidXMLFile(string xmlFilePath) + { + try + { + if (!string.IsNullOrEmpty(xmlFilePath)) + { + string content = File.ReadAllText(xmlFilePath); + XmlDocument xmlDoc = new(); + xmlDoc.LoadXml(content); + return true; + } + else + { + return false; + } + } + catch (XmlException ex) + { + Debug.WriteLine("XML Error: " + ex.Message); + return false; + } + } + //----------------------------------------------------------------------------------- + } +} diff --git a/MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml b/MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 0000000..8a7deb4 --- /dev/null +++ b/MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,14 @@ + + + + + Release + Any CPU + bin\Release\net6.0-windows\publish\ + FileSystem + net6.0-windows + false + + \ No newline at end of file diff --git a/MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml.user b/MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml.user new file mode 100644 index 0000000..b4d5f57 --- /dev/null +++ b/MsmhTools/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -0,0 +1,9 @@ + + + + + True|2023-07-05T22:17:11.3258169Z;True|2023-07-06T02:23:56.8626061+04:30; + + \ No newline at end of file diff --git a/SDCHttpProxy/ConsoleTools.cs b/SDCHttpProxy/ConsoleTools.cs new file mode 100644 index 0000000..2173bc4 --- /dev/null +++ b/SDCHttpProxy/ConsoleTools.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace SDCHttpProxy +{ + internal class ConsoleTools + { + //=============================================== Console Quick Editr + // Save Original on Startup + // GetConsoleMode(GetConsoleWindow(), ref saveConsoleMode); + // Restore at Exit + // SetConsoleMode(GetConsoleWindow(), saveConsoleMode); + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern IntPtr GetConsoleWindow(); + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool GetConsoleMode( + IntPtr hConsoleHandle, + out int lpMode); + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool SetConsoleMode( + IntPtr hConsoleHandle, + int ioMode); + + /// + /// This flag enables the user to use the mouse to select and edit text. To enable + /// this option, you must also set the ExtendedFlags flag. + /// + const int QuickEditMode = 64; + + // ExtendedFlags must be combined with + // InsertMode and QuickEditMode when setting + /// + /// ExtendedFlags must be enabled in order to enable InsertMode or QuickEditMode. + /// + const int ExtendedFlags = 128; + + public static void DisableQuickEdit() + { + IntPtr conHandle = GetConsoleWindow(); + + if (!GetConsoleMode(conHandle, out int mode)) + { + // error getting the console mode. Exit. + return; + } + + mode &= ~(QuickEditMode | ExtendedFlags); + + if (!SetConsoleMode(conHandle, mode)) + { + // error setting console mode. + } + } + + public static void EnableQuickEdit() + { + IntPtr conHandle = GetConsoleWindow(); + + if (!GetConsoleMode(conHandle, out int mode)) + { + // error getting the console mode. Exit. + return; + } + + mode |= (QuickEditMode | ExtendedFlags); + + if (!SetConsoleMode(conHandle, mode)) + { + // error setting console mode. + } + } + } +} diff --git a/SDCHttpProxy/Program.cs b/SDCHttpProxy/Program.cs new file mode 100644 index 0000000..69992f4 --- /dev/null +++ b/SDCHttpProxy/Program.cs @@ -0,0 +1,567 @@ +using MsmhTools; +using MsmhTools.HTTPProxyServer; +using System.Diagnostics; +using System.Net; +using System.Reflection; +using System.Text; + +namespace SDCHttpProxy +{ + internal static class Program + { + private static HTTPProxyServer HTTPProxy { get; set; } = new(); + private static HTTPProxyServer.Program.DPIBypass DpiBypassStaticProgram { get; set; } = new(); + private static HTTPProxyServer.Program.DPIBypass DpiBypassProgram { get; set; } = new(); + private static HTTPProxyServer.Program.UpStreamProxy UpStreamProxyProgram { get; set; } = new(); + private static HTTPProxyServer.Program.Dns DnsProgram { get; set; } = new(); + private static HTTPProxyServer.Program.FakeDns FakeDnsProgram { get; set; } = new(); + private static HTTPProxyServer.Program.BlackWhiteList BWListProgram { get; set; } = new(); + private static HTTPProxyServer.Program.DontBypass DontBypassProgram { get; set; } = new(); + + private static readonly Stopwatch StopWatchShowRequests = new(); + + private static readonly Stopwatch StopWatchShowChunkDetails = new(); + + private static bool WriteRequestsToLog { get; set; } = false; + private static bool WriteChunkDetailsToLog { get; set; } = false; + + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // Title + Console.Title = $"{Assembly.GetExecutingAssembly().GetName().Name} v{Assembly.GetExecutingAssembly().GetName().Version}"; + + // Main Details + static void MainDetails() + { + string mainDetails = $"details|{HTTPProxy.IsRunning}|{HTTPProxy.ListeningPort}|"; // 1, 2 + mainDetails += $"{HTTPProxy.AllRequests}|{HTTPProxy.MaxRequests}|{HTTPProxy.IsDpiActive}|"; // 3, 4, 5 + mainDetails += $"{HTTPProxyServer.StaticDPIBypassProgram.DPIBypassMode}|"; // 6 + mainDetails += $"{HTTPProxy.DPIBypassProgram.DPIBypassMode}|"; // 7 + mainDetails += $"{HTTPProxy.UpStreamProxyProgram.UpStreamMode}|"; // 8 + mainDetails += $"{HTTPProxy.DNSProgram.DNSMode}|"; // 9 + mainDetails += $"{HTTPProxy.FakeDNSProgram.FakeDnsMode}|"; // 10 + mainDetails += $"{HTTPProxy.BWListProgram.ListMode}|"; // 11 + mainDetails += $"{HTTPProxy.DontBypassProgram.DontBypassMode}"; // 12 + + WriteToStdout(mainDetails); + } + + // OnRequestReceived + HTTPProxy.OnRequestReceived -= HTTPProxy_OnRequestReceived; + HTTPProxy.OnRequestReceived += HTTPProxy_OnRequestReceived; + static void HTTPProxy_OnRequestReceived(object? sender, EventArgs e) + { + if (WriteRequestsToLog && HTTPProxy.IsRunning) + if (sender is string msg) + { + if (!StopWatchShowRequests.IsRunning) StopWatchShowRequests.Start(); + if (StopWatchShowRequests.ElapsedMilliseconds > 200) + { + WriteToStderr(msg); + + StopWatchShowRequests.Stop(); + StopWatchShowRequests.Reset(); + } + } + } + + // OnChunkDetailsReceived + DpiBypassStaticProgram.OnChunkDetailsReceived -= DpiBypassStaticProgram_OnChunkDetailsReceived; + DpiBypassStaticProgram.OnChunkDetailsReceived += DpiBypassStaticProgram_OnChunkDetailsReceived; + static void DpiBypassStaticProgram_OnChunkDetailsReceived(object? sender, EventArgs e) + { + if (WriteChunkDetailsToLog && HTTPProxy.IsRunning && HTTPProxy.IsDpiActive) + if (sender is string msg) + { + if (!StopWatchShowChunkDetails.IsRunning) StopWatchShowChunkDetails.Start(); + if (StopWatchShowChunkDetails.ElapsedMilliseconds > 200) + { + WriteToStderr(msg); + + StopWatchShowChunkDetails.Stop(); + StopWatchShowChunkDetails.Reset(); + } + } + } + + while (true) + { + string? input = Console.ReadLine(); + if (input == null) continue; + if (string.IsNullOrWhiteSpace(input)) continue; + input = input.Trim(); + + // Clear - Stop Writing + if (input.ToLower().Equals("c")) + { + WriteRequestsToLog = false; + WriteChunkDetailsToLog = false; + try + { + Console.Clear(); + } + catch (Exception ex) + { + WriteToStdout($"Error Console: {ex.Message}"); + } + } + + // Clear Screen + else if (input.ToLower().Equals("cls")) + { + try + { + Console.Clear(); + } + catch (Exception ex) + { + WriteToStdout($"Error Console: {ex.Message}"); + } + } + + // Get Status + else if (input.ToLower().Equals("out") || input.ToLower().Equals("status")) + MainDetails(); + + // Get Help + else if (input.ToLower().Equals("/?") || input.ToLower().Equals("help") || input.ToLower().Equals("/help") || input.ToLower().Equals("-help")) + Help(); + + // Static DPI Bypass Program + else if (input.ToLower().StartsWith("staticdpibypassprogram")) + { + // staticdpibypassprogram -Disable/-Program -BeforeSniChunks -ChunkMode(-sni/-sniextension/-allextensions) -SniChunks -AntiPatternOffset -FragmentDelay + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 2 && split.Length != 7) + { + WrongCommand(); + continue; + } + + HTTPProxyServer.Program.DPIBypass.Mode mode = HTTPProxyServer.Program.DPIBypass.Mode.Disable; + if (split[1].Equals("program")) mode = HTTPProxyServer.Program.DPIBypass.Mode.Program; + else if (split[1].Equals("disable")) mode = HTTPProxyServer.Program.DPIBypass.Mode.Disable; + + int beforeSniChunks = int.Parse(split[2]); + + HTTPProxyServer.Program.DPIBypass.ChunkMode chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.AllExtensions; + if (split[3].Equals("sni")) chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.SNI; + else if (split[3].Equals("sniextension")) chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.SniExtension; + else if (split[3].Equals("allextensions")) chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.AllExtensions; + + int sniChunks = int.Parse(split[4]); + int antiPatternOffset = int.Parse(split[5]); + int fragmentDelay = int.Parse(split[6]); + + DpiBypassStaticProgram.Set(mode, beforeSniChunks, chunkMode, sniChunks, antiPatternOffset, fragmentDelay); + HTTPProxy.EnableStaticDPIBypass(DpiBypassStaticProgram); + WriteToStdout($"Done (DpiBypassStaticProgram). Mode: {mode}. ChunkMode: {chunkMode}."); + } + + // DPIBypassProgram + else if (input.ToLower().StartsWith("dpibypassprogram")) + { + // dpibypassprogram -Disable/-Program -BeforeSniChunks -ChunkMode(-sni/-sniextension/-allextensions) -SniChunks -AntiPatternOffset -FragmentDelay + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 2 && split.Length != 7) + { + WrongCommand(); + continue; + } + + HTTPProxyServer.Program.DPIBypass.Mode mode = HTTPProxyServer.Program.DPIBypass.Mode.Disable; + if (split[1].Equals("program")) mode = HTTPProxyServer.Program.DPIBypass.Mode.Program; + else if (split[1].Equals("disable")) mode = HTTPProxyServer.Program.DPIBypass.Mode.Disable; + + int beforeSniChunks = int.Parse(split[2]); + + HTTPProxyServer.Program.DPIBypass.ChunkMode chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.AllExtensions; + if (split[3].Equals("sni")) chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.SNI; + else if (split[3].Equals("sniextension")) chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.SniExtension; + else if (split[3].Equals("allextensions")) chunkMode = HTTPProxyServer.Program.DPIBypass.ChunkMode.AllExtensions; + + int sniChunks = int.Parse(split[4]); + int antiPatternOffset = int.Parse(split[5]); + int fragmentDelay = int.Parse(split[6]); + + DpiBypassProgram.Set(mode, beforeSniChunks, chunkMode, sniChunks, antiPatternOffset, fragmentDelay); + HTTPProxy.EnableDPIBypass(DpiBypassProgram); + WriteToStdout($"Done (DpiBypassProgram). Mode: {mode}. ChunkMode: {chunkMode}."); + } + + // UpStreamProxyProgram + else if (input.ToLower().StartsWith("upstreamproxyprogram")) + { + // upstreamproxyprogram -disable/-http/-socks5 -proxyHost -proxyPort -onlyApplyToBlockedIPs(-true/-false) + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 5) + { + WrongCommand(); + continue; + } + + HTTPProxyServer.Program.UpStreamProxy.Mode proxyMode = HTTPProxyServer.Program.UpStreamProxy.Mode.Disable; + if (split[1].Equals("http")) proxyMode = HTTPProxyServer.Program.UpStreamProxy.Mode.HTTP; + else if (split[1].Equals("socks5")) proxyMode = HTTPProxyServer.Program.UpStreamProxy.Mode.SOCKS5; + else if (split[1].Equals("disable")) proxyMode = HTTPProxyServer.Program.UpStreamProxy.Mode.Disable; + + string proxyHost = split[2]; + int proxyPort = int.Parse(split[3]); + bool onlyApplyToBlockedIPs = bool.Parse(split[4]); + + UpStreamProxyProgram.Set(proxyMode, proxyHost, proxyPort, onlyApplyToBlockedIPs); + HTTPProxy.EnableUpStreamProxy(UpStreamProxyProgram); + WriteToStdout($"Done (UpStreamProxyProgram). Mode: {proxyMode}."); + } + + // DNSProgram + else if (input.ToLower().StartsWith("dnsprogram")) + { + // dnsprogram -disable/-doh/-plaindns/-system -dns/-null -dnsCleanIP/-null -timeoutSec -proxyScheme/-null + // dnsprogram -setcloudflareips -true -cfCleanIP -cfIpRange/-null + // dnsprogram -setcloudflareips -false + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 6 && split.Length != 5 && split.Length != 3) + { + WrongCommand(); + continue; + } + + if (split.Length == 6) + { + HTTPProxyServer.Program.Dns.Mode mode = HTTPProxyServer.Program.Dns.Mode.Disable; + if (split[1].Equals("doh")) mode = HTTPProxyServer.Program.Dns.Mode.DoH; + else if (split[1].Equals("plaindns")) mode = HTTPProxyServer.Program.Dns.Mode.PlainDNS; + else if (split[1].Equals("system")) mode = HTTPProxyServer.Program.Dns.Mode.System; + else if (split[1].Equals("disable")) mode = HTTPProxyServer.Program.Dns.Mode.Disable; + + string? dns = split[2]; + if (split[2].Equals("null")) dns = null; + + string? dnsCleanIP = split[3]; + if (split[3].Equals("null")) dnsCleanIP = null; + + int timeoutSec = int.Parse(split[4]); + + string? proxyScheme = split[5]; + if (split[5].Equals("null")) proxyScheme = null; + + DnsProgram.Set(mode, dns, dnsCleanIP, timeoutSec, proxyScheme); + WriteToStdout($"Done (DNSProgram). Mode: {mode}."); + } + else if (split[1].Equals("setcloudflareips")) + { + if (split[2].Equals("true")) + { + string cfCleanIP = split[3]; + string? cfIpRange = split[4].Replace(@"\n", Environment.NewLine); + if (split[4].Equals("null")) cfIpRange = null; + + DnsProgram.SetCloudflareIPs(cfCleanIP, cfIpRange); + DnsProgram.ChangeCloudflareIP = true; + WriteToStdout($"Done. CF Enabled. Clean IP: {cfCleanIP}"); + } + else if (split[2].Equals("false")) + { + DnsProgram.ChangeCloudflareIP = false; + WriteToStdout($"Done. CF Disabled."); + } + + } + + HTTPProxy.EnableDNS(DnsProgram); + } + + // FakeDNSProgram + else if (input.ToLower().StartsWith("fakednsprogram")) + { + // fakednsprogram -disable/-text/-file -filePathOrText + string[] split = input.Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 3) + { + WrongCommand(); + continue; + } + + HTTPProxyServer.Program.FakeDns.Mode mode = HTTPProxyServer.Program.FakeDns.Mode.Disable; + if (split[1].ToLower().Equals("text")) mode = HTTPProxyServer.Program.FakeDns.Mode.Text; + else if (split[1].ToLower().Equals("file")) mode = HTTPProxyServer.Program.FakeDns.Mode.File; + else if (split[1].ToLower().Equals("disable")) mode = HTTPProxyServer.Program.FakeDns.Mode.Disable; + + string filePathOrText = split[2]; + if (mode == HTTPProxyServer.Program.FakeDns.Mode.File) + filePathOrText = Path.GetFullPath(split[2]); + if (mode == HTTPProxyServer.Program.FakeDns.Mode.Text) + filePathOrText = split[2].ToLower().Replace(@"\n", Environment.NewLine); + + FakeDnsProgram.Set(mode, filePathOrText); + HTTPProxy.EnableFakeDNS(FakeDnsProgram); + WriteToStdout($"Done (FakeDNSProgram). Mode: {mode}."); + } + + // BWListProgram + else if (input.ToLower().StartsWith("bwlistprogram")) + { + // bwlistprogram -disable/-blacklistfile/-blacklisttext/-whitelistfile/-whitelisttext -filePathOrText + string[] split = input.Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 3) + { + WrongCommand(); + continue; + } + + HTTPProxyServer.Program.BlackWhiteList.Mode mode = HTTPProxyServer.Program.BlackWhiteList.Mode.Disable; + if (split[1].ToLower().Equals("blacklistfile")) mode = HTTPProxyServer.Program.BlackWhiteList.Mode.BlackListFile; + else if (split[1].ToLower().Equals("blacklisttext")) mode = HTTPProxyServer.Program.BlackWhiteList.Mode.BlackListText; + else if (split[1].ToLower().Equals("whitelistfile")) mode = HTTPProxyServer.Program.BlackWhiteList.Mode.WhiteListFile; + else if (split[1].ToLower().Equals("whitelisttext")) mode = HTTPProxyServer.Program.BlackWhiteList.Mode.WhiteListText; + else if (split[1].ToLower().Equals("disable")) mode = HTTPProxyServer.Program.BlackWhiteList.Mode.Disable; + + string filePathOrText = split[2]; + if (mode == HTTPProxyServer.Program.BlackWhiteList.Mode.BlackListFile || mode == HTTPProxyServer.Program.BlackWhiteList.Mode.WhiteListFile) + filePathOrText = Path.GetFullPath(split[2]); // Path + else if (mode == HTTPProxyServer.Program.BlackWhiteList.Mode.BlackListText || mode == HTTPProxyServer.Program.BlackWhiteList.Mode.WhiteListText) + filePathOrText = split[2].ToLower().Replace(@"\n", Environment.NewLine); // Text + + BWListProgram.Set(mode, filePathOrText); + HTTPProxy.EnableBlackWhiteList(BWListProgram); + WriteToStdout($"Done (BWListProgram). Mode: {mode}."); + } + + // DontBypassProgram + else if (input.ToLower().StartsWith("dontbypassprogram")) + { + // dontbypassprogram -disable/-text/-file -filePathOrText + string[] split = input.Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 3) + { + WrongCommand(); + continue; + } + + HTTPProxyServer.Program.DontBypass.Mode mode = HTTPProxyServer.Program.DontBypass.Mode.Disable; + if (split[1].ToLower().Equals("file")) mode = HTTPProxyServer.Program.DontBypass.Mode.File; + else if (split[1].ToLower().Equals("text")) mode = HTTPProxyServer.Program.DontBypass.Mode.Text; + else if (split[1].ToLower().Equals("disable")) mode = HTTPProxyServer.Program.DontBypass.Mode.Disable; + + string filePathOrText = split[2]; + if (mode == HTTPProxyServer.Program.DontBypass.Mode.File) + filePathOrText = Path.GetFullPath(split[2]); // Path + else if (mode == HTTPProxyServer.Program.DontBypass.Mode.Text) + filePathOrText = split[2].ToLower().Replace(@"\n", Environment.NewLine); // Text + + DontBypassProgram.Set(mode, filePathOrText); + HTTPProxy.EnableDontBypass(DontBypassProgram); + WriteToStdout($"Done (DontBypassProgram). Mode: {mode}."); + } + + // BlockPort80 + else if (input.ToLower().StartsWith("blockport80")) + { + // blockport80 -true/-false + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 2) + { + WrongCommand(); + continue; + } + + bool bp80 = bool.Parse(split[1]); + + HTTPProxy.BlockPort80 = bp80; + WriteToStdout($"Done (BlockPort80). Enabled: {bp80}"); + } + + // Kill All Requests + else if (input.ToLower().Equals("killall")) + { + HTTPProxy.KillAll(); + WriteToStdout("Done. Killed All Requests."); + } + + // KillOnCpuUsage + else if (input.ToLower().StartsWith("killoncpuusage")) + { + // killoncpuusage -percent + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 2) + { + WrongCommand(); + continue; + } + + int percent = int.Parse(split[1]); + HTTPProxy.KillOnCpuUsage = percent; + WriteToStdout($"Done (KillOnCpuUsage). {percent}%."); + } + + // WriteRequestsToLog + else if (input.ToLower().StartsWith("writerequests")) + { + // writerequests -true/-false + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 2) + { + WrongCommand(); + continue; + } + + bool enable = bool.Parse(split[1]); + WriteRequestsToLog = enable; + WriteToStdout($"Done. WriteRequestsToLog: {enable}"); + } + + // WriteChunkDetailsToLog + else if (input.ToLower().StartsWith("writechunkdetails")) + { + // writechunkdetails -true/-false + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 2) + { + WrongCommand(); + continue; + } + + bool enable = bool.Parse(split[1]); + WriteChunkDetailsToLog = enable; + WriteToStdout($"Done. WriteChunkDetailsToLog: {enable}"); + } + + // Start + else if (input.ToLower().StartsWith("start")) + { + // start -loopback/-any -port -requests + string[] split = input.ToLower().Split(" -", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (split.Length != 4) + { + WrongCommand(); + continue; + } + + IPAddress ip = IPAddress.Any; + if (split[1].Equals("loopback")) + ip = IPAddress.Loopback; + + int port = int.Parse(split[2]); + int requests = int.Parse(split[3]); + + // Check Port + bool isPortOpen = Network.IsPortOpen(IPAddress.Loopback.ToString(), port, 3); + if (isPortOpen) + { + WriteToStdout($"Port {port} is occupied."); + continue; + } + + HTTPProxy.Start(ip, port, requests); + WriteToStdout($"HTTP Proxy Server Started {ip}:{port}."); + } + + // Stop + else if (input.ToLower().Equals("stop")) + { + // stop + if (HTTPProxy.IsRunning) + { + HTTPProxy.Stop(); + WriteToStdout("HTTP Proxy Server Stopped."); + } + else + { + WriteToStdout("HTTP Proxy Server Already Stopped."); + } + } + + // Wrong Command + else if (input.Length > 0) + WrongCommand(); + } + + } + + private static void WriteToStdout(string msg) + { + Console.Out.WriteLine(msg); + } + + private static void WriteToStderr(string msg) + { + Console.Error.WriteLine(msg); + } + + private static void WrongCommand() + { + Console.WriteLine("Wrong command."); + } + + // Help + static void Help() + { + string NL = Environment.NewLine; + string help = string.Empty; + + help += $"{NL}{Console.Title}{NL}"; + + help += $"{NL}Stop Writing and Clear. Command:{NL}"; + help += $"c{NL}"; + + help += $"{NL}Clear Screen. Command:{NL}"; + help += $"cls{NL}"; + + help += $"{NL}Get Proxy Variables. Command:{NL}"; + help += $"out/status{NL}"; + + help += $"{NL}Activate Static DPI Bypass Program. Command:{NL}"; + help += $"staticdpibypassprogram -Disable/-Program -BeforeSniChunks -ChunkMode(-sni/-sniextension/-allextensions) -SniChunks -AntiPatternOffset -FragmentDelay{NL}"; + + help += $"{NL}Activate DPI Bypass Program. Command:{NL}"; + help += $"dpibypassprogram -Disable/-Program -BeforeSniChunks -ChunkMode(-sni/-sniextension/-allextensions) -SniChunks -AntiPatternOffset -FragmentDelay{NL}"; + + help += $"{NL}Activate Upstream Proxy Program. Command:{NL}"; + help += $"upstreamproxyprogram -disable/-http/-socks5 -proxyHost -proxyPort -onlyApplyToBlockedIPs(-true/-false){NL}"; + + help += $"{NL}Activate DNS Program (Use \\n for NewLine). Commands:{NL}"; + help += $"dnsprogram -disable/-doh/-plaindns/-system -dns/null -dnsCleanIP/-null -timeoutSec -proxyScheme/-null{NL}"; + help += $"dnsprogram -setcloudflareips -true -cfCleanIP -cfIpRange/-null{NL}"; + help += $"dnsprogram -setcloudflareips -false{NL}"; + + help += $"{NL}Activate Fake DNS Program (Use \\n for NewLine). Command:{NL}"; + help += $"fakednsprogram -disable/-text/-file -filePathOrText{NL}"; + + help += $"{NL}Activate Black White List Program (Use \\n for NewLine). Command:{NL}"; + help += $"bwlistprogram -disable/-blacklistfile/-blacklisttext/-whitelistfile/-whitelisttext -filePathOrText{NL}"; + + help += $"{NL}Activate DontBypass Program (Use \\n for NewLine). Command:{NL}"; + help += $"dontbypassprogram -disable/-text/-file -filePathOrText{NL}"; + + help += $"{NL}Block Port 80. Command:{NL}"; + help += $"blockport80 -true/-false{NL}"; + + help += $"{NL}Kill All Requests. Command:{NL}"; + help += $"killall{NL}"; + + help += $"{NL}Kill On CPU Usage. Command:{NL}"; + help += $"killoncpuusage -percent{NL}"; + + help += $"{NL}Write Requests to Stderr. Command:{NL}"; + help += $"writerequests -true/-false{NL}"; + + help += $"{NL}Write Chunk Details to Stderr. Command:{NL}"; + help += $"writechunkdetails -true/-false{NL}"; + + help += $"{NL}Start Proxy. Command:{NL}"; + help += $"start -loopback/-any -port -requests{NL}"; + + help += $"{NL}Stop Proxy. Command:{NL}"; + help += $"stop{NL}"; + + WriteToStdout(help); + } + + } +} \ No newline at end of file diff --git a/SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml b/SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 0000000..8b567ea --- /dev/null +++ b/SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,17 @@ + + + + + Release + Any CPU + bin\Release\net6.0-windows\publish\win-x86\ + FileSystem + net6.0-windows + win-x86 + false + True + False + + \ No newline at end of file diff --git a/SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml.user b/SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml.user new file mode 100644 index 0000000..6494ab4 --- /dev/null +++ b/SDCHttpProxy/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -0,0 +1,9 @@ + + + + + True|2023-07-13T14:35:41.3620207Z;True|2023-07-13T16:18:32.1937413+04:30;True|2023-07-13T16:15:12.7912555+04:30;True|2023-07-11T17:49:58.5303478+04:30;True|2023-07-11T17:48:16.0501641+04:30;True|2023-07-11T17:47:14.5784060+04:30;True|2023-07-11T17:23:14.1610326+04:30;True|2023-07-11T17:21:51.0688737+04:30;True|2023-07-11T17:19:19.3562446+04:30;True|2023-07-11T17:17:55.0213267+04:30;True|2023-07-11T17:16:05.7691953+04:30;True|2023-07-11T17:15:34.1944427+04:30;True|2023-07-11T16:20:36.9637572+04:30;True|2023-07-11T16:03:30.2266056+04:30;True|2023-07-11T15:59:53.9669303+04:30;True|2023-07-11T15:05:37.6740597+04:30;True|2023-07-11T14:39:02.5575979+04:30;True|2023-07-11T14:17:00.1969231+04:30;True|2023-07-11T13:45:10.7941487+04:30;True|2023-07-11T13:26:25.8096070+04:30;True|2023-07-11T13:14:48.6462618+04:30;True|2023-07-10T21:58:25.3272593+04:30;True|2023-07-10T20:57:26.9398262+04:30;True|2023-07-10T20:39:25.5746205+04:30;True|2023-07-09T22:14:20.1499986+04:30;True|2023-07-09T18:44:22.6065214+04:30;True|2023-07-09T18:42:47.9763889+04:30;True|2023-07-09T18:41:31.4060259+04:30;True|2023-07-09T18:37:53.8576359+04:30;True|2023-07-09T18:30:27.4164715+04:30;True|2023-07-09T18:28:12.7848282+04:30;True|2023-07-09T18:25:50.0882590+04:30;True|2023-07-09T18:20:19.3634727+04:30;True|2023-07-09T02:08:03.5143153+04:30;True|2023-07-08T22:41:08.7729941+04:30;True|2023-07-08T22:04:49.1784496+04:30;True|2023-07-08T22:03:09.2139698+04:30;True|2023-07-08T21:57:51.3048041+04:30;True|2023-07-08T21:25:49.1817709+04:30;True|2023-07-08T21:17:42.7085928+04:30;True|2023-07-08T21:11:55.0121365+04:30;True|2023-07-08T21:03:28.9643080+04:30;True|2023-07-08T20:50:08.2679489+04:30;True|2023-07-08T16:55:15.7837590+04:30;True|2023-07-08T03:48:47.2353214+04:30; + + \ No newline at end of file diff --git a/SDCHttpProxy/Properties/Resources.Designer.cs b/SDCHttpProxy/Properties/Resources.Designer.cs new file mode 100644 index 0000000..1658d84 --- /dev/null +++ b/SDCHttpProxy/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SDCHttpProxy.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SDCHttpProxy.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/SDCHttpProxy/Properties/Resources.resx b/SDCHttpProxy/Properties/Resources.resx new file mode 100644 index 0000000..4fdb1b6 --- /dev/null +++ b/SDCHttpProxy/Properties/Resources.resx @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SDCHttpProxy/Properties/Settings.Designer.cs b/SDCHttpProxy/Properties/Settings.Designer.cs new file mode 100644 index 0000000..6c04494 --- /dev/null +++ b/SDCHttpProxy/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SDCHttpProxy.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/SDCHttpProxy/Properties/Settings.settings b/SDCHttpProxy/Properties/Settings.settings new file mode 100644 index 0000000..049245f --- /dev/null +++ b/SDCHttpProxy/Properties/Settings.settings @@ -0,0 +1,6 @@ + + + + + + diff --git a/SDCHttpProxy/SDCHttpProxy.csproj b/SDCHttpProxy/SDCHttpProxy.csproj new file mode 100644 index 0000000..c94ef91 --- /dev/null +++ b/SDCHttpProxy/SDCHttpProxy.csproj @@ -0,0 +1,50 @@ + + + + Exe + net6.0-windows + enable + true + enable + $(AssemblyName) + $(VersionPrefix)2.2.5 + MSasanMH + SecureDNSClientMulti.ico + + + + + + + + + + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + \ No newline at end of file diff --git a/SDCHttpProxy/SDCHttpProxy.csproj.user b/SDCHttpProxy/SDCHttpProxy.csproj.user new file mode 100644 index 0000000..22f5077 --- /dev/null +++ b/SDCHttpProxy/SDCHttpProxy.csproj.user @@ -0,0 +1,6 @@ + + + + <_LastSelectedProfileId>D:\PPWin\SecureDNSClient\SDCHttpProxy\Properties\PublishProfiles\FolderProfile.pubxml + + \ No newline at end of file diff --git a/SDCHttpProxy/SecureDNSClientMulti.ico b/SDCHttpProxy/SecureDNSClientMulti.ico new file mode 100644 index 0000000000000000000000000000000000000000..6614c9dfd3e28d359b82d841c29daabb422397a2 GIT binary patch literal 188478 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 literal 0 HcmV?d00001 diff --git a/SecureDNSClient/Forms/FormDnsLookup.Designer.cs b/SecureDNSClient/Forms/FormDnsLookup.Designer.cs new file mode 100644 index 0000000..b7646dc --- /dev/null +++ b/SecureDNSClient/Forms/FormDnsLookup.Designer.cs @@ -0,0 +1,520 @@ +namespace SecureDNSClient +{ + partial class FormDnsLookup + { + /// + /// 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormDnsLookup)); + this.CustomRadioButtonSourceSDC = new CustomControls.CustomRadioButton(); + this.CustomRadioButtonSourceCustom = new CustomControls.CustomRadioButton(); + this.CustomTextBoxSourceCustom = new CustomControls.CustomTextBox(); + this.CustomLabelDomain = new CustomControls.CustomLabel(); + this.CustomTextBoxDomain = new CustomControls.CustomTextBox(); + this.CustomButtonLookup = new CustomControls.CustomButton(); + this.CustomTextBoxResult = new CustomControls.CustomTextBox(); + this.CustomCheckBoxHTTP3 = new CustomControls.CustomCheckBox(); + this.CustomCheckBoxVERIFY = new CustomControls.CustomCheckBox(); + this.CustomLabelRRTYPE = new CustomControls.CustomLabel(); + this.CustomTextBoxRRTYPE = new CustomControls.CustomTextBox(); + this.CustomLabelCLASS = new CustomControls.CustomLabel(); + this.CustomTextBoxCLASS = new CustomControls.CustomTextBox(); + this.CustomCheckBoxDNSSEC = new CustomControls.CustomCheckBox(); + this.CustomLabelSUBNET = new CustomControls.CustomLabel(); + this.CustomTextBoxSUBNET = new CustomControls.CustomTextBox(); + this.CustomCheckBoxPAD = new CustomControls.CustomCheckBox(); + this.CustomCheckBoxVERBOSE = new CustomControls.CustomCheckBox(); + this.CustomLabelEDNSOPT = new CustomControls.CustomLabel(); + this.CustomTextBoxEDNSOPT = new CustomControls.CustomTextBox(); + this.CustomButtonDefault = new CustomControls.CustomButton(); + this.SuspendLayout(); + // + // CustomRadioButtonSourceSDC + // + this.CustomRadioButtonSourceSDC.BackColor = System.Drawing.Color.DimGray; + this.CustomRadioButtonSourceSDC.BorderColor = System.Drawing.Color.Blue; + this.CustomRadioButtonSourceSDC.CheckColor = System.Drawing.Color.Blue; + this.CustomRadioButtonSourceSDC.Checked = true; + this.CustomRadioButtonSourceSDC.ForeColor = System.Drawing.Color.White; + this.CustomRadioButtonSourceSDC.Location = new System.Drawing.Point(12, 10); + this.CustomRadioButtonSourceSDC.Name = "CustomRadioButtonSourceSDC"; + this.CustomRadioButtonSourceSDC.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomRadioButtonSourceSDC.Size = new System.Drawing.Size(43, 17); + this.CustomRadioButtonSourceSDC.TabIndex = 0; + this.CustomRadioButtonSourceSDC.TabStop = true; + this.CustomRadioButtonSourceSDC.Text = "SDC"; + this.CustomRadioButtonSourceSDC.UseVisualStyleBackColor = false; + // + // CustomRadioButtonSourceCustom + // + this.CustomRadioButtonSourceCustom.BackColor = System.Drawing.Color.DimGray; + this.CustomRadioButtonSourceCustom.BorderColor = System.Drawing.Color.Blue; + this.CustomRadioButtonSourceCustom.CheckColor = System.Drawing.Color.Blue; + this.CustomRadioButtonSourceCustom.ForeColor = System.Drawing.Color.White; + this.CustomRadioButtonSourceCustom.Location = new System.Drawing.Point(61, 10); + this.CustomRadioButtonSourceCustom.Name = "CustomRadioButtonSourceCustom"; + this.CustomRadioButtonSourceCustom.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomRadioButtonSourceCustom.Size = new System.Drawing.Size(65, 17); + this.CustomRadioButtonSourceCustom.TabIndex = 1; + this.CustomRadioButtonSourceCustom.Text = "Custom:"; + this.CustomRadioButtonSourceCustom.UseVisualStyleBackColor = false; + // + // CustomTextBoxSourceCustom + // + this.CustomTextBoxSourceCustom.AcceptsReturn = false; + this.CustomTextBoxSourceCustom.AcceptsTab = false; + this.CustomTextBoxSourceCustom.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxSourceCustom.Border = true; + this.CustomTextBoxSourceCustom.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxSourceCustom.BorderSize = 1; + this.CustomTextBoxSourceCustom.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxSourceCustom.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxSourceCustom.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxSourceCustom.HideSelection = true; + this.CustomTextBoxSourceCustom.Location = new System.Drawing.Point(132, 8); + this.CustomTextBoxSourceCustom.MaxLength = 32767; + this.CustomTextBoxSourceCustom.Multiline = false; + this.CustomTextBoxSourceCustom.Name = "CustomTextBoxSourceCustom"; + this.CustomTextBoxSourceCustom.ReadOnly = false; + this.CustomTextBoxSourceCustom.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxSourceCustom.ShortcutsEnabled = true; + this.CustomTextBoxSourceCustom.Size = new System.Drawing.Size(200, 23); + this.CustomTextBoxSourceCustom.TabIndex = 0; + this.CustomTextBoxSourceCustom.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxSourceCustom.Texts = ""; + this.CustomTextBoxSourceCustom.UnderlinedStyle = true; + this.CustomTextBoxSourceCustom.UsePasswordChar = false; + this.CustomTextBoxSourceCustom.WordWrap = true; + // + // CustomLabelDomain + // + this.CustomLabelDomain.AutoSize = true; + this.CustomLabelDomain.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelDomain.Border = false; + this.CustomLabelDomain.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelDomain.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelDomain.ForeColor = System.Drawing.Color.White; + this.CustomLabelDomain.Location = new System.Drawing.Point(74, 50); + this.CustomLabelDomain.Name = "CustomLabelDomain"; + this.CustomLabelDomain.RoundedCorners = 0; + this.CustomLabelDomain.Size = new System.Drawing.Size(54, 17); + this.CustomLabelDomain.TabIndex = 3; + this.CustomLabelDomain.Text = "Domain:"; + // + // CustomTextBoxDomain + // + this.CustomTextBoxDomain.AcceptsReturn = false; + this.CustomTextBoxDomain.AcceptsTab = false; + this.CustomTextBoxDomain.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxDomain.Border = true; + this.CustomTextBoxDomain.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxDomain.BorderSize = 1; + this.CustomTextBoxDomain.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxDomain.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxDomain.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxDomain.HideSelection = true; + this.CustomTextBoxDomain.Location = new System.Drawing.Point(132, 48); + this.CustomTextBoxDomain.MaxLength = 32767; + this.CustomTextBoxDomain.Multiline = false; + this.CustomTextBoxDomain.Name = "CustomTextBoxDomain"; + this.CustomTextBoxDomain.ReadOnly = false; + this.CustomTextBoxDomain.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxDomain.ShortcutsEnabled = true; + this.CustomTextBoxDomain.Size = new System.Drawing.Size(200, 23); + this.CustomTextBoxDomain.TabIndex = 0; + this.CustomTextBoxDomain.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxDomain.Texts = ""; + this.CustomTextBoxDomain.UnderlinedStyle = true; + this.CustomTextBoxDomain.UsePasswordChar = false; + this.CustomTextBoxDomain.WordWrap = true; + // + // CustomButtonLookup + // + this.CustomButtonLookup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.CustomButtonLookup.AutoSize = true; + this.CustomButtonLookup.BorderColor = System.Drawing.Color.Blue; + this.CustomButtonLookup.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomButtonLookup.Location = new System.Drawing.Point(370, 50); + this.CustomButtonLookup.Name = "CustomButtonLookup"; + this.CustomButtonLookup.RoundedCorners = 5; + this.CustomButtonLookup.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomButtonLookup.Size = new System.Drawing.Size(75, 27); + this.CustomButtonLookup.TabIndex = 7; + this.CustomButtonLookup.Text = "Lookup"; + this.CustomButtonLookup.UseVisualStyleBackColor = true; + this.CustomButtonLookup.Click += new System.EventHandler(this.CustomButtonLookup_Click); + // + // CustomTextBoxResult + // + this.CustomTextBoxResult.AcceptsReturn = false; + this.CustomTextBoxResult.AcceptsTab = false; + this.CustomTextBoxResult.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CustomTextBoxResult.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxResult.Border = true; + this.CustomTextBoxResult.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxResult.BorderSize = 1; + this.CustomTextBoxResult.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxResult.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxResult.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxResult.HideSelection = true; + this.CustomTextBoxResult.Location = new System.Drawing.Point(12, 187); + this.CustomTextBoxResult.MaxLength = 32767; + this.CustomTextBoxResult.MinimumSize = new System.Drawing.Size(0, 23); + this.CustomTextBoxResult.Multiline = true; + this.CustomTextBoxResult.Name = "CustomTextBoxResult"; + this.CustomTextBoxResult.ReadOnly = true; + this.CustomTextBoxResult.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.CustomTextBoxResult.ShortcutsEnabled = true; + this.CustomTextBoxResult.Size = new System.Drawing.Size(433, 262); + this.CustomTextBoxResult.TabIndex = 0; + this.CustomTextBoxResult.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxResult.Texts = ""; + this.CustomTextBoxResult.UnderlinedStyle = false; + this.CustomTextBoxResult.UsePasswordChar = false; + this.CustomTextBoxResult.WordWrap = true; + // + // CustomCheckBoxHTTP3 + // + this.CustomCheckBoxHTTP3.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxHTTP3.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxHTTP3.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxHTTP3.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxHTTP3.Location = new System.Drawing.Point(12, 80); + this.CustomCheckBoxHTTP3.Name = "CustomCheckBoxHTTP3"; + this.CustomCheckBoxHTTP3.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxHTTP3.Size = new System.Drawing.Size(107, 17); + this.CustomCheckBoxHTTP3.TabIndex = 10; + this.CustomCheckBoxHTTP3.Text = "HTTP/3 support"; + this.CustomCheckBoxHTTP3.UseVisualStyleBackColor = false; + // + // CustomCheckBoxVERIFY + // + this.CustomCheckBoxVERIFY.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxVERIFY.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxVERIFY.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxVERIFY.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxVERIFY.Location = new System.Drawing.Point(132, 80); + this.CustomCheckBoxVERIFY.Name = "CustomCheckBoxVERIFY"; + this.CustomCheckBoxVERIFY.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxVERIFY.Size = new System.Drawing.Size(189, 17); + this.CustomCheckBoxVERIFY.TabIndex = 14; + this.CustomCheckBoxVERIFY.Text = "Disable Certificates Verification"; + this.CustomCheckBoxVERIFY.UseVisualStyleBackColor = false; + // + // CustomLabelRRTYPE + // + this.CustomLabelRRTYPE.AutoSize = true; + this.CustomLabelRRTYPE.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelRRTYPE.Border = false; + this.CustomLabelRRTYPE.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelRRTYPE.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelRRTYPE.ForeColor = System.Drawing.Color.White; + this.CustomLabelRRTYPE.Location = new System.Drawing.Point(12, 130); + this.CustomLabelRRTYPE.Name = "CustomLabelRRTYPE"; + this.CustomLabelRRTYPE.RoundedCorners = 0; + this.CustomLabelRRTYPE.Size = new System.Drawing.Size(51, 17); + this.CustomLabelRRTYPE.TabIndex = 15; + this.CustomLabelRRTYPE.Text = "RRTYPE:"; + // + // CustomTextBoxRRTYPE + // + this.CustomTextBoxRRTYPE.AcceptsReturn = false; + this.CustomTextBoxRRTYPE.AcceptsTab = false; + this.CustomTextBoxRRTYPE.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxRRTYPE.Border = true; + this.CustomTextBoxRRTYPE.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxRRTYPE.BorderSize = 1; + this.CustomTextBoxRRTYPE.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxRRTYPE.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxRRTYPE.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxRRTYPE.HideSelection = true; + this.CustomTextBoxRRTYPE.Location = new System.Drawing.Point(69, 128); + this.CustomTextBoxRRTYPE.MaxLength = 32767; + this.CustomTextBoxRRTYPE.Multiline = false; + this.CustomTextBoxRRTYPE.Name = "CustomTextBoxRRTYPE"; + this.CustomTextBoxRRTYPE.ReadOnly = false; + this.CustomTextBoxRRTYPE.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxRRTYPE.ShortcutsEnabled = true; + this.CustomTextBoxRRTYPE.Size = new System.Drawing.Size(50, 23); + this.CustomTextBoxRRTYPE.TabIndex = 0; + this.CustomTextBoxRRTYPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxRRTYPE.Texts = "A"; + this.CustomTextBoxRRTYPE.UnderlinedStyle = true; + this.CustomTextBoxRRTYPE.UsePasswordChar = false; + this.CustomTextBoxRRTYPE.WordWrap = true; + // + // CustomLabelCLASS + // + this.CustomLabelCLASS.AutoSize = true; + this.CustomLabelCLASS.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelCLASS.Border = false; + this.CustomLabelCLASS.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelCLASS.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelCLASS.ForeColor = System.Drawing.Color.White; + this.CustomLabelCLASS.Location = new System.Drawing.Point(130, 130); + this.CustomLabelCLASS.Name = "CustomLabelCLASS"; + this.CustomLabelCLASS.RoundedCorners = 0; + this.CustomLabelCLASS.Size = new System.Drawing.Size(46, 17); + this.CustomLabelCLASS.TabIndex = 17; + this.CustomLabelCLASS.Text = "CLASS:"; + // + // CustomTextBoxCLASS + // + this.CustomTextBoxCLASS.AcceptsReturn = false; + this.CustomTextBoxCLASS.AcceptsTab = false; + this.CustomTextBoxCLASS.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxCLASS.Border = true; + this.CustomTextBoxCLASS.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxCLASS.BorderSize = 1; + this.CustomTextBoxCLASS.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxCLASS.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxCLASS.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxCLASS.HideSelection = true; + this.CustomTextBoxCLASS.Location = new System.Drawing.Point(182, 128); + this.CustomTextBoxCLASS.MaxLength = 32767; + this.CustomTextBoxCLASS.Multiline = false; + this.CustomTextBoxCLASS.Name = "CustomTextBoxCLASS"; + this.CustomTextBoxCLASS.ReadOnly = false; + this.CustomTextBoxCLASS.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxCLASS.ShortcutsEnabled = true; + this.CustomTextBoxCLASS.Size = new System.Drawing.Size(50, 23); + this.CustomTextBoxCLASS.TabIndex = 0; + this.CustomTextBoxCLASS.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxCLASS.Texts = "IN"; + this.CustomTextBoxCLASS.UnderlinedStyle = true; + this.CustomTextBoxCLASS.UsePasswordChar = false; + this.CustomTextBoxCLASS.WordWrap = true; + // + // CustomCheckBoxDNSSEC + // + this.CustomCheckBoxDNSSEC.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxDNSSEC.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxDNSSEC.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxDNSSEC.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxDNSSEC.Location = new System.Drawing.Point(12, 100); + this.CustomCheckBoxDNSSEC.Name = "CustomCheckBoxDNSSEC"; + this.CustomCheckBoxDNSSEC.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxDNSSEC.Size = new System.Drawing.Size(65, 17); + this.CustomCheckBoxDNSSEC.TabIndex = 19; + this.CustomCheckBoxDNSSEC.Text = "DNSSEC"; + this.CustomCheckBoxDNSSEC.UseVisualStyleBackColor = false; + // + // CustomLabelSUBNET + // + this.CustomLabelSUBNET.AutoSize = true; + this.CustomLabelSUBNET.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelSUBNET.Border = false; + this.CustomLabelSUBNET.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelSUBNET.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelSUBNET.ForeColor = System.Drawing.Color.White; + this.CustomLabelSUBNET.Location = new System.Drawing.Point(249, 130); + this.CustomLabelSUBNET.Name = "CustomLabelSUBNET"; + this.CustomLabelSUBNET.RoundedCorners = 0; + this.CustomLabelSUBNET.Size = new System.Drawing.Size(54, 17); + this.CustomLabelSUBNET.TabIndex = 20; + this.CustomLabelSUBNET.Text = "SUBNET:"; + // + // CustomTextBoxSUBNET + // + this.CustomTextBoxSUBNET.AcceptsReturn = false; + this.CustomTextBoxSUBNET.AcceptsTab = false; + this.CustomTextBoxSUBNET.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxSUBNET.Border = true; + this.CustomTextBoxSUBNET.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxSUBNET.BorderSize = 1; + this.CustomTextBoxSUBNET.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxSUBNET.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxSUBNET.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxSUBNET.HideSelection = true; + this.CustomTextBoxSUBNET.Location = new System.Drawing.Point(309, 128); + this.CustomTextBoxSUBNET.MaxLength = 32767; + this.CustomTextBoxSUBNET.Multiline = false; + this.CustomTextBoxSUBNET.Name = "CustomTextBoxSUBNET"; + this.CustomTextBoxSUBNET.ReadOnly = false; + this.CustomTextBoxSUBNET.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxSUBNET.ShortcutsEnabled = true; + this.CustomTextBoxSUBNET.Size = new System.Drawing.Size(100, 23); + this.CustomTextBoxSUBNET.TabIndex = 0; + this.CustomTextBoxSUBNET.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxSUBNET.Texts = ""; + this.CustomTextBoxSUBNET.UnderlinedStyle = true; + this.CustomTextBoxSUBNET.UsePasswordChar = false; + this.CustomTextBoxSUBNET.WordWrap = true; + // + // CustomCheckBoxPAD + // + this.CustomCheckBoxPAD.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxPAD.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxPAD.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxPAD.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxPAD.Location = new System.Drawing.Point(83, 100); + this.CustomCheckBoxPAD.Name = "CustomCheckBoxPAD"; + this.CustomCheckBoxPAD.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxPAD.Size = new System.Drawing.Size(132, 17); + this.CustomCheckBoxPAD.TabIndex = 22; + this.CustomCheckBoxPAD.Text = "Add EDNS0 Padding"; + this.CustomCheckBoxPAD.UseVisualStyleBackColor = false; + // + // CustomCheckBoxVERBOSE + // + this.CustomCheckBoxVERBOSE.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxVERBOSE.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxVERBOSE.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxVERBOSE.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxVERBOSE.Location = new System.Drawing.Point(221, 100); + this.CustomCheckBoxVERBOSE.Name = "CustomCheckBoxVERBOSE"; + this.CustomCheckBoxVERBOSE.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxVERBOSE.Size = new System.Drawing.Size(113, 17); + this.CustomCheckBoxVERBOSE.TabIndex = 23; + this.CustomCheckBoxVERBOSE.Text = "Verbose Logging"; + this.CustomCheckBoxVERBOSE.UseVisualStyleBackColor = false; + // + // CustomLabelEDNSOPT + // + this.CustomLabelEDNSOPT.AutoSize = true; + this.CustomLabelEDNSOPT.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelEDNSOPT.Border = false; + this.CustomLabelEDNSOPT.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelEDNSOPT.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelEDNSOPT.ForeColor = System.Drawing.Color.White; + this.CustomLabelEDNSOPT.Location = new System.Drawing.Point(12, 160); + this.CustomLabelEDNSOPT.Name = "CustomLabelEDNSOPT"; + this.CustomLabelEDNSOPT.RoundedCorners = 0; + this.CustomLabelEDNSOPT.Size = new System.Drawing.Size(82, 17); + this.CustomLabelEDNSOPT.TabIndex = 24; + this.CustomLabelEDNSOPT.Text = "Specify EDNS:"; + // + // CustomTextBoxEDNSOPT + // + this.CustomTextBoxEDNSOPT.AcceptsReturn = false; + this.CustomTextBoxEDNSOPT.AcceptsTab = false; + this.CustomTextBoxEDNSOPT.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxEDNSOPT.Border = true; + this.CustomTextBoxEDNSOPT.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxEDNSOPT.BorderSize = 1; + this.CustomTextBoxEDNSOPT.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxEDNSOPT.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxEDNSOPT.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxEDNSOPT.HideSelection = true; + this.CustomTextBoxEDNSOPT.Location = new System.Drawing.Point(100, 158); + this.CustomTextBoxEDNSOPT.MaxLength = 32767; + this.CustomTextBoxEDNSOPT.Multiline = false; + this.CustomTextBoxEDNSOPT.Name = "CustomTextBoxEDNSOPT"; + this.CustomTextBoxEDNSOPT.ReadOnly = false; + this.CustomTextBoxEDNSOPT.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxEDNSOPT.ShortcutsEnabled = true; + this.CustomTextBoxEDNSOPT.Size = new System.Drawing.Size(200, 23); + this.CustomTextBoxEDNSOPT.TabIndex = 0; + this.CustomTextBoxEDNSOPT.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxEDNSOPT.Texts = ""; + this.CustomTextBoxEDNSOPT.UnderlinedStyle = true; + this.CustomTextBoxEDNSOPT.UsePasswordChar = false; + this.CustomTextBoxEDNSOPT.WordWrap = true; + // + // CustomButtonDefault + // + this.CustomButtonDefault.AutoSize = true; + this.CustomButtonDefault.BorderColor = System.Drawing.Color.Blue; + this.CustomButtonDefault.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomButtonDefault.Location = new System.Drawing.Point(370, 12); + this.CustomButtonDefault.Name = "CustomButtonDefault"; + this.CustomButtonDefault.RoundedCorners = 5; + this.CustomButtonDefault.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomButtonDefault.Size = new System.Drawing.Size(75, 27); + this.CustomButtonDefault.TabIndex = 26; + this.CustomButtonDefault.Text = "Default"; + this.CustomButtonDefault.UseVisualStyleBackColor = true; + this.CustomButtonDefault.Click += new System.EventHandler(this.CustomButtonDefault_Click); + // + // FormDnsLookup + // + this.AcceptButton = this.CustomButtonLookup; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.DimGray; + this.ClientSize = new System.Drawing.Size(459, 461); + this.Controls.Add(this.CustomButtonDefault); + this.Controls.Add(this.CustomTextBoxEDNSOPT); + this.Controls.Add(this.CustomLabelEDNSOPT); + this.Controls.Add(this.CustomCheckBoxVERBOSE); + this.Controls.Add(this.CustomCheckBoxPAD); + this.Controls.Add(this.CustomTextBoxSUBNET); + this.Controls.Add(this.CustomLabelSUBNET); + this.Controls.Add(this.CustomCheckBoxDNSSEC); + this.Controls.Add(this.CustomTextBoxCLASS); + this.Controls.Add(this.CustomLabelCLASS); + this.Controls.Add(this.CustomTextBoxRRTYPE); + this.Controls.Add(this.CustomLabelRRTYPE); + this.Controls.Add(this.CustomCheckBoxVERIFY); + this.Controls.Add(this.CustomCheckBoxHTTP3); + this.Controls.Add(this.CustomTextBoxResult); + this.Controls.Add(this.CustomButtonLookup); + this.Controls.Add(this.CustomTextBoxDomain); + this.Controls.Add(this.CustomLabelDomain); + this.Controls.Add(this.CustomTextBoxSourceCustom); + this.Controls.Add(this.CustomRadioButtonSourceCustom); + this.Controls.Add(this.CustomRadioButtonSourceSDC); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(475, 500); + this.MinimumSize = new System.Drawing.Size(475, 500); + this.Name = "FormDnsLookup"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "DNS Lookup"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormDnsLookup_FormClosing); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private CustomControls.CustomRadioButton CustomRadioButtonSourceSDC; + private CustomControls.CustomRadioButton CustomRadioButtonSourceCustom; + private CustomControls.CustomTextBox CustomTextBoxSourceCustom; + private CustomControls.CustomLabel CustomLabelDomain; + private CustomControls.CustomTextBox CustomTextBoxDomain; + private CustomControls.CustomButton CustomButtonLookup; + private CustomControls.CustomTextBox CustomTextBoxResult; + private CustomControls.CustomCheckBox CustomCheckBoxHTTP3; + private CustomControls.CustomCheckBox CustomCheckBoxVERIFY; + private CustomControls.CustomLabel CustomLabelRRTYPE; + private CustomControls.CustomTextBox CustomTextBoxRRTYPE; + private CustomControls.CustomLabel CustomLabelCLASS; + private CustomControls.CustomTextBox CustomTextBoxCLASS; + private CustomControls.CustomCheckBox CustomCheckBoxDNSSEC; + private CustomControls.CustomLabel CustomLabelSUBNET; + private CustomControls.CustomTextBox CustomTextBoxSUBNET; + private CustomControls.CustomCheckBox CustomCheckBoxPAD; + private CustomControls.CustomCheckBox CustomCheckBoxVERBOSE; + private CustomControls.CustomLabel CustomLabelEDNSOPT; + private CustomControls.CustomTextBox CustomTextBoxEDNSOPT; + private CustomControls.CustomButton CustomButtonDefault; + } +} \ No newline at end of file diff --git a/SecureDNSClient/Forms/FormDnsLookup.cs b/SecureDNSClient/Forms/FormDnsLookup.cs new file mode 100644 index 0000000..9f57875 --- /dev/null +++ b/SecureDNSClient/Forms/FormDnsLookup.cs @@ -0,0 +1,222 @@ +using CustomControls; +using MsmhTools; +using MsmhTools.Themes; +using System.Diagnostics; +using System.Net; + +namespace SecureDNSClient +{ + public partial class FormDnsLookup : Form + { + // Settings XML path + private static readonly string SettingsXmlPath = Path.GetFullPath(SecureDNS.CurrentPath + "DnsLookupSettings.xml"); + private readonly Settings AppSettings; + private List ResultList = new(); + private int PID = -1; + + public FormDnsLookup() + { + InitializeComponent(); + + // Load Theme + Theme.LoadTheme(this, Theme.Themes.Dark); + Controllers.SetDarkControl(CustomTextBoxResult); + + // Set Tooltips + CustomRadioButtonSourceSDC.SetToolTip("Info", "SDC must be Online."); + CustomRadioButtonSourceCustom.SetToolTip("Supported DNS", "Plain DNS, DoH (https://), DoT (tls://), DoQ (quic://), DNSCrypt (sdns://)."); + CustomLabelSUBNET.SetToolTip("Info", "e.g. 1.2.3.4/24"); + string ednsopt = $"Specify EDNS option with code point code and optionally payload of value as a hexadecimal string:"; + ednsopt += $"{Environment.NewLine}code:value"; + ednsopt += $"{Environment.NewLine}65074:3132333435363738"; + CustomLabelEDNSOPT.SetToolTip("Info", ednsopt); + + // Initialize and load Settings + if (File.Exists(SettingsXmlPath) && Xml.IsValidXMLFile(SettingsXmlPath)) + AppSettings = new(this, SettingsXmlPath); + else + AppSettings = new(this); + + CustomTextBoxResult.Text = string.Empty; + } + + private void CustomButtonDefault_Click(object sender, EventArgs e) + { + CustomRadioButtonSourceSDC.Checked = true; + CustomRadioButtonSourceCustom.Checked = false; + CustomCheckBoxHTTP3.Checked = false; + CustomCheckBoxVERIFY.Checked = false; + CustomCheckBoxDNSSEC.Checked = false; + CustomCheckBoxPAD.Checked = false; + CustomCheckBoxVERBOSE.Checked = false; + CustomTextBoxRRTYPE.Text = "A"; + CustomTextBoxCLASS.Text = "IN"; + CustomTextBoxSUBNET.Text = string.Empty; + CustomTextBoxEDNSOPT.Text = string.Empty; + } + + private async void CustomButtonLookup_Click(object sender, EventArgs e) + { + // Kill previous task + if (PID != -1) ProcessManager.KillProcessByPID(PID); + + CustomTextBoxResult.Text = string.Empty; + + if (!File.Exists(SecureDNS.DnsLookup)) + { + CustomTextBoxResult.Text = "Binary is missing."; + return; + } + + string dns = $"{IPAddress.Loopback}:53"; + if (CustomRadioButtonSourceCustom.Checked) + dns = CustomTextBoxSourceCustom.Text; + + if (!FormMain.IsDnsProtocolSupported(dns)) + { + CustomTextBoxResult.Text = "DNS is not supported."; + return; + } + + if (CustomRadioButtonSourceSDC.Checked && !FormMain.IsDNSConnected) + { + CustomTextBoxResult.Text = "SDC is not Online."; + return; + } + + string domain = CustomTextBoxDomain.Text; + + if (string.IsNullOrEmpty(domain) || string.IsNullOrWhiteSpace(domain)) + { + CustomTextBoxResult.Text = "Domain field is empty."; + return; + } + + string args = $"{domain} {dns}"; + + CustomTextBoxResult.Text = $"Looking Up {domain}..."; + + string result; + + using Process process = new(); + process.StartInfo.FileName = SecureDNS.DnsLookup; + process.StartInfo.Arguments = args; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + process.StartInfo.UseShellExecute = false; + process.StartInfo.RedirectStandardInput = true; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.RedirectStandardError = true; + process.StartInfo.WorkingDirectory = AppContext.BaseDirectory; + + if (CustomCheckBoxHTTP3.Checked) + process.StartInfo.EnvironmentVariables["HTTP3"] = "1"; + else + process.StartInfo.EnvironmentVariables["HTTP3"] = ""; + + if (CustomCheckBoxVERIFY.Checked) + process.StartInfo.EnvironmentVariables["VERIFY"] = "0"; + else + process.StartInfo.EnvironmentVariables["VERIFY"] = ""; + + if (CustomCheckBoxDNSSEC.Checked) + process.StartInfo.EnvironmentVariables["DNSSEC"] = "1"; + else + process.StartInfo.EnvironmentVariables["DNSSEC"] = ""; + + if (CustomCheckBoxPAD.Checked) + process.StartInfo.EnvironmentVariables["PAD"] = "1"; + else + process.StartInfo.EnvironmentVariables["PAD"] = ""; + + if (CustomCheckBoxVERBOSE.Checked) + process.StartInfo.EnvironmentVariables["VERBOSE"] = "1"; + else + process.StartInfo.EnvironmentVariables["VERBOSE"] = ""; + + string rrtype = CustomTextBoxRRTYPE.Text.Trim(); + if (string.IsNullOrWhiteSpace(rrtype)) rrtype = "A"; + process.StartInfo.EnvironmentVariables["RRTYPE"] = rrtype; + + string dnsClass = CustomTextBoxCLASS.Text.Trim(); + if (string.IsNullOrWhiteSpace(dnsClass)) dnsClass = "IN"; + process.StartInfo.EnvironmentVariables["CLASS"] = dnsClass; + + string dnsSubnet = CustomTextBoxSUBNET.Text.Trim(); + if (string.IsNullOrWhiteSpace(dnsSubnet)) dnsSubnet = string.Empty; + process.StartInfo.EnvironmentVariables["SUBNET"] = dnsSubnet; + + string dnsEDNSOPT = CustomTextBoxEDNSOPT.Text.Trim(); + if (string.IsNullOrWhiteSpace(dnsEDNSOPT)) dnsEDNSOPT = string.Empty; + process.StartInfo.EnvironmentVariables["EDNSOPT"] = dnsEDNSOPT; + + try + { + await Task.Run(() => process.Start()); + PID = process.Id; + } + catch (Exception ex) + { + result = Environment.NewLine + ex.Message; + PID = -1; + } + + string stdout = string.Empty; + string errout = string.Empty; + + await Task.Run(() => + { + stdout = process.StandardOutput.ReadToEnd().ReplaceLineEndings(Environment.NewLine); + errout = process.StandardError.ReadToEnd().ReplaceLineEndings(Environment.NewLine); + }); + + result = stdout + Environment.NewLine + errout; + + string resultOut = string.Empty; + string remove1 = "dnslookup result "; + ResultList = result.SplitToLines(); + for (int n = 0; n < ResultList.Count; n++) + { + if (n == 0) continue; + string line = ResultList[n]; + if (n == 1 && string.IsNullOrEmpty(line)) continue; + if (line.Contains(remove1)) line = line.Replace(remove1, string.Empty); + resultOut += line + Environment.NewLine; + } + + if (resultOut.Length > 2) + CustomTextBoxResult.Text = resultOut; + + try + { + process.Kill(); + PID = -1; + } + catch (Exception) + { + // do nothing + } + } + + private async void FormDnsLookup_FormClosing(object sender, FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing || e.CloseReason == CloseReason.WindowsShutDown) + { + CustomTextBoxResult.Text = string.Empty; + + // Select Control type and properties to save + AppSettings.AddSelectedControlAndProperty(typeof(CustomRadioButton), "Checked"); + AppSettings.AddSelectedControlAndProperty(typeof(CustomTextBox), "Text"); + AppSettings.AddSelectedControlAndProperty(typeof(CustomTextBox), "Texts"); + AppSettings.AddSelectedControlAndProperty(typeof(CustomCheckBox), "Checked"); + + // Add Settings to save + AppSettings.AddSelectedSettings(this); + + // Save Application Settings + await AppSettings.SaveAsync(SettingsXmlPath); + } + } + + } +} diff --git a/SecureDNSClient/Forms/FormDnsLookup.resx b/SecureDNSClient/Forms/FormDnsLookup.resx new file mode 100644 index 0000000..f852953 --- /dev/null +++ b/SecureDNSClient/Forms/FormDnsLookup.resx @@ -0,0 +1,3207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAkAEBAAAAEAIABoBAAAlgAAABgYAAABACAAiAkAAP4EAAAgIAAAAQAgAKgQAACGDgAAMDAAAAEA + IACoJQAALh8AAEBAAAABACAAKEIAANZEAABISAAAAQAgAIhUAAD+hgAAUFAAAAEAIADoZwAAhtsAAGBg + AAABACAAqJQAAG5DAQCAgAAAAQAgACgIAQAW2AEAKAAAABAAAAAgAAAAAQAgAAAAAAAABAAAEwsAABML + AAAAAAAAAAAAAP+QHgD/kB4A/5AeAPmOJQAAH/8ES1ffKFRZ1V9XWtOOWVvQqFxcza9cXM2kXFzNg1xc + zUlcXM0OXFzNAFxczQD+jx0B/5AeF/+QHkD/kB5k2INInrd5a96mdH75kG2V/3NjtP9dXMz/W1zO/1xc + zf9cXM3xXFzNtFxczThcXM0A/5Aej/+QHtP/kB71/5Ae//+QHv//kB3//5Ad//2PIf/sijL/t3lr/3Bi + uO1bXM7yXFzN/1xczf9cXM3ZXFzNO/+QHuz/kB7//5Ae//+QHv30jCr+940n8P+QHuv/kB79/5Ad//+Q + Hf/vizDOhGmhZ1tczt1cXM3/XFzN/1xczbP/kB7t/5Ae7f+QHqP5jiVdnHCIerV4bkH/kRks/5AedP+Q + HvD/kB7//5Ac/u6LMIVaW8/AXFzN/1xczf9cXM3o/5AemP+QHkL/kB0E/5MTAP/FAADviy8A/5EaAPmO + JBb/kB7U/5Ae//+RHP/Tgk3zX13J+Fxczf9cXM3/XFzN4/6QHgT/kB4A/5AeAP2QJwD/kB0Q/5AdLPaN + J1n4jiWu/5Ae+f+QHv//kRv/zoBS/19dyf9cXM3/XFzN/1xczZ7/kB4A/5AeBf+QHkH/kB6S/5Aeyv+Q + Hur/kB78/5Ae//+QHv//kB7//5Ad/6t1eP9bXM7/XFzN+1xcza1cXM0g/5AeDf+QHoj/kB7x/5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//pAf/9OCTfNwYrjZWlvPqlxczVxcXM0PXFzNAP+QHm//kB76/5Ae//+Q + Hv//kBz//5Ec//yPIv/wiy78944mxPOMK3KPbJY8UVjZG11cywRcXM0AXFzNAFxczQD/kB7C/5Ae//+Q + Hv//kB3734ZA9K12dv+ObJf/eGWv5YNooimdcYcAv3xiAIFopQBaW9AAXFzNBVxczUhcXM07/5Ae0v+Q + Hv//kB7//5Eb04BnpoVYW9H8WVvR/1lb0PhWWtOHZF7EMe+LL0GpdXpCWVvQV1xczadcXM3vXFzNcf+Q + HqP/kB7//5Ae//+QHerghj91cmO2y2hgwP9vYrn/iWqc/8V+XO33jSfyjWyY81lb0PtcXM3/XFzN/1xc + zXH/kB40/5Ae1P+QHv//kB7//5Ad9vKMK+7hhz7/6Yk1//mOJP//kBz/+48i/4prnP9ZW9D9XFzN71xc + zchcXM1I/5AfAP+QHjT/kB6v/5Ae8P+QHv//kB3//5Ec//+QHf//kB7//5Ae9f2PIdWccYiEVlrTV1xc + zTRcXM0RXFzNAf6PHAD/kB4A/5AeDP+QHkf/kB6D/5AepP+QHqz/kB6g/5Aef/+QHlD/kB0fAAD/AGJe + xwBcXM0AXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAAAAAACQAAEwsAABMLAAAAAAAAAAAAAAAA + AAD/jxwA/5kwAP+QHgD/kw8A/6QAAHtmqwBrYb0AADP/AVpbzxZcXM04XFzNWVxczXBcXM19XFzNflxc + zXJcXM1eXFzNOlxczRZcXM4AXFzNAFtbzABbW8wAW1vMAP+QHgD/kB4A/5AeAP+QHgD/kB4AnnKHAHdk + rxRnX8FPYV7HlV5dy8tbXM7rWVvQ+Fpbz/xcXM3/XFzN/1xczf1cXM35XFzN61xczcpcXM2DXFzNKV1d + zgBcXM0AXFzNAP+QHgD/kB0D/5AeHf+QHkr/kB53/5AdlueIN8fSgk74zIBV/8V+XP+4eWr/n3GF/35n + qP9iXsb/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWdcXM0FXFzNAP+QHlH/kB6f/5Ae2v+Q + Hvf/kB7//5Ae//+QHf//kRz//5Eb//+RG///kRv//5Ae//OMKv/OgVL/i2ua/19dyv5bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczfZcXM1vWlrKAv+QHtr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHf//kRv/9Y0o/757ZNxoYMCYW1zO0Vxczf5cXM3/XFzN/1xczf9cXM3mXFzNQP+Q + Htz/kB7//5Ae//+QHv//kB7//5Ae//iOJf7viy//+Y4k7P+QHuv/kB76/5Ae//+QHv//kB7//5Ad//+R + G/j/kRp6ZF7EJlxczchcXM3/XFzN/1xczf9cXM3/XFzNof+QHtz/kB7//5Ae//+QHuj/kB6s/5AdbJpw + iqiHap6fz4FRNf+RGy//kB5T/5Aesf+QHvz/kB7//5Ae//+QHv//kB7n/5IXMVlb0JhcXM3/XFzN/1xc + zf9cXM3/XFzN1v+QHuD/kB7w/5Aek/+QHjL/kB0G/5EaAD5S7hMqTP8JzYBUAP+QHAD/kB4A/5AeGv+Q + HtD/kB7//5Ae//+QHv//kBz/zYBUrlpbz9pcXM3/XFzN/1xczf9cXM3/XFzN4f+QHo7/kB5M/pAdA/+Q + HgD/kB0A/94AAFxczQBeXcoA/5gBAO+LLgD2jSgA/I8hE/+QHsr/kB7//5Ae//+QHv//kRv/wHxh/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzNzP6QHgP/kB4A/5AeAP+QHgD+kB0A/5AeAP+QHgD/kB4A/5IWA/CL + LhXghj9I+I4lqP+QHvr/kB7//5Ae//+QHv//kRv/wXxg/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNif6Q + HgD+jxwA/5AeAP+QHgD+jxwC/5AeHP+QHkj/kB55/5Aepv2PIND7jyL1/pAf//+QHv//kB7//5Ae//+Q + Hv//kRz/rHZ3/1pbz/9cXM3/XFzN/1xczf9cXM3HXFzNI/+QHgD/kB4A/pAdBP+QHj//kB6X/5Ae2f+Q + Hvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/zjCv/gWim/1pbz/9cXM3/XFzN/Vxc + zb1cXM0xXFzNAP+QHgD/kB4R/5Aeiv+QHu7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//mOJf+qdXn/Xl3L/lxczexcXM2+XFzNaVxczRVcXM0AWlrKAP+QHQf/kB6O/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB7/9o0o57R4bsJkX8SXWlvPZVxc + zTNbW80NXFzNAFxczQBcXM0AW1vMAP+QHkn/kB7v/5Ae//+QHv//kB7//5Ae//+QHv//kRz//5Eb//+Q + Hf/6jyP/7Yoy/vGLLcb/kB5v3oVALExX3gz//wAAWlvPAFxczQBbW80AXl7NAFxczQBcXM0AW1vMAP+Q + HpP/kB7//5Ae//+QHv//kB7//5Ae//uPIv/liDr/x35a/6l1ev+Ma5r/dWSy5HplrCy+e2MA3oVBAG5i + uACbcIgA/54AAGRewwBcXM0AXFzNAFtbzQlcXM0+W1vMEf+QHrf/kB7//5Ae//+QHv//kB7//5Ec68B8 + YrFsYbv7Xl3L/1pbz/9aW9D/WlvP6FpbzzVcXM0AZl/BAN6GQQCZcowAVVrUAFxczQBcXM0HXFzNOVxc + zaRcXM3ZW1vMLP+QHrX/kB7//5Ae//+QHv//kB7//5EcvXVksjBaW8/dXFzN/1xczf9cXM3/XFzN/1tc + zcpXWtJjW1zOMuiIN0LzjCt7dWSyQ1tczmhcXM2tXFzN61xczf9cXM3lW1vMLP+QHof/kB7//5Ae//+Q + Hv//kB7//5Ae4f+QHj5cXM1wWVvQ9llb0P9ZW9D/WlvP/2Fex/98Zqv9unpo7fmOJfDghj/9Zl/C81tc + zv5cXM3/XFzN/1xczf9cXM3lW1vMLP+QHjP/kB7f/5Ae//+QHv//kB7//5Ae//+QHeH2jSiirXZ12Jdv + jv+ccIj/r3dz/9CBUP/xiy3//5Ae//+RG//dhUL/Zl/D/1tczv9cXM3/XFzN/1xczf9cXM3oW1vMLP+S + JwD/kB5l/5Ae8v+QHv//kB7//5Ae//+QHv//kB7//5Ad/v6QH///kB7//5Ec//+RG///kB3//5Ae//+R + HP/dhUL/Zl/D/1tczv9cXM3+XFzN71xczc5cXM2DXFzNEv+QHQD+jxwE/5AeXv+QHtf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/miDjmamC+pFtczoVcXM1hXFzNN1xc + zRRLS7gAXFzMAP+QHQD/kB0A/5AeAP+QHiT/kB5+/5Aex/+QHuv/kB75/5Ae/f+QHv//kB79/5Ae+v+Q + HvH/kB7f/5Aeuv+QHoP9jyA5wXxeA2dgwQBcXM0AXFzNAFxczQBbW8wAXFzMAP+PHwD+kB4A/pAdAP+Q + HgD/kB8A/5AdFP+QHjr/kB5f/5Aec/+QHn3/kB51/5AeZP+QHkb/kB4n/5AeDP+QHgD8jyEArnZzAAAx + /wBbW80AW1vMAFtbzAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADACgA + AAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXMwAW1vMAFxczQBcXM0AXFzNAFxczQBcXM0AXFzMB1xczRlcXM0tXFzNQFxczUxcXM1SXFzNUFxc + zUVcXM06XFzNI1xczQ1mZtoAXFzNAFxczABYWMUAW1vMAFtbywAAAAAAAAAAAAAAAAD/jxsA/5AdAP+P + GwD/kB4A/48cAP+QHQD/kRgAtnlrAP+4AABLVt8TV1rSP1pbz3hbXM6tXFzNz1xczeNcXM3tXFzN9Fxc + zfZcXM31XFzN8FxczepcXM3aXFzNu1xczYxcXM1GXFzMEFxczQBbW8wAW1vMAFxczABcXM0A/48dAP9+ + AAD/kB0A/5AeAP+QHgD/kR8A/pAdBP+UEQ2odHsxf2eng3VksspvYrnyamG+/2Zfwv9fXcr/WlvP/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM29XFzNUltbzAhcXM0AXFzNAFxc + zQD/kB4A/5AeAP+QHQb/kB0k/5AeUv+QHoT/kB6q/5AdwvOMK+PniDf/6Yk2/+eIOP/ihz3/2oRF/8d+ + Wv+tdnb/i2ub/2lgv/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zXFzNmFxc + zRhcXM0AW1vNAP+QHiL/kB5i/5Aeq/+QHt//kB75/5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ac//+R + HP//kRz//5Eb//+RHP/4jiX/3YVC/6Zzfv9rYbz/WlzP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNqltbzRVcXM0A/5Aeuf+QHv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//pAf/9mERv+NbJjxXFzN21xczfJcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzNhltbywP/kB7P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec//mOJO/Xg0l0W1zNQ1xc + zaNcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzNO/+QHs7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//I8h/vOMK//wiy7+/I8i6v+QHuz/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HOD/lBE3Mk75C1xcza1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2M/5Aezv+QHv//kB7//5Ae//+Q + Hv//kB7r/5Aeuv+RGn+odHuwgWil7o9slobjhzsw/5AcM/+QHk3/kB6J/5Ae4f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHq3/vgAGW1zOdlxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcH/kB7O/5Ae//+Q + Hv//kB7d/5Aeh/+QHjb/kB0LwHxhAE9Y2zNUWdVDAC3/A9qERgD/kB0A/5AeAP+RIgD/kB5E/5Ae5f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad7duERUpZW9CpXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN1v+Q + HtL/kB71/5Ael/+QHirOXgAA/5AeAP+QHQAAAP8AXFzOAFxczQBbW80AXVzMAP+WBwD/kB0A/5AdAP6Q + HQT/kB6x/5Ae//+QHv//kB7//5Ae//+QHv//kB39q3V43Fpb0PhcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3R/5Aeff+QHlj/kB0G/5AeAP+PHQD/kB0A/5AdAF1czABcXM0AXFzNAP+4AADoiDUA+IwiALd5 + awDmiDgA/pAeE/+QHsX/kB7//5Ae//+QHv//kB7//5Ae//+RHP+xd3L/W1zP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczbL7kB0B/5AeAP+QHgD/kB4A/40iAP6QHQD/jx0A/pEeAP6QHQD/kB4A/5AeAP6Q + HwD/kxcArXV1DNKCTT76jiSk/5Ae+v+QHv//kB7//5Ae//+QHv//kB7//5Ec/7J3cf9bXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM37XFzNcP6QHgD+kB0A/pAdAP+OGwD/kB4A/5AdAP+QHgD/kB4A/I8bAf+Q + HhD/kB4r/5AeT/2PIHzzjCq7940m7/6QH///kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/pHOA/1pb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcdbW8we/48cAP+QHgD/kB4A/5AeAP+QHgD/jx0C/5AdJP+Q + Hl3/kB6X/5Aexv+QHub/kB75/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//eN + J/+GaaD/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3hXFzNRlxczQD/jx0A/5AeAP+QHgD+kB0D/5AePP+Q + Hpj/kB7d/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/0YFP/2Vfw/9bXM7/XFzN/1xczf9cXM3/XFzNx1xczUNdXdEAW1vMAP+QHgD/kB4A/5AeFP+Q + Hof/kB7r/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/+uKM/+EaaL/WlvP/1xczf9cXM32XFzNy1xczXVcXM0bXFzNAFxczABcXMwA/5AdAP+Q + HRH/kB6i/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//6QH//ihz7/jGuZ91xczeJcXM2+XFzNiVxczUtbW80WXV3NAFxczQBgYOsAXFzNAFtb + ywD8jRYB/5Aeev+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHv7+kB/i5Ic7q5BslXdYWtFLW1zOJlxczQxfX88AXFzNAFtbzQBbW80AXFzNAFpa + ygBbW8wAWlrMAP+QHif/kB7Z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+R + G///kB3/+Y4l/+mJNv/piTbK/Y8gbvyPISmccIcF2YRHAF1cywBcXM0AXFzNAFtbzABbW80AX1/KAFxc + zgBcXMwAXFzNAFtbzABaWswA/5AeYv+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf//KM + LP/ehUH/w31e/6Z0ff+Iap3/c2O153BitzW+e2MA+48iAMt/VQAAI/8AWVrOAFtbzABbW80AW1vMAExM + 1gBcXM0AW1vNAFxczQBbW8wRW1vMIVpazAH/kB6P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/e6L + MOSkc3/6fGar/2hgwP9eXcv/WlvP/1pbz/9aW8/ZWVvQG1xczABqYLwAfWapAP2PHwD/jx4A/48dANuE + RQBcXMsAXFzNAFxczQBaWs0CXFzNOVxczbRcXM2jWlrLBv+QHp//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRzTs3hvTllb0N5aW8//W1zO/1xczf9cXM3/XFzN/1xczfhcXM1yW1vNBlxczQBiXsYA0oFOAP2P + Hwb/nQAGZV/DAFxczQBcXM0LXFzNOlxczZNcXM3nXFzN/1xczbJaWssG/5Aelf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHqqRbZMHXFzNmVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM2lWFrRWlda + 0TbTgkw7/5AdntqERX9WWtNIXFzNelxczbhcXM3tXFzN/1xczf9cXM3/XFzNsVpaywb/kB5o/5Ae+v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae1v+TEydKVuApWlvP1ltczv9cXM3/XFzN/1tczv9aW8//WlvQ/11c + zP9zY7T7r3Z07vKMLO7/kRz/rnZ0+Fpbz/dcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2xWlrLBv+Q + HSn/kB7Y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Aexf+RG1mPbJZwaGDA6WJexv9jXsb/aGDA/3Vk + sv+RbZP/vXtl/+iJNv/+kB///5Ad//+RHP+rdXj/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zbFaWssG/2wAAP+QHnX/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+QHuDliDnu1IJM/9WC + S//fhkD/7oox//uPIv//kRz//5Ad//+QHv//kB7//5Ec/6t1eP9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNrlpaywb/kB0A/pAdD/+QHp7/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP//kRv//5Eb//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kRz/q3V4/1pbz/9cXM3/XFzN/1xc + zf5cXM3vXFzNz1xczZRcXM09WlrLAf6QHgD+kB4A/pAdE/+QHoz/kB7w/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHP+0eG7oWVvQx1xc + za9cXM2PXFzNaFxczTlcXM0WWlrJAVxczQBbW8wA/48dAP6QHQD/kB0A/5AdBf+QHkr/kB62/5Ae8f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7n/5AeteeI + N0tFVOUPW1vNBl9f0ABcXM0AXFzNAFxczQBbW8wAXFzNAFZWwgD/jxsA/4snAP+QHQD/kB0A/5AeAP+Q + HQ7/kB5B/5AeiP+QHrv/kB7b/5Ae6v+QHvH/kB71/5Ae8/+QHu7/kB7m/5Ae0/+QHrn/kB6R/5AeXf+Q + Hi7+kB4KwHxhAF1cywBbW80AW1vMAFxczgBbW8wAVVW5AFtbywAAAAAAAAAAAAAAAAAAAAAA/pAfAP+P + HAD/kSAA/5AdAP+QHgD/kiIA/5AdDP+QHST/kB47/5AeR/+QHlD/kB5L/5AeQv+QHjP/kB4c/5AdC/+Z + TgD/kB4A/5AeAP6QHgD+jx8A/pAeAP+SGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA4AA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AA + AH8oAAAAMAAAAGAAAAABACAAAAAAAAAkAAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzNAFxczABaWssAXFzNAFxc + zQBcXM0AXFzNAF1dzQBZWcsDW1vMCFxczQ1bW8wRW1vMElxczRNbW8wRW1vNDVtbzQpbW8wGXl7SAFxc + zQBcXM0AW1vMAFtbzABZWcgAXV3NAF1dzQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWskAWlrHAFtbzABcXMwAXFzNAFxc + zQBcXM0AXFzMBFxczRhcXM03XFzNW1xczXpcXM2VXFzNp1xczbdcXM3CXFzNx1xczcpcXM3DXFzNtlxc + zaxcXM2gXFzNglxczV1cXM03W1vMHFtbywRcXM0AXFzMAFtbygBbW8sAWVnKAFtbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+NEwD/jx0A/pAdAP+QHACHap4AVlrSAFtb + zQBbXM4AXFzMCVxczSxcXM1jXFzNnFxczc1cXM3sXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfpcXM3tXFzN0VxczZRcXM1MXFzMFl1d0ABbW8wAXl7UAFpa + ygBcXMwAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP92AAD/jx0A/o8cAP+QHQD/kB0A/5AdAP+Q + HgDxiy0AAAD/Ak1X3CRWWtJmWVvQrlpb0OJaW8/7WlvP/1pbz/9aW8//WlvP/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zXFzNwlxc + zGBbW8wRXFzNAFtbzABcXMwAXFzNAAAAAAAAAAAA/48cAP+PHAD/kB4A/48dAP6QHQD/kB0A/5AeAP6Q + HAP/kB0R/5AdJf+QHjn/kRtQ34ZAebJ3cNerdXj7q3V4/6t1eP+lc37/nnGG/5hvjf+Na5n/eWWt/2th + vf9gXcn/W1zO/1pbz/9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2vW1vNQFpaywJcXM0AXFzNAFxczQAAAAAA/48fAP+QHQD/kB4A/5EfAP6Q + HQ7/kB0y/5AeY/+QHpn/kB7D/5Ae3f+QHu//kB72/pAf/P2PIP//kB3//5Ec//+RHP//kB7//Y8g//uP + Iv/4jiX/7osw/92FQv/Hflr/pnR9/3xmq/9iXsb/W1zP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN5FxczWdcXM0FXFzNAFxczQBaWswA/5EdAP6Q + HQ3/kB45/5Aee/+QHrr/kB7m/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kRz//pAf/+6LMP/Lf1b/lW6Q/2Zfwv9aW8//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze9cXM1vW1vNBVxc + zQBcXM0A/5AeVv+QHrL/kB7q/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz/+I4m/8yA + VP+FaaH/X13K/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3tW1vMWllZ0ABcXMwA/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHP/viy7/sHdy9mhgwNJbW87aXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN0ltbzCdcXM0A/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf++6KMKiYb4wzWFrRRVxczZJcXM3lXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczYdZWcwD/5Aer/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHfr/kRuP/6UACBxI + /wJcXM1IXFzN2Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdRbW80o/5Aer/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//uPIv/0jSn/74sv//OM + K/f+kB/n/5Ae7f+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB71/5AeZppwiABsY74AW1vNclxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfZcXM1h/5Aer/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9P+QHtT/kRun04JNqZNu + kv2FaaH/hGmizqVzfmH7jiIv/5AdPP6QHlH/kB5x/5Aeq/+QHuj/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae0v+QHiWXb44AXFzNP1xczfBcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf5cXM2U/5Aer/+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHtf/kB6U/5AeTP+Q + Hh7/6AACWVvQQ1lb0N1ZW9GcUFjaJf+YCADzjCsA/5AdAP+QHgD/kB4A/pAcCP+QHT//kB66/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHnZyY7YAXFzNS1xczfVcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM20/5Aer/+QHv//kB7//5Ae//+QHvv/kB7L/5Aebv+Q + HiL/jx4D/5AeAP+QHgCYb4wAW1zODlxczSxcXMwLW1vNAFFX1gCecIUA/5AcAP6QHQD+jx0A/pAdAP+Q + HQD/kB4s/5Ae1f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHb2kc4AkW1zOplxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2//5AesP+QHv//kB7//5Ae3/+Q + Hnf/kB0c/5EgAP+QHgD/kB4A/5AeAP+UDQBcXM0AXFzNAFxczQBcXM0AXFzMAFxczQBaWssAAAAAAP+P + GwD/jx0A/48eAP+PHgD+jhsB/5Ael/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//iO + Je2CaKTDWlvP+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM24/5AesP+Q + Hvv/kB6v/5AeNvuPHwH/kB0A/48dAP+QHQD/hiMA/48fAFxczQBcXM0AXFzNAFxczQBbW8wAW1vMAFtb + ywAAAAAAAAAAAAAAAABYWs4AwXtgAP+QGwD/kCAA/5Aejf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//iOJf+Ka5z/WlvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM2m/5AeU/+QHmL+kB4U/5AeAP6QHgD/kB4A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxoA/7IAAJlwjQD/lwAAg2ihAOSHOgD/kB4Y/5Aewv+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//yPIf+TbpH/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczftcXM15/5AeAP+QHgD+kB4A/5EeAP+PHwD+kB4A/48fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PIAD+jx0A/48eAP+QHgD/jxwA/5EZAOKGPQD3jSYALUz8BdiDRzH9jyCh/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yPIf+UbpH/WlvP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczelbW81B/pAeAP6QHQD7lCsA/4YBAP6QHgAAAAAAAAAAAAAA + AAD/jxsA/48cAP+PHAD/kB0A/pAeAP+PHQD/kB0A/5AeAP+QHgD/kSAA/5IVBN+FPxzOgFJT2oRFn/KM + K+L/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//qOI/+La5v/WVvQ/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcza9bW8wPAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48dAP+PHAD/jx0A/o8cAP6QHQD/kB4A/5AeAP6PGwH/kB0R/5AeKf+QHk3/kB53/5AeovqO + I9H4jiX2/Y8g//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//GL + Lf9+Z6n/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczUdcXM0AAAAAAAAA + AAAAAAAAAAAAAP+PHAD/jh0A/5AdAP+QHQD/kB4A/5EgAP6QHQ3/kB4v/5AeYP+QHpT/kB7B/5Ae4/+Q + HvX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/9yFRP9pYL//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNfVtb + zQVbW80AAAAAAAAAAAD/jx4A/Y8dAP6QHQD+kB4A/5AeAP6PHAT/kB4p/5Aeb/+QHrj/kB7l/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad/7N4b/9dXMz/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfNcXM2DXFzMC1xczQBcXM0AAAAAAP+OHAD/jxwA/pEgAP+QHgD+jx4D/5AdNf+QHpT/kB7e/5Ae/f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/6Yk1/3pmrP9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN11xczWBbW8wIXFzMAFxczQBZWcgA/48bAP+PGwD/ihIA/5AeAP+QHhX/kB58/5Ae4/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/6jiT/onKC/1xczP9cXM3/XFzN/1xc + zf9cXM3/XFzN/Vxczd5cXM2KXFzNKl5e0wBcXMwAXFzMAFVVwABbW8sA/44lAP6RIAD/kB4A/5AdI/+Q + Hq7/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//qOI/+wd3L/Y17G/1tc + zv9cXM3/XFzN/FxczeZcXM27XFzNcFxczSpaWs4DXFzNAFtbzABcXMwAW1vMAFpayQAAAAAA/pAcAP+Q + HQD/kB0a/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy/6Rz + f/9jXsX6W1zO6FxczchcXM2eXFzNaVxczTJbW80OXl7MAFxczQBbW80AW1vNAFxczQBcXM0AAAAAAAAA + AAAAAAAA/5AdAP+QHAb/kB6M/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yP + IfbehULZlm6Os15dy4RaW89bXFzMM1xczRVcXMwDXV3NAFxczQBbW80AWlrOAFtbzQBaWtAAWlrOAFdX + zwAAAAAAAAAAAAAAAAAAAAAA/5AeAP+QHT//kB7q/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//5Ad//6Q + H/z+kB7g/pAfofKMK1SWbo4iL037Cv+THgBbW84AXFzNAFxczQBcXM0AWlrMAFxczQBZWc0AWlrNAFdX + zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ZAeA/+QHpL/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP//kRz//pAf//SM + Kv/ihz3/1oNK1PGLLWz+kB4r+Y4kBvOMKwCdcIYAWVvOAFpbzwBWVswAXFzMAE9PowBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXM4AW1vLAFtbywBaWsoAW1vMAFpazABaWswA/5AdGf+QHsz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+QHf/5jiT/64oz/9eD + Sf++e2P/n3GF/4JopP9uYrnwZl/CTtqERQD3jiUA/I4iAO2MMwC5eWgAQlPkAFpazABaWskAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlZxwBYWMsAXFzNAFtbzQBfX9QAWlrLBFpazAFZWcwA/5AeQP+Q + Hun/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yPIf/riTT/y39W/6p1 + ef+PbJb/dmSx/2Zfwv9eXcv/WlvP/1pbz/9bW87PWVvQGFxczACgcoMA/5EaAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWskAWFjMAFxczQBbW80AXFzNAFtbzQlcXM1fXFzNkltb + zB5bW8wA/5AeWf+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8h3K52 + dON3ZLD/Yl7H/1tcz/9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3XW1vNH1xczQBcXM0AW1vNAF5e + zgD/jx0A/48eAP+PHgD/jx4A/48dAP6PHQDghj4AXV3MAFxczABcXM0AW1vMAFxczQBYWM4BXFzNL1xc + zZlcXM3zXFzN7ltbzDBbW8wA/5Aeaf+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7e+I4lQlpbz5RaW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNb1lZ + zwFcXM0AW1vNAGJiywBaW84A4IY+AP+QHQD/kB4A/5AdAP+jAABDVOYAXFzNAFxczQBcXM0AW1vLBFtb + zStcXM2BXFzN21xczf9cXM3/XFzN61tbzDBbW8wA/5Aeaf+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB6XACf/AFtbzlVcXM31XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN51xczXJcXM0aUlLKAFxczQBeXcoAvXtkAP+QHAX/kB49/5EaOQAr/wBjXsUAXFzMBFxc + zRpcXM1NXFzNmVxczd1cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AeVv+QHvT/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB6GtHhvAFxczRRcXM28XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflcXM3KXFzNillb0FlWWtM/qnV4Of2PIIL/kB3q7YowwGdf + wVJbXM1sXFzNnlxczc9cXM30XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AdM/+Q + HuH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB68/5AdE7l6aQBcXM1OXFzN7Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM//W1zO/2lgv/mbcInu5Ic67P+Q + Hvz/kRv/z4FR+2BdyfZcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61tb + zDBbW8wA/5AdEf+QHrn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB74/5Aeif+R + GBQAJf8DWFrQeltczvZbXM7/XFzN/1xczf9cXM3/W1zO/1tczv9aW8//WlvP/2Bdyf90ZLP/oHKE/9WD + Sv/5jiX//5Ad//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61tbzDBbW8wA/5EgAP+QHmj/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae+f+QHrv/kRtl2YNGPHJjtZlkXsT3YF3J/15dy/9gXcn/ZV/D/2xhu/9+Z6j/m3CJ/8N9 + Xv/oiTf//Y8g//+RHP//kB7//5Ae//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AdAP+QHRj/kB69/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB77/5Ad5PiOJdLWg0ryyH5Z/8R9Xv/Ifln/04JN/+OH + PP/xjC3//Y8g//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7VtbzDBbW8wA/48cAP+QHgD/kB5F/5Ae4/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz//5Eb//+R + G///kRv//5Ec//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/zIBU/2Bd + yf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNxltbzCNbW8wA/5AdAP6Q + HAD+jhoC/5AdYP+QHuf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM3uXFzN0FxczZ1cXM1XXFzNH1xc + zgJcXM0A/48fAP6QHAD+jx0A/44bA/+QHVX/kB7Y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRv/zYBT/mBdyfpcXM32XFzN61xczddcXM2/XFzNnlxczW5cXM09XFzNGltb + zAVcXM0AXFzNAFtbzQBcXM0AAAAAAP+PHAD/jx0A/5AdAP+RGQD/kB4z/5Aeov+QHvH/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/5og4yWRfxGJbW85PXFzNNFxczSBbW8wPWlrMA1xc + zgBcXM0AXFzNAFtbzABSUroAXFzNAGFhzABWVtAAAAAAAAAAAAD/jxwA/5AeAP+QHgD/kB4A/pAdC/+Q + HVP/kB66/5Ae7/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae8f+QHsr/kB6K/5EaNixN/wBhXsgAXFzNAFxc + zQBbW8wAW1vMAFtbywBcXMwAW1vKAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/5AfAP+P + HwD+kBsA/pAdAP+QHgD/kB0R/5AeRP+QHov/kB7N/5Ae7P+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf/kB7s/5Ae0/+QHqj/kB50/5AeRP6QHRn7jh8B/5AdAP+V + CwCrdXYAW1vNAFtbzQBbW8wAWlrOAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGwD+kBwA/5AeAP+PHgD/kB0A/5AeAP6PHAL/kB0a/5AeN/+QHl7/kB6F/5Aeof+Q + Hq3/kB65/5Aexf+QHsX/kB67/5AesP+QHqf/kB6R/5Aecv+QHlT/kB41/5AeHP+QHQb/kB8A/5AeAP6Q + HQD+kB4A/5AeAP6QHgD/kB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/ZIfAP+QHQD/kB0A/5AeAP+Q + HgD/licA/o8dBv6QHgr+kB0O/pAdEf6QHRH+kB0O/pAeC/6QHgj/jRoC/5AeAP+QHgD/kB4A/5AeAP+Q + HQD/kB0A/5AeAP+PGwD/jxwA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//wAAAA/AAD/4AAAAA8AAPwAAAAAAwAA4AAAAAADAAAAAAAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAHAAAAAAAAD/gAAAAAAAAfgAAAAAAAAHAAAAAAAAAPgA + AAAAAAAA8AAAAAAAAADAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABwAAAAAAAAAP + AAAAAAAAAH8AAAAAAAAPgAAAAAAAAH8AAAAAAAAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAAAAAAAAAMAAAAAADwAAwAAAAAB/AADwAAAAD/8AAP4AAAA//wAAKAAAAEAAAACAAAAAAQAgAAAA + AAAAQAAAEwsAABMLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8wAW1vLAFxc + zQBcXM0AW1vMAFtbywBbW80AXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFxczQBcXM0AXFzNAFtbzQBcXMwAXV3NAFxczABcXM0AXFzNAIaG6gBfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW80AW1vNAFxc + zABcXM0AW1vMAFtbywBcXM0AXFzNAFxczQBYWMgCW1vMDlxczRlbW80oW1vNQFxczE9cXM1fXFzNbVtb + zHZbW8x5XFzNflxczXxcXM1zXFzNZ1tbzV1cXM1VXFzMSFtbzC1cXM0YW1vMCltbzQBcXM0AXFzNAFxc + zQBERL0AXFzNAFtbywBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtb + zABaWsoAW1vMAFtbzQBcXMwAXFzNAFxczQBZWckCXFzNElxczTFcXM1fXFzNilxcza1cXM3MXFzN4Fxc + zetcXM3wXFzN9lxczftcXM3/XFzN/1xczf9cXM3/XFzN/lxczflcXM32XFzN8lxcze5cXM3gXFzNxlxc + zaNcXM19XFzNV1xczCdcXMwGW1vNAFxczABbW8sAXFzMAFtbzABbW8wAW1vMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyAA/48dAP+QGwB6ZaoAWFrMAFtbzABcXM0AW1vMBFxczRxcXM1KXFzNhlxczblcXM3jXFzN9lxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM3UXFzNlVxczVJcXMwbWlrIAltbzABbW8wAW1vMAFVV + yABfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + HAD+kB0A/5AeAP+QHgD/kB4A/48gAP+PHQD/kBsA34ZAAAAL/wFNV9sXV1rSTVlb0I9aW8/NW1zP71tc + zv9bXM7/W1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3xXFzNxVtb + zGtbW8waXV3OAFtbzQBRUcUAXl7PAFtbzABaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAeAP6Q + HgD/jx0A/pAdAP+PHQD/jxwA/pAdAP+QHgD/kB4A/5AeAP+QHgD/jhwE/5MTC8V+XBt9Zql0c2Ozv3Bi + t+9wYrj/cGO3/29iuP9sYbv/amC+/2hgwf9lX8P/YV3I/1tczv9aW8//WlzP/1tczv9cXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM32XFzNvVxczFBbW8wLWlrLAFpazABaWswAW1vNAFxczQAAAAAAAAAAAP6Q + HgD+kB4A/48dAP+QHgD+kB4A/48dAP6QHQD/kB4A/5EgAP6QHQz/kB0e/5AdPf+QHl7/kB56/5AelP+Q + Haj5jiS94IY/9uCGPv/liDn/6Ik2/+qJNf/miDj/3oZA/9iESP/Sgk7/zIBV/798Yv+odHv/lG6R/3tm + q/9sYbz/Yl7H/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3qXFzNmltbzCleXs4AW1vNAFxc + zQBcXM0AXFzNAAAAAAD/kB0A/pAeAP+PHQD/kB4A/5AeAP6PHAP+kB0Z/5AdQf+QHnT/kB6o/5Ae0v+Q + Hur/kB72/5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ac//+QHP//kBz//5Ac//+QHP//kRz//5Ec//+R + HP//kRz//pAf//eOJv/uijH/3YVC/8F8Yf+VbpD/cGK3/19dyv9aXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM2+XFzNOltbzQBcXM0AXFzNAFxczABbW8sA/5AdAP+QHgD+jxwE/5AeHP+QHlD/kB6O/5Aexv+Q + Huv/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/944m/+CGP/+3eWv/h2qf/2Je + x/9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczctcXM08WlrLAFxczABbW8sAW1vLAP+QHhD/kB4//5Aeh/+Q + Hsv/kB7x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kBz//5Ad/+6LMP+7emf/fWep/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNyFtbzDFdXc4AWlrKAFpa + yQD/kB50/5Ae6P+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae/+WIOv+mdH3/bWG7/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXMytXFzMF1tbzABbW80A/5Aekf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i/9CB + T/qCaKTTW1zOxFxczdxcXM3wXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN9ltbzG5YWMgCWlrLAP+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3+940n09KCTlNYW9EjW1vNTVxczYxcXM3YXFzN/Vxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3QW1vMKVxczQD/kB6Q/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3J/5IXN41smABYW9EEXFzMMFxc + zZ1cXM32XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+1tb + zXNRUc4B/5AekP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hr3+kB0m3YVBAFtbzQBbW80WW1vNpFxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM27W1vNF/+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//mOJP/0jSn/8Isu/+6LMP/4jibv/5Ae5v+Q + Huz/kB70/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Aekv+QHgr6jiIAXF3NAFtbzUBcXM3pXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN5FxczT3/kB6Q/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHuf/kB3L8Istsq52dPGZb4z/i2ua/4Rp + ovSObJeqw31fTP+RGjX/kB1F/pAeWf6QHXL/kB6T/5AeyP+QHvH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHuj/kB5L/5EfAGBdyABbW80bXFzNzlxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM1p/5AekP+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7g/5AeqP+QHnD/kB44/5UMF4Fo + pStbXM/iWlvP/1pbz9tYWtFqRFPmEeuKNAD9jyAA/5AeAP+QHgD/kB4A/o8cBP6QHRr/kB1W/5Aet/+Q + Hvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Aeqf+Q + HQ6Yb4wAXFzNGVxczcxcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzNjP+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae8f+QHr3/kB51/5AdM/6Q + HQv/kSAA/5AeALJ4cABWWtMWXFzNn1xczaBcXM09VlbQAVtbzgAAFv8AwXtgAP+QHgD/kB4A/3o9AP+P + HQD+kB0A/5EfAP+QHRr/kB6V/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuX/kB4+oXKCAFxczTtcXM3nXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczZ7/kB6Q/5Ae//+QHv//kB7//5Ae//+QHv//kB7y/5Aetv+Q + HVr/kB0X/5EbAP+QHgD+kB0A/44aAPqOIQBYW9EAXFzNAlxczQ9cXMwKXV3PAFpazQBcXM0ApqawAFdX + zwCPapQA/48fAP+MIwD/jx0A/48cAP+PHQD+kB0A/5AeIP+QHsP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7+/5AcelxczRpcXM2oXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2n/5AekP+QHv//kB7//5Ae//+Q + Hv3/kB7H/5AeXP+QHRX/kR8A/5AdAP+QHgD/kB4A/pAdAP+PGgCObJYAXFzNAFxczQBcXM0AXFzNAFtb + ygBbW8sAXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx4A/48eAP6dHgD/kB6B/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/+eIOMdnX8G0W1zO+Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNnv+Q + HpD/kB7//5Ae//+QHun/kB6I/pAeI/+QHQD+kB0A/48dAP+PHQD/kB4A/5AeAP+QHgAAAAAAXFzNAFxc + zQBcXM0AXFzNAFxczQBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+P + HQD/kB4A/5Adaf+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP/fhkD+bWG7/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczY3/kB6J/5Ae8/+QHsj/kB5R/48eB/+QHgD+kB4A/pAeAP+PHQD/jx0A/48dAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADNgFMAxX1cANmDRgD/jx0A/pIeAP+QHnv/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/64oz/3Vksv9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflbW814/pAeMf6QHlP/kB0m/5AdAP+QHgD/kB4A/pAeAP6Q + HgD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzMAFtczQA7Uu8AlW6PAMZ+WgCUbo8A8YstAP+QHh//kB7C/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/+6LMP97Zqz/WlzP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3oW1vMR/+QHgD/kB4A/5AeAP6Q + HgD+kB4A/5AeAP+QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PGwD/jxoA/48dAP+QHQCccYcAL078AJVujwDQgVAAGUb/A+uKMyv9jx+i/5Ae/P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/viy//fWaq/1pc + z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNyltb + zB7/kB4A/5AeAP+QHgD+kB4A/pAeAP6QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/5AeAP+QHgD/jx0A/5AdAP+QHgD/jxwA/48aAP+PHQD+kB0A940mAP+xAAB/Z6cQp3R7PM2A + Uon1jSnW/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/64oz/3NjtP9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tbzYtZWcwFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/5AeAP+QHgD/jxwA/5AdAP+QHgD/kB4A/48dAP+QHQD/kB4A/5AeAP+RIAD/jxwI/5AcFfeN + JjLfhj9t3oVCs+uJNOj4jiX//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ac/+WIOf9vYrn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczd9bW8w2W1vNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHQD/jx0A/48eAP6QHQD/kB4A/48cAP+QHQD/kB4A/5AeAP+PGwP/kB0T/5AeKP+Q + Hkz/kB50/5Aenf+QHsH+kB/k+48i+v6QH///kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/QgVD/Z1/B/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfpcXM1/W1vLBFtbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHQD/jx0A/48dAP+PHgD+kB0A/5AeAP+PGgL/kB0T/5AeM/+Q + HmL/kB6O/5AevP+QHt//kB7v/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/sXdx/11c + zP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2xW1vMGltb + zABbW8wAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB0A/pAdAP6QHgD+kB0A/48dAP+QHQD/lR8A/5AdFf6Q + HUj/kB6H/5Aeu/+QHuP/kB73/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/9o0n/5Bslf9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM23XFzMKVxczgBaWsoAWlrJAAAAAAAAAAAAAAAAAP+PHwD/jx8A/4wjAP6QHQD+kB4A/5AdAP6P + HAX/kB0v/5Aec/+QHr3/kB7t/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/9WDSv9rYb3/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2pXFzMKFxczgBbW8oAW1vLAFtbywAAAAAAAAAAAP+PHQD/jx4A/48fAP+O + IQD+kB0A/o8eA/+QHTD/kB6L/5Ae2/+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aNJ/+Xb43/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeFcXM15XFzNFF1dzwBaWskAW1vLAFtbywBbW8sAAAAAAP+P + GwD/jxwA/48dAP+PHgD/kB0A/pAeE/+QHnL/kB7a/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/AfGH/ZV/D/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN6FxczZtcXM08W1vLBVxczABXV8QAWlrJAFtb + ygBbW8sAAAAAAP+PHwD/jxwA/48bAP+PHAD/kh8A/5AdLf+QHqr/kB72/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/RgU//dGSz/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfdcXM3RXFzNkFxczUJbW80KXFzNAFtb + zABbW8wAVVW+AFpayQBaWskAAAAAAAAAAAD/jx8A/48fAP+OGwD/kB8A/5AdMv+QHsH/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//6QH//QgVD/dmSx/1tczv9cXM3/XFzN/1xczf9cXM3wXFzN0FxczZ1cXM1iW1vNJFlZ + zARcXM0AXFzNAFxczQBbW8wAW1vMAFtbzAAAAAAAAAAAAAAAAAAAAAAA/5EcAP+SGwD/kB0A/5AdJf+Q + Hrn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//SMKv+3eWv/cWO2/1tczvtcXM3sXFzN0lxczahcXM19W1vNTltb + zR5bW80IXV3MAFtbzQBaWswAW1vNAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HQD/kB4A/5AdDf+QHpr/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/+o8j/+GGPvKgcoTfZl/Culpbz5JbW81tXFzMQ1xc + zR5cXM0MWVnNAFxczQBcXM0AW1vNAFJS0gBaWs4AWlrMAFtbzQBbW80AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx0A/5EfAP+QHVf/kB7w/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7z/I8hyuOHPIWSbZJTWFvPK1NZ + 1hJeXcoEW1vNAFxczQBcXM0AXFzNAF1dzQBcXM0AXFzNAFtbzQBUVNEAV1fPAFdXzwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHRP/kB64/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB7//I8i+f6QH9v+kB+g/I8hVfaN + JxzIfVUBwXxgAGZfwgBaW84AXFzMAG5u3QBdXc0AXFzNAFxczQBdXc0AXFzMAFxczAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHgD+kB5F/5Ae7P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/+Y4k/+6LMP/ahEb/xn5b39mE + R3P5jiMo/ZAfCf2QHwD2jScA6okzAOCGPgBmX8IAWlvOAFxczABkZNQAX1/PAF9fzwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAXFzNAFxczQBbW8wAXFzNAFxc + zQD+kiAA/5Aefv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+RHP/9jyD/84wq/+iJNv/Sgk//tXht/5hv + jP99Zqn/a2G89mJdxWwAAP8B5Ic6APyPIAD/kBoA+o4kAOqJMwDliDgA44c6AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAW1vMAFxc + zQBcXM0AW1vMAFxczQBcXM0A/pAdDv+QHqn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP/6jiP/7Yox/9uERf/BfGH/pHOA/4lq + nf9zY7T/Z2DB/11cy/9aW8//WlzP/1tcztRaW88iW1zPAHRkswD/kBwA/5AbAP+PHwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW80AW1vNAFxc + zgBbW8wAW1vMAF1dzgBbW8whW1vMSFtbzCJbW8wAW1vMAP+QHiL/kB7U/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8i/+aIOP/BfGD/nHCI/3pm + rf9rYb3/YV7I/1tcz/9aW8//W1zO/1tczv9cXM3/XFzN/1xczf9cXM3AW1vNFFtbzQBbW80AXFzNAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtb + zQBbW80AWlrLAFtbzQBcXM4AXFzNAFpazAVbW81HXFzNwFxcze9bW8xxXFzNAFxczQD/kB4s/5Ae4P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac4Mh+ + WcB5Za75YV7H/1pbz/9aXM//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN11tb + zSVcXM0AXFzNAFhYygBfX88AX1/PAAAAAAAAAAAA/48fAP+PHwD/jyAA/48dAP+PHQD/jx0A/48dAP+P + HQBcXMwAXFzMAFxczABcXM0AW1vNAFpaywBbW80AXV3CAFtbzCdcXM2HXFzN4lxczf9cXM3/W1vMelxc + zQBcXM0A/5AdPP+QHuT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae5/+RGFVjXsVHWlvP6lxczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXMxxW1vJAltbzABRUcUAXFzNAFhYzgBaWswAxX1cAP+QHgD/jx8A/48gAP+P + HQD/jx0A/48dAP+PHABZW88AXFzNAFxczABcXMwAXFzNAFxczQBXV8cCW1vNI1xczXFcXM3NXFzN/Vxc + zf9cXM3/XFzN/1tbzHpcXM0AXFzNAP+QHUL/kB7m/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHpr/ngAGVFnUGlxczclcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3lxczVdaWswIW1vMAFtbzQBYWM4AWlrNAF1c + ywDsijIA/5AeAP+QHQD/jx0H/48dCv+PHgH/mgAAXFzMAFxczQBcXM0AXFzOAFxczQxcXM02XFzNflxc + zc1cXM36XFzN/1xczf9cXM3/XFzN/1xczf9bW8x6XFzNAFxczQD/kB44/5Ae5P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvn/kB5m6ok0AFxbzARcXM2CXFzN/Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3nXFzNkFxc + zTpbW80RAAD/AFxczQBeXMsArXZ1AJpyewD/kB42/5Ael/+QHY//lwQRjWyYAFxcywNcXM0TXFzNMVxc + zWlcXM2qXFzN41xczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/5AeJv+Q + Htf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB75/5AeaP+R + HABdXMwAXFzNLVxczdVcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf1cXM3kXFzNtVtczYNaW89fV1rSSoprmj7yjCtq/5Ae0v+QHv/3jSbmimubbFhb + 0GxcXM2PXFzNvFxczeNcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zHpcXM0AXFzNAP+QHRP/kB61/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHp//kB4K1IJLAFxbygNcXMxxXFzN9lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aW8//Y17F9otrmu7Ugkzq/I8h9v+Q + Hv//kB3/6Ik3/XBit/VbXM77XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8x6XFzNAFxczQD/jhsD/5Aeh/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7p/pAeWfuNIQG2eGwAW1zOFVxczaVcXM3+XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/WlzP/1tczv9oYMD/i2ub/8N9 + Xv/wiy7//5Ae//+QHv//kB7//5Ac/+aIOP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/5AeAP+QHkz/kB7u/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt3/kB1s/48dGItt + mgBPV9gmWlvOuVtczv5bXM7/XFzN/1xczf9cXM3/XFzN/1tczv9bXM7/W1zO/1pbz/9bXM7/ZF7F/3pm + rf+icoL/0YFP//OMK///kB3//5Ad//+QHv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzHpcXM0AXFzNAP+Q + HQD/kB0T/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae9P+QHrv/kB10/5AbOpdui0ppYL6/Yl7G/V9dyv9cXMz/XVzM/19dyv9jXsX/aWC//3Fj + tv+Jap3/pnR9/8l/WP/qiTT//I8i//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kBz/5og4/29i + uP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8x6XFzNAFxczQD/jxsA/5EfAP+QHVD/kB7p/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHuj/kB3N6Yk0zMd+Wfe7emf/tHhu/7V4 + bf+7emf/x35a/9eDSf/miDj/84wq//6QIP//kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ac/+aIOP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/48cAP+QHQD/kB0L/5Aejv+QHvz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kRz//5Ec//+RHP//kRz//5Ec//+RHP//kRz//5Ac//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzHlcXM0AXFzNAP2SGAD8khcA/pAcAP6Q + HR//kB2z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/5og4/29iuP9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzN2FxczZ9cXM03XFzNAFxc + zQD/jx8A/48fAP+OGwD+kB8A/48dMP+QHbn/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac/+aI + OP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38XFzN7FxczdBcXM2jXFzNZVxc + zClbW80JXl7LAAYG9ABMTNMA/48fAP+PHAD/jxsA/48cAP2RHQD+kB0o/5Aeqv+QHvr/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xczfhcXM3vXFzN4lxczclcXM2jXFzNcVxc + zENcXM0dW1vMClxczgBcXM0AW1vNAFFR0gBXV88AV1fPAAAAAAD/jxsA/48cAP+PHQD/jx4A/pAdAP+Q + Hhn/kB6E/5Ae4/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy93VkscNaW8+yXFzNoFxczYRcXM1lW1vNS1xc + zC1bW8wYW1vMClxczgBcXM0AXFzNAFxczQBbW8oAW1vMAFtbzQBSUtEAV1fPAFdXzwAAAAAAAAAAAP+P + HQD/jx4A/48fAP+OIQD+kB0A/o8dB/6QHUH/kB2r/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+PyPIL27emUoSVbhDltb + ywl0dMoAXFzNAFxczQBcXM0AW1vMAFtbzABbW8oAW1vMAFxczQBcXM0AW1vKAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jCQA/pAdAP+PHQD+kR8A/pAcEf+QHVz/kB67/5Ae7P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvX/kB7b/5Aeo/6Q + HmH/kB0j/8cAAXRjswBbW8wAWFjNAFtbzABcXM0AXFzNAFtbzABbW8wAW1vKAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHQD/jxsA/44ZAP6Q + HQDCxQAA/5AdFf6QHUj/kB6M/5AezP+QHvL/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvT/kB7h/5Aeuf+Q + Hov/kB5c/5AdLP6QHgr/kB0A/5AeAP+RGwDpiTQAWFrPAFhYzQBaWswAW1vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxsA/48bAP+OGQD/kB4A/5AeAP+QHQD/kB4A/48cBP+QHR//kB1V/5Aee/+QHqL/kB7J/5Ae4/+Q + Hu7/kB7y/5Ae9/+QHvv/kB7//5Ae//+QHv7/kB76/5Ae9v+QHvP/kB7v/5Ae5v+QHtP/kB63/5AenP+Q + Hnr/kB5Y/5AdLv+QHhL/jxoC/5AeAP+QHgD+kB4A/44gAP+PHgD/kB0A/5AdAP+QHQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB4A/5AeAP+QHgD/kB4A/wD/AP+PHQD/kB0A/5AeAP+S + IAD/jxwK/5AdGP+QHTD/kB1J/pAeVP+QHmD/kB1r/pAddv+QHnr+kB1z/5Adav+QHl/+kB5X/5AeS/+Q + HTP/kB4d/5AeEf+PHAf/kSAA/5AeAP+QHgD/kB4A/48cAP+QHgD/kB4A/pAeAP+OIAD/jx8A/48fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+M + JAD/jx0A/5AdAP+PHAD/jxwA/48cAP+QHQD/kB4A/5AeAP+QHgD/kB4A/5AeAP+QHgD/kB4A/5AeAP+Q + HgD/kB4A/5AeAP+QHgD/kB4A/5AeAP+QHgD/jx0A/48aAP+PHAD/kB4A/5AeAP+PHAD/kB4A/5AeAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///gAAAAD////wAAAAAD///4AAAAAAD//4AAAAAAAD/wA + AAAAAAAH4AAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAB4AAAAAAABAPwAAAAAAAf/+AAAAAAAH//AAAAAAAB//AAAAAAAAP/AAAAAAAA//AAAAAA + AAD/gAAAAAAAAP4AAAAAAAAA+AAAAAAAAADgAAAAAAAAAMAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAwAA + AAAAAAAPAAAAAAAAAD8AAAAAAAAA/wAAAAAAAAP/AAAAAAAAP/8AAAAAAAP/AAAAAAAAf/4AAAAAAAH/ + +AAAAAAAD//gAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAAAAAAAAAMAAAAAAAAAH4AAAAAAAAH/4AAAAAAAf//wAAAAAAP///wAAAAAD////wAAAAD///ygA + AABIAAAAkAAAAAEAIAAAAAAAAFEAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzMAFxczQBiYtkAWlrMAFxczQBbW80AW1vNAFtb + zABcXMwAXFzNAFxczQBbW8wAW1vMAFtbzABcXM0AW1vMAFxczQBcXM0AW1vNAFxczQBcXM0AW1vMAFxc + zABcXM0AXFzMAFVVygBbW8wAW1vLAGJi1gBaWsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxc + zABcXMwAXFzMAFpaygBbW80AXFzMAFxczQBcXM0AZWXVAFtbzQNbW8wGW1vNEVtbzCNcXMwuXFzNOlxc + zUVbW8xNW1vMUVtbzFRcXM1XW1vMU1xczUxcXM1DW1vNPFxczTVcXM0uW1vMH1xczAtbW80DXl7VAFtb + zQBbW8wAW1vLAFtbzABZWcoAXFzNAGRk0gBfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFlZzwBcXMwAXFzNAFxczABcXMwAXFzMAFxc + zQBdXc4AXFzMB1xczSFcXM09XFzNY1xczYdcXM2mXFzNvVxczc1cXM3XXFzN4lxczexcXM3zXFzN9lxc + zflcXM37XFzN+VxczfJcXM3qXFzN41xczd1cXM3XXFzNyVxczaxcXM2MXFzNYlxczT5bW8wmW1vLDFxc + zgBbW8wAXFzNAGJi0QBdXc4AXV3NAF1dzQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzNAFpayABaWsoAWlrKAFtbzABcXMwAXFzNAFxczQBdXcoBXFzMFVtbzDlcXM1qXFzNn1xc + zcpcXM3qXFzN+Fxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3+XFzN+FxczetcXM3QXFzNoVxczVtcXM0jXV3NB1tb + zABbW8wAb2/bAFxczQBcXMwAXV3RAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx8A/48dAOSH + OwAAAP8AVVrTAFlbzwBeXMkDXFzMFVxczURcXM2BXFzNuFxczeZcXM33XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM3PXFzNkFtbzEhbW8sNWlrLAFxc + zABfX9UAW1vKAF5ezgBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48cAP+PHAD/jhsA/pAdAP+QHgD/jhoA/pAdAP6QHQD/kB4A/48dAPuOIgD/mgAAM072DVBY + 2DZWWtJ5WFvRvllb0OlZW9D+WlvQ/1pbz/9aW8//WlvP/1pcz/9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeVcXMyYW1vMPFtbzAVcXM4AXFzMAFxc + zQBVVc4AWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+OGgD+jx0A/ZIhAP+P + HAD/jxwA/5AdAP+QHgD/kR8A/5sxAP2QHAL/kB4G/48dFv+RGyLpiTUzl2+NmYprm96Iap37iWqd/4tr + mv+La5r/iGqe/4Noo/9+Z6j/emas/3dksP9xYrf/ZV/E/15dy/9cXM3/WlvP/1pbz/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN21xczHpbW8wi////AFtbzABaWswAWFjLAFxc + zQAAAAAAAAAAAAAAAAD/jxwA/48cAP+PHAD+kB4A/48dAP2VJwD+kB0A/pAdAP+QHgD+kiMA/pAdEf+Q + HSf/kB1H/5Aea/+QHY7/kB6n/5AevP+QHsv9kCDX8Isu+fCLLf/1jSj/944m//qOJP/5jiT/9o0o//CL + Lv/rijT/5og4/+KHPf/chUT/y4BV/7d5a/+gcoT/hWmg/3Vksv9oYMH/XFzN/1tczv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfhcXM3BW1vMTllZywRbW80AXFzNAFxczQBcXM0AAAAAAAAA + AAD/jyIA/48dAP+OGwD+kB4A/5AeAP+QHgD+jx0H/pAdH/+QHUn/kB58/5Aerv+QHtX/kB7w/5Ae+P+Q + Hv7/kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+Q + HP//kRz//5Ec//+QHv/6jyP/9Iwq/+WIOv/MgFX/o3KB/3plrf9kXsT/W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWRcXM0HXFzNAFxczQBaWswAWlrMAAAAAAD/kB4A/48eAP6R + HwD+kB0H/5AdI/+QHlv/kB6U/5AezP+QHuz/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHf//kRz/+o4j/+eJN//EfV3/l2+N/25iuv9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczedcXM1pXFzNB1tbzABaWswAXFzSAF9fzwD/kB4D/48eGv+QHU7/kB6W/5Ae0f+Q + HvP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3/940n/9CBUP+UbpH/Z1/B/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3nXFzNYllZywRbW8wAXV3OAF1dzQD/kB5P/5Aev/+QHu3/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHf/1jSn/wnxg/4Fopf9fXcn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2ltb + zEdUVMgAXV3NAFtbywD/kB6A/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//pAf/+eJN/+pdXn9aWC+8VtczvFcXM39XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbZbW8wcXFzNAGNj + 2wD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP/5jiT80oJOzYNoo3lZW9BzXFzNlFxczchcXM3vXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW8xxWlrLA1tbzAD/kB6A/5Ae/v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad+P+R + G57/lQ4bI0r/BVtbzB1cXM1TXFzNrVxczfJcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3LW1vMJlxczAD/kB6A/5Ae/v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvr/kB6e/5EZF55x + hgBWV84AXFzMFFxczXVcXM3pXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM32W1vNZlRUzwD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+Q + Hf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB72/5AdhP6PHAvsijEAWlrNAFtb + zgpbW82GXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNrFtbzRD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//uPIv/2jSf/8ows/++LL//viy/++o8j6/+Q + Hub/kB7s/5Ae8/+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae5/+QHk//kxkA/5cEAFxczQBbW80tXFzN2Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN1ltb + zS//kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB78/5Ae8P+QHdf4jiW7vXtl7KNzgf+Vbo//iWqd/4Zpn+uUbpCZ04JNRv+RGjn/jx1J/pAeXv6Q + HXb/kB6R/5Aeu/+QHuj/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHrX/kB4b/5AeAFpbzgBbW80PXFzNuFxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN6lxczVf/kB6A/5Ae/v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Ae4v+QHrb/kB6B/5AeRv+S + Fyewd3MmXVzMz1tczv9bXM79WlvPyFda0VY8Ue8M74wvAP2QIAD/kB4A/5AeAP+QHgD/jhwD/pAdF/6Q + HT7/kB2R/5Ae4P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHvT/kB5l+4UIAHZksQBcXM0NXFzNsVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+VxczXj/kB6A/5Ae/v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae7v+QHsL/kB5//pAdO/+QHRH/jx0B/5AeAMyAVQBMV94PXFzNtVxc + zeJcXM2bW1zNKnp2wQBcW8wA/48AAP+WAwD/jxwA/pAeAP6QHQD/jx0A/pAdAP6QHgD+jxwI/5AdSP+Q + Hsf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB6z/pAeFJtwiQBcXM0cXFzNy1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczY3/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Huv/kB6r/5AeVf+QHhr/jx0D/pAeAP+QHQD/kB4A/48bAFJZ2ABcXM0EXFzNMlxczThcXMwRW1vNAFlZ + zgBaWs4AZGTMAFVV0AAAAAAA/48hAP+PGwD/jx0A/pAdAP+OHAD/jx0A/JIXAP+QHkb/kB7e/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7n/5EbQf/d + AABcXM1qXFzN81xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/lxczZb/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7v/5Aeq/+QHVH+jx0S/pEeAP+Q + HgD/kB4A9p4mAP+PHAD9kSEAimqaAFxczQBcXM0AXFzNAFxczQBcXMwAX1/PAFtbzgBYWM8AV1fPAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48gAP2TBAD/kB0A/48dAP+PHQj/kB6T/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB788Yste11cy11cXM3dXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zZr/kB6A/5Ae/v+QHv//kB7//5Ae/f+QHsz/kB5j/pAdEv6RHgD+kB0A/44cAP+PHgD/kR0A/44gAP+P + HQD/jx0AXFzNAFxczQBcXM0AXFzNAFxczQBbW8sAW1vMAFtbywBcXM0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jiAA+5YQAP+QHQD/kB1k/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3+zYBT4mJexuxbXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczYf/kB6B/5Ae//+Q + Hv//kB7u/5AelP6QHSr9jSMA/5AdAP+OHQD/jx0A/48dAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx0A/5AdAP+QHQD/kB1b/5Ae9P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRz/1YNL/2dfwf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FtbzHv/kB51/5Ae6f+QHs7+kB5i/pAeDP6Q + HgD/jx4A/48eAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OoIASFXfAP/VAADyiysA/48dAP2V + HgD/kB52/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRz/4YY+/25iuv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN8FtbzWL+kB4k/pAeR/+QHSr+jx0D/5AeAPuUHwD/jx0A/48eAP+P + HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXyQBWWtIARlXkAOOHPACodHoA9o0nAP+QHSP/kB7D/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/5Ic7/3Jj + tf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN2FtbzDT+kB4A/5AeAP+QHgD+kB4A/pAeAP6QHQD9kRsAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HADxiysA8IosANWCSgBdXMoAkG2VALR3bgBBU+gD84wqKv2PH6P/kB78/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/5Yg6/3Rks/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNtltb + zBL+kB4A/pAeAP6QHQD/jxsA/48cAP6QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48hAP+PHgD/kB0A/5MlAP+PHAD/kRsA+Y0jANeD + RwD/6QAAaGC/CpZujTXPgFB/940n0P+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/4IY//2xhvP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38W1vNeFhYzAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+P + HQD/jx0A/pAdAP+QHgD/kQEA/48gAP+PHgD/kB0A/5AeAP+RHwD7jiUA+I0jCNSCSyfGfltcz4FRp+SH + Ot71jSj9/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRz/2oRF/2dgwf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3VW1vMLVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+PGgD+hwMA/48cAP+QHQD/jx0A/pAdAP+Q + HgD/kB4A/5AeAP+PHgb+kB0X/5AdLP+QHU7/kB50/pAeoPSMKtL2jSf1+48i//+QHv//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/y39W/2RfxP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfhcXM15W1vLA1tbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/ii8A/48dAP+PGwD+kB0A/5AdAP+QHgD+ixoB/pAdDf+QHR//kB5H/5Aecf+Q + HpX/kB66/5Ae3v+QHvD/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB//q3V4/15d + y/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zbRcXM0bW1vNAFlZzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+N + GAD/kB4A/48dAP6RHwD9kBwG/5AdH/+QHkX/kB52/5Aeqv+QHtL/kB7q/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSj/jmyY/1pbz/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNy1tbzDpbW8wAXV3NAF1d + zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jiEA/pAdAP6QHQD/kB4A/48dAP6QHgD/jh4B/48dF/+Q + HU3/kB6R/5Aeyv+QHun/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/dhUL/cmO1/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3LXFzMPlJStQBcXMwAXV3NAF5ezgAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD+lBoA/pAdAP6QHgD/kB4A/48dBf+QHTD/kB53/5AevP+QHu7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//yPIf+rdXj/XlzL/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+FxczbNcXMw6RkahAFtbywBbW8wAXFzNAF9fzwAAAAAAAAAAAAAAAAD/jxwA/48dAP+P + HgD+jx8A/pAdAP6PHgP/kB0u/5Adhv+QHtj/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/9yF + Q/90ZLP/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzNhlxc + zRxeXtEAW1vLAFtbywBbW8sAW1vLAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+PHQD/kB0A/5AeE/+Q + Hm3/kB7V/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/84wq/5Zvjv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczaNcXM1FW1vLCFxczQBaWskAW1vLAFpa + ygBbW8sAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx0A/48dAP6ZMAD/kB4w/5AepP+QHvP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/4jiX/sHdy/2Nexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+lxczdhcXM2gXFzNTVxczQ5bW80AW1vMAFpazQBcXMsAWlrKAFpayQAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PGwD/jxwA/50rAP+PHT3/kB7E/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//iOJf+yd3H/Zl/C/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN+Fxczd1cXM22XFzNc1tb + zTBbW8wJXV3MAFxczQBnZ8YAW1vMAFZWywBcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/5AdAP+P + GwD/kiUA/5AdMf+QHsX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy/6l1 + ev9mX8L/W1zO/1xczf9cXM33XFzN5VxczcxcXM2fXFzNY1tbzTVaWs0QWVnNAlxczABbW80AW1vOAF9f + zACDg70AXV3NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/o8aAP6QHAD/kB0f/5AetP+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//qPI//Wg0r/jWyY+mBdye9bXM7fXFzNvVxc + zZJcXM1mXFzNPVxczRpaWswLXl7OAFtbzQBbW80AW1vNAGJiyQBZWc0AWlrMAFpazAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+PGwf/kB6E/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/+kB/97Yox6797Ysh9ZqmkXFzNd1pczkxcXM0qW1vMGFtbywZcXM0AXFzNAFxc + zQBbW8wAWFjLAFtbzQBZWc4AWlrNAFZW0ABXV88AV1fPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxwA/pAeAP+QHT3/kB7g/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf8f6Q + H8j3jSaEzH9UP2FdxiA5UO8Jjm2YAFtczwBbW8wAW1vMAFtbywBYWMsAYWHKAFtbzABbW8wAWlrMAFpa + zABaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/kB4A/o8dBv+QHpX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB7/+Y4k+PyPINb9kB+h/Y8hVvuOIh3bhEEDxH1dAHFi + tABZWs0AWVvQAFxczABZWcsAW1vMAFtbywBeXs4AW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB4A/pAeKf+Q + HtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ec//+Q + Hv/3jSf/7Ioz/9aDSv++e2PkzIBVePKMLCj9kB4K+Y4lAPyPIQDviy4A/+gAAHZjsABWWc8AW1vNAFpa + yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWlrJAFpayQBaWsgAW1vLAFtbzABaWswAWlrMAFpazAD+kB4A/5AeVv+QHvf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/+o4j//SNKf/liDr/zYBU/7F3cf+Wbo//emas/2th + vfhiXcZ7ADf/BdOBTQD8jx8A/5AcAPyPIQDnijsA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZNIAWFjMAFtb + zABbW8sAW1vMAFtbzABaWswAWlrMAFpazAD+jxwE/5AegP+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//6Q + H//5jiX/6ok1/9aDSv+9e2X/oHKE/4ZpoP91ZLL/aGDB/1xczf9bXM7/W1zO/1tcztlaW88pWVvQAJlv + iwD/kRoA/pAfAP6QHgD7kxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrKAFtbzABbW8wAW1vPAFtbzQBaWskDW1vMH1tb + zCdaWswJWlrMAFpazAD+kB0Q/5AetP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//2PIP/uijD/1IJM/693c/+ObJf/fWaq/2th + vf9fXcr/XFzN/1pbz/9aW8//W1zO/1xczf9cXM3/XFzN/1xczbxbW80VW1vNAFtbzQBaWtEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFVV0ABeXswAWlrOAFtbzABbW8sAXFzNAFtbzQtcXM1iXFzNxVxczcVbW8wwW1vMAFtb + zAD/kB4Z/5Aey/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB388Isu67J4cPqEaaL/aGDA/15dy/9aW8//WlvP/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcZbW80aXFzNAFxcywBbW8oAV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8wAWlrIAFVV + xgBcXMwAWVnOAFxczQBaWscCW1vMLltbzZFcXM3rXFzN/1xczfBbW8w8W1vMAFtbzAD/kB4j/5Ae0P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvz/kRurr3ZyZV9dyd5aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczelbW81GXV3PAFhYywBbW84AW1vNAF9fzwAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + GwD/jx4A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAXFzMAFxczwBcXMwAAABzAFtbzABcXMwAT0/RAVxc + zR1cXM1wXFzN0VxczfxcXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/jx0x/5Ae1/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHsn/kRcqRVTkFVtc + zb1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf5cXMyrXFzNG1xcywBcXM0AWVnLAFpazQBWVs8AV1fPAKRxfgD/jx4A/48eAP+OHQD/jx4A/48dAP+P + HQD8jxsA/5ITAFxczABcXM0AXFzLAFxczABcXMwAXFzNAFtbywRbW8wjW1vNbVxczcRcXM32XFzN/1xc + zf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/jx0w/5Ae1/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHnr//wAARlThA1xczYhcXM39XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzNnVtb + zCteXs0CW1vMAFpazQBZWc4AXFzMAFpazQAAL/8A940nAP+QHgD/jx4N/48dIf+PHRMAMP8AhGihAFxc + zABcXM0AXFzNAFhYxwBcXMwTXFzNPlxczYZcXM3KXFzN91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze1bW8w7W1vMAFtbzAD/kB4m/5Ae0v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae8P+QHlX8jyAAWFvSAFxczT1cXM3fXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczctcXM10XFzNMVpa + zRD//4wAW1zOAF1dzACyeHAA/5IXAP+QHir/kB6Y/5AezP+QHHM4UPcAamC/AFxczAlcXM0fXFzNPlxc + zXdcXM21XFzN5Vxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtb + zAD/kB4W/5Aewf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8/6QHlv/kB0AWVvQAFxczApcXM2TXFzN/Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzN3Vxcza1cXM2FW1vOYlda + 0U+AZ6VC6Yk0Y/+QHsP/kB79/5Ad/96GQLpcXMxlW1zNfVxczZ9cXM3HXFzN61xczfpcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kB0K/5Aem/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HpH/kB4H/o8fAFpbzgBbW8wzXFzNz1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aW87/YV7H9IRpoe7MgFXq+o4j8/+Q + Hv//kB7//5Ec/7x7ZflcXM31XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/ihYB/5Adbv+QHvr/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt7+kB5I/5EbAM+A + UQBcXc4DXFzNY1xcze1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bXM//W1zO/2Rexf+DaKP/unpo/+qJNf/+kB///5Ae//+QHv//kB7//5Ec/7p6 + aP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kB4A/5AdO/+QHuP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7K/pAdS/+PHQnMgFMAPlHqCltb + zYNcXM30XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aXM//W1zO/19d + yv9xY7f/lW6Q/8V9Xf/sijL//5Ae//+QHf//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze1bW8w7W1vMAFtbzAD/kB0A/48dEP+QHqX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae4v+QHpD/kB0//5QQFGlfvRlYWtCJWlvO71tc + z/9bXM7/W1zO/1tczv9bXM7/W1zO/1pcz/9aW8//XFzN/2Zfwv9zY7T/j2yW/7d5av/chUP/+I4m//+Q + Hf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtb + zAD/jxwA/5EfAP+QHUv/kB7n/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7m/5Aeuf+QHIbmiDd2nXCGuoRpofp7Zqz/dGO0/3Nj + tP93ZbD/f2en/45sl/+dcYf/rnZ0/8l/V//kiDr/9o0o//+QHv//kRz//5Ad//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kBwA/5AcAP+P + HA3/kB2T/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB31/I8h7/CLLvzriTT/54g3/+eIOP/piTX/7Yoy//OM + K//6jiP//5Ad//+RHP//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze5bW8w7W1vMAFtbzAD/kR8A/4weAP6QHQD/kB4r/5Aexf+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ec//+RHP//kBz//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6 + Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczeZbW8w3W1vMAFtbzAD/jxoA/5AdAP6PHgD4cUYA/pAdSP+QHtj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfhcXM3ZXFzNpVxc + zV1cXM0QXFzNAFxczQAAAAAA/pAdAP6QHgD/jx0A/44bBP6QHVj/kB7X/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczetcXM3QXFzNpVxczGpcXMwvXFzMDGRkyQBcXM0AXFzNAFxc + zQAAAAAA/48fAP+PHwD/jx0A/48cAP+OGwP+kB1K/5AezP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/7p6aP9cXM3/XFzN/1xczf9cXM3/XFzN/lxczflcXM3zXFzN5lxc + zcpcXM2kXFzNc1xczEZcXM0fW1vNDV5e0wBcXMwAXFzNAFlZzgBdXc0AXV3MAFxczQAAAAAAAAAAAP+P + HQD/jx0A/48dAP+PHQD+jSEB/5AeNf+QHqv/kB71/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ac/8B8YfBcXM3YXFzN0FxczcJcXM2sXFzNjlxczXFcXMxTXFzNM1tbzCBbW8sLXV3OAFxc + zQBcXM0AXFzNAFtbywBbW8wAW1vLAFpazwBeXswAVFTQAAAAAAAAAAAAAAAAAAAAAAD/jx0A/pAhAP+P + HgD/jx4A/pAdAP+PHRj+kB5o/5AezP+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/+qJ + M6JcXMwvW1zNKFtbzBtaWs0JW1vNAk9PwgBeXs8AXFzNAFtbzABcXMwAW1vMAFtbywBcXM4AXFzNAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+QHgD/kB4A/48gAP+Q + HQD+jxwC/pAdLf+QHYX/kB7e/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHu//kB7I/5Aei/+RGTNoX8EAYF3IAFtb + zABaWs0AXFzNAFtbzABaWssAXFzOAFtbzABcXMwAWVnJAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx4A/4wkAP6QHAD+kB0A/pAdAP6P + HAf/kB48/5Aeg/+QHsX/kB7v/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae9v+QHub/kB7D/5Aekv6QHlP+kB4d/ZAeBf+RHAD//wAAbmK5AFtbzABYWM0AXFzKAFZW + 0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADnghwA/48ZAP+PGwD/jhkA/pAeAP6QHAD/kB4A/o8bBP6Q + HR7/kB1P/5AelP+QHs//kB7q/5Ae9/+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHvn/kB7z/5Ae3/+QHsD/kB6W/5AeZf+Q + HTf/kB4a/o8cB/+QHgD+kB4A/pAeAP2WFAD/jx8A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/4kVAP6QHAD+kB0A/48cAP6QHQD/kB4A/48dB/+Q + HSX/kB09/5AdYf+QHY7/kB6x/5AezP+QHtf/kB7e/5Ae5v+QHu3/kB70/5Ae+f+QHvT/kB7v/5Ae5/+Q + HuH/kB7c/5Ae0v+QHsH/kB6o/5Aeif+QHmz/kB1K/5AeMf+QHRv/jxsE/5AeAP+QHgD/kB4A/pAdAP+I + BwD/kBwA/pAeAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NFQD+kB0A/48cAP2RHgD/kB0A/48dAP+QHQD/kB4A/5QmAP6Q + HAT/kB0M/48dIf+QHi7+kB41/5AdP/6QHUb+kB1P/5AeVP6QHU7+kB1J/5AeQP6QHjn+kB40/5AdKf+P + HRb/kB4H/5AdA/+KFQD/kB8A/5AeAP+QHQD/jxwA/5AeAP+OGQD/kB4A/o8cAPWZOgD/jxsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PIQD/jxwA/48dAP+QHQD9lR8A/48cAP+QHQD/kB0A/48dAP+Q + HgD+kB4A/5AdAP+QHQD+kB0A/5AeAP6QHQD+kB0A/5AeAP6QHgD+kB4A/5AdAP+PHQD/kB4A/5AeAP+P + HQD/jhkA/5AdAP+QHQD/jxsA/48bAP+PGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD////AAAAAP/8AAAD///wAAAAAA/8AAAD//+AAAAAAAP8AAAD//wAAAAAAAD8A + AAD/+AAAAAAAAB8AAAD+AAAAAAAAAA8AAADgAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAB/AAAAAAAA + AAAAB///AAAAAAAAAAAAH//8AAAAAAAAAAAAf//4AAAAAAAAAAAB///AAAAAAAAAAAAD//AAAAAAAAAA + AAD//wAAAAAAAAAAAAD/8AAAAAAAAAAAAAD/wAAAAAAAAAAAAAD/AAAAAAAAAAAAAAD8AAAAAAAAAAAA + AADwAAAAAAAAAAAAAADgAAAAAAAAAAEAAADAAAAAAAAAAAMAAACAAAAAAAAAAAcAAACAAAAAAAAAAB8A + AAAAAAAAAAAAAH8AAAAAAAAAAAAAAf8AAAAAAAAAAAAAA/8AAAAAAAAAAAAAP/8AAAAAAAAAAAAH//8A + AAAAAAAAAAD//wAAAAAAAAAAAA///gAAAAAAAAAAAB//+AAAAAAAAAAAAP//4AAAAAAAAAAAAH//AAAA + AAAAAAAAADwGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAA + AADAAAAAAAAAAAEAAADgAAAAAAAAAA8AAADwAAAAAAAAAf8AAAD8AAAAAAAAf/8AAAD8AAAAAAAH//8A + AAD/gAAAAAAH//8AAAD/4AAAAAB///8AAAD//AAAAAf///8AAAAoAAAAUAAAAKAAAAABACAAAAAAAABk + AAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXM0AXFzNAE5OvABbW8wAXFzMAFhYzgBaWs0AW1vMAFxc + zABcXM0AXFzNAFtbzABbW8wAW1vMAFxczQBcXM0AW1vMAFxczQBcXM0AW1vNAFtbzQBcXM0AW1vMAFtb + ywBeXs4AW1vMAFtbygBbW8wAW1vMAFtbywBYWMYAWlrJAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8sAW1vRAFtbywBcXMwAXFzKAFxczQBcXM0AXFzNAFxc + zQBcXM0AXV3MAFlZzQZbW8wRXFzMGFtbzR9cXM0nW1vMLFtbzDBbW8wxXFzNM1xczTRbW8wyXFzNLVxc + zSdbW80iW1vNHlxczRpbW8wUW1vKB1pazABcXM0AXFzNAFtbzQBbW8wAW1vKAF5e0QBcXMwAWFjJAGFh + 0QBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAXFzNAFxczABcXMwAW1vMAFxc + zQBcXM4AXFzMBVxczQ5bW8wlW1vNQ1xczWFcXM15XFzNkFxczadcXM20XFzNwlxczdFcXM3cXFzN41xc + zeZcXM3qXFzN7FxczedcXM3dXFzN0lxczclcXM3BXFzNuVxczaxcXMyPXFzNblxczVJcXMwtXFzNFFtb + zApZWcQBXFzNAFxczABdXc0AaWnSAFtbywBYWMUAWlrIAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpayQBaWskAW1vKAFxczABcXMwAXFzNAFxc + zABbW80AXFzNAF9f0gBbW8sOXFzNKVxczU5cXM2CXFzNsFxczdNcXM3jXFzN8lxczf5cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM34XFzN61xczdhcXM3AXFzNm1xczGZcXM0uXFzNCVtbzABbW8wAW1vLAG9v+QBbW8oAXl7OAGVl + 1ABUVLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXM0AXFzMAFtb + ygBOTq8AWlrLAFxczABcXM0AW1vIAVtbzRNcXM01XFzNbVxczaZcXM3NXFzN8VxczfxcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9lxczdFcXM2ZXFzNWVxc + zSFbW8sGXFzOAFtbzABdXc0AWlrJAFpayABaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxsA/48dAP+Q + HQD+kB0A/5EeAP+OGwD/xgAAd2SuAF9dywCBc84AW1vMDltbzTlcXM1wXFzNslxczeJcXM31XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3vXFzNx1tbzHdbW8wiXFzMAlxczABZWcgAWlrJAF9fzwBcXMwAXFzMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+O + GgD/jx0A/5AdAP+OGAD/jx0A/pAdAP6QHQD/kB4A/5AeAPeNJwD/qgAAUFjZIlda0V5ZW8+kWlvP3Fpb + z/taW8//WlvP/1pbz/9aW8//WlzP/1tcz/9bXM//W1zO/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VxczcFcXMxlW1vMFF1d + 0QBbW8wAbW3LAFxczABcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/pAdAP+KEAD/jxwA/5AdAP+QHQD/kB0A/5EgAP6OGwP+kB0K/pAdD/+QHhv/jx0z/5AdQ/mO + JFKzeG+zo3OA9KZzff+odHv/q3V4/652dv+rdXf/pnR8/59yhP+Zb4z/lG6R/45sl/+Iap3/e2as/2pg + vv9jXsX/X13K/1pbz/9aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze5cXMyjW1vNQ1xczQhaWs0AXV3NAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAP+P + HAD/jxwA/48bAP+OGgD/jxwA/48dAP+OGgD+kB0A/pAeAP+RIAD/jxoB/48dFf+QHTL/kB5R/5Aed/+Q + Hpr/kB65/5Aezv+QHtv/kB7j/5Ae6fmOJPv5jiT//Y8g//6QHv//kB3//5Ec//+QHf/9jyD/+Y4k//aN + J//0jCr/8Yst/+6KMP/miDj/1oNJ/8R9Xf+rdXj/kW2U/4Bopv9vYrj/X13K/1tczv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM3eW1vMeFpazBNcXMwAXFzNAFxc + zQBcXM0AXFzNAAAAAAAAAAAA/48lAP+PHgD9kSAA/o8dAP+QHgD/kB0A/5EhAP6QHQz+kB0m/5AdUf+Q + HoT/kB6z/5Ae2P+QHvP/kB77/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB3//5Ad//+RHP//kBz//5Ae//2PIP/4jiX/64o0/9aD + S/+wd3P/hWmh/2pgvv9dXMz/W1zP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3vXFzNj1xczRtcXM0AXFzNAFxczQBbW80AAAAAAAAAAAD/kCAA/48eAP6QHQD2hw8A/5AdCf+Q + HS//kB5j/5Aemv+QHtL/kB7t/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//5Ec//yPIf/tijH/z4FR/6Rzf/98Zqr/YV3I/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzNl1xczRtbW80AW1vMAFpazABeXs0AX1/PAP+Q + HQD/jx4H/pAdJP+QHV//kB6j/5Ae1P+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3/+48i/+GH + Pf+pdXr/dmSx/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM32XFzNlltb + zRdcXM0AW1vJAJWV/QBgYNAA/5AdLv+QHon/kB7H/5Ae8v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//qOI//bhUT/mnCK/2lgv/9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3zW1vMfVtbywxaWssAWVnKAFVVxgD/kB5s/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf/yjCv/xn5b/4Zp + oP9gXcn+W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzMUm1tyABdXcwAXV3NAP+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB7/54g3/KNygNplX8O2W1vOxVxczd1cXM3tXFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXMy2W1vLIFtbzABbW8wA/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i6+iJNoWNbJcmVlrTJ1xc + zVNbW82NXFzNzFxczflcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRbW81wW1vKA1tbzAD/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad6P+RG3H/nAAKq3V4AFtbyQRcXM0tXFzNfVxczd1cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcJaWs0hXFzMAP+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae6f+QHmj/jxkGuHloAFpbzQBcXMwGXFzNUlxc + zdVcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN71tbzVpWVssA/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+Q + Hf//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae2v6Q + HUz/iiUA8YsuAFpazQBaWtAEW1vNa1xczfBcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNnVpazgr/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kBz//Y8g//iOJv/0jCr/8Yst/+6LMP/wiy76/I8h6P+QHub/kB7r/5Ae8v+QHvn/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Aetv+QHh//kB0AWl3LAFxczQBaWs0eXFzNxFxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3FW1vNJf+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/f+QHvf/kB7h/Y8hxMt/VeitdnX/n3GF/5Jtk/+Iap3/iWqc4JxwiYnjhzxC/5AbPf+P + HU3/kB5i/pAeef6QHZT/kB6x/5Ae3P+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB70/5AedP+PHgX/kB4AWlvOAFpa + zQdcXM2gXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczd9cXM1I/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Ae5f+QHsf/kB6P/5AeV/+RGznehUEoYl7Hulxczf9cXM3/W1zO+Fpb + zrNYWtFFMUz6CPuPIgD9kCEA/5EgAP+RHwBtlwAA/o8dAv+PHRP+kB02/5Adb/+QHsX/kB72/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7N/5AdLf+QHgBaW88AXFzNBVxczZVcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN8lxczWT/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7x/5Aex/+QHof+kB1G/5AdGf+QHgf+kR4A44c8ACRK + /wZbXM6vXFzN/lxczeRcXM2DWlvOHWdixwBgXMcA6Yc4AP+RFAD/jxwA/pAeAP6QHQD+kB4A/48dAP6Q + HgD+jxsD/5AdJP+QHoL/kB7o/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf/kB5y/44hAolqngBcXM0LXFzNqlxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM37XFzNff+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7k/5AepP+QHln/kB4j/48dBv+Q + HgD/kB4A/5AeAP+OHQBAU+sAXVzMBFxczVdcXM18XFzNTFxczQtcXM0AWVnMAFpazQBbW80AAAD/AAAA + AAD/jx8A/48eAP+PHwD/jx0A/pAeAP6PHAD/kB0A/5AeDP+QHnf/kB7x/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHrf/kB0anXCFAFxc + zThcXM3ZXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfxbW82G/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7k/5AeoP+Q + HUr/jx0Q/5AeAP+QHgD/jx0A/44eAP+RIgD/kB4A/o8eAFxczQBcXM0AXFzNAlxczQNgYNYAXFzNAF1d + zQBaWssAW1vMAFpazAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jRoA/o8dAP+CKgD/kB0A/o8dGf+Q + HrD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae5v+QHDxRWdkfXFzNqVxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczJD/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7z/5Aeqf+QHUn+jx0Q/pEeAP+QHQD/kB4A/5AdAP+PHQD/jx0A/48dAAAAAABcXM0AXFzNAFxc + zQBcXM0AXFzNAFtbzABdXdAAV1fDAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/48eAP+OHgD8mRsA/5Aebf+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB72yn9WmF1czK9cXM34XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38XFzNhv+Q + HnH/kB78/5Ae//+QHv//kB7+/5Ae0P+QHmv+kB4Y/5AeAP6QHQD/jh0A/48dAP+PHQD/jx4A/48fAP+P + HwAAAAAAAAAAAFxczQBcXM0AXFzNAFxczQBcXM0AW1vMAFlZxgBbW8sAMDBrAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx0A/5AdAP+QHQD/kB1Q/5Ae7v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//6QHv67emf4X13K/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczftcXM1y/5Aecv+QHv7/kB7//5Ae8v+QHqL/kB4z/Y8cAv6QHgD+jx0A/pAdAP+P + HQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+QGQD/kB0A/5AdAP+Q + HVH/kB7u/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/8t/Vv9jXsb/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9ltbzGn/kB5i/5Ae2/+QHs7/kB5z/pAdFP6Q + HQD+kB4A/pEcAP+NIgD+jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAA9D + /wD/mQAA/o8eAP+PHQD/gxsA/5Aecv+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/1IJM/2hgwP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3jW1vNTv6Q + Hhv+kB48/pAdLP+PHAf/kB0A/44hAP+PHwD8khsA/48gAP+PHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAX1/PAGBg0AD/jQAAX1zIAP//AADFfVwA+Y4kAP+QHSj/kB7E/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//Xg0n/a2G8/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczcVbW8wl/pAeAP6QHgD/kB0A/5AdAP+PHAD+kB8A/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxwA/o8dAP+SEgDPgFAA/6gAAGNhzgBlXsIAw3xdAHdksAL3jSYq/Y8fpf+Q + Hvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/9mER/9uYrr/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vNoFpaywn+kB4A/pAeAP6QHQD/jxsA/48bAP+P + GgD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxsA/48bAP+PHQD+kB0A/5MDANWCSQDRgU8A4oY7ADJO + +AmUbY4v04JMePmOJMn+kB/6/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/04JN/2Zfwv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW81lVVXMAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxsA/48dAP+QHQD+lhoA/48dAP+QHgD/jxwA/48dAP6Q + HgD7jyIAx31XBqd0exutdnVWyX5YlduERNf1jSn5/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//NgFT/YV7I/1xc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNyFtbzCRbW8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jhkA/48dAP+PHQD/jx0A/pAdAP2UJQD/jx0A/5AdAP+Q + HgD/kR4A/48fAP+PGwb/jx0a/pAdMP+QHU/uijCI54g3xe+LL+33jSf//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/8N9Xf9gXcn/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW8xvWlrLAltbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jRQA/48cAP6RIAD/jxwA/5AdAP+Q + HgD+kB4A/5AeAP+PHAf/kB0V/5AeJ/+QHkr/kB5x/5Aem/+QHrr/kB7W/5Ae8/6QH/3+kB///5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/7jyP/qHR8/15cy/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNsFxczBtbW80AW1vMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+OGwD/kB0A/5AdAP+O + GgD/jxwA/pAeAP2TJwD/kB0E/48dFv6QHjv/kB5d/5Aeif+QHrf/kB7c/5Ae6v+QHvf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//OMK/+Iap3/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zddbW8xBWlrJAFxczgBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+P + HQD/jxwA/ZMjAP+QHQD/kB4A/5AfAP6PHAr+kB0o/5AdV/+QHor/kB67/5Ae3f+QHvb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3oZB/3NjtP9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzMVltbygRbW8wAW1vMAFpazQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48gAP6QHAD+kB0A/owQAP+PHQD+kB4A/48cBP+QHhj/kB1R/5Aelf+QHtD/kB7y/5Ae/P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv+3eWr/Yl7H/1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2lxczFZbW8oEW1vMAFtbzABZWcoAamrUAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/40jAP+QHgD+kxsA/pAdAP6PHgD/kB4A/48dBf6QHTD/kB54/5Aevv+Q + Huv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/6ok0/4Rpov9aXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczbpcXMxJWlrKBFtb + zABcXMwATk6xAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/o8dAP6PHgD+kB0A/o8eA/+Q + HSz/kB2B/5Ae0/+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yP + If+1eG3/YV7H/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zehcXM2RXFzNJV5e0QBcXMwAXFzNAFtbzABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+P + HAD/jxwA/5AdAP+QHhL/kB5p/5Ae0P+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kBz/2IRH/3Zksf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze1cXM2qXFzNT1tbzAxcXM0AW1vLAF1d0ABVVb8AW1vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PHAD/jx0A/48dAP+LEwH/kB4x/5Aenv+QHu//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac/+iJNv+ObJf/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+1xczeFcXM2sXFzNWFxczRJbW80AW1vMAGBgyQBcXMwAXFzNAFlZ + yAAjI08AAAAAAAAAAAAAAAAAAAAAAP+PHwD/kB8A/48cAP+PHAD/jhwC/48dQ/+QHsT/kB7+/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/oiTb/k22S/19d + yv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzN7FxczcVcXM1/W1vNPVxczQ+7u6AAXV3NAFtb + zQBbW8wAXV3MAFxczABcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48fAP6PHgD/jxwA+ptEAP+Q + HUD/kB7M/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/+kB//44c8/5Jtk/9fXcr/W1zO/1xczf9cXM3/XFzN/1xczfZcXM3dXFzNtFxczX9bW81HW1vNIFlZ + zwRcXM0AXFzNAFpazgBfX8wAbGzGAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jhoA/o4bAP+RHgD/kB0y/5Aewf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/+Y4k/8h/WP+AaKb/Xl3L/1tczftcXM3tXFzN2lxczbRcXM2HXFzNX1tb + zTpbW8wSW1vMA15ezABcXMwAWlrOAP//xgBcXM4AWlrOAGhoyABWVtAAV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA66NCAP6RIAD/kB4A/5AeF/+QHqX/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8h/+eIN/2sdnb4cWK231pbz79bXM2hW1vNflxc + zFRcXM0pXFzNFFxczAdaWswAW1vNAFtbzQBbW80AWVnNAFxczABaWs4AX1/MAFVV0AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kBwA/pAcAP2PGQL/kB1r/5Ae8v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf/vuPIuHVgku6mG+LimRe + w11XWtE4XFzNH11dzQhRUckAXV3OAFxczQBcXM0AXFzNAICA4ABbW80AWlrMAFlZzABaWs0AcXG/AFZW + 0AAXFzYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q + IQD/kB4A/5AdKP+QHsr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHv//kB7//5Af8P2P + IMP8jyGF8IstP651dRIURP8Hr3qCAFtczQBcXM0AXFzNAFtbzQBbW8wAVVW+AFxczQBcXM0AXl7OAF5e + zQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP6TGAD/kB5v/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ad//6Q + H//2jSf4+o4j0P2PIJ/+kB9Y+o4kIP+OHQP4jiUAtXhtAFVZ0gBTWNAAWlvOAFxczABdXc0AV1fHAGBg + 0ABfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB4A/pAeF/+QHrL/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+R + HP/9jyD/9Iwq/+mJNv/SgU7/uHlq6L98Y3/niDcr/5AcCP+RIgD6jiMA/o8eAP+ZAAClc30AY13EAFha + zABdXdEAWlrIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWsgAXV3RAFpaygBbW8wAWlrMAFpazABaWswAWlrMAP6Q + HQD+kB40/5Ae5f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+Q + Hf/+kB//+48i//OMK//fhkD/yX9Y/652dP+TbZL/eGWv/2pgvfliXcaKJkn/C8V9WwD8jyAA/ZAfAPeO + JQD+jx4A/o8eAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVcoAW1vNAFtbywBeXtQAWlrKAFtb + zABaWswAWlrMAFpazABaWswA/5cqAP+QHlj/kB7z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+Q + Hf//kRz//pAf//OMK//niDj/1IJN/7Z5bP+ccIj/h2qf/3dlsP9lX8P/XFzN/1tczv9bXM7/W1zO3Vpb + zzNYW9IA/9EAAOCGQgDrhjoA/48fAP+PHwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrMAFpa + zABbW80AXV3OAFxczQBaWskGW1vMFFpazBBaWswBWlrMAFpazAD9kB0F/pAejv+QHv3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//6QH//2jSf/4oc8/8J8X/+pdHr/k22S/3tmrP9oYMH/YV7I/1xczf9aW9D/WlvP/1tc + zv9cXM3/XFzN/1xczf9cXM28XFzNF1tbzQBbW80AWlrQAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZ2fTAFpazABcXMwAW1vUAFtbzABaWssAW1vMGVxczHZcXM2vW1vMhFpazAxbW8wAW1vMAP+Q + Hgv/kB6x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//2PIf/liDn+vXtk/5Jtkv92ZLH/ZF/E/1tczv9aXM//W1zO/1tc + zv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbhbW80WW1vNAFxczQBaWskAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABaWskAW1vHAFVV0gBPT9YAWlrNAFxczgBbW80AWVnMBVtbzDdcXM2kXFzN9Vxc + zf9bW8zEW1vMEltbzABbW8wA/5AfEf+QHrj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBzo54g3p4Noo9tiXsf/W1zO/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2Ftb + zSxcXM0AaGi6AFZWxwBcXNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8sAZWXoAFpazABbW80AWFjDAFtb + zCFcXM15XFzN01xczf1cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jx0e/5Aewf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae7v+R + G3CYb4shWlvPq1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM31W1vMdlpayQVaWswAWlrMAFtbzABzc94AYGDQAF9fzwAAAAAAAAAAAP+P + HQD/jx0A/48eAP+RGgD/jh0A/44dAP+OHQD/jh0A/44dAFxczABcXMwAXFzMAFxczABaWs4AWlrLAFtb + zABcXM4AVVXMAVpazR5cXM1iXFzNvVxczfdcXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP+P + HCf/kB7H/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB6k/5AaEwAA/wBcW818XFzN+1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3YXFzNTFdX0QJcXM0AXFzNAFpa + zABZWc0AUlLUAFdXzwDPf1EA/48eAP+PHQD/iRUA/48eAP+QHgD/kB0A/pAdAP6QHQD3jSUAXFzMAFxc + zABcXMoAXFzMAFtbzABcXM0AW1vMB1xczChbW81pXFzNvVxczfNcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dIf+QHsP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9P+QHl//kR0AYF3IAFtbzUdcXM3kXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3UW1vNZ1xczRlhYc8AW1vMAFpazQBbW80AXFzNAFpbzQBBU+gA3oQ/AP+QHwD/jx4O/48eN/+P + HT7/kBwR5Yc5AFFY1wBcXMwAXFzNAFxczgBcXMwFXFzMGlxczUpcXM2NXFzNzlxczfVcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jx8Z/5Aevf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7m/5AeRv+Q + HgBSWdcAXFzMElxczaRcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3uXFzNsFxczWJbW80vWVnNDlZWzgFbXNAAXl7OANGC + TwD/rQAA/5AeIf+QHoz/kB7d/5Ae1v+QHD78jyAAZV6+AVxczBFcXM0sXFzNTlxczYNcXM3AXFzN51xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP6Q + Hgv/kB6o/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuz+kB5Q/pAdADFO+wBcXM8AXFzNTFxczeVcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9Fxc + zdRcXM2pXFzNh1tczmVYWtBVd2WuR9+FP1/9kB+1/5Ae+P+QHv/8jyH4rnZ0jlZa03JcXM2NXFzNrVxc + zdFcXM3xXFzN/Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dBP+QHoH/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHoP/jx8G/5IYAFpbzgBbW8wPXFzMkVxc + zfpcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM79X13J839np+3DfV7p940m8P+QHv//kB7//5Ad//eN + Jv6La5r1WVvQ91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD7oDQA/5AdV/+QHvD/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae0v6Q + Hjr+kRwA+I0lAFpb0ABcXM0tXFzNw1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM//Yl7H/31mqf+yd3H/44c8//yP + If//kB7//5Ae//+QHv//kB3/9o0n/4lqnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP6Q + HgD/kB0q/5Ae1P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Aetf6QHTP/jR4C6okzAAAz/wFbW81KXFzN2Fxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1zO/1pbz/9eXcv/aWC//4xr + mv+4eWr/5Yg5//2PIP//kRz//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dAP+PHQ3/kB6Y/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Aeyf+QHWf+jx0g/6IAAhpG + /wRXWtBeWlvO2ltczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tczv9bXM7/W1zO/11c + zP9pYL//gWil/6Z0ff/RgVD/8Isu//6QH///kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jhoA/5AeAP+QHUT/kB7h/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8P+QHr7/kB2D/5AbR+CGPSt6ZatsZV/C3GJex/9fXcr/XFzN/1xczf9dXMz/X13K/2Je + xv9oYMD/bWG7/3hlr/+UbpH/sXdx/8+AUv/qijT//I8h//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lrnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP+Q + HQD/kB0A/48cDf+QHZT/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvv/kB7q/5Ad1PuPIbjXg0jPuXpo+q52 + df+mdH3/pHOA/6d0fP+udnX/unpo/8t/Vf/bhET/6ok1//SNKf/9jyD//5Ec//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48bAP+PGgD+kSEA/5AdMv+QHsr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf7/kB7//5Ae//+QHv/+kB///5Ae//+QHv//kB7//5Ad//+QHf//kBz//5Ad//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMRbW8wSW1vMAFtbzAD/jxsA/48cAP+QHgD/jyAD/pAdXf+Q + Hub/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lrnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNq1tbzA5bW8wAW1vMAP+P + GwD/kB0A/5AdAP6QHAD+jxwK/pAdef+QHu7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflcXM3aXFzNqFxc + zWlbW80oXV3NAlxczQBcXM0AAAAAAP+WGAD/jh4A/JIhAP6QHgD/jx0U/pAdgv+QHuv/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzN6lxc + zdBcXM2mXFzMb1tbzDdbW8sOWVnQAV1dzQBbW80AXFzNAFxczQAAAAAAAAAAAP+PHAD/jhkA/4wYAP6Q + HAD/jxwQ/pAdcv+QHuT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lqnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf5cXM37XFzN91xc + zeZcXM3JXFzNpVxczXVcXMxIXFzNIFtbzRBaWsgBXFzMAFxczABbW80ALCzgAFpazgBbW80AXFzNAAAA + AAAAAAAA/48bAP+PHQD/jx0A/4sbAP6QHQD+jx4K/5AeWP+QHsv/kB79/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf+i2ua8llb0OtcXM3mXFzN3Fxc + zc5cXM2zXFzNllxczXlcXM1XW1vMPVtbzCdbW8sLYGDNAFxczgBcXM0AW1vNAFtbywBcXMwAW1vKAFpa + yABYWM4AWFjPAFdXzwAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHAD/jxwA/ZEfAP+QHgD/jyAC/5AdM/6Q + HpL/kB7i/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//uP + Ifiyd3CGU1nWUFxczElbW8w1W1vNHFxczQ5bW8wJWVnKBF1dzwBbW8wAXFzMAFxczABbW80AW1vLAF1d + zwBbW80AW1vMAFxczABbW8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + IADotwAA/5AeAP+QHgD/kB0A/pAeDP6QHVD/kB6w/5Ae7/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHvv/kB7i/5Aeq/+SFimxd3EAWVvQAFxczQBcXM0AXFzNAFtbzQBbW8wAWlrKAFtb + zABbW8wAW1vLAFxczABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+OIAD/kR4A/48fAP+MHgD+kB4A/ZQrAP6QHBb/kB1m/5Aeu/+Q + Huj/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9/+QHub/kB66/5Aeef6QHkH/kB4T/5EaAeKGPQBPV9oAWlrLAGJi + zABcXM0AW1vNAFtbzABbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/44bAP2R + IAD+jxwA/5AdAP+QHwP+kB0Z/5AdS/6QHo7/kB7G/5Ae8f+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/v+QHvv/kB7o/5Aexf+QHp//kB5y/5AdRP6QHRj+jx8D/pAeAP+Q + HgD/kB0A/5AdAP+QHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIZLDgD/jxsA/48fAP+NIwD/kBwA/5AeAP6QHgD/kB4A/48cBv+QHST/kB1Z/5Admv+Q + Hr3/kB7X/5Ae6/+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/P+QHu//kB7j/5Ae1v+QHr7/kB6b/5Aebv+QHkH/kB4j/48cCf+P + HQD/kB8A/pAeAP6PHwD+kB0A/48fAP2RHgD/jx8A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+SHAD/kB4A/ZIiAP6Q + HQD/jx0A/5AdAPeeIAD/kB0K/5AdE/+PHSz/kB1S/5Adcv+QHpX/kB6t/5Aeuf+QHsH/kB7O/5Ae1v+Q + HuH/kB7p/5Ae4/+QHtz/kB7T/5AeyP+QHsL/kB65/5Aeqv+QHpL/kB52/5AeW/+QHkP/jx0p/pAdEf+Q + Hgr/jhkC/5AeAP+QHgD/jxwA/5AeAP6PHAD+kR8A/o8eAP9+MQD/jx8A/48fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jyAA/48OAP+PHQD/kB0A/48dAP+QHQD/kB0A/5AeAP+QHgD/kR0A/48bCP+P + HRT+kB4a/pAeHv+QHSX+kB0p/pAdL/6QHTP+kB0w/pAdLP+QHSj/kB4i/pAeH/6QHhv/jx0T/44cBv+Q + HQD/kB4A/5AeAP+QHgD/kB4A/5AeAP+PHAD/kSIA/5AdAP+PGwD/jxwA/48bAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48gAP+PGAD/jx0A/5AdAP6Q + HQD/jRkA/5AcAP+PHgD/jxwA/48dAP6QHgD+kB4A/5AdAP6QHQD+kB0A/5AeAP6QHQD+kB0A/5AdAP+Q + HgD+kB4A/pAeAP+PHQD/jx0A/48fAP+QHQD/jx0A/4wVAP+QHgD/kB4A/5AdAP+OGQD/jxsA/48bAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + //gAAAAAf/8AAP///+AAAAAAH/8AAP///gAAAAAAA/8AAP//4AAAAAAAAP8AAP//wAAAAAAAAH8AAP/g + AAAAAAAAAB8AAP8AAAAAAAAAAB8AAPAAAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAeAAAAAAAAAAAAA + QB/gAAAAAAAAAAAAwB/wAAAAAAAAAAAH///wAAAAAAAAAAA////AAAAAAAAAAAA///8AAAAAAAAAAAD/ + //gAAAAAAAAAAAH//8AAAAAAAAAAAP//8AAAAAAAAAAAAP/+AAAAAAAAAAAAAP/4AAAAAAAAAAAAAP/A + AAAAAAAAAAAAAP+AAAAAAAAAAAAAAP4AAAAAAAAAAAAAAPgAAAAAAAAAAAEAAPAAAAAAAAAAAAMAAOAA + AAAAAAAAAAcAAMAAAAAAAAAAAAcAAIAAAAAAAAAAAB8AAAAAAAAAAAAAAP8AAAAAAAAAAAAAAP8AAAAA + AAAAAAAAD/8AAAAAAAAAAAAAH/8AAAAAAAAAAAAD//8AAAAAAAAAAAB///8AAAAAAAAAAAf//wAAAAAA + AAAAAH///AAAAAAAAAAAAP//+AAAAAAAAAAAB///4AAAAAAAAAAAB///AAAAAAAAAAAAB//+AAAAAAAA + AAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAA + AAAAAAAAAAAAAMAAAAAAAAAAAAEAAOAAAAAAAAAAAB8AAPgAAAAAAAAAA/8AAPgAAAAAAAAAH/8AAP4A + AAAAAAAf//8AAP8AAAAAAAAf//8AAP/AAAAAAAB///8AAP/4AAAAAA////8AAP/+AAAAAD////8AACgA + AABgAAAAwAAAAAEAIAAAAAAAAJAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFtbywBbW8sAXFzKAFtbywBbW8wAXFzNAFtbzQB8fL4AWlrNAFtbzABcXMwAW1vNAFxc + zQBcXM0AW1vMAFtbzABbW8wAW1vMAFxczQBcXM0AW1vMAFxczQBcXM0AW1vNAFtbzQBcXM0AXFzNAFtb + zABbW8oARUXCAFtbzQBcXMwAXFzMAGBg0ABeXs4AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzLAFxczABcXM0AXFzOAFpaywBbW8wAXFzNAFtb + zABdXcwAZmbOAFlZygJcXMsDW1vMBFxczQZcXM0HW1vMCFtbzAhbW8wJW1vMCVxczQlcXM0JW1vMCFxc + zQdcXM0GWlrNBVtbzQVcXM0EW1vMA1lZygJeXtMAW1vMAFtbzQBcXMwAXFzMAFRUxwBbW80AW1vLAFpa + yQBaWskAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXMwAW1vNAFtbygBbW8wAXFzNAFxc + zABcXM0AXFzNAFhYyANaWswMXFzNFltbzB5bW80oW1vNQltbzFlcXMxoXFzNdFxczYlcXM2UW1vMoFtb + zKdbW8ypXFzNrlxczbJcXM2wW1vMqVxczZ1cXM2SW1vNhltbzX5cXM11XFzNa1tbzF5bW8w9XFzNI1tb + zRdbW8wNXFzJAltbzABbW80AW1vLAFtbygBcXM4AVlbJAFxczQBeXs0ATEy8AGBg0ABfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAW1vNAG1t + eQBcXMwAW1vMAFxczABcXM0AXFzOAFxczBJcXM0sXFzNRFxczWhcXM2IXFzNqlxczcdcXM3bXFzN5Fxc + zetcXM3vXFzN8lxczfhcXM37XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM36XFzN91xc + zfVcXM3yXFzN8FxczexcXM3gXFzNy1xczbFcXM2NXFzNZFtbzUZbW80yW1vLGVhYxQJbW8wAXFzNAFxc + zQBgYM4AW1vLAFpayQBaWsoAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxc + zABbW80AXFzMAFxczQBcXMsAW1vNAFxczQBcXMsBW1vMB1tbzCBcXMxFXFzNcVxczZ1cXM3FXFzN5lxc + zfhcXM37XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM37XFzN91xc + zelcXM3NXFzNp1xczW1cXMw0XFzNDF1dzAJaWswAW1vMAFlZxwBbW8sAWFjIAGFh0ABfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxczABVVb4AXV3OAFlZyABbW8sAXFzMAFtbzQBbW9IAW1vND1xczSZcXM1UXFzNj1xc + zcBcXM3bXFzN9lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM3NXFzNnlxczV5cXM0nW1vMC2Fh + 2wBcXMwAXV3OAFxczABYWMYAWlrIAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+PIAD/jx0A/48dAPuPIgDVg0sAT1jbAFda0gBYW9AAXFzLC1xb + zStcXM1WXFzNlFxczdBcXM3qXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/VxczexcXM3HW1vMf1tbyzBdXc4EW1vMAFxczABjY+EAXFzLAFtbzABpadQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48bAP+PHQD+kB4A/pAdAP6RGwD/jx0A/48dAP+Q + HgDviy4AADX/A01W2htVWdJIWFvQillb0MVaW8/xWlvP/Fpbz/9aW8//WlvP/1pcz/9bXM7/W1zO/1tc + zv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VxczcBbW8xyW1vMI1xc + yAFcXM4AXl7OAFxczQBbW8sAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48bAP+PHQD/kB0A/44bAP6QHQD/kB4A/48cAP+P + HQD/kB4A/pAdAP+QHQD/jRsC/48cCf+QHQ7/lBEQiWqdU3Rjs7VyY7XdcWK2+3Fjtv9xY7b/c2O1/3Nj + tf9xY7b/b2K4/21iuv9rYb3/amC+/2hgwP9nX8L/ZF/E/19dyf9bXM7/WlvP/1pbz/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3yXFzNsFtbzE9bW8wSWFjIAFxczABcXMwAWVnMAFtbzQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/44aAP+PHQD+kB0A/44aAP+P + HAD/kB0A/5AeAP+QHgD/kB4A/48aCP+PHRv+kB4t/pAdPv+QHkz/kB5k/5Adfv+QHo7/kB2Z5Ig6z9KC + Tf/ahEX/34Y//+KHPP/kiDr/6Ik3/+eJN//jhzv/3IVC/9WDSv/NgFP/yH9Z/8J8YP+9e2X/tXhu/6Nz + gP+NbJf/gGim/3Vksv9mX8L/XFzM/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Vxczd5bW82TXFzMNVxc + zAVcXMwAW1vMAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + GwD/jx0A/5EgAP+PHAD+kB0A/pEgAP+OGwL/kB0G/48dHf6QHUb/kB5o/5Aejv+QHqv/kB7G/5Ae3/+Q + HvL/kB74/5Ae+v+QHvv/kB78/5Ae/v+QHv//kB3//5Ad//+QHP//kRz//5Ec//+RHP//kRz//5Ad//+Q + Hv//kB7//pAf//6QH//9jyD//Y8h//qPI//yjCv/5og5/9WDS/+/e2P/q3V4/5hvjP+CaKT/aWC//15c + y/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM37W1vMw1tbzE1aWswHW1vNAFtbzABcXM0AXFzNAAAAAAAAAAAAAAAAAAAA + AAD/jx4A/48fAP+PHQD/jRkA/pAeAP+PHQD/kB0A/5AeAP6PGwX+kB0V/5AdNP+QHWD/kB6T/5Aevv+Q + Htv/kB7y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ad//+Q + Hf//kB3//Y8g//KMLP/khzv/x35a/55xhv94Za7/Zl/C/1xczP9bXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczdJcXM1iXFzNClxc + zQBcXM0AW1vMAFtbzABaWswAAAAAAAAAAAD/kB0A/44fAP+PHQD+kB0A/5AdAP+MFQH/kB0c/5AeQf+Q + HnD+kB6p/5Ae2v+QHu3/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//pAf//SMKv/hhj7/vXtk/5Ru + kf90ZLP/YF3J/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzNZVxczQpcXM0AXV3NAFlZzABaWswAAAAAAAAAAAD/kB0A/5EdAP6O + HAH/jxwS/pAdQf+QHnf/kB6t/5Ae4v+QHvn/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//Y8g//OMKv/Sgk7/nXGH/21huv9dXMz/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWRcXM0JXFzMAF9f + zQBaWsoAX1/PAAAAAAD/kB0I/5AeK/+QHmD/kB2l/5Ae1/+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/8Isu/8yA + VP+TbZH/Zl/C/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczddbW8xRWlrKBFtbzABeXs8AXl7NAFpayQD/kB09/5Aexf+QHu7/kB79/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHv/sijP/tnls/39np/9gXcj/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8zCW1vMOUxMwABdXc0AXFzLAFpa + yAD/kB5V/5Ae9P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+o4j/96G + Qf+kc3//bGG7/VtczvtcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM37XFzMmFxczBVcXM0AXV3RAGNj6gD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/0jCr+wnxf4nxmq7VbXM2tW1zNyFxczdxcXM3qXFzN+1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN41tbzFpZWckDWlrLAFtbywD/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//Y8g9vGM + LLTHflpCV1rRHltczi1cXM1YW1vNklxczcRcXM3xXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zbVbW8wiW1vOAFtbyQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHfb/kRyl/5MSKHxlqgAzTvYBW1vLB1xczCdcXM10XFzNwlxc + zfhcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW81mWVnNA1tbzAD/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB73/5Aep/+Q + HijXhUcAdWOxAFdYywBcXMwGW1vMMVxczZ1cXM3xXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW82rWlrNF1tb + zQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9v+QHZL/jxwZ/5EdAKp1eQBcXM0AV1fJAFtbzSNbW82hXFzN+1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzNSFxczQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB3//5Ac//+QHP//kB3//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHuv+kB11/48eCf+Q + HQCNa5YAWVnPAGZmwgBaWsw/XFzN0Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM35XFzNelVVzwT/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac//+QHv/6jiP/9o0n//OMK//wiy7/7osw/+2K + Mv/0jSnx/5Ae4/+QHuX/kB7p/5Ae7/+QHvX/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7Q/5AePvyfCwD/jx8AZV3BAFpazQBZWc0NXFzNlVxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNoVtbzRf/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+QHu3/kB3V44c848N9 + Xv+yd3H/pXN+/5dvjf+ObJf/i2ua+JFtlMSudnVx+o4kQP+QHEX/jx1V/5Aeav6QHn3+kB2Z/5AesP+Q + Hsj/kB7o/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB75/5Aemf+QHhb/kB4A+o4jAFpZ + zQBiYskAW1vNcFxczfZcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNw1xczTH/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Ae9v+Q + Htf/kB6m/5AegP+QHWD/khg8eGWvlGFeyP9gXcn/Xl3K/11czP9cXMzjXFzNi1la0C0qSv8E/5QWAOad + YQD/jBgB/o8dA/2QHgX+kB0H/5AeDf+PHSr+kB1Z/5AdjP+QHtD/kB75/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae4/+QHVP/jRUC/48bAFBY2gBcXM0AXFzNYlxcze5cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3Vxc + zEX/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8f+QHtP/kB6X/5AdX/+QHjj/jx0X/4wfAfKMLACgcoQAWlzPgFtczv9cXM3/XFzN+lxc + zcNbW85XV1nPDmtgvQB+ZqkA8ostAP+PGgD/jxwA/pAeAP6QHgD+kB0A/5AeAP+QHgD/kB4A/48bCf6Q + HTv/kB2H/5Ae3/+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+QHqL/kB0V/5AdAEpX4wBaWswAXFzNalxc + zfNcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN8FxczVv/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+f+QHt3/kB6t/5Aeb/6QHTD+kB0P/ooMAf+QHgD/jx0A/48eAKNz + gQBiXscAXFzNb1xczeFcXM3YXFzNm1xczTJWVdACW1zMAEtU3ACKa54A54c5AP+QGgD/jxwA/pAeAP6Q + HgD+kB0A/pEdAP+PHAD+kB4A/48bAPySHgD+jxwO/5AeW/+QHtD/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Htr/kB5A/5sAAHdksABbW80JXFzNjVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VtbzWn/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvn/kB7U/5Adi/+QHkj/kB4U/48dA/6R + HgD+kB0A/48bAP+QHgD/jx0A/48eAF1czABcXM0AXFzNJlxczU1cXM1BW1vMF1tbzQBaWs4AXl7LAFFR + 0gBYWM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jiQA/48YAP+OHQD+kBwA/48fB/+Q + HmH/kB7l/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvb/kB6B/5UOBYJmoABcXM07XFzN0Vxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN9VtbzXH/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB74/5Ae1f+Q + HYz+kB08/48dDf+QHgD/kB4A/5AeAP+OHQD+kB0A/48bAP6QHQD/jxoAAAAAAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFxczQBbW80AYGDMAFVV0ABXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jyAA/44AAP+PHgD/ii0A/pAdAP6PHRb/kB6c/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB2z+Y0jFlhb + 0ilcXM2qXFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9lxczHz/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuD+kB2P/5AdPP6PHQ39kR4A/48dAP6QHgD/jyAA/5AeAP+PHQD/jx0A/48dAAAA + AAAAAAAAAAAAAFxczQBcXM0AXFzNAFxczQBcXM0AW1vKAFxczQBcXM4AXFzNAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jx4A/48eAP9RMAD/kB5b/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/7jyLUpXN9c1tczq9cXM33XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9Vxc + zHH/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB70/5Aetv+QHlX+kB0O/pIfAP6QHQD/jh0A/48dAP+P + HQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/iQAA/5AdAP+QHQD+kB0+/5Ae4P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/0jCr2l2+N71tczv1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81xczVv/kB5V/5Ae8/+QHv//kB7//5Ae//+QHt3/kB57/pAdJP+L + JAH+kB4A/48dAP6QHQD/jx0A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/5AdAP+QHQD/kB05/5Ae2P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/5jiT/o3OA/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN71tbzFL/kB5W/5Ae9f+Q + Hv//kB73/5Aeuf+QHk3/jx4K/pAeAP+PHgD/jx4A/48dAP6QHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+OIAD/jyAA/pIaAP6Q + HQD+kB1E/5Ae5f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/sndx/15dy/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN41tbzEn/kB5B/5Aeuf+QHr//kB6K/pAeLO+NFQD/kB0A+pofAP+PHgD/jx4A/48fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP2PIAD/kB0A/48dAP+OHQT/kB5u/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/t3lr/2Fd + yP9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNwVtbzC/+kB4O/pAeKP6QHif/jxwP/ZEhAP6Q + HQD+kRoA/44fAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABfX88AYGDQAF1v/ABWWtMApXJ9AAAr/wD1jCkA9o4nAP+QHTD/kB7H/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/u3pn/2Rexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzMmVpa + yhL+kB4A/pAeAP6QHgD/jxwA/48cAP+PHAD/jScA/48fAP+PHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5Y2wCGaZ8AY17FAJ1vgwAtTf8Ag2ehANCB + TwD/lAoC+I4kL/2QH6j/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/v3tj/2Zfwv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM33W1vMcmho7AD+kB4A/pAeAP6QHgD/jxwA/44XAP+PGwD/jxsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/kRYA/6EAAOmI + NADCfF4ASlbfAJZujgD/wgAANU7zBpduiybfhkBt/I8hvv6QH/n/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/t3lr/2FeyP9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3cW1vNR1tbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jx8A/48eAP6Q + HgD/kB0A/44YAP+PHQD+kB4A/5MSAO6KLgDOgFEAAAv/AoRooReccIg6q3R3hNeDSMP0jSnx/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/rnZ1/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8ysWlrMFVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/5AdAP+QHgD/lhcA/48dAP6QHgD/kB0A/5AeAP+QHgD/kB0A54k4AOuIMRLOgFE1x35aY8d+ + Wq3dhUPf8Yws9/qOJP//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB//qXV5/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczelbW8xYWVnJAVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48dAP+PHQD/jx0A/pAeAP6QHQD/jhsA/5AdAP+QHQD/kB4A8BEAAP6QHQP/kB0H/48cGP+P + HTT+kB5R/5AddPuPIZ/sijLS84wr9fyPIf79jyD//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/2jSf/n3GF/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczKVbW8wWW1vMAFtb + zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGgD+kB0A/48bAP6QHQD/hgUA/5AdAP+QHQD/jx0A/pAeAP6QHQD+lScA/48dDP+Q + HRj/kB4n/5AeSP+QHm//kB6W/5Aeu/+QHs//kB7i/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/miDn/hmmg/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN01xczUF6epgAXFzMAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyAA/48aAP+PHgD+kB0A/48bAP6QHQD+kB0A/5AeAP+Q + HgD/jx0H/pAeIv6QHTn/kB5Y/5Aehv+QHrL/kB7Y/5Ae5v+QHvH/kB78/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+R + HP/Vg0v/bmK6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3uW1vMcFxczgdcXM0AXFzNAFxczAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxwA/5AdAP+O + HgD+jx0A/pEgAP2QHQP/jxwR/5AdNf+QHV3/kB6J/5Aetv+QHtr/kB70/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//2PIP+8e2X/YV7I/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM2GW1vLFltb + zABWVs8AWlrMAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/pAdAP6PHQD/jxwA/5AdAP6WHwD+jx0Q/5AdNP6QHm7+kB2r/5Ae0P+QHur/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//OMK/+Yb4z/XVzM/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN8VxczYdbW8wXXFzNAFxcywBdXc0AYmLRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/JIYAP+PHQD/jhsA/pAdAP+QHQD/jxsF/5AdJf+QHlL/kB6X/5Ae1v+Q + HvH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/9eDSP9yY7X/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3nXFzNhFtbzBdcXM0AWlrKAFtbywBcXMwAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jiAA/pEcAP6PHgD+kR4A/o8cBf+P + HS//kB14/5Aeu/+QHuz/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/944m/6ByhP9fXcr/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczcdcXM1fW1vKEVxc + zgBaWsoAW1vLAFtbywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jx0A/44eAP6R + GgD+jx4A/5AdAP6PHgT/kB0p/5AdeP+QHsj/kB72/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB//zYBT/3Fj + tv9aXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3sXFzMpVxczTtcXM0DXFzNAFpayQBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHAD/jxsA/5AhAP+PHQD/kB4A/5AeE/+QHmH/kB7G/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/oiTb/jWyY/11czP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN71xczbhcXM1jW1vMFlxcwgBcXM0AXV3QAFtbywBcXM0AW1vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+OGwD/kB8A/48eAP+OHgP+kB4x/5Aekv+Q + Huj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//WNKP+qdXn/Yl7G/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczfFcXM26XFzNbFxczRxdXc4BW1vMAFxc + zABcXMwAXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxsA/5AmAP+P + HgD/jx0A/48cB/+QHUv/kB7B/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/9o0o/7J3 + cP9rYb3/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM3UW1vNmVxc + zVhcXM0kVlbPBFxczQBcXM0AWlrLAFxczABcXMwAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGwD/jxoA/5AfAP+PHQD/jx0I/48dWP+QHtH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/2jSj/sndw/2thvf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze5cXM3TXFzNrlxczXlbW800WlrNEf///wBbW80AWVnOAF5ezABcXM0AXFzNAFxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NHAD9kSAA/48dAP+OGAP/kB1L/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae/+uKM/+tdnb/a2G9/1tczv9cXM3/XFzN/1xc + zf9cXM38XFzN+FxczehcXM3FXFzNlVxczWNbW805WlrNEVtbzARfX8sAW1vNAFlZzABbW80AWFjPAFtb + zQBVVdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48aAP+Q + GwD+jxwA/IsUAf+QHUD/kB7G/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/8jyH/1oNJ/5Bt + lP9lX8T/W1zN/1xczflcXM3uXFzN4Fxczb9cXM2WXFzNaFtbzUZbW80sWlrMDVxczQBcXM0AW1vNAFtb + zQBZWc4AXFzMAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx0A/pAdAP+QIwD+kB0A/5AeI/+QHq3/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/+yKMv+7emf/fmeo9F5cy9xbXM7HXFzNsFtbzY1cXMxjXFzMNlxczRtcXM0QXV3MA1tb + zABbW80AWlrMAFxczQBbW8wAPDzcAFtbzQBaWs4Ak5O4AFZWzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+PHAD/jxsJ/5AefP+Q + HvP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv72jSj204JN3KRzf7ZsYbuTWlvObVtbzkhcXMwoXFzNDVtb + zAZbW8sCXV3PAFxczQBcXM0AXV3MAFRUxwBbW80AWlrMAFtbzQBaWswAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jx0A/44dAP2RHQD+kB08/5Ae1P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB/2/pAf4/eNJrDsijJilW6OO1BX + 2CJNVtgLbGG+AFtbzgBcXM0AXFzNAFtbzABcXMwAW1vKAFxczQBcXM0AXFzNAGBg0ABfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB0A/pAdAP6PHQ7/kB2Q/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB7//pAf7P6Q + H8D7jyKD/o8fQOyKMRfriDECnXCGAGFdxQBbW8oAWFrQAFxczABcXMwAWFjKAFtbzQBcXMwAW1vLAFxc + zABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jiAA/pAdAP+Q + Hiz/kB7U/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ad//6Q + H//7jyL/8Ywt+PCLLs77jyGP+48gX/6QHyX4jSYG/5MfAO+LLgDsijEAl2+MAF5cyQBaWssAWVnFAFpa + yQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+kB4A/ZAeA/6QHm3/kB7x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+Q + HP//kRv//5Ae//eOJv/viy//44c8/8l/V/+tdnbvqHR8jdKCTjPvii8K9I0pAP6QHwD5jiQA/Y4fAPGL + LADtijAAg2uXAP+RFwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpa + yQBaWskAWVnFAFpaygBbW8wAW1vMAFpazABaWswAWlrMAAAAAAD+kB0A/pAeCv6QHqj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kB3//5Ad//+QHf//kB3/940n/+iJNv/ZhEf/wn1f/6h0e/+La5r/dGSz/2pgvftiXcWkRVTkG9KB + TADmiDkA/5IWAP6QHgD4jiUA/o8fAPmOJAD/jxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaywBZWccAXV3RAFpayQBbW8wAWlrMAFpazABaWswAWlrMAAAA + AAD/kB4A/48dIP+QHsH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP//kB3//Y8g//uPIv/yjCz/24VF/8d+Wv+yd3D/n3KF/4lrnP9yY7b/YV7H/19d + yv9cXM3/WlzP/1tcz+VaW89JWGzxADpR8QC6emkAUFrXAP+SFgD/jx8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX88AYWHQAGBgzQBcXM4AW1vNAGJi + 2ABZWcoCWVnLAlhYzAFYWMwAWFjMAAAAAAD/kB4A/pAdR/+QHtz/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+RHP/9jyD/84wr/+mJNv/Xg0j/vXtk/6Nzgf+Ka5v/eWWu/2th + vP9eXcr/W1zO/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczcJcXM0eW1vNAFhZzABeXdAAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrJAFpa + ygBZWckAXl7OAF5ezQBbW80AW1vLBltbzDVbW8xfW1vMWlpazBpaWswAWlrMAAAAAAD/kB4A/pAdcP+Q + Hvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/9kCD/74sv/9iDSP+8e2X/mG+N/3ll + rv9uYrr/Z1/B/19dyv9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zaxbW80WW1vNAFtbzQBcXM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF9fzwBiYtAAWVnLAFtbzABXV8IAXFzNAFpazABcXM0QW1vNYVxczctcXM3uW1vM3Vtb + zEJbW8wAW1vMAAAAAAD/hycA/5Aegv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAe/OiJ + Nvm7emb+k26R/3Jjtf9hXsf/XVzM/1tczv9aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbRbW80ZXFzNAF1dzACHh6wAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV1fPAFhYzwBYWNAAWlrNAFxczQBcXM8AW1vMBFtb + zC9bW82KXFzN5Fxczf9cXM3/XFzN8FtbzEhbW8wAW1vMAAAAAAD/jiAF/5AeiP+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3u+48hophvi65mX8L3W1zO/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdlbW800Xl7MAFhY + zgBaWs0AWFjPAFdXzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAXFzOAFtb + wwBZWc4AWlrNAC4uZQBbW8wdXFzNa1xczcVcXM32XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD/jx0O/5Aelf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvL/kB2J8IssHFpbzmJbXM7tXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfNbW8x6WlrJCltbzABmZssAWlrPAFtbzQBjY9IAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx4A/48fAP+PHQD/jx0A/48dAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAFxc + zABcXM0AXFzMAFxczQBaWssAXFzNAFtbzQBISNUBWlrNHFxczVVcXM2tXFzN7lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxsW/5Aen/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+Q + HbH/kB0izoBQAFtbzTdcXM3YXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3TXFzMS19f0gJcXMwAXl7QAFxc + zQBtbdoAYGDQAF9fzwAAAAAAAAAAAAAAAAAAAAAA/48dAP+PGwD/jx0A/48fAP+PHQD/jx0A/48dAP+P + HQD/jx0AAAAAAFxczABcXMwAXFzLAFxczABcXMwAXFzMAFxczQBdXc4AW1vLBFtbyx5bW81dXFzNrFxc + zepcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwV/5Aenf+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9P+QHmH8iiACeWWsAFtbzBdbW82wXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzNxFtbzU1aWswMWVnLAFxczQBdXc4AWFjNAGFhyQBcXM0AXFzNAFtbzABaW84AtXhrAPqN + IAD/jx0A/4wiAf+PHQr/jx0N/48dBf+TDgAAAP8AXFzNAFxcywBcXMwAXFzNAFxczABcXM0AXV3LAlxc + zRBcXM00XFzNeFxczbdcXM3oXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD/jx4P/5Aelv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae2v+QHTr/kB0ATVfcAFtb + zAZcXM1tXFzN8Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczdlcXM2BXFzNNFxczQtaWswAXFzNAFtb + zQBcXM0AXFzNAFtbzABPWNkAp3N6APqOIgD/jx0I/5AeRP+QHoL/kB2J/5AcP8R9XQBrYLwAXFzNAFxc + zQBcXM0AXFzOAFxczBFcXMwwXFzMYFxczZtcXM3YXFzN9Fxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jx8I/5Aejf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Aezf6QHjL/kB4A0YFPAFxczQBcXM0pXFzNvlxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM30XFzNyVxczYtcXM1YWlrNKFpazQ1cXM0GXFvMA1laywIAC/8BADP/AfqOIhX/kB5q/5Ae0/+Q + Hvz/kB74/I8feAAv/wJXWtEGW1vMClxczCZcXMxKXFzNcVxczZ1cXM3MXFzN81xczf1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD+khsA/5AedP+QHvj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae3P6QHT3+kB0A1YRHAFxczABcXMwFXFzNblxc + ze5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfxcXM3nXFzNx1tbzatcXM2KW1zNbFha + 0GBuYrlQx35YWviOJJ7/kB7o/5Ae//+QHv/+kB79y39VsFlb0HhbXM2RXFzNqlxczcVcXM3eXFzN91xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB4A/5AeVP+QHuX/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v+Q + Hmr/jx8E/5AfAP+sAABcXMwAW1vMI1tbzKtcXM38XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bXM74XVzM8Hdlr+yyeHDo7osv6/6QH/v/kB7//5Ae//+QHv/9kB//q3V391tc + zvNcXM36XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB4A/48dNf+Q + Hs//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/v+QHrf+kB4o/pEcAP+QHQBRWdgAW1vJAVxczUlcXM3XXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/19dyv90ZLP/oXKD/9OCTf/3jib//5Ae//+Q + Hv//kB7//5Ae//+QHv/9jyD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD+kB0A/48cE/+QHqr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvP+kB2M/pAeFv6Q + HAD/jx4AXlvIAFxczgpbW81vXFzN6lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/WlzP/1tczv9lX8T/eWWu/6Vz + f//Xg0n/9o0n//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB0A/5AdBP+QHnn/kB70/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7s/pAdj/+PHS3/jh4F/o8eAJtxiQBXWc8UW1vMiFxcze9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tc + zv9fXcn/cGK3/4xrmv+4eWr/34ZA//eNJ///kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD/jxwA/5MiAP+QHTb/kB7P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v+QHr3/kB1q/48dJ/+Q + Gwj//wAAUFfYH1haz45aW87sW1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tc + z/9aW8//W1zO/15dy/9gXcn/bmK5/4prm/+tdnX/z4FR//CLLv/9jyD//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB0A/5AcAP+PHAv/kB2D/5Ae+P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7s/5Aewv+QHZH/kB1V/5EbK6p0dzdvYbeSZV7D7WJex/9fXcn/XVzM/1tc + zv9cXM3/XVzM/19dyf9iXsb/Z2DB/2xhvP9wYrj/gWil/55xhv+7emf/1YNK/+mJNf/8jyH//5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwA/40aAP+R + HgD/kB01/5Adyv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvr/kB7q/5Ae2f+Q + HLvviy+sxX1b2K12df2jc4H/m3CJ/5VukP+Xb43/nHCJ/6Nzgf+udnX/wHxi/8+BUf/fhkD/7Ioy//SN + Kf/9jyD//5Eb//+QHP//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD/jxwA/48cAP+PHAD/jxsJ/5Adbf+QHur/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB38/pAf/PyPIf/7jyL/+o4j//qOJP/6jiP/+o4j//uP + Iv/8jyH//ZAg//+QHv//kB3//5Ec//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwA/48cAP+QMgD/kB0A/5AeG/+Q + HqH/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHf//kB3//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN71tbzEdbW8wAW1vMAAAA + AAAAAAAA/48aAP6QHAD+jx4A/0iXAP6QHTP+kB29/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfVcXM3YXFzNoFxczSpcXM0AXFzNAAAAAAAAAAAAAAAAAP+MJAD+kBsA/48cAP+OGQL+kB1I/pAdzP+Q + Hv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/lxczfhcXM3fXFzNrFxczXNcXM1AWlrOEV1dzQJcXM4AXFzNAAAAAAAAAAAAAAAAAP+P + IAD/jSQA/pAcAP+PHQD/jx0I/48dUf6QHcb/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81xczehcXM3PXFzNplxczXhbW8xBW1vMG1hYxQJcXMwAXFzNAFxc + zQBcXM0AXFzNAAAAAAAAAAAAAAAAAP+PHwD/jx0A/pAhAP+PHQD/jx0A/48cBf6QHEL+kB28/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM30XFzN4VxczcpcXM2oXFzNeVxczE1cXM0kW1vNFFtb + zAhcXM0AW1vMAFtbygBcXM4AS0vTAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+N + GgD+kB8A/48eAP+OHgL+kB41/5Aeo/+QHvD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qXV6/ltczv1cXM39XFzN+1xczflcXM33XFzN51xczdBcXM25XFzNpFxczYdbW8xsW1vNT1xc + zCtbW8wMW1vMBFhYwgBcXM0AW1vNAFxczABYWMMAW1vMAFpayQBaWskAWlrJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jhoA/pAgAP+PHQD+khkA/5AeHv+QHnv/kB7V/5Ae+f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kB//unpn0Vlbz6RcXM2bXFzNj1xczXZbW81bXFzNQ1tb + zTNbW8wkWlrLFlpaygRcXMwAXFzNAFxczQBcXM0AW1vNAFtbywBgYNYAW1vNAFxczABbW8oAW1vLAFtb + ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/44eAP6Q + HQD/jx4A/5AeAP+PHQv+kB48/pAdmP+QHuX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB768IstfUlV + 4BJaW84RW1vMDlpaywd4eMgAXFzNAFtbzQBbW8wAW1vMAFtbzABbW80AW1vMAFtbywBdXc8AW1vMAFxc + ywBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx0A/4AZAP6PHQD/kBoA/o8cF/6QHVv/kB2t/5Ae8P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB78/5Ae6/+QHsT/kB6I/5EZMZNtkQBiXsYAXFzMAFtbzABXV84AXV3MAFtbzQBbW8wAW1vMAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/44eAP6Q + HAD+kB8A/pAdAOiycwD+kBwg/5Aeb/+QHrn/kB7l/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB73/5Ae6/+QHsz/kB6T/5AeVP6QHiv+jx8J/5EaAAAC/wBmX8IAXFzMAFtb + zABYWM4AU1PTAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+HIQD+kB4A/44WAP+PHAD+kBsA/5AeB/6QHR7/kB1O/pAekP+Q + HsT/kB7q/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7o/5Ae0P+QHrL/kB6H/5AdXP6QHSn+kB4O/wD/AP6Q + HgD/kB4A/5AdAP+PHwD/kRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+P + HQD/ijAA/5AeAP6QHgD8jhcB/o8dCv+QHSf/kB5e/5Aemv+QHs7/kB7m/5Ae9/+QHvv/kB7//5Ae//+Q + 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 + AAD//////AAAAAA/////////4AAAAAAH///////8AAAAAAAAP//////wAAAAAAAAH//////AAAAAAAAA + B/////4AAAAAAAAAAf///8AAAAAAAAAAAP///AAAAAAAAAAAAH//AAAAAAAAAAAAAB/4AAAAAAAAAAAA + AB/gAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAIAP4AAAAAA + AAAAAA4A/+AAAAAAAAAAAP////AAAAAAAAAAAf////AAAAAAAAAAB/////AAAAAAAAAAH////+AAAAAA + AAAAP////gAAAAAAAAAAf////AAAAAAAAAAB////4AAAAAAAAAD////wAAAAAAAAAAD///+AAAAAAAAA + AAD///wAAAAAAAAAAAD//4AAAAAAAAAAAAD//AAAAAAAAAAAAAD/+AAAAAAAAAAAAAD/wAAAAAAAAAAA + AAH/AAAAAAAAAAAAAAH/AAAAAAAAAAAAAAP4AAAAAAAAAAAAAAf4AAAAAAAAAAAAAA/wAAAAAAAAAAAA + AD/AAAAAAAAAAAAAAH/AAAAAAAAAAAAAAP/AAAAAAAAAAAAAB/+AAAAAAAAAAAAAH/8AAAAAAAAAAAAA + P/8AAAAAAAAAAAAP//8AAAAAAAAAAAA///8AAAAAAAAAAAP///8AAAAAAAAAAP////8AAAAAAAAAB/// + /AEAAAAAAAAAP////AEAAAAAAAAB////8AEAAAAAAAAH////wAEAAAAAAAAP////AAEAAAAAAAAP///+ + AAEAAAAAAAAD///wAAEAAAAAAAAB/APAAAEAAAAAAAAAeAIAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAAAA + AAHwAAAAAAAAAAAAAA/4AAAAAAAAAAAAAD/4AAAAAAAAAAAAAf/+AAAAAAAAAAAA////AAAAAAAAAAAP + ////gAAAAAAAAAP/////8AAAAAAAAAP/////+AAAAAAAAB///////gAAAAAAAH///////+AAAAAAH/// + //////wAAAAB//////8oAAAAgAAAAAABAAABACAAAAAAAAAAAQATCwAAEwsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXzwBXV88AVVXQAFlZ + zgBbW8wAW1vMAFxczABcXMwAW1vNAFxczQBcXM0AW1vMAFtbzABbW8wAW1vMAFtbzABcXM0AXFzNAFxc + zQBbW8wAW1vMAFxczQBcXM0AW1vNAFtbzQBbW80AXFzNAFxczQBbW8wAW1vMAFtbygBdXcwAYWHRAF9f + zwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAFtb + ywBbW8sAW1vLAFtbzABcXM0AXFzNAFtbzQCKircAWFjOAFtbzABbW8wAXFzMAFxczABbW80AXFzNAFxc + zQBbW8wAW1vMAFtbzABbW8wAW1vMAFxczQBcXM0AXFzNAFtbzABbW8wAXFzNAFxczQBbW80AW1vNAFtb + zQBcXM0AXFzNAFtbzABbW8wAWlrKAF5ezABWVsgAXFzNAFxczABcXMsAXV3NAGFh0QBfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxczABcXMwAXFzMAFxczABcXM0AXFzNAFpayQBbW8sAWlrMAFxczQBcXM0AW1vMAF1d + zABRUdACW1vMCVpazA1cXMwRXFzME1tbzRhcXM0dXFzNH1tbzCJbW8wkW1vMJltbzCZbW8wnXFzNKVxc + zSlcXM0pW1vMJ1tbzCVcXM0iXFzNH1tbzRxbW80aW1vNGFxczRZcXM0UW1vMEVtbyw5aWsgFVlbMAFtb + zABbW80AXFzMAFtbywBdXc0AV1fJAFtbzQBcXMwAW1vKAFlZyABaWskAWlrJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8sAW1vLAFtbywBbW8sAW1vMAFxczQBcXMsAXFzMAFxc + zQBcXM0AXV3PAFpaygZaWswNXFzNFVxczR1bW8wjW1vNK1tbzUBcXM1cW1vMbFxczHxcXMyDXFzNlVxc + zadcXM2uW1vMvVtbzMJbW8zJW1vMy1tbzM1cXM3UXFzN1lxczdRbW8zNW1vMx1xczblcXM2yW1vNo1tb + zZ5bW82VXFzNjFxczYZbW8x5W1vMbltbzE1cXMwyXFzNIltbzRpcXMwSW1vKB1ZWzABbW8wAW1vNAFxc + zABbW8oAVlbBAFtbywBdXc0AZ2fVAGBgzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzMAFxc + zABcXMwAW1vJAFtbywBbW8wAXFzNAFxczgBcXMwJXFzNFVxczR5cXM0uW1vMUVtbzGxcXM2KXFzNqVtb + zMFcXM3UXFzN3FxczeNcXM3oXFzN7Fxcze1cXM3yXFzN91xczflcXM39XFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczfpcXM32XFzN9VxczfJcXM3wXFzN7lxczetcXM3oXFzN3ltb + zM1cXM22XFzNnlxczH5cXMxWXFzNNltbzCRbW80bXFzMEVpayAVdXdAAW1vMAF1dzQBYWMoAXV3NAF1d + zQBiYtIAX1/PAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzMAFxczABcXMwAXFzMAFxczQBcXMsAXFzMAFxczABbW80AWlrKBltbzBBcXM0cXFzNL1xc + zV1cXM2JXFzNrVxczdFcXM3hXFzN6Fxcze9cXM34XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczftcXM31XFzN7FxczeJcXM3XW1vMv1tb + zaBcXMx8W1vMS1xczCJbW8wOYmLRAVtbzABcXM0AXl7OAFVVxgBcXMwAWVnHAFpayQBaWskAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXMwAXFzNAF1dywBcXMwAW1vNAFxc + zgBcXMwJXFzNFltbzCtbW8xSXFzMeFxczalcXM3SXFzN5Fxcze9cXM35XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM39XFzN9VxczexcXM3ZXFzNq1xczXJcXM04XFzNHVxc + zAsAAAAAW1vMAFtbywBYWMQAW1vLALy8/wBgYM8AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpayQBaWskAWlrIAFpa + ygBbW8wAXV3MAFxczABbW80AXFzOAFtbzApbW80aXFzNL1xczV1cXM2OW1vMxVxczeBcXM3rXFzN+Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM34XFzN6FtbzM5cXM2kXFzNZFxczTNcXM0WW1vKBl1d0gBcXMwAU1PGAF1d + zgBcXMwAW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXM0AXFzMAFtbywBXV8MAWlrKAFtbzABaWs0AXFzMCltbzRhcXM0uXFzNYFtb + zZ9cXM3QXFzN5FxczfFcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfZcXM3lW1vMx1xczYtbW8tIW1vLFW9v3gBaWssAXFzMAFtbzABXV8MAWlrJAFpayQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48gAP+PHgD/jxwA/48dAP+RGQCicoEATVfcAFdc + 1wBbWsQEW1vLEFxbzClcXMxdXFzNl1xczc5cXM3lXFzN9Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3+XFzN71tbzMpbW8x5XFzMNVtb + zBFkZNQAW1vLAFVVvABbW8sASUnAAGBgzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxsA/48bAP+PHQD+kB4A/5AdAP6Q + HQD+lw8A/48eAP+PHAD/jx0A/5AdAN+GQQAAEf8CS1beH1RZ1ElWWtJ6WFrQullb0OJZW9DzWVvQ/1lb + 0P9ZW9D/WVvQ/1lb0P9ZW9D/WlvQ/1pbz/9aW8//WlvP/1pbz/9aW8//W1zP/1tczv9bXM7/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczepbW8zFW1vMdVxczSZbW8oGXFzRAFxczQBVVckAXl7OAF1d + zQBcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/48cAP+P + HQD+kB4A/5AdAP+OGAD/jxsA/48dAP6QHgD/kB0A/pAdAP+QHQD/jB0C/44cCf+PHQ3/kB4R/5cFEbF3 + cS56Zqybc2O02nRjs+xzY7T7dGSz/3Rks/91ZLL/dmSx/3Zksf92ZLH/dWSy/3Rks/9xY7b/cGK3/25i + uv9tYbv/a2G9/2pgvv9pYL//Z1/C/2VfxP9fXcn/W1zO/1pbz/9aW8//W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf5cXM3lXFzNpVtbzE9bW8waX1/SAlpaywBeXs0AXFzMAFtbzABaWswAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxsA/48bAP+PGwD/jxwA/48dAP+QHQD/jhoA/48dAP6QHgD/kB0A/5EgAP+OGgb/jx0N/pAeFf+Q + HR3+kB0j/5AeK/+QHkD/jx1c/5AdbP+QHnz/kRyB8owrodCBUOrKf1b/04JM/9iDR//chUL/3YZB/9+G + QP/khzv/5Yg6/+SHO//fhkD/24VD/9KCTf/NgFP/xH1d/8F8Yf+7emf/tXht/7J3cf+qdHr/o3KB/41s + mP98Zqv/cmO2/21hu/9nYMH/YV3I/1xczf9aW8//WlvP/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM31W1vM0VtbzY9cXM06XFzMDTEx + 0QBbW8wAW1vMAFtbzQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/48cAP+PHQD+kB0A/44YAP+PGwD/jx0A/5AdAP+R + IAD/jxwJ/pAdFf+QHR7/kB0u/48dUf+QHWz/kB6K/5Adqf6QHcH/kB7U/5Ae3P+QHuP/kB7o/5Ae7P+Q + Hu3+kB/0+48i/vuPIv/+jx///pAe//+QHf//kB3//5Ac//+RG///kRv//5Eb//+QHP//kB3//Y8g//uP + If/5jiT/+I4l//eNJ//1jSj/9I0p//KMLP/xiy7/6ok0/96GQP/QgU//wXxg/6x2d/+TbZL/fmeo/3Nj + tP9tYbv/Z2DB/19dyv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3+XFzN8VtbzMNbW8xiW1vMFWJizwBbW80AXFzNAFxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxsA/48dAP+Q + HQD/jhoA/48dAP6QHQD+kR8A/44aBv+PHBD/kB0c/5AdL/+QHV3/kB6J/5Aerf+QHtH/kB7h/5Ae6P+Q + Hu//kB74/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHf//kB3//5Ac//+R + HP//kRz//5Ad//yPIf/4jiX/84wr/+yKMv/liDr/1oNJ/8J9X/+rdXj/jGua/3Jjtv9lX8P/XVzM/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Ftb + zM9bW8xuW1vNHWNj0ABcXM0AXFzNAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48cAP+PHAD/jx0A/5AdAP+OGgD/jx0A/5AeAP+RIAD/jxwJ/pAeFv6QHSv/jx1S/5AdeP+Q + Han/kB7S/5Ae5P+QHu//kB75/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ec//+R + HP/+kB//+Y4l//OMK//niDj/yX9X/6Vzfv+AZ6b/bmK5/2Nexf9cXM3/W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Vxczd5cXM2GXFzNIlxczQBcXM0AXFzNAFxc + zQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48gAP+PHgD/jx0A/44bAP+PHQD+kB4A/5EgAP+P + HAr/kB4a/5AeL/+QHV3+kB6O/pAdxf+QHuD/kB7r/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+QHf/6jyP/8Isu/9+G + P//Fflv/nHCI/3xmqv9qYb7/YF3J/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczeRcXM2IXFzNIlxczQBcXM0AXFzNAFtbzQBaWswAAAAAAAAAAAAAAAAAAAAAAP+P + HgD/jiIA/48eAP+PHQD9kR8A/48cCv6QHhj/kB4u/5AdYP+QHp//kB7Q/5Ae5P+QHvH/kB7+/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ae//qOJP/uizD/24VE/7R4bv+Ka5z/aWC//1xc + zf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeRcXM2IXFzNImNj + 0ABbW80AWlrMAFpazABbW8sAAAAAAAAAAAAAAAAA/5AdAP+RHAD/jh8E/48dEP6QHSn/kB1d/5Ael/+Q + Hs7/kB7l/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP/+kB7/9Y0p/92FQv+qdHn/fmeo/2dfwf9cXM3/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeRcXM2GW1vNHWJizgBaWssAW1vLAFxczABfX88AAAAAAAAA + AAD/kBwE/5AdH/+QHkn/kB16/pAduv+QHuL/kB7z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf//KM + LP/ahEX/p3R8/3Vks/9gXcn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zd5bW8xuWlrLE1pa0ABdXcwAXl7OAGBg0AAAAAAAAAAAAP+QHR3/kB2V/5Ae2/+QHuz/kB77/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac//6QH//uizD/xn5b/45sl/9sYbv/XVzM/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VtbzM1bW8xYW1vMC1paygBSUsIAEhJ7AFpa + yQAAAAAA/5AeK/+QHs//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/4jiX/4Yc9/7d5a/+BaKX/ZF/E/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+ltbzLhcXMw0ZWXSAV1dzABbW8sAWlrJAAAAAAD/kB4t/5Ae1P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/+kB7/9o0o/9iE + R/+bcIj7amC98Vtczu5cXM3zXFzN+lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczIBbW8sWXl7RAFdX + wgBZWcYAW1vLAP+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//Y8g/+iJNvG3eWvGeWWtoVxczZlbXM6zXFvMylxc + zdlcXM3lXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM39W1vMzVtby0xaWsoGWlrLAFtbywBbW8sA/5AeLf+QHtP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/PmOJObqiTSaunpoO1pbziBYWtAmXFzNOFxczWBbW82VW1vMxlxczeNcXM34XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zW1vNnVtb + zB9bW9AAW1vIAFtbygD/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHOL/kRqF/5YKH2Re + wwDCeFYAXVzLCltbzRdbW8wqXFzMXVxcza9cXM3hXFzN+lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3bW1vMV1tbywhbW8wAWlrNAP+QHi3/kB7T/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHuT+kB6I/pAeI///AACObJcAWVrPAFxczgBcXMwKXFzNKltb + zF9bW8y6XFzN8Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfVbW82cWlrNHF1dywAAAP8A/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HuT+kB6G/pAeHf+VFwD/nAAALE3/AFlZygBDQ8oAW1vLClxczTlbW82eXFzN61xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzM5aWs1BV1fPA1lZzgD/kB4t/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt7/kB1u/48cE/yRJQD/kREA/6IAAF5e + zQBaWssAYGDQA1xczTJbW82gXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61xczX1cXMwRXFzMAP+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/f6QHc3+kBxY/48cC/6QGwD6kB0AXl7PAP///wBYWM0AWVnQBVpazURbW8zJXFzN/Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzNtFtbzSNeXswA/5AeLf+Q + HtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ec//+RHP//kRz//5Ec//+RHP//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+v6QHbj/kB40/48iAf+P + HwD/kB4AVlvYAFZW1QBeXssAWlrME1tbzHtcXM3sXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3YW1vNPlBQ0AL/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//6QH//5jiT/9o0n//OM + K//wiy7/7oow/+yKMv/rijP/6ok1//GLLfL9jyHh/5Ae3/+QHuH/kB7l/5Ae6v+QHu//kB7z/5Ae+v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae6/+QHoD/kB4W/pEcAP+NIgD/mgAAWFjOAFhYzgBSUs8CW1vNQlxc + zdpcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeVcXM1gW1vMC/+Q + Hi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB72/5Ad6/uPI+jniDj61YNK/8R9Xf+6emj/rXZ2/6Fyg/+Yb4v/k22R/5JtkviUbpHWpXN/k+eI + OVT/kRtK/48dVP+PHWH/jx11/pAeiP6QHpj+kB20/pAdyv+QHtn/kB7l/5Ae8v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB79/pAdzf+Q + Hkz/jyAG/48eAP+PHQACOf8AfX22AF1dywBbW80mW1vMwVxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN71xczYdcXM0X/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9f+QHuf/kB7Z/pAdx/+QHqL/khl60IFQdn1nqeNyY7b/bmK6/2th + vf9oYMD/ZF/E/2Jexv9hXsfmYl7GqmRexEtqX74ZtXdvB/+SDwT/jhoH/48bCv+PHRD+kB4V/pAeGf6Q + HSD+kB0n/5AeOP+QHWD+kB6V/pAdxv+QHuP/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7z/5Aenf+QHR//kSMA/44XAP+TDQBbW80AXFzNAFxc + zR5cXM2tXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNp1xc + zSD/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7w/5Ae4v+QHtD/kB6h/5Aeaf+Q + Hjr+kB0m/pAeG/+hAA1zY7QxWlvP11pb0P9aW8//WlvP/1tczv9bXM75W1vO0FpbznFXWtElPE/tBIdr + oQDCe2AA/5IVAP+PHAD/jxwA/48dAP6QHgD+kB4A/pAdAP6QHQD8nCUA/48cCv6QHhf+kB0q/5AdXf6Q + Ha//kB7h/5Ae+v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7b/5AdV/+PGwj/jxwA/48dAFxczgBcXM0AXFzNHlxczatcXM34XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8y/XFzMKf+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb/kB7m/pAdxv6QHoz/kB1V/5AdLf+QHhr/jx0N/1kaAP6QHQD/khkAkG2VAFhb0ShcXM3XXFzN/1xc + zf9cXM3/XFzN61xczaxbW81JWlnNEFxe0wBXWdAA0pBeAK10dgD/khQA/48cAP+PHAD/jx0A/pAeAP6Q + HgD+kB0A/pAbAP+PHQD/jx0A/pAdAP6RHwD+jxwK/pAdKv+QHV/+kB26/5Ae8f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvX/kB6c/5AeHP+QHQD/eS8AXFnHAFtb + zQBcXM0iXFzNuVxczfxcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zdNcXM05/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+v+QHu3/kB7T/5Aeof+QHWf+kB0u/pAdFf6PGwf/kSAA/5AeAP+P + HQD/jx4A/pAcAKRzfwBaW88AXFzNJ1xczclcXM30XFzN71xczddcXM2HXFzNK1dXzwReXssAWFjNAFpa + zQAnJ+kAVlbPAFdXzwAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jyIA/48dAP+PHQD+kB0A/44aAP6Q + GgDrpiIA/o8bCv+QHjn/kB6e/5Ae6/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//6QHs7/kB5B/48gA/+QGwBWWtQAYGDLAFxczThcXM3VXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2VpazkX/kB4t/5Ae0/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+v+QHuP+kB22/5Aee/+Q + Hjv/kB4c/48dDP2SHgD+kB0A/48cAP+NFgD/kB0A/48dAP+PHgD/jyIAXFzNAFxczQBcXM0WXFzNdFxc + zY1cXM2CXFzMU1xczBpUVMUAW1vOAJeXsABXV84AWVnNAFpazAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx0A/41DAP+PHQD/kBwA/48gA/+QHjL/kB6g/5Ae8v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae6/+QHn3/kB4R/5EcAFZZ + 0QBbW80PW1vNc1xczepcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3ZWlrNSf+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae+v+QHuP+kB2y/5Adav6QHSn/kB4Q/44gAf+QHgD/jx0A/44dAP6QHQD/jxwA/48aAP+P + GwD/jxsAAAAAAAAAAABcXM0AXFzNAFxczQNcXM0SXFzNFlxczRNbW8sIX1/SAFxczABbW80Ara2sAFZW + zwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyIA/48eAP9QmwD/kB4A/48gBf+QHkT+kB3J/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB76/pAdtP+QHSPJf1UAYGDQA1xczUJcXM3NXFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdtbW8xV/5AeLf+QHtP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+QHuP+kB2y/5Adav6QHSj/jx0M/JMeAP+Q + HgD/kB8A/5EdAP+PHgD/jx0A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFtbzABaWskAW1vLAFxczABcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48fAP+NIgD/kBwA/48dE/+Q + HXv/kB7s/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7X/5AcPnpl + qQlbXM86XFzNrlxczfhcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN3VtbzF7/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Huv+kB20/5Adav6QHSj/jx0M/JMeAP+PHQD/jh0A/5AdAP+QHwD/jCIA/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AW1vMAFtbygBbW8sAW1vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/48fAP+PHgD/jR8C/5AeQv+QHtr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHubniDdybmG4WltczrFcXM3yXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3bW1vMU/+QHi3/kB7T/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvj/kB7V/pAehv6QHS3/jxwL/JMeAP+PHQD/jh0A/48dAP+P + HQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyAA+5UOAP6Q + HQD+kB0m/pAdwf+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i9cd+ + WtBrYbzdWlvP91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczdZcXM08/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7m/pAdq/+Q + Hkv+kB4WvaVnAP6PHQD/jh0A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/kB0A/5AdAP+QHR7/kB2t/5Ae+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/7jyL+yX9X/G5iuf9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN0lxczS7/kB4t/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB75/5Ae0P+QHnH+kB0l/o8eBP6RHQD+kB4A/pAeAP+OHQD/jx0A/48dAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+Q + HQD/kB0A/5AdHv+QHav/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//6Q + H//Xg0j/dGOz/1pbz/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8zLW1vMKv+QHi3/kB7V/5Ae//+QHv//kB7//5Ae6/6QHaz/kB5J/48eEP2S + HwD+jx0A+ZYTAP+PHwD+kB4A/pAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyIA/pAbAP6QHQD+kB0i/pAduf+QHvz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/+SHOv98Zqr/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wo/5AeKv+Q + Hsb/kB70/5Ae7/+QHtf+kB6H/pAdK/6PHQT/kBwA/44dAP+PHQD/iDUA/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+P + HgD/jx4A/KgiAP+QHjj/kB7V/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/6Ik2/4Noo/9cXMz/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM31W1vNn1tbzR3+kB4Y/pAecv6QHo3+kB6C/5AdU/6QHRr/iwEA/pAeAPaa + BgD/jx4A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx4A95EcAP+QHQD/jx4P/5Aec/+QHur/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//piTb/hWmh/11czP9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczepbW8xzW1vMEf6Q + HgT+kB4R/pAeFv6QHhP/jxsI/JMmAP6QHQD+kB4A7aADAP+PHwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAFNY0wAPQv8As3dvAP+j + AAD6jiIA/5EVA/+QHkL/kB7N/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/+qJNP+La5r/X13K/1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN3ltbzEpZWccF/pAeAP6QHgD+kB4A/pAeAP+PHAD/jhkA/48cAP6Q + HQD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX88AYGDPAGxpzwBSWdgAZV7AAAAU/wCPbJUAwHxgAPqNJAf6jyI8/pAerv+QHvj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/7Ioz/5Btlf9gXcn/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zIW1vMKVxc + zgD+kB4A/pAeAP6QHgD+kB4A/48cAP+PGgD/jxsA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAWVvQAEdW4gBwYrgAsHNrADlR9ABmXsAA7YkxAFVZ + 0gnQgVAh+I4lVvqOI7f+kB/0/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+RHP/qiTX/imub/15dyv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN9VtbzZ9bW80aW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/kBoA/5MOAPCK + LACsdXYAADP/AGlgvgCecIMAAAD/AUlV3xCLapgor3ZyXNyFQ6z6jiTe/pAe+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Eb/+eIOP9+Z6j/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3mW1vNZ1pa + zAxaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxsA/48bAP+PGwD/jx0A/pAeAP+QHAD/lgEA7YkvAMR8XAD/rAAAPFHuC49slR6ecYY6nHCHeLh5 + aMDihjzj940m+P6QH///kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRv/5Ic7/3dlsP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/ltbzMNbW8wtXl7NAFlZzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/48gAP+PHgD/jx0A/pAeAP+QHQD/jhgA/48bAP+PHQD+kB4A/pAdAPKN + LQDlhjcKyn5VGLx6Zi2pdHpjtnhsq8+AUdbrijPr8ows/fuPI///kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHP/fhj//dWSy/1lb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3qW1vMdltb + zA9bW8wAW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+PHAD/jx0A/5AeAP+QHgD/lRQA/48eAP+P + HQD+kB4A/5AdAP+RIAD/jhoG/48dDf6QHhb+kB0f/5EbMPWMKF/bhEOZ3oVBy/CLLuXyjCv49o0o//6Q + H///kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/9mERf9zY7T/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/VtbzL9bW8wtXFzNAFtbzABbW8wAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHQD/jx0A/48dAP6Q + HgD+kB0A/44aAP+PHAD/kB0A/5AdAP+QHQD/jR4C/48dDP6QHhX/kB0e/5AdLv+PHVH/kB1s/pAejP6Q + HbT/kB7T/pAf5fmOJPT5jiX//5Af//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/5jiX/w31f/21i + uv9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3gXFzMZltb + zAtbW8wAW1vMAFtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxsA/48aAP+PHAD/kB0A/5AdAP+OHAD/jx0A/pAeAP6QHQD/kSAA/48cCf+QHRP/kB0d/5AeKv+Q + HkL/kB5o/5Aeiv+QHq3/kB7R/5Ae4f+QHuf/kB7w/5Ae+/+QHv//kB7//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec//KMLP+nc33/Zl/C/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81tbzZlbW80fWVnPAF1dzABdXcwAW1vMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxoA/48cAP6QHQD/jhcA/48cAP+QHQD/kB0A/5IgAP+P + HQv+kB4W/pAdH/+QHTD/kB1b/5Aegf+QHav/kB7Q/5Ae3f+QHuf/kB7v/5Ae+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/6ok1/4xr + mv9fXcr/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8zCW1vNO15e + 0QJcXM0AXFzNAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+PIwD/jx4A/48cAP+O + GAD/jxwA/pAdAP6RHwD/jxsH/5AdEv+QHR3/kB4x/5AeZP6QHoz+kB20/5Ae1P+QHuT/kB7t/5Ae+P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/bhUP/d2Ww/1pbz/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN0VtbzFtbW8sLWVnLAFVVyQBUVMgAXFzMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48cAP+PGwD/jx0A/5AcAP+PHgD/jx0A/ZEgAP+PGwf+kB0V/pAdKv+QHVP/kB5//5Aeq/+Q + HtL/kB7m/5Ae8P+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+Y4l/8F9 + YP9tYbv/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdFcXMxeW1vLEGFh + 1gBcXMwAXl7OAGBg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48dAP+PHQD/jx0A/44aAP+PHQD/kB4A/4ccAf+P + HQ/+kB0n/5AdVP6QHoz+kB3F/5Ae4P+QHu3/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/viy//nnGG/2Rexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3RXFzMXltbyxBdXc4AW1vKAFtbywBcXMwAX1/PAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + GwD/jx0A/44dAP+PHQD9kR8A/48cCv+QHhv/kB45/5Addv6QHbr/kB7f/5Ae8P+QHv7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf/9iE + R/95Za7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzNzlxczF5bW8sQXV3OAFtb + ygBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+OIwD/jx0A/44bAP+PHAD8kh0A/o8dDf6QHSn/kB1f/5Aen/+Q + HtP/kB7r/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/yjCz/qHR8/2Zfw/9bXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61xcza5bW8xPW1vKD1xczQBbW8oAW1vLAFtbywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AeAP+QHgD/jx8A/4wlAP6P + HgD9kh8A/o8cC/6QHSn/kB1s/pAduf+QHuL/kB71/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf/9aD + Sf95Za7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczdxcXM2IXFzNK1payQZhYdcAWlrJAFtb + ygBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/jSIA/5AeAP+QHwD+kRwA/o8eB/6QHSb/kB1l/pAduP+QHub/kB77/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/rijP/nXGH/2Nexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze9bW8zBXFzMZVxczRtbW8kAW1vLAFZWwgBaWskAW1vKAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jx0A/48eAP+NIwD/kB4A+o8bAP+Q + Hhb/kB5U/pAds/+QHuT/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/944m/757 + ZP9wYrf/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfBcXM3PXFzNhltbzDFbW8sLWlrRAFxczQBcXMwAVVW/AFpa + yQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jx0A/48dAP+PHAD/jx0A/pEYAP6PHgb+kB0q/5Aef/+QHtb/kB77/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//6QH//YhEf/gmik/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM3TXFzNiFxc + zTRcXM0Thob7AFxczABdXcwAXFzMAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHQD/jx0A/48cAP+RJAD/jx0Q/5AeUP6Q + Ha7/kB7p/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/4oc9/5Zv + jv9jXsb/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN9VxczehcXM3OXFzNi1tbzUNbW80WWVnOAFxczQBcXM0AXFzNAF1dzABcXMwAXFzMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxwA/48dAP+PHQD/niIA/48dF/+QHWf/kB7Q/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ae/+KHPf+Yb4z/Zl/C/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM39XFzN71xczdZbW82iW1vNaFxczTBcXM0UV1fPBF9f + zABbW84AXFzNAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48bAP+PGwD/jxwA/4IeAP+PHRv/kB12/5Ae2f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHv/ihz3/mG+M/2Zf + wv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZcXM3rXFzN21tb + zL1cXM2HW1vNRFpazR1aWswMYGDPAFxczQBZWc4AKSnhAFlZzgBbW80AXFzNAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HAD/jxsA/48aAP+QIAD/jxwV/5Addv+QHt3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/7jyL/4IY//5hvjP9mX8L/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzN8lxczedcXM3QXFzNpFxczXpbW81EW1vNJVtbzRRXV88EXV3MAFpazABZWcsAW1vNAFlZ + zgBTU9AAV1fPAFdXzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+OGwD8lS8A/48bEP+QHWD/kB7X/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/8ows/8t/Vf+PbJb/ZV/D/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+Vxcze9cXM3kXFzN11tbzL5bW82WW1vNZltbzTFbW80bW1vMEVZW + zgNdXcsAW1vNAFlZzgDS0pcAWVnNAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+R + GQD/kRoA/pAbAP6PGwr/kB1Z/5Ae0P+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//pAf/+mJNv+yd3D/d2Wv/2Bdyf9cXM3/XFzN/1xczfZcXM3sXFzN4lxczdFcXM2tXFzNiFxc + zV9cXM04W1vMJFtbzRhaWswMX1/PAFtbzQBbW8wAWVnOAH5+twBbW80AWlrOAFNT0ABXV88AV1fPAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+QHgD/kCED/5AeOf6QHbr/kB78/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//OMK//Vg0r/nHCI/25iuvZcXM3tW1zO5Fxc + zdlbW8zHW1vNolxczH5cXMxUXFzNLlxczR5cXM0VXFzMCkVFxgBbW8wAW1vNAFpazABZWcsAW1vNAFxc + zABZWc4AVFTRAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+O + GQD/jRcA/5EiAP+QHR7/kB6Y/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//Y8g//WN + KP/niDjzuXpo6X9np+BkX8TPW1vNpFtczX9cXMxdXFzNOFtbzCZbW80bXFzMEltbygddXc4AXFzNAFxc + zQBcXMwAXl7NAFhYyQBbW80AWlrMAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+PHAD+jxsJ/5AdXP+QHt3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//pAf//2PIPP3jSfey39VxpNtkZl2ZLBzW1vMS1RZ1StbW84bXFzMElxc + zAlERMQAW1vMAFtbzQBcXMwAW1vLAFlZyABcXM0AXFzNAFxczABdXc0AYmLSAF9fzwBfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HQD/jh0A/JMdAP6QHSn+kB22/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf9/+QHuj8jyHR8Yssl/GL + LEm6eWgnVlnSGT1R7A9OVdIEWVvTAFtbzQBcXMwAXFzMAF5ezgBYWMoAW1vNAFxczABbW8sAW1vLAFtb + ywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+PHQD/jx0N/5Adbf+QHub/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//+Q + Hv/+kB/+/5Ae8P6QH9f6jiOm/Y8gafyPIDHmiDcY5Yc5BK12dABwYrYAU1jVAFlaywBYVbcAW1vMAFxc + zABcXMwAXV3NAGJi0gBfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+O + IAD6lRYA/pAdAP6QHSP+kB24/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kRz//5Ad//mOJP/7jyLx/pAf3PuPIcH9kB+I/pAfRfiOJR/6jiIM844sAOyK + MQDsiTEAJEz/AINoogBWWdEAW1rKAFpayABaWskAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAfAP6PHwD+jx8E/5AeSP+QHtz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ec//+RHP/+kB//940n/++LL//miDn23IVD0OWH + OpH3jSZI+48gJfuPIBT/kBwD944mAPyOIQD/kBcA8osrAOyKMQD/mAIA/5AcAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+kB4A/pAeAP6QHhb+kB6Q/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+RHP//kRz/+48i//WN + Kf/uizD/5Yg5/9WCSv+7emf/n3GE9olqnbCdcYdD14NJFuOFPQT0jScA/I8fAP+QHgC5i1MA/Y4gAP+P + GgD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6QGwD+kB0A/pAdJv6QHcb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+R + HP//kRv//5Ae//mOJP/zjCv/7Ioy/+KHPf/Kf1b/s3hv/5lvi/9/Z6f/c2O1/2thvP1lXsLKV1nRSAAy + /wTFfVoA6Ig4AK15bAD9jx8A/5AeAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWlrJAFpayQBaWsgAWlrKAFtbzABbW8wAWlrMAFpazABaWswAWlrMAAAA + AAAAAAAA/48dAPueJgD/kB44/5Ae2f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP//kRv//5Ad//mOJP/zjCv/7oox/+eIOP/bhUT/w31e/6x2d/+SbZP/eWWu/29i + uf9pYL//Yl7G/1xczf9aW8//WlvP7Flbz3lYWc4SVVvUAP//AADJflkA/54AAP+QGwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8sAWlrKAFlZ + xgBaWsoAW1vMAFtbzABaWswAWlrMAFpazABaWswAAAAAAAAAAAD/jx0A/48cCv+QHV7/kB7k/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//5Ec//6QH//3jSb/8Yst/+uKM//ghj//xX5d/612 + dv+Xb43/gGem/3Rks/9tYrr/Z2DB/2BdyP9aW8//WlvP/1pcz/9bXM7/XFzN/1xczf9cXM3UXFzNOXZ0 + ygBcXM0AWlrOAFlZzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF9fzwBgYNAAVlbJAFtbzABaWsoAXl7TAFlZyAVbW8sOW1vMEFpazAtaWswCWlrMAFpa + zAAAAAAAAAAAAP6QHgD+kB0W/pAejP+QHvD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+RHP/9jyD/9Y0p/+yK + Mv/khzv/1YJL/7x6Zf+mc37/jGuZ/3hlr/9tYrr/aGDA/2Jex/9cXM3/WlvQ/1pbz/9bXM7/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+VxczbBcXM0gW1vNAFhYywB9fd0AV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWswAW1vMAF1dzgBWVsoAXFzNAF1d + 0ABbW8sVW1vMSFtbzG9bW8x1W1vMWVpazBBaWswAWlrMAAAAAAAAAAAA/pAdAP6QHSL+kB28/5Ae/f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//yPIf/zjCv/6Ig3/9SCS/+0eG7/km2S/3plrf9yY7b/bGG8/2Zfw/9fXcr/WlvP/1pb + z/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM31W1vNnltb + zRpbW80AW1vNAGBg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABaWskAWlrJAFhYwwBbW8wAWlrMAFlZywBfX9ECW1vNI1tbzXhcXM3RXFzN6lxczetbW8y5W1vMI1tb + zABbW8wAAAAAAAAAAAD/kB4A/5AeKv+QHtT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf//iOJf/qiTT/z4FR/6x1d/+Hap7/c2O0/2lg + v/9hXcj/WlvP/1lb0P9aW8//W1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRbW82bW1vNGVtbzQBbW80AVlbPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX88AYGDPAElJwABbW8sAU1O5AFtbywBiYs8AWlrMDltb + zTpbW82aXFzN5Fxczf9cXM3/XFzN/1tbzM1bW8wnW1vMAFtbzAAAAAAAAAAAAP+RHQD/kB4x/5Ae2f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hfn3jibnyX9Y7ZRukPx0ZLP/Z1/B/15dy/9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+1xc + zbZbW80jXl7MAISEuABSUtMAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXV88AV1fPAFJS + 0QBaWs4AV1fLAFxczQBdXdEAW1vKBltbzSZbW8xsW1vMvlxczfFcXM3/XFzN/1xczf9cXM3/W1vMy1tb + zCZbW8wAW1vMAAAAAAAAAAAA/5UXAP+QHjf/kB7a/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB70/5Ebud+FP3N5Za2sYV3H9Ftczv9bXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2FtbzUNVVdACWVnNAFpaywBbW8oAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABaWskAWlrJAFpaxgBZWcwA7++CAFlZzgBaWs0AXl7RAltbzBpbW8xTXFzNrVxc + zeRcXM37XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jh4E/5AeR/+Q + Ht7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v6Q + HbD/khc8lW2OGllbz3lbXM7rXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3uXFzMgltbyxZeXtAAW1vGAFxczQBZWc8AV1fPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8wAW1vMAFtbzABbW8sAVVW8AFpa + ywBdXcwAVlbPBFtbzRdcXM0+XFzNkVxczdlcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+OGgj/jx1U/5Ae4v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv3+kB3K/pAdSP+eAAQxTvoHXFzNWFxczeBcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf1bW8zNW1vLUFxcywdZWcsAUFDdAFpa + zgB9fd0AYGDPAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyAA/48eAP+PHQD/jx0A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxc + zABcXMwAXFzMAFxczABcXM0AWlrLAFtbzABdXdAAWVnJBVpazRpbW81GW1vNklxczdNcXM3yXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/48aCv+P + HVv/kB7j/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae7P+Q + HXn/jx0S8owpAFxaywBbW8wsW1vMwlxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2xXFzNO1pa0AVeXssAXFzOAFNTxgBdXc4AamrXAGBgzwBfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx4A/48eAP+PIQD/jx4A/48dAP+PHQD/jx0A/48dAP+P + HQD/jx0AAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAXFzMAFxczABcXMsAXFzMAFxczQBfX9AAW1vMDlxc + zCJbW8xOW1vNlVxczdVcXM3zXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jhoI/48dVP+QHuH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7U/5AeOf94GgD/mgAAWlvOAFtbzRlbW82bXFzN9Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM2vW1vNSFpa + zBJhYc4BWlrLAF1dzQBYWMoAW1vNAFhYzgBWVtAAV1fPAFdXzwAAAAAAAAAAAP+PHwD/jx8A/5AcAP+P + HQD/jx0A/5AaAP+OHwX/jx0O/48dEP+PHQv/jx0C/48dAP+PHQBcXMwAXFzMAFxczABcXMwAXFzNAFxc + ywBcXMwAXFzNAFpazQBcXMwJXFzNFVxczTFcXM1xXFzNq1xczdpcXM3zXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+O + HgX/kB5L/5Ae3/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+Q + HrD/kB0g/5AdAMd+WABcXMwAXFzMClxczV9cXM3fXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZbW8zKW1vMeFxczTFcXM0QY2PRAVtbzABbW80AV1fOAISE + rwBbW80AXFzNAFtbzABbW8wAWFrQAIpqmgDehj4A/5AdAP+WJgD/jx4V/48eSP+PHW//jx11/48dWf6P + HRD/kRcAlW6PAFtbzABcXMsAXFzMAFxczABcXM0AXFzOAFxczAlcXM0VW1vMLFxczVxcXM2QXFzNzVxc + zepcXM34XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/44hA/+QHkb/kB7e/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB71/5Aenv+QHhr/kB4A9o0oAFxcywBcXM8AXFzNJFxc + zalcXM33XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf1cXM3nXFzNtlxczXRcXM04XFzNHVpazA1QUNACXFzLAFxczQBcXM0AW1vMAFtbzABVWtMAdmOuANaC + RwD/lBYC/5AeI/+QHnj/kB7R/5Ae6v+QHuv/kB25/5MTIbl6ZwBYWtEAW1vMAFxczgBcXMsJXFzME1xc + zR1cXM0vXFzNXVxczY5bW8zFXFzN41xczfFcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAA + AAD+kxoA/5AeNP+QHtb/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HvT+kB6b/pAeGf6QHgD/kB0AW1zNAFxczABcXMwKXFzNYFxczd9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM35XFzN6VtbzM5cXM2mW1vNbVpa + zUFbW80oXFzNHVxczRVbW8wQWlvMD0ZV4wpIVN8J0IBOE/uPITv/kB6a/5Ae5P+QHv//kB7//5Ae//yP + INDOgVE3OVDxFFxczB5bW8wjXFzNMFxczFtcXMyBXFzNq1xczdJcXM3kXFzN8Vxczf5cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP6QHQD+kB0k/pAdwP+QHv3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/6QHbb+kB0j/pAdAPqYEgCAZ6YAXFzLAFxc + zwBcXM0kXFzNplxczfZcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfdcXM3oXFzN21tbzMlcXM2rXFzNi1tbzXhZW89xZ1/BYKBx + glvjhjqC+48hwv+QHvH/kB7//5Ae//+QHv//kB3/7Ysw44VpoJVXWtKSXFzNq1tbzMBcXM3VXFzN41xc + ze1cXM34XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAA + AAAAAAAA/5AeAP+QHhr/kB6e/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae2P+QHkP/jyAC/48fAP+QHABaW80AXFzMAFtbzAhbW8xVW1vMz1xczf1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tczvhaW8/wXVzM625iuemXb47k14NI4/mOJO3+kB78/5Ae//+QHv//kB7//5Ae//+Q + Hf/fhj/7dmSx8Flb0PJcXM34XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jx0A/48dEP+PHXn/kB7r/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7u/5Aegv+QHhb+kRwA/40iANiC + SQBaWskAXl7QAFtbyxhcXMyAXFzN6Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM7/Xl3K/2thvf+DaKP/uHlq/+WI + Ov/5jiT//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtb + zAAAAAAAAAAAAP+PHAD/jhsI/48dWf+QHuD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv3+kB3N/pAeUP+PHwf+kB4A/4orAJxwhwBdXcwAYmLOAVxczTFcXM2tXFzN91xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tc + zv9bXM//YF3J/2xhu/+Iap3/uXpp/+OHPP/3jSf//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/44bAP2RHwD+kB0s/pAdwv+Q + Hv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf+kB2x/pAdO/+P + HwX+kBwA/48eAMd6TABUVtAAWlrQBltbzUdbW8zEXFzN+1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1zO/1pbz/9bXM7/ZV/D/3Fjtv+ObJj/u3pn/+SHO//3jSf//5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltb + zABbW8wAAAAAAAAAAAD/kB0A/5AdAP+QHhn/kB6b/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvL+kB2v/pAdSP+PHRL/iyAB/48cAO2JMQBZXtEAWlrLDFtb + zFtbW8zPXFzN/Fxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/WlvP/1tczv9iXsf/amC+/3xm + q/+kc3//yX9X/+eIN//3jSb//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+PHQD/jx0A/48cCv+Q + HV//kB7f/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb+kB3K/5AdeP+QHTH/jx0Q/4clAfaNJgDEfF0AV1rQFVtbzHJbW8zTXFzN/Fxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1zO/1tc + z/9aW8//W1zO/2Jex/9qYL7/eGWu/5dvjf+4eWr/34ZA//KMLP/6jyP//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tb + zCZbW8wAW1vMAAAAAAAAAAAA/48bAP+OGwD/kiAA/5AdJP+QHan/kB73/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv3/kB7n/pAdtv+QHXT/kB04/5AdHf+R + Fw3lhTsCQlLmFlVZ0mdZW87KWlvO+Vtczv9bXM7/W1zO/1xczv9cXM3/XFzN/1xczf9cXM3/XFzO/1tc + zv9bXM7/W1zO/1pbz/9aW8//WVvQ/1tczv9iXsf/aGDA/25iuf96Zqz/l2+N/7d5a//ahEX/7Yox//aN + J///kB3//5Ec//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jxwA/48cAP+P + HAD/jxwK/5AdYP+QHt//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB75/5Ae6f6QHc7/kB2m/5Aebf+QHUD/kBwovXtjMXplqnBoX77SZV/C+mNe + xv9gXcj/X13K/11czP9cXM3/XFzM/11czP9fXcr/YF3I/2Nexf9nYMH/a2G9/29iuf9yY7X/e2as/5Zu + jv+udnT/yX9X/+KHPf/uijD/9o0o//6QHv//kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+PHAD/jxwA/44bAP+SHwD/kB0k/5Adpv+QHvb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvf/kB7o/5Ae2/+QHcn/kB2q8YwsmMl+V7SqdXfqmnCJ/pJtk/+La5r/hGii/39np/+CaKP/hWmh/4tr + mv+SbZP/m3CJ/6x2d/+7emf/yX9X/9eDSP/khzv/7Yox//SMKv/7jyP//5Ec//+RHP//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAAAAAAAP+P + HAD/jxwA/48cAP+PGwj/kBxV/pAdz/+QHv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvj/kB3v/Y8g7vSM + KfnuizD/7Ioy/+qJNP/oiTb/54g4/+iJN//piTb/6ok0/+yKMv/uizD/84wr//eNJ//6jyP//pAf//+R + HP//kRz//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAAAAAAA/48cAP+PGgD/jhgA/pMlAP+QHRj/kB6A/5Ae6f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP//kRz//5Ec//+RG///kRv//5Eb//+R + G///kRz//5Ec//+RHP//kBz//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMxbW8wmW1vMAFtbzAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PHAD/jx4A/48jAf+QHjH+kB2t/5Ae9/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rk + s/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/W1vMyVtbzCVbW8wAW1vMAAAAAAAAAAAAAAAAAAAAAAD/jxsA/5QPAP6UGAD+kB0A/o8eBv6Q + HUf+kB3E/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM37XFzN71xczdlcXM2VXFzNGlxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48gAP+NIwD+kBoA/48cDP6QHFv+kB3P/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92G + Qf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfxcXM3wXFzN21xc + zbZcXM2FW1vNRVtbzR1dXc0EXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48eAP+O + HAD+kCIA/48cFf+QHXL+kB3T/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN91xcze5cXM3fW1vMvlxczYlbW8xNXFzMJVxczRNXV88EXl7MAFtbzQBcXM0AXFzNAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jxwA/48cAP+PHAD/jCEA/48dGf6QHWv+kB3N/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZcXM3sXFzN4lxczc9cXM2mXFzNhVxczFVbW8woXFzMFFpa + yQVdXc8AXFzNAFlZzgD//1kAWVnOAFtbzQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxwA/48dAP+PHQD7kxgA/48cE/6QHFv+kB3H/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf1cXM31XFzN7FxczeJcXM3PXFzNpFxc + zH1cXMxUXFzNLVtbzRxcXM0UW1vLB1xczgBcXMwAW1vKAFRUvABbW8wAWlrOAFNT0ABXV88AV1fPAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+PHAD+kCIA/48dDv6Q + HlD+kB24/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczfRcXM3tXFzN51xc + zeFcXM3VW1vMv1tbzaBcXMx+XFzMVFxczS1bW80bXFzMEltbygddXc4AW1vNAFxczQBbW8wAWlrJAFtb + zABbW8sAWVnHAFpayQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHQD/jxwA/48cAP+PHQD9kRYA/o8eCP+QHjn/kB6a/5Ae4/+QHv7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/fhkD9dWSx9Flb0PJcXM3vXFzN7Vxc + zelcXM3iXFzN3FxczdBcXM2wW1vNnFxczIFbW8xqW1vMUVxczS9bW8wiW1vNG1xczBJbW8oHXV3OAFtb + zQBcXMwAW1vLAFpayABbW80AXFzNAFtbzABbW8oAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jx0A/48eAP+O + IQD+kB4A/5AhAv+QHiP/kB11/pAdxv+QHu7/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/+mJNOqBaKSlV1rSklxczYpcXMyAW1vMcltbzFZbW80+XFzNKlxczR9bW80aW1vME1pa + yw1aWsoGXFzOAFtbzABbW80AXFzMAFtbywBaWsgAW1vMAFxczABbW8sAW1vLAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48gAP+RHAD/jx4A+LI+AP+PHRD+kB45/pAeiP6Q + HdH/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/+o8izsR9Wzo6UPEUXFzMFVxc + zBJbW8wPWlrLCEpK0AFdXcwAXFzNAFtbzQBbW8wAWlrMAFtbywBaWskAW1vMAFtbzQBcXMwAW1vLAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/5AcAP+PHQD/jh0A/pAdAP6PJQH+kB0a/pAcWP6QHa3/kB7g/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB77/5Ae7/+QHtn/kB2U/5UMGK92cgBYW9EAXFzMAFtbzABbW8sAV1fOAN7ejQBbW80AW1vNAFxc + zABbW8wAW1vLAFtbywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48dAP+PHgD9kRsA/48eAPyS + IwD/jxsJ/pAdI/+QHV7+kB25/5Ae6v+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7w/5Ae2/6QHbb+kB6F/5AeRf+QHh39kB8E/5cHAHhl + rgBcXMwAW1vMAFtbzABYWM4AVlbQAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAPySFQD/jxwA/44YAP+PHAD+kR8A/o8bCv+QHjT/kB57/pAdtf+Q + Ht3/kB7x/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9/+QHu7/kB7f/pAdvv6Q + Hon/kB5N/pAdJf6QHhP+jx8E/5AdAP+QHQD/kB0A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+P + GwD/jhoA/48bAP+OGgD+kBsA/48hAv+QHhH+kB0m/5AdVP6QHo3+kB3H/5Ae4v+QHvT/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb/kB7s/5Ae4v+QHs//kB6m/5Aehf+QHVX+kB0o/pAeFP6PHwX+kRwA/pAeAP6PHwDmygAA/48eAP+Q + HQD/kB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48dAP6SFwD/kB8A/5AdAP2R + IAD/jxsH/pAeF/6QHTH/kB1b/5Aem/6QHcz/kB7o/5Ae9v+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv3/kB71/5Ae7P+QHuL/kB7P/5AepP+QHn3/kB1U/5AdLf+QHhz+kB4U/o8bB/2R + IAD+kB4A/48fAP+MIwD+kB4A/pAfAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/4wiAP+QHwD/kB0A/44YAP+PHAD+kB0A+JkhAP+PGwn/kB4a/pAdOP+Q + HXP/kB2k/pAduv+QHtX/kB7i/5Ae6/+QHvb/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+v+QHvT/kB7t/5Ae5/+QHuH/kB7V/pAdv/+QHqD/kB5+/5AdVP+Q + HS3/kB4b/5AeEv+PGwf/kSAA/5AeAP6QHgD/jxwA/44XAP6QHQD/jx8A/48fAP+PHwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+P + GwD/jxoA/48dAP2RFwD/jh0A/48cAP+QHQD/iiAB/48dD/+QHRz+kB0j/5AeNv+PHVT/kB15/5AdpP6Q + Hbr/kB7V/5Ae4v+QHun/kB7r/5Ae7v+QHvD/kB7z/5Ae9/+QHvj/kB77/5Ae/v+QHv//kB7//5Ae//+Q + Hv7/kB79/5Ae+/+QHvj/kB71/5Ae8/+QHvL/kB7v/5Ae7f+QHun/kB7i/5Ae3P+QHtD/kB6w/5AenP+Q + HoH/kB1q/48dUf+QHS/+kB0i/5AeG/+QHhL/jxsH/5EgAP+QHgD/kB4A/48cAP+NFgD/kB0A/pAeAP+P + HAD/jxoA/48bAP+PGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48hAP+PHQD/jx0A/5AbAP+P + HgD/jx0A/5AdAP6QHQD+liMA/44aB/+PHBH/kB0c/pAdI/+QHjX/jx1V/48dcP+PHXn+kB6G/pAejP6Q + Hpf/kB2n/5AdrP6QHbX+kB3A/pAdy/+QHtP+kB3L/pAdwv6QHb/+kB22/5Adq/+QHqD+kB6X/pAek/6Q + Hor/kB6A/48dcv+PHVb/kB4+/5AeKv+QHR//kB4a/5AeE/+PHQ3/jhoG/5EgAP6QHQD/kB4A/5AeAP+P + HAD/jRYA/5AdAP+QHgD/jxwA/48aAP+PGwD/jxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jyMA/48eAP+PHQD/kB0A/pEaAP+PHQD/jxwA/48dAP+Q + HQD+kB0A/pYjAP+OGgf/jxwO/48dEf6QHhT+kB4W/pAeGP+QHR3/kB0e/pAdIP6QHSP+kB0m/5AeKP6Q + HSb+kB0k/pAdI/6QHSH/kB0e/5AeG/6QHhj+kB4X/pAeFf+QHhL/jx0P/44bCP+LHAH/kB0A/5AdAP+Q + HgD/kB4A/48dAP+PGwD/jhcA/pAdAP+QHgD/kB4A/48cAP+PGgD/jxsA/48bAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/jyEA/48dAP+PHAD/jx0A/5AdAP6RGgD/jx0A/48cAP+PHQD/jx0A/pAeAP6Q + HgD+kB4A/5AdAP+QHQD+kB0A/pAdAP6QHQD/kB4A/pAdAP6QHQD+kB0A/pAdAP+QHQD/kB4A/pAeAP6Q + HgD+kB4A/5AeAP+PHQD/jxwA/48eAP+mAAD/kB4A/5AeAP+QHgD/jx0A/48bAP+PGwD/jxsA/48bAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/48hAP+PHQD/jxwA/48dAP+PHQD+kB4A/pAeAP6QHgD/kB0A/5AdAP6QHQD+kB0A/pAdAP+Q + HgD+kB0A/pAdAP6QHQD+kB0A/5AdAP+QHgD+kB4A/pAeAP6QHgD/kB4A/48dAP+PHAD/jx4A/48gAP+P + HwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP/////////AAAAAB//////////////wAAAAAAA/////////////AAAAAAAAA/////// + ////8AAAAAAAAAB//////////4AAAAAAAAAAD/////////wAAAAAAAAAAAP////////gAAAAAAAAAAAA + ////////AAAAAAAAAAAAAH///////gAAAAAAAAAAAAAf/////4AAAAAAAAAAAAAAB////+AAAAAAAAAA + AAAAAAP///4AAAAAAAAAAAAAAAAB///gAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAB/+AAAAAAA + AAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAABwAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAA + AAAAAAAAAAf+AAAAAAAAAAAAAAAABgAP/wAAAAAAAAAAAAAAAD4AP//AAAAAAAAAAAAAAAD+AH//4AAA + AAAAAAAAAAAH//////AAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAH///// + //AAAAAAAAAAAAAD///////gAAAAAAAAAAAAD///////wAAAAAAAAAAAAB///////wAAAAAAAAAAAAB/ + //////gAAAAAAAAAAAAA///////gAAAAAAAAAAAA////////AAAAAAAAAAAAAP//////4AAAAAAAAAAA + AAD//////AAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAD////AAAAAAAAA + AAAAAAAA///+AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAH//8AAAAAAAAAAAAAAAAAD//8AAAAA + AAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAH/+A + AAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAB//wAAAAAAAAAAAAAAAAA + A//4AAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAA + AAAAA///wAAAAAAAAAAAAAAAAA///8AAAAAAAAAAAAAAAAB///+AAAAAAAAAAAAAAAAH////gAAAAAAA + AAAAAAAAP////wAAAAAAAAAAAAAAB/////8AAAAAAAAAAAAAAH//////AAAAAAAAAAAAAA///////wAA + AAAAAAAAAAD///////8AAAAAAAAAAAAH////////AAAAAAAAAAAAH//////wAwAAAAAAAAAAAP////// + 4AMAAAAAAAAAAAP//////4ADAAAAAAAAAAAH//////8AAwAAAAAAAAAAD//////8AAMAAAAAAAAAAA// + ////8AADAAAAAAAAAAAH/////8AAAwAAAAAAAAAAA/////8AAAMAAAAAAAAAAAH////8AAADAAAAAAAA + AAAAf+AH4AAAAwAAAAAAAAAAAB/ABwAAAAMAAAAAAAAAAAADAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA + AAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAA + AAP4AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAf//AAAAAAAAAAAA + AAAAAB///4AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAP//////gAAAAA + AAAAAAAH///////+AAAAAAAAAAAAB////////4AAAAAAAAAAAA/////////AAAAAAAAAAAB///////// + +AAAAAAAAAAD//////////4AAAAAAAAAP///////////wAAAAAAAA/////////////wAAAAAAH////// + ////////4AAAAB////////// + + + \ No newline at end of file diff --git a/SecureDNSClient/Forms/FormStampGenerator.Designer.cs b/SecureDNSClient/Forms/FormStampGenerator.Designer.cs new file mode 100644 index 0000000..19dbf87 --- /dev/null +++ b/SecureDNSClient/Forms/FormStampGenerator.Designer.cs @@ -0,0 +1,598 @@ +namespace SecureDNSClient +{ + partial class FormStampGenerator + { + /// + /// 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormStampGenerator)); + this.CustomLabelProtocol = new CustomControls.CustomLabel(); + this.CustomComboBoxProtocol = new CustomControls.CustomComboBox(); + this.CustomLabelIP = new CustomControls.CustomLabel(); + this.CustomTextBoxIP = new CustomControls.CustomTextBox(); + this.CustomLabelHost = new CustomControls.CustomLabel(); + this.CustomTextBoxHost = new CustomControls.CustomTextBox(); + this.CustomLabelPort = new CustomControls.CustomLabel(); + this.CustomNumericUpDownPort = new CustomControls.CustomNumericUpDown(); + this.CustomLabelPath = new CustomControls.CustomLabel(); + this.CustomTextBoxPath = new CustomControls.CustomTextBox(); + this.CustomLabelProviderName = new CustomControls.CustomLabel(); + this.CustomTextBoxProviderName = new CustomControls.CustomTextBox(); + this.CustomLabelPublicKey = new CustomControls.CustomLabel(); + this.CustomTextBoxPublicKey = new CustomControls.CustomTextBox(); + this.CustomLabelHash = new CustomControls.CustomLabel(); + this.CustomTextBoxHash = new CustomControls.CustomTextBox(); + this.CustomCheckBoxIsDnsSec = new CustomControls.CustomCheckBox(); + this.CustomCheckBoxIsNoFilter = new CustomControls.CustomCheckBox(); + this.CustomCheckBoxIsNoLog = new CustomControls.CustomCheckBox(); + this.CustomTextBoxStamp = new CustomControls.CustomTextBox(); + this.CustomButtonClear = new CustomControls.CustomButton(); + this.CustomButtonDecode = new CustomControls.CustomButton(); + this.CustomLabelStatus = new CustomControls.CustomLabel(); + this.CustomButtonEncode = new CustomControls.CustomButton(); + ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPort)).BeginInit(); + this.SuspendLayout(); + // + // CustomLabelProtocol + // + this.CustomLabelProtocol.AutoSize = true; + this.CustomLabelProtocol.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelProtocol.Border = false; + this.CustomLabelProtocol.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelProtocol.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelProtocol.ForeColor = System.Drawing.Color.White; + this.CustomLabelProtocol.Location = new System.Drawing.Point(12, 10); + this.CustomLabelProtocol.Name = "CustomLabelProtocol"; + this.CustomLabelProtocol.RoundedCorners = 0; + this.CustomLabelProtocol.Size = new System.Drawing.Size(57, 17); + this.CustomLabelProtocol.TabIndex = 0; + this.CustomLabelProtocol.Text = "Protocol:"; + // + // CustomComboBoxProtocol + // + this.CustomComboBoxProtocol.BackColor = System.Drawing.Color.DimGray; + this.CustomComboBoxProtocol.BorderColor = System.Drawing.Color.Blue; + this.CustomComboBoxProtocol.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.CustomComboBoxProtocol.ForeColor = System.Drawing.Color.White; + this.CustomComboBoxProtocol.FormattingEnabled = true; + this.CustomComboBoxProtocol.ItemHeight = 17; + this.CustomComboBoxProtocol.Items.AddRange(new object[] { + "Plain DNS", + "DNSCrypt", + "DNS-Over-HTTPS", + "DNS-Over-TLS", + "DNS-Over-Quic", + "Oblivious DoH Target", + "Anonymized DNSCrypt Relay", + "Oblivious DoH Relay"}); + this.CustomComboBoxProtocol.Location = new System.Drawing.Point(75, 8); + this.CustomComboBoxProtocol.Name = "CustomComboBoxProtocol"; + this.CustomComboBoxProtocol.SelectionColor = System.Drawing.Color.DodgerBlue; + this.CustomComboBoxProtocol.Size = new System.Drawing.Size(287, 23); + this.CustomComboBoxProtocol.TabIndex = 1; + this.CustomComboBoxProtocol.SelectedIndexChanged += new System.EventHandler(this.CustomComboBoxProtocol_SelectedIndexChanged); + // + // CustomLabelIP + // + this.CustomLabelIP.AutoSize = true; + this.CustomLabelIP.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelIP.Border = false; + this.CustomLabelIP.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelIP.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelIP.ForeColor = System.Drawing.Color.White; + this.CustomLabelIP.Location = new System.Drawing.Point(12, 50); + this.CustomLabelIP.Name = "CustomLabelIP"; + this.CustomLabelIP.RoundedCorners = 0; + this.CustomLabelIP.Size = new System.Drawing.Size(274, 17); + this.CustomLabelIP.TabIndex = 2; + this.CustomLabelIP.Text = "IP Address (IPv6 addresses must be in [ ] brackets):"; + // + // CustomTextBoxIP + // + this.CustomTextBoxIP.AcceptsReturn = false; + this.CustomTextBoxIP.AcceptsTab = false; + this.CustomTextBoxIP.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxIP.Border = true; + this.CustomTextBoxIP.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxIP.BorderSize = 1; + this.CustomTextBoxIP.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxIP.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxIP.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxIP.HideSelection = true; + this.CustomTextBoxIP.Location = new System.Drawing.Point(12, 70); + this.CustomTextBoxIP.MaxLength = 32767; + this.CustomTextBoxIP.Multiline = false; + this.CustomTextBoxIP.Name = "CustomTextBoxIP"; + this.CustomTextBoxIP.ReadOnly = false; + this.CustomTextBoxIP.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxIP.ShortcutsEnabled = true; + this.CustomTextBoxIP.Size = new System.Drawing.Size(350, 23); + this.CustomTextBoxIP.TabIndex = 0; + this.CustomTextBoxIP.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxIP.Texts = ""; + this.CustomTextBoxIP.UnderlinedStyle = true; + this.CustomTextBoxIP.UsePasswordChar = false; + this.CustomTextBoxIP.WordWrap = true; + // + // CustomLabelHost + // + this.CustomLabelHost.AutoSize = true; + this.CustomLabelHost.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelHost.Border = false; + this.CustomLabelHost.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelHost.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelHost.ForeColor = System.Drawing.Color.White; + this.CustomLabelHost.Location = new System.Drawing.Point(12, 110); + this.CustomLabelHost.Name = "CustomLabelHost"; + this.CustomLabelHost.RoundedCorners = 0; + this.CustomLabelHost.Size = new System.Drawing.Size(140, 17); + this.CustomLabelHost.TabIndex = 4; + this.CustomLabelHost.Text = "Host Name (vHost+SNI):"; + // + // CustomTextBoxHost + // + this.CustomTextBoxHost.AcceptsReturn = false; + this.CustomTextBoxHost.AcceptsTab = false; + this.CustomTextBoxHost.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxHost.Border = true; + this.CustomTextBoxHost.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxHost.BorderSize = 1; + this.CustomTextBoxHost.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxHost.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxHost.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxHost.HideSelection = true; + this.CustomTextBoxHost.Location = new System.Drawing.Point(12, 130); + this.CustomTextBoxHost.MaxLength = 32767; + this.CustomTextBoxHost.Multiline = false; + this.CustomTextBoxHost.Name = "CustomTextBoxHost"; + this.CustomTextBoxHost.ReadOnly = false; + this.CustomTextBoxHost.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxHost.ShortcutsEnabled = true; + this.CustomTextBoxHost.Size = new System.Drawing.Size(350, 23); + this.CustomTextBoxHost.TabIndex = 0; + this.CustomTextBoxHost.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxHost.Texts = ""; + this.CustomTextBoxHost.UnderlinedStyle = true; + this.CustomTextBoxHost.UsePasswordChar = false; + this.CustomTextBoxHost.WordWrap = true; + // + // CustomLabelPort + // + this.CustomLabelPort.AutoSize = true; + this.CustomLabelPort.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelPort.Border = false; + this.CustomLabelPort.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelPort.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelPort.ForeColor = System.Drawing.Color.White; + this.CustomLabelPort.Location = new System.Drawing.Point(12, 170); + this.CustomLabelPort.Name = "CustomLabelPort"; + this.CustomLabelPort.RoundedCorners = 0; + this.CustomLabelPort.Size = new System.Drawing.Size(81, 17); + this.CustomLabelPort.TabIndex = 7; + this.CustomLabelPort.Text = "Port Number:"; + // + // CustomNumericUpDownPort + // + this.CustomNumericUpDownPort.BackColor = System.Drawing.Color.DimGray; + this.CustomNumericUpDownPort.BorderColor = System.Drawing.Color.Blue; + this.CustomNumericUpDownPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.CustomNumericUpDownPort.Location = new System.Drawing.Point(99, 168); + this.CustomNumericUpDownPort.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.CustomNumericUpDownPort.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.CustomNumericUpDownPort.Name = "CustomNumericUpDownPort"; + this.CustomNumericUpDownPort.Size = new System.Drawing.Size(80, 23); + this.CustomNumericUpDownPort.TabIndex = 8; + this.CustomNumericUpDownPort.Value = new decimal(new int[] { + 53, + 0, + 0, + 0}); + // + // CustomLabelPath + // + this.CustomLabelPath.AutoSize = true; + this.CustomLabelPath.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelPath.Border = false; + this.CustomLabelPath.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelPath.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelPath.ForeColor = System.Drawing.Color.White; + this.CustomLabelPath.Location = new System.Drawing.Point(12, 210); + this.CustomLabelPath.Name = "CustomLabelPath"; + this.CustomLabelPath.RoundedCorners = 0; + this.CustomLabelPath.Size = new System.Drawing.Size(121, 17); + this.CustomLabelPath.TabIndex = 9; + this.CustomLabelPath.Text = "Path (Can be empty):"; + // + // CustomTextBoxPath + // + this.CustomTextBoxPath.AcceptsReturn = false; + this.CustomTextBoxPath.AcceptsTab = false; + this.CustomTextBoxPath.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxPath.Border = true; + this.CustomTextBoxPath.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxPath.BorderSize = 1; + this.CustomTextBoxPath.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxPath.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxPath.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxPath.HideSelection = true; + this.CustomTextBoxPath.Location = new System.Drawing.Point(139, 208); + this.CustomTextBoxPath.MaxLength = 32767; + this.CustomTextBoxPath.Multiline = false; + this.CustomTextBoxPath.Name = "CustomTextBoxPath"; + this.CustomTextBoxPath.ReadOnly = false; + this.CustomTextBoxPath.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxPath.ShortcutsEnabled = true; + this.CustomTextBoxPath.Size = new System.Drawing.Size(223, 23); + this.CustomTextBoxPath.TabIndex = 0; + this.CustomTextBoxPath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxPath.Texts = ""; + this.CustomTextBoxPath.UnderlinedStyle = true; + this.CustomTextBoxPath.UsePasswordChar = false; + this.CustomTextBoxPath.WordWrap = true; + // + // CustomLabelProviderName + // + this.CustomLabelProviderName.AutoSize = true; + this.CustomLabelProviderName.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelProviderName.Border = false; + this.CustomLabelProviderName.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelProviderName.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelProviderName.ForeColor = System.Drawing.Color.White; + this.CustomLabelProviderName.Location = new System.Drawing.Point(407, 50); + this.CustomLabelProviderName.Name = "CustomLabelProviderName"; + this.CustomLabelProviderName.RoundedCorners = 0; + this.CustomLabelProviderName.Size = new System.Drawing.Size(91, 17); + this.CustomLabelProviderName.TabIndex = 12; + this.CustomLabelProviderName.Text = "Provider Name:"; + // + // CustomTextBoxProviderName + // + this.CustomTextBoxProviderName.AcceptsReturn = false; + this.CustomTextBoxProviderName.AcceptsTab = false; + this.CustomTextBoxProviderName.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxProviderName.Border = true; + this.CustomTextBoxProviderName.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxProviderName.BorderSize = 1; + this.CustomTextBoxProviderName.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxProviderName.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxProviderName.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxProviderName.HideSelection = true; + this.CustomTextBoxProviderName.Location = new System.Drawing.Point(407, 70); + this.CustomTextBoxProviderName.MaxLength = 32767; + this.CustomTextBoxProviderName.Multiline = false; + this.CustomTextBoxProviderName.Name = "CustomTextBoxProviderName"; + this.CustomTextBoxProviderName.ReadOnly = false; + this.CustomTextBoxProviderName.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxProviderName.ShortcutsEnabled = true; + this.CustomTextBoxProviderName.Size = new System.Drawing.Size(350, 23); + this.CustomTextBoxProviderName.TabIndex = 0; + this.CustomTextBoxProviderName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxProviderName.Texts = ""; + this.CustomTextBoxProviderName.UnderlinedStyle = true; + this.CustomTextBoxProviderName.UsePasswordChar = false; + this.CustomTextBoxProviderName.WordWrap = true; + // + // CustomLabelPublicKey + // + this.CustomLabelPublicKey.AutoSize = true; + this.CustomLabelPublicKey.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelPublicKey.Border = false; + this.CustomLabelPublicKey.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelPublicKey.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelPublicKey.ForeColor = System.Drawing.Color.White; + this.CustomLabelPublicKey.Location = new System.Drawing.Point(407, 110); + this.CustomLabelPublicKey.Name = "CustomLabelPublicKey"; + this.CustomLabelPublicKey.RoundedCorners = 0; + this.CustomLabelPublicKey.Size = new System.Drawing.Size(355, 17); + this.CustomLabelPublicKey.TabIndex = 15; + this.CustomLabelPublicKey.Text = "Public Key (DNSCrypt provider’s Ed25519 public key) (HEX String):"; + // + // CustomTextBoxPublicKey + // + this.CustomTextBoxPublicKey.AcceptsReturn = false; + this.CustomTextBoxPublicKey.AcceptsTab = false; + this.CustomTextBoxPublicKey.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxPublicKey.Border = true; + this.CustomTextBoxPublicKey.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxPublicKey.BorderSize = 1; + this.CustomTextBoxPublicKey.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxPublicKey.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxPublicKey.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxPublicKey.HideSelection = true; + this.CustomTextBoxPublicKey.Location = new System.Drawing.Point(407, 130); + this.CustomTextBoxPublicKey.MaxLength = 32767; + this.CustomTextBoxPublicKey.Multiline = false; + this.CustomTextBoxPublicKey.Name = "CustomTextBoxPublicKey"; + this.CustomTextBoxPublicKey.ReadOnly = false; + this.CustomTextBoxPublicKey.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxPublicKey.ShortcutsEnabled = true; + this.CustomTextBoxPublicKey.Size = new System.Drawing.Size(350, 23); + this.CustomTextBoxPublicKey.TabIndex = 0; + this.CustomTextBoxPublicKey.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxPublicKey.Texts = ""; + this.CustomTextBoxPublicKey.UnderlinedStyle = true; + this.CustomTextBoxPublicKey.UsePasswordChar = false; + this.CustomTextBoxPublicKey.WordWrap = true; + // + // CustomLabelHash + // + this.CustomLabelHash.AutoSize = true; + this.CustomLabelHash.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelHash.Border = false; + this.CustomLabelHash.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelHash.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelHash.ForeColor = System.Drawing.Color.White; + this.CustomLabelHash.Location = new System.Drawing.Point(407, 170); + this.CustomLabelHash.Name = "CustomLabelHash"; + this.CustomLabelHash.RoundedCorners = 0; + this.CustomLabelHash.Size = new System.Drawing.Size(356, 17); + this.CustomLabelHash.TabIndex = 17; + this.CustomLabelHash.Text = "Hashes (Comma-separated) (SHA256 HEX String) (Can be empty):"; + // + // CustomTextBoxHash + // + this.CustomTextBoxHash.AcceptsReturn = false; + this.CustomTextBoxHash.AcceptsTab = false; + this.CustomTextBoxHash.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxHash.Border = true; + this.CustomTextBoxHash.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxHash.BorderSize = 1; + this.CustomTextBoxHash.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxHash.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxHash.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxHash.HideSelection = true; + this.CustomTextBoxHash.Location = new System.Drawing.Point(407, 190); + this.CustomTextBoxHash.MaxLength = 32767; + this.CustomTextBoxHash.Multiline = false; + this.CustomTextBoxHash.Name = "CustomTextBoxHash"; + this.CustomTextBoxHash.ReadOnly = false; + this.CustomTextBoxHash.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxHash.ShortcutsEnabled = true; + this.CustomTextBoxHash.Size = new System.Drawing.Size(350, 23); + this.CustomTextBoxHash.TabIndex = 0; + this.CustomTextBoxHash.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxHash.Texts = ""; + this.CustomTextBoxHash.UnderlinedStyle = true; + this.CustomTextBoxHash.UsePasswordChar = false; + this.CustomTextBoxHash.WordWrap = true; + // + // CustomCheckBoxIsDnsSec + // + this.CustomCheckBoxIsDnsSec.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxIsDnsSec.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxIsDnsSec.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxIsDnsSec.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxIsDnsSec.Location = new System.Drawing.Point(12, 250); + this.CustomCheckBoxIsDnsSec.Name = "CustomCheckBoxIsDnsSec"; + this.CustomCheckBoxIsDnsSec.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxIsDnsSec.Size = new System.Drawing.Size(76, 17); + this.CustomCheckBoxIsDnsSec.TabIndex = 20; + this.CustomCheckBoxIsDnsSec.Text = "Is DNSSec"; + this.CustomCheckBoxIsDnsSec.UseVisualStyleBackColor = false; + // + // CustomCheckBoxIsNoFilter + // + this.CustomCheckBoxIsNoFilter.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxIsNoFilter.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxIsNoFilter.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxIsNoFilter.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxIsNoFilter.Location = new System.Drawing.Point(122, 250); + this.CustomCheckBoxIsNoFilter.Name = "CustomCheckBoxIsNoFilter"; + this.CustomCheckBoxIsNoFilter.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxIsNoFilter.Size = new System.Drawing.Size(79, 17); + this.CustomCheckBoxIsNoFilter.TabIndex = 21; + this.CustomCheckBoxIsNoFilter.Text = "Is No Filter"; + this.CustomCheckBoxIsNoFilter.UseVisualStyleBackColor = false; + // + // CustomCheckBoxIsNoLog + // + this.CustomCheckBoxIsNoLog.BackColor = System.Drawing.Color.DimGray; + this.CustomCheckBoxIsNoLog.BorderColor = System.Drawing.Color.Blue; + this.CustomCheckBoxIsNoLog.CheckColor = System.Drawing.Color.Blue; + this.CustomCheckBoxIsNoLog.ForeColor = System.Drawing.Color.White; + this.CustomCheckBoxIsNoLog.Location = new System.Drawing.Point(232, 250); + this.CustomCheckBoxIsNoLog.Name = "CustomCheckBoxIsNoLog"; + this.CustomCheckBoxIsNoLog.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomCheckBoxIsNoLog.Size = new System.Drawing.Size(73, 17); + this.CustomCheckBoxIsNoLog.TabIndex = 22; + this.CustomCheckBoxIsNoLog.Text = "Is No Log"; + this.CustomCheckBoxIsNoLog.UseVisualStyleBackColor = false; + // + // CustomTextBoxStamp + // + this.CustomTextBoxStamp.AcceptsReturn = false; + this.CustomTextBoxStamp.AcceptsTab = false; + this.CustomTextBoxStamp.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CustomTextBoxStamp.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxStamp.Border = true; + this.CustomTextBoxStamp.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxStamp.BorderSize = 1; + this.CustomTextBoxStamp.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxStamp.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxStamp.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxStamp.HideSelection = true; + this.CustomTextBoxStamp.Location = new System.Drawing.Point(12, 280); + this.CustomTextBoxStamp.MaxLength = 32767; + this.CustomTextBoxStamp.MinimumSize = new System.Drawing.Size(0, 23); + this.CustomTextBoxStamp.Multiline = true; + this.CustomTextBoxStamp.Name = "CustomTextBoxStamp"; + this.CustomTextBoxStamp.ReadOnly = false; + this.CustomTextBoxStamp.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.CustomTextBoxStamp.ShortcutsEnabled = true; + this.CustomTextBoxStamp.Size = new System.Drawing.Size(602, 102); + this.CustomTextBoxStamp.TabIndex = 0; + this.CustomTextBoxStamp.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxStamp.Texts = "sdns://"; + this.CustomTextBoxStamp.UnderlinedStyle = false; + this.CustomTextBoxStamp.UsePasswordChar = false; + this.CustomTextBoxStamp.WordWrap = true; + // + // CustomButtonClear + // + this.CustomButtonClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CustomButtonClear.AutoSize = true; + this.CustomButtonClear.BorderColor = System.Drawing.Color.Blue; + this.CustomButtonClear.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomButtonClear.Location = new System.Drawing.Point(655, 280); + this.CustomButtonClear.Name = "CustomButtonClear"; + this.CustomButtonClear.RoundedCorners = 5; + this.CustomButtonClear.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomButtonClear.Size = new System.Drawing.Size(75, 27); + this.CustomButtonClear.TabIndex = 24; + this.CustomButtonClear.Text = "Clear"; + this.CustomButtonClear.UseVisualStyleBackColor = true; + this.CustomButtonClear.Click += new System.EventHandler(this.CustomButtonClear_Click); + // + // CustomButtonDecode + // + this.CustomButtonDecode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CustomButtonDecode.AutoSize = true; + this.CustomButtonDecode.BorderColor = System.Drawing.Color.Blue; + this.CustomButtonDecode.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomButtonDecode.Location = new System.Drawing.Point(655, 317); + this.CustomButtonDecode.Name = "CustomButtonDecode"; + this.CustomButtonDecode.RoundedCorners = 5; + this.CustomButtonDecode.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomButtonDecode.Size = new System.Drawing.Size(75, 27); + this.CustomButtonDecode.TabIndex = 33; + this.CustomButtonDecode.Text = "Decode"; + this.CustomButtonDecode.UseVisualStyleBackColor = true; + this.CustomButtonDecode.Click += new System.EventHandler(this.CustomButtonDecode_Click); + // + // CustomLabelStatus + // + this.CustomLabelStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomLabelStatus.AutoSize = true; + this.CustomLabelStatus.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelStatus.Border = false; + this.CustomLabelStatus.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelStatus.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelStatus.ForeColor = System.Drawing.Color.White; + this.CustomLabelStatus.Location = new System.Drawing.Point(12, 385); + this.CustomLabelStatus.Name = "CustomLabelStatus"; + this.CustomLabelStatus.RoundedCorners = 0; + this.CustomLabelStatus.Size = new System.Drawing.Size(79, 17); + this.CustomLabelStatus.TabIndex = 34; + this.CustomLabelStatus.Text = "Status: Ready"; + // + // CustomButtonEncode + // + this.CustomButtonEncode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CustomButtonEncode.AutoSize = true; + this.CustomButtonEncode.BorderColor = System.Drawing.Color.Blue; + this.CustomButtonEncode.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomButtonEncode.Location = new System.Drawing.Point(655, 355); + this.CustomButtonEncode.Name = "CustomButtonEncode"; + this.CustomButtonEncode.RoundedCorners = 5; + this.CustomButtonEncode.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomButtonEncode.Size = new System.Drawing.Size(75, 27); + this.CustomButtonEncode.TabIndex = 35; + this.CustomButtonEncode.Text = "Encode"; + this.CustomButtonEncode.UseVisualStyleBackColor = true; + this.CustomButtonEncode.Click += new System.EventHandler(this.CustomButtonEncode_Click); + // + // FormStampGenerator + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.DimGray; + this.ClientSize = new System.Drawing.Size(769, 411); + this.Controls.Add(this.CustomButtonEncode); + this.Controls.Add(this.CustomLabelStatus); + this.Controls.Add(this.CustomButtonDecode); + this.Controls.Add(this.CustomButtonClear); + this.Controls.Add(this.CustomTextBoxStamp); + this.Controls.Add(this.CustomCheckBoxIsNoLog); + this.Controls.Add(this.CustomCheckBoxIsNoFilter); + this.Controls.Add(this.CustomCheckBoxIsDnsSec); + this.Controls.Add(this.CustomTextBoxHash); + this.Controls.Add(this.CustomLabelHash); + this.Controls.Add(this.CustomTextBoxPublicKey); + this.Controls.Add(this.CustomLabelPublicKey); + this.Controls.Add(this.CustomTextBoxProviderName); + this.Controls.Add(this.CustomLabelProviderName); + this.Controls.Add(this.CustomTextBoxPath); + this.Controls.Add(this.CustomLabelPath); + this.Controls.Add(this.CustomNumericUpDownPort); + this.Controls.Add(this.CustomLabelPort); + this.Controls.Add(this.CustomTextBoxHost); + this.Controls.Add(this.CustomLabelHost); + this.Controls.Add(this.CustomTextBoxIP); + this.Controls.Add(this.CustomLabelIP); + this.Controls.Add(this.CustomComboBoxProtocol); + this.Controls.Add(this.CustomLabelProtocol); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(785, 450); + this.MinimumSize = new System.Drawing.Size(785, 450); + this.Name = "FormStampGenerator"; + this.Text = "DNSCrypt Stamp Generator"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormStampGenerator_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.CustomNumericUpDownPort)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private CustomControls.CustomLabel CustomLabelProtocol; + private CustomControls.CustomComboBox CustomComboBoxProtocol; + private CustomControls.CustomLabel CustomLabelIP; + private CustomControls.CustomTextBox CustomTextBoxIP; + private CustomControls.CustomLabel CustomLabelHost; + private CustomControls.CustomTextBox CustomTextBoxHost; + private CustomControls.CustomLabel CustomLabelPort; + private CustomControls.CustomNumericUpDown CustomNumericUpDownPort; + private CustomControls.CustomLabel CustomLabelPath; + private CustomControls.CustomTextBox CustomTextBoxPath; + private CustomControls.CustomLabel CustomLabelProviderName; + private CustomControls.CustomTextBox CustomTextBoxProviderName; + private CustomControls.CustomLabel CustomLabelPublicKey; + private CustomControls.CustomTextBox CustomTextBoxPublicKey; + private CustomControls.CustomLabel CustomLabelHash; + private CustomControls.CustomTextBox CustomTextBoxHash; + private CustomControls.CustomCheckBox CustomCheckBoxIsDnsSec; + private CustomControls.CustomCheckBox CustomCheckBoxIsNoFilter; + private CustomControls.CustomCheckBox CustomCheckBoxIsNoLog; + private CustomControls.CustomTextBox CustomTextBoxStamp; + private CustomControls.CustomButton CustomButtonClear; + private CustomControls.CustomButton CustomButtonDecode; + private CustomControls.CustomLabel CustomLabelStatus; + private CustomControls.CustomButton CustomButtonEncode; + } +} \ No newline at end of file diff --git a/SecureDNSClient/Forms/FormStampGenerator.cs b/SecureDNSClient/Forms/FormStampGenerator.cs new file mode 100644 index 0000000..afecb96 --- /dev/null +++ b/SecureDNSClient/Forms/FormStampGenerator.cs @@ -0,0 +1,453 @@ +using MsmhTools; +using MsmhTools.Themes; +using MsmhTools.DnsTool; +using System; +using System.Diagnostics; + +namespace SecureDNSClient +{ + public partial class FormStampGenerator : Form + { + private readonly Stopwatch ClearStatus = new(); + private static bool IsExiting = false; + public FormStampGenerator() + { + InitializeComponent(); + + // Load Theme + Theme.LoadTheme(this, Theme.Themes.Dark); + Controllers.SetDarkControl(CustomTextBoxStamp); + + CustomComboBoxProtocol.SelectedIndex = 2; + IsExiting = false; + ClearStatusAuto(); + } + + private void CustomButtonClear_Click(object? sender, EventArgs? e) + { + CustomTextBoxIP.Text = string.Empty; + CustomTextBoxHost.Text = string.Empty; + CustomTextBoxPath.Text = string.Empty; + CustomTextBoxProviderName.Text = string.Empty; + CustomTextBoxPublicKey.Text = string.Empty; + CustomTextBoxHash.Text = string.Empty; + CustomCheckBoxIsDnsSec.Checked = false; + CustomCheckBoxIsNoFilter.Checked = false; + CustomCheckBoxIsNoLog.Checked = false; + CustomTextBoxStamp.Text = string.Empty; + } + + private void CustomButtonDecode_Click(object sender, EventArgs e) + { + string stamp = CustomTextBoxStamp.Text; + stamp = stamp.Trim(); + + if (string.IsNullOrEmpty(stamp) || string.IsNullOrWhiteSpace(stamp)) + { + Status("Stamp is Empty.", Color.IndianRed); + return; + } + + if (!stamp.ToLower().StartsWith("sdns://")) + { + Status("Stamp URL must start with sdns://", Color.IndianRed); + return; + } + + if (stamp.ToLower().Equals("sdns://")) + { + Status("Invalid Stamp.", Color.IndianRed); + return; + } + + try + { + DNSCryptStampReader sr = new(stamp); + + if (!sr.IsDecryptionSuccess) + { + Status("Invalid Stamp.", Color.IndianRed); + return; + } + + SetProtocol(sr.Protocol); + + CustomCheckBoxIsDnsSec.Checked = sr.IsDnsSec; + CustomCheckBoxIsNoFilter.Checked = sr.IsNoFilter; + CustomCheckBoxIsNoLog.Checked = sr.IsNoLog; + + CustomTextBoxIP.Text = sr.IP; // IP + CustomTextBoxHost.Text = sr.Host; // Host + CustomNumericUpDownPort.Value = Convert.ToDecimal(sr.Port); // Port + CustomTextBoxPath.Text = sr.Path; // Path + CustomTextBoxProviderName.Text = sr.ProviderName; // Provider Name + CustomTextBoxPublicKey.Text = sr.PublicKey; // Public Key + + // Hashes + CustomTextBoxHash.Text = string.Empty; + string hashes = string.Empty; + for (int n = 0; n < sr.Hashi.Count; n++) + { + string hash = sr.Hashi[n]; + if (n == 0) hashes += hash; + else hashes += $",{hash}"; + } + CustomTextBoxHash.Text = hashes; + + Status("Stamp Decrypted Successfully.", Color.MediumSeaGreen); + } + catch (Exception) + { + Status("Invalid Stamp.", Color.IndianRed); + return; + } + + } + + private void CustomButtonEncode_Click(object sender, EventArgs e) + { + DNSCryptStampReader.StampProtocol p = GetProtocol(); + string ip = CustomTextBoxIP.Text.Trim(); + string host = CustomTextBoxHost.Text.Trim(); + int port = Convert.ToInt32(CustomNumericUpDownPort.Value); + string path = CustomTextBoxPath.Text.Trim(); + string provider = CustomTextBoxProviderName.Text.Trim(); + string publicKey = CustomTextBoxPublicKey.Text.Trim(); + string hash = CustomTextBoxHash.Text.Trim(); + bool isDNSSec = CustomCheckBoxIsDnsSec.Checked; + bool isNoFilter = CustomCheckBoxIsNoFilter.Checked; + bool isNoLog = CustomCheckBoxIsNoLog.Checked; + + // Empty Messages + string msgIp = "IP Address is Empty."; + string msgHost = "Host Name is Empty."; + string msgProvider = "Provider Name is Empty."; + string msgPublicKey = "Public Key is Empty."; + string msgSuccess = "Stamp Encrypted Successfully."; + + string result = "sdns://"; + DNSCryptStampGenerator generator = new(); + + try + { + if (p == DNSCryptStampReader.StampProtocol.PlainDNS) + { + if (string.IsNullOrEmpty(ip)) + Status(msgIp, Color.IndianRed); + else + { + string ipPort = ip; + if (port != DNSCryptStampReader.DefaultPort.PlainDNS) + ipPort += $":{port}"; + result = generator.GeneratePlainDns(ipPort, isDNSSec, isNoLog, isNoFilter); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else if (p == DNSCryptStampReader.StampProtocol.DnsCrypt) + { + if (string.IsNullOrEmpty(ip)) + Status(msgIp, Color.IndianRed); + else if (string.IsNullOrEmpty(publicKey)) + Status(msgPublicKey, Color.IndianRed); + else if (string.IsNullOrEmpty(provider)) + Status(msgProvider, Color.IndianRed); + else + { + string ipPort = ip; + if (port != DNSCryptStampReader.DefaultPort.DnsCrypt) + ipPort += $":{port}"; + result = generator.GenerateDNSCrypt(ipPort, publicKey, provider, isDNSSec, isNoLog, isNoFilter); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else if (p == DNSCryptStampReader.StampProtocol.DoH) + { + if (string.IsNullOrEmpty(ip)) + Status(msgIp, Color.IndianRed); + else if (string.IsNullOrEmpty(host)) + Status(msgHost, Color.IndianRed); + else + { + string hostPort = host; + if (port != DNSCryptStampReader.DefaultPort.DoH) + hostPort += $":{port}"; + result = generator.GenerateDoH(ip, hash, hostPort, path, null, isDNSSec, isNoLog, isNoFilter); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else if (p == DNSCryptStampReader.StampProtocol.DoT) + { + if (string.IsNullOrEmpty(ip)) + Status(msgIp, Color.IndianRed); + else if (string.IsNullOrEmpty(host)) + Status(msgHost, Color.IndianRed); + else + { + string hostPort = host; + if (port != DNSCryptStampReader.DefaultPort.DoT) + hostPort += $":{port}"; + result = generator.GenerateDoT(ip, hash, hostPort, null, isDNSSec, isNoLog, isNoFilter); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else if (p == DNSCryptStampReader.StampProtocol.DoQ) + { + if (string.IsNullOrEmpty(ip)) + Status(msgIp, Color.IndianRed); + else if (string.IsNullOrEmpty(host)) + Status(msgHost, Color.IndianRed); + else + { + result = generator.GenerateDoQ(ip, hash, $"{host}:{port}", null, isDNSSec, isNoLog, isNoFilter); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else if (p == DNSCryptStampReader.StampProtocol.ObliviousDohTarget) + { + if (string.IsNullOrEmpty(host)) + Status(msgHost, Color.IndianRed); + else + { + result = generator.GenerateObliviousDohTarget($"{host}:{port}", path, isDNSSec, isNoLog, isNoFilter); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else if (p == DNSCryptStampReader.StampProtocol.AnonymizedDNSCryptRelay) + { + if (string.IsNullOrEmpty(ip)) + Status(msgIp, Color.IndianRed); + else + { + result = generator.GenerateAnonymizedDNSCryptRelay($"{ip}:{port}"); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else if (p == DNSCryptStampReader.StampProtocol.ObliviousDohRelay) + { + if (string.IsNullOrEmpty(ip)) + Status(msgIp, Color.IndianRed); + else if (string.IsNullOrEmpty(host)) + Status(msgHost, Color.IndianRed); + else + { + result = generator.GenerateObliviousDohRelay(ip, hash, $"{host}:{port}", path, null, isDNSSec, isNoLog, isNoFilter); + Status(msgSuccess, Color.MediumSeaGreen); + } + } + else + Status("Select a protocol.", Color.IndianRed); + } + catch (Exception) + { + Status("Insufficient Data!", Color.IndianRed); + } + + CustomTextBoxStamp.Text = result; + } + + private DNSCryptStampReader.StampProtocol GetProtocol() + { + int index = CustomComboBoxProtocol.SelectedIndex; + + DNSCryptStampReader.StampProtocol protocol = index switch + { + -1 => DNSCryptStampReader.StampProtocol.Unknown, + 0 => DNSCryptStampReader.StampProtocol.PlainDNS, + 1 => DNSCryptStampReader.StampProtocol.DnsCrypt, + 2 => DNSCryptStampReader.StampProtocol.DoH, + 3 => DNSCryptStampReader.StampProtocol.DoT, + 4 => DNSCryptStampReader.StampProtocol.DoQ, + 5 => DNSCryptStampReader.StampProtocol.ObliviousDohTarget, + 6 => DNSCryptStampReader.StampProtocol.AnonymizedDNSCryptRelay, + 7 => DNSCryptStampReader.StampProtocol.ObliviousDohRelay, + _ => DNSCryptStampReader.StampProtocol.Unknown, + }; + + return protocol; + } + + private void SetProtocol(DNSCryptStampReader.StampProtocol protocol) + { + CustomComboBoxProtocol.SelectedIndex = protocol switch + { + DNSCryptStampReader.StampProtocol.Unknown => -1, + DNSCryptStampReader.StampProtocol.PlainDNS => 0, + DNSCryptStampReader.StampProtocol.DnsCrypt => 1, + DNSCryptStampReader.StampProtocol.DoH => 2, + DNSCryptStampReader.StampProtocol.DoT => 3, + DNSCryptStampReader.StampProtocol.DoQ => 4, + DNSCryptStampReader.StampProtocol.ObliviousDohTarget => 5, + DNSCryptStampReader.StampProtocol.AnonymizedDNSCryptRelay => 6, + DNSCryptStampReader.StampProtocol.ObliviousDohRelay => 7, + _ => CustomComboBoxProtocol.SelectedIndex = -1, + }; + } + + private void Status(string msg, Color color) + { + if (!ClearStatus.IsRunning) ClearStatus.Start(); + ClearStatus.Restart(); + CustomLabelStatus.ForeColor = color; + CustomLabelStatus.Text = msg; + } + + private async void ClearStatusAuto() + { + await Task.Run(async () => + { + while (true) + { + await Task.Delay(200); + if (IsExiting) break; + + try + { + if (ClearStatus.ElapsedMilliseconds > 5000 && !IsExiting) + if (!string.IsNullOrEmpty(CustomLabelStatus.Text)) + this.InvokeIt(() => CustomLabelStatus.Text = string.Empty); + } + catch (Exception) { } + } + }); + } + + private void CustomComboBoxProtocol_SelectedIndexChanged(object sender, EventArgs e) + { + var p = GetProtocol(); + var ip = CustomTextBoxIP; + var host = CustomTextBoxHost; + var port = CustomNumericUpDownPort; + var path = CustomTextBoxPath; + var provider = CustomTextBoxProviderName; + var publicKey = CustomTextBoxPublicKey; + var hash = CustomTextBoxHash; + var isDNSSec = CustomCheckBoxIsDnsSec; + var isNoFilter = CustomCheckBoxIsNoFilter; + var isNoLog = CustomCheckBoxIsNoLog; + + if (p == DNSCryptStampReader.StampProtocol.PlainDNS) + { + ip.Enabled = true; + host.Enabled = false; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.PlainDNS; + path.Enabled = false; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = false; + isDNSSec.Enabled = true; + isNoFilter.Enabled = true; + isNoLog.Enabled = true; + } + else if (p == DNSCryptStampReader.StampProtocol.DnsCrypt) + { + ip.Enabled = true; + host.Enabled = false; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.DnsCrypt; + path.Enabled = false; + provider.Enabled = true; provider.Text = "2.dnscrypt-cert."; + publicKey.Enabled = true; + hash.Enabled = false; + isDNSSec.Enabled = true; + isNoFilter.Enabled = true; + isNoLog.Enabled = true; + } + else if (p == DNSCryptStampReader.StampProtocol.DoH) + { + ip.Enabled = true; + host.Enabled = true; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.DoH; + path.Enabled = true; path.Text = "/dns-query"; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = true; + isDNSSec.Enabled = true; + isNoFilter.Enabled = true; + isNoLog.Enabled = true; + } + else if (p == DNSCryptStampReader.StampProtocol.DoT) + { + ip.Enabled = true; + host.Enabled = true; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.DoT; + path.Enabled = false; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = true; + isDNSSec.Enabled = true; + isNoFilter.Enabled = true; + isNoLog.Enabled = true; + } + else if (p == DNSCryptStampReader.StampProtocol.DoQ) + { + ip.Enabled = true; + host.Enabled = true; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.DoQ; + path.Enabled = false; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = true; + isDNSSec.Enabled = true; + isNoFilter.Enabled = true; + isNoLog.Enabled = true; + } + else if (p == DNSCryptStampReader.StampProtocol.ObliviousDohTarget) + { + ip.Enabled = false; + host.Enabled = true; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.ObliviousDohTarget; + path.Enabled = true; path.Text = "/dns-query"; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = false; + isDNSSec.Enabled = true; + isNoFilter.Enabled = true; + isNoLog.Enabled = true; + } + else if (p == DNSCryptStampReader.StampProtocol.AnonymizedDNSCryptRelay) + { + ip.Enabled = true; + host.Enabled = false; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.AnonymizedDNSCryptRelay; + path.Enabled = false; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = false; + isDNSSec.Enabled = false; + isNoFilter.Enabled = false; + isNoLog.Enabled = false; + } + else if (p == DNSCryptStampReader.StampProtocol.ObliviousDohRelay) + { + ip.Enabled = true; + host.Enabled = true; + port.Enabled = true; port.Value = DNSCryptStampReader.DefaultPort.ObliviousDohRelay; + path.Enabled = true; path.Text = "/dns-query"; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = true; + isDNSSec.Enabled = true; + isNoFilter.Enabled = true; + isNoLog.Enabled = true; + } + else + { + CustomButtonClear_Click(null, null); + ip.Enabled = false; + host.Enabled = false; + port.Enabled = false; + path.Enabled = false; + provider.Enabled = false; + publicKey.Enabled = false; + hash.Enabled = false; + isDNSSec.Enabled = false; + isNoFilter.Enabled = false; + isNoLog.Enabled = false; + } + } + + private void FormStampGenerator_FormClosing(object sender, FormClosingEventArgs e) + { + IsExiting = true; + } + } +} diff --git a/SecureDNSClient/Forms/FormStampGenerator.resx b/SecureDNSClient/Forms/FormStampGenerator.resx new file mode 100644 index 0000000..f852953 --- /dev/null +++ b/SecureDNSClient/Forms/FormStampGenerator.resx @@ -0,0 +1,3207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAkAEBAAAAEAIABoBAAAlgAAABgYAAABACAAiAkAAP4EAAAgIAAAAQAgAKgQAACGDgAAMDAAAAEA + IACoJQAALh8AAEBAAAABACAAKEIAANZEAABISAAAAQAgAIhUAAD+hgAAUFAAAAEAIADoZwAAhtsAAGBg + AAABACAAqJQAAG5DAQCAgAAAAQAgACgIAQAW2AEAKAAAABAAAAAgAAAAAQAgAAAAAAAABAAAEwsAABML + AAAAAAAAAAAAAP+QHgD/kB4A/5AeAPmOJQAAH/8ES1ffKFRZ1V9XWtOOWVvQqFxcza9cXM2kXFzNg1xc + zUlcXM0OXFzNAFxczQD+jx0B/5AeF/+QHkD/kB5k2INInrd5a96mdH75kG2V/3NjtP9dXMz/W1zO/1xc + zf9cXM3xXFzNtFxczThcXM0A/5Aej/+QHtP/kB71/5Ae//+QHv//kB3//5Ad//2PIf/sijL/t3lr/3Bi + uO1bXM7yXFzN/1xczf9cXM3ZXFzNO/+QHuz/kB7//5Ae//+QHv30jCr+940n8P+QHuv/kB79/5Ad//+Q + Hf/vizDOhGmhZ1tczt1cXM3/XFzN/1xczbP/kB7t/5Ae7f+QHqP5jiVdnHCIerV4bkH/kRks/5AedP+Q + HvD/kB7//5Ac/u6LMIVaW8/AXFzN/1xczf9cXM3o/5AemP+QHkL/kB0E/5MTAP/FAADviy8A/5EaAPmO + JBb/kB7U/5Ae//+RHP/Tgk3zX13J+Fxczf9cXM3/XFzN4/6QHgT/kB4A/5AeAP2QJwD/kB0Q/5AdLPaN + J1n4jiWu/5Ae+f+QHv//kRv/zoBS/19dyf9cXM3/XFzN/1xczZ7/kB4A/5AeBf+QHkH/kB6S/5Aeyv+Q + Hur/kB78/5Ae//+QHv//kB7//5Ad/6t1eP9bXM7/XFzN+1xcza1cXM0g/5AeDf+QHoj/kB7x/5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//pAf/9OCTfNwYrjZWlvPqlxczVxcXM0PXFzNAP+QHm//kB76/5Ae//+Q + Hv//kBz//5Ec//yPIv/wiy78944mxPOMK3KPbJY8UVjZG11cywRcXM0AXFzNAFxczQD/kB7C/5Ae//+Q + Hv//kB3734ZA9K12dv+ObJf/eGWv5YNooimdcYcAv3xiAIFopQBaW9AAXFzNBVxczUhcXM07/5Ae0v+Q + Hv//kB7//5Eb04BnpoVYW9H8WVvR/1lb0PhWWtOHZF7EMe+LL0GpdXpCWVvQV1xczadcXM3vXFzNcf+Q + HqP/kB7//5Ae//+QHerghj91cmO2y2hgwP9vYrn/iWqc/8V+XO33jSfyjWyY81lb0PtcXM3/XFzN/1xc + zXH/kB40/5Ae1P+QHv//kB7//5Ad9vKMK+7hhz7/6Yk1//mOJP//kBz/+48i/4prnP9ZW9D9XFzN71xc + zchcXM1I/5AfAP+QHjT/kB6v/5Ae8P+QHv//kB3//5Ec//+QHf//kB7//5Ae9f2PIdWccYiEVlrTV1xc + zTRcXM0RXFzNAf6PHAD/kB4A/5AeDP+QHkf/kB6D/5AepP+QHqz/kB6g/5Aef/+QHlD/kB0fAAD/AGJe + xwBcXM0AXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAAAAAACQAAEwsAABMLAAAAAAAAAAAAAAAA + AAD/jxwA/5kwAP+QHgD/kw8A/6QAAHtmqwBrYb0AADP/AVpbzxZcXM04XFzNWVxczXBcXM19XFzNflxc + zXJcXM1eXFzNOlxczRZcXM4AXFzNAFtbzABbW8wAW1vMAP+QHgD/kB4A/5AeAP+QHgD/kB4AnnKHAHdk + rxRnX8FPYV7HlV5dy8tbXM7rWVvQ+Fpbz/xcXM3/XFzN/1xczf1cXM35XFzN61xczcpcXM2DXFzNKV1d + zgBcXM0AXFzNAP+QHgD/kB0D/5AeHf+QHkr/kB53/5AdlueIN8fSgk74zIBV/8V+XP+4eWr/n3GF/35n + qP9iXsb/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWdcXM0FXFzNAP+QHlH/kB6f/5Ae2v+Q + Hvf/kB7//5Ae//+QHf//kRz//5Eb//+RG///kRv//5Ae//OMKv/OgVL/i2ua/19dyv5bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczfZcXM1vWlrKAv+QHtr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHf//kRv/9Y0o/757ZNxoYMCYW1zO0Vxczf5cXM3/XFzN/1xczf9cXM3mXFzNQP+Q + Htz/kB7//5Ae//+QHv//kB7//5Ae//iOJf7viy//+Y4k7P+QHuv/kB76/5Ae//+QHv//kB7//5Ad//+R + G/j/kRp6ZF7EJlxczchcXM3/XFzN/1xczf9cXM3/XFzNof+QHtz/kB7//5Ae//+QHuj/kB6s/5AdbJpw + iqiHap6fz4FRNf+RGy//kB5T/5Aesf+QHvz/kB7//5Ae//+QHv//kB7n/5IXMVlb0JhcXM3/XFzN/1xc + zf9cXM3/XFzN1v+QHuD/kB7w/5Aek/+QHjL/kB0G/5EaAD5S7hMqTP8JzYBUAP+QHAD/kB4A/5AeGv+Q + HtD/kB7//5Ae//+QHv//kBz/zYBUrlpbz9pcXM3/XFzN/1xczf9cXM3/XFzN4f+QHo7/kB5M/pAdA/+Q + HgD/kB0A/94AAFxczQBeXcoA/5gBAO+LLgD2jSgA/I8hE/+QHsr/kB7//5Ae//+QHv//kRv/wHxh/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzNzP6QHgP/kB4A/5AeAP+QHgD+kB0A/5AeAP+QHgD/kB4A/5IWA/CL + LhXghj9I+I4lqP+QHvr/kB7//5Ae//+QHv//kRv/wXxg/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNif6Q + HgD+jxwA/5AeAP+QHgD+jxwC/5AeHP+QHkj/kB55/5Aepv2PIND7jyL1/pAf//+QHv//kB7//5Ae//+Q + Hv//kRz/rHZ3/1pbz/9cXM3/XFzN/1xczf9cXM3HXFzNI/+QHgD/kB4A/pAdBP+QHj//kB6X/5Ae2f+Q + Hvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/zjCv/gWim/1pbz/9cXM3/XFzN/Vxc + zb1cXM0xXFzNAP+QHgD/kB4R/5Aeiv+QHu7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//mOJf+qdXn/Xl3L/lxczexcXM2+XFzNaVxczRVcXM0AWlrKAP+QHQf/kB6O/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB7/9o0o57R4bsJkX8SXWlvPZVxc + zTNbW80NXFzNAFxczQBcXM0AW1vMAP+QHkn/kB7v/5Ae//+QHv//kB7//5Ae//+QHv//kRz//5Eb//+Q + Hf/6jyP/7Yoy/vGLLcb/kB5v3oVALExX3gz//wAAWlvPAFxczQBbW80AXl7NAFxczQBcXM0AW1vMAP+Q + HpP/kB7//5Ae//+QHv//kB7//5Ae//uPIv/liDr/x35a/6l1ev+Ma5r/dWSy5HplrCy+e2MA3oVBAG5i + uACbcIgA/54AAGRewwBcXM0AXFzNAFtbzQlcXM0+W1vMEf+QHrf/kB7//5Ae//+QHv//kB7//5Ec68B8 + YrFsYbv7Xl3L/1pbz/9aW9D/WlvP6FpbzzVcXM0AZl/BAN6GQQCZcowAVVrUAFxczQBcXM0HXFzNOVxc + zaRcXM3ZW1vMLP+QHrX/kB7//5Ae//+QHv//kB7//5EcvXVksjBaW8/dXFzN/1xczf9cXM3/XFzN/1tc + zcpXWtJjW1zOMuiIN0LzjCt7dWSyQ1tczmhcXM2tXFzN61xczf9cXM3lW1vMLP+QHof/kB7//5Ae//+Q + Hv//kB7//5Ae4f+QHj5cXM1wWVvQ9llb0P9ZW9D/WlvP/2Fex/98Zqv9unpo7fmOJfDghj/9Zl/C81tc + zv5cXM3/XFzN/1xczf9cXM3lW1vMLP+QHjP/kB7f/5Ae//+QHv//kB7//5Ae//+QHeH2jSiirXZ12Jdv + jv+ccIj/r3dz/9CBUP/xiy3//5Ae//+RG//dhUL/Zl/D/1tczv9cXM3/XFzN/1xczf9cXM3oW1vMLP+S + JwD/kB5l/5Ae8v+QHv//kB7//5Ae//+QHv//kB7//5Ad/v6QH///kB7//5Ec//+RG///kB3//5Ae//+R + HP/dhUL/Zl/D/1tczv9cXM3+XFzN71xczc5cXM2DXFzNEv+QHQD+jxwE/5AeXv+QHtf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/miDjmamC+pFtczoVcXM1hXFzNN1xc + zRRLS7gAXFzMAP+QHQD/kB0A/5AeAP+QHiT/kB5+/5Aex/+QHuv/kB75/5Ae/f+QHv//kB79/5Ae+v+Q + HvH/kB7f/5Aeuv+QHoP9jyA5wXxeA2dgwQBcXM0AXFzNAFxczQBbW8wAXFzMAP+PHwD+kB4A/pAdAP+Q + HgD/kB8A/5AdFP+QHjr/kB5f/5Aec/+QHn3/kB51/5AeZP+QHkb/kB4n/5AeDP+QHgD8jyEArnZzAAAx + /wBbW80AW1vMAFtbzAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADACgA + AAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXMwAW1vMAFxczQBcXM0AXFzNAFxczQBcXM0AXFzMB1xczRlcXM0tXFzNQFxczUxcXM1SXFzNUFxc + zUVcXM06XFzNI1xczQ1mZtoAXFzNAFxczABYWMUAW1vMAFtbywAAAAAAAAAAAAAAAAD/jxsA/5AdAP+P + GwD/kB4A/48cAP+QHQD/kRgAtnlrAP+4AABLVt8TV1rSP1pbz3hbXM6tXFzNz1xczeNcXM3tXFzN9Fxc + zfZcXM31XFzN8FxczepcXM3aXFzNu1xczYxcXM1GXFzMEFxczQBbW8wAW1vMAFxczABcXM0A/48dAP9+ + AAD/kB0A/5AeAP+QHgD/kR8A/pAdBP+UEQ2odHsxf2eng3VksspvYrnyamG+/2Zfwv9fXcr/WlvP/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM29XFzNUltbzAhcXM0AXFzNAFxc + zQD/kB4A/5AeAP+QHQb/kB0k/5AeUv+QHoT/kB6q/5AdwvOMK+PniDf/6Yk2/+eIOP/ihz3/2oRF/8d+ + Wv+tdnb/i2ub/2lgv/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zXFzNmFxc + zRhcXM0AW1vNAP+QHiL/kB5i/5Aeq/+QHt//kB75/5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ac//+R + HP//kRz//5Eb//+RHP/4jiX/3YVC/6Zzfv9rYbz/WlzP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNqltbzRVcXM0A/5Aeuf+QHv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//pAf/9mERv+NbJjxXFzN21xczfJcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzNhltbywP/kB7P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec//mOJO/Xg0l0W1zNQ1xc + zaNcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzNO/+QHs7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//I8h/vOMK//wiy7+/I8i6v+QHuz/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HOD/lBE3Mk75C1xcza1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2M/5Aezv+QHv//kB7//5Ae//+Q + Hv//kB7r/5Aeuv+RGn+odHuwgWil7o9slobjhzsw/5AcM/+QHk3/kB6J/5Ae4f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHq3/vgAGW1zOdlxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcH/kB7O/5Ae//+Q + Hv//kB7d/5Aeh/+QHjb/kB0LwHxhAE9Y2zNUWdVDAC3/A9qERgD/kB0A/5AeAP+RIgD/kB5E/5Ae5f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad7duERUpZW9CpXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN1v+Q + HtL/kB71/5Ael/+QHirOXgAA/5AeAP+QHQAAAP8AXFzOAFxczQBbW80AXVzMAP+WBwD/kB0A/5AdAP6Q + HQT/kB6x/5Ae//+QHv//kB7//5Ae//+QHv//kB39q3V43Fpb0PhcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3R/5Aeff+QHlj/kB0G/5AeAP+PHQD/kB0A/5AdAF1czABcXM0AXFzNAP+4AADoiDUA+IwiALd5 + awDmiDgA/pAeE/+QHsX/kB7//5Ae//+QHv//kB7//5Ae//+RHP+xd3L/W1zP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczbL7kB0B/5AeAP+QHgD/kB4A/40iAP6QHQD/jx0A/pEeAP6QHQD/kB4A/5AeAP6Q + HwD/kxcArXV1DNKCTT76jiSk/5Ae+v+QHv//kB7//5Ae//+QHv//kB7//5Ec/7J3cf9bXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM37XFzNcP6QHgD+kB0A/pAdAP+OGwD/kB4A/5AdAP+QHgD/kB4A/I8bAf+Q + HhD/kB4r/5AeT/2PIHzzjCq7940m7/6QH///kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/pHOA/1pb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcdbW8we/48cAP+QHgD/kB4A/5AeAP+QHgD/jx0C/5AdJP+Q + Hl3/kB6X/5Aexv+QHub/kB75/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//eN + J/+GaaD/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3hXFzNRlxczQD/jx0A/5AeAP+QHgD+kB0D/5AePP+Q + Hpj/kB7d/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/0YFP/2Vfw/9bXM7/XFzN/1xczf9cXM3/XFzNx1xczUNdXdEAW1vMAP+QHgD/kB4A/5AeFP+Q + Hof/kB7r/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/+uKM/+EaaL/WlvP/1xczf9cXM32XFzNy1xczXVcXM0bXFzNAFxczABcXMwA/5AdAP+Q + HRH/kB6i/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//6QH//ihz7/jGuZ91xczeJcXM2+XFzNiVxczUtbW80WXV3NAFxczQBgYOsAXFzNAFtb + ywD8jRYB/5Aeev+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHv7+kB/i5Ic7q5BslXdYWtFLW1zOJlxczQxfX88AXFzNAFtbzQBbW80AXFzNAFpa + ygBbW8wAWlrMAP+QHif/kB7Z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+R + G///kB3/+Y4l/+mJNv/piTbK/Y8gbvyPISmccIcF2YRHAF1cywBcXM0AXFzNAFtbzABbW80AX1/KAFxc + zgBcXMwAXFzNAFtbzABaWswA/5AeYv+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf//KM + LP/ehUH/w31e/6Z0ff+Iap3/c2O153BitzW+e2MA+48iAMt/VQAAI/8AWVrOAFtbzABbW80AW1vMAExM + 1gBcXM0AW1vNAFxczQBbW8wRW1vMIVpazAH/kB6P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/e6L + MOSkc3/6fGar/2hgwP9eXcv/WlvP/1pbz/9aW8/ZWVvQG1xczABqYLwAfWapAP2PHwD/jx4A/48dANuE + RQBcXMsAXFzNAFxczQBaWs0CXFzNOVxczbRcXM2jWlrLBv+QHp//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRzTs3hvTllb0N5aW8//W1zO/1xczf9cXM3/XFzN/1xczfhcXM1yW1vNBlxczQBiXsYA0oFOAP2P + Hwb/nQAGZV/DAFxczQBcXM0LXFzNOlxczZNcXM3nXFzN/1xczbJaWssG/5Aelf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHqqRbZMHXFzNmVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM2lWFrRWlda + 0TbTgkw7/5AdntqERX9WWtNIXFzNelxczbhcXM3tXFzN/1xczf9cXM3/XFzNsVpaywb/kB5o/5Ae+v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae1v+TEydKVuApWlvP1ltczv9cXM3/XFzN/1tczv9aW8//WlvQ/11c + zP9zY7T7r3Z07vKMLO7/kRz/rnZ0+Fpbz/dcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2xWlrLBv+Q + HSn/kB7Y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Aexf+RG1mPbJZwaGDA6WJexv9jXsb/aGDA/3Vk + sv+RbZP/vXtl/+iJNv/+kB///5Ad//+RHP+rdXj/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zbFaWssG/2wAAP+QHnX/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+QHuDliDnu1IJM/9WC + S//fhkD/7oox//uPIv//kRz//5Ad//+QHv//kB7//5Ec/6t1eP9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNrlpaywb/kB0A/pAdD/+QHp7/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP//kRv//5Eb//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kRz/q3V4/1pbz/9cXM3/XFzN/1xc + zf5cXM3vXFzNz1xczZRcXM09WlrLAf6QHgD+kB4A/pAdE/+QHoz/kB7w/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHP+0eG7oWVvQx1xc + za9cXM2PXFzNaFxczTlcXM0WWlrJAVxczQBbW8wA/48dAP6QHQD/kB0A/5AdBf+QHkr/kB62/5Ae8f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7n/5AeteeI + N0tFVOUPW1vNBl9f0ABcXM0AXFzNAFxczQBbW8wAXFzNAFZWwgD/jxsA/4snAP+QHQD/kB0A/5AeAP+Q + HQ7/kB5B/5AeiP+QHrv/kB7b/5Ae6v+QHvH/kB71/5Ae8/+QHu7/kB7m/5Ae0/+QHrn/kB6R/5AeXf+Q + Hi7+kB4KwHxhAF1cywBbW80AW1vMAFxczgBbW8wAVVW5AFtbywAAAAAAAAAAAAAAAAAAAAAA/pAfAP+P + HAD/kSAA/5AdAP+QHgD/kiIA/5AdDP+QHST/kB47/5AeR/+QHlD/kB5L/5AeQv+QHjP/kB4c/5AdC/+Z + TgD/kB4A/5AeAP6QHgD+jx8A/pAeAP+SGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA4AA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AA + AH8oAAAAMAAAAGAAAAABACAAAAAAAAAkAAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzNAFxczABaWssAXFzNAFxc + zQBcXM0AXFzNAF1dzQBZWcsDW1vMCFxczQ1bW8wRW1vMElxczRNbW8wRW1vNDVtbzQpbW8wGXl7SAFxc + zQBcXM0AW1vMAFtbzABZWcgAXV3NAF1dzQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWskAWlrHAFtbzABcXMwAXFzNAFxc + zQBcXM0AXFzMBFxczRhcXM03XFzNW1xczXpcXM2VXFzNp1xczbdcXM3CXFzNx1xczcpcXM3DXFzNtlxc + zaxcXM2gXFzNglxczV1cXM03W1vMHFtbywRcXM0AXFzMAFtbygBbW8sAWVnKAFtbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+NEwD/jx0A/pAdAP+QHACHap4AVlrSAFtb + zQBbXM4AXFzMCVxczSxcXM1jXFzNnFxczc1cXM3sXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfpcXM3tXFzN0VxczZRcXM1MXFzMFl1d0ABbW8wAXl7UAFpa + ygBcXMwAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP92AAD/jx0A/o8cAP+QHQD/kB0A/5AdAP+Q + HgDxiy0AAAD/Ak1X3CRWWtJmWVvQrlpb0OJaW8/7WlvP/1pbz/9aW8//WlvP/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zXFzNwlxc + zGBbW8wRXFzNAFtbzABcXMwAXFzNAAAAAAAAAAAA/48cAP+PHAD/kB4A/48dAP6QHQD/kB0A/5AeAP6Q + HAP/kB0R/5AdJf+QHjn/kRtQ34ZAebJ3cNerdXj7q3V4/6t1eP+lc37/nnGG/5hvjf+Na5n/eWWt/2th + vf9gXcn/W1zO/1pbz/9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2vW1vNQFpaywJcXM0AXFzNAFxczQAAAAAA/48fAP+QHQD/kB4A/5EfAP6Q + HQ7/kB0y/5AeY/+QHpn/kB7D/5Ae3f+QHu//kB72/pAf/P2PIP//kB3//5Ec//+RHP//kB7//Y8g//uP + Iv/4jiX/7osw/92FQv/Hflr/pnR9/3xmq/9iXsb/W1zP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN5FxczWdcXM0FXFzNAFxczQBaWswA/5EdAP6Q + HQ3/kB45/5Aee/+QHrr/kB7m/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kRz//pAf/+6LMP/Lf1b/lW6Q/2Zfwv9aW8//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze9cXM1vW1vNBVxc + zQBcXM0A/5AeVv+QHrL/kB7q/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz/+I4m/8yA + VP+FaaH/X13K/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3tW1vMWllZ0ABcXMwA/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHP/viy7/sHdy9mhgwNJbW87aXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN0ltbzCdcXM0A/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf++6KMKiYb4wzWFrRRVxczZJcXM3lXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczYdZWcwD/5Aer/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHfr/kRuP/6UACBxI + /wJcXM1IXFzN2Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdRbW80o/5Aer/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//uPIv/0jSn/74sv//OM + K/f+kB/n/5Ae7f+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB71/5AeZppwiABsY74AW1vNclxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfZcXM1h/5Aer/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9P+QHtT/kRun04JNqZNu + kv2FaaH/hGmizqVzfmH7jiIv/5AdPP6QHlH/kB5x/5Aeq/+QHuj/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae0v+QHiWXb44AXFzNP1xczfBcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf5cXM2U/5Aer/+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHtf/kB6U/5AeTP+Q + Hh7/6AACWVvQQ1lb0N1ZW9GcUFjaJf+YCADzjCsA/5AdAP+QHgD/kB4A/pAcCP+QHT//kB66/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHnZyY7YAXFzNS1xczfVcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM20/5Aer/+QHv//kB7//5Ae//+QHvv/kB7L/5Aebv+Q + HiL/jx4D/5AeAP+QHgCYb4wAW1zODlxczSxcXMwLW1vNAFFX1gCecIUA/5AcAP6QHQD+jx0A/pAdAP+Q + HQD/kB4s/5Ae1f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHb2kc4AkW1zOplxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2//5AesP+QHv//kB7//5Ae3/+Q + Hnf/kB0c/5EgAP+QHgD/kB4A/5AeAP+UDQBcXM0AXFzNAFxczQBcXM0AXFzMAFxczQBaWssAAAAAAP+P + GwD/jx0A/48eAP+PHgD+jhsB/5Ael/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//iO + Je2CaKTDWlvP+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM24/5AesP+Q + Hvv/kB6v/5AeNvuPHwH/kB0A/48dAP+QHQD/hiMA/48fAFxczQBcXM0AXFzNAFxczQBbW8wAW1vMAFtb + ywAAAAAAAAAAAAAAAABYWs4AwXtgAP+QGwD/kCAA/5Aejf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//iOJf+Ka5z/WlvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM2m/5AeU/+QHmL+kB4U/5AeAP6QHgD/kB4A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxoA/7IAAJlwjQD/lwAAg2ihAOSHOgD/kB4Y/5Aewv+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//yPIf+TbpH/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczftcXM15/5AeAP+QHgD+kB4A/5EeAP+PHwD+kB4A/48fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PIAD+jx0A/48eAP+QHgD/jxwA/5EZAOKGPQD3jSYALUz8BdiDRzH9jyCh/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yPIf+UbpH/WlvP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczelbW81B/pAeAP6QHQD7lCsA/4YBAP6QHgAAAAAAAAAAAAAA + AAD/jxsA/48cAP+PHAD/kB0A/pAeAP+PHQD/kB0A/5AeAP+QHgD/kSAA/5IVBN+FPxzOgFJT2oRFn/KM + K+L/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//qOI/+La5v/WVvQ/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcza9bW8wPAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48dAP+PHAD/jx0A/o8cAP6QHQD/kB4A/5AeAP6PGwH/kB0R/5AeKf+QHk3/kB53/5AeovqO + I9H4jiX2/Y8g//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//GL + Lf9+Z6n/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczUdcXM0AAAAAAAAA + AAAAAAAAAAAAAP+PHAD/jh0A/5AdAP+QHQD/kB4A/5EgAP6QHQ3/kB4v/5AeYP+QHpT/kB7B/5Ae4/+Q + HvX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/9yFRP9pYL//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNfVtb + zQVbW80AAAAAAAAAAAD/jx4A/Y8dAP6QHQD+kB4A/5AeAP6PHAT/kB4p/5Aeb/+QHrj/kB7l/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad/7N4b/9dXMz/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfNcXM2DXFzMC1xczQBcXM0AAAAAAP+OHAD/jxwA/pEgAP+QHgD+jx4D/5AdNf+QHpT/kB7e/5Ae/f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/6Yk1/3pmrP9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN11xczWBbW8wIXFzMAFxczQBZWcgA/48bAP+PGwD/ihIA/5AeAP+QHhX/kB58/5Ae4/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/6jiT/onKC/1xczP9cXM3/XFzN/1xc + zf9cXM3/XFzN/Vxczd5cXM2KXFzNKl5e0wBcXMwAXFzMAFVVwABbW8sA/44lAP6RIAD/kB4A/5AdI/+Q + Hq7/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//qOI/+wd3L/Y17G/1tc + zv9cXM3/XFzN/FxczeZcXM27XFzNcFxczSpaWs4DXFzNAFtbzABcXMwAW1vMAFpayQAAAAAA/pAcAP+Q + HQD/kB0a/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy/6Rz + f/9jXsX6W1zO6FxczchcXM2eXFzNaVxczTJbW80OXl7MAFxczQBbW80AW1vNAFxczQBcXM0AAAAAAAAA + AAAAAAAA/5AdAP+QHAb/kB6M/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yP + IfbehULZlm6Os15dy4RaW89bXFzMM1xczRVcXMwDXV3NAFxczQBbW80AWlrOAFtbzQBaWtAAWlrOAFdX + zwAAAAAAAAAAAAAAAAAAAAAA/5AeAP+QHT//kB7q/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//5Ad//6Q + H/z+kB7g/pAfofKMK1SWbo4iL037Cv+THgBbW84AXFzNAFxczQBcXM0AWlrMAFxczQBZWc0AWlrNAFdX + zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ZAeA/+QHpL/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP//kRz//pAf//SM + Kv/ihz3/1oNK1PGLLWz+kB4r+Y4kBvOMKwCdcIYAWVvOAFpbzwBWVswAXFzMAE9PowBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXM4AW1vLAFtbywBaWsoAW1vMAFpazABaWswA/5AdGf+QHsz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+QHf/5jiT/64oz/9eD + Sf++e2P/n3GF/4JopP9uYrnwZl/CTtqERQD3jiUA/I4iAO2MMwC5eWgAQlPkAFpazABaWskAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlZxwBYWMsAXFzNAFtbzQBfX9QAWlrLBFpazAFZWcwA/5AeQP+Q + Hun/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yPIf/riTT/y39W/6p1 + ef+PbJb/dmSx/2Zfwv9eXcv/WlvP/1pbz/9bW87PWVvQGFxczACgcoMA/5EaAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWskAWFjMAFxczQBbW80AXFzNAFtbzQlcXM1fXFzNkltb + zB5bW8wA/5AeWf+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8h3K52 + dON3ZLD/Yl7H/1tcz/9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3XW1vNH1xczQBcXM0AW1vNAF5e + zgD/jx0A/48eAP+PHgD/jx4A/48dAP6PHQDghj4AXV3MAFxczABcXM0AW1vMAFxczQBYWM4BXFzNL1xc + zZlcXM3zXFzN7ltbzDBbW8wA/5Aeaf+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7e+I4lQlpbz5RaW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNb1lZ + zwFcXM0AW1vNAGJiywBaW84A4IY+AP+QHQD/kB4A/5AdAP+jAABDVOYAXFzNAFxczQBcXM0AW1vLBFtb + zStcXM2BXFzN21xczf9cXM3/XFzN61tbzDBbW8wA/5Aeaf+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB6XACf/AFtbzlVcXM31XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN51xczXJcXM0aUlLKAFxczQBeXcoAvXtkAP+QHAX/kB49/5EaOQAr/wBjXsUAXFzMBFxc + zRpcXM1NXFzNmVxczd1cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AeVv+QHvT/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB6GtHhvAFxczRRcXM28XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflcXM3KXFzNillb0FlWWtM/qnV4Of2PIIL/kB3q7YowwGdf + wVJbXM1sXFzNnlxczc9cXM30XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AdM/+Q + HuH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB68/5AdE7l6aQBcXM1OXFzN7Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM//W1zO/2lgv/mbcInu5Ic67P+Q + Hvz/kRv/z4FR+2BdyfZcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61tb + zDBbW8wA/5AdEf+QHrn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB74/5Aeif+R + GBQAJf8DWFrQeltczvZbXM7/XFzN/1xczf9cXM3/W1zO/1tczv9aW8//WlvP/2Bdyf90ZLP/oHKE/9WD + Sv/5jiX//5Ad//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61tbzDBbW8wA/5EgAP+QHmj/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae+f+QHrv/kRtl2YNGPHJjtZlkXsT3YF3J/15dy/9gXcn/ZV/D/2xhu/9+Z6j/m3CJ/8N9 + Xv/oiTf//Y8g//+RHP//kB7//5Ae//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AdAP+QHRj/kB69/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB77/5Ad5PiOJdLWg0ryyH5Z/8R9Xv/Ifln/04JN/+OH + PP/xjC3//Y8g//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7VtbzDBbW8wA/48cAP+QHgD/kB5F/5Ae4/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz//5Eb//+R + G///kRv//5Ec//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/zIBU/2Bd + yf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNxltbzCNbW8wA/5AdAP6Q + HAD+jhoC/5AdYP+QHuf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM3uXFzN0FxczZ1cXM1XXFzNH1xc + zgJcXM0A/48fAP6QHAD+jx0A/44bA/+QHVX/kB7Y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRv/zYBT/mBdyfpcXM32XFzN61xczddcXM2/XFzNnlxczW5cXM09XFzNGltb + zAVcXM0AXFzNAFtbzQBcXM0AAAAAAP+PHAD/jx0A/5AdAP+RGQD/kB4z/5Aeov+QHvH/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/5og4yWRfxGJbW85PXFzNNFxczSBbW8wPWlrMA1xc + zgBcXM0AXFzNAFtbzABSUroAXFzNAGFhzABWVtAAAAAAAAAAAAD/jxwA/5AeAP+QHgD/kB4A/pAdC/+Q + HVP/kB66/5Ae7/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae8f+QHsr/kB6K/5EaNixN/wBhXsgAXFzNAFxc + zQBbW8wAW1vMAFtbywBcXMwAW1vKAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/5AfAP+P + HwD+kBsA/pAdAP+QHgD/kB0R/5AeRP+QHov/kB7N/5Ae7P+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf/kB7s/5Ae0/+QHqj/kB50/5AeRP6QHRn7jh8B/5AdAP+V + CwCrdXYAW1vNAFtbzQBbW8wAWlrOAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGwD+kBwA/5AeAP+PHgD/kB0A/5AeAP6PHAL/kB0a/5AeN/+QHl7/kB6F/5Aeof+Q + Hq3/kB65/5Aexf+QHsX/kB67/5AesP+QHqf/kB6R/5Aecv+QHlT/kB41/5AeHP+QHQb/kB8A/5AeAP6Q + HQD+kB4A/5AeAP6QHgD/kB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/ZIfAP+QHQD/kB0A/5AeAP+Q + HgD/licA/o8dBv6QHgr+kB0O/pAdEf6QHRH+kB0O/pAeC/6QHgj/jRoC/5AeAP+QHgD/kB4A/5AeAP+Q + HQD/kB0A/5AeAP+PGwD/jxwA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//wAAAA/AAD/4AAAAA8AAPwAAAAAAwAA4AAAAAADAAAAAAAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAHAAAAAAAAD/gAAAAAAAAfgAAAAAAAAHAAAAAAAAAPgA + AAAAAAAA8AAAAAAAAADAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABwAAAAAAAAAP + AAAAAAAAAH8AAAAAAAAPgAAAAAAAAH8AAAAAAAAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAAAAAAAAAMAAAAAADwAAwAAAAAB/AADwAAAAD/8AAP4AAAA//wAAKAAAAEAAAACAAAAAAQAgAAAA + AAAAQAAAEwsAABMLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8wAW1vLAFxc + zQBcXM0AW1vMAFtbywBbW80AXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFxczQBcXM0AXFzNAFtbzQBcXMwAXV3NAFxczABcXM0AXFzNAIaG6gBfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW80AW1vNAFxc + zABcXM0AW1vMAFtbywBcXM0AXFzNAFxczQBYWMgCW1vMDlxczRlbW80oW1vNQFxczE9cXM1fXFzNbVtb + zHZbW8x5XFzNflxczXxcXM1zXFzNZ1tbzV1cXM1VXFzMSFtbzC1cXM0YW1vMCltbzQBcXM0AXFzNAFxc + zQBERL0AXFzNAFtbywBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtb + zABaWsoAW1vMAFtbzQBcXMwAXFzNAFxczQBZWckCXFzNElxczTFcXM1fXFzNilxcza1cXM3MXFzN4Fxc + zetcXM3wXFzN9lxczftcXM3/XFzN/1xczf9cXM3/XFzN/lxczflcXM32XFzN8lxcze5cXM3gXFzNxlxc + zaNcXM19XFzNV1xczCdcXMwGW1vNAFxczABbW8sAXFzMAFtbzABbW8wAW1vMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyAA/48dAP+QGwB6ZaoAWFrMAFtbzABcXM0AW1vMBFxczRxcXM1KXFzNhlxczblcXM3jXFzN9lxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM3UXFzNlVxczVJcXMwbWlrIAltbzABbW8wAW1vMAFVV + yABfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + HAD+kB0A/5AeAP+QHgD/kB4A/48gAP+PHQD/kBsA34ZAAAAL/wFNV9sXV1rSTVlb0I9aW8/NW1zP71tc + zv9bXM7/W1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3xXFzNxVtb + zGtbW8waXV3OAFtbzQBRUcUAXl7PAFtbzABaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAeAP6Q + HgD/jx0A/pAdAP+PHQD/jxwA/pAdAP+QHgD/kB4A/5AeAP+QHgD/jhwE/5MTC8V+XBt9Zql0c2Ozv3Bi + t+9wYrj/cGO3/29iuP9sYbv/amC+/2hgwf9lX8P/YV3I/1tczv9aW8//WlzP/1tczv9cXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM32XFzNvVxczFBbW8wLWlrLAFpazABaWswAW1vNAFxczQAAAAAAAAAAAP6Q + HgD+kB4A/48dAP+QHgD+kB4A/48dAP6QHQD/kB4A/5EgAP6QHQz/kB0e/5AdPf+QHl7/kB56/5AelP+Q + Haj5jiS94IY/9uCGPv/liDn/6Ik2/+qJNf/miDj/3oZA/9iESP/Sgk7/zIBV/798Yv+odHv/lG6R/3tm + q/9sYbz/Yl7H/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3qXFzNmltbzCleXs4AW1vNAFxc + zQBcXM0AXFzNAAAAAAD/kB0A/pAeAP+PHQD/kB4A/5AeAP6PHAP+kB0Z/5AdQf+QHnT/kB6o/5Ae0v+Q + Hur/kB72/5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ac//+QHP//kBz//5Ac//+QHP//kRz//5Ec//+R + HP//kRz//pAf//eOJv/uijH/3YVC/8F8Yf+VbpD/cGK3/19dyv9aXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM2+XFzNOltbzQBcXM0AXFzNAFxczABbW8sA/5AdAP+QHgD+jxwE/5AeHP+QHlD/kB6O/5Aexv+Q + Huv/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/944m/+CGP/+3eWv/h2qf/2Je + x/9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczctcXM08WlrLAFxczABbW8sAW1vLAP+QHhD/kB4//5Aeh/+Q + Hsv/kB7x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kBz//5Ad/+6LMP+7emf/fWep/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNyFtbzDFdXc4AWlrKAFpa + yQD/kB50/5Ae6P+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae/+WIOv+mdH3/bWG7/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXMytXFzMF1tbzABbW80A/5Aekf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i/9CB + T/qCaKTTW1zOxFxczdxcXM3wXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN9ltbzG5YWMgCWlrLAP+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3+940n09KCTlNYW9EjW1vNTVxczYxcXM3YXFzN/Vxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3QW1vMKVxczQD/kB6Q/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3J/5IXN41smABYW9EEXFzMMFxc + zZ1cXM32XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+1tb + zXNRUc4B/5AekP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hr3+kB0m3YVBAFtbzQBbW80WW1vNpFxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM27W1vNF/+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//mOJP/0jSn/8Isu/+6LMP/4jibv/5Ae5v+Q + Huz/kB70/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Aekv+QHgr6jiIAXF3NAFtbzUBcXM3pXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN5FxczT3/kB6Q/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHuf/kB3L8Istsq52dPGZb4z/i2ua/4Rp + ovSObJeqw31fTP+RGjX/kB1F/pAeWf6QHXL/kB6T/5AeyP+QHvH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHuj/kB5L/5EfAGBdyABbW80bXFzNzlxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM1p/5AekP+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7g/5AeqP+QHnD/kB44/5UMF4Fo + pStbXM/iWlvP/1pbz9tYWtFqRFPmEeuKNAD9jyAA/5AeAP+QHgD/kB4A/o8cBP6QHRr/kB1W/5Aet/+Q + Hvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Aeqf+Q + HQ6Yb4wAXFzNGVxczcxcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzNjP+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae8f+QHr3/kB51/5AdM/6Q + HQv/kSAA/5AeALJ4cABWWtMWXFzNn1xczaBcXM09VlbQAVtbzgAAFv8AwXtgAP+QHgD/kB4A/3o9AP+P + HQD+kB0A/5EfAP+QHRr/kB6V/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuX/kB4+oXKCAFxczTtcXM3nXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczZ7/kB6Q/5Ae//+QHv//kB7//5Ae//+QHv//kB7y/5Aetv+Q + HVr/kB0X/5EbAP+QHgD+kB0A/44aAPqOIQBYW9EAXFzNAlxczQ9cXMwKXV3PAFpazQBcXM0ApqawAFdX + zwCPapQA/48fAP+MIwD/jx0A/48cAP+PHQD+kB0A/5AeIP+QHsP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7+/5AcelxczRpcXM2oXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2n/5AekP+QHv//kB7//5Ae//+Q + Hv3/kB7H/5AeXP+QHRX/kR8A/5AdAP+QHgD/kB4A/pAdAP+PGgCObJYAXFzNAFxczQBcXM0AXFzNAFtb + ygBbW8sAXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx4A/48eAP6dHgD/kB6B/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/+eIOMdnX8G0W1zO+Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNnv+Q + HpD/kB7//5Ae//+QHun/kB6I/pAeI/+QHQD+kB0A/48dAP+PHQD/kB4A/5AeAP+QHgAAAAAAXFzNAFxc + zQBcXM0AXFzNAFxczQBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+P + HQD/kB4A/5Adaf+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP/fhkD+bWG7/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczY3/kB6J/5Ae8/+QHsj/kB5R/48eB/+QHgD+kB4A/pAeAP+PHQD/jx0A/48dAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADNgFMAxX1cANmDRgD/jx0A/pIeAP+QHnv/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/64oz/3Vksv9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflbW814/pAeMf6QHlP/kB0m/5AdAP+QHgD/kB4A/pAeAP6Q + HgD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzMAFtczQA7Uu8AlW6PAMZ+WgCUbo8A8YstAP+QHh//kB7C/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/+6LMP97Zqz/WlzP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3oW1vMR/+QHgD/kB4A/5AeAP6Q + HgD+kB4A/5AeAP+QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PGwD/jxoA/48dAP+QHQCccYcAL078AJVujwDQgVAAGUb/A+uKMyv9jx+i/5Ae/P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/viy//fWaq/1pc + z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNyltb + zB7/kB4A/5AeAP+QHgD+kB4A/pAeAP6QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/5AeAP+QHgD/jx0A/5AdAP+QHgD/jxwA/48aAP+PHQD+kB0A940mAP+xAAB/Z6cQp3R7PM2A + Uon1jSnW/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/64oz/3NjtP9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tbzYtZWcwFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/5AeAP+QHgD/jxwA/5AdAP+QHgD/kB4A/48dAP+QHQD/kB4A/5AeAP+RIAD/jxwI/5AcFfeN + JjLfhj9t3oVCs+uJNOj4jiX//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ac/+WIOf9vYrn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczd9bW8w2W1vNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHQD/jx0A/48eAP6QHQD/kB4A/48cAP+QHQD/kB4A/5AeAP+PGwP/kB0T/5AeKP+Q + Hkz/kB50/5Aenf+QHsH+kB/k+48i+v6QH///kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/QgVD/Z1/B/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfpcXM1/W1vLBFtbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHQD/jx0A/48dAP+PHgD+kB0A/5AeAP+PGgL/kB0T/5AeM/+Q + HmL/kB6O/5AevP+QHt//kB7v/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/sXdx/11c + zP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2xW1vMGltb + zABbW8wAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB0A/pAdAP6QHgD+kB0A/48dAP+QHQD/lR8A/5AdFf6Q + HUj/kB6H/5Aeu/+QHuP/kB73/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/9o0n/5Bslf9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM23XFzMKVxczgBaWsoAWlrJAAAAAAAAAAAAAAAAAP+PHwD/jx8A/4wjAP6QHQD+kB4A/5AdAP6P + HAX/kB0v/5Aec/+QHr3/kB7t/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/9WDSv9rYb3/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2pXFzMKFxczgBbW8oAW1vLAFtbywAAAAAAAAAAAP+PHQD/jx4A/48fAP+O + IQD+kB0A/o8eA/+QHTD/kB6L/5Ae2/+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aNJ/+Xb43/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeFcXM15XFzNFF1dzwBaWskAW1vLAFtbywBbW8sAAAAAAP+P + GwD/jxwA/48dAP+PHgD/kB0A/pAeE/+QHnL/kB7a/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/AfGH/ZV/D/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN6FxczZtcXM08W1vLBVxczABXV8QAWlrJAFtb + ygBbW8sAAAAAAP+PHwD/jxwA/48bAP+PHAD/kh8A/5AdLf+QHqr/kB72/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/RgU//dGSz/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfdcXM3RXFzNkFxczUJbW80KXFzNAFtb + zABbW8wAVVW+AFpayQBaWskAAAAAAAAAAAD/jx8A/48fAP+OGwD/kB8A/5AdMv+QHsH/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//6QH//QgVD/dmSx/1tczv9cXM3/XFzN/1xczf9cXM3wXFzN0FxczZ1cXM1iW1vNJFlZ + zARcXM0AXFzNAFxczQBbW8wAW1vMAFtbzAAAAAAAAAAAAAAAAAAAAAAA/5EcAP+SGwD/kB0A/5AdJf+Q + Hrn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//SMKv+3eWv/cWO2/1tczvtcXM3sXFzN0lxczahcXM19W1vNTltb + zR5bW80IXV3MAFtbzQBaWswAW1vNAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HQD/kB4A/5AdDf+QHpr/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/+o8j/+GGPvKgcoTfZl/Culpbz5JbW81tXFzMQ1xc + zR5cXM0MWVnNAFxczQBcXM0AW1vNAFJS0gBaWs4AWlrMAFtbzQBbW80AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx0A/5EfAP+QHVf/kB7w/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7z/I8hyuOHPIWSbZJTWFvPK1NZ + 1hJeXcoEW1vNAFxczQBcXM0AXFzNAF1dzQBcXM0AXFzNAFtbzQBUVNEAV1fPAFdXzwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHRP/kB64/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB7//I8i+f6QH9v+kB+g/I8hVfaN + JxzIfVUBwXxgAGZfwgBaW84AXFzMAG5u3QBdXc0AXFzNAFxczQBdXc0AXFzMAFxczAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHgD+kB5F/5Ae7P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/+Y4k/+6LMP/ahEb/xn5b39mE + R3P5jiMo/ZAfCf2QHwD2jScA6okzAOCGPgBmX8IAWlvOAFxczABkZNQAX1/PAF9fzwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAXFzNAFxczQBbW8wAXFzNAFxc + zQD+kiAA/5Aefv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+RHP/9jyD/84wq/+iJNv/Sgk//tXht/5hv + jP99Zqn/a2G89mJdxWwAAP8B5Ic6APyPIAD/kBoA+o4kAOqJMwDliDgA44c6AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAW1vMAFxc + zQBcXM0AW1vMAFxczQBcXM0A/pAdDv+QHqn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP/6jiP/7Yox/9uERf/BfGH/pHOA/4lq + nf9zY7T/Z2DB/11cy/9aW8//WlzP/1tcztRaW88iW1zPAHRkswD/kBwA/5AbAP+PHwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW80AW1vNAFxc + zgBbW8wAW1vMAF1dzgBbW8whW1vMSFtbzCJbW8wAW1vMAP+QHiL/kB7U/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8i/+aIOP/BfGD/nHCI/3pm + rf9rYb3/YV7I/1tcz/9aW8//W1zO/1tczv9cXM3/XFzN/1xczf9cXM3AW1vNFFtbzQBbW80AXFzNAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtb + zQBbW80AWlrLAFtbzQBcXM4AXFzNAFpazAVbW81HXFzNwFxcze9bW8xxXFzNAFxczQD/kB4s/5Ae4P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac4Mh+ + WcB5Za75YV7H/1pbz/9aXM//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN11tb + zSVcXM0AXFzNAFhYygBfX88AX1/PAAAAAAAAAAAA/48fAP+PHwD/jyAA/48dAP+PHQD/jx0A/48dAP+P + HQBcXMwAXFzMAFxczABcXM0AW1vNAFpaywBbW80AXV3CAFtbzCdcXM2HXFzN4lxczf9cXM3/W1vMelxc + zQBcXM0A/5AdPP+QHuT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae5/+RGFVjXsVHWlvP6lxczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXMxxW1vJAltbzABRUcUAXFzNAFhYzgBaWswAxX1cAP+QHgD/jx8A/48gAP+P + HQD/jx0A/48dAP+PHABZW88AXFzNAFxczABcXMwAXFzNAFxczQBXV8cCW1vNI1xczXFcXM3NXFzN/Vxc + zf9cXM3/XFzN/1tbzHpcXM0AXFzNAP+QHUL/kB7m/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHpr/ngAGVFnUGlxczclcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3lxczVdaWswIW1vMAFtbzQBYWM4AWlrNAF1c + ywDsijIA/5AeAP+QHQD/jx0H/48dCv+PHgH/mgAAXFzMAFxczQBcXM0AXFzOAFxczQxcXM02XFzNflxc + zc1cXM36XFzN/1xczf9cXM3/XFzN/1xczf9bW8x6XFzNAFxczQD/kB44/5Ae5P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvn/kB5m6ok0AFxbzARcXM2CXFzN/Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3nXFzNkFxc + zTpbW80RAAD/AFxczQBeXMsArXZ1AJpyewD/kB42/5Ael/+QHY//lwQRjWyYAFxcywNcXM0TXFzNMVxc + zWlcXM2qXFzN41xczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/5AeJv+Q + Htf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB75/5AeaP+R + HABdXMwAXFzNLVxczdVcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf1cXM3kXFzNtVtczYNaW89fV1rSSoprmj7yjCtq/5Ae0v+QHv/3jSbmimubbFhb + 0GxcXM2PXFzNvFxczeNcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zHpcXM0AXFzNAP+QHRP/kB61/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHp//kB4K1IJLAFxbygNcXMxxXFzN9lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aW8//Y17F9otrmu7Ugkzq/I8h9v+Q + Hv//kB3/6Ik3/XBit/VbXM77XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8x6XFzNAFxczQD/jhsD/5Aeh/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7p/pAeWfuNIQG2eGwAW1zOFVxczaVcXM3+XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/WlzP/1tczv9oYMD/i2ub/8N9 + Xv/wiy7//5Ae//+QHv//kB7//5Ac/+aIOP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/5AeAP+QHkz/kB7u/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt3/kB1s/48dGItt + mgBPV9gmWlvOuVtczv5bXM7/XFzN/1xczf9cXM3/XFzN/1tczv9bXM7/W1zO/1pbz/9bXM7/ZF7F/3pm + rf+icoL/0YFP//OMK///kB3//5Ad//+QHv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzHpcXM0AXFzNAP+Q + HQD/kB0T/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae9P+QHrv/kB10/5AbOpdui0ppYL6/Yl7G/V9dyv9cXMz/XVzM/19dyv9jXsX/aWC//3Fj + tv+Jap3/pnR9/8l/WP/qiTT//I8i//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kBz/5og4/29i + uP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8x6XFzNAFxczQD/jxsA/5EfAP+QHVD/kB7p/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHuj/kB3N6Yk0zMd+Wfe7emf/tHhu/7V4 + bf+7emf/x35a/9eDSf/miDj/84wq//6QIP//kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ac/+aIOP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/48cAP+QHQD/kB0L/5Aejv+QHvz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kRz//5Ec//+RHP//kRz//5Ec//+RHP//kRz//5Ac//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzHlcXM0AXFzNAP2SGAD8khcA/pAcAP6Q + HR//kB2z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/5og4/29iuP9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzN2FxczZ9cXM03XFzNAFxc + zQD/jx8A/48fAP+OGwD+kB8A/48dMP+QHbn/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac/+aI + OP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38XFzN7FxczdBcXM2jXFzNZVxc + zClbW80JXl7LAAYG9ABMTNMA/48fAP+PHAD/jxsA/48cAP2RHQD+kB0o/5Aeqv+QHvr/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xczfhcXM3vXFzN4lxczclcXM2jXFzNcVxc + zENcXM0dW1vMClxczgBcXM0AW1vNAFFR0gBXV88AV1fPAAAAAAD/jxsA/48cAP+PHQD/jx4A/pAdAP+Q + Hhn/kB6E/5Ae4/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy93VkscNaW8+yXFzNoFxczYRcXM1lW1vNS1xc + zC1bW8wYW1vMClxczgBcXM0AXFzNAFxczQBbW8oAW1vMAFtbzQBSUtEAV1fPAFdXzwAAAAAAAAAAAP+P + HQD/jx4A/48fAP+OIQD+kB0A/o8dB/6QHUH/kB2r/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+PyPIL27emUoSVbhDltb + ywl0dMoAXFzNAFxczQBcXM0AW1vMAFtbzABbW8oAW1vMAFxczQBcXM0AW1vKAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jCQA/pAdAP+PHQD+kR8A/pAcEf+QHVz/kB67/5Ae7P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvX/kB7b/5Aeo/6Q + HmH/kB0j/8cAAXRjswBbW8wAWFjNAFtbzABcXM0AXFzNAFtbzABbW8wAW1vKAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHQD/jxsA/44ZAP6Q + HQDCxQAA/5AdFf6QHUj/kB6M/5AezP+QHvL/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvT/kB7h/5Aeuf+Q + Hov/kB5c/5AdLP6QHgr/kB0A/5AeAP+RGwDpiTQAWFrPAFhYzQBaWswAW1vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxsA/48bAP+OGQD/kB4A/5AeAP+QHQD/kB4A/48cBP+QHR//kB1V/5Aee/+QHqL/kB7J/5Ae4/+Q + Hu7/kB7y/5Ae9/+QHvv/kB7//5Ae//+QHv7/kB76/5Ae9v+QHvP/kB7v/5Ae5v+QHtP/kB63/5AenP+Q + Hnr/kB5Y/5AdLv+QHhL/jxoC/5AeAP+QHgD+kB4A/44gAP+PHgD/kB0A/5AdAP+QHQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB4A/5AeAP+QHgD/kB4A/wD/AP+PHQD/kB0A/5AeAP+S + IAD/jxwK/5AdGP+QHTD/kB1J/pAeVP+QHmD/kB1r/pAddv+QHnr+kB1z/5Adav+QHl/+kB5X/5AeS/+Q + HTP/kB4d/5AeEf+PHAf/kSAA/5AeAP+QHgD/kB4A/48cAP+QHgD/kB4A/pAeAP+OIAD/jx8A/48fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+M + JAD/jx0A/5AdAP+PHAD/jxwA/48cAP+QHQD/kB4A/5AeAP+QHgD/kB4A/5AeAP+QHgD/kB4A/5AeAP+Q + HgD/kB4A/5AeAP+QHgD/kB4A/5AeAP+QHgD/jx0A/48aAP+PHAD/kB4A/5AeAP+PHAD/kB4A/5AeAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///gAAAAD////wAAAAAD///4AAAAAAD//4AAAAAAAD/wA + AAAAAAAH4AAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAB4AAAAAAABAPwAAAAAAAf/+AAAAAAAH//AAAAAAAB//AAAAAAAAP/AAAAAAAA//AAAAAA + AAD/gAAAAAAAAP4AAAAAAAAA+AAAAAAAAADgAAAAAAAAAMAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAwAA + AAAAAAAPAAAAAAAAAD8AAAAAAAAA/wAAAAAAAAP/AAAAAAAAP/8AAAAAAAP/AAAAAAAAf/4AAAAAAAH/ + +AAAAAAAD//gAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAAAAAAAAAMAAAAAAAAAH4AAAAAAAAH/4AAAAAAAf//wAAAAAAP///wAAAAAD////wAAAAD///ygA + AABIAAAAkAAAAAEAIAAAAAAAAFEAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzMAFxczQBiYtkAWlrMAFxczQBbW80AW1vNAFtb + zABcXMwAXFzNAFxczQBbW8wAW1vMAFtbzABcXM0AW1vMAFxczQBcXM0AW1vNAFxczQBcXM0AW1vMAFxc + zABcXM0AXFzMAFVVygBbW8wAW1vLAGJi1gBaWsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxc + zABcXMwAXFzMAFpaygBbW80AXFzMAFxczQBcXM0AZWXVAFtbzQNbW8wGW1vNEVtbzCNcXMwuXFzNOlxc + zUVbW8xNW1vMUVtbzFRcXM1XW1vMU1xczUxcXM1DW1vNPFxczTVcXM0uW1vMH1xczAtbW80DXl7VAFtb + zQBbW8wAW1vLAFtbzABZWcoAXFzNAGRk0gBfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFlZzwBcXMwAXFzNAFxczABcXMwAXFzMAFxc + zQBdXc4AXFzMB1xczSFcXM09XFzNY1xczYdcXM2mXFzNvVxczc1cXM3XXFzN4lxczexcXM3zXFzN9lxc + zflcXM37XFzN+VxczfJcXM3qXFzN41xczd1cXM3XXFzNyVxczaxcXM2MXFzNYlxczT5bW8wmW1vLDFxc + zgBbW8wAXFzNAGJi0QBdXc4AXV3NAF1dzQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzNAFpayABaWsoAWlrKAFtbzABcXMwAXFzNAFxczQBdXcoBXFzMFVtbzDlcXM1qXFzNn1xc + zcpcXM3qXFzN+Fxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3+XFzN+FxczetcXM3QXFzNoVxczVtcXM0jXV3NB1tb + zABbW8wAb2/bAFxczQBcXMwAXV3RAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx8A/48dAOSH + OwAAAP8AVVrTAFlbzwBeXMkDXFzMFVxczURcXM2BXFzNuFxczeZcXM33XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM3PXFzNkFtbzEhbW8sNWlrLAFxc + zABfX9UAW1vKAF5ezgBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48cAP+PHAD/jhsA/pAdAP+QHgD/jhoA/pAdAP6QHQD/kB4A/48dAPuOIgD/mgAAM072DVBY + 2DZWWtJ5WFvRvllb0OlZW9D+WlvQ/1pbz/9aW8//WlvP/1pcz/9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeVcXMyYW1vMPFtbzAVcXM4AXFzMAFxc + zQBVVc4AWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+OGgD+jx0A/ZIhAP+P + HAD/jxwA/5AdAP+QHgD/kR8A/5sxAP2QHAL/kB4G/48dFv+RGyLpiTUzl2+NmYprm96Iap37iWqd/4tr + mv+La5r/iGqe/4Noo/9+Z6j/emas/3dksP9xYrf/ZV/E/15dy/9cXM3/WlvP/1pbz/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN21xczHpbW8wi////AFtbzABaWswAWFjLAFxc + zQAAAAAAAAAAAAAAAAD/jxwA/48cAP+PHAD+kB4A/48dAP2VJwD+kB0A/pAdAP+QHgD+kiMA/pAdEf+Q + HSf/kB1H/5Aea/+QHY7/kB6n/5AevP+QHsv9kCDX8Isu+fCLLf/1jSj/944m//qOJP/5jiT/9o0o//CL + Lv/rijT/5og4/+KHPf/chUT/y4BV/7d5a/+gcoT/hWmg/3Vksv9oYMH/XFzN/1tczv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfhcXM3BW1vMTllZywRbW80AXFzNAFxczQBcXM0AAAAAAAAA + AAD/jyIA/48dAP+OGwD+kB4A/5AeAP+QHgD+jx0H/pAdH/+QHUn/kB58/5Aerv+QHtX/kB7w/5Ae+P+Q + Hv7/kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+Q + HP//kRz//5Ec//+QHv/6jyP/9Iwq/+WIOv/MgFX/o3KB/3plrf9kXsT/W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWRcXM0HXFzNAFxczQBaWswAWlrMAAAAAAD/kB4A/48eAP6R + HwD+kB0H/5AdI/+QHlv/kB6U/5AezP+QHuz/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHf//kRz/+o4j/+eJN//EfV3/l2+N/25iuv9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczedcXM1pXFzNB1tbzABaWswAXFzSAF9fzwD/kB4D/48eGv+QHU7/kB6W/5Ae0f+Q + HvP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3/940n/9CBUP+UbpH/Z1/B/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3nXFzNYllZywRbW8wAXV3OAF1dzQD/kB5P/5Aev/+QHu3/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHf/1jSn/wnxg/4Fopf9fXcn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2ltb + zEdUVMgAXV3NAFtbywD/kB6A/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//pAf/+eJN/+pdXn9aWC+8VtczvFcXM39XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbZbW8wcXFzNAGNj + 2wD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP/5jiT80oJOzYNoo3lZW9BzXFzNlFxczchcXM3vXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW8xxWlrLA1tbzAD/kB6A/5Ae/v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad+P+R + G57/lQ4bI0r/BVtbzB1cXM1TXFzNrVxczfJcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3LW1vMJlxczAD/kB6A/5Ae/v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvr/kB6e/5EZF55x + hgBWV84AXFzMFFxczXVcXM3pXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM32W1vNZlRUzwD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+Q + Hf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB72/5AdhP6PHAvsijEAWlrNAFtb + zgpbW82GXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNrFtbzRD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//uPIv/2jSf/8ows/++LL//viy/++o8j6/+Q + Hub/kB7s/5Ae8/+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae5/+QHk//kxkA/5cEAFxczQBbW80tXFzN2Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN1ltb + zS//kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB78/5Ae8P+QHdf4jiW7vXtl7KNzgf+Vbo//iWqd/4Zpn+uUbpCZ04JNRv+RGjn/jx1J/pAeXv6Q + HXb/kB6R/5Aeu/+QHuj/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHrX/kB4b/5AeAFpbzgBbW80PXFzNuFxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN6lxczVf/kB6A/5Ae/v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Ae4v+QHrb/kB6B/5AeRv+S + Fyewd3MmXVzMz1tczv9bXM79WlvPyFda0VY8Ue8M74wvAP2QIAD/kB4A/5AeAP+QHgD/jhwD/pAdF/6Q + HT7/kB2R/5Ae4P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHvT/kB5l+4UIAHZksQBcXM0NXFzNsVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+VxczXj/kB6A/5Ae/v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae7v+QHsL/kB5//pAdO/+QHRH/jx0B/5AeAMyAVQBMV94PXFzNtVxc + zeJcXM2bW1zNKnp2wQBcW8wA/48AAP+WAwD/jxwA/pAeAP6QHQD/jx0A/pAdAP6QHgD+jxwI/5AdSP+Q + Hsf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB6z/pAeFJtwiQBcXM0cXFzNy1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczY3/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Huv/kB6r/5AeVf+QHhr/jx0D/pAeAP+QHQD/kB4A/48bAFJZ2ABcXM0EXFzNMlxczThcXMwRW1vNAFlZ + zgBaWs4AZGTMAFVV0AAAAAAA/48hAP+PGwD/jx0A/pAdAP+OHAD/jx0A/JIXAP+QHkb/kB7e/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7n/5EbQf/d + AABcXM1qXFzN81xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/lxczZb/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7v/5Aeq/+QHVH+jx0S/pEeAP+Q + HgD/kB4A9p4mAP+PHAD9kSEAimqaAFxczQBcXM0AXFzNAFxczQBcXMwAX1/PAFtbzgBYWM8AV1fPAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48gAP2TBAD/kB0A/48dAP+PHQj/kB6T/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB788Yste11cy11cXM3dXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zZr/kB6A/5Ae/v+QHv//kB7//5Ae/f+QHsz/kB5j/pAdEv6RHgD+kB0A/44cAP+PHgD/kR0A/44gAP+P + HQD/jx0AXFzNAFxczQBcXM0AXFzNAFxczQBbW8sAW1vMAFtbywBcXM0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jiAA+5YQAP+QHQD/kB1k/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3+zYBT4mJexuxbXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczYf/kB6B/5Ae//+Q + Hv//kB7u/5AelP6QHSr9jSMA/5AdAP+OHQD/jx0A/48dAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx0A/5AdAP+QHQD/kB1b/5Ae9P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRz/1YNL/2dfwf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FtbzHv/kB51/5Ae6f+QHs7+kB5i/pAeDP6Q + HgD/jx4A/48eAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OoIASFXfAP/VAADyiysA/48dAP2V + HgD/kB52/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRz/4YY+/25iuv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN8FtbzWL+kB4k/pAeR/+QHSr+jx0D/5AeAPuUHwD/jx0A/48eAP+P + HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXyQBWWtIARlXkAOOHPACodHoA9o0nAP+QHSP/kB7D/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/5Ic7/3Jj + tf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN2FtbzDT+kB4A/5AeAP+QHgD+kB4A/pAeAP6QHQD9kRsAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HADxiysA8IosANWCSgBdXMoAkG2VALR3bgBBU+gD84wqKv2PH6P/kB78/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/5Yg6/3Rks/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNtltb + zBL+kB4A/pAeAP6QHQD/jxsA/48cAP6QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48hAP+PHgD/kB0A/5MlAP+PHAD/kRsA+Y0jANeD + RwD/6QAAaGC/CpZujTXPgFB/940n0P+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/4IY//2xhvP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38W1vNeFhYzAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+P + HQD/jx0A/pAdAP+QHgD/kQEA/48gAP+PHgD/kB0A/5AeAP+RHwD7jiUA+I0jCNSCSyfGfltcz4FRp+SH + Ot71jSj9/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRz/2oRF/2dgwf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3VW1vMLVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+PGgD+hwMA/48cAP+QHQD/jx0A/pAdAP+Q + HgD/kB4A/5AeAP+PHgb+kB0X/5AdLP+QHU7/kB50/pAeoPSMKtL2jSf1+48i//+QHv//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/y39W/2RfxP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfhcXM15W1vLA1tbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/ii8A/48dAP+PGwD+kB0A/5AdAP+QHgD+ixoB/pAdDf+QHR//kB5H/5Aecf+Q + HpX/kB66/5Ae3v+QHvD/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB//q3V4/15d + y/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zbRcXM0bW1vNAFlZzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+N + GAD/kB4A/48dAP6RHwD9kBwG/5AdH/+QHkX/kB52/5Aeqv+QHtL/kB7q/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSj/jmyY/1pbz/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNy1tbzDpbW8wAXV3NAF1d + zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jiEA/pAdAP6QHQD/kB4A/48dAP6QHgD/jh4B/48dF/+Q + HU3/kB6R/5Aeyv+QHun/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/dhUL/cmO1/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3LXFzMPlJStQBcXMwAXV3NAF5ezgAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD+lBoA/pAdAP6QHgD/kB4A/48dBf+QHTD/kB53/5AevP+QHu7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//yPIf+rdXj/XlzL/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+FxczbNcXMw6RkahAFtbywBbW8wAXFzNAF9fzwAAAAAAAAAAAAAAAAD/jxwA/48dAP+P + HgD+jx8A/pAdAP6PHgP/kB0u/5Adhv+QHtj/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/9yF + Q/90ZLP/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzNhlxc + zRxeXtEAW1vLAFtbywBbW8sAW1vLAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+PHQD/kB0A/5AeE/+Q + Hm3/kB7V/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/84wq/5Zvjv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczaNcXM1FW1vLCFxczQBaWskAW1vLAFpa + ygBbW8sAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx0A/48dAP6ZMAD/kB4w/5AepP+QHvP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/4jiX/sHdy/2Nexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+lxczdhcXM2gXFzNTVxczQ5bW80AW1vMAFpazQBcXMsAWlrKAFpayQAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PGwD/jxwA/50rAP+PHT3/kB7E/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//iOJf+yd3H/Zl/C/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN+Fxczd1cXM22XFzNc1tb + zTBbW8wJXV3MAFxczQBnZ8YAW1vMAFZWywBcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/5AdAP+P + GwD/kiUA/5AdMf+QHsX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy/6l1 + ev9mX8L/W1zO/1xczf9cXM33XFzN5VxczcxcXM2fXFzNY1tbzTVaWs0QWVnNAlxczABbW80AW1vOAF9f + zACDg70AXV3NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/o8aAP6QHAD/kB0f/5AetP+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//qPI//Wg0r/jWyY+mBdye9bXM7fXFzNvVxc + zZJcXM1mXFzNPVxczRpaWswLXl7OAFtbzQBbW80AW1vNAGJiyQBZWc0AWlrMAFpazAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+PGwf/kB6E/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/+kB/97Yox6797Ysh9ZqmkXFzNd1pczkxcXM0qW1vMGFtbywZcXM0AXFzNAFxc + zQBbW8wAWFjLAFtbzQBZWc4AWlrNAFZW0ABXV88AV1fPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxwA/pAeAP+QHT3/kB7g/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf8f6Q + H8j3jSaEzH9UP2FdxiA5UO8Jjm2YAFtczwBbW8wAW1vMAFtbywBYWMsAYWHKAFtbzABbW8wAWlrMAFpa + zABaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/kB4A/o8dBv+QHpX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB7/+Y4k+PyPINb9kB+h/Y8hVvuOIh3bhEEDxH1dAHFi + tABZWs0AWVvQAFxczABZWcsAW1vMAFtbywBeXs4AW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB4A/pAeKf+Q + HtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ec//+Q + Hv/3jSf/7Ioz/9aDSv++e2PkzIBVePKMLCj9kB4K+Y4lAPyPIQDviy4A/+gAAHZjsABWWc8AW1vNAFpa + yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWlrJAFpayQBaWsgAW1vLAFtbzABaWswAWlrMAFpazAD+kB4A/5AeVv+QHvf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/+o4j//SNKf/liDr/zYBU/7F3cf+Wbo//emas/2th + vfhiXcZ7ADf/BdOBTQD8jx8A/5AcAPyPIQDnijsA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZNIAWFjMAFtb + zABbW8sAW1vMAFtbzABaWswAWlrMAFpazAD+jxwE/5AegP+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//6Q + H//5jiX/6ok1/9aDSv+9e2X/oHKE/4ZpoP91ZLL/aGDB/1xczf9bXM7/W1zO/1tcztlaW88pWVvQAJlv + iwD/kRoA/pAfAP6QHgD7kxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrKAFtbzABbW8wAW1vPAFtbzQBaWskDW1vMH1tb + zCdaWswJWlrMAFpazAD+kB0Q/5AetP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//2PIP/uijD/1IJM/693c/+ObJf/fWaq/2th + vf9fXcr/XFzN/1pbz/9aW8//W1zO/1xczf9cXM3/XFzN/1xczbxbW80VW1vNAFtbzQBaWtEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFVV0ABeXswAWlrOAFtbzABbW8sAXFzNAFtbzQtcXM1iXFzNxVxczcVbW8wwW1vMAFtb + zAD/kB4Z/5Aey/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB388Isu67J4cPqEaaL/aGDA/15dy/9aW8//WlvP/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcZbW80aXFzNAFxcywBbW8oAV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8wAWlrIAFVV + xgBcXMwAWVnOAFxczQBaWscCW1vMLltbzZFcXM3rXFzN/1xczfBbW8w8W1vMAFtbzAD/kB4j/5Ae0P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvz/kRurr3ZyZV9dyd5aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczelbW81GXV3PAFhYywBbW84AW1vNAF9fzwAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + GwD/jx4A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAXFzMAFxczwBcXMwAAABzAFtbzABcXMwAT0/RAVxc + zR1cXM1wXFzN0VxczfxcXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/jx0x/5Ae1/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHsn/kRcqRVTkFVtc + zb1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf5cXMyrXFzNG1xcywBcXM0AWVnLAFpazQBWVs8AV1fPAKRxfgD/jx4A/48eAP+OHQD/jx4A/48dAP+P + HQD8jxsA/5ITAFxczABcXM0AXFzLAFxczABcXMwAXFzNAFtbywRbW8wjW1vNbVxczcRcXM32XFzN/1xc + zf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/jx0w/5Ae1/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHnr//wAARlThA1xczYhcXM39XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzNnVtb + zCteXs0CW1vMAFpazQBZWc4AXFzMAFpazQAAL/8A940nAP+QHgD/jx4N/48dIf+PHRMAMP8AhGihAFxc + zABcXM0AXFzNAFhYxwBcXMwTXFzNPlxczYZcXM3KXFzN91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze1bW8w7W1vMAFtbzAD/kB4m/5Ae0v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae8P+QHlX8jyAAWFvSAFxczT1cXM3fXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczctcXM10XFzNMVpa + zRD//4wAW1zOAF1dzACyeHAA/5IXAP+QHir/kB6Y/5AezP+QHHM4UPcAamC/AFxczAlcXM0fXFzNPlxc + zXdcXM21XFzN5Vxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtb + zAD/kB4W/5Aewf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8/6QHlv/kB0AWVvQAFxczApcXM2TXFzN/Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzN3Vxcza1cXM2FW1vOYlda + 0U+AZ6VC6Yk0Y/+QHsP/kB79/5Ad/96GQLpcXMxlW1zNfVxczZ9cXM3HXFzN61xczfpcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kB0K/5Aem/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HpH/kB4H/o8fAFpbzgBbW8wzXFzNz1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aW87/YV7H9IRpoe7MgFXq+o4j8/+Q + Hv//kB7//5Ec/7x7ZflcXM31XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/ihYB/5Adbv+QHvr/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt7+kB5I/5EbAM+A + UQBcXc4DXFzNY1xcze1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bXM//W1zO/2Rexf+DaKP/unpo/+qJNf/+kB///5Ae//+QHv//kB7//5Ec/7p6 + aP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kB4A/5AdO/+QHuP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7K/pAdS/+PHQnMgFMAPlHqCltb + zYNcXM30XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aXM//W1zO/19d + yv9xY7f/lW6Q/8V9Xf/sijL//5Ae//+QHf//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze1bW8w7W1vMAFtbzAD/kB0A/48dEP+QHqX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae4v+QHpD/kB0//5QQFGlfvRlYWtCJWlvO71tc + z/9bXM7/W1zO/1tczv9bXM7/W1zO/1pcz/9aW8//XFzN/2Zfwv9zY7T/j2yW/7d5av/chUP/+I4m//+Q + Hf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtb + zAD/jxwA/5EfAP+QHUv/kB7n/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7m/5Aeuf+QHIbmiDd2nXCGuoRpofp7Zqz/dGO0/3Nj + tP93ZbD/f2en/45sl/+dcYf/rnZ0/8l/V//kiDr/9o0o//+QHv//kRz//5Ad//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kBwA/5AcAP+P + HA3/kB2T/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB31/I8h7/CLLvzriTT/54g3/+eIOP/piTX/7Yoy//OM + K//6jiP//5Ad//+RHP//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze5bW8w7W1vMAFtbzAD/kR8A/4weAP6QHQD/kB4r/5Aexf+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ec//+RHP//kBz//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6 + Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczeZbW8w3W1vMAFtbzAD/jxoA/5AdAP6PHgD4cUYA/pAdSP+QHtj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfhcXM3ZXFzNpVxc + zV1cXM0QXFzNAFxczQAAAAAA/pAdAP6QHgD/jx0A/44bBP6QHVj/kB7X/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczetcXM3QXFzNpVxczGpcXMwvXFzMDGRkyQBcXM0AXFzNAFxc + zQAAAAAA/48fAP+PHwD/jx0A/48cAP+OGwP+kB1K/5AezP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/7p6aP9cXM3/XFzN/1xczf9cXM3/XFzN/lxczflcXM3zXFzN5lxc + zcpcXM2kXFzNc1xczEZcXM0fW1vNDV5e0wBcXMwAXFzNAFlZzgBdXc0AXV3MAFxczQAAAAAAAAAAAP+P + HQD/jx0A/48dAP+PHQD+jSEB/5AeNf+QHqv/kB71/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ac/8B8YfBcXM3YXFzN0FxczcJcXM2sXFzNjlxczXFcXMxTXFzNM1tbzCBbW8sLXV3OAFxc + zQBcXM0AXFzNAFtbywBbW8wAW1vLAFpazwBeXswAVFTQAAAAAAAAAAAAAAAAAAAAAAD/jx0A/pAhAP+P + HgD/jx4A/pAdAP+PHRj+kB5o/5AezP+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/+qJ + M6JcXMwvW1zNKFtbzBtaWs0JW1vNAk9PwgBeXs8AXFzNAFtbzABcXMwAW1vMAFtbywBcXM4AXFzNAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+QHgD/kB4A/48gAP+Q + HQD+jxwC/pAdLf+QHYX/kB7e/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHu//kB7I/5Aei/+RGTNoX8EAYF3IAFtb + zABaWs0AXFzNAFtbzABaWssAXFzOAFtbzABcXMwAWVnJAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx4A/4wkAP6QHAD+kB0A/pAdAP6P + HAf/kB48/5Aeg/+QHsX/kB7v/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae9v+QHub/kB7D/5Aekv6QHlP+kB4d/ZAeBf+RHAD//wAAbmK5AFtbzABYWM0AXFzKAFZW + 0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADnghwA/48ZAP+PGwD/jhkA/pAeAP6QHAD/kB4A/o8bBP6Q + HR7/kB1P/5AelP+QHs//kB7q/5Ae9/+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHvn/kB7z/5Ae3/+QHsD/kB6W/5AeZf+Q + HTf/kB4a/o8cB/+QHgD+kB4A/pAeAP2WFAD/jx8A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/4kVAP6QHAD+kB0A/48cAP6QHQD/kB4A/48dB/+Q + HSX/kB09/5AdYf+QHY7/kB6x/5AezP+QHtf/kB7e/5Ae5v+QHu3/kB70/5Ae+f+QHvT/kB7v/5Ae5/+Q + HuH/kB7c/5Ae0v+QHsH/kB6o/5Aeif+QHmz/kB1K/5AeMf+QHRv/jxsE/5AeAP+QHgD/kB4A/pAdAP+I + BwD/kBwA/pAeAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NFQD+kB0A/48cAP2RHgD/kB0A/48dAP+QHQD/kB4A/5QmAP6Q + HAT/kB0M/48dIf+QHi7+kB41/5AdP/6QHUb+kB1P/5AeVP6QHU7+kB1J/5AeQP6QHjn+kB40/5AdKf+P + HRb/kB4H/5AdA/+KFQD/kB8A/5AeAP+QHQD/jxwA/5AeAP+OGQD/kB4A/o8cAPWZOgD/jxsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PIQD/jxwA/48dAP+QHQD9lR8A/48cAP+QHQD/kB0A/48dAP+Q + HgD+kB4A/5AdAP+QHQD+kB0A/5AeAP6QHQD+kB0A/5AeAP6QHgD+kB4A/5AdAP+PHQD/kB4A/5AeAP+P + HQD/jhkA/5AdAP+QHQD/jxsA/48bAP+PGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD////AAAAAP/8AAAD///wAAAAAA/8AAAD//+AAAAAAAP8AAAD//wAAAAAAAD8A + AAD/+AAAAAAAAB8AAAD+AAAAAAAAAA8AAADgAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAB/AAAAAAAA + AAAAB///AAAAAAAAAAAAH//8AAAAAAAAAAAAf//4AAAAAAAAAAAB///AAAAAAAAAAAAD//AAAAAAAAAA + AAD//wAAAAAAAAAAAAD/8AAAAAAAAAAAAAD/wAAAAAAAAAAAAAD/AAAAAAAAAAAAAAD8AAAAAAAAAAAA + AADwAAAAAAAAAAAAAADgAAAAAAAAAAEAAADAAAAAAAAAAAMAAACAAAAAAAAAAAcAAACAAAAAAAAAAB8A + AAAAAAAAAAAAAH8AAAAAAAAAAAAAAf8AAAAAAAAAAAAAA/8AAAAAAAAAAAAAP/8AAAAAAAAAAAAH//8A + AAAAAAAAAAD//wAAAAAAAAAAAA///gAAAAAAAAAAAB//+AAAAAAAAAAAAP//4AAAAAAAAAAAAH//AAAA + AAAAAAAAADwGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAA + AADAAAAAAAAAAAEAAADgAAAAAAAAAA8AAADwAAAAAAAAAf8AAAD8AAAAAAAAf/8AAAD8AAAAAAAH//8A + AAD/gAAAAAAH//8AAAD/4AAAAAB///8AAAD//AAAAAf///8AAAAoAAAAUAAAAKAAAAABACAAAAAAAABk + AAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXM0AXFzNAE5OvABbW8wAXFzMAFhYzgBaWs0AW1vMAFxc + zABcXM0AXFzNAFtbzABbW8wAW1vMAFxczQBcXM0AW1vMAFxczQBcXM0AW1vNAFtbzQBcXM0AW1vMAFtb + ywBeXs4AW1vMAFtbygBbW8wAW1vMAFtbywBYWMYAWlrJAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8sAW1vRAFtbywBcXMwAXFzKAFxczQBcXM0AXFzNAFxc + zQBcXM0AXV3MAFlZzQZbW8wRXFzMGFtbzR9cXM0nW1vMLFtbzDBbW8wxXFzNM1xczTRbW8wyXFzNLVxc + zSdbW80iW1vNHlxczRpbW8wUW1vKB1pazABcXM0AXFzNAFtbzQBbW8wAW1vKAF5e0QBcXMwAWFjJAGFh + 0QBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAXFzNAFxczABcXMwAW1vMAFxc + zQBcXM4AXFzMBVxczQ5bW8wlW1vNQ1xczWFcXM15XFzNkFxczadcXM20XFzNwlxczdFcXM3cXFzN41xc + zeZcXM3qXFzN7FxczedcXM3dXFzN0lxczclcXM3BXFzNuVxczaxcXMyPXFzNblxczVJcXMwtXFzNFFtb + zApZWcQBXFzNAFxczABdXc0AaWnSAFtbywBYWMUAWlrIAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpayQBaWskAW1vKAFxczABcXMwAXFzNAFxc + zABbW80AXFzNAF9f0gBbW8sOXFzNKVxczU5cXM2CXFzNsFxczdNcXM3jXFzN8lxczf5cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM34XFzN61xczdhcXM3AXFzNm1xczGZcXM0uXFzNCVtbzABbW8wAW1vLAG9v+QBbW8oAXl7OAGVl + 1ABUVLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXM0AXFzMAFtb + ygBOTq8AWlrLAFxczABcXM0AW1vIAVtbzRNcXM01XFzNbVxczaZcXM3NXFzN8VxczfxcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9lxczdFcXM2ZXFzNWVxc + zSFbW8sGXFzOAFtbzABdXc0AWlrJAFpayABaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxsA/48dAP+Q + HQD+kB0A/5EeAP+OGwD/xgAAd2SuAF9dywCBc84AW1vMDltbzTlcXM1wXFzNslxczeJcXM31XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3vXFzNx1tbzHdbW8wiXFzMAlxczABZWcgAWlrJAF9fzwBcXMwAXFzMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+O + GgD/jx0A/5AdAP+OGAD/jx0A/pAdAP6QHQD/kB4A/5AeAPeNJwD/qgAAUFjZIlda0V5ZW8+kWlvP3Fpb + z/taW8//WlvP/1pbz/9aW8//WlzP/1tcz/9bXM//W1zO/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VxczcFcXMxlW1vMFF1d + 0QBbW8wAbW3LAFxczABcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/pAdAP+KEAD/jxwA/5AdAP+QHQD/kB0A/5EgAP6OGwP+kB0K/pAdD/+QHhv/jx0z/5AdQ/mO + JFKzeG+zo3OA9KZzff+odHv/q3V4/652dv+rdXf/pnR8/59yhP+Zb4z/lG6R/45sl/+Iap3/e2as/2pg + vv9jXsX/X13K/1pbz/9aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze5cXMyjW1vNQ1xczQhaWs0AXV3NAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAP+P + HAD/jxwA/48bAP+OGgD/jxwA/48dAP+OGgD+kB0A/pAeAP+RIAD/jxoB/48dFf+QHTL/kB5R/5Aed/+Q + Hpr/kB65/5Aezv+QHtv/kB7j/5Ae6fmOJPv5jiT//Y8g//6QHv//kB3//5Ec//+QHf/9jyD/+Y4k//aN + J//0jCr/8Yst/+6KMP/miDj/1oNJ/8R9Xf+rdXj/kW2U/4Bopv9vYrj/X13K/1tczv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM3eW1vMeFpazBNcXMwAXFzNAFxc + zQBcXM0AXFzNAAAAAAAAAAAA/48lAP+PHgD9kSAA/o8dAP+QHgD/kB0A/5EhAP6QHQz+kB0m/5AdUf+Q + HoT/kB6z/5Ae2P+QHvP/kB77/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB3//5Ad//+RHP//kBz//5Ae//2PIP/4jiX/64o0/9aD + S/+wd3P/hWmh/2pgvv9dXMz/W1zP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3vXFzNj1xczRtcXM0AXFzNAFxczQBbW80AAAAAAAAAAAD/kCAA/48eAP6QHQD2hw8A/5AdCf+Q + HS//kB5j/5Aemv+QHtL/kB7t/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//5Ec//yPIf/tijH/z4FR/6Rzf/98Zqr/YV3I/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzNl1xczRtbW80AW1vMAFpazABeXs0AX1/PAP+Q + HQD/jx4H/pAdJP+QHV//kB6j/5Ae1P+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3/+48i/+GH + Pf+pdXr/dmSx/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM32XFzNlltb + zRdcXM0AW1vJAJWV/QBgYNAA/5AdLv+QHon/kB7H/5Ae8v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//qOI//bhUT/mnCK/2lgv/9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3zW1vMfVtbywxaWssAWVnKAFVVxgD/kB5s/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf/yjCv/xn5b/4Zp + oP9gXcn+W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzMUm1tyABdXcwAXV3NAP+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB7/54g3/KNygNplX8O2W1vOxVxczd1cXM3tXFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXMy2W1vLIFtbzABbW8wA/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i6+iJNoWNbJcmVlrTJ1xc + zVNbW82NXFzNzFxczflcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRbW81wW1vKA1tbzAD/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad6P+RG3H/nAAKq3V4AFtbyQRcXM0tXFzNfVxczd1cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcJaWs0hXFzMAP+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae6f+QHmj/jxkGuHloAFpbzQBcXMwGXFzNUlxc + zdVcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN71tbzVpWVssA/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+Q + Hf//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae2v6Q + HUz/iiUA8YsuAFpazQBaWtAEW1vNa1xczfBcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNnVpazgr/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kBz//Y8g//iOJv/0jCr/8Yst/+6LMP/wiy76/I8h6P+QHub/kB7r/5Ae8v+QHvn/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Aetv+QHh//kB0AWl3LAFxczQBaWs0eXFzNxFxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3FW1vNJf+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/f+QHvf/kB7h/Y8hxMt/VeitdnX/n3GF/5Jtk/+Iap3/iWqc4JxwiYnjhzxC/5AbPf+P + HU3/kB5i/pAeef6QHZT/kB6x/5Ae3P+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB70/5AedP+PHgX/kB4AWlvOAFpa + zQdcXM2gXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczd9cXM1I/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Ae5f+QHsf/kB6P/5AeV/+RGznehUEoYl7Hulxczf9cXM3/W1zO+Fpb + zrNYWtFFMUz6CPuPIgD9kCEA/5EgAP+RHwBtlwAA/o8dAv+PHRP+kB02/5Adb/+QHsX/kB72/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7N/5AdLf+QHgBaW88AXFzNBVxczZVcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN8lxczWT/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7x/5Aex/+QHof+kB1G/5AdGf+QHgf+kR4A44c8ACRK + /wZbXM6vXFzN/lxczeRcXM2DWlvOHWdixwBgXMcA6Yc4AP+RFAD/jxwA/pAeAP6QHQD+kB4A/48dAP6Q + HgD+jxsD/5AdJP+QHoL/kB7o/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf/kB5y/44hAolqngBcXM0LXFzNqlxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM37XFzNff+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7k/5AepP+QHln/kB4j/48dBv+Q + HgD/kB4A/5AeAP+OHQBAU+sAXVzMBFxczVdcXM18XFzNTFxczQtcXM0AWVnMAFpazQBbW80AAAD/AAAA + AAD/jx8A/48eAP+PHwD/jx0A/pAeAP6PHAD/kB0A/5AeDP+QHnf/kB7x/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHrf/kB0anXCFAFxc + zThcXM3ZXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfxbW82G/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7k/5AeoP+Q + HUr/jx0Q/5AeAP+QHgD/jx0A/44eAP+RIgD/kB4A/o8eAFxczQBcXM0AXFzNAlxczQNgYNYAXFzNAF1d + zQBaWssAW1vMAFpazAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jRoA/o8dAP+CKgD/kB0A/o8dGf+Q + HrD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae5v+QHDxRWdkfXFzNqVxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczJD/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7z/5Aeqf+QHUn+jx0Q/pEeAP+QHQD/kB4A/5AdAP+PHQD/jx0A/48dAAAAAABcXM0AXFzNAFxc + zQBcXM0AXFzNAFtbzABdXdAAV1fDAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/48eAP+OHgD8mRsA/5Aebf+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB72yn9WmF1czK9cXM34XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38XFzNhv+Q + HnH/kB78/5Ae//+QHv//kB7+/5Ae0P+QHmv+kB4Y/5AeAP6QHQD/jh0A/48dAP+PHQD/jx4A/48fAP+P + HwAAAAAAAAAAAFxczQBcXM0AXFzNAFxczQBcXM0AW1vMAFlZxgBbW8sAMDBrAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx0A/5AdAP+QHQD/kB1Q/5Ae7v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//6QHv67emf4X13K/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczftcXM1y/5Aecv+QHv7/kB7//5Ae8v+QHqL/kB4z/Y8cAv6QHgD+jx0A/pAdAP+P + HQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+QGQD/kB0A/5AdAP+Q + HVH/kB7u/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/8t/Vv9jXsb/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9ltbzGn/kB5i/5Ae2/+QHs7/kB5z/pAdFP6Q + HQD+kB4A/pEcAP+NIgD+jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAA9D + /wD/mQAA/o8eAP+PHQD/gxsA/5Aecv+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/1IJM/2hgwP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3jW1vNTv6Q + Hhv+kB48/pAdLP+PHAf/kB0A/44hAP+PHwD8khsA/48gAP+PHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAX1/PAGBg0AD/jQAAX1zIAP//AADFfVwA+Y4kAP+QHSj/kB7E/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//Xg0n/a2G8/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczcVbW8wl/pAeAP6QHgD/kB0A/5AdAP+PHAD+kB8A/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxwA/o8dAP+SEgDPgFAA/6gAAGNhzgBlXsIAw3xdAHdksAL3jSYq/Y8fpf+Q + Hvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/9mER/9uYrr/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vNoFpaywn+kB4A/pAeAP6QHQD/jxsA/48bAP+P + GgD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxsA/48bAP+PHQD+kB0A/5MDANWCSQDRgU8A4oY7ADJO + +AmUbY4v04JMePmOJMn+kB/6/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/04JN/2Zfwv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW81lVVXMAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxsA/48dAP+QHQD+lhoA/48dAP+QHgD/jxwA/48dAP6Q + HgD7jyIAx31XBqd0exutdnVWyX5YlduERNf1jSn5/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//NgFT/YV7I/1xc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNyFtbzCRbW8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jhkA/48dAP+PHQD/jx0A/pAdAP2UJQD/jx0A/5AdAP+Q + HgD/kR4A/48fAP+PGwb/jx0a/pAdMP+QHU/uijCI54g3xe+LL+33jSf//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/8N9Xf9gXcn/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW8xvWlrLAltbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jRQA/48cAP6RIAD/jxwA/5AdAP+Q + HgD+kB4A/5AeAP+PHAf/kB0V/5AeJ/+QHkr/kB5x/5Aem/+QHrr/kB7W/5Ae8/6QH/3+kB///5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/7jyP/qHR8/15cy/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNsFxczBtbW80AW1vMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+OGwD/kB0A/5AdAP+O + GgD/jxwA/pAeAP2TJwD/kB0E/48dFv6QHjv/kB5d/5Aeif+QHrf/kB7c/5Ae6v+QHvf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//OMK/+Iap3/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zddbW8xBWlrJAFxczgBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+P + HQD/jxwA/ZMjAP+QHQD/kB4A/5AfAP6PHAr+kB0o/5AdV/+QHor/kB67/5Ae3f+QHvb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3oZB/3NjtP9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzMVltbygRbW8wAW1vMAFpazQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48gAP6QHAD+kB0A/owQAP+PHQD+kB4A/48cBP+QHhj/kB1R/5Aelf+QHtD/kB7y/5Ae/P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv+3eWr/Yl7H/1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2lxczFZbW8oEW1vMAFtbzABZWcoAamrUAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/40jAP+QHgD+kxsA/pAdAP6PHgD/kB4A/48dBf6QHTD/kB54/5Aevv+Q + Huv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/6ok0/4Rpov9aXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczbpcXMxJWlrKBFtb + zABcXMwATk6xAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/o8dAP6PHgD+kB0A/o8eA/+Q + HSz/kB2B/5Ae0/+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yP + If+1eG3/YV7H/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zehcXM2RXFzNJV5e0QBcXMwAXFzNAFtbzABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+P + HAD/jxwA/5AdAP+QHhL/kB5p/5Ae0P+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kBz/2IRH/3Zksf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze1cXM2qXFzNT1tbzAxcXM0AW1vLAF1d0ABVVb8AW1vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PHAD/jx0A/48dAP+LEwH/kB4x/5Aenv+QHu//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac/+iJNv+ObJf/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+1xczeFcXM2sXFzNWFxczRJbW80AW1vMAGBgyQBcXMwAXFzNAFlZ + yAAjI08AAAAAAAAAAAAAAAAAAAAAAP+PHwD/kB8A/48cAP+PHAD/jhwC/48dQ/+QHsT/kB7+/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/oiTb/k22S/19d + yv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzN7FxczcVcXM1/W1vNPVxczQ+7u6AAXV3NAFtb + zQBbW8wAXV3MAFxczABcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48fAP6PHgD/jxwA+ptEAP+Q + HUD/kB7M/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/+kB//44c8/5Jtk/9fXcr/W1zO/1xczf9cXM3/XFzN/1xczfZcXM3dXFzNtFxczX9bW81HW1vNIFlZ + zwRcXM0AXFzNAFpazgBfX8wAbGzGAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jhoA/o4bAP+RHgD/kB0y/5Aewf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/+Y4k/8h/WP+AaKb/Xl3L/1tczftcXM3tXFzN2lxczbRcXM2HXFzNX1tb + zTpbW8wSW1vMA15ezABcXMwAWlrOAP//xgBcXM4AWlrOAGhoyABWVtAAV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA66NCAP6RIAD/kB4A/5AeF/+QHqX/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8h/+eIN/2sdnb4cWK231pbz79bXM2hW1vNflxc + zFRcXM0pXFzNFFxczAdaWswAW1vNAFtbzQBbW80AWVnNAFxczABaWs4AX1/MAFVV0AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kBwA/pAcAP2PGQL/kB1r/5Ae8v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf/vuPIuHVgku6mG+LimRe + w11XWtE4XFzNH11dzQhRUckAXV3OAFxczQBcXM0AXFzNAICA4ABbW80AWlrMAFlZzABaWs0AcXG/AFZW + 0AAXFzYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q + IQD/kB4A/5AdKP+QHsr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHv//kB7//5Af8P2P + IMP8jyGF8IstP651dRIURP8Hr3qCAFtczQBcXM0AXFzNAFtbzQBbW8wAVVW+AFxczQBcXM0AXl7OAF5e + zQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP6TGAD/kB5v/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ad//6Q + H//2jSf4+o4j0P2PIJ/+kB9Y+o4kIP+OHQP4jiUAtXhtAFVZ0gBTWNAAWlvOAFxczABdXc0AV1fHAGBg + 0ABfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB4A/pAeF/+QHrL/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+R + HP/9jyD/9Iwq/+mJNv/SgU7/uHlq6L98Y3/niDcr/5AcCP+RIgD6jiMA/o8eAP+ZAAClc30AY13EAFha + zABdXdEAWlrIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWsgAXV3RAFpaygBbW8wAWlrMAFpazABaWswAWlrMAP6Q + HQD+kB40/5Ae5f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+Q + Hf/+kB//+48i//OMK//fhkD/yX9Y/652dP+TbZL/eGWv/2pgvfliXcaKJkn/C8V9WwD8jyAA/ZAfAPeO + JQD+jx4A/o8eAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVcoAW1vNAFtbywBeXtQAWlrKAFtb + zABaWswAWlrMAFpazABaWswA/5cqAP+QHlj/kB7z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+Q + Hf//kRz//pAf//OMK//niDj/1IJN/7Z5bP+ccIj/h2qf/3dlsP9lX8P/XFzN/1tczv9bXM7/W1zO3Vpb + zzNYW9IA/9EAAOCGQgDrhjoA/48fAP+PHwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrMAFpa + zABbW80AXV3OAFxczQBaWskGW1vMFFpazBBaWswBWlrMAFpazAD9kB0F/pAejv+QHv3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//6QH//2jSf/4oc8/8J8X/+pdHr/k22S/3tmrP9oYMH/YV7I/1xczf9aW9D/WlvP/1tc + zv9cXM3/XFzN/1xczf9cXM28XFzNF1tbzQBbW80AWlrQAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZ2fTAFpazABcXMwAW1vUAFtbzABaWssAW1vMGVxczHZcXM2vW1vMhFpazAxbW8wAW1vMAP+Q + Hgv/kB6x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//2PIf/liDn+vXtk/5Jtkv92ZLH/ZF/E/1tczv9aXM//W1zO/1tc + zv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbhbW80WW1vNAFxczQBaWskAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABaWskAW1vHAFVV0gBPT9YAWlrNAFxczgBbW80AWVnMBVtbzDdcXM2kXFzN9Vxc + zf9bW8zEW1vMEltbzABbW8wA/5AfEf+QHrj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBzo54g3p4Noo9tiXsf/W1zO/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2Ftb + zSxcXM0AaGi6AFZWxwBcXNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8sAZWXoAFpazABbW80AWFjDAFtb + zCFcXM15XFzN01xczf1cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jx0e/5Aewf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae7v+R + G3CYb4shWlvPq1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM31W1vMdlpayQVaWswAWlrMAFtbzABzc94AYGDQAF9fzwAAAAAAAAAAAP+P + HQD/jx0A/48eAP+RGgD/jh0A/44dAP+OHQD/jh0A/44dAFxczABcXMwAXFzMAFxczABaWs4AWlrLAFtb + zABcXM4AVVXMAVpazR5cXM1iXFzNvVxczfdcXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP+P + HCf/kB7H/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB6k/5AaEwAA/wBcW818XFzN+1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3YXFzNTFdX0QJcXM0AXFzNAFpa + zABZWc0AUlLUAFdXzwDPf1EA/48eAP+PHQD/iRUA/48eAP+QHgD/kB0A/pAdAP6QHQD3jSUAXFzMAFxc + zABcXMoAXFzMAFtbzABcXM0AW1vMB1xczChbW81pXFzNvVxczfNcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dIf+QHsP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9P+QHl//kR0AYF3IAFtbzUdcXM3kXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3UW1vNZ1xczRlhYc8AW1vMAFpazQBbW80AXFzNAFpbzQBBU+gA3oQ/AP+QHwD/jx4O/48eN/+P + HT7/kBwR5Yc5AFFY1wBcXMwAXFzNAFxczgBcXMwFXFzMGlxczUpcXM2NXFzNzlxczfVcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jx8Z/5Aevf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7m/5AeRv+Q + HgBSWdcAXFzMElxczaRcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3uXFzNsFxczWJbW80vWVnNDlZWzgFbXNAAXl7OANGC + TwD/rQAA/5AeIf+QHoz/kB7d/5Ae1v+QHD78jyAAZV6+AVxczBFcXM0sXFzNTlxczYNcXM3AXFzN51xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP6Q + Hgv/kB6o/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuz+kB5Q/pAdADFO+wBcXM8AXFzNTFxczeVcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9Fxc + zdRcXM2pXFzNh1tczmVYWtBVd2WuR9+FP1/9kB+1/5Ae+P+QHv/8jyH4rnZ0jlZa03JcXM2NXFzNrVxc + zdFcXM3xXFzN/Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dBP+QHoH/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHoP/jx8G/5IYAFpbzgBbW8wPXFzMkVxc + zfpcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM79X13J839np+3DfV7p940m8P+QHv//kB7//5Ad//eN + Jv6La5r1WVvQ91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD7oDQA/5AdV/+QHvD/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae0v6Q + Hjr+kRwA+I0lAFpb0ABcXM0tXFzNw1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM//Yl7H/31mqf+yd3H/44c8//yP + If//kB7//5Ae//+QHv//kB3/9o0n/4lqnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP6Q + HgD/kB0q/5Ae1P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Aetf6QHTP/jR4C6okzAAAz/wFbW81KXFzN2Fxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1zO/1pbz/9eXcv/aWC//4xr + mv+4eWr/5Yg5//2PIP//kRz//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dAP+PHQ3/kB6Y/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Aeyf+QHWf+jx0g/6IAAhpG + /wRXWtBeWlvO2ltczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tczv9bXM7/W1zO/11c + zP9pYL//gWil/6Z0ff/RgVD/8Isu//6QH///kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jhoA/5AeAP+QHUT/kB7h/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8P+QHr7/kB2D/5AbR+CGPSt6ZatsZV/C3GJex/9fXcr/XFzN/1xczf9dXMz/X13K/2Je + xv9oYMD/bWG7/3hlr/+UbpH/sXdx/8+AUv/qijT//I8h//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lrnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP+Q + HQD/kB0A/48cDf+QHZT/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvv/kB7q/5Ad1PuPIbjXg0jPuXpo+q52 + df+mdH3/pHOA/6d0fP+udnX/unpo/8t/Vf/bhET/6ok1//SNKf/9jyD//5Ec//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48bAP+PGgD+kSEA/5AdMv+QHsr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf7/kB7//5Ae//+QHv/+kB///5Ae//+QHv//kB7//5Ad//+QHf//kBz//5Ad//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMRbW8wSW1vMAFtbzAD/jxsA/48cAP+QHgD/jyAD/pAdXf+Q + Hub/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lrnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNq1tbzA5bW8wAW1vMAP+P + GwD/kB0A/5AdAP6QHAD+jxwK/pAdef+QHu7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflcXM3aXFzNqFxc + zWlbW80oXV3NAlxczQBcXM0AAAAAAP+WGAD/jh4A/JIhAP6QHgD/jx0U/pAdgv+QHuv/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzN6lxc + zdBcXM2mXFzMb1tbzDdbW8sOWVnQAV1dzQBbW80AXFzNAFxczQAAAAAAAAAAAP+PHAD/jhkA/4wYAP6Q + HAD/jxwQ/pAdcv+QHuT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lqnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf5cXM37XFzN91xc + zeZcXM3JXFzNpVxczXVcXMxIXFzNIFtbzRBaWsgBXFzMAFxczABbW80ALCzgAFpazgBbW80AXFzNAAAA + AAAAAAAA/48bAP+PHQD/jx0A/4sbAP6QHQD+jx4K/5AeWP+QHsv/kB79/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf+i2ua8llb0OtcXM3mXFzN3Fxc + zc5cXM2zXFzNllxczXlcXM1XW1vMPVtbzCdbW8sLYGDNAFxczgBcXM0AW1vNAFtbywBcXMwAW1vKAFpa + yABYWM4AWFjPAFdXzwAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHAD/jxwA/ZEfAP+QHgD/jyAC/5AdM/6Q + HpL/kB7i/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//uP + Ifiyd3CGU1nWUFxczElbW8w1W1vNHFxczQ5bW8wJWVnKBF1dzwBbW8wAXFzMAFxczABbW80AW1vLAF1d + zwBbW80AW1vMAFxczABbW8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + IADotwAA/5AeAP+QHgD/kB0A/pAeDP6QHVD/kB6w/5Ae7/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHvv/kB7i/5Aeq/+SFimxd3EAWVvQAFxczQBcXM0AXFzNAFtbzQBbW8wAWlrKAFtb + zABbW8wAW1vLAFxczABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+OIAD/kR4A/48fAP+MHgD+kB4A/ZQrAP6QHBb/kB1m/5Aeu/+Q + Huj/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9/+QHub/kB66/5Aeef6QHkH/kB4T/5EaAeKGPQBPV9oAWlrLAGJi + zABcXM0AW1vNAFtbzABbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/44bAP2R + IAD+jxwA/5AdAP+QHwP+kB0Z/5AdS/6QHo7/kB7G/5Ae8f+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/v+QHvv/kB7o/5Aexf+QHp//kB5y/5AdRP6QHRj+jx8D/pAeAP+Q + HgD/kB0A/5AdAP+QHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIZLDgD/jxsA/48fAP+NIwD/kBwA/5AeAP6QHgD/kB4A/48cBv+QHST/kB1Z/5Admv+Q + Hr3/kB7X/5Ae6/+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/P+QHu//kB7j/5Ae1v+QHr7/kB6b/5Aebv+QHkH/kB4j/48cCf+P + HQD/kB8A/pAeAP6PHwD+kB0A/48fAP2RHgD/jx8A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+SHAD/kB4A/ZIiAP6Q + HQD/jx0A/5AdAPeeIAD/kB0K/5AdE/+PHSz/kB1S/5Adcv+QHpX/kB6t/5Aeuf+QHsH/kB7O/5Ae1v+Q + HuH/kB7p/5Ae4/+QHtz/kB7T/5AeyP+QHsL/kB65/5Aeqv+QHpL/kB52/5AeW/+QHkP/jx0p/pAdEf+Q + Hgr/jhkC/5AeAP+QHgD/jxwA/5AeAP6PHAD+kR8A/o8eAP9+MQD/jx8A/48fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jyAA/48OAP+PHQD/kB0A/48dAP+QHQD/kB0A/5AeAP+QHgD/kR0A/48bCP+P + HRT+kB4a/pAeHv+QHSX+kB0p/pAdL/6QHTP+kB0w/pAdLP+QHSj/kB4i/pAeH/6QHhv/jx0T/44cBv+Q + HQD/kB4A/5AeAP+QHgD/kB4A/5AeAP+PHAD/kSIA/5AdAP+PGwD/jxwA/48bAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48gAP+PGAD/jx0A/5AdAP6Q + HQD/jRkA/5AcAP+PHgD/jxwA/48dAP6QHgD+kB4A/5AdAP6QHQD+kB0A/5AeAP6QHQD+kB0A/5AdAP+Q + HgD+kB4A/pAeAP+PHQD/jx0A/48fAP+QHQD/jx0A/4wVAP+QHgD/kB4A/5AdAP+OGQD/jxsA/48bAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + //gAAAAAf/8AAP///+AAAAAAH/8AAP///gAAAAAAA/8AAP//4AAAAAAAAP8AAP//wAAAAAAAAH8AAP/g + AAAAAAAAAB8AAP8AAAAAAAAAAB8AAPAAAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAeAAAAAAAAAAAAA + QB/gAAAAAAAAAAAAwB/wAAAAAAAAAAAH///wAAAAAAAAAAA////AAAAAAAAAAAA///8AAAAAAAAAAAD/ + //gAAAAAAAAAAAH//8AAAAAAAAAAAP//8AAAAAAAAAAAAP/+AAAAAAAAAAAAAP/4AAAAAAAAAAAAAP/A + AAAAAAAAAAAAAP+AAAAAAAAAAAAAAP4AAAAAAAAAAAAAAPgAAAAAAAAAAAEAAPAAAAAAAAAAAAMAAOAA + AAAAAAAAAAcAAMAAAAAAAAAAAAcAAIAAAAAAAAAAAB8AAAAAAAAAAAAAAP8AAAAAAAAAAAAAAP8AAAAA + AAAAAAAAD/8AAAAAAAAAAAAAH/8AAAAAAAAAAAAD//8AAAAAAAAAAAB///8AAAAAAAAAAAf//wAAAAAA + AAAAAH///AAAAAAAAAAAAP//+AAAAAAAAAAAB///4AAAAAAAAAAAB///AAAAAAAAAAAAB//+AAAAAAAA + AAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAA + AAAAAAAAAAAAAMAAAAAAAAAAAAEAAOAAAAAAAAAAAB8AAPgAAAAAAAAAA/8AAPgAAAAAAAAAH/8AAP4A + AAAAAAAf//8AAP8AAAAAAAAf//8AAP/AAAAAAAB///8AAP/4AAAAAA////8AAP/+AAAAAD////8AACgA + AABgAAAAwAAAAAEAIAAAAAAAAJAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFtbywBbW8sAXFzKAFtbywBbW8wAXFzNAFtbzQB8fL4AWlrNAFtbzABcXMwAW1vNAFxc + zQBcXM0AW1vMAFtbzABbW8wAW1vMAFxczQBcXM0AW1vMAFxczQBcXM0AW1vNAFtbzQBcXM0AXFzNAFtb + zABbW8oARUXCAFtbzQBcXMwAXFzMAGBg0ABeXs4AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzLAFxczABcXM0AXFzOAFpaywBbW8wAXFzNAFtb + zABdXcwAZmbOAFlZygJcXMsDW1vMBFxczQZcXM0HW1vMCFtbzAhbW8wJW1vMCVxczQlcXM0JW1vMCFxc + zQdcXM0GWlrNBVtbzQVcXM0EW1vMA1lZygJeXtMAW1vMAFtbzQBcXMwAXFzMAFRUxwBbW80AW1vLAFpa + yQBaWskAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXMwAW1vNAFtbygBbW8wAXFzNAFxc + zABcXM0AXFzNAFhYyANaWswMXFzNFltbzB5bW80oW1vNQltbzFlcXMxoXFzNdFxczYlcXM2UW1vMoFtb + zKdbW8ypXFzNrlxczbJcXM2wW1vMqVxczZ1cXM2SW1vNhltbzX5cXM11XFzNa1tbzF5bW8w9XFzNI1tb + zRdbW8wNXFzJAltbzABbW80AW1vLAFtbygBcXM4AVlbJAFxczQBeXs0ATEy8AGBg0ABfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAW1vNAG1t + eQBcXMwAW1vMAFxczABcXM0AXFzOAFxczBJcXM0sXFzNRFxczWhcXM2IXFzNqlxczcdcXM3bXFzN5Fxc + zetcXM3vXFzN8lxczfhcXM37XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM36XFzN91xc + zfVcXM3yXFzN8FxczexcXM3gXFzNy1xczbFcXM2NXFzNZFtbzUZbW80yW1vLGVhYxQJbW8wAXFzNAFxc + zQBgYM4AW1vLAFpayQBaWsoAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxc + zABbW80AXFzMAFxczQBcXMsAW1vNAFxczQBcXMsBW1vMB1tbzCBcXMxFXFzNcVxczZ1cXM3FXFzN5lxc + zfhcXM37XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM37XFzN91xc + zelcXM3NXFzNp1xczW1cXMw0XFzNDF1dzAJaWswAW1vMAFlZxwBbW8sAWFjIAGFh0ABfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxczABVVb4AXV3OAFlZyABbW8sAXFzMAFtbzQBbW9IAW1vND1xczSZcXM1UXFzNj1xc + zcBcXM3bXFzN9lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM3NXFzNnlxczV5cXM0nW1vMC2Fh + 2wBcXMwAXV3OAFxczABYWMYAWlrIAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+PIAD/jx0A/48dAPuPIgDVg0sAT1jbAFda0gBYW9AAXFzLC1xb + zStcXM1WXFzNlFxczdBcXM3qXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/VxczexcXM3HW1vMf1tbyzBdXc4EW1vMAFxczABjY+EAXFzLAFtbzABpadQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48bAP+PHQD+kB4A/pAdAP6RGwD/jx0A/48dAP+Q + HgDviy4AADX/A01W2htVWdJIWFvQillb0MVaW8/xWlvP/Fpbz/9aW8//WlvP/1pcz/9bXM7/W1zO/1tc + zv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VxczcBbW8xyW1vMI1xc + yAFcXM4AXl7OAFxczQBbW8sAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48bAP+PHQD/kB0A/44bAP6QHQD/kB4A/48cAP+P + HQD/kB4A/pAdAP+QHQD/jRsC/48cCf+QHQ7/lBEQiWqdU3Rjs7VyY7XdcWK2+3Fjtv9xY7b/c2O1/3Nj + tf9xY7b/b2K4/21iuv9rYb3/amC+/2hgwP9nX8L/ZF/E/19dyf9bXM7/WlvP/1pbz/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3yXFzNsFtbzE9bW8wSWFjIAFxczABcXMwAWVnMAFtbzQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/44aAP+PHQD+kB0A/44aAP+P + HAD/kB0A/5AeAP+QHgD/kB4A/48aCP+PHRv+kB4t/pAdPv+QHkz/kB5k/5Adfv+QHo7/kB2Z5Ig6z9KC + Tf/ahEX/34Y//+KHPP/kiDr/6Ik3/+eJN//jhzv/3IVC/9WDSv/NgFP/yH9Z/8J8YP+9e2X/tXhu/6Nz + gP+NbJf/gGim/3Vksv9mX8L/XFzM/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Vxczd5bW82TXFzMNVxc + zAVcXMwAW1vMAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + GwD/jx0A/5EgAP+PHAD+kB0A/pEgAP+OGwL/kB0G/48dHf6QHUb/kB5o/5Aejv+QHqv/kB7G/5Ae3/+Q + HvL/kB74/5Ae+v+QHvv/kB78/5Ae/v+QHv//kB3//5Ad//+QHP//kRz//5Ec//+RHP//kRz//5Ad//+Q + Hv//kB7//pAf//6QH//9jyD//Y8h//qPI//yjCv/5og5/9WDS/+/e2P/q3V4/5hvjP+CaKT/aWC//15c + y/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM37W1vMw1tbzE1aWswHW1vNAFtbzABcXM0AXFzNAAAAAAAAAAAAAAAAAAAA + AAD/jx4A/48fAP+PHQD/jRkA/pAeAP+PHQD/kB0A/5AeAP6PGwX+kB0V/5AdNP+QHWD/kB6T/5Aevv+Q + Htv/kB7y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ad//+Q + Hf//kB3//Y8g//KMLP/khzv/x35a/55xhv94Za7/Zl/C/1xczP9bXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczdJcXM1iXFzNClxc + zQBcXM0AW1vMAFtbzABaWswAAAAAAAAAAAD/kB0A/44fAP+PHQD+kB0A/5AdAP+MFQH/kB0c/5AeQf+Q + HnD+kB6p/5Ae2v+QHu3/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//pAf//SMKv/hhj7/vXtk/5Ru + kf90ZLP/YF3J/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzNZVxczQpcXM0AXV3NAFlZzABaWswAAAAAAAAAAAD/kB0A/5EdAP6O + HAH/jxwS/pAdQf+QHnf/kB6t/5Ae4v+QHvn/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//Y8g//OMKv/Sgk7/nXGH/21huv9dXMz/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWRcXM0JXFzMAF9f + zQBaWsoAX1/PAAAAAAD/kB0I/5AeK/+QHmD/kB2l/5Ae1/+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/8Isu/8yA + VP+TbZH/Zl/C/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczddbW8xRWlrKBFtbzABeXs8AXl7NAFpayQD/kB09/5Aexf+QHu7/kB79/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHv/sijP/tnls/39np/9gXcj/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8zCW1vMOUxMwABdXc0AXFzLAFpa + yAD/kB5V/5Ae9P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+o4j/96G + Qf+kc3//bGG7/VtczvtcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM37XFzMmFxczBVcXM0AXV3RAGNj6gD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/0jCr+wnxf4nxmq7VbXM2tW1zNyFxczdxcXM3qXFzN+1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN41tbzFpZWckDWlrLAFtbywD/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//Y8g9vGM + LLTHflpCV1rRHltczi1cXM1YW1vNklxczcRcXM3xXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zbVbW8wiW1vOAFtbyQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHfb/kRyl/5MSKHxlqgAzTvYBW1vLB1xczCdcXM10XFzNwlxc + zfhcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW81mWVnNA1tbzAD/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB73/5Aep/+Q + HijXhUcAdWOxAFdYywBcXMwGW1vMMVxczZ1cXM3xXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW82rWlrNF1tb + zQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9v+QHZL/jxwZ/5EdAKp1eQBcXM0AV1fJAFtbzSNbW82hXFzN+1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzNSFxczQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB3//5Ac//+QHP//kB3//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHuv+kB11/48eCf+Q + HQCNa5YAWVnPAGZmwgBaWsw/XFzN0Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM35XFzNelVVzwT/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac//+QHv/6jiP/9o0n//OMK//wiy7/7osw/+2K + Mv/0jSnx/5Ae4/+QHuX/kB7p/5Ae7/+QHvX/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7Q/5AePvyfCwD/jx8AZV3BAFpazQBZWc0NXFzNlVxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNoVtbzRf/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+QHu3/kB3V44c848N9 + Xv+yd3H/pXN+/5dvjf+ObJf/i2ua+JFtlMSudnVx+o4kQP+QHEX/jx1V/5Aeav6QHn3+kB2Z/5AesP+Q + Hsj/kB7o/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB75/5Aemf+QHhb/kB4A+o4jAFpZ + zQBiYskAW1vNcFxczfZcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNw1xczTH/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Ae9v+Q + Htf/kB6m/5AegP+QHWD/khg8eGWvlGFeyP9gXcn/Xl3K/11czP9cXMzjXFzNi1la0C0qSv8E/5QWAOad + YQD/jBgB/o8dA/2QHgX+kB0H/5AeDf+PHSr+kB1Z/5AdjP+QHtD/kB75/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae4/+QHVP/jRUC/48bAFBY2gBcXM0AXFzNYlxcze5cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3Vxc + zEX/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8f+QHtP/kB6X/5AdX/+QHjj/jx0X/4wfAfKMLACgcoQAWlzPgFtczv9cXM3/XFzN+lxc + zcNbW85XV1nPDmtgvQB+ZqkA8ostAP+PGgD/jxwA/pAeAP6QHgD+kB0A/5AeAP+QHgD/kB4A/48bCf6Q + HTv/kB2H/5Ae3/+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+QHqL/kB0V/5AdAEpX4wBaWswAXFzNalxc + zfNcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN8FxczVv/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+f+QHt3/kB6t/5Aeb/6QHTD+kB0P/ooMAf+QHgD/jx0A/48eAKNz + gQBiXscAXFzNb1xczeFcXM3YXFzNm1xczTJWVdACW1zMAEtU3ACKa54A54c5AP+QGgD/jxwA/pAeAP6Q + HgD+kB0A/pEdAP+PHAD+kB4A/48bAPySHgD+jxwO/5AeW/+QHtD/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Htr/kB5A/5sAAHdksABbW80JXFzNjVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VtbzWn/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvn/kB7U/5Adi/+QHkj/kB4U/48dA/6R + HgD+kB0A/48bAP+QHgD/jx0A/48eAF1czABcXM0AXFzNJlxczU1cXM1BW1vMF1tbzQBaWs4AXl7LAFFR + 0gBYWM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jiQA/48YAP+OHQD+kBwA/48fB/+Q + HmH/kB7l/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvb/kB6B/5UOBYJmoABcXM07XFzN0Vxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN9VtbzXH/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB74/5Ae1f+Q + HYz+kB08/48dDf+QHgD/kB4A/5AeAP+OHQD+kB0A/48bAP6QHQD/jxoAAAAAAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFxczQBbW80AYGDMAFVV0ABXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jyAA/44AAP+PHgD/ii0A/pAdAP6PHRb/kB6c/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB2z+Y0jFlhb + 0ilcXM2qXFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9lxczHz/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuD+kB2P/5AdPP6PHQ39kR4A/48dAP6QHgD/jyAA/5AeAP+PHQD/jx0A/48dAAAA + AAAAAAAAAAAAAFxczQBcXM0AXFzNAFxczQBcXM0AW1vKAFxczQBcXM4AXFzNAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jx4A/48eAP9RMAD/kB5b/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/7jyLUpXN9c1tczq9cXM33XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9Vxc + zHH/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB70/5Aetv+QHlX+kB0O/pIfAP6QHQD/jh0A/48dAP+P + HQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/iQAA/5AdAP+QHQD+kB0+/5Ae4P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/0jCr2l2+N71tczv1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81xczVv/kB5V/5Ae8/+QHv//kB7//5Ae//+QHt3/kB57/pAdJP+L + JAH+kB4A/48dAP6QHQD/jx0A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/5AdAP+QHQD/kB05/5Ae2P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/5jiT/o3OA/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN71tbzFL/kB5W/5Ae9f+Q + Hv//kB73/5Aeuf+QHk3/jx4K/pAeAP+PHgD/jx4A/48dAP6QHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+OIAD/jyAA/pIaAP6Q + HQD+kB1E/5Ae5f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/sndx/15dy/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN41tbzEn/kB5B/5Aeuf+QHr//kB6K/pAeLO+NFQD/kB0A+pofAP+PHgD/jx4A/48fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP2PIAD/kB0A/48dAP+OHQT/kB5u/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/t3lr/2Fd + yP9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNwVtbzC/+kB4O/pAeKP6QHif/jxwP/ZEhAP6Q + HQD+kRoA/44fAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABfX88AYGDQAF1v/ABWWtMApXJ9AAAr/wD1jCkA9o4nAP+QHTD/kB7H/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/u3pn/2Rexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzMmVpa + yhL+kB4A/pAeAP6QHgD/jxwA/48cAP+PHAD/jScA/48fAP+PHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5Y2wCGaZ8AY17FAJ1vgwAtTf8Ag2ehANCB + TwD/lAoC+I4kL/2QH6j/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/v3tj/2Zfwv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM33W1vMcmho7AD+kB4A/pAeAP6QHgD/jxwA/44XAP+PGwD/jxsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/kRYA/6EAAOmI + NADCfF4ASlbfAJZujgD/wgAANU7zBpduiybfhkBt/I8hvv6QH/n/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/t3lr/2FeyP9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3cW1vNR1tbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jx8A/48eAP6Q + HgD/kB0A/44YAP+PHQD+kB4A/5MSAO6KLgDOgFEAAAv/AoRooReccIg6q3R3hNeDSMP0jSnx/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/rnZ1/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8ysWlrMFVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/5AdAP+QHgD/lhcA/48dAP6QHgD/kB0A/5AeAP+QHgD/kB0A54k4AOuIMRLOgFE1x35aY8d+ + Wq3dhUPf8Yws9/qOJP//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB//qXV5/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczelbW8xYWVnJAVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48dAP+PHQD/jx0A/pAeAP6QHQD/jhsA/5AdAP+QHQD/kB4A8BEAAP6QHQP/kB0H/48cGP+P + HTT+kB5R/5AddPuPIZ/sijLS84wr9fyPIf79jyD//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/2jSf/n3GF/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczKVbW8wWW1vMAFtb + zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGgD+kB0A/48bAP6QHQD/hgUA/5AdAP+QHQD/jx0A/pAeAP6QHQD+lScA/48dDP+Q + HRj/kB4n/5AeSP+QHm//kB6W/5Aeu/+QHs//kB7i/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/miDn/hmmg/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN01xczUF6epgAXFzMAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyAA/48aAP+PHgD+kB0A/48bAP6QHQD+kB0A/5AeAP+Q + HgD/jx0H/pAeIv6QHTn/kB5Y/5Aehv+QHrL/kB7Y/5Ae5v+QHvH/kB78/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+R + HP/Vg0v/bmK6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3uW1vMcFxczgdcXM0AXFzNAFxczAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxwA/5AdAP+O + HgD+jx0A/pEgAP2QHQP/jxwR/5AdNf+QHV3/kB6J/5Aetv+QHtr/kB70/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//2PIP+8e2X/YV7I/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM2GW1vLFltb + zABWVs8AWlrMAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/pAdAP6PHQD/jxwA/5AdAP6WHwD+jx0Q/5AdNP6QHm7+kB2r/5Ae0P+QHur/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//OMK/+Yb4z/XVzM/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN8VxczYdbW8wXXFzNAFxcywBdXc0AYmLRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/JIYAP+PHQD/jhsA/pAdAP+QHQD/jxsF/5AdJf+QHlL/kB6X/5Ae1v+Q + HvH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/9eDSP9yY7X/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3nXFzNhFtbzBdcXM0AWlrKAFtbywBcXMwAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jiAA/pEcAP6PHgD+kR4A/o8cBf+P + HS//kB14/5Aeu/+QHuz/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/944m/6ByhP9fXcr/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczcdcXM1fW1vKEVxc + zgBaWsoAW1vLAFtbywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jx0A/44eAP6R + GgD+jx4A/5AdAP6PHgT/kB0p/5AdeP+QHsj/kB72/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB//zYBT/3Fj + tv9aXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3sXFzMpVxczTtcXM0DXFzNAFpayQBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHAD/jxsA/5AhAP+PHQD/kB4A/5AeE/+QHmH/kB7G/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/oiTb/jWyY/11czP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN71xczbhcXM1jW1vMFlxcwgBcXM0AXV3QAFtbywBcXM0AW1vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+OGwD/kB8A/48eAP+OHgP+kB4x/5Aekv+Q + Huj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//WNKP+qdXn/Yl7G/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczfFcXM26XFzNbFxczRxdXc4BW1vMAFxc + zABcXMwAXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxsA/5AmAP+P + HgD/jx0A/48cB/+QHUv/kB7B/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/9o0o/7J3 + cP9rYb3/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM3UW1vNmVxc + zVhcXM0kVlbPBFxczQBcXM0AWlrLAFxczABcXMwAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGwD/jxoA/5AfAP+PHQD/jx0I/48dWP+QHtH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/2jSj/sndw/2thvf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze5cXM3TXFzNrlxczXlbW800WlrNEf///wBbW80AWVnOAF5ezABcXM0AXFzNAFxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NHAD9kSAA/48dAP+OGAP/kB1L/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae/+uKM/+tdnb/a2G9/1tczv9cXM3/XFzN/1xc + zf9cXM38XFzN+FxczehcXM3FXFzNlVxczWNbW805WlrNEVtbzARfX8sAW1vNAFlZzABbW80AWFjPAFtb + zQBVVdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48aAP+Q + GwD+jxwA/IsUAf+QHUD/kB7G/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/8jyH/1oNJ/5Bt + lP9lX8T/W1zN/1xczflcXM3uXFzN4Fxczb9cXM2WXFzNaFtbzUZbW80sWlrMDVxczQBcXM0AW1vNAFtb + zQBZWc4AXFzMAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx0A/pAdAP+QIwD+kB0A/5AeI/+QHq3/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/+yKMv+7emf/fmeo9F5cy9xbXM7HXFzNsFtbzY1cXMxjXFzMNlxczRtcXM0QXV3MA1tb + zABbW80AWlrMAFxczQBbW8wAPDzcAFtbzQBaWs4Ak5O4AFZWzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+PHAD/jxsJ/5AefP+Q + HvP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv72jSj204JN3KRzf7ZsYbuTWlvObVtbzkhcXMwoXFzNDVtb + zAZbW8sCXV3PAFxczQBcXM0AXV3MAFRUxwBbW80AWlrMAFtbzQBaWswAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jx0A/44dAP2RHQD+kB08/5Ae1P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB/2/pAf4/eNJrDsijJilW6OO1BX + 2CJNVtgLbGG+AFtbzgBcXM0AXFzNAFtbzABcXMwAW1vKAFxczQBcXM0AXFzNAGBg0ABfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB0A/pAdAP6PHQ7/kB2Q/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB7//pAf7P6Q + H8D7jyKD/o8fQOyKMRfriDECnXCGAGFdxQBbW8oAWFrQAFxczABcXMwAWFjKAFtbzQBcXMwAW1vLAFxc + zABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jiAA/pAdAP+Q + Hiz/kB7U/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ad//6Q + H//7jyL/8Ywt+PCLLs77jyGP+48gX/6QHyX4jSYG/5MfAO+LLgDsijEAl2+MAF5cyQBaWssAWVnFAFpa + yQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+kB4A/ZAeA/6QHm3/kB7x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+Q + HP//kRv//5Ae//eOJv/viy//44c8/8l/V/+tdnbvqHR8jdKCTjPvii8K9I0pAP6QHwD5jiQA/Y4fAPGL + LADtijAAg2uXAP+RFwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpa + yQBaWskAWVnFAFpaygBbW8wAW1vMAFpazABaWswAWlrMAAAAAAD+kB0A/pAeCv6QHqj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kB3//5Ad//+QHf//kB3/940n/+iJNv/ZhEf/wn1f/6h0e/+La5r/dGSz/2pgvftiXcWkRVTkG9KB + TADmiDkA/5IWAP6QHgD4jiUA/o8fAPmOJAD/jxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaywBZWccAXV3RAFpayQBbW8wAWlrMAFpazABaWswAWlrMAAAA + AAD/kB4A/48dIP+QHsH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP//kB3//Y8g//uPIv/yjCz/24VF/8d+Wv+yd3D/n3KF/4lrnP9yY7b/YV7H/19d + yv9cXM3/WlzP/1tcz+VaW89JWGzxADpR8QC6emkAUFrXAP+SFgD/jx8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX88AYWHQAGBgzQBcXM4AW1vNAGJi + 2ABZWcoCWVnLAlhYzAFYWMwAWFjMAAAAAAD/kB4A/pAdR/+QHtz/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+RHP/9jyD/84wr/+mJNv/Xg0j/vXtk/6Nzgf+Ka5v/eWWu/2th + vP9eXcr/W1zO/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczcJcXM0eW1vNAFhZzABeXdAAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrJAFpa + ygBZWckAXl7OAF5ezQBbW80AW1vLBltbzDVbW8xfW1vMWlpazBpaWswAWlrMAAAAAAD/kB4A/pAdcP+Q + Hvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/9kCD/74sv/9iDSP+8e2X/mG+N/3ll + rv9uYrr/Z1/B/19dyv9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zaxbW80WW1vNAFtbzQBcXM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF9fzwBiYtAAWVnLAFtbzABXV8IAXFzNAFpazABcXM0QW1vNYVxczctcXM3uW1vM3Vtb + zEJbW8wAW1vMAAAAAAD/hycA/5Aegv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAe/OiJ + Nvm7emb+k26R/3Jjtf9hXsf/XVzM/1tczv9aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbRbW80ZXFzNAF1dzACHh6wAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV1fPAFhYzwBYWNAAWlrNAFxczQBcXM8AW1vMBFtb + zC9bW82KXFzN5Fxczf9cXM3/XFzN8FtbzEhbW8wAW1vMAAAAAAD/jiAF/5AeiP+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3u+48hophvi65mX8L3W1zO/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdlbW800Xl7MAFhY + zgBaWs0AWFjPAFdXzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAXFzOAFtb + wwBZWc4AWlrNAC4uZQBbW8wdXFzNa1xczcVcXM32XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD/jx0O/5Aelf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvL/kB2J8IssHFpbzmJbXM7tXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfNbW8x6WlrJCltbzABmZssAWlrPAFtbzQBjY9IAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx4A/48fAP+PHQD/jx0A/48dAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAFxc + zABcXM0AXFzMAFxczQBaWssAXFzNAFtbzQBISNUBWlrNHFxczVVcXM2tXFzN7lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxsW/5Aen/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+Q + HbH/kB0izoBQAFtbzTdcXM3YXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3TXFzMS19f0gJcXMwAXl7QAFxc + zQBtbdoAYGDQAF9fzwAAAAAAAAAAAAAAAAAAAAAA/48dAP+PGwD/jx0A/48fAP+PHQD/jx0A/48dAP+P + HQD/jx0AAAAAAFxczABcXMwAXFzLAFxczABcXMwAXFzMAFxczQBdXc4AW1vLBFtbyx5bW81dXFzNrFxc + zepcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwV/5Aenf+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9P+QHmH8iiACeWWsAFtbzBdbW82wXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzNxFtbzU1aWswMWVnLAFxczQBdXc4AWFjNAGFhyQBcXM0AXFzNAFtbzABaW84AtXhrAPqN + IAD/jx0A/4wiAf+PHQr/jx0N/48dBf+TDgAAAP8AXFzNAFxcywBcXMwAXFzNAFxczABcXM0AXV3LAlxc + zRBcXM00XFzNeFxczbdcXM3oXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD/jx4P/5Aelv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae2v+QHTr/kB0ATVfcAFtb + zAZcXM1tXFzN8Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczdlcXM2BXFzNNFxczQtaWswAXFzNAFtb + zQBcXM0AXFzNAFtbzABPWNkAp3N6APqOIgD/jx0I/5AeRP+QHoL/kB2J/5AcP8R9XQBrYLwAXFzNAFxc + zQBcXM0AXFzOAFxczBFcXMwwXFzMYFxczZtcXM3YXFzN9Fxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jx8I/5Aejf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Aezf6QHjL/kB4A0YFPAFxczQBcXM0pXFzNvlxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM30XFzNyVxczYtcXM1YWlrNKFpazQ1cXM0GXFvMA1laywIAC/8BADP/AfqOIhX/kB5q/5Ae0/+Q + Hvz/kB74/I8feAAv/wJXWtEGW1vMClxczCZcXMxKXFzNcVxczZ1cXM3MXFzN81xczf1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD+khsA/5AedP+QHvj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae3P6QHT3+kB0A1YRHAFxczABcXMwFXFzNblxc + ze5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfxcXM3nXFzNx1tbzatcXM2KW1zNbFha + 0GBuYrlQx35YWviOJJ7/kB7o/5Ae//+QHv/+kB79y39VsFlb0HhbXM2RXFzNqlxczcVcXM3eXFzN91xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB4A/5AeVP+QHuX/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v+Q + Hmr/jx8E/5AfAP+sAABcXMwAW1vMI1tbzKtcXM38XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bXM74XVzM8Hdlr+yyeHDo7osv6/6QH/v/kB7//5Ae//+QHv/9kB//q3V391tc + zvNcXM36XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB4A/48dNf+Q + Hs//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/v+QHrf+kB4o/pEcAP+QHQBRWdgAW1vJAVxczUlcXM3XXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/19dyv90ZLP/oXKD/9OCTf/3jib//5Ae//+Q + Hv//kB7//5Ae//+QHv/9jyD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD+kB0A/48cE/+QHqr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvP+kB2M/pAeFv6Q + HAD/jx4AXlvIAFxczgpbW81vXFzN6lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/WlzP/1tczv9lX8T/eWWu/6Vz + f//Xg0n/9o0n//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB0A/5AdBP+QHnn/kB70/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7s/pAdj/+PHS3/jh4F/o8eAJtxiQBXWc8UW1vMiFxcze9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tc + zv9fXcn/cGK3/4xrmv+4eWr/34ZA//eNJ///kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD/jxwA/5MiAP+QHTb/kB7P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v+QHr3/kB1q/48dJ/+Q + Gwj//wAAUFfYH1haz45aW87sW1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tc + z/9aW8//W1zO/15dy/9gXcn/bmK5/4prm/+tdnX/z4FR//CLLv/9jyD//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB0A/5AcAP+PHAv/kB2D/5Ae+P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7s/5Aewv+QHZH/kB1V/5EbK6p0dzdvYbeSZV7D7WJex/9fXcn/XVzM/1tc + zv9cXM3/XVzM/19dyf9iXsb/Z2DB/2xhvP9wYrj/gWil/55xhv+7emf/1YNK/+mJNf/8jyH//5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwA/40aAP+R + HgD/kB01/5Adyv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvr/kB7q/5Ae2f+Q + HLvviy+sxX1b2K12df2jc4H/m3CJ/5VukP+Xb43/nHCJ/6Nzgf+udnX/wHxi/8+BUf/fhkD/7Ioy//SN + Kf/9jyD//5Eb//+QHP//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD/jxwA/48cAP+PHAD/jxsJ/5Adbf+QHur/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB38/pAf/PyPIf/7jyL/+o4j//qOJP/6jiP/+o4j//uP + Iv/8jyH//ZAg//+QHv//kB3//5Ec//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwA/48cAP+QMgD/kB0A/5AeG/+Q + HqH/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHf//kB3//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN71tbzEdbW8wAW1vMAAAA + AAAAAAAA/48aAP6QHAD+jx4A/0iXAP6QHTP+kB29/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfVcXM3YXFzNoFxczSpcXM0AXFzNAAAAAAAAAAAAAAAAAP+MJAD+kBsA/48cAP+OGQL+kB1I/pAdzP+Q + Hv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/lxczfhcXM3fXFzNrFxczXNcXM1AWlrOEV1dzQJcXM4AXFzNAAAAAAAAAAAAAAAAAP+P + IAD/jSQA/pAcAP+PHQD/jx0I/48dUf6QHcb/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81xczehcXM3PXFzNplxczXhbW8xBW1vMG1hYxQJcXMwAXFzNAFxc + zQBcXM0AXFzNAAAAAAAAAAAAAAAAAP+PHwD/jx0A/pAhAP+PHQD/jx0A/48cBf6QHEL+kB28/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM30XFzN4VxczcpcXM2oXFzNeVxczE1cXM0kW1vNFFtb + zAhcXM0AW1vMAFtbygBcXM4AS0vTAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+N + GgD+kB8A/48eAP+OHgL+kB41/5Aeo/+QHvD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qXV6/ltczv1cXM39XFzN+1xczflcXM33XFzN51xczdBcXM25XFzNpFxczYdbW8xsW1vNT1xc + zCtbW8wMW1vMBFhYwgBcXM0AW1vNAFxczABYWMMAW1vMAFpayQBaWskAWlrJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jhoA/pAgAP+PHQD+khkA/5AeHv+QHnv/kB7V/5Ae+f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kB//unpn0Vlbz6RcXM2bXFzNj1xczXZbW81bXFzNQ1tb + zTNbW8wkWlrLFlpaygRcXMwAXFzNAFxczQBcXM0AW1vNAFtbywBgYNYAW1vNAFxczABbW8oAW1vLAFtb + ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/44eAP6Q + HQD/jx4A/5AeAP+PHQv+kB48/pAdmP+QHuX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB768IstfUlV + 4BJaW84RW1vMDlpaywd4eMgAXFzNAFtbzQBbW8wAW1vMAFtbzABbW80AW1vMAFtbywBdXc8AW1vMAFxc + ywBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx0A/4AZAP6PHQD/kBoA/o8cF/6QHVv/kB2t/5Ae8P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB78/5Ae6/+QHsT/kB6I/5EZMZNtkQBiXsYAXFzMAFtbzABXV84AXV3MAFtbzQBbW8wAW1vMAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/44eAP6Q + HAD+kB8A/pAdAOiycwD+kBwg/5Aeb/+QHrn/kB7l/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB73/5Ae6/+QHsz/kB6T/5AeVP6QHiv+jx8J/5EaAAAC/wBmX8IAXFzMAFtb + zABYWM4AU1PTAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+HIQD+kB4A/44WAP+PHAD+kBsA/5AeB/6QHR7/kB1O/pAekP+Q + HsT/kB7q/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7o/5Ae0P+QHrL/kB6H/5AdXP6QHSn+kB4O/wD/AP6Q + HgD/kB4A/5AdAP+PHwD/kRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+P + HQD/ijAA/5AeAP6QHgD8jhcB/o8dCv+QHSf/kB5e/5Aemv+QHs7/kB7m/5Ae9/+QHvv/kB7//5Ae//+Q + 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 + AAD//////AAAAAA/////////4AAAAAAH///////8AAAAAAAAP//////wAAAAAAAAH//////AAAAAAAAA + B/////4AAAAAAAAAAf///8AAAAAAAAAAAP///AAAAAAAAAAAAH//AAAAAAAAAAAAAB/4AAAAAAAAAAAA + AB/gAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAIAP4AAAAAA + AAAAAA4A/+AAAAAAAAAAAP////AAAAAAAAAAAf////AAAAAAAAAAB/////AAAAAAAAAAH////+AAAAAA + AAAAP////gAAAAAAAAAAf////AAAAAAAAAAB////4AAAAAAAAAD////wAAAAAAAAAAD///+AAAAAAAAA + AAD///wAAAAAAAAAAAD//4AAAAAAAAAAAAD//AAAAAAAAAAAAAD/+AAAAAAAAAAAAAD/wAAAAAAAAAAA + AAH/AAAAAAAAAAAAAAH/AAAAAAAAAAAAAAP4AAAAAAAAAAAAAAf4AAAAAAAAAAAAAA/wAAAAAAAAAAAA + AD/AAAAAAAAAAAAAAH/AAAAAAAAAAAAAAP/AAAAAAAAAAAAAB/+AAAAAAAAAAAAAH/8AAAAAAAAAAAAA + P/8AAAAAAAAAAAAP//8AAAAAAAAAAAA///8AAAAAAAAAAAP///8AAAAAAAAAAP////8AAAAAAAAAB/// + /AEAAAAAAAAAP////AEAAAAAAAAB////8AEAAAAAAAAH////wAEAAAAAAAAP////AAEAAAAAAAAP///+ + AAEAAAAAAAAD///wAAEAAAAAAAAB/APAAAEAAAAAAAAAeAIAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAAAA + AAHwAAAAAAAAAAAAAA/4AAAAAAAAAAAAAD/4AAAAAAAAAAAAAf/+AAAAAAAAAAAA////AAAAAAAAAAAP + ////gAAAAAAAAAP/////8AAAAAAAAAP/////+AAAAAAAAB///////gAAAAAAAH///////+AAAAAAH/// + //////wAAAAB//////8oAAAAgAAAAAABAAABACAAAAAAAAAAAQATCwAAEwsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXzwBXV88AVVXQAFlZ + zgBbW8wAW1vMAFxczABcXMwAW1vNAFxczQBcXM0AW1vMAFtbzABbW8wAW1vMAFtbzABcXM0AXFzNAFxc + zQBbW8wAW1vMAFxczQBcXM0AW1vNAFtbzQBbW80AXFzNAFxczQBbW8wAW1vMAFtbygBdXcwAYWHRAF9f + zwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAFtb + ywBbW8sAW1vLAFtbzABcXM0AXFzNAFtbzQCKircAWFjOAFtbzABbW8wAXFzMAFxczABbW80AXFzNAFxc + zQBbW8wAW1vMAFtbzABbW8wAW1vMAFxczQBcXM0AXFzNAFtbzABbW8wAXFzNAFxczQBbW80AW1vNAFtb + zQBcXM0AXFzNAFtbzABbW8wAWlrKAF5ezABWVsgAXFzNAFxczABcXMsAXV3NAGFh0QBfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxczABcXMwAXFzMAFxczABcXM0AXFzNAFpayQBbW8sAWlrMAFxczQBcXM0AW1vMAF1d + zABRUdACW1vMCVpazA1cXMwRXFzME1tbzRhcXM0dXFzNH1tbzCJbW8wkW1vMJltbzCZbW8wnXFzNKVxc + zSlcXM0pW1vMJ1tbzCVcXM0iXFzNH1tbzRxbW80aW1vNGFxczRZcXM0UW1vMEVtbyw5aWsgFVlbMAFtb + zABbW80AXFzMAFtbywBdXc0AV1fJAFtbzQBcXMwAW1vKAFlZyABaWskAWlrJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8sAW1vLAFtbywBbW8sAW1vMAFxczQBcXMsAXFzMAFxc + zQBcXM0AXV3PAFpaygZaWswNXFzNFVxczR1bW8wjW1vNK1tbzUBcXM1cW1vMbFxczHxcXMyDXFzNlVxc + zadcXM2uW1vMvVtbzMJbW8zJW1vMy1tbzM1cXM3UXFzN1lxczdRbW8zNW1vMx1xczblcXM2yW1vNo1tb + zZ5bW82VXFzNjFxczYZbW8x5W1vMbltbzE1cXMwyXFzNIltbzRpcXMwSW1vKB1ZWzABbW8wAW1vNAFxc + zABbW8oAVlbBAFtbywBdXc0AZ2fVAGBgzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzMAFxc + zABcXMwAW1vJAFtbywBbW8wAXFzNAFxczgBcXMwJXFzNFVxczR5cXM0uW1vMUVtbzGxcXM2KXFzNqVtb + zMFcXM3UXFzN3FxczeNcXM3oXFzN7Fxcze1cXM3yXFzN91xczflcXM39XFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczfpcXM32XFzN9VxczfJcXM3wXFzN7lxczetcXM3oXFzN3ltb + zM1cXM22XFzNnlxczH5cXMxWXFzNNltbzCRbW80bXFzMEVpayAVdXdAAW1vMAF1dzQBYWMoAXV3NAF1d + zQBiYtIAX1/PAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzMAFxczABcXMwAXFzMAFxczQBcXMsAXFzMAFxczABbW80AWlrKBltbzBBcXM0cXFzNL1xc + zV1cXM2JXFzNrVxczdFcXM3hXFzN6Fxcze9cXM34XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczftcXM31XFzN7FxczeJcXM3XW1vMv1tb + zaBcXMx8W1vMS1xczCJbW8wOYmLRAVtbzABcXM0AXl7OAFVVxgBcXMwAWVnHAFpayQBaWskAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXMwAXFzNAF1dywBcXMwAW1vNAFxc + zgBcXMwJXFzNFltbzCtbW8xSXFzMeFxczalcXM3SXFzN5Fxcze9cXM35XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM39XFzN9VxczexcXM3ZXFzNq1xczXJcXM04XFzNHVxc + zAsAAAAAW1vMAFtbywBYWMQAW1vLALy8/wBgYM8AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpayQBaWskAWlrIAFpa + ygBbW8wAXV3MAFxczABbW80AXFzOAFtbzApbW80aXFzNL1xczV1cXM2OW1vMxVxczeBcXM3rXFzN+Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM34XFzN6FtbzM5cXM2kXFzNZFxczTNcXM0WW1vKBl1d0gBcXMwAU1PGAF1d + zgBcXMwAW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXM0AXFzMAFtbywBXV8MAWlrKAFtbzABaWs0AXFzMCltbzRhcXM0uXFzNYFtb + zZ9cXM3QXFzN5FxczfFcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfZcXM3lW1vMx1xczYtbW8tIW1vLFW9v3gBaWssAXFzMAFtbzABXV8MAWlrJAFpayQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48gAP+PHgD/jxwA/48dAP+RGQCicoEATVfcAFdc + 1wBbWsQEW1vLEFxbzClcXMxdXFzNl1xczc5cXM3lXFzN9Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3+XFzN71tbzMpbW8x5XFzMNVtb + zBFkZNQAW1vLAFVVvABbW8sASUnAAGBgzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxsA/48bAP+PHQD+kB4A/5AdAP6Q + HQD+lw8A/48eAP+PHAD/jx0A/5AdAN+GQQAAEf8CS1beH1RZ1ElWWtJ6WFrQullb0OJZW9DzWVvQ/1lb + 0P9ZW9D/WVvQ/1lb0P9ZW9D/WlvQ/1pbz/9aW8//WlvP/1pbz/9aW8//W1zP/1tczv9bXM7/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczepbW8zFW1vMdVxczSZbW8oGXFzRAFxczQBVVckAXl7OAF1d + zQBcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/48cAP+P + HQD+kB4A/5AdAP+OGAD/jxsA/48dAP6QHgD/kB0A/pAdAP+QHQD/jB0C/44cCf+PHQ3/kB4R/5cFEbF3 + cS56Zqybc2O02nRjs+xzY7T7dGSz/3Rks/91ZLL/dmSx/3Zksf92ZLH/dWSy/3Rks/9xY7b/cGK3/25i + uv9tYbv/a2G9/2pgvv9pYL//Z1/C/2VfxP9fXcn/W1zO/1pbz/9aW8//W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf5cXM3lXFzNpVtbzE9bW8waX1/SAlpaywBeXs0AXFzMAFtbzABaWswAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxsA/48bAP+PGwD/jxwA/48dAP+QHQD/jhoA/48dAP6QHgD/kB0A/5EgAP+OGgb/jx0N/pAeFf+Q + HR3+kB0j/5AeK/+QHkD/jx1c/5AdbP+QHnz/kRyB8owrodCBUOrKf1b/04JM/9iDR//chUL/3YZB/9+G + QP/khzv/5Yg6/+SHO//fhkD/24VD/9KCTf/NgFP/xH1d/8F8Yf+7emf/tXht/7J3cf+qdHr/o3KB/41s + mP98Zqv/cmO2/21hu/9nYMH/YV3I/1xczf9aW8//WlvP/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM31W1vM0VtbzY9cXM06XFzMDTEx + 0QBbW8wAW1vMAFtbzQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/48cAP+PHQD+kB0A/44YAP+PGwD/jx0A/5AdAP+R + IAD/jxwJ/pAdFf+QHR7/kB0u/48dUf+QHWz/kB6K/5Adqf6QHcH/kB7U/5Ae3P+QHuP/kB7o/5Ae7P+Q + Hu3+kB/0+48i/vuPIv/+jx///pAe//+QHf//kB3//5Ac//+RG///kRv//5Eb//+QHP//kB3//Y8g//uP + If/5jiT/+I4l//eNJ//1jSj/9I0p//KMLP/xiy7/6ok0/96GQP/QgU//wXxg/6x2d/+TbZL/fmeo/3Nj + tP9tYbv/Z2DB/19dyv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3+XFzN8VtbzMNbW8xiW1vMFWJizwBbW80AXFzNAFxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxsA/48dAP+Q + HQD/jhoA/48dAP6QHQD+kR8A/44aBv+PHBD/kB0c/5AdL/+QHV3/kB6J/5Aerf+QHtH/kB7h/5Ae6P+Q + Hu//kB74/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHf//kB3//5Ac//+R + HP//kRz//5Ad//yPIf/4jiX/84wr/+yKMv/liDr/1oNJ/8J9X/+rdXj/jGua/3Jjtv9lX8P/XVzM/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Ftb + zM9bW8xuW1vNHWNj0ABcXM0AXFzNAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48cAP+PHAD/jx0A/5AdAP+OGgD/jx0A/5AeAP+RIAD/jxwJ/pAeFv6QHSv/jx1S/5AdeP+Q + Han/kB7S/5Ae5P+QHu//kB75/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ec//+R + HP/+kB//+Y4l//OMK//niDj/yX9X/6Vzfv+AZ6b/bmK5/2Nexf9cXM3/W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Vxczd5cXM2GXFzNIlxczQBcXM0AXFzNAFxc + zQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48gAP+PHgD/jx0A/44bAP+PHQD+kB4A/5EgAP+P + HAr/kB4a/5AeL/+QHV3+kB6O/pAdxf+QHuD/kB7r/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+QHf/6jyP/8Isu/9+G + P//Fflv/nHCI/3xmqv9qYb7/YF3J/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczeRcXM2IXFzNIlxczQBcXM0AXFzNAFtbzQBaWswAAAAAAAAAAAAAAAAAAAAAAP+P + HgD/jiIA/48eAP+PHQD9kR8A/48cCv6QHhj/kB4u/5AdYP+QHp//kB7Q/5Ae5P+QHvH/kB7+/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ae//qOJP/uizD/24VE/7R4bv+Ka5z/aWC//1xc + zf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeRcXM2IXFzNImNj + 0ABbW80AWlrMAFpazABbW8sAAAAAAAAAAAAAAAAA/5AdAP+RHAD/jh8E/48dEP6QHSn/kB1d/5Ael/+Q + Hs7/kB7l/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP/+kB7/9Y0p/92FQv+qdHn/fmeo/2dfwf9cXM3/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeRcXM2GW1vNHWJizgBaWssAW1vLAFxczABfX88AAAAAAAAA + AAD/kBwE/5AdH/+QHkn/kB16/pAduv+QHuL/kB7z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf//KM + LP/ahEX/p3R8/3Vks/9gXcn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zd5bW8xuWlrLE1pa0ABdXcwAXl7OAGBg0AAAAAAAAAAAAP+QHR3/kB2V/5Ae2/+QHuz/kB77/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac//6QH//uizD/xn5b/45sl/9sYbv/XVzM/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VtbzM1bW8xYW1vMC1paygBSUsIAEhJ7AFpa + yQAAAAAA/5AeK/+QHs//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/4jiX/4Yc9/7d5a/+BaKX/ZF/E/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+ltbzLhcXMw0ZWXSAV1dzABbW8sAWlrJAAAAAAD/kB4t/5Ae1P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/+kB7/9o0o/9iE + R/+bcIj7amC98Vtczu5cXM3zXFzN+lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczIBbW8sWXl7RAFdX + wgBZWcYAW1vLAP+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//Y8g/+iJNvG3eWvGeWWtoVxczZlbXM6zXFvMylxc + zdlcXM3lXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM39W1vMzVtby0xaWsoGWlrLAFtbywBbW8sA/5AeLf+QHtP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/PmOJObqiTSaunpoO1pbziBYWtAmXFzNOFxczWBbW82VW1vMxlxczeNcXM34XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zW1vNnVtb + zB9bW9AAW1vIAFtbygD/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHOL/kRqF/5YKH2Re + wwDCeFYAXVzLCltbzRdbW8wqXFzMXVxcza9cXM3hXFzN+lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3bW1vMV1tbywhbW8wAWlrNAP+QHi3/kB7T/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHuT+kB6I/pAeI///AACObJcAWVrPAFxczgBcXMwKXFzNKltb + zF9bW8y6XFzN8Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfVbW82cWlrNHF1dywAAAP8A/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HuT+kB6G/pAeHf+VFwD/nAAALE3/AFlZygBDQ8oAW1vLClxczTlbW82eXFzN61xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzM5aWs1BV1fPA1lZzgD/kB4t/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt7/kB1u/48cE/yRJQD/kREA/6IAAF5e + zQBaWssAYGDQA1xczTJbW82gXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61xczX1cXMwRXFzMAP+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/f6QHc3+kBxY/48cC/6QGwD6kB0AXl7PAP///wBYWM0AWVnQBVpazURbW8zJXFzN/Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzNtFtbzSNeXswA/5AeLf+Q + HtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ec//+RHP//kRz//5Ec//+RHP//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+v6QHbj/kB40/48iAf+P + HwD/kB4AVlvYAFZW1QBeXssAWlrME1tbzHtcXM3sXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3YW1vNPlBQ0AL/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//6QH//5jiT/9o0n//OM + K//wiy7/7oow/+yKMv/rijP/6ok1//GLLfL9jyHh/5Ae3/+QHuH/kB7l/5Ae6v+QHu//kB7z/5Ae+v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae6/+QHoD/kB4W/pEcAP+NIgD/mgAAWFjOAFhYzgBSUs8CW1vNQlxc + zdpcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeVcXM1gW1vMC/+Q + Hi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB72/5Ad6/uPI+jniDj61YNK/8R9Xf+6emj/rXZ2/6Fyg/+Yb4v/k22R/5JtkviUbpHWpXN/k+eI + OVT/kRtK/48dVP+PHWH/jx11/pAeiP6QHpj+kB20/pAdyv+QHtn/kB7l/5Ae8v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB79/pAdzf+Q + Hkz/jyAG/48eAP+PHQACOf8AfX22AF1dywBbW80mW1vMwVxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN71xczYdcXM0X/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9f+QHuf/kB7Z/pAdx/+QHqL/khl60IFQdn1nqeNyY7b/bmK6/2th + vf9oYMD/ZF/E/2Jexv9hXsfmYl7GqmRexEtqX74ZtXdvB/+SDwT/jhoH/48bCv+PHRD+kB4V/pAeGf6Q + HSD+kB0n/5AeOP+QHWD+kB6V/pAdxv+QHuP/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7z/5Aenf+QHR//kSMA/44XAP+TDQBbW80AXFzNAFxc + zR5cXM2tXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNp1xc + zSD/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7w/5Ae4v+QHtD/kB6h/5Aeaf+Q + Hjr+kB0m/pAeG/+hAA1zY7QxWlvP11pb0P9aW8//WlvP/1tczv9bXM75W1vO0FpbznFXWtElPE/tBIdr + oQDCe2AA/5IVAP+PHAD/jxwA/48dAP6QHgD+kB4A/pAdAP6QHQD8nCUA/48cCv6QHhf+kB0q/5AdXf6Q + Ha//kB7h/5Ae+v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7b/5AdV/+PGwj/jxwA/48dAFxczgBcXM0AXFzNHlxczatcXM34XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8y/XFzMKf+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb/kB7m/pAdxv6QHoz/kB1V/5AdLf+QHhr/jx0N/1kaAP6QHQD/khkAkG2VAFhb0ShcXM3XXFzN/1xc + zf9cXM3/XFzN61xczaxbW81JWlnNEFxe0wBXWdAA0pBeAK10dgD/khQA/48cAP+PHAD/jx0A/pAeAP6Q + HgD+kB0A/pAbAP+PHQD/jx0A/pAdAP6RHwD+jxwK/pAdKv+QHV/+kB26/5Ae8f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvX/kB6c/5AeHP+QHQD/eS8AXFnHAFtb + zQBcXM0iXFzNuVxczfxcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zdNcXM05/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+v+QHu3/kB7T/5Aeof+QHWf+kB0u/pAdFf6PGwf/kSAA/5AeAP+P + HQD/jx4A/pAcAKRzfwBaW88AXFzNJ1xczclcXM30XFzN71xczddcXM2HXFzNK1dXzwReXssAWFjNAFpa + zQAnJ+kAVlbPAFdXzwAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jyIA/48dAP+PHQD+kB0A/44aAP6Q + GgDrpiIA/o8bCv+QHjn/kB6e/5Ae6/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//6QHs7/kB5B/48gA/+QGwBWWtQAYGDLAFxczThcXM3VXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2VpazkX/kB4t/5Ae0/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+v+QHuP+kB22/5Aee/+Q + Hjv/kB4c/48dDP2SHgD+kB0A/48cAP+NFgD/kB0A/48dAP+PHgD/jyIAXFzNAFxczQBcXM0WXFzNdFxc + zY1cXM2CXFzMU1xczBpUVMUAW1vOAJeXsABXV84AWVnNAFpazAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx0A/41DAP+PHQD/kBwA/48gA/+QHjL/kB6g/5Ae8v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae6/+QHn3/kB4R/5EcAFZZ + 0QBbW80PW1vNc1xczepcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3ZWlrNSf+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae+v+QHuP+kB2y/5Adav6QHSn/kB4Q/44gAf+QHgD/jx0A/44dAP6QHQD/jxwA/48aAP+P + GwD/jxsAAAAAAAAAAABcXM0AXFzNAFxczQNcXM0SXFzNFlxczRNbW8sIX1/SAFxczABbW80Ara2sAFZW + zwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyIA/48eAP9QmwD/kB4A/48gBf+QHkT+kB3J/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB76/pAdtP+QHSPJf1UAYGDQA1xczUJcXM3NXFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdtbW8xV/5AeLf+QHtP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+QHuP+kB2y/5Adav6QHSj/jx0M/JMeAP+Q + HgD/kB8A/5EdAP+PHgD/jx0A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFtbzABaWskAW1vLAFxczABcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48fAP+NIgD/kBwA/48dE/+Q + HXv/kB7s/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7X/5AcPnpl + qQlbXM86XFzNrlxczfhcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN3VtbzF7/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Huv+kB20/5Adav6QHSj/jx0M/JMeAP+PHQD/jh0A/5AdAP+QHwD/jCIA/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AW1vMAFtbygBbW8sAW1vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/48fAP+PHgD/jR8C/5AeQv+QHtr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHubniDdybmG4WltczrFcXM3yXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3bW1vMU/+QHi3/kB7T/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvj/kB7V/pAehv6QHS3/jxwL/JMeAP+PHQD/jh0A/48dAP+P + HQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyAA+5UOAP6Q + HQD+kB0m/pAdwf+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i9cd+ + WtBrYbzdWlvP91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczdZcXM08/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7m/pAdq/+Q + Hkv+kB4WvaVnAP6PHQD/jh0A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/kB0A/5AdAP+QHR7/kB2t/5Ae+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/7jyL+yX9X/G5iuf9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN0lxczS7/kB4t/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB75/5Ae0P+QHnH+kB0l/o8eBP6RHQD+kB4A/pAeAP+OHQD/jx0A/48dAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+Q + HQD/kB0A/5AdHv+QHav/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//6Q + H//Xg0j/dGOz/1pbz/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8zLW1vMKv+QHi3/kB7V/5Ae//+QHv//kB7//5Ae6/6QHaz/kB5J/48eEP2S + HwD+jx0A+ZYTAP+PHwD+kB4A/pAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyIA/pAbAP6QHQD+kB0i/pAduf+QHvz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/+SHOv98Zqr/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wo/5AeKv+Q + Hsb/kB70/5Ae7/+QHtf+kB6H/pAdK/6PHQT/kBwA/44dAP+PHQD/iDUA/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+P + HgD/jx4A/KgiAP+QHjj/kB7V/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/6Ik2/4Noo/9cXMz/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM31W1vNn1tbzR3+kB4Y/pAecv6QHo3+kB6C/5AdU/6QHRr/iwEA/pAeAPaa + BgD/jx4A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx4A95EcAP+QHQD/jx4P/5Aec/+QHur/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//piTb/hWmh/11czP9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczepbW8xzW1vMEf6Q + HgT+kB4R/pAeFv6QHhP/jxsI/JMmAP6QHQD+kB4A7aADAP+PHwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAFNY0wAPQv8As3dvAP+j + AAD6jiIA/5EVA/+QHkL/kB7N/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/+qJNP+La5r/X13K/1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN3ltbzEpZWccF/pAeAP6QHgD+kB4A/pAeAP+PHAD/jhkA/48cAP6Q + HQD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX88AYGDPAGxpzwBSWdgAZV7AAAAU/wCPbJUAwHxgAPqNJAf6jyI8/pAerv+QHvj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/7Ioz/5Btlf9gXcn/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zIW1vMKVxc + zgD+kB4A/pAeAP6QHgD+kB4A/48cAP+PGgD/jxsA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAWVvQAEdW4gBwYrgAsHNrADlR9ABmXsAA7YkxAFVZ + 0gnQgVAh+I4lVvqOI7f+kB/0/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+RHP/qiTX/imub/15dyv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN9VtbzZ9bW80aW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/kBoA/5MOAPCK + LACsdXYAADP/AGlgvgCecIMAAAD/AUlV3xCLapgor3ZyXNyFQ6z6jiTe/pAe+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Eb/+eIOP9+Z6j/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3mW1vNZ1pa + zAxaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxsA/48bAP+PGwD/jx0A/pAeAP+QHAD/lgEA7YkvAMR8XAD/rAAAPFHuC49slR6ecYY6nHCHeLh5 + aMDihjzj940m+P6QH///kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRv/5Ic7/3dlsP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/ltbzMNbW8wtXl7NAFlZzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/48gAP+PHgD/jx0A/pAeAP+QHQD/jhgA/48bAP+PHQD+kB4A/pAdAPKN + LQDlhjcKyn5VGLx6Zi2pdHpjtnhsq8+AUdbrijPr8ows/fuPI///kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHP/fhj//dWSy/1lb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3qW1vMdltb + zA9bW8wAW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+PHAD/jx0A/5AeAP+QHgD/lRQA/48eAP+P + HQD+kB4A/5AdAP+RIAD/jhoG/48dDf6QHhb+kB0f/5EbMPWMKF/bhEOZ3oVBy/CLLuXyjCv49o0o//6Q + H///kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/9mERf9zY7T/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/VtbzL9bW8wtXFzNAFtbzABbW8wAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHQD/jx0A/48dAP6Q + HgD+kB0A/44aAP+PHAD/kB0A/5AdAP+QHQD/jR4C/48dDP6QHhX/kB0e/5AdLv+PHVH/kB1s/pAejP6Q + HbT/kB7T/pAf5fmOJPT5jiX//5Af//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/5jiX/w31f/21i + uv9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3gXFzMZltb + zAtbW8wAW1vMAFtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxsA/48aAP+PHAD/kB0A/5AdAP+OHAD/jx0A/pAeAP6QHQD/kSAA/48cCf+QHRP/kB0d/5AeKv+Q + HkL/kB5o/5Aeiv+QHq3/kB7R/5Ae4f+QHuf/kB7w/5Ae+/+QHv//kB7//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec//KMLP+nc33/Zl/C/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81tbzZlbW80fWVnPAF1dzABdXcwAW1vMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxoA/48cAP6QHQD/jhcA/48cAP+QHQD/kB0A/5IgAP+P + HQv+kB4W/pAdH/+QHTD/kB1b/5Aegf+QHav/kB7Q/5Ae3f+QHuf/kB7v/5Ae+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/6ok1/4xr + mv9fXcr/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8zCW1vNO15e + 0QJcXM0AXFzNAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+PIwD/jx4A/48cAP+O + GAD/jxwA/pAdAP6RHwD/jxsH/5AdEv+QHR3/kB4x/5AeZP6QHoz+kB20/5Ae1P+QHuT/kB7t/5Ae+P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/bhUP/d2Ww/1pbz/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN0VtbzFtbW8sLWVnLAFVVyQBUVMgAXFzMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48cAP+PGwD/jx0A/5AcAP+PHgD/jx0A/ZEgAP+PGwf+kB0V/pAdKv+QHVP/kB5//5Aeq/+Q + HtL/kB7m/5Ae8P+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+Y4l/8F9 + YP9tYbv/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdFcXMxeW1vLEGFh + 1gBcXMwAXl7OAGBg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48dAP+PHQD/jx0A/44aAP+PHQD/kB4A/4ccAf+P + HQ/+kB0n/5AdVP6QHoz+kB3F/5Ae4P+QHu3/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/viy//nnGG/2Rexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3RXFzMXltbyxBdXc4AW1vKAFtbywBcXMwAX1/PAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + GwD/jx0A/44dAP+PHQD9kR8A/48cCv+QHhv/kB45/5Addv6QHbr/kB7f/5Ae8P+QHv7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf/9iE + R/95Za7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzNzlxczF5bW8sQXV3OAFtb + ygBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+OIwD/jx0A/44bAP+PHAD8kh0A/o8dDf6QHSn/kB1f/5Aen/+Q + HtP/kB7r/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/yjCz/qHR8/2Zfw/9bXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61xcza5bW8xPW1vKD1xczQBbW8oAW1vLAFtbywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AeAP+QHgD/jx8A/4wlAP6P + HgD9kh8A/o8cC/6QHSn/kB1s/pAduf+QHuL/kB71/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf/9aD + Sf95Za7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczdxcXM2IXFzNK1payQZhYdcAWlrJAFtb + ygBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/jSIA/5AeAP+QHwD+kRwA/o8eB/6QHSb/kB1l/pAduP+QHub/kB77/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/rijP/nXGH/2Nexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze9bW8zBXFzMZVxczRtbW8kAW1vLAFZWwgBaWskAW1vKAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jx0A/48eAP+NIwD/kB4A+o8bAP+Q + Hhb/kB5U/pAds/+QHuT/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/944m/757 + ZP9wYrf/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfBcXM3PXFzNhltbzDFbW8sLWlrRAFxczQBcXMwAVVW/AFpa + yQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jx0A/48dAP+PHAD/jx0A/pEYAP6PHgb+kB0q/5Aef/+QHtb/kB77/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//6QH//YhEf/gmik/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM3TXFzNiFxc + zTRcXM0Thob7AFxczABdXcwAXFzMAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHQD/jx0A/48cAP+RJAD/jx0Q/5AeUP6Q + Ha7/kB7p/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/4oc9/5Zv + jv9jXsb/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN9VxczehcXM3OXFzNi1tbzUNbW80WWVnOAFxczQBcXM0AXFzNAF1dzABcXMwAXFzMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxwA/48dAP+PHQD/niIA/48dF/+QHWf/kB7Q/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ae/+KHPf+Yb4z/Zl/C/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM39XFzN71xczdZbW82iW1vNaFxczTBcXM0UV1fPBF9f + zABbW84AXFzNAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48bAP+PGwD/jxwA/4IeAP+PHRv/kB12/5Ae2f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHv/ihz3/mG+M/2Zf + wv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZcXM3rXFzN21tb + zL1cXM2HW1vNRFpazR1aWswMYGDPAFxczQBZWc4AKSnhAFlZzgBbW80AXFzNAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HAD/jxsA/48aAP+QIAD/jxwV/5Addv+QHt3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/7jyL/4IY//5hvjP9mX8L/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzN8lxczedcXM3QXFzNpFxczXpbW81EW1vNJVtbzRRXV88EXV3MAFpazABZWcsAW1vNAFlZ + zgBTU9AAV1fPAFdXzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+OGwD8lS8A/48bEP+QHWD/kB7X/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/8ows/8t/Vf+PbJb/ZV/D/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+Vxcze9cXM3kXFzN11tbzL5bW82WW1vNZltbzTFbW80bW1vMEVZW + zgNdXcsAW1vNAFlZzgDS0pcAWVnNAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+R + GQD/kRoA/pAbAP6PGwr/kB1Z/5Ae0P+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//pAf/+mJNv+yd3D/d2Wv/2Bdyf9cXM3/XFzN/1xczfZcXM3sXFzN4lxczdFcXM2tXFzNiFxc + zV9cXM04W1vMJFtbzRhaWswMX1/PAFtbzQBbW8wAWVnOAH5+twBbW80AWlrOAFNT0ABXV88AV1fPAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+QHgD/kCED/5AeOf6QHbr/kB78/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//OMK//Vg0r/nHCI/25iuvZcXM3tW1zO5Fxc + zdlbW8zHW1vNolxczH5cXMxUXFzNLlxczR5cXM0VXFzMCkVFxgBbW8wAW1vNAFpazABZWcsAW1vNAFxc + zABZWc4AVFTRAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+O + GQD/jRcA/5EiAP+QHR7/kB6Y/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//Y8g//WN + KP/niDjzuXpo6X9np+BkX8TPW1vNpFtczX9cXMxdXFzNOFtbzCZbW80bXFzMEltbygddXc4AXFzNAFxc + zQBcXMwAXl7NAFhYyQBbW80AWlrMAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+PHAD+jxsJ/5AdXP+QHt3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//pAf//2PIPP3jSfey39VxpNtkZl2ZLBzW1vMS1RZ1StbW84bXFzMElxc + zAlERMQAW1vMAFtbzQBcXMwAW1vLAFlZyABcXM0AXFzNAFxczABdXc0AYmLSAF9fzwBfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HQD/jh0A/JMdAP6QHSn+kB22/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf9/+QHuj8jyHR8Yssl/GL + LEm6eWgnVlnSGT1R7A9OVdIEWVvTAFtbzQBcXMwAXFzMAF5ezgBYWMoAW1vNAFxczABbW8sAW1vLAFtb + ywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+PHQD/jx0N/5Adbf+QHub/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//+Q + Hv/+kB/+/5Ae8P6QH9f6jiOm/Y8gafyPIDHmiDcY5Yc5BK12dABwYrYAU1jVAFlaywBYVbcAW1vMAFxc + zABcXMwAXV3NAGJi0gBfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+O + IAD6lRYA/pAdAP6QHSP+kB24/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kRz//5Ad//mOJP/7jyLx/pAf3PuPIcH9kB+I/pAfRfiOJR/6jiIM844sAOyK + MQDsiTEAJEz/AINoogBWWdEAW1rKAFpayABaWskAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAfAP6PHwD+jx8E/5AeSP+QHtz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ec//+RHP/+kB//940n/++LL//miDn23IVD0OWH + OpH3jSZI+48gJfuPIBT/kBwD944mAPyOIQD/kBcA8osrAOyKMQD/mAIA/5AcAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+kB4A/pAeAP6QHhb+kB6Q/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+RHP//kRz/+48i//WN + Kf/uizD/5Yg5/9WCSv+7emf/n3GE9olqnbCdcYdD14NJFuOFPQT0jScA/I8fAP+QHgC5i1MA/Y4gAP+P + GgD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6QGwD+kB0A/pAdJv6QHcb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+R + HP//kRv//5Ae//mOJP/zjCv/7Ioy/+KHPf/Kf1b/s3hv/5lvi/9/Z6f/c2O1/2thvP1lXsLKV1nRSAAy + /wTFfVoA6Ig4AK15bAD9jx8A/5AeAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWlrJAFpayQBaWsgAWlrKAFtbzABbW8wAWlrMAFpazABaWswAWlrMAAAA + AAAAAAAA/48dAPueJgD/kB44/5Ae2f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP//kRv//5Ad//mOJP/zjCv/7oox/+eIOP/bhUT/w31e/6x2d/+SbZP/eWWu/29i + uf9pYL//Yl7G/1xczf9aW8//WlvP7Flbz3lYWc4SVVvUAP//AADJflkA/54AAP+QGwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8sAWlrKAFlZ + xgBaWsoAW1vMAFtbzABaWswAWlrMAFpazABaWswAAAAAAAAAAAD/jx0A/48cCv+QHV7/kB7k/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//5Ec//6QH//3jSb/8Yst/+uKM//ghj//xX5d/612 + dv+Xb43/gGem/3Rks/9tYrr/Z2DB/2BdyP9aW8//WlvP/1pcz/9bXM7/XFzN/1xczf9cXM3UXFzNOXZ0 + ygBcXM0AWlrOAFlZzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF9fzwBgYNAAVlbJAFtbzABaWsoAXl7TAFlZyAVbW8sOW1vMEFpazAtaWswCWlrMAFpa + zAAAAAAAAAAAAP6QHgD+kB0W/pAejP+QHvD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+RHP/9jyD/9Y0p/+yK + Mv/khzv/1YJL/7x6Zf+mc37/jGuZ/3hlr/9tYrr/aGDA/2Jex/9cXM3/WlvQ/1pbz/9bXM7/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+VxczbBcXM0gW1vNAFhYywB9fd0AV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWswAW1vMAF1dzgBWVsoAXFzNAF1d + 0ABbW8sVW1vMSFtbzG9bW8x1W1vMWVpazBBaWswAWlrMAAAAAAAAAAAA/pAdAP6QHSL+kB28/5Ae/f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//yPIf/zjCv/6Ig3/9SCS/+0eG7/km2S/3plrf9yY7b/bGG8/2Zfw/9fXcr/WlvP/1pb + z/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM31W1vNnltb + zRpbW80AW1vNAGBg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABaWskAWlrJAFhYwwBbW8wAWlrMAFlZywBfX9ECW1vNI1tbzXhcXM3RXFzN6lxczetbW8y5W1vMI1tb + zABbW8wAAAAAAAAAAAD/kB4A/5AeKv+QHtT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf//iOJf/qiTT/z4FR/6x1d/+Hap7/c2O0/2lg + v/9hXcj/WlvP/1lb0P9aW8//W1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRbW82bW1vNGVtbzQBbW80AVlbPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX88AYGDPAElJwABbW8sAU1O5AFtbywBiYs8AWlrMDltb + zTpbW82aXFzN5Fxczf9cXM3/XFzN/1tbzM1bW8wnW1vMAFtbzAAAAAAAAAAAAP+RHQD/kB4x/5Ae2f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hfn3jibnyX9Y7ZRukPx0ZLP/Z1/B/15dy/9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+1xc + zbZbW80jXl7MAISEuABSUtMAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXV88AV1fPAFJS + 0QBaWs4AV1fLAFxczQBdXdEAW1vKBltbzSZbW8xsW1vMvlxczfFcXM3/XFzN/1xczf9cXM3/W1vMy1tb + zCZbW8wAW1vMAAAAAAAAAAAA/5UXAP+QHjf/kB7a/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB70/5Ebud+FP3N5Za2sYV3H9Ftczv9bXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2FtbzUNVVdACWVnNAFpaywBbW8oAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABaWskAWlrJAFpaxgBZWcwA7++CAFlZzgBaWs0AXl7RAltbzBpbW8xTXFzNrVxc + zeRcXM37XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jh4E/5AeR/+Q + Ht7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v6Q + HbD/khc8lW2OGllbz3lbXM7rXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3uXFzMgltbyxZeXtAAW1vGAFxczQBZWc8AV1fPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8wAW1vMAFtbzABbW8sAVVW8AFpa + ywBdXcwAVlbPBFtbzRdcXM0+XFzNkVxczdlcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+OGgj/jx1U/5Ae4v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv3+kB3K/pAdSP+eAAQxTvoHXFzNWFxczeBcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf1bW8zNW1vLUFxcywdZWcsAUFDdAFpa + zgB9fd0AYGDPAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyAA/48eAP+PHQD/jx0A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxc + zABcXMwAXFzMAFxczABcXM0AWlrLAFtbzABdXdAAWVnJBVpazRpbW81GW1vNklxczdNcXM3yXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/48aCv+P + HVv/kB7j/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae7P+Q + HXn/jx0S8owpAFxaywBbW8wsW1vMwlxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2xXFzNO1pa0AVeXssAXFzOAFNTxgBdXc4AamrXAGBgzwBfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx4A/48eAP+PIQD/jx4A/48dAP+PHQD/jx0A/48dAP+P + HQD/jx0AAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAXFzMAFxczABcXMsAXFzMAFxczQBfX9AAW1vMDlxc + zCJbW8xOW1vNlVxczdVcXM3zXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jhoI/48dVP+QHuH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7U/5AeOf94GgD/mgAAWlvOAFtbzRlbW82bXFzN9Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM2vW1vNSFpa + zBJhYc4BWlrLAF1dzQBYWMoAW1vNAFhYzgBWVtAAV1fPAFdXzwAAAAAAAAAAAP+PHwD/jx8A/5AcAP+P + HQD/jx0A/5AaAP+OHwX/jx0O/48dEP+PHQv/jx0C/48dAP+PHQBcXMwAXFzMAFxczABcXMwAXFzNAFxc + ywBcXMwAXFzNAFpazQBcXMwJXFzNFVxczTFcXM1xXFzNq1xczdpcXM3zXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+O + HgX/kB5L/5Ae3/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+Q + HrD/kB0g/5AdAMd+WABcXMwAXFzMClxczV9cXM3fXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZbW8zKW1vMeFxczTFcXM0QY2PRAVtbzABbW80AV1fOAISE + rwBbW80AXFzNAFtbzABbW8wAWFrQAIpqmgDehj4A/5AdAP+WJgD/jx4V/48eSP+PHW//jx11/48dWf6P + HRD/kRcAlW6PAFtbzABcXMsAXFzMAFxczABcXM0AXFzOAFxczAlcXM0VW1vMLFxczVxcXM2QXFzNzVxc + zepcXM34XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/44hA/+QHkb/kB7e/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB71/5Aenv+QHhr/kB4A9o0oAFxcywBcXM8AXFzNJFxc + zalcXM33XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf1cXM3nXFzNtlxczXRcXM04XFzNHVpazA1QUNACXFzLAFxczQBcXM0AW1vMAFtbzABVWtMAdmOuANaC + RwD/lBYC/5AeI/+QHnj/kB7R/5Ae6v+QHuv/kB25/5MTIbl6ZwBYWtEAW1vMAFxczgBcXMsJXFzME1xc + zR1cXM0vXFzNXVxczY5bW8zFXFzN41xczfFcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAA + AAD+kxoA/5AeNP+QHtb/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HvT+kB6b/pAeGf6QHgD/kB0AW1zNAFxczABcXMwKXFzNYFxczd9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM35XFzN6VtbzM5cXM2mW1vNbVpa + zUFbW80oXFzNHVxczRVbW8wQWlvMD0ZV4wpIVN8J0IBOE/uPITv/kB6a/5Ae5P+QHv//kB7//5Ae//yP + INDOgVE3OVDxFFxczB5bW8wjXFzNMFxczFtcXMyBXFzNq1xczdJcXM3kXFzN8Vxczf5cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP6QHQD+kB0k/pAdwP+QHv3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/6QHbb+kB0j/pAdAPqYEgCAZ6YAXFzLAFxc + zwBcXM0kXFzNplxczfZcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfdcXM3oXFzN21tbzMlcXM2rXFzNi1tbzXhZW89xZ1/BYKBx + glvjhjqC+48hwv+QHvH/kB7//5Ae//+QHv//kB3/7Ysw44VpoJVXWtKSXFzNq1tbzMBcXM3VXFzN41xc + ze1cXM34XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAA + AAAAAAAA/5AeAP+QHhr/kB6e/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae2P+QHkP/jyAC/48fAP+QHABaW80AXFzMAFtbzAhbW8xVW1vMz1xczf1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tczvhaW8/wXVzM625iuemXb47k14NI4/mOJO3+kB78/5Ae//+QHv//kB7//5Ae//+Q + Hf/fhj/7dmSx8Flb0PJcXM34XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jx0A/48dEP+PHXn/kB7r/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7u/5Aegv+QHhb+kRwA/40iANiC + SQBaWskAXl7QAFtbyxhcXMyAXFzN6Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM7/Xl3K/2thvf+DaKP/uHlq/+WI + Ov/5jiT//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtb + zAAAAAAAAAAAAP+PHAD/jhsI/48dWf+QHuD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv3+kB3N/pAeUP+PHwf+kB4A/4orAJxwhwBdXcwAYmLOAVxczTFcXM2tXFzN91xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tc + zv9bXM//YF3J/2xhu/+Iap3/uXpp/+OHPP/3jSf//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/44bAP2RHwD+kB0s/pAdwv+Q + Hv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf+kB2x/pAdO/+P + HwX+kBwA/48eAMd6TABUVtAAWlrQBltbzUdbW8zEXFzN+1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1zO/1pbz/9bXM7/ZV/D/3Fjtv+ObJj/u3pn/+SHO//3jSf//5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltb + zABbW8wAAAAAAAAAAAD/kB0A/5AdAP+QHhn/kB6b/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvL+kB2v/pAdSP+PHRL/iyAB/48cAO2JMQBZXtEAWlrLDFtb + zFtbW8zPXFzN/Fxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/WlvP/1tczv9iXsf/amC+/3xm + q/+kc3//yX9X/+eIN//3jSb//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+PHQD/jx0A/48cCv+Q + HV//kB7f/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb+kB3K/5AdeP+QHTH/jx0Q/4clAfaNJgDEfF0AV1rQFVtbzHJbW8zTXFzN/Fxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1zO/1tc + z/9aW8//W1zO/2Jex/9qYL7/eGWu/5dvjf+4eWr/34ZA//KMLP/6jyP//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tb + zCZbW8wAW1vMAAAAAAAAAAAA/48bAP+OGwD/kiAA/5AdJP+QHan/kB73/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv3/kB7n/pAdtv+QHXT/kB04/5AdHf+R + Fw3lhTsCQlLmFlVZ0mdZW87KWlvO+Vtczv9bXM7/W1zO/1xczv9cXM3/XFzN/1xczf9cXM3/XFzO/1tc + zv9bXM7/W1zO/1pbz/9aW8//WVvQ/1tczv9iXsf/aGDA/25iuf96Zqz/l2+N/7d5a//ahEX/7Yox//aN + J///kB3//5Ec//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jxwA/48cAP+P + HAD/jxwK/5AdYP+QHt//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB75/5Ae6f6QHc7/kB2m/5Aebf+QHUD/kBwovXtjMXplqnBoX77SZV/C+mNe + xv9gXcj/X13K/11czP9cXM3/XFzM/11czP9fXcr/YF3I/2Nexf9nYMH/a2G9/29iuf9yY7X/e2as/5Zu + jv+udnT/yX9X/+KHPf/uijD/9o0o//6QHv//kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+PHAD/jxwA/44bAP+SHwD/kB0k/5Adpv+QHvb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvf/kB7o/5Ae2/+QHcn/kB2q8YwsmMl+V7SqdXfqmnCJ/pJtk/+La5r/hGii/39np/+CaKP/hWmh/4tr + mv+SbZP/m3CJ/6x2d/+7emf/yX9X/9eDSP/khzv/7Yox//SMKv/7jyP//5Ec//+RHP//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAAAAAAAP+P + HAD/jxwA/48cAP+PGwj/kBxV/pAdz/+QHv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvj/kB3v/Y8g7vSM + KfnuizD/7Ioy/+qJNP/oiTb/54g4/+iJN//piTb/6ok0/+yKMv/uizD/84wr//eNJ//6jyP//pAf//+R + HP//kRz//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAAAAAAA/48cAP+PGgD/jhgA/pMlAP+QHRj/kB6A/5Ae6f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP//kRz//5Ec//+RG///kRv//5Eb//+R + G///kRz//5Ec//+RHP//kBz//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMxbW8wmW1vMAFtbzAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PHAD/jx4A/48jAf+QHjH+kB2t/5Ae9/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rk + s/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/W1vMyVtbzCVbW8wAW1vMAAAAAAAAAAAAAAAAAAAAAAD/jxsA/5QPAP6UGAD+kB0A/o8eBv6Q + HUf+kB3E/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM37XFzN71xczdlcXM2VXFzNGlxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48gAP+NIwD+kBoA/48cDP6QHFv+kB3P/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92G + Qf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfxcXM3wXFzN21xc + zbZcXM2FW1vNRVtbzR1dXc0EXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48eAP+O + HAD+kCIA/48cFf+QHXL+kB3T/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN91xcze5cXM3fW1vMvlxczYlbW8xNXFzMJVxczRNXV88EXl7MAFtbzQBcXM0AXFzNAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jxwA/48cAP+PHAD/jCEA/48dGf6QHWv+kB3N/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZcXM3sXFzN4lxczc9cXM2mXFzNhVxczFVbW8woXFzMFFpa + yQVdXc8AXFzNAFlZzgD//1kAWVnOAFtbzQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxwA/48dAP+PHQD7kxgA/48cE/6QHFv+kB3H/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf1cXM31XFzN7FxczeJcXM3PXFzNpFxc + zH1cXMxUXFzNLVtbzRxcXM0UW1vLB1xczgBcXMwAW1vKAFRUvABbW8wAWlrOAFNT0ABXV88AV1fPAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+PHAD+kCIA/48dDv6Q + HlD+kB24/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczfRcXM3tXFzN51xc + zeFcXM3VW1vMv1tbzaBcXMx+XFzMVFxczS1bW80bXFzMEltbygddXc4AW1vNAFxczQBbW8wAWlrJAFtb + zABbW8sAWVnHAFpayQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHQD/jxwA/48cAP+PHQD9kRYA/o8eCP+QHjn/kB6a/5Ae4/+QHv7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/fhkD9dWSx9Flb0PJcXM3vXFzN7Vxc + zelcXM3iXFzN3FxczdBcXM2wW1vNnFxczIFbW8xqW1vMUVxczS9bW8wiW1vNG1xczBJbW8oHXV3OAFtb + zQBcXMwAW1vLAFpayABbW80AXFzNAFtbzABbW8oAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jx0A/48eAP+O + IQD+kB4A/5AhAv+QHiP/kB11/pAdxv+QHu7/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/+mJNOqBaKSlV1rSklxczYpcXMyAW1vMcltbzFZbW80+XFzNKlxczR9bW80aW1vME1pa + yw1aWsoGXFzOAFtbzABbW80AXFzMAFtbywBaWsgAW1vMAFxczABbW8sAW1vLAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48gAP+RHAD/jx4A+LI+AP+PHRD+kB45/pAeiP6Q + HdH/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/+o8izsR9Wzo6UPEUXFzMFVxc + zBJbW8wPWlrLCEpK0AFdXcwAXFzNAFtbzQBbW8wAWlrMAFtbywBaWskAW1vMAFtbzQBcXMwAW1vLAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/5AcAP+PHQD/jh0A/pAdAP6PJQH+kB0a/pAcWP6QHa3/kB7g/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB77/5Ae7/+QHtn/kB2U/5UMGK92cgBYW9EAXFzMAFtbzABbW8sAV1fOAN7ejQBbW80AW1vNAFxc + zABbW8wAW1vLAFtbywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48dAP+PHgD9kRsA/48eAPyS + IwD/jxsJ/pAdI/+QHV7+kB25/5Ae6v+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7w/5Ae2/6QHbb+kB6F/5AeRf+QHh39kB8E/5cHAHhl + rgBcXMwAW1vMAFtbzABYWM4AVlbQAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAPySFQD/jxwA/44YAP+PHAD+kR8A/o8bCv+QHjT/kB57/pAdtf+Q + Ht3/kB7x/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9/+QHu7/kB7f/pAdvv6Q + Hon/kB5N/pAdJf6QHhP+jx8E/5AdAP+QHQD/kB0A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+P + GwD/jhoA/48bAP+OGgD+kBsA/48hAv+QHhH+kB0m/5AdVP6QHo3+kB3H/5Ae4v+QHvT/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb/kB7s/5Ae4v+QHs//kB6m/5Aehf+QHVX+kB0o/pAeFP6PHwX+kRwA/pAeAP6PHwDmygAA/48eAP+Q + HQD/kB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48dAP6SFwD/kB8A/5AdAP2R + IAD/jxsH/pAeF/6QHTH/kB1b/5Aem/6QHcz/kB7o/5Ae9v+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv3/kB71/5Ae7P+QHuL/kB7P/5AepP+QHn3/kB1U/5AdLf+QHhz+kB4U/o8bB/2R + IAD+kB4A/48fAP+MIwD+kB4A/pAfAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/4wiAP+QHwD/kB0A/44YAP+PHAD+kB0A+JkhAP+PGwn/kB4a/pAdOP+Q + HXP/kB2k/pAduv+QHtX/kB7i/5Ae6/+QHvb/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+v+QHvT/kB7t/5Ae5/+QHuH/kB7V/pAdv/+QHqD/kB5+/5AdVP+Q + HS3/kB4b/5AeEv+PGwf/kSAA/5AeAP6QHgD/jxwA/44XAP6QHQD/jx8A/48fAP+PHwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+P + GwD/jxoA/48dAP2RFwD/jh0A/48cAP+QHQD/iiAB/48dD/+QHRz+kB0j/5AeNv+PHVT/kB15/5AdpP6Q + Hbr/kB7V/5Ae4v+QHun/kB7r/5Ae7v+QHvD/kB7z/5Ae9/+QHvj/kB77/5Ae/v+QHv//kB7//5Ae//+Q + Hv7/kB79/5Ae+/+QHvj/kB71/5Ae8/+QHvL/kB7v/5Ae7f+QHun/kB7i/5Ae3P+QHtD/kB6w/5AenP+Q + HoH/kB1q/48dUf+QHS/+kB0i/5AeG/+QHhL/jxsH/5EgAP+QHgD/kB4A/48cAP+NFgD/kB0A/pAeAP+P + HAD/jxoA/48bAP+PGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48hAP+PHQD/jx0A/5AbAP+P + HgD/jx0A/5AdAP6QHQD+liMA/44aB/+PHBH/kB0c/pAdI/+QHjX/jx1V/48dcP+PHXn+kB6G/pAejP6Q + Hpf/kB2n/5AdrP6QHbX+kB3A/pAdy/+QHtP+kB3L/pAdwv6QHb/+kB22/5Adq/+QHqD+kB6X/pAek/6Q + Hor/kB6A/48dcv+PHVb/kB4+/5AeKv+QHR//kB4a/5AeE/+PHQ3/jhoG/5EgAP6QHQD/kB4A/5AeAP+P + HAD/jRYA/5AdAP+QHgD/jxwA/48aAP+PGwD/jxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jyMA/48eAP+PHQD/kB0A/pEaAP+PHQD/jxwA/48dAP+Q + HQD+kB0A/pYjAP+OGgf/jxwO/48dEf6QHhT+kB4W/pAeGP+QHR3/kB0e/pAdIP6QHSP+kB0m/5AeKP6Q + HSb+kB0k/pAdI/6QHSH/kB0e/5AeG/6QHhj+kB4X/pAeFf+QHhL/jx0P/44bCP+LHAH/kB0A/5AdAP+Q + HgD/kB4A/48dAP+PGwD/jhcA/pAdAP+QHgD/kB4A/48cAP+PGgD/jxsA/48bAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/jyEA/48dAP+PHAD/jx0A/5AdAP6RGgD/jx0A/48cAP+PHQD/jx0A/pAeAP6Q + HgD+kB4A/5AdAP+QHQD+kB0A/pAdAP6QHQD/kB4A/pAdAP6QHQD+kB0A/pAdAP+QHQD/kB4A/pAeAP6Q + HgD+kB4A/5AeAP+PHQD/jxwA/48eAP+mAAD/kB4A/5AeAP+QHgD/jx0A/48bAP+PGwD/jxsA/48bAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/48hAP+PHQD/jxwA/48dAP+PHQD+kB4A/pAeAP6QHgD/kB0A/5AdAP6QHQD+kB0A/pAdAP+Q + HgD+kB0A/pAdAP6QHQD+kB0A/5AdAP+QHgD+kB4A/pAeAP6QHgD/kB4A/48dAP+PHAD/jx4A/48gAP+P + HwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP/////////AAAAAB//////////////wAAAAAAA/////////////AAAAAAAAA/////// + ////8AAAAAAAAAB//////////4AAAAAAAAAAD/////////wAAAAAAAAAAAP////////gAAAAAAAAAAAA + ////////AAAAAAAAAAAAAH///////gAAAAAAAAAAAAAf/////4AAAAAAAAAAAAAAB////+AAAAAAAAAA + AAAAAAP///4AAAAAAAAAAAAAAAAB///gAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAB/+AAAAAAA + AAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAABwAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAA + AAAAAAAAAAf+AAAAAAAAAAAAAAAABgAP/wAAAAAAAAAAAAAAAD4AP//AAAAAAAAAAAAAAAD+AH//4AAA + AAAAAAAAAAAH//////AAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAH///// + //AAAAAAAAAAAAAD///////gAAAAAAAAAAAAD///////wAAAAAAAAAAAAB///////wAAAAAAAAAAAAB/ + //////gAAAAAAAAAAAAA///////gAAAAAAAAAAAA////////AAAAAAAAAAAAAP//////4AAAAAAAAAAA + AAD//////AAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAD////AAAAAAAAA + AAAAAAAA///+AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAH//8AAAAAAAAAAAAAAAAAD//8AAAAA + AAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAH/+A + AAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAB//wAAAAAAAAAAAAAAAAA + A//4AAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAA + AAAAA///wAAAAAAAAAAAAAAAAA///8AAAAAAAAAAAAAAAAB///+AAAAAAAAAAAAAAAAH////gAAAAAAA + AAAAAAAAP////wAAAAAAAAAAAAAAB/////8AAAAAAAAAAAAAAH//////AAAAAAAAAAAAAA///////wAA + AAAAAAAAAAD///////8AAAAAAAAAAAAH////////AAAAAAAAAAAAH//////wAwAAAAAAAAAAAP////// + 4AMAAAAAAAAAAAP//////4ADAAAAAAAAAAAH//////8AAwAAAAAAAAAAD//////8AAMAAAAAAAAAAA// + ////8AADAAAAAAAAAAAH/////8AAAwAAAAAAAAAAA/////8AAAMAAAAAAAAAAAH////8AAADAAAAAAAA + AAAAf+AH4AAAAwAAAAAAAAAAAB/ABwAAAAMAAAAAAAAAAAADAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA + AAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAA + AAP4AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAf//AAAAAAAAAAAA + AAAAAB///4AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAP//////gAAAAA + AAAAAAAH///////+AAAAAAAAAAAAB////////4AAAAAAAAAAAA/////////AAAAAAAAAAAB///////// + +AAAAAAAAAAD//////////4AAAAAAAAAP///////////wAAAAAAAA/////////////wAAAAAAH////// + ////////4AAAAB////////// + + + \ No newline at end of file diff --git a/SecureDNSClient/Forms/FormStampReader.Designer.cs b/SecureDNSClient/Forms/FormStampReader.Designer.cs new file mode 100644 index 0000000..19390a2 --- /dev/null +++ b/SecureDNSClient/Forms/FormStampReader.Designer.cs @@ -0,0 +1,155 @@ +namespace SecureDNSClient +{ + partial class FormStampReader + { + /// + /// 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormStampReader)); + this.CustomLabelStampUrl = new CustomControls.CustomLabel(); + this.CustomTextBoxStampUrl = new CustomControls.CustomTextBox(); + this.CustomButtonDecode = new CustomControls.CustomButton(); + this.CustomTextBoxResult = new CustomControls.CustomTextBox(); + this.SuspendLayout(); + // + // CustomLabelStampUrl + // + this.CustomLabelStampUrl.AutoSize = true; + this.CustomLabelStampUrl.BackColor = System.Drawing.Color.DimGray; + this.CustomLabelStampUrl.Border = false; + this.CustomLabelStampUrl.BorderColor = System.Drawing.Color.Blue; + this.CustomLabelStampUrl.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomLabelStampUrl.ForeColor = System.Drawing.Color.White; + this.CustomLabelStampUrl.Location = new System.Drawing.Point(12, 10); + this.CustomLabelStampUrl.Name = "CustomLabelStampUrl"; + this.CustomLabelStampUrl.RoundedCorners = 0; + this.CustomLabelStampUrl.Size = new System.Drawing.Size(64, 17); + this.CustomLabelStampUrl.TabIndex = 0; + this.CustomLabelStampUrl.Text = "Stamp Url:"; + // + // CustomTextBoxStampUrl + // + this.CustomTextBoxStampUrl.AcceptsReturn = false; + this.CustomTextBoxStampUrl.AcceptsTab = false; + this.CustomTextBoxStampUrl.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxStampUrl.Border = true; + this.CustomTextBoxStampUrl.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxStampUrl.BorderSize = 1; + this.CustomTextBoxStampUrl.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxStampUrl.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxStampUrl.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxStampUrl.HideSelection = true; + this.CustomTextBoxStampUrl.Location = new System.Drawing.Point(82, 8); + this.CustomTextBoxStampUrl.MaxLength = 32767; + this.CustomTextBoxStampUrl.Multiline = false; + this.CustomTextBoxStampUrl.Name = "CustomTextBoxStampUrl"; + this.CustomTextBoxStampUrl.ReadOnly = false; + this.CustomTextBoxStampUrl.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.CustomTextBoxStampUrl.ShortcutsEnabled = true; + this.CustomTextBoxStampUrl.Size = new System.Drawing.Size(500, 23); + this.CustomTextBoxStampUrl.TabIndex = 0; + this.CustomTextBoxStampUrl.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxStampUrl.Texts = ""; + this.CustomTextBoxStampUrl.UnderlinedStyle = true; + this.CustomTextBoxStampUrl.UsePasswordChar = false; + this.CustomTextBoxStampUrl.WordWrap = true; + // + // CustomButtonDecode + // + this.CustomButtonDecode.AutoSize = true; + this.CustomButtonDecode.BorderColor = System.Drawing.Color.Blue; + this.CustomButtonDecode.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CustomButtonDecode.Location = new System.Drawing.Point(610, 10); + this.CustomButtonDecode.Name = "CustomButtonDecode"; + this.CustomButtonDecode.RoundedCorners = 5; + this.CustomButtonDecode.SelectionColor = System.Drawing.Color.LightBlue; + this.CustomButtonDecode.Size = new System.Drawing.Size(75, 27); + this.CustomButtonDecode.TabIndex = 2; + this.CustomButtonDecode.Text = "Decode"; + this.CustomButtonDecode.UseVisualStyleBackColor = true; + this.CustomButtonDecode.Click += new System.EventHandler(this.CustomButtonDecode_Click); + // + // CustomTextBoxResult + // + this.CustomTextBoxResult.AcceptsReturn = false; + this.CustomTextBoxResult.AcceptsTab = false; + this.CustomTextBoxResult.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CustomTextBoxResult.BackColor = System.Drawing.Color.DimGray; + this.CustomTextBoxResult.Border = true; + this.CustomTextBoxResult.BorderColor = System.Drawing.Color.Blue; + this.CustomTextBoxResult.BorderSize = 1; + this.CustomTextBoxResult.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal; + this.CustomTextBoxResult.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.CustomTextBoxResult.ForeColor = System.Drawing.Color.White; + this.CustomTextBoxResult.HideSelection = true; + this.CustomTextBoxResult.Location = new System.Drawing.Point(12, 43); + this.CustomTextBoxResult.MaxLength = 32767; + this.CustomTextBoxResult.MinimumSize = new System.Drawing.Size(0, 23); + this.CustomTextBoxResult.Multiline = true; + this.CustomTextBoxResult.Name = "CustomTextBoxResult"; + this.CustomTextBoxResult.ReadOnly = true; + this.CustomTextBoxResult.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.CustomTextBoxResult.ShortcutsEnabled = true; + this.CustomTextBoxResult.Size = new System.Drawing.Size(673, 356); + this.CustomTextBoxResult.TabIndex = 0; + this.CustomTextBoxResult.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; + this.CustomTextBoxResult.Texts = ""; + this.CustomTextBoxResult.UnderlinedStyle = false; + this.CustomTextBoxResult.UsePasswordChar = false; + this.CustomTextBoxResult.WordWrap = true; + // + // FormStampReader + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.DimGray; + this.ClientSize = new System.Drawing.Size(699, 411); + this.Controls.Add(this.CustomTextBoxResult); + this.Controls.Add(this.CustomButtonDecode); + this.Controls.Add(this.CustomTextBoxStampUrl); + this.Controls.Add(this.CustomLabelStampUrl); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(715, 450); + this.MinimumSize = new System.Drawing.Size(715, 450); + this.Name = "FormStampReader"; + this.Text = "DNSCrypt Stamp Reader"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private CustomControls.CustomLabel CustomLabelStampUrl; + private CustomControls.CustomTextBox CustomTextBoxStampUrl; + private CustomControls.CustomButton CustomButtonDecode; + private CustomControls.CustomTextBox CustomTextBoxResult; + } +} \ No newline at end of file diff --git a/SecureDNSClient/Forms/FormStampReader.cs b/SecureDNSClient/Forms/FormStampReader.cs new file mode 100644 index 0000000..c9689a2 --- /dev/null +++ b/SecureDNSClient/Forms/FormStampReader.cs @@ -0,0 +1,98 @@ +using MsmhTools; +using MsmhTools.Themes; +using MsmhTools.DnsTool; +using System; + +namespace SecureDNSClient +{ + public partial class FormStampReader : Form + { + private readonly string NL = Environment.NewLine; + public FormStampReader() + { + InitializeComponent(); + + // Load Theme + Theme.LoadTheme(this, Theme.Themes.Dark); + Controllers.SetDarkControl(CustomTextBoxResult); + + CustomTextBoxResult.Text = string.Empty; + } + + private void CustomButtonDecode_Click(object sender, EventArgs e) + { + string stamp = CustomTextBoxStampUrl.Text; + stamp = stamp.Trim(); + if (string.IsNullOrEmpty(stamp)) return; + if (string.IsNullOrWhiteSpace(stamp)) return; + CustomTextBoxResult.Text = string.Empty; + + CustomTextBoxResult.Font = new Font(FontFamily.GenericMonospace, 10); + + if (!stamp.ToLower().StartsWith("sdns://")) + { + CustomTextBoxResult.Text = "Stamp URL must start with sdns://"; + return; + } + + CustomTextBoxResult.Text = "Decoding..."; + string result = $"Output:{NL}{NL}"; + + try + { + DNSCryptStampReader sr = new(stamp); + + if (!sr.IsDecryptionSuccess) + { + CustomTextBoxResult.Text = "Invalid Stamp."; + return; + } + + result += $"Protocol: {sr.ProtocolName}{NL}{NL}"; // Protocol + + result += $"Is DNSSec: {sr.IsDnsSec}{NL}"; // DNSSec + result += $"Is No Filter: {sr.IsNoFilter}{NL}"; // Filter + result += $"Is No Log: {sr.IsNoLog}{NL}{NL}"; // Log + + if (!string.IsNullOrEmpty(sr.IP)) // IP + result += $"IP: {sr.IP}{NL}"; + if (!string.IsNullOrEmpty(sr.Host)) // Host + result += $"Host: {sr.Host}{NL}"; + result += $"Port: {sr.Port}{NL}"; // Port + if (!string.IsNullOrEmpty(sr.Path)) // Path + result += $"Path: {sr.Path}{NL}"; + if (!string.IsNullOrEmpty(sr.ProviderName)) // Provider Name + result += $"Provider Name: {sr.ProviderName}{NL}"; + + if (!string.IsNullOrEmpty(sr.PublicKey)) // Public Key + { + result += $"{NL}Public Key:{NL}"; + result += $"{sr.PublicKey}{NL}"; + } + + if (sr.Hashi.Any()) // Hash Codes + { + result += $"{NL}Hash Codes:{NL}"; + for (int n = 0; n < sr.Hashi.Count; n++) + result += $"{sr.Hashi[n]}{NL}"; + result += NL; + } + + if (sr.Bootstraps.Any()) // Bootstraps + { + result += $"{NL}Bootstraps:{NL}"; + for (int n = 0; n < sr.Bootstraps.Count; n++) + result += $"{sr.Bootstraps[n]}{NL}"; + result += NL; + } + + CustomTextBoxResult.Text = result; + } + catch (Exception) + { + CustomTextBoxResult.Text = "Invalid Stamp."; + return; + } + } + } +} diff --git a/SecureDNSClient/Forms/FormStampReader.resx b/SecureDNSClient/Forms/FormStampReader.resx new file mode 100644 index 0000000..f852953 --- /dev/null +++ b/SecureDNSClient/Forms/FormStampReader.resx @@ -0,0 +1,3207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAkAEBAAAAEAIABoBAAAlgAAABgYAAABACAAiAkAAP4EAAAgIAAAAQAgAKgQAACGDgAAMDAAAAEA + IACoJQAALh8AAEBAAAABACAAKEIAANZEAABISAAAAQAgAIhUAAD+hgAAUFAAAAEAIADoZwAAhtsAAGBg + AAABACAAqJQAAG5DAQCAgAAAAQAgACgIAQAW2AEAKAAAABAAAAAgAAAAAQAgAAAAAAAABAAAEwsAABML + AAAAAAAAAAAAAP+QHgD/kB4A/5AeAPmOJQAAH/8ES1ffKFRZ1V9XWtOOWVvQqFxcza9cXM2kXFzNg1xc + zUlcXM0OXFzNAFxczQD+jx0B/5AeF/+QHkD/kB5k2INInrd5a96mdH75kG2V/3NjtP9dXMz/W1zO/1xc + zf9cXM3xXFzNtFxczThcXM0A/5Aej/+QHtP/kB71/5Ae//+QHv//kB3//5Ad//2PIf/sijL/t3lr/3Bi + uO1bXM7yXFzN/1xczf9cXM3ZXFzNO/+QHuz/kB7//5Ae//+QHv30jCr+940n8P+QHuv/kB79/5Ad//+Q + Hf/vizDOhGmhZ1tczt1cXM3/XFzN/1xczbP/kB7t/5Ae7f+QHqP5jiVdnHCIerV4bkH/kRks/5AedP+Q + HvD/kB7//5Ac/u6LMIVaW8/AXFzN/1xczf9cXM3o/5AemP+QHkL/kB0E/5MTAP/FAADviy8A/5EaAPmO + JBb/kB7U/5Ae//+RHP/Tgk3zX13J+Fxczf9cXM3/XFzN4/6QHgT/kB4A/5AeAP2QJwD/kB0Q/5AdLPaN + J1n4jiWu/5Ae+f+QHv//kRv/zoBS/19dyf9cXM3/XFzN/1xczZ7/kB4A/5AeBf+QHkH/kB6S/5Aeyv+Q + Hur/kB78/5Ae//+QHv//kB7//5Ad/6t1eP9bXM7/XFzN+1xcza1cXM0g/5AeDf+QHoj/kB7x/5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//pAf/9OCTfNwYrjZWlvPqlxczVxcXM0PXFzNAP+QHm//kB76/5Ae//+Q + Hv//kBz//5Ec//yPIv/wiy78944mxPOMK3KPbJY8UVjZG11cywRcXM0AXFzNAFxczQD/kB7C/5Ae//+Q + Hv//kB3734ZA9K12dv+ObJf/eGWv5YNooimdcYcAv3xiAIFopQBaW9AAXFzNBVxczUhcXM07/5Ae0v+Q + Hv//kB7//5Eb04BnpoVYW9H8WVvR/1lb0PhWWtOHZF7EMe+LL0GpdXpCWVvQV1xczadcXM3vXFzNcf+Q + HqP/kB7//5Ae//+QHerghj91cmO2y2hgwP9vYrn/iWqc/8V+XO33jSfyjWyY81lb0PtcXM3/XFzN/1xc + zXH/kB40/5Ae1P+QHv//kB7//5Ad9vKMK+7hhz7/6Yk1//mOJP//kBz/+48i/4prnP9ZW9D9XFzN71xc + zchcXM1I/5AfAP+QHjT/kB6v/5Ae8P+QHv//kB3//5Ec//+QHf//kB7//5Ae9f2PIdWccYiEVlrTV1xc + zTRcXM0RXFzNAf6PHAD/kB4A/5AeDP+QHkf/kB6D/5AepP+QHqz/kB6g/5Aef/+QHlD/kB0fAAD/AGJe + xwBcXM0AXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAAAAAACQAAEwsAABMLAAAAAAAAAAAAAAAA + AAD/jxwA/5kwAP+QHgD/kw8A/6QAAHtmqwBrYb0AADP/AVpbzxZcXM04XFzNWVxczXBcXM19XFzNflxc + zXJcXM1eXFzNOlxczRZcXM4AXFzNAFtbzABbW8wAW1vMAP+QHgD/kB4A/5AeAP+QHgD/kB4AnnKHAHdk + rxRnX8FPYV7HlV5dy8tbXM7rWVvQ+Fpbz/xcXM3/XFzN/1xczf1cXM35XFzN61xczcpcXM2DXFzNKV1d + zgBcXM0AXFzNAP+QHgD/kB0D/5AeHf+QHkr/kB53/5AdlueIN8fSgk74zIBV/8V+XP+4eWr/n3GF/35n + qP9iXsb/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWdcXM0FXFzNAP+QHlH/kB6f/5Ae2v+Q + Hvf/kB7//5Ae//+QHf//kRz//5Eb//+RG///kRv//5Ae//OMKv/OgVL/i2ua/19dyv5bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczfZcXM1vWlrKAv+QHtr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHf//kRv/9Y0o/757ZNxoYMCYW1zO0Vxczf5cXM3/XFzN/1xczf9cXM3mXFzNQP+Q + Htz/kB7//5Ae//+QHv//kB7//5Ae//iOJf7viy//+Y4k7P+QHuv/kB76/5Ae//+QHv//kB7//5Ad//+R + G/j/kRp6ZF7EJlxczchcXM3/XFzN/1xczf9cXM3/XFzNof+QHtz/kB7//5Ae//+QHuj/kB6s/5AdbJpw + iqiHap6fz4FRNf+RGy//kB5T/5Aesf+QHvz/kB7//5Ae//+QHv//kB7n/5IXMVlb0JhcXM3/XFzN/1xc + zf9cXM3/XFzN1v+QHuD/kB7w/5Aek/+QHjL/kB0G/5EaAD5S7hMqTP8JzYBUAP+QHAD/kB4A/5AeGv+Q + HtD/kB7//5Ae//+QHv//kBz/zYBUrlpbz9pcXM3/XFzN/1xczf9cXM3/XFzN4f+QHo7/kB5M/pAdA/+Q + HgD/kB0A/94AAFxczQBeXcoA/5gBAO+LLgD2jSgA/I8hE/+QHsr/kB7//5Ae//+QHv//kRv/wHxh/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzNzP6QHgP/kB4A/5AeAP+QHgD+kB0A/5AeAP+QHgD/kB4A/5IWA/CL + LhXghj9I+I4lqP+QHvr/kB7//5Ae//+QHv//kRv/wXxg/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNif6Q + HgD+jxwA/5AeAP+QHgD+jxwC/5AeHP+QHkj/kB55/5Aepv2PIND7jyL1/pAf//+QHv//kB7//5Ae//+Q + Hv//kRz/rHZ3/1pbz/9cXM3/XFzN/1xczf9cXM3HXFzNI/+QHgD/kB4A/pAdBP+QHj//kB6X/5Ae2f+Q + Hvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/zjCv/gWim/1pbz/9cXM3/XFzN/Vxc + zb1cXM0xXFzNAP+QHgD/kB4R/5Aeiv+QHu7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//mOJf+qdXn/Xl3L/lxczexcXM2+XFzNaVxczRVcXM0AWlrKAP+QHQf/kB6O/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB7/9o0o57R4bsJkX8SXWlvPZVxc + zTNbW80NXFzNAFxczQBcXM0AW1vMAP+QHkn/kB7v/5Ae//+QHv//kB7//5Ae//+QHv//kRz//5Eb//+Q + Hf/6jyP/7Yoy/vGLLcb/kB5v3oVALExX3gz//wAAWlvPAFxczQBbW80AXl7NAFxczQBcXM0AW1vMAP+Q + HpP/kB7//5Ae//+QHv//kB7//5Ae//uPIv/liDr/x35a/6l1ev+Ma5r/dWSy5HplrCy+e2MA3oVBAG5i + uACbcIgA/54AAGRewwBcXM0AXFzNAFtbzQlcXM0+W1vMEf+QHrf/kB7//5Ae//+QHv//kB7//5Ec68B8 + YrFsYbv7Xl3L/1pbz/9aW9D/WlvP6FpbzzVcXM0AZl/BAN6GQQCZcowAVVrUAFxczQBcXM0HXFzNOVxc + zaRcXM3ZW1vMLP+QHrX/kB7//5Ae//+QHv//kB7//5EcvXVksjBaW8/dXFzN/1xczf9cXM3/XFzN/1tc + zcpXWtJjW1zOMuiIN0LzjCt7dWSyQ1tczmhcXM2tXFzN61xczf9cXM3lW1vMLP+QHof/kB7//5Ae//+Q + Hv//kB7//5Ae4f+QHj5cXM1wWVvQ9llb0P9ZW9D/WlvP/2Fex/98Zqv9unpo7fmOJfDghj/9Zl/C81tc + zv5cXM3/XFzN/1xczf9cXM3lW1vMLP+QHjP/kB7f/5Ae//+QHv//kB7//5Ae//+QHeH2jSiirXZ12Jdv + jv+ccIj/r3dz/9CBUP/xiy3//5Ae//+RG//dhUL/Zl/D/1tczv9cXM3/XFzN/1xczf9cXM3oW1vMLP+S + JwD/kB5l/5Ae8v+QHv//kB7//5Ae//+QHv//kB7//5Ad/v6QH///kB7//5Ec//+RG///kB3//5Ae//+R + HP/dhUL/Zl/D/1tczv9cXM3+XFzN71xczc5cXM2DXFzNEv+QHQD+jxwE/5AeXv+QHtf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/miDjmamC+pFtczoVcXM1hXFzNN1xc + zRRLS7gAXFzMAP+QHQD/kB0A/5AeAP+QHiT/kB5+/5Aex/+QHuv/kB75/5Ae/f+QHv//kB79/5Ae+v+Q + HvH/kB7f/5Aeuv+QHoP9jyA5wXxeA2dgwQBcXM0AXFzNAFxczQBbW8wAXFzMAP+PHwD+kB4A/pAdAP+Q + HgD/kB8A/5AdFP+QHjr/kB5f/5Aec/+QHn3/kB51/5AeZP+QHkb/kB4n/5AeDP+QHgD8jyEArnZzAAAx + /wBbW80AW1vMAFtbzAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADACgA + AAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABcXMwAW1vMAFxczQBcXM0AXFzNAFxczQBcXM0AXFzMB1xczRlcXM0tXFzNQFxczUxcXM1SXFzNUFxc + zUVcXM06XFzNI1xczQ1mZtoAXFzNAFxczABYWMUAW1vMAFtbywAAAAAAAAAAAAAAAAD/jxsA/5AdAP+P + GwD/kB4A/48cAP+QHQD/kRgAtnlrAP+4AABLVt8TV1rSP1pbz3hbXM6tXFzNz1xczeNcXM3tXFzN9Fxc + zfZcXM31XFzN8FxczepcXM3aXFzNu1xczYxcXM1GXFzMEFxczQBbW8wAW1vMAFxczABcXM0A/48dAP9+ + AAD/kB0A/5AeAP+QHgD/kR8A/pAdBP+UEQ2odHsxf2eng3VksspvYrnyamG+/2Zfwv9fXcr/WlvP/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM29XFzNUltbzAhcXM0AXFzNAFxc + zQD/kB4A/5AeAP+QHQb/kB0k/5AeUv+QHoT/kB6q/5AdwvOMK+PniDf/6Yk2/+eIOP/ihz3/2oRF/8d+ + Wv+tdnb/i2ub/2lgv/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zXFzNmFxc + zRhcXM0AW1vNAP+QHiL/kB5i/5Aeq/+QHt//kB75/5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ac//+R + HP//kRz//5Eb//+RHP/4jiX/3YVC/6Zzfv9rYbz/WlzP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNqltbzRVcXM0A/5Aeuf+QHv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//pAf/9mERv+NbJjxXFzN21xczfJcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzNhltbywP/kB7P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec//mOJO/Xg0l0W1zNQ1xc + zaNcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzNO/+QHs7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//I8h/vOMK//wiy7+/I8i6v+QHuz/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HOD/lBE3Mk75C1xcza1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2M/5Aezv+QHv//kB7//5Ae//+Q + Hv//kB7r/5Aeuv+RGn+odHuwgWil7o9slobjhzsw/5AcM/+QHk3/kB6J/5Ae4f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHq3/vgAGW1zOdlxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcH/kB7O/5Ae//+Q + Hv//kB7d/5Aeh/+QHjb/kB0LwHxhAE9Y2zNUWdVDAC3/A9qERgD/kB0A/5AeAP+RIgD/kB5E/5Ae5f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad7duERUpZW9CpXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN1v+Q + HtL/kB71/5Ael/+QHirOXgAA/5AeAP+QHQAAAP8AXFzOAFxczQBbW80AXVzMAP+WBwD/kB0A/5AdAP6Q + HQT/kB6x/5Ae//+QHv//kB7//5Ae//+QHv//kB39q3V43Fpb0PhcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3R/5Aeff+QHlj/kB0G/5AeAP+PHQD/kB0A/5AdAF1czABcXM0AXFzNAP+4AADoiDUA+IwiALd5 + awDmiDgA/pAeE/+QHsX/kB7//5Ae//+QHv//kB7//5Ae//+RHP+xd3L/W1zP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczbL7kB0B/5AeAP+QHgD/kB4A/40iAP6QHQD/jx0A/pEeAP6QHQD/kB4A/5AeAP6Q + HwD/kxcArXV1DNKCTT76jiSk/5Ae+v+QHv//kB7//5Ae//+QHv//kB7//5Ec/7J3cf9bXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM37XFzNcP6QHgD+kB0A/pAdAP+OGwD/kB4A/5AdAP+QHgD/kB4A/I8bAf+Q + HhD/kB4r/5AeT/2PIHzzjCq7940m7/6QH///kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/pHOA/1pb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcdbW8we/48cAP+QHgD/kB4A/5AeAP+QHgD/jx0C/5AdJP+Q + Hl3/kB6X/5Aexv+QHub/kB75/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//eN + J/+GaaD/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3hXFzNRlxczQD/jx0A/5AeAP+QHgD+kB0D/5AePP+Q + Hpj/kB7d/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/0YFP/2Vfw/9bXM7/XFzN/1xczf9cXM3/XFzNx1xczUNdXdEAW1vMAP+QHgD/kB4A/5AeFP+Q + Hof/kB7r/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/+uKM/+EaaL/WlvP/1xczf9cXM32XFzNy1xczXVcXM0bXFzNAFxczABcXMwA/5AdAP+Q + HRH/kB6i/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//6QH//ihz7/jGuZ91xczeJcXM2+XFzNiVxczUtbW80WXV3NAFxczQBgYOsAXFzNAFtb + ywD8jRYB/5Aeev+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHv7+kB/i5Ic7q5BslXdYWtFLW1zOJlxczQxfX88AXFzNAFtbzQBbW80AXFzNAFpa + ygBbW8wAWlrMAP+QHif/kB7Z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+R + G///kB3/+Y4l/+mJNv/piTbK/Y8gbvyPISmccIcF2YRHAF1cywBcXM0AXFzNAFtbzABbW80AX1/KAFxc + zgBcXMwAXFzNAFtbzABaWswA/5AeYv+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf//KM + LP/ehUH/w31e/6Z0ff+Iap3/c2O153BitzW+e2MA+48iAMt/VQAAI/8AWVrOAFtbzABbW80AW1vMAExM + 1gBcXM0AW1vNAFxczQBbW8wRW1vMIVpazAH/kB6P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/e6L + MOSkc3/6fGar/2hgwP9eXcv/WlvP/1pbz/9aW8/ZWVvQG1xczABqYLwAfWapAP2PHwD/jx4A/48dANuE + RQBcXMsAXFzNAFxczQBaWs0CXFzNOVxczbRcXM2jWlrLBv+QHp//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRzTs3hvTllb0N5aW8//W1zO/1xczf9cXM3/XFzN/1xczfhcXM1yW1vNBlxczQBiXsYA0oFOAP2P + Hwb/nQAGZV/DAFxczQBcXM0LXFzNOlxczZNcXM3nXFzN/1xczbJaWssG/5Aelf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHqqRbZMHXFzNmVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM2lWFrRWlda + 0TbTgkw7/5AdntqERX9WWtNIXFzNelxczbhcXM3tXFzN/1xczf9cXM3/XFzNsVpaywb/kB5o/5Ae+v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae1v+TEydKVuApWlvP1ltczv9cXM3/XFzN/1tczv9aW8//WlvQ/11c + zP9zY7T7r3Z07vKMLO7/kRz/rnZ0+Fpbz/dcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2xWlrLBv+Q + HSn/kB7Y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Aexf+RG1mPbJZwaGDA6WJexv9jXsb/aGDA/3Vk + sv+RbZP/vXtl/+iJNv/+kB///5Ad//+RHP+rdXj/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zbFaWssG/2wAAP+QHnX/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+QHuDliDnu1IJM/9WC + S//fhkD/7oox//uPIv//kRz//5Ad//+QHv//kB7//5Ec/6t1eP9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNrlpaywb/kB0A/pAdD/+QHp7/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP//kRv//5Eb//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kRz/q3V4/1pbz/9cXM3/XFzN/1xc + zf5cXM3vXFzNz1xczZRcXM09WlrLAf6QHgD+kB4A/pAdE/+QHoz/kB7w/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHP+0eG7oWVvQx1xc + za9cXM2PXFzNaFxczTlcXM0WWlrJAVxczQBbW8wA/48dAP6QHQD/kB0A/5AdBf+QHkr/kB62/5Ae8f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7n/5AeteeI + N0tFVOUPW1vNBl9f0ABcXM0AXFzNAFxczQBbW8wAXFzNAFZWwgD/jxsA/4snAP+QHQD/kB0A/5AeAP+Q + HQ7/kB5B/5AeiP+QHrv/kB7b/5Ae6v+QHvH/kB71/5Ae8/+QHu7/kB7m/5Ae0/+QHrn/kB6R/5AeXf+Q + Hi7+kB4KwHxhAF1cywBbW80AW1vMAFxczgBbW8wAVVW5AFtbywAAAAAAAAAAAAAAAAAAAAAA/pAfAP+P + HAD/kSAA/5AdAP+QHgD/kiIA/5AdDP+QHST/kB47/5AeR/+QHlD/kB5L/5AeQv+QHjP/kB4c/5AdC/+Z + TgD/kB4A/5AeAP6QHgD+jx8A/pAeAP+SGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA4AA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AA + AH8oAAAAMAAAAGAAAAABACAAAAAAAAAkAAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzNAFxczABaWssAXFzNAFxc + zQBcXM0AXFzNAF1dzQBZWcsDW1vMCFxczQ1bW8wRW1vMElxczRNbW8wRW1vNDVtbzQpbW8wGXl7SAFxc + zQBcXM0AW1vMAFtbzABZWcgAXV3NAF1dzQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWskAWlrHAFtbzABcXMwAXFzNAFxc + zQBcXM0AXFzMBFxczRhcXM03XFzNW1xczXpcXM2VXFzNp1xczbdcXM3CXFzNx1xczcpcXM3DXFzNtlxc + zaxcXM2gXFzNglxczV1cXM03W1vMHFtbywRcXM0AXFzMAFtbygBbW8sAWVnKAFtbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+NEwD/jx0A/pAdAP+QHACHap4AVlrSAFtb + zQBbXM4AXFzMCVxczSxcXM1jXFzNnFxczc1cXM3sXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfpcXM3tXFzN0VxczZRcXM1MXFzMFl1d0ABbW8wAXl7UAFpa + ygBcXMwAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP92AAD/jx0A/o8cAP+QHQD/kB0A/5AdAP+Q + HgDxiy0AAAD/Ak1X3CRWWtJmWVvQrlpb0OJaW8/7WlvP/1pbz/9aW8//WlvP/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zXFzNwlxc + zGBbW8wRXFzNAFtbzABcXMwAXFzNAAAAAAAAAAAA/48cAP+PHAD/kB4A/48dAP6QHQD/kB0A/5AeAP6Q + HAP/kB0R/5AdJf+QHjn/kRtQ34ZAebJ3cNerdXj7q3V4/6t1eP+lc37/nnGG/5hvjf+Na5n/eWWt/2th + vf9gXcn/W1zO/1pbz/9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2vW1vNQFpaywJcXM0AXFzNAFxczQAAAAAA/48fAP+QHQD/kB4A/5EfAP6Q + HQ7/kB0y/5AeY/+QHpn/kB7D/5Ae3f+QHu//kB72/pAf/P2PIP//kB3//5Ec//+RHP//kB7//Y8g//uP + Iv/4jiX/7osw/92FQv/Hflr/pnR9/3xmq/9iXsb/W1zP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN5FxczWdcXM0FXFzNAFxczQBaWswA/5EdAP6Q + HQ3/kB45/5Aee/+QHrr/kB7m/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kRz//pAf/+6LMP/Lf1b/lW6Q/2Zfwv9aW8//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze9cXM1vW1vNBVxc + zQBcXM0A/5AeVv+QHrL/kB7q/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz/+I4m/8yA + VP+FaaH/X13K/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3tW1vMWllZ0ABcXMwA/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHP/viy7/sHdy9mhgwNJbW87aXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN0ltbzCdcXM0A/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf++6KMKiYb4wzWFrRRVxczZJcXM3lXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczYdZWcwD/5Aer/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHfr/kRuP/6UACBxI + /wJcXM1IXFzN2Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdRbW80o/5Aer/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//uPIv/0jSn/74sv//OM + K/f+kB/n/5Ae7f+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB71/5AeZppwiABsY74AW1vNclxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfZcXM1h/5Aer/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9P+QHtT/kRun04JNqZNu + kv2FaaH/hGmizqVzfmH7jiIv/5AdPP6QHlH/kB5x/5Aeq/+QHuj/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae0v+QHiWXb44AXFzNP1xczfBcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf5cXM2U/5Aer/+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHtf/kB6U/5AeTP+Q + Hh7/6AACWVvQQ1lb0N1ZW9GcUFjaJf+YCADzjCsA/5AdAP+QHgD/kB4A/pAcCP+QHT//kB66/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHnZyY7YAXFzNS1xczfVcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM20/5Aer/+QHv//kB7//5Ae//+QHvv/kB7L/5Aebv+Q + HiL/jx4D/5AeAP+QHgCYb4wAW1zODlxczSxcXMwLW1vNAFFX1gCecIUA/5AcAP6QHQD+jx0A/pAdAP+Q + HQD/kB4s/5Ae1f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHb2kc4AkW1zOplxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2//5AesP+QHv//kB7//5Ae3/+Q + Hnf/kB0c/5EgAP+QHgD/kB4A/5AeAP+UDQBcXM0AXFzNAFxczQBcXM0AXFzMAFxczQBaWssAAAAAAP+P + GwD/jx0A/48eAP+PHgD+jhsB/5Ael/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//iO + Je2CaKTDWlvP+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM24/5AesP+Q + Hvv/kB6v/5AeNvuPHwH/kB0A/48dAP+QHQD/hiMA/48fAFxczQBcXM0AXFzNAFxczQBbW8wAW1vMAFtb + ywAAAAAAAAAAAAAAAABYWs4AwXtgAP+QGwD/kCAA/5Aejf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//iOJf+Ka5z/WlvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM2m/5AeU/+QHmL+kB4U/5AeAP6QHgD/kB4A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxoA/7IAAJlwjQD/lwAAg2ihAOSHOgD/kB4Y/5Aewv+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//yPIf+TbpH/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczftcXM15/5AeAP+QHgD+kB4A/5EeAP+PHwD+kB4A/48fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PIAD+jx0A/48eAP+QHgD/jxwA/5EZAOKGPQD3jSYALUz8BdiDRzH9jyCh/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yPIf+UbpH/WlvP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczelbW81B/pAeAP6QHQD7lCsA/4YBAP6QHgAAAAAAAAAAAAAA + AAD/jxsA/48cAP+PHAD/kB0A/pAeAP+PHQD/kB0A/5AeAP+QHgD/kSAA/5IVBN+FPxzOgFJT2oRFn/KM + K+L/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//qOI/+La5v/WVvQ/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcza9bW8wPAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48dAP+PHAD/jx0A/o8cAP6QHQD/kB4A/5AeAP6PGwH/kB0R/5AeKf+QHk3/kB53/5AeovqO + I9H4jiX2/Y8g//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//GL + Lf9+Z6n/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczUdcXM0AAAAAAAAA + AAAAAAAAAAAAAP+PHAD/jh0A/5AdAP+QHQD/kB4A/5EgAP6QHQ3/kB4v/5AeYP+QHpT/kB7B/5Ae4/+Q + HvX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/9yFRP9pYL//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNfVtb + zQVbW80AAAAAAAAAAAD/jx4A/Y8dAP6QHQD+kB4A/5AeAP6PHAT/kB4p/5Aeb/+QHrj/kB7l/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad/7N4b/9dXMz/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfNcXM2DXFzMC1xczQBcXM0AAAAAAP+OHAD/jxwA/pEgAP+QHgD+jx4D/5AdNf+QHpT/kB7e/5Ae/f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/6Yk1/3pmrP9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN11xczWBbW8wIXFzMAFxczQBZWcgA/48bAP+PGwD/ihIA/5AeAP+QHhX/kB58/5Ae4/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/6jiT/onKC/1xczP9cXM3/XFzN/1xc + zf9cXM3/XFzN/Vxczd5cXM2KXFzNKl5e0wBcXMwAXFzMAFVVwABbW8sA/44lAP6RIAD/kB4A/5AdI/+Q + Hq7/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//qOI/+wd3L/Y17G/1tc + zv9cXM3/XFzN/FxczeZcXM27XFzNcFxczSpaWs4DXFzNAFtbzABcXMwAW1vMAFpayQAAAAAA/pAcAP+Q + HQD/kB0a/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy/6Rz + f/9jXsX6W1zO6FxczchcXM2eXFzNaVxczTJbW80OXl7MAFxczQBbW80AW1vNAFxczQBcXM0AAAAAAAAA + AAAAAAAA/5AdAP+QHAb/kB6M/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yP + IfbehULZlm6Os15dy4RaW89bXFzMM1xczRVcXMwDXV3NAFxczQBbW80AWlrOAFtbzQBaWtAAWlrOAFdX + zwAAAAAAAAAAAAAAAAAAAAAA/5AeAP+QHT//kB7q/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//5Ad//6Q + H/z+kB7g/pAfofKMK1SWbo4iL037Cv+THgBbW84AXFzNAFxczQBcXM0AWlrMAFxczQBZWc0AWlrNAFdX + zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/ZAeA/+QHpL/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP//kRz//pAf//SM + Kv/ihz3/1oNK1PGLLWz+kB4r+Y4kBvOMKwCdcIYAWVvOAFpbzwBWVswAXFzMAE9PowBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXM4AW1vLAFtbywBaWsoAW1vMAFpazABaWswA/5AdGf+QHsz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+QHf/5jiT/64oz/9eD + Sf++e2P/n3GF/4JopP9uYrnwZl/CTtqERQD3jiUA/I4iAO2MMwC5eWgAQlPkAFpazABaWskAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlZxwBYWMsAXFzNAFtbzQBfX9QAWlrLBFpazAFZWcwA/5AeQP+Q + Hun/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yPIf/riTT/y39W/6p1 + ef+PbJb/dmSx/2Zfwv9eXcv/WlvP/1pbz/9bW87PWVvQGFxczACgcoMA/5EaAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWskAWFjMAFxczQBbW80AXFzNAFtbzQlcXM1fXFzNkltb + zB5bW8wA/5AeWf+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8h3K52 + dON3ZLD/Yl7H/1tcz/9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3XW1vNH1xczQBcXM0AW1vNAF5e + zgD/jx0A/48eAP+PHgD/jx4A/48dAP6PHQDghj4AXV3MAFxczABcXM0AW1vMAFxczQBYWM4BXFzNL1xc + zZlcXM3zXFzN7ltbzDBbW8wA/5Aeaf+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7e+I4lQlpbz5RaW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNb1lZ + zwFcXM0AW1vNAGJiywBaW84A4IY+AP+QHQD/kB4A/5AdAP+jAABDVOYAXFzNAFxczQBcXM0AW1vLBFtb + zStcXM2BXFzN21xczf9cXM3/XFzN61tbzDBbW8wA/5Aeaf+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB6XACf/AFtbzlVcXM31XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN51xczXJcXM0aUlLKAFxczQBeXcoAvXtkAP+QHAX/kB49/5EaOQAr/wBjXsUAXFzMBFxc + zRpcXM1NXFzNmVxczd1cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AeVv+QHvT/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB6GtHhvAFxczRRcXM28XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflcXM3KXFzNillb0FlWWtM/qnV4Of2PIIL/kB3q7YowwGdf + wVJbXM1sXFzNnlxczc9cXM30XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AdM/+Q + HuH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB68/5AdE7l6aQBcXM1OXFzN7Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM//W1zO/2lgv/mbcInu5Ic67P+Q + Hvz/kRv/z4FR+2BdyfZcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61tb + zDBbW8wA/5AdEf+QHrn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB74/5Aeif+R + GBQAJf8DWFrQeltczvZbXM7/XFzN/1xczf9cXM3/W1zO/1tczv9aW8//WlvP/2Bdyf90ZLP/oHKE/9WD + Sv/5jiX//5Ad//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61tbzDBbW8wA/5EgAP+QHmj/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae+f+QHrv/kRtl2YNGPHJjtZlkXsT3YF3J/15dy/9gXcn/ZV/D/2xhu/9+Z6j/m3CJ/8N9 + Xv/oiTf//Y8g//+RHP//kB7//5Ae//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN61tbzDBbW8wA/5AdAP+QHRj/kB69/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB77/5Ad5PiOJdLWg0ryyH5Z/8R9Xv/Ifln/04JN/+OH + PP/xjC3//Y8g//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7VtbzDBbW8wA/48cAP+QHgD/kB5F/5Ae4/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz//5Eb//+R + G///kRv//5Ec//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/zIBU/2Bd + yf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNxltbzCNbW8wA/5AdAP6Q + HAD+jhoC/5AdYP+QHuf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/zIBU/2Bdyf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM3uXFzN0FxczZ1cXM1XXFzNH1xc + zgJcXM0A/48fAP6QHAD+jx0A/44bA/+QHVX/kB7Y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRv/zYBT/mBdyfpcXM32XFzN61xczddcXM2/XFzNnlxczW5cXM09XFzNGltb + zAVcXM0AXFzNAFtbzQBcXM0AAAAAAP+PHAD/jx0A/5AdAP+RGQD/kB4z/5Aeov+QHvH/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/5og4yWRfxGJbW85PXFzNNFxczSBbW8wPWlrMA1xc + zgBcXM0AXFzNAFtbzABSUroAXFzNAGFhzABWVtAAAAAAAAAAAAD/jxwA/5AeAP+QHgD/kB4A/pAdC/+Q + HVP/kB66/5Ae7/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae8f+QHsr/kB6K/5EaNixN/wBhXsgAXFzNAFxc + zQBbW8wAW1vMAFtbywBcXMwAW1vKAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/5AfAP+P + HwD+kBsA/pAdAP+QHgD/kB0R/5AeRP+QHov/kB7N/5Ae7P+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf/kB7s/5Ae0/+QHqj/kB50/5AeRP6QHRn7jh8B/5AdAP+V + CwCrdXYAW1vNAFtbzQBbW8wAWlrOAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGwD+kBwA/5AeAP+PHgD/kB0A/5AeAP6PHAL/kB0a/5AeN/+QHl7/kB6F/5Aeof+Q + Hq3/kB65/5Aexf+QHsX/kB67/5AesP+QHqf/kB6R/5Aecv+QHlT/kB41/5AeHP+QHQb/kB8A/5AeAP6Q + HQD+kB4A/5AeAP6QHgD/kB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/ZIfAP+QHQD/kB0A/5AeAP+Q + HgD/licA/o8dBv6QHgr+kB0O/pAdEf6QHRH+kB0O/pAeC/6QHgj/jRoC/5AeAP+QHgD/kB4A/5AeAP+Q + HQD/kB0A/5AeAP+PGwD/jxwA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//wAAAA/AAD/4AAAAA8AAPwAAAAAAwAA4AAAAAADAAAAAAAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAHAAAAAAAAD/gAAAAAAAAfgAAAAAAAAHAAAAAAAAAPgA + AAAAAAAA8AAAAAAAAADAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABwAAAAAAAAAP + AAAAAAAAAH8AAAAAAAAPgAAAAAAAAH8AAAAAAAAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAAAAAAAAAMAAAAAADwAAwAAAAAB/AADwAAAAD/8AAP4AAAA//wAAKAAAAEAAAACAAAAAAQAgAAAA + AAAAQAAAEwsAABMLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8wAW1vLAFxc + zQBcXM0AW1vMAFtbywBbW80AXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFxczQBcXM0AXFzNAFtbzQBcXMwAXV3NAFxczABcXM0AXFzNAIaG6gBfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW80AW1vNAFxc + zABcXM0AW1vMAFtbywBcXM0AXFzNAFxczQBYWMgCW1vMDlxczRlbW80oW1vNQFxczE9cXM1fXFzNbVtb + zHZbW8x5XFzNflxczXxcXM1zXFzNZ1tbzV1cXM1VXFzMSFtbzC1cXM0YW1vMCltbzQBcXM0AXFzNAFxc + zQBERL0AXFzNAFtbywBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtb + zABaWsoAW1vMAFtbzQBcXMwAXFzNAFxczQBZWckCXFzNElxczTFcXM1fXFzNilxcza1cXM3MXFzN4Fxc + zetcXM3wXFzN9lxczftcXM3/XFzN/1xczf9cXM3/XFzN/lxczflcXM32XFzN8lxcze5cXM3gXFzNxlxc + zaNcXM19XFzNV1xczCdcXMwGW1vNAFxczABbW8sAXFzMAFtbzABbW8wAW1vMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyAA/48dAP+QGwB6ZaoAWFrMAFtbzABcXM0AW1vMBFxczRxcXM1KXFzNhlxczblcXM3jXFzN9lxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM3UXFzNlVxczVJcXMwbWlrIAltbzABbW8wAW1vMAFVV + yABfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + HAD+kB0A/5AeAP+QHgD/kB4A/48gAP+PHQD/kBsA34ZAAAAL/wFNV9sXV1rSTVlb0I9aW8/NW1zP71tc + zv9bXM7/W1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3xXFzNxVtb + zGtbW8waXV3OAFtbzQBRUcUAXl7PAFtbzABaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAeAP6Q + HgD/jx0A/pAdAP+PHQD/jxwA/pAdAP+QHgD/kB4A/5AeAP+QHgD/jhwE/5MTC8V+XBt9Zql0c2Ozv3Bi + t+9wYrj/cGO3/29iuP9sYbv/amC+/2hgwf9lX8P/YV3I/1tczv9aW8//WlzP/1tczv9cXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM32XFzNvVxczFBbW8wLWlrLAFpazABaWswAW1vNAFxczQAAAAAAAAAAAP6Q + HgD+kB4A/48dAP+QHgD+kB4A/48dAP6QHQD/kB4A/5EgAP6QHQz/kB0e/5AdPf+QHl7/kB56/5AelP+Q + Haj5jiS94IY/9uCGPv/liDn/6Ik2/+qJNf/miDj/3oZA/9iESP/Sgk7/zIBV/798Yv+odHv/lG6R/3tm + q/9sYbz/Yl7H/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3qXFzNmltbzCleXs4AW1vNAFxc + zQBcXM0AXFzNAAAAAAD/kB0A/pAeAP+PHQD/kB4A/5AeAP6PHAP+kB0Z/5AdQf+QHnT/kB6o/5Ae0v+Q + Hur/kB72/5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ac//+QHP//kBz//5Ac//+QHP//kRz//5Ec//+R + HP//kRz//pAf//eOJv/uijH/3YVC/8F8Yf+VbpD/cGK3/19dyv9aXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM2+XFzNOltbzQBcXM0AXFzNAFxczABbW8sA/5AdAP+QHgD+jxwE/5AeHP+QHlD/kB6O/5Aexv+Q + Huv/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/944m/+CGP/+3eWv/h2qf/2Je + x/9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczctcXM08WlrLAFxczABbW8sAW1vLAP+QHhD/kB4//5Aeh/+Q + Hsv/kB7x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kBz//5Ad/+6LMP+7emf/fWep/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNyFtbzDFdXc4AWlrKAFpa + yQD/kB50/5Ae6P+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae/+WIOv+mdH3/bWG7/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXMytXFzMF1tbzABbW80A/5Aekf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i/9CB + T/qCaKTTW1zOxFxczdxcXM3wXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN9ltbzG5YWMgCWlrLAP+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3+940n09KCTlNYW9EjW1vNTVxczYxcXM3YXFzN/Vxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3QW1vMKVxczQD/kB6Q/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3J/5IXN41smABYW9EEXFzMMFxc + zZ1cXM32XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+1tb + zXNRUc4B/5AekP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hr3+kB0m3YVBAFtbzQBbW80WW1vNpFxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM27W1vNF/+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//mOJP/0jSn/8Isu/+6LMP/4jibv/5Ae5v+Q + Huz/kB70/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Aekv+QHgr6jiIAXF3NAFtbzUBcXM3pXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN5FxczT3/kB6Q/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHuf/kB3L8Istsq52dPGZb4z/i2ua/4Rp + ovSObJeqw31fTP+RGjX/kB1F/pAeWf6QHXL/kB6T/5AeyP+QHvH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHuj/kB5L/5EfAGBdyABbW80bXFzNzlxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM1p/5AekP+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7g/5AeqP+QHnD/kB44/5UMF4Fo + pStbXM/iWlvP/1pbz9tYWtFqRFPmEeuKNAD9jyAA/5AeAP+QHgD/kB4A/o8cBP6QHRr/kB1W/5Aet/+Q + Hvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Aeqf+Q + HQ6Yb4wAXFzNGVxczcxcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzNjP+QHpD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae8f+QHr3/kB51/5AdM/6Q + HQv/kSAA/5AeALJ4cABWWtMWXFzNn1xczaBcXM09VlbQAVtbzgAAFv8AwXtgAP+QHgD/kB4A/3o9AP+P + HQD+kB0A/5EfAP+QHRr/kB6V/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuX/kB4+oXKCAFxczTtcXM3nXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczZ7/kB6Q/5Ae//+QHv//kB7//5Ae//+QHv//kB7y/5Aetv+Q + HVr/kB0X/5EbAP+QHgD+kB0A/44aAPqOIQBYW9EAXFzNAlxczQ9cXMwKXV3PAFpazQBcXM0ApqawAFdX + zwCPapQA/48fAP+MIwD/jx0A/48cAP+PHQD+kB0A/5AeIP+QHsP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7+/5AcelxczRpcXM2oXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2n/5AekP+QHv//kB7//5Ae//+Q + Hv3/kB7H/5AeXP+QHRX/kR8A/5AdAP+QHgD/kB4A/pAdAP+PGgCObJYAXFzNAFxczQBcXM0AXFzNAFtb + ygBbW8sAXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx4A/48eAP6dHgD/kB6B/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/+eIOMdnX8G0W1zO+Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNnv+Q + HpD/kB7//5Ae//+QHun/kB6I/pAeI/+QHQD+kB0A/48dAP+PHQD/kB4A/5AeAP+QHgAAAAAAXFzNAFxc + zQBcXM0AXFzNAFxczQBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+P + HQD/kB4A/5Adaf+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP/fhkD+bWG7/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczY3/kB6J/5Ae8/+QHsj/kB5R/48eB/+QHgD+kB4A/pAeAP+PHQD/jx0A/48dAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADNgFMAxX1cANmDRgD/jx0A/pIeAP+QHnv/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/64oz/3Vksv9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflbW814/pAeMf6QHlP/kB0m/5AdAP+QHgD/kB4A/pAeAP6Q + HgD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzMAFtczQA7Uu8AlW6PAMZ+WgCUbo8A8YstAP+QHh//kB7C/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/+6LMP97Zqz/WlzP/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3oW1vMR/+QHgD/kB4A/5AeAP6Q + HgD+kB4A/5AeAP+QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PGwD/jxoA/48dAP+QHQCccYcAL078AJVujwDQgVAAGUb/A+uKMyv9jx+i/5Ae/P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/viy//fWaq/1pc + z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNyltb + zB7/kB4A/5AeAP+QHgD+kB4A/pAeAP6QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/5AeAP+QHgD/jx0A/5AdAP+QHgD/jxwA/48aAP+PHQD+kB0A940mAP+xAAB/Z6cQp3R7PM2A + Uon1jSnW/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/64oz/3NjtP9bXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tbzYtZWcwFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/5AeAP+QHgD/jxwA/5AdAP+QHgD/kB4A/48dAP+QHQD/kB4A/5AeAP+RIAD/jxwI/5AcFfeN + JjLfhj9t3oVCs+uJNOj4jiX//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ac/+WIOf9vYrn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczd9bW8w2W1vNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHQD/jx0A/48eAP6QHQD/kB4A/48cAP+QHQD/kB4A/5AeAP+PGwP/kB0T/5AeKP+Q + Hkz/kB50/5Aenf+QHsH+kB/k+48i+v6QH///kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/QgVD/Z1/B/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfpcXM1/W1vLBFtbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHQD/jx0A/48dAP+PHgD+kB0A/5AeAP+PGgL/kB0T/5AeM/+Q + HmL/kB6O/5AevP+QHt//kB7v/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/sXdx/11c + zP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM2xW1vMGltb + zABbW8wAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB0A/pAdAP6QHgD+kB0A/48dAP+QHQD/lR8A/5AdFf6Q + HUj/kB6H/5Aeu/+QHuP/kB73/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/9o0n/5Bslf9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM23XFzMKVxczgBaWsoAWlrJAAAAAAAAAAAAAAAAAP+PHwD/jx8A/4wjAP6QHQD+kB4A/5AdAP6P + HAX/kB0v/5Aec/+QHr3/kB7t/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/9WDSv9rYb3/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2pXFzMKFxczgBbW8oAW1vLAFtbywAAAAAAAAAAAP+PHQD/jx4A/48fAP+O + IQD+kB0A/o8eA/+QHTD/kB6L/5Ae2/+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aNJ/+Xb43/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeFcXM15XFzNFF1dzwBaWskAW1vLAFtbywBbW8sAAAAAAP+P + GwD/jxwA/48dAP+PHgD/kB0A/pAeE/+QHnL/kB7a/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/AfGH/ZV/D/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN6FxczZtcXM08W1vLBVxczABXV8QAWlrJAFtb + ygBbW8sAAAAAAP+PHwD/jxwA/48bAP+PHAD/kh8A/5AdLf+QHqr/kB72/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/RgU//dGSz/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfdcXM3RXFzNkFxczUJbW80KXFzNAFtb + zABbW8wAVVW+AFpayQBaWskAAAAAAAAAAAD/jx8A/48fAP+OGwD/kB8A/5AdMv+QHsH/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//6QH//QgVD/dmSx/1tczv9cXM3/XFzN/1xczf9cXM3wXFzN0FxczZ1cXM1iW1vNJFlZ + zARcXM0AXFzNAFxczQBbW8wAW1vMAFtbzAAAAAAAAAAAAAAAAAAAAAAA/5EcAP+SGwD/kB0A/5AdJf+Q + Hrn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//SMKv+3eWv/cWO2/1tczvtcXM3sXFzN0lxczahcXM19W1vNTltb + zR5bW80IXV3MAFtbzQBaWswAW1vNAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HQD/kB4A/5AdDf+QHpr/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/+o8j/+GGPvKgcoTfZl/Culpbz5JbW81tXFzMQ1xc + zR5cXM0MWVnNAFxczQBcXM0AW1vNAFJS0gBaWs4AWlrMAFtbzQBbW80AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx0A/5EfAP+QHVf/kB7w/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7z/I8hyuOHPIWSbZJTWFvPK1NZ + 1hJeXcoEW1vNAFxczQBcXM0AXFzNAF1dzQBcXM0AXFzNAFtbzQBUVNEAV1fPAFdXzwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHRP/kB64/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB7//I8i+f6QH9v+kB+g/I8hVfaN + JxzIfVUBwXxgAGZfwgBaW84AXFzMAG5u3QBdXc0AXFzNAFxczQBdXc0AXFzMAFxczAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHgD+kB5F/5Ae7P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/+Y4k/+6LMP/ahEb/xn5b39mE + R3P5jiMo/ZAfCf2QHwD2jScA6okzAOCGPgBmX8IAWlvOAFxczABkZNQAX1/PAF9fzwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAXFzNAFxczQBbW8wAXFzNAFxc + zQD+kiAA/5Aefv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+RHP/9jyD/84wq/+iJNv/Sgk//tXht/5hv + jP99Zqn/a2G89mJdxWwAAP8B5Ic6APyPIAD/kBoA+o4kAOqJMwDliDgA44c6AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAW1vMAFxc + zQBcXM0AW1vMAFxczQBcXM0A/pAdDv+QHqn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP/6jiP/7Yox/9uERf/BfGH/pHOA/4lq + nf9zY7T/Z2DB/11cy/9aW8//WlzP/1tcztRaW88iW1zPAHRkswD/kBwA/5AbAP+PHwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW80AW1vNAFxc + zgBbW8wAW1vMAF1dzgBbW8whW1vMSFtbzCJbW8wAW1vMAP+QHiL/kB7U/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8i/+aIOP/BfGD/nHCI/3pm + rf9rYb3/YV7I/1tcz/9aW8//W1zO/1tczv9cXM3/XFzN/1xczf9cXM3AW1vNFFtbzQBbW80AXFzNAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtb + zQBbW80AWlrLAFtbzQBcXM4AXFzNAFpazAVbW81HXFzNwFxcze9bW8xxXFzNAFxczQD/kB4s/5Ae4P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac4Mh+ + WcB5Za75YV7H/1pbz/9aXM//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN11tb + zSVcXM0AXFzNAFhYygBfX88AX1/PAAAAAAAAAAAA/48fAP+PHwD/jyAA/48dAP+PHQD/jx0A/48dAP+P + HQBcXMwAXFzMAFxczABcXM0AW1vNAFpaywBbW80AXV3CAFtbzCdcXM2HXFzN4lxczf9cXM3/W1vMelxc + zQBcXM0A/5AdPP+QHuT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae5/+RGFVjXsVHWlvP6lxczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXMxxW1vJAltbzABRUcUAXFzNAFhYzgBaWswAxX1cAP+QHgD/jx8A/48gAP+P + HQD/jx0A/48dAP+PHABZW88AXFzNAFxczABcXMwAXFzNAFxczQBXV8cCW1vNI1xczXFcXM3NXFzN/Vxc + zf9cXM3/XFzN/1tbzHpcXM0AXFzNAP+QHUL/kB7m/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHpr/ngAGVFnUGlxczclcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3lxczVdaWswIW1vMAFtbzQBYWM4AWlrNAF1c + ywDsijIA/5AeAP+QHQD/jx0H/48dCv+PHgH/mgAAXFzMAFxczQBcXM0AXFzOAFxczQxcXM02XFzNflxc + zc1cXM36XFzN/1xczf9cXM3/XFzN/1xczf9bW8x6XFzNAFxczQD/kB44/5Ae5P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvn/kB5m6ok0AFxbzARcXM2CXFzN/Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3nXFzNkFxc + zTpbW80RAAD/AFxczQBeXMsArXZ1AJpyewD/kB42/5Ael/+QHY//lwQRjWyYAFxcywNcXM0TXFzNMVxc + zWlcXM2qXFzN41xczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/5AeJv+Q + Htf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB75/5AeaP+R + HABdXMwAXFzNLVxczdVcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf1cXM3kXFzNtVtczYNaW89fV1rSSoprmj7yjCtq/5Ae0v+QHv/3jSbmimubbFhb + 0GxcXM2PXFzNvFxczeNcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zHpcXM0AXFzNAP+QHRP/kB61/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHp//kB4K1IJLAFxbygNcXMxxXFzN9lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aW8//Y17F9otrmu7Ugkzq/I8h9v+Q + Hv//kB3/6Ik3/XBit/VbXM77XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8x6XFzNAFxczQD/jhsD/5Aeh/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7p/pAeWfuNIQG2eGwAW1zOFVxczaVcXM3+XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/WlzP/1tczv9oYMD/i2ub/8N9 + Xv/wiy7//5Ae//+QHv//kB7//5Ac/+aIOP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/5AeAP+QHkz/kB7u/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt3/kB1s/48dGItt + mgBPV9gmWlvOuVtczv5bXM7/XFzN/1xczf9cXM3/XFzN/1tczv9bXM7/W1zO/1pbz/9bXM7/ZF7F/3pm + rf+icoL/0YFP//OMK///kB3//5Ad//+QHv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzHpcXM0AXFzNAP+Q + HQD/kB0T/5AesP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae9P+QHrv/kB10/5AbOpdui0ppYL6/Yl7G/V9dyv9cXMz/XVzM/19dyv9jXsX/aWC//3Fj + tv+Jap3/pnR9/8l/WP/qiTT//I8i//+RHP//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kBz/5og4/29i + uP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8x6XFzNAFxczQD/jxsA/5EfAP+QHVD/kB7p/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/+QHuj/kB3N6Yk0zMd+Wfe7emf/tHhu/7V4 + bf+7emf/x35a/9eDSf/miDj/84wq//6QIP//kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ac/+aIOP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1vMelxczQBcXM0A/48cAP+QHQD/kB0L/5Aejv+QHvz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kRz//5Ec//+RHP//kRz//5Ec//+RHP//kRz//5Ac//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzHlcXM0AXFzNAP2SGAD8khcA/pAcAP6Q + HR//kB2z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/5og4/29iuP9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzN2FxczZ9cXM03XFzNAFxc + zQD/jx8A/48fAP+OGwD+kB8A/48dMP+QHbn/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac/+aI + OP9vYrj/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38XFzN7FxczdBcXM2jXFzNZVxc + zClbW80JXl7LAAYG9ABMTNMA/48fAP+PHAD/jxsA/48cAP2RHQD+kB0o/5Aeqv+QHvr/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/miDj/b2K4/1tczv9cXM3/XFzN/1xczfhcXM3vXFzN4lxczclcXM2jXFzNcVxc + zENcXM0dW1vMClxczgBcXM0AW1vNAFFR0gBXV88AV1fPAAAAAAD/jxsA/48cAP+PHQD/jx4A/pAdAP+Q + Hhn/kB6E/5Ae4/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy93VkscNaW8+yXFzNoFxczYRcXM1lW1vNS1xc + zC1bW8wYW1vMClxczgBcXM0AXFzNAFxczQBbW8oAW1vMAFtbzQBSUtEAV1fPAFdXzwAAAAAAAAAAAP+P + HQD/jx4A/48fAP+OIQD+kB0A/o8dB/6QHUH/kB2r/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+PyPIL27emUoSVbhDltb + ywl0dMoAXFzNAFxczQBcXM0AW1vMAFtbzABbW8oAW1vMAFxczQBcXM0AW1vKAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jCQA/pAdAP+PHQD+kR8A/pAcEf+QHVz/kB67/5Ae7P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvX/kB7b/5Aeo/6Q + HmH/kB0j/8cAAXRjswBbW8wAWFjNAFtbzABcXM0AXFzNAFtbzABbW8wAW1vKAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAdAP6QHQD/jxsA/44ZAP6Q + HQDCxQAA/5AdFf6QHUj/kB6M/5AezP+QHvL/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvT/kB7h/5Aeuf+Q + Hov/kB5c/5AdLP6QHgr/kB0A/5AeAP+RGwDpiTQAWFrPAFhYzQBaWswAW1vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxsA/48bAP+OGQD/kB4A/5AeAP+QHQD/kB4A/48cBP+QHR//kB1V/5Aee/+QHqL/kB7J/5Ae4/+Q + Hu7/kB7y/5Ae9/+QHvv/kB7//5Ae//+QHv7/kB76/5Ae9v+QHvP/kB7v/5Ae5v+QHtP/kB63/5AenP+Q + Hnr/kB5Y/5AdLv+QHhL/jxoC/5AeAP+QHgD+kB4A/44gAP+PHgD/kB0A/5AdAP+QHQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB4A/5AeAP+QHgD/kB4A/wD/AP+PHQD/kB0A/5AeAP+S + IAD/jxwK/5AdGP+QHTD/kB1J/pAeVP+QHmD/kB1r/pAddv+QHnr+kB1z/5Adav+QHl/+kB5X/5AeS/+Q + HTP/kB4d/5AeEf+PHAf/kSAA/5AeAP+QHgD/kB4A/48cAP+QHgD/kB4A/pAeAP+OIAD/jx8A/48fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+M + JAD/jx0A/5AdAP+PHAD/jxwA/48cAP+QHQD/kB4A/5AeAP+QHgD/kB4A/5AeAP+QHgD/kB4A/5AeAP+Q + HgD/kB4A/5AeAP+QHgD/kB4A/5AeAP+QHgD/jx0A/48aAP+PHAD/kB4A/5AeAP+PHAD/kB4A/5AeAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///gAAAAD////wAAAAAD///4AAAAAAD//4AAAAAAAD/wA + AAAAAAAH4AAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAB4AAAAAAABAPwAAAAAAAf/+AAAAAAAH//AAAAAAAB//AAAAAAAAP/AAAAAAAA//AAAAAA + AAD/gAAAAAAAAP4AAAAAAAAA+AAAAAAAAADgAAAAAAAAAMAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAwAA + AAAAAAAPAAAAAAAAAD8AAAAAAAAA/wAAAAAAAAP/AAAAAAAAP/8AAAAAAAP/AAAAAAAAf/4AAAAAAAH/ + +AAAAAAAD//gAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAAAAAAAAAMAAAAAAAAAH4AAAAAAAAH/4AAAAAAAf//wAAAAAAP///wAAAAAD////wAAAAD///ygA + AABIAAAAkAAAAAEAIAAAAAAAAFEAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzMAFxczQBiYtkAWlrMAFxczQBbW80AW1vNAFtb + zABcXMwAXFzNAFxczQBbW8wAW1vMAFtbzABcXM0AW1vMAFxczQBcXM0AW1vNAFxczQBcXM0AW1vMAFxc + zABcXM0AXFzMAFVVygBbW8wAW1vLAGJi1gBaWsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxc + zABcXMwAXFzMAFpaygBbW80AXFzMAFxczQBcXM0AZWXVAFtbzQNbW8wGW1vNEVtbzCNcXMwuXFzNOlxc + zUVbW8xNW1vMUVtbzFRcXM1XW1vMU1xczUxcXM1DW1vNPFxczTVcXM0uW1vMH1xczAtbW80DXl7VAFtb + zQBbW8wAW1vLAFtbzABZWcoAXFzNAGRk0gBfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFlZzwBcXMwAXFzNAFxczABcXMwAXFzMAFxc + zQBdXc4AXFzMB1xczSFcXM09XFzNY1xczYdcXM2mXFzNvVxczc1cXM3XXFzN4lxczexcXM3zXFzN9lxc + zflcXM37XFzN+VxczfJcXM3qXFzN41xczd1cXM3XXFzNyVxczaxcXM2MXFzNYlxczT5bW8wmW1vLDFxc + zgBbW8wAXFzNAGJi0QBdXc4AXV3NAF1dzQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzNAFpayABaWsoAWlrKAFtbzABcXMwAXFzNAFxczQBdXcoBXFzMFVtbzDlcXM1qXFzNn1xc + zcpcXM3qXFzN+Fxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3+XFzN+FxczetcXM3QXFzNoVxczVtcXM0jXV3NB1tb + zABbW8wAb2/bAFxczQBcXMwAXV3RAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx8A/48dAOSH + OwAAAP8AVVrTAFlbzwBeXMkDXFzMFVxczURcXM2BXFzNuFxczeZcXM33XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM3PXFzNkFtbzEhbW8sNWlrLAFxc + zABfX9UAW1vKAF5ezgBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48cAP+PHAD/jhsA/pAdAP+QHgD/jhoA/pAdAP6QHQD/kB4A/48dAPuOIgD/mgAAM072DVBY + 2DZWWtJ5WFvRvllb0OlZW9D+WlvQ/1pbz/9aW8//WlvP/1pcz/9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeVcXMyYW1vMPFtbzAVcXM4AXFzMAFxc + zQBVVc4AWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+OGgD+jx0A/ZIhAP+P + HAD/jxwA/5AdAP+QHgD/kR8A/5sxAP2QHAL/kB4G/48dFv+RGyLpiTUzl2+NmYprm96Iap37iWqd/4tr + mv+La5r/iGqe/4Noo/9+Z6j/emas/3dksP9xYrf/ZV/E/15dy/9cXM3/WlvP/1pbz/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN21xczHpbW8wi////AFtbzABaWswAWFjLAFxc + zQAAAAAAAAAAAAAAAAD/jxwA/48cAP+PHAD+kB4A/48dAP2VJwD+kB0A/pAdAP+QHgD+kiMA/pAdEf+Q + HSf/kB1H/5Aea/+QHY7/kB6n/5AevP+QHsv9kCDX8Isu+fCLLf/1jSj/944m//qOJP/5jiT/9o0o//CL + Lv/rijT/5og4/+KHPf/chUT/y4BV/7d5a/+gcoT/hWmg/3Vksv9oYMH/XFzN/1tczv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfhcXM3BW1vMTllZywRbW80AXFzNAFxczQBcXM0AAAAAAAAA + AAD/jyIA/48dAP+OGwD+kB4A/5AeAP+QHgD+jx0H/pAdH/+QHUn/kB58/5Aerv+QHtX/kB7w/5Ae+P+Q + Hv7/kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+Q + HP//kRz//5Ec//+QHv/6jyP/9Iwq/+WIOv/MgFX/o3KB/3plrf9kXsT/W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWRcXM0HXFzNAFxczQBaWswAWlrMAAAAAAD/kB4A/48eAP6R + HwD+kB0H/5AdI/+QHlv/kB6U/5AezP+QHuz/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHf//kRz/+o4j/+eJN//EfV3/l2+N/25iuv9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczedcXM1pXFzNB1tbzABaWswAXFzSAF9fzwD/kB4D/48eGv+QHU7/kB6W/5Ae0f+Q + HvP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3/940n/9CBUP+UbpH/Z1/B/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3nXFzNYllZywRbW8wAXV3OAF1dzQD/kB5P/5Aev/+QHu3/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+QHf/1jSn/wnxg/4Fopf9fXcn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2ltb + zEdUVMgAXV3NAFtbywD/kB6A/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//pAf/+eJN/+pdXn9aWC+8VtczvFcXM39XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbZbW8wcXFzNAGNj + 2wD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HP/5jiT80oJOzYNoo3lZW9BzXFzNlFxczchcXM3vXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW8xxWlrLA1tbzAD/kB6A/5Ae/v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad+P+R + G57/lQ4bI0r/BVtbzB1cXM1TXFzNrVxczfJcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3LW1vMJlxczAD/kB6A/5Ae/v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvr/kB6e/5EZF55x + hgBWV84AXFzMFFxczXVcXM3pXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM32W1vNZlRUzwD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+Q + Hf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB72/5AdhP6PHAvsijEAWlrNAFtb + zgpbW82GXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNrFtbzRD/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//uPIv/2jSf/8ows/++LL//viy/++o8j6/+Q + Hub/kB7s/5Ae8/+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae5/+QHk//kxkA/5cEAFxczQBbW80tXFzN2Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN1ltb + zS//kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB78/5Ae8P+QHdf4jiW7vXtl7KNzgf+Vbo//iWqd/4Zpn+uUbpCZ04JNRv+RGjn/jx1J/pAeXv6Q + HXb/kB6R/5Aeu/+QHuj/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHrX/kB4b/5AeAFpbzgBbW80PXFzNuFxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN6lxczVf/kB6A/5Ae/v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Ae4v+QHrb/kB6B/5AeRv+S + Fyewd3MmXVzMz1tczv9bXM79WlvPyFda0VY8Ue8M74wvAP2QIAD/kB4A/5AeAP+QHgD/jhwD/pAdF/6Q + HT7/kB2R/5Ae4P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHvT/kB5l+4UIAHZksQBcXM0NXFzNsVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+VxczXj/kB6A/5Ae/v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae7v+QHsL/kB5//pAdO/+QHRH/jx0B/5AeAMyAVQBMV94PXFzNtVxc + zeJcXM2bW1zNKnp2wQBcW8wA/48AAP+WAwD/jxwA/pAeAP6QHQD/jx0A/pAdAP6QHgD+jxwI/5AdSP+Q + Hsf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB6z/pAeFJtwiQBcXM0cXFzNy1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczY3/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Huv/kB6r/5AeVf+QHhr/jx0D/pAeAP+QHQD/kB4A/48bAFJZ2ABcXM0EXFzNMlxczThcXMwRW1vNAFlZ + zgBaWs4AZGTMAFVV0AAAAAAA/48hAP+PGwD/jx0A/pAdAP+OHAD/jx0A/JIXAP+QHkb/kB7e/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7n/5EbQf/d + AABcXM1qXFzN81xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/lxczZb/kB6A/5Ae/v+QHv//kB7//5Ae//+QHv//kB7v/5Aeq/+QHVH+jx0S/pEeAP+Q + HgD/kB4A9p4mAP+PHAD9kSEAimqaAFxczQBcXM0AXFzNAFxczQBcXMwAX1/PAFtbzgBYWM8AV1fPAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48gAP2TBAD/kB0A/48dAP+PHQj/kB6T/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB788Yste11cy11cXM3dXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zZr/kB6A/5Ae/v+QHv//kB7//5Ae/f+QHsz/kB5j/pAdEv6RHgD+kB0A/44cAP+PHgD/kR0A/44gAP+P + HQD/jx0AXFzNAFxczQBcXM0AXFzNAFxczQBbW8sAW1vMAFtbywBcXM0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jiAA+5YQAP+QHQD/kB1k/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3+zYBT4mJexuxbXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczYf/kB6B/5Ae//+Q + Hv//kB7u/5AelP6QHSr9jSMA/5AdAP+OHQD/jx0A/48dAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx0A/5AdAP+QHQD/kB1b/5Ae9P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRz/1YNL/2dfwf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FtbzHv/kB51/5Ae6f+QHs7+kB5i/pAeDP6Q + HgD/jx4A/48eAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OoIASFXfAP/VAADyiysA/48dAP2V + HgD/kB52/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRz/4YY+/25iuv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN8FtbzWL+kB4k/pAeR/+QHSr+jx0D/5AeAPuUHwD/jx0A/48eAP+P + HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXyQBWWtIARlXkAOOHPACodHoA9o0nAP+QHSP/kB7D/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/5Ic7/3Jj + tf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN2FtbzDT+kB4A/5AeAP+QHgD+kB4A/pAeAP6QHQD9kRsAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HADxiysA8IosANWCSgBdXMoAkG2VALR3bgBBU+gD84wqKv2PH6P/kB78/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/5Yg6/3Rks/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNtltb + zBL+kB4A/pAeAP6QHQD/jxsA/48cAP6QHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48hAP+PHgD/kB0A/5MlAP+PHAD/kRsA+Y0jANeD + RwD/6QAAaGC/CpZujTXPgFB/940n0P+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/4IY//2xhvP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38W1vNeFhYzAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+P + HQD/jx0A/pAdAP+QHgD/kQEA/48gAP+PHgD/kB0A/5AeAP+RHwD7jiUA+I0jCNSCSyfGfltcz4FRp+SH + Ot71jSj9/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRz/2oRF/2dgwf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3VW1vMLVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+PGgD+hwMA/48cAP+QHQD/jx0A/pAdAP+Q + HgD/kB4A/5AeAP+PHgb+kB0X/5AdLP+QHU7/kB50/pAeoPSMKtL2jSf1+48i//+QHv//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/y39W/2RfxP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfhcXM15W1vLA1tbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/ii8A/48dAP+PGwD+kB0A/5AdAP+QHgD+ixoB/pAdDf+QHR//kB5H/5Aecf+Q + HpX/kB66/5Ae3v+QHvD/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB//q3V4/15d + y/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zbRcXM0bW1vNAFlZzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+N + GAD/kB4A/48dAP6RHwD9kBwG/5AdH/+QHkX/kB52/5Aeqv+QHtL/kB7q/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSj/jmyY/1pbz/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNy1tbzDpbW8wAXV3NAF1d + zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jiEA/pAdAP6QHQD/kB4A/48dAP6QHgD/jh4B/48dF/+Q + HU3/kB6R/5Aeyv+QHun/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/dhUL/cmO1/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3LXFzMPlJStQBcXMwAXV3NAF5ezgAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD+lBoA/pAdAP6QHgD/kB4A/48dBf+QHTD/kB53/5AevP+QHu7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//yPIf+rdXj/XlzL/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+FxczbNcXMw6RkahAFtbywBbW8wAXFzNAF9fzwAAAAAAAAAAAAAAAAD/jxwA/48dAP+P + HgD+jx8A/pAdAP6PHgP/kB0u/5Adhv+QHtj/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/9yF + Q/90ZLP/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzNhlxc + zRxeXtEAW1vLAFtbywBbW8sAW1vLAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+PHQD/kB0A/5AeE/+Q + Hm3/kB7V/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/84wq/5Zvjv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczaNcXM1FW1vLCFxczQBaWskAW1vLAFpa + ygBbW8sAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx0A/48dAP6ZMAD/kB4w/5AepP+QHvP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/4jiX/sHdy/2Nexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+lxczdhcXM2gXFzNTVxczQ5bW80AW1vMAFpazQBcXMsAWlrKAFpayQAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PGwD/jxwA/50rAP+PHT3/kB7E/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//iOJf+yd3H/Zl/C/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN+Fxczd1cXM22XFzNc1tb + zTBbW8wJXV3MAFxczQBnZ8YAW1vMAFZWywBcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/5AdAP+P + GwD/kiUA/5AdMf+QHsX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/7Ioy/6l1 + ev9mX8L/W1zO/1xczf9cXM33XFzN5VxczcxcXM2fXFzNY1tbzTVaWs0QWVnNAlxczABbW80AW1vOAF9f + zACDg70AXV3NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/o8aAP6QHAD/kB0f/5AetP+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//qPI//Wg0r/jWyY+mBdye9bXM7fXFzNvVxc + zZJcXM1mXFzNPVxczRpaWswLXl7OAFtbzQBbW80AW1vNAGJiyQBZWc0AWlrMAFpazAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+PGwf/kB6E/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/+kB/97Yox6797Ysh9ZqmkXFzNd1pczkxcXM0qW1vMGFtbywZcXM0AXFzNAFxc + zQBbW8wAWFjLAFtbzQBZWc4AWlrNAFZW0ABXV88AV1fPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxwA/pAeAP+QHT3/kB7g/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf8f6Q + H8j3jSaEzH9UP2FdxiA5UO8Jjm2YAFtczwBbW8wAW1vMAFtbywBYWMsAYWHKAFtbzABbW8wAWlrMAFpa + zABaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/kB4A/o8dBv+QHpX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB7/+Y4k+PyPINb9kB+h/Y8hVvuOIh3bhEEDxH1dAHFi + tABZWs0AWVvQAFxczABZWcsAW1vMAFtbywBeXs4AW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB4A/pAeKf+Q + HtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ec//+Q + Hv/3jSf/7Ioz/9aDSv++e2PkzIBVePKMLCj9kB4K+Y4lAPyPIQDviy4A/+gAAHZjsABWWc8AW1vNAFpa + yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWlrJAFpayQBaWsgAW1vLAFtbzABaWswAWlrMAFpazAD+kB4A/5AeVv+QHvf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+RHP//kB3/+o4j//SNKf/liDr/zYBU/7F3cf+Wbo//emas/2th + vfhiXcZ7ADf/BdOBTQD8jx8A/5AcAPyPIQDnijsA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZNIAWFjMAFtb + zABbW8sAW1vMAFtbzABaWswAWlrMAFpazAD+jxwE/5AegP+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//6Q + H//5jiX/6ok1/9aDSv+9e2X/oHKE/4ZpoP91ZLL/aGDB/1xczf9bXM7/W1zO/1tcztlaW88pWVvQAJlv + iwD/kRoA/pAfAP6QHgD7kxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrKAFtbzABbW8wAW1vPAFtbzQBaWskDW1vMH1tb + zCdaWswJWlrMAFpazAD+kB0Q/5AetP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//2PIP/uijD/1IJM/693c/+ObJf/fWaq/2th + vf9fXcr/XFzN/1pbz/9aW8//W1zO/1xczf9cXM3/XFzN/1xczbxbW80VW1vNAFtbzQBaWtEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFVV0ABeXswAWlrOAFtbzABbW8sAXFzNAFtbzQtcXM1iXFzNxVxczcVbW8wwW1vMAFtb + zAD/kB4Z/5Aey/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB388Isu67J4cPqEaaL/aGDA/15dy/9aW8//WlvP/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcZbW80aXFzNAFxcywBbW8oAV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8wAWlrIAFVV + xgBcXMwAWVnOAFxczQBaWscCW1vMLltbzZFcXM3rXFzN/1xczfBbW8w8W1vMAFtbzAD/kB4j/5Ae0P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvz/kRurr3ZyZV9dyd5aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczelbW81GXV3PAFhYywBbW84AW1vNAF9fzwAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + GwD/jx4A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAXFzMAFxczwBcXMwAAABzAFtbzABcXMwAT0/RAVxc + zR1cXM1wXFzN0VxczfxcXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/jx0x/5Ae1/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHsn/kRcqRVTkFVtc + zb1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf5cXMyrXFzNG1xcywBcXM0AWVnLAFpazQBWVs8AV1fPAKRxfgD/jx4A/48eAP+OHQD/jx4A/48dAP+P + HQD8jxsA/5ITAFxczABcXM0AXFzLAFxczABcXMwAXFzNAFtbywRbW8wjW1vNbVxczcRcXM32XFzN/1xc + zf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/jx0w/5Ae1/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHnr//wAARlThA1xczYhcXM39XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzNnVtb + zCteXs0CW1vMAFpazQBZWc4AXFzMAFpazQAAL/8A940nAP+QHgD/jx4N/48dIf+PHRMAMP8AhGihAFxc + zABcXM0AXFzNAFhYxwBcXMwTXFzNPlxczYZcXM3KXFzN91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze1bW8w7W1vMAFtbzAD/kB4m/5Ae0v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae8P+QHlX8jyAAWFvSAFxczT1cXM3fXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczctcXM10XFzNMVpa + zRD//4wAW1zOAF1dzACyeHAA/5IXAP+QHir/kB6Y/5AezP+QHHM4UPcAamC/AFxczAlcXM0fXFzNPlxc + zXdcXM21XFzN5Vxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtb + zAD/kB4W/5Aewf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8/6QHlv/kB0AWVvQAFxczApcXM2TXFzN/Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzN3Vxcza1cXM2FW1vOYlda + 0U+AZ6VC6Yk0Y/+QHsP/kB79/5Ad/96GQLpcXMxlW1zNfVxczZ9cXM3HXFzN61xczfpcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kB0K/5Aem/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HpH/kB4H/o8fAFpbzgBbW8wzXFzNz1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aW87/YV7H9IRpoe7MgFXq+o4j8/+Q + Hv//kB7//5Ec/7x7ZflcXM31XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/ihYB/5Adbv+QHvr/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt7+kB5I/5EbAM+A + UQBcXc4DXFzNY1xcze1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bXM//W1zO/2Rexf+DaKP/unpo/+qJNf/+kB///5Ae//+QHv//kB7//5Ec/7p6 + aP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kB4A/5AdO/+QHuP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7K/pAdS/+PHQnMgFMAPlHqCltb + zYNcXM30XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9aXM//W1zO/19d + yv9xY7f/lW6Q/8V9Xf/sijL//5Ae//+QHf//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze1bW8w7W1vMAFtbzAD/kB0A/48dEP+QHqX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae4v+QHpD/kB0//5QQFGlfvRlYWtCJWlvO71tc + z/9bXM7/W1zO/1tczv9bXM7/W1zO/1pcz/9aW8//XFzN/2Zfwv9zY7T/j2yW/7d5av/chUP/+I4m//+Q + Hf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtb + zAD/jxwA/5EfAP+QHUv/kB7n/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7m/5Aeuf+QHIbmiDd2nXCGuoRpofp7Zqz/dGO0/3Nj + tP93ZbD/f2en/45sl/+dcYf/rnZ0/8l/V//kiDr/9o0o//+QHv//kRz//5Ad//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW8w7W1vMAFtbzAD/kBwA/5AcAP+P + HA3/kB2T/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB31/I8h7/CLLvzriTT/54g3/+eIOP/piTX/7Yoy//OM + K//6jiP//5Ad//+RHP//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze5bW8w7W1vMAFtbzAD/kR8A/4weAP6QHQD/kB4r/5Aexf+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ec//+RHP//kBz//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6 + Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczeZbW8w3W1vMAFtbzAD/jxoA/5AdAP6PHgD4cUYA/pAdSP+QHtj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfhcXM3ZXFzNpVxc + zV1cXM0QXFzNAFxczQAAAAAA/pAdAP6QHgD/jx0A/44bBP6QHVj/kB7X/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/7p6Z/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczetcXM3QXFzNpVxczGpcXMwvXFzMDGRkyQBcXM0AXFzNAFxc + zQAAAAAA/48fAP+PHwD/jx0A/48cAP+OGwP+kB1K/5AezP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec/7p6aP9cXM3/XFzN/1xczf9cXM3/XFzN/lxczflcXM3zXFzN5lxc + zcpcXM2kXFzNc1xczEZcXM0fW1vNDV5e0wBcXMwAXFzNAFlZzgBdXc0AXV3MAFxczQAAAAAAAAAAAP+P + HQD/jx0A/48dAP+PHQD+jSEB/5AeNf+QHqv/kB71/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ac/8B8YfBcXM3YXFzN0FxczcJcXM2sXFzNjlxczXFcXMxTXFzNM1tbzCBbW8sLXV3OAFxc + zQBcXM0AXFzNAFtbywBbW8wAW1vLAFpazwBeXswAVFTQAAAAAAAAAAAAAAAAAAAAAAD/jx0A/pAhAP+P + HgD/jx4A/pAdAP+PHRj+kB5o/5AezP+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/+qJ + M6JcXMwvW1zNKFtbzBtaWs0JW1vNAk9PwgBeXs8AXFzNAFtbzABcXMwAW1vMAFtbywBcXM4AXFzNAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+QHgD/kB4A/48gAP+Q + HQD+jxwC/pAdLf+QHYX/kB7e/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHu//kB7I/5Aei/+RGTNoX8EAYF3IAFtb + zABaWs0AXFzNAFtbzABaWssAXFzOAFtbzABcXMwAWVnJAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx4A/4wkAP6QHAD+kB0A/pAdAP6P + HAf/kB48/5Aeg/+QHsX/kB7v/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae9v+QHub/kB7D/5Aekv6QHlP+kB4d/ZAeBf+RHAD//wAAbmK5AFtbzABYWM0AXFzKAFZW + 0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADnghwA/48ZAP+PGwD/jhkA/pAeAP6QHAD/kB4A/o8bBP6Q + HR7/kB1P/5AelP+QHs//kB7q/5Ae9/+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHvn/kB7z/5Ae3/+QHsD/kB6W/5AeZf+Q + HTf/kB4a/o8cB/+QHgD+kB4A/pAeAP2WFAD/jx8A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/4kVAP6QHAD+kB0A/48cAP6QHQD/kB4A/48dB/+Q + HSX/kB09/5AdYf+QHY7/kB6x/5AezP+QHtf/kB7e/5Ae5v+QHu3/kB70/5Ae+f+QHvT/kB7v/5Ae5/+Q + HuH/kB7c/5Ae0v+QHsH/kB6o/5Aeif+QHmz/kB1K/5AeMf+QHRv/jxsE/5AeAP+QHgD/kB4A/pAdAP+I + BwD/kBwA/pAeAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NFQD+kB0A/48cAP2RHgD/kB0A/48dAP+QHQD/kB4A/5QmAP6Q + HAT/kB0M/48dIf+QHi7+kB41/5AdP/6QHUb+kB1P/5AeVP6QHU7+kB1J/5AeQP6QHjn+kB40/5AdKf+P + HRb/kB4H/5AdA/+KFQD/kB8A/5AeAP+QHQD/jxwA/5AeAP+OGQD/kB4A/o8cAPWZOgD/jxsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PIQD/jxwA/48dAP+QHQD9lR8A/48cAP+QHQD/kB0A/48dAP+Q + HgD+kB4A/5AdAP+QHQD+kB0A/5AeAP6QHQD+kB0A/5AeAP6QHgD+kB4A/5AdAP+PHQD/kB4A/5AeAP+P + HQD/jhkA/5AdAP+QHQD/jxsA/48bAP+PGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD////AAAAAP/8AAAD///wAAAAAA/8AAAD//+AAAAAAAP8AAAD//wAAAAAAAD8A + AAD/+AAAAAAAAB8AAAD+AAAAAAAAAA8AAADgAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAB/AAAAAAAA + AAAAB///AAAAAAAAAAAAH//8AAAAAAAAAAAAf//4AAAAAAAAAAAB///AAAAAAAAAAAAD//AAAAAAAAAA + AAD//wAAAAAAAAAAAAD/8AAAAAAAAAAAAAD/wAAAAAAAAAAAAAD/AAAAAAAAAAAAAAD8AAAAAAAAAAAA + AADwAAAAAAAAAAAAAADgAAAAAAAAAAEAAADAAAAAAAAAAAMAAACAAAAAAAAAAAcAAACAAAAAAAAAAB8A + AAAAAAAAAAAAAH8AAAAAAAAAAAAAAf8AAAAAAAAAAAAAA/8AAAAAAAAAAAAAP/8AAAAAAAAAAAAH//8A + AAAAAAAAAAD//wAAAAAAAAAAAA///gAAAAAAAAAAAB//+AAAAAAAAAAAAP//4AAAAAAAAAAAAH//AAAA + AAAAAAAAADwGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAA + AADAAAAAAAAAAAEAAADgAAAAAAAAAA8AAADwAAAAAAAAAf8AAAD8AAAAAAAAf/8AAAD8AAAAAAAH//8A + AAD/gAAAAAAH//8AAAD/4AAAAAB///8AAAD//AAAAAf///8AAAAoAAAAUAAAAKAAAAABACAAAAAAAABk + AAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXM0AXFzNAE5OvABbW8wAXFzMAFhYzgBaWs0AW1vMAFxc + zABcXM0AXFzNAFtbzABbW8wAW1vMAFxczQBcXM0AW1vMAFxczQBcXM0AW1vNAFtbzQBcXM0AW1vMAFtb + ywBeXs4AW1vMAFtbygBbW8wAW1vMAFtbywBYWMYAWlrJAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8sAW1vRAFtbywBcXMwAXFzKAFxczQBcXM0AXFzNAFxc + zQBcXM0AXV3MAFlZzQZbW8wRXFzMGFtbzR9cXM0nW1vMLFtbzDBbW8wxXFzNM1xczTRbW8wyXFzNLVxc + zSdbW80iW1vNHlxczRpbW8wUW1vKB1pazABcXM0AXFzNAFtbzQBbW8wAW1vKAF5e0QBcXMwAWFjJAGFh + 0QBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAXFzNAFxczABcXMwAW1vMAFxc + zQBcXM4AXFzMBVxczQ5bW8wlW1vNQ1xczWFcXM15XFzNkFxczadcXM20XFzNwlxczdFcXM3cXFzN41xc + zeZcXM3qXFzN7FxczedcXM3dXFzN0lxczclcXM3BXFzNuVxczaxcXMyPXFzNblxczVJcXMwtXFzNFFtb + zApZWcQBXFzNAFxczABdXc0AaWnSAFtbywBYWMUAWlrIAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpayQBaWskAW1vKAFxczABcXMwAXFzNAFxc + zABbW80AXFzNAF9f0gBbW8sOXFzNKVxczU5cXM2CXFzNsFxczdNcXM3jXFzN8lxczf5cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM34XFzN61xczdhcXM3AXFzNm1xczGZcXM0uXFzNCVtbzABbW8wAW1vLAG9v+QBbW8oAXl7OAGVl + 1ABUVLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXM0AXFzMAFtb + ygBOTq8AWlrLAFxczABcXM0AW1vIAVtbzRNcXM01XFzNbVxczaZcXM3NXFzN8VxczfxcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9lxczdFcXM2ZXFzNWVxc + zSFbW8sGXFzOAFtbzABdXc0AWlrJAFpayABaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxsA/48dAP+Q + HQD+kB0A/5EeAP+OGwD/xgAAd2SuAF9dywCBc84AW1vMDltbzTlcXM1wXFzNslxczeJcXM31XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3vXFzNx1tbzHdbW8wiXFzMAlxczABZWcgAWlrJAF9fzwBcXMwAXFzMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+O + GgD/jx0A/5AdAP+OGAD/jx0A/pAdAP6QHQD/kB4A/5AeAPeNJwD/qgAAUFjZIlda0V5ZW8+kWlvP3Fpb + z/taW8//WlvP/1pbz/9aW8//WlzP/1tcz/9bXM//W1zO/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VxczcFcXMxlW1vMFF1d + 0QBbW8wAbW3LAFxczABcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/pAdAP+KEAD/jxwA/5AdAP+QHQD/kB0A/5EgAP6OGwP+kB0K/pAdD/+QHhv/jx0z/5AdQ/mO + JFKzeG+zo3OA9KZzff+odHv/q3V4/652dv+rdXf/pnR8/59yhP+Zb4z/lG6R/45sl/+Iap3/e2as/2pg + vv9jXsX/X13K/1pbz/9aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze5cXMyjW1vNQ1xczQhaWs0AXV3NAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAP+P + HAD/jxwA/48bAP+OGgD/jxwA/48dAP+OGgD+kB0A/pAeAP+RIAD/jxoB/48dFf+QHTL/kB5R/5Aed/+Q + Hpr/kB65/5Aezv+QHtv/kB7j/5Ae6fmOJPv5jiT//Y8g//6QHv//kB3//5Ec//+QHf/9jyD/+Y4k//aN + J//0jCr/8Yst/+6KMP/miDj/1oNJ/8R9Xf+rdXj/kW2U/4Bopv9vYrj/X13K/1tczv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM3eW1vMeFpazBNcXMwAXFzNAFxc + zQBcXM0AXFzNAAAAAAAAAAAA/48lAP+PHgD9kSAA/o8dAP+QHgD/kB0A/5EhAP6QHQz+kB0m/5AdUf+Q + HoT/kB6z/5Ae2P+QHvP/kB77/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB3//5Ad//+RHP//kBz//5Ae//2PIP/4jiX/64o0/9aD + S/+wd3P/hWmh/2pgvv9dXMz/W1zP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3vXFzNj1xczRtcXM0AXFzNAFxczQBbW80AAAAAAAAAAAD/kCAA/48eAP6QHQD2hw8A/5AdCf+Q + HS//kB5j/5Aemv+QHtL/kB7t/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//5Ec//yPIf/tijH/z4FR/6Rzf/98Zqr/YV3I/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM33XFzNl1xczRtbW80AW1vMAFpazABeXs0AX1/PAP+Q + HQD/jx4H/pAdJP+QHV//kB6j/5Ae1P+QHvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3/+48i/+GH + Pf+pdXr/dmSx/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM32XFzNlltb + zRdcXM0AW1vJAJWV/QBgYNAA/5AdLv+QHon/kB7H/5Ae8v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//qOI//bhUT/mnCK/2lgv/9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3zW1vMfVtbywxaWssAWVnKAFVVxgD/kB5s/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf/yjCv/xn5b/4Zp + oP9gXcn+W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3lXFzMUm1tyABdXcwAXV3NAP+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB7/54g3/KNygNplX8O2W1vOxVxczd1cXM3tXFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXMy2W1vLIFtbzABbW8wA/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i6+iJNoWNbJcmVlrTJ1xc + zVNbW82NXFzNzFxczflcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRbW81wW1vKA1tbzAD/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad6P+RG3H/nAAKq3V4AFtbyQRcXM0tXFzNfVxczd1cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczcJaWs0hXFzMAP+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae6f+QHmj/jxkGuHloAFpbzQBcXMwGXFzNUlxc + zdVcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN71tbzVpWVssA/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+Q + Hf//kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae2v6Q + HUz/iiUA8YsuAFpazQBaWtAEW1vNa1xczfBcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNnVpazgr/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kBz//Y8g//iOJv/0jCr/8Yst/+6LMP/wiy76/I8h6P+QHub/kB7r/5Ae8v+QHvn/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Aetv+QHh//kB0AWl3LAFxczQBaWs0eXFzNxFxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3FW1vNJf+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/f+QHvf/kB7h/Y8hxMt/VeitdnX/n3GF/5Jtk/+Iap3/iWqc4JxwiYnjhzxC/5AbPf+P + HU3/kB5i/pAeef6QHZT/kB6x/5Ae3P+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB70/5AedP+PHgX/kB4AWlvOAFpa + zQdcXM2gXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczd9cXM1I/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Ae5f+QHsf/kB6P/5AeV/+RGznehUEoYl7Hulxczf9cXM3/W1zO+Fpb + zrNYWtFFMUz6CPuPIgD9kCEA/5EgAP+RHwBtlwAA/o8dAv+PHRP+kB02/5Adb/+QHsX/kB72/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7N/5AdLf+QHgBaW88AXFzNBVxczZVcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN8lxczWT/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7x/5Aex/+QHof+kB1G/5AdGf+QHgf+kR4A44c8ACRK + /wZbXM6vXFzN/lxczeRcXM2DWlvOHWdixwBgXMcA6Yc4AP+RFAD/jxwA/pAeAP6QHQD+kB4A/48dAP6Q + HgD+jxsD/5AdJP+QHoL/kB7o/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf/kB5y/44hAolqngBcXM0LXFzNqlxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM37XFzNff+Q + HnH/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7k/5AepP+QHln/kB4j/48dBv+Q + HgD/kB4A/5AeAP+OHQBAU+sAXVzMBFxczVdcXM18XFzNTFxczQtcXM0AWVnMAFpazQBbW80AAAD/AAAA + AAD/jx8A/48eAP+PHwD/jx0A/pAeAP6PHAD/kB0A/5AeDP+QHnf/kB7x/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHrf/kB0anXCFAFxc + zThcXM3ZXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfxbW82G/5Aecf+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7k/5AeoP+Q + HUr/jx0Q/5AeAP+QHgD/jx0A/44eAP+RIgD/kB4A/o8eAFxczQBcXM0AXFzNAlxczQNgYNYAXFzNAF1d + zQBaWssAW1vMAFpazAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jRoA/o8dAP+CKgD/kB0A/o8dGf+Q + HrD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae5v+QHDxRWdkfXFzNqVxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczJD/kB5x/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7z/5Aeqf+QHUn+jx0Q/pEeAP+QHQD/kB4A/5AdAP+PHQD/jx0A/48dAAAAAABcXM0AXFzNAFxc + zQBcXM0AXFzNAFtbzABdXdAAV1fDAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/48eAP+OHgD8mRsA/5Aebf+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB72yn9WmF1czK9cXM34XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM38XFzNhv+Q + HnH/kB78/5Ae//+QHv//kB7+/5Ae0P+QHmv+kB4Y/5AeAP6QHQD/jh0A/48dAP+PHQD/jx4A/48fAP+P + HwAAAAAAAAAAAFxczQBcXM0AXFzNAFxczQBcXM0AW1vMAFlZxgBbW8sAMDBrAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx0A/5AdAP+QHQD/kB1Q/5Ae7v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//6QHv67emf4X13K/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczftcXM1y/5Aecv+QHv7/kB7//5Ae8v+QHqL/kB4z/Y8cAv6QHgD+jx0A/pAdAP+P + HQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+QGQD/kB0A/5AdAP+Q + HVH/kB7u/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/8t/Vv9jXsb/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9ltbzGn/kB5i/5Ae2/+QHs7/kB5z/pAdFP6Q + HQD+kB4A/pEcAP+NIgD+jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAA9D + /wD/mQAA/o8eAP+PHQD/gxsA/5Aecv+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/1IJM/2hgwP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3jW1vNTv6Q + Hhv+kB48/pAdLP+PHAf/kB0A/44hAP+PHwD8khsA/48gAP+PHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAX1/PAGBg0AD/jQAAX1zIAP//AADFfVwA+Y4kAP+QHSj/kB7E/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//Xg0n/a2G8/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczcVbW8wl/pAeAP6QHgD/kB0A/5AdAP+PHAD+kB8A/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jxwA/o8dAP+SEgDPgFAA/6gAAGNhzgBlXsIAw3xdAHdksAL3jSYq/Y8fpf+Q + Hvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/9mER/9uYrr/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vNoFpaywn+kB4A/pAeAP6QHQD/jxsA/48bAP+P + GgD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxsA/48bAP+PHQD+kB0A/5MDANWCSQDRgU8A4oY7ADJO + +AmUbY4v04JMePmOJMn+kB/6/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRv/04JN/2Zfwv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW81lVVXMAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxsA/48dAP+QHQD+lhoA/48dAP+QHgD/jxwA/48dAP6Q + HgD7jyIAx31XBqd0exutdnVWyX5YlduERNf1jSn5/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//NgFT/YV7I/1xc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNyFtbzCRbW8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jhkA/48dAP+PHQD/jx0A/pAdAP2UJQD/jx0A/5AdAP+Q + HgD/kR4A/48fAP+PGwb/jx0a/pAdMP+QHU/uijCI54g3xe+LL+33jSf//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/8N9Xf9gXcn/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfVbW8xvWlrLAltbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jRQA/48cAP6RIAD/jxwA/5AdAP+Q + HgD+kB4A/5AeAP+PHAf/kB0V/5AeJ/+QHkr/kB5x/5Aem/+QHrr/kB7W/5Ae8/6QH/3+kB///5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/7jyP/qHR8/15cy/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNsFxczBtbW80AW1vMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+OGwD/kB0A/5AdAP+O + GgD/jxwA/pAeAP2TJwD/kB0E/48dFv6QHjv/kB5d/5Aeif+QHrf/kB7c/5Ae6v+QHvf/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//OMK/+Iap3/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zddbW8xBWlrJAFxczgBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+P + HQD/jxwA/ZMjAP+QHQD/kB4A/5AfAP6PHAr+kB0o/5AdV/+QHor/kB67/5Ae3f+QHvb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3oZB/3NjtP9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzMVltbygRbW8wAW1vMAFpazQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48gAP6QHAD+kB0A/owQAP+PHQD+kB4A/48cBP+QHhj/kB1R/5Aelf+QHtD/kB7y/5Ae/P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv+3eWr/Yl7H/1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2lxczFZbW8oEW1vMAFtbzABZWcoAamrUAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/40jAP+QHgD+kxsA/pAdAP6PHgD/kB4A/48dBf6QHTD/kB54/5Aevv+Q + Huv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBz/6ok0/4Rpov9aXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczbpcXMxJWlrKBFtb + zABcXMwATk6xAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/o8dAP6PHgD+kB0A/o8eA/+Q + HSz/kB2B/5Ae0/+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//yP + If+1eG3/YV7H/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zehcXM2RXFzNJV5e0QBcXMwAXFzNAFtbzABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+P + HAD/jxwA/5AdAP+QHhL/kB5p/5Ae0P+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kBz/2IRH/3Zksf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xcze1cXM2qXFzNT1tbzAxcXM0AW1vLAF1d0ABVVb8AW1vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PHAD/jx0A/48dAP+LEwH/kB4x/5Aenv+QHu//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac/+iJNv+ObJf/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+1xczeFcXM2sXFzNWFxczRJbW80AW1vMAGBgyQBcXMwAXFzNAFlZ + yAAjI08AAAAAAAAAAAAAAAAAAAAAAP+PHwD/kB8A/48cAP+PHAD/jhwC/48dQ/+QHsT/kB7+/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/oiTb/k22S/19d + yv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzN7FxczcVcXM1/W1vNPVxczQ+7u6AAXV3NAFtb + zQBbW8wAXV3MAFxczABcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48fAP6PHgD/jxwA+ptEAP+Q + HUD/kB7M/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/+kB//44c8/5Jtk/9fXcr/W1zO/1xczf9cXM3/XFzN/1xczfZcXM3dXFzNtFxczX9bW81HW1vNIFlZ + zwRcXM0AXFzNAFpazgBfX8wAbGzGAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jhoA/o4bAP+RHgD/kB0y/5Aewf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/+Y4k/8h/WP+AaKb/Xl3L/1tczftcXM3tXFzN2lxczbRcXM2HXFzNX1tb + zTpbW8wSW1vMA15ezABcXMwAWlrOAP//xgBcXM4AWlrOAGhoyABWVtAAV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA66NCAP6RIAD/kB4A/5AeF/+QHqX/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//I8h/+eIN/2sdnb4cWK231pbz79bXM2hW1vNflxc + zFRcXM0pXFzNFFxczAdaWswAW1vNAFtbzQBbW80AWVnNAFxczABaWs4AX1/MAFVV0AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kBwA/pAcAP2PGQL/kB1r/5Ae8v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf/vuPIuHVgku6mG+LimRe + w11XWtE4XFzNH11dzQhRUckAXV3OAFxczQBcXM0AXFzNAICA4ABbW80AWlrMAFlZzABaWs0AcXG/AFZW + 0AAXFzYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q + IQD/kB4A/5AdKP+QHsr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHv//kB7//5Af8P2P + IMP8jyGF8IstP651dRIURP8Hr3qCAFtczQBcXM0AXFzNAFtbzQBbW8wAVVW+AFxczQBcXM0AXl7OAF5e + zQBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP6TGAD/kB5v/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ad//6Q + H//2jSf4+o4j0P2PIJ/+kB9Y+o4kIP+OHQP4jiUAtXhtAFVZ0gBTWNAAWlvOAFxczABdXc0AV1fHAGBg + 0ABfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB4A/pAeF/+QHrL/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+R + HP/9jyD/9Iwq/+mJNv/SgU7/uHlq6L98Y3/niDcr/5AcCP+RIgD6jiMA/o8eAP+ZAAClc30AY13EAFha + zABdXdEAWlrIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWsgAXV3RAFpaygBbW8wAWlrMAFpazABaWswAWlrMAP6Q + HQD+kB40/5Ae5f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//+Q + Hf/+kB//+48i//OMK//fhkD/yX9Y/652dP+TbZL/eGWv/2pgvfliXcaKJkn/C8V9WwD8jyAA/ZAfAPeO + JQD+jx4A/o8eAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVcoAW1vNAFtbywBeXtQAWlrKAFtb + zABaWswAWlrMAFpazABaWswA/5cqAP+QHlj/kB7z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+Q + Hf//kRz//pAf//OMK//niDj/1IJN/7Z5bP+ccIj/h2qf/3dlsP9lX8P/XFzN/1tczv9bXM7/W1zO3Vpb + zzNYW9IA/9EAAOCGQgDrhjoA/48fAP+PHwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrMAFpa + zABbW80AXV3OAFxczQBaWskGW1vMFFpazBBaWswBWlrMAFpazAD9kB0F/pAejv+QHv3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//6QH//2jSf/4oc8/8J8X/+pdHr/k22S/3tmrP9oYMH/YV7I/1xczf9aW9D/WlvP/1tc + zv9cXM3/XFzN/1xczf9cXM28XFzNF1tbzQBbW80AWlrQAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZ2fTAFpazABcXMwAW1vUAFtbzABaWssAW1vMGVxczHZcXM2vW1vMhFpazAxbW8wAW1vMAP+Q + Hgv/kB6x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//2PIf/liDn+vXtk/5Jtkv92ZLH/ZF/E/1tczv9aXM//W1zO/1tc + zv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbhbW80WW1vNAFxczQBaWskAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABaWskAW1vHAFVV0gBPT9YAWlrNAFxczgBbW80AWVnMBVtbzDdcXM2kXFzN9Vxc + zf9bW8zEW1vMEltbzABbW8wA/5AfEf+QHrj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kBzo54g3p4Noo9tiXsf/W1zO/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2Ftb + zSxcXM0AaGi6AFZWxwBcXNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8sAZWXoAFpazABbW80AWFjDAFtb + zCFcXM15XFzN01xczf1cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jx0e/5Aewf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae7v+R + G3CYb4shWlvPq1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM31W1vMdlpayQVaWswAWlrMAFtbzABzc94AYGDQAF9fzwAAAAAAAAAAAP+P + HQD/jx0A/48eAP+RGgD/jh0A/44dAP+OHQD/jh0A/44dAFxczABcXMwAXFzMAFxczABaWs4AWlrLAFtb + zABcXM4AVVXMAVpazR5cXM1iXFzNvVxczfdcXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP+P + HCf/kB7H/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB6k/5AaEwAA/wBcW818XFzN+1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3YXFzNTFdX0QJcXM0AXFzNAFpa + zABZWc0AUlLUAFdXzwDPf1EA/48eAP+PHQD/iRUA/48eAP+QHgD/kB0A/pAdAP6QHQD3jSUAXFzMAFxc + zABcXMoAXFzMAFtbzABcXM0AW1vMB1xczChbW81pXFzNvVxczfNcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dIf+QHsP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9P+QHl//kR0AYF3IAFtbzUdcXM3kXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3UW1vNZ1xczRlhYc8AW1vMAFpazQBbW80AXFzNAFpbzQBBU+gA3oQ/AP+QHwD/jx4O/48eN/+P + HT7/kBwR5Yc5AFFY1wBcXMwAXFzNAFxczgBcXMwFXFzMGlxczUpcXM2NXFzNzlxczfVcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jx8Z/5Aevf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7m/5AeRv+Q + HgBSWdcAXFzMElxczaRcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3uXFzNsFxczWJbW80vWVnNDlZWzgFbXNAAXl7OANGC + TwD/rQAA/5AeIf+QHoz/kB7d/5Ae1v+QHD78jyAAZV6+AVxczBFcXM0sXFzNTlxczYNcXM3AXFzN51xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP6Q + Hgv/kB6o/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuz+kB5Q/pAdADFO+wBcXM8AXFzNTFxczeVcXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9Fxc + zdRcXM2pXFzNh1tczmVYWtBVd2WuR9+FP1/9kB+1/5Ae+P+QHv/8jyH4rnZ0jlZa03JcXM2NXFzNrVxc + zdFcXM3xXFzN/Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dBP+QHoH/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/f+QHoP/jx8G/5IYAFpbzgBbW8wPXFzMkVxc + zfpcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM79X13J839np+3DfV7p940m8P+QHv//kB7//5Ad//eN + Jv6La5r1WVvQ91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD7oDQA/5AdV/+QHvD/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae0v6Q + Hjr+kRwA+I0lAFpb0ABcXM0tXFzNw1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM//Yl7H/31mqf+yd3H/44c8//yP + If//kB7//5Ae//+QHv//kB3/9o0n/4lqnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP6Q + HgD/kB0q/5Ae1P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB79/5Aetf6QHTP/jR4C6okzAAAz/wFbW81KXFzN2Fxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1zO/1pbz/9eXcv/aWC//4xr + mv+4eWr/5Yg5//2PIP//kRz//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48dAP+PHQ3/kB6Y/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Aeyf+QHWf+jx0g/6IAAhpG + /wRXWtBeWlvO2ltczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tczv9bXM7/W1zO/11c + zP9pYL//gWil/6Z0ff/RgVD/8Isu//6QH///kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wRW1vMAFtbzAD/jhoA/5AeAP+QHUT/kB7h/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8P+QHr7/kB2D/5AbR+CGPSt6ZatsZV/C3GJex/9fXcr/XFzN/1xczf9dXMz/X13K/2Je + xv9oYMD/bWG7/3hlr/+UbpH/sXdx/8+AUv/qijT//I8h//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lrnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMwltbzBFbW8wAW1vMAP+Q + HQD/kB0A/48cDf+QHZT/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvv/kB7q/5Ad1PuPIbjXg0jPuXpo+q52 + df+mdH3/pHOA/6d0fP+udnX/unpo/8t/Vf/bhET/6ok1//SNKf/9jyD//5Ec//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zCW1vMEVtbzABbW8wA/48bAP+PGgD+kSEA/5AdMv+QHsr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf7/kB7//5Ae//+QHv/+kB///5Ae//+QHv//kB7//5Ad//+QHf//kBz//5Ad//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMRbW8wSW1vMAFtbzAD/jxsA/48cAP+QHgD/jyAD/pAdXf+Q + Hub/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lrnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNq1tbzA5bW8wAW1vMAP+P + GwD/kB0A/5AdAP6QHAD+jxwK/pAdef+QHu7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf/iWuc/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczflcXM3aXFzNqFxc + zWlbW80oXV3NAlxczQBcXM0AAAAAAP+WGAD/jh4A/JIhAP6QHgD/jx0U/pAdgv+QHuv/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//aN + J/+Ja5z/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzN6lxc + zdBcXM2mXFzMb1tbzDdbW8sOWVnQAV1dzQBbW80AXFzNAFxczQAAAAAAAAAAAP+PHAD/jhkA/4wYAP6Q + HAD/jxwQ/pAdcv+QHuT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/9o0n/4lqnP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf5cXM37XFzN91xc + zeZcXM3JXFzNpVxczXVcXMxIXFzNIFtbzRBaWsgBXFzMAFxczABbW80ALCzgAFpazgBbW80AXFzNAAAA + AAAAAAAA/48bAP+PHQD/jx0A/4sbAP6QHQD+jx4K/5AeWP+QHsv/kB79/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/2jSf+i2ua8llb0OtcXM3mXFzN3Fxc + zc5cXM2zXFzNllxczXlcXM1XW1vMPVtbzCdbW8sLYGDNAFxczgBcXM0AW1vNAFtbywBcXMwAW1vKAFpa + yABYWM4AWFjPAFdXzwAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHAD/jxwA/ZEfAP+QHgD/jyAC/5AdM/6Q + HpL/kB7i/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//uP + Ifiyd3CGU1nWUFxczElbW8w1W1vNHFxczQ5bW8wJWVnKBF1dzwBbW8wAXFzMAFxczABbW80AW1vLAF1d + zwBbW80AW1vMAFxczABbW8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + IADotwAA/5AeAP+QHgD/kB0A/pAeDP6QHVD/kB6w/5Ae7/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHvv/kB7i/5Aeq/+SFimxd3EAWVvQAFxczQBcXM0AXFzNAFtbzQBbW8wAWlrKAFtb + zABbW8wAW1vLAFxczABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+OIAD/kR4A/48fAP+MHgD+kB4A/ZQrAP6QHBb/kB1m/5Aeu/+Q + Huj/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9/+QHub/kB66/5Aeef6QHkH/kB4T/5EaAeKGPQBPV9oAWlrLAGJi + zABcXM0AW1vNAFtbzABbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/44bAP2R + IAD+jxwA/5AdAP+QHwP+kB0Z/5AdS/6QHo7/kB7G/5Ae8f+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/v+QHvv/kB7o/5Aexf+QHp//kB5y/5AdRP6QHRj+jx8D/pAeAP+Q + HgD/kB0A/5AdAP+QHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIZLDgD/jxsA/48fAP+NIwD/kBwA/5AeAP6QHgD/kB4A/48cBv+QHST/kB1Z/5Admv+Q + Hr3/kB7X/5Ae6/+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/P+QHu//kB7j/5Ae1v+QHr7/kB6b/5Aebv+QHkH/kB4j/48cCf+P + HQD/kB8A/pAeAP6PHwD+kB0A/48fAP2RHgD/jx8A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+SHAD/kB4A/ZIiAP6Q + HQD/jx0A/5AdAPeeIAD/kB0K/5AdE/+PHSz/kB1S/5Adcv+QHpX/kB6t/5Aeuf+QHsH/kB7O/5Ae1v+Q + HuH/kB7p/5Ae4/+QHtz/kB7T/5AeyP+QHsL/kB65/5Aeqv+QHpL/kB52/5AeW/+QHkP/jx0p/pAdEf+Q + Hgr/jhkC/5AeAP+QHgD/jxwA/5AeAP6PHAD+kR8A/o8eAP9+MQD/jx8A/48fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jyAA/48OAP+PHQD/kB0A/48dAP+QHQD/kB0A/5AeAP+QHgD/kR0A/48bCP+P + HRT+kB4a/pAeHv+QHSX+kB0p/pAdL/6QHTP+kB0w/pAdLP+QHSj/kB4i/pAeH/6QHhv/jx0T/44cBv+Q + HQD/kB4A/5AeAP+QHgD/kB4A/5AeAP+PHAD/kSIA/5AdAP+PGwD/jxwA/48bAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48gAP+PGAD/jx0A/5AdAP6Q + HQD/jRkA/5AcAP+PHgD/jxwA/48dAP6QHgD+kB4A/5AdAP6QHQD+kB0A/5AeAP6QHQD+kB0A/5AdAP+Q + HgD+kB4A/pAeAP+PHQD/jx0A/48fAP+QHQD/jx0A/4wVAP+QHgD/kB4A/5AdAP+OGQD/jxsA/48bAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + //gAAAAAf/8AAP///+AAAAAAH/8AAP///gAAAAAAA/8AAP//4AAAAAAAAP8AAP//wAAAAAAAAH8AAP/g + AAAAAAAAAB8AAP8AAAAAAAAAAB8AAPAAAAAAAAAAAAcAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAeAAAAAAAAAAAAA + QB/gAAAAAAAAAAAAwB/wAAAAAAAAAAAH///wAAAAAAAAAAA////AAAAAAAAAAAA///8AAAAAAAAAAAD/ + //gAAAAAAAAAAAH//8AAAAAAAAAAAP//8AAAAAAAAAAAAP/+AAAAAAAAAAAAAP/4AAAAAAAAAAAAAP/A + AAAAAAAAAAAAAP+AAAAAAAAAAAAAAP4AAAAAAAAAAAAAAPgAAAAAAAAAAAEAAPAAAAAAAAAAAAMAAOAA + AAAAAAAAAAcAAMAAAAAAAAAAAAcAAIAAAAAAAAAAAB8AAAAAAAAAAAAAAP8AAAAAAAAAAAAAAP8AAAAA + AAAAAAAAD/8AAAAAAAAAAAAAH/8AAAAAAAAAAAAD//8AAAAAAAAAAAB///8AAAAAAAAAAAf//wAAAAAA + AAAAAH///AAAAAAAAAAAAP//+AAAAAAAAAAAB///4AAAAAAAAAAAB///AAAAAAAAAAAAB//+AAAAAAAA + AAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAA + AAAAAAAAAAAAAMAAAAAAAAAAAAEAAOAAAAAAAAAAAB8AAPgAAAAAAAAAA/8AAPgAAAAAAAAAH/8AAP4A + AAAAAAAf//8AAP8AAAAAAAAf//8AAP/AAAAAAAB///8AAP/4AAAAAA////8AAP/+AAAAAD////8AACgA + AABgAAAAwAAAAAEAIAAAAAAAAJAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFtbywBbW8sAXFzKAFtbywBbW8wAXFzNAFtbzQB8fL4AWlrNAFtbzABcXMwAW1vNAFxc + zQBcXM0AW1vMAFtbzABbW8wAW1vMAFxczQBcXM0AW1vMAFxczQBcXM0AW1vNAFtbzQBcXM0AXFzNAFtb + zABbW8oARUXCAFtbzQBcXMwAXFzMAGBg0ABeXs4AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzLAFxczABcXM0AXFzOAFpaywBbW8wAXFzNAFtb + zABdXcwAZmbOAFlZygJcXMsDW1vMBFxczQZcXM0HW1vMCFtbzAhbW8wJW1vMCVxczQlcXM0JW1vMCFxc + zQdcXM0GWlrNBVtbzQVcXM0EW1vMA1lZygJeXtMAW1vMAFtbzQBcXMwAXFzMAFRUxwBbW80AW1vLAFpa + yQBaWskAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXMwAW1vNAFtbygBbW8wAXFzNAFxc + zABcXM0AXFzNAFhYyANaWswMXFzNFltbzB5bW80oW1vNQltbzFlcXMxoXFzNdFxczYlcXM2UW1vMoFtb + zKdbW8ypXFzNrlxczbJcXM2wW1vMqVxczZ1cXM2SW1vNhltbzX5cXM11XFzNa1tbzF5bW8w9XFzNI1tb + zRdbW8wNXFzJAltbzABbW80AW1vLAFtbygBcXM4AVlbJAFxczQBeXs0ATEy8AGBg0ABfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAW1vNAG1t + eQBcXMwAW1vMAFxczABcXM0AXFzOAFxczBJcXM0sXFzNRFxczWhcXM2IXFzNqlxczcdcXM3bXFzN5Fxc + zetcXM3vXFzN8lxczfhcXM37XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM36XFzN91xc + zfVcXM3yXFzN8FxczexcXM3gXFzNy1xczbFcXM2NXFzNZFtbzUZbW80yW1vLGVhYxQJbW8wAXFzNAFxc + zQBgYM4AW1vLAFpayQBaWsoAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxc + zABbW80AXFzMAFxczQBcXMsAW1vNAFxczQBcXMsBW1vMB1tbzCBcXMxFXFzNcVxczZ1cXM3FXFzN5lxc + zfhcXM37XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5cXM37XFzN91xc + zelcXM3NXFzNp1xczW1cXMw0XFzNDF1dzAJaWswAW1vMAFlZxwBbW8sAWFjIAGFh0ABfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxczABVVb4AXV3OAFlZyABbW8sAXFzMAFtbzQBbW9IAW1vND1xczSZcXM1UXFzNj1xc + zcBcXM3bXFzN9lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM3NXFzNnlxczV5cXM0nW1vMC2Fh + 2wBcXMwAXV3OAFxczABYWMYAWlrIAFpayQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+PIAD/jx0A/48dAPuPIgDVg0sAT1jbAFda0gBYW9AAXFzLC1xb + zStcXM1WXFzNlFxczdBcXM3qXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/VxczexcXM3HW1vMf1tbyzBdXc4EW1vMAFxczABjY+EAXFzLAFtbzABpadQAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48bAP+PHQD+kB4A/pAdAP6RGwD/jx0A/48dAP+Q + HgDviy4AADX/A01W2htVWdJIWFvQillb0MVaW8/xWlvP/Fpbz/9aW8//WlvP/1pcz/9bXM7/W1zO/1tc + zv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VxczcBbW8xyW1vMI1xc + yAFcXM4AXl7OAFxczQBbW8sAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48bAP+PHQD/kB0A/44bAP6QHQD/kB4A/48cAP+P + HQD/kB4A/pAdAP+QHQD/jRsC/48cCf+QHQ7/lBEQiWqdU3Rjs7VyY7XdcWK2+3Fjtv9xY7b/c2O1/3Nj + tf9xY7b/b2K4/21iuv9rYb3/amC+/2hgwP9nX8L/ZF/E/19dyf9bXM7/WlvP/1pbz/9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3yXFzNsFtbzE9bW8wSWFjIAFxczABcXMwAWVnMAFtbzQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/44aAP+PHQD+kB0A/44aAP+P + HAD/kB0A/5AeAP+QHgD/kB4A/48aCP+PHRv+kB4t/pAdPv+QHkz/kB5k/5Adfv+QHo7/kB2Z5Ig6z9KC + Tf/ahEX/34Y//+KHPP/kiDr/6Ik3/+eJN//jhzv/3IVC/9WDSv/NgFP/yH9Z/8J8YP+9e2X/tXhu/6Nz + gP+NbJf/gGim/3Vksv9mX8L/XFzM/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Vxczd5bW82TXFzMNVxc + zAVcXMwAW1vMAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + GwD/jx0A/5EgAP+PHAD+kB0A/pEgAP+OGwL/kB0G/48dHf6QHUb/kB5o/5Aejv+QHqv/kB7G/5Ae3/+Q + HvL/kB74/5Ae+v+QHvv/kB78/5Ae/v+QHv//kB3//5Ad//+QHP//kRz//5Ec//+RHP//kRz//5Ad//+Q + Hv//kB7//pAf//6QH//9jyD//Y8h//qPI//yjCv/5og5/9WDS/+/e2P/q3V4/5hvjP+CaKT/aWC//15c + y/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM37W1vMw1tbzE1aWswHW1vNAFtbzABcXM0AXFzNAAAAAAAAAAAAAAAAAAAA + AAD/jx4A/48fAP+PHQD/jRkA/pAeAP+PHQD/kB0A/5AeAP6PGwX+kB0V/5AdNP+QHWD/kB6T/5Aevv+Q + Htv/kB7y/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ad//+Q + Hf//kB3//Y8g//KMLP/khzv/x35a/55xhv94Za7/Zl/C/1xczP9bXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczdJcXM1iXFzNClxc + zQBcXM0AW1vMAFtbzABaWswAAAAAAAAAAAD/kB0A/44fAP+PHQD+kB0A/5AdAP+MFQH/kB0c/5AeQf+Q + HnD+kB6p/5Ae2v+QHu3/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//pAf//SMKv/hhj7/vXtk/5Ru + kf90ZLP/YF3J/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzNZVxczQpcXM0AXV3NAFlZzABaWswAAAAAAAAAAAD/kB0A/5EdAP6O + HAH/jxwS/pAdQf+QHnf/kB6t/5Ae4v+QHvn/kB7+/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kB3//Y8g//OMKv/Sgk7/nXGH/21huv9dXMz/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3FxczWRcXM0JXFzMAF9f + zQBaWsoAX1/PAAAAAAD/kB0I/5AeK/+QHmD/kB2l/5Ae1/+QHvn/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/8Isu/8yA + VP+TbZH/Zl/C/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczddbW8xRWlrKBFtbzABeXs8AXl7NAFpayQD/kB09/5Aexf+QHu7/kB79/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHv/sijP/tnls/39np/9gXcj/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8zCW1vMOUxMwABdXc0AXFzLAFpa + yAD/kB5V/5Ae9P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+o4j/96G + Qf+kc3//bGG7/VtczvtcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM37XFzMmFxczBVcXM0AXV3RAGNj6gD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/0jCr+wnxf4nxmq7VbXM2tW1zNyFxczdxcXM3qXFzN+1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN41tbzFpZWckDWlrLAFtbywD/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//Y8g9vGM + LLTHflpCV1rRHltczi1cXM1YW1vNklxczcRcXM3xXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zbVbW8wiW1vOAFtbyQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHfb/kRyl/5MSKHxlqgAzTvYBW1vLB1xczCdcXM10XFzNwlxc + zfhcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xcze1bW81mWVnNA1tbzAD/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB73/5Aep/+Q + HijXhUcAdWOxAFdYywBcXMwGW1vMMVxczZ1cXM3xXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW82rWlrNF1tb + zQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9v+QHZL/jxwZ/5EdAKp1eQBcXM0AV1fJAFtbzSNbW82hXFzN+1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3cXFzNSFxczQD/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ad//+QHf//kB3//5Ac//+QHP//kB3//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHuv+kB11/48eCf+Q + HQCNa5YAWVnPAGZmwgBaWsw/XFzN0Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM35XFzNelVVzwT/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac//+QHv/6jiP/9o0n//OMK//wiy7/7osw/+2K + Mv/0jSnx/5Ae4/+QHuX/kB7p/5Ae7/+QHvX/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7Q/5AePvyfCwD/jx8AZV3BAFpazQBZWc0NXFzNlVxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzNoVtbzRf/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+QHu3/kB3V44c848N9 + Xv+yd3H/pXN+/5dvjf+ObJf/i2ua+JFtlMSudnVx+o4kQP+QHEX/jx1V/5Aeav6QHn3+kB2Z/5AesP+Q + Hsj/kB7o/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB75/5Aemf+QHhb/kB4A+o4jAFpZ + zQBiYskAW1vNcFxczfZcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNw1xczTH/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB78/5Ae9v+Q + Htf/kB6m/5AegP+QHWD/khg8eGWvlGFeyP9gXcn/Xl3K/11czP9cXMzjXFzNi1la0C0qSv8E/5QWAOad + YQD/jBgB/o8dA/2QHgX+kB0H/5AeDf+PHSr+kB1Z/5AdjP+QHtD/kB75/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae4/+QHVP/jRUC/48bAFBY2gBcXM0AXFzNYlxcze5cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN3Vxc + zEX/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae8f+QHtP/kB6X/5AdX/+QHjj/jx0X/4wfAfKMLACgcoQAWlzPgFtczv9cXM3/XFzN+lxc + zcNbW85XV1nPDmtgvQB+ZqkA8ostAP+PGgD/jxwA/pAeAP6QHgD+kB0A/5AeAP+QHgD/kB4A/48bCf6Q + HTv/kB2H/5Ae3/+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+QHqL/kB0V/5AdAEpX4wBaWswAXFzNalxc + zfNcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN8FxczVv/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+f+QHt3/kB6t/5Aeb/6QHTD+kB0P/ooMAf+QHgD/jx0A/48eAKNz + gQBiXscAXFzNb1xczeFcXM3YXFzNm1xczTJWVdACW1zMAEtU3ACKa54A54c5AP+QGgD/jxwA/pAeAP6Q + HgD+kB0A/pEdAP+PHAD+kB4A/48bAPySHgD+jxwO/5AeW/+QHtD/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Htr/kB5A/5sAAHdksABbW80JXFzNjVxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9VtbzWn/kB5V/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvn/kB7U/5Adi/+QHkj/kB4U/48dA/6R + HgD+kB0A/48bAP+QHgD/jx0A/48eAF1czABcXM0AXFzNJlxczU1cXM1BW1vMF1tbzQBaWs4AXl7LAFFR + 0gBYWM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jiQA/48YAP+OHQD+kBwA/48fB/+Q + HmH/kB7l/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvb/kB6B/5UOBYJmoABcXM07XFzN0Vxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN9VtbzXH/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB74/5Ae1f+Q + HYz+kB08/48dDf+QHgD/kB4A/5AeAP+OHQD+kB0A/48bAP6QHQD/jxoAAAAAAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFxczQBbW80AYGDMAFVV0ABXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jyAA/44AAP+PHgD/ii0A/pAdAP6PHRb/kB6c/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB2z+Y0jFlhb + 0ilcXM2qXFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9lxczHz/kB5V/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHuD+kB2P/5AdPP6PHQ39kR4A/48dAP6QHgD/jyAA/5AeAP+PHQD/jx0A/48dAAAA + AAAAAAAAAAAAAFxczQBcXM0AXFzNAFxczQBcXM0AW1vKAFxczQBcXM4AXFzNAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jx4A/48eAP9RMAD/kB5b/5Ae8/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/7jyLUpXN9c1tczq9cXM33XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN9Vxc + zHH/kB5V/5Ae8/+QHv//kB7//5Ae//+QHv//kB70/5Aetv+QHlX+kB0O/pIfAP6QHQD/jh0A/48dAP+P + HQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/iQAA/5AdAP+QHQD+kB0+/5Ae4P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/0jCr2l2+N71tczv1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81xczVv/kB5V/5Ae8/+QHv//kB7//5Ae//+QHt3/kB57/pAdJP+L + JAH+kB4A/48dAP6QHQD/jx0A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/5AdAP+QHQD/kB05/5Ae2P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/5jiT/o3OA/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN71tbzFL/kB5W/5Ae9f+Q + Hv//kB73/5Aeuf+QHk3/jx4K/pAeAP+PHgD/jx4A/48dAP6QHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+OIAD/jyAA/pIaAP6Q + HQD+kB1E/5Ae5f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/sndx/15dy/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN41tbzEn/kB5B/5Aeuf+QHr//kB6K/pAeLO+NFQD/kB0A+pofAP+PHgD/jx4A/48fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP2PIAD/kB0A/48dAP+OHQT/kB5u/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/t3lr/2Fd + yP9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzNwVtbzC/+kB4O/pAeKP6QHif/jxwP/ZEhAP6Q + HQD+kRoA/44fAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABfX88AYGDQAF1v/ABWWtMApXJ9AAAr/wD1jCkA9o4nAP+QHTD/kB7H/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/u3pn/2Rexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzMmVpa + yhL+kB4A/pAeAP6QHgD/jxwA/48cAP+PHAD/jScA/48fAP+PHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5Y2wCGaZ8AY17FAJ1vgwAtTf8Ag2ehANCB + TwD/lAoC+I4kL/2QH6j/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/v3tj/2Zfwv9bXM7/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM33W1vMcmho7AD+kB4A/pAeAP6QHgD/jxwA/44XAP+PGwD/jxsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/kRYA/6EAAOmI + NADCfF4ASlbfAJZujgD/wgAANU7zBpduiybfhkBt/I8hvv6QH/n/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/t3lr/2FeyP9cXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3cW1vNR1tbzAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jx8A/48eAP6Q + HgD/kB0A/44YAP+PHQD+kB4A/5MSAO6KLgDOgFEAAAv/AoRooReccIg6q3R3hNeDSMP0jSnx/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/rnZ1/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8ysWlrMFVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/5AdAP+QHgD/lhcA/48dAP6QHgD/kB0A/5AeAP+QHgD/kB0A54k4AOuIMRLOgFE1x35aY8d+ + Wq3dhUPf8Yws9/qOJP//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB//qXV5/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczelbW8xYWVnJAVtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48dAP+PHQD/jx0A/pAeAP6QHQD/jhsA/5AdAP+QHQD/kB4A8BEAAP6QHQP/kB0H/48cGP+P + HTT+kB5R/5AddPuPIZ/sijLS84wr9fyPIf79jyD//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/2jSf/n3GF/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczKVbW8wWW1vMAFtb + zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGgD+kB0A/48bAP6QHQD/hgUA/5AdAP+QHQD/jx0A/pAeAP6QHQD+lScA/48dDP+Q + HRj/kB4n/5AeSP+QHm//kB6W/5Aeu/+QHs//kB7i/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/miDn/hmmg/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN01xczUF6epgAXFzMAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyAA/48aAP+PHgD+kB0A/48bAP6QHQD+kB0A/5AeAP+Q + HgD/jx0H/pAeIv6QHTn/kB5Y/5Aehv+QHrL/kB7Y/5Ae5v+QHvH/kB78/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+R + HP/Vg0v/bmK6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3uW1vMcFxczgdcXM0AXFzNAFxczAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxwA/5AdAP+O + HgD+jx0A/pEgAP2QHQP/jxwR/5AdNf+QHV3/kB6J/5Aetv+QHtr/kB70/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//2PIP+8e2X/YV7I/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM2GW1vLFltb + zABWVs8AWlrMAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+P + HAD/jxwA/pAdAP6PHQD/jxwA/5AdAP6WHwD+jx0Q/5AdNP6QHm7+kB2r/5Ae0P+QHur/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//OMK/+Yb4z/XVzM/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN8VxczYdbW8wXXFzNAFxcywBdXc0AYmLRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/JIYAP+PHQD/jhsA/pAdAP+QHQD/jxsF/5AdJf+QHlL/kB6X/5Ae1v+Q + HvH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/9eDSP9yY7X/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3nXFzNhFtbzBdcXM0AWlrKAFtbywBcXMwAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jiAA/pEcAP6PHgD+kR4A/o8cBf+P + HS//kB14/5Aeu/+QHuz/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/944m/6ByhP9fXcr/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczcdcXM1fW1vKEVxc + zgBaWsoAW1vLAFtbywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jx0A/44eAP6R + GgD+jx4A/5AdAP6PHgT/kB0p/5AdeP+QHsj/kB72/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB//zYBT/3Fj + tv9aXM//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3sXFzMpVxczTtcXM0DXFzNAFpayQBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHAD/jxsA/5AhAP+PHQD/kB4A/5AeE/+QHmH/kB7G/5Ae8/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/oiTb/jWyY/11czP9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN71xczbhcXM1jW1vMFlxcwgBcXM0AXV3QAFtbywBcXM0AW1vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+OGwD/kB8A/48eAP+OHgP+kB4x/5Aekv+Q + Huj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//WNKP+qdXn/Yl7G/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczfFcXM26XFzNbFxczRxdXc4BW1vMAFxc + zABcXMwAXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxsA/5AmAP+P + HgD/jx0A/48cB/+QHUv/kB7B/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/9o0o/7J3 + cP9rYb3/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRcXM3UW1vNmVxc + zVhcXM0kVlbPBFxczQBcXM0AWlrLAFxczABcXMwAXFzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PGwD/jxoA/5AfAP+PHQD/jx0I/48dWP+QHtH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHP/2jSj/sndw/2thvf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze5cXM3TXFzNrlxczXlbW800WlrNEf///wBbW80AWVnOAF5ezABcXM0AXFzNAFxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NHAD9kSAA/48dAP+OGAP/kB1L/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae/+uKM/+tdnb/a2G9/1tczv9cXM3/XFzN/1xc + zf9cXM38XFzN+FxczehcXM3FXFzNlVxczWNbW805WlrNEVtbzARfX8sAW1vNAFlZzABbW80AWFjPAFtb + zQBVVdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48aAP+Q + GwD+jxwA/IsUAf+QHUD/kB7G/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/8jyH/1oNJ/5Bt + lP9lX8T/W1zN/1xczflcXM3uXFzN4Fxczb9cXM2WXFzNaFtbzUZbW80sWlrMDVxczQBcXM0AW1vNAFtb + zQBZWc4AXFzMAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx0A/pAdAP+QIwD+kB0A/5AeI/+QHq3/kB7+/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/+yKMv+7emf/fmeo9F5cy9xbXM7HXFzNsFtbzY1cXMxjXFzMNlxczRtcXM0QXV3MA1tb + zABbW80AWlrMAFxczQBbW8wAPDzcAFtbzQBaWs4Ak5O4AFZWzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+PHAD/jxsJ/5AefP+Q + HvP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv72jSj204JN3KRzf7ZsYbuTWlvObVtbzkhcXMwoXFzNDVtb + zAZbW8sCXV3PAFxczQBcXM0AXV3MAFRUxwBbW80AWlrMAFtbzQBaWswAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jx0A/44dAP2RHQD+kB08/5Ae1P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB/2/pAf4/eNJrDsijJilW6OO1BX + 2CJNVtgLbGG+AFtbzgBcXM0AXFzNAFtbzABcXMwAW1vKAFxczQBcXM0AXFzNAGBg0ABfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+kB0A/pAdAP6PHQ7/kB2Q/5Ae+/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/+kB7//pAf7P6Q + H8D7jyKD/o8fQOyKMRfriDECnXCGAGFdxQBbW8oAWFrQAFxczABcXMwAWFjKAFtbzQBcXMwAW1vLAFxc + zABbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jiAA/pAdAP+Q + Hiz/kB7U/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ad//6Q + H//7jyL/8Ywt+PCLLs77jyGP+48gX/6QHyX4jSYG/5MfAO+LLgDsijEAl2+MAF5cyQBaWssAWVnFAFpa + yQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+kB4A/ZAeA/6QHm3/kB7x/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+Q + HP//kRv//5Ae//eOJv/viy//44c8/8l/V/+tdnbvqHR8jdKCTjPvii8K9I0pAP6QHwD5jiQA/Y4fAPGL + LADtijAAg2uXAP+RFwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpa + yQBaWskAWVnFAFpaygBbW8wAW1vMAFpazABaWswAWlrMAAAAAAD+kB0A/pAeCv6QHqj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf//kB3//5Ad//+QHf//kB3/940n/+iJNv/ZhEf/wn1f/6h0e/+La5r/dGSz/2pgvftiXcWkRVTkG9KB + TADmiDkA/5IWAP6QHgD4jiUA/o8fAPmOJAD/jxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaywBZWccAXV3RAFpayQBbW8wAWlrMAFpazABaWswAWlrMAAAA + AAD/kB4A/48dIP+QHsH/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP//kB3//Y8g//uPIv/yjCz/24VF/8d+Wv+yd3D/n3KF/4lrnP9yY7b/YV7H/19d + yv9cXM3/WlzP/1tcz+VaW89JWGzxADpR8QC6emkAUFrXAP+SFgD/jx8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX88AYWHQAGBgzQBcXM4AW1vNAGJi + 2ABZWcoCWVnLAlhYzAFYWMwAWFjMAAAAAAD/kB4A/pAdR/+QHtz/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+RHP/9jyD/84wr/+mJNv/Xg0j/vXtk/6Nzgf+Ka5v/eWWu/2th + vP9eXcr/W1zO/1tczv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczcJcXM0eW1vNAFhZzABeXdAAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlrJAFpa + ygBZWckAXl7OAF5ezQBbW80AW1vLBltbzDVbW8xfW1vMWlpazBpaWswAWlrMAAAAAAD/kB4A/pAdcP+Q + Hvf/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/9kCD/74sv/9iDSP+8e2X/mG+N/3ll + rv9uYrr/Z1/B/19dyv9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxc + zaxbW80WW1vNAFtbzQBcXM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF9fzwBiYtAAWVnLAFtbzABXV8IAXFzNAFpazABcXM0QW1vNYVxczctcXM3uW1vM3Vtb + zEJbW8wAW1vMAAAAAAD/hycA/5Aegv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAe/OiJ + Nvm7emb+k26R/3Jjtf9hXsf/XVzM/1tczv9aW8//W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczbRbW80ZXFzNAF1dzACHh6wAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV1fPAFhYzwBYWNAAWlrNAFxczQBcXM8AW1vMBFtb + zC9bW82KXFzN5Fxczf9cXM3/XFzN8FtbzEhbW8wAW1vMAAAAAAD/jiAF/5AeiP+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3u+48hophvi65mX8L3W1zO/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdlbW800Xl7MAFhY + zgBaWs0AWFjPAFdXzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vMAFtbzABbW8wAXFzOAFtb + wwBZWc4AWlrNAC4uZQBbW8wdXFzNa1xczcVcXM32XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD/jx0O/5Aelf+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvL/kB2J8IssHFpbzmJbXM7tXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfNbW8x6WlrJCltbzABmZssAWlrPAFtbzQBjY9IAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx4A/48fAP+PHQD/jx0A/48dAP+PHQD/jx0AAAAAAAAAAAAAAAAAAAAAAFxc + zABcXM0AXFzMAFxczQBaWssAXFzNAFtbzQBISNUBWlrNHFxczVVcXM2tXFzN7lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxsW/5Aen/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/v+Q + HbH/kB0izoBQAFtbzTdcXM3YXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3TXFzMS19f0gJcXMwAXl7QAFxc + zQBtbdoAYGDQAF9fzwAAAAAAAAAAAAAAAAAAAAAA/48dAP+PGwD/jx0A/48fAP+PHQD/jx0A/48dAP+P + HQD/jx0AAAAAAFxczABcXMwAXFzLAFxczABcXMwAXFzMAFxczQBdXc4AW1vLBFtbyx5bW81dXFzNrFxc + zepcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwV/5Aenf+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9P+QHmH8iiACeWWsAFtbzBdbW82wXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzNxFtbzU1aWswMWVnLAFxczQBdXc4AWFjNAGFhyQBcXM0AXFzNAFtbzABaW84AtXhrAPqN + IAD/jx0A/4wiAf+PHQr/jx0N/48dBf+TDgAAAP8AXFzNAFxcywBcXMwAXFzNAFxczABcXM0AXV3LAlxc + zRBcXM00XFzNeFxczbdcXM3oXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD/jx4P/5Aelv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae2v+QHTr/kB0ATVfcAFtb + zAZcXM1tXFzN8Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczdlcXM2BXFzNNFxczQtaWswAXFzNAFtb + zQBcXM0AXFzNAFtbzABPWNkAp3N6APqOIgD/jx0I/5AeRP+QHoL/kB2J/5AcP8R9XQBrYLwAXFzNAFxc + zQBcXM0AXFzOAFxczBFcXMwwXFzMYFxczZtcXM3YXFzN9Fxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jx8I/5Aejf+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Aezf6QHjL/kB4A0YFPAFxczQBcXM0pXFzNvlxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM30XFzNyVxczYtcXM1YWlrNKFpazQ1cXM0GXFvMA1laywIAC/8BADP/AfqOIhX/kB5q/5Ae0/+Q + Hvz/kB74/I8feAAv/wJXWtEGW1vMClxczCZcXMxKXFzNcVxczZ1cXM3MXFzN81xczf1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD+khsA/5AedP+QHvj/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae3P6QHT3+kB0A1YRHAFxczABcXMwFXFzNblxc + ze5cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfxcXM3nXFzNx1tbzatcXM2KW1zNbFha + 0GBuYrlQx35YWviOJJ7/kB7o/5Ae//+QHv/+kB79y39VsFlb0HhbXM2RXFzNqlxczcVcXM3eXFzN91xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB4A/5AeVP+QHuX/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v+Q + Hmr/jx8E/5AfAP+sAABcXMwAW1vMI1tbzKtcXM38XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bXM74XVzM8Hdlr+yyeHDo7osv6/6QH/v/kB7//5Ae//+QHv/9kB//q3V391tc + zvNcXM36XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB4A/48dNf+Q + Hs//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/v+QHrf+kB4o/pEcAP+QHQBRWdgAW1vJAVxczUlcXM3XXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/19dyv90ZLP/oXKD/9OCTf/3jib//5Ae//+Q + Hv//kB7//5Ae//+QHv/9jyD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD+kB0A/48cE/+QHqr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvP+kB2M/pAeFv6Q + HAD/jx4AXlvIAFxczgpbW81vXFzN6lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/WlzP/1tczv9lX8T/eWWu/6Vz + f//Xg0n/9o0n//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB0A/5AdBP+QHnn/kB70/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7s/pAdj/+PHS3/jh4F/o8eAJtxiQBXWc8UW1vMiFxcze9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tc + zv9fXcn/cGK3/4xrmv+4eWr/34ZA//eNJ///kB3//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAA + AAD/jxwA/5MiAP+QHTb/kB7P/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v+QHr3/kB1q/48dJ/+Q + Gwj//wAAUFfYH1haz45aW87sW1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/W1zO/1tc + z/9aW8//W1zO/15dy/9gXcn/bmK5/4prm/+tdnX/z4FR//CLLv/9jyD//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/kB0A/5AcAP+PHAv/kB2D/5Ae+P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7s/5Aewv+QHZH/kB1V/5EbK6p0dzdvYbeSZV7D7WJex/9fXcn/XVzM/1tc + zv9cXM3/XVzM/19dyf9iXsb/Z2DB/2xhvP9wYrj/gWil/55xhv+7emf/1YNK/+mJNf/8jyH//5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwA/40aAP+R + HgD/kB01/5Adyv+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvr/kB7q/5Ae2f+Q + HLvviy+sxX1b2K12df2jc4H/m3CJ/5VukP+Xb43/nHCJ/6Nzgf+udnX/wHxi/8+BUf/fhkD/7Ioy//SN + Kf/9jyD//5Eb//+QHP//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN7ltb + zEhbW8wAW1vMAAAAAAD/jxwA/48cAP+PHAD/jxsJ/5Adbf+QHur/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB38/pAf/PyPIf/7jyL/+o4j//qOJP/6jiP/+o4j//uP + Iv/8jyH//ZAg//+QHv//kB3//5Ec//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN7ltbzEhbW8wAW1vMAAAAAAD/jxwA/48cAP+QMgD/kB0A/5AeG/+Q + HqH/kB76/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//+QHf//kB3//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN71tbzEdbW8wAW1vMAAAA + AAAAAAAA/48aAP6QHAD+jx4A/0iXAP6QHTP+kB29/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfVcXM3YXFzNoFxczSpcXM0AXFzNAAAAAAAAAAAAAAAAAP+MJAD+kBsA/48cAP+OGQL+kB1I/pAdzP+Q + Hv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/lxczfhcXM3fXFzNrFxczXNcXM1AWlrOEV1dzQJcXM4AXFzNAAAAAAAAAAAAAAAAAP+P + IAD/jSQA/pAcAP+PHQD/jx0I/48dUf6QHcb/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81xczehcXM3PXFzNplxczXhbW8xBW1vMG1hYxQJcXMwAXFzNAFxc + zQBcXM0AXFzNAAAAAAAAAAAAAAAAAP+PHwD/jx0A/pAhAP+PHQD/jx0A/48cBf6QHEL+kB28/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kCD/qHV6/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM30XFzN4VxczcpcXM2oXFzNeVxczE1cXM0kW1vNFFtb + zAhcXM0AW1vMAFtbygBcXM4AS0vTAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+N + GgD+kB8A/48eAP+OHgL+kB41/5Aeo/+QHvD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv/9kCD/qXV6/ltczv1cXM39XFzN+1xczflcXM33XFzN51xczdBcXM25XFzNpFxczYdbW8xsW1vNT1xc + zCtbW8wMW1vMBFhYwgBcXM0AW1vNAFxczABYWMMAW1vMAFpayQBaWskAWlrJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jhoA/pAgAP+PHQD+khkA/5AeHv+QHnv/kB7V/5Ae+f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/9kB//unpn0Vlbz6RcXM2bXFzNj1xczXZbW81bXFzNQ1tb + zTNbW8wkWlrLFlpaygRcXMwAXFzNAFxczQBcXM0AW1vNAFtbywBgYNYAW1vNAFxczABbW8oAW1vLAFtb + ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/44eAP6Q + HQD/jx4A/5AeAP+PHQv+kB48/pAdmP+QHuX/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB768IstfUlV + 4BJaW84RW1vMDlpaywd4eMgAXFzNAFtbzQBbW8wAW1vMAFtbzABbW80AW1vMAFtbywBdXc8AW1vMAFxc + ywBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx0A/4AZAP6PHQD/kBoA/o8cF/6QHVv/kB2t/5Ae8P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB78/5Ae6/+QHsT/kB6I/5EZMZNtkQBiXsYAXFzMAFtbzABXV84AXV3MAFtbzQBbW8wAW1vMAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/44eAP6Q + HAD+kB8A/pAdAOiycwD+kBwg/5Aeb/+QHrn/kB7l/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB73/5Ae6/+QHsz/kB6T/5AeVP6QHiv+jx8J/5EaAAAC/wBmX8IAXFzMAFtb + zABYWM4AU1PTAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+HIQD+kB4A/44WAP+PHAD+kBsA/5AeB/6QHR7/kB1O/pAekP+Q + HsT/kB7q/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7o/5Ae0P+QHrL/kB6H/5AdXP6QHSn+kB4O/wD/AP6Q + HgD/kB4A/5AdAP+PHwD/kRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+P + HQD/ijAA/5AeAP6QHgD8jhcB/o8dCv+QHSf/kB5e/5Aemv+QHs7/kB7m/5Ae9/+QHvv/kB7//5Ae//+Q + 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 + AAD//////AAAAAA/////////4AAAAAAH///////8AAAAAAAAP//////wAAAAAAAAH//////AAAAAAAAA + B/////4AAAAAAAAAAf///8AAAAAAAAAAAP///AAAAAAAAAAAAH//AAAAAAAAAAAAAB/4AAAAAAAAAAAA + AB/gAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAIAP4AAAAAA + AAAAAA4A/+AAAAAAAAAAAP////AAAAAAAAAAAf////AAAAAAAAAAB/////AAAAAAAAAAH////+AAAAAA + AAAAP////gAAAAAAAAAAf////AAAAAAAAAAB////4AAAAAAAAAD////wAAAAAAAAAAD///+AAAAAAAAA + AAD///wAAAAAAAAAAAD//4AAAAAAAAAAAAD//AAAAAAAAAAAAAD/+AAAAAAAAAAAAAD/wAAAAAAAAAAA + AAH/AAAAAAAAAAAAAAH/AAAAAAAAAAAAAAP4AAAAAAAAAAAAAAf4AAAAAAAAAAAAAA/wAAAAAAAAAAAA + AD/AAAAAAAAAAAAAAH/AAAAAAAAAAAAAAP/AAAAAAAAAAAAAB/+AAAAAAAAAAAAAH/8AAAAAAAAAAAAA + P/8AAAAAAAAAAAAP//8AAAAAAAAAAAA///8AAAAAAAAAAAP///8AAAAAAAAAAP////8AAAAAAAAAB/// + /AEAAAAAAAAAP////AEAAAAAAAAB////8AEAAAAAAAAH////wAEAAAAAAAAP////AAEAAAAAAAAP///+ + AAEAAAAAAAAD///wAAEAAAAAAAAB/APAAAEAAAAAAAAAeAIAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAAAA + AAHwAAAAAAAAAAAAAA/4AAAAAAAAAAAAAD/4AAAAAAAAAAAAAf/+AAAAAAAAAAAA////AAAAAAAAAAAP + ////gAAAAAAAAAP/////8AAAAAAAAAP/////+AAAAAAAAB///////gAAAAAAAH///////+AAAAAAH/// + //////wAAAAB//////8oAAAAgAAAAAABAAABACAAAAAAAAAAAQATCwAAEwsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXzwBXV88AVVXQAFlZ + zgBbW8wAW1vMAFxczABcXMwAW1vNAFxczQBcXM0AW1vMAFtbzABbW8wAW1vMAFtbzABcXM0AXFzNAFxc + zQBbW8wAW1vMAFxczQBcXM0AW1vNAFtbzQBbW80AXFzNAFxczQBbW8wAW1vMAFtbygBdXcwAYWHRAF9f + zwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAFtb + ywBbW8sAW1vLAFtbzABcXM0AXFzNAFtbzQCKircAWFjOAFtbzABbW8wAXFzMAFxczABbW80AXFzNAFxc + zQBbW8wAW1vMAFtbzABbW8wAW1vMAFxczQBcXM0AXFzNAFtbzABbW8wAXFzNAFxczQBbW80AW1vNAFtb + zQBcXM0AXFzNAFtbzABbW8wAWlrKAF5ezABWVsgAXFzNAFxczABcXMsAXV3NAGFh0QBfX88AX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFxczABcXMwAXFzMAFxczABcXM0AXFzNAFpayQBbW8sAWlrMAFxczQBcXM0AW1vMAF1d + zABRUdACW1vMCVpazA1cXMwRXFzME1tbzRhcXM0dXFzNH1tbzCJbW8wkW1vMJltbzCZbW8wnXFzNKVxc + zSlcXM0pW1vMJ1tbzCVcXM0iXFzNH1tbzRxbW80aW1vNGFxczRZcXM0UW1vMEVtbyw5aWsgFVlbMAFtb + zABbW80AXFzMAFtbywBdXc0AV1fJAFtbzQBcXMwAW1vKAFlZyABaWskAWlrJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8sAW1vLAFtbywBbW8sAW1vMAFxczQBcXMsAXFzMAFxc + zQBcXM0AXV3PAFpaygZaWswNXFzNFVxczR1bW8wjW1vNK1tbzUBcXM1cW1vMbFxczHxcXMyDXFzNlVxc + zadcXM2uW1vMvVtbzMJbW8zJW1vMy1tbzM1cXM3UXFzN1lxczdRbW8zNW1vMx1xczblcXM2yW1vNo1tb + zZ5bW82VXFzNjFxczYZbW8x5W1vMbltbzE1cXMwyXFzNIltbzRpcXMwSW1vKB1ZWzABbW8wAW1vNAFxc + zABbW8oAVlbBAFtbywBdXc0AZ2fVAGBgzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczABcXMwAXFzMAFxc + zABcXMwAW1vJAFtbywBbW8wAXFzNAFxczgBcXMwJXFzNFVxczR5cXM0uW1vMUVtbzGxcXM2KXFzNqVtb + zMFcXM3UXFzN3FxczeNcXM3oXFzN7Fxcze1cXM3yXFzN91xczflcXM39XFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/FxczfpcXM32XFzN9VxczfJcXM3wXFzN7lxczetcXM3oXFzN3ltb + zM1cXM22XFzNnlxczH5cXMxWXFzNNltbzCRbW80bXFzMEVpayAVdXdAAW1vMAF1dzQBYWMoAXV3NAF1d + zQBiYtIAX1/PAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXFzMAFxczABcXMwAXFzMAFxczQBcXMsAXFzMAFxczABbW80AWlrKBltbzBBcXM0cXFzNL1xc + zV1cXM2JXFzNrVxczdFcXM3hXFzN6Fxcze9cXM34XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczftcXM31XFzN7FxczeJcXM3XW1vMv1tb + zaBcXMx8W1vMS1xczCJbW8wOYmLRAVtbzABcXM0AXl7OAFVVxgBcXMwAWVnHAFpayQBaWskAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAXFzMAFxczABcXMwAXFzNAF1dywBcXMwAW1vNAFxc + zgBcXMwJXFzNFltbzCtbW8xSXFzMeFxczalcXM3SXFzN5Fxcze9cXM35XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM39XFzN9VxczexcXM3ZXFzNq1xczXJcXM04XFzNHVxc + zAsAAAAAW1vMAFtbywBYWMQAW1vLALy8/wBgYM8AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpayQBaWskAWlrIAFpa + ygBbW8wAXV3MAFxczABbW80AXFzOAFtbzApbW80aXFzNL1xczV1cXM2OW1vMxVxczeBcXM3rXFzN+Fxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM34XFzN6FtbzM5cXM2kXFzNZFxczTNcXM0WW1vKBl1d0gBcXMwAU1PGAF1d + zgBcXMwAW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABcXM0AXFzMAFtbywBXV8MAWlrKAFtbzABaWs0AXFzMCltbzRhcXM0uXFzNYFtb + zZ9cXM3QXFzN5FxczfFcXM3+XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfZcXM3lW1vMx1xczYtbW8tIW1vLFW9v3gBaWssAXFzMAFtbzABXV8MAWlrJAFpayQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48gAP+PHgD/jxwA/48dAP+RGQCicoEATVfcAFdc + 1wBbWsQEW1vLEFxbzClcXMxdXFzNl1xczc5cXM3lXFzN9Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3+XFzN71tbzMpbW8x5XFzMNVtb + zBFkZNQAW1vLAFVVvABbW8sASUnAAGBgzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxsA/48bAP+PHQD+kB4A/5AdAP6Q + HQD+lw8A/48eAP+PHAD/jx0A/5AdAN+GQQAAEf8CS1beH1RZ1ElWWtJ6WFrQullb0OJZW9DzWVvQ/1lb + 0P9ZW9D/WVvQ/1lb0P9ZW9D/WlvQ/1pbz/9aW8//WlvP/1pbz/9aW8//W1zP/1tczv9bXM7/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/VxczepbW8zFW1vMdVxczSZbW8oGXFzRAFxczQBVVckAXl7OAF1d + zQBcXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/48cAP+P + HQD+kB4A/5AdAP+OGAD/jxsA/48dAP6QHgD/kB0A/pAdAP+QHQD/jB0C/44cCf+PHQ3/kB4R/5cFEbF3 + cS56Zqybc2O02nRjs+xzY7T7dGSz/3Rks/91ZLL/dmSx/3Zksf92ZLH/dWSy/3Rks/9xY7b/cGK3/25i + uv9tYbv/a2G9/2pgvv9pYL//Z1/C/2VfxP9fXcn/W1zO/1pbz/9aW8//W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf5cXM3lXFzNpVtbzE9bW8waX1/SAlpaywBeXs0AXFzMAFtbzABaWswAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxsA/48bAP+PGwD/jxwA/48dAP+QHQD/jhoA/48dAP6QHgD/kB0A/5EgAP+OGgb/jx0N/pAeFf+Q + HR3+kB0j/5AeK/+QHkD/jx1c/5AdbP+QHnz/kRyB8owrodCBUOrKf1b/04JM/9iDR//chUL/3YZB/9+G + QP/khzv/5Yg6/+SHO//fhkD/24VD/9KCTf/NgFP/xH1d/8F8Yf+7emf/tXht/7J3cf+qdHr/o3KB/41s + mP98Zqv/cmO2/21hu/9nYMH/YV3I/1xczf9aW8//WlvP/1tczv9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM31W1vM0VtbzY9cXM06XFzMDTEx + 0QBbW8wAW1vMAFtbzQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jxwA/48cAP+PHQD+kB0A/44YAP+PGwD/jx0A/5AdAP+R + IAD/jxwJ/pAdFf+QHR7/kB0u/48dUf+QHWz/kB6K/5Adqf6QHcH/kB7U/5Ae3P+QHuP/kB7o/5Ae7P+Q + Hu3+kB/0+48i/vuPIv/+jx///pAe//+QHf//kB3//5Ac//+RG///kRv//5Eb//+QHP//kB3//Y8g//uP + If/5jiT/+I4l//eNJ//1jSj/9I0p//KMLP/xiy7/6ok0/96GQP/QgU//wXxg/6x2d/+TbZL/fmeo/3Nj + tP9tYbv/Z2DB/19dyv9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3+XFzN8VtbzMNbW8xiW1vMFWJizwBbW80AXFzNAFxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48cAP+PHAD/jxsA/48dAP+Q + HQD/jhoA/48dAP6QHQD+kR8A/44aBv+PHBD/kB0c/5AdL/+QHV3/kB6J/5Aerf+QHtH/kB7h/5Ae6P+Q + Hu//kB74/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ad//+QHf//kB3//5Ac//+R + HP//kRz//5Ad//yPIf/4jiX/84wr/+yKMv/liDr/1oNJ/8J9X/+rdXj/jGua/3Jjtv9lX8P/XVzM/1pb + z/9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Ftb + zM9bW8xuW1vNHWNj0ABcXM0AXFzNAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48cAP+PHAD/jx0A/5AdAP+OGgD/jx0A/5AeAP+RIAD/jxwJ/pAeFv6QHSv/jx1S/5AdeP+Q + Han/kB7S/5Ae5P+QHu//kB75/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ec//+R + HP/+kB//+Y4l//OMK//niDj/yX9X/6Vzfv+AZ6b/bmK5/2Nexf9cXM3/W1zO/1tczv9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/Vxczd5cXM2GXFzNIlxczQBcXM0AXFzNAFxc + zQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48gAP+PHgD/jx0A/44bAP+PHQD+kB4A/5EgAP+P + HAr/kB4a/5AeL/+QHV3+kB6O/pAdxf+QHuD/kB7r/5Ae+P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+QHf/6jyP/8Isu/9+G + P//Fflv/nHCI/3xmqv9qYb7/YF3J/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczeRcXM2IXFzNIlxczQBcXM0AXFzNAFtbzQBaWswAAAAAAAAAAAAAAAAAAAAAAP+P + HgD/jiIA/48eAP+PHQD9kR8A/48cCv6QHhj/kB4u/5AdYP+QHp//kB7Q/5Ae5P+QHvH/kB7+/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kBz//5Ae//qOJP/uizD/24VE/7R4bv+Ka5z/aWC//1xc + zf9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeRcXM2IXFzNImNj + 0ABbW80AWlrMAFpazABbW8sAAAAAAAAAAAAAAAAA/5AdAP+RHAD/jh8E/48dEP6QHSn/kB1d/5Ael/+Q + Hs7/kB7l/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP/+kB7/9Y0p/92FQv+qdHn/fmeo/2dfwf9cXM3/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeRcXM2GW1vNHWJizgBaWssAW1vLAFxczABfX88AAAAAAAAA + AAD/kBwE/5AdH/+QHkn/kB16/pAduv+QHuL/kB7z/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf//KM + LP/ahEX/p3R8/3Vks/9gXcn/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zd5bW8xuWlrLE1pa0ABdXcwAXl7OAGBg0AAAAAAAAAAAAP+QHR3/kB2V/5Ae2/+QHuz/kB77/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ac//6QH//uizD/xn5b/45sl/9sYbv/XVzM/1tc + zv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/VtbzM1bW8xYW1vMC1paygBSUsIAEhJ7AFpa + yQAAAAAA/5AeK/+QHs//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/4jiX/4Yc9/7d5a/+BaKX/ZF/E/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN+ltbzLhcXMw0ZWXSAV1dzABbW8sAWlrJAAAAAAD/kB4t/5Ae1P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/+kB7/9o0o/9iE + R/+bcIj7amC98Vtczu5cXM3zXFzN+lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN61xczIBbW8sWXl7RAFdX + wgBZWcYAW1vLAP+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//Y8g/+iJNvG3eWvGeWWtoVxczZlbXM6zXFvMylxc + zdlcXM3lXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM39W1vMzVtby0xaWsoGWlrLAFtbywBbW8sA/5AeLf+QHtP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/PmOJObqiTSaunpoO1pbziBYWtAmXFzNOFxczWBbW82VW1vMxlxczeNcXM34XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3zW1vNnVtb + zB9bW9AAW1vIAFtbygD/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHOL/kRqF/5YKH2Re + wwDCeFYAXVzLCltbzRdbW8wqXFzMXVxcza9cXM3hXFzN+lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3bW1vMV1tbywhbW8wAWlrNAP+QHi3/kB7T/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHuT+kB6I/pAeI///AACObJcAWVrPAFxczgBcXMwKXFzNKltb + zF9bW8y6XFzN8Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zfVbW82cWlrNHF1dywAAAP8A/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HuT+kB6G/pAeHf+VFwD/nAAALE3/AFlZygBDQ8oAW1vLClxczTlbW82eXFzN61xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzM5aWs1BV1fPA1lZzgD/kB4t/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHt7/kB1u/48cE/yRJQD/kREA/6IAAF5e + zQBaWssAYGDQA1xczTJbW82gXFzN8lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61xczX1cXMwRXFzMAP+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae/f6QHc3+kBxY/48cC/6QGwD6kB0AXl7PAP///wBYWM0AWVnQBVpazURbW8zJXFzN/Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzNtFtbzSNeXswA/5AeLf+Q + HtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//+QHf//kB3//5Ec//+RHP//kRz//5Ec//+RHP//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+v6QHbj/kB40/48iAf+P + HwD/kB4AVlvYAFZW1QBeXssAWlrME1tbzHtcXM3sXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3YW1vNPlBQ0AL/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ec//6QH//5jiT/9o0n//OM + K//wiy7/7oow/+yKMv/rijP/6ok1//GLLfL9jyHh/5Ae3/+QHuH/kB7l/5Ae6v+QHu//kB7z/5Ae+v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae6/+QHoD/kB4W/pEcAP+NIgD/mgAAWFjOAFhYzgBSUs8CW1vNQlxc + zdpcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczeVcXM1gW1vMC/+Q + Hi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB72/5Ad6/uPI+jniDj61YNK/8R9Xf+6emj/rXZ2/6Fyg/+Yb4v/k22R/5JtkviUbpHWpXN/k+eI + OVT/kRtK/48dVP+PHWH/jx11/pAeiP6QHpj+kB20/pAdyv+QHtn/kB7l/5Ae8v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB79/pAdzf+Q + Hkz/jyAG/48eAP+PHQACOf8AfX22AF1dywBbW80mW1vMwVxczf5cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN71xczYdcXM0X/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae9f+QHuf/kB7Z/pAdx/+QHqL/khl60IFQdn1nqeNyY7b/bmK6/2th + vf9oYMD/ZF/E/2Jexv9hXsfmYl7GqmRexEtqX74ZtXdvB/+SDwT/jhoH/48bCv+PHRD+kB4V/pAeGf6Q + HSD+kB0n/5AeOP+QHWD+kB6V/pAdxv+QHuP/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7z/5Aenf+QHR//kSMA/44XAP+TDQBbW80AXFzNAFxc + zR5cXM2tXFzN+Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM34XFzNp1xc + zSD/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv7/kB7w/5Ae4v+QHtD/kB6h/5Aeaf+Q + Hjr+kB0m/pAeG/+hAA1zY7QxWlvP11pb0P9aW8//WlvP/1tczv9bXM75W1vO0FpbznFXWtElPE/tBIdr + oQDCe2AA/5IVAP+PHAD/jxwA/48dAP6QHgD+kB4A/pAdAP6QHQD8nCUA/48cCv6QHhf+kB0q/5AdXf6Q + Ha//kB7h/5Ae+v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7b/5AdV/+PGwj/jxwA/48dAFxczgBcXM0AXFzNHlxczatcXM34XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8y/XFzMKf+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb/kB7m/pAdxv6QHoz/kB1V/5AdLf+QHhr/jx0N/1kaAP6QHQD/khkAkG2VAFhb0ShcXM3XXFzN/1xc + zf9cXM3/XFzN61xczaxbW81JWlnNEFxe0wBXWdAA0pBeAK10dgD/khQA/48cAP+PHAD/jx0A/pAeAP6Q + HgD+kB0A/pAbAP+PHQD/jx0A/pAdAP6RHwD+jxwK/pAdKv+QHV/+kB26/5Ae8f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvX/kB6c/5AeHP+QHQD/eS8AXFnHAFtb + zQBcXM0iXFzNuVxczfxcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zdNcXM05/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+v+QHu3/kB7T/5Aeof+QHWf+kB0u/pAdFf6PGwf/kSAA/5AeAP+P + HQD/jx4A/pAcAKRzfwBaW88AXFzNJ1xczclcXM30XFzN71xczddcXM2HXFzNK1dXzwReXssAWFjNAFpa + zQAnJ+kAVlbPAFdXzwAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jyIA/48dAP+PHQD+kB0A/44aAP6Q + GgDrpiIA/o8bCv+QHjn/kB6e/5Ae6/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//6QHs7/kB5B/48gA/+QGwBWWtQAYGDLAFxczThcXM3VXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2VpazkX/kB4t/5Ae0/+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+v+QHuP+kB22/5Aee/+Q + Hjv/kB4c/48dDP2SHgD+kB0A/48cAP+NFgD/kB0A/48dAP+PHgD/jyIAXFzNAFxczQBcXM0WXFzNdFxc + zY1cXM2CXFzMU1xczBpUVMUAW1vOAJeXsABXV84AWVnNAFpazAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PHAD/jx0A/41DAP+PHQD/kBwA/48gA/+QHjL/kB6g/5Ae8v+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae6/+QHn3/kB4R/5EcAFZZ + 0QBbW80PW1vNc1xczepcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3ZWlrNSf+QHi3/kB7T/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae+v+QHuP+kB2y/5Adav6QHSn/kB4Q/44gAf+QHgD/jx0A/44dAP6QHQD/jxwA/48aAP+P + GwD/jxsAAAAAAAAAAABcXM0AXFzNAFxczQNcXM0SXFzNFlxczRNbW8sIX1/SAFxczABbW80Ara2sAFZW + zwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyIA/48eAP9QmwD/kB4A/48gBf+QHkT+kB3J/5Ae/f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB76/pAdtP+QHSPJf1UAYGDQA1xczUJcXM3NXFzN/lxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdtbW8xV/5AeLf+QHtP/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+QHuP+kB2y/5Adav6QHSj/jx0M/JMeAP+Q + HgD/kB8A/5EdAP+PHgD/jx0A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAFxczQBcXM0AXFzNAFxc + zQBcXM0AXFzNAFtbzABaWskAW1vLAFxczABcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48fAP+NIgD/kBwA/48dE/+Q + HXv/kB7s/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7X/5AcPnpl + qQlbXM86XFzNrlxczfhcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN3VtbzF7/kB4t/5Ae0/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Huv+kB20/5Adav6QHSj/jx0M/JMeAP+PHQD/jh0A/5AdAP+QHwD/jCIA/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXFzNAFxczQBcXM0AXFzNAFxczQBcXM0AW1vMAFtbygBbW8sAW1vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/48fAP+PHgD/jR8C/5AeQv+QHtr/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHubniDdybmG4WltczrFcXM3yXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3bW1vMU/+QHi3/kB7T/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvj/kB7V/pAehv6QHS3/jxwL/JMeAP+PHQD/jh0A/48dAP+P + HQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyAA+5UOAP6Q + HQD+kB0m/pAdwf+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+48i9cd+ + WtBrYbzdWlvP91xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczdZcXM08/5AeLf+QHtP/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7m/pAdq/+Q + Hkv+kB4WvaVnAP6PHQD/jh0A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/kB0A/5AdAP+QHR7/kB2t/5Ae+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/7jyL+yX9X/G5iuf9aW8//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN0lxczS7/kB4t/5Ae0/+Q + Hv//kB7//5Ae//+QHv//kB75/5Ae0P+QHnH+kB0l/o8eBP6RHQD+kB4A/pAeAP+OHQD/jx0A/48dAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+Q + HQD/kB0A/5AdHv+QHav/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//6Q + H//Xg0j/dGOz/1pbz/9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8zLW1vMKv+QHi3/kB7V/5Ae//+QHv//kB7//5Ae6/6QHaz/kB5J/48eEP2S + HwD+jx0A+ZYTAP+PHwD+kB4A/pAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jyIA/pAbAP6QHQD+kB0i/pAduf+QHvz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ec/+SHOv98Zqr/W1zO/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMJbW8wo/5AeKv+Q + Hsb/kB70/5Ae7/+QHtf+kB6H/pAdK/6PHQT/kBwA/44dAP+PHQD/iDUA/48fAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+P + HgD/jx4A/KgiAP+QHjj/kB7V/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kRv/6Ik2/4Noo/9cXMz/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM31W1vNn1tbzR3+kB4Y/pAecv6QHo3+kB6C/5AdU/6QHRr/iwEA/pAeAPaa + BgD/jx4A/48dAP+PHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHgD/jx4A95EcAP+QHQD/jx4P/5Aec/+QHur/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+RG//piTb/hWmh/11czP9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczepbW8xzW1vMEf6Q + HgT+kB4R/pAeFv6QHhP/jxsI/JMmAP6QHQD+kB4A7aADAP+PHwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1vLAFNY0wAPQv8As3dvAP+j + AAD6jiIA/5EVA/+QHkL/kB7N/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ec/+qJNP+La5r/X13K/1xczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN3ltbzEpZWccF/pAeAP6QHgD+kB4A/pAeAP+PHAD/jhkA/48cAP6Q + HQD+kB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfX88AYGDPAGxpzwBSWdgAZV7AAAAU/wCPbJUAwHxgAPqNJAf6jyI8/pAerv+QHvj/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/7Ioz/5Btlf9gXcn/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zIW1vMKVxc + zgD+kB4A/pAeAP6QHgD+kB4A/48cAP+PGgD/jxsA/48bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXMwAWVvQAEdW4gBwYrgAsHNrADlR9ABmXsAA7YkxAFVZ + 0gnQgVAh+I4lVvqOI7f+kB/0/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+RHP/qiTX/imub/15dyv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN9VtbzZ9bW80aW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/kBoA/5MOAPCK + LACsdXYAADP/AGlgvgCecIMAAAD/AUlV3xCLapgor3ZyXNyFQ6z6jiTe/pAe+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Eb/+eIOP9+Z6j/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3mW1vNZ1pa + zAxaWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxsA/48bAP+PGwD/jx0A/pAeAP+QHAD/lgEA7YkvAMR8XAD/rAAAPFHuC49slR6ecYY6nHCHeLh5 + aMDihjzj940m+P6QH///kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kRv/5Ic7/3dlsP9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/ltbzMNbW8wtXl7NAFlZzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/48gAP+PHgD/jx0A/pAeAP+QHQD/jhgA/48bAP+PHQD+kB4A/pAdAPKN + LQDlhjcKyn5VGLx6Zi2pdHpjtnhsq8+AUdbrijPr8ows/fuPI///kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHP/fhj//dWSy/1lb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3qW1vMdltb + zA9bW8wAW1vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+PHAD/jx0A/5AeAP+QHgD/lRQA/48eAP+P + HQD+kB4A/5AdAP+RIAD/jhoG/48dDf6QHhb+kB0f/5EbMPWMKF/bhEOZ3oVBy/CLLuXyjCv49o0o//6Q + H///kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae/9mERf9zY7T/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/VtbzL9bW8wtXFzNAFtbzABbW8wAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHQD/jx0A/48dAP6Q + HgD+kB0A/44aAP+PHAD/kB0A/5AdAP+QHQD/jR4C/48dDP6QHhX/kB0e/5AdLv+PHVH/kB1s/pAejP6Q + HbT/kB7T/pAf5fmOJPT5jiX//5Af//+QHf//kB3//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/5jiX/w31f/21i + uv9aW8//XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3gXFzMZltb + zAtbW8wAW1vMAFtbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxsA/48aAP+PHAD/kB0A/5AdAP+OHAD/jx0A/pAeAP6QHQD/kSAA/48cCf+QHRP/kB0d/5AeKv+Q + HkL/kB5o/5Aeiv+QHq3/kB7R/5Ae4f+QHuf/kB7w/5Ae+/+QHv//kB7//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ec//KMLP+nc33/Zl/C/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN81tbzZlbW80fWVnPAF1dzABdXcwAW1vMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48bAP+PGwD/jxoA/48cAP6QHQD/jhcA/48cAP+QHQD/kB0A/5IgAP+P + HQv+kB4W/pAdH/+QHTD/kB1b/5Aegf+QHav/kB7Q/5Ae3f+QHuf/kB7v/5Ae+f+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kRz/6ok1/4xr + mv9fXcr/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf5bW8zCW1vNO15e + 0QJcXM0AXFzNAFxczAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48fAP+PIwD/jx4A/48cAP+O + GAD/jxwA/pAdAP6RHwD/jxsH/5AdEv+QHR3/kB4x/5AeZP6QHoz+kB20/5Ae1P+QHuT/kB7t/5Ae+P+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv/bhUP/d2Ww/1pbz/9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN0VtbzFtbW8sLWVnLAFVVyQBUVMgAXFzMAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jxwA/48cAP+PGwD/jx0A/5AcAP+PHgD/jx0A/ZEgAP+PGwf+kB0V/pAdKv+QHVP/kB5//5Aeq/+Q + HtL/kB7m/5Ae8P+QHvv/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/+Y4l/8F9 + YP9tYbv/WlvP/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczdFcXMxeW1vLEGFh + 1gBcXMwAXl7OAGBg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48dAP+PHQD/jx0A/44aAP+PHQD/kB4A/4ccAf+P + HQ/+kB0n/5AdVP6QHoz+kB3F/5Ae4P+QHu3/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/viy//nnGG/2Rexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3RXFzMXltbyxBdXc4AW1vKAFtbywBcXMwAX1/PAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxwA/48cAP+P + GwD/jx0A/44dAP+PHQD9kR8A/48cCv+QHhv/kB45/5Addv6QHbr/kB7f/5Ae8P+QHv7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf/9iE + R/95Za7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM36XFzNzlxczF5bW8sQXV3OAFtb + ygBbW8sAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAP+OIwD/jx0A/44bAP+PHAD8kh0A/o8dDf6QHSn/kB1f/5Aen/+Q + HtP/kB7r/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+RHP/yjCz/qHR8/2Zfw/9bXM//XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN61xcza5bW8xPW1vKD1xczQBbW8oAW1vLAFtbywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5AeAP+QHgD/jx8A/4wlAP6P + HgD9kh8A/o8cC/6QHSn/kB1s/pAduf+QHuL/kB71/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//pAf/9aD + Sf95Za7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/lxczdxcXM2IXFzNK1payQZhYdcAWlrJAFtb + ygBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/jSIA/5AeAP+QHwD+kRwA/o8eB/6QHSb/kB1l/pAduP+QHub/kB77/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/rijP/nXGH/2Nexf9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + ze9bW8zBXFzMZVxczRtbW8kAW1vLAFZWwgBaWskAW1vKAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHAD/jx0A/48eAP+NIwD/kB4A+o8bAP+Q + Hhb/kB5U/pAds/+QHuT/kB77/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/944m/757 + ZP9wYrf/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfBcXM3PXFzNhltbzDFbW8sLWlrRAFxczQBcXMwAVVW/AFpa + yQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/jx0A/48dAP+PHAD/jx0A/pEYAP6PHgb+kB0q/5Aef/+QHtb/kB77/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad//6QH//YhEf/gmik/11czP9bXM7/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfFcXM3TXFzNiFxc + zTRcXM0Thob7AFxczABdXcwAXFzMAFxczQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+PHQD/jx0A/48cAP+RJAD/jx0Q/5AeUP6Q + Ha7/kB7p/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/4oc9/5Zv + jv9jXsb/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN9VxczehcXM3OXFzNi1tbzUNbW80WWVnOAFxczQBcXM0AXFzNAF1dzABcXMwAXFzMAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxwA/48dAP+PHQD/niIA/48dF/+QHWf/kB7Q/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3//5Ae/+KHPf+Yb4z/Zl/C/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM39XFzN71xczdZbW82iW1vNaFxczTBcXM0UV1fPBF9f + zABbW84AXFzNAFxczQBcXM0AXFzNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48bAP+PGwD/jxwA/4IeAP+PHRv/kB12/5Ae2f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+QHv/ihz3/mG+M/2Zf + wv9bXM7/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZcXM3rXFzN21tb + zL1cXM2HW1vNRFpazR1aWswMYGDPAFxczQBZWc4AKSnhAFlZzgBbW80AXFzNAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HAD/jxsA/48aAP+QIAD/jxwV/5Addv+QHt3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/7jyL/4IY//5hvjP9mX8L/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM39XFzN8lxczedcXM3QXFzNpFxczXpbW81EW1vNJVtbzRRXV88EXV3MAFpazABZWcsAW1vNAFlZ + zgBTU9AAV1fPAFdXzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+OGwD8lS8A/48bEP+QHWD/kB7X/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB7/8ows/8t/Vf+PbJb/ZV/D/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+Vxcze9cXM3kXFzN11tbzL5bW82WW1vNZltbzTFbW80bW1vMEVZW + zgNdXcsAW1vNAFlZzgDS0pcAWVnNAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+R + GQD/kRoA/pAbAP6PGwr/kB1Z/5Ae0P+QHv7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//pAf/+mJNv+yd3D/d2Wv/2Bdyf9cXM3/XFzN/1xczfZcXM3sXFzN4lxczdFcXM2tXFzNiFxc + zV9cXM04W1vMJFtbzRhaWswMX1/PAFtbzQBbW8wAWVnOAH5+twBbW80AWlrOAFNT0ABXV88AV1fPAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jxsA/48cAP+QHgD/kCED/5AeOf6QHbr/kB78/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//OMK//Vg0r/nHCI/25iuvZcXM3tW1zO5Fxc + zdlbW8zHW1vNolxczH5cXMxUXFzNLlxczR5cXM0VXFzMCkVFxgBbW8wAW1vNAFpazABZWcsAW1vNAFxc + zABZWc4AVFTRAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48dAP+O + GQD/jRcA/5EiAP+QHR7/kB6Y/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//Y8g//WN + KP/niDjzuXpo6X9np+BkX8TPW1vNpFtczX9cXMxdXFzNOFtbzCZbW80bXFzMEltbygddXc4AXFzNAFxc + zQBcXMwAXl7NAFhYyQBbW80AWlrMAFpazABaWswAWlrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48cAP+PHAD+jxsJ/5AdXP+QHt3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//pAf//2PIPP3jSfey39VxpNtkZl2ZLBzW1vMS1RZ1StbW84bXFzMElxc + zAlERMQAW1vMAFtbzQBcXMwAW1vLAFlZyABcXM0AXFzNAFxczABdXc0AYmLSAF9fzwBfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HQD/jh0A/JMdAP6QHSn+kB22/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf9/+QHuj8jyHR8Yssl/GL + LEm6eWgnVlnSGT1R7A9OVdIEWVvTAFtbzQBcXMwAXFzMAF5ezgBYWMoAW1vNAFxczABbW8sAW1vLAFtb + ywBbW8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx8A/48dAP+PHQD/jx0N/5Adbf+QHub/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ae//+Q + Hv/+kB/+/5Ae8P6QH9f6jiOm/Y8gafyPIDHmiDcY5Yc5BK12dABwYrYAU1jVAFlaywBYVbcAW1vMAFxc + zABcXMwAXV3NAGJi0gBfX88AX1/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+O + IAD6lRYA/pAdAP6QHSP+kB24/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf//kRz//5Ad//mOJP/7jyLx/pAf3PuPIcH9kB+I/pAfRfiOJR/6jiIM844sAOyK + MQDsiTEAJEz/AINoogBWWdEAW1rKAFpayABaWskAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/pAfAP6PHwD+jx8E/5AeSP+QHtz/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kB3//5Ec//+RHP/+kB//940n/++LL//miDn23IVD0OWH + OpH3jSZI+48gJfuPIBT/kBwD944mAPyOIQD/kBcA8osrAOyKMQD/mAIA/5AcAP+PHwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+kB4A/pAeAP6QHhb+kB6Q/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+RHP//kRz/+48i//WN + Kf/uizD/5Yg5/9WCSv+7emf/n3GE9olqnbCdcYdD14NJFuOFPQT0jScA/I8fAP+QHgC5i1MA/Y4gAP+P + GgD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6QGwD+kB0A/pAdJv6QHcb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ad//+R + HP//kRv//5Ae//mOJP/zjCv/7Ioy/+KHPf/Kf1b/s3hv/5lvi/9/Z6f/c2O1/2thvP1lXsLKV1nRSAAy + /wTFfVoA6Ig4AK15bAD9jx8A/5AeAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWlrJAFpayQBaWsgAWlrKAFtbzABbW8wAWlrMAFpazABaWswAWlrMAAAA + AAAAAAAA/48dAPueJgD/kB44/5Ae2f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad//+RHP//kRv//5Ad//mOJP/zjCv/7oox/+eIOP/bhUT/w31e/6x2d/+SbZP/eWWu/29i + uf9pYL//Yl7G/1xczf9aW8//WlvP7Flbz3lYWc4SVVvUAP//AADJflkA/54AAP+QGwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbzABbW8sAWlrKAFlZ + xgBaWsoAW1vMAFtbzABaWswAWlrMAFpazABaWswAAAAAAAAAAAD/jx0A/48cCv+QHV7/kB7k/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf//kRz//5Ec//6QH//3jSb/8Yst/+uKM//ghj//xX5d/612 + dv+Xb43/gGem/3Rks/9tYrr/Z2DB/2BdyP9aW8//WlvP/1pcz/9bXM7/XFzN/1xczf9cXM3UXFzNOXZ0 + ygBcXM0AWlrOAFlZzwBfX88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF9fzwBgYNAAVlbJAFtbzABaWsoAXl7TAFlZyAVbW8sOW1vMEFpazAtaWswCWlrMAFpa + zAAAAAAAAAAAAP6QHgD+kB0W/pAejP+QHvD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3//5Ac//+RHP/9jyD/9Y0p/+yK + Mv/khzv/1YJL/7x6Zf+mc37/jGuZ/3hlr/9tYrr/aGDA/2Jex/9cXM3/WlvQ/1pbz/9bXM7/W1zO/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN+VxczbBcXM0gW1vNAFhYywB9fd0AV1fPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWswAW1vMAF1dzgBWVsoAXFzNAF1d + 0ABbW8sVW1vMSFtbzG9bW8x1W1vMWVpazBBaWswAWlrMAAAAAAAAAAAA/pAdAP6QHSL+kB28/5Ae/f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3//5Ad//yPIf/zjCv/6Ig3/9SCS/+0eG7/km2S/3plrf9yY7b/bGG8/2Zfw/9fXcr/WlvP/1pb + z/9bXM7/W1zO/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM31W1vNnltb + zRpbW80AW1vNAGBg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABaWskAWlrJAFhYwwBbW8wAWlrMAFlZywBfX9ECW1vNI1tbzXhcXM3RXFzN6lxczetbW8y5W1vMI1tb + zABbW8wAAAAAAAAAAAD/kB4A/5AeKv+QHtT/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//pAf//iOJf/qiTT/z4FR/6x1d/+Hap7/c2O0/2lg + v/9hXcj/WlvP/1lb0P9aW8//W1zO/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfRbW82bW1vNGVtbzQBbW80AVlbPAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfX88AYGDPAElJwABbW8sAU1O5AFtbywBiYs8AWlrMDltb + zTpbW82aXFzN5Fxczf9cXM3/XFzN/1tbzM1bW8wnW1vMAFtbzAAAAAAAAAAAAP+RHQD/kB4x/5Ae2f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hfn3jibnyX9Y7ZRukPx0ZLP/Z1/B/15dy/9aW8//WlvP/1tczv9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+1xc + zbZbW80jXl7MAISEuABSUtMAWlrJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXV88AV1fPAFJS + 0QBaWs4AV1fLAFxczQBdXdEAW1vKBltbzSZbW8xsW1vMvlxczfFcXM3/XFzN/1xczf9cXM3/W1vMy1tb + zCZbW8wAW1vMAAAAAAAAAAAA/5UXAP+QHjf/kB7a/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB70/5Ebud+FP3N5Za2sYV3H9Ftczv9bXM//XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN2FtbzUNVVdACWVnNAFpaywBbW8oAX1/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABaWskAWlrJAFpaxgBZWcwA7++CAFlZzgBaWs0AXl7RAltbzBpbW8xTXFzNrVxc + zeRcXM37XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jh4E/5AeR/+Q + Ht7/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9v6Q + HbD/khc8lW2OGllbz3lbXM7rXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3uXFzMgltbyxZeXtAAW1vGAFxczQBZWc8AV1fPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbW8wAW1vMAFtbzABbW8sAVVW8AFpa + ywBdXcwAVlbPBFtbzRdcXM0+XFzNkVxczdlcXM35XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+OGgj/jx1U/5Ae4v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv3+kB3K/pAdSP+eAAQxTvoHXFzNWFxczeBcXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf1bW8zNW1vLUFxcywdZWcsAUFDdAFpa + zgB9fd0AYGDPAF9fzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48fAP+P + HwD/jyAA/48eAP+PHQD/jx0A/48dAP+PHQD/jx0A/48dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxc + zABcXMwAXFzMAFxczABcXM0AWlrLAFtbzABdXdAAWVnJBVpazRpbW81GW1vNklxczdNcXM3yXFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/48aCv+P + HVv/kB7j/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae7P+Q + HXn/jx0S8owpAFxaywBbW8wsW1vMwlxczf1cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczfdcXM2xXFzNO1pa0AVeXssAXFzOAFNTxgBdXc4AamrXAGBgzwBfX88AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx4A/48eAP+PIQD/jx4A/48dAP+PHQD/jx0A/48dAP+P + HQD/jx0AAAAAAAAAAAAAAAAAXFzMAFxczABcXMwAXFzMAFxczABcXMsAXFzMAFxczQBfX9AAW1vMDlxc + zCJbW8xOW1vNlVxczdVcXM3zXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jhoI/48dVP+QHuH/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7U/5AeOf94GgD/mgAAWlvOAFtbzRlbW82bXFzN9Vxc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfJcXM2vW1vNSFpa + zBJhYc4BWlrLAF1dzQBYWMoAW1vNAFhYzgBWVtAAV1fPAFdXzwAAAAAAAAAAAP+PHwD/jx8A/5AcAP+P + HQD/jx0A/5AaAP+OHwX/jx0O/48dEP+PHQv/jx0C/48dAP+PHQBcXMwAXFzMAFxczABcXMwAXFzNAFxc + ywBcXMwAXFzNAFpazQBcXMwJXFzNFVxczTFcXM1xXFzNq1xczdpcXM3zXFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+O + HgX/kB5L/5Ae3/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+f+Q + HrD/kB0g/5AdAMd+WABcXMwAXFzMClxczV9cXM3fXFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZbW8zKW1vMeFxczTFcXM0QY2PRAVtbzABbW80AV1fOAISE + rwBbW80AXFzNAFtbzABbW8wAWFrQAIpqmgDehj4A/5AdAP+WJgD/jx4V/48eSP+PHW//jx11/48dWf6P + HRD/kRcAlW6PAFtbzABcXMsAXFzMAFxczABcXM0AXFzOAFxczAlcXM0VW1vMLFxczVxcXM2QXFzNzVxc + zepcXM34XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/44hA/+QHkb/kB7e/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB71/5Aenv+QHhr/kB4A9o0oAFxcywBcXM8AXFzNJFxc + zalcXM33XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf1cXM3nXFzNtlxczXRcXM04XFzNHVpazA1QUNACXFzLAFxczQBcXM0AW1vMAFtbzABVWtMAdmOuANaC + RwD/lBYC/5AeI/+QHnj/kB7R/5Ae6v+QHuv/kB25/5MTIbl6ZwBYWtEAW1vMAFxczgBcXMsJXFzME1xc + zR1cXM0vXFzNXVxczY5bW8zFXFzN41xczfFcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAA + AAD+kxoA/5AeNP+QHtb/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + HvT+kB6b/pAeGf6QHgD/kB0AW1zNAFxczABcXMwKXFzNYFxczd9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM35XFzN6VtbzM5cXM2mW1vNbVpa + zUFbW80oXFzNHVxczRVbW8wQWlvMD0ZV4wpIVN8J0IBOE/uPITv/kB6a/5Ae5P+QHv//kB7//5Ae//yP + INDOgVE3OVDxFFxczB5bW8wjXFzNMFxczFtcXMyBXFzNq1xczdJcXM3kXFzN8Vxczf5cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP6QHQD+kB0k/pAdwP+QHv3/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae+/6QHbb+kB0j/pAdAPqYEgCAZ6YAXFzLAFxc + zwBcXM0kXFzNplxczfZcXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfdcXM3oXFzN21tbzMlcXM2rXFzNi1tbzXhZW89xZ1/BYKBx + glvjhjqC+48hwv+QHvH/kB7//5Ae//+QHv//kB3/7Ysw44VpoJVXWtKSXFzNq1tbzMBcXM3VXFzN41xc + ze1cXM34XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAA + AAAAAAAA/5AeAP+QHhr/kB6e/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae2P+QHkP/jyAC/48fAP+QHABaW80AXFzMAFtbzAhbW8xVW1vMz1xczf1cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1tczvhaW8/wXVzM625iuemXb47k14NI4/mOJO3+kB78/5Ae//+QHv//kB7//5Ae//+Q + Hf/fhj/7dmSx8Flb0PJcXM34XFzN/lxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jx0A/48dEP+PHXn/kB7r/5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7u/5Aegv+QHhb+kRwA/40iANiC + SQBaWskAXl7QAFtbyxhcXMyAXFzN6Vxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tczv9bXM7/Xl3K/2thvf+DaKP/uHlq/+WI + Ov/5jiT//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtb + zAAAAAAAAAAAAP+PHAD/jhsI/48dWf+QHuD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv3+kB3N/pAeUP+PHwf+kB4A/4orAJxwhwBdXcwAYmLOAVxczTFcXM2tXFzN91xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tc + zv9bXM//YF3J/2xhu/+Iap3/uXpp/+OHPP/3jSf//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAA/44bAP2RHwD+kB0s/pAdwv+Q + Hv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvf+kB2x/pAdO/+P + HwX+kBwA/48eAMd6TABUVtAAWlrQBltbzUdbW8zEXFzN+1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/W1zO/1pbz/9bXM7/ZV/D/3Fjtv+ObJj/u3pn/+SHO//3jSf//5Ad//+Q + Hf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltb + zABbW8wAAAAAAAAAAAD/kB0A/5AdAP+QHhn/kB6b/5Ae9f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvL+kB2v/pAdSP+PHRL/iyAB/48cAO2JMQBZXtEAWlrLDFtb + zFtbW8zPXFzN/Fxczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bXM7/WlvP/1tczv9iXsf/amC+/3xm + q/+kc3//yX9X/+eIN//3jSb//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+PHQD/jx0A/48cCv+Q + HV//kB7f/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb+kB3K/5AdeP+QHTH/jx0Q/4clAfaNJgDEfF0AV1rQFVtbzHJbW8zTXFzN/Fxczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1zO/1tc + z/9aW8//W1zO/2Jex/9qYL7/eGWu/5dvjf+4eWr/34ZA//KMLP/6jyP//5Ad//+QHf//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tb + zCZbW8wAW1vMAAAAAAAAAAAA/48bAP+OGwD/kiAA/5AdJP+QHan/kB73/5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv3/kB7n/pAdtv+QHXT/kB04/5AdHf+R + Fw3lhTsCQlLmFlVZ0mdZW87KWlvO+Vtczv9bXM7/W1zO/1xczv9cXM3/XFzN/1xczf9cXM3/XFzO/1tc + zv9bXM7/W1zO/1pbz/9aW8//WVvQ/1tczv9iXsf/aGDA/25iuf96Zqz/l2+N/7d5a//ahEX/7Yox//aN + J///kB3//5Ec//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAD/jxwA/48cAP+P + HAD/jxwK/5AdYP+QHt//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB75/5Ae6f6QHc7/kB2m/5Aebf+QHUD/kBwovXtjMXplqnBoX77SZV/C+mNe + xv9gXcj/X13K/11czP9cXM3/XFzM/11czP9fXcr/YF3I/2Nexf9nYMH/a2G9/29iuf9yY7X/e2as/5Zu + jv+udnT/yX9X/+KHPf/uijD/9o0o//6QHv//kRz//5Ad//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tb + zMtbW8wmW1vMAFtbzAAAAAAAAAAAAP+PHAD/jxwA/44bAP+SHwD/kB0k/5Adpv+QHvb/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvf/kB7o/5Ae2/+QHcn/kB2q8YwsmMl+V7SqdXfqmnCJ/pJtk/+La5r/hGii/39np/+CaKP/hWmh/4tr + mv+SbZP/m3CJ/6x2d/+7emf/yX9X/9eDSP/khzv/7Yox//SMKv/7jyP//5Ec//+RHP//kB3//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/W1vMy1tbzCZbW8wAW1vMAAAAAAAAAAAAAAAAAP+P + HAD/jxwA/48cAP+PGwj/kBxV/pAdz/+QHv3/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHvj/kB3v/Y8g7vSM + KfnuizD/7Ioy/+qJNP/oiTb/54g4/+iJN//piTb/6ok0/+yKMv/uizD/84wr//eNJ//6jyP//pAf//+R + HP//kRz//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb + 0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9bW8zLW1vMJltbzABbW8wAAAAAAAAAAAAAAAAA/48cAP+PGgD/jhgA/pMlAP+QHRj/kB6A/5Ae6f+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad//+RHP//kRz//5Ec//+RG///kRv//5Eb//+R + G///kRz//5Ec//+RHP//kBz//5Ad//+QHf//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1tbzMxbW8wmW1vMAFtbzAAAAAAAAAAAAAAA + AAAAAAAA/48bAP+PHAD/jx4A/48jAf+QHjH+kB2t/5Ae9/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rk + s/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/W1vMyVtbzCVbW8wAW1vMAAAAAAAAAAAAAAAAAAAAAAD/jxsA/5QPAP6UGAD+kB0A/o8eBv6Q + HUf+kB3E/5Ae+/+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM37XFzN71xczdlcXM2VXFzNGlxczQBcXM0AAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48gAP+NIwD+kBoA/48cDP6QHFv+kB3P/5Ae/P+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92G + Qf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfxcXM3wXFzN21xc + zbZcXM2FW1vNRVtbzR1dXc0EXFzNAFxczQAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48eAP+O + HAD+kCIA/48cFf+QHXL+kB3T/5Ae/P+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN91xcze5cXM3fW1vMvlxczYlbW8xNXFzMJVxczRNXV88EXl7MAFtbzQBcXM0AXFzNAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jxwA/48cAP+PHAD/jCEA/48dGf6QHWv+kB3N/5Ae+/+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hf/dhkH/dGSz/1lb0P9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczfZcXM3sXFzN4lxczc9cXM2mXFzNhVxczFVbW8woXFzMFFpa + yQVdXc8AXFzNAFlZzgD//1kAWVnOAFtbzQBcXM0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + GwD/jxwA/48dAP+PHQD7kxgA/48cE/6QHFv+kB3H/5Ae+f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ad/92GQf90ZLP/WVvQ/1xczf9cXM3/XFzN/1xc + zf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN/1xczf1cXM31XFzN7FxczeJcXM3PXFzNpFxc + zH1cXMxUXFzNLVtbzRxcXM0UW1vLB1xczgBcXMwAW1vKAFRUvABbW8wAWlrOAFNT0ABXV88AV1fPAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHQD/jx0A/48dAP+PHAD+kCIA/48dDv6Q + HlD+kB24/5Ae8f+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB3/3YZB/3Rks/9ZW9D/XFzN/1xczf9cXM3/XFzN/1xczf9cXM3/XFzN+lxczfRcXM3tXFzN51xc + zeFcXM3VW1vMv1tbzaBcXMx+XFzMVFxczS1bW80bXFzMEltbygddXc4AW1vNAFxczQBbW8wAWlrJAFtb + zABbW8sAWVnHAFpayQBaWskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHQD/jxwA/48cAP+PHQD9kRYA/o8eCP+QHjn/kB6a/5Ae4/+QHv7/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHf/fhkD9dWSx9Flb0PJcXM3vXFzN7Vxc + zelcXM3iXFzN3FxczdBcXM2wW1vNnFxczIFbW8xqW1vMUVxczS9bW8wiW1vNG1xczBJbW8oHXV3OAFtb + zQBcXMwAW1vLAFpayABbW80AXFzNAFtbzABbW8oAW1vLAFtbywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jx0A/48eAP+O + IQD+kB4A/5AhAv+QHiP/kB11/pAdxv+QHu7/kB79/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ad/+mJNOqBaKSlV1rSklxczYpcXMyAW1vMcltbzFZbW80+XFzNKlxczR9bW80aW1vME1pa + yw1aWsoGXFzOAFtbzABbW80AXFzMAFtbywBaWsgAW1vMAFxczABbW8sAW1vLAFtbywBbW8sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48gAP+RHAD/jx4A+LI+AP+PHRD+kB45/pAeiP6Q + HdH/kB74/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/+o8izsR9Wzo6UPEUXFzMFVxc + zBJbW8wPWlrLCEpK0AFdXcwAXFzNAFtbzQBbW8wAWlrMAFtbywBaWskAW1vMAFtbzQBcXMwAW1vLAFtb + ywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/5AcAP+PHQD/jh0A/pAdAP6PJQH+kB0a/pAcWP6QHa3/kB7g/5Ae+v+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB77/5Ae7/+QHtn/kB2U/5UMGK92cgBYW9EAXFzMAFtbzABbW8sAV1fOAN7ejQBbW80AW1vNAFxc + zABbW8wAW1vLAFtbywBbW8sAW1vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jx0A/48dAP+PHgD9kRsA/48eAPyS + IwD/jxsJ/pAdI/+QHV7+kB25/5Ae6v+QHvr/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHvz/kB7w/5Ae2/6QHbb+kB6F/5AeRf+QHh39kB8E/5cHAHhl + rgBcXMwAW1vMAFtbzABYWM4AVlbQAFdXzwBXV88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD/jx8A/48fAPySFQD/jxwA/44YAP+PHAD+kR8A/o8bCv+QHjT/kB57/pAdtf+Q + Ht3/kB7x/5Ae/v+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae9/+QHu7/kB7f/pAdvv6Q + Hon/kB5N/pAdJf6QHhP+jx8E/5AdAP+QHQD/kB0A/5AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+P + GwD/jhoA/48bAP+OGgD+kBsA/48hAv+QHhH+kB0m/5AdVP6QHo3+kB3H/5Ae4v+QHvT/kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hvb/kB7s/5Ae4v+QHs//kB6m/5Aehf+QHVX+kB0o/pAeFP6PHwX+kRwA/pAeAP6PHwDmygAA/48eAP+Q + HQD/kB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PGwD/jxwA/48dAP6SFwD/kB8A/5AdAP2R + IAD/jxsH/pAeF/6QHTH/kB1b/5Aem/6QHcz/kB7o/5Ae9v+QHvz/kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv3/kB71/5Ae7P+QHuL/kB7P/5AepP+QHn3/kB1U/5AdLf+QHhz+kB4U/o8bB/2R + IAD+kB4A/48fAP+MIwD+kB4A/pAfAP+OIAD/jx8A/48fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP+PHwD/jx8A/4wiAP+QHwD/kB0A/44YAP+PHAD+kB0A+JkhAP+PGwn/kB4a/pAdOP+Q + HXP/kB2k/pAduv+QHtX/kB7i/5Ae6/+QHvb/kB78/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q + Hv//kB7//5Ae//+QHv//kB7//5Ae+v+QHvT/kB7t/5Ae5/+QHuH/kB7V/pAdv/+QHqD/kB5+/5AdVP+Q + HS3/kB4b/5AeEv+PGwf/kSAA/5AeAP6QHgD/jxwA/44XAP6QHQD/jx8A/48fAP+PHwD/jx8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48bAP+P + GwD/jxoA/48dAP2RFwD/jh0A/48cAP+QHQD/iiAB/48dD/+QHRz+kB0j/5AeNv+PHVT/kB15/5AdpP6Q + Hbr/kB7V/5Ae4v+QHun/kB7r/5Ae7v+QHvD/kB7z/5Ae9/+QHvj/kB77/5Ae/v+QHv//kB7//5Ae//+Q + Hv7/kB79/5Ae+/+QHvj/kB71/5Ae8/+QHvL/kB7v/5Ae7f+QHun/kB7i/5Ae3P+QHtD/kB6w/5AenP+Q + HoH/kB1q/48dUf+QHS/+kB0i/5AeG/+QHhL/jxsH/5EgAP+QHgD/kB4A/48cAP+NFgD/kB0A/pAeAP+P + HAD/jxoA/48bAP+PGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PHwD/jx8A/48hAP+PHQD/jx0A/5AbAP+P + HgD/jx0A/5AdAP6QHQD+liMA/44aB/+PHBH/kB0c/pAdI/+QHjX/jx1V/48dcP+PHXn+kB6G/pAejP6Q + Hpf/kB2n/5AdrP6QHbX+kB3A/pAdy/+QHtP+kB3L/pAdwv6QHb/+kB22/5Adq/+QHqD+kB6X/pAek/6Q + Hor/kB6A/48dcv+PHVb/kB4+/5AeKv+QHR//kB4a/5AeE/+PHQ3/jhoG/5EgAP6QHQD/kB4A/5AeAP+P + HAD/jRYA/5AdAP+QHgD/jxwA/48aAP+PGwD/jxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/48fAP+PHwD/jyMA/48eAP+PHQD/kB0A/pEaAP+PHQD/jxwA/48dAP+Q + HQD+kB0A/pYjAP+OGgf/jxwO/48dEf6QHhT+kB4W/pAeGP+QHR3/kB0e/pAdIP6QHSP+kB0m/5AeKP6Q + HSb+kB0k/pAdI/6QHSH/kB0e/5AeG/6QHhj+kB4X/pAeFf+QHhL/jx0P/44bCP+LHAH/kB0A/5AdAP+Q + HgD/kB4A/48dAP+PGwD/jhcA/pAdAP+QHgD/kB4A/48cAP+PGgD/jxsA/48bAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/48fAP+PHwD/jyEA/48dAP+PHAD/jx0A/5AdAP6RGgD/jx0A/48cAP+PHQD/jx0A/pAeAP6Q + HgD+kB4A/5AdAP+QHQD+kB0A/pAdAP6QHQD/kB4A/pAdAP6QHQD+kB0A/pAdAP+QHQD/kB4A/pAeAP6Q + HgD+kB4A/5AeAP+PHQD/jxwA/48eAP+mAAD/kB4A/5AeAP+QHgD/jx0A/48bAP+PGwD/jxsA/48bAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P + HwD/jx8A/48hAP+PHQD/jxwA/48dAP+PHQD+kB4A/pAeAP6QHgD/kB0A/5AdAP6QHQD+kB0A/pAdAP+Q + HgD+kB0A/pAdAP6QHQD+kB0A/5AdAP+QHgD+kB4A/pAeAP6QHgD/kB4A/48dAP+PHAD/jx4A/48gAP+P + HwD/jx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP/////////AAAAAB//////////////wAAAAAAA/////////////AAAAAAAAA/////// + ////8AAAAAAAAAB//////////4AAAAAAAAAAD/////////wAAAAAAAAAAAP////////gAAAAAAAAAAAA + ////////AAAAAAAAAAAAAH///////gAAAAAAAAAAAAAf/////4AAAAAAAAAAAAAAB////+AAAAAAAAAA + AAAAAAP///4AAAAAAAAAAAAAAAAB///gAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAB/+AAAAAAA + AAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAABwAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAA + AAAAAAAAAAf+AAAAAAAAAAAAAAAABgAP/wAAAAAAAAAAAAAAAD4AP//AAAAAAAAAAAAAAAD+AH//4AAA + AAAAAAAAAAAH//////AAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAH///// + //AAAAAAAAAAAAAD///////gAAAAAAAAAAAAD///////wAAAAAAAAAAAAB///////wAAAAAAAAAAAAB/ + //////gAAAAAAAAAAAAA///////gAAAAAAAAAAAA////////AAAAAAAAAAAAAP//////4AAAAAAAAAAA + AAD//////AAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAD////AAAAAAAAA + AAAAAAAA///+AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAH//8AAAAAAAAAAAAAAAAAD//8AAAAA + AAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAH/+A + AAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAB//wAAAAAAAAAAAAAAAAA + A//4AAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAA + AAAAA///wAAAAAAAAAAAAAAAAA///8AAAAAAAAAAAAAAAAB///+AAAAAAAAAAAAAAAAH////gAAAAAAA + AAAAAAAAP////wAAAAAAAAAAAAAAB/////8AAAAAAAAAAAAAAH//////AAAAAAAAAAAAAA///////wAA + AAAAAAAAAAD///////8AAAAAAAAAAAAH////////AAAAAAAAAAAAH//////wAwAAAAAAAAAAAP////// + 4AMAAAAAAAAAAAP//////4ADAAAAAAAAAAAH//////8AAwAAAAAAAAAAD//////8AAMAAAAAAAAAAA// + ////8AADAAAAAAAAAAAH/////8AAAwAAAAAAAAAAA/////8AAAMAAAAAAAAAAAH////8AAADAAAAAAAA + AAAAf+AH4AAAAwAAAAAAAAAAAB/ABwAAAAMAAAAAAAAAAAADAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA + AAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAA + AAP4AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAf//AAAAAAAAAAAA + AAAAAB///4AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAP//////gAAAAA + AAAAAAAH///////+AAAAAAAAAAAAB////////4AAAAAAAAAAAA/////////AAAAAAAAAAAB///////// + +AAAAAAAAAAD//////////4AAAAAAAAAP///////////wAAAAAAAA/////////////wAAAAAAH////// + ////////4AAAAB////////// + + + \ No newline at end of file diff --git a/SecureDNSClient/Forms/SetDNS.cs b/SecureDNSClient/Forms/SetDNS.cs new file mode 100644 index 0000000..66a485e --- /dev/null +++ b/SecureDNSClient/Forms/SetDNS.cs @@ -0,0 +1,177 @@ +using CustomControls; +using MsmhTools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.NetworkInformation; +using System.Text; +using System.Threading.Tasks; + +namespace SecureDNSClient +{ + public partial class FormMain + { + private async void SetDNS() + { + // Get NIC Name + string? nicName = CustomComboBoxNICs.SelectedItem as string; + + // Check if NIC Name is empty + if (string.IsNullOrEmpty(nicName)) + { + string msg = "Select a Network Interface first." + NL; + CustomRichTextBoxLog.AppendText(msg, Color.IndianRed); + return; + } + + // Check if NIC is null + NetworkInterface? nic = Network.GetNICByName(nicName); + if (nic == null) return; + + string loopbackIP = IPAddress.Loopback.ToString(); + string dnss = loopbackIP; + if (LocalIP != null) + dnss += "," + LocalIP; + + if (!IsDNSSet) + { + if (IsDNSSetting || IsDNSUnsetting) return; + // Set DNS + IsDNSSetting = true; + // Write Connect first to log + string msgConnect = string.Empty; + if (!IsConnected) + { + msgConnect = "Connect first." + NL; + this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgConnect, Color.IndianRed)); + IsDNSSetting = false; + return; + } + else if (!IsDNSConnected) + { + msgConnect = "Wait until DNS gets online." + NL; + this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msgConnect, Color.IndianRed)); + IsDNSSetting = false; + return; + } + + // Check Internet Connectivity + if (!IsInternetAlive()) + { + IsDNSSetting = false; + return; + } + + // Get blocked domain + string blockedDomain = GetBlockedDomainSetting(out string _); + if (string.IsNullOrEmpty(blockedDomain)) + { + IsDNSSetting = false; + return; + } + + // Show warning while connected using dnscrypt + proxy + if (ProcessManager.FindProcessByPID(PIDDNSCrypt) && CustomRadioButtonConnectDNSCrypt.Checked) + { + string msg = "Set DNS while connected via proxy is not a good idea.\nYou may break the connection.\nContinue?"; + DialogResult dr = CustomMessageBox.Show(msg, "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Information); + if (dr == DialogResult.No) + { + IsDNSSetting = false; + return; + } + } + + // Write Setting DNS to Log + CustomRichTextBoxLog.AppendText($"Setting DNS...{NL}", Color.MediumSeaGreen); + + // Set DNS + await Task.Run(() => Network.SetDNS(nic, dnss)); + IsDNSSet = true; + + // Flush DNS + FlushDNS(); + + // Save NIC name to file + FileDirectory.CreateEmptyFile(SecureDNS.NicNamePath); + File.WriteAllText(SecureDNS.NicNamePath, nicName); + + // Update Groupbox Status + UpdateStatusLong(); + + // Write Set DNS message to log + string msg1 = "Local DNS "; + string msg2 = loopbackIP; + string msg3 = " set to "; + string msg4 = nicName + " (" + nic.Description + ")"; + CustomRichTextBoxLog.AppendText(msg1, Color.LightGray); + CustomRichTextBoxLog.AppendText(msg2, Color.DodgerBlue); + CustomRichTextBoxLog.AppendText(msg3, Color.LightGray); + CustomRichTextBoxLog.AppendText(msg4 + NL, Color.DodgerBlue); + + // Go to Check Tab + if (ConnectAllClicked && IsConnected) + { + this.InvokeIt(() => CustomTabControlMain.SelectedIndex = 0); + this.InvokeIt(() => CustomTabControlSecureDNS.SelectedIndex = 0); + ConnectAllClicked = false; + } + + IsDNSSetting = false; + + // Check DPI works if DPI is Active + if (IsDPIActive) + CheckDPIWorks(blockedDomain); + } + else + { + // Unset DNS + if (IsDNSSetting || IsDNSUnsetting) return; + + // Write Unsetting DNS to Log + CustomRichTextBoxLog.AppendText($"Unsetting DNS...{NL}", Color.MediumSeaGreen); + + IsDNSUnsetting = true; + + bool unsetToDHCP = CustomRadioButtonSettingUnsetDnsToDhcp.Checked; + if (unsetToDHCP) + { + // Unset to DHCP + await Task.Run(() => Network.UnsetDNS(nic)); + Task.Delay(200).Wait(); + UnsetSavedDnsDHCP(); + } + else + { + // Unset to Static + string dns1 = CustomTextBoxSettingUnsetDns1.Text; + string dns2 = CustomTextBoxSettingUnsetDns2.Text; + await Task.Run(() => Network.UnsetDNS(nic, dns1, dns2)); + Task.Delay(200).Wait(); + UnsetSavedDnsStatic(dns1, dns2); + } + + IsDNSUnsetting = false; + IsDNSSet = false; + + // Flush DNS + FlushDNS(); + + // Update Groupbox Status + UpdateStatusLong(); + + // Write Unset DNS message to log + string msg1 = "Local DNS "; + string msg2 = loopbackIP; + string msg3 = " removed from "; + string msg4 = $"{nicName} ({nic.Description})"; + + CustomRichTextBoxLog.AppendText(msg1, Color.LightGray); + CustomRichTextBoxLog.AppendText(msg2, Color.DodgerBlue); + CustomRichTextBoxLog.AppendText(msg3, Color.LightGray); + CustomRichTextBoxLog.AppendText(msg4 + NL, Color.DodgerBlue); + } + } + } +} diff --git a/SecureDNSClient/Forms/SetProxy.cs b/SecureDNSClient/Forms/SetProxy.cs new file mode 100644 index 0000000..ed44193 --- /dev/null +++ b/SecureDNSClient/Forms/SetProxy.cs @@ -0,0 +1,91 @@ +using MsmhTools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace SecureDNSClient +{ + public partial class FormMain + { + private void SetProxy() + { + if (!IsProxySet) + { + // Set Proxy + // Write Enable Proxy first to log + if (!IsSharing) + { + string msg = "Enable Proxy first." + NL; + this.InvokeIt(() => CustomRichTextBoxLog.AppendText(msg, Color.IndianRed)); + return; + } + + // Get IP:Port + string ip = IPAddress.Loopback.ToString(); + int port = ProxyPort; + + // Start Set Proxy + Network.SetHttpProxy(ip, port); + + Task.Delay(300).Wait(); // Wait a moment + + bool isProxySet = Network.IsProxySet(out string _, out string _, out string _, out string _); + if (isProxySet) + { + // Update bool + IsProxySet = true; + + // Write Set Proxy message to log + string msg1 = "HTTP Proxy "; + string msg2 = $"{ip}:{port}"; + string msg3 = " set to system."; + CustomRichTextBoxLog.AppendText(msg1, Color.LightGray); + CustomRichTextBoxLog.AppendText(msg2, Color.DodgerBlue); + CustomRichTextBoxLog.AppendText(msg3 + NL, Color.LightGray); + + // Check DPI Works + if (CustomCheckBoxPDpiEnableDpiBypass.Checked) + { + // Get blocked domain + string blockedDomain = GetBlockedDomainSetting(out string _); + if (!string.IsNullOrEmpty(blockedDomain)) + CheckDPIWorks(blockedDomain); + } + } + else + { + // Write Set Proxy error to log + string msg = "Couldn't set HTTP Proxy to system."; + CustomRichTextBoxLog.AppendText(msg + NL, Color.IndianRed); + } + } + else + { + // Unset Proxy + Network.UnsetProxy(false, true); + + Task.Delay(300).Wait(); // Wait a moment + + bool isProxySet = Network.IsProxySet(out string _, out string _, out string _, out string _); + if (!isProxySet) + { + // Update bool + IsProxySet = false; + + // Write Unset Proxy message to log + string msg1 = "HTTP Proxy removed from system."; + CustomRichTextBoxLog.AppendText(msg1 + NL, Color.LightGray); + } + else + { + // Write Unset Proxy error to log + string msg = "Couldn't unset HTTP Proxy from system."; + CustomRichTextBoxLog.AppendText(msg + NL, Color.IndianRed); + } + } + } + } +} diff --git a/SecureDNSClient/NecessaryFiles/SDCHttpProxy.exe b/SecureDNSClient/NecessaryFiles/SDCHttpProxy.exe new file mode 100644 index 0000000000000000000000000000000000000000..18ef46b38f61e73e4c3437e79efabb7fa0adc46e GIT binary patch literal 1482049 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

LwqswpGrg}B2O|L{x*vBU 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

+?w|Wn4GfW;Xb09Pc&FffLWRsS)le6+(k( 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

1CbLj_ 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

    l*9Giqq z_N4qI)<>n>Qge;49KG%S3sLPZ(mLWb9DW+wmatrP$ixzi=!k|!LBpK4aOYf=K6Ty^`5p3YfT5mqd<&Kz3B+*af4gFGuWF*wY%%e`dwZkL8B5n^cT;ZjS+R z+bGv2QSW~xTg>MTdNo~_2p_OW@;y9t0y}Cjo{B|$`!}IgP-@~QwC+dxF-WS==!S6 z#4jinGP=YHqXS)H^;x7aORNR}+l}!ZV9+ban+37H9mOj4<*Fx6KrrHVWzFJWqCgxa zyp@PpgQmMNAOfR30dQJ}bOK>6k7Mm-n9HxCTo(1AYMMvPPd~Az75`6B{3QnQyI+Tq z{CFV){GP@z7MV=^0q+3M?253eOKKPuNo6HXGhZvq0W;O|#8<5pZkS>ceu`9Km7F~} z_0On_w-H22%doS4HHg+c(PY>>+I+xhz&Sk}7dQ68$_X8z=G^=(j%46$WINU0g0#|j zvLPfmanQx_7%RT{_#|){tzijbSmNWO1lfRj7QU2T+L)6dGVle%V3FI8JK=k2fbRvm zodJvJlp>0Ekp~Ix?-t$CEjrf<>nO~p*3;Nsg6gja`js-yrYn2WtigeSZV?r@UlvC& zRs9W!_c+`o#68UB@immvhKqKKXpN%_fIALA0q+0Q3HQST+z*K1+*7UeHem8H4TOL1 zE%i5|Sdq{MyIvgQgHxg09$@#~$A5qlfKOONt>^KtCqR#X0)PO;;a=Iq6R!Y=6LIkp*C!yWTyQO5KhuC_9}@q~vu*9{o#L zavD9ldeDQ&$n-A)npk5Xy^lYvh=<@_COh7^Q!6_K-A3_uXp*!Hak0ojwGW7dQd{-~(#fE1+SXbSI|A2VTls<_x8hHydrpPwqg%I27 zLE42hHo+#gj@!_9sE`HL^(C-&+s--sZ^&>ul#0vKZnif+4&glObmL2FWp+wp;btOp z$z%CAJf^rD;EUkjX0^>Qf^m&*G$%A$lt1|2;Y`goPs@*=Vtl7sK|aM+Gj!l@%RH0v zx|EWxUgY7#-Q2{-!7y3y|LNPzxmdgCv6W|1)e;(~X2(y;WA{(8IsL;STy`9D z%d9Y1h-py^SeDw#Ffu>U4OCPp&;LevS>#~A^WhIG;vwIN$9qJbL(@Ghjt9%9e(PWpx9-Ux&!*cN&0MzbB_z$qw$FCr%6Y1 zGxUYX-n7V1Q|)QIKrLkDi}e>m*vdozIw#}H>}AfUMXe^Y#pXIJeHD<@iA^rh!$q|; ztUWTuio10+od2ZD)Sm@hCIrycKacO`c;3GlGDfliOp4bUl&QkfS^Q zN|Y{m)$gT+nTr5!PC+=Azd7b#IS^2)Lw^24gJx2sQJ3|6O05}VN};&tMT#vHWlq>F z=+BHCS=jEQJOvnQv$og&Dj=x!s+MayD}IUV}&NkPnkvbbSe-RqrZ>y_OGauDC<%Msvl@ zm$g;PznQ|1;=;3P@lkgEvjDUTbf#FrwskH(nRiIxn_qMx8MaIHFaHfvv)VTDt~D#nnwA?^ren;RD?H$z22 ztaUZH;T$|hcdY-!dMK`t#*M>&eI05j*`aFxTRPPCHYaTy)$t;}pFNH9f2j|qQ*&W2 zyc_z+KNBYKj;uB8AgV1HoSRAhO25SRlbH<>4UY_we48Pnkesga74B${V^n}z@7q-5 zJbwf}Fwh1*L_-_@0jP-b3~D;2WjajciGIpia;ZJRJ=|&>&Dv17<*fulFx-JOGr=@G zB3Pk~U<$DbrjWcvLW^L9ZCgHaj@%Km=B1q>)!V7pffa3XKNEKAtYRpWRQWy|EGRni zBipv;+X?X((~)WjY>PP0o~-`swQwjut`GVHCC7}iwXHvN5Cl7mm19FV=@VTx20SB6 zb|*NUoHl()8<>8_w){gQvjT;pi9_dJ+&M8BgO!P=;HGAx8H;&tYISGIBH z$TFSSCO0miv^KO^D}lCiLz{T$J|Cwd%^EG=@>O;d=!u<6;)6LI8N?iM-AV~o`^icm zU92Th<7bMARjT>f2-yotB~^#z;fBFGRM5_;i;r;!Hl3LzQ7452i0wQhznL|HUDiHH zjKHBwnT3nPQxIFO_LG@LA6!EGDxU)I9LuG6ZZYzI&`}#jiNZ3jLI+>qm#NCTEDep;)zqz#QtL#Qsz`yQ44RPyD zLV$~ddUPueUc)3&8V9G1IQ^L|IG3ZR;XJiqYf5G%d$IdMI3qFLu`7COFrf{l%8{tcXt7;%cfq5RRnl1} zCVbYEQGre*Lb96d&xVwY0Yge9KFy9HFHpH#zf8Y&bcC&9dfnluj3-u?VeQRneqwa92iOYH=eqvD*TST5AI`NZG&{597PtXX;~QpOnwgp zbrtqd;}~~Hmtf;MOkF>1t$fBQW6UnL>bcgtb^jnLRfJisovvYH$B-U{`9a`4)DiFJ z6K{5Y%j_;TaS9TP5fLE!LH!q?@ro7)L<>ArQb`1Ls2(dUL-A$lU@_Dit2MG|sSaA( zvhuCnMBBFVYnA@k`g~#c4#r^4=#AF_MWjq~N)hR_5V|1J{#(Tn5Y><-|?lE+Fl=Qz@v|X5$~xp(&C`zJA&MVgU6#yS zHwH!w&gB^0bKF*HaJrmjQNo%o=$pkI^bMMpizus=0SN4Br7~C<1nW~hPwt8(_~u(X zm74%)r`l!WJ6S~BMLX55(y1mfrJD--)!pb8(I`q?8rBbc9)yi%-$9h-kp>EmTt*z5QZM*Jn=n1>IyJ6FeEZlt9byq!s z;h{axe6P~u`7G>`|SJ4 z@tu&i<1$Hm!-p|j!ZGGwC`>9$pJ}W?WF@Cn>4|?6k>4@0Y-HBs9DhZIe=ah!lYUg0 zfm|quYBZ-&l(5G7coVkO*fdhW9qf%N2HX& zrbPwG0{UbJOm?`3n?jF3`HI@a2RJIwDoTgdT@JE8&@OTc_Fqo^JG)4m|NDhfA&!XraJn{T_);l5*fcYXlX0x- z8_5{4d*_nd6pW@bCc^d2rMQ!oc(b;m?PI*`Q5#IiyPZ3B~-IgzxD zI}Sr^&xO@{gs~7r%)j?bsLRlkL z;lvJjwDlH?A3F;jV())G;EB%DT^3JlgM|gJPWI#Jls-xOQMH3y3fQ`VRD2_2MW^j| z$GD9lOe*8Zvszx7_XuWwBp%(Yc-hB;Gj;xF?82R*ZK4At>>U%%_F9 z+(U5JPRJORFQJR|&OKhGOYqsn^4pD)V*wH?JnK4tx_7G*)nNC-;tDmD?U25KW;FV~wn7O=d z4bVwN?V!Qct7lQ-WGhpj4)%o}OKHwl)x#d?(LTIGRA?s#Go3#)c2ID;x)aMVUJiVfq6DoKE?w~JZhBb6+^#WAyLqJ@PZtwP zRXbQQ+hLFBqM&H)qUl5(GPRBL_WBDdT@9D0eN1`3!a22(m!?BI%+l;w;iNNz)olGr zOwhpwN%Jfz`Dc#RdIT!dnc_3JYmVR1nr&RRhI3*Gi!B6Hkhy~HrC_t{;8W?o%-SZ_ z+Awm~9C2rPGzr!PqzTw7$gkT+q|G)FC)*@dMNme}Y~p`KRp5^_}Gb=mzlYHg;-}9CC%lqL~@DJy!=&$9g&kAD|mz5e}t1?xKh z6kEF`2PtCt*j#TO1)=)WZjHM*Z)8aF_7qHj?J6l)!-%9xp^o|JXpHnkX_$3JX%X4l z^Y7Vq{=AwwDG|En-}Pjp_B9wKYx#v-{j8|#qKk*w)asy+6&0#2-CmtXeiWpRSliyj z^+Hx$mqG;`FImYnT-mJ76B8qv$+b4Ax;+xbwyoRm#@JXwTytEo z^p$`HL}a!!=)%Au7-ic0zLQCI@9apH6!<|!nS8bt-N~3gK14+OPF3x+PwLXOZdc!$aKKdrMA7&Z1mY-@yd3#s>Q#4yz(LvQr?T+Rq`Llv+Vy4&mOGr?Bt*t1Q$+!6Fu9R;!_+TBG^4~cv!%> ztHAmZFt}m)VrD=WhB`9xGdL`Ak@Lfp*6skAy@R4)`6o=yGx;W>9mvW+szEFlLJTF_ zjj$hU_${d+pK|Sy)?@-9dcDR-Ze8eGkVt!wS~`s4Z|}{B>aUDQD8R!3G}4ywML0_* z3HU^sM2RE`%t$|pQ8bvD0i#Q|6C=joVT_`o%bj(}gEtNbQrf9L9|7p^wiUj85B*}myX0y>q-D1fs zFyRtyr?l8f*|&2ZhE0fUciSpHs0xiGH#6g4>k8tZ)UtvWyb^DX0$VrZd-@-Rl6)GU zg|#YId(+!ke-WA1xl4hA<5&jDaTLS7W)0B~ke6caf1C6?hDFkVaHg~{M)2Mq0!&sx z@wMn)6uAyhk+_A?O|Cy`Cz=WQ9YVsbpK5{Xj@b&%wOWHLVw;#nekP9glg2+?aC?+! zzDPdBR_Jh)1uo0H2oY?H%ItoU#HS$)rcTswaif^j@ZKQ>FiPyeKH(aj5|L=8JuLwu zF}k=4E$PK*es*;zy(HONP^iBPfvNx`(pvmh=D&3H{G%6z~kOWkMCg&CODs9!M$!UdxTrQE9+cs>4D)}xH z?yzSRX0K3f$<|)T>~yQnYHII_=~fH7nRM%{^v0h^x1?^hi1{pZT&Y4USA2bt5yllT5T1iRkEp zqC}gejNm1&w!4Y&GRNn= zcQQW*kF?p?oXM9OeR9V_=6Km(vEqB2D|J%mn>9k|p*4r&Y?u`DT7y5{xQ8=mQa>|) zpR~U3wZ4P!1%NHZ-)j6}%SLK5{;tMfdidNmheM`tf;06u`1>aQCLY4WUyODtO>nEN zzrTD6^f>waGN8`X7a%Fd%f5nGs(+z`zMG%Ce6uv6cLJJ-3VJO=uVTc;CjSn3V_&yK zDVX2q`JWZ|i~aA)`&9pT@;+9)bEU=+vJkA)I7l{tl^Xk*(QkaYXsNNppL-z7sRpC$ z*x4neOtX;FtLVnmKxOc^M49#(we2Ra)+xZuy3*JF`2Q(krFW1P_N)4xq zOO}>6Q{Mn7$G&5RKx>wPb1MOln7ev9D0dODiu3ir?L)v>ZaOXbZ--JV%Xd$$*U>90 zbMkx4@#@H#*C1DKsxQOmc#ppaspK!m6Q>Ym8wb>S>5aRoejbC}LSA;jH8a)TMt{Di z(IbJi)~yKbDT0OtxjqDUh++pO*PTdtD?Y=^S~=fO*7`7T18Z+Yl4?m1DeE<0*90yu z?<8#NT93Ufb8u`@qm?d3+eXVyUhgI>=QGFGuZ8w(9#JjXF$PkF`guq%h@g|@YNyQ* z9^^9qJ$A;sk#4kDJFT~v)&mG$WAMf+RR-SGQe$B{7op>rPV3ahSWeC)`(YIc7J`4i zhCYkl;L6y#G*}))8w|=hQ0c?7$g_^Wh4|z5LHPR){w83Qr~G}{4o>S`pwcvQ$xOgk znDS2`wAwpyFn?UEQEm&P>`7=#qttH)*t-LdN~U!uUuX^;;@`!PcjE!THHhuqE#ENp z-@}mi2EX3NU++AHw(glhJyD zc&&HhM!@|)Zx3E^T>RQWA(qb6r$CL?hfzi++?w^gzdvK!h+)x4J62l?4Z40cSO%Gj!s^H%M{;fB+M3$v=$KQR zrV!Kn1%3sY`VsIz+wjgvqKD&)H`G|5J{fV=1q1cgBqTPP1xTGHu_1(BZ(lwu```3$-IZt`1VVjX=InikK0IwLZww=gCp|?3+yn z(bqO6#%-v9f z!|?ZN{PAXC%6R_WWqsddeFxz~fYHin;O`jxorAxN@s}Pxe>LMzyb}-qN|HtO!wvE& z7U6CDY-|cGLH&J+f3LvLlY8AujTeXEyyv~tIM%;k!eJ50`=BsffA8i0Sm2}n@8!M3 z&mYWmRe!#``}}cv=X_o#2wUuVjx6(46_2|}$Esq7)ApuKh%025>{W7xd-uvZI73Iw zw}oi)=a}#+m?%2Kb~W6zPHyijWFC@r&MqMxAS42~)IFRjk|z2Y7T z16|q?I^GdFKMqxXE2O@fmSKkLA49S`t^H7Q%Xe+0<_$6JVhyE7BJC)*Mn@Y$yWc)@guP!%R>4X zQj294tl|nmMkp5TVbB6}_O#P} z1)Yq8;cZ9EDyJTXD*0=``pOSXB}}+$K)8u)6Wiz(ag*j8b7WdZlB8aQ)aG8&Tl>5o$1$vtEKxu{pRgwUv5L z`$lK`9Pb6!T>v?~w5lZZ!+ofCF0IKNQGk0)zKO%`&ZR?^eShcD`Le291;}PH47^jvA%^`;e-}Q^ z1Pcf(2_tQa?47%)PPDFkD>eO$21n7z< zL&a8tX-|zRa}qw`_Asrk?$tY6_W^3xOSwqBn?eKWl`%JeH1y#3v6z|*=fKC%r=0rR zU^)2rp{Yy$7umD?2k~s*own2aSBK+w?5+`TdZdAsumLSP3e}y}4SJK^ptw`J0nKcy zBe-!XZ+8Vq`9NG_yA^writKFHzL1?=Ux;RI6J$N1AF^Nw45l~Kh_1q9pejSMqogcg zA`h+#BmbpC;x_uEfG~^HA^~A3Tdj@Om1hk}-J}~w)2ukViNhwbBlDJUv5M9yQte!J z3{g&RL*h21Oh=56ip|3+%Cnn?)tpS(-DhF-kidegcPsjwa@A|a6<~v1+L(dkM5b}yfiy^J1eyppk%`76>$WT|l8Bb8C?+y3iz6-@bEz9L zsT2;Db2F>ptV{_RbOmHNpBBB8H-@6c&bhqwyFR$mM5n|RzmE1M@4)~_WPeXVhJ(Te zg|s@Hk{kOA{~vqr0UlMgJ$&y|GMR+5Ar%5ClQx+ov`|715Q>06q=nFh&;$pQP(wmO zAoLPK3%$t|!7C*yB1$hRAZid)Koq6ez$+@E$hX$od(NCmQSSHr-}n38=Xt}!n)BPe z@3r^Y=Nx*H-^(STg@H;=#;|eM!LlAkY+YVl47_+;cye?$Ru?b3p+i~Yp?SGf2+!fb z9-h^H;pgdPh_CAyh!w}X&!{PS#+h`M+z8U$L`%0@#UvZ}1FK%DUqu_ME_uS6BW2th zC0%%Q*jY1gLF0vEFL&|BB~wa4upi_&wabHq(kKOw0{B6Ue?D@;2fG^3 zW&46>$6$vgYB$sl4OJ{y>IiXlD!ZeCC0nq=A<~`;8Y6j}9wrYSCvLRx0hSwp7aUy0 z;6ek6^PDFF;}afq3zG+Lm5#<$#rT8`++JTiI9=+qsiIP@$QFdZnA?O{%?>+m$X{PKb7`KUei%&F8LAXUU~^&+BZp_f1 z;&`!Yf?1(ga?*|2gvm^>0S$nnb2@`pg?7OYL8Vip z#`tNysg*aS$dB)jD(pU#D4gXmRa@5s^mV-$Tqhj|K|?IuF2b7Rm5%!%Dj%0=5H{%R zG^cW%8mtrse6pRw!1vx#y7gf=ea`)OZ6tuQKW3X2e{xR;mt8^l7JTrl+0Is%s?dOcdV#;v4D^F!{m7cQLf z70LhR%sJA{ADpQLS*ot>kP}c|qUE@vY zE140XG`MHB1PO<+P=QcwW5E}_Z`@PmcL;FSGdQ#ag@y**LY+Hvs&Q(p&?PEN~h7nUOo5xsr^Sh&BRS^?)-0bqNHJIk zN#?4AU9sR%aK(bxfH;q>YeT%Cg>FL4hnw(_bUH3S7Zw6*W&9JHjo6sz-eFbaBWLZw2>$t4jvF3cWfjIB{B?RsZU((yF(D`!m%9_;+R4wpw47=nWK^Io zFjOjafoVEsDnI&wAL%#&gJeRwewavfPAi9n!2sRb0~4y7 zUipID9s_x(B4;`ex*cw@W~VhFzkB$%i$PEj24em5dyKV0D<#XmBF9E2zE50TfJUbs z9i9SEPwdOB>b|OJsC4TSv=vO0UfB^wyd6}RCg=AKL)1FelJEa%8#4Iv9lrm^*ONL` ztBUqORZvymNvE>Y*3+=NL#mmsKB{=yrJB16{M;Ti1-6yeo?7o0JzlP|$M3JA$N#Tb zR$~3@4#dMgKa-ZyGj^LMNF3bz(-Tr zvI7QD*|HO)6=)aHOGsFTt}MZevA1v>T?zLo-80w0Xj&ulMUWnudqH|;z6lcU0vyL5 zm&_0G$B_92{p+jAusl8<}%~`FRkqq}5ep=LrLhu`C=RW!8nHaHQLCj?a)eMn!T%YhzzedjPl^ zqS?~b?oY73f$Mr?z5S_Y~gNz_-s0R&g*5$7#1&f0@yN1>OdNXne-T+3mKnU{ z#`YTasei$+U~+>;iUMj|;8|9K-F&YwH`WfS(%h|1)#fHOq#6sCQ1@zV451#vhF5sz zG;GRCF`d4AuEO`D_|pAdcn=EhhlYCVN`&SaVNs`&InStgf0)y^0kt~Ld;@aJ@5%GZ z6|Vobtm)A>ejaSGmR^6JUVOWbKTmG}rPm%H->tv{0{He&{-H=3!b&lS6foyXns?Z3 zP=IxL;my7l9Sx(H;TwdnV=(+gr!RaE-u^nBK)8WN&I5zUxxEE)CCU`2Q<+2ZD32OVmv#p@+hoFC=ohu@qI3!zGm(s!tNr%$wj0o555Sw`v+B|+CGV2X&$T58MwwPe;NNRPpqql`rV!i%r;zke@ z)=cI}>`ZiInGX#ywgX^nvgn8VnzlF5EXH;ae(duf^amRKE9t!s-J{}3N6{E4BCg<8 zQrLCIqUl$3ZExb0%$?uo;83oGj$YBdzA=)WeOBXd(5Oev3vltnyjW+ zK7d*I0H)8UbEqb(ZbZqvg+bAf=GtD=LS_tJEroK1w~zI~pUUH-{uRHO?ZCZnoLzI! zwk1q)rU0Fukl7!d#oL`}%AF}*R}6ah&!PK-%I*`YabJw?>uIxuDUP?Ue}OS?UDOry zqxgQbqEVbWhj&%uwHCjolhuQ_F*?*Nq4hk;B&bU_Uu=mv;i?BOEFBC(a<7OAQ(LG0?use*gL$G$_gOH;^ zx>F~v;cB1(g5RL_a;aF2!rV~NT;?aITy=v6buka4;!weiy5m*i@EPCca^q*ts%imM zB}@MzBfcL62gPuX&_^%Z4|hO*eH*y2Z;gz-jcevxP%rM8t|nYFOC4~{>xKue58+^C{slaB8k@zED{e)x%z%%SKU8y+9(d6k7!tTEWiA)ULy zqEhYbD(_7$d||Gw?eO)^j**N{=x~bgA0~928f?P^;Q;FE2Bko&eyxZy3&0Y3vn~Qs zq~ZPW6^n)|DX>c59nzh=^6sb=AN5&kRK9Th&g9P37Jlj$#^6C%Dtv9s69QT_p)R%B zz5{HAR7!0rrq-iUYCTP!Rj1Zd=#8+HN3YeV*30B&^5m)Y;_KL|QtQQ2E8^OVA)-d~ zzpBv$J#nMqs*B0h@+vGhVHLy+PMCV@Mg@`dxBt&g`nmrDlg=xG-f=?1@jq5mWnEe8 zu~qBJjuFhhL#*kw65m zFp;95%SPqt;wm;!oG!So#Sg0Dd0^e7Ac{vD~?amEmP0hUSXn zZ>1#KL)5l}Xr|&RpjoL>ed_G=(eepP4DVbA5c$yQV?3|+k-pl*I8U2@7opBBw9@p+ zyBc@$kKIi4%SZN|s(L$h$t^h^Q0$IpY* z9PQ(*6;3LmlHsdsW@(2!)a#U7uIVyZd}1>;;i7fRn#W{ectJ*03hqb24 zwH^LQ*fO47)MNM{!v_Yw)Pw`p&Z-7J>#OTHnY0qD{JfUfIns4}?6Ul~sIz*AglJvaDFRtt36>4svhtiU|Qa0_|RMhY*Ka|AJu=BXXZdKlF zwLrB=Ur_ei*CmdZcvUHcIS3yIbKHK*><{(l z)Yy4$AroZ9)llcrS7b(amXCKPVXpJ1y`D8t=a^o)%6;&-KqZFQDioM!H3i1aD-Wh3 zXQIG9*9y$DVu8VPI#>kYp455Xj%2>PMTAc&!Mr(BrFzdPvVBH3+h(f!qT3ra* z-PB4B^aBr#t)i;5Y@56*DUh^p0AJCeu}Jr5s7Q_T*v3a*xW7Yt*$z7#<+z<*v4kO# z8*+8gtxDz6O|M+yP$=FPpdb4xD3@aFI(FAIeKrU8Yhy zH#rSPl}Zfm*;27+BMW7lmw;Z~a}?I!OkrA5?V(l}=lDV6N)-;86%N|^=(u*tXEhO+ z(}X9wmKbF!#am(Qt1f(QUU{$(ebwZ`l|rFK*iAijowlkj&WFs3!=#hTs?|p~v0aGo zL)r#=XNOUD!~s<3j+9LgqYJGtcvDxXS60;!$g!uJvBEsyMnzp|cYzyME(v}vi|2?- zw~86VbJ#|<6ZZIyV0v%BOaZsSA=Nc9_k#4ud>f=^<~fjXE{0CRxbUq$I>2=c^q7>A`SZi?;f-1(g1+4PZ%Iea)OTVK63zRNFhQ?$|~}cTQ*h9UEnp z!qclyIt8Ff zeDjb-x4*v|C_0^+e#ed%i+xhBkcNt@Q+?TrB1*zK{{O_Wwe3C;v z8_%`Y|1K`l{6LZ6MeEp~=bO3i)N?{B-*({^l~fU}l7N! zRryE>FR9AoJP%rY`3G*PI2JZqOjVr@(btRc%(V-VR+uqxZZo+Dk#F6)M4OvyRhZuS z2Mk`v{_+9}T}o(gT-$Bt9nVwOn|Ynucb$3d!`8C?EQePm=Uz^S8{i0wxS`E&8dh@d z?c^Nyz{Cw1a_>{gy^oW7+yxUiz{$O-l6#Yrd;D^jC(me2lNZllP5b!-Dh~J}7u@2f zzZ+AhbAh2ur^9}kcMht%J z0q%hFV-JCRpo2p<|8SQCj*$$6Dt0>dz>Od%(uqzwYrXJQtpnJcg7m{x4Stg|P#k*@ zqnG{G2HxuOtyNj2|A!sjN;R&24)hiU-($^QM7;%vQg_l`YEY^?jAAk2ti$p*c>fBiBF?wmX*}a0iP@bB(S`SMeITfFDGZMFGCa>s>4l@seIaCV@AQqzk8~@f z0*M3A^ei&I4(2HO#~ZKO8+$8wMP1C`_yh(oeGyCjuu5n8bq{ywGVSE6R(K^}x@T;4 zzH~dQTCJgO90Tb-2I&s6zm^Q%MWk#Mn=n+Qze6)J&})QhxLQZadGO?%d+v9jY04IO zP|96a2(0bp1OwSw6QmperZZMyaR5kEq=Rn%u`F z4<6cb7jfFp%|i`5L7Z?$RSnj~Y5NpohZ(HQyLa@KsgS9v6Jx+}p(+f}3{&P9z!A2##jKyApw%_%+=4Vx& zEZ;DOtD#MGU^4$-^g^y12mcy&u z1;W<47POluEkoF(gbsx8d_7N$>!-C420v#vLT$~|2X~) zz;NL6pgeCiSxw1ig1|hW)4=<^QjGzP;`kuX2WlhC$yAE2y3yOs3trfxD_bLsHLeUE z(tUz_q+|Sk_V`^ad!cQ5sq|y>cghvE|0gROP)yZOe|y=~atejd4Nn#htgF>f_&5xe zjje8_aGtb`2V*#5ic?^kfie#NpD5!e9jk_5{GiZdK5S9?Y&?128j4|viBf?+dlfHolN&-B+hLgQ)A;kl~*P_!qFtmTrJM{CTBT}Jvd=F6w zy#qewfO-c-ij$G8p+4vM{tm~O{CDBNW*+JpA{<*2eJH%GJLa>$3ugp`1G)o+V{5Jt z1>1 z{8^K(JZ+5iWxiwJvqexVGF;cqqz_g=npL&}(tH}r_$2tXodOY9PY$r=HHUEVOAs`? zxRb0gGYJf9GRwcQI^e@t*9PT{fqJiHs43f?hB_g$F2=xmXqRl5*$kaa77qwC0gV!_ z#p-8WR|6lZ^pmcuD>u6mXmzvVHz8ye$vTW?u~^2a$6`A=gXz5u6$PyY&QH4sB?cI5 z-@-+3K-Ou9%yI@qJblIj{7CF6^bCKsvOK{eA1fdW)=}>H*n|SI-bF)fADKh7K^T*s zxl=>TxMdz>J0Hshzg^Z+{IB;*b&cCq87k(%)IoNz`A64|p_W;nZuWuE8` zbe9J1yqV=gjP76H&K=+*1k`UJa_sLF-R-Q>olM^|dmrnqhU;~A#nbJ&2TTC3f@9Hd zk|93)6a7ZbwLuv}v!6&mIUmC7CT(zAz_55AxXH~z(}3I;@W($llT$YQSc4%=FqF}s zY}p49IMgjZ#xZ6z@;#ovuTfTNYSm;U^j``>`}o zSDGU+b{5O3sxUE^@i1$^hj=mgz%-uy94w3Hx!Je@Em9x|5eF6B%TRQ_YE2ctKj$9) znE%bJ2f7xe!`aO=a5FYe@`ud{EtR(8GBgyubE=IY5Dn}TXwG;E+D?LFcsYn8Y;Ae*FBn1S>XUBMhQ(y?e$?;691IOkzq;FK zm4$r(TXa`2!2xRqaMs5#XiWdV@PEtT{~ztZ-aMgI2g8{AC;Xnr{%yZOk&A;u)^=#Y zxp{Eu2j5u@lVG^LAp_k{z0w=fqNoa(`TD8^vq-%c~edw^#nw@W5I|ROVKxY7p}vgsAq<#j3-HH3 zcNYBk)llPILL0cpDWS>khJa!4ayKkhKSNDPo`LRcZ$U|T7z65CjF1!kEZ}OS(a~zG zFe2hWbO@9Fm7If7_}7DtSiF#PFu)~a6SeW0(nF@)#o8d|V*EOJEpje>IrTZ(!2&z*~L+nZS-f|@%Ue_V3s;E!K!5&ZbUbm7tw&avYw^GJP) zfZw=Ayg*?8>{IY(Bf}C!|EjJGtUp*N|@mLK3 z@(hg7b_txLt)=3;0}Dl*U#%7A8Z6nPShA2X+?z>(U;LAEFpE^ql-C>#USH0X=^V;4 z*>Mk`6k-0eLLnVk=1zWjnWGVuIk(Za|A)Xc@b1+A=cO^<19-@9vjiGhX$ zf7rMuH?G&9USfm9hPX)uUrinl(()h1BA{ijfZzOWaNRpQbL{h@v(Sa#Dv8~P8%Gg+ zdo$w|u5U(k?)wzxKM2?ZZVE)SA8&gW9m5|~pwxfn>!EJm01u@^20I}b`{(c<_FNe3 zE3k4G#yYygSOg4Rnl%AWk?@-d|IsasP1-lY8^ZNN_&)(GOz?{h#0UPn!hdw@1^>|u z(}N6k4S&~RgAV@;tY2^Ud;`nqgK}P~G}D{y%t!Mpsq+UK*q&Y?;|=V?XHbqxod9l* z_1=-;&W;YgKGU5w?0tQvfpzbLwo7}XEFzaNBvVLECi8!%qOJQg7^e65*XJ78xMxr{ zPJL|)#MKL9pVntbhJmeLg0e>{${$Kl)=h0c&A?uUbh@+O(lN#)N^SEtXxn5mrpovN zNeaO<8O_`DKq-$xX@)c#*fvOy7yBjEcSKEgaJBCU18d&t;By8xEF0y{btqSM#N73m zcztF7yET4C>)LGIxYxn&s;(3!g*K-MucLdRd}$@h)L|&MzJPL5=8lX2*0AS})&_Qa z#z&CHFCa_<`?w=sHyDrdUmMWmtx~+M-w9=LF3Q`R$pk_UVTo%(2YRuOb9_gb*}-Rg zM?jem#Ijle;n!qO&%#{X1#>U<cZ2U%}3MJMHYwB`0 zlqXZK&#cX)$ylB>a&jVSv&?p{XVhljZbj*lhw|4pC})g8`5%)0WAVCaGRj6|GMwb1 zRcLaBWG8ZSlCHO}M)UPhZdR5}d7K4luFakyUky88dDaCJ0~am^8L!phW$k>rlkJ)QmfHG-d_&NjoYdT&}0rT1{e>~RIUaI90R8z~S?hZ~u^B?H? z8LG9ObbWJP`)RdV{PSqrz7*xI*(g28WCFQ)NOe7qTF6wAkx!!=H?sX1OrU&bV{0*! z$-5N$YLWpY;~*tg*0SeEb8E9S3i*pk+mmXuA195NWMIGKV#{0)DX+&uO0m9$tVdn&Kb|qbH1+ux;>OuMI`RHCmtQo{xm%x(~YxqttM?R*CAsI5nIpFpHp_ zJK4dyp5+5|p9Etz*tim{jtW|(ryUub(BEYkWru^i5fBPv0|#E8Sqd}N1SSC$FN<7N z3gbPeq1}=E1Rb7(6b*#_j87xgLpyLkr#N!ePS!}!Q;Q>4tzgYSACn-yl$=ONOA>x% z6Xxp}0~M9FYc2&p+y zJGd`_6hV{%yUR$AA-+Cv65~C}-|?xDt1hxmumgg*EfsWuTuz*fdFaH-DP<=%W2#fx z59IRvQp|0C_8XJJd{{zeM_`V=WLt>_5q&G@SE}24Kn0L$kNN2D7qkOmcnQf9tv-O_p|&zqU{- z6IhOPnka)PS2{-&MwBOgKxCy*@}*lu!zjK&={pMZa5D_0P`XRh3fkEOHc$GM($ZxM z(tJr)uq0X}aZ-rJlFMaMO`@MEl;u(=Q7YM$O7%c5^kI?1(cgLrwve$m0`-!1OI?)B zpz=-W5V;DzcP({SFz*|((d9m=2iYwLLc5*{R2gfNf^BJ^)Q3VjoQp0G2>QA?(j93J z*-0&szLzc#y$z$r1a?=tLSg;{u`_m0xcXdNPdD&5XA_(6ODH9NIpL7EhvczEKyJlj9EzeWLHnv6%c)z#O-Dg zy*8Lrp^EM0xoMo>HZD-vAfy%w+|2^I(5X)0Pg07qMV$i#9UJD26lFWnZ_q9$u;&H6 zE9l><46XI4TyD2Vb%CE=Qw>$RA(Kh+eF94ar&NUpNQce zkw-Ufcb{ma@b`dd0c>ty%KjvRr{sy43zozwSUIAdN)$Ajlac6T1}6`q>B*dYh)MOx;r#?glLph}ptrj$h=(M0=MCF1;5@iY+ zL-dxQ@kCcd%bG~^vari0+Lg`Yn@W_^pVJJY$RN-@pvLlD6zBnPS`OO$3_&Z0A>}G% zF4*Sp!wn;(*NDQY2jnXUiQI?^mBSDUytx{7(M#Dp)8gCr_V^1ws8rS*!VVXAP=>97-BHk8a@i?m;YskOK89R^ByQ? zySaqg%}oQnz@(I+Tn5r^{$tmgVDhmC%1=oayW#a(lJ!-*P9mAcT7ozOj6J<_bfaZSFl-gkO zD#?x@8?qbgLtw}0%i;*g^+&TTAYUcybxb_i<*<>ocC z1;_^L+k)I*+#ci?OCN>UuYVehw$t09Nz59QO;eZ@&Q6usT}o_Mw@wiLC!4#0jGf;L zUAJs#vIEhmD>+{xJ>c^a(wQ^EX&q+F0Z zC3l89YVe&Ivmn>=dZL`Q66O1=QJz?f^1Ws#N4G@TU?9p#OHjT-@0)oSWILxY$>`dp)kLhjMufdqI|Cv%8ul|^+vpYjly5H9qKcoRsbQ_19Hq4|Bv(KA#U zV{4*GKa%Bnc>T?@CPiv4+#8>ocKcsWc#+qD$tEvm2hEod@< z!tBriuRoyr9oHVOpC)-^7G5u)a28V@f26c|(RDXUa|;S5ib{9@)sdA_vc44k1}sN; zy#(bmq9$fn>*oL+%1G%*5O^|6r--g(&liO+| z#{8AXAYVUrMd`W%KFV>(}_!6bJn$^{!yCiOyDAEaZPJPRhF zn^0Ow{@n9yXjAsh+9|Taw#|7IqCoHd5YqD(nD7#iSd0FTLb&XmU*M0WSKI*Q-SE>; zp3jFL1DOeec6iiZ$T~|a2Moz1MY+T(fxOjVIF^h zj7e9*e3@Ii5#*qBPmoDzH9_tg5D0SUfI1+bOAiO>KOh=p^Yl27a#{nBndwbHzCNG@ z$p7?jizWk7Kt4!&3go4<9w5*4?+xjBS#{HFhCkkJFigY-^+0p!iJ z$sk#J4#?i=`5^13%>lV}zygr{1}p{nZ2Ah29s^22x~FXfIV*h|NV9_J`B(p!Kn_iN z1>}^peIQ>+djsU5v_l|!q#XshDeV-J^>@2`Z`xF0BC+3Apqu-hK4x~?6RW=t3uk{(Ye}Aq zbNx_~ILn7KZhK-ij!qHOUpn_|3vOciHUrtT2lluvc_{7f(dG6GjD`C;2O)>E16@!C zJY5@neb5&}C?;R;t+)fR>s<~8Hzrm-2z7%`NUoUtBe>zSIUmPfNWu{It^FCyxxRsY zEu7)ZZequ#{}^UsKTOA#ws3kUkY&@EWMWfECa-@0zSfs~4Q?vC{CGN=_geob%sv)P zm?Vey%Qu#y{M8F(Hkk|o8O~aSV=suBfpT9vltxO)?}PFB=0Y3?nnArttPk0)rE-3? zJNAf%&zK#*IT4Fh>UDFf1A=rIoDpk*lUW{*QRv+?>ST?foTlf(iW$T2ffX0$>%iDX8> z!w^0<1+dM_v%x&NTW4km5tpgdU{S7sUmxWrlC4M%u7@V$=sK0;S7B(9PuG6Yc>O8(wa3^tcr};=`l0+G2Ib~(l!yIM zULx6?%>N2O6K@mBz%Z2WkzC}B*HcLj1!)g?L&SP8-xQD1CuqH99vQj?Otv;ax!eQg zdXgR8@VXbt846y{CE3>%uZNL*flRv6b+a%uZ&MfLwm_86_@Qh;A>56{>(dEaw0M7y z+yN%8Q7C5zqP$ugHZbuZCf=!Ie`RBuA6^o%(2dtrp6&JmYo#NcFNuB6i!21$(I|ojWF`HmCD?O`r1gUsaL4nmXMr4rIAIYRG0c!6RMZxWYUl1 zRBA0FD1_Zq+6O7dgXDJuwa>nkyIz#G?az9qx65vTQa4p3ALrU)Dm`)EK$*Kf699T#XEq~)0@)#3zcL%U3-yvQ<8Tm zJ^Lw^B_yYUxqZw$U4IvZxz4&vGdUBu2TX1Tpqx|(==Pk zi9;DevN=gBndi{;YxU6fo4P0;liVA*M~ksq>ljEOy1mmO|mN!i(8TVp-yFngLG zhWUMG<_VCkv)%={ZRB~7>B%31^vt*n(l-k=H_y2!Cp1T2*Pp%`-aFrKCax52!JU=f z`BS!`^eIK@ISl0h73KaAlz$CHISurv-uWMp`(MfA2a>P@59ZI(^)B)oNa0)~b9FA- zzB&TsF*1QYdbl1=;lo2`a2-R}aMK#D(cKZ63+@lkocJ29(2kqHF{qa9zm0$7Nmq6_k>Fj|=rfzUy^yJeC!%gfnIvG_t{?Ywv2boO!dK zHChKp63u3Nm@l#bmZs4jIK?)Hld<9CAae+NQIOl_*-8l8D`?m#q_+hvCwf=Vw3cXh zQP7ErNM8!NL-d27omVg;47Luw-El@g?O zf@;{1o)%QL3~7L%%;%6Y1TAcV^n##{`AE5fYK}yjFQ`T_(n>+CDGyr&eL4i~UJ*NPuCJhmR1d=i&0dXm69k32AWajLZa|tN=p$F8 zVnOb1NE-x=cSqVOXk!he*91NGKsqYuJsIhopl%H5Q$ght(l>(Q6{Md8O{J7Q611OE z<`%`vEY657{RK59m*IkJ3AS>l)v7pB)x-1pcg3|J$pna5*$6|tuM&MV2RQ$6%|f?;{KXT69@ zSf|Ca%_+>UKH4EIF?V7;iTJGDg{5m$YVN`^G=g&vY?4Ns&0Sf(MlYMYvt=6XGxuQY zG&*cfWqXKto9M$16P+?%AJpI6kDV5DXHY57J?_uA>bW!K{%m9eOlOgC(9H8da1Q{9 z^~x^?TCdS(NDb|FH_U15C5^r{4`3%6al40w<>rCxf<~VK?MbxT-7pVghcx=uJeVD7 z%Mo280Q>#_8NX5{t-U9van)$Yym~*j?T*Pi4^> z1w>3^jWuc!k;5jo6)TEraIhmO~;V$-`0 zjVNN~;( z5EU6`t!oeGHNVsBvLhCm`nUZ3UAs+~|WB4mFb_Tm;44O94+@;|_@l2);?f`Zo|y&%XdrCeFXW@-MiBUZ8H!mjt4oQO4S zt!5YJzJ|Rl>@Y2G-~|2@(u~(Bc7hSCjU@HmR37nfc0nT_cvInZ zjXsaq!@kqVpY4N(H!u=R%Qq2aEJ&jtBi>*Sh)%F2{SE9Oo85_A8vD2YBjO-CBxnrK zTX4sM+r80Jiaf;PJ99b?^fntVD6pGr#W|sw>+f*KLn6>S~ zL-}TI?Z_jni=dz8h5?=7#M(n09c5>_l1o;v)WD9y^8=g)z?tczEU7zE0n33r9A)>3 z3fV_3Vxzo#L zIL&$!6&gDywT?W)1`*wqPW8;Id4}y4bYf|T$ak5sC-?WYYBQW;4TuWa@6Q_GDValp zGLn!iz0hR|`#P&zmqdQ25%##df-s%ylzW<;N5^%M|Ix^`oQ~k){#xy7iS7aXTZ91^!Z*ARG()C658<@01&k&c@ zQY)&B^gU4#JF@nMxvlg-BXd-;)N2&FEM!yGu8V9h?I9{+SF_@yQlx_#HHqpdy{l2H zs7}&ljXFhjk+R2NDCqB*sIJmXjRGRNOG`Bx6xBo8tkLMGRO!T6?r&=^1M4GQ&?q~q zk91|6-R_3DuXJ0Z98kvN$8$U1+MWss~6YO@Yq6SMo&)aEB)G(=mjZ?P; z|Bf0dbtfud-4>KZWk{BZXvg)svC8Pu7r>!VNNR1!y}b=(pwOxzhF= ziUH^b&{;T(YM;aBNqBA7y6l8wdHv`G!Va~rrqPQu!ZCT7lfPok&ZA?8=n{=wJ9dp; zsS)}sb@I1Xv-9ZKKN_BWp|oIpL!viog#NZV`P-)1d31a(`bCXgJ7z}zOC$8ROB$Jn zp%xjhZkQRpTUsyZ2cTD^azPhc6-EDB@|ek8-T-=4N)Z&cWO4K!X@;N#puJL=ptQ9s zqW4MP3mOHqUkcBsP@r8K;K`e0PNbETN$~|}SIFiLUl&~_ZRTX`y2PNqE?pOP(}uqo z{kqg=7I*n@*xu-a(iuTVhrJX1w$z}I+p&!&qu-H63cBCw{piEe8bPg>d>DO1IxA@I z+Dp+#B{rM>csfx>c~5F62(|6^q~@HA1Lh=2XQg(6M$D1miKOmCxXzgu zc}~g}v}BzUb56P}=-gWOnDf$gL7%Sm0dgs_=g+`CkbE@?jQKzc(I`CTL#Z<-(uvBY zA)JgGmKxM@=>G<2xGEOOiAfV<gUo0L7vTn+2_(Pg4iU3dPP#_ z@wC*O6wIzjk({U{UzNIO6d!X{T2I91fLqcZ!XM`LmZZ$*pjlyGY zODRM=l<%ZzL?x_7w>B}~NwYQT9P_>O3HN8ja`{oZBM8goN6Bvi#YZvRl_E4!V(vqvv9Nm3k5J_#R3NH9L5cRw~gbFy^7OS?BUk=>yHq!2XmjX%raqr}VYXpdsUmfZi2!bnN07RsK*=`PdSmJAw}68&nth zCqd`(gPDu$vBXiH2031%wJ`>{Oruw0yyc*!=#rObkep3a$UNFDsTm|65cEazRzr~d z0Vk-V@R%U^GmVs(VEHx?wzE?)b>#aReGpSuKD!KK;46(#SuN&-<5`&8oQSWv!sT8> zCG7N&&tt;n+k!T(|0>2T$1X>I7{jfY2)VIF_hKUDX+*sBM9Z@@@?p{PHlkAub*UJ6 z7q^4`v;O87`2f+E($8Jnvl#gZ(JJG*A%Dii$fpJE8X{X_Lh6GvS<@goovVc9aESM$87l;atzilz7_2lbB zMQp<&1FI)DUWqP?*f*I-MVw#FKFW6a;3hUzl!`B3kLhJ`tkvy zLiQq11Npw7-Xf?Qlzd0|Wlj`IC;5OzKCF{` zN+W;PS-wI9v;Jn-&6ckbopOtV+UzRd71R>K>?-?i#+03M>jt}i-Q-9?gHzz?a2ajv z^JaHBWiwI<%O6$G(p~;lqZXD_Icy8s@&3?9wrJ$T`p6A6@@IYJmPEYw_m_KUb_Uj8 z?x&Ft&`^#1S(-dn=PzBJq1hQ&x;#fCAD|`Nr4e&9P+q0;H&EWDxiqkW@@|cMfa+|u z=fR&1l4CULU>PEh)To3EGL72Z8ayvoM#pOz_{EVPx#Xc-o9xZ6#!g3`~o+@bkLU?LkUM%QWu$w7w z6y&kUhs~7t3;KO>xsorR5acz*hvmzk3hFzhTq%&h6=Vau0{O8ZpU&mVEZJulPjy&l zA2v&l64VLo3gxDPdV^h|+)YpysK42AZ$ZN$f3xK=M7*r$$R4j?n7pj#$eZ^f@v<(G zgZClvvM!P%HS%Fa@*0i&*|Bwp5U z$nOin+35}Wjv${(m;f!}e{+)5%uM!m**S9jLXXJz24#uPZDum@v?kQ*txKgl{9QF~9FE;U+*c^{`zC`2X?rJ#M%@_BZ(@K|7kf6#IvqbdiU0uVGp2V|k>Y(k91Z6=jj2Yv9jS zDHGJE@!8lKO7bV%-x;v;R>lZA-sq)RU*&gF zhA<-(xV;2_h3r+Zi%~3sY|TE6jZ?}5)oyevwt;d*&~&hCqKx^J`?G>w3uT$00gdj* zwpES@n$i&7g0B3?iORaWQtvbF&wZtVJ*}h(dbUS^^=aj{pm|v~Ll0%r=jf7au|1U% zK{!sNDrJIjoan7|y@D=z@93{QLxg+3b*=rCsYC_LE!)5bDDV;-bZMLiGsytOBxvY@ zoQMHRJwf}3x(j+V3SE{7!jmfll$%5tLzH!Z@_^_j?HQ*l9$#P#H{Ed0I9>4;gnP#6 ziXSK1Gfr2=6VWceb&xWdi0={)Q3{1!VQv%a5M>$BDYuCkErE7(lJLITP$lI$#&=4( z-rR=`Q+jFC-a1@?n|JUB_tT5JxQ|pC5@D*lSu>PALT?ZRpb; z?9{I?lp^E5`q&JkmD7TbbbH1+M)_RO)!_zpjPjG9g&UBJH@H76!7<82L0E!gl&wUC zMy2mF@)+f1LH>RFLzrbmB`me?AnRD=#7zvPgx%^h$U0t`_@kXhT5ZaY_mMD1&s#GU z^%o>w5828@L9}2dYGmp|AwJpJ)BpjE7ysN;7;g5>kMVy10KWm<|WpdO2F?(nCf-bSxO2~0n3GY zC{nsSM7v^kp-&h0BE|G460eoHidhiW%3LK$5Z20EWxJpqEez^B<%poN7Qyfyh~!5+ z6s)89N*_T-+arw;^jZ60HedNt(3-^tb%AnU(B8$tY=JW2FCIz@*dJV|%ofxg_7xW@ ze-UAhUbHS!f*+$xq+QmW5r57 zC#tbxWuAmCvBr*BOO)kAyv9~4yM$d~?)z4Fvjq{>*oQ#hbD|ns1#5i_h1b|>C0V1( z)>6>4(5}$9a_v{vP0DRSyMQ(;Vfc~_Xp!N=?^w4eGl+_rad?P%hq9dr@1Q=g?ojrq z6a&LkWxL@0G)Qn#2F@PrQtop*I(x87>EeQRHzhoKuv?jJK;owj_9!O=;c0_Cit37X zC2Y`em$*Gjf1+ZR46&CfQ;6^ck$+s7vWVyu!_y516z~Lpr(BTU)Cl7{s9YeItJtpW zh`4t&yBalPbu^(vx#FU^t$?SN0kOf$}OY?&T=S8ZgxrpyA*dK zwiZr79aE-i)HC9Qa+#=rU2Sb(rA3fm zG4PxKQul3r;?62{!Z;~ghs1rPd>zi|)K<`Yl(HyJWsAneT~^k|a%wRP?Sh(dx;}p* z*!5|}Y1Z8QxNFMn_MCEuz)1_mqZ6mNJfz*7IW=8|bf7CIf1*}BI9(i!c4<91JvR?& zUN25P$?i%jr^emTZcT4aOUPwo_!J%H&qQQ_9d)D*L}mCg8lYBf(chJUoQAeQx;%u_ z+G3>bBREZ-iDaC{Y4HN2r0JY|CnAl>;WQM=1=2EuQ%$1VxtvldoxNsrDzl->D|0x# zU4S%fE~jsZPSdT!0`~5t`Eg$=isJ!#i<5DP=?j>|eRbaX%~DU*+-jD}6fdzH&g&>|}V4 zq*At@`)jM7iu*+wR>oaUw!I(st1{^|ZkM>?tC-)Ed4giQzY_OAd5NfiMJ_a`zbi)g zHUj41=?x#o{jQ85Dqu~PUX6RCTo9BFE%`5H`#~NhoYTC* zujBqw_MGN)X~q3GRaM{P^k}OR@21{+pVLvU5 zN`cz+R>yzB=~1`9cyD#gB~EkN8<P89^U`U9g&Olqr;=X-V?>_Y(0_3KsPsQ2|R$3}zPfdm?_GAy%zZ1LG@VDNP5($Ew+aEKNtoTh-fwK4>~I zzP{SPgS#A=_;1%lHCs@hCez{@tA_-gZam&4NoAhgWqH%t@y*pfg620)lG>?ZG5uY#f$q(Y_>JNow`g=QInnV9n{-`${OvA@2DnwbC1v9g1js|Wx?WHQ#6C#BLDT#3Bh^Sho))Z!(drmMeVY6kKStdn2^^<_X0b z-EQ1Ip+qBWXDcYA`dqr66G3F|e&cD7j~Y-d|En%`(-!d8v2o$b&l z0rKD=Y-cZNcGyB*)(Be&e2-0}1xs+RM%Y5&YeT{gOR!8MY$2~{geCZ?wq)2ggYnjxm;m~J11Tm;m(P# zM!0hlq|tyzuP4;iXiCFV36UBFHr*L-)#$y%t?}_1wQEwIP*0;hO|B+1&?r6e>x4!c z9d7bnLSv0^|13!(+&^;=?w_^N>~R0AjYhbC)>fnT&3;aRPhX1M`Zkm5bmiV9bd?>SZ7Jv~X_ z=HB~$@AuD_->;skbL!No{nRqu=`jXHcA~Xc>)(+z5FO6!Ds4XT~zhJ*(UD#>$8hdBn--Q!7^XHZ$5 zw1fo)^+9saga-}k^OSPy5`#Jn>LG*r?53=Qr3Q5Z)FTEZcg{~(Wl*=IbiMI0gL<{| z(1djc74(cuc*>v_cBx9(Xi&RS(xhh$>R8Hzga}pHd3wULM%>by9!S_`P@}pmNcgKk zwe&1Yc+sFjUDhP*G^oowTM}M3sKPEg6W%tc|LMFp;a!6|n7S|FJ%jos^}U4m4XRI< zj}rD9RKG4?B^)p)iu>50DBVGWYSZ}{`{xFAMdzalUl`PQ)aWaNI@kF`!q*0MqVq2a zhYji=%6ZhFI(1HyzBQ=(p(R3PrF@m}oe?LYoIe;;kCbx>e>bSMU4BXUhe0K!>`gdj zP{WYJ&j!^3^EN`cQ;sJ5V#MvaNlpCKpw`^fB=I+cdiJJr>luT3KIO{9vj&x!e0Aa< z2Ia<#`_rJ#VOCw>loBg$dzp=F&woN4;Cq{eY;M>1Yw+2)D`;o+5PP-JxyH=4ol^_h zLc~e7@+(E$+l}!4yRBt2q873hcMz2?DE_;XWP6-b_r?sV!XxCiO&WF6U;5zRF>TYR zjK5UcB->7n>eba|k!^2i)Brp+C)?iFs7IIdVT$b&jarvGG)}R7txrk zA<<&{r$KoVtu|M4zE?zCTB6MsZ&1Aw?Y1OA@po`yZ26oL@14ci)(eVdMGJX4RON~V{Nw>)NP5E+m>k5U0rdmvTf0+Wkem-s1Eq5LNisP)y- zL&~)V)lIt3(#|%Tr(4A0RxD1u&WMX!u`;o}?S39db$BZA2HOEni8Dece6EDbB2E*X zY`r;kZ%hlkC)LR|hf{~ub4&ZMPPWCGWV1(XmQJ?ztwcKd4W*MUyEReb8~~m8)1SE3 zDSG1i*~A1bj-G&iAu-XQ&S$)qm>iWZ#fWqH_9b>UD7$ZeVi$utpYe4f9=kA%7`TdrdX;743UR1h(5$E#7B=t8ayDu&YuYze>C|xKj-Ebq$<+~;lW>IRT4-cFqKq}-Tt0sihM|^&-B*w_(V!?lTxproO*P_NzTzYt_KkF9 zNiz-Ve8z+%Tz;9-;fhI_G zZBXYk-cEWpD&6x&oXdA0>8}Q5_kEtU!=R{sJEPLQYQ(vGKP2roD7)|1q&E%fd`67t z{it+*GvZvn%RL7S%I<67`NW_ozb~TFeQCtGeC<778 z4e|VDPH)24(l%;Zf|7ewdJ?YLpl+P9u)`-EB~IUs+PD zK~cXqjY@Z=5$E#F^fWgp^t}!@z2V6+C~D8#sC0Qo9LAX^-=OTiFFl0@MfJNS zD&0^cj>hLOgQD?SY*3Wn$f$Iqj5wF?gs04)?7lOeN`pF|;YgkkmF_P_oXgiVd9p#- zeXWx3F(}IKfv9w|jW{ajT!W%=E-)xcw9UD&0;aj^@KIgQEGc*Pv*;{7+Q6 zcZ@jd_xB8n`u%SPMg9J1RJzZMIG1l|@)rhW_l-{e#-Pq;{3ZGCQR#j(;xLbre=;b$ zZ+`M=gCaZlM^w7=MjZ9u1%smglVc+D{k259Mv3{3Z#Qc;+2vc6>@X<1Z+&tjgF2tF zBl+^EbXOR0)bGs^PB$pbqm=BZbbXCDmk;0PGbp>SX-b5mH>2{R z(gh4jm#J&a=QH9{+eM|j-iUMg=EZd|C>k#j>U>6r)Q(ZX)nzIqkIQb7G& zqds&`O)5}-&?tQCA!)Gst43{*4kU$Cxee{v@e9BFL(&Mfu|@@~mwQI5Ej8)^TYJy# zY6p#yV}^LfsW)lV5Os{FMorhK6)4$6HD9CNbI$bKsottliS8#ncdNH))F}3ZXSzB; zqfSaYJ@=_IG%8y;;F+y1)TqVQ14;AMl^XTF?S$t+b%RD_#WYP`rf%1$_3DA7mFnvn z^}6G7&l>e_8uhy~F?pT(wMGqc5Ai&$p3tbr*ci`7^{hrUmk)ThsJ3fFyDV3RCO@xU zrctk0XC}X>w$`XKwgXA8syAv>Rm`g7*VLOe>Tl}ho;TDijj}lRB=1uTHL8nii06H^ zSfi%7PbTkID>UkD)+*(IdZ$M9kvpe+qTa7jw^=%;99EZT)OXgZl;i4S8r8;LmGYaq zS)-Q6JeDFkUe>5T)W=esj(r++qw}4VrjCy_YPjp?l$MSo8uhe$Ufgw#lNxoJC8b{H zIL|3DuCI5*wB_xBQQq!`>m8l0B}$wP+dEP@Md!xesqG#8IrW`HC&l)TVH!mz#rBSJ zPSIJk;)eE)?>Qy3+~D|$Q=}y`^#(`#c9etAa)aYmjUp{KI7V|yJl}JJ!+Tw%EH^rG zI7M1=Qg3vu;FQpEqhr5Dk(L`Bp9x8nB@>jeJ;K@~XcV1V`>-T~BC8Rh&Sw;)CP$@9 zF(mPxu&c8{*?ogkZ!#!K*EK5L%|;xpYTXTr@{3Tks`ZRY*UOM}`6_K*gQEQU7!;-R zfs&XXZ{7%$nQJJ8Yw$jp%$`I8n!^e^hhG}%ax9F_-a3E&y%cV92WcQZil(PF$D(Pg zpKsN4nq!6L-~FV&XuzfLiyF#3X$8rwSVU;%n8V*JB*_i^NQS}^tK{-+`%;)t*76b@ z{EvI^31$3``-qI-3wa7FTI>q6fW&f#6J|U}ss1*T!XhsrpT+A^w^Wz&ROS*k3Q^h! z%J?>b&e6kE7n#e@7epwwF2|ggXh|Wt7`=x76wmuka4yE*!g~QXD{q%*D$ab5`!9_E-elEQ@?Mf;1+eIYoR_Hw4AJ7AWNJ@^=_?&tVsE>-e ztRt-Az6P|Z}Uj3&bgRX{}Z-R#lq^PJJNK zn`Rl}>votVC46s2hPJ5>$j}fwm%b5w4Y#yng{53%HsC(e_6xV_f-{kGBrYlJ50zHI zm##=>73Q+UHa$vdzl42|*xoUbFuu$Lj@e!bPF*`je7!Xyu{x)yj_snF{@>2x|F0}Y z-MZK1h!!LJtnV&_t)|gvp>JZ<;)^|4Wij!^=&FmYy!zO~>Ipq!)x$S$dg=UVt1IS< z&{MaBV&(nwVbT)`(|5&)Q&+wr9J8LAv5r{S13t0|6S05B|2D)ZwX;^4WRaSzB74%Z zD`O6J?f6KJwKdSUohX)2W;aiYmW(br>5ncsX{#$^VSnaE^UX5R8X8h-d`Ass!*|p$ zUz(whEc6{U)Vk_6s`d9}RO@fBM#u1WR`Inq%Kbk}Wo{qQQ=*O+Yb8;BTDc^aJ&Z77 zIra7w93dHrl~^yxi+!>PV|I@t4dynnah(DMKYJM2v@Lw+CQ2yuTx?v48Xd!)T@5|ZqlF2+Iro2J-PEnwJiaFpmQA2pat6kj%r=fBZ9@>YuvM5fR@S44G?-(F ze{r34bIJ6RJk4mCzWo*z#^dPIi1PCc{cAae18t9#3>*W)=vTA1VKCe z=u-f#r+SW*O5qx?vS0<#PYsmH&d&}p{B#iAr*%tpF;3mminU&pw(gmtZrMmiKhe;+ zqhTcx`OfAok8kf8Z7aebk03pfu%h)#L{ed|nPjNf1joV}^SN0&t%b{5d901T=hwh; zigpvF{ddRtwS%Z$Q_&_0+s0ewDn6&oeNorK)BKh3RXj>1Y=Yp>dL&jNeLWJk)I8sX zq&bxcn{yN=h+lC|m)I|N5q5-TnF-FXXg!&|h_jo*%CSqau#MeFhBz{Nm+zu~<+~Ii z`8fDOgT9Mnu#>t@q2G#=rp)fds-&=~+`7KIgk*#^;>*lAkvNsyUJ1#cVfihr8_H>A zLcVUSi>K-i8C}0fCFJY!h5TZS*!tw_@`ZeA9eL3Lb@@V`{^4`^^?F-cJp z8l~7T@zM1{HHH7(`M7r}wVT+tQ#g8$Z8Pn+^}RjGM8dSsr#AcuD6uyS35Cu(`Hh)* zmi-g4GE2`R`K8b-v0q`YYIA6vUHT}U9Y|8wwvNv)^ZtL8schnoE`l->cWaS*HryC+ zZGuB#y$q4kDy%=sY|-*vT1>f{%U?GvT1;qom-neC^R0X*W-jeyQ)wf2iP1NTk=sSs z?VG72zradZ+5g~7WMjj8wac@ZpLwar>D$00Pqxmg?ZYn}yN%mA+Py^Is9evjS>3c^ zCx0=%&?ZpWF5J?zR#*_dW?}v?Yt87-jA+|Ga1xZ*(tD^3b?@TZpzioK`7MNWM<=m^ zK%9bMNpud4F`50CLoHB>J&%PYU_@EjakQ0%$A|&1>W*PM(Im3n>c3$&;2)^yU5GTnNvo3NWaKSVoiEcE_W}d z9RJ4G7cmPcjJdR4B%g6}6uUe<2pMEI-Gl&U9h zJs(ilaGKYs@nVwC=5uWU%4uOUfL8Vu&vB_tyR{P*O0|J&AbEwCN@A&KC7IFxI#k#m z$Xl4Vlq7HLO}GeYWp;?C6?cPO77^ck%VZAAuJ{&QwwKIC;mM%3B|~N6EX^`tNHe|WZ8x;rjk6oO2`wZ=#fZx z6lOZ{&TV^IU*Zqs`@`a>(vr1&Cy&bWnNeE3obQ5TVV@iPNNGvi8`-tf zKGU1{qODHyn;enj0^WLZIhC+(E16r5>W*Ioj1uZK5^Y5_(m5jcRlFsIh9i803(Or( zlGkw5!*XltM+umQ_m8QL3U6(N_oKr5(Hx8KRHH8>#P-b7_(=O?wn$5{=*QO7kMw1+ zd+=T_l}%|avp2Kr*NlEdEcy|89$qEniBt4QBs>c5`SLn~-!@%@C4^tE7G)s$fqn`X z-(@bX+?w|z%JZ3CT1Iu0z<(DU>PKBZy0mX(D?F`Yq(wg>7tvPeMmmm6T@eTPa@b-Is z<%#BN-=-Z#`F?}{J`l;5dNb!fxi#&X zC9ET2B%r1jk(3}QdimFfX*5n+L_I6QR}GDXFWjw#nap0o*E{gF!DXZ~?okR;t!ckR z^D!8v9`OT754Gfr%V-WhIFIb`#%{!ak*9rkIL!{Uk|Fu{vWT{8hEu)fE{L>eu4YLn zFA7J;_U79De;Y`4>_4@Em+_VKWDZ%IMfe{Vn9D$!9l(EiP}mdr{}?(aV<5?VID`6B z=hOPweMLm3hZZLOJtqF$Iv@Qgtl!BTN~K#-niumh-eh(>O^j`_3EoF8#lHpr%|d4P z&Z80d;5^cHiSY?-VtkUk%;gn!S%}8%pvx#Ng=H=5nnp6sfC>u@r;@xgTraK6^6|eo zur}dbCb8WZ)%yB77b}9ohM`^-_H6M*`A9Vjts%3ye7*j80O^0@?O3Z5UE5NM5?dR z0(dKCF15qQ%SBq!7CSIfT1ustgla+gk|pU1YoptuZoDL9mn8OiUn*PgK2c%xP9zq; z!tfoYIHeZV`L$~d-(A;5H*P0nMtp_M;pd}wah9QP{r>OpQIgh-|4ICAkR$5yG|tq~ z;Spit)WzO>e@^#`6ie+B*ONv<8qPZurgDn#4g6+I{HkdFt!*|=84@Fu`STS@z0X(B zs8E(rPd$@q4pYnAF`Qu*oL*F$U+W2t))HHWeW1(|{z9pmdCBsxTtjD&N}S7VEW3m? zLar-4+VfJeHeP-^%1^U~Qpr4( zQqMCjh90yS*=h^f>eg26)O@MfNG?>KT76+EA=!Cx>e03791Aa}RVydS;3<(Mq|H2j z^iRVSc%>^2t)NYqZFupzm|LD| zty`gg-R5*7VW~CdsV^dYE7xXg;K-->B5pSHR@FI?R;8IvGMAh|yv1l`6n7)Kw#Xid z_@=U<-H6iwov5$4W2vQ6LrImTwOU`#*--w05T?%p(cVhMBNLDB!6Unh5^&**Qo&QG5VC4UA*d^+5I&oa2 zZIKJz>eQ8q)Raa7X^?pfE4+m-wc?m-{qI>Jx^Jw{3Pt#)@rkx=$ofn7UGf9*PBM{JjjZFuZ`g>XwcD!Qrbdq|8qbl~$Uf))Xw^1GQ3h69)0mIq zN4GOcUedPkv~{)pdo##9w&`x!R(s!Nlu*o(h)krXBIBQ8|MiZ`T;_(3|GXN~{15!9 zqPJdz6S1Xa8XN_}}G1z3|^@ zXizyB-pZ->KD+_r@V`iF?rR1;(fe?+wDtdL(6Cbdr)e);DluPZ?$a2<6H^#t7UsYS z-O9(9jgK)q##qB8>7IeC4V^|WH6QOwms-=!2IWh308fVd$W|=I4V8_LYCHecAcmdw zk~X^WaNx#+M$vzo*4!FYHqu<%R#4wv!dfDBYCQGk)OboulF|1+tGkc}LcHDPi4Nn$ z1dfH>2DGv=Aigm4AIi{P=r#}S+(?f($GW*hVrd2`dUZ=xJC$gwhSa*Qq$vNt%h!APUzg<4?IZg4;_VY@L%lU>=V-3= z#qu(brTX%!t@A%^jfRi;+Bw#(#l^~SG0BU!WF)VK&kj9zbB)9}jA0`&M^qLDI#_8v z^X0!uE5?;R>&2|OSiVkHQcv#xTNP`Dwi?_}=@w0F5s5UGBwK3X&Yke}f>bZ>9L( z&=bpcuvoTN+X}Ry%!K=ao!DVuQ+AAV&T?!nQEXR^ULd~92t>Y8 zr?g~tkj=wCU^^yFpVA%Q0dBFZ558DQZ|ski=$plZ5zb|^fU#^ju#n>reDC4H6d>2H zO7hTBc1jtvrVQ9)R3&i9f;%`)<~SWVX2EP87O@ZV@FN@_=eUJ+kXB^A$W)XqlS!66 zL*Hcmd6`uUmA^m#ntKz=y#wE4%`Jy(K4fhy?_c{3(w<+#BoAa_5%z^tsg32a>Z_$w zO5ePW(n0=Zjt-WxIw5l$~8^z=%T%48|vl*{Dl3!2EMl#xT50ZY*We#?`Ac)1vO9rRq7k^tO! zZ+CgD<-_81VC)jVyj*(z-U9I7nlS*_qSsh(4%bYOCs}^FYce>i`c8v}Q$y~9&g+)U z1CCj+nCJ4a?B{&ayb6+}XF19|0eE4`E5JAJeFHeB@?GF}^V6i|QoE7gA?%t>;g@F+ zUVV3(w1&4se~Eg(jr>O6v+^{{`x#cHjr_`hv+^uU>pOFl<!j16N%>BGngvo5bG=Eu|w4aa6{nB-dC49A- z{^!MEJ`(mzJMeX+{nCDXjR%tBZ5YW#xh*XnBx#7vvX%E~2b90PrMYGAfQgnimKTdB z17Esp8gR>9_kmx!W)8w{7C#6q3p}KpmCAdSThB@}fjjtUIV;f!kudUYOp*_EU1Hr0 zep7_MtbW+qLAnKBg;05{Do>x%&2~_t|9#P1j$PRYNZ;{Mk;-dpBR{ab(59koD-r%F z<8B-J3%%y$X-_GAW-YUM<>lia1ujBeyz&#P9z%E){&8X(%aiRk+D<9+SG{37E3F#% z1Hu=k{ASy4q3`SMx6t>pI!G<=8f+gcm#!(XA4CbqfKOk}@^JlBW||$Z44_eZ!}6K- zQ_8A=vpFsT-mn~Bu|zvRWuGLsSVrMPU7taiT6-Grg=tb%_+fdPL}fdrYziMh@Au7n zjca(%zR!~8Jz$@PZ})r+j@oOceYsT1M@|QfoMU1nTM9GdW0p%d-`y_elwyDAfO6LI zUf;ek)8u9=1Hd1P1^}tP&8^4s!ki;nI#}Q6I~((T5bvqd$rCLe>xC(|$F#9rcjsDl zq2=~b2i5(`58gebotsh{soU(kE)6?O% zepQt1IExV&c9h9i&@8r2vR66EtoPWjLwH`{T7(}edg5x0n3UisY#Yl&L5+U_&jAo# zS^8T7&cRyRQ$q$gr&)$SbjaBpJ%#`IVQJ%ayJ*zmDGzJkKr@#IJs$5`j=Fbrt+&o{ zrMR{t+!g$)aJp+2=1VM_C2g3V?eaqs^UivxYo2Q#WGZd@fwB0)l90)nRpdH|*deaN z*7oy9xK8odW8jPihrXJ&M&3Q4lpVG%#Md{s%6Cn#be%=)c$Z|OS+GXl>z(XcFE2+= zol>eEUG3V3{ym_06dLCq<*OO{P^!PJc;9tO`E3b}lO*q#kg-iZfKghMd&JcNW23!g zD{4pj3+Mmc)dZSjnQA-K^`vVDAF+q6p&7p;yszJ%t~Mw+W`Xi#q1D}ihdU@#whl_> ze3!coQpLGD@Uk7YJ~X4b`>=J|jMm^B>Uy2q!!@r#svF%qto&)O z5$s`v=m$3h+_ZVh+6Mg@cULsjStE+0?$h4*TghFCcl-l*-bL#jiv!_L^~hp)w(f_ zZR}yd8QGY6s-p1@c?U-RF^(kPlr;y!k|-UP&TQOVc?RWau5{yJYDtgs=8CX`+VIiF zYj{o9a~!KITKP)jvC5nNJ&h-E4P_`>ESsdXuh|C<^~)rs?aB`jPFnd9kZjH*W#*{Q zk?Mu6-vCS390wNV{@Qq}ZEl})jlFz+k@bj|sTMYjjSEw5j-@u=#>ZiWdp+l`SFXS~ zq<+k9vK5Hgp-^epD={0={AA$Ey;|V= zR|(7U6)f8~i)|K3E?pq8{kENbZI*q?%B}+-b4&ivI4ad>VA_a^xDF@}rRsrysCyXN zTCjt*zh>SQchGh^lXh7fCeMm%V_62<+s1MS!r1v{&I77{!Rp3W771%#cbpkg+5MNr zurxLo*quEH%;21C&dK4NLe3e)mLhg2TLB!-`K4?P!lT&}z;d<$SjDygYuGm6MD`+Z zGJ6#`mF)%2VEcggv-f~=*oVLc>{H-k_9buy&t)~wcOBRN6xXnkr`p1Ef1Z5<$(On0 zE-ty3OCDn1gMXBrxXi(RV5blsE>XQoC92nG>7T%I=>o7yvf$rC)<`OFqSOdDS-K23 zRcZ#DAzcl;U%Cc3N4g%kK>%q;9~~Qg7fo$p?H&>I>W`1%O+mLg4e# zVBmIX81QAO1h`8Y4cse@0lp=T1HL0o0Dd4%1|E>60Y8=Q1%4sT1|E_Y0FO#bfImnN z15Ze+fG4GOz|+!t;2G%|;5q3zAd|NPE%GbC82L4zOMVj=E58H0T;30CCVvcUDSr-Z zEgu42D}M`YFaI6bN&X3#B%cPR%4dOT@}I!&veGn$^_F9R8L}IgEyn?KmzM*#%PWB|%WHwV zl2MW*ODZtc(hXQ>=?ffWDFzO;j06t1j0Kij?gx&xJPItgJPWL{yacSV zd$Te)?8lLB=w)0dkbNO9d{tHV!Ra}1!FWbbJ>!EovFX7afP6*H7rMjP&YEBIOE8E3f^D?e^1=qYf<|gphasE?W z+eVICIOln;c{|tnatyW4F3#V}>;4wU4>;!l*ZC>ec_^kEbROmWAGo#?F|-PtvArJRsp8cDqvA*6^K!(b}p61cC1RPz~w5{w3$k)KueWYfz~Rm0@tdv3ba>y zBd;WtdL)%&8prM`Z(G%e*bMcbh|N~Xp694!&+}EX=Y=ZS^Fb=v^Pwu)^Wkb=$d{^Q z)kmuVgv-@JV3j%;SfdUDPE<>Plhx6{sp=Tu43+Hv{VLi2IV#!z1uEJ9#VXnVWh&YK z6)M^P)hgNlbt>8ar&O~48&$IZTU4_D&#Pqrx2t6TUslQf?^4PB?^VhEzonA>e@7+z z|A9*O|A0#N|5KIh{}(FR|3fO-|D!6|{~uJc|0h(k|0h+l|EE>5|7TRP|L0V)|I9)5 z-{K(qALAhV?{bj+k9Cm!zuZCgznO#Ve@h41|JDw&|JORm{`=9C{ z`=90@``_I`_P@7-?0<%X?0>d{?0=4f?0>$4?0=zy?EfGK+5e#qvj4*!WdBPYWdBDy z$o`i*$o^M3$o|(j$o@}sko}+RAp1YnLH2)!gY5tP4zmAq9Ay6&ILQ7lc98vF<{Pkp2I{LH7TUgY5rN2igB09Ay7bILQ8=bddc&?I8Pq#zFS~oP+E? zbCUhHILBcW#W*JbUCznCSm!k0<<5J7&78A=Eu9O1t({AN*E$~tws)=qc5m<~ZL0<~#QT3!NVW2RT0n4s{*^4tIVFEOq`J zINJFWu-thXSmitmta1Jcoam(0YO>P~oa$7Xqy3#R!26wU;2dWhaDnqm;9_S>;4)_$ z;0ot;z}3!UtEfm@utfX_QKfZLsZ;LFZD;4WtnxYs!d_?Gil;5*I{ zzz>|GfCrrAz)ziHfnPZ903LGQ2|VhY3jD!26L`Y;0Pv)9KJc`2G4PCYIq;lwC6Kw+ z0xhnmfHAI3K$q)TV65u};N`BDfz4dIfh}Ec09(7>243s>0NCF35wMf%GhmYIYhbGD zC@{@+4A|ZE4`6TCFTiXUtr|HlS}zJ+WS0iH$mS1qk*yopv zYh1LlOmxx8GTC(o+NQeB182D8tI*~yvVL=1c7zwWT)@RHTECXLXsubz^IFIAdWz?@ zk>~Y1=WplympOkI=kMiZcnf7{#A4k|u4=?Cci#YP=1vE;bPoWwcHa)X);$&2-n|sq z$^8s4$-M`d>i!g%<~|PW?v`6LV!hohfEn&oV75CKnBy)5=DQ~W3*8R_2e~%@hq`wH zhr2%nmb$+Kj&@%Fmb)9Z#E!z<4p`&v4xH!?0w=pi1E;$02F`Fl47}gH6*$NJ7I1<4 zbKqk4N#HWK{pv<+g}WtiwYxKLox1|~l>2euM)!-rE$&Z%&$~}vjj`mWRrrvb)|8`e z>aQQ%)L$puvoSzSVJH}WXvs`mM{6}ya zAwQY1UgX~Zegb?a8{L`w%h*`%w_ppn-P;k{!dh{^8@q}7>CDUh zjx3A&{n)MC53-TmAHt?_zl3e${_RXkBR$pZa_-;BvbjH9)7y~^u>a{g6F#L|tHqN~@#Jq{r@HRZ_~a9xeBvM0 z_>v^bVTDh6+Gun;jrMAEI{Xc++0A&Ug3A?a{IEvP)cnUae-Hc*k>6hUZ^M6GG z%O5_`Z8e&FqT6YHy2dA;_&&`KYyLX;RKGp&shs4K9Qjm_wid1Y@QI(U(d6qi)qAbR zC!hF7G@5*!CVlj!JIaTAo*oa?5S4%%AYkcyFPrg&SvfEmXPd@SYXf*jmAJJ&?iB_=C zP(8^fx~)c&PjtFQlTUPsMw3tU5sfBar=3z(x3zd|ko1yI{5={?zD`sB90pDERl=Ta6}Przu^!#wVZnB^ph>PLtdo&~2p&-N^4Kt?8yXiGG^LxJwvx5G;vzqh`y|&EwC=Z+26s>A@zc3a{1Q%Y>P|kZdJbv)Bb;BqyE?Ug9spLG%5Ze-u9Hw=@-g z+bcyol)$I{pRW09HGg+A5x=^*7+<^LQ@^ynO3-au2->Up#hO1&^H*#BF3mrr`K+Z# zSBB@zs64YYzfCK_pW0gZt2N)-M$o%8|IjspW^IK(ypt%;RLx(l`MWf~O`?$N4WH)8 zF3s zQ-z#Y^M`BxQTV){It#xy-ZLeA!!^G*7HCdue(NGZ_tyN?qXfN6^QSIm>?&n-8u`!R zzwwa&67;R+{Bvo$H2)CySErFra^#a->m`)_T-tE%H|jbSKIOk!^AB(aMR$9$83)OF=lK0?{F93Bz0@NUES$$tDEARB7CK~IlejE)u7wJ zZwJ=_t|Q`Z1TPW32d*=CUEsPR+yj0uI4{Ckkntnj4=xvU0Dgb?LGX*<-wIa(Hwt-< z0k0bI6A+$)@HFu6gPRMt5cCqnErojoZWY`b@E(W%r21U^281^wycO;RxL4tJ!|eh8 zP55uae;@vSxDOHj1pYy|&k_C_{$aT9;eLWU1@{a1zr+6n{ss7wV{^RX*c5MvufjPI zZVbN(++_$ig=>y*3%IKhZUxsC;dXG>BisS*MuZdLJP4=2bwRi*TsMS!zoaSb~<)IW;eon5dS*dKG5&N-w*c@+$V@T2;S%Lzl1vs-VwNO5k3b0INXm2 z{{op`5&j+SEa*SrpND?|e95^r{(2|Ii1X|C&hWdy?*YG;b8~z;ToznE@N&TmARKfa zjt?PCG5iwHV-Ow>H{E$8ej(gagr9VNAHM2WPKS%n* z@V^Cp4DrW7|Ag=_aKFO+4tEyrJlqAi6xUDjU0tW*d%#U|ZH}Mr+7y2u++2j`!(Rlq z)^#}karo=uHY27w+N~5juPPnd(Fc#pl;2sD4B>YYAH^bisw;SO%;XZ*o0(TxxZM-$U6+FcZVlX8(CguEfWH;)6@>S}9fA81PKkvcxE8TH9c|${z~#n57hDP4 z+StSKPr|K-+XVL<+)LoU8jHCG_a@vv(C@;%5BDMHkKjIs`x5kFxbG4E3H~qee}(%4 z?mTFz3F;4LZ-V&+*BGt|=%#Qj5N-><9b5;5JHmP3Qb2cs>k8Kmt`~S-xGXq7=v=rU z!b9NS3RjG930xW6?Vu~+#==#@O#p8a+}&`~K+lAmjqp;qRd8!SKMuD6;pgDCA-n@_ zAHw_LK1BEvxGxd@7Vdk5kHh_r@Oiik2rF@$;;nJ89dK@ho4{R(a4Yz2;M&1;fa?g} zjc_RlcZTZ<*8{E>cwV@Ea4~p>*&aU}HvMCqi+*7LV5gZPHIc57Ql;*aSIU-#NW-OS zX_9oWv`AVlJuST`{g3pS^mpl`bgTTdd{90qU#YZHI^v0gF3M2lc4fSBzcNpGO4+Pz zQ$AG=DL*R?%Qco{OPZyZ#b+t7jIb=VthQ{i?6Z7fIc7O)v0LM;*IHApy{)%e$6BXZ z@3%f?-DrK;`o8ru>j~?h)>zv$wk+Ea+h|*jZKiFuZGr76+jF)Zw%xXOY#-VV+P<>= zX;bY@>{r-Z*puvC?OuDneVP3^`wsg-`*-$pc2~@0F`Z(%#q^FD8uO_7th!y@qrR&i zS5KZR?gK=x)o{QTV7mp`0ufenJ?eOG$CpXi?jN$43(rAf zOUkD9r~-c6tp<2Sw>bt{R<1_)O!sxbVe_5>zWDG)pjpNoe)i!7&@VxMe>|Z%0MAVh zW0&J;$fj%ryMmRlD_JRP#zx{v%2Dhpb{lKKZfEhV98YpqvNmiiN?MJQ*5FCbzp(4s z6qI->yAfY7PR1|9DfoRj6~7C2#@C#0Vh`fk%f+b43e@CD){CuYz1h>u%QmwX9DV-!waOL&~ioOyu4S+fb3dI`5KB5Yhq zxP1ZP9k&zCznRcKmGFvE!o~{;yB%tW5* z6xZgb(vx`-S5c&N=R{0Ds0Z!XZP( z0T<;=0DeAs3hzI`Racip|t z;Iv=yG{PS*dImUz7-4R=kPKr$lDAhA<_#sualGXP3eJzb%pz^aDw0_`je1t_ z0}F{$HJdPY4q@B`!fKA!W>I(`$1vApP9@}pq*=zC`-8l+BHuShP&+@v@sH(HhF>a4 z|J3+vP##iV)uql9J+iA8CMtxr$)T6(tMOlgIluli7U+g!qYK2GY>kPZ!EguAn;%)L0S z8rK*6(|@6|-NMJxS4$}Tx7>X2Tk%=*(Nf|FY_)6v_qYqnVS08qy2 z<^*T9Us%{YApUz8YYfhODHfasKpE>`6L21r;=ox8l(8ya2F^dF z%fa~rC}WLm3eFAk72tFP%D5!C5}fsNGjN^;%Is=rieWvJtH9|Al(DL|0JcJm%v!^j zvA(teUW2O<{MSvavNF3CYpje=2jF$ABk+2xw)mf5ED_j&d4M-y-IWp78Q6(+0p5s} z7w<5#Zoov=1DJ&MSBA6~n2fboMj9V573(kl0~qrIZ({v`U9cMCKTTl`k)fqO@Mf&V zGISLIyR(779(acW|Kk^LX2{TcE3h{U0lnBq$XMM=faxp@%)l-}MowkGOzb4^f34XV zU^aFWGIAXY?28?RjJ(GKbJzr6E}I0*V|M}r*kjH<#^Wv|Bn&7b{RXK*MU2+ zPm_^NkyrB=2@n+3ope!8$D$=*WM$-4dmeMiETn)sCm5u{DNVuO<4yVnSS-JiF&acs&sRX-#q?ya9->oJfrk-U^iQG+z^h zw*h7LSLrf@UjX9!bW&4Li1{uDfqms7aQXo;m*s&7=K?X8<-rICfSAkj5QO^!F_-0A5e@<| zH{}q*w*oOYs($m+~gC zJ>EaU*Q0<~zm&HT?g+&CrM!#qjX;bv<$YiZ-ZsKWQ$7TCRXzfyE1v-GR}KPaDW3x$ zuzU%eZTT8$=K#?!mct0o1LCW2mLtFgmT$pX2*g(}E#Cv5w;Tih)p{KGg7rt>OV*!& zFI!ImcUgY{?zaAlUBFSSe(|svJ+KD9EEB#b_o6ep#fSCmE~^h~)fsCqtWQb!=vRO}m(>I+FE^qxV&~U2wax z|9TDgFni$k!o3bhZ)^vwa{h4^ryR#q(#P2exbLjTF&BgdlGIF+;ea{;9iA$9qw(o{cxYaeF=92?ik!paKFO+0Vk<> zRy&*`veXaL5#=TsJ#=9d@OjI10tCazv7O{+ryKS zLWs>OuN+Zao>N(Jdvs(9MfNNSg)+*jtICTfrI#01S9_9DiQS;qMl|w$2BZ4*K$|^?X7mq6*<6%|N zwW??QU82_Yv}STcTN7u^^2&;EXrw3k5;-(fT{6`9bJ4BdoD>lZ`tu64V37z8tWFMr z)3A{O!9eMV67tH!z^u|T;J}*d;wlQ{g=<8>TY85G6oiY*5z#L^t|Cl<;OKBU`MG5! z<0`8wN7f_^EUN%Lu)MUm3Vu;_cpQm^OU85GUr__Hu(C)5(km4jQ&y8(Ts5G$ ze0;dDQi~Zksft8VF7J2>G^|3Y$QolmH;{?p@6SsQW^R=w+pIL)*Qfg18xOU~@E7 zFuM44+bud?8?UvP=637M`#U|`Tj05g2dTfcAoVwb4XXhJi)uzvO6-{6(eQvLh6fJ_ zM#HovH#FOnh6<)ORPd�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�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 literal 0 HcmV?d00001 diff --git a/SecureDNSClient/NecessaryFiles/dnscrypt-proxy-fakeproxy.toml b/SecureDNSClient/NecessaryFiles/dnscrypt-proxy-fakeproxy.toml new file mode 100644 index 0000000..04168a4 --- /dev/null +++ b/SecureDNSClient/NecessaryFiles/dnscrypt-proxy-fakeproxy.toml @@ -0,0 +1,344 @@ + +############################################## +# # +# dnscrypt-proxy configuration # +# # +############################################## + +## This is an example configuration file. +## You should adjust it to your needs, and save it as "dnscrypt-proxy.toml" +## +## Online documentation is available here: https://dnscrypt.info/doc + + + +################################## +# Global settings # +################################## + +## List of local addresses and ports to listen to. Can be IPv4 and/or IPv6. +## Example with both IPv4 and IPv6: +## listen_addresses = ['127.0.0.1:53', '[::1]:53'] +## +## To listen to all IPv4 addresses, use `listen_addresses = ['0.0.0.0:53']` +## To listen to all IPv4+IPv6 addresses, use `listen_addresses = ['[::]:53']` + +listen_addresses = ['0.0.0.0:53'] + + +## Maximum number of simultaneous client connections to accept + +max_clients = 250 + + +## Require servers (from remote sources) to satisfy specific properties + +# Use servers reachable over IPv4 +ipv4_servers = false + +# Use servers reachable over IPv6 -- Do not enable if you don't have IPv6 connectivity +ipv6_servers = false + +# Use servers implementing the DNSCrypt protocol +dnscrypt_servers = false + +# Use servers implementing the DNS-over-HTTPS protocol +doh_servers = false + +# Use servers implementing the Oblivious DoH protocol +odoh_servers = false + + +## Require servers defined by remote sources to satisfy specific properties + +# Server must support DNS security extensions (DNSSEC) +require_dnssec = false + +# Server must not log user queries (declarative) +require_nolog = false + +# Server must not enforce its own blocklist (for parental control, ads blocking...) +require_nofilter = true + +# Server names to avoid even if they match all criteria +disabled_server_names = [] + + +## Always use TCP to connect to upstream servers. +## This can be useful if you need to route everything through Tor. +## Otherwise, leave this to `false`, as it doesn't improve security +## (dnscrypt-proxy will always encrypt everything even using UDP), and can +## only increase latency. + +force_tcp = false + + +## Enable support for HTTP/3 (DoH3, HTTP over QUIC) +## Note that, like DNSCrypt but unlike other HTTP versions, this uses +## UDP and (usually) port 443 instead of TCP. + +http3 = false + + +## SOCKS proxy +## Uncomment the following line to route all TCP connections to a local Tor node +## Tor doesn't support UDP, so set `force_tcp` to `true` as well. + +# proxy = 'socks5://127.0.0.1:10808' + + +## HTTP/HTTPS proxy +## Only for DoH servers + +http_proxy = '' + + +## How long a DNS query will wait for a response, in milliseconds. +## If you have a network with *a lot* of latency, you may need to +## increase this. Startup may be slower if you do so. +## Don't increase it too much. 10000 is the highest reasonable value. + +timeout = 5000 + + +## Keepalive for HTTP (HTTPS, HTTP/2) queries, in seconds + +keepalive = 30 + + +## Add EDNS-client-subnet information to outgoing queries +## +## Multiple networks can be listed; they will be randomly chosen. +## These networks don't have to match your actual networks. + +# edns_client_subnet = ['0.0.0.0/0', '2001:db8::/32'] + + +## Delay, in minutes, after which certificates are reloaded + +cert_refresh_delay = 240 + + +## Bootstrap resolvers +## +## People in China may want to use 114.114.114.114:53 here. +## Other popular options include 8.8.8.8, 9.9.9.9 and 1.1.1.1. +## +## If more than one resolver is specified, they will be tried in sequence. +## +## TL;DR: put valid standard resolver addresses here. Your actual queries will +## not be sent there. If you're using DNSCrypt or Anonymized DNS and your +## lists are up to date, these resolvers will not even be used. + +bootstrap_resolvers = ['8.8.8.8:53', '1.1.1.1:53'] + + +## Always use the bootstrap resolver before the system DNS settings. + +ignore_system_dns = true + + +## Maximum time (in seconds) to wait for network connectivity before +## initializing the proxy. +## Useful if the proxy is automatically started at boot, and network +## connectivity is not guaranteed to be immediately available. +## Use 0 to not test for connectivity at all (not recommended), +## and -1 to wait as much as possible. + +netprobe_timeout = 60 + +## Address and port to try initializing a connection to, just to check +## if the network is up. It can be any address and any port, even if +## there is nothing answering these on the other side. Just don't use +## a local address, as the goal is to check for Internet connectivity. +## On Windows, a datagram with a single, nul byte will be sent, only +## when the system starts. +## On other operating systems, the connection will be initialized +## but nothing will be sent at all. + +netprobe_address = '8.8.8.8:53' + + +## Automatic log files rotation + +# Maximum log files size in MB - Set to 0 for unlimited. +log_files_max_size = 10 + +# How long to keep backup files, in days +log_files_max_age = 7 + +# Maximum log files backups to keep (or 0 to keep all backups) +log_files_max_backups = 1 + + + +######################### +# Filters # +######################### + +## Note: if you are using dnsmasq, disable the `dnssec` option in dnsmasq if you +## configure dnscrypt-proxy to do any kind of filtering (including the filters +## below and blocklists). +## You can still choose resolvers that do DNSSEC validation. + + +## Immediately respond to IPv6-related queries with an empty response +## This makes things faster when there is no IPv6 connectivity, but can +## also cause reliability issues with some stub resolvers. + +block_ipv6 = false + + +## Immediately respond to A and AAAA queries for host names without a domain name + +block_unqualified = true + + +## Immediately respond to queries for local zones instead of leaking them to +## upstream resolvers (always causing errors or timeouts). + +block_undelegated = true + + +## TTL for synthetic responses sent when a request has been blocked (due to +## IPv6 or blocklists). + +reject_ttl = 10 + + +########################### +# DNS cache # +########################### + +## Enable a DNS cache to reduce latency and outgoing traffic + +cache = true + + +## Cache size + +cache_size = 4096 + + +## Minimum TTL for cached entries + +cache_min_ttl = 2400 + + +## Maximum TTL for cached entries + +cache_max_ttl = 86400 + + +## Minimum TTL for negatively cached entries + +cache_neg_min_ttl = 60 + + +## Maximum TTL for negatively cached entries + +cache_neg_max_ttl = 600 + + + +################################## +# Local DoH server # +################################## + +[local_doh] + +## dnscrypt-proxy can act as a local DoH server. By doing so, web browsers +## requiring a direct connection to a DoH server in order to enable some +## features will enable these, without bypassing your DNS proxy. + +## Addresses that the local DoH server should listen to + +#listen_addresses = ['0.0.0.0:443'] + + +## Path of the DoH URL. This is not a file, but the part after the hostname +## in the URL. By convention, `/dns-query` is frequently chosen. +## For each `listen_address` the complete URL to access the server will be: +## `https://` (ex: `https://127.0.0.1/dns-query`) + +path = '/dns-query' + + +## Certificate file and key - Note that the certificate has to be trusted. +## See the documentation (wiki) for more information. + +cert_file = '' +cert_key_file = '' + + +######################################### +# Servers with known bugs # +######################################### + +[broken_implementations] + +## Cisco servers currently cannot handle queries larger than 1472 bytes, and don't +## truncate responses larger than questions as expected by the DNSCrypt protocol. +## This prevents large responses from being received over UDP and over relays. +## +## Older versions of the `dnsdist` server software had a bug with queries larger +## than 1500 bytes. This is fixed since `dnsdist` version 1.5.0, but +## some server may still run an outdated version. +## +## The list below enables workarounds to make non-relayed usage more reliable +## until the servers are fixed. + +fragments_blocked = ['cisco', 'cisco-ipv6', 'cisco-familyshield', 'cisco-familyshield-ipv6', 'cleanbrowsing-adult', 'cleanbrowsing-adult-ipv6', 'cleanbrowsing-family', 'cleanbrowsing-family-ipv6', 'cleanbrowsing-security', 'cleanbrowsing-security-ipv6'] + + +############################### +# DNS64 # +############################### + +## DNS64 is a mechanism for synthesizing AAAA records from A records. +## It is used with an IPv6/IPv4 translator to enable client-server +## communication between an IPv6-only client and an IPv4-only server, +## without requiring any changes to either the IPv6 or the IPv4 node, +## for the class of applications that work through NATs. +## +## There are two options to synthesize such records: +## Option 1: Using a set of static IPv6 prefixes; +## Option 2: By discovering the IPv6 prefix from DNS64-enabled resolver. +## +## If both options are configured - only static prefixes are used. +## (Ref. RFC6147, RFC6052, RFC7050) +## +## Do not enable unless you know what DNS64 is and why you need it, or else +## you won't be able to connect to anything at all. + +[dns64] + +## Static prefix(es) as Pref64::/n CIDRs + +# prefix = ['64:ff9b::/96'] + +## DNS64-enabled resolver(s) to discover Pref64::/n CIDRs +## These resolvers are used to query for Well-Known IPv4-only Name (WKN) "ipv4only.arpa." to discover only. +## Set with your ISP's resolvers in case of custom prefixes (other than Well-Known Prefix 64:ff9b::/96). +## IMPORTANT: Default resolvers listed below support Well-Known Prefix 64:ff9b::/96 only. + +# resolver = ['[2606:4700:4700::64]:53', '[2001:4860:4860::64]:53'] + + +######################################## +# Static entries # +######################################## + +## Optional, local, static list of additional servers +## Mostly useful for testing your own servers. + +[static] + +[static.Cloudflare] +stamp = 'sdns://AgcAAAAAAAAABzEuMC4wLjEAEmRucy5jbG91ZGZsYXJlLmNvbQovZG5zLXF1ZXJ5' +[static.MyCloudflare] +stamp = 'sdns://AgcAAAAAAAAADjEwNC4xNi4xMzIuMjI5ABJkbnMuY2xvdWRmbGFyZS5jb20KL2Rucy1xdWVyeQ' +[static.Cloudflare-dns] +stamp = 'sdns://AgcAAAAAAAAADjEwNC4xNi4yNDguMjQ5ABJjbG91ZGZsYXJlLWRucy5jb20KL2Rucy1xdWVyeQ' +[static.Every1Dns] +stamp = 'sdns://AgcAAAAAAAAADTEwNC4xOC4xMDYuNjYADWV2ZXJ5MWRucy5jb20KL2Rucy1xdWVyeQ'