From f50634f889c4736ab32e91c20cebe4791950ca35 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 3 Feb 2016 13:04:18 -0600 Subject: [PATCH] Graphics overhaul & minor change to help puzzle --- EduNetworkBuilder/EduNetworkBuilder.csproj | 7 +- EduNetworkBuilder/NB.cs | 14 + EduNetworkBuilder/NetTest.cs | 16 +- EduNetworkBuilder/Network.cs | 166 ++++-- EduNetworkBuilder/NetworkBuilder.Designer.cs | 1 - EduNetworkBuilder/NetworkBuilder.cs | 64 ++- EduNetworkBuilder/NetworkDevice.cs | 2 + EduNetworkBuilder/Packet.cs | 2 +- EduNetworkBuilder/Resources/ReleaseNotes.rtf | 568 ++++++------------- 9 files changed, 386 insertions(+), 454 deletions(-) diff --git a/EduNetworkBuilder/EduNetworkBuilder.csproj b/EduNetworkBuilder/EduNetworkBuilder.csproj index 930d21e..46a1b44 100644 --- a/EduNetworkBuilder/EduNetworkBuilder.csproj +++ b/EduNetworkBuilder/EduNetworkBuilder.csproj @@ -25,7 +25,7 @@ http://tyounglightsys.ddns.info/EduNetworkBuilder/v1/ true publish.htm - 25 + 26 1.0.0.%2a false true @@ -54,10 +54,10 @@ Resources\NBIco.ico - A4F0B3ABDDD27B9830477C7B93C90C41A5706505 + FC016CC0B0D70B0A6ABDABD9CDB267055A8FCCA3 - EduNetworkBuilder_TemporaryKey.pfx + EduNetworkBuilder_1_TemporaryKey.pfx true @@ -193,6 +193,7 @@ RTFWindow.cs + SettingsSingleFileGenerator diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs index 8a2736b..3b0a19a 100644 --- a/EduNetworkBuilder/NB.cs +++ b/EduNetworkBuilder/NB.cs @@ -304,6 +304,13 @@ namespace EduNetworkBuilder if (myWin.GameRandomGen == null) return null; return myWin.myNetwork; } + public static void MarkToUpdate() + { + BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; + if (myWin == null) return; + myWin.NeedsUpdate = true; + } + public static int nextPacketID() { BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; @@ -500,6 +507,13 @@ namespace EduNetworkBuilder myWin.SetProgress(HowFar, total); } + public static void UpdateMessages() + { + BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; + if (myWin == null) return; + myWin.UpdateMessages(); + } + public static int GetUniqueIdentifier() { Network myNet = GetNetwork(); diff --git a/EduNetworkBuilder/NetTest.cs b/EduNetworkBuilder/NetTest.cs index 01006e7..2bcf992 100644 --- a/EduNetworkBuilder/NetTest.cs +++ b/EduNetworkBuilder/NetTest.cs @@ -299,7 +299,19 @@ namespace EduNetworkBuilder if (ctl == null) return false; ctl.BackColor = WrongColor; } - return false; + return true; + } + if (TheTest == NetTestType.HelpRequest && dHost == "?Button" && ChangeColor) + { + BuilderWindow myWin = NB.GetBuilderWin(); + if (myWin != null) + { + Control ctl = myWin.GetControlNamed("btnHelp"); + if (ctl == null) return false; + if(ctl.BackColor != WrongColor) + ctl.BackColor = WrongColor; + } + return true; } Network theNet = NB.GetNetwork(); NetworkDevice Source = theNet.GetDeviceFromName(sHost); @@ -319,6 +331,7 @@ namespace EduNetworkBuilder //We just solved it for the first time TaskWasDone = true; NB.PlaySound(NBSoundType.success); + NB.MarkToUpdate(); } return false; //No need to color anything } @@ -332,6 +345,7 @@ namespace EduNetworkBuilder || TheTest == NetTestType.SuccessfullyPingsAgain) PacketNumber = PacketID; //Track the packetID of the first packet to complete the task NB.PlaySound(NBSoundType.success); + NB.MarkToUpdate(); } TaskWasDone = true; } diff --git a/EduNetworkBuilder/Network.cs b/EduNetworkBuilder/Network.cs index d9e1542..91bafac 100644 --- a/EduNetworkBuilder/Network.cs +++ b/EduNetworkBuilder/Network.cs @@ -28,6 +28,7 @@ namespace EduNetworkBuilder List NetComponents = new List(); //should have background image Image TheNetImage = new Bitmap(1024, 1024); + Image TheNetImageBackground = new Bitmap(1024,1024); public int itemsize = 100; //The size of network components PictureBox myPBox=null; private int UniqueIdentifier = 100; //This gets used for all sorts of things. is auto-incremented every time someone asks for one @@ -46,6 +47,9 @@ namespace EduNetworkBuilder private bool AlreadyChosenTimeout = false; private int DefaultTimeout = 10; private int NumberOfSecondsForTimeout = 10; + private List PacketRectangles = new List(); + + private bool previously_had_packets = false; //used on "tick" to determine if we are starting from scratch public Network(string Name) { @@ -291,6 +295,10 @@ namespace EduNetworkBuilder public void RegisterDisplayArea(PictureBox What) { myPBox = What; + myPBox.BackgroundImage = TheNetImageBackground; + myPBox.BackgroundImageLayout = ImageLayout.Stretch; + Print(); + myPBox.Invalidate(); } public Point clickedPos(Point pixelClickedOn) @@ -502,7 +510,9 @@ namespace EduNetworkBuilder foreach (NetTest nt in NetTests) { if (nt.ColorItemsIfNeeded(HintsToDisplay != NetTestVerbosity.none)) //only change the color if we are not "none" + { PuzzleCount++; + } } if (report_as_done && PuzzleCount == 0 && PreviouslyUnsolved) { @@ -511,16 +521,19 @@ namespace EduNetworkBuilder } } - public void Print(PaintEventArgs e) + public void UpdateImage() { - //we have the whole thing to print, and the display image already done TestForCompletion(false); - if(isDirty() || _isDirty) + //we have the whole thing to print, and the display image already done + if (isDirty() || _isDirty) { - TheNetImage= new Bitmap(TheNetImage.Width, TheNetImage.Height); + if(TheNetImage == null) + TheNetImage = new Bitmap(TheNetImage.Width, TheNetImage.Height); + SolidBrush theBrush = new SolidBrush(SystemColors.Control); + Graphics.FromImage(TheNetImage).FillRectangle(theBrush, new Rectangle(0,0, TheNetImage.Width, TheNetImage.Height)); //re-generate the image //Do all the links first - foreach(NetworkComponent NC in NetComponents) + foreach (NetworkComponent NC in NetComponents) { if (NC.GetType().ToString() == "EduNetworkBuilder.NetworkLink") NC.Print(TheNetImage, false); @@ -531,21 +544,43 @@ namespace EduNetworkBuilder if (NC.GetType().ToString() == "EduNetworkBuilder.NetworkDevice") NC.Print(TheNetImage, ShowLabels); } + //Write the whole thing to the background image. + Graphics.FromImage(TheNetImageBackground).DrawImage(TheNetImage, 0, 0); } - if (myPackets.Count > 0) + myPBox.Invalidate();//redraw it + _isDirty = false; + + } + + public void EraseOldPackets() + { + //Make sure we draw a fresh image. + Graphics.FromImage(TheNetImageBackground).DrawImage(TheNetImage, 0, 0); + foreach(Rectangle rec in PacketRectangles) { - Image tempNetImage = new Bitmap(TheNetImage); - foreach(Packet pkt in myPackets) - { - pkt.Print(tempNetImage); //Print all the packets over the network image - } - e.Graphics.DrawImage(tempNetImage, 0, 0, myPBox.Width, myPBox.Height); - tempNetImage.Dispose(); + Invalidate(rec); } - else + PacketRectangles.Clear(); + } + + public void DrawPackets() + { + foreach (Packet pkt in myPackets) { - e.Graphics.DrawImage(TheNetImage, 0, 0, myPBox.Width, myPBox.Height); + pkt.Print(TheNetImageBackground); //Print all the packets over the network image + Invalidate(pkt.PacketRectangle()); + PacketRectangles.Add(pkt.PacketRectangle()); } + //myPBox.Refresh(); + } + + public void Print() + { + //we have the whole thing to print, and the display image already done + InvalidateEverything(); + UpdateImage(); + EraseOldPackets(); + DrawPackets(); _isDirty = false; } @@ -555,6 +590,28 @@ namespace EduNetworkBuilder { nc.IsDirty = true; } + _isDirty = true; + UpdateImage(); + } + + public void Invalidate(Rectangle area) + { + //Figure out the area we are looking at + if (myPBox.BackgroundImageLayout == ImageLayout.Stretch) + { + double width_ratio = myPBox.ClientRectangle.Width / TheNetImage.Width; + double height_ratio = myPBox.ClientRectangle.Height / TheNetImage.Height; + int x, y, width, height; + x = (int)(area.X * width_ratio); + y = (int)(area.Y * height_ratio); + width = (int)(area.Width * width_ratio); + height = (int)(area.Height * height_ratio); + + Rectangle newRec = new Rectangle(x, y, width, height); + + //Now we invalidate the adjusted rectangle + myPBox.Invalidate(newRec); + } } public List arp(UInt32 IP) @@ -757,7 +814,15 @@ namespace EduNetworkBuilder OldVal = nt.TaskWasDone; nt.SetDone(); if (nt.TaskWasDone != OldVal) + { + BuilderWindow myWin = NB.GetBuilderWin(); + if (myWin == null) return true; + Control ctl = myWin.GetControlNamed("btnHelp"); + if (ctl == null) return false; + ctl.BackColor = Control.DefaultBackColor; + return true; + } } } @@ -885,43 +950,58 @@ namespace EduNetworkBuilder public void ProcessPackets() { - AlreadyChosenTimeout = false; //we do this at the beginning of processing - NumberOfSecondsForTimeout = DefaultTimeout; - NetworkStartTime = DateTime.Now; - while(myPackets.Count > 0) + //This functionality is now done in 'Tick' + return; //exit early. Rest is done in tick + } + + public void Tick() + { + EraseOldPackets(); + //if (myPackets.Count > 50) + //Console.WriteLine("Packets: " + myPackets.Count.ToString()); + if (myPackets.Count > 0) { + if (!previously_had_packets) + { + AlreadyChosenTimeout = false; //we do this at the beginning of processing + NumberOfSecondsForTimeout = DefaultTimeout; + NetworkStartTime = DateTime.Now; + } ProcessPacketsOnce(); - if (!ProcessingShouldContinue()) + if(!ProcessingShouldContinue()) { - - //we need to break out for some reason - myPBox.Refresh(); - break; - } - else - { - myPBox.Refresh(); - NB.Delay(5); + //We it has all been taken care of } + DrawPackets(); + //myPBox.Refresh(); + previously_had_packets = true; } - //remove any IP connection tracking info - NetworkDevice ND; - foreach(NetworkComponent nc in NetComponents) + else { - if(NB.GetComponentType(nc) == GeneralComponentType.device) + if(previously_had_packets) { - ND = (NetworkDevice)nc; - ND.ClearIPConnectionInfo(); + //remove any IP connection tracking info + NetworkDevice ND; + foreach (NetworkComponent nc in NetComponents) + { + if (NB.GetComponentType(nc) == GeneralComponentType.device) + { + ND = (NetworkDevice)nc; + ND.ClearIPConnectionInfo(); + } + } + DebugPausePoint WhatIsSet = NB.GetDebugPauseSetting(); + if (WhatIsSet != 0) + { + Console.WriteLine(NB.Translate("N_ProssPackDone")); + } + TestForCompletion(true); //Now, report on the progress if we solved something in the middle of the packets going out + AlreadyChosenTimeout = false; + NB.SetProgress(0, NumberOfSecondsForTimeout); + NB.UpdateMessages(); } + previously_had_packets = false; } - DebugPausePoint WhatIsSet = NB.GetDebugPauseSetting(); - if(WhatIsSet != 0) - { - Console.WriteLine(NB.Translate("N_ProssPackDone")); - } - TestForCompletion(true); //Now, report on the progress if we solved something in the middle of the packets going out - AlreadyChosenTimeout = false; - NB.SetProgress(0, NumberOfSecondsForTimeout); } public void AddMessage(PacketMessage toAdd) diff --git a/EduNetworkBuilder/NetworkBuilder.Designer.cs b/EduNetworkBuilder/NetworkBuilder.Designer.cs index 2b63825..7c9fa83 100644 --- a/EduNetworkBuilder/NetworkBuilder.Designer.cs +++ b/EduNetworkBuilder/NetworkBuilder.Designer.cs @@ -432,7 +432,6 @@ this.pbNetworkView.Size = new System.Drawing.Size(366, 300); this.pbNetworkView.TabIndex = 1; this.pbNetworkView.TabStop = false; - this.pbNetworkView.Paint += new System.Windows.Forms.PaintEventHandler(this.pbNetworkView_Paint); this.pbNetworkView.DoubleClick += new System.EventHandler(this.pbNetworkView_DoubleClick); this.pbNetworkView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pbNetworkView_MouseDown); this.pbNetworkView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pbNetworkView_MouseMove); diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index 807d77f..080926a 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -37,6 +37,8 @@ namespace EduNetworkBuilder private CultureInfo LanguageCulture = null; public string ChosenLanguage = "en"; //The language to try to load private List HelpTopicButtons = new List(); + private System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer(); + public bool NeedsUpdate = false; //Do we do an update next tick public BuilderWindow() { @@ -72,9 +74,23 @@ namespace EduNetworkBuilder this.KeyPreview = true; this.KeyUp += GenericKeyDown; + myTimer.Interval = 10; + myTimer.Tick += Tick; + myTimer.Start(); + LoadPuzzleInfo(); } + private void Tick(object sender, EventArgs e) + { + if (NeedsUpdate) + { + UpdateVisuals(); + NeedsUpdate = false; + } + myNetwork.Tick(); + } + private void LanguagifyComponents() { msMainMenuStrip.Text = NB.Translate("NB_msMainMenuStrip"); @@ -249,7 +265,7 @@ namespace EduNetworkBuilder bool didsomething = myNetwork.NoteActionDone(NetTestType.HelpRequest, MouseHoverOver.hostname, myNetwork.HintsToDisplay.ToString()); if (didsomething) { - pbNetworkView.Invalidate(); + UpdateVisuals(); myNetwork.TestForCompletion(true); } } @@ -319,7 +335,7 @@ namespace EduNetworkBuilder } } - private void UpdateMessages() + public void UpdateMessages() { //redo this later lbMessages.Items.Clear(); @@ -364,6 +380,7 @@ namespace EduNetworkBuilder { UpdateMenu(); UpdateMessages(); + UpdateVisuals(); processing = true; Text = NB.Translate("NB_UpdteFrmName"); if (myNetwork.NetTitle.GetText() != "") @@ -648,7 +665,7 @@ namespace EduNetworkBuilder } myNetwork.TestForCompletion(true); pbNetworkView.Update(); - pbNetworkView.Invalidate(); + UpdateVisuals(); } @@ -658,7 +675,7 @@ namespace EduNetworkBuilder myNetwork.ProcessPackets(); UpdateMessages(); pbNetworkView.Update(); - pbNetworkView.Invalidate(); + UpdateVisuals(); myNetwork.TestForCompletion(true); } @@ -675,8 +692,7 @@ namespace EduNetworkBuilder } UpdateLinks(); myNetwork.TestForCompletion(true); - pbNetworkView.Update(); - pbNetworkView.Invalidate(); + UpdateVisuals(); } private void pbNetworkView_Delete_Click(object sender, EventArgs e) @@ -696,8 +712,7 @@ namespace EduNetworkBuilder } UpdateLinks(); myNetwork.TestForCompletion(true); - pbNetworkView.Update(); - pbNetworkView.Invalidate(); + UpdateVisuals(); } private void pbNetworkView_Ping_Click(object sender, EventArgs e) @@ -793,7 +808,7 @@ namespace EduNetworkBuilder LinkEditor myEditor = new LinkEditor(ItemClickedOn, ReleasedOn); myEditor.ShowDialog(); UpdateLinks(); - pbNetworkView.Invalidate(); //In case any changes have been made + UpdateVisuals(); //In case any changes have been made } else if (ItemClickedOn == null) { @@ -860,6 +875,7 @@ namespace EduNetworkBuilder { ItemClickedOn = (NetworkDevice)NC; } + UpdateVisuals(); } else //Drag the item { @@ -867,17 +883,17 @@ namespace EduNetworkBuilder { ItemClickedOn.ChangeLocation(CenteredLocation); UpdateLinks(); - pbNetworkView.Invalidate(); + UpdateVisuals(); } } } LastClick = DateTime.Now; } - private void pbNetworkView_Paint(object sender, PaintEventArgs e) + private void UpdateVisuals() { - - myNetwork.Print(e); + myNetwork.Print(); + pbNetworkView.Invalidate(); } private void pbNetworkView_MouseDown(object sender, MouseEventArgs e) @@ -916,8 +932,8 @@ namespace EduNetworkBuilder { myWin.Close(); } - - pbNetworkView.Invalidate(); + + myNetwork.Print(); UpdateMessages(); btnReset(); myNetwork.HintsToDisplay = NetTestVerbosity.none; @@ -1015,7 +1031,7 @@ namespace EduNetworkBuilder private void BuilderWindow_ResizeEnd(object sender, EventArgs e) { - pbNetworkView.Invalidate(); + UpdateVisuals(); } private void aboutToolStripMenuItem_Click(object sender, EventArgs e) @@ -1179,7 +1195,7 @@ namespace EduNetworkBuilder OptionsWindow tWindow = new OptionsWindow(myNetwork); tWindow.ShowDialog(); myNetwork.UpdateDeviceSizes(); - pbNetworkView.Invalidate(); + UpdateForm(); } @@ -1227,7 +1243,7 @@ namespace EduNetworkBuilder bool didsomething = myNetwork.NoteActionDone(NetTestType.HelpRequest, "", "?Button"); if (didsomething) { - pbNetworkView.Invalidate(); + UpdateForm(); myNetwork.TestForCompletion(true); } } @@ -1247,28 +1263,28 @@ namespace EduNetworkBuilder { if (processing) return; myNetwork.HintsToDisplay = NetTestVerbosity.none; - pbNetworkView.Invalidate(); + UpdateForm(); } private void rbHelp2_CheckedChanged(object sender, EventArgs e) { if (processing) return; - myNetwork.HintsToDisplay = NetTestVerbosity.basic; - pbNetworkView.Invalidate(); + myNetwork.HintsToDisplay = NetTestVerbosity.hints; + UpdateForm(); } private void rbHelp3_CheckedChanged(object sender, EventArgs e) { if (processing) return; - myNetwork.HintsToDisplay = NetTestVerbosity.hints; - pbNetworkView.Invalidate(); + myNetwork.HintsToDisplay = NetTestVerbosity.basic; + UpdateForm(); } private void rbHelp4_CheckedChanged(object sender, EventArgs e) { if (processing) return; myNetwork.HintsToDisplay = NetTestVerbosity.full; - pbNetworkView.Invalidate(); + UpdateForm(); } diff --git a/EduNetworkBuilder/NetworkDevice.cs b/EduNetworkBuilder/NetworkDevice.cs index 9cebb8c..feb6671 100644 --- a/EduNetworkBuilder/NetworkDevice.cs +++ b/EduNetworkBuilder/NetworkDevice.cs @@ -899,6 +899,8 @@ namespace EduNetworkBuilder { Brush brush = new SolidBrush(Color.FromArgb(128, BackgroundColor.R, BackgroundColor.G, BackgroundColor.B)); Graphics.FromImage(BaseImage).FillRectangle(brush, Location); + Network myNet = NB.GetNetwork(); + myNet.Invalidate(Location); } Graphics.FromImage(BaseImage).DrawImage(MyImage, MyLocation.X, MyLocation.Y, Size, Size); diff --git a/EduNetworkBuilder/Packet.cs b/EduNetworkBuilder/Packet.cs index 5f7529f..768f09c 100644 --- a/EduNetworkBuilder/Packet.cs +++ b/EduNetworkBuilder/Packet.cs @@ -358,7 +358,7 @@ namespace EduNetworkBuilder myDirection = nb_direction.to_dst; else myDirection = nb_direction.to_src; - Console.WriteLine(NB.Translate("P_StartingOnLink") + string.Format(" SMAC: {0} DMAC: {1}",sourceMAC,destMAC)); + //Console.WriteLine(NB.Translate("P_StartingOnLink") + string.Format(" SMAC: {0} DMAC: {1}",sourceMAC,destMAC)); AddMessage(DebugLevel.debug, " " + NB.Translate("P_StartingOnLink")); } diff --git a/EduNetworkBuilder/Resources/ReleaseNotes.rtf b/EduNetworkBuilder/Resources/ReleaseNotes.rtf index 3e51bc3..f9ea794 100644 --- a/EduNetworkBuilder/Resources/ReleaseNotes.rtf +++ b/EduNetworkBuilder/Resources/ReleaseNotes.rtf @@ -1,381 +1,187 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;} -{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} -{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f40\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f41\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f43\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f44\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f45\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f46\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f47\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f48\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f430\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f431\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} -{\f433\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f434\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f437\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f438\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} -{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} -{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} -{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} -{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} -{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} -{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} -{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; -\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 -\ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* -\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused -Normal Table;}}{\*\rsidtbl \rsid553838\rsid16400754}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator tim.young@lightsys.org} -{\creatim\yr2015\mo11\dy25\hr9\min57}{\revtim\yr2015\mo11\dy25\hr9\min58}{\version2}{\edmins1}{\nofpages8}{\nofwords1472}{\nofchars8394}{\nofcharsws9847}{\vern86}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} -\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect -\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 -\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot553838 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1 -\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5 -\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 -\fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.25 -\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Minor changes to help file -\par \hich\af39\dbch\af31505\loch\f39 * Fixed size of labels on IP-Address editor box -\par \hich\af39\dbch\af31505\loch\f39 * Hide gateway label when we do not need it. (ip-address editor) -\par \hich\af39\dbch\af31505\loch\f39 * rename "mixed network" puzzle to be "adding devices" (the puzzle was about adding devices) -\par \hich\af39\dbch\af31505\loch\f39 * Changed layout of many messages -\par \hich\af39\dbch\af31505\loch\f39 * Save the level we are working on. Allows us to finish level 5 before level 3 if we want to. -\par \hich\af39\dbch\af31505\loch\f39 * Make network-loop puzzles sit next to each-other -\par \hich\af39\dbch\af31505\loch\f39 * Make it so network-loop2 puzzle asks for second ping after first one finis\hich\af39\dbch\af31505\loch\f39 hes -\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid553838 \hich\af39\dbch\af31505\loch\f39 * Lots of work towards the French translation}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid553838 -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.24 -\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Add sound when ctrl-s is pressed so we know we saved. -\par \hich\af39\dbch\af31505\loch\f39 * Add sound fail when save is canceled (will use it later if ctrl-s fails) -\par \hich\af39\dbch\af31505\loch\f39 * Added some wireless puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Fix issue with WAP not forwarding packets correctly -\par \hich\af39\dbch\af31505\loch\f39 * Clear out old st\hich\af39\dbch\af31505\loch\f39 atus message if we do something. So we do not say "saved" forever... -\par \hich\af39\dbch\af31505\loch\f39 * Fixed bad gateway on wireless router issue -\par \hich\af39\dbch\af31505\loch\f39 * Fixed wbridge misbehaving. (issue with gateway) -\par \hich\af39\dbch\af31505\loch\f39 * Added wireless items to help and context help topics -\par \hich\af39\dbch\af31505\loch\f39 * Thanks to Peter Wilson for so much\hich\af39\dbch\af31505\loch\f39 of the translation backbone. -\par \hich\af39\dbch\af31505\loch\f39 * Lots of translation string changes. The French translation should be soon in coming. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.23 09/20/2015 -\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Fixed issues with broadcast packets -\par \hich\af39\dbch\af31505\loch\f39 * Fixed a network loop issue -\par \hich\af39\dbch\af31505\loch\f39 * Fixed issue with multiple interfaces and \hich\af39\dbch\af31505\loch\f39 being able to go out a different interface than we came in on -\par \hich\af39\dbch\af31505\loch\f39 * Fixed many small bugs that crept in when fixing other bugs. Now all puzzles seem to play correctly}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 Version 1.0.22 09/01/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Added ssid and keys for wireless links -\par \hich\af39\dbch\af31505\loch\f39 * Wireless will auto-dis\hich\af39\dbch\af31505\loch\f39 connect if link is too long -\par \hich\af39\dbch\af31505\loch\f39 * Wireless will auto-connect if ssid and key match, if link is short enough -\par \hich\af39\dbch\af31505\loch\f39 * Packets will drop on wireless links if distance is too great -\par \hich\af39\dbch\af31505\loch\f39 * wport has no interface (cannot edit IP address) -\par \hich\af39\dbch\af31505\loch\f39 * wireless router works properly - forwards broadcast packets -\par \hich\af39\dbch\af31505\loch\f39 * wireless router handles dhcp requests properly (both responds to it but also passes it on) -\par \hich\af39\dbch\af31505\loch\f39 * right-clicking light and microwave no longer has ping, arp, edit, and other context menus -\par \hich\af39\dbch\af31505\loch\f39 * added n\hich\af39\dbch\af31505\loch\f39 et-test for DHCP server status (on/off) -\par \hich\af39\dbch\af31505\loch\f39 * If multiple DHCP servers, client randomly chooses which to keep. -\par \hich\af39\dbch\af31505\loch\f39 *Add Wireless Puzzle -\par \hich\af39\dbch\af31505\loch\f39 *Fix many wireless device bugs\line }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.21 08/15/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 -\f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Added a microwave and fluorescent light. They corrupt data when pa\hich\af39\dbch\af31505\loch\f39 ckets run close to them. -\par \hich\af39\dbch\af31505\loch\f39 * Added some packet corruption puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Fixed window resize-on-load issue where the help window popped up first, then the builder window resized over to hide the help window. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.20 08/12/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * wports do not display on \hich\af39\dbch\af31505\loch\f39 tooltips or when printing the device info -\par \hich\af39\dbch\af31505\loch\f39 * Added ctrl-s to quick-save a network we are working on -\par \hich\af39\dbch\af31505\loch\f39 * commented out wireless devices for now - doing a big demo and wireless is not yet complete -\par \hich\af39\dbch\af31505\loch\f39 * added search box to help -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.19 08/08/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 *Updated c\hich\af39\dbch\af31505\loch\f39 ontext help for most puzzles that introduce new ideas. -\par \hich\af39\dbch\af31505\loch\f39 * Sorted Help topics when adding them in net-tests. -\par \hich\af39\dbch\af31505\loch\f39 * Added some images to the help to help clarify things. -\par \hich\af39\dbch\af31505\loch\f39 * Start with the help windows being the same "height" as the network window. -\par \hich\af39\dbch\af31505\loch\f39 * Open Help so i\hich\af39\dbch\af31505\loch\f39 t can be kept open while the puzzles progress. -\par \hich\af39\dbch\af31505\loch\f39 * Deal with minimized state better (used to shrink window to smallest possible state) -\par \hich\af39\dbch\af31505\loch\f39 * Remember size and location of main window between uses. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.18 08/08/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Added Context Help for puzzles. -\par \hich\af39\dbch\af31505\loch\f39 - E\hich\af39\dbch\af31505\loch\f39 ach puzzle can have context help -\par \hich\af39\dbch\af31505\loch\f39 - There is a net-test to have us read help -\par \hich\af39\dbch\af31505\loch\f39 * fixed minor problem with a "ding" sound when we load a puzzle that has something locked. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.17 08/01/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Added more help -\par \hich\af39\dbch\af31505\loch\f39 * Much progress made in preparing for a French translation -\par \hich\af39\dbch\af31505\loch\f39 * allow for Puzzle's description to be in another language -\par \hich\af39\dbch\af31505\loch\f39 * Added more to help -\par \hich\af39\dbch\af31505\loch\f39 * Removed edit -> cut, paste, copy, undo. They never did anything. So why have them? -\par \hich\af39\dbch\af31505\loch\f39 * Save box starts in the direc\hich\af39\dbch\af31505\loch\f39 tory of the file we opened (if we have one) -\par \hich\af39\dbch\af31505\loch\f39 * Choose a language at startup if one has never been chosen, and have option to change language. -\par \hich\af39\dbch\af31505\loch\f39 * Added another puzzle, showing what happens (or does not happen) if we have two networks that use the same IP addr\hich\af39\dbch\af31505\loch\f39 esses, and we want to build a VPN between them. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.16 07/18/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Added ability to break links (bad network wire) -\par \hich\af39\dbch\af31505\loch\f39 * "connection lights" on network cards / ports when we edit devices -\par \hich\af39\dbch\af31505\loch\f39 * Test for "needs link to" does not succeed if the link in ques\hich\af39\dbch\af31505\loch\f39 tion is a broken link -\par \hich\af39\dbch\af31505\loch\f39 * Added a puzzle to show you how to find broken links -\par \hich\af39\dbch\af31505\loch\f39 * Used broken links in other puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Fixed bug: switches could not use DHCP for many different reasons. Now it works for them. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.15 07/11/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Added ping time prog\hich\af39\dbch\af31505\loch\f39 ress bar -\par \hich\af39\dbch\af31505\loch\f39 -* Fixed issue with things timing out before they completed. If the network screen is too large, it makes it go just a tiny bit slower and various things would fail. When the first packet successfully makes it to the far end, it recomputes the ti -\hich\af39\dbch\af31505\loch\f39 me needed and gives extra time. -\par \hich\af39\dbch\af31505\loch\f39 * Added context menu ping. If an item is supposed to ping something, right-clicking adds the ping test to the menu. Takes some of the guess-work out of things. -\par \hich\af39\dbch\af31505\loch\f39 * Fixed minor issue with this change log. Had two 1.0.11 vers\hich\af39\dbch\af31505\loch\f39 ions & somehow was stating we were at version 10.x.x instead of 1.x.x (sigh) -\par \hich\af39\dbch\af31505\loch\f39 * Fixed the VPNify puzzle. Had a goof in it. -\par \hich\af39\dbch\af31505\loch\f39 * Made it so you cannot connect a link to a VPN. A VPN should be a virtual connection, not a physical connection. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.14 \hich\af39\dbch\af31505\loch\f39 07/10/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 - -\par \hich\af39\dbch\af31505\loch\f39 * When we finish a puzzle, allow us to auto-open the "next puzzle" box. -\par \hich\af39\dbch\af31505\loch\f39 * Added lots more puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Added more help & documentation -\par \hich\af39\dbch\af31505\loch\f39 * Made it so test for local IP also checked to make sure the subnet-masks matched -\par \hich\af39\dbch\af31505\loch\f39 * Made it so the test for a matching route compared netmasks -\par \hich\af39\dbch\af31505\loch\f39 * Added a printer object -\par \hich\af39\dbch\af31505\loch\f39 * Added a copier object -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.13 06/21/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Fixed issues with arp - arp could go through routers. Now works correctly -\par \hich\af39\dbch\af31505\loch\f39 * Made it test for puzzle completion after\hich\af39\dbch\af31505\loch\f39 adding devices -\par \hich\af39\dbch\af31505\loch\f39 * Made it test for completion after changing / deleting devices -\par \hich\af39\dbch\af31505\loch\f39 * Let you delete / add NICs on PCs, primarily so we can solve the duplicate MAC puzzle -\par \hich\af39\dbch\af31505\loch\f39 * Replaced the "Network Loop" puzzle with the correct one. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.12 06/20/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * A\hich\af39\dbch\af31505\loch\f39 dded VPN and TUN nic types -\par \hich\af39\dbch\af31505\loch\f39 * Fixed numerous small bugs -\par \hich\af39\dbch\af31505\loch\f39 * Fixed bug with early solution to failed ping test -\par \hich\af39\dbch\af31505\loch\f39 * Added "ding" when a test is solved. -\par \hich\af39\dbch\af31505\loch\f39 * Added a "firewall" network that has a firewall and vpns -\par \hich\af39\dbch\af31505\loch\f39 * Added numerous firewall / vpn puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Fixed a DNS\hich\af39\dbch\af31505\loch\f39 issue. It now more intelligently finds the right IP address when you ping it -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.11 06/14/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Added the ability to lock various important features to make puzzles better -\par \hich\af39\dbch\af31505\loch\f39 * Able to add interfaces (multiple IPs on a Network Card) -\par \hich\af39\dbch\af31505\loch\f39 * Right-click\hich\af39\dbch\af31505\loch\f39 context menu to add net-tests. -\par \hich\af39\dbch\af31505\loch\f39 * Del key now deletes the last item we had clicked on -\par \hich\af39\dbch\af31505\loch\f39 * Can add NICs (on some devices) -\par \hich\af39\dbch\af31505\loch\f39 * Can delete NICs -\par \hich\af39\dbch\af31505\loch\f39 * Fixed minor bug with broadcast pinging solving ping test for individual computers -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.10 06/13/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Renamed puzzles to manage them easier -\par \hich\af39\dbch\af31505\loch\f39 * Deal with duplicate IPs, and what happens when a packet returns to a computer that did not send it. -\par \hich\af39\dbch\af31505\loch\f39 * Change to the help window so you can keep the window open while working with the puzzle. -\par \hich\af39\dbch\af31505\loch\f39 * Change to the donatio\hich\af39\dbch\af31505\loch\f39 n link. Not that it will ever be used, but it makes me feel better having a few places for people to donate to if they wish. -\par \hich\af39\dbch\af31505\loch\f39 * Minor change for how broadcast packets work, specifically dealing with duplicate IP addresses. -\par \hich\af39\dbch\af31505\loch\f39 * Added a "firewall" device & WAN\hich\af39\dbch\af31505\loch\f39 port with masquerade -\par \hich\af39\dbch\af31505\loch\f39 * Added a FailedPing test so we can ping things that must fail (show the firewall works) -\par \hich\af39\dbch\af31505\loch\f39 * added more to the help -\par \hich\af39\dbch\af31505\loch\f39 * added more puzzles -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.9 05/29/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Add a grid to the network map. It makes things easier to straighten\hich\af39\dbch\af31505\loch\f39 up -\par \hich\af39\dbch\af31505\loch\f39 * Sorted and organized the puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Made a level for each puzzle. -\par \hich\af39\dbch\af31505\loch\f39 * Tracked the puzzles which have been completed -\par \hich\af39\dbch\af31505\loch\f39 * When we open the puzzle list, we now show the first level of puzzles that have an uncompleted puzzle. -\par \hich\af39\dbch\af31505\loch\f39 * Added more "tests", viewing hel\hich\af39\dbch\af31505\loch\f39 p, pinging, arp, and dhcp. -\par \hich\af39\dbch\af31505\loch\f39 * Reset buttons when we load a new network. -\par \hich\af39\dbch\af31505\loch\f39 * Added a bunch more puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Sometimes the remembered IP gets annoying when it remembers odd gateways and numbers we cannot change. Fixed that in many cases. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.8 05/25/\hich\af39\dbch\af31505\loch\f39 2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 - -\par \hich\af39\dbch\af31505\loch\f39 * Always Start with level0 puzzles for now -\par \hich\af39\dbch\af31505\loch\f39 * Fixed the icon when program running -\par \hich\af39\dbch\af31505\loch\f39 * Added an infrastructure for Puzzles (needs work) -\par \hich\af39\dbch\af31505\loch\f39 * Added a number of basic puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Fixed DHCP Leases. Now it clears leases when you change the DHCP server range. -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Ver\hich\af39\dbch\af31505\loch\f39 sion 1.0.0.7 05/16/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 - -\par \hich\af39\dbch\af31505\loch\f39 * Added file association so we can double-click an enbx file -\par \hich\af39\dbch\af31505\loch\f39 * Fixed the icon so it looks right (removed left edge) -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.6 05/16/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Able to delete a route (right click route and delete it) -\par \hich\af39\dbch\af31505\loch\f39 * Add map title as something we can load/save -\par \hich\af39\dbch\af31505\loch\f39 * Add message as something we can load and save -\par \hich\af39\dbch\af31505\loch\f39 * Changing size of items affects all items -\par \hich\af39\dbch\af31505\loch\f39 * Allow entering a hostname in the IP address field (ping / gateway) -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.5 04/26/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Fixed ping from swi\hich\af39\dbch\af31505\loch\f39 tch -\par \hich\af39\dbch\af31505\loch\f39 * Fixed error message when pinging IP that does not exist -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.4 04/26/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * Fixed broadcast ping -\par \hich\af39\dbch\af31505\loch\f39 *Fixed dhcp request error -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.3 04/15/2015 -\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 * Added "file" -> "new" to erase and start a clean new network -\par \hich\af39\dbch\af31505\loch\f39 * Fixed pc2 to have gate\hich\af39\dbch\af31505\loch\f39 way on "solved"->"Two Networks" -\par \hich\af39\dbch\af31505\loch\f39 * Fixed - only machines capable of doing DHCP do dhcp request if we do DHCP request on all -\par \hich\af39\dbch\af31505\loch\f39 * Changed - major overhaul to tcp-stack. -\par \hich\af39\dbch\af31505\loch\f39 * Downgrade - Arp temporarily removed from system while tcp-stack overhaul completed -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version\hich\af39\dbch\af31505\loch\f39 1.0.0.2 4/19/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 - -\par \hich\af39\dbch\af31505\loch\f39 * Added IP-Phone -\par \hich\af39\dbch\af31505\loch\f39 * Packets terminate at the far end - this makes it easier to see packets go both directions -\par \hich\af39\dbch\af31505\loch\f39 * Packets are randomized in transit - Allows packets to arrive at slightly different times -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.1 4/11/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 * DHCP \hich\af39\dbch\af31505\loch\f39 selection on nics is not functioning correctly -\par \hich\af39\dbch\af31505\loch\f39 * Various small bug-fixes -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid16400754 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.0 4/10/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par \hich\af39\dbch\af31505\loch\f39 This is the initial alpha build -\par \hich\af39\dbch\af31505\loch\f39 * basic pinging -\par \hich\af39\dbch\af31505\loch\f39 * basic arp -\par \hich\af39\dbch\af31505\loch\f39 * Routers -\par \hich\af39\dbch\af31505\loch\f39 * Switches/Hubs -\par \hich\af39\dbch\af31505\loch\f39 * PCs/Laptops -\par \hich\af39\dbch\af31505\loch\f39 * Network Links (ethernet) -\par \hich\af39\dbch\af31505\loch\f39 * Basic DHCP}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16400754 -\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a -9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad -5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 -b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 -0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 -a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f -c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 -0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 -a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 -6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b -4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b -4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f -7468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6 -87521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f -d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a -ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188 -0bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf -d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b -5048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4 -d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf -66732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04 -1de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4 -e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee -0121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697 -4314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2 -50c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14 -f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6 -b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511 -e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949 -40da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9 -55c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b -1af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54 -0d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138 -3e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21 -a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b -db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5 -8ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f -570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df -ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db -c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72 -656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08 -2e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0 -8a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa -4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f -6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72 -656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865 -6d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200 -007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000 -00d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000} -{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d -617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 -6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 -656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} -{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; -\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; -\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; -\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; -\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; -\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; -\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; -\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; -\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; -\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; -\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; -\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; -\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; -\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; -\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; -\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; -\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; -\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; -\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; -\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; -\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; -\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; -\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; -\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; -\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; -\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; -\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; -\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; -\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; -\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; -\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; -\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; -\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; -\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; -\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; -\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; -\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; -\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; -\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; -\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; -\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; -\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 -4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 -d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b045 -b2b79127d101feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file +{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}} +{\*\generator Riched20 10.0.10586}{\*\mmathPr\mnaryLim0\mdispDef1\mwrapIndent1440 }\viewkind4\uc1 +\pard\nowidctlpar\sa200\sl276\slmult1\b\f0\fs22\lang9 Version 1.0.26\par +\b0 * Major graphics overhaul\par + - Packets move on timer\par + - Graphics drawn "smarter"\par + - Result is that things flow smoother. Loopback2 also works much nicer. \par +* Fixed minor issue with "help" puzzle\par +* Made help "?" button turn red when it is part of the puzzle\b\par +Version 1.0.25\par +\b0 * Minor changes to help file\par +* Fixed size of labels on IP-Address editor box\par +* Hide gateway label when we do not need it. (ip-address editor)\par +* rename "mixed network" puzzle to be "adding devices" (the puzzle was about adding devices)\par +* Changed layout of many messages\par +* Save the level we are working on. Allows us to finish level 5 before level 3 if we want to.\par +* Make network-loop puzzles sit next to each-other\par +* Make it so network-loop2 puzzle asks for second ping after first one finishes \par +* Lots of work towards the French translation\b\par +Version 1.0.24 \par +\b0 * Add sound when ctrl-s is pressed so we know we saved.\par +* Add sound fail when save is canceled (will use it later if ctrl-s fails)\par +* Added some wireless puzzles\par +* Fix issue with WAP not forwarding packets correctly\par +* Clear out old status message if we do something. So we do not say "saved" forever...\par +* Fixed bad gateway on wireless router issue\par +* Fixed wbridge misbehaving. (issue with gateway)\par +* Added wireless items to help and context help topics\par +* Thanks to Peter Wilson for so much of the translation backbone.\par +* Lots of translation string changes. The French translation should be soon in coming.\par +\b Version 1.0.23 09/20/2015\par +\b0 * Fixed issues with broadcast packets\par +* Fixed a network loop issue\par +* Fixed issue with multiple interfaces and being able to go out a different interface than we came in on\par +* Fixed many small bugs that crept in when fixing other bugs. Now all puzzles seem to play correctly\b\par +Version 1.0.22 09/01/2015\b0\par +* Added ssid and keys for wireless links\par +* Wireless will auto-disconnect if link is too long\par +* Wireless will auto-connect if ssid and key match, if link is short enough\par +* Packets will drop on wireless links if distance is too great\par +* wport has no interface (cannot edit IP address)\par +* wireless router works properly - forwards broadcast packets\par +* wireless router handles dhcp requests properly (both responds to it but also passes it on)\par +* right-clicking light and microwave no longer has ping, arp, edit, and other context menus\par +* added net-test for DHCP server status (on/off)\par +* If multiple DHCP servers, client randomly chooses which to keep.\par +*Add Wireless Puzzle\par +*Fix many wireless device bugs\line\b Version 1.0.21 08/15/2015\b0\par +* Added a microwave and fluorescent light. They corrupt data when packets run close to them.\par +* Added some packet corruption puzzles\par +* Fixed window resize-on-load issue where the help window popped up first, then the builder window resized over to hide the help window. \par +\b Version 1.0.20 08/12/2015\b0\par +* wports do not display on tooltips or when printing the device info\par +* Added ctrl-s to quick-save a network we are working on\par +* commented out wireless devices for now - doing a big demo and wireless is not yet complete\par +* added search box to help\par +\b Version 1.0.19 08/08/2015\b0\par +*Updated context help for most puzzles that introduce new ideas.\par +* Sorted Help topics when adding them in net-tests.\par +* Added some images to the help to help clarify things.\par +* Start with the help windows being the same "height" as the network window.\par +* Open Help so it can be kept open while the puzzles progress.\par +* Deal with minimized state better (used to shrink window to smallest possible state)\par +* Remember size and location of main window between uses.\par +\b Version 1.0.18 08/08/2015\b0\par +* Added Context Help for puzzles.\par +- Each puzzle can have context help\par +- There is a net-test to have us read help\par +* fixed minor problem with a "ding" sound when we load a puzzle that has something locked.\par +\b Version 1.0.17 08/01/2015\b0\par +* Added more help\par +* Much progress made in preparing for a French translation\par +* allow for Puzzle's description to be in another language\par +* Added more to help\par +* Removed edit -> cut, paste, copy, undo. They never did anything. So why have them?\par +* Save box starts in the directory of the file we opened (if we have one)\par +* Choose a language at startup if one has never been chosen, and have option to change language.\par +* Added another puzzle, showing what happens (or does not happen) if we have two networks that use the same IP addresses, and we want to build a VPN between them.\par +\b Version 1.0.16 07/18/2015\b0\par +* Added ability to break links (bad network wire)\par +* "connection lights" on network cards / ports when we edit devices\par +* Test for "needs link to" does not succeed if the link in question is a broken link\par +* Added a puzzle to show you how to find broken links \par +* Used broken links in other puzzles\par +* Fixed bug: switches could not use DHCP for many different reasons. Now it works for them.\par +\b Version 1.0.15 07/11/2015\b0\par +* Added ping time progress bar\par +* Fixed issue with things timing out before they completed. If the network screen is too large, it makes it go just a tiny bit slower and various things would fail. When the first packet successfully makes it to the far end, it recomputes the time needed and gives extra time.\par +* Added context menu ping. If an item is supposed to ping something, right-clicking adds the ping test to the menu. Takes some of the guess-work out of things.\par +* Fixed minor issue with this change log. Had two 1.0.11 versions & somehow was stating we were at version 10.x.x instead of 1.x.x (sigh) \par +* Fixed the VPNify puzzle. Had a goof in it.\par +* Made it so you cannot connect a link to a VPN. A VPN should be a virtual connection, not a physical connection.\par +\b Version 1.0.14 07/10/2015\b0\par +* When we finish a puzzle, allow us to auto-open the "next puzzle" box.\par +* Added lots more puzzles\par +* Added more help & documentation\par +* Made it so test for local IP also checked to make sure the subnet-masks matched\par +* Made it so the test for a matching route compared netmasks\par +* Added a printer object\par +* Added a copier object\par +\b Version 1.0.13 06/21/2015\b0\par +* Fixed issues with arp - arp could go through routers. Now works correctly\par +* Made it test for puzzle completion after adding devices\par +* Made it test for completion after changing / deleting devices\par +* Let you delete / add NICs on PCs, primarily so we can solve the duplicate MAC puzzle\par +* Replaced the "Network Loop" puzzle with the correct one.\par +\b Version 1.0.12 06/20/2015\b0\par +* Added VPN and TUN nic types\par +* Fixed numerous small bugs\par +* Fixed bug with early solution to failed ping test\par +* Added "ding" when a test is solved.\par +* Added a "firewall" network that has a firewall and vpns\par +* Added numerous firewall / vpn puzzles\par +* Fixed a DNS issue. It now more intelligently finds the right IP address when you ping it\par +\b Version 1.0.11 06/14/2015\b0\par +* Added the ability to lock various important features to make puzzles better\par +* Able to add interfaces (multiple IPs on a Network Card)\par +* Right-click context menu to add net-tests. \par +* Del key now deletes the last item we had clicked on\par +* Can add NICs (on some devices)\par +* Can delete NICs\par +* Fixed minor bug with broadcast pinging solving ping test for individual computers\par +\b Version 1.0.10 06/13/2015\b0\par +* Renamed puzzles to manage them easier\par +* Deal with duplicate IPs, and what happens when a packet returns to a computer that did not send it.\par +* Change to the help window so you can keep the window open while working with the puzzle.\par +* Change to the donation link. Not that it will ever be used, but it makes me feel better having a few places for people to donate to if they wish.\par +* Minor change for how broadcast packets work, specifically dealing with duplicate IP addresses.\par +* Added a "firewall" device & WAN port with masquerade\par +* Added a FailedPing test so we can ping things that must fail (show the firewall works)\par +* added more to the help\par +* added more puzzles\par +\b Version 1.0.0.9 05/29/2015\b0\par +* Add a grid to the network map. It makes things easier to straighten up\par +* Sorted and organized the puzzles\par +* Made a level for each puzzle.\par +* Tracked the puzzles which have been completed\par +* When we open the puzzle list, we now show the first level of puzzles that have an uncompleted puzzle.\par +* Added more "tests", viewing help, pinging, arp, and dhcp.\par +* Reset buttons when we load a new network.\par +* Added a bunch more puzzles\par +* Sometimes the remembered IP gets annoying when it remembers odd gateways and numbers we cannot change. Fixed that in many cases.\par +\b Version 1.0.0.8 05/25/2015\b0\par +* Always Start with level0 puzzles for now\par +* Fixed the icon when program running\par +* Added an infrastructure for Puzzles (needs work)\par +* Added a number of basic puzzles\par +* Fixed DHCP Leases. Now it clears leases when you change the DHCP server range.\par +\b Version 1.0.0.7 05/16/2015\b0\par +* Added file association so we can double-click an enbx file\par +* Fixed the icon so it looks right (removed left edge)\par +\b Version 1.0.0.6 05/16/2015\b0\par +* Able to delete a route (right click route and delete it)\par +* Add map title as something we can load/save\par +* Add message as something we can load and save\par +* Changing size of items affects all items\par +* Allow entering a hostname in the IP address field (ping / gateway)\par +\b Version 1.0.0.5 04/26/2015\b0\par +* Fixed ping from switch\par +* Fixed error message when pinging IP that does not exist\par +\b Version 1.0.0.4 04/26/2015\b0\par +* Fixed broadcast ping\par +*Fixed dhcp request error\par +\b Version 1.0.0.3 04/15/2015\par +\b0 * Added "file" -> "new" to erase and start a clean new network\par +* Fixed pc2 to have gateway on "solved"->"Two Networks"\par +* Fixed - only machines capable of doing DHCP do dhcp request if we do DHCP request on all\par +* Changed - major overhaul to tcp-stack.\par +* Downgrade - Arp temporarily removed from system while tcp-stack overhaul completed\par +\b Version 1.0.0.2 4/19/2015\b0\par +* Added IP-Phone\par +* Packets terminate at the far end - this makes it easier to see packets go both directions\par +* Packets are randomized in transit - Allows packets to arrive at slightly different times\par +\b Version 1.0.0.1 4/11/2015\b0\par +* DHCP selection on nics is not functioning correctly\par +* Various small bug-fixes\par +\b Version 1.0.0.0 4/10/2015\b0\par +This is the initial alpha build\par +* basic pinging\par +* basic arp\par +* Routers\par +* Switches/Hubs\par +* PCs/Laptops\par +* Network Links (ethernet)\par +* Basic DHCP\par +} + \ No newline at end of file