diff --git a/Programs/WinGridProxy/FormWinGridProxy.Designer.cs b/Programs/WinGridProxy/FormWinGridProxy.Designer.cs
index bd764fcf..567fa584 100644
--- a/Programs/WinGridProxy/FormWinGridProxy.Designer.cs
+++ b/Programs/WinGridProxy/FormWinGridProxy.Designer.cs
@@ -36,13 +36,6 @@
System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("EventQueue Messages", System.Windows.Forms.HorizontalAlignment.Left);
this.panelMainWindow = new System.Windows.Forms.Panel();
this.splitContainerSessionsTabs = new System.Windows.Forms.SplitContainer();
- this.listViewSessions = new WinGridProxy.ListViewNoFlicker();
- this.columnHeaderCounter = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderProtocol = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderType = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderSize = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderUrl = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderContentType = new System.Windows.Forms.ColumnHeader();
this.contextMenuStripSessions = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuSessionsRemove = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStripRemove = new System.Windows.Forms.ContextMenuStrip(this.components);
@@ -102,12 +95,8 @@
this.splitContainerFilters = new System.Windows.Forms.SplitContainer();
this.checkBoxCheckAllPackets = new System.Windows.Forms.CheckBox();
this.grpUDPFilters = new System.Windows.Forms.GroupBox();
- this.listViewPacketFilters = new WinGridProxy.ListViewNoFlicker();
- this.columnHeaderPacketName = new System.Windows.Forms.ColumnHeader();
this.checkBoxCheckAllMessages = new System.Windows.Forms.CheckBox();
this.grpCapsFilters = new System.Windows.Forms.GroupBox();
- this.listViewMessageFilters = new WinGridProxy.ListViewNoFlicker();
- this.columnHeaderName = new System.Windows.Forms.ColumnHeader();
this.tabPageInspect = new System.Windows.Forms.TabPage();
this.splitContainerInspectorTab = new System.Windows.Forms.SplitContainer();
this.tabControlInspectorRequest = new System.Windows.Forms.TabControl();
@@ -227,6 +216,18 @@
this.buttonStartProxy = new System.Windows.Forms.ToolStripButton();
this.saveFileDialog3 = new System.Windows.Forms.SaveFileDialog();
this.timerSessionQueue = new System.Windows.Forms.Timer(this.components);
+ this.listViewSessions = new WinGridProxy.ListViewNoFlicker();
+ this.columnHeaderTimestamp = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderCounter = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderProtocol = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderSize = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderUrl = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeaderContentType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.listViewPacketFilters = new WinGridProxy.ListViewNoFlicker();
+ this.columnHeaderPacketName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.listViewMessageFilters = new WinGridProxy.ListViewNoFlicker();
+ this.columnHeaderName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.panelMainWindow.SuspendLayout();
this.splitContainerSessionsTabs.Panel1.SuspendLayout();
this.splitContainerSessionsTabs.Panel2.SuspendLayout();
@@ -301,65 +302,6 @@
this.splitContainerSessionsTabs.SplitterWidth = 5;
this.splitContainerSessionsTabs.TabIndex = 0;
//
- // listViewSessions
- //
- this.listViewSessions.AllowColumnReorder = true;
- this.listViewSessions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderCounter,
- this.columnHeaderProtocol,
- this.columnHeaderType,
- this.columnHeaderSize,
- this.columnHeaderUrl,
- this.columnHeaderContentType});
- this.listViewSessions.ContextMenuStrip = this.contextMenuStripSessions;
- this.listViewSessions.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewSessions.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.listViewSessions.FullRowSelect = true;
- this.listViewSessions.GridLines = true;
- this.listViewSessions.HideSelection = false;
- this.listViewSessions.Location = new System.Drawing.Point(0, 0);
- this.listViewSessions.Name = "listViewSessions";
- this.listViewSessions.Size = new System.Drawing.Size(479, 494);
- this.listViewSessions.SmallImageList = this.imageList1;
- this.listViewSessions.TabIndex = 0;
- this.listViewSessions.UseCompatibleStateImageBehavior = false;
- this.listViewSessions.View = System.Windows.Forms.View.Details;
- this.listViewSessions.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewSessions_ColumnClick);
- this.listViewSessions.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.listViewSessions_ItemSelectionChanged);
- //
- // columnHeaderCounter
- //
- this.columnHeaderCounter.Tag = "number";
- this.columnHeaderCounter.Text = "#";
- this.columnHeaderCounter.Width = 40;
- //
- // columnHeaderProtocol
- //
- this.columnHeaderProtocol.Tag = "string";
- this.columnHeaderProtocol.Text = "Protocol";
- //
- // columnHeaderType
- //
- this.columnHeaderType.Tag = "string";
- this.columnHeaderType.Text = "Name";
- this.columnHeaderType.Width = 151;
- //
- // columnHeaderSize
- //
- this.columnHeaderSize.Tag = "";
- this.columnHeaderSize.Text = "Bytes";
- this.columnHeaderSize.Width = 42;
- //
- // columnHeaderUrl
- //
- this.columnHeaderUrl.Text = "Host";
- this.columnHeaderUrl.Width = 312;
- //
- // columnHeaderContentType
- //
- this.columnHeaderContentType.Text = "Content Type";
- this.columnHeaderContentType.Width = 250;
- //
// contextMenuStripSessions
//
this.contextMenuStripSessions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -390,7 +332,7 @@
this.toolStripMenuItemRemoveSelected,
this.toolStripMenuItemRemoveUnselected});
this.contextMenuStripRemove.Name = "contextMenuStripRemove";
- this.contextMenuStripRemove.OwnerItem = this.toolStripMenuSessionsRemove;
+ this.contextMenuStripRemove.OwnerItem = this.removeToolStripMenuItem2;
this.contextMenuStripRemove.Size = new System.Drawing.Size(143, 70);
//
// toolStripMenuItemRemoveAll
@@ -438,7 +380,7 @@
this.toolStripSeparatorSelectPacketProto,
this.toolStripMenuItemSelectPacketName});
this.contextMenuStripSelect.Name = "contextMenuStripSelect";
- this.contextMenuStripSelect.OwnerItem = this.selectToolStripMenuItem2;
+ this.contextMenuStripSelect.OwnerItem = this.selectToolStripMenuItem1;
this.contextMenuStripSelect.Size = new System.Drawing.Size(164, 98);
//
// allToolStripMenuItem4
@@ -521,7 +463,7 @@
this.toolStripSeparator17,
this.unmarkToolStripMenuItem});
this.contextMenuStripMark.Name = "contextMenuStripMarkDropdown";
- this.contextMenuStripMark.OwnerItem = this.markToolStripMenuItem1;
+ this.contextMenuStripMark.OwnerItem = this.markToolStripMenuItem2;
this.contextMenuStripMark.Size = new System.Drawing.Size(117, 142);
//
// redToolStripMenuItem2
@@ -634,9 +576,9 @@
//
// richTextBoxDebugLog
//
- this.richTextBoxDebugLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.richTextBoxDebugLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.richTextBoxDebugLog.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.richTextBoxDebugLog.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.richTextBoxDebugLog.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@@ -652,9 +594,9 @@
//
// panelStats
//
- this.panelStats.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.panelStats.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.panelStats.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.panelStats.BackColor = System.Drawing.Color.Transparent;
this.panelStats.Controls.Add(this.groupBox2);
@@ -877,9 +819,9 @@
//
// splitContainerFilters
//
- this.splitContainerFilters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainerFilters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.splitContainerFilters.Location = new System.Drawing.Point(3, 31);
this.splitContainerFilters.Name = "splitContainerFilters";
//
@@ -913,9 +855,9 @@
//
// grpUDPFilters
//
- this.grpUDPFilters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.grpUDPFilters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.grpUDPFilters.Controls.Add(this.listViewPacketFilters);
this.grpUDPFilters.Enabled = false;
this.grpUDPFilters.Location = new System.Drawing.Point(3, 3);
@@ -925,39 +867,6 @@
this.grpUDPFilters.TabStop = false;
this.grpUDPFilters.Text = "UDP Packets && Login";
//
- // listViewPacketFilters
- //
- this.listViewPacketFilters.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.listViewPacketFilters.CheckBoxes = true;
- this.listViewPacketFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderPacketName});
- this.listViewPacketFilters.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewPacketFilters.FullRowSelect = true;
- this.listViewPacketFilters.GridLines = true;
- listViewGroup1.Header = "Login";
- listViewGroup1.Name = "Login";
- listViewGroup2.Header = "Packets";
- listViewGroup2.Name = "Packets";
- this.listViewPacketFilters.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
- listViewGroup1,
- listViewGroup2});
- this.listViewPacketFilters.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
- this.listViewPacketFilters.Location = new System.Drawing.Point(3, 17);
- this.listViewPacketFilters.MultiSelect = false;
- this.listViewPacketFilters.Name = "listViewPacketFilters";
- this.listViewPacketFilters.Size = new System.Drawing.Size(291, 374);
- this.listViewPacketFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
- this.listViewPacketFilters.TabIndex = 0;
- this.listViewPacketFilters.UseCompatibleStateImageBehavior = false;
- this.listViewPacketFilters.View = System.Windows.Forms.View.Details;
- this.listViewPacketFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewPacketFilters_ItemChecked);
- this.listViewPacketFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
- //
- // columnHeaderPacketName
- //
- this.columnHeaderPacketName.Text = "Name";
- this.columnHeaderPacketName.Width = 287;
- //
// checkBoxCheckAllMessages
//
this.checkBoxCheckAllMessages.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@@ -974,9 +883,9 @@
//
// grpCapsFilters
//
- this.grpCapsFilters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.grpCapsFilters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.grpCapsFilters.Controls.Add(this.listViewMessageFilters);
this.grpCapsFilters.Enabled = false;
this.grpCapsFilters.Location = new System.Drawing.Point(3, 3);
@@ -986,39 +895,6 @@
this.grpCapsFilters.TabStop = false;
this.grpCapsFilters.Text = "Capabilities && EventQueue messages";
//
- // listViewMessageFilters
- //
- this.listViewMessageFilters.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.listViewMessageFilters.CheckBoxes = true;
- this.listViewMessageFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderName});
- this.listViewMessageFilters.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewMessageFilters.FullRowSelect = true;
- this.listViewMessageFilters.GridLines = true;
- listViewGroup3.Header = "Capabilities";
- listViewGroup3.Name = "Capabilities";
- listViewGroup4.Header = "EventQueue Messages";
- listViewGroup4.Name = "EventQueueMessages";
- this.listViewMessageFilters.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
- listViewGroup3,
- listViewGroup4});
- this.listViewMessageFilters.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
- this.listViewMessageFilters.Location = new System.Drawing.Point(3, 17);
- this.listViewMessageFilters.MultiSelect = false;
- this.listViewMessageFilters.Name = "listViewMessageFilters";
- this.listViewMessageFilters.Size = new System.Drawing.Size(293, 374);
- this.listViewMessageFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
- this.listViewMessageFilters.TabIndex = 1;
- this.listViewMessageFilters.UseCompatibleStateImageBehavior = false;
- this.listViewMessageFilters.View = System.Windows.Forms.View.Details;
- this.listViewMessageFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewMessageFilters_ItemChecked);
- this.listViewMessageFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
- //
- // columnHeaderName
- //
- this.columnHeaderName.Text = "Name";
- this.columnHeaderName.Width = 289;
- //
// tabPageInspect
//
this.tabPageInspect.Controls.Add(this.splitContainerInspectorTab);
@@ -1205,9 +1081,9 @@
//
// hexBoxRequest
//
- this.hexBoxRequest.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.hexBoxRequest.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.hexBoxRequest.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.hexBoxRequest.LineInfoForeColor = System.Drawing.Color.Empty;
this.hexBoxRequest.Location = new System.Drawing.Point(0, 0);
@@ -1218,8 +1094,8 @@
this.hexBoxRequest.TabIndex = 2;
this.hexBoxRequest.UseFixedBytesPerLine = true;
this.hexBoxRequest.VScrollBarVisible = true;
- this.hexBoxRequest.CurrentPositionInLineChanged += new System.EventHandler(this.RequestPosition_Changed);
this.hexBoxRequest.CurrentLineChanged += new System.EventHandler(this.RequestPosition_Changed);
+ this.hexBoxRequest.CurrentPositionInLineChanged += new System.EventHandler(this.RequestPosition_Changed);
//
// tabControlInspectorResponse
//
@@ -1376,9 +1252,9 @@
//
// hexBoxResponse
//
- this.hexBoxResponse.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.hexBoxResponse.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.hexBoxResponse.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.hexBoxResponse.LineInfoForeColor = System.Drawing.Color.Empty;
this.hexBoxResponse.Location = new System.Drawing.Point(0, 0);
@@ -1389,8 +1265,8 @@
this.hexBoxResponse.TabIndex = 1;
this.hexBoxResponse.UseFixedBytesPerLine = true;
this.hexBoxResponse.VScrollBarVisible = true;
- this.hexBoxResponse.CurrentPositionInLineChanged += new System.EventHandler(this.ReplyPosition_Changed);
this.hexBoxResponse.CurrentLineChanged += new System.EventHandler(this.ReplyPosition_Changed);
+ this.hexBoxResponse.CurrentPositionInLineChanged += new System.EventHandler(this.ReplyPosition_Changed);
//
// tabPageInject
//
@@ -1418,9 +1294,9 @@
//
// richTextBoxInject
//
- this.richTextBoxInject.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
+ this.richTextBoxInject.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
this.richTextBoxInject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.richTextBoxInject.Location = new System.Drawing.Point(6, 6);
this.richTextBoxInject.Name = "richTextBoxInject";
@@ -2116,6 +1992,137 @@
this.timerSessionQueue.Interval = 250;
this.timerSessionQueue.Tick += new System.EventHandler(this.timerSessionQueue_Tick);
//
+ // listViewSessions
+ //
+ this.listViewSessions.AllowColumnReorder = true;
+ this.listViewSessions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderCounter,
+ this.columnHeaderTimestamp,
+ this.columnHeaderProtocol,
+ this.columnHeaderType,
+ this.columnHeaderSize,
+ this.columnHeaderUrl,
+ this.columnHeaderContentType});
+ this.listViewSessions.ContextMenuStrip = this.contextMenuStripSessions;
+ this.listViewSessions.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listViewSessions.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.listViewSessions.FullRowSelect = true;
+ this.listViewSessions.GridLines = true;
+ this.listViewSessions.HideSelection = false;
+ this.listViewSessions.Location = new System.Drawing.Point(0, 0);
+ this.listViewSessions.Name = "listViewSessions";
+ this.listViewSessions.Size = new System.Drawing.Size(479, 494);
+ this.listViewSessions.SmallImageList = this.imageList1;
+ this.listViewSessions.TabIndex = 0;
+ this.listViewSessions.UseCompatibleStateImageBehavior = false;
+ this.listViewSessions.View = System.Windows.Forms.View.Details;
+ this.listViewSessions.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewSessions_ColumnClick);
+ this.listViewSessions.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.listViewSessions_ItemSelectionChanged);
+ //
+ // columnHeaderTimestamp
+ //
+ this.columnHeaderTimestamp.Text = "Time";
+ this.columnHeaderTimestamp.Width = 30;
+ //
+ // columnHeaderCounter
+ //
+ this.columnHeaderCounter.Tag = "number";
+ this.columnHeaderCounter.Text = "#";
+ this.columnHeaderCounter.Width = 40;
+ //
+ // columnHeaderProtocol
+ //
+ this.columnHeaderProtocol.Tag = "string";
+ this.columnHeaderProtocol.Text = "Protocol";
+ //
+ // columnHeaderType
+ //
+ this.columnHeaderType.Tag = "string";
+ this.columnHeaderType.Text = "Name";
+ this.columnHeaderType.Width = 151;
+ //
+ // columnHeaderSize
+ //
+ this.columnHeaderSize.Tag = "";
+ this.columnHeaderSize.Text = "Bytes";
+ this.columnHeaderSize.Width = 42;
+ //
+ // columnHeaderUrl
+ //
+ this.columnHeaderUrl.Text = "Host";
+ this.columnHeaderUrl.Width = 312;
+ //
+ // columnHeaderContentType
+ //
+ this.columnHeaderContentType.Text = "Content Type";
+ this.columnHeaderContentType.Width = 250;
+ //
+ // listViewPacketFilters
+ //
+ this.listViewPacketFilters.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.listViewPacketFilters.CheckBoxes = true;
+ this.listViewPacketFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderPacketName});
+ this.listViewPacketFilters.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listViewPacketFilters.FullRowSelect = true;
+ this.listViewPacketFilters.GridLines = true;
+ listViewGroup1.Header = "Login";
+ listViewGroup1.Name = "Login";
+ listViewGroup2.Header = "Packets";
+ listViewGroup2.Name = "Packets";
+ this.listViewPacketFilters.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
+ listViewGroup1,
+ listViewGroup2});
+ this.listViewPacketFilters.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.listViewPacketFilters.Location = new System.Drawing.Point(3, 17);
+ this.listViewPacketFilters.MultiSelect = false;
+ this.listViewPacketFilters.Name = "listViewPacketFilters";
+ this.listViewPacketFilters.Size = new System.Drawing.Size(291, 374);
+ this.listViewPacketFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
+ this.listViewPacketFilters.TabIndex = 0;
+ this.listViewPacketFilters.UseCompatibleStateImageBehavior = false;
+ this.listViewPacketFilters.View = System.Windows.Forms.View.Details;
+ this.listViewPacketFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
+ this.listViewPacketFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewPacketFilters_ItemChecked);
+ //
+ // columnHeaderPacketName
+ //
+ this.columnHeaderPacketName.Text = "Name";
+ this.columnHeaderPacketName.Width = 287;
+ //
+ // listViewMessageFilters
+ //
+ this.listViewMessageFilters.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.listViewMessageFilters.CheckBoxes = true;
+ this.listViewMessageFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderName});
+ this.listViewMessageFilters.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listViewMessageFilters.FullRowSelect = true;
+ this.listViewMessageFilters.GridLines = true;
+ listViewGroup3.Header = "Capabilities";
+ listViewGroup3.Name = "Capabilities";
+ listViewGroup4.Header = "EventQueue Messages";
+ listViewGroup4.Name = "EventQueueMessages";
+ this.listViewMessageFilters.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
+ listViewGroup3,
+ listViewGroup4});
+ this.listViewMessageFilters.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.listViewMessageFilters.Location = new System.Drawing.Point(3, 17);
+ this.listViewMessageFilters.MultiSelect = false;
+ this.listViewMessageFilters.Name = "listViewMessageFilters";
+ this.listViewMessageFilters.Size = new System.Drawing.Size(293, 374);
+ this.listViewMessageFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
+ this.listViewMessageFilters.TabIndex = 1;
+ this.listViewMessageFilters.UseCompatibleStateImageBehavior = false;
+ this.listViewMessageFilters.View = System.Windows.Forms.View.Details;
+ this.listViewMessageFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
+ this.listViewMessageFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewMessageFilters_ItemChecked);
+ //
+ // columnHeaderName
+ //
+ this.columnHeaderName.Text = "Name";
+ this.columnHeaderName.Width = 289;
+ //
// FormWinGridProxy
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -2381,6 +2388,7 @@
private System.Windows.Forms.SaveFileDialog saveFileDialog3;
private System.Windows.Forms.ToolStripMenuItem autoscrollToolStripMenuItem;
private System.Windows.Forms.Timer timerSessionQueue;
+ private System.Windows.Forms.ColumnHeader columnHeaderTimestamp;
}
}
diff --git a/Programs/WinGridProxy/FormWinGridProxy.cs b/Programs/WinGridProxy/FormWinGridProxy.cs
index 7a23ba88..9e84353d 100644
--- a/Programs/WinGridProxy/FormWinGridProxy.cs
+++ b/Programs/WinGridProxy/FormWinGridProxy.cs
@@ -218,7 +218,7 @@ namespace WinGridProxy
SessionLogin sessionLogin = new SessionLogin(request, direction, comboBoxLoginURL.Text, request.GetType().Name + " " + loginType);
- ListViewItem sessionEntry = new ListViewItem(new string[] { PacketCounter.ToString(),
+ ListViewItem sessionEntry = new ListViewItem(new string[] { PacketCounter.ToString(), sessionLogin.TimeStamp.ToString("HH:mm:ss.fff"),
sessionLogin.Protocol, sessionLogin.Name, sessionLogin.Length.ToString(), sessionLogin.Host, sessionLogin.ContentType });
sessionEntry.Tag = sessionLogin;
@@ -248,7 +248,7 @@ namespace WinGridProxy
SessionPacket sessionPacket = new SessionPacket(packet, direction, endpoint,
PacketDecoder.InterpretOptions(packet.Header) + " Seq: " + packet.Header.Sequence.ToString() + " Freq:" + packet.Header.Frequency.ToString());
- ListViewItem sessionItem = new ListViewItem(new string[] { PacketCounter.ToString(), sessionPacket.Protocol, sessionPacket.Name, sessionPacket.Length.ToString(), sessionPacket.Host, sessionPacket.ContentType });
+ ListViewItem sessionItem = new ListViewItem(new string[] { PacketCounter.ToString(), sessionPacket.TimeStamp.ToString("HH:mm:ss.fff"), sessionPacket.Protocol, sessionPacket.Name, sessionPacket.Length.ToString(), sessionPacket.Host, sessionPacket.ContentType });
sessionItem.Tag = sessionPacket;
sessionItem.ImageIndex = (int)sessionPacket.Direction;
@@ -312,7 +312,7 @@ namespace WinGridProxy
capsSession = new SessionEvent(req.RawResponse, req.ResponseHeaders, req.Info.URI, req.Info.CapType, proto);
}
- string[] s = { PacketCounter.ToString(), capsSession.Protocol, capsSession.Name, capsSession.Length.ToString(), capsSession.Host, capsSession.ContentType };
+ string[] s = { PacketCounter.ToString(), capsSession.TimeStamp.ToString("HH:mm:ss.fff"), capsSession.Protocol, capsSession.Name, capsSession.Length.ToString(), capsSession.Host, capsSession.ContentType };
ListViewItem session = new ListViewItem(s);
session.ImageIndex = (int)direction;
@@ -578,7 +578,7 @@ namespace WinGridProxy
{
foreach (ListViewItem item in listViewSessions.Items)
{
- if (item.SubItems[2].Text.Equals(toolStripMenuItemSelectPacketName.Tag) && !item.Selected)
+ if (item.SubItems[3].Text.Equals(toolStripMenuItemSelectPacketName.Tag) && !item.Selected)
item.Selected = true;
}
}
@@ -614,12 +614,12 @@ namespace WinGridProxy
if (listViewSessions.SelectedItems.Count == 1)
{
ListViewItem item = listViewSessions.SelectedItems[0];
- string strPacketOrMessage = (item.SubItems[1].Text.Equals(PROTO_PACKETSTRING)) ? "Packets" : "Messages";
+ string strPacketOrMessage = (item.SubItems[2].Text.Equals(PROTO_PACKETSTRING)) ? "Packets" : "Messages";
- enableDisableFilterByNameToolStripMenuItem.Text = String.Format("Capture {0} {1}", item.SubItems[2].Text, strPacketOrMessage);
- toolStripMenuItemSelectPacketName.Tag = enableDisableFilterByNameToolStripMenuItem.Tag = item.SubItems[2].Text;
+ enableDisableFilterByNameToolStripMenuItem.Text = String.Format("Capture {0} {1}", item.SubItems[3].Text, strPacketOrMessage);
+ toolStripMenuItemSelectPacketName.Tag = enableDisableFilterByNameToolStripMenuItem.Tag = item.SubItems[3].Text;
- toolStripMenuItemSelectPacketName.Text = String.Format("All {0} {1}", item.SubItems[2].Text, strPacketOrMessage);
+ toolStripMenuItemSelectPacketName.Text = String.Format("All {0} {1}", item.SubItems[3].Text, strPacketOrMessage);
enableDisableFilterByNameToolStripMenuItem.Visible =
toolStripSeparatorSelectPacketProto.Visible =
@@ -717,9 +717,9 @@ namespace WinGridProxy
listViewSessions.BeginUpdate();
foreach (ListViewItem item in listViewSessions.Items)
{
- ListViewItem found = FindListViewItem(listViewPacketFilters, item.SubItems[2].Text, false);
+ ListViewItem found = FindListViewItem(listViewPacketFilters, item.SubItems[3].Text, false);
if (found == null)
- found = FindListViewItem(listViewMessageFilters, item.SubItems[2].Text, false);
+ found = FindListViewItem(listViewMessageFilters, item.SubItems[3].Text, false);
if (found != null && !found.Checked)
listViewSessions.Items.Remove(item);
@@ -844,6 +844,7 @@ namespace WinGridProxy
ListViewItem addedItem = new ListViewItem(new string[] {
session["id"].AsString(),
+ importedSession.TimeStamp.ToString("HH:mm:ss.fff"),
importedSession.Protocol,
importedSession.Name,
importedSession.Length.ToString(),
@@ -1057,10 +1058,10 @@ namespace WinGridProxy
if (
(opts.MatchCase
- && (item.SubItems[2].Text.Contains(opts.SearchText)
+ && (item.SubItems[3].Text.Contains(opts.SearchText)
/*|| TagToString(item.Tag, item.SubItems[2].Text).Contains(opts.SearchText)*/)
) // no case matching
- || ((item.SubItems[2].Text.ToLower().Contains(opts.SearchText.ToLower())
+ || ((item.SubItems[3].Text.ToLower().Contains(opts.SearchText.ToLower())
/*|| TagToString(item.Tag, item.SubItems[2].Text).ToLower().Contains(opts.SearchText.ToLower())*/
))
)
diff --git a/Programs/WinGridProxy/FormWinGridProxy.resx b/Programs/WinGridProxy/FormWinGridProxy.resx
index 605e2f55..91417e43 100644
--- a/Programs/WinGridProxy/FormWinGridProxy.resx
+++ b/Programs/WinGridProxy/FormWinGridProxy.resx
@@ -137,7 +137,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACe
- CQAAAk1TRnQBSQFMAgEBAgEAAZQBAAGUAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CQAAAk1TRnQBSQFMAgEBAgEAAawBAAGsAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -188,48 +188,48 @@
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
- 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
+ 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
- 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
- QmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIySURBVDhPrZLfS5NRGMfff6H7boIuuq2pMZyL1eAt11CW
+ DcOKsB9vpFmaLtNExco0av6CbIVLJ61Wk3BSkT/AFCkRZSpZmrmiJQ41xSaCwdfznL15XEUX0Reem5f3
+ 8znnec4j/Zc8fxYGla91CS3eRTx0z6OpMYS7jmnU1X6B/VYA18snUVoyjsKCt8jLHcH5c36ouCQR2NUJ
+ 1Nas4G9ZXlmFKbULh1Kf8lJxSfI+WeCCyopv6q+/h+DQ/DJ2WV5Ao1FgPegRAveDOS4oLfmq/h6dn/DH
+ 4AJizD4UXJrCAUuzEDgbZrjgou2DiohshIcnQtgme5GTPYbkJKcQ1N8OckHW2REVi+RXuM8fxGaDG4oy
+ ALPZIQQ11Z+5QDk1oKJ/hjv7P2FTfCMOH3mFxMQ6IbhROYWOdrCnBI4dfwPr0V4+bRoY9UzXppMjcDdS
+ rC8hy3YhuFI2gTYf2A4Aza4f7N2/o/zaLB8qDYx6zszwr8P7k1thNFYIweXCMXgeAfedq2xxwjClZUeV
+ Jd2GtDNFETiJwfs8MBjKhMCWN8pgoLoqzE8miH1GjE7G4PsZjE7OQsm9ij2mFg7rdrug1xcJAa2l4w7W
+ r00Cgk/n38S7wBwC04u4UGxHrMHF4CbEJtyDLj5fCDIzhljfSxzeavRgyw4Zj9t64GvvQ0d3P3pfD2Kv
+ 2QqNvgFxDN6urYdWmyMElJMnevh60obRktA701PRtGlg1DOdSkXwzrisaMG/RZLWAE60OMW5fNhvAAAA
+ AElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
- ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
- HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
- rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
- TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
- oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
- 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
- xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
- LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
- KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
@@ -238,16 +238,16 @@
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
- ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
- HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
- rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
- TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
- oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
- 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
- xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
- LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
- KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
@@ -256,17 +256,17 @@
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPlZNdSNNRGMb/F110ZZEVhVBgeeHNICiiuggp
- olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdPKMgr7kApFItTUkWZqVhSVYmao5Nev/xyoQ4k88Nyc
- 8z6/93nP4QjCfy6lwc4ltZVso4P/tMyXRcmMHqZ0EeY6jZQVInzuf0e1Tb9Ina3P/tkpLD6XkNg8BJe5
- u93C+HDVrP4M2ZkcMOOw5tLZ9nxJyJE4HSExBoKkBQhVpTrGhso9zNPfiph0JlB+U01ZcRbmwnRMeWlc
- 08opUCV6QissGsZ+WOY6z4hmuuXglC6pRYBbJSp+fzXNxnaZ66o1s3rkyKHWruJuWRYOcwZ2kxKr8TI3
- DCkU6+QYNUnuNGWmLEY+5uOK3degoKZcx3SfEvozPfVB3OtNhi4ZvI2nrTIc23U9gtmYwa8eNXzScq8i
- l6bHWnfRwhHeREJzGFONgYw/CeB9qQSZNNR9FyUGBT87lfQ3plJj1zLTq4COGDegLVo0HmeqKZjx+gOM
- PNzDYPU2lLF+4jhyN6BIl8pgexK3bRpaXopJuhJEwGloiWDmVSgTLw4xWreXoZrtfK/wp/nKak4E+s6/
- hDFHTkd9GndsOdCTBq1i3NdHmWgIYvRpAMO1OxlwSPhi2YpT641CuoWzsSfnAfnZiVRZ1Tjvx9GsF+bU
- pF1BvWolD9JXUZmyDnOiD1cvbCZiYXfXCPrMi+gVZ8hOiiL53DHORwdzKnw/hw/uYt9uCTskfvj7+rBp
- 41rWr/Fig7fX8j/Tsn/fcgx/ARfG3ml6M3rzAAAAAElFTkSuQmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJHSURBVDhPxZBdSNNhFMb/F110ZZEVhVBgeeHNICiiuggp
+ olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdNKMwr7kApFItTUkWZqVhSVYmao5Nevvy7UoYR3HXh4
+ 4XCe33nOKyy3lAY7l9RWMo0O/raWXxEyo5spVYTNvOGyfIRPfW+ptOkXqaPl6T83hcRmExSdgzAz3NVm
+ YWyoYla/B+1M9JtxWLPpaH22JORIjI6gKAMB0jyEimIdo4OlbuaprwVMOOMovammpDADc34qppwUrmnl
+ 5Kni3aFlFg2j3y1z5mnRTJccnNIltQhwq0jFry+mOXNtpWZWDx1Z1NhV3C3JwGFOw25SYjVe5oYhiUKd
+ HKMmwQUrMWUw/CF3NnZvvYKqUh1TvUroS3fXe7HXkwidMngTS2t5KLbregSzMY2f3Wr4qKW6LJvGR1rX
+ 0MLor8OhKYTJBn/GHvvxrliCTBrsOqXIoOBHh5K+hmSq7FqmexTQHuUytkaKxuNMNgYyVneA4Qd7GKjc
+ hjLaRzxH7gIU6JIZaEvgtk1D8wsxSWecCDgNzWFMvwxm/PkhRmr3Mli1nW9lvjRdWc0Jf+/5jzRmyWmv
+ S+GOLQu6U6BFjPvqKOP1AYw88WOoZif9DgmfLVtxaj1RSLdwNvrkPCA3M54KqxrnvRia9MKcGrUrqFOt
+ 5H7qKsqT1mGO9+Lqhc2ELdw+U/r0i+gVZ8hMiCDx3DHORwZyKnQ/hw/uYt9uCTskPvh6e7Fp41rWr/Fg
+ g6eHO+A/lyD8ARfG3mk9fv1YAAAAAElFTkSuQmCC
@@ -275,46 +275,46 @@
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
- ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
- HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
- rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
- TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
- oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
- 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
- xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
- LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
- KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
- ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
- HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
- rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
- TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
- oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
- 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
- xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
- LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
- KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
- ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
- HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
- rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
- TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
- oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
- 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
- xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
- LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
- KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==