<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=TestUnit_TestScript_Math_3D.lsl</id>
	<title>TestUnit TestScript Math 3D.lsl - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=TestUnit_TestScript_Math_3D.lsl"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;action=history"/>
	<updated>2026-07-27T22:56:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=1195281&amp;oldid=prev</id>
		<title>ObviousAltIsObvious Resident: language tags to &lt;source&gt;</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=1195281&amp;oldid=prev"/>
		<updated>2015-01-25T20:46:07Z</updated>

		<summary type="html">&lt;p&gt;language tags to &amp;lt;source&amp;gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:46, 25 January 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Conformance Test]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Conformance Test]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source lang=&quot;lsl2&quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l603&quot;&gt;Line 603:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 603:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ObviousAltIsObvious Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=883372&amp;oldid=prev</id>
		<title>Maestro Linden: 1-line fix to first llRot2Euler test; the test was &#039;failing&#039; because it received &quot;&lt;0.00000, 0.00000, 0.00000&gt;&quot; instead of &quot;&lt;-0.00000, 0.00000, -0.00000&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=883372&amp;oldid=prev"/>
		<updated>2010-04-27T23:15:17Z</updated>

		<summary type="html">&lt;p&gt;1-line fix to first llRot2Euler test; the test was &amp;#039;failing&amp;#039; because it received &amp;quot;&amp;lt;0.00000, 0.00000, 0.00000&amp;gt;&amp;quot; instead of &amp;quot;&amp;lt;-0.00000, 0.00000, -0.00000&amp;gt;&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:15, 27 April 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l243&quot;&gt;Line 243:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 243:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to hard-coded values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to hard-coded values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/del&gt;0.00000, 0.00000, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/del&gt;0.00000&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;0.00000, 0.00000, 0.00000&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;1.57574, 0.11067, -0.08922&amp;gt; ==  (string)llRot2Euler( &amp;lt;1.00000, 0.10000, 0.01100, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;1.57574, 0.11067, -0.08922&amp;gt; ==  (string)llRot2Euler( &amp;lt;1.00000, 0.10000, 0.01100, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;-1.10715, 0.72973, 2.03444&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 1.00000, 1.00000, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;-1.10715, 0.72973, 2.03444&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 1.00000, 1.00000, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maestro Linden</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=63129&amp;oldid=prev</id>
		<title>Uzume Grigorovich: typos</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=63129&amp;oldid=prev"/>
		<updated>2008-04-12T18:28:26Z</updated>

		<summary type="html">&lt;p&gt;typos&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:28, 12 April 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot;&gt;Line 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//  link message commands will be sent out on the toAllChannel, and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;recieved &lt;/del&gt;on the passFailChannel&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//  link message commands will be sent out on the toAllChannel, and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;received &lt;/ins&gt;on the passFailChannel&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////// INPUT ///////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////// INPUT ///////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l66&quot;&gt;Line 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 66:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer toAllChannel = -255;           // general channel - linked message&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer toAllChannel = -255;           // general channel - linked message&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer passFailChannel = -355;        // test scripts channel for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cummunicating &lt;/del&gt;pass/fail - linked message&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer passFailChannel = -355;        // test scripts channel for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;communicating &lt;/ins&gt;pass/fail - linked message&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer debug = 0;                     // level of debug message&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer debug = 0;                     // level of debug message&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l143&quot;&gt;Line 143:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 143:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   RunTest&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   RunTest&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;paramaters&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;parameters&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     link message on passFailChannel test status&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     link message on passFailChannel test status&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l185&quot;&gt;Line 185:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 185:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llAxes2RotPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llAxes2RotPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of vector configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of vector configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;1.00000, 0.00000, 0.00000, 0.00000&amp;gt; == (string)llAxes2Rot( &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;1.00000, 0.00000, 0.00000, 0.00000&amp;gt; == (string)llAxes2Rot( &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;0.00000, -0.35355, 0.35355, 0.70711&amp;gt; == (string)llAxes2Rot( &amp;lt;1.0, 1.0, 1.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;0.00000, -0.35355, 0.35355, 0.70711&amp;gt; == (string)llAxes2Rot( &amp;lt;1.0, 1.0, 1.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l204&quot;&gt;Line 204:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 204:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llAxisAngle2RotPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llAxisAngle2RotPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llAxisAngle2Rot( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, 0.0 ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llAxisAngle2Rot( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, 0.0 ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;0.84147, 0.00000, 0.00000, 0.54030&amp;gt; ==  (string)llAxisAngle2Rot( &amp;lt; 1.0, 0.0, 0.0&amp;gt;, 2.0 ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;0.84147, 0.00000, 0.00000, 0.54030&amp;gt; ==  (string)llAxisAngle2Rot( &amp;lt; 1.0, 0.0, 0.0&amp;gt;, 2.0 ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l224&quot;&gt;Line 224:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 224:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llEuler2RotPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llEuler2RotPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llEuler2Rot( &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llEuler2Rot( &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;0.47943, 0.00000, 0.00000, 0.87758&amp;gt; ==  (string)llEuler2Rot( &amp;lt; 1.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;0.47943, 0.00000, 0.00000, 0.87758&amp;gt; ==  (string)llEuler2Rot( &amp;lt; 1.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l242&quot;&gt;Line 242:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 242:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llRot2EulerPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llRot2EulerPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;-0.00000, 0.00000, -0.00000&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;-0.00000, 0.00000, -0.00000&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;1.57574, 0.11067, -0.08922&amp;gt; ==  (string)llRot2Euler( &amp;lt;1.00000, 0.10000, 0.01100, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt;1.57574, 0.11067, -0.08922&amp;gt; ==  (string)llRot2Euler( &amp;lt;1.00000, 0.10000, 0.01100, 1.00000&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l262&quot;&gt;Line 262:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 262:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llRotBetweenPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llRotBetweenPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llRotBetween( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llRotBetween( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			(string)&amp;lt;0.00000, 0.03531, -0.70622, 0.70711&amp;gt; ==  (string)llRotBetween( &amp;lt; -10.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 10.0, 0.5&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			(string)&amp;lt;0.00000, 0.03531, -0.70622, 0.70711&amp;gt; ==  (string)llRotBetween( &amp;lt; -10.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 10.0, 0.5&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l281&quot;&gt;Line 281:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 281:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llVecDistPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llVecDistPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)0.0 == (string)llVecDist( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)0.0 == (string)llVecDist( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)1.0 ==  (string)llVecDist( &amp;lt; 1.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)1.0 ==  (string)llVecDist( &amp;lt; 1.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l301&quot;&gt;Line 301:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 301:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llVecMagPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llVecMagPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)0.0 == (string)llVecMag( &amp;lt; 0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)0.0 == (string)llVecMag( &amp;lt; 0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)1.0 ==  (string)llVecMag( &amp;lt; 1.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)1.0 ==  (string)llVecMag( &amp;lt; 1.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l320&quot;&gt;Line 320:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 320:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llVecNormPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     llVecNormPASS = 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardcoded &lt;/del&gt;values&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      //test four sets of configurations to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard-coded &lt;/ins&gt;values&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt; 0.0, 0.0, 0.0&amp;gt; == (string)llVecNorm( &amp;lt; 0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      if( (string)&amp;lt; 0.0, 0.0, 0.0&amp;gt; == (string)llVecNorm( &amp;lt; 0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt; 1.0, 0.0, 0.0&amp;gt; ==  (string)llVecNorm( &amp;lt; 1.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      		(string)&amp;lt; 1.0, 0.0, 0.0&amp;gt; ==  (string)llVecNorm( &amp;lt; 1.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l367&quot;&gt;Line 367:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 367:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Purpose:    This function is where you design the three level of reports&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Purpose:    This function is where you design the three level of reports&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;avaliable &lt;/del&gt;upon request by the Coordinator&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                  &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;available &lt;/ins&gt;upon request by the Coordinator&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Issues:        no known issues  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Issues:        no known issues  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l375&quot;&gt;Line 375:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 375:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Report( integer controlChannel, string reportType )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Report( integer controlChannel, string reportType )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     //this string will be sent out &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reguardless &lt;/del&gt;of reporting mode&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     //this string will be sent out &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;regardless &lt;/ins&gt;of reporting mode&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     string reportString;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     string reportString;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l538&quot;&gt;Line 538:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 538:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   Initialize&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   Initialize&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;paramaters&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;parameters&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     no return value&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     no return value&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Uzume Grigorovich</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=63128&amp;oldid=prev</id>
		<title>Uzume Grigorovich: lsl code tagging</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=63128&amp;oldid=prev"/>
		<updated>2008-04-12T18:24:50Z</updated>

		<summary type="html">&lt;p&gt;lsl code tagging&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:24, 12 April 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Conformance Test]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Conformance Test]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l603&quot;&gt;Line 603:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 603:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Uzume Grigorovich</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=52672&amp;oldid=prev</id>
		<title>Phoenix Linden at 22:58, 4 February 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=52672&amp;oldid=prev"/>
		<updated>2008-02-04T22:58:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:58, 4 February 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Conformance Test]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Phoenix Linden</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=32759&amp;oldid=prev</id>
		<title>Vektor Linden: New page: &lt;pre&gt; /////////////////////////////////////////////////////////////////////////////////// /////// /////// /////// ///////            TestUnit_TestScript ///////              ///////       ...</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_Math_3D.lsl&amp;diff=32759&amp;oldid=prev"/>
		<updated>2007-09-25T23:49:23Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;lt;pre&amp;gt; /////////////////////////////////////////////////////////////////////////////////// /////// /////// /////// ///////            TestUnit_TestScript ///////              ///////       ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
///////&lt;br /&gt;
///////&lt;br /&gt;
///////&lt;br /&gt;
///////            TestUnit_TestScript&lt;br /&gt;
///////             &lt;br /&gt;
///////            Math_3D&lt;br /&gt;
///////&lt;br /&gt;
///////  This is the test script for the 3D math functions.  &lt;br /&gt;
///////      &lt;br /&gt;
///////              &lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////    &lt;br /&gt;
&lt;br /&gt;
//TestUnit_TestScript    .1 -&amp;gt; initial framework  6.23.2007&lt;br /&gt;
//TestUnit_TestScript    .2 -&amp;gt; tested with minor bug fixes  7.2.2007&lt;br /&gt;
&lt;br /&gt;
//Math_3D                .1 -&amp;gt; modified from TestUnit_TestScript base to test 3D math functions  7.3.2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//                  Command Protocol&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//        CHAT commands&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//  Chat commands will be on the specified broadcastChannel&lt;br /&gt;
//&lt;br /&gt;
//////// OUTPUT ///////////&lt;br /&gt;
//&lt;br /&gt;
// AddUnitReport - send Report update to Coordinator on the chat broadcastChannel&lt;br /&gt;
// format example -&amp;gt; AddUnitReport::unitKey::00000-0000-0000-00000::Report::Successful Completion of Test&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//        LINK MESSAGE commands&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//  link message commands will be sent out on the toAllChannel, and recieved on the passFailChannel&lt;br /&gt;
//&lt;br /&gt;
//////// INPUT ///////////&lt;br /&gt;
//&lt;br /&gt;
//  RunTest - activation command to start test&lt;br /&gt;
//  format example -&amp;gt; RunTest&lt;br /&gt;
//&lt;br /&gt;
//  Report - channel and report type&lt;br /&gt;
//  format example -&amp;gt; Report::controlChannel::0::reportType::NORMAL&lt;br /&gt;
//&lt;br /&gt;
//  Reset - rest the scripts &lt;br /&gt;
//  format example -&amp;gt; Reset&lt;br /&gt;
//&lt;br /&gt;
//////// OUTPUT ///////////&lt;br /&gt;
//&lt;br /&gt;
//  passFail - status of test sent on passFailChannel&lt;br /&gt;
//  format example -&amp;gt; PASS&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Global Variables&lt;br /&gt;
&lt;br /&gt;
integer toAllChannel = -255;           // general channel - linked message&lt;br /&gt;
integer passFailChannel = -355;        // test scripts channel for cummunicating pass/fail - linked message&lt;br /&gt;
&lt;br /&gt;
integer debug = 0;                     // level of debug message&lt;br /&gt;
integer debugChannel = DEBUG_CHANNEL;  // output channel for debug messages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
integer llAngleBetweenPASS;            // &lt;br /&gt;
integer llAxes2RotPASS;                //  &lt;br /&gt;
integer llAxisAngle2RotPASS;           //  These are global pass/fail&lt;br /&gt;
integer llEuler2RotPASS;               //  indicators for the various&lt;br /&gt;
integer llRot2EulerPASS;               //  Math 3D functions that are&lt;br /&gt;
integer llRotBetweenPASS;              //  being tested. These variables&lt;br /&gt;
integer llVecDistPASS;                 //  are used in the Run Test &lt;br /&gt;
integer llVecMagPASS;                  //  and Report Functions of this &lt;br /&gt;
integer llVecNormPASS;                 //  script.&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   ParseCommand&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      string message - command to be parsed&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     no return value&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function calls various other functions or sets globals&lt;br /&gt;
//////////                    depending on message string. Allows external command calls.&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
ParseCommand(string message)&lt;br /&gt;
{&lt;br /&gt;
    if(debug &amp;gt; 1)llSay(debugChannel, llGetScriptName()+ &amp;quot;-&amp;gt;ParseCommand: &amp;quot; + message);&lt;br /&gt;
        &lt;br /&gt;
    //reset all scripts &lt;br /&gt;
    if(message == &amp;quot;Reset&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        //reset this script &lt;br /&gt;
        llResetScript();                   &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //RunTest()&lt;br /&gt;
    else if(message == &amp;quot;RunTest&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        RunTest();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //Report()&lt;br /&gt;
    //Example format -&amp;gt; Report::broadcastChannel::0::reportType::NORMAL&lt;br /&gt;
    else if( llSubStringIndex(message, &amp;quot;Report&amp;quot;) != -1 )&lt;br /&gt;
    {&lt;br /&gt;
        //parse the string command into a list&lt;br /&gt;
        list reportParameters = llParseString2List( message, [&amp;quot;::&amp;quot;], [&amp;quot;&amp;quot;] );&lt;br /&gt;
        &lt;br /&gt;
        //find the broadcastChannel label and increment by one&lt;br /&gt;
        integer tempIndex = llListFindList( reportParameters, [&amp;quot;controlChannel&amp;quot;] ) + 1;&lt;br /&gt;
        //pull the broadcastChannel from the list with the index just calculated&lt;br /&gt;
        integer controlChannel = llList2Integer( reportParameters , tempIndex);&lt;br /&gt;
        &lt;br /&gt;
        //find the reportType label and increment by one&lt;br /&gt;
        tempIndex = llListFindList( reportParameters, [&amp;quot;reportType&amp;quot;] ) + 1;&lt;br /&gt;
        //pull the reportType from the list with the index just calculated&lt;br /&gt;
        string reportType = llList2String( reportParameters , tempIndex);&lt;br /&gt;
                &lt;br /&gt;
        //call the Report function with new parameters&lt;br /&gt;
        Report( controlChannel, reportType );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
} //end ParseCommand&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   RunTest&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      no input paramaters&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     link message on passFailChannel test status&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function is where you put the scripts that you want to test&lt;br /&gt;
//////////                  with this unit.&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
RunTest()&lt;br /&gt;
{&lt;br /&gt;
     &lt;br /&gt;
     /////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: float llAngleBetween( rotation a, rotation b ); &lt;br /&gt;
     // Returns a float that is the angle between rotation a and b.&lt;br /&gt;
     // • rotation     a     –     start rotation     &lt;br /&gt;
     // • rotation     b     –     end rotation     &lt;br /&gt;
     /////////////////////////////////////////////////////////////////&lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llAngleBetweenPASS = 0;&lt;br /&gt;
     &lt;br /&gt;
     //compare two rotations with no angle in between&lt;br /&gt;
     if( (string)0.0 == (string)llAngleBetween( &amp;lt;0.0, 0.0, 0.0, 1.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0, 1.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)2.094395 == (string)llAngleBetween( &amp;lt;1.0, 1.0, 1.0, 1.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0, 1.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)2.094395 == (string)llAngleBetween( &amp;lt;0.0, 0.0, 0.0, 1.0&amp;gt;, &amp;lt;1.0, 1.0, 1.0, 1.0&amp;gt; ) )&lt;br /&gt;
     {&lt;br /&gt;
         llAngleBetweenPASS = 1;    &lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     /////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: rotation llAxes2Rot( vector fwd, vector left, vector up );&lt;br /&gt;
     // Returns a rotation that is defined by the 3 coordinate axes&lt;br /&gt;
     // • vector     fwd             &lt;br /&gt;
     // • vector     left             &lt;br /&gt;
     // • vector     up&lt;br /&gt;
     /////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llAxes2RotPASS = 0;&lt;br /&gt;
     &lt;br /&gt;
     //test four sets of vector configurations to hardcoded values&lt;br /&gt;
     if( (string)&amp;lt;1.00000, 0.00000, 0.00000, 0.00000&amp;gt; == (string)llAxes2Rot( &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.00000, -0.35355, 0.35355, 0.70711&amp;gt; == (string)llAxes2Rot( &amp;lt;1.0, 1.0, 1.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.35355, 0.00000, -0.35355, 0.70711&amp;gt; == (string)llAxes2Rot( &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;1.0, 1.0, 1.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;-0.35355, 0.35355, 0.00000, 0.70711&amp;gt; == (string)llAxes2Rot( &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;1.0, 1.0, 1.0&amp;gt;) )&lt;br /&gt;
     {&lt;br /&gt;
         llAxes2RotPASS = 1; &lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     /////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: rotation llAxisAngle2Rot( vector axis, float angle );&lt;br /&gt;
     // Returns a rotation that is a generated angle about axis&lt;br /&gt;
     // • vector     axis             &lt;br /&gt;
     // • float     angle     –     expressed in radians.     &lt;br /&gt;
     /////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llAxisAngle2RotPASS = 0;&lt;br /&gt;
         &lt;br /&gt;
     //test four sets of configurations to hardcoded values&lt;br /&gt;
     if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llAxisAngle2Rot( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, 0.0 ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.84147, 0.00000, 0.00000, 0.54030&amp;gt; ==  (string)llAxisAngle2Rot( &amp;lt; 1.0, 0.0, 0.0&amp;gt;, 2.0 ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.27680, 0.27680, 0.27680, 0.87758&amp;gt; == (string)llAxisAngle2Rot( &amp;lt; 1.0, 1.0, 1.0&amp;gt;, 1.0 ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.00000, 0.00000, 0.47943, 0.87758&amp;gt; == (string)llAxisAngle2Rot( &amp;lt; 0.0, 0.0, 1.0&amp;gt;, 1.0 ) )&lt;br /&gt;
     {&lt;br /&gt;
         llAxisAngle2RotPASS = 1; &lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     &lt;br /&gt;
     //////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: rotation llEuler2Rot( vector v );&lt;br /&gt;
     // Returns a rotation representation of Euler Angles v.&lt;br /&gt;
     // • vector     v         &lt;br /&gt;
     //////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     &lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llEuler2RotPASS = 0;&lt;br /&gt;
       &lt;br /&gt;
     //test four sets of configurations to hardcoded values&lt;br /&gt;
     if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llEuler2Rot( &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.47943, 0.00000, 0.00000, 0.87758&amp;gt; ==  (string)llEuler2Rot( &amp;lt; 1.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.57094, 0.16752, 0.57094, 0.56568&amp;gt; == (string)llEuler2Rot( &amp;lt; 1.0, 1.0, 1.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.00000, 0.00000, 0.47943, 0.87758&amp;gt; == (string)llEuler2Rot( &amp;lt; 0.0, 0.0, 1.0&amp;gt; ) )&lt;br /&gt;
     {&lt;br /&gt;
         llEuler2RotPASS = 1; &lt;br /&gt;
     }&lt;br /&gt;
  &lt;br /&gt;
       ///////////////////////////////////////////////////////////////////////////////////    &lt;br /&gt;
       // Function: vector llRot2Euler( rotation quat );&lt;br /&gt;
       // Returns a vector that is the Euler representation (roll, pitch, yaw) of quat.&lt;br /&gt;
       // • rotation     quat     –     Any valid rotation     &lt;br /&gt;
       ///////////////////////////////////////////////////////////////////////////////////    &lt;br /&gt;
     &lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llRot2EulerPASS = 0;&lt;br /&gt;
       &lt;br /&gt;
     //test four sets of configurations to hardcoded values&lt;br /&gt;
     if( (string)&amp;lt;-0.00000, 0.00000, -0.00000&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;1.57574, 0.11067, -0.08922&amp;gt; ==  (string)llRot2Euler( &amp;lt;1.00000, 0.10000, 0.01100, 1.00000&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;-1.10715, 0.72973, 2.03444&amp;gt; == (string)llRot2Euler( &amp;lt;0.00000, 1.00000, 1.00000, 1.00000&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.00000, 1.57080, 1.57080&amp;gt; == (string)llRot2Euler( &amp;lt;1.00000, 1.00000, 1.00000, 1.00000&amp;gt; ) )&lt;br /&gt;
     {&lt;br /&gt;
         llRot2EulerPASS = 1; &lt;br /&gt;
     }     &lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
     /////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: rotation llRotBetween( vector start, vector end );&lt;br /&gt;
     // Returns a rotation that is the rotation between start to end&lt;br /&gt;
     // • vector     start             &lt;br /&gt;
     // • vector     end&lt;br /&gt;
     /////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     &lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llRotBetweenPASS = 0;&lt;br /&gt;
       &lt;br /&gt;
     //test four sets of configurations to hardcoded values&lt;br /&gt;
     if( (string)&amp;lt;0.00000, 0.00000, 0.00000, 1.00000&amp;gt; == (string)llRotBetween( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;br /&gt;
			(string)&amp;lt;0.00000, 0.03531, -0.70622, 0.70711&amp;gt; ==  (string)llRotBetween( &amp;lt; -10.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 10.0, 0.5&amp;gt; ) &amp;amp;&lt;br /&gt;
			(string)&amp;lt;0.62796, 0.62796, 0.00000, 0.45970&amp;gt; == (string)llRotBetween( &amp;lt; 10.0, -10.0, 10.0&amp;gt;, &amp;lt; 0.0, 0.0, -1.0&amp;gt; ) &amp;amp;&lt;br /&gt;
			(string)&amp;lt;0.00000, -0.99969, 0.00000, 0.02498&amp;gt; == (string)llRotBetween( &amp;lt; 0.0, 0.0, -10.0&amp;gt;, &amp;lt; 0.5, 0.0, 10.0&amp;gt; ) )&lt;br /&gt;
     {&lt;br /&gt;
         llRotBetweenPASS = 1; &lt;br /&gt;
     }     &lt;br /&gt;
      &lt;br /&gt;
     /////////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: float llVecDist( vector vec_a, vector vec_b );&lt;br /&gt;
     // Returns a float that is the distance between vec_a and vec_b (llVecMag(vec_a - vec_b)).&lt;br /&gt;
     // • vector     vec_a     –     Any valid vector     &lt;br /&gt;
     // • vector     vec_b     –     Any valid vector&lt;br /&gt;
     //////////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
      &lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llVecDistPASS = 0;&lt;br /&gt;
       &lt;br /&gt;
     //test four sets of configurations to hardcoded values&lt;br /&gt;
     if( (string)0.0 == (string)llVecDist( &amp;lt; 0.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)1.0 ==  (string)llVecDist( &amp;lt; 1.0, 0.0, 0.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)1.732051 == (string)llVecDist( &amp;lt; 1.0, 1.0, 1.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)1.0 == (string)llVecDist( &amp;lt; 0.0, 0.0, -1.0&amp;gt;, &amp;lt; 0.0, 0.0, 0.0&amp;gt; ) )&lt;br /&gt;
     {&lt;br /&gt;
         llVecDistPASS = 1; &lt;br /&gt;
     }     &lt;br /&gt;
       &lt;br /&gt;
    &lt;br /&gt;
     //////////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: float llVecMag( vector vec );&lt;br /&gt;
     // Returns a float that is the magnitude of the vector (the distance from vec to &amp;lt;0.0, 0.0, 0.0&amp;gt;).&lt;br /&gt;
     // • vector     vec             &lt;br /&gt;
     //////////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llVecMagPASS = 0;&lt;br /&gt;
       &lt;br /&gt;
     //test four sets of configurations to hardcoded values&lt;br /&gt;
     if( (string)0.0 == (string)llVecMag( &amp;lt; 0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;br /&gt;
     		(string)1.0 ==  (string)llVecMag( &amp;lt; 1.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;br /&gt;
     		(string)1.732051 == (string)llVecMag( &amp;lt; 1.0, 1.0, 1.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)1.414214 == (string)llVecMag( &amp;lt; 1.0, 0.0, -1.0&amp;gt; ) )&lt;br /&gt;
     {&lt;br /&gt;
         llVecMagPASS = 1; &lt;br /&gt;
     }     &lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
     ///////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     // Function: vector llVecNorm( vector vec );&lt;br /&gt;
     // Returns a vector that is the normal of the vector (vec / llVecMag(vec)).&lt;br /&gt;
     // • vector     vec     –     Any valid vector     &lt;br /&gt;
     ///////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
    //initialize a pass variable to TRUE &lt;br /&gt;
    llVecNormPASS = 0;&lt;br /&gt;
       &lt;br /&gt;
     //test four sets of configurations to hardcoded values&lt;br /&gt;
     if( (string)&amp;lt; 0.0, 0.0, 0.0&amp;gt; == (string)llVecNorm( &amp;lt; 0.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt; 1.0, 0.0, 0.0&amp;gt; ==  (string)llVecNorm( &amp;lt; 1.0, 0.0, 0.0&amp;gt;) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.57735, 0.57735, 0.57735&amp;gt; == (string)llVecNorm( &amp;lt; 1.0, 1.0, 1.0&amp;gt; ) &amp;amp;&lt;br /&gt;
     		(string)&amp;lt;0.70711, 0.00000, -0.70711&amp;gt; == (string)llVecNorm( &amp;lt; 1.0, 0.0, -1.0&amp;gt; ) )&lt;br /&gt;
     {&lt;br /&gt;
         llVecNormPASS = 1; &lt;br /&gt;
     }         &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
     //multiple all of the individual pass variables together to check for any failures.&lt;br /&gt;
     integer pass = llAngleBetweenPASS *&lt;br /&gt;
     llAxes2RotPASS *&lt;br /&gt;
     llAxisAngle2RotPASS *&lt;br /&gt;
     llEuler2RotPASS *&lt;br /&gt;
     llRot2EulerPASS *&lt;br /&gt;
     llRotBetweenPASS *&lt;br /&gt;
     llVecDistPASS *&lt;br /&gt;
     llVecMagPASS *&lt;br /&gt;
     llVecNormPASS;&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
     // if all of the individual &lt;br /&gt;
     if( pass == 1)&lt;br /&gt;
     {&lt;br /&gt;
       llMessageLinked(LINK_SET, passFailChannel, &amp;quot;PASS&amp;quot;, NULL_KEY);&lt;br /&gt;
     }&lt;br /&gt;
     else&lt;br /&gt;
     {&lt;br /&gt;
       llMessageLinked(LINK_SET, passFailChannel, &amp;quot;FAIL&amp;quot;, NULL_KEY);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   Report&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      broadcastChannel - chat channel to send report&lt;br /&gt;
//////////                  reportType - determines length and content of report type&lt;br /&gt;
//////////                                         -&amp;gt; NORMAL - failures and summary information&lt;br /&gt;
//////////                                         -&amp;gt; QUITE - summary information only&lt;br /&gt;
//////////                                         -&amp;gt; VERBOSE - everything&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     llSay on broadcastChannel &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function is where you design the three level of reports&lt;br /&gt;
//////////                  avaliable upon request by the Coordinator&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
Report( integer controlChannel, string reportType )&lt;br /&gt;
{&lt;br /&gt;
    //this string will be sent out reguardless of reporting mode&lt;br /&gt;
    string reportString;&lt;br /&gt;
    &lt;br /&gt;
    // Initialize with FAIL&lt;br /&gt;
    string llAngleBetweenPASSstring = &amp;quot;FAIL&amp;quot;;            &lt;br /&gt;
    string llAxes2RotPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    string llAxisAngle2RotPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    string llEuler2RotPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    string llRot2EulerPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    string llRotBetweenPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    string llVecDistPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    string llVecMagPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    string llVecNormPASSstring = &amp;quot;FAIL&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    //translate integer conditional into text string for the report. &lt;br /&gt;
    if ( llAngleBetweenPASS )&lt;br /&gt;
    {&lt;br /&gt;
          llAngleBetweenPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llAxes2RotPASS )&lt;br /&gt;
    {&lt;br /&gt;
          llAxes2RotPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llAxisAngle2RotPASS )&lt;br /&gt;
    {&lt;br /&gt;
        llAxisAngle2RotPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llEuler2RotPASS)&lt;br /&gt;
    {&lt;br /&gt;
          llEuler2RotPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llRot2EulerPASS )&lt;br /&gt;
    {&lt;br /&gt;
          llRot2EulerPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llRotBetweenPASS )&lt;br /&gt;
    {&lt;br /&gt;
          llRotBetweenPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llVecDistPASS )&lt;br /&gt;
    {&lt;br /&gt;
          llVecDistPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llVecMagPASS )&lt;br /&gt;
    {&lt;br /&gt;
          llVecMagPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    if ( llVecNormPASS )&lt;br /&gt;
    {&lt;br /&gt;
          llVecNormPASSstring = &amp;quot;PASS&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //Normal - moderate level of reporting&lt;br /&gt;
    if( reportType == &amp;quot;NORMAL&amp;quot; )&lt;br /&gt;
    {&lt;br /&gt;
      reportString = &amp;quot;Function: float llAngleBetween( rotation a, rotation b ) -&amp;gt; &amp;quot; &lt;br /&gt;
                                                + llAngleBetweenPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: rotation llAxes2Rot( vector fwd, vector left, vector up) -&amp;gt;&amp;quot; &lt;br /&gt;
                                                + llAxes2RotPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: rotation llAxisAngle2Rot( vector axis, float angle ) -&amp;gt; &amp;quot; &lt;br /&gt;
                                                + llAxisAngle2RotPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: rotation llEuler2Rot( vector v ) -&amp;gt; &amp;quot; &lt;br /&gt;
                                                + llEuler2RotPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: vector llRot2Euler( rotation quat ) -&amp;gt; &amp;quot; &lt;br /&gt;
                                                + llRot2EulerPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: rotation llRotBetween( vector start, vector end ) -&amp;gt; &amp;quot;&lt;br /&gt;
                                                + llRotBetweenPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: float llVecDist( vector vec_a, vector vec_b ) -&amp;gt; &amp;quot; &lt;br /&gt;
                                                + llVecDistPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: float llVecMag( vector vec ) -&amp;gt; &amp;quot; &lt;br /&gt;
                                                + llVecMagPASSstring + &amp;quot;\n&amp;quot;&lt;br /&gt;
                   + &amp;quot;Function: vector llVecNorm( vector vec ) -&amp;gt; &amp;quot; &lt;br /&gt;
                                                + llVecNormPASSstring + &amp;quot;\n&amp;quot;;&lt;br /&gt;
       &lt;br /&gt;
    } // end normal  &lt;br /&gt;
&lt;br /&gt;
    //VERBOSE - highest level of reporting&lt;br /&gt;
    if( reportType == &amp;quot;VERBOSE&amp;quot; )&lt;br /&gt;
    {&lt;br /&gt;
        reportString = &amp;quot;/////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: float llAngleBetween( rotation a, rotation b ) + &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a float that is the angle between rotation a and b.&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • rotation     a     –     start rotation     &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • rotation     b     –     end rotation     &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llAngleBetweenPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				     &lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: rotation llAxes2Rot( vector fwd, vector left, vector up ) +&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a rotation that is defined by the 3 coordinate axes&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     fwd             &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     left             &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     up&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llAxes2RotPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: rotation llAxisAngle2Rot( vector axis, float angle );&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a rotation that is a generated angle about axis&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     axis             &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • float     angle     –     expressed in radians.     &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llAxisAngle2RotPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				     &lt;br /&gt;
				&amp;quot;//////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: rotation llEuler2Rot( vector v );&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a rotation representation of Euler Angles v.&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     v         &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;//////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llEuler2RotPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				     &lt;br /&gt;
				&amp;quot;///////////////////////////////////////////////////////////////////////////////////  &amp;quot; + &amp;quot;\n&amp;quot; +  &lt;br /&gt;
				&amp;quot;// Function: vector llRot2Euler( rotation quat );&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a vector that is the Euler representation (roll, pitch, yaw) of quat.&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • rotation     quat     –     Any valid rotation     &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;///////////////////////////////////////////////////////////////////////////////////  &amp;quot; + &amp;quot;\n&amp;quot; +  &lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llRot2EulerPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				     &lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: rotation llRotBetween( vector start, vector end );&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a rotation that is the rotation between start to end&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     start             &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     end&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llRotBetweenPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				     &lt;br /&gt;
				&amp;quot;/////////////////////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: float llVecDist( vector vec_a, vector vec_b );&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a float that is the distance between vec_a and vec_b (llVecMag(vec_a - vec_b)).&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     vec_a     –     Any valid vector     &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     vec_b     –     Any valid vector&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;//////////////////////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llVecDistPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				  &lt;br /&gt;
				&amp;quot;///////////////////////////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: float llVecMag( vector vec );&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a float that is the magnitude of the vector (the distance from vec to &amp;lt;0.0, 0.0, 0.0&amp;gt;).&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     vec             &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;///////////////////////////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llVecMagPASSstring + &amp;quot;\n\n&amp;quot; +&lt;br /&gt;
				     &lt;br /&gt;
				&amp;quot;///////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Function: vector llVecNorm( vector vec );&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// Returns a vector that is the normal of the vector (vec / llVecMag(vec)).&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;// • vector     vec     –     Any valid vector     &amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;///////////////////////////////////////////////////////////////////////////////&amp;quot; + &amp;quot;\n&amp;quot; +&lt;br /&gt;
				&amp;quot;PASS/FAIL -&amp;gt; &amp;quot; + llVecNormPASSstring + &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
       &lt;br /&gt;
  }// end verbose&lt;br /&gt;
    &lt;br /&gt;
    //AddUnitReport()&lt;br /&gt;
    //send to Coordinator on the broadcastChannel the selected report&lt;br /&gt;
    //format example -&amp;gt; AddUnitReport::unitKey::00000-0000-0000-00000::Report::Successful Completion of Test&lt;br /&gt;
    llSay( controlChannel, &amp;quot;AddUnitReport::unitKey::&amp;quot; + (string)llGetKey() + &amp;quot;::Report::&amp;quot; + reportString);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   Initialize&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      no input paramaters&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     no return value&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function initializes any variables or functions necessary&lt;br /&gt;
//////////                  to get us started&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
Initialize()&lt;br /&gt;
{&lt;br /&gt;
   //why&lt;br /&gt;
   llSetText( &amp;quot;Math 3D&amp;quot;, &amp;lt;255,255,255&amp;gt;, 1);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE//&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
//                          DEFAULT STATE                                            //&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
///////////////////////////////////////////////////////&lt;br /&gt;
//  State Entry of default state                     //&lt;br /&gt;
///////////////////////////////////////////////////////&lt;br /&gt;
   state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Initialize();&lt;br /&gt;
    }&lt;br /&gt;
////////////////////////////////////////////////////////&lt;br /&gt;
//  On Rez of default state                           //&lt;br /&gt;
////////////////////////////////////////////////////////    &lt;br /&gt;
    on_rez(integer start_param)&lt;br /&gt;
    {&lt;br /&gt;
        Initialize();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
///////////////////////////////////////////////////////&lt;br /&gt;
//  Link Message of default state                    //&lt;br /&gt;
///////////////////////////////////////////////////////   &lt;br /&gt;
    link_message(integer sender_number, integer number, string message, key id)&lt;br /&gt;
    {&lt;br /&gt;
        //if link message is on the correct channel&lt;br /&gt;
        if(number == toAllChannel)&lt;br /&gt;
        {&lt;br /&gt;
            //treat as command input&lt;br /&gt;
            ParseCommand(message);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
    } //end of link message&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
} // end default&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vektor Linden</name></author>
	</entry>
</feed>