diff --git a/CalculatorFrm.Designer.cs b/CalculatorFrm.Designer.cs new file mode 100644 index 0000000..15ae62c --- /dev/null +++ b/CalculatorFrm.Designer.cs @@ -0,0 +1,372 @@ +namespace SimpleCalc +{ + partial class CalculatorFrm + { + /// + /// 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() + { + components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CalculatorFrm)); + main_textBox = new TextBox(); + button_7 = new Button(); + button_8 = new Button(); + button_9 = new Button(); + button_div = new Button(); + button_mult = new Button(); + button_6 = new Button(); + button_5 = new Button(); + button_4 = new Button(); + button_minus = new Button(); + button_3 = new Button(); + button_2 = new Button(); + button_1 = new Button(); + button_plus = new Button(); + button_erase = new Button(); + button_0 = new Button(); + button_decimal = new Button(); + button_equal = new Button(); + clear_button = new Button(); + label_first_number = new Label(); + label_operator = new Label(); + toolTip_read_number = new ToolTip(components); + SuspendLayout(); + // + // main_textBox + // + main_textBox.AcceptsReturn = true; + main_textBox.AcceptsTab = true; + main_textBox.BorderStyle = BorderStyle.FixedSingle; + main_textBox.Font = new Font("Segoe UI", 20F, FontStyle.Regular, GraphicsUnit.Point, 0); + main_textBox.Location = new Point(25, 45); + main_textBox.MaxLength = 100; + main_textBox.Name = "main_textBox"; + main_textBox.ReadOnly = true; + main_textBox.ScrollBars = ScrollBars.Vertical; + main_textBox.Size = new Size(423, 61); + main_textBox.TabIndex = 0; + main_textBox.Text = "0"; + main_textBox.TextAlign = HorizontalAlignment.Center; + main_textBox.TextChanged += main_textBox_TextChanged; + main_textBox.MouseLeave += main_textBox_MouseLeave; + main_textBox.MouseHover += main_textBox_MouseHover; + // + // button_7 + // + button_7.Cursor = Cursors.Hand; + button_7.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_7.Location = new Point(11, 233); + button_7.Name = "button_7"; + button_7.Size = new Size(105, 88); + button_7.TabIndex = 1; + button_7.Text = "7"; + button_7.UseVisualStyleBackColor = true; + button_7.Click += button_7_Click; + // + // button_8 + // + button_8.Cursor = Cursors.Hand; + button_8.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_8.Location = new Point(127, 233); + button_8.Name = "button_8"; + button_8.Size = new Size(105, 88); + button_8.TabIndex = 2; + button_8.Text = "8"; + button_8.UseVisualStyleBackColor = true; + button_8.Click += button_8_Click; + // + // button_9 + // + button_9.Cursor = Cursors.Hand; + button_9.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_9.Location = new Point(243, 233); + button_9.Name = "button_9"; + button_9.Size = new Size(105, 88); + button_9.TabIndex = 3; + button_9.Text = "9"; + button_9.UseVisualStyleBackColor = true; + button_9.Click += button_9_Click; + // + // button_div + // + button_div.Cursor = Cursors.Hand; + button_div.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_div.Image = (Image)resources.GetObject("button_div.Image"); + button_div.Location = new Point(359, 233); + button_div.Name = "button_div"; + button_div.Size = new Size(105, 88); + button_div.TabIndex = 4; + button_div.UseVisualStyleBackColor = true; + button_div.Click += button_div_Click; + // + // button_mult + // + button_mult.Cursor = Cursors.Hand; + button_mult.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_mult.Image = (Image)resources.GetObject("button_mult.Image"); + button_mult.Location = new Point(359, 333); + button_mult.Name = "button_mult"; + button_mult.Size = new Size(105, 88); + button_mult.TabIndex = 8; + button_mult.UseVisualStyleBackColor = true; + button_mult.Click += button_mult_Click; + // + // button_6 + // + button_6.Cursor = Cursors.Hand; + button_6.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_6.Location = new Point(243, 333); + button_6.Name = "button_6"; + button_6.Size = new Size(105, 88); + button_6.TabIndex = 7; + button_6.Text = "6"; + button_6.UseVisualStyleBackColor = true; + button_6.Click += button_6_Click; + // + // button_5 + // + button_5.Cursor = Cursors.Hand; + button_5.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_5.Location = new Point(127, 333); + button_5.Name = "button_5"; + button_5.Size = new Size(105, 88); + button_5.TabIndex = 6; + button_5.Text = "5"; + button_5.UseVisualStyleBackColor = true; + button_5.Click += button_5_Click; + // + // button_4 + // + button_4.Cursor = Cursors.Hand; + button_4.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_4.Location = new Point(11, 333); + button_4.Name = "button_4"; + button_4.Size = new Size(105, 88); + button_4.TabIndex = 5; + button_4.Text = "4"; + button_4.UseVisualStyleBackColor = true; + button_4.Click += button_4_Click; + // + // button_minus + // + button_minus.Cursor = Cursors.Hand; + button_minus.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_minus.Location = new Point(359, 435); + button_minus.Name = "button_minus"; + button_minus.Size = new Size(105, 88); + button_minus.TabIndex = 12; + button_minus.Text = "-"; + button_minus.UseVisualStyleBackColor = true; + button_minus.Click += button_minus_Click; + // + // button_3 + // + button_3.Cursor = Cursors.Hand; + button_3.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_3.Location = new Point(243, 435); + button_3.Name = "button_3"; + button_3.Size = new Size(105, 88); + button_3.TabIndex = 11; + button_3.Text = "3"; + button_3.UseVisualStyleBackColor = true; + button_3.Click += button_3_Click; + // + // button_2 + // + button_2.Cursor = Cursors.Hand; + button_2.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_2.Location = new Point(127, 435); + button_2.Name = "button_2"; + button_2.Size = new Size(105, 88); + button_2.TabIndex = 10; + button_2.Text = "2"; + button_2.UseVisualStyleBackColor = true; + button_2.Click += button_2_Click; + // + // button_1 + // + button_1.Cursor = Cursors.Hand; + button_1.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_1.Location = new Point(11, 435); + button_1.Name = "button_1"; + button_1.Size = new Size(105, 88); + button_1.TabIndex = 9; + button_1.Text = "1"; + button_1.UseVisualStyleBackColor = true; + button_1.Click += button_1_Click; + // + // button_plus + // + button_plus.Cursor = Cursors.Hand; + button_plus.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_plus.Image = (Image)resources.GetObject("button_plus.Image"); + button_plus.Location = new Point(359, 534); + button_plus.Name = "button_plus"; + button_plus.Size = new Size(105, 88); + button_plus.TabIndex = 16; + button_plus.UseVisualStyleBackColor = true; + button_plus.Click += button_plus_Click; + // + // button_erase + // + button_erase.Cursor = Cursors.Hand; + button_erase.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_erase.Image = (Image)resources.GetObject("button_erase.Image"); + button_erase.Location = new Point(243, 534); + button_erase.Name = "button_erase"; + button_erase.Size = new Size(105, 88); + button_erase.TabIndex = 15; + button_erase.UseVisualStyleBackColor = true; + button_erase.Click += button_erase_Click; + // + // button_0 + // + button_0.Cursor = Cursors.Hand; + button_0.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_0.Location = new Point(127, 534); + button_0.Name = "button_0"; + button_0.Size = new Size(105, 88); + button_0.TabIndex = 14; + button_0.Text = "0"; + button_0.UseVisualStyleBackColor = true; + button_0.Click += button_0_Click; + // + // button_decimal + // + button_decimal.Cursor = Cursors.Hand; + button_decimal.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_decimal.Location = new Point(11, 534); + button_decimal.Name = "button_decimal"; + button_decimal.Size = new Size(105, 88); + button_decimal.TabIndex = 13; + button_decimal.Text = "."; + button_decimal.UseVisualStyleBackColor = true; + button_decimal.Click += button_decimal_Click; + // + // button_equal + // + button_equal.Cursor = Cursors.Hand; + button_equal.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + button_equal.Location = new Point(243, 142); + button_equal.Name = "button_equal"; + button_equal.Size = new Size(221, 78); + button_equal.TabIndex = 18; + button_equal.Text = "="; + button_equal.UseVisualStyleBackColor = true; + button_equal.Click += button_equal_Click; + // + // clear_button + // + clear_button.Cursor = Cursors.Hand; + clear_button.Font = new Font("Segoe UI", 18F, FontStyle.Bold, GraphicsUnit.Point, 0); + clear_button.Location = new Point(12, 142); + clear_button.Name = "clear_button"; + clear_button.Size = new Size(221, 78); + clear_button.TabIndex = 17; + clear_button.Text = "Clear"; + clear_button.UseVisualStyleBackColor = true; + clear_button.Click += clear_button_Click; + // + // label_first_number + // + label_first_number.Location = new Point(324, 4); + label_first_number.Name = "label_first_number"; + label_first_number.Size = new Size(88, 38); + label_first_number.TabIndex = 19; + label_first_number.Text = "100"; + label_first_number.TextAlign = ContentAlignment.MiddleRight; + // + // label_operator + // + label_operator.Location = new Point(407, 11); + label_operator.Name = "label_operator"; + label_operator.Size = new Size(59, 25); + label_operator.TabIndex = 19; + label_operator.Text = "+"; + label_operator.TextAlign = ContentAlignment.MiddleLeft; + // + // CalculatorFrm + // + AutoScaleDimensions = new SizeF(10F, 25F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(474, 640); + Controls.Add(label_operator); + Controls.Add(label_first_number); + Controls.Add(button_equal); + Controls.Add(clear_button); + Controls.Add(button_plus); + Controls.Add(button_erase); + Controls.Add(button_0); + Controls.Add(button_decimal); + Controls.Add(button_minus); + Controls.Add(button_3); + Controls.Add(button_2); + Controls.Add(button_1); + Controls.Add(button_mult); + Controls.Add(button_6); + Controls.Add(button_5); + Controls.Add(button_4); + Controls.Add(button_div); + Controls.Add(button_9); + Controls.Add(button_8); + Controls.Add(button_7); + Controls.Add(main_textBox); + FormBorderStyle = FormBorderStyle.Fixed3D; + Icon = (Icon)resources.GetObject("$this.Icon"); + Name = "CalculatorFrm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "SimpleCalc"; + TopMost = true; + Load += Form1_Load; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private TextBox main_textBox; + private Button button_7; + private Button button_8; + private Button button_9; + private Button button_div; + private Button button_mult; + private Button button_6; + private Button button_5; + private Button button_4; + private Button button_minus; + private Button button_3; + private Button button_2; + private Button button_1; + private Button button_plus; + private Button button_erase; + private Button button_0; + private Button button_decimal; + private Button button_equal; + private Button clear_button; + private Label label_first_number; + private Label label_operator; + private ToolTip toolTip_read_number; + } +} diff --git a/CalculatorFrm.cs b/CalculatorFrm.cs new file mode 100644 index 0000000..4baefa2 --- /dev/null +++ b/CalculatorFrm.cs @@ -0,0 +1,322 @@ +using System.Text; + +namespace SimpleCalc +{ + public partial class CalculatorFrm : Form + { + public CalculatorFrm() + { + InitializeComponent(); + } + + void clear_all() + { + this.main_textBox.Text = "0"; + this.label_first_number.Text = ""; + this.label_operator.Text = ""; + } + + private void Form1_Load(object sender, EventArgs e) + { + clear_all(); + } + + private void clear_button_Click(object sender, EventArgs e) + { + clear_all(); + } + + + private void button_0_Click(object sender, EventArgs e) + { + numeric_calc("0"); + } + + private void button_1_Click(object sender, EventArgs e) + { + numeric_calc("1"); + } + private void button_2_Click(object sender, EventArgs e) + { + numeric_calc("2"); + } + + private void button_3_Click(object sender, EventArgs e) + { + numeric_calc("3"); + } + + private void button_4_Click(object sender, EventArgs e) + { + numeric_calc("4"); + } + + private void button_5_Click(object sender, EventArgs e) + { + numeric_calc("5"); + } + + private void button_6_Click(object sender, EventArgs e) + { + numeric_calc("6"); + } + + private void button_7_Click(object sender, EventArgs e) + { + numeric_calc("7"); + } + + private void button_8_Click(object sender, EventArgs e) + { + numeric_calc("8"); + } + + private void button_9_Click(object sender, EventArgs e) + { + numeric_calc("9"); + + } + void numeric_calc(string button_number) + { + if (this.main_textBox.Text == "0") + { + this.main_textBox.Text = button_number; + } + else + { + this.main_textBox.Text += button_number; + } + } + + + void operator_buttons(string op_type) + { + if (this.main_textBox.Text != "") + { + this.label_first_number.Text = this.main_textBox.Text; + } + this.label_operator.Text = op_type; + this.main_textBox.Text = ""; + + + } + + private void button_plus_Click(object sender, EventArgs e) + { + operator_buttons("+"); + } + + + private void button_minus_Click(object sender, EventArgs e) + { + operator_buttons("-"); + } + + private void button_mult_Click(object sender, EventArgs e) + { + operator_buttons("x"); + } + + private void button_div_Click(object sender, EventArgs e) + { + operator_buttons("/"); + } + + private void button_equal_Click(object sender, EventArgs e) + { + string firstNumberStr = this.label_first_number.Text; + string secondNumberStr = this.main_textBox.Text; + + try + { + double result = PerformOperation(firstNumberStr, secondNumberStr, this.label_operator.Text); + + this.main_textBox.Text = result.ToString(); + } + catch (Exception) + { + MessageBox.Show("Make sure that the operators are accompanied by numerical values.", ":/"); + } + + } + + private void button_decimal_Click(object sender, EventArgs e) + { + if (this.main_textBox.Text.Contains(".") == true) + { + return; + } + else + { + numeric_calc("."); + } + } + private double PerformOperation(string firstNumberStr, string secondNumberStr, string operatorStr) + { + double fn = double.Parse(firstNumberStr); + double sn = double.Parse(secondNumberStr); + double result = 0; + + switch (operatorStr) + { + case "+": + result = fn + sn; + break; + case "-": + result = fn - sn; + break; + case "x": + result = fn * sn; + break; + case "/": + result = fn / sn; + break; + + default: + result = 0; + break; + } + + return result; + } + + private void button_erase_Click(object sender, EventArgs e) + { + EraseOne(); + } + + private void EraseOne() + { + string currentText = this.main_textBox.Text; + + if (!string.IsNullOrEmpty(currentText)) + { + this.main_textBox.Text = currentText.Substring(0, currentText.Length - 1); + } + } + + private void main_textBox_MouseHover(object sender, EventArgs e) + { + + toolTip_read_number.AutoPopDelay = 30000; + toolTip_read_number.InitialDelay = 1000; + toolTip_read_number.ReshowDelay = 500; + + string result = this.main_textBox.Text; + double number; + string digits = "It was not possible to read this number."; + + + + try + { + double.TryParse(result, out number); + digits = NumberToWords(number); + + toolTip_read_number.Show(digits, main_textBox); + } + catch (Exception) + { + toolTip_read_number.Show(digits, main_textBox); + } + } + + private void main_textBox_MouseLeave(object sender, EventArgs e) + { + toolTip_read_number.Hide(main_textBox); + } + + private void main_textBox_TextChanged(object sender, EventArgs e) + { + int textBoxLenght = main_textBox.Text.Length; + + if (textBoxLenght > 100) + { + main_textBox.Text = main_textBox.Text[..100]; + } + } + + static string NumberToWords(double number) + { + int integerPart = (int)Math.Floor(number); + int decimalPart = (int)Math.Round((number - integerPart) * 100); + + StringBuilder words = new StringBuilder(); + + if (integerPart == 0 && decimalPart == 0) + return "zero"; + + if (integerPart < 0) + words.Append("minus "); + + words.Append(NumberToWords(Math.Abs(integerPart))); + + if (decimalPart > 0) + { + words.Append(" point "); + words.Append(NumberToWords(decimalPart)); + } + + return words.ToString(); + } + + static string NumberToWords(int number) + { + string[] units = { "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; + string[] teens = { "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; + string[] tens = { "", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; + + if (number == 0) + return "zero"; + + if (number < 0) + return "menos " + NumberToWords(Math.Abs(number)); + + StringBuilder words = new StringBuilder(); + + if ((number / 1000000000) > 0) + { + words.Append(NumberToWords(number / 1000000000) + " billion "); + number %= 1000000000; + } + + if ((number / 1000000) > 0) + { + words.Append(NumberToWords(number / 1000000) + " million "); + number %= 1000000; + } + + if ((number / 1000) > 0) + { + words.Append(NumberToWords(number / 1000) + " thousand "); + number %= 1000; + } + + if ((number / 100) > 0) + { + words.Append(NumberToWords(number / 100) + " hundred "); + number %= 100; + } + + if (number > 0) + { + if (words.Length > 0) + words.Append("and "); + + if (number < 10) + words.Append(units[number]); + else if (number < 20) + words.Append(teens[number - 11]); + else + { + words.Append(tens[number / 10]); + if ((number % 10) > 0) + words.Append(" " + units[number % 10]); + } + } + + return words.ToString(); + } + + } +} diff --git a/CalculatorFrm.resx b/CalculatorFrm.resx new file mode 100644 index 0000000..f5876f1 --- /dev/null +++ b/CalculatorFrm.resx @@ -0,0 +1,540 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAATrzAAE68wEXCzLMAAABD0lE + QVRoQ+2YQWoCQRBFR4igNwhR9BIKmoVXFUFdGHKNnCGiKHoR/Q/azdBxNRP6Yz14m6pmqmco2+6ugiAI + giDI05XvyTcCLnTkQm7lXv7KdYpZMJUneatJjFzR0DZ8+frkH5JjTLF8yIPMTR7JMaZYBvIoc5NHcowp + FtpjI3OTR3JFtxBMZK6NiJGzYC6/5Tm5SzEr+nKY7BEIXhn2Mix/YzlqWWpQq9H9Ew/8kVd5aVlqUKvR + /wu+DA+vL41tSS1qNob9C9i3kP2POHDEeitR38x9pZgFM/nXmZhc0dgfaFj+rI+U9od62sP6WgWeXWxZ + nIm5WvyUK8nVIi5TjJwNtIrl5W4QBEEQ/BNVdQdNW9PplWiI2AAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAdTAAAHUwAGRbQIfAAAA6klE + QVRIS+2VzQrCMBCEc1HxjfTN/HliwatC8aAzJVtizG42gSJoPxhC2t2ZJqVNWPg/ttA+jq1Ue9fQEbpC + pzj3Uu3dQCy4Qc84cu4JYc0BSnsZQs+JHXSBWCDyhOTmInpxuybyFYjukBaimcuDva2AaA2lkJp56YFG + PCHd5oJlcI7qNhe0kCEqvdZsLmghqbrNhRXELXlAuTmv8R5rupk1wLNF1ndiopmXXnJziGbOObeEyu+5 + QyxzMdBqqiEec6GldkT72akNwAr5/u/aYy7kIRw/VkBYSFMee15zIe01j9tZD/2FnySEFxWgwkwPwaST + AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1 + MAAA6mAAADqYAAAXcJy6UTwAAAAJcEhZcwAB1MAAAdTAAZFtAh8AAAAHdElNRQfoARADKyuDMPcQAAAB + w0lEQVRYR+3Wa0rFMBAF4OsD/adL0C3oD9+6I7cjLkA35fu1D50PEgihF6SVkis5cGg6TdvDZDIni46O + jo7/j+3gZnA3cSvFmsJacC94E7xPvA3uBz1rCpfB5+B34kuKNSWUmKPgVzAL/Uyx5oSeBF+DWajxcbC5 + pT8PPgaz0IcUawo5o+/BLPQt2FxGiVGP6jIL/Uix5pb+LPgUzEKVgVhTkLXTYNmeiBabLaP5R67LxuvB + w2DdnsQ2gsveKzkJLJDjXATVmw1jJ7u6N5Y1gq6DdUbFPDPH3KFvMAUONslueTdb9FMZ0hu1HTvavThx + MlmKLMXmZ/kb3vUN33LPwdits8FoOFzw7VrAX/Mu6F+jMafQneBoWA7LYnnqpdcntaC8pK61AEuen5nr + nXrpPVNeymw0FLhCV/AKn9PYCK7u9clyM5ViiRQ7CJpj7tA3bFQbdvLZdaiN1GMtaKg9Eal1LXuvHM8C + P5K1cufLrthsIn6LlbFQ9Wa5s9AmDyXErMQxD+zklTk4641ZqHFzGSWmrlHjJmv0KsjBslAdQDNvCoRy + MHbLt5EtcpymMgos0NnAQcYBg3dPtsWOjo6OprFY/AD5Q8Khoez58QAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAdeAAAHXgE4MSfyAAAAB3RJ + TUUH5AsWDh8iUQeoFgAAAZxJREFUWEft1rtKxEAYxfEF74WIjYVXRLT2Ulnom/gSvod2WmgjCDYWXlFE + 8AG8dlaCqFiqoKWg/g/kgyFkM5NJTLUHfixZN3M+ZzfZbbTSSsXpwEDyWHsGsYZ7rGMItUVle/h17KOW + IVSiMre8tiHyys2/DaFFD5BVmlb5EEXKTWVDxJSb0kPo5ENkLR4qeogqys0mCt2shmHlP8ljGQ8I3gW3 + /Aor+EyOY+2iB9645TeYRhuW8YX0wiEuMAVv0uUzsOj9ixniHJPwZgRH0EnpckvRIc4wAW9Cyi2hQ5xi + HN6MIrTc4hviBGPwRuXH0Emh5ZZmQ2g9retNN7ahk65RpNzSjlVYuXZSb2dQdFPQzeEbS3oiIrPQzqlc + V4+uouB0YQs6+RZzKBKV67yocot2wb7l7hA6RLo86ovGUnQIt1zfcvphWjruEFp8Efow6dNsdLwAK7/E + PLT17uuy6JLsR27cId7xjBeHjt+gv8sHnuC+pplX6Bd0H3Kj/2YDj8haSEOoVNID5tEAO+iFN53QbmRt + ZRlB5TWk0fgDt+8jwoMR6aYAAAAASUVORK5CYII= + + + + 17, 17 + + + + AAABAAEASEgAAAEAIACIVAAAFgAAACgAAABIAAAAkAAAAAEAIAAAAAAAYFQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1ISAduWkszcVpMWnNc + T4dyXE+uclxN0nNcTu1zXU//c11P/3NdT/9zXU//c11P/3JcTvtyXE7hcVtOxXJcTqBzWk1zclxMUHNc + TSEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFVSxtyXExQcVtNl3JcT9VzXE7tc1xP+HNdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE7+clxO9nNdT+hzXE7Dc1xOfHJc + TzpzXEULAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFV + OAlwW0wycltPjnJdTtNzXE74c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JcTuxyXE7Ac1tMam5d + TB5/fwACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZjMFc1tMNXFbTaRyXU7xc11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3FcTtlzXE+Ebl1MHgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9bTidyXE2rclxO+XNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxO6nJdTntxVTgJAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABrXVATclxOf3JcTuxyXE7+c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTvxyXE7RclxPUFVVKgYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXBbSz1yXE3BclxO+nNd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxO8HJdT5FrWE4aAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSEgHcltPZHNcTuRzXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JcTvxyXE/EblhNLgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGZMTApxXE+EclxO+3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//cl1O43FdTD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVVIFXNc + TqhzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3JdTvRxWk5lAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtVUgVc1xNsXJcTvxzXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXE7tcF1OaAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZMTApxXE6tclxO/HNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c1xO7XFc + TWMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcVU4CXJbTohyXE7+c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTvFxXUw/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABc11OaHJc + TvtzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE7fb1dKKQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxXE1IclxO6nNdT/9zXU//c11P/3Nd + T/9zXU//c11P/39rXv+7sKn/2dPQ/7Glnf90X1H/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Rf + Uf+wpJz/2dPQ/7uwqf9/a17/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/+Fcmb/moqA/4VyZv9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c1xOvHJZTBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJXTx1zXE7Jc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/7uw + qf/9/Pz///////z7+/+6r6j/eGNV/3NdT/9zXU//c11P/3NdT/9zXU//eGNV/7qvqP/8+/v///////38 + /P+7sKn/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/5KBdv/o5eL/+Pf2/+jl4v+SgXb/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//clxO+3JdToZ/Pz8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAXJbT45yXE78c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/9nTz/////////////// + ///7+vr/ua2m/3hjVf9zXU//c11P/3NdT/94Y1X/uK2m//v6+v/////////////////Z09D/c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/8K4 + sv/////////////////CubL/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3JcTuxxXk5BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcVtNOHJc + TfJzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/7CknP/8+/v/////////////////+/r6/7qv + qP91X1H/c11P/3RfUf+6r6j/+/r6//////////////////z7+/+wpJz/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/72yrP/+/v7///////7+ + /v+9s6z/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXE7Hfz8/BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSEgHc1xPvnNdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3RfUf+6r6j/+/r6//////////////////z7+//Bt7H/dmFT/8G3 + sP/8+/v/////////////////+/r6/7qvqP90X1H/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/4JuYv/RysX/7+3r/9HKxv+CbmL/c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE77cVtMZwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByWk5VclxO/HNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/94Y1X/uK2m//v6+v/////////////////7+vr/4NvY//v6+v////////////// + ///7+vr/uK2m/3hjVf9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/95ZFb/f2xf/3lkVv9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxO1m9fTxAAAAAAAAAAAAAA + AAAAAAAAAAAAAG9fTxBzXE68c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//eGNV/7qvqP/8+/v///////////////////////////////////////z7+/+6r6j/eGNV/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JbT2QAAAABAAAAAAAAAAAAAAAAAAAAAHJc + TUVyXE72c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Rf + Uf/AtrD/+/r6////////////////////////////+/r6/8G3sP90X1H/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/4x5bv+4raX/ysK9/8rCvf/Kwr3/ysK9/8rC + vf/Kwr3/ysK9/8rCvf/Kwr3/ysK9/8rCvf/Kwr3/ycC7/7arpP+MeW7/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NcTsdyWUwUAAAAAAAAAAAAAAAAfwAAAnFcTqZzXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/92YVP/39vX//// + ////////////////////////4NvY/3ZhU/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//hnNn//Hv7f////////////////////////////////////////////// + ///////////////////////////////////x7+3/hnNn/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3JcTvxyW05OAAAAAAAAAAAAAAAAc1xLLHNcTuJzXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3RfUf/Bt7D/+/r6//////////////////// + ////////+/r6/8G3sf91X1H/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//ppiP//z8/P////////////////////////////////////////////////////////////// + ///////////////////8/Pz/ppiP/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9yXE6tVVVVAwAAAAAAAAAAc1xNZnJdTvxzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//eGNV/7qvqP/8+/v///////////////////////////////////////z7 + +/+6r6j/eGNV/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//kYB1//b0 + 9P////////////////////////////////////////////////////////////////////////////// + ///29fT/kYB1/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE7ddVlLJQAA + AAAAAAAAcltOt3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/94Y1X/uK2m//v6+v/////////////////7+vr/39vX//v6+v/////////////////7+vr/ua2m/3hj + Vf9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//dF5Q/6mbkv/a1dH/7ero/+3q + 6P/t6uj/7ero/+3q6P/t6uj/7ero/+3q6P/t6uj/7ero/+3q6P/t6uj/7ero/9vV0f+pm5P/dF5Q/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE77cVtNXAAAAABrWE4ac11O5nNd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3RfUf+6r6j/+/r6//// + //////////////z7+//Bt7D/dmFT/8C2sP/8+/v/////////////////+/r6/7qvqP90X1H/c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//cV1OnwAAAAByW05OclxP9XNdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/7CknP/8+/v/////////////////+/r6/7qv + qP90X1H/c11P/3RfUf+6r6j/+/r6//////////////////z7+/+xpZ3/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//clxO3XFVOAlyW019clxO/nNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/9nTz//////////////////7+vr/uK2m/3hjVf9zXU//c11P/3Nd + T/94Y1X/uK2m//v6+v/////////////////Z09D/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3xnWv+3rKX/2tTQ/7espf98Z1r/c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//clxO7G5YTS5zXE+xc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/7uwqf/9/Pz///////z7+/+6r6j/eGNV/3NdT/9zXU//c11P/3NdT/9zXU//eGNV/7qv + qP/8+/v///////38/P+7sKn/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/66hmf/8/Pv///////z8+/+uopr/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxO93Bb + S1RyXU/Vc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/39r + Xv+7sKn/2dPP/7CknP90X1H/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3RfUf+wpJz/2dPP/7uw + qf9/a17/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/8a+uP/////////////////Hvrj/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3FcTnxzXE76c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/6CS + iP/6+fj///////r5+P+hkoj/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTpxzXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3VfUv+Whnv/tquk/5aG + e/91X1L/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JcTrZzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3JcTs9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Jd + TttzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTttzXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTttzXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JdTttzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3hjVv+nmZD/yMC6/6eZ + kP94Y1b/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3JcTs9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/6eZkP/7+vr///////v6+v+nmZD/c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Jc + TrZzXE76c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/9LLxv/////////////////Sy8b/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTpxyXU/Vc11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/9vW0v/////////////////c1tP/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3FcTnxzXE+xc11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/9vW + 0v/////////////////c1tP/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//clxO93FcTFNyW019clxO/nNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/9vW0v////////////// + ///c1tP/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//clxO7HFaTy1yW05OclxP9XNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/9zW0//////////////////c1tP/c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxO3HFV + OAlrWE4ac11O5nNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//dF9R/7es + pf/s6ef//////////////////////////////////////////////////////////////////f39/+vo + 5v+4rKX/dF9R/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//dF9R/7espf/s6ef///////// + /////////////////////////////////////////////////////////f39/+vo5v+4rKX/dF9R/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//cV1OnwAAAAAAAAAAclxOtnNd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//l4d9//j49/////////////// + ///////////////////////////////////////////////////////////////////5+Pf/l4d9/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//l4d9//j49/////////////////////////////// + ///////////////////////////////////////////////////5+Pf/l4d9/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE77cVtNXAAAAAAAAAAAc1xNZnJdTvxzXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//pJaM//z7+/////////////////////////////// + ///////////////////////////////////////////////////8/Pv/pJaM/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//pJaM//z7+/////////////////////////////////////////////// + ///////////////////////////////////8/Pv/pJaM/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9yXE7ddVlLJQAAAAAAAAAAblxLLHNcTuJzXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//gm5i/+nm4//8/Pz///////////////////////////////////////// + //////////////////////////////z8/P/p5uT/gm5i/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//gm5i/+nm4//8/Pz///////////////////////////////////////////////////////// + //////////////z8/P/p5uT/gm5i/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9yXE6tVVVVAwAAAAAAAAAAfwAAAnFcTqZzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/4JuYv+ompL/uK2m/7itpv+4rab/uK2m/+3q6P/////////////////t6un/uK2m/7it + pv+4rab/uK2m/6ibkv+CbmL/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/4Ju + Yv+ompL/uK2m/7itpv+4rab/uK2m/7itpv+4rab/uK2m/7itpv+4rab/uK2m/7itpv+4rab/uK2m/6ib + kv+CbmL/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JcTvxyW05OAAAAAAAA + AAAAAAAAAAAAAHRdTkRyXE/1c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/9vW0v/////////////////c1tP/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JcTsdyWUwUAAAAAAAAAAAAAAAAAAAAAG9f + TxBxXE68c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/9vW0v/////////////////c1tP/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JbTGQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAABzW05Uc1xO+nNd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/9vW + 0v/////////////////c1tP/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//clxO1m9fTxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSEgHc11OunJcTv5zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/9vW0v////////////// + ///Z08//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE77c1xNZgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc1xON3NdTvFzXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/7+1r/////////////////+/tq//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE7HPz8/BAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAXNcT41yXE78c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/4p3bP/c19T/9PLx/93X1P+KeGz/c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JcTuxxXk5BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAHJXTx1yXE7Jc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9/a17/jXtv/39rXv9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//clxO+3JdToZ/Pz8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAByXU9HclxO6nNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c1xOvHJZ + TBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABc11OaHJc + TvtzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE7fcllMKAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcVU4CXNcT4dyXE7+c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JdTvFzWk4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZMTApyW06sclxP+3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c1xO7XJdTmIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtVUgVc1xNsXJcT/tzXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE7tcFpOaAAA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbVVIFXJdT6dyXE7+c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTvRyW09kAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGZMTApyW02DclxO+3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//clxO43BcTUIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABtSEgHcFtMZHNcTuRzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Jc + TvxyXE7EblhNLgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXJd + TDxyXE3BclxO+nNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxO8HJbTZFrWE4aAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVATc11OfnNc + T+tyXE7+c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JdTvxzXU7QclxMUGZmMwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9bTidyXU6qc1xP+HNd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//clxO6nJdTntxVTgJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmMzMFbltMNXJcTqNyXU7xc11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdT9hxXE+EblVMHgAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9fPwhyXU4xc1xPjXJdTtNyXE74c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd + T/9zXU//c11P/3NdT/9zXU//c11P/3JcTuxyXE6/clxNaW5dTB5/fwACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVYThpyXExQcVtOlnJcT9VzXE7tc1xP+HNd + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE7+clxP9XJc + T+hyXE7CcVxOfHJcTzpzXEULAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1ISAdwW0wycltNWXNcTYdyXE+uclxO0XJc + Tu1zXU//c11P/3NdT/9zXU//c11P/3JcTvtyXE7hclxPxHNdTp9yW05ydF1NT3NcTSEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////AAAf///8AAAD///4AAAB///8A + AAD///AAAAAP//8AAAD//8AAAAAD//8AAAD//4AAAAAB//8AAAD//gAAAAAAf/8AAAD/+AAAAAAAP/8A + AAD/8AAAAAAAD/8AAAD/4AAAAAAAD/8AAAD/wAAAAAAAA/8AAAD/gAAAAAAAAf8AAAD/AAAAAAAAAf8A + AAD+AAAAAAAAAP8AAAD8AAAAAAAAAH8AAAD8AAAAAAAAAD8AAAD4AAAAAAAAAB8AAADwAAAAAAAAAB8A + AADwAAAAAAAAAA8AAADgAAAAAAAAAA8AAADgAAAAAAAAAAcAAADAAAAAAAAAAAMAAADAAAAAAAAAAAMA + AACAAAAAAAAAAAMAAACAAAAAAAAAAAEAAACAAAAAAAAAAAEAAACAAAAAAAAAAAEAAAAAAAAAAAAAAAEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACAAAAAAAAAAAEA + AACAAAAAAAAAAAEAAACAAAAAAAAAAAEAAACAAAAAAAAAAAMAAADAAAAAAAAAAAMAAADAAAAAAAAAAAMA + AADgAAAAAAAAAAcAAADgAAAAAAAAAA8AAADwAAAAAAAAAA8AAADwAAAAAAAAAB8AAAD4AAAAAAAAAB8A + AAD8AAAAAAAAAD8AAAD8AAAAAAAAAH8AAAD+AAAAAAAAAP8AAAD/AAAAAAAAAf8AAAD/gAAAAAAAAf8A + AAD/wAAAAAAAA/8AAAD/4AAAAAAAB/8AAAD/8AAAAAAAD/8AAAD/+AAAAAAAP/8AAAD//gAAAAAAf/8A + AAD//4AAAAAB//8AAAD//8AAAAAD//8AAAD///AAAAAP//8AAAD///4AAAB///8AAAD////AAAf///8A + AAA= + + + \ No newline at end of file diff --git a/FodyWeavers.xml b/FodyWeavers.xml new file mode 100644 index 0000000..5029e70 --- /dev/null +++ b/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..a20e80f --- /dev/null +++ b/Program.cs @@ -0,0 +1,17 @@ +namespace SimpleCalc +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new CalculatorFrm()); + } + } +} \ No newline at end of file diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7b0b8c6 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SimpleCalc.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SimpleCalc.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/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SimpleCalc.csproj b/SimpleCalc.csproj new file mode 100644 index 0000000..ad0ebf7 --- /dev/null +++ b/SimpleCalc.csproj @@ -0,0 +1,39 @@ + + + + WinExe + net8.0-windows + enable + true + enable + calculator_24019.ico + davidevol + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + \ No newline at end of file diff --git a/calculator_24019.ico b/calculator_24019.ico new file mode 100644 index 0000000..9af1b08 Binary files /dev/null and b/calculator_24019.ico differ