From 0f87314642ae8b3d6999c01aff65c991f8596e3b Mon Sep 17 00:00:00 2001 From: Jannick van Ballegooijen Date: Sun, 4 Oct 2015 13:56:48 +0200 Subject: [PATCH] Setup base form --- .../.vs/ErgometerApplication/v14/.suo | Bin 75776 -> 101888 bytes ErgometerApplication/ErgometerApplication.sln | 2 +- .../ClientApplicatie.Designer.cs | 102 +++++++ .../ErgometerApplication/ClientApplicatie.cs | 282 ++++++++++++++++++ .../{Ergometer.resx => ClientApplicatie.resx} | 7 +- .../ErgometerApplication/DataSaving.cs | 62 ++-- .../Ergometer.Designer.cs | 270 ----------------- .../ErgometerApplication/Ergometer.cs | 282 ------------------ .../ErgometerApplication.csproj | 10 +- .../ErgometerApplication/Program.cs | 2 +- .../ServerCommunicator.cs | 4 +- .../bin/Debug/ErgometerApplication.exe | Bin 18432 -> 9728 bytes .../bin/Debug/ErgometerApplication.pdb | Bin 30208 -> 22016 bytes .../bin/Debug/ErgometerApplication.vshost.exe | Bin 22696 -> 22696 bytes .../bin/Debug/ErgometerLibrary.pdb | Bin 24064 -> 0 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 7698 -> 7727 bytes .../ErgometerApplication.Ergometer.resources | Bin 180 -> 0 bytes ...terApplication.csproj.FileListAbsolute.txt | 11 + ...rApplication.csproj.GenerateResource.Cache | Bin 980 -> 1049 bytes ...ation.csprojResolveAssemblyReference.cache | Bin 13985 -> 15360 bytes .../obj/Debug/ErgometerApplication.exe | Bin 18432 -> 9728 bytes .../obj/Debug/ErgometerApplication.pdb | Bin 30208 -> 22016 bytes 22 files changed, 437 insertions(+), 597 deletions(-) create mode 100644 ErgometerApplication/ErgometerApplication/ClientApplicatie.Designer.cs create mode 100644 ErgometerApplication/ErgometerApplication/ClientApplicatie.cs rename ErgometerApplication/ErgometerApplication/{Ergometer.resx => ClientApplicatie.resx} (94%) delete mode 100644 ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs delete mode 100644 ErgometerApplication/ErgometerApplication/Ergometer.cs delete mode 100644 ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerLibrary.pdb delete mode 100644 ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.Ergometer.resources diff --git a/ErgometerApplication/.vs/ErgometerApplication/v14/.suo b/ErgometerApplication/.vs/ErgometerApplication/v14/.suo index c31ed2372318cb3318eae7ff184f079eb02d295a..374aa9f813ddb9edf225d139c964acb78b158643 100644 GIT binary patch delta 10341 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 delta 6715 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 + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.updateTimer = new System.Windows.Forms.Timer(this.components); + this.writeTimer = new System.Windows.Forms.Timer(this.components); + this.panelLogin = new System.Windows.Forms.Panel(); + this.lblUsername = new System.Windows.Forms.Label(); + this.lblPassword = new System.Windows.Forms.Label(); + this.panelLogin.SuspendLayout(); + this.SuspendLayout(); + // + // updateTimer + // + this.updateTimer.Interval = 1500; + // + // writeTimer + // + this.writeTimer.Interval = 10000; + // + // panelLogin + // + this.panelLogin.Controls.Add(this.lblUsername); + this.panelLogin.Controls.Add(this.lblPassword); + this.panelLogin.Dock = System.Windows.Forms.DockStyle.Fill; + this.panelLogin.Location = new System.Drawing.Point(0, 0); + this.panelLogin.Name = "panelLogin"; + this.panelLogin.Size = new System.Drawing.Size(800, 600); + this.panelLogin.TabIndex = 0; + // + // lblUsername + // + this.lblUsername.Anchor = System.Windows.Forms.AnchorStyles.None; + this.lblUsername.AutoSize = true; + this.lblUsername.Location = new System.Drawing.Point(243, 255); + this.lblUsername.Name = "lblUsername"; + this.lblUsername.Size = new System.Drawing.Size(84, 13); + this.lblUsername.TabIndex = 1; + this.lblUsername.Text = "Gebruikersnaam"; + // + // lblPassword + // + this.lblPassword.Anchor = System.Windows.Forms.AnchorStyles.None; + this.lblPassword.AutoSize = true; + this.lblPassword.Location = new System.Drawing.Point(243, 291); + this.lblPassword.Name = "lblPassword"; + this.lblPassword.Size = new System.Drawing.Size(68, 13); + this.lblPassword.TabIndex = 0; + this.lblPassword.Text = "Wachtwoord"; + // + // ClientApplicatie + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 600); + this.Controls.Add(this.panelLogin); + this.Name = "ClientApplicatie"; + this.Text = "Client Applicatie"; + this.WindowState = System.Windows.Forms.FormWindowState.Maximized; + this.panelLogin.ResumeLayout(false); + this.panelLogin.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Timer updateTimer; + private System.Windows.Forms.Timer writeTimer; + private System.Windows.Forms.Panel panelLogin; + private System.Windows.Forms.Label lblUsername; + private System.Windows.Forms.Label lblPassword; + } +} diff --git a/ErgometerApplication/ErgometerApplication/ClientApplicatie.cs b/ErgometerApplication/ErgometerApplication/ClientApplicatie.cs new file mode 100644 index 0000000..74e65a6 --- /dev/null +++ b/ErgometerApplication/ErgometerApplication/ClientApplicatie.cs @@ -0,0 +1,282 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO.Ports; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using Newtonsoft.Json; +using System.IO; +//using ErgometerLibrary; +using System.Net.Sockets; +using System.Net; +using System.Timers; + +namespace ErgometerApplication +{ + public partial class ClientApplicatie : Form + { + //private ComPort comPort; + //private List _data; + //private int i = 0; + //NetCommand command; + //private ServerCommunicator communicator = new ServerCommunicator(); + //List readFile = new List(); + public ClientApplicatie() + { + InitializeComponent(); + // comPort = new ComPort(); + // _data = new List(); + // communicator.data = _data; + } + + //private void connectButton_Click(object sender, EventArgs e) + //{ + // if (!comPort.IsOpen()) + // { + // if (comPort.Connect(ComPortBox.Text)) + // { + // connectButton.Text = "Disconnect"; + // statusButton.Enabled = true; + // resetButton.Enabled = true; + // timerStatus.Enabled = true; + // inputTextBox.Enabled = true; + // timeButton.Enabled = true; + // distanceButton.Enabled = true; + // powerButton.Enabled = true; + // energyButton.Enabled = true; + // ComPortBox.Enabled = false; + + // comPort.Write("RS"); + // comPort.Read(); + // Thread.Sleep(200); + // comPort.Write("CM"); + // comPort.Read(); + // Thread.Sleep(200); + + // comPort.Write("ST"); + // string response = comPort.Read(); + // Console.WriteLine(response); + + // Meting m = Meting.Parse(response); + // SaveData(m); + // // richTextBox1.Text = m.ToString(); + // } + // } + // else + // { + // if (comPort.Disconnect()) + // { + // connectButton.Text = "Connect"; + // timerStatus.Checked = false; + // statusButton.Enabled = false; + // resetButton.Enabled = false; + // timerStatus.Enabled = false; + // inputTextBox.Enabled = false; + // timeButton.Enabled = false; + // distanceButton.Enabled = false; + // powerButton.Enabled = false; + // energyButton.Enabled = false; + // ComPortBox.Enabled = true; + // richTextBox1.Text = ""; + + // WriteFile(); + + // } + // } + // communicator.client = new TcpClient(); + // communicator.client.Connect("127.0.0.1", 8888); + // Thread thread = new Thread(ServerCommunication); + // thread.Start(communicator); + //} + + //private void statusButton_Click(object sender, EventArgs e) + //{ + // comPort.Write("ST"); + // string response = comPort.Read(); + // Console.WriteLine(response); + // Meting m = Meting.Parse(response, '\t'); + // Console.WriteLine(m); + // SaveData(m); + // communicator.data.Add(m); + // command = new NetCommand(m, communicator.sessionId); + // NetHelper.SendNetCommand(communicator.client, command); + // richTextBox1.Text = m.ToString(); + // WriteFile(); + //} + + //static void ServerCommunication(object obj) + //{ + // ServerCommunicator communicator = obj as ServerCommunicator; + + // NetCommand net = NetHelper.ReadNetCommand(communicator.client); + // if (net.Type == NetCommand.CommandType.SESSION) + // communicator.sessionId = net.Session; + + // NetCommand command = new NetCommand("name", false, "pass", communicator.sessionId); + // NetHelper.SendNetCommand(communicator.client, command); + //} + + //private void resetButton_Click(object sender, EventArgs e) + //{ + // comPort.Write("RS"); + // comPort.Read(); + // Thread.Sleep(200); + // comPort.Write("CM"); + // comPort.Read(); + //} + + //private void updateTimer_Tick(object sender, EventArgs e) + //{ + // if (timerStatus.Checked) + // { + // comPort.Write("ST"); + // string response = comPort.Read(); + // Console.WriteLine(response); + // Meting m = Meting.Parse(response); + // SaveData(m); + // communicator.data.Add(m); + // command = new NetCommand(m, communicator.sessionId); + // NetHelper.SendNetCommand(communicator.client, command); + // richTextBox1.Text = m.ToString(); + // command = new NetCommand(communicator.data[0], communicator.sessionId); + // NetHelper.SendNetCommand(communicator.client, command); + // } + //} + + //private void timeButton_Click(object sender, EventArgs e) + //{ + // comPort.Write("RS"); + // comPort.Read(); + // Thread.Sleep(200); + // string[] temp = inputTextBox.Text.Split(':'); + // comPort.Write("PT " + temp[0] + temp[1]); + // Console.WriteLine("PT " + temp[0] + temp[1]); + // inputTextBox.Text = ""; + // comPort.Read(); + //} + + //private void distanceButton_Click(object sender, EventArgs e) + //{ + // comPort.Write("RS"); + // comPort.Read(); + // Thread.Sleep(200); + // int temp = int.Parse(inputTextBox.Text); + // comPort.Write("PD " + temp.ToString()); + // inputTextBox.Text = ""; + // comPort.Read(); + //} + + //private void powerButton_Click(object sender, EventArgs e) + //{ + // int temp = int.Parse(inputTextBox.Text); + // comPort.Write("PW " + temp.ToString()); + // inputTextBox.Text = ""; + // comPort.Read(); + //} + + //private void energyButton_Click(object sender, EventArgs e) + //{ + // comPort.Write("RS"); + // comPort.Read(); + // Thread.Sleep(200); + // int temp = int.Parse(inputTextBox.Text); + // comPort.Write("PE " + temp.ToString()); + // inputTextBox.Text = ""; + // comPort.Read(); + //} + + //private void timerStatus_CheckedChanged(object sender, EventArgs e) + //{ + // if (timerStatus.Checked) + // { + // statusButton.Enabled = false; + // updateTimer.Start(); + // writeTimer.Start(); + // } + // else + // { + // statusButton.Enabled = true; + // updateTimer.Stop(); + // writeTimer.Stop(); + // } + //} + + //private void readButton_Click(object sender, EventArgs e) + //{ + // ReadFile(); + // if (readFile != null) + // { + // metingNextButton.Enabled = true; + // metingBackButton.Enabled = true; + // } + + //} + + //private void metingBackButton_Click(object sender, EventArgs e) + //{ + // if (i > 0) + // { i--; + // metingNextButton.Enabled = true; + // } + // if (i == 0) + // { + // metingBackButton.Enabled = false; + // } + // richTextBox1.Text = readFile.ElementAt(i).ToString(); + //} + + //private void metingNextButton_Click(object sender, EventArgs e) + //{ + // if (i < (readFile.Count - 1)) + // { i++; + // metingBackButton.Enabled = true; + // } + // if (i == (readFile.Count - 1)) + // { + // metingNextButton.Enabled = false; + // } + // richTextBox1.Text = readFile.ElementAt(i).ToString(); + //} + + //private void writeTimer_Tick(object sender, EventArgs e) + //{ + // WriteFile(); + //} + + + //private void WriteFile() + //{ + // string json = Newtonsoft.Json.JsonConvert.SerializeObject(_data); + // string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ErgometerSessionData.ergo"); + // System.IO.File.WriteAllText(path, json); + // Console.WriteLine("Writing file: " + path); + //} + + //private void SaveData(Meting meting) + //{ + // _data.Add(meting); + //} + + //private void ReadFile() + //{ + // string path; + // OpenFileDialog file = new OpenFileDialog(); + // file.Filter = "Ergometer files(*.ergo) | *.ergo | All files(*.*) | *.*"; + // if (file.ShowDialog() == DialogResult.OK) + // { + // path = file.FileName; + // readFile = Newtonsoft.Json.JsonConvert.DeserializeObject>(System.IO.File.ReadAllText(path)); + // richTextBox1.Text = readFile.ElementAt(i).ToString(); + // } + // else + // { + // readFile = null; + // } + //} + } +} \ No newline at end of file diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.resx b/ErgometerApplication/ErgometerApplication/ClientApplicatie.resx similarity index 94% rename from ErgometerApplication/ErgometerApplication/Ergometer.resx rename to ErgometerApplication/ErgometerApplication/ClientApplicatie.resx index 5223d06..29ee7eb 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.resx +++ b/ErgometerApplication/ErgometerApplication/ClientApplicatie.resx @@ -123,10 +123,7 @@ 147, 19 - - 276, 19 - - - 377, 19 + + 25 \ No newline at end of file diff --git a/ErgometerApplication/ErgometerApplication/DataSaving.cs b/ErgometerApplication/ErgometerApplication/DataSaving.cs index 87c02ab..7bdb2fb 100644 --- a/ErgometerApplication/ErgometerApplication/DataSaving.cs +++ b/ErgometerApplication/ErgometerApplication/DataSaving.cs @@ -5,41 +5,41 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; -using ErgometerLibrary; +//using ErgometerLibrary; namespace ErgometerApplication { class DataSaving { - List local_data = null; - private List ReadFile() - { - string path; - OpenFileDialog file = new OpenFileDialog(); - file.Filter = "Ergometer files(*.ergo) | *.ergo | All files(*.*) | *.*"; - if (file.ShowDialog() == DialogResult.OK) - { - path = file.FileName; - List readFile = Newtonsoft.Json.JsonConvert.DeserializeObject>(System.IO.File.ReadAllText(path)); - return readFile; - } - else - { - return null; - } - } - private List SaveData(Meting meting, List _data) - { - List local_data = _data; - local_data.Add(meting); - return local_data; - } - private void WriteFile(List _data) - { - string json = Newtonsoft.Json.JsonConvert.SerializeObject(_data); - string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ErgometerSessionData.ergo"); - System.IO.File.WriteAllText(path, json); - Console.WriteLine("Writing file: " + path); - } + //List local_data = null; + //private List ReadFile() + //{ + // string path; + // OpenFileDialog file = new OpenFileDialog(); + // file.Filter = "Ergometer files(*.ergo) | *.ergo | All files(*.*) | *.*"; + // if (file.ShowDialog() == DialogResult.OK) + // { + // path = file.FileName; + // List readFile = Newtonsoft.Json.JsonConvert.DeserializeObject>(System.IO.File.ReadAllText(path)); + // return readFile; + // } + // else + // { + // return null; + // } + //} + //private List SaveData(Meting meting, List _data) + //{ + // List local_data = _data; + // local_data.Add(meting); + // return local_data; + //} + //private void WriteFile(List _data) + //{ + // string json = Newtonsoft.Json.JsonConvert.SerializeObject(_data); + // string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ErgometerSessionData.ergo"); + // System.IO.File.WriteAllText(path, json); + // Console.WriteLine("Writing file: " + path); + //} } diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs deleted file mode 100644 index f1dc963..0000000 --- a/ErgometerApplication/ErgometerApplication/Ergometer.Designer.cs +++ /dev/null @@ -1,270 +0,0 @@ -using System.IO.Ports; - -namespace ErgometerApplication -{ - partial class Ergometer - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.richTextBox1 = new System.Windows.Forms.RichTextBox(); - this.connectButton = new System.Windows.Forms.Button(); - this.ComPortBox = new System.Windows.Forms.ComboBox(); - this.statusButton = new System.Windows.Forms.Button(); - this.resetButton = new System.Windows.Forms.Button(); - this.updateTimer = new System.Windows.Forms.Timer(this.components); - this.timerStatus = new System.Windows.Forms.CheckBox(); - this.powerButton = new System.Windows.Forms.Button(); - this.timeButton = new System.Windows.Forms.Button(); - this.energyButton = new System.Windows.Forms.Button(); - this.distanceButton = new System.Windows.Forms.Button(); - this.writeTimer = new System.Windows.Forms.Timer(this.components); - this.metingNextButton = new System.Windows.Forms.Button(); - this.metingBackButton = new System.Windows.Forms.Button(); - this.readButton = new System.Windows.Forms.Button(); - this.inputTextBox = new System.Windows.Forms.MaskedTextBox(); - this.SuspendLayout(); - // - // richTextBox1 - // - this.richTextBox1.Location = new System.Drawing.Point(13, 42); - this.richTextBox1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.richTextBox1.Name = "richTextBox1"; - this.richTextBox1.ReadOnly = true; - this.richTextBox1.Size = new System.Drawing.Size(203, 243); - this.richTextBox1.TabIndex = 0; - this.richTextBox1.Text = ""; - // - // connectButton - // - this.connectButton.Location = new System.Drawing.Point(115, 290); - this.connectButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.connectButton.Name = "connectButton"; - this.connectButton.Size = new System.Drawing.Size(101, 26); - this.connectButton.TabIndex = 1; - this.connectButton.Text = "Connect"; - this.connectButton.UseVisualStyleBackColor = true; - this.connectButton.Click += new System.EventHandler(this.connectButton_Click); - // - // ComPortBox - // - this.ComPortBox.FormattingEnabled = true; - this.ComPortBox.Items.AddRange(SerialPort.GetPortNames()); - this.ComPortBox.Location = new System.Drawing.Point(12, 290); - this.ComPortBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.ComPortBox.Name = "ComPortBox"; - this.ComPortBox.Size = new System.Drawing.Size(97, 24); - this.ComPortBox.TabIndex = 11; - // - // statusButton - // - this.statusButton.Enabled = false; - this.statusButton.Location = new System.Drawing.Point(127, 12); - this.statusButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.statusButton.Name = "statusButton"; - this.statusButton.Size = new System.Drawing.Size(89, 26); - this.statusButton.TabIndex = 3; - this.statusButton.Text = "Status"; - this.statusButton.UseVisualStyleBackColor = true; - this.statusButton.Click += new System.EventHandler(this.statusButton_Click); - // - // resetButton - // - this.resetButton.Enabled = false; - this.resetButton.Location = new System.Drawing.Point(12, 12); - this.resetButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.resetButton.Name = "resetButton"; - this.resetButton.Size = new System.Drawing.Size(97, 26); - this.resetButton.TabIndex = 4; - this.resetButton.Text = "Reset"; - this.resetButton.UseVisualStyleBackColor = true; - this.resetButton.Click += new System.EventHandler(this.resetButton_Click); - // - // updateTimer - // - this.updateTimer.Interval = 1500; - this.updateTimer.Tick += new System.EventHandler(this.updateTimer_Tick); - // - // timerStatus - // - this.timerStatus.AutoSize = true; - this.timerStatus.Enabled = false; - this.timerStatus.Location = new System.Drawing.Point(223, 12); - this.timerStatus.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.timerStatus.Name = "timerStatus"; - this.timerStatus.Size = new System.Drawing.Size(113, 21); - this.timerStatus.TabIndex = 5; - this.timerStatus.Text = "Auto Refresh"; - this.timerStatus.UseVisualStyleBackColor = true; - this.timerStatus.CheckedChanged += new System.EventHandler(this.timerStatus_CheckedChanged); - // - // powerButton - // - this.powerButton.Enabled = false; - this.powerButton.Location = new System.Drawing.Point(223, 134); - this.powerButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.powerButton.Name = "powerButton"; - this.powerButton.Size = new System.Drawing.Size(113, 26); - this.powerButton.TabIndex = 7; - this.powerButton.Text = "Set Power"; - this.powerButton.UseVisualStyleBackColor = true; - this.powerButton.Click += new System.EventHandler(this.powerButton_Click); - // - // timeButton - // - this.timeButton.Enabled = false; - this.timeButton.Location = new System.Drawing.Point(223, 70); - this.timeButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.timeButton.Name = "timeButton"; - this.timeButton.Size = new System.Drawing.Size(113, 26); - this.timeButton.TabIndex = 8; - this.timeButton.Text = "Set Time"; - this.timeButton.UseVisualStyleBackColor = true; - this.timeButton.Click += new System.EventHandler(this.timeButton_Click); - // - // energyButton - // - this.energyButton.Enabled = false; - this.energyButton.Location = new System.Drawing.Point(223, 166); - this.energyButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.energyButton.Name = "energyButton"; - this.energyButton.Size = new System.Drawing.Size(113, 26); - this.energyButton.TabIndex = 9; - this.energyButton.Text = "Set Energy"; - this.energyButton.UseVisualStyleBackColor = true; - this.energyButton.Click += new System.EventHandler(this.energyButton_Click); - // - // distanceButton - // - this.distanceButton.Enabled = false; - this.distanceButton.Location = new System.Drawing.Point(223, 102); - this.distanceButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.distanceButton.Name = "distanceButton"; - this.distanceButton.Size = new System.Drawing.Size(113, 26); - this.distanceButton.TabIndex = 10; - this.distanceButton.Text = "Set Distance"; - this.distanceButton.UseVisualStyleBackColor = true; - this.distanceButton.Click += new System.EventHandler(this.distanceButton_Click); - // - // writeTimer - // - this.writeTimer.Interval = 10000; - this.writeTimer.Tick += new System.EventHandler(this.writeTimer_Tick); - // - // metingNextButton - // - this.metingNextButton.Enabled = false; - this.metingNextButton.Location = new System.Drawing.Point(223, 289); - this.metingNextButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.metingNextButton.Name = "metingNextButton"; - this.metingNextButton.Size = new System.Drawing.Size(113, 26); - this.metingNextButton.TabIndex = 16; - this.metingNextButton.Text = "Next ->"; - this.metingNextButton.UseVisualStyleBackColor = true; - this.metingNextButton.Click += new System.EventHandler(this.metingNextButton_Click); - // - // metingBackButton - // - this.metingBackButton.Enabled = false; - this.metingBackButton.Location = new System.Drawing.Point(223, 258); - this.metingBackButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.metingBackButton.Name = "metingBackButton"; - this.metingBackButton.Size = new System.Drawing.Size(113, 26); - this.metingBackButton.TabIndex = 15; - this.metingBackButton.Text = "<- Back"; - this.metingBackButton.UseVisualStyleBackColor = true; - this.metingBackButton.Click += new System.EventHandler(this.metingBackButton_Click); - // - // readButton - // - this.readButton.Location = new System.Drawing.Point(223, 228); - this.readButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.readButton.Name = "readButton"; - this.readButton.Size = new System.Drawing.Size(113, 26); - this.readButton.TabIndex = 17; - this.readButton.Text = "Read File"; - this.readButton.UseVisualStyleBackColor = true; - this.readButton.Click += new System.EventHandler(this.readButton_Click); - // - // inputTextBox - // - this.inputTextBox.Location = new System.Drawing.Point(223, 43); - this.inputTextBox.Mask = "0L0L0L0"; - this.inputTextBox.Name = "inputTextBox"; - this.inputTextBox.Size = new System.Drawing.Size(106, 22); - this.inputTextBox.TabIndex = 18; - this.inputTextBox.ValidatingType = typeof(int); - // - // Ergometer - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(351, 326); - this.Controls.Add(this.inputTextBox); - this.Controls.Add(this.readButton); - this.Controls.Add(this.metingNextButton); - this.Controls.Add(this.metingBackButton); - this.Controls.Add(this.distanceButton); - this.Controls.Add(this.energyButton); - this.Controls.Add(this.timeButton); - this.Controls.Add(this.powerButton); - this.Controls.Add(this.timerStatus); - this.Controls.Add(this.resetButton); - this.Controls.Add(this.statusButton); - this.Controls.Add(this.ComPortBox); - this.Controls.Add(this.connectButton); - this.Controls.Add(this.richTextBox1); - this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.MaximumSize = new System.Drawing.Size(369, 373); - this.MinimumSize = new System.Drawing.Size(369, 373); - this.Name = "Ergometer"; - this.Text = "Ergometer"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.RichTextBox richTextBox1; - private System.Windows.Forms.Button connectButton; - private System.Windows.Forms.ComboBox ComPortBox; - private System.Windows.Forms.Button statusButton; - private System.Windows.Forms.Button resetButton; - private System.Windows.Forms.Timer updateTimer; - private System.Windows.Forms.CheckBox timerStatus; - private System.Windows.Forms.Button powerButton; - private System.Windows.Forms.Button timeButton; - private System.Windows.Forms.Button energyButton; - private System.Windows.Forms.Button distanceButton; - private System.Windows.Forms.Timer writeTimer; - private System.Windows.Forms.Button metingNextButton; - private System.Windows.Forms.Button metingBackButton; - private System.Windows.Forms.Button readButton; - private System.Windows.Forms.MaskedTextBox inputTextBox; - } -} diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.cs deleted file mode 100644 index 0afecb6..0000000 --- a/ErgometerApplication/ErgometerApplication/Ergometer.cs +++ /dev/null @@ -1,282 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.IO.Ports; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Windows.Forms; -using Newtonsoft.Json; -using System.IO; -using ErgometerLibrary; -using System.Net.Sockets; -using System.Net; -using System.Timers; - -namespace ErgometerApplication -{ - public partial class Ergometer : Form - { - private ComPort comPort; - private List _data; - private int i = 0; - NetCommand command; - private ServerCommunicator communicator = new ServerCommunicator(); - List readFile = new List(); - public Ergometer() - { - InitializeComponent(); - comPort = new ComPort(); - _data = new List(); - communicator.data = _data; - } - - private void connectButton_Click(object sender, EventArgs e) - { - if (!comPort.IsOpen()) - { - if (comPort.Connect(ComPortBox.Text)) - { - connectButton.Text = "Disconnect"; - statusButton.Enabled = true; - resetButton.Enabled = true; - timerStatus.Enabled = true; - inputTextBox.Enabled = true; - timeButton.Enabled = true; - distanceButton.Enabled = true; - powerButton.Enabled = true; - energyButton.Enabled = true; - ComPortBox.Enabled = false; - - comPort.Write("RS"); - comPort.Read(); - Thread.Sleep(200); - comPort.Write("CM"); - comPort.Read(); - Thread.Sleep(200); - - comPort.Write("ST"); - string response = comPort.Read(); - Console.WriteLine(response); - - Meting m = Meting.Parse(response); - SaveData(m); - // richTextBox1.Text = m.ToString(); - } - } - else - { - if (comPort.Disconnect()) - { - connectButton.Text = "Connect"; - timerStatus.Checked = false; - statusButton.Enabled = false; - resetButton.Enabled = false; - timerStatus.Enabled = false; - inputTextBox.Enabled = false; - timeButton.Enabled = false; - distanceButton.Enabled = false; - powerButton.Enabled = false; - energyButton.Enabled = false; - ComPortBox.Enabled = true; - richTextBox1.Text = ""; - - WriteFile(); - - } - } - communicator.client = new TcpClient(); - communicator.client.Connect("127.0.0.1", 8888); - Thread thread = new Thread(ServerCommunication); - thread.Start(communicator); - } - - private void statusButton_Click(object sender, EventArgs e) - { - comPort.Write("ST"); - string response = comPort.Read(); - Console.WriteLine(response); - Meting m = Meting.Parse(response, '\t'); - Console.WriteLine(m); - SaveData(m); - communicator.data.Add(m); - command = new NetCommand(m, communicator.sessionId); - NetHelper.SendNetCommand(communicator.client, command); - richTextBox1.Text = m.ToString(); - WriteFile(); - } - - static void ServerCommunication(object obj) - { - ServerCommunicator communicator = obj as ServerCommunicator; - - NetCommand net = NetHelper.ReadNetCommand(communicator.client); - if (net.Type == NetCommand.CommandType.SESSION) - communicator.sessionId = net.Session; - - NetCommand command = new NetCommand("name", false, "pass", communicator.sessionId); - NetHelper.SendNetCommand(communicator.client, command); - } - - private void resetButton_Click(object sender, EventArgs e) - { - comPort.Write("RS"); - comPort.Read(); - Thread.Sleep(200); - comPort.Write("CM"); - comPort.Read(); - } - - private void updateTimer_Tick(object sender, EventArgs e) - { - if (timerStatus.Checked) - { - comPort.Write("ST"); - string response = comPort.Read(); - Console.WriteLine(response); - Meting m = Meting.Parse(response); - SaveData(m); - communicator.data.Add(m); - command = new NetCommand(m, communicator.sessionId); - NetHelper.SendNetCommand(communicator.client, command); - richTextBox1.Text = m.ToString(); - command = new NetCommand(communicator.data[0], communicator.sessionId); - NetHelper.SendNetCommand(communicator.client, command); - } - } - - private void timeButton_Click(object sender, EventArgs e) - { - comPort.Write("RS"); - comPort.Read(); - Thread.Sleep(200); - string[] temp = inputTextBox.Text.Split(':'); - comPort.Write("PT " + temp[0] + temp[1]); - Console.WriteLine("PT " + temp[0] + temp[1]); - inputTextBox.Text = ""; - comPort.Read(); - } - - private void distanceButton_Click(object sender, EventArgs e) - { - comPort.Write("RS"); - comPort.Read(); - Thread.Sleep(200); - int temp = int.Parse(inputTextBox.Text); - comPort.Write("PD " + temp.ToString()); - inputTextBox.Text = ""; - comPort.Read(); - } - - private void powerButton_Click(object sender, EventArgs e) - { - int temp = int.Parse(inputTextBox.Text); - comPort.Write("PW " + temp.ToString()); - inputTextBox.Text = ""; - comPort.Read(); - } - - private void energyButton_Click(object sender, EventArgs e) - { - comPort.Write("RS"); - comPort.Read(); - Thread.Sleep(200); - int temp = int.Parse(inputTextBox.Text); - comPort.Write("PE " + temp.ToString()); - inputTextBox.Text = ""; - comPort.Read(); - } - - private void timerStatus_CheckedChanged(object sender, EventArgs e) - { - if (timerStatus.Checked) - { - statusButton.Enabled = false; - updateTimer.Start(); - writeTimer.Start(); - } - else - { - statusButton.Enabled = true; - updateTimer.Stop(); - writeTimer.Stop(); - } - } - - private void readButton_Click(object sender, EventArgs e) - { - ReadFile(); - if (readFile != null) - { - metingNextButton.Enabled = true; - metingBackButton.Enabled = true; - } - - } - - private void metingBackButton_Click(object sender, EventArgs e) - { - if (i > 0) - { i--; - metingNextButton.Enabled = true; - } - if (i == 0) - { - metingBackButton.Enabled = false; - } - richTextBox1.Text = readFile.ElementAt(i).ToString(); - } - - private void metingNextButton_Click(object sender, EventArgs e) - { - if (i < (readFile.Count - 1)) - { i++; - metingBackButton.Enabled = true; - } - if (i == (readFile.Count - 1)) - { - metingNextButton.Enabled = false; - } - richTextBox1.Text = readFile.ElementAt(i).ToString(); - } - - private void writeTimer_Tick(object sender, EventArgs e) - { - WriteFile(); - } - - - private void WriteFile() - { - string json = Newtonsoft.Json.JsonConvert.SerializeObject(_data); - string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "ErgometerSessionData.ergo"); - System.IO.File.WriteAllText(path, json); - Console.WriteLine("Writing file: " + path); - } - - private void SaveData(Meting meting) - { - _data.Add(meting); - } - - private void ReadFile() - { - string path; - OpenFileDialog file = new OpenFileDialog(); - file.Filter = "Ergometer files(*.ergo) | *.ergo | All files(*.*) | *.*"; - if (file.ShowDialog() == DialogResult.OK) - { - path = file.FileName; - readFile = Newtonsoft.Json.JsonConvert.DeserializeObject>(System.IO.File.ReadAllText(path)); - richTextBox1.Text = readFile.ElementAt(i).ToString(); - } - else - { - readFile = null; - } - } - } -} \ No newline at end of file diff --git a/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj b/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj index c9b18b6..3ccd635 100644 --- a/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj +++ b/ErgometerApplication/ErgometerApplication/ErgometerApplication.csproj @@ -56,16 +56,16 @@ - + Form - - Ergometer.cs + + ClientApplicatie.cs - - Ergometer.cs + + ClientApplicatie.cs ResXFileCodeGenerator diff --git a/ErgometerApplication/ErgometerApplication/Program.cs b/ErgometerApplication/ErgometerApplication/Program.cs index 33015b4..cb1e68e 100644 --- a/ErgometerApplication/ErgometerApplication/Program.cs +++ b/ErgometerApplication/ErgometerApplication/Program.cs @@ -17,7 +17,7 @@ namespace ErgometerApplication { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Ergometer()); + Application.Run(new ClientApplicatie()); } } } diff --git a/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs b/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs index a7bb350..79c49cf 100644 --- a/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs +++ b/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; -using ErgometerLibrary; +//using ErgometerLibrary; namespace ErgometerApplication { @@ -13,6 +13,6 @@ namespace ErgometerApplication { public TcpClient client { get; set; } public int sessionId { get; set; } - public List data { get; set; } +// public List data { get; set; } } } diff --git a/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerApplication.exe b/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerApplication.exe index a7fe05f6bc4056eb26d54c608374ee0d619b3a0c..2bc4b6db20a25aa1ebf8beb773d0e34912aede5a 100644 GIT binary patch delta 4050 zcmZ8keQ;FO6+icV?PiHfc4I;k18hD_mL-ND9~v-_K-8i^1Dk-URC!6BF|yeg-`f?I z6nBBb7_lSqRYr%=s?{pfv9*)7qSzT3^behBOKs~+EmKjPsh$2&M>?ZzXKH`vzD)wW znftrv{O-BuoO|BA_w5#ribBuPM{e6t9@$34=RDQZJkdr}10v*;_3h|mXq{*bF?0%% zhK?V@?}!RhAGC&lcO%iA%ybf!8dG)Ur8^-&ufjmB_h3hhHz1lr@oG>pv>NYG(NNL} zDTr3<{Yoq@*$D{&sL}hYsBcm^KAvx(DWp?xBhg(^A{81^G+tRvG%nydkuPr(G!JHi zD56XNwa`*B5(!1!$I4Pl5Y5;i0Bm?2vo@^2re29x@apG;dz7p9sTfq^m9i{KyoA@C zC~s3}DdJ%)LTXEXo-)B^SN~64Dk?)pOPGAZUf@qt<5kizl2GXoFOeU`MKMBt0N>t4 z`9u3qU`@G{(3x>DK3=+6{A@gQAbycwI8o96;K)?8$)#sA9{*K26TJSoUvB4_Irmj@ta9cRRN6S*Gm5=j%9U}+ zB_5#o^-NU8S8(T|Tt<8)i;1SPfem5qovtds4Z9ChaeDp3S5HcT6&xu40K)^uag>YWN*uQb(%9yfaZZRH z${;(XFwa|5oya%BzTsh_qv+oO-;m5Wqv;VBNm5@JcMslLLw}M|^NHYq8gA|1)Q$eT z(9dBvHf%`QgKUfks@Puff+)cp`j1#aIPxr_G6dK1eu<#R>SYyhp7OX0V z0vo^?p66B8`Nk+yPwNKllUSxauFt1!m}*c;`BXFLqQpN+99EfWlekIZLCN2xyZ{fs z6^yS-=2<2Gv1*VJNMpjZ-~fH%abP0?glKKxb0bVy?UWIs0li%dQ&K+#=1wqSS^+fZ zIg!>vbWS8N>!O@nqkjT9r2hu|F3}ELuQ09@ClTc&vHiEDw|lfxdBdZBVYy-YoK6{0 zvIAi)N*}3V1bfP0CPXav%aBjQCQL^K;}2!{0Kyye4xGYu;8PBUFkCUeZbJ5DWb4PY zF38N5k*cw#qI!7&^<_Gy^+OF%L6p&ba2G-E;rTk}Lj6RXF5C`-o+7CHz&Y;FC0gB+g>O32ep#Fgh4u)1wIdpg3eq0;>bx2O9blloKD)bHHB& zPSD?x;?Jl=ramP&@fdt9QR<3#kXn^iY~8h@mCC6bcnuASd@D6j3d&MC3|t{`t;CIz zznvZfpOnnq5{KwTFuQP(w317I5uGwXR}nePPAQMlkLUxXAmvFZpCONKP|nbCq;*E} z7xI3Gfjvs6ID&x|y!Tb~6unMwVXq6EQ9hV_JN5;*dmq#R|Hn$j0o8A z>EPdXD(nR|wGO!yvlY4uM_5o8sNnFFu-WlS3yg`0I&pz+tqG9E7 z?iAnQmvMiu4?R3T*OcB0V{J;`XVVBW+G@FW))}%kn`v{zYi#X^ za-LnNux*V~!!qN@}53)QjgW38g`c=z;2A60C9tfkcJ zS>2S^V?spsX#o-4q6S0|O<^iJpvNd$c+z0GFvVS@@U$LNL@?+p&-mT*e)kd&m6rO- z3BUWf-~Ez58X5^W21NS<0ab}+quC(AbN<(n!f6@m-2gmK0e$hB-yV-&>Uj%FEh zGL0OIwOTX|BQ=iUAP)m_(<|G5EW97AJ&E>K@67*Y{%v<0Z6$u1uEZah3%hx z7P{`ko<|Sep1pnTI6f9c8`tdM!|U#FGp3W-l`>6dM^f(N9a}A&MDNv`hQeRL$;=aJ z_ZD^3C~CX6rX%i|9j|(Yj!rMU&J~^02i6@?MfY@g!$q~E&HrQF*ghTU{z6Q(8UF`o CW49&% literal 18432 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 diff --git a/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerApplication.pdb b/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerApplication.pdb index 27bbcd8f740dddafb35dc1234c2577468f1af8be..ce2b5faee7a075b62d8c91f14d2a6cc14c59200f 100644 GIT binary patch literal 22016 zcmeHPeQ=b;8Q;5HP6C1iVvHboK!Sn5B_V+XzaXCyAp}Sil_(sSH{m3?i+6{J(-}`h zD;+z7Q`>3l_q3f+ORZyRr&efb$FaqJ3`J|zaR#eQYaK_xYUK|L{r&dceQz(Efe1uG z?rER=-go!eeV%=G_t|~-7MnxCXe1WtjQi?J>q<&|&8>~TDt}qo=#dlZTLs81|1V1L zc!=+ynKoqpo&z4(eJn%6*#p%a!$*d*2ZndsN4-++l4D>j#sL|0kvMkD1I$YBEkozB z2h#O_L8kxDs?5FZ{>jlBWJ(9QP^l!@!9{xQVB$|MzZx`rCh7 z`JK)e{{Gor&;D!tT{~|LW#a!37#F9j|3g>!7qqWx-WTc)yY6g!$@ANatwW&o852)e z{~!2o$+peDr)QSM@+N<<=jKH#-rQ7?@$S&^KqAYwRpZdHJY(spc;M*4qX&7A_f$6i z)Lq_wUCfHc+GFuRG`_w&5Qw(7Mm9u)R{IL8Hxg@ah;~JKthg1e>FwGYy+aw081MXFbp{P#NMO< zF>OGHVZb0dV1;EjEY$;p=zyqWz#w~|D;nrwZx2FSwW>4SuXWuaD;#$wg*6z>3rd~N zJdipEy`ARlJ=6VpT!RO5+_qZL+pTC_q^D;?n1L@M1J;>tGGZaL2K#88fKa^?2lR6o zvq4L-cE5#tIwt)NX$yFWuZS`J9{h2GH|s>82jwE*yNxvSakTl8c|PYnF!9|oS3Aap zwfX*~4qhx{JVk7GYP&EXOuw znPVw<87wU4<7qen9>@u4=cn{GlblLY+SyLz4 z;`QmW)Y+%($H*&G!pnaDt(L)iD}|8p=Iqhxa1h8NMG4vG0Ty)?M`3s1*q2t z?Ydr{tSf!Jlr0i7#3zs$0p@%l`4nFXYy;Ep_k({3-U)sKJWyiQe$^lEvvHt{Y>VtsXHs`RuQYbaz`pek;WM*I3x= zhk{~4N`6moB#aGIbEL!S7Gj){S09K6Xh=$0G_Voh4zR<~=WlB9FN;Lu_=ZT8T@ni4 z);F!qx+BgsvwYjSs1@j7ts=!XC*9u`h^>#MDhOhl*u=ORbG@G!!># z{ny4KVd@!^VrQz}rB>YE8VRnqV7e)X^prNYg?jK|X3v2+!sFSq;DeWccH`?!JBxDM zFaCJP8tQ2l^_Y{0iRc&h4-eom4;3co>qATgmDnKvVw`zv@Pwj5)Q4jD+LNJ-ef=R4 zm!S;hwT$UI)AyXCSD(l})MeU7ogPFP&Sf`@w(GEC(g*|u(!I)NKIgzz3=`Ydrf?`8 z3Ur6=w6Hm|hY@A`C$a%b>8JA{%eGS|=jIx)J)T|8JfM9#KETFA4*bk{$u@8<@}kTn zq$74<+=~R}uecPL51aY6Tbw4whJ_|x{G%keGk7_0p3 zLp{_F9SQmfIudB3Y>yvUi1+!xB49mmIuN08u%U%btjGjF9(i-Ay)$nfD3>{z=gntz#8CkU@fo{SO<&&VN+rYa1ro9 zU=#2$;I+UPfQx~z0G9yw1Dk;y=SzYA1Fis$cMH)9oCs_KmIJQ?)&Z{vwg6WGR{?JT z27xyMdx19rzXpUa5?g>b1MPlkKwm5aw}2OdYZT80P6hiFUkM~H0$&3z2RDLef|r6R zw**`PW}PMAdEhU~n}fV-6;o#!covv?X$$M;^K>~zKY{NVKe!Jf>F*29gF|4>olC%# z;3eQ*aE6AS2RtxYum5?f5BYtm3GvQ*7~@xFH3vdm(DeHMHl8V~^9Qp2f6@A3uJd~B zHunkxS&tdh2f9{rv#Zwv%z4!|mux3qMK%~QMUok#xdt#ca}CG?UJPVxw&y(OYAtxK zGq)J)`RzjD^Zjt}BVWNBGW&m>v_`J4>PdbJct;@yNYm8*Zy-KZ;Ui^DXWS-n{m_Ip z#+#@0aNn=bN1FrTK$jJz9LHTZ@N+QBYI&w_$NLfRRPYp4&jjJir7E^kUImrFK7KEFxldsqyYpO$gsMk>lWbS*f}BG*Kk+u3?W)_*9p4a@d#i!$QK*~t zYF!1!*wM;hm-hy(i{C$|sOw`?%>9ks|1OMOo1lX0xuhu=;~e|&dxGP5njG_!c3-)iK4)EbfJw7ZhOV0pM7)uE9iBV+@lIct0*isrnLrv=Dv>}M_qqw}8@SU+ z*!!Fkys@*#VeY*ME|$-^*sU;Mx5w^}nhQ^yQh2iI2m%B{wW56?UB{0HzmV8#XR&#J-PcXxx&6k%>SV~TT&WR73# zWxZ?AIB6>9WxdrIz!0X~ml?l$t=Y>8K!}kJVUl{+YhC`J{Mh_5I&?qVcBk)W#An&h zSifXHPjvby+0TWr%(lnn*hxQd4@6>|&k^5pzSE_TkUkd7J>L`HUxN3Z!TzHir$W5b zJt3#`@H?o4`_|ilY{wq_A!5HPaf-qpDa?i}^S3IwpDR49@~=|(s7n8URr$9mY*si)zj|b5vMxuq-?l;OMEOod{X8t}C-0Qo zr0V8+&Usu2#=0WcxkbP>FykQCrY+!Y;77nufp>s+gZ~761AG8{2+aM+2y`6x&pz-h za5cCde74hMF$Q5*p1ojaQ`gd5vbrH0k8WDMED{PM%1;nQGM_`iC5!`LyyuG=s8o8Ahqqdfou|rR(br|3bMzcv#?Dh^DtVrgY>!*m z8(LjI+vpZb78{FvCChUGw{a+@{B6i1WB>7G>^xNlU&1<$ za~x*N7?u3U(0c4VRi-l;n|oy$^|4^I#ZI^7%dsY9D7^>VSgA(KN$qm}eP;sSV4UwH z^WS`CYnEbeMa|sCy16{JoBb>QVO@`T z)}U);9@BXiWD|Z2Rpi1LH=9`JOz=g{dup9ENH1~n)C0hU8y$>` z`u9hd2soK8{Eox3Z+%|wHg11VAJ5H_XJ)28`#g-kAVJI_mgD)9ZeMC%MDW~6FG^Yb zHBFIAM8a!~avou}y+NL1=(85=8Feu^zc=QT%X>e0LOgJxXk4Bzp4eQ8c0B-NWRS+;zK3K0&Jg2X~)m;6I;xyZm6%FS6imb_OElSIA7UZ2vng= z7fnBA`%Y_7URhgNRb8cA+`qnD!QUoH94jZ)M$8f3P8DZ{8u=GV&7C-UVuc`iuN zbx?A$deoh3zux)BM15s>SygRC1MVxG_$s%uly_QBDb$>tDt$rRF*fCf_#hgfBUg%k zq3_E}--ma#GpPs#nim=q2~qf1B833L*jKnJk#bSm~Kau3M82<hAnVLWFZho1-j5BzOSGynhq literal 30208 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 diff --git a/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerLibrary.pdb b/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerLibrary.pdb deleted file mode 100644 index d196f205b47dd2790d06352e6c77c653be328327..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24064 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 X7gNy#MGq7`Q1n3214R#vF%SG3^Nh;t diff --git a/ErgometerApplication/ErgometerApplication/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ErgometerApplication/ErgometerApplication/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 4d58ec933644490000d3dcd9fb38307e96608b6b..bacc9d8f62e0273d1235b8fdbb4046003c12255d 100644 GIT binary patch delta 257 zcmbPav)*PyE4NrlVo^zUPGVwFOmKc_QF3ZbP-;Pb@#I2YvB~#&wI<)@en?1(5U)HT xCGEUA_?1{H);U|ngche36~`3gangAylgVj(zwsL;x_J>lBR-#PJ}>3W3;-QCVtD`n delta 296 zcmZ2)Gs$K{E4Nr;UP@|Fj7xrUX>Mv>NpXyOW{F2>(&R#3vB~#&wI<)@en?2ketwS0 zQoQ1Xl(qBf;8$Ylp6F~96Iz^FR2)-`-B~fNMd|susU@jJKAA~HiA9x|0{KZis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh diff --git a/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.csproj.FileListAbsolute.txt b/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.csproj.FileListAbsolute.txt index 0821f57..94a47b9 100644 --- a/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.csproj.FileListAbsolute.txt +++ b/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.csproj.FileListAbsolute.txt @@ -19,3 +19,14 @@ C:\Users\sander\Documents\GitHub\ErgometerApplication\ErgometerApplication\Ergom C:\Users\sander\Documents\GitHub\ErgometerApplication\ErgometerApplication\ErgometerApplication\obj\Debug\ErgometerApplication.csproj.GenerateResource.Cache C:\Users\sander\Documents\GitHub\ErgometerApplication\ErgometerApplication\ErgometerApplication\bin\Debug\ErgometerLibrary.dll C:\Users\sander\Documents\GitHub\ErgometerApplication\ErgometerApplication\ErgometerApplication\bin\Debug\ErgometerLibrary.pdb +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\bin\Debug\ErgometerApplication.exe.config +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\bin\Debug\ErgometerApplication.exe +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\bin\Debug\ErgometerApplication.pdb +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\bin\Debug\Newtonsoft.Json.dll +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\bin\Debug\Newtonsoft.Json.xml +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\obj\Debug\ErgometerApplication.csprojResolveAssemblyReference.cache +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\obj\Debug\ErgometerApplication.Properties.Resources.resources +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\obj\Debug\ErgometerApplication.csproj.GenerateResource.Cache +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\obj\Debug\ErgometerApplication.exe +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\obj\Debug\ErgometerApplication.pdb +C:\Users\startklaar\Source\Repos\ErgometerApplication\ErgometerApplication\ErgometerApplication\obj\Debug\ErgometerApplication.ClientApplicatie.resources diff --git a/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.csproj.GenerateResource.Cache b/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.csproj.GenerateResource.Cache index 8a650fbe98b475fcfa33c53a7370d8e858a211ce..1d013cab48b4e71b5104deb0e6e32bd3470f6b95 100644 GIT binary patch delta 247 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 R>`h(K4{Ah#oqD44{td{KVrKvV literal 13985 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 CW49&% literal 18432 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 diff --git a/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.pdb b/ErgometerApplication/ErgometerApplication/obj/Debug/ErgometerApplication.pdb index 27bbcd8f740dddafb35dc1234c2577468f1af8be..ce2b5faee7a075b62d8c91f14d2a6cc14c59200f 100644 GIT binary patch literal 22016 zcmeHPeQ=b;8Q;5HP6C1iVvHboK!Sn5B_V+XzaXCyAp}Sil_(sSH{m3?i+6{J(-}`h zD;+z7Q`>3l_q3f+ORZyRr&efb$FaqJ3`J|zaR#eQYaK_xYUK|L{r&dceQz(Efe1uG z?rER=-go!eeV%=G_t|~-7MnxCXe1WtjQi?J>q<&|&8>~TDt}qo=#dlZTLs81|1V1L zc!=+ynKoqpo&z4(eJn%6*#p%a!$*d*2ZndsN4-++l4D>j#sL|0kvMkD1I$YBEkozB z2h#O_L8kxDs?5FZ{>jlBWJ(9QP^l!@!9{xQVB$|MzZx`rCh7 z`JK)e{{Gor&;D!tT{~|LW#a!37#F9j|3g>!7qqWx-WTc)yY6g!$@ANatwW&o852)e z{~!2o$+peDr)QSM@+N<<=jKH#-rQ7?@$S&^KqAYwRpZdHJY(spc;M*4qX&7A_f$6i z)Lq_wUCfHc+GFuRG`_w&5Qw(7Mm9u)R{IL8Hxg@ah;~JKthg1e>FwGYy+aw081MXFbp{P#NMO< zF>OGHVZb0dV1;EjEY$;p=zyqWz#w~|D;nrwZx2FSwW>4SuXWuaD;#$wg*6z>3rd~N zJdipEy`ARlJ=6VpT!RO5+_qZL+pTC_q^D;?n1L@M1J;>tGGZaL2K#88fKa^?2lR6o zvq4L-cE5#tIwt)NX$yFWuZS`J9{h2GH|s>82jwE*yNxvSakTl8c|PYnF!9|oS3Aap zwfX*~4qhx{JVk7GYP&EXOuw znPVw<87wU4<7qen9>@u4=cn{GlblLY+SyLz4 z;`QmW)Y+%($H*&G!pnaDt(L)iD}|8p=Iqhxa1h8NMG4vG0Ty)?M`3s1*q2t z?Ydr{tSf!Jlr0i7#3zs$0p@%l`4nFXYy;Ep_k({3-U)sKJWyiQe$^lEvvHt{Y>VtsXHs`RuQYbaz`pek;WM*I3x= zhk{~4N`6moB#aGIbEL!S7Gj){S09K6Xh=$0G_Voh4zR<~=WlB9FN;Lu_=ZT8T@ni4 z);F!qx+BgsvwYjSs1@j7ts=!XC*9u`h^>#MDhOhl*u=ORbG@G!!># z{ny4KVd@!^VrQz}rB>YE8VRnqV7e)X^prNYg?jK|X3v2+!sFSq;DeWccH`?!JBxDM zFaCJP8tQ2l^_Y{0iRc&h4-eom4;3co>qATgmDnKvVw`zv@Pwj5)Q4jD+LNJ-ef=R4 zm!S;hwT$UI)AyXCSD(l})MeU7ogPFP&Sf`@w(GEC(g*|u(!I)NKIgzz3=`Ydrf?`8 z3Ur6=w6Hm|hY@A`C$a%b>8JA{%eGS|=jIx)J)T|8JfM9#KETFA4*bk{$u@8<@}kTn zq$74<+=~R}uecPL51aY6Tbw4whJ_|x{G%keGk7_0p3 zLp{_F9SQmfIudB3Y>yvUi1+!xB49mmIuN08u%U%btjGjF9(i-Ay)$nfD3>{z=gntz#8CkU@fo{SO<&&VN+rYa1ro9 zU=#2$;I+UPfQx~z0G9yw1Dk;y=SzYA1Fis$cMH)9oCs_KmIJQ?)&Z{vwg6WGR{?JT z27xyMdx19rzXpUa5?g>b1MPlkKwm5aw}2OdYZT80P6hiFUkM~H0$&3z2RDLef|r6R zw**`PW}PMAdEhU~n}fV-6;o#!covv?X$$M;^K>~zKY{NVKe!Jf>F*29gF|4>olC%# z;3eQ*aE6AS2RtxYum5?f5BYtm3GvQ*7~@xFH3vdm(DeHMHl8V~^9Qp2f6@A3uJd~B zHunkxS&tdh2f9{rv#Zwv%z4!|mux3qMK%~QMUok#xdt#ca}CG?UJPVxw&y(OYAtxK zGq)J)`RzjD^Zjt}BVWNBGW&m>v_`J4>PdbJct;@yNYm8*Zy-KZ;Ui^DXWS-n{m_Ip z#+#@0aNn=bN1FrTK$jJz9LHTZ@N+QBYI&w_$NLfRRPYp4&jjJir7E^kUImrFK7KEFxldsqyYpO$gsMk>lWbS*f}BG*Kk+u3?W)_*9p4a@d#i!$QK*~t zYF!1!*wM;hm-hy(i{C$|sOw`?%>9ks|1OMOo1lX0xuhu=;~e|&dxGP5njG_!c3-)iK4)EbfJw7ZhOV0pM7)uE9iBV+@lIct0*isrnLrv=Dv>}M_qqw}8@SU+ z*!!Fkys@*#VeY*ME|$-^*sU;Mx5w^}nhQ^yQh2iI2m%B{wW56?UB{0HzmV8#XR&#J-PcXxx&6k%>SV~TT&WR73# zWxZ?AIB6>9WxdrIz!0X~ml?l$t=Y>8K!}kJVUl{+YhC`J{Mh_5I&?qVcBk)W#An&h zSifXHPjvby+0TWr%(lnn*hxQd4@6>|&k^5pzSE_TkUkd7J>L`HUxN3Z!TzHir$W5b zJt3#`@H?o4`_|ilY{wq_A!5HPaf-qpDa?i}^S3IwpDR49@~=|(s7n8URr$9mY*si)zj|b5vMxuq-?l;OMEOod{X8t}C-0Qo zr0V8+&Usu2#=0WcxkbP>FykQCrY+!Y;77nufp>s+gZ~761AG8{2+aM+2y`6x&pz-h za5cCde74hMF$Q5*p1ojaQ`gd5vbrH0k8WDMED{PM%1;nQGM_`iC5!`LyyuG=s8o8Ahqqdfou|rR(br|3bMzcv#?Dh^DtVrgY>!*m z8(LjI+vpZb78{FvCChUGw{a+@{B6i1WB>7G>^xNlU&1<$ za~x*N7?u3U(0c4VRi-l;n|oy$^|4^I#ZI^7%dsY9D7^>VSgA(KN$qm}eP;sSV4UwH z^WS`CYnEbeMa|sCy16{JoBb>QVO@`T z)}U);9@BXiWD|Z2Rpi1LH=9`JOz=g{dup9ENH1~n)C0hU8y$>` z`u9hd2soK8{Eox3Z+%|wHg11VAJ5H_XJ)28`#g-kAVJI_mgD)9ZeMC%MDW~6FG^Yb zHBFIAM8a!~avou}y+NL1=(85=8Feu^zc=QT%X>e0LOgJxXk4Bzp4eQ8c0B-NWRS+;zK3K0&Jg2X~)m;6I;xyZm6%FS6imb_OElSIA7UZ2vng= z7fnBA`%Y_7URhgNRb8cA+`qnD!QUoH94jZ)M$8f3P8DZ{8u=GV&7C-UVuc`iuN zbx?A$deoh3zux)BM15s>SygRC1MVxG_$s%uly_QBDb$>tDt$rRF*fCf_#hgfBUg%k zq3_E}--ma#GpPs#nim=q2~qf1B833L*jKnJk#bSm~Kau3M82<hAnVLWFZho1-j5BzOSGynhq literal 30208 zcmeI534m2)*~iZrZ~_zr6$IP{1qH!jhG9<>nPF2_!F`aq%v|6K%#3p{0*ZAMT>5e$ z#Zt?CBNr64@3WMmFWd^t(%e2wOS8VhH7zQYe*bs5_soKb0)@;g&-~7L*XMoS{oHe} z<5QJ&HR+m}nS#>3rM-I>jGr>9U{GOEQQJ0M%ccalJo7L3GMD>@@(6-K7R`UZ02WxY zsoCwy78q>%@UCovUApeO|Fk$XeV{!ZL4xZTY}(WkZraqs+&BOE;##1o_V3i({$Jb% zZ&0)4g~j3hAGSPETf67(n)lNV4<0?{j%)86@sCu=avxP;ZtLg0g7uS28hT~JnlE-9 z3p6$UwIIglf8DD_4Y~8wvRTv3S)jT7H)ok$!++z9$wxo-rDr-Un-Z*#q2fBTQ3$G&{ufhVr|;O@1F&jpV^^!rN}Hh)a8 z6Lq0q?`@U!+=*0gR`qjO;N!PHep?T6Zq$LlbZGer>118HJe{bnO4gN^)l|-(m#ogD z%SWd&W9H8&A6Yl6W?nLrtUIQ*c5bRNkxA85Z-wWix|-T#T_%-GmrqG%GO6lW>B6#P zIyI|0Syxz@4uZ;|<@4hTRAm*ImCDRUfuvU;5mVsPd)DR@NP7jUVhZd)100`B*UYc0 zOxCx+4m3brR)HOCfmwBld1~z)P*-2n_HNhgxTx2iw|51z{l0KVwqUNVJD?47Riv;E zOi?v@AHh9&evFT&&cm-nb5{eWDCaxBCEUD3x=F-u33qQ0cUQjM?{`IE5%yU#^tz{J z{_W{dcH0`a8Crmx;kzEJ zQ1JMmj4;}d$jVnACu2V2@`C)}C|AyKlUWc9abZFy%1QZhW+gMz{rWgQQJt8Tq*TRe z(P1w95K&qmU;cMaz!FWQ&&h zL8yA=?Gr{(r_kgv(ADc9SFiZ|vM*_Fj@PSn{@l#`I@6_wZpn^~%g&P?6kD&{?!=R8 zWnunyrrdjcx$JeO$I30-Qn}Ms_Au_^H_wN&?HrF~Qr|WkRjkz7|;_biIl}~@qI=p0(zy!JZ-?#rIc>1^s-dhA43Zgv|zE;XYrQMZVApQXQQPPFToUBlP7 zKDD2t%I7j)?PS`pvZlJ4!8l@m1~sRba*Cg$IBL@;h>#(&()#%FZ^eBrasc5PSIXx= z)>gc9on2cwQPPfSv$l02T=QT&d>;4GRWfQzYY>_HHHbX4?zUh}3-a3MjSiQr43~Dv zTlzbf-%z*yE?0rL2^QurUiqhzmvj!&nM7uOx?a^)zqN#GpQm&_uIi^G1Z}o{$}=AB z>vz;=s9SsT3WtQz6(-O8z}Kmz1}JW{h53tD{t90wjGk=Jnp?BJ%eHC{U*7w!ypv<) zG3VvK?aP~ATb0Npr>5p5>!we&oyYVM(%pwBosTR3GW_mFr2i(Dhiog`Ve-w|mZ>HxAxHn2shrs{AKOSpNzqbt!rx*B9Je)l!TjsJ&f3q+T2xPI>D-xg7b8mN<8C*dot;Oxd2pOI6u5+i`O989 ze{UK%+o$WMn8|Q@>Fi|XoMct$>_qjfWEJzkR*x;yNAsA#>eq92^usk~9Cxk)>RmZ9Ghh~oP=evHt4vUAZH zZXcyE*)ASdo5;*oNw)88L3b9FxbCbA=3F1{8_tZ^qt?{}-LnoG=Rfc3F(q+U(rrvX zkG+nhQ_7hN*h^J9{|#Tx@r)5`F0((&pw~u3@qHX`FWNY3FK-iXuXxx@V}0LOx7uFj z*$4I-k{5m7*xa}MA6;E~yLt$mi}EKh2b%s~mSS`0_l7Mx3@84rh~oP=@%?!GOlZf| zr_hzW%vgXbllHAQH~ICmoPj9!6t?t^vs?Zmuj|}n>st0J(?)q*0i(nNkMY{yoC#Hj&IoyNwo+J`NkR88XH%Uq36BaO z*HJgfdE7i7*$jKhC zAIgYiV?CEaZ}Y4Nz0I?pLg(KfQnzRT>;Xr?L*W#77_5Lj;XK$2o(&I&7eV?%v>f(< zH^C#|N=V+(!>|ahgT?R#*blx2(KUJ>Qg)=qr|f8V$TOix-&ZZgOi}1`Amk`B032k15bt{U=pg{b73j>^B^q}eFct$Ux(B+x*Cp#x4|*+emEBX z2p$X9!QM=c@F6t`x5^7BUxd8o`<*cPfUYAl|~ zy(a%UcrZ*ujl~Sq7-SC`(a(dkApJF108fMqA^j-e*@M$fR`h+T2kp}jIRYs`4lws> zci&#ih-=S2VfOsg20yi<++y;TzUM;O=qpg|^;IYvMf_vj1n0p7JRhQ4umoNV$;ZqE z7rGfYwdVL*AuS=lX?oufGTn1_1 z;Btsf1M1y`J_FF9eg;y%#di2KPbc$6ys? z><9P53itrDI>-BUA^li=+kOsU=P~v1?ugdKT>q9$?Rh2CI%8aG{xWWidx-p1kMF}) z@CQ(BsBzg5vR;`r@)39l_p4zM{2?rcYoOJyGv#XJ`mtAxF2(h9A#PyLFJbmv6SwJ4 z$V~{6RgYgnl_0&k!e4Q} zpJQ+M4EKZKvrv8F*Ki_K{Nv$s+^bJK4=dmcFackLOW;e;)}B#-J$?h#H(tq>ms?{h@VDol(42v|WyhGC8(wpHybd)^eh)P+-hhX~KR~tJ zAEB+w1Z;f~qH#GmYjf#p&n_YDWL*oOz9{!+(o5G3P;K#MHot?id91sgdf3K z@MCD}I+!}1fM{m$?Q|&P=4@mX{_1zy6KRdjjp>ENwdak{oITVwlDUW+^N+E`UXW{} z_dbxim@&<@(Vy{c*4j=`J&3;Q^eW*lr;pX6N7jzRDa@WTLUaC5*(;I$y1*5XkJ{ahry|^CzRcK!80JbMe`xOIf`H(_;pAg(Klfs zyaV=y_e1(b#5~396GTtIe()Jcts=&Z*-yU>8GDh=(zIRF5i)l~2SetLXc(l=MaRNn z@HBV~Ov4fIVu;SsHLwh>gd^d@a1_-3cr?`hcno|Oj)Nb=@oW=%;z$6?4 z>66hkNS}QVXAlXTrB3Z4-S6&w{O6+PzsfNI#7R z!bNa2JR6q7b6^TChG)Zb;YIK(@CJB3)bsWwa4lR4UxXLHKfw#3zT9~c++#Pp=jj43 z;l4k-6pn?L!BgSoum&!Ji{UrmrSJ-PExZ!m55EO}1h0nA!)xFMcrE-0ej94u{|-C| zUI&Zd^>7%x0iFPFfivK(@LYHsyaL`1Z-MmH=pncQJ_f%FHMiXfUx#U^#pco&moH&w>99_1yM<;EnKMxC%Z3pM-1RbMVLTUHHE+zf})|=@Wq1kv4ZH@v0$0J;;5zs^d>Q^8z6IZaE!x;M zrUU#V_lLm^a2R|Oj)ZT)(;#y~G!MQ5zY5=l-+=GITi{>d_u%{Rargmz5&jka8EPH) z2yTRX?rztCZtx%6m%x9*k?=!!68s3J;Ky(g+ypO&LCCoqhHw?+y^3fxYylsI%vsSo zm=EnbGLrRS3{r-aI?-qKlboOYb$<+^aK)d9jCLabamc~QafsF=t-m@~D&Ibc&Y4=9 zPecYG@;?I69`9)6G(=~aPROyy6hvVvyEme|REE!6>zneG|53;(NFk!MQ;`xxdMd5T z8HSvMD30qI9z3aAX=HePlDGn~caF(nIxAdeup7m_R;F9Hmo!O6%=d z#I@I3`e;uW*GKxQz7q8bm8mppSBdVGMt;gy*P_3czjTwo`iJzD^l)-0JlO0b7(?bc zr`8j>msq#tn0w7{bm@K0F^Ha1Ek#x!YmirwjfkEn6(N(5*~lfxt;kwrJ)#d@J0oRC zIkFhhXX}q3&mvl{_F)a_kBmdAkj2PyL~D=Mo%M)5OV%1wgfzSVObgIN^iKPk6?+cj zm>#pP3sdFy_O{Q{1HG47mYkX36-Gtan$HS5l8=8L@84ha@13zm8AqI~+mHBbe7S{{ z=Ec*kdH$~Q{PXuC$<@}O>G%AoquFzJg)DtMf!BFUXNR7QIs2|)cl@nBAX`t6jWe7yftWf0gsU%Ef0tVB+f?BBkr*?u*_1NEiQ67k@IkC|=UtpXuUj zZz}(no&TjS-fb?tqx1i*%l9Lf?{4nC*u~egbmcR^#ZUQrmk;L*6MmcXAMfJb<9LC~ z?_8(Pqb?r%Fq2Ma1Ld!?gqU>ke(mnty89oye7@$=t#%yi{9ktYcJcX9ejfY3ASlqE zMlMvi`439pRu8L6+GF@{gs@`dbUxTf!rkp8Oj* zQ*-M(JRYcG>$w8mHIakS!5;bR#rHP~r)fTy8=gzuNP~i=trM$PE^+)SvNz5&_H%*G z_;p8$5Y2I8kf}%o!g+l_fJ$29u3+nyf0;CTz7%4;a znOHe88_6IMatWf(xNb%6Lmok%K%PZjMK&PXXS77y_Q?K7PozIG92tk4j8q}b?%!*H z1A}%Qqyg(!K2K#Pj_*BvWOb%)(ez0*sp^bAd+uSv)sb7cFMxCkdd2*T1{UFp2k2Rq zjjO)b!fX~Ae~H7VwQ*e9f%@Fqrd6M_X>(s#@M&zAOEV~!M*XivQ2$E~K8+1?X$IG? zPhMbOX!mhd$GpJB?O#7`*hJk!7q_T5S9gtrFlhQETVIZiW6LS(mrJYtci7ZRs_5m@ z+Bhz4iQdDtcDvfF4~<_2_33Q5OGn*&Ie1WgFxGwMPb#F!E^NDezm%9DDVZ+_L!5r`B4ZZ&yHt}+_PiMnjI_7u3Ht7B1 zFlhP(WuMl@acP<7eVJ9PP+`#cC1Ib=hP!mk^}bBKiyH<_yr@g#`Ls5UOFKlLo7j1E zok^>gz&G>4Y%C8O*X5DO={<>F6b6l7c=cu5aF=d|-j#A?n{=CbSv6j+iRaQ+=F(5% zFdGJ&dC@eM-o|t3t8#ijYtlDhW-{xP;CfDb$_aMU{_j06-3e)>dCwq?=6{dHIu8R5jONFf`Y`*u1QDJ(&M(6d0 zPGNc{W^?KEj!L3oBJPz=?|slE8aajOJq+z%8#;yQGp?l#1Grb1-WSmGrG`#ndJljp ztC3TfKHu82QHae`pUKbOOqf3B?!B2XeFm-fU$w?BXkE<5CED)>m+j57cFqF9LwM*} za38Mqd8&7vxZrsi?yWTj{IS0dYx9zyzqjG-g9>dXaC6BxmX-0#ehn`6i!y~-&tS-) zvXUVKOIbj0K40k^zc+zcsIw}8Q`@*pbFV+yEaTwJ#19Jfv3esXKYizwXQ9T$k; ztp3}8&ncuoPmyuI;Cg%if=ukEk+NN+-jB)b00nmZujN#xx4U7p1Aj+b^OJw+%Kz?` z>!!A&>90Dcb!}tUx$td#^+~_~u64XGU&5a=wt8kw(6>4w(tWr04<2pl=ezzrs_@Xo{gPMwXP9=ZE`I3lz*3X`r`YQK`qaNg0j3eH zAMFs0r<;$mgXCZ!e~uk`xM`ebdp*2l`x6Wyvcm3#T4VH?_#W^c#IJE*^#9L+*3SZ@ zI}51xpLbvwzYoin+tn8%Fz9*(g+$1(Fc zh4$1Xi0rTS(!RDmqBc=m$?j?swTIe5TSxY#0n4}9mr7slLH9*EBif592ZtctksipQ$YF@;&