<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7004436587652389306</id><updated>2012-01-10T02:15:01.974-08:00</updated><title type='text'>Yeahlight's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-1623407145618776118</id><published>2012-01-10T02:09:00.000-08:00</published><updated>2012-01-10T02:15:01.988-08:00</updated><title type='text'>Change in Direction II</title><content type='html'>My estimation of a six to eight week removal from personal projects was a bit too conservative. Today marks the eighth week from my announcement and I believe I have another four to six weeks to go until I may safely invest time into other projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-1623407145618776118?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/1623407145618776118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2012/01/change-in-direction-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/1623407145618776118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/1623407145618776118'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2012/01/change-in-direction-ii.html' title='Change in Direction II'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-4314699896009106247</id><published>2011-11-12T00:05:00.000-08:00</published><updated>2011-11-12T00:16:36.689-08:00</updated><title type='text'>Change in Direction</title><content type='html'>Myself and a few others are in the process of starting a business and a couple of those participating are leaving their current jobs. It is imperative that we do not fail, thus, to ensure that we hit the ground running, I am removing myself from all other projects for the next six to eight weeks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-4314699896009106247?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/4314699896009106247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/11/change-in-direction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/4314699896009106247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/4314699896009106247'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/11/change-in-direction.html' title='Change in Direction'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-8190678115838816944</id><published>2011-11-07T18:13:00.001-08:00</published><updated>2011-11-07T18:19:22.798-08:00</updated><title type='text'>EQClassic - Source Organization</title><content type='html'>Shortly after making the appropriate changes for spawning our new pets, I have decided to dedicate some time (five to seven days) to clean up and reorganize our source. A majority of the source is poorly organized and I cannot stand to look at it anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-8190678115838816944?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/8190678115838816944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/11/eqclassic-source-organization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/8190678115838816944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/8190678115838816944'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/11/eqclassic-source-organization.html' title='EQClassic - Source Organization'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-35174607699762473</id><published>2011-11-01T22:37:00.000-07:00</published><updated>2011-11-01T23:32:18.694-07:00</updated><title type='text'>EQClassic - Spell System</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin-top:0in;  mso-para-margin-right:0in;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0in;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin-top:0in;  mso-para-margin-right:0in;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0in;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;Roughly three weeks ago, I resumed my work on the spell system. I got distracted for seven days or so when I noticed bards were not functioning correctly, but my recent efforts have been focused around refactoring and finalizing the spell system.&lt;br /&gt;&lt;br /&gt;The spell system is massive and I am confident that it will beat the size of any other system in the source (including NPC AI) 2:1 or more. The time sink in this area is sickening, but I am optimistic that spells will see their completion before the middle of December. The refactoring of the existing system is pretty much done (I occasionally come across something else that needs to be rewritten), so I have been free to move onto finishing our preliminary implementations of spell effects.&lt;br /&gt;&lt;br /&gt;I am currently working on summoned pets and this is an area that will require some serious time. Tazadar started the work for pets back in 2009, but the current implementation is far from complete. Pets have special combat rules, special abilities and special attributes; all of which need to be thoroughly researched. Fortunately, I have invested serious time into a necromancer in the past, so I already posses an intimate understanding of pets. Although I am concerned about implementing pets correctly, I am not concerned about balancing them at this time. Balancing will come much later when the entire spell and combat systems are complete, so that we can look at the damage, mitigation and avoidance tables of all the entities in the game.&lt;br /&gt;&lt;br /&gt;After pets, we have a handful of unimplemented spell types, but they are pretty trivial to implement, such as silence, destroy and translocation anchor. The only other significant time sink with spell effects remaining are illusions. Illusions themselves are pretty strait forward, but my concerns lie in temporary faction adjustments and armor textures. In fact, my favorite bug was the way armor textures were saved between illusions and I will replicate it. Basically, one could put on armor that looked great but would not be worn due to its less than desirable stats, chalk up a monster illusion, put their real armor back on, remove the illusion and they would come out donning the nice looking gear but possessing the stats from their current equipment.&lt;br /&gt;&lt;br /&gt;Anyway, once the spell system sees its completion, I will finally step back into the combat system and ultimately arrive back to where it all started for me--NPC AI. This work will probably keep me busy through February.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-35174607699762473?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/35174607699762473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/11/eqclassic-spell-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/35174607699762473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/35174607699762473'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/11/eqclassic-spell-system.html' title='EQClassic - Spell System'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-9160255287439605820</id><published>2011-10-07T01:36:00.000-07:00</published><updated>2011-10-07T02:36:14.857-07:00</updated><title type='text'>EQClassic - Client Synchronization III</title><content type='html'>I wrapped up client HP, mana, stamina (the yellow bar) and attribute (AC, ATK, STR - CHA, saves and weight) synchronization tonight. I am quite happy with the results and extremely satisfied with the low time impact (I thought this work was going to be a one hundred or more hour investment). I was able to breeze through this work quickly due to Harakiri's aid in formula discovery.&lt;br /&gt;&lt;br /&gt;Just looking back on how things worked is hilarious. The previous approach was to simply force the server's levels of HP, mana and stamina onto the client with absolutely no regard for how the client natively functions. In fact, mana regeneration was roughly ten times faster than it should have been! The only EQEmu-based server I have ever played on is Shards of Dalaya, which also--at the time--forced server levels onto the client**, so it is probably safe to assume that current EQEmu protocol is to do the same.&lt;br /&gt;&lt;br /&gt;This work emphasized the singlemost frustrating aspect of this project. It is difficult for the average player to distinguish a functional server (one that works, but is not accurate) from a great server, because all of the things they are concerned about are handled in the client and database. They do not care that they have too much mitigation AC, that their DoTs are generating too little hate, that their nukes are not resisted as often as they should be or that their client side penalties are not enforced on the server; all that they care about are the things they can see.&lt;br /&gt;&lt;br /&gt;In any case, I will be resuming my work on finishing spell types and then I will transition into revamping my previous attempt at the combat system.&lt;br /&gt;&lt;br /&gt;**How could I tell? Watch the HP regeneration in the inventory window. You will see the client fight the server for the correct amount of current HP, as the server is sending the client HP updates. The client should not be changing its current HP more than once every six seconds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-9160255287439605820?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/9160255287439605820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/10/eqclassic-client-synchronization-iii.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/9160255287439605820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/9160255287439605820'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/10/eqclassic-client-synchronization-iii.html' title='EQClassic - Client Synchronization III'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-1612493056021513157</id><published>2011-09-30T23:46:00.000-07:00</published><updated>2011-09-30T23:56:13.110-07:00</updated><title type='text'>EQClassic - Client Synchronization II</title><content type='html'>The HP synchronization is just about finished and I am pretty satisfied with the results. I am also just about finished with synchronizing the client's mana with the server, but I am hoping to find a new client routine to update its mana by some given amount instead of sending the client updates such as, "Hey, your new amount of mana is XXXX." The client refuses to update its own mana when a spell is complete, so it unfortunately seems to rely on the server for hard number updates.&lt;br /&gt;&lt;br /&gt;Beyond these two attributes, I will also be looking into synchronizing AC, ATK, STR through CHA, saves and weight. I am not at all excited about the latter because weight has numerous effects within the client, such as affecting AGI (when overweight) and a monk's AC. This project may end up taking quite some time, but I am hoping to return to finish the remaining spell types soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-1612493056021513157?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/1612493056021513157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/09/eqclassic-client-synchronization-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/1612493056021513157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/1612493056021513157'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/09/eqclassic-client-synchronization-ii.html' title='EQClassic - Client Synchronization II'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-4880097090284117918</id><published>2011-09-22T12:24:00.000-07:00</published><updated>2011-09-22T14:39:54.132-07:00</updated><title type='text'>EQClassic - Client HP Synchronization</title><content type='html'>We have always had major issues with synchronizing the client's HP with the server and I have recently come to realize that--due to the sitting regeneration bonus--true synchronization is not possible. In the past, the server was responsible for keeping track of the client's HP, directly updating the client's HP and triggering the client's death routine, but this approach was problematic as the client's HP may have been well into the 100s when the server instructed it to die. Fortunately for us, the client sends the server its current HP level on each tic. This information was ignored in the past, as it seemed too convenient for someone to abuse, but it is entirely necessary for clients to function properly (the server will now have a rough estimate of client HP, which will be compared to the HP level sent in each update to detect any foul play).&lt;br /&gt;&lt;br /&gt;The task at hand is to prevent the server from ever updating the client's HP directly (instructing the client to change their HP &lt;span style="font-weight: bold;"&gt;by&lt;/span&gt; some given amount instead of &lt;span style="font-weight: bold;"&gt;to&lt;/span&gt; some given amount, e.g., "You now have 250 less HP than before" vs. "You now have 1250 instead of 1500 HP") and to rely on the client to tell the server when they have perished. Shaman who love to cannibalize themselves down into the purple range will thank us!&lt;br /&gt;&lt;br /&gt;Unfortunately, the client does not share the same level of care for its mana as it does its HP. If you played a caster on live (even up through the change that displayed your amount of mana in the UI), you should then be aware of the very obnoxious bug where it appeared you had sufficient mana to cast a spell, but the server disagreed &lt;span style="font-weight: bold;"&gt;and&lt;/span&gt; instructed the client to remove the mana you thought you had. The good news is that the client knows if it has the correct amount of mana to cast a spell, so perhaps it is possible to approach mana the same way we will now approach HP. This bug rarely affected casual players, but for those who sit on each and every tic to gain the meditation bonus, this was a common, annoying occurrence.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-4880097090284117918?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/4880097090284117918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/09/eqclassic-client-hp-synchronization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/4880097090284117918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/4880097090284117918'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/09/eqclassic-client-hp-synchronization.html' title='EQClassic - Client HP Synchronization'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-2864284324334552676</id><published>2011-09-06T11:11:00.000-07:00</published><updated>2011-09-06T11:39:29.251-07:00</updated><title type='text'>EQClassic - Zone Geometry Mapping III</title><content type='html'>As it turns out, our new collision detection system does not offer any speedup** over the old, as EQEmu's segment / triangle collision routine is virtually the same as mine. Admittedly, I did not investigate their solution--I just assumed it was terrible. I am strictly speaking about the mathematics behind their collision detection and not the entire line of sight system, which has been greatly improved. There exist several opportunities for optimization, but it is not of interest at this time considering the average passive line of sight check is less than two microseconds (1.3E-6 seconds).&lt;br /&gt;&lt;br /&gt;I am going to put the remainder of the zone explorer program (node placement) on hold, as this would require a significant investment in time. I am not convinced that it would as beneficial as its cost would suggest. I may add support to the zone explorer to read in node data and display it, though.&lt;br /&gt;&lt;br /&gt;I believe I will be returning to spells (these are almost done) and then heading back to NPCs to rewrite the entire AI decision tree.&lt;br /&gt;&lt;br /&gt;**With regards to the collision detection algorithm, but the new line of sight system is roughly three times faster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-2864284324334552676?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/2864284324334552676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/09/eqclassic-zone-geometry-mapping-iii.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/2864284324334552676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/2864284324334552676'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/09/eqclassic-zone-geometry-mapping-iii.html' title='EQClassic - Zone Geometry Mapping III'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-455604584520691668</id><published>2011-08-31T09:21:00.000-07:00</published><updated>2011-08-31T09:38:02.046-07:00</updated><title type='text'>EQClassic - Zone Geometry Mapping II</title><content type='html'>I found a research paper today on an efficient vector tracing algorithm that does not require stepping to determine collisions with geometry in three dimensional space. Stepping is a technique which slowly extends a line from the origin point towards the destination, continuously gathering the list of nearby geometry and calculating the possibility of sharing the same physical space (forming a collision) with any of said geometry at the line's current location. It is a long and redundant process and the only way to ensure some manageable degree of accuracy is to keep the stepping increments small, thus, as the vector grows in size, so does the computational cost.&lt;br /&gt;&lt;br /&gt;I implemented the proposed algorithm along with a visualization component in my zone explorer program this morning and it is obscenely fast and remarkably accurate. The most absurd part is that I am not even utilizing a tree to partition the zone's geometry list! The algorithm is so fast that it scans all 77,000 triangles in the Field of Bone for collisions before the zone explorer program drops a single frame. It will only get faster as I implement an octree to store the zone's geometry data. I cannot wait to benchmark this algorithm against our current line of sight solution (EQEMU's).&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-455604584520691668?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/455604584520691668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-zone-geometry-mapping-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/455604584520691668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/455604584520691668'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-zone-geometry-mapping-ii.html' title='EQClassic - Zone Geometry Mapping II'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-2071181935136680949</id><published>2011-08-24T17:48:00.000-07:00</published><updated>2011-08-24T17:55:57.684-07:00</updated><title type='text'>EQClassic - Zone Geometry Mapping</title><content type='html'>I was reminded the other day that our zone geometry files are sometimes incomplete and contain holes (missing data). The new line of sight system I am envisioning (one loosely based on the watersheding technique) requires a complete zone geometry file. So, before I jump into implementing a new LoS system, I need to verify that our geometry files are indeed complete, which requires building a Direct3D application to load, view and patch a zone's geometry data.&lt;br /&gt;&lt;br /&gt;I have never written a D3D application before and it seems to have a bit of a learning curve, but I am excited to learn something new. I am hoping that even if our zone geometry files are complete, I can expand this application to support laying pathing nodes and roam boxes.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-2071181935136680949?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/2071181935136680949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-zone-geometry-mapping.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/2071181935136680949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/2071181935136680949'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-zone-geometry-mapping.html' title='EQClassic - Zone Geometry Mapping'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-5198105356735104013</id><published>2011-08-22T18:17:00.000-07:00</published><updated>2011-08-22T18:20:18.299-07:00</updated><title type='text'>EQClassic - Mob Position Updates II</title><content type='html'>NPCs are now able to swim in the water, but the solution had nothing to do with proper movement deltas in spawn position updates. The solution required a special gravitational flag in the spawn packet PCs receive when an NPC first appears in the zone. For whatever reason, when a mob is a PC, this special flag is automatically assumed, yet requires definition when the spawn is an NPC.&lt;br /&gt;&lt;br /&gt;Oh, well--problem solved! Back to working on the line of sight revamp.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-5198105356735104013?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/5198105356735104013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-mob-position-updates-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/5198105356735104013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/5198105356735104013'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-mob-position-updates-ii.html' title='EQClassic - Mob Position Updates II'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-9150712018747147204</id><published>2011-08-20T05:30:00.000-07:00</published><updated>2011-08-20T06:07:46.749-07:00</updated><title type='text'>EQClassic - Mob Position Updates</title><content type='html'>Harakiri brought something to my attention the other day reminding me that our spawn position update routine is incomplete. I feel like we are pretty close to finalizing this area so it has stolen my attention from the line of sight revamp for now.&lt;br /&gt;&lt;br /&gt;When the server wishes to let PCs know that a mob is on the move, the server sends out a  spawn position update packet, which describes a mob's physical location in space (x, y and z coordinates), cardinal heading, velocity and deltas (x, y, z and heading). The deltas were not previously utilized for NPC movement because it appeared they were not necessary. The client exports the same packet with populated delta values to the server when the player moves, so we simply just pass this packet onto other clients in the zone, as we assumed the delta values were reserved for special PC movements (strafing, turning, jumping, etc.).&lt;br /&gt;&lt;br /&gt;It did not occur to me until yesterday that the deltas are most likely responsible for describing a mob's movement in environments that affect velocity (e.g., ice and water). Surely enough, kiting an NPC in water produced a staggered path as the NPC was teleporting between locations as the client received additional updates. Introducing a second PC into the water produced a smooth, fluid path, which strongly suggests that in order to get NPCs to follow suit, we need to figure out how to calculate the delta values.&lt;br /&gt;&lt;br /&gt;Early attempts to assign known, working delta values (those derived from PC movements) to NPC updates were unsuccessful. In fact, the only way I got NPCs to swim fluidly underwater is to assign them insanely high velocities, nearly twenty-fold their original. That may have been a decent fix if it were not for velocities capping at 128, which means faster NPCs (e.g., Shadow Men) would not be able to approach their true velocities under water.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-9150712018747147204?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/9150712018747147204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-mob-position-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/9150712018747147204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/9150712018747147204'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-mob-position-updates.html' title='EQClassic - Mob Position Updates'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-8471034114187939130</id><published>2011-08-06T10:02:00.000-07:00</published><updated>2011-08-06T11:16:01.437-07:00</updated><title type='text'>EQClassic - Line of Sight</title><content type='html'>I have resumed working on EQC again, but my work right now is purely  conceptual (I will not be producing source revisions). More  specifically, I am rethinking our line of sight (LoS) system and I am  also investigating the possibility of preprocessing a zone's LoS data. I  am not terribly optimistic about my success in the latter, as the  number of possible line of sight calculations for a typical zone is  roughly 1.6E18, but if I can successfully collapse a zone into  two-dimensional space, then there exists some measurable chance of  success.&lt;br /&gt;&lt;br /&gt;Regardless if preprocessing the LoS data is feasible or not (I am  strongly leaning towards 'not'), my primary interest is replacing the  core of our LoS system. Right now, our LoS system is based on  EQEmulator's approach, which steps along a vector between two points and  checks for a collision with the zone's geometry data. This approach is  functional, but it is slow and I am not convinced that it is precise  enough to be reliable. I believe a more elegant, efficient solution  exists.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-8471034114187939130?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/8471034114187939130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-line-of-sight.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/8471034114187939130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/8471034114187939130'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/08/eqclassic-line-of-sight.html' title='EQClassic - Line of Sight'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-688111700560694693</id><published>2011-07-27T13:47:00.000-07:00</published><updated>2011-08-06T11:16:28.025-07:00</updated><title type='text'>EQClassic - Website Makeover</title><content type='html'>I had some spotty, free time today, so I decided to catch up on a long list of revamps that the EQC website desperately needed. Updates include unifying of the overall headers and footers for each page; redesigning the roadmap and statistics pages to utilize accordion-style tabs; updating the roadmap with new content; creating a custom 404 page; redirecting banned IP ranges to the banned HTML page; utilizing remote auto-completion for the auditor registration system's username field; and general cleanup and reorganization on each page.&lt;br /&gt;&lt;br /&gt;Man, I hate HTML!&lt;br /&gt;&lt;br /&gt;Edit: I was also reminded today how slow the website is. I think it is time for a new host!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-688111700560694693?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/688111700560694693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/07/eqc-website-makeover.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/688111700560694693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/688111700560694693'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/07/eqc-website-makeover.html' title='EQClassic - Website Makeover'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7004436587652389306.post-939213087199446519</id><published>2011-07-15T20:59:00.000-07:00</published><updated>2011-07-15T21:27:29.352-07:00</updated><title type='text'>My Status</title><content type='html'>I promise I will do my best to keep this blog updated as much as possible. I received a number of requests to blog my status over the years and I really never thought it my kind of thing, but I feel it is appropriate now, especially for those following my EQClassic project.&lt;br /&gt;&lt;br /&gt;Speaking of which, I made an announcement several weeks back about my return to EQC, which was already delayed once by the process of moving out of my prior residence. A few days ago--just as I was ready to get back into the swing of things--I received word from a company about contracting / hiring me to rewrite their entire internet-marketing reporting dashboard. They were also very interested in a dormant software project of mine, which is an internet-marketing solution targeted specifically at car dealerships. This company wants to get things in motion on August 1st.&lt;br /&gt;&lt;br /&gt;Prior to August 1st, I will be out of town for a week at a bioinformatics conference for which I am presenting two papers. Also, I am expected to learn any MVC-based framework of my choice before we get the ball rolling, plus I am currently rewriting and refactoring portions of my car dealership software.&lt;br /&gt;&lt;br /&gt;The time I thought I was going to have to dedicated towards EQC has slipped through my hands again; however, once I am deep in this work (I suspect this will be around the first week of August), I am going to schedule time for EQC on a weekly basis that will only be invaded by emergencies. Even at my busiest, I would still like to get in at least ten hours of EQC related work per week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7004436587652389306-939213087199446519?l=yeahlight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yeahlight.blogspot.com/feeds/939213087199446519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yeahlight.blogspot.com/2011/07/my-status.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/939213087199446519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7004436587652389306/posts/default/939213087199446519'/><link rel='alternate' type='text/html' href='http://yeahlight.blogspot.com/2011/07/my-status.html' title='My Status'/><author><name>Yeahlight</name><uri>http://www.blogger.com/profile/12024839041838213116</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
