Graphics overhaul & minor change to help puzzle

This commit is contained in:
Tim Young 2016-02-03 13:04:18 -06:00
parent 536cd31bb8
commit f50634f889
9 changed files with 386 additions and 454 deletions

View File

@ -25,7 +25,7 @@
<InstallUrl>http://tyounglightsys.ddns.info/EduNetworkBuilder/v1/</InstallUrl>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage>
<ApplicationRevision>25</ApplicationRevision>
<ApplicationRevision>26</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
@ -54,10 +54,10 @@
<ApplicationIcon>Resources\NBIco.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>A4F0B3ABDDD27B9830477C7B93C90C41A5706505</ManifestCertificateThumbprint>
<ManifestCertificateThumbprint>FC016CC0B0D70B0A6ABDABD9CDB267055A8FCCA3</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>EduNetworkBuilder_TemporaryKey.pfx</ManifestKeyFile>
<ManifestKeyFile>EduNetworkBuilder_1_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
@ -193,6 +193,7 @@
<EmbeddedResource Include="RTFWindow.resx">
<DependentUpon>RTFWindow.cs</DependentUpon>
</EmbeddedResource>
<None Include="EduNetworkBuilder_1_TemporaryKey.pfx" />
<None Include="EduNetworkBuilder_TemporaryKey.pfx" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>

View File

@ -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();

View File

@ -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;
}

View File

@ -28,6 +28,7 @@ namespace EduNetworkBuilder
List<NetworkComponent> NetComponents = new List<NetworkComponent>();
//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<Rectangle> PacketRectangles = new List<Rectangle>();
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,8 +510,10 @@ 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)
{
//The puzzle was just solved
@ -511,13 +521,16 @@ 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);
//we have the whole thing to print, and the display image already done
if (isDirty() || _isDirty)
{
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)
@ -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)
{
Invalidate(rec);
}
PacketRectangles.Clear();
}
public void DrawPackets()
{
Image tempNetImage = new Bitmap(TheNetImage);
foreach (Packet pkt in myPackets)
{
pkt.Print(tempNetImage); //Print all the packets over the network image
pkt.Print(TheNetImageBackground); //Print all the packets over the network image
Invalidate(pkt.PacketRectangle());
PacketRectangles.Add(pkt.PacketRectangle());
}
e.Graphics.DrawImage(tempNetImage, 0, 0, myPBox.Width, myPBox.Height);
tempNetImage.Dispose();
//myPBox.Refresh();
}
else
public void Print()
{
e.Graphics.DrawImage(TheNetImage, 0, 0, myPBox.Width, myPBox.Height);
}
//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<string> arp(UInt32 IP)
@ -757,8 +814,16 @@ 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;
}
}
}
return false;
@ -884,26 +949,37 @@ namespace EduNetworkBuilder
}
public void ProcessPackets()
{
//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;
while(myPackets.Count > 0)
{
}
ProcessPacketsOnce();
if(!ProcessingShouldContinue())
{
//we need to break out for some reason
myPBox.Refresh();
break;
//We it has all been taken care of
}
DrawPackets();
//myPBox.Refresh();
previously_had_packets = true;
}
else
{
myPBox.Refresh();
NB.Delay(5);
}
}
if(previously_had_packets)
{
//remove any IP connection tracking info
NetworkDevice ND;
foreach (NetworkComponent nc in NetComponents)
@ -922,6 +998,10 @@ namespace EduNetworkBuilder
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;
}
}
public void AddMessage(PacketMessage toAdd)

View File

@ -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);

View File

@ -37,6 +37,8 @@ namespace EduNetworkBuilder
private CultureInfo LanguageCulture = null;
public string ChosenLanguage = "en"; //The language to try to load
private List<Control> HelpTopicButtons = new List<Control>();
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)
@ -917,7 +933,7 @@ 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();
}

View File

@ -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);

View File

@ -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"));
}

View File

@ -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}}
{\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
}