diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/App.config b/03_RoyalGallery/DotNet-PrinterController/PrinterController/App.config new file mode 100644 index 0000000..980e7d5 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/App.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.Designer.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.Designer.cs new file mode 100644 index 0000000..54c9434 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.Designer.cs @@ -0,0 +1,102 @@ +namespace TestPrinter +{ + partial class Form1 + { + /// + /// 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(Form1)); + this.printer_preview = new System.Windows.Forms.Button(); + this.printer_setup = new System.Windows.Forms.Button(); + this.pictureBox = new System.Windows.Forms.PictureBox(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); + this.SuspendLayout(); + // + // printer_preview + // + this.printer_preview.Location = new System.Drawing.Point(461, 442); + this.printer_preview.Name = "printer_preview"; + this.printer_preview.Size = new System.Drawing.Size(166, 34); + this.printer_preview.TabIndex = 1; + this.printer_preview.Text = "預覽列印"; + this.printer_preview.UseVisualStyleBackColor = true; + this.printer_preview.Click += new System.EventHandler(this.printer_preview_Click); + // + // printer_setup + // + this.printer_setup.Location = new System.Drawing.Point(180, 442); + this.printer_setup.Name = "printer_setup"; + this.printer_setup.Size = new System.Drawing.Size(135, 34); + this.printer_setup.TabIndex = 2; + this.printer_setup.Text = "印表機設定"; + this.printer_setup.UseVisualStyleBackColor = true; + this.printer_setup.Click += new System.EventHandler(this.printer_setup_Click); + // + // pictureBox + // + this.pictureBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.pictureBox.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox.Image"))); + this.pictureBox.Location = new System.Drawing.Point(0, 1); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size(799, 484); + this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox.TabIndex = 3; + this.pictureBox.TabStop = false; + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(461, 415); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(166, 21); + this.comboBox1.TabIndex = 4; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.printer_scale_mode_Changed); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 488); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.printer_setup); + this.Controls.Add(this.printer_preview); + this.Controls.Add(this.pictureBox); + this.Name = "Form1"; + this.Text = "Form1"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button printer_preview; + private System.Windows.Forms.Button printer_setup; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.ComboBox comboBox1; + } +} + diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.cs new file mode 100644 index 0000000..3283d27 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.cs @@ -0,0 +1,406 @@ +using Grpc.Core; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Printing; +using System.IO; +using System.Threading.Tasks; +using System.Windows.Forms; +using UltraCombos.Utility; +using grpc = global::Grpc.Core; +using Newtonsoft.Json; + +namespace TestPrinter +{ + public partial class Form1 : Form + { + private PrintDocument pdDocument = new PrintDocument(); + private PageSetupDialog setupDlg = new PageSetupDialog(); + private PrintPreviewDialog previewDlg = new PrintPreviewDialog(); + private PageSettings pageSettings; + + private bool is_preview = false; + private bool is_pressed_ok = false; + private bool is_loaded_ok = false; + + private string path = @"printer_settings.json"; + //private System.Drawing.Image testing_image; + PrinterService service; + + public enum ScaleMode + { + ScaleFit = 0, + ScaleFill, + ScaleFullFit, + ScaleFullFill, + ScaleFullPageFit, + ScaleFullPageFill, + MaxNum, + } + + public Form1() + { + InitializeComponent(); + + for (int i = 0; i < (int)ScaleMode.MaxNum; ++i) + { + comboBox1.Items.Add((ScaleMode)(i)); + } + + comboBox1.SelectedIndex = 0; + + pdDocument.DefaultPageSettings.Landscape = true; + pdDocument.PrinterSettings.DefaultPageSettings.Landscape = true; + + + pdDocument.PrintPage += new PrintPageEventHandler(OnPrintPage); + PaperSize papersize = null; + foreach (PaperSize size in pdDocument.PrinterSettings.PaperSizes) + { + if(size.PaperName.StartsWith("A4")) + { + papersize = size; + break; + } + } + if (papersize != null) + { + pdDocument.DefaultPageSettings.PaperSize = papersize; + pdDocument.PrinterSettings.DefaultPageSettings.PaperSize = papersize; + var hard_area = pdDocument.PrinterSettings.DefaultPageSettings.PrintableArea; + + Margins margins = new Margins( + (int)Math.Round(hard_area.X), + (int)Math.Round(hard_area.Y), + (int)Math.Round(papersize.Width - (hard_area.X + hard_area.Width)), + (int)Math.Round(papersize.Height - (hard_area.Y + hard_area.Height)) + ); + pdDocument.DefaultPageSettings.Margins = margins; + + } + + pageSettings = pdDocument.DefaultPageSettings.Clone() as PageSettings; + PrintSettings s = Utils.LoadPrintSettings(path, pageSettings); + is_loaded_ok = s != null; + if (is_loaded_ok) + { + pdDocument.DefaultPageSettings = pageSettings.Clone() as PageSettings; + comboBox1.SelectedItem = s.ScaleMode; + } + + var options = new List { new Grpc.Core.ChannelOption(ChannelOptions.MaxReceiveMessageLength, int.MaxValue) }; + var services = new ServerServiceDefinition[] { Printer.BindService(new PrinterImpl(print_impl)) }; + service = new PrinterService(); + service.StartServer(options, services, 54578); + + } + + RectangleF getPrintableArea() + { + var rect = pdDocument.DefaultPageSettings.PrintableArea; + if (pdDocument.DefaultPageSettings.Landscape) + { + float tmp = rect.X; + rect.X = rect.Y; + rect.Y = tmp; + tmp = rect.Width; + rect.Width = rect.Height; + rect.Height = tmp; + } + return rect; + } + + RectangleF getFullPageArea() + { + var rect = new RectangleF(0, 0, pdDocument.DefaultPageSettings.PaperSize.Width, pdDocument.DefaultPageSettings.PaperSize.Height); + if (pdDocument.DefaultPageSettings.Landscape) + { + float tmp = rect.Width; + rect.Width = rect.Height; + rect.Height = tmp; + } + return rect; + } + + private void OnPrintPage(object sender, PrintPageEventArgs e) + { + + Console.WriteLine("OnPrintPage()"); + float dpiX = (float)e.PageSettings.PrinterSettings.DefaultPageSettings.PrinterResolution.X; + float dpiY = (float)e.PageSettings.PrinterSettings.DefaultPageSettings.PrinterResolution.Y; + e.Graphics.PageUnit = GraphicsUnit.Pixel; + + e.Graphics.ScaleTransform(dpiX*0.01f, dpiY*0.01f); + var printable_area = getPrintableArea(); + RectangleF hot_area; + + switch (comboBox1.SelectedItem) + { + default: + case ScaleMode.ScaleFit: + case ScaleMode.ScaleFill: + hot_area = RectangleF.Intersect(e.MarginBounds, printable_area); + break; + + case ScaleMode.ScaleFullFit: + case ScaleMode.ScaleFullFill: + hot_area = printable_area; + break; + + case ScaleMode.ScaleFullPageFit: + case ScaleMode.ScaleFullPageFill: + hot_area = getFullPageArea(); + break; + } + + { + var state = e.Graphics.Save(); + e.Graphics.TranslateTransform(hot_area.X, hot_area.Y); + + if(is_preview == false) + e.Graphics.TranslateTransform(-printable_area.X, -printable_area.Y); + + var image = pictureBox.Image; + + float area_aspect = hot_area.Width / hot_area.Height; + float img_aspect = (float)image.Width / image.Height; + float x, y, w, h; + + switch (comboBox1.SelectedItem) + { + default: + case ScaleMode.ScaleFit: + case ScaleMode.ScaleFullFit: + case ScaleMode.ScaleFullPageFit: + if (img_aspect > area_aspect) + { + w = hot_area.Width; + h = w / img_aspect; + } + else + { + h = hot_area.Height; + w = h * img_aspect; + } + break; + + case ScaleMode.ScaleFill: + case ScaleMode.ScaleFullFill: + case ScaleMode.ScaleFullPageFill: + w = hot_area.Width; + h = hot_area.Height; + break; + } + + x = 0.5f * (hot_area.Width - w); + y = 0.5f * (hot_area.Height - h); + + Rectangle myRect = new Rectangle( + (int)Math.Round(x), + (int)Math.Round(y), + (int)Math.Round(w), + (int)Math.Round(h) + ); + e.Graphics.DrawImage( + image, + myRect, + 0, + 0, + image.Width, + image.Height, + GraphicsUnit.Pixel); + e.Graphics.Restore(state); + } + + if (is_preview) + { + e.Graphics.DrawRectangle(new Pen(Color.Red, 1), printable_area.X, printable_area.Y, printable_area.Width, printable_area.Height); + e.Graphics.DrawRectangle(new Pen(Color.Blue, 1), e.MarginBounds); + is_preview = false; + } + } + private void printer_preview_Click(object sender, EventArgs e) + { + previewDlg.Document = pdDocument; + is_preview = true; + previewDlg.ShowDialog(); + } + private void printer_setup_Click(object sender, EventArgs e) + { + setupDlg.Document = pdDocument; + setupDlg.AllowMargins = true; + setupDlg.AllowOrientation = true; + setupDlg.AllowPaper = true; + setupDlg.AllowPrinter = true; + setupDlg.PageSettings = pageSettings; + + PrintSettings s = Utils.LoadPrintSettings(path, setupDlg.PageSettings); + if (is_pressed_ok || s != null) + { + Utils.FixMarginsBug(setupDlg.PageSettings); + } + + DialogResult ret = setupDlg.ShowDialog(); + is_pressed_ok = ret == DialogResult.OK; + if (is_pressed_ok) + { + pdDocument.DefaultPageSettings = setupDlg.PageSettings.Clone() as PageSettings; + Utils.SavePrintSettings(path, setupDlg.PageSettings, (ScaleMode)comboBox1.SelectedItem); + } + } + private void print_impl(UltraCombos.Utility.Image request) + { + var data = request.Content.ToByteArray(); + MemoryStream ms = new MemoryStream(data); + pictureBox.Image = System.Drawing.Image.FromStream(ms); + pdDocument.Print(); + + Console.WriteLine("print_impl"); + } + private void printer_scale_mode_Changed(object sender, EventArgs e) + { + if (pageSettings == null) + { + return; + } + Utils.SavePrintSettings(path, pageSettings, (ScaleMode)comboBox1.SelectedItem); + } + } + + sealed class Utils + { + //WTF Bug... + static public void FixMarginsBug(PageSettings s) + { + double left = s.Margins.Left; + double right = s.Margins.Right; + double top = s.Margins.Top; + double Bottom = s.Margins.Bottom; + + s.Margins.Left = Convert.ToInt32(left * 2.54); + s.Margins.Right = Convert.ToInt32(right * 2.54); + s.Margins.Top = Convert.ToInt32(top * 2.54); + s.Margins.Bottom = Convert.ToInt32(Bottom * 2.54); + } + + static public PrintSettings LoadPrintSettings(string path, PageSettings s) + { + if (!File.Exists(path)) + { + return null; + } + + string json = File.ReadAllText(path); + var obj = JsonConvert.DeserializeObject(json); + if (obj == null) + { + return null; + } + + obj.To(s); + return obj; + } + + static public bool SavePrintSettings(string path, PageSettings s, Form1.ScaleMode scale_mode) + { + var obj = new PrintSettings(); + obj.From(s); + obj.ScaleMode = scale_mode; + string json = JsonConvert.SerializeObject(obj, Formatting.Indented); + File.WriteAllText(path, json); + return true; + } + } + + + public class PrintSettings + { + public PaperSize PaperSize; + public PaperSource PaperSource; + public Margins Margins; + public bool Landscape; + public Form1.ScaleMode ScaleMode; + + public void To(PageSettings s) + { + s.PaperSize = PaperSize; + s.PaperSource = PaperSource; + s.Margins = Margins; + s.Landscape = Landscape; + } + + public void From(PageSettings s) + { + PaperSize = s.PaperSize; + PaperSource = s.PaperSource; + Margins = s.Margins; + Landscape = s.Landscape; + } + + } + + public class PrinterService + { + //public int port = 54578; + protected Server server; + public void StartServer(IEnumerable options, IEnumerable services, int port) + { + try + { + server = new Server(options) + { + Ports = { new ServerPort("0.0.0.0", port, ServerCredentials.Insecure) } + }; + foreach (var def in services) + server.Services.Add(def); + + server.Start(); + //Log("Start Grpc Server"); + Console.WriteLine("Start Grpc Server"); + } + catch (System.Exception e) + { + //Log(e.Message, LogType.Error); + Console.WriteLine(e.Message); + } + } + ~PrinterService() + { + Shutdown(); + } + protected void Shutdown() + { + if (server != null) + { + try + { + server.ShutdownAsync().Wait(); + server = null; + } + catch { } + } + } + /* + protected void Log(object msg, LogType type = LogType.Log) + { + Debug.unityLogger.Log(type, $"[Grpc Server] {msg}"); + + } + */ + } + public class PrinterImpl : Printer.PrinterBase + { + public delegate void PrintDelegate(UltraCombos.Utility.Image request); + public event PrintDelegate onPrint; + public PrinterImpl(PrintDelegate func) + { + onPrint += func; + } + public override Task Print(UltraCombos.Utility.Image request, grpc::ServerCallContext context) + { + //throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + onPrint.Invoke(request); + return Task.FromResult(new Empty()); + } + } +} diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.resx b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.resx new file mode 100644 index 0000000..55e312f --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Form1.resx @@ -0,0 +1,1123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + /9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBD + AAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0M + DgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM + DAwMDAwMDAwMDAwMDAz/wAARCAJYAlgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQF + BgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAk + M2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG + h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx + 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQA + AQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5 + OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmq + srO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCO + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKK6DwL8JvFXxQ+1f8ACM+GfEHiL7Ds+0/2Zp0159n37tm/y1O3dtbGcZ2n0NY+raTdaBqt + 1Y31rcWV9ZSvBcW88ZjlgkUlWR1bBVlIIIIyCMUAV6KK2PBPw98QfErVZLHw5oeseIL6GIzvb6bZSXUq + RgqpcrGCQoLKM4xlgO4oAx6K0PFPhPVfA+uz6XrWm6ho+p2u3zrS+t3t54dyhl3I4DDKspGRyCD0NWPB + Pw98QfErVZLHw5oeseIL6GIzvb6bZSXUqRgqpcrGCQoLKM4xlgO4oAx6K9A/4ZO+Kn/RM/iB/wCE7d// + ABus/wAU/s9ePvA2hT6prfgfxho+l2u3zry+0a5t4IdzBV3O6BRlmAGTySB1NAHH0UUUAFFdRZfBHxpq + XjK78OW/hDxRceIdPiE91pcelTteW0Z2EO8IXeqkSJyQB86+orP1P4e+INF8ZL4cvND1i08QvLHAulzW + Ukd40kgUxoISN+5wy7RjJ3DGcigDHorqLL4IeNNR8ZXfhy38IeKLjxDp8QnutLj0qdry2jIQh3hC71Ui + SPkgD519RWf41+Huv/DXVY7HxFoeseH76aITpb6lZSWsrxksocLIASpKsM4xlSOxoAx6KK0Lfwnqt3oM + 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 + ow+ZVHpIzjUjJ6nmkej+VT/sbRV0954baKPdsrKuLNq644m73NOW5nRx+WKljjqb7H+8qaO3/eUVKmhP + K+oyOOrSdaPLp3le1cPtNbXDlJrKtbT3rGt/6Vft5Pu1vTqdGc9SPU+iv+CffittA+PMenu37vWbSW3C + +jJ+9H/oFfdOsWkmo6VdW8N3cWE1xE8aXUARpbZiCBIgkVkLKTkBlZcgZBHFfmH8GPFv/CD/ABX8O6p5 + nlw2uowtIf8Apnu2v/47X6Z+KZ9UttAml0Sz0/UNTUL5Nve3j2dvJlhu3SpFKy4XJGI2yQBxnI/szwDz + N18kqYWT1pzdvRq6/G5+JeIOF9njo1l9uP4rT/I/DP4seBv+FX/FPxN4Z+1fbv8AhHdVutM+0+V5X2jy + Znj37Mnbu25xk4zjJ61z9dB8WPEd94w+KfibVtUXT11PVNVuru7FhMs1qJpJnd/KdXdWj3E7WDsCMEMw + 5PP1+7HwQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF + FFABRRRQAUUUUAFFFbHgr4e+IPiVqslj4c0PWPEF9DEZ3t9NspLqVIwVUuVjBIUFlGcYywHcUAY9FaGg + eE9V8V/bv7L0zUNS/s20kv7z7LbvN9lt0xvmk2g7I1yMucAZGTWh4f8AhP4q8WeKr3QtL8M+INS1vTfM + +2afaadNNdWvluEfzIlUum1yFOQMEgHmgDn67D9nvUb/AEj4++B7vS9N/tjVLXxBYTWdh9oW3+3TLcxl + IfMb5U3sAu48LnJ4FcfXcfsyWcmo/tJfD23hu7jT5rjxLpscd1AqNLbMbqMCRBIrIWU8jerLkcgjIoA/ + Vr9sq+Gn/s6LqGtNZ6beWdzaTSrHMZoopmcRMqOyoXUGQgMUUkc7R0Hk3hjxBHf6fCyPG6un3k+apf8A + gs/8RJfBP7K+mWtq22+1jxDbW8I2bvlSOWVjz/uV8n/s5/GNfDlglvb/ACXVz5ctxb/M0UjFdvyV+WeI + ng/ieIYf23l9S1aMeXlduWSTbWu6d2/L0PYyXjajl1X+z8Qk4t811um7L5rTY+wo5FlG6pJe9cf4H+KG + n+LI/wDR3khl++0U0e2Xbu27ttdhb3Cyx1/IWYYTFYHEywOPpunUi7NPT/h12ex+pU69KvSVajJSi9U1 + syGS3WsTxJ4Th1m3eKVPv10fl0v2f6V5OIwsa2jOijipQd0eY6P8Jo7DUPN2VW+IHwXtfF1n80OyVPus + n3q9X+yLUUtmstcccrdK0qbaa2a0a9Gju/tSUn72x8m+JPDeseA3eO8s49YsP4o5Y13bf+BfK1cZH440 + HwlrCXmnaprfgy8h+6yR7k/8ebd/3y+2vszXfB9rrNu6yrurxz4o/sx29/HNLbpX2GS+Iud5O1GUnOC7 + 7/qvmjOplOW41fvFyyfVf5HMeGP+Cgk3g2Tbr3xC8G6rpaQtLHdXdpMvlsnzNHLs+Zdy/d2rLV//AIeE + fD3xjZwy6l4J0m5luraO73f2tpsUsayLuVXiupIJY22/eX+GvBPij+y/DFK/2jTbab/fgWvHPEH7M+g+ + a+/R7H/v3X7RlPj3RnSiq9N83XZ/meDiPDht81Gat6W/Q+zNY/bI/Z3sI3bVPDfh+wb7/wC9v9Hb5v8A + gF2Wrk/Fn/BVj4A+DLd4vCXgm58SX6fdXTLCNl3f767lr5Nt/gHoulybotKsUb+95C1sWngKG1+VYY0W + vWxPjpTULYehd/3nb8Ev1MaPhs7/AL2r8kv8z2DxT/wVz+J3jKz+y+Dfh74b8Ewv9281Odry6j/2lij2 + Iv8AwJq8c8ceKPHnxuvPtHjrxhrfiR3+f7PLJ5VnH/uW0eIl/wC+an1bxB4b8FXFnFq19HY/bH2xzOje + Ujf7b/dX/gVdrpfh+G6t0lt3jmhf5lkSTctfnfEXiTnmYQ998lOWyirJ99d353Z9RlfCWXYOXNBc011l + q18tkcNo/geO12fJW9p/hn/YrsLPwutbFn4XWvyzFZtO+p9ZGikrHK6X4XaWT7tdVo3hTbJ9ytvS/Df3 + K6fS/D8cVeFiMdOpobKKMrR/Df8AsV0+n+H6v6Xp6+XWxZ28deDXqN7hKb6Bo/h+t6OzjtY6oSa5b2Kf + M+1VrNh8Zf8ACQ3f2XSobjVJ1+8tum5Y/wDef7i1h7SKWmr8v8zF0Jy956LzNvULxYo65FDqHxC1prHR + k3wQvsur5/8AUQY+9Gn/AD0k/wDQf4q7XR/greeKDu8QXnk2rf8ALhZSMvmf78vDN/wHbXoOn6BZ6FYQ + 2tnbx28Num2OGJNqoo/hVVralTk1zW+RxVsZTpaQ95/geY6x8O/Ks/K2fcrhtc8EeW/y179qFmstc9rH + huO63/JS9nKC0ZeHxjfxHgV5oElrVL7G3mfMleta54P/ANiuV1Twv5R+WtFiW42Z6MakWro5L7NRNHWl + cae0UlULiOs/ae8MrVZt7iqb/ujUMl55VdlH3paEVNVY27i88q33b6+qP2GP+CxHgf8Aax/aI1P4Krov + ibRfHHhmyMks+oRQ/Y9VMSx+aYHR2Y/K+8blX5fyr4F+Mnxos/hz4PvLy6m2LCjPXzn/AMEwPjfJ4A/4 + Kn/Dvxlqk3k33ijxOun3C7/kghvY2s0j/DzUr+svo/ZfjIfWMRa1NpJ+bvdfhc/IfEjEULUqV/fu/utr + +Nj2TVtWutf1W6vr66uL2+vZXnuLieQySzyMSzO7NkszEkkk5JOar1oeLNf/AOEr8U6lqn2HT9N/tK7l + uvslhD5Nra73LeXEmTsjXOFXJwABWfX9NH5YFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU + UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFbFl8PfEGo+DbvxHb6HrFx4e0+UQXWqR2UjWdtISgCP + MBsViZI+CQfnX1Fdx+z9+zZ4w+Jnjbwldw+A/EGveGNS1W3iluDaXcOm3MP2gRyh7uKNvKjGHV5FyUwx + xlcUAfrd8dPgfp3xQ/svWP7I/tLxN4Z83+xpP+EivtD+z+fsSf8A0i0zIu6NcfcbONvAYmvEPhFqH7RH + wh8deKNNb4df8JJ4Rubu7vdObV/Ha3l1bsI02QxXcu6RrdzEwiSS3RgZ1Mki4dj9L+KvGum+CtGm1DVL + u3s7WBdzO7dK+Lf2kf8AgqzeeA/E11b+C7PSNWsfsyuk2pXC2ohba3zZ5/iXb81efi8wo4dXqP5dT0MD + luIxTtSXzei+89r/AGd/2g/izrmuweF/HPwf8QWFxo9raW+peIYtTs5Le6uHVA04Q+VG0ZHmO4tnlMZA + TYSRj1/w98LdC8KeOvEXibT7H7Prfiz7N/atz50j/a/s8Zjh+RmKJtQkfIFz1OTzX5TeH/8Agrz8cPD3 + j+81K40/wtrGlyeRFcWcl3HvgO3OFVZBt+983+1X1b+zF/wWE8C/Fm10/TvGkcngrxHdTLb+VcSCS1kb + y2d5PNT5I412lfnauXC59ha0uW9n56Hdi+G8bQjz8vMvLU/O34sap/bnxT8TXvk/Z/tmq3U/lf2n/anl + 7pnbb9r3N9oxnHnbj5n3snOa0P2evFNj4G+PvgfW9Un+y6Xo/iCwvrybYz+TDFcxu7bVBY4VScAEnHAJ + r9J/2hvhVZeCfilqPjjzFvNB+JFzpySX66TPqV54S1uzhkTSdRtooUYyxtLshaJgC0kyLvZJXjr84Phz + 4O1rwb+0N4X0fVfCNxe6zBrdir+HNVi+xtfs0sbJbSiZcIsoZVy67dr5IIr2t9jwT7Y/4KvaRqHxK8ce + G9JtY91roVszrwNslxOy7l5/iSKJSP8ArrXx/J4LvPBvnSy219NLZuv/ACz/AOWhb5fu/e21+gn7XXwR + 8Zar8ZdN8TaLqVjd+E9Stmtda0fUY90Syxxs0UyMP7+1F/z8vzB8bNPml8Faky+Z51hufd5f+kWEm3cs + L/7PzfK1fQ5LxFh4VVls5Lmte3Wze/mu9j5XPclnOLxsU+3l/wAB9jxnR/jJqn/CVwz2uoSWdxYbd00v + zeeoVl/e/wCz5n8X8NfWnwY+M8fi3S4/tXlpcQwwSzMn+q/efdWvg+88J3FhcLb3jyW11efvW2SfLt/h + Zmr0L4P/ABs1L4QXFnZxXP2mKZN81u/7q3kX+9t2na3+78v+59+vO8RvCzKeJcJ+9gudL3ZrSS9H1XdP + 5HFwpxnistr8lST5b6p7P1V9H5o/QK2uFkqWvAvhv+0A0sc32p/L+xpuvLXzGlljkO7/AFH95fl+7Xsf + g/x5Y+LbPzLO4juk/wBiv4P4y8Ps24arcuLjzUb+7UitH5Nbxfrof0LlOfYTMYc1F2l1i9/l3Xmb1Hle + 1EclFfGxta6PWIZo6huNPWX71XKb5dZVqMZLU1hUad0cL44+HdrrNm/7n5q+e/iB8EPKuW2w19b3EHnV + j6x4Th1CP5kr5zGZZOMvaUtD3cvzZ01yzeh8Ka58L5LCR/3NYV34Lki+XZX2T4s+Ecd1v2pXnXiH4NSR + Sf6muP6xXpO0j6ihjKNTU+WPFPwkj16zeKa1imif5GV468//AOGWtS8LzfaPCfiDWvDjfe8i3k821/79 + Pkf9819jXHwzbzPmSiP4cKfvJXrYPivGYaPJTfu9nZp+qej+aHUw9Co7vf8ArsfItnqnxm8EjayaD4mS + P/pm1pLJ/wChLW7pX7SPjLS226t8P9Vjb+9ayRzr/wChCvqm3+F8f/PGtXT/AIRwy/etq6KnE1Kv/Hws + JPurxf8A5K0vwMo04w1U36PX8z5i0v8Aanmz+88J+Jkb/rxb/wBlrotL/aP1LUHVbXwj4nmb/rxZf/Qq + +otD+B9rNs328f8A37rs9D+EdjYfdto/+/dcf1ihWfuYa3/b7/4BFTMKVJXvf5I+VdD1z4leLSn9n+B7 + m3V/+Wl/dRxr/wCO7jXo/hn4C/EDXGRtV1rTdHjb70dlA07f99v8v/jtfRtn4Xt7WL5Uq4bdYqwqYOT3 + hGPom/xk3+R51TiCW1NJHk/hv9l/RdPkWXVGvddnX/n9n3L/AN8DCf8Ajtegafodro1mkNrDHbxp91UT + ataUkdQeXWP1WC139Tz6mMq1necmypJ+6kp80dPkjpvze1Oy6GJVuI/OqneW9aL9KryVlOKtqdNObRz2 + oaWstctrmhqN9d5qEdc7qkdeXWp2Tuejh6jPN9Y0NfL+581clqln5VenaxbrXGeI7OsItvc9SnUbVmcX + edK5bxx4kh0HS5riZ9ip/FXSeJLxbCB2b93Xx/8AtYfGO48W6o/hzSXk2p895Mkm3y1/u7v7zV+i8B8J + 4rPcxp4XDq93r2S6t+R5eeZxQy7CyxNV6R/F9EvNnl3xs+LE3xt8cXMMtz5Ph/Sn+Zv4ZJB93/P96vKN + L8YXXw+8aab4gsJv+Jlo9/DqELfc/fQyK6/+PLWVqniGS1/493khtYX2Rw//ABX+1Va8k+0yJu+TY6u3 + /fVf6R8O8L4XKMtjg6C0itX3b3Z/LGbZ1Xx+NliKj1b27Loj+uP4f63a/FX9nHRdQ8EXVv4dtPEXh2G4 + 0K5gs0ki0tJrYNbukBwjLGGUiPhSFA4Ffh3X69f8Eq9GuvD3/BOj4M2N5cQ3F1b+ErHe8X3UzGD5f1T7 + p9xX56/sxfHDSv2KPize6prfg3T/ABl4k0/y/wCzLyx8ToLfTd8Miy7XtxNBP5kcyg5J2FCOGzjnuuju + duvU8PooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKsa + TpN1r+q2tjY2txe317KkFvbwRmSWeRiFVEVclmYkAADJJxQB+m//AATS+OX/AA0p8dvjd42/sv8AsX+2 + v7C/0L7T9p8nyre5h/1mxN2fL3fdGM45xk8x8D/2P/EXjr4e/D34b/Fb4NXEOjeEZbyRPE0PjG3DW6zT + tdPGbWFiWWUpHA3zFlViylDyPsf4W/C/Qfgt4DsfDPhmx/s3Q9N8z7NbedJN5e+RpH+eRmY5d2PJOM46 + YFeHftp/tu2f7PehXNlp/mTasqfPIiK6W/yt8v3v9ZXLisVTw9N1KrsjowuFq4moqVJXbPV/jJ+0L4V+ + BGlrdeItUhs9/wBxD956+Df2sP8Agr5qM+ia1pfhNUs4Y4d7X0P+vjjLfL97+L+E18Sftd/tieIvi1cf + bta+0/Y7xG863eRf3iu393+9XifiC8uteFrb6Wkk32+b7Pp8cUbS3U6lf9Sqqu5mb7tfD47Pq1e6p+7H + 8T9IyrhTD0Up4j3pb+R23xc/bY8SfEHxA+mtrF9bWu9XWSWRm89tq7t26uA/4Sj/AIS3xXZ6NqmvXMOl + +dbWmoXFvH5rWkaTbtyL93+L/vqve/h3/wAEf/iZ4323Grah4b8JRJufy9Qv2luo93zfNFGrbf8Ato1e + b/tWfsAfET9lrww2papbWWveCbd41k17SrvctpI/y7p0ZRLGr/Iu7bt/2q+fdRVJWjI+lpyw0XyK3ofS + dv8Asr+Efgt4bvNWtfCt9ra3MzXVnDaT3F+2pMF2ozShlSNmVt33V21z3wf/AGS9J+K1xqX2z4a+Lfgz + b3iNLb6wmurqVvPcOu1t9tIzP/F/Cy18YeH/AB/4iivPs+k+JNS0dv8Aj4t44tSZPL+bc33WHzbV+ame + MP2kPHmjWe668SatqWy5ku5Flu2/eM/yt/u1y08vxMm3CV+92xVpQpJOpO3otT6Gj/b3+Kv7FPxTj8K6 + X48t/GXh3QpFmtrO4jOoaVc7CrQy+XI25ZEkVXB3ZVlBGCAa/R79jr/gur4M+KvhaztfiRF/wifiL7k8 + 9pE9xYH5V2uduXj3bv8Ad/2q/EDwn8QLfxRbpNZwyQ+S6vdfu1Z9u75vmZa9b8P6fNFb7ls/JiuU/dyJ + B5ssmGX7+7/2avSp51jMDpzbdHqvu6feTX4bwGPhzSirv7UdH/XyP6JPjP4ht7nwfb+TLHJHd/vYmX5l + Zdv3h/33XyP8ePhw3i3Q7yKzmktpLlNjMn3ZFDblWRf4l3V8h/skft7a18NLyx8F69eed4VhfZbq772s + M/NtVv4l3NX3VHqEes6ekqvvWZN6t9a/CfFHjPMKedU8bgXKlKKTjJPqt/XXdNao5cHwrDCYeWGxSU4S + ummtGvM+V9b+A8Pinwm+l2vmJeWbwRTae/zSxxlvmmT5fmjrg9Y0i68OeMJlvnuXsLB1TzkjX92qtt/i + +b5m/wD2q+wPFHw//tS4hvLOaSw1Sz+e3vLfb5sDf8C/9BrhvEGjyeKPOsNWTTbDxBN+6huHg8q11L+L + duVf3clf0N4Q/SAw+cxhlub2p4jbtGb01jfRN7uPV7H43xp4Z+x5sXgbygtX1cUuj7rs1sj5jj8cXlrf + zWDPYva+c3mNF80se7b8rs393/LV6L8E/Hlx4bvHvbW81JJJv9Wsu37PIv8Ad3Nul3N/s7q4D4gfDu88 + B+LLmS1/fLC/myWvy7oGPzfeXC/db5drVDofiG1tbh2Z47PYm+bf8zeZ/FuVv4v4fu/8Cr+kszynBZrh + HTklKM1Zpq6fdNd/uZ+Q4HMMVl2I966cXo+qXdPsfdPwz+LcfifTrP7VH9jvLqHzfJfcvmL/AHl3fw13 + VveLLXxb4X+LurX/AILm0uwm+0tv/wBBWWPasan5flfd8y/7rV7l8MPiesUccDXn9peS62lxsj2ywSBd + zblr+LfEjwHxWClLHcPq8dW6Td2kusG915P5dj9+4Z46o4uEaWLetl71rJvs+zPZqPK9qz9L1iO6j3K+ + 9f71aEclfzhGUlJ06ialFtNNWaa0aaetz9A6KS6h5XtRJHTk6U6t3FNahzPoUpNPWWs688Jw3X8Fbnl0 + eXXPUwdKatJG9PETh8JxV58O4ZZPu1T/AOFbQ/3K7+S3pnkL6VxTymk2dkc0qJWucZb/AA/jiP3K0rPw + hDF/BXQ+Uv8Ak0eUv+TWlPL6UXczlj6s92ULfSI4v4as+WsVS02St+WMVZI5/aSbuyN+lV5Kml71DJXH + Wk27GtNXZDL3qGSppe9QyV59SVzqiRv0qN+tOl71DJXObEb9KryVYfpVe4kWszaJTvHrm9S71vahc1ze + sT/fry8T2PTw6a3MHWa5XxHKqW7s1dDql4sUb14t8bPih/Y0D29v89w/yKqV1ZTltfHYmGHw8XKcmkkl + dtt2SO2pXhRpyq1Woxim23sktdTzX9oz4gXQt30vSfL+2TfxP92Nf7zV8I/FDxhby+TDbw321ZpPMklk + 2tPMNyu21a9U+Onx4tZZEs9J1WS8lmmZ766t5Nqz/Lt8tG/2Gr518YXkn9oPK3ybn3t/vGv9MPCTw1o8 + OZYudXry+KS6bNRT7d33P5d444wnmuL5IP8Adx+Fd+l359jmdQuJIrx1/wCAV6d+z/8ADxvHnjDSvtD+ + ZZ6bMtxcL/z0YN8i/wDfVcdong+88UeKIbOzXzL+/f5V/wCea/3m/wCA19e/Bb4X2vgiy03S7X51hdfM + k+608n8TVn4scaU8oy+WEoP97Ui0v7q2bf427ndwDwzLMcUsTUX7uDTbfV9F+rP1m/4I3fGaaLwjffDX + VJt/2EPqmjM//PF2/fRD/dkbeP8Aro/pX1cnw+8R/CX9nyz8M+AL/T9S1zQrWCy0mfxTnyDDG6rtmNqi + E7IAUUqoJKoWJO5j+bfwd8TTfCPXtB8UaX/x+aJMsu3/AJ7x7drx/wDA42da/VbQdatfEmiWeo2cgmtL + 6FLiFx0dHUMp/I18D4O8XPOMreGrv97RfK/NPWL/AE+R9Jx1k6weO9rTXu1NfmrJ/wCZ+C+raTdaBqt1 + Y31rcWV9ZStBcW88ZjlgkUlWR1bBVlIIIIyCMVXqxq2rXWv6rdX19dXF7fXsrT3FxPIZJZ5GJZndmyWZ + iSSScknNV6/YD4kKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + 0PCfim/8DeKtM1vS5/suqaPdxX1nNsV/JmicOjbWBU4ZQcEEHHIIo1HwnqukaFp2qXem6ha6ZrHm/YLu + a3dIL7ym2yeU5G19jEBtpO0nBwa6D9nvwvYeOPj74H0XVLf7VpeseILCyvId7R+dDLcxo67lIZcqxGQQ + Rngg0AfsN8bfjhH8Gfhj/aGrfZbTWpLYEWtvKbhFm2gsqOyoXUHIDFFJGDtHQfjv+158bLjx54gv5bqa + 5vLrzv3M3mbf9plZd1fR3/BTT9qG61H4kzabp95JcNZvJFa2/wB1Y8fxf+O18BeNPFFxr2qQ/wCs+0PC + 0Tfu9vnsPm8z56/N88zB4iryL4YvQ/UuGcoVCiq0l70l/SOY1zXG1Tzre8+ypFcpHFcNFGzLHsbduX+7 + X3J/wTD/AGf9LtvALeKryG3/ALW1q8k0exmSPbLp1rDHulkib+Gabdt3f3a+HrO0urC3dVSN2vNvkq8e + 1o9m1m/4FXv37Hf7fln+zTpesaPrUP8AaWjfNd2cLfLLBIPl3RN/tV87WbasfU4yjUnQapbn1d8YPHGs + eN9cufhn8KrmO2aFNmqa4knmroyn5f7w3SMyv8u6rn7Wlz/wpH9iTxJp/iO8ufElrc+HpNCaTUNstxq1 + 1NDsVpflC/7VeFap/wAFcPBvhzw/JdaX4PuYdbuX85l+W3iu5P4mbaor4/8A2nP2vPF37VWsWF14o1L7 + No1s+yz023kZbfcW+b5f93+Jmrjw9Gd+a1knp0scFHLakpR51aK31u2+55F4Tgt4tPtttnc3EyPCk0aS + MrSMVZff+LZXGfF2/urDxLeeU/71X8qSNN0q7tv96vZvDeh2tr4gfb5aMib7Vpf9VGp/vLzurH8W+H7f + Xrf7L9mjSe8/ezal5e1dwb+7x/DXuUcwdKVnt/mehismjXSd2mjkv2R9Djupb+4vIfsdw77LeR5FTy/4 + mkb/AHf4a+jU0NrWzew02aS5upv3s0ibm8xfmb7q5+9Xm/h/we2lyXkFvbRppsLr9yP/AFmV/wBmQ/da + uh0v9rzxB8ELS50bwv4Mtry4R287VLi7bbdsF+VlVVzt/ururz60YYqs3KXKup9DluHpUKKpzduVdrtn + Tx2UcRdVhjhldN7Mke7y1/h+b71fdX7CHxrbxl8N0026v47m801/s+7+LaPu/wDjtfmV4H+KmteM7d7r + Vnje4v7mSWZU2r5dxu3N8rfwrur3X9iP4vyeEvjh9glvLbyrxN6r/Fw38PzV+U+ImRvE5ZOa+Kn7yfkr + Jr5o65ShUp8r67fofqbp8nm0zxJ4HsfFGnva3VtHNFMmxleOqHhfUFurNG/vpXV2fWvwPAxVSK7/AJHz + OIcoSPnPxx8HbzwdriXTJJf6H53mzSJHuv7T5fl2tz5i7q8C8b/DddV19L23/wBDv5t1xHv2pFz/AM8m + 8z5f93dX6Fz6fHdR7WSvGPjf+zTJr0Ul/wCH5vsF9C/mrHn9xO3+0rKV+b/dr+q/C3x4xeTzjl/EMnOl + ZRjVteUVbRTS1kl33R+S8X+H+GzGDrYGKjUvdx2TfVp9H5bM+XvAcdxYXkNvcQyRzQv5Xkv951T5t3y/ + dbb/AHlrsPh3401DRvG7y2tzHa6bDMtwyyxrFb7t3+yp3fN977tdh4w8MaHYeDvtk+q/Ybyz3LcafcRr + Ff2Mh+/s+b94v8XytXnt58N5vAeoWDWt/c3lvqSebI0UnzeW/wAqxttYSxt/7NX9m4LNsDm+GjWpNSjJ + aNO6a6cr/Huj8NxGW4vLK3LK65Xr0a8mvP7j6o8PePP+Enitr+x02Sz1LUn+aHzN1rd4+VvKZfl/h3V2 + 2j+KFluHgkWS2uo/9Zby/LLHXy14H8eXlrcTLbtvuET/AEqG4nZW4ZdrN8of5F3qvy12dv4puPGV5pUr + alJ5Wj/6XHMu7zZFK/dbb91f9plr8Q8RvBfA50niaP7qslpOK37KaW60tfc/SOHOOp0l7Kr7y7fqm/yP + o2CdZal8yuD8MeL7yJ44dR+y/wClTMlq0UnzSL95dy/wsV/hrq7PWI7qP79fxlxHw/mfD2L+p5pT5f5Z + LWMl3T/Tc/XsDjKGNpe1w8rrquq9V0NHzKl+b2ql9sWj+0VryHiI9Dq5W9ix5lNkkqnJqkf9+snVfiRo + +jPtutSsbZv7rzqrVrRjXrS5KMHJ+Sb/ACJlyRV5O3qb8klM8yuSj+NHh262LFrFi+/7v79dtUh8b9Fu + Q/kXkdxs/wBZ5R3+X/D82K9Clw3nVZ8tHCVZPyhL/IyqY7CwV5VYr5r/ADO28ym+b7155qfxvhsLZ5ns + b7y0RZVZo/K8xT/d3Y3fdrmPEn7UDaD4Ph1yXSpbezmfZ/pF3DE0f93cu417FHwz4uxFvZYGbv6L82ji + qcQ5XSvz10j2SSSoZLha+e9U/ar1T/hH7zUlh0WzihhWaH7Rdyfv87l+X5R827+Gqfgb9pzUvGN5Ct5f + 6TpUckLStJMkir93d/3z/tV61LwN40rJuWHjD/FNK33X7HO+NsnhZKo5X2sm/wDI+ipLxf79VrjVYYv4 + 6+UdY/aT1i/1Wb7LrX7lbxrdVitF2z7JlRmTc27aVrNj/abh1TUNSZtY8QPptsiutwlpDE0ahpVbcu5v + 7lepR+jbxbUV51KMf+3m302Sjruc0vEbJ4O1pv5W/Nn1pJrkP9+qd54kt4v446+BPjh+1Rpfjfx5oOke + Gda8SQrbWDPfXUupeVFI3lxOvyp/wOuJ8SfFi30G3s1ivLnUrhLlt0lxdtK0kZZlXcm3/cr6TC/RSzeo + k62OjHyVKTt81JfoeVW8WMDTlaNFv1ml+h+j9x48sbWPdJeW0a/3nkVaxtT+MOi20XmvqVltT+Lz1r83 + fip+0Rovg34L3+l3Wj2t/q2q37fY7iKdv3an/gX8O75f+ulc38C/jZJFpGiWd19pdrbzEZkgjWXlWb3X + b81e1hfokzlK2Ix8muyptfi2/wAznreMVKMU6dBfOaf5I/RrWP2kPC8QZV1vTXb5U+SdW+Y/d6V514j/ + AGzPB9r4o/sT+2I31Z0837OkcjNtP+6u2viTwv8AFNdP8UXl1LbSXOxP9X5caxSSD5U3Iq/d8v8A8erz + XS/EGsfGT40eJItL0e5m8R+Ibltv+l/ZbXTYUb7ztt2xxrXuYf6JOTp3xOJrS9FBfPZnP/xGfFPSjSpr + 15n+R9ueJ/24PDOveKv+Ec0vUJbzWH+RbWKNt26vnn49ftQTaZearpum/Zv9Js2+2alLu3WjBv8Aj3Vf + 97/vquV0fXPBf7G/hPXrfRvtPiTxpr26y1zVnkZYLDKt+5tm+/5fzfM33pf9ivnO41iTXrOZm8xFhfzV + 3yfNJ/eZv9pq/SOB/Bbh7h3EvE4GMpztbmm07d2kkkm/6038HiDxAzTM6Hsa7jCF/himm30u23dL+tdt + SLVFv5H+0PIjI7bf3nyx/wAVUI9HbWrOa8+zedFZ/dj/AOe7D5ai8ESL4o1jypZvJi+VLhnk29W2rXr/ + AMFvhOsvi++1S6mkmtYbxfssPzKu6Ndu7bX33F3FWEyLLZYmrrZWSW7la6S/V7HhcOZDiM1xsaMN92+i + XV/5I6f9nf4L/wDCG6Gl/fw7tav0/eM//LBf7teteE4/K1yFf7zqn/j1P0u3X7PTLeT7L4s0qL+Ka5/k + tfwDxFxBic3xVXF4l3lK78klsl2SWn4n9YZXldHL8NDC0FZR0835vu2fW/hfRGv/AAn/AMAr71/4J9+P + f+E5/Zq0qGZ/MvPDk0ujze3lYaL/AMgPFXxX8L4/tXg+H/cr3D/gmh41XQvix4x8JySfJqNtHqtsvo0L + eVKfxWWH/v3XoeB+cfVOIvq8npWi181qvya+Z89x5g/rGXSqdack/ls/zT+R+c/izwtf+BvFWp6Jqlv9 + l1TR7uWxvId6v5M0TlHXcpKnDKRkEg44JFZ9dR8b/El14y+NPi/WL7S7jRL7Vdbvby406fPm2Ekk7u0L + 7lU7kJKnKqcr0HSuXr+zj8PCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo + oAK2Ph5e6Np3j/Q7jxHaXGoeHrfULeTVLWAlZbm1EimaNCGUhmTcB8y8nqOtY9bHw8vdG07x/odx4jtL + jUPD1vqFvJqlrASstzaiRTNGhDKQzJuA+ZeT1HWgD92tY1i18PaZNeXk0dva26b5JH4VFr4r/at/4K6+ + H/htaXFh4Zh+3Sr8kkzfJsXp8tdp/wAFKPifefB74G2elaPJcLCFSF5rmV7lzGoAAeSQs7sQOWclieSS + STX45fGm4vPEcVzced5dwjt+8R/mjb/gNfHZ9nNSnU+r0Xbu/wDI+64YyCliIfWcRqui9O4vxb/aLk+L + XxUvJYpr5Jbx5Lj/AK6Lu+X5m/3a464vJNUlt4lto9zu0tw3zN5f/TPa2PmrjPFFxNoMem+V5b75l3L5 + e1pJP725c/ere0PxZ/b2oTSreSTb4dn2fy1XzG3bvl/3a+Qle3Mj9Hp04xXKi5/aCxW6xK/2mVJlSOTz + /mjx83yr/DWV4s8TyG4mt2TfeSIrrHFHt+V2+ZWqt40vLjy7m8i/0aRP+WMqM3yo33lZcKy1lSXrape3 + l/KklxazIqXEifM0e/5V+9WfKn7zN4ya0LlxbzXVwlxvjmuJoWiZU+ZY8fN8v/AqzvD8eoSyWdw0P2ld + +z5fmXy/4/8AdqxaJDo0k32N9t18yK3/ADzyvyyMtWNHkt9U36XK/wBg1KZPNb7yrPvb/wBCapk7I3pr + W50UdxpusfbLDy/sF1Cn8EnleZH/AA7m2/K393bWbp9nHrHhe1ZoY/K+aK6jeP5Y2H8Xzfw0Xnh9b/S3 + 02X5Lzf/AKPcPJ9oXaG+X5l/iT+7U1nbaba6XeWFxDcpLv8AKkvH/wBVuLKq/JuXdurkk9LHbGL6mxcX + moWGj2GmrbRvqny+ZH5i/Z/J3bflkbNU7Pw+0ciW+qPGlxcvskmTb5UbfM21lWrOsTraxvcNDHN/Z8zW + 900Um393/FIyK1c9qHiO3i1hJftXmfO23ZH80jFfl/z8tc3K3sbRlZhrml2Nto7yq8abH+98reZhfm2r + xXP/AAN8WXXhz9oTR/ssMnlO7eZJLtZo49v8Tf8AfFWPHmuQ2Ec1xKv7p9v3JF3SKY1b/wBCryv4P+LG + v/2g9HVU8lYdybUk3f8AfW6s8RhXVwFeMtVyy39GcuPxEaUo67tfmj9+Pgprf9seDNNm3790K/8AoNel + 6fJ5teCfst6q118L9KZn/wCWK17fo9x+7Sv4/wAD7lTlfRtfccOYR952N1OlSSR+bUNvJVpOtfVU1Gas + z52d0zhfih8EtL+IFp+9XybxU/c3UXyyx/8AAq4PWNHtbaOz0vWLCxsde2R2NrqiR7bPUo/+mqfdVq92 + /grJ8U+FLXxHp7wXUMcyvX23BHiDmfC9e1Juph73lTb0v3i+j/BnkZxkeGzKFquk7WUrK/o+69T48+Jn + wjvPCWqXi2vlosLxo1q+1m2/x7eqtH/F96uVs9bvtL1DbdJ5yzfd/i8xt3y+ny/8Cr6N1j4SQ/D653Km + pf2bM/76a3k3S2i/wsqf3lrmPiZ8D7W/0vdb3NtcxXKSSw3SRqsUn/XVV/1ci/8AfNf3bwT4jZXxBgo1 + 8PO/Rp6Si+01+T2aPwTP+EMXga8tPNW1TXdP9DN8B/HS+0GKSws4dJubq53JcLLJ/ov3vvbW+7Ju/u/L + XQ2fxg0vXvED2FlrGpaVdWdt9ouJHnXbBJt/1bb2+b+983/AWr87v+Cln7QGvfs7+E9H8PaHJc6VqmpJ + J5jRbWuI4RtXaj8/M8j/AHo6+RY9L+JHwq0PSvGF/Nrem395eSI0aR3C3FpGm3988rf3mauriLJsuxcv + ZVqMaiWrTSa8mk09V9x25DiMZGlzuo4t3S7vprqtPxP1x8UftKeIvhfrH2Xx9f3P2i83Pp7afJcRWcm1 + vlVX/i+X7yt81aXhf9pST4gyXLSpfaVbzPshjeS4aWdfL/3inzf7teIfsP8A7VE3xQ+A8NxrlhbeKLy5 + mk0zULF4Plkmj/1cmxVK7n3RN/Cv3/uVT8aftEeE5f2tPE3w5+HM19r2l6DZrcXF58zLBdf8tLdX2hm2 + /wC1TyrhzJakuSGGjGStZ8sUtddNPKxyZlmWY0I8/tbx1urtvTTXXzueu/FD9oi8tfO0bQbCT/T0ZLi8 + eNWaD5Wb5N33ab4b+Kl1LcLf29nL9ouX2LJ5ELNuDK23Yy/d/hrzy21CS6vIbi6jkjlf/lp5cm3d8y/x + f7VTWcS3WzzZrnd53+jx/dWP5d1fWx4ewEI2VNfdbol0t2PlZZ7i5yu5P+vW/c7/AFz9qLXtFsodLt38 + m3ttzyNFaRs3l7du35VFYOsfHy8tbd1urm5ZrmaR5GeRlbd99WZV/wBn5a5vxBfw3VujLDJ9oR2Sb+7J + 833qx9Q8NyXV5beakm7ZsjuE/wCWjH5v4W/u/wCf467aOV4aKukznqZti2tZfl/keteE/jtDrV415eeZ + eLsZ1jlnkZYFCs25fmG1q8l/aM+Jlxr2oJb2aSQ27u1wrJJ6qrKvyt/D/D/7JUOnyTXWnvap8mx1eNXk + +Xhm/i/u/wCf9uqesaZDdfMtvH9o+XdJF/y0+Xd91sfLW1PLcNGfNyLy0Rz1M0xFSFnN/J2OY0vxJq19 + qDreTSP5KKjebuX5h91l6f3vvf8AoFZXjHxZqEsiW9vfXO77NGjeVOyrGpXbt2rjd/n/AHKv/wBsNoMk + KqkcO9GTc/7ry9m77u6sSS8aLWEVvLt9m3/lou7/AFa/LtX/AD/6BXfToUk/dil6JHDPE1GtZNlzw/4j + vrCztoZZrmbemxleRtsfzfN97/P/AKBVfxZcNpfh+b5JJreT5GZY/lkXzP4ev+f/AByW41S1v47OKW53 + s/7qTfu27v8AZ+X/AD/45Wb4ws7e68PusVz5Pz/d8xtqY+bc27P+f/HN4xTMvaSucNJp62txM0vmfaGR + fm8z5v8AVsy7v8//ABdPkt/sF5uuIf3LJ5vk+Y3975fl2/5/8cqtqmnyS+IN1v8AaZoti7f70in/AIF/ + n/x99Kz0+Gw0fdf6hsd/3rb5PX+H/P8A9gmhV2ZXiS5bVLaFPJjRfO3r5u5l/wBpl/76/wA/xw6Pef8A + CORvNssX8ndu3Rt+7z8q/wC996r+oWbS6XdL+7dvtPzMn3tx3f5/z89/w/4HbxnbwrLcx21u7sm54/4j + 975ufu1nUd9TenbYrfC/4iQ+PPiJ4e8F6Smk2GqeJ9Yisv7Q1PzPsdpv3fNIy/8Ajq/xNXef8FCNY0P9 + iTwfc+DfCskjy/L/AMJBq33bzxDNMu1VVv8AlnD/AHVX+GuJ8Qf8IT4D8DzNb6lG+pWz744U+X5o/m+9 + 5f3t1cf+2f4T0f43fs/23xL0u5k1DVtas1l8t5Gla08ll3K27H911r5nOY1XD93Pbdd0j6jJ5UlL34b6 + Jnx7rHxo8VapcyapcTXL2autvu8v/R9x3bV+b+9t+9XqHwv1hvHkVs0f7vf8km/5VjY/w14bqnxE1C68 + F2fhyV99hYTNLtl+Zo5N38P93+7XrvwX06S18LppuzZdXPlyzb5P+PfDb/mX+Kvk/wC14YGlOvUl7sVd + 36Psu7fQ+qqZa8VONKlH3m7K3bz8j1TwP4S83xJeLbvttfurs/5Zxn5v++mr6L+HVnHa2cMcSbVjT5Vr + yXwfp0el2SrF/vs399q9f+Hci3EaV/IfiPxXXzrESqNtU43UY9le935vqf0Lwbw/Sy3DqEbOcrc0u/Sy + 8kd/Zx1zN5qn/F2dHtV/5YoztXWR/wCi2W5v4K8s8F6x/wAJH+0BcMvzrDtiX/0KvyXA03VVWp0jF/5H + 3OIlyuEe7R+j/wAC/wDS/Ckat/crqv2ctSXwN+2P4Tum/dwalNPYSf8AbaFlT/yJsrlfgHG0Xh+Hd/cr + U8bM3hXxFoOvr8p0bVbbUN3r5cyv/wCy18/wrmEsDneFxL2VSN/S6v8AgeVnFNVsPWo/zRl+R8u/tCaf + f6R8ffHFpqmo/wBsapa+IL+G8v8A7Otv9umW5kDzeWvypvYFto4XOBwK4+u//avOf2pPiV/2NWqf+lct + cRqek3Wi3Kw3lrcWkzxRzqk0ZjZo5EWSNwDztdGV1PQqwIyCDX+i8XdXP5wK9FFFMAooooAKKKKACiii + gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK0PCfha/wDHPirTNE0u3+1aprF3FY2cO9U86aVw + iLuYhRlmAySAM8kCgD9Pf+Cofhm78d/s52d9/ZuoW80RSea2kZGkssgEq5jZkLL0OxmXIOCRg1+T3xA0 + NrqJLdbbfLv3+XFG277y/M/+1X78ePrPT9S8J3Vpqdzb21pf7LPfNII1aSV1jjQE8bnkdUUdSzADJIFf + lf8Atq/sB+LvhR43udctYZL/AEu8+9dW/wB3aP4ZK+H4ky+p7T6xBNrrZbH6Bwlm0I0/q02k73XmfCWq + +E2lvHt7d45rXf8A8tY/l3bvvbtv3q4yz8HLpepzfJ/osKebJ93d5gba38P/AKDXvdv4Waw1S8WW8jm2 + fPbx+X/Ftryj4oapaxapHFKnk/YJm8yRPlSdQu1vu/733a+RjKV7H6MqkZK5yWkP9vs47dvlV/8Aj3k8 + v/WKG2/xf71XPEngeaO8h8ub7ZbpD5Uy/wDLLaW+VW/2vmp+h+H76/lRr/8Ac26J/o8dw7ReYr/xbF+W + u/0vwN/Y1u8Vx5cN1fws3ySL93+782G3bq0lfmCnJJanE+H/AIcLdedeed9mkdNiwv8AvWjw23avT5aN + c8BrdxurPIk9z+6aZJ1Vp2DbVXdt+7/s10msafJFcbtkltZo6vJ5X937vzLtrS1Tw2trElnEnnb/AN1G + qf3f+ei7vu7q5Z1OV6nRTbkeY2fh+48OXdmlveSpFDDJFJaxXC7ZN/zPtZl2/wC1T47yPS7OFZbi2S3u + dyNGnyttHzKzKuCrfNXc3GlrYbGl+z2cFz+6WN5FXy5Aq/xN/wCy1x/jTw/aj5rizk8r7803kNu/iXbu + /hWplaT1OiNRxRzEmqW9pb3K2/8Apnk/dX+/8rbtrMx/vfxVj3nij7B50Vqkn2q5/wBZH5fy8fNu2/3v + +BVmyfZ/3NvpaX275XVf4eG2/MzU3T/C/wDZeuI1xNfTNebn3fMywf3tu3+Kuj2MEveM41py2MnxZeXE + v2y3t5o3t4YfKhk+95bOvzL82K5X4F6Y2jfHBNyybo3VWZ/733vlr2aPwvY3Wqov2beu/f8A6v5Y4/8A + f/iajS/hvpfhzXLa/Wzk835njb7reX8rfJ1rKviF9WqUUn70WjnxWAnWlGa+y76n6v8A7I+qed8L9K/6 + 4rXv2h3FfJH7DfxEs/Efw3s/Im/1e5Nv8SYr6l8P3n7tK/izEU6mGxtWjUVnGT0+bZ2Y+ndc3c7azkq/ + HJWPp9xWlbyV9Dg6ycUz5utTsXKKanWnV6fK27o4SG80+O5j2sm9a8Z+Leh6x8KryPW/Dtv/AGha3M32 + fUtP8tW8yGRdjMuf9rZXtlcL8Z7S11W002zuPtW2a683bb7tzrGvmN93/ZWvsvDP21LinC+wm480rSSb + SkrXs0nrt1PK4hknltXmV7K68n0a9D85v+Crn7Ly/tc/DPSvEfw5sPt+s+D/ADLfUPDtlGzXnkvtWVUT + /npFIqNt/u1+cGoap4m8Rx2Hhz/ioHl02H7DJYp9oVrhvMZv3qM23d8235q/WT4ufEC30zxw+reH31Lw + x4mtv3X2hI23Xa+Y3yzxt97bUPhP48N8UPiBZ2cvgzRLbx5fusUNxbxr5WtSGNv3yeYv3vlTfG3/ALJX + +gNTL6lOhGsk2pJN27O268un6H4Vhc4pyqPDrl5k3v38np9x4b4H8Sf8O5/+Cdb6tr32F/E2qXjS2djF + JulkvLlfl+7/AM8otn+zuqn+x3cSfD74PxrdaJbWeveJH/tDVNQ8tvtE80zb1Vm2n7ism2pv2vNQ0/8A + a0/b9sPB9nHG/gj4LW2yZYtv2e/1L7z/AHfl+9Xql5eW9qYbfyY/NT7qrt8qTFfS5bh+WnzW36dvL5I+ + VzfFPn5L69X3/wCHNLUPEFnFF800e6SFdyv8y7XXc38P8NcnpelrdSzM00nyTKi7JG/9lq3qEkd/d/Z5 + UkT722T7y/d/h+Wn3vhfVNLj+1abbb2mdd0fl7vLbd/F8v3f8/7FepFJaHiylKWqVzE1C3vvttvb6dYa + lqutTIzx6faRtcXE+xdzbUVv7v3v87+G8afGzXNP1xbBvDet2ctm+yS3uNNkiaP5f4lZa9R+DfjjUP8A + hqTwAupWdtD/AGa926/ZP3TSN9llZf4RWz4k8SXUt5NqV5eaklxeTLL5byb/APa/i/3qxqYqdOrGkopt + q+9tFv3N6OHhOi6jk9+1+3mfO9x+0JDYR/vrO+hl3/K3lyf+PVm6p+0hajVIZWuZLP8Ac/Mr+Yv8O7/P + +Xr6H1i41Cw/0+zmk+zqjbm8xv37fKu75WH8Tf3a57VPG+papHbLqVzczS2zsqyPu/d4+VfvSbv77VrH + FVP+fb+TX+aMpUKC+3+D/wAmfP2s/tCafLFD/plsmxGeT727/wAdb/P+x/HlX/xc0u71BNk0aLs+XZu3 + fd2/Mu3/AD/45X0/Z2dxqlxDthuUZ0Z1+9227l+b/ZqhqGt3mlyJKz30LbJEj/dsqyMWbd/Fu/8AHv8A + 4urjian8j/D/ADB0aMVbnX4/5Hy7efEjT/LT7K8lzKjr/wAukz/LuZfl2r/s/wCfuVc8J+IPEHjLT7mw + 0vwr4g164vPnjhtdJuJZdw+7t+X/ANm/+Lr37UfiBqEWqXP+makku/5mfzFbd937yybfmWmP4wutLuJr + qwmuoW2M67JGVpPvbvvN/tVUq1b7MHt5W/MmNOj1l1Xf/I8N1jS/H2g77zUvAfiTTYk2+ZJe2n2VY8fN + /Hj/AD/4/seB/wBmP4qfG64triwsNE0rTXTe11qeuw28UCp8rblTLLXYeNPEF5qfiBJbp5Lm4h27fN2t + 0Vf4mzR48vLrxH4HTSf7Y+x6beOrzRpJ/wAszJErfKuKxrVMSoXdt0t318rW+V9Tqoxw7qWV9npbt87n + nWgeMbHUNDmWK6jm2XjWjeVI0sUjIzKzb/7u5a2PEHxMaPw/9ls5v3Xyusnzbto+/G1cN+y38L5NZ+Hd + y0T79l5JC0aSbWkVGbc3/AfvV1XiDTpNBMMMqRXm9N0zJIzdF/h6fN8tdUZOdNSZnUjGFVxXc8uk+GE3 + j7WLn7R9ptrf76x+Y3z42/Lt/wBqvUfhX4e0fVdH1j4XxJbQ/wBvQyXelxvJ80dxGrM8KN/t7v8AvquG + 1j4qf8I5cP8AZYbl/O+Tc3yt92vJdT+KniDwv8TdP8W+GbyTSvEVhN9ot7yLbugb5v4WyteXjPZwg7K9 + 9z1ML7SpJOTtbY5L9qDQ/Dfw58eXkVrZyJrkL7GtZYPK8hhuVvNVvustH7L15Ndapq1xcfvGby/m/v8A + 3q4n4ma7r3xB8f6l4g8Ualc6xq2sTfaLy+u5N0s8n+1Xc/A/WLO1vLlYv3MVvCrXEzybVj+Zv9qvx3jL + DyeWVY9fx3TP1LhutFY6nL+tj6W8P3H+jpXRXH7RfhH4G2qN4k1b7NcOm+Ozija4upP+AL/7NXyt48/a + pvtQ8zS/BqbE+5Jqjx/+ilb/ANCauEt9E+yyPf6lNJeX9y+6SaV9zSN/tM1fjeV+Gcsava5jJwg9oq3M + /Xsj9Jx3Giwy9ng0pS7vZf5n1d8Qf+CnMOr6PcWvhXwrerK/yQ3Wpzqqp/teUmT/AOPV80ax8XPHl3qk + 15/wkNzZ3Fy+5vsUn2f5v+A0y3jWa33L92mahb/6PX6NkvBOTZXBwwtFa7uWrfzZ8hmPEeYY2Sdao9Oi + 0X4Hc/CP/goB8bPgvqaz6D8SPFELJ/y73139vt5P96KbclfdX7OX/BeTS/i/oaeEvjJpVt4b1S8T7PD4 + k0zcumyMfl/0mJstb/7y7l/3K/LjUJF/4FWDrF40sn+/96uPP/D3I83p8uIoxjJbSikpJ9Hdb27PQnL+ + Isdg581Oba/lbbT+96fKx/bn8EPFn/CffBzwprm6OZtY0e0vTIrblYyQq39a+Rv+CgWkeH/2nf2o9J+H + fiLxp4X+Htj4N0S41ZNZur6O4FzJcvaqLSWKRoRBMBG0gXzHLRlGwNxA+dv+DWD9u/xN8eP+CfXjLwHf + x/8ACTeJvgnMtvols14sMt9YzwPJaWrSN8qbZYpYQzZCpsB+7XqX7Sf7FOlftIfDf4e+NP2efA//ABK9 + XtLhdTU3qWjx+SIIIkdLiYL5itFcK7x7t7hnZnLB2+ypwcIKLd7dTx5yUndHw/RRRWhIUUUUAFFFFABR + RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHqH7TvwH+KHwj16y1T4oWuoLqniTzPJvL7 + VYtRuLzyFjVtzpLI3yq8QG4jjAHA4/ZTS2Xx94SjfV9Du9L+2BhLp2otBLNFhiBuMMkkfIAYbXPDDODk + D8u/hb+0F8Wf2/vHdj8I/E3xA+z6H4s8z7TJ/Ydm237NG12nEaRP9+BRw6/iMg/aHw4/bMsPhd8TPFHw + u+JXiT+0PEng20+3DX/7PaL+3ofskuoTt9mt4ilv9ntwq43sZduQNxK1LV9GCbWqOF/bi/4J3eH/ABT4 + UvPEXhPS7Wx1CxtiZbG3jWKO7AH3srzur8fPGml/8I54oks9WS2eXTd1uq3Ee7zJPmbarf8AAvvV/SS8 + ayptb5lbt618Vf8ABQP/AIJZ6L8fodQ8S+G/9B8Qf69oIk+W4f8AvDHevkc6yJS/fYeOvVI+44c4k9l+ + 4xTduj7ev+Z+Nul3GrX8j3S/Zr+LfJtZ42XyFMa/wbv7q123l3R1D5m2WrpH9ljSNVbcV/j+bcrf7NVv + Hnw71z4c65eaHeTXMN+7tu/d/L5aLt+62P4qh0u3kiSxit0ke6m8x5rzy9u9d23zPvf3lr4u1nqfoyaa + vHUhvI7j+y5ri3mj3ffuLVJ/m27tu7bUPif7R5m6WaTzUh81VeNmaNR93bjG35v4av8AiDw1bj7Lf2/7 + 66mdUWP5vK8vd/6F/u1mx3C+HNYtrrVLn7Hb2cMkqyW+5oudrfPn+9u3VlKKteJ0U5taSLmoafpus/Zr + i6eN/wBysvk/xxtt3NH8391v4q868T+KJIdcmtbebctynzSfxSMv3v8Ax37zUfFj44ab4DjtmuL/AE2z + urXdKsdx/o/mKV+9u/ib/d+avlT4mftAal428WI2jXMkKo+/7VN96ST7rbV+7tavRyvJ8RiZe6tO70R5 + +aZ9hcHG85a9lqz2y2kkudY3S3n2y3tn81laP5tv93aP4f4qI/GFvqmoyW++RIP9U2yPau3723+981eL + Weo+ML+4+1f2lJ5v/PRI1X/0FaZ9j8TWsryfb5N0z75GeNf3jf7Ve4+FK7+KUfx/yPnY8dYSLuoy/D/M + 9+0TWLqaRLfVLmSwt3m8qOGL/luv3fu/7tdbb6hb3Vw7eT/x7OqLG8m1ePl/3mr5O1D4qeKPC8kct55e + oRp/f+Vv++lr2n4L/GDS/ihZpcW7yabcQuqXELvuWD/7GvDzPhvE4em6rtKK3t0+R9FlPGWBxlRUItxk + 9uZWv5J33Ppb4F/GS4+Dfii21RZrm10+8mXzrXy1aKSM/MzLt/u7q/Sz4XeMIfFGh211bvvimRXVv9k1 + +Tdv4nhkt7a1iSO5s7ndbtvk/eyf7TKfu19f/sHfH+4mjTwzqz7bqzTdazPOrNdxj5f++lr+c/E7h1uE + c0w8dY6St1WlnbyPrqkVUi0tz7n0e8res7jMdcT4f1hbrZtrpNPvPuV+VYHFKOjPm8RRN6OSpou1ULe4 + qzHX1OHrJ6s8epFxepNXnvxp0vUtYvNH/sb59Ws3kuIV89ovl8va33f96vQq8Z/aL1fUrXxZpsWl3lzp + ssNhczNdW9p9odFO1drf7LV+neE+HVTirCt9G35aRe/lqfN8VVOTLKr12W2+62Pmn4ifDjWP7cuVv9Ns + pl2eb5kUnzbTt+b5vvN81cB8UPhv4f16zh02azkSV/kVf44/4lk+WvTtM8capa6w+l6t5l5av86yfZGV + o2Hzbvlaq2t+F4dU1CZre8jtpbbc6/aN37tv4/4W+X+Gv9FMHUlGlCMuy20P5gxNOMqspxvu999/61PF + vg/8B9H+F/2y1sEltvt83224mfczRs/3m+b5q6fxB4DaK8+R5PNf545P+emF3bvmx/3zXTahpc1rH9nZ + 4/K2bNvmeU38LLt3L92orOztfEclysb/ADfeZfMbyo2G1W+9/ersjNLY5HGUvi1ZzGjWbX8c11F++l+b + 5YkVfLqbS/HGraZpbq3h6+1KOHdtVJFXp/e/z/8AZ6vhfwfqXmWy2E2+6vE/1bzqrSfMv/fO7/P+3o6p + ofiDw5bPefbItNX/AFrR3Ei7dv8Ae2s1U5LZNExptK9meX/DP4gSRftCabcXHhvUrO4hs73yf36t5kht + 5dittbd/E9dd5d9deF9NuodNsUi2K8kzyfvZPlXd/wACrjvAfiC18RftIWdrcalG7JZ37ySRblWPZbsu + 5mVTtrs7eTTdG0Ow3ara7USNPs6fN5a7fl/2a5a2mJh6P9GdFH/d5JbXDUdcuNUjtlls7aG4dNi3CbWi + 8s7dvy/7O2r/AIT+H9r43MM0ttvurZ5EkmSBXXd8qru+UNtqHVfDdv4k+zfY9K1J2fbF5iR/N/st/s/3 + Wqtb3GseDdYuVs7aTzdjXEjeQ37jC/x/99fdrs5U9IPU547+8ro764+Cl1FriRWafarXYsq/Z49zSLu2 + s3zVi+NLOx0a3ht2sI5LjTXkikmuIGaXiTY25edu5djVW8N/GzVvBF49vqj6lbLI6xbfmVo9+7dJ3b5f + 92t/xh8TLHWfBfmypHZ/6N9kuPs8i/v4z8ys+6uflqqaUtV3Oy9KUG4aPz1PGHk0k67cqzx3NhNudpPm + X5jI25l/z/8AF1m+NNPsYvCe6ze2f7NC27f/AHT8393+63+f497xp4f0261S8t7fUJXs5kba3/TTbu3d + 6xLfT7XSvsytDH9qt0kdm8zdbyZ3Ju2/3vmr0oy6o86UejPMZI4/7QkutSuZJovm/wCWDbv7rK3y7v4f + 8/wMd9DlnvJfsdzN9mto/JmT7sHys/8A9l/nfXbePNH0/WfO+zv5MdzuljkX7u0/Lt/8crzfx5pDeG/g + /wCKmuHuLaV0nSO48xt20Qxbt3+z83y1jjJNxSX8y/B3/HY3wkVGd2+j/HT9Tzf9nPxRH4N+D6KryJLf + 7n8tJPVvlbb/ALtM8aeIJrqN5fs0m1/u/vG2/wB3ctdb4P8ADmh+HPA8NnK9s7wovkr5e1v+BfL/ALX+ + f4+e8eeJLOKzeLzo5pX+dv4P4l/76X/P+/tGKjBKTWisU5OdRySerueaapbrj96nzJN955PVfu1xmsGG + LULpV8uP/Z/h52113ijWLWW8RoofLhf+F/ZWrh/Fkc0tx5q/8s0bdXj4ySd7HsYOLT1OB8aXljdR+VKs + if7lZvhfwvN4j1B7O1SSGwmdXaP/AJ6Y/v1Dq8n2/XHVf4Pk/wCBV7l8F/Acel6WlwyfNX53mWIVafLZ + WTPvMvoOnDm1vY5/XPh3a+CdCWVfvfxV5z4k1xpZK9Q+NOv/APLuteEeNNQ+zb6887pHrvwrgj17w8+5 + 97b/AJVpnizT/wCy7d64z9m+41C68QpcN5n2fZs213Pxkv1tdir97+KgadzzTULz949ZtxbtdSfLVz7O + 11JXTeF/A95rOoWGm6bYXOq6tqtytvY2NpG0t1dzP8qRoi/MzMzUEpXP1q/4M6NK8Qw+Kv2lrrQls/ti + 6HpUNm1/v+x/bM3rQebs+by853becZxzX6Ef8E6f+Ci3gX4U/Aq38FeNbj/hG/8AhG932O88u4vP7V8+ + 4uJpP3cMLeV5e5F+Zju3ZGMEVzP/AARe/Yssf+Ccv/BNi6XVv+EN8TeO/iRdxaj4msr3Wra30+KOa2SU + WctwRIrR2+mvJdONjlkMrBWDA18T0FhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR + RRQAUUUUAFFFFABRRRQB0H/C2fFX/CCf8It/wk3iD/hGf+gR/aM32D/Web/qN3l/6z5+n3uevNdx+zP8 + aPGmnfEvwT4Ys/E3jhvD0+t2lq2iaVr09ktzHLcr5kMQE0aRtJvYZ3INz5LLy1eT1oeE9F/4SXxVpum7 + NQk/tC7ittlha/a7pt7hcRQ7l82Q5+VNy7jgZGc0Afr9+1L+wb4F/an0d11bT7ax1ZeYtRtYFWdfr/er + 4R/aS/4IReKPCdvZ3Xwx8Rf28snlxXWn6htt23fMWkVx8u3/AGWr9Nvih8YNH+EFvocmsSXG7xJrdnoG + nxwxb2murl9qA9Aqqod2ZiPlQ4yxVW4H9q/9rO6/Zt1rw7Y2fhq38QTa9p+sakxm1Q2K28em2oupAMQy + lmePcFGFG4AE4JI8nFZPhq0nKcfefVaHsYHPcZhUo053iuj1R/Nj8V/2lF+BnxI8VeD/ABVpurab4l8J + ak1lcQxfN580bMrfMv3WRq8r8eft8a5dXH2fw/YRzLNbeU0178vlsd25VQfLw1d5+3h4It9Z/aU+J2oX + Hz39nqSvdSP96e4kjWWeT/gUrvXzT/ZflXm2safD2Dg1Jq/qzsrcV5hOPKpKPotf1Kd5p2rfEbX0v9Zv + Jb682LEsj/cjUfdVV+6q1vSfB9Zbfc7yJ/tJJtq/p9h5VpuX+CrNn4nmi+Vn317UYKK5Y6JHz0pzlJyk + 7tjPD/hPWrCPba3986p/fkVv/ZaZqHirxBYSOrPv2f341rsPBfjSG0t5lb7z1Zv/ALHqFnI/7v5qog8l + 1fxo2tR/Zbzy7aZ/uyeX8v8AwKmfCPVLz4cfED7PeJ5K6hCy/wCzOp+6yt/FT/iRocPztFWb8P8AXF1W + P+ybz55bZ/tFjI//ACzkH8P+69Z14qVOSfZ/kzfDSaqwcXZ3X5o+pfh348jv5bZWeLcr/K3zbdu3/wBl + r1rwP8VNQ+HOr/2ppcn2y4sP+Phnjb7v4f3q+UfA/iBovsy/c+7u/uyV6LHrLRRpu8x22fLs3KvP3f8A + eWvx3NMnpV4ujVScZKzT2aP33A5penc/YH9nf9pTT/G/hyzluLqJbryY3mj8z1WvbtH8cWt0m5Zo3X+9 + X45/st/HD/hX/ii58OSeY/8AwlUMdpDcRbWltFO5mZd38XzV91fsz+C7z4GfDt4dU8Zx+IYrO/nlmuL2 + OaL9ydqrG22X7w/9C318TD6M9LG0o4nLcY4qV9HBNRd9rqSdt+h8Hm3iIsHjKmHxNFe61Zp2bTW+qZ9j + aX4kt5f462LbVI5B9+vjO3/aUs7+/vIrV7jStnyL5Unm+Z/Du+ff/wChVt/Df9ri60bU5rPxGkc1v52+ + O4ig+aOP5V2tu2VnP6M/E2G/g4iE1a+qkvyTPHj4nZRVlaacbu26a/NH1v8AbV8v79eM/HDVVv8AV/EN + qt/bQ3VtZ232eFLvyrj52bdt/wBlqp65+0noNhYJcWs0c1vNt8tvLuFXcf8AaV2r53+KfjPTfjb8S/tD + WEkO/dDbyXUexJ1jX7u9m/2t1fZeGPhZnuR56sZmnJ7PlcU023zO1tHFaaWPN4m4owOMwDpYRvmum76K + y31uy1/ZV9pcd5LE/nXEbsyt+7lb+Ff/AEKqen6pcXOoRqqSJFM/+sdPlk/h/h+VlavLrjwfrHhKBri3 + muZlhm+XzZJFaNfvfxZ/u1t+G/i7qlhrENveWdzNs+dZt/zc/L83y7flr+y/Yvl91pn89+2Tl7118zv/ + AIgahDqe6K40r/SIdyKyfMsi/LXMeH/C/wBg0+5uFmuU877q/Nu+995V5/i/z/f7D/hY+m+I7jybd4/N + R2uI18holjw33m+asTxJ4guNLsfs7eXeSvu8zb83y/w/Kv8ADU01JLltY0qOLfNe4+38QXGjRzKt5HDc + Pt27I1b5v729v97/AD/HwfjSO417UUWW5+2eYn3vm27j8zfdb71d5b3kmveHvtEtrHt/dp5nmN94fK0n + zfM33t3+fnx9Rk0nS7iZrpLmZnh/g+7/AKzd8rVrT0ZjJtrlvoeXeH/7P8B+P9KlsJo4biab7FM0Ue1t + sm6L+L/e/wA/cr0K48L2vgyzazt9Nuby/tpvKkZ42Zo9ny7mb/gP8P8A8RXJfFy8h1TR0XSbCSG6R/Na + 4ijXbwzbf4R81bng/wCKsnxG8PvbtNbf8JBNcsmpW8UfyxyBWbzF2/dhf/x1v+AVjjbrkr9IvX0at9y3 + ZpgrNTodZLT707foa/gPxBea9qD2vnRwvbQtd/3fL/vfNuH+f/HNi8+Il14c1TypH87fc/LNFP8Aup1K + 7Y42b738W7/e/wBr7/GaHbtayTXHnedPpvyN+72+Ywb5du75W+b/ADtesTR9c/4TKSaW6m+WaGOK1Z9y + xR4/uxsp+Vv4f+/f9yuiEYT95aoz5pU/dtZo63xT8VPt95uuI5IfORrf/Wea3Ee35vlP93/P3K57WNXs + 7rS3hby/tFykcsP7zcsf8Xl7mb5fvbv876LjUW1mOGKJNkiQ/aJJEk++w3fd/wB5v4v/AGpWJ4ov7eOT + 7PKn35vm8qTc0jBd38P+f+BVtGMTOUpMpyfESOG4tkXy3VEVJJE3fxL91lZv4dtVrjbFb/aFt9ifM8Mf + l7m3bv8Ae/hasTUNQhl1DbLD51w21/Ji2s0ce3+8q/3f/sf7ldbHqH9taXDb2aSeVs+aZ/8Alp/ut/d/ + z/ua2sRFtKxyVxGsWobvJjSN9s23+KRT8zfxfw7t1cH8eNRvrT4T6rYLbR3DaxbfZIW8tf3ckzL8u7+8 + scW6u81DUGi1X+xpYY0upkk2yJGrfZM7vmX/AHv4f87/AD34oePJPG/xN0HwbpaRzaX4YvG1DWJovufa + PL2eTG3/AEyj+9/tVxV5RqVIwV9Hr81Zfmd+Fi4QdSVrW0v5a/pb5mJ4b8Frf6PZ2sqbLp4fKZn+XzG+ + 793bVDxB8N10stLdfvrdNrrv/wDQe38VenXngiGWS2ZUkSFkXc3+1ubb/n/KVvEngO+uvDflReZ8832i + NXfd5fy/dZl/2v73/wCx2SjHqYxqS6Hz9Jpa3Vs8v2ON1++q/wAO3btrj/GGj3V/ZTRQp9xG+VPevYLz + w/NFvaVtmzair/zz+X/x6ub1yw+wSfN5fzpv8t/+WjV5uKppqyPUwtS2rPlq40uTQfFH+kL9999ezaX8 + SI7Dw8kS/wByrPiz4QW/juOZVuba3m377WZ/u7vvfMv/AAKuMuPhH4q0a8+xzaPfXLJ/y0tI2uIpF/vK + y1+c5tg3hpupL4X16L1P0DK8V9Ygqa+JdDE8Uag2qXDytXlfiz/iaeJIbVf7/wA1fTWh/sf+NvF3hfVb + 9rD+yrews57tWu49rTskbMsaJ1Zm2181+C9Pa6vftlx87P8APXh4XHYevKcKElJxtezva+q2PYxGDr0Y + xnWg4qV7XVr27XPcvBdvp/hLwXDKvlpLsrifFmqSeJNU/v76Zc6pJLbeXv8Alr9If+Dfv/glb/w0n451 + P40ePvD2o6x8Nfhqr3lvpkFr503ivUokMi20SMR5qpjey5GWMUf9+ugxPRf+CVX/AAbv+GviX8EtJ+Jn + 7Rd34o8P6P43ntbDwzomkI8V0zXDhILq6kSOTyY5SyqgO1BuUlgXUH76+Bn7Fv7LP7IPhm+b4R/C2817 + xFrlvbaTD4m1OxvNUnkbUNPnvNsck1vdurLZxiV0htHUfaIFkXa0hj898V+K/En7SPxH8I+L/F/hHwv8 + R9Y+I+iXWl+F/C+l6jc6e2itbXLRpc3CIRIYTIt0/wA821l84mSMRAL8tUAFFFFABRRRQAUUUUAFFFFA + BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAdB46+LPir4ofZf+Em8TeI + PEX2Hf8AZv7T1Ga8+z79u/Z5jHbu2rnGM7R6Cse81a61G2tIbi6uLiHT4jBapJIWW2jLvIUQHhVLyO2B + gbnY9STVeigDkf8AgsF+w54o+BnjnxB4/vP7H1Lw78SoLbWbfUdEkMmmvMyr5sULNz5as6lCeTGVNfnD + qFv5WopX9Z37a/wu+Hv7ZPwH8TfDLV/EXhddS1W2b7DvvYWmsboXH2OKXZu3cXn7g8ffJT73FfzE/tR/ + sueKv2cPiXqnhXxPpdxp2raRM0Txyoy+Zj7rL/eVvvK1AHEaHGpt/wDZevPfiZ4kXwbqHy/9812Hh/XP + 7LuPLkqHxx4H0/xlsllf7lAHGeF/ihZ698qvsl/uvXSf8JhJFH9+uS8WfB+zi0drqzk8mWH7tctZ+INU + 0v8AdS+Xcqv9/wC9QTzM7vXNUa/31z2j281r4otriL/li/mt/uim6X4w+1XCRNZ/O/8A00+Wujt42hld + mTZFv/g+7JiuPGYhQjy9Wj0svwjrTUuievyOq8Pah/xMPtSvv3/OrfLt/u/LXouj6g0ttCq/IsybJm/1 + rSf7KK38VeS6HuiuNyr/AMB/h/vV3Xhq8j8+Fbi5kh3v803mfN/wFq+PxNFPY/SMDiLI3rzxBJoOuWd1 + ZpYothcx3Ei/d8zEis0f3v8AZf7tfeUnxo1KX4V2CtNs3/8AHx/pf2hZFCr5W1m/3q/O7XI1tR9o2bFd + /s+75Wb/AGvl+7Xv3w7+KjeN/hHZ+a+m/aNH22n2i0jW3aSNPlXev+ytfo/h3iIqXsJbXv8Ag1+Oh+T+ + KWDlJRxMOqs/RNP/ADPadH8aN/x7yvsZ/nX8G+98vzV0/hf4kSWkiRXX+k2e9dsf8UeN33Wb+81eOaWk + fmJMs0jqn3ZPLbdt3fxL/wDE10MfiC3tbPzWmj3puhk2fN5nzfw1+zyjFqx+Crniz0vxB8TP7auLawt7 + jfLv3xq8nzcfw/L/ALVekeF9UuLD4P6Vpt5bXNteW1m25ZY90UizSM6/d/iavl3wHcah8afiBa6NocNt + 9o+/dXX/ACysLf7rSNt/i/ur/E1fW/xM1CO68P2zRPJuhtoLS1kt5PNinhjXa3+63/Aa+azOpH29Ogt2 + 0/SzTXpdXfyPoMvhNUKlZ9E/mmmnb0diHwX4k1a11D+zdSsI7mzufkZvl3R/Mq//AGX/AGzrs/B/w/8A + Dcul/aLeaW5aGHf5csaxNw21lbdxXJaX8TIfLfdDHc3EMMb7n+WXcn/su1qfefESSLV/tVhZzXHyfaG3 + /KsmP9n+8v8AvV21Iyk9Fb0MKNSCik3deZNJp8ejXm5Yd8LoyK0Uat5mfl+Zefvbv8/x4niDR7G/uNtr + 5m6GFUaN5N0W5G+X7y/L/u/5e5H400+YXMsv277PN95YpPm2lfvbj/tUyTxPpd/ePbyzRpLN8ir5n7rn + 5vv7d277+aqPOnqhcsGtGjj9c8Uaho2hpbzQ/wCpmby2injVt3+1tb5v8/8AA83T7Oa/uXuJYbl5f++m + 27v94/drsPHGh2OvaRDKtzbJefLthSRmbyyrfe+Y1z2j+G28Mx7Lh47a62f6zzPlkYtu2q1dEJRscc6c + r6lbxpb6ppejvbwJJC2xkXfG23j+L5v7v+f9jxmPT77wv4gh1bTdV1LStUm/ereW8m2WNT975lx/wL/O + /wBL+I+qatLHIyzSfP8AO393b97ay7awfB8lxdXnm3U0kK+TvX93u67WX/gPzVtH4bMnVPQ5jxB8aPGX + w+0v7LqVtH4ntbmHyvMeNbe4k/vL8qlP9lvlVqPD/wC0ppOjWe3VtB8QaVKm5Jri4/0qKNT/ANc2b7y/ + ebb833q6r4kada3VmkVusaXCbnbfHtWTLbVrEj0fzfDd/a3FnbMzvs3eZ/D/ALO1q5ZYCk25xvF+Tav6 + 2audUcdNLknqvNL8LrT5Gbp/7WHh+6uN1r4ksX+2OqSR3sixNH83+1s3f3fm2/8AfVWdQ+JHhPXrzzYv + EPhuNod3/LxHt2ldzfK0vzL/AHt33v8AYasq8+D9rLpkKy6XGipti+eNW+bd/u/5/wDHKzY/2e9B+2TN + cWFujf61fNgXbt/i3dP8/wDfdVHC1YWtUeia6a373TfXoVLFUZttwW/R22+aNu88YeF7qOG4bxh4fSa2 + tmeSRLuPzZGP8PzS/Nu/iZv++f46oW/7R/gvRtDSW41i5vFR5PmtI7hopM/L95Yz97b/AHv/AIuqGv8A + wD8M39vDLb6bY+UyLtby49sbf987v8/8AqHUPA9rpWnxxW9nsi+Xy1ijX93/AHm/76qY4Wo/jqN9tl+V + jT61QSXLD8/1bMH4ifHD/hZdhZ2/hLTdWs5XfZeatcSfZ/Lj+78i/NKzbf4mb/gNHgvT/wCwY5Ft7OP+ + 40iSbZd3+y3+f/Z67zwX4Ps4rdIJYY5l3ttjT723b/D/AJ/+w0r3w3b/AGfd9jke3d28lkk3Lyu7b83+ + f/Z+ijh40o2X9f15mNbFc/T+v67GD4f8Uf2Xb3NveTRzb4di/vG/d4+b/wBl/wA/wXLjxJNFIkqzRoru + 0twvmenzK3+1WVH4Xm/sfzd8n77d+7SP5t38S/N/n/2eteeH7zRrPcyfKqM6742b5d21l/z/APt6ShYi + E7nK+PNchi3svlvv27v3n99dtee+NLibWbP/AFO9flRVST5uNvy/NXoGs+C5NZk+58u/7vlsrcL83/oN + btn4Ds9L8FzXF1Z75tiuzRfd8vb8vzf/ABNcdWk5bs76VZRfu7nzreafeWOnpcKmy3mf5d8laWseNPiB + 8Krz7LpKWNxFc7pZGSRvkx/wEf8AjtXPip4oj8yG3t0jfzn37f8Ann/d2tWx8UNL0mK38JLZ/wBpf2o+ + myPqX2idpVkkeRm+Vd3y18lnuVUsfD6vUScOq72asfXZJmNbBT9vCTUradbaanKyfHT4sS280txc6bZr + D/rFfczf5+avItc+Gc0SXmuM9ukUz+bJDaR/L8/3mVa7bxhHNrvif7LFNJDYI/mrs+RpFH+7VzzG1mzT + Tdmy3tn82NU+XzMLt2vtr57C8K4LBqUsNBR9Ovrse3ieJcZi+WOIm5K/Xp6Fb9l/4R+H/Hn7UHw58Jas + 8l/a+JPEOl6feW9vJ5Uvk3N1FE6q397a1f16/BD4deEfhN8MNL8M+BbPS9P8L6CrabaWun48i2MLtHIm + QfvrIjhyedykHnNfyM/sOeOP+Fff8FLvhLq1xbfb7fTfE+j3f2do/wC5eRNX9RnwD8W6X8F7z4xW9hqW + n+JriT4qw+fFb3CRva/2tLp0J3BS5HkyzTJzje9rIvyEMFyx1FUpcsfM3wlSU43fkfmP+01pNroH7SPx + CsbG1t7KxsvEuowW9vBGI4oI1upFVEVcBVUAAADAAxXD1sfELxrdfErx9rniK+jt4b7X9Qn1K4SBSsSS + TSNIwQMSQoLHAJJx3PWseuI6gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK + KKACiiigAooooAKKKKACiiigAooooAK/TT42fsx/BP8AaU8G2uh/Fi+1rxX4v1q4sjJfPbyTaj4ZuLyK + 2ht7WR4LSBbOGRinlpdQwiR3kYpuLhfzLrsP2eraG9+PvgeG40v+3LebxBYJLpuyJ/7QU3MYMG2VljO8 + fLiRgh3fMQMmgDwf/gqt/wAEXW/Y58bNJoOvfbtBuk+0W811A0TR/wCyzLlflr8+/EnhfXPC+9ZYfOiT + /lpbyLKv/jtf1r/t5fsrr+1X8EdR0WB411GO3k+zq6bklY4+Vvyr+b79rP8AYX8XfCXxXrdm2lX0Nv4e + 8tLqSWNovMkP3tv+zXj4jMKuHq2qpOL2f+Z7GEy+liqfNBtSW63/AAPkW88SMbP7Oz/L/drBuLeOWT5a + 9I8QfDeYRu108nlOm9Wi+b+Kue/4QBopHVfn2bv3n/oNaLNaTRp/YdZOzZytnoTfaEZfvP8AJ/s10KQN + ax+Uv77+P5Pu0yTS5tP1B4tmyJ3+VXrY0zQ5JRt3/upN26vPxGI53zM9XB4X2ceSI/S4/tVuit8k33G/ + 6aVvaZIsdwm6HeqJsVk/5Z4Wqen6fHaecvnfKn+83/j1PvJIzZ7meRFTdtX/ANmrz6jUtEexRi4q5NrE + sNrp/k/aftFw77vkj+bn5v4q639nfVNU1DxhcaTput6b4biWHe1rqEbS29+wb5lXZ80f3q4z4f8Ahtfi + r47s7CKHyW2b5lT+6nzM1dD4j+GcnhLxB59u8kMsM3+7X1XDlGUZ+1TtqvwPiOLsRCpFUWr7/ifZOn/s + 9eONZjsNN/tvwAkVz5cUc0U8n8fzI27+H/vquz0j9h+HS7j/AIrfx5Ypb3O7zLXR41/eSJ8vzv8AN5e7 + +9tr51/Z7/aIvPCN3bLqkP2+zRNit8rNHj+98tfScvj2z8U28lxZ3MnlXO1Ifuqu1Puq3/stfq9OOMrR + TjVtp2Tf6fgz8fqfV6UnzU766a6W9bs7DwvH4Z+FXh/+yfDjx6XpEbs/meW32qST7rb92fM3f9NGqtb+ + PJNe8WQyx/ubNH8ry4v7u373y/xVwGoa4v2jy1mk2zbfLZfl/wA7dtYMesSRXkbRzSeam1PM+60ldODy + unTm6sm5SfV/Jb9dO/yPNxmYVKkFTUVGK7ffbtb06nt//CSWdvqH+kXN1uhm+ZbiD+E7d26r8fivS7rV + HX/QfuMjK+7du+9/CwrxzUPFlxqkiNdJJu+X5vM++27+LNULjxJ9vvHVvvR/dZ93/fPy/wDxNelGCe55 + /M1qj2b7RZ3V5c7o7l7VNsq/ZJ1Zfu/e2t826sTUPCHlXD3VneSIq7UVX+Zp8Lu2rXMfD/x4umXCLceW + 6wv8v7v5d235W210+qePLeK5ha3TeyOssP2eNtrsPl27i33aWqehpG0lqGl+H5PtnlKv2O42fKvmMvlq + fu/d+7V+80vUotQs7iweTzdkfmK+5YN0a/7v3ttTap44tb+zS8lh8mVEXzNm1en/AKDtaptL8SNrMfzP + JMnk75P3m3zF3bd3+027/gVRzN7lQik7IxPGHhrXr+S8klmtnlR18xfL2rtdfl+SvOre31LT591u8kzQ + /OzP83mKjbfmavS9d8SebG9u15F5qQ7ZNk7SrJ825Vddxb/P+5WDp/gOOWR7iz1X7HE6breHzF/d7V+7 + 975vmrSEtNSZRd/dOM1TxJdX7+bLbyPu+RmT7u3/AOJqnqniTzbNLXyZLWL/ALafeHzf+hV23izS5NBv + HiivI5pdnzbNu3aV/u7u38NULPT5IrdPtVtbbN+3ckn8RWtIyiRKLTsZXhO3uNf0d/sv3XdXk2bmWNv9 + ncv3q6HxXZr4SvPsd4u9n+RWln2/L91fk3f3t/8An567n4d6gvgjw3pt1YJfPsvPttxJaRrtghKtE33l + f726uG8YeKLfxH4ouftCXNyskzbd8irLH/F8vTdXFTxjnXdNL3Vf8LdPn+B2ywahQU2/edvTW/37FC4k + s7CzRN1xDvRfOheTd8o+Wue1TxZpp1Da3mPEn3mf/loxbd97/wBmq/4z8HwxW73/AJ0j/Iz/ACSf6z5f + 73975qoeG/AVrrOy3kuZE3uzrJL8y7du35q7FI5eWxzd74stdFvE+xpJCr7n2/Ltjbb+Hy/5/wBzUs9c + uNUubqJUuUiTbt/efxfw/eqxrfhNvDmqfctnXYvlskasv/AttZn+kRWaMqRv86u37v5v92nd9yuVdEaX + 9uXGjXH2Vnj27PvS7tvLf73+zWl4k8eLqnksvlx7EWKT95t6t97725vu/wCf4MTT9Otbo3Kzps+T7zyf + 6zPyqrLXH+ONcbS7j/Q0/wBS6oreZ/rF2/w1MttTSMbuxveKdcXR/OaJN9wjt5kk0m5o22ru3bf4Wrg/ + iRql1LcRrZvsab5PLST/AFf/AAFa2NMs7zxTcfZW8tLfZs2p8rbv7tdzpfwT/sHwnNrN5b7/ACbZXhZ/ + +W6n5l2Vzyi5fG7I64SUXaKuz5ps/A8MXinS7e4fzri4mjdm/wCea/e210/xo8Lx6f4g0G6/eQrfJPbs + zx/3JP8A7Kuo8NfD+bXtcudWuP8ARokTZGzxs3l4+b/2Wsn9rjWF1mz01rBL6ZdDeRJrh/8AVfP8zbVr + x8fJU1FpaX/VWPXwN5Sd30X6s8x1zR1tZIZYvnV0+9935v8AZrN8J2cct5MstnHcwwwttWuh0uBb/S02 + yb9/8P8Azz/2t1aUWiR6X4XmuPuN5LRbl+7Jn5a56sU4XR1U/iPTf+CHX7CF1+2d/wAFMdDuJpvJ0HwC + lp4j1MP3htpo2WL/AIG5WP8A7+NX7aftA/sa6Z4n/wCCj3gq+8ZXlv4k0n4pS6mZ9MhtpbBbOOw05RAp + lSdndsCMswKAshO0K20eL/8ABrN+zB/wrn9lbxh8Try3Md18R9Y+zafI6YY6fY741P8AwKd7j/vgV9of + GL4GeMviJ8R08TS+LvD/AIU8SaXdnS/h8kKi4TT4pSjX91KssY+03ktnFcBbcDyo1jzuLZmT4nMKnNWa + WyPrsDT5aSb3Z+P9FFFcZ2BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAVY0nVrrQNVtb6xuriyvrKVZ7e4gkMcsEikMroy4KspAIIOQRmq9F + AH7wfC7xFr3ivwHY6h4m8Of8Ilrdx5n2nSvt8d/9l2yMqfvowEfcgV+BxvweQa/MP/gtz8VNO17XrjRr + azjhVNsV5cS7ts+Pl3MvRlWv1C8canJovhDULuGSOKS3t2kWSXOxMDPOOa/CD9sT4i6h8RvHN/dT3n9p + SfaW/eSyN/rF3fd+bb/wGvk+J8UowjRXV3+4+w4QwXta8qv8q/M+PPGnw7WWS5+zw+TbojbV/h3fL8vz + VyUvwrhurjdFdRps+WRU/wCWi/e+X/ar2yTwnqF1qD7Ybqbzn/eN8q+ZhV3Lu/8AQayvEnhu8it3l1LT + ZLa1tt3k+Uir/n5fm3V8jHFSWiZ+lfU4W1R4b4g+G/k3kOkxW0l5v/e+Y8n+rz/uf+zVyv8AY8dhLNF5 + MqS238L/AHto+9X0b4T8L3HxB1Sz8Mr5f2e/1KOytb67j8qL522r/wB892r7d/bI/wCDcaz+AP7MmreN + ND8datruv6XHDLd2U1pDFa+X/wAt9pX5t277tezl/tatNz6R3Pm82qUKFWEOstvwPyY1CRbWzeKX5bjZ + v8tPmb7tYNxHJfW/+kJsWRN/z/L8v3f4q9O8UfCubwvqCWtxDJDcInzRpI3mxqfm9vlrB0vwXHdXEn2p + 7bytm9fN3f8AfPzVrHERWpMcPObSOJ8L3DaNrlneWDyTXUM3y3CR/wCr2V9P+H47P47+Bv7St0j+2Ii/ + aofutHJ/eVf7teOWfhNtUjtoW8uGFZv9Xbv/ABf7Py/7NenfsX6xrFr8cLPRrfTY9Vl8W3n9jraxW6+b + Iw3bdjMw2162U5p7Ourv3Xo/+AeHn2R+2wzlFe8rtP5a39Tm7jwneeE9YeOLzIYmf5a9I+HfjjVNGs08 + p/49kkf8PH96vY/i38D/AOy9TvIms7qzurN2Sa3uINssEg+9G6N8ytXmOoeH1ivNu37M3/LPZX65l+Mc + Fytn4fjsKpbG9ceKP30Mqwxo6bfl+bvUNxe/6f8AaP4fv/3l4+792ubufO0uRFleVIk+7J9f9mrMmut5 + fy+W67PvfxV71PGabnh1MEr7HT3njSbykt/3f7n5F2Sf+hK1VrPxD+883yblGX5GZ493/jy1iW9xHfvM + reYnyfe+95map/YpIr3bFebl3/d+ZWrpjiOpyywqO80fxJYyptZ9jOn3fLZf4qZceIFis5PKud/z/wAE + bK0aiuY0+OOG4/e3Pkt9/wCf7vP93rW3+7iuHiWTf5Lt5bPJ/rFrb2ye5i8O90Pj8UNiZftkbxTIvyvO + y/KK3PD/AMWLjw5G8UTRzXHzbd8m75tv3uKzbzT4dUjS6iTyVmT7yR/L/u1zuqafDaWafvvu/wAXl1XM + 7WuEaet2dnb6vN4nkmaK5+zSwv8AL+8VflLbvl6bvmrb0bVNUtdQuZ7qzjuVh+WGTz41bd97cv8AD81e + JyaxeWpTbNGn/TT6VY074ialYSOu7zlf52XzP+BbvlrL2yZp9Xd73PfJPEGm+KLyFbxPOVNqf6te/wB3 + 5V/u1vad/wAIbrKXUct5c6bcfL9+P/a/u8NXz3Z+N7jVLiG4/dwsn3dm7vT9Y8SX39oI2z5Xf7qyL2+7 + /wACqlK6urhyJfFqfSHxMs7fwb4fmi0l76awRLaJpEu9qxtI38W770e5N22vHNU1i3l85t8b3kKN8qP/ + AKyQfLu3f7tWrjx43/CHJb3X7lbyZfM820Vmj2LLt2/3Vrz+TULGX/SJJti/88/LX/x2vNy98tWUn8v/ + AAJnoYyKlSio6f8ADI9C0vybq3miuJt1u+3arx/N97+GptK1zS9L0+ZvOke4SFvJj/56Y/2tvytXAWfi + Wxls/Lify9m3a3/PP/vmrkmqR2lv9oab5t7O2z/lpn5v/Za9WUlY8yNPXY3tH1jTdZ1yRZfL2om9oZfl + 89SrVs2Hiix+zvbr/qd/779226f/AKZ+YrfLXlsl5JdXHmt5bwv+9Zf/AB3duX/eqazN9FJ88cky7Plm + /wCef8P3tu2pcjX2Nze8WWkOqHzYn/0iZ9nnP8u9f4vvL8zffrldc8Hw6XvaV43aF1f5JG3ct/dqbWdY + urWRFlmkh8va6/vP9Xj/AGVrKvLeO63tLcSOrvvVUk3JuP8AeqHUKjR7HZ+D5LWwTdLD5jI7Rbov725l + X/x6tvUNY1rxlb+RBcyTRWyK7Q/w7R/6D92vK7jXFiuEitU37/k/i/d5/wCBVtx6xNFpzqs264mdYm2f + K3H975ql1r7nTTpNHSeILy30Hw29h9suYd7/AL7fJtaRSu3b8v8ADXHyXlj4os3s7yaSa3vEX7ZJFHta + PHyfxfwsv3q1vEGj2sXhu3WZ/OaNPmZfmXaf7277u2udvLT7JE/9mwyO03yLs/76rzcZTVVcsjvw8nTd + 4nhvizS9e+FUiNb6Vda54cmdvst1afe2p/Cy12HwN0jxV+2X8QPDPw88J6DdW2veINVj0yztbj+867nu + JV/5ZwxR/vC392uh8afE2TQdLeBUtXvpvk/0f5F3H725V+Vq/Zf/AIIB/wDBK+7/AGWPAdx8XviBp7Q/ + EvxxbbbKzuY/3/h7T32nawb7txNtVnx91Qif36+dx2Inhla9+y3/ABPewdFYiVuW3dn3h+zb8DdJ/Zj+ + A3g/4f6CpXSfCOlwaZCx+9N5a7Wkb/adtzn3Jr4j/wCC1Pw90DwdqvgG+0jQ9H0q+1uXVZ9RuLOyjglv + 5M2jb5mUAyNl3OWJOXY9zXtX7TX/AAVj8J/BHUdHs/Demf8ACbXGoWiX10v2ibTfsUM0EFxbNmS3YP5s + U27AwU24YAnA/M/4o/FHXvjR47vvE3ia+/tLW9S8v7Tc+THD5myNY0+SNVUYRFHAGcZ65NfK8zerPpYx + SVkc/RRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC + iiigAooooAKKKKACug+E3jr/AIVf8VPDPib7L9u/4R3VbXU/s3meV9o8iZJNm/B27tuM4OM5welc/RQB + +5Xx9s5dQ+D/AIgghaGOSa0ZQ0r7VFfhv8bNLuJfGk1hcfZrZbPzEW3ij3Rf99N/FX75alpkGsWUlvcQ + xzQycFHGVavzV/4KTfsLTeD/ABO3izwzpsl5Z3/mfaIU3P5f8TbEVa+P4nwNSoo1qa0joz7bg/MKVGo6 + NR2cnofnXqunta6XtiSNWT7sz/6qNn+VdzNVD/hF9Q/4Ru5uLy8tr/7NuRlX+7/wL7y16RcW9jLo6Wt0 + 8b/aX8r7Pcf3jtrMs/Beoa9qEOm6Ho91rF1qSb/s9lH5su4SKvmMqZZVWvh4wm5WSP0z28EnJu3rsekf + 8E0v2Tf+Go/2qtFtdZ029/4Qvw6n26aF7TzbWRkXd9nkZcJy2z/er9vPGXgq28XeBbzQm8uO3vLc2+Nm + 5VXp0rxH/gnf+zrZ/snfs9aFpupxx6b4o8UyG4v4prsN9ou9kkgSNc43LDGTtTJ2xseikj6M27hX6bk+ + XqhheSe8tX/kfjuf5o8VjXOD0i7L5dUfzgf8FCP2a5Pgt8aNV0P92/8AZs0j/wCjx/6zLbty/wAX3a+e + LvwlJdW8N0qRus3yMz/e/wC+a/Z7/gs9+xPp+paRN480ltR/ta6dmu40g3QRx7cMzEV+R2oeE2tdLmt4 + vL87fuhWWP8A1mW/2a+Px1KWHrOD/pH3+T4qOJw8ZrXv69ThvD/g+G51C8iX99Lvk8n938s7J/D2rnrH + zvDnxE0G4s3jtrizv1ljXZuijbcrLJ8jfwtXp3h/S7qXWIVkhtkW2RnkVI/9Wx+X5dtdP8GP2b9e/aG+ + MeleH9Bh36prFzHa283lstvA038UrIp8ta5sPUl7Wy1PRxVOCo3m7JdT9+vij+yL8Nf23vhXpuqahDpt + 5qV9p0ZtfFGkBY7gny12yKy/LLH/ANM5NyY4xXwP8c/+CD3xQ0LTtQuPDOteGPFkdvua3txusby7X/cd + TFu/7a1+n37OHwR079nX4K6B4P0tZltdGtEiHm3Uly2/HzfO/wAxXd0rtdX1e10HSrq+vrq3sbGyia4u + LieQRxQRoCzO7NgKqqCSScAAmv1jD4qrCKX4dj8JxWFo1Ju219Gfy6fFfwxr/wAJ/FdxoviDS9S0LVrR + 9stpqEEkEiY/2HUVxX/CSN5n+5/DX9T/AMUvgt4R+OfhptH8YeHdF8TaXIObbU7OO6jB/vKHB2t7ivz7 + /am/4Ns/hr8Slur74Y+ItY+H+pSBnWwuN2paWW9F3Hzo/wDvth/s162Hza3xHkVsnv8ACfjPH4z8r5Vf + YyfdrQ/4TRb+33f3E2Nsk/ir0L9tr/gkf8fv2JdPuNY17wn/AMJF4Vs93ma94fka8tYFH8UqqomiX/ak + RVr47k+JE0Um5fkb7le1h8en8LueVWwPK7SR9A3Him3l2XDXOy4/iby6ux+MPKuElWbZ/wBNPMbbXzvH + 8UFl+83zf9dK1dL+Klxaxqvnb1/u11fXGcksGj6W/wCFgeVp6K033/nZfvVPcavD4pt/K/d7kT7u/wD9 + lPzV4TofxQjupPm+eun0jxpZ38aLcWf+xuikrojjne6MPqUXudz4k0Jr47beGNP49vmeq/71YP8AwiWo + WsdtcLDI6/c2pG1WdP8AFFjax7opv3v/AC0WX5f/AEGtu38b/b7xJfJ87yf+WcT7fl2/w9Kr69F/Gifq + bXwsr6f9ui2S7JIfJfYreX/rKls7j7frFsv32j/ifcq8/erS/wCE8tbrZbrYXMLf3X3fvP8AZ+8awbPy + 4vECf8fKt9/97HtXaPmZt1TWzDljeF/n+AUsCnJXt8vxOz8eW8cthZ2cX2lLrydnmPIzJJv+bzP9n7tY + Nv4HjurN2vLmOFk+6rx/987ttULfxpa6pqM0q+Z5ruzrsj2/xbt26n+JPHF1L5duttuV0+b95t/8drPB + 1oxjpr5+mn6N/M1xVBylb8Ow230OzluHWHzE3bU3f89FrP1SOSKTypf9X/e+75n+VqtJ4suLW4/48/J2 + /wDTTd8was3WPEE2qbWZ40VPu7P+Wddn1vyOZYex2Gl6xdRWyRLbfuv4tke7+H+9WrJcXEujw+W9tD/e + 3fe/3d1eY3XjhrCz8pZti/7f/LSmf8JhdX8m6V5HVPu0/ry6DWF7nc+JNQ8q3817z7Yyf9NPX5q5u41e + S6snWJI9v/fP+zWDcagv2h/N+dnffuqzHeQmP/lmm7+/XNPGX6mscOkrIms5PJdPm2N/z0+9/tVq2fl3 + V5++mk3ImxdnzNurHt7+1i3ebNHtf+H7tZV58SIdL3qs2yOs/rSNo0fI9L1zXI9Ps0X+F/8AV/7p/hrj + NU8YTXVxDY2aXNzdXLrbww2kbNLPIW2rGqrlmZmavW/2YP8Agnf8a/237CTVvDmgt4Y8CwK0954t8TSP + p+mQwqMtKrOC0qqASWjDAAZNfsd+wl/wR6+Ef/BNmwsvFurTyeL/AB9JcW1l/wAJHqFqxW0uLmWO2jS0 + t13CEPLIi7/mcbuXCAgeXjM4hDRas9PB5XUnq9EfPP8AwRn/AOCF118L9f034vfG/S7f/hI4dt34d8Lz + /vf7Hk+8t1dfw/aF/gj/AOWf3m/e/c+6P29vhR4k/aN0Lw18NtE0XT20/wARXb32q+I72IyJ4bhtWiIa + JeM3EvmsiAMCyiVcBWeSM8LftzW/7QXxIg8M/CHS/wDhKLdbRp9X8SXyT2em+HtxKxbonjWS5kJViIVM + W/AAkA8x4vn/AOHfw8+O3/DdvxG8P+H/AIjf9Az/AISvxX/YGn/9A9pLP/Q3P+9F+6P+21fK1q86sueZ + 9LRoxpR5Yn5/0UUVmbBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF + FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGh/wAJbqv/AAiv9hf2lqH9h/a/t/8AZ/2h/sv2jZs87ys7 + PM2fLvxnHGcV+pP7P37RHj24+L2k+B/G994P8bX3i1b681OHQLpGk8ANAGL2V0kQdWj3GCJXd1YStKhe + XajN+U1aHhPxTf8AgbxVpmt6XP8AZdU0e7ivrObYr+TNE4dG2sCpwyg4IIOOQRQB+v3xS/4J6/CP4yau + l/rXg+x+2IpTzLVmtWfPPzbMZNdJ8If2S/h98CPFera54S8M2Oh6jrUMcF29sNqusf3cLnC/8BrzP4Lf + 8FA1+MHxP1fwx4N8H+KPiBoXh3T4HPiezmt7eW+kZIxmaG5W0iiZnMwwrAsYmKR7MlOgtP2xfEkn7Qt3 + 4DuPhH4oimTRRrtqY9Y0yS8mt/NSEu8RnWBF80yLxcO/yqdgDHbyxwtGMuaMUn3sjqlja8oezlN27Xdj + 8ufif458feBvjjqP9r+MvEF74u8IXdxow1dNXuZJ4fKklidYZ2IkEZLSYHy5DtkDJFZ+gfEe88V+KvB9 + n4y1bUNe8M6DdwQrY6nqd19ltbPfGJIkKCSSCMxoFJhQsAo2qxVRXP8AizTf7G8ValZ/2fqGk/ZbuWH7 + DftuurPa5HlSnYmZExtY7E5B+VegsfD2TTIfH2hvrUNvcaMuoW5v4p5pYYpbfzF8xXeFXlRSmQWjRnA5 + VScA9Ryn7daB498HfHLSdSs9D8ReH/E1vCiJeLpuow3fkB923f5bHbu2tjOM7T6Gvif9or/ghH4Z+KHi + G81Lwx4muvDf2rbm0kt1uIjk/P8ANwR+FfTvjT/goh8F/AGqx2eofEDR7iaSITK2mxzalEFJYYMlskiB + sqflJDAYOMEE9R8L/wBp7wj8afsMnhmbxBqVnqXmfZr7/hG9ShsJPL3b/wDSZIFhGCjLy4yw2/ewK48V + gaOIVqsbndgsxxGElehKx+Y/wl/4IDeKfEfizxNZ+JPES+G9NsH+z6TfW9us/wDaCk4LBNw2rsX9a+9/ + 2IP+CfHg39hbw9qEPh2S+vtW1pUXVNRun+a72NIyYT7qY8w9K94u9WtNPubSG4uLe3l1CY29qkkgVrmQ + I8hRATlmCRyPgZO1GPQE15R+1D8ZY/h94R1L+2tP+IHhvw5ZXdg0/i7RZdOKWebmAq4jeZ52j8wrHIht + n3KZBtZTk44XKcNh5c8I69+p0Y7O8Xio8lWXu6aLbQ/LD4j/ABm8VfDz4p6tpfhf4jeMLjQ/C93d6NoN + 3Dr8z7dOWYLGsbxsE8t0ggOIwEbYhAwFxx9z8WfFV7oOqaXN4m8QTaXrl21/qVm+ozNb6hcMys00yFts + khZEJdgSSqnOQK5+ivSPJO40n9pv4k6BpVrY2PxC8cWVjZRJBb28Gu3UcUEaAKqIquAqqAAABgAAVj3f + xY8Vah5/2jxN4gm+1eZ53majM3m+Z9o8zdlud32u73Z6/aps58x88/RQB+/k0KyRsrLuVuor+cj/AIOE + P2C/Df7Pv7Xt9qnhnS7fRdJ8YWy6rHaWsaxQQTH5Zdir8qqzq7ba/oJ+Bvx18N/tEeBF8ReFr37ZpZur + i0ywCyK0UjJ86Z3JvULIquFby5UJVScV+bf/AAcvfCtdY8LeAPEWzzF3zafIf7mz51/9Deu7Lbuuo99D + hzDSk5Lofz76x4Lmtd/8DVlf2fcRSffkr6B1D4fw6pZ/8e2/+7J5m1f7vzVxPij4XzaNcbl/g/z/AA19 + ZUwM4LmaPl44yEnY83t5LqKT5ZpK27DVNUtY02zVcvdP/vJ9yqGoXH7t1i+7JXHKDidUZczsaVx8T9W0 + aLczxvs/v179/wAE3v2X/i//AMFN/ihqnhz4dR6bZQaJa/aNS1nVXkg0uxLNtSMukbt5z9lVfWvjPxZq + Mnzr5n/Aa/p4/wCDYX9jXxJ+yD/wTTt5vF1jNpevfEjW5/FX2S4TZPa2ssMEVurr/Cxji8zb/wBNa8nF + YqUH7rPTwuFjPc+SdN/4Nlf2iGgZrr4pfC+GTZ8safbpl3f7RMC1+VPx3+Inj79mX43+Jvh/4v0qTRfF + Xhm8k0rUrfzPNRGH/PNl+Vo3+8rfxLX9lB6V/M9/wdffBybR/wDgo23i6Oz+yLr2j2UW7y9v29YYVXzl + b+Lb/q/+2dctHFVJy5ZM3rYSnCN4o+HY/wBpDVtUjT9zsVE2Ls//AGqmt/jxrH3v9J/3v468x8Px/wDA + GrsNPf8A0P5k3V7VOpJo8mpSimbFx8aNWlCNLc33/A6zbz4uXUsu7fJ8/wDvUy8t1x8yfNv+WrNrpdub + Pcyb/wD4ndXQpy7mfKuxmyfFy4/ieT/v3U1n8W7r7Si281y7O6oqpVy40O3+95Mf+1+7r9xP+DZP/glz + 4e8JfC1f2h/Fui2d94i8STyReEkuoFb+yrONmje6QN92aSQOob+GOMbeHNcuKxDpR5mzow2HjVlyo/MT + 4Mf8E/v2ofjvBDdeFfgn4+vLW5+eO8vtNbTbeTP8Sy3Plo3/AH1X1V8GP+Dbf9qv4qT28nizUvBPw7sf + +Wn23Uv7RvI1/wBmK2V42/7+rX9DHnrSfa1ryZZlVe2h6kctpJ3ep+VPwX/4NUfhroPl3HxC+Jfjrxpd + IMvDpiQ6NayN9P3sn5SLX2D+z1/wSE/Zx/ZlvLe98L/Cnw22qW/zR3+rRtq15G395ZLlpPLb/rntr6C8 + U2E/iDQZ7O01XUNDuJtuy+sUge4gwwJ2ieOSPkAqdyHhjjBwR8/+Fv8AglZ8EPD+gwWd34b1DXLiHdvv + r7V7lLifLEjcIHjj4BCjag4UZyck8tTEVZ/E2dVPD04bIy/2t/2lL74p6Pa/Df4OW+j+OpPGEL6Vr+q2 + fnahp/hy1uw1ujzS2wZI2YmV9zMdi27ExsHUj8q6/Tn/AIcv/Cv/AKD3xA/8DrT/AORqP+HL/wAK/wDo + PfED/wADrT/5GrE2PzGor9Of+HL/AMK/+g98QP8AwOtP/kavff8Ahlr4V/8ARNPh/wD+E9af/G6APxJo + r9tv+GWvhX/0TT4f/wDhPWn/AMbo/wCGWvhX/wBE0+H/AP4T1p/8boA/Emiv22/4Za+Ff/RNPh//AOE9 + af8AxuvQPtNAH4E0V+3P/DK3wr/6Jn4A/wDCetP/AI3R/wAMrfCv/omfgD/wnrT/AON0AfiNRX7c/wDD + K3wr/wCiZ+AP/CetP/jdcF/w68+BP/Qj/wDlZ1D/AOP0AfkHRX6+f8OvPgT/ANCP/wCVnUP/AI/R/wAO + vPgT/wBCP/5WdQ/+P0AfkHRX39/w4z/6qj/5bf8A91Uf8OM/+qo/+W3/APdVAHwDRX39/wAOM/8AqqP/ + AJbf/wB1V8A0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF + FABWxpnxD8QaL4ybxHZ65rFp4heWSdtUhvJI7xpJAwkczA79zhm3HOTuOc5NY9FABRRRQAVY0nVrrQNV + tb6xuriyvrKVJ7e4gkMcsEikMroy4KspAIIOQRmq9FAHQeOviz4q+KH2X/hJvE3iDxF9h3/Zv7T1Ga8+ + z79u/Z5jHbu2rnGM7R6CufoooAKK+/v+HGf/AFVH/wAtv/7qo/4cZ/8AVUf/AC2//uqgD4Bor7+/4cZ/ + 9VR/8tv/AO6qP+HGf/VUf/Lb/wDuqgD658C6tazftR/EKxsbm3ZbbRNDnvreCQERXsj6irPKo6TNbx2g + JYbjHHAPuqmPNP8Agpx+x9qH7Zf7Nk2g6PNZ2+vadeJqNj9p+5PtVlaLd/CzK3B/vAdPvDsPDv7J8vhP + x34j8Taf8SviBb654s+zf2rc+To7favs0Zjh+RrAom1CR8gXPU5PNfLv/BZ3/gt/4Z/4Js+CZvD/AIb+ + w+JPinqMTC1sWk3W+lqRxNPj9I+9VTm4SUo7ompTU48stmfj98SfgLf/AAe8dXfhvxZY6t4Z1i0dTPZ3 + Vqyypub723+JW/hZfl/u15Z478NyWt7c28t1sXzvKWS4+VZP9r5v96vmn41/Hvxt+0V8XtU8feLPFmta + l4q1ebzZ9Qa7ZJB/dVdv3VX+Fax9U+LHjKT5m8W61csn8Usnm/8AoWa+op8TVOTknFP+vkfMy4egqnPC + Xyt/w57N4s0NoNUaL7Tbbd+xWTb+8b/0KuP8Uafb6D5n2q6jhX5k+b2/3q8xvPib4oud/m69qTs/z7vM + 2/N/wHFU9UuI9QkSXfczXDp+8aX5m3f71ebXzWc9bfO53UMsjBau56N+z/4403Rv2oPAF/L9mTTbDxPp + t3cTXu37P5Md1Ez+Yrf8s9v3q/tY/teGSPcr7lcblav4XvDnhPVPiN400rwzoNncalrOtXMdlb2tvHul + nkdtqxqq/wATNX9m3gfxy3hzwHomm3U0c11Y2EFvMyf8tJEjVWryZ1HN3Z61OKiuVHtP9upX5Gf8HXng + Twn4v+Cfw31K6t9ni6G/ubWzu0fb/ovlq00LD/abZtr9FpPipH/fr+e//g43/ac1jxR/wUI1vw5dXlz/ + AGHZ6Pptvp9u8jeVbzRq0rMq/wC39ppRbTuipRUlZn5+6HYSfbdv32rrdPfyo/Kl+69cx4kkvvC9tZ6p + a/Zv9J3eZHLt27tv+fu0/wAN/HDQdV/daxDc2Gz5FZP3q7vu/wANeth8akrSPJrYOV7xOnvHWKTa3zr8 + 21qrf2gv3d/y/wCxVPxD4z8O6ncTNZ6xprr8qR/Pt8z/AIDVDwv/AMV54ssNB0by7/VNVvI7Kxt4p13X + c0jKiKv+0zNtrtljKfc5Y4WfY7/4P+CNY/aC+MnhjwDoMMc2s+MNVttKtf8Apm0kix7m/wBld25q/ru+ + DfgXR/gZ8I/DHgvQU8nR/CulW2lWcf8A0xgjVF/9Br8cf+CIf/BH/wAQfstfFi2+MHxYSxsPEGm20qaD + 4fR47qWwkmXy2up3Viit5bOqxr/z0r9Xv+Fkr/fFeTjsR7WStsj1sHh/ZRfmeof28tN/t1K8x/4WF/00 + qT/hPP8AppXCdh6P/bS0f20tedR+OP8Abp8fjT/boA9F/t1KP7dSvPY/GH+3U0fiz/boA7z+3Uo/tiuJ + j8Sf7dTR+IKAOz/tdaf/AGstclHrq1NHrC/36AOp+3LUkd5XNx6h/t1NHqDCgDoY7in/AGmsSPUKsx3l + AGr9o+tP8+s2O8qaO4oAvx3FJ5lU/MqTzKALnmVJ5lU/Mp3m+9AFrzK8B/4defAn/oR//KzqH/x+vdvM + qTzKAJq+f/8Ah158Cf8AoR//ACs6h/8AH698p3mUAfAf/DjP/qqP/lt//dVfANfv5RQB+AdFFFABRRRQ + AUUUUAFFFFABRRRQAUUUUAFFFFABX1t/wTt/4J7eH/2sfAHiDxH4p1TWLKxstQXTbFNKuY45TIsYkmMo + khcbcSw7SpzkSZH3Sfkmv38oAKKKKACvwDr9/KKAPwDor9fP+HXnwJ/6Ef8A8rOof/H6P+HXnwJ/6Ef/ + AMrOof8Ax+gD8g6K/fyigD8A6K/fysmfw3pUXib+3f7N0/8Atz7J9g/tD7On2r7Pv3+T5uN/l7/m2Zxn + nGaAPhf/AIcZ/wDVUf8Ay2//ALqre/Yq/wCCYvjb9nf4yWvizWfHGn6dHYfI1noPmT/2tCwbfBO00aKs + e4RHARycEqY3VHH2FqHiC4i+7HXPap4kvsP8klAED/sw/CaL73w3+H//AIT1p/8AG6k+Nfws8A/HfQU0 + 3xjoWn65bw58l5lKXFtlkZvKmQiSPcY03bGG4Lg5HFcxrHii8irmNY8YXX8T0Ae2XvxIsbb+Ose8+NNr + afx14JqnjSb+J657UPHDf89KAPoTUPj5HF916x9Q/aE/utXzxqHjxsf6ysHUPiJ5X8dAGr/wUo/4KcSf + sjfsz6x4gtZv+Jxco1ppq7/+Wx/i/wCA1/MN8a/iH4q+P3xI1XxNr15falqWpTNcTTSybmkzX6Zf8FzP + jIvi7xB4S8Jed8qQ/wBpyR/w/elRf/QXr42+H+h6HFb7rqH5qBS1Vj5juLO6sPvrKlVpLhq+gfip4L0u + 6ldrD5F/u1wcfwvW6uNq/PQLlPOoLdpa2fBXw+1r4l+ONK8L6DZyXmua9Mtvawp7/wATf3VX+9XVa5b+ + H/Adv/pFzHeal/DZ2/zN/wAC/u177/wTn0uz+HOqXnjLUoY38Qaxut7Nf+fC33fNt/2n/wDQaA5T7P8A + +CXf/BKfw/8AsZfFSbxt4q1jTfGHiawRf7Bkigkii0ljGyyybWb95I27au5fl+996v0Xj+MDf89q+Kvh + /wDFdrq3VvMr0Kz+JGY/v0GnKfRV58YGij/11flr/wAF6P2Q9a/aR8SeHfiJ4Is7nWNctof7M1Sxt/L3 + eWm50uvmYbtv+rb/AIBX1jrnxHaG3/1leRfED4ySWsj/AL6gTVj85fCfhex+LX7K9jqVxDH9v0q5ksbq + P+KORPm3f8CWvGbT9n/VvEdxNLawxpap/E/yLtr6E+KHiC1+DfxL8T2FqkcOjeMHXUIV/hjuPuuv/At1 + ee6xrmpX2j/Y7X93FJ96glq545rfg5fDlx9nle2uW/i2fNWaNL+yyJMsPksnzqyfK1ew+F/hda394n29 + 9m/7zV03iT4J6TaWe6zm87/aoFyn35/wTI/4OCrO60Pw78O/jQ91YatbIun2fi55N1vf/wAKfbF/5Zyf + w+d8yt95tlfqPB8RPN+ZX3rJ/FX8t3ij4d+UXWv20/4Jb/GzVPG/7D/gNtcmkm1KwtpNMaSX5mkjtppY + om/79olBR90x+PG/56Vct/HH/TSvGbPxYv8AfrSs/FH+3STuB7BB40b+/Vy38Yf7deS2/iXP8VaVv4kx + TA9Ut/FGf46v2/ij/brzGz8Qf7daVn4goA9It/EH/TSr9v4gb+/Xntnrn+3WlZ6xQB3lvrlX7fXP9uuG + s9Z82tWDUKAOzs9YrSt9UrjLPUK1bPUOaAOqjvKuR3lc3Z3DS1pW/mUAbcd5VmO8rKt42q5b27UAX47i + rMclU7e3arMcdAE9O8yjy6fHHQA+LtRF2o8r2qaGOgBtSVkeO/Hei/CzwZqHiHxBqFvpWjaVEZrq6mJ2 + xrwAABkszMQqqoLMzBQCSAfGv+HofwJ/6Hj/AMo2of8AxigD35OtOr4B/wCH5n/VLv8Ay5P/ALlr4BoA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACv38r8A6/fygAooooAKb5lNooAd5lHmU2igAooooAKK + b5lHmUARyeX/ABVka5eWMVu+540erOsaXJqke1ZtlcT4g+C9xrO//T5KAOS8ceILW1kf99HXmHijxfD5 + jbZq9S1D9lia/k+a/krNk/Y3jl+/eUAeCa54o83+Oub1DxJJLX0//wAMXaf/ABTSvU1v+yHo9r/yx8yg + D481TxBcfwpJXJeJPEl5FHJ8klfej/svaXDH8tnH/wB+6xtU/ZP0/UN/+hx/9+6AP56f+CsHgPVvHniO + z8QQ/bo7zSk8qPZH/rI926vi3S/H+taXp+2W/wDm3/Mrf5Nf1R/ED/gm/wCG/Hlu8V7pVtMr/eV468D8 + Wf8ABv38KfEd49xN4S03zJP4kj20Afzn6z8SNYu/+XyP/v3WbJrmra8nlNf30yv96OL5f/Qa/ort/wDg + 3r+FdrJ8vhWx/wC/ddDof/BC/wCHugyf6P4bsU2f9M6A5bn87vw7+DeqapewtZ6Vcu3/AFz3f+PV9e/s + /fs3+Jv3MtxZ3P8AwOOv2h8N/wDBKvwr4X/499Htk2f9M67bR/2FNN0v7thGn/bOk1cFofmn4H+DevWF + un7mSuwj+G/iCKP/AFMlfo1Z/sj2tr922/8AIdXI/wBlu3/59qZXMfmbrHw38RS2/wDx7S15L8TPg34k + uo222d1X7GSfst28v/LtVO8/ZDsb/wC9Zx/9+6TVw5j+c79qn9mvxRr2jpcLo99czWbs+2KPc22vma8j + 8TeF5PKuIdf010+7HcQSL/461f1X6h+wXo+ofesY/wDv3WPcf8E0/C9//rdHtn/346ZDVz+WuTxpqnmf + NqEnzv8Axx1q3HjTWLC3TddSf7O+Ov6Z9R/4JF/DnWf+PrwlpMzf3ntF/wDiapx/8EV/hTL97wfon/gI + v/xNAJWP5g73xTrms3m21uJJmmf7qQbm3V+q/wDwSr1HxVdfs6aDa6pDfNLb+bFH5sHlN5YkbbuXaK/U + bwv/AMEj/hn4XuFltfCWkwsn9y0j/wDia9U8N/sd6L4ct44rXTbaFU/hSOgErHxho/hvWroJttpK6fSv + h/r0v/LtJX2fp/7P9ra/dto62bT4Nwxf8saCm7nxxpfwv16X/l2kre0/4P8AiCX/AJdpK+vbP4ZrF/yx + rSt/Aap/BQI+TtP+CfiCX/ljW9p/wH14n7lfT8HhDyquR+G1ioA+b9P/AGf9Y/ire0/9n/Us/O9e+RaH + HFViOwWGgDxnT/2f7r+KatvT/gP5X3pq9Rjt1qaGOgDgLP4J28X3nrVt/hPaxV5P+3j+3la/sdaVptjY + 6bb674p12KaS3t5LoRxWEajas8yrmRlaQgKgChxHKPMUpz4T/wAPzP8Aql3/AJcn/wBy0Afbtn8P7W1r + lvi38bfh18BLZ38XeKNH0WZIknFpJN5l7JG7+WrpbpumddwIyqEDaxOApI/E2igD9nf2mf2nfBP7JWg2 + V54qn1BrjVPM+wWNjama4vfLaMSbSSsa7BKrHe65Gdu48V5J4m/4K8fB/wAO67cWdpbeMNct4duy+sdO + jS3nyoJ2ieWOTgkqdyDlTjIwT+XtFAH6bf8AD5j4U/8AQA+IH/gDaf8AyVTv+Hz/AMKv+gB8QP8AwBtP + /kmvzHooA++/+H4q/wDRLf8Ay5P/ALlpf+H44/6Jd/5cn/3LXwHRQB79/wAPRPjp/wBDx/5RdP8A/jFe + A0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFfv5X4B0UAfv5RX4B19/f8AD8z/ + AKpd/wCXJ/8ActAH395XtTfLr4D/AOH5n/VLv/Lk/wDuWj/h+Z/1S7/y5P8A7loA+/PLo8uvgP8A4fmf + 9Uu/8uT/AO5aP+H5n/VLv/Lk/wDuWgD788ujy6+A/wDh+Z/1S7/y5P8A7lo/4fmf9Uu/8uT/AO5aAPvz + y6PLr4D/AOH5n/VLv/Lk/wDuWj/h+Z/1S7/y5P8A7loA++PLo8uvgf8A4fmf9Uu/8uT/AO5a9+/4eh/A + n/oeP/KNqH/xigD3ry6PLrwX/h6H8Cf+h4/8o2of/GKP+HofwJ/6Hj/yjah/8YoA93+z/Sj7P9K8I/4e + h/An/oeP/KNqH/xij/h6H8Cf+h4/8o2of/GKAPdPs4o+zivC/wDh6H8Cf+h4/wDKNqH/AMYrz/8A4fTf + Cv8A6APxA/8AAG0/+SaAPrL7Cv8AdqP+z1/5518o/wDD6b4V/wDQB+IH/gDaf/JNH/D6b4V/9AH4gf8A + gDaf/JNAH1f9gj/uVF/ZUf8Acrkv+GqfhX/0UzwB/wCFDaf/AByj/hqn4V/9FM8Af+FDaf8AxygDrf7K + j/uU7+zI/wDnnHXIf8NU/Cv/AKKZ4A/8KG0/+OUf8NU/Cv8A6KZ4A/8AChtP/jlAHW/2VH/co/sqP+5X + Jf8ADVPwr/6KZ4A/8KG0/wDjlH/DVPwr/wCimeAP/ChtP/jlAHW/2VH/AHKP7Kj/ALlcl/w1T8K/+ime + AP8AwobT/wCOUf8ADVPwr/6KZ4A/8KG0/wDjlAHW/wBlR/3KX7BH/crkf+GqfhX/ANFM8Af+FDaf/HKP + +GqfhX/0UzwB/wCFDaf/ABygDrvsEf8Acp/2Nf7lcd/w1T8K/wDopngD/wAKG0/+OUf8NU/Cv/opngD/ + AMKG0/8AjlAHa/YV/u0fYV/u1xX/AA1T8K/+imeAP/ChtP8A45R/w1T8K/8AopngD/wobT/45QB2nkL6 + U/yKteXXgP8Aw9D+BP8A0PH/AJRtQ/8AjFAHunle1Hle1eF/8PQ/gT/0PH/lG1D/AOMUf8PQ/gT/ANDx + /wCUbUP/AIxQB7t5dHl14T/w9D+BP/Q8f+UbUP8A4xR/w9D+BP8A0PH/AJRtQ/8AjFAHvXl0eXXgv/D0 + P4E/9Dx/5RtQ/wDjFeA/8PzP+qXf+XJ/9y0AfUf7Sn7ZfgL9lC2gTxRqFxLq15F59rpNhD595cR7whfB + Koi5LEGR1DeW4XcykV8uf8PzP+qXf+XJ/wDctfANFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA + UUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/9k= + + + \ No newline at end of file diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Program.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Program.cs new file mode 100644 index 0000000..25bfaa3 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TestPrinter +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/AssemblyInfo.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8730fb3 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TestPrinter")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TestPrinter")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a8c4999e-be74-44ff-8320-c95e2eb43c6f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Resources.Designer.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Resources.Designer.cs new file mode 100644 index 0000000..0d2979e --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 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 TestPrinter.Properties +{ + + + /// + /// 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", "4.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 ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestPrinter.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/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Resources.resx b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Settings.Designer.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Settings.Designer.cs new file mode 100644 index 0000000..fac9389 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 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 TestPrinter.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.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/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Settings.settings b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/Ultracombos.printerGrpc.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Ultracombos.printerGrpc.cs new file mode 100644 index 0000000..a78d87a --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/Ultracombos.printerGrpc.cs @@ -0,0 +1,97 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ultracombos.printer.proto +// +#pragma warning disable 0414, 1591 +#region Designer generated code + +using grpc = global::Grpc.Core; + +namespace UltraCombos.Utility { + public static partial class Printer + { + static readonly string __ServiceName = "UltraCombos.Utility.Printer"; + + static readonly grpc::Marshaller __Marshaller_UltraCombos_Utility_Image = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::UltraCombos.Utility.Image.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_UltraCombos_Utility_Empty = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::UltraCombos.Utility.Empty.Parser.ParseFrom); + + static readonly grpc::Method __Method_Print = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "Print", + __Marshaller_UltraCombos_Utility_Image, + __Marshaller_UltraCombos_Utility_Empty); + + /// Service descriptor + public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor + { + get { return global::UltraCombos.Utility.UltracombosPrinterReflection.Descriptor.Services[0]; } + } + + /// Base class for server-side implementations of Printer + public abstract partial class PrinterBase + { + public virtual global::System.Threading.Tasks.Task Print(global::UltraCombos.Utility.Image request, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + + } + + /// Client for Printer + public partial class PrinterClient : grpc::ClientBase + { + /// Creates a new client for Printer + /// The channel to use to make remote calls. + public PrinterClient(grpc::Channel channel) : base(channel) + { + } + /// Creates a new client for Printer that uses a custom CallInvoker. + /// The callInvoker to use to make remote calls. + public PrinterClient(grpc::CallInvoker callInvoker) : base(callInvoker) + { + } + /// Protected parameterless constructor to allow creation of test doubles. + protected PrinterClient() : base() + { + } + /// Protected constructor to allow creation of configured clients. + /// The client configuration. + protected PrinterClient(ClientBaseConfiguration configuration) : base(configuration) + { + } + + public virtual global::UltraCombos.Utility.Empty Print(global::UltraCombos.Utility.Image request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return Print(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + public virtual global::UltraCombos.Utility.Empty Print(global::UltraCombos.Utility.Image request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_Print, null, options, request); + } + public virtual grpc::AsyncUnaryCall PrintAsync(global::UltraCombos.Utility.Image request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return PrintAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + public virtual grpc::AsyncUnaryCall PrintAsync(global::UltraCombos.Utility.Image request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_Print, null, options, request); + } + /// Creates a new instance of client from given ClientBaseConfiguration. + protected override PrinterClient NewInstance(ClientBaseConfiguration configuration) + { + return new PrinterClient(configuration); + } + } + + /// Creates service definition that can be registered with a server + /// An object implementing the server-side handling logic. + public static grpc::ServerServiceDefinition BindService(PrinterBase serviceImpl) + { + return grpc::ServerServiceDefinition.CreateBuilder() + .AddMethod(__Method_Print, serviceImpl.Print).Build(); + } + + } +} +#endregion diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/UltracombosPrinter.cs b/03_RoyalGallery/DotNet-PrinterController/PrinterController/UltracombosPrinter.cs new file mode 100644 index 0000000..c09f7da --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/UltracombosPrinter.cs @@ -0,0 +1,276 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ultracombos.printer.proto +// +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace UltraCombos.Utility { + + /// Holder for reflection information generated from ultracombos.printer.proto + public static partial class UltracombosPrinterReflection { + + #region Descriptor + /// File descriptor for ultracombos.printer.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static UltracombosPrinterReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Chl1bHRyYWNvbWJvcy5wcmludGVyLnByb3RvEhNVbHRyYUNvbWJvcy5VdGls", + "aXR5IgcKBUVtcHR5IhgKBUltYWdlEg8KB2NvbnRlbnQYASABKAwyTAoHUHJp", + "bnRlchJBCgVQcmludBIaLlVsdHJhQ29tYm9zLlV0aWxpdHkuSW1hZ2UaGi5V", + "bHRyYUNvbWJvcy5VdGlsaXR5LkVtcHR5IgBiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::UltraCombos.Utility.Empty), global::UltraCombos.Utility.Empty.Parser, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::UltraCombos.Utility.Image), global::UltraCombos.Utility.Image.Parser, new[]{ "Content" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class Empty : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Empty()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::UltraCombos.Utility.UltracombosPrinterReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Empty() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Empty(Empty other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Empty Clone() { + return new Empty(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Empty); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Empty other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Empty other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + } + + } + + public sealed partial class Image : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Image()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::UltraCombos.Utility.UltracombosPrinterReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Image() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Image(Image other) : this() { + content_ = other.content_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Image Clone() { + return new Image(this); + } + + /// Field number for the "content" field. + public const int ContentFieldNumber = 1; + private pb::ByteString content_ = pb::ByteString.Empty; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pb::ByteString Content { + get { return content_; } + set { + content_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Image); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Image other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Content != other.Content) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Content.Length != 0) hash ^= Content.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Content.Length != 0) { + output.WriteRawTag(10); + output.WriteBytes(Content); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Content.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Content); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Image other) { + if (other == null) { + return; + } + if (other.Content.Length != 0) { + Content = other.Content; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Content = input.ReadBytes(); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/03_RoyalGallery/DotNet-PrinterController/PrinterController/packages.config b/03_RoyalGallery/DotNet-PrinterController/PrinterController/packages.config new file mode 100644 index 0000000..d305c69 --- /dev/null +++ b/03_RoyalGallery/DotNet-PrinterController/PrinterController/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file