diff --git a/WifiScan/App.config b/WifiScan/App.config index 8e15646..4bfa005 100644 --- a/WifiScan/App.config +++ b/WifiScan/App.config @@ -1,6 +1,6 @@ - + - + - \ No newline at end of file + diff --git a/WifiScan/Form1.Designer.cs b/WifiScan/Form1.Designer.cs index f65986d..e1a86c6 100644 --- a/WifiScan/Form1.Designer.cs +++ b/WifiScan/Form1.Designer.cs @@ -54,12 +54,16 @@ this.tvTree.ImageIndex = 0; this.tvTree.ImageList = this.imageListDevices; this.tvTree.Location = new System.Drawing.Point(0, 0); + this.tvTree.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.tvTree.Name = "tvTree"; this.tvTree.SelectedImageIndex = 0; - this.tvTree.Size = new System.Drawing.Size(350, 437); + this.tvTree.Size = new System.Drawing.Size(233, 285); this.tvTree.StateImageList = this.imageListDevices; this.tvTree.TabIndex = 0; + this.tvTree.DrawNode += new System.Windows.Forms.DrawTreeNodeEventHandler(this.tvTree_DrawNode); this.tvTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvTree_AfterSelect); + this.tvTree.DoubleClick += new System.EventHandler(this.tvTree_DoubleClick); + this.tvTree.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.tvTree_KeyPress); // // imageListDevices // @@ -74,6 +78,7 @@ // this.scMain.Dock = System.Windows.Forms.DockStyle.Fill; this.scMain.Location = new System.Drawing.Point(0, 0); + this.scMain.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.scMain.Name = "scMain"; // // scMain.Panel1 @@ -84,9 +89,9 @@ // scMain.Panel2 // this.scMain.Panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.splitContainer1_Panel2_Paint); - this.scMain.Size = new System.Drawing.Size(1237, 567); - this.scMain.SplitterDistance = 350; - this.scMain.SplitterWidth = 15; + this.scMain.Size = new System.Drawing.Size(825, 369); + this.scMain.SplitterDistance = 233; + this.scMain.SplitterWidth = 10; this.scMain.TabIndex = 1; // // pwinfo @@ -97,9 +102,10 @@ this.pwinfo.Controls.Add(this.btColor); this.pwinfo.Controls.Add(this.pbSignal); this.pwinfo.Dock = System.Windows.Forms.DockStyle.Bottom; - this.pwinfo.Location = new System.Drawing.Point(0, 437); + this.pwinfo.Location = new System.Drawing.Point(0, 285); + this.pwinfo.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.pwinfo.Name = "pwinfo"; - this.pwinfo.Size = new System.Drawing.Size(350, 130); + this.pwinfo.Size = new System.Drawing.Size(233, 84); this.pwinfo.TabIndex = 2; // // lbInfo2 @@ -108,20 +114,22 @@ | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.lbInfo2.AutoSize = true; - this.lbInfo2.Location = new System.Drawing.Point(12, 23); + this.lbInfo2.Location = new System.Drawing.Point(8, 15); + this.lbInfo2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.lbInfo2.Name = "lbInfo2"; - this.lbInfo2.Size = new System.Drawing.Size(21, 20); + this.lbInfo2.Size = new System.Drawing.Size(16, 13); this.lbInfo2.TabIndex = 4; this.lbInfo2.Text = " "; // // cbVisible // this.cbVisible.AutoSize = true; - this.cbVisible.Location = new System.Drawing.Point(12, 56); + this.cbVisible.Location = new System.Drawing.Point(8, 36); + this.cbVisible.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.cbVisible.Name = "cbVisible"; - this.cbVisible.Size = new System.Drawing.Size(139, 24); + this.cbVisible.Size = new System.Drawing.Size(102, 17); this.cbVisible.TabIndex = 3; - this.cbVisible.Text = "Show graphics"; + this.cbVisible.Text = "Show in graphic"; this.cbVisible.UseVisualStyleBackColor = true; this.cbVisible.CheckedChanged += new System.EventHandler(this.cbVisible_CheckedChanged); // @@ -132,18 +140,20 @@ | System.Windows.Forms.AnchorStyles.Right))); this.lbInfo.AutoSize = true; this.lbInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbInfo.Location = new System.Drawing.Point(12, 3); + this.lbInfo.Location = new System.Drawing.Point(8, 2); + this.lbInfo.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.lbInfo.Name = "lbInfo"; - this.lbInfo.Size = new System.Drawing.Size(24, 20); + this.lbInfo.Size = new System.Drawing.Size(19, 13); this.lbInfo.TabIndex = 2; this.lbInfo.Text = " "; // // btColor // this.btColor.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btColor.Location = new System.Drawing.Point(315, 86); + this.btColor.Location = new System.Drawing.Point(210, 56); + this.btColor.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.btColor.Name = "btColor"; - this.btColor.Size = new System.Drawing.Size(32, 32); + this.btColor.Size = new System.Drawing.Size(21, 21); this.btColor.TabIndex = 1; this.btColor.UseVisualStyleBackColor = false; this.btColor.Click += new System.EventHandler(this.btColor_Click); @@ -152,9 +162,10 @@ // this.pbSignal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.pbSignal.Location = new System.Drawing.Point(12, 86); + this.pbSignal.Location = new System.Drawing.Point(8, 56); + this.pbSignal.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.pbSignal.Name = "pbSignal"; - this.pbSignal.Size = new System.Drawing.Size(297, 32); + this.pbSignal.Size = new System.Drawing.Size(198, 21); this.pbSignal.TabIndex = 0; // // WifiTimer @@ -165,14 +176,15 @@ // // Form1 // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1237, 567); + this.ClientSize = new System.Drawing.Size(825, 369); this.Controls.Add(this.scMain); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "WifiScan V1.1"; + this.Text = "WifiScan V1.2 by XWolf Override"; this.scMain.Panel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit(); this.scMain.ResumeLayout(false); diff --git a/WifiScan/Form1.cs b/WifiScan/Form1.cs index 23469a4..41f6fae 100644 --- a/WifiScan/Form1.cs +++ b/WifiScan/Form1.cs @@ -9,11 +9,15 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace WifiScan { public partial class Form1 : Form { + // Create a Font object for the node tags. + Font tagFont = new Font("Helvetica", 8, FontStyle.Bold); + public Form1() { InitializeComponent(); @@ -34,6 +38,7 @@ objMethodInfo.Invoke(scMain.Panel1, objArgs); objMethodInfo.Invoke(scMain.Panel2, objArgs); + //objMethodInfo.Invoke(tvTree, objArgs); } #region Tree Management @@ -56,11 +61,8 @@ node.Tag = wifi; return node; } - TreeNode nnode = nodes.Add(wifi.SSID); + TreeNode nnode = nodes.Add(""); nnode.Tag = wifi; - nnode.ImageIndex = 1; - nnode.SelectedImageIndex = 1; - nnode.ForeColor = wifi.Conf.Color; return nnode; } @@ -79,30 +81,38 @@ private void PopulateTree() { - ArrayList nodes = new ArrayList(tvTree.Nodes); + ArrayList nodesToDelete = new ArrayList(tvTree.Nodes);// Fill with all (discard found later) foreach (WifiDevice dev in WifiDevice.List()) { TreeNode node = GetNodeFor(dev); - bool empty = node.Nodes.Count == 0; - nodes.Remove(node); + bool wasEmpty = node.Nodes.Count == 0; + nodesToDelete.Remove(node); Wifi[] wifis = dev.Networks; - ArrayList netnodes = new ArrayList(node.Nodes); + ArrayList disabledNetNodes = new ArrayList(node.Nodes);// Fill with all (discard found later) foreach (Wifi wifi in wifis) { TreeNode nwnode = GetNodeFor(wifi, node.Nodes); + if (string.IsNullOrEmpty(wifi.SSID)) + { + nwnode.Text = $"[{wifi.BSSID}]"; // Update network name (for configuration changes) + } + else + { + nwnode.Text = wifi.SSID; // Update network name (for configuration changes) + } nwnode.ImageIndex = nwnode.SelectedImageIndex = 1; - nwnode.ForeColor = wifi.Conf.Color; - netnodes.Remove(nwnode); + nwnode.BackColor = wifi.Conf.Color; + disabledNetNodes.Remove(nwnode); } - foreach (TreeNode nwdel in netnodes) + foreach (TreeNode nwdel in disabledNetNodes) { - nwdel.ImageIndex = nwdel.SelectedImageIndex = 2; //node.Nodes.Remove(nwdel); + nwdel.ImageIndex = nwdel.SelectedImageIndex = 2; } - if (empty && node.Nodes.Count > 0) + if (wasEmpty && node.Nodes.Count > 0) node.Expand(); } // remove old - foreach (TreeNode ndel in nodes) + foreach (TreeNode ndel in nodesToDelete) tvTree.Nodes.Remove(ndel); } @@ -134,8 +144,32 @@ foreach (TreeNode n in ns) { n.StateImageIndex = w.Conf.Visible ? -1 : 3; - n.ForeColor = w.Conf.Color; + n.BackColor = w.Conf.Color; } + scMain.Panel2.Invalidate(); + } + + // Returns the bounds of the specified node, including the region + // occupied by the node label and any node tag displayed. + private Rectangle NodeBounds(TreeNode node) + { + // Set the return value to the normal node bounds. + Rectangle bounds = node.Bounds; + if (node.Tag != null) + { + // Retrieve a Graphics object from the TreeView handle + // and use it to calculate the display width of the tag. + Graphics g = tvTree.CreateGraphics(); + int tagWidth = (int)g.MeasureString + (node.Tag.ToString(), tagFont).Width + 6; + + // Adjust the node bounds using the calculated value. + bounds.Offset(tagWidth / 2, 0); + bounds = Rectangle.Inflate(bounds, tagWidth / 2, 0); + g.Dispose(); + } + + return bounds; } private void WifiTimer_Tick(object sender, EventArgs e) @@ -181,5 +215,79 @@ ShowWifi(w); UpdateNode(w); } + + private void tvTree_DoubleClick(object sender, EventArgs e) + { + if (tvTree.SelectedNode == null) + return; + Wifi w = tvTree.SelectedNode.Tag as Wifi; + if (w == null) + return; + w.Conf.Visible = !w.Conf.Visible; + UpdateNode(w); + } + + private void tvTree_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == ' ') + { + if (tvTree.SelectedNode == null) + return; + Wifi w = tvTree.SelectedNode.Tag as Wifi; + if (w == null) + return; + w.Conf.Visible = !w.Conf.Visible; + UpdateNode(w); + } + } + + private void tvTree_DrawNode(object sender, DrawTreeNodeEventArgs e) + { + // Draw the background and node text for a selected node. + if ((e.State & TreeNodeStates.Selected) != 0) + { + // Draw the background of the selected node. The NodeBounds + // method makes the highlight rectangle large enough to + // include the text of a node tag, if one is present. + e.Graphics.FillRectangle(Brushes.Green, NodeBounds(e.Node)); + + // Retrieve the node font. If the node font has not been set, + // use the TreeView font. + Font nodeFont = e.Node.NodeFont; + if (nodeFont == null) nodeFont = ((System.Windows.Forms.TreeView)sender).Font; + + // Draw the node text. + e.Graphics.DrawString(e.Node.Text, nodeFont, Brushes.White, + Rectangle.Inflate(e.Bounds, 2, 0)); + } + + // Use the default background and node text. + else + { + e.DrawDefault = true; + } + + // If a node tag is present, draw its string representation + // to the right of the label text. + if (e.Node.Tag != null) + { + e.Graphics.DrawString(e.Node.Tag.ToString(), tagFont, + Brushes.Yellow, e.Bounds.Right + 2, e.Bounds.Top); + } + + // If the node has focus, draw the focus rectangle large, making + // it large enough to include the text of the node tag, if present. + if ((e.State & TreeNodeStates.Focused) != 0) + { + using (Pen focusPen = new Pen(Color.Black)) + { + focusPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; + Rectangle focusBounds = NodeBounds(e.Node); + focusBounds.Size = new Size(focusBounds.Width - 1, + focusBounds.Height - 1); + e.Graphics.DrawRectangle(focusPen, focusBounds); + } + } + } } } diff --git a/WifiScan/Form1.resx b/WifiScan/Form1.resx index e7af932..fc6ef89 100644 --- a/WifiScan/Form1.resx +++ b/WifiScan/Form1.resx @@ -124,110 +124,109 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+ - FwAAAk1TRnQBSQFMAgEBBAEAASgBAAEoAQABGgEAARoBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFo + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC2 + FwAAAk1TRnQBSQFMAgEBBAEAATABAAEwAQABGgEAARoBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFo AwABNAMAAQEBAAEgBQABgAFU/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AjAADLgH/Ay4B//8AmQADLgH/ Ay4B/xQAAy4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf//AFkAAy4B/wMu Af8UAAMuAf8EAAMuAf8EAAMuAf8EAAMuAf8EAAMuAf8EAAMuAf//AFkAAy4B/wMuAf8UAAMuAf8EAAMu - Af8EAAMuAf8EAAMuAf8EAAMuAf8EAAMuAf/sAAMaASQDQgGuA0QBlwMIAQsMAAMgAS4DRAGhAz8BugM+ - AbsDRAGmA0ABegMkATYDAAEBMAADLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wQAAy4B/wQA - Ay4B/wQAAy4B/wQAAy4B/wQAAy4B/wMuAf8DRgHvA0YBgDQAAyIBMgNPAZ4DBAEFXAADJgE4AyYBODwA - A0IBrgMAAf8DAAH/AzwBwAMJAQwIAAMBAQIDRAGaAwAB/wMAAf8DAAH/AwAB/wMAAf8DMAHVAzYBWwMA - AQEoAAMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/ - Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wNGAYAsAAMhATEDAAH/AwAB/wNPAZwDAgEDVAADJgE4 - AZQBlQGUAfEBlAGVAZQB8QMmATg4AANEAZcDAAH/AwAB/wMAAf8DPAHAAwkBDAgAAwEBAgNEAZoDAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DPgG+AxQBGyQAAy4B/wMuAf9AAAMqAUADVAGvAy4B/wMuAf8oAAMl - ATcDFwH4AwAB/wMAAf8DAAH/A08BnlAAAyYBOAGUAZUBlAHxAZ8BogGfAf8BnwGiAZ8B/wGUAZUBlAHx - AyYBODQAAwgBCwM6AcYDAAH/AwAB/wMAAf8DPAHAAwkBDAgAAwEBAgM/AXQDQwGoAyIB5AMAAf8DAAH/ - AwAB/wMAAf8DHwHnAyMBMyAAAy4B/wMuAf9EAAMXASADLgH/Ay4B/yQAAyQBNgMsAe8DAAH/AwAB/wMA - Af8DAAH/AwAB/wNOAZhIAAMmATkBlAGVAZQB8QGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/ - AZQBlQGUAfEDJgE5MAADHQEqAx4B6QMAAf8DAAH/AwAB/wMAAf8DPAHAAwgBCxAAAwEBAgMvAUsDMgHS - AwAB/wMAAf8DAAH/AxMB8AMjATMcAAMuAf8DLgH/JAADRgHvAy4B/wMuAf8DLgH/Ay4B/wMuAf8DRgHv - CAADLgH/Ay4B/yQAAwUBBwNDAXgDGwH1AwAB/wMAAf8DAAH/A1MBvAMeAStIAAMlATYBgwGFAYMB2wGf - AaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AYMBhQGDAdsDJQE2LAADFQEdAyQB4wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wM8AcADCQEMFAADBAEGA0MBkgMAAf8DAAH/AwAB/wMeAekDGAEiGAADLgH/ - Ay4B/yQAAy4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wgAAy4B/wMuAf8cAAMlATcDVAG7AxoBJQQA - AwgBCwMqAUADMAFLAxoBJAMAAQEDBAEFA0QBegNPAZ44AAMmATkDPwFnBAADBAEFAzEBTQFMAU0BTAGB - AUwBTQFMAYEDMQFNAwQBBQQAAz8BZwMmATkgAAMHAQoDNQHOAwAB/wMAAf8DAAH/A0MBhQM8AcADAAH/ - AwAB/wMAAf8DPAHAAwkBDBgAA0ABeQMAAf8DAAH/AwAB/wMyAdIDBwEKFAADLgH/Ay4B/wgAA1cBzwMu - Af8DVwHPEAADLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/CAADLgH/Ay4B/xgAAyEBMQMXAfgDAAH/ - AxQB+QNGAYEDIwE0AxMBGgMPARQDGQEjAzIEUAHQAwAB/wMAAf8DTwGeAwIBAywAAyYBOAGUAZUBlAHx - AZ8BogGfAf8BZwFoAWcBsgMlATYQAAMlATYBZwFoAWcBsgGfAaIBnwH/AZQBlQGUAfEDJgE4HAADQwGe - AwAB/wMAAf8DAAH/A0MBjQQAAwgBCwM8AcADAAH/AwAB/wMAAf8DPAHAAwgBCxgAA0IBiAMAAf8DAAH/ - AwAB/wNEAZ0UAAMuAf8DLgH/CAADLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/ - Ay4B/wMuAf8DLgH/Ay4B/wgAAy4B/wMuAf8UAAMgAS8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNPAZwDAwEEJAADJgE4AZQBlQGUAfEBnwGiAZ8B/wGf - AaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGLAY0BiwHlAXIBdAFyAcMBcgF0AXIBwwGLAY0BiwHlAZ8BogGf - Af8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BlAGVAZQB8QMmATgUAAMzAVMDAAH/AwAB/wMAAf8DQgGy - AwEBAggAAwkBDAM8AcADAAH/AwAB/wMAAf8DPAHAAwkBDBQAAwEBAgNBAbMDAAH/AwAB/wMAAf8DMgFS - EAADLgH/Ay4B/wgAA1cBzwMuAf8DVwHPEAADLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/CAADLgH/ - Ay4B/xQAAyIBMgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/A1IBtgMCAQMkAANgAaUBnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/ - AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGi - AZ8B/wGfAaIBnwH/A2ABpRQAAyQB4wMAAf8DAAH/AyYB4QMNAREQAAMkATYDAAH/AwAB/wMAAf8DAAH/ - AzwBwAMIAQsUAAMNARIDJQHiAwAB/wMAAf8DJAHjEAADLgH/Ay4B/yQAAy4B/wMuAf8DLgH/Ay4B/wMu - Af8DLgH/Ay4B/wgAAy4B/wMuAf8MAAMnAToDNQFYBAADFAEbA00B1QMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DGgH3AzoBYQMBAQIDBAEFA0MBeBgAAyEBMAMJAQwDAwEEA04BgwGa - AZ0BmgH8AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGf - Af8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BmgGdAZoB/ANOAYMDAwEEAwkBDAMhATAMAAMkAeMDAAH/ - AwAB/wMlAeIDDQESEAADIgEyAwAB/wMAAf8DAAH/AwAB/wMAAf8DPAHAAwgBCxAAAw0BEgMlAeIDAAH/ - AwAB/wMkAeMQAAMuAf8DLgH/JAADRgHvAy4B/wMuAf8DLgH/Ay4B/wMuAf8DRgHvCAADLgH/Ay4B/wgA - AykBPgMxAe0DFAH5A0oBigcAAQEDKwFCA1MBrQMUAfkDAAH/AwAB/wMAAf8DAAH/AwAB/wNKAdoDQQFz - AxIBGAQAAxoBJANEAd4DAAH/A08BnRAAAycBOgGUAZYBlAHyAXgBeQF4AcwDFgEfBAADHwEsAWEBYgFh - AacBmwGeAZsB+gGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGb - AZ4BmwH6AWEBYgFhAacDHwEsBAADFgEfAXgBeQF4AcwBlAGWAZQB8gMnAToIAAMyAVIDAAH/AwAB/wMA - Af8DQQGzAwEBAgwAAwIBAwMsAdkDAAH/AwAB/wMAAf8DAAH/AwAB/wM8AcADCQEMDAADPQFvAwAB/wMA - Af8DAAH/AzIBURAAAy4B/wMuAf9EAAMXASADLgH/Ay4B/wQAAycBOgMxAe0DAAH/AwAB/wMAAf8DUAHN - AzEBTgMBAQIEAAMNAREDKQE+AzUBVgM3AVsDMAFMAxwBKAMAAQEEAAMRARcDTQGWAwoB+wMAAf8DAAH/ - AwAB/wNPAZ0IAAMnAToBlAGWAZQB8gGfAaIBnwH/AZ8BogGfAf8BkQGUAZEB8AFAAUEBQAFqAwMBBAQA - AwwBEAMzAVADTAGAAVcBWAFXAZYBVwFYAVcBlgNMAYADMwFQAwwBEAQAAwMBBAFAAUEBQAFqAZEBlAGR - AfABnwGiAZ8B/wGfAaIBnwH/AZQBlgGUAfIDJwE6CAADRAGdAwAB/wMAAf8DAAH/A0IBiBAAAx4BKwMs - AdkDAAH/AwAB/wMAAf8DAAH/AwAB/wM8AcADCAELCAADAQECA0QBmgMAAf8DRAGbFAADLgH/Ay4B/0AA - AxcBIANQAZ8DLgH/Ay4B/wQAA1MBwwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNQAdADQwF3AyYBOQMS - ARgDBQEHAwEBAgMKAQ0DGwEmAzUBVgNRAacDFwH4AwAB/wMAAf8DAAH/AwAB/wMAAf8DIAH0AyEBMAMM - ARABkQGTAZEB7gGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BhgGHAYYB4ANI - AXkDGgEkGAADGgEkA0gBeQGGAYcBhgHgAZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGi - AZ8B/wGRAZMBkQHuAwwBEAQAAwcBCgMyAdIDAAH/AwAB/wMAAf8DQAF3EAADAgEDAyIBMgMkATYDPAHA - AwAB/wMAAf8DAAH/AzwBwAMIAQsIAAMBAQIDQAF4AwcBChQAAy4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/ - Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/ - A1ABnwcAAQEDUgG2AwUB/QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DNwHrAzABSwgAAzEBTQGUAZcBlAH0AZ8BogGf - Af8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8DjQHoA3MBxANl - Aa0DZQGtA3MBxAONAegBnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGf - Af8BnwGiAZ8B/wGUAZcBlAH0AzEBTQwAAxgBIgMeAekDAAH/AwAB/wMAAf8DRAGQAwQBBRQAAwkBDAM8 - AcADAAH/AwAB/wMAAf8DPAHAAwkBDCQAAy4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/ - Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DUAGfAwwBEAwAA0ABcAMa - AfcDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/gNRAcwDDQEREAADHQEpAXoBewF6Ac4BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGi + Af8EAAMuAf8EAAMuAf8EAAMuAf8EAAMuAf/sAAMaASQDTAGuA0sBlwMJAQsMAAMgAS4DTAGhA0sBugNK + AbsDTQGmA0MBegMlATYEATAAAy4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8EAAMuAf8EAAMu + Af8EAAMuAf8EAAMuAf8EAAMuAf8DLgH/A0oB7wNGAYA0AAMjATIDUAGeAwQBBVwAAyYBOAMmATg8AANM + Aa4DAAH/AwAB/wNIAcADCQEMCAAEAgNLAZoDAAH/AwAB/wMAAf8DAAH/AwAB/wM+AdUDNwFbBAEoAAMu + Af8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMu + Af8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wNGAYAsAAMiATEDAAH/AwAB/wNQAZwDAgEDVAADJgE4AZABkQGQ + AfEBkAGRAZAB8QMmATg4AANLAZcDAAH/AwAB/wMAAf8DSAHAAwkBDAgABAIDSwGaAwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/A0oBvgMUARskAAMuAf8DLgH/QAADKgFAA1UBrwMuAf8DLgH/KAADJQE3AxoB+AMA + Af8DAAH/AwAB/wNQAZ5QAAMmATgBkAGRAZAB8QGfAaIBnwH/AZ8BogGfAf8BkAGRAZAB8QMmATg0AAMJ + AQsDRwHGAwAB/wMAAf8DAAH/A0gBwAMJAQwIAAQCA0IBdANMAagDLgHkAwAB/wMAAf8DAAH/AwAB/wMr + AecDIwEzIAADLgH/Ay4B/0QAAxgBIAMuAf8DLgH/JAADJQE2AzIB7wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A04BmEgAAyYBOQGQAZEBkAHxAZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BkAGRAZAB8QMm + ATkwAAMeASoDKAHpAwAB/wMAAf8DAAH/AwAB/wNIAcADCQELEAAEAgMwAUsDPwHSAwAB/wMAAf8DAAH/ + AxwB8AMjATMcAAMuAf8DLgH/JAADSgHvAy4B/wMuAf8DLgH/Ay4B/wMuAf8DSgHvCAADLgH/Ay4B/yQA + AwYBBwNEAXgDIQH1AwAB/wMAAf8DAAH/A1UBvAMeAStIAAMlATYDewHbAZ8BogGfAf8BnwGiAZ8B/wGf + AaIBnwH/AZ8BogGfAf8DewHbAyUBNiwAAxUBHQMwAeMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DSAHA + AwkBDBQAAwUBBgNJAZIDAAH/AwAB/wMAAf8DKAHpAxkBIhgAAy4B/wMuAf8kAAMuAf8DLgH/Ay4B/wMu + Af8DLgH/Ay4B/wMuAf8IAAMuAf8DLgH/HAADJQE3A1cBuwMbASUEAAMJAQsDKgFAAzABSwMaASQEAQME + AQUDRAF6A1ABnjgAAyYBOQM9AWcEAAMEAQUDMQFNA0gBgQNIAYEDMQFNAwQBBQQAAz0BZwMmATkgAAMI + AQoDRAHOAwAB/wMAAf8DAAH/A0cBhQNIAcADAAH/AwAB/wMAAf8DSAHAAwkBDBgAA0MBeQMAAf8DAAH/ + AwAB/wM/AdIDCAEKFAADLgH/Ay4B/wgAA1oBzwMuAf8DWgHPEAADLgH/Ay4B/wMuAf8DLgH/Ay4B/wMu + Af8DLgH/CAADLgH/Ay4B/xgAAyIBMQMaAfgDAAH/AxgB+QNGAYEDJAE0AxMBGgMPARQDGQEjAzMBUANU + AdADAAH/AwAB/wNQAZ4DAgEDLAADJgE4AZABkQGQAfEBnwGiAZ8B/wFfAWABXwGyAyUBNhAAAyUBNgFf + AWABXwGyAZ8BogGfAf8BkAGRAZAB8QMmATgcAANMAZ4DAAH/AwAB/wMAAf8DSAGNBAADCQELA0gBwAMA + Af8DAAH/AwAB/wNIAcADCQELGAADRwGIAwAB/wMAAf8DAAH/A0wBnRQAAy4B/wMuAf8IAAMuAf8DLgH/ + Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/CAADLgH/Ay4B/xQA + AyEBLwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A1ABnAMDAQQkAAMmATgBkAGRAZAB8QGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AYQBhgGE + AeUBaAFqAWgBwwFoAWoBaAHDAYQBhgGEAeUBnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGQ + AZEBkAHxAyYBOBQAAzQBUwMAAf8DAAH/AwAB/wNMAbIEAggAAwkBDANIAcADAAH/AwAB/wMAAf8DSAHA + AwkBDBQABAIDTQGzAwAB/wMAAf8DAAH/AzMBUhAAAy4B/wMuAf8IAANaAc8DLgH/A1oBzxAAAy4B/wMu + Af8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wgAAy4B/wMuAf8UAAMjATIDAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNVAbYDAgEDJAADVwGlAZ8BogGfAf8BnwGi AZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/ - AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BegF7 - AXoBzgMdASkUAAMjATMDEwHwAwAB/wMAAf8DAAH/AzUBzwMtAUcDAAEBEAADCgEOAyoB3QMAAf8DAAH/ - AwAB/wM8AcADCQEMIAADLgH/Ay4B/2AAAw0BEgNRAaEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMpAfADJwE6AwIBAxgAAwMBBANDAW8BjQGPAY0B6gGf + AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wNXAaUUAAMwAeMDAAH/AwAB/wM0 + AeEDDQEREAADJQE2AwAB/wMAAf8DAAH/AwAB/wNIAcADCQELFAADDgESAzMB4gMAAf8DAAH/AzAB4xAA + Ay4B/wMuAf8kAAMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8IAAMuAf8DLgH/DAADJwE6AzYBWAQA + AxQBGwNSAdUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Ax4B9wM6AWEEAgME + AQUDRAF4GAADIQEwAwkBDAMDAQQDSQGDAZcBmgGXAfwBnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGi + AZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGXAZoBlwH8 + A0kBgwMDAQQDCQEMAyEBMAwAAzAB4wMAAf8DAAH/AzMB4gMOARIQAAMjATIDAAH/AwAB/wMAAf8DAAH/ + AwAB/wNIAcADCQELEAADDgESAzMB4gMAAf8DAAH/AzAB4xAAAy4B/wMuAf8kAANKAe8DLgH/Ay4B/wMu + Af8DLgH/Ay4B/wNKAe8IAAMuAf8DLgH/CAADKQE+AzkB7QMYAfkDSgGKBAAEAQMrAUIDVAGtAxgB+QMA + Af8DAAH/AwAB/wMAAf8DAAH/A1AB2gNBAXMDEgEYBAADGgEkA0oB3gMAAf8DUAGdEAADJwE6AY8BkAGP + AfIBbgFvAW4BzAMXAR8EAAMfASwDWgGnAZkBnAGZAfoBnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGi + AZ8B/wGfAaIBnwH/AZ8BogGfAf8BmQGcAZkB+gNaAacDHwEsBAADFwEfAW4BbwFuAcwBjwGQAY8B8gMn + AToIAAMzAVIDAAH/AwAB/wMAAf8DTQGzBAIMAAMCAQMDOgHZAwAB/wMAAf8DAAH/AwAB/wMAAf8DSAHA + AwkBDAwAA0ABbwMAAf8DAAH/AwAB/wMzAVEQAAMuAf8DLgH/RAADGAEgAy4B/wMuAf8EAAMnAToDOQHt + AwAB/wMAAf8DAAH/A1QBzQMxAU4EAgQAAw0BEQMpAT4DNQFWAzgBWwMwAUwDHQEoBAEEAAMSARcDTgGW + Aw0B+wMAAf8DAAH/AwAB/wNQAZ0IAAMnAToBjwGQAY8B8gGfAaIBnwH/AZ8BogGfAf8BiwGNAYsB8AM+ + AWoDAwEEBAADDAEQAzMBUANIAYABUQFSAVEBlgFRAVIBUQGWA0gBgAMzAVADDAEQBAADAwEEAz4BagGL + AY0BiwHwAZ8BogGfAf8BnwGiAZ8B/wGPAZABjwHyAycBOggAA0wBnQMAAf8DAAH/AwAB/wNHAYgQAAMe + ASsDOgHZAwAB/wMAAf8DAAH/AwAB/wMAAf8DSAHAAwkBCwgABAIDSwGaAwAB/wNLAZsUAAMuAf8DLgH/ + QAADGAEgA1ABnwMuAf8DLgH/BAADVgHDAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1QB0ANDAXcDJgE5 + AxIBGAMGAQcEAgMKAQ0DGwEmAzUBVgNSAacDGgH4AwAB/wMAAf8DAAH/AwAB/wMAAf8DJgH0AyEBMAMM + ARABigGMAYoB7gGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BfgF/AX4B4ANF + AXkDGgEkGAADGgEkA0UBeQF+AX8BfgHgAZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGi + AZ8B/wGKAYwBigHuAwwBEAQAAwgBCgM/AdIDAAH/AwAB/wMAAf8DQwF3EAADAgEDAyMBMgMlATYDSAHA + AwAB/wMAAf8DAAH/A0gBwAMJAQsIAAQCA0MBeAMIAQoUAAMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMu + Af8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wNQ + AZ8EAAQBA1UBtgMHAf0DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Az8B6wMwAUsIAAMxAU0BkAGSAZAB9AGfAaIBnwH/ + AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/A4UB6ANpAcQDXQGt + A10BrQNpAcQDhQHoAZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/ + AZ8BogGfAf8BkAGSAZAB9AMxAU0MAAMZASIDKAHpAwAB/wMAAf8DAAH/A0kBkAMEAQUUAAMJAQwDSAHA + AwAB/wMAAf8DAAH/A0gBwAMJAQwkAAMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMu + Af8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/Ay4B/wMuAf8DLgH/A1ABnwMMARAMAANAAXADHgH3 + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMBAf4DVgHMAw0BERAAAx0BKQNxAc4BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGf AaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGf - Af8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BjQGPAY0B6gND - AW8DAwEEHAADIwEzAx8B5wMAAf8DAAH/AwAB/wMAAf8DJgHfA0MBogNDAYQDQwGFA0MBpQMhAeUDAAH/ - AwAB/wMAAf8DAAH/AwAB/wM8AcADCAELHAADLgH/Ay4B/2cAAQEDFAEcAzkBXwNQAdADAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMpAfEDTgGXAyABLwMEAQUoAAMHAQoDPgFmA3MBxAGfAaIBnwH9 - AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGi - AZ8B/wGfAaIBnwH9A3MBxAM+AWYDBwEKKAADFAEbAz4BvgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNEAZccAAMuAf8DLgH/dAADEAEWAyUBNwMy - AVADNwFbAzkBXwM1AVYDKwFDAxwBJwMEAQVAAAMPARQDMgFOA0kBewFXAVgBVwGWA14BogNeAaIBVwFY - AVcBlgNJAXsDMgFOAw8BFDsAAQEDNgFbAzAB1QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AzkByQMyAVADPAHAAwAB/wMAAf8DQgGuGAADFwEgAy4B/wMuAf//AEQAAQEDJAE2A0ABegNEAaYDPgG7 - Az4BuwNDAaQDPwF1Ax8BLQgAAwgBCwNEAZcDQgGuAxoBJBQAAwwBEANQAZ8DLgH/A1QBr/8AiQADLgH/ - Ay4B/wMuAf8DLgH/Ay4B/wMqAUD/AIkAAy4B/wMuAf8DLgH/A1cBzwMqAUD/AI0AAUIBTQE+BwABPgMA - ASgDAAFoAwABNAMAAQEBAAEBBQABQAEDFgAD//8AogAB8wz/AwAB8wHgAQMK/wMAAfMB6gGrCv8DAAHz - AeoBqwf/AYcBAAH/AwAB8AEKAagBfwH8AX8C/wE/Af8BgwEAAT8DAAHwAgABPwH4AT8B/wH+AR8B/wGB - AYABHwMAAfMB/wH8AT8B8AE/Af8B/AEPAf8BgAHAAQ8DAAHzAf8B/gE/AeABHwH/AfgBBwH/AYABeAEH - AwAB8wH+AQMBPwHgAR8B/wH4AQcB/wEAAT4BAwMAAfMB/gEDAT8BiAEHAf8B5AEJAf4BAAEfAYEDAAHz - AR4BAwE/AQABAQH/AcEB4AH+AQgBDwHBAwAB8wEAAQMBPgIAAf8BgAEAAXwBDAEHAcADAAHzAR4BAwE+ - AgAB/wGAAQABfAEeAQMB4AMAAfMB/gEDATkCAAF+AgABHAEeAQEB4AMAAfMB/gEDATABgAEEATwBIAEB - AQwBDgEAAeADAAHzAf8B/gEgAhABGAEIAQQBBgEPAQABYQMAAfMB/wH8ASADAAEDAfABAgEHAYABMQMA - AfACAAEgAgABGAIAAQcBAQHwAR8DAAHwAgABOAIAATwCAAEPAYABeAEPAwAB8wL/AfwCAAF+AgABHwHA - AQABBwMAAfMC/wH+AQABAQH/AYABAAF/AeABAAEHAwAB8wP/AeABDwH/AfABAwH/AfABAAEHAwAB4wn/ - AfwBAQGHAwABwwz/AwABAwz/AwABBwz/AwAL + Af8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8DcQHOAx0BKRQA + AyMBMwMcAfADAAH/AwAB/wMAAf8DQwHPAy4BRwQBEAADCwEOAzcB3QMAAf8DAAH/AwAB/wNIAcADCQEM + IAADLgH/Ay4B/2AAAw4BEgNRAaEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMwAfADJwE6AwIBAxgAAwMBBANAAW8BhQGHAYUB6gGfAaIBnwH/AZ8BogGf + Af8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGf + AaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BhQGHAYUB6gNAAW8DAwEEHAADIwEz + AysB5wMAAf8DAAH/AwAB/wMAAf8DMwHfA0wBogNHAYQDRwGFA0wBpQMvAeUDAAH/AwAB/wMAAf8DAAH/ + AwAB/wNIAcADCQELHAADLgH/Ay4B/2QABAEDFQEcAzkBXwNUAdADAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMwAfEDTgGXAyEBLwMEAQUoAAMIAQoDPQFmA2kBxAGfAaIBnwH9AZ8BogGfAf8BnwGi + AZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH/AZ8BogGfAf8BnwGiAZ8B/wGfAaIBnwH9 + A2kBxAM9AWYDCAEKKAADFAEbA0oBvgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wNLAZccAAMuAf8DLgH/dAADEQEWAyUBNwMzAVADOAFbAzkBXwM1 + AVYDLAFDAxwBJwMEAQVAAAMPARQDMQFOA0UBewFRAVIBUQGWA1cBogNXAaIBUQFSAVEBlgNFAXsDMQFO + Aw8BFDgABAEDNwFbAz4B1QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0cByQMzAVADSAHA + AwAB/wMAAf8DTAGuGAADGAEgAy4B/wMuAf//AEEABAEDJQE2A0MBegNNAaYDSgG7A0oBuwNLAaQDQgF1 + AyABLQgAAwkBCwNLAZcDTAGuAxoBJBQAAwwBEANQAZ8DLgH/A1UBr/8AiQADLgH/Ay4B/wMuAf8DLgH/ + Ay4B/wMqAUD/AIkAAy4B/wMuAf8DLgH/A1oBzwMqAUD/AI0AAUIBTQE+BwABPgMAASgDAAFoAwABNAMA + AQEBAAEBBQABQAEDFgAD//8AogAB8wz/AwAB8wHgAQMK/wMAAfMB6gGrCv8DAAHzAeoBqwf/AYcBAAH/ + AwAB8AEKAagBfwH8AX8C/wE/Af8BgwEAAT8DAAHwAgABPwH4AT8B/wH+AR8B/wGBAYABHwMAAfMB/wH8 + AT8B8AE/Af8B/AEPAf8BgAHAAQ8DAAHzAf8B/gE/AeABHwH/AfgBBwH/AYABeAEHAwAB8wH+AQMBPwHg + AR8B/wH4AQcB/wEAAT4BAwMAAfMB/gEDAT8BiAEHAf8B5AEJAf4BAAEfAYEDAAHzAR4BAwE/AQABAQH/ + AcEB4AH+AQgBDwHBAwAB8wEAAQMBPgIAAf8BgAEAAXwBDAEHAcADAAHzAR4BAwE+AgAB/wGAAQABfAEe + AQMB4AMAAfMB/gEDATkCAAF+AgABHAEeAQEB4AMAAfMB/gEDATABgAEEATwBIAEBAQwBDgEAAeADAAHz + Af8B/gEgAhABGAEIAQQBBgEPAQABYQMAAfMB/wH8ASADAAEDAfABAgEHAYABMQMAAfACAAEgAgABGAIA + AQcBAQHwAR8DAAHwAgABOAIAATwCAAEPAYABeAEPAwAB8wL/AfwCAAF+AgABHwHAAQABBwMAAfMC/wH+ + AQABAQH/AYABAAF/AeABAAEHAwAB8wP/AeABDwH/AfABAwH/AfABAAEHAwAB4wn/AfwBAQGHAwABwwz/ + AwABAwz/AwABBwz/AwAL diff --git a/WifiScan/Properties/Resources.Designer.cs b/WifiScan/Properties/Resources.Designer.cs index 9002597..22843d7 100644 --- a/WifiScan/Properties/Resources.Designer.cs +++ b/WifiScan/Properties/Resources.Designer.cs @@ -1,69 +1,61 @@ //------------------------------------------------------------------------------ // // Este código fue generado por una herramienta. -// Versión de runtime: 4.0.30319.42000 +// Versión de runtime:4.0.30319.42000 // -// Los cambios de este archivo pueden provocar un comportamiento inesperado y se perderán si -// el código se vuelve a generar. +// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si +// se vuelve a generar el código. // //------------------------------------------------------------------------------ -namespace WifiScan.Properties -{ - - +namespace WifiScan.Properties { + using System; + + /// - /// Clase de recurso fuertemente tipado para buscar cadenas traducidas, etc. + /// Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc. /// // StronglyTypedResourceBuilder generó automáticamente esta clase // a través de una herramienta como ResGen o Visual Studio. // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen // con la opción /str o recompile su proyecto de VS. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [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 - { - + 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() - { + internal Resources() { } - + /// - /// Devuelve la instancia ResourceManager almacenada en caché utilizada por esta clase. + /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WifiScan.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// - /// Invalida la propiedad CurrentUICulture del subproceso actual para todas las - /// búsquedas de recursos usando esta clase de recursos fuertemente tipados. + /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las + /// búsquedas de recursos mediante esta clase de recurso fuertemente tipado. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/WifiScan/Properties/Settings.Designer.cs b/WifiScan/Properties/Settings.Designer.cs index 356eb88..b2f4381 100644 --- a/WifiScan/Properties/Settings.Designer.cs +++ b/WifiScan/Properties/Settings.Designer.cs @@ -1,28 +1,24 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// Este código fue generado por una herramienta. +// Versión de runtime:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si +// se vuelve a generar el código. // //------------------------------------------------------------------------------ -namespace WifiScan.Properties -{ - - +namespace WifiScan.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } diff --git a/WifiScan/WifiDevice.cs b/WifiScan/WifiDevice.cs index 6c56983..f120c2b 100644 --- a/WifiScan/WifiDevice.cs +++ b/WifiScan/WifiDevice.cs @@ -7,6 +7,9 @@ namespace WifiScan { + /// + /// Wifi Antenas on computer. + /// class WifiDevice { @@ -29,7 +32,7 @@ public static List List() { - List del = new List(devices); + List del = new List(devices); // Devices to delete foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { WifiDevice dev = GetFor(wlanIface); diff --git a/WifiScan/WifiScan.csproj b/WifiScan/WifiScan.csproj index 3477065..48aa35b 100644 --- a/WifiScan/WifiScan.csproj +++ b/WifiScan/WifiScan.csproj @@ -8,8 +8,9 @@ WinExe WifiScan WifiScan - v4.5 + v4.8 512 + AnyCPU @@ -74,6 +75,7 @@ True Resources.resx + True SettingsSingleFileGenerator