diff --git a/docs/security.html b/docs/security.html
index 41bf55f340319c9dcf245cb012eb97c4c4706886..d0d9674947f0d56a2938d13c7ba2b8e562a0346c 100644
--- a/docs/security.html
+++ b/docs/security.html
@@ -19,14 +19,14 @@
 
 <p><a name="top"></a><a href="sysop.html#TOC">Back to Table of Contents</a></p>
 
-<h2><u>[7.1] - </u><a name="Introduction"><u>Introduction</u></a><u> to ARS
-Security</u></h2>
+<h2><a name="Introduction">[7.1] - Introduction to ARS
+Security</a></h2>
 <pre>ARS stands for Access Requirement Strings. Access requirement strings are used
-to specify the requirents of a user to have access to features/sections of a
-Synchronet BBS. The string can consist entirely of english key words and
+to specify the requirements of a user to have access to features/sections of a
+Synchronet BBS. The string can consist entirely of English key words and
 numbers or use short-hand symbols to fit a large number of security
 requirements into the 40 character space allowed for access requirement
-strings. Short-hand symbols and key words may be used interchangably and
+strings. Short-hand symbols and key words may be used interchangeably and
 combined in the same string. For clarity, it is suggested you use the key words
 whenever possible. The string syntax is as follows:
 
@@ -43,7 +43,7 @@ whenever possible. The string syntax is as follows:
        <b>and</b>      the word &quot;AND&quot; or the symbol '&amp;' may be used for clarity in
                 reading when specifying that two or more parameter values MUST
                 be met to match the requirement</pre>
-<h2><u>[7.2] - </u><a name="Key words and Symbols"><u>Key words and Symbols</u></a></h2>
+<h2><a name="Keywords/Symbols">[7.2] - Key words and Symbols</a></h2>
 <pre><b>Key word      Symbol	Description
 </b>------------------------------------------------------------------------------
 AND		&amp;	More than one requirement (optional)
@@ -85,8 +85,8 @@ UDR		$K	User's upload/download ratio (0-100)
 UDFR		$D	User's upload/download file ratio (0-100)
 USER		$U	User's number (1-xxxx)
 WIP			User has WIP compatible terminal (no value argument)</pre>
-<h2><u>[7.3] - ARS General Usage Examples</u></h2>
-<pre><a name="General Example #1"><b><u>General Example #1</u></b></a>
+<h2><a name="GeneralUsageExamples">[7.3] - ARS General Usage Examples</a></h2>
+<pre><b>General Example #1</b>
 
 LEVEL 60
 
@@ -108,7 +108,7 @@ the requirement is assumed to be LEVEL. So the following string:
 
 is also valid and evaluates the same as the above strings.
 
-<b><u>General Example #2</u></b>
+<b>General Example #2</b>
 
 NOT LEVEL 60
 
@@ -117,7 +117,7 @@ requirement. The &quot;NOT&quot; key word can be include before or after the par
 
 LEVEL NOT 60
 
-evaluates indentically to the first string in this example.
+evaluates identically to the first string in this example.
 
 Short-hand symbols may be used to abbreviate the string:
 
@@ -129,7 +129,7 @@ $L!60
 
 have exactly the same meaning as the first string in this example.
 
-<b><u>General Example #3</u></b>
+<b>General Example #3</b>
 
 LEVEL EQUAL 60
 
@@ -148,7 +148,7 @@ short-hand symbols may be used to make the string shorter:
 
 LEVEL = 60
 
-evalutes indentically to the above example strings and the space on either side
+evaluates identically to the above example strings and the space on either side
 of the '=' symbol are also optional:
 
 LEVEL=60
@@ -158,7 +158,7 @@ parameter type, the following string is also valid:
 
 =60
 
-<b><u>General Example #4</u></b>
+<b>General Example #4</b>
 
 LEVEL 60 AND FLAG 1A
 
@@ -202,9 +202,9 @@ $L60$FA
 
 60$FA
 
-but for reasons of clarity, the first string is prefered if space allows.
+but for reasons of clarity, the first string is preferred if space allows.
 
-<b><u>General Example #5</u></b>
+<b>General Example #5</b>
 
 SEX F OR LEVEL 90
 
@@ -220,7 +220,7 @@ $SF | $L90
 
 $SF|$L90
 
-<b><u>General Example #6</u></b>
+<b>General Example #6</b>
 
 USER NOT EQUAL TO 20
 
@@ -230,12 +230,12 @@ Shortened using symbols:
 
 $U!=20
 
-<b><u>General Example #7</u></b>
+<b>General Example #7</b>
 
 BPS 9600 OR NOT TIME 19:00
 
 This string specifies that the user must be connected at 9600bps or higher,
-OR the time of day must be before 7pm. The value for the TIME paramater
+OR the time of day must be before 7pm. The value for the TIME parameter
 is in the format 24 hour format of HH:MM. If the specified time is on an even
 hour, then &quot;:00&quot; portion may be omitted:
 
@@ -243,7 +243,7 @@ BPS 9600 OR NOT TIME 19
 
 has the same meaning.
 
-You may also ommit the &quot;00&quot; from the BPS value to shorten the string:
+You may also omit the &quot;00&quot; from the BPS value to shorten the string:
 
 BPS 96 OR NOT TIME 19
 
@@ -255,7 +255,7 @@ BPS9600|!TIME19
 
 $B96|!$T19
 
-<b><u>General Example #8</u></b>
+<b>General Example #8</b>
 
 BPS 9600 OR TIME NOT 18:00 OR TIME 21:30
 
@@ -264,7 +264,7 @@ OR the time of day must be before 6pm, OR the time of day must be after
 9:30pm.
 
 When specifying multiple parameters of the same type consecutively (in this
-example, two of the required parameters are &quot;TIME&quot;), the paramter does
+example, two of the required parameters are &quot;TIME&quot;), the parameter does
 not need to be restated. For example, the string:
 
 BPS 9600 OR TIME NOT 18:00 OR 21:30
@@ -277,7 +277,7 @@ $B 9600 OR NOT $T 18 OR 21:30
 
 $B96|$T!18|21:30
 
-<b><u>General Example #9</u></b>
+<b>General Example #9</b>
 
 FLAG A OR FLAG B OR FLAG C OR LEVEL 90
 
@@ -295,7 +295,7 @@ Taking it to extremes:
 
 $FA|B|C|$L90
 
-<b><u>General Example #10</u></b>
+<b>General Example #10</b>
 
 USER EQUALS 145 OR LEVEL 90
 
@@ -310,8 +310,8 @@ For ultimate compression:
 
 $U=145|$L90
 
-<b><u>General Example #11
-</u></b>
+<b>General Example #11
+</b>
 LEVEL 60 AND FLAG X AND FLAG Y AND FLAG Z
 
 Compressed examples:
@@ -328,12 +328,12 @@ $L60 $FXYZ
 
 60$FXYZ
 
-<b><u>General Example #12
-</u></b>
+<b>General Example #12
+</b>
 FLAG 2A OR FLAG 2B OR FLAG 4Z
 
 This string specifies that the user must have either flag 'A or 'B' from flag
-set #2, or flag 'Z' from flag set #4. Using the &quot;sticky&quot; paramenter type
+set #2, or flag 'Z' from flag set #4. Using the &quot;sticky&quot; parameter type
 feature, this could be shortened to:
 
 FLAG 2A OR B OR FLAG 4Z
@@ -361,7 +361,7 @@ Note: Multiple flag sets were developed for advanced sysops who found that
       use more than 26 flags, and therefore have no need for flag sets 2
       through 4.
 
-<b><u>General Example #13</u></b>
+<b>General Example #13</b>
 
 NOT FLAG 2G
 
@@ -380,7 +380,7 @@ Condensed versions:
 $F!2G
 
 $F2!G</pre>
-<h2><u>[7.4] - </u><a name="Nesting Expressions"><u>Nesting Expressions</u></a></h2>
+<h2><a name="NestingExpressions">[7.4] - Nesting Expressions</a></h2>
 <pre>All of the above string examples have been single expressions that evaluate to
 either true of false. Sometimes, you may wish to require access to an area
 using &quot;nested&quot; logic.
@@ -402,7 +402,7 @@ separate the two true/false expressions.
 2: (LEVEL 90 OR FLAG A) AND AGE 21
 
 Strings 1 and 2 are interpreted differently and correlate to the above two
-english logic statements.
+English logic statements.
 
 Whenever using a combination of AND and OR logic, nested expressions are
 required. The following string:
@@ -411,7 +411,7 @@ LEVEL 90 OR FLAG A AND AGE 21
 
 is INVALID and would most likely NOT produce the desired results.
 
-Expressions may be nested, using paranethesis, as deep as is required.
+Expressions may be nested, using parenthesis, as deep as is required.
 
 Example:
 
@@ -424,9 +424,9 @@ User with level of 80, flag S and age 17 would not qualify
 User with level of 80 and age 18 would qualify
 User with flag S and age 18 would qualify
 Any user with level 90+ would qualify regardless of age or flags</pre>
-<h2><u>[7.5] - ARS Nested Logic Examples</u></h2>
-<pre><b><u><a name="Nested Example #1">Nested Example #1</a>
-</u></b>
+<h2><a name="NestedLogicExamples">[7.5] - ARS Nested Logic Examples</a></h2>
+<pre><b>Nested Example #1
+</b>
 BPS 9600 OR (BPS 2400 AND TIME NOT 15:00)
 
 User must be connected at 9600bps or higher, OR be connected at 2400bps or
@@ -449,7 +449,7 @@ using symbols (and eliminating the AND key word):
 
 $B9600|($B2400$T!15)
 
-<b><u>Nested Example #2</u></b>
+<b>Nested Example #2</b>
 
 (SEX M AND AGE 21) OR (SEX F AND AGE 18)
 
@@ -467,7 +467,7 @@ AGE 21 OR (SEX F AND AGE 18)
 
 producing the same results.
 
-<b><u>Nested Example #3
+<b>Nested Example #3<u>
 </u></b>
 (BPS 2400 AND PCR 20) OR LEVEL 90
 
@@ -491,7 +491,7 @@ Eliminating the spaces creates an even more compact string:
 
 ($B2400$P20)|$L90
 
-<b><u>Nested Example #4
+<b>Nested Example #4<u>
 </u></b>
 NOT (USER=1 OR USER=20)
 
@@ -505,10 +505,10 @@ NOT USER=1 AND NOT USER=20
 though the meaning is not quite as clear, they are functionally the same.
 
 Note: The second method requires 2 bytes less in raw logic storage because it
-      is not nested and will be intrepreted slightly faster (by a matter of
+      is not nested and will be interpreted slightly faster (by a matter of
       microseconds). Just in case you were wondering...
 
-<b><u>Nested Example #5
+<b>Nested Example #5<u>
 </u></b>
 LEVEL 90 OR (TIME 12:00 AND TIME NOT 18:00)
 
@@ -519,7 +519,7 @@ Re-arranged:
 
 (TIME 12:00 AND TIME NOT 18:00) OR LEVEL 90
 
-the string has exactly the same meaning. Eliminating the unnecessary occurance
+the string has exactly the same meaning. Eliminating the unnecessary occurrence
 of the second &quot;TIME&quot; parameter shortens the string while keeping it easily
 readable: