SAX.setDocumentLocator()
SAX.startDocument()
SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, )
SAX.comment( saved from url=(0025)http://bp6.gamesquad.net/ )
SAX.comment( BEGIN Naviscope Javascript )
SAX.startElement(html)
SAX.startElement(head)
SAX.startElement(title)
SAX.characters(BP6.com #1 online resource for, 47)
SAX.endElement(title)
SAX.endElement(head)
SAX.startElement(body)
SAX.startElement(p)
SAX.characters(
, 2)
SAX.startElement(script, language='javascript')
SAX.characters(
          NS_ActualOpen=wind, 199)
SAX.endElement(script)
SAX.characters(
, 2)
SAX.comment( END Naviscope Javascript )
SAX.error: Misplaced DOCTYPE declaration
SAX.internalSubset(HTML, -//W3C//DTD HTML 3.2//EN, )
SAX.comment(last modified on Tuesday, February 22, 2000 11:47 PM )
SAX.characters(
, 2)
SAX.startElement(meta, content='text/html;CHARSET=iso-8859-1', http-equiv='Content-Type')
SAX.endElement(meta)
SAX.characters(
, 2)
SAX.startElement(meta, content='Tim', name='Author')
SAX.endElement(meta)
SAX.characters(
, 2)
SAX.startElement(style, type='text/css')
SAX.characters(A.nav {
	COLOR: #003399; TEXT, 115)
SAX.endElement(style)
SAX.characters(

, 4)
SAX.startElement(script, language='JavaScript')
SAX.characters(
, 1)
SAX.comment( Idea by:  Nic Wolfe (Nic@TimelapseProductions.com) )
SAX.characters(
, 1)
SAX.comment( Web URL:  http://fineline.xs.mw )
SAX.characters(

, 2)
SAX.comment( This script and many more are available free online at )
SAX.characters(
, 1)
SAX.comment( The JavaScript Source!! http://javascript.internet.com )
SAX.characters(

, 2)
SAX.comment( Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=145, height=250');");
}
// End )
SAX.characters(
, 1)
SAX.endElement(script)
SAX.characters(

, 4)
SAX.startElement(meta, content='MSHTML 5.00.3103.1000', name='GENERATOR')
SAX.endElement(meta)
SAX.error: Unexpected end tag : head
SAX.characters(
, 2)
SAX.endElement(p)
SAX.startElement(body, aLink='red', bgColor='black', link='red', text='white', vLink='red')
SAX.startElement(p)
SAX.characters(
, 2)
SAX.endElement(p)
SAX.startElement(p)
SAX.characters(
, 2)
SAX.endElement(p)
SAX.startElement(div, align='center')
SAX.characters(
, 2)
SAX.startElement(table, border='0', cellPadding='0', cellSpacing='0', width='80%')
SAX.characters(
  , 4)
SAX.startElement(tbody)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, vAlign='top', width='31')
SAX.startElement(a, href='http://bp6.gamesquad.net/')
SAX.startElement(img, align='bottom', border='0', height='74', src='doc3_files/logo.gif', width='252')
SAX.endElement(img)
SAX.endElement(a)
SAX.endElement(td)
SAX.characters(
    , 6)
SAX.startElement(td, align='left', bgColor='#000000')
SAX.startElement(img, height='15', src='doc3_files/spacer.gif', width='15')
SAX.endElement(img)
SAX.comment( START GAMESQUAD.NET IFRAME RICH MEDIA CODE )
SAX.characters( , 1)
SAX.comment( © 2000 GameSquad.net All Rights Reserved. )
SAX.startElement(iframe, border='0', frameBorder='no', height='60', marginHeight='0', marginWidth='0', scrolling='no', src='doc3_files/adcycle.htm', width='468')
SAX.characters(
, 1)
SAX.error: htmlParseEntityRef: expecting ';'
SAX.startElement(a, href='http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&id=1', target='_top')
SAX.error: htmlParseEntityRef: expecting ';'
SAX.error: htmlParseEntityRef: expecting ';'
SAX.startElement(img, src='http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media=1&id=1', width='468', height='60', border='0', ALT='GSN ROS Ad')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters(
, 1)
SAX.endElement(iframe)
SAX.comment( END GAMESQUAD.NET IFRAME RICH MEDIA CODE )
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, height='15', src='doc3_files/spacer.gif', width='400')
SAX.endElement(img)
SAX.characters( , 1)
SAX.endElement(td)
SAX.endElement(tr)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, bgColor='#003399', colSpan='2')
SAX.characters(
      , 8)
SAX.startElement(p, align='right')
SAX.startElement(img, align='right', border='0', height='18', hspace='0', src='doc3_files/trcorner.gif', width='20')
SAX.endElement(img)
SAX.startElement(img, align='left', border='0', height='18', hspace='0', src='doc3_files/tlcorner.gif', width='20')
SAX.endElement(img)
SAX.startElement(font, face='Verdana', size='2')
SAX.characters(Monday, July 31st, 2000, 23)
SAX.endElement(font)
SAX.characters( , 1)
SAX.endElement(p)
SAX.endElement(td)
SAX.endElement(tr)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, colSpan='2')
SAX.characters(
      , 8)
SAX.startElement(table, bgColor='#003399', border='0', cellPadding='0', cellSpacing='4', width='100%')
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, bgColor='#666666', width='100%')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.characters(
            , 14)
SAX.startElement(p)
SAX.characters(
            , 14)
SAX.endElement(p)
SAX.startElement(table, bgColor='black', border='0', cellPadding='0', cellSpacing='1', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td, background='doc3_files/hscan.gif', bgColor='#666666', width='100%')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='738')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
                  , 20)
SAX.startElement(center)
SAX.characters(
                  , 20)
SAX.startElement(table, border='0', cellPadding='2', cellSpacing='0', width='91%')
SAX.characters(
                    , 22)
SAX.startElement(tbody)
SAX.characters(
                    , 22)
SAX.startElement(tr)
SAX.characters(
                      , 24)
SAX.startElement(td, vAlign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/specs.phtml')
SAX.startElement(img, align='bottom', alt='Abit BP6 Motherboard specification and information.', border='0', height='45', src='doc3_files/bp6icon.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/specs.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Specs, 9)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                      , 25)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, vAlign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/bxcool.phtml')
SAX.startElement(img, align='bottom', alt='How to cool the BX Chipset on your BP6.', border='0', height='45', src='doc3_files/bxcool.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BX Cooling, 10)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                        , 27)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, vAlign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml')
SAX.startElement(img, align='bottom', alt='The U;timate Gaming Contest - Coming Soon!', border='0', height='45', src='doc3_files/ugmcontest.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(UGM Contest, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                        , 27)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, vAlign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(img, align='bottom', alt='Cooling & Heatsink review for the BP6.', border='0', height='45', src='doc3_files/alpha.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Heatsinks, 9)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                      , 25)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, vAlign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/101.phtml')
SAX.startElement(img, align='bottom', alt='BP6 101 - Class is now in session. Welcome newbies!', border='0', height='45', src='doc3_files/bp6101.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/101.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 101, 7)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                      , 25)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, vAlign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/win2k_install.phtml')
SAX.startElement(img, align='bottom', alt='Install guide for installing Windows 2000 on the BP6 ', border='0', height='45', src='doc3_files/win2kht.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/win2k_install.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Win2k Install, 13)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                        , 27)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, vAlign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://www.gentus.com/')
SAX.error: error parsing attribute name
SAX.error: htmlParseStartTag: problem parsing attributes
SAX.startElement(img, align='bottom', alt='Taking a first look at the Abit Linux release called ', border='0', height='45', src='doc3_files/gentusbox.gif', width='70', Gentus)
SAX.error: Couldn't find end of Start Tag img
SAX.characters(?.?>, 4)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.gentus.com/')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Gentus, 6)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                  , 21)
SAX.endElement(p)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(center)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(center)
SAX.error: Unexpected end tag : p
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.characters(
, 2)
SAX.startElement(table, bgColor='#003399', border='0', cellSpacing='6', width='80%')
SAX.characters(
  , 4)
SAX.startElement(tbody)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, bgColor='black', vAlign='top', width='10%')
SAX.characters(
      , 8)
SAX.startElement(table, border='0', cellPadding='3', cellSpacing='0', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, width='100%')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='111')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(REVIEWS, 7)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, face='Verdana', size='2')
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bp6reviews.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Reviews, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/h2o.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Watercooling, 16)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bxcool.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BX Chipset Cooling, 18)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/benchmark.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Benchmarks, 10)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bp6fsb.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6FSB Utility, 14)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/powerleap.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(PowerLeap NEO S370, 18)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/seti.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(SETI on the BP6, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/orbs.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Golden Orbs I, 13)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/orbs/orbs2.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Golden Orbs II, 14)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/Q6fix.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(VTT Solution, 12)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(NAVIGATE, 8)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters( 
            , 15)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://www.bp6.com/')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(News, 4)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/chat.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Online Text Chat, 16)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='javascript:popUp('chat_popup.htm')')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Voice Chat, 10)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://216.247.220.192/Forum')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Messageboard, 12)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/cooling')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Temp. Converter, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Picture Gallery, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bios.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Latest BIOS, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/files/')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Drivers , 8)
SAX.characters(&, 1)
SAX.characters( Files, 6)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(UGM of the week, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Contest, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(OTHER STUFF, 11)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters( 

            , 17)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/whois.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Who is Tim?, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='mailto:tim@bp6.com')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Contact BP6.com, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Affiliates Section, 18)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Sponsors Section , 17)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(a, href='http://bp6.gamesquad.net/links.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Links, 5)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(PC SPECIALS, 11)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters( 
            , 15)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/specials.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Vendor 
            Specials, 29)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.error: Unexpected end tag : font
SAX.error: Unexpected end tag : a
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(Pic of the day, 14)
SAX.endElement(font)
SAX.endElement(b)
SAX.characters(
            , 14)
SAX.startElement(hr)
SAX.endElement(hr)
SAX.characters(
             
            , 29)
SAX.startElement(center)
SAX.characters(
            , 14)
SAX.startElement(p, align='center')
SAX.startElement(font, face='Verdana, Arial, Helvetica', size='1')
SAX.startElement(a, href='http://bp6.gamesquad.net/cgi-bin/schlabo/potd.pl')
SAX.startElement(img, alt='No picture is available for today.', border='0', src='doc3_files/potd_na_110x83.gif')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters( , 1)
SAX.endElement(font)
SAX.endElement(p)
SAX.endElement(center)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.endElement(center)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<A HREF="code:javascript:ID_FTPWebView.InvokeHelp()"><FONT SIZE="1" COLOR="white" FACE="Verdana">FTP Help</FONT></A>)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(td)
SAX.characters(
    , 6)
SAX.startElement(td, bgColor='white', vAlign='top', width='80%')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='490')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
      , 8)
SAX.startElement(center)
SAX.characters(
      , 8)
SAX.startElement(p)
SAX.characters(
      , 8)
SAX.endElement(p)
SAX.startElement(table, bgColor='white', border='0', cellPadding='10', cellSpacing='0', height='100%', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, bgColor='white', vAlign='top', width='100%')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.startElement(a, href='http://www.encounter2001.com/', target='_blank')
SAX.startElement(img, border='0', height='60', src='doc3_files/banner2.gif', width='468')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.endElement(center)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='news_top')
SAX.endElement(a)
SAX.startElement(font, color='#003366', face='verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Headlines, 9)
SAX.endElement(b)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem965012956,78924,')
SAX.characters(Chat 
            with ABIT -, 41)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964766837,26344,')
SAX.characters(Fixed 
            wallpaper , 43)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964762841,25865,')
SAX.characters(Seti 
            update - 10, 39)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964732235,45502,')
SAX.characters(Judge 
            gives Naps, 57)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964713289,83675,')
SAX.characters(Ram 
            Sinks.. more, 83)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964671589,7831,')
SAX.characters(is 
            it [H]ard? - , 40)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964644047,60218,')
SAX.characters(WiLd 
            CaSe!! - 1:, 38)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964631110,84122,')
SAX.characters(What 
            the heck is, 58)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964587833,74573,')
SAX.characters(HELLO 
            EVERYONE!!, 45)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964429577,13375,')
SAX.characters(BP6 
            Q3 server up, 57)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment( NP v3.7.5 )
SAX.startElement(a, name='newsitem965012956,78924,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Sunday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Chat with 
            ABIT, 28)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 8:09PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/965012956,78924,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(I, 1)
SAX.characters(’, 3)
SAX.characters(m slacking a little. All game , 83)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Wallpaper update: I got 
    , 130)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.startElement(a, href='http://fullon3d.com/chat/abit/', target='3d')
SAX.characters(Fullon3d had a live chat with , 69)
SAX.endElement(a)
SAX.endElement(b)
SAX.characters(Submitted by: MJS, 17)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Here, 4)
SAX.characters(’, 3)
SAX.characters(s a little clip:, 16)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([Falcon] 
            BP6-2??, 30)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([EricBoeing] We already have a, 75)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([EricBoeing] but it's OEM only, 30)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([EricBoeing] the full ATX 
  , 74)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964766837,26344,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Thursday, 
                  , 43)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Fixed 
            wallpaper, 29)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 11:47PM 
            PDT, 28)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964766837,26344,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(5 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.startElement(b)
SAX.characters(Get them now!!, 14)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(This is a 
            fixed , 106)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, height='180', src='doc3_files/3-800.jpg', width='240')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(It's still the Intels Inside o, 104)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Thanks to Matt for 
         , 57)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I would also like to thank Kev, 133)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(And 1 more person, THANK YOU T, 90)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(If you need a weird resolution, 59)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(e-mail, 6)
SAX.endElement(a)
SAX.characters( me requesting 
            f, 37)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(If you have ideas or more erro, 47)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(mailto:Holodeck2@home.com, 25)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='doc3_files/3-800.jpg', target='800')
SAX.characters(800x600 , 8)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1024.jpg', target='800')
SAX.characters(1024x768 , 9)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1152.jpg', target='800')
SAX.characters(1152x864 , 9)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1280x1024.jpg', target='800')
SAX.characters(1280x1024 , 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1600.jpg', target='800')
SAX.characters(1600x1200 , 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(p)
SAX.characters(Enjoy :-), 9)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.endElement(p)
SAX.startElement(p)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(Holodeck2,, 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([H]ard at 
            work o, 65)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(p)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964762841,25865,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Seti update, 11)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 10:40PM 
            PDT, 28)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964762841,25865,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(5 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.startElement(img, height='54', src='doc3_files/setiupdate.jpg', width='400')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(You like the 
            pic, 31)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Bp6 User Group Update:, 22)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Completed 61531 
            , 37)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.characters(#168 on Top 200 All Groups, 26)
SAX.endElement(b)
SAX.characters( (Going to pass CLRC in 
    , 49)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.characters(#74 on Top 200 Teams, 20)
SAX.endElement(b)
SAX.characters( (Gaining fast on 
          , 42)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(We are flying though at the sp, 82)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Good job everyone!!, 19)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Check this page at 
         , 67)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964732235,45502,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Judge gives Napster the 
    , 44)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 2:10PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964732235,45502,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Good afternoon for everyone li, 135)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I woke up and thought about po, 488)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.msnbc.com/news/437532.asp', target='Judge vs Napster')
SAX.characters(Judge shuts Napster down
    , 38)
SAX.startElement(p)
SAX.startElement(img, height='143', src='doc3_files/669915.jpg', width='200')
SAX.endElement(img)
SAX.endElement(p)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Check out the Goofy guy in the, 35)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(He's Sean 
            Fannin, 52)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Got news?? , 11)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(mailto:Holodeck2@home.com, 25)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964713289,83675,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Ram Sinks.. more cooling for s, 56)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 8:54AM PDT, 13)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964713289,83675,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Need some cooling for your Vid, 106)
SAX.startElement(a, href='http://www.overclockershideout.com/RamSinks.html', target='_BLANK')
SAX.characters(Overclockers Hiedout Ram Sinks, 30)
SAX.endElement(a)
SAX.characters( They just notified 
        , 57)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, border='1', src='doc3_files/ramsink.jpg')
SAX.endElement(img)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964671589,7831,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Wednesday, July 26, 
        , 38)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(is it 
            [H]ard?, 27)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 9:19PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964671589,7831,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Big heatsinks are good, very g, 71)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(You can never can have a too b, 99)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, height='173', src='doc3_files/voodooside2.jpg', width='230')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(My overclocked 
            V, 74)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Peltier and 
            wate, 50)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters((if you pry off the heatsink y, 66)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(it was originally posted on , 28)
SAX.startElement(a, href='http://www.hardocp.com/')
SAX.characters([H]ardOCP , 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I, 1)
SAX.characters(’, 3)
SAX.characters(m not only a 
            BP6, 55)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964644047,60218,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(WiLd CaSe!!, 11)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 1:40PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964644047,60218,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(8 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Now this person really knows h, 70)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Addin an 18" Fan!! WOW!!, 24)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.envador.com/Photos/PVCII/', target='_blank')
SAX.startElement(img, src='doc3_files/TN_OpenedUp1.jpg')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Click to go to his 
         , 38)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964631110,84122,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(What the heck is a 
         , 44)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 10:05AM 
            PDT, 28)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964631110,84122,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(6 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(This is for all you people who, 78)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The quest fo the Perfect 
   , 46)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.tweakmax.com/html/peltier/peltier-1.cfm', target='_blank')
SAX.startElement(img, src='doc3_files/peltier.jpg')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Thanks to 
            , 24)
SAX.startElement(a, href='http://www.tweakmax.com/', target='_blank')
SAX.characters(TweakMax.com, 12)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Note: Today morning when I wok, 397)
SAX.startElement(img, src='doc3_files/smile.gif')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I'm not angry at anyone... 
 , 71)
SAX.startElement(img, src='doc3_files/tongue.gif')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964587833,74573,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Tuesday, 
                  J, 42)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(HELLO 
            EVERYONE!!, 31)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 10:03PM 
            PDT, 28)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Hello 
            everyone, , 47)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Who is this Holodeck2 person , 66)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I, 1)
SAX.characters(’, 3)
SAX.characters(m a regular on the bp6 message, 97)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I, 1)
SAX.characters(’, 3)
SAX.characters(m the 
            self-procl, 85)
SAX.characters(’, 3)
SAX.characters(ve 
            probably alre, 68)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(My computer 
            is a, 200)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Any Questions or comments, you, 98)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Ways to contact 
            , 33)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(E-mail: , 8)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(Holodeck2@home.com, 18)
SAX.endElement(a)
SAX.characters( (All E-mails 
            wi, 82)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(When you 
            write m, 163)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.aol.com/aim')
SAX.characters(AIM: , 5)
SAX.endElement(a)
SAX.characters(Holodeck2 (instant response 
, 46)
SAX.characters(’, 3)
SAX.characters(m in front of my comp and not , 53)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.icq.com/download')
SAX.characters(ICQ: , 5)
SAX.endElement(a)
SAX.characters(82640218 (rarely 
           , 34)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(P.S. If someone named , 22)
SAX.characters(“, 3)
SAX.characters(Digital Vortex, 14)
SAX.characters(”, 3)
SAX.characters( on either Quake 3 
         , 51)
SAX.characters(’, 3)
SAX.characters(s probably me. ;-), 18)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964429577,13375,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Monday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(BP6 Q3 server up and 
       , 44)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 2:06AM PDT, 13)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964429577,13375,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(3 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Setup a Q3 server for anyone w, 355)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters((BTW- 
            there are , 68)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964425184,95812,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(BIOS Savior to the 
         , 43)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 12:53AM PDT, 14)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964425184,95812,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(2 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Do you sweat during the BIOS f, 167)
SAX.startElement(b)
SAX.characters(RD1 BIOS Savior, 15)
SAX.endElement(b)
SAX.characters(" and it 
            plugs i, 520)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.ioss.com.tw/eg/rd1/RD1info0004.PDF', target='_NEW')
SAX.characters(Manufacturers Brochure, 22)
SAX.endElement(a)
SAX.characters( (PDF Format), 13)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://192.216.185.10/mwave/doc/A06950.html', target='_BLANK"')
SAX.characters(Another info page, 17)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://192.216.185.10/mwave/ProdMB-AC-MW.hmx?UID=&CID=&updepts=MB&DNAME=%3Cb%3EMotherboards%3C%2Fb%3E&Back=ProdMB-AC-MW.hmx?', target='_BLANK')
SAX.characters(Available for about $20, 23)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, src='doc3_files/rd1.jpg')
SAX.endElement(img)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963875853,12731,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Monday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(How To 
            Overclock, 30)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 4:17PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963875853,12731,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(3 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(For those of you who are new t, 209)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://netkills.qgl.org/a_oc_comp.shtml', target='_blank')
SAX.characters(How To Overclock, 16)
SAX.endElement(a)
SAX.characters( , 1)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963875485,23353,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(The Cardcooler 
            X, 31)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 4:11PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963875485,23353,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(1 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Wow! I am impressed! Nevermind, 98)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(i)
SAX.characters(Even if your 
            not, 345)
SAX.endElement(i)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Check this out!, 15)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml', target='_blank')
SAX.characters(http://www.brokenpixel.com/art, 65)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963859982,88982,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters('Nerd 
            Inside', 27)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 11:53AM 
            PDT, 28)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963859982,88982,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(1 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(We all need to have some fun , 181)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(div, align='center')
SAX.startElement(a, href='http://www.nerdgear.com/', target='_blank')
SAX.startElement(img, border='0', src='doc3_files/nerdinside.gif')
SAX.endElement(img)
SAX.endElement(a)
SAX.endElement(div)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963819796,9688,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Dual PSU Wiring diagram... (pr, 81)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 12:43AM PDT, 14)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963819796,9688,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(11 comments, 11)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(When is comes to overclocking , 848)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(View Diagram 1 , 15)
SAX.startElement(a, href='http://bp6.gamesquad.net/images/wiring.jpg', target='_BLANK')
SAX.characters(here, 4)
SAX.endElement(a)
SAX.characters(., 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(View Diagram 2 , 15)
SAX.startElement(a, href='http://bp6.gamesquad.net/images/psu2.gif', target='_BLANK')
SAX.characters(here, 4)
SAX.endElement(a)
SAX.characters(., 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I used Tap-In Squeeze Connecto, 150)
SAX.startElement(a, href='http://www.radioshack.com/ProductCatalog/ProductDetail/Index/1,2098,,00.html?SKUString1=64&SKUString2=3053', target='_blank')
SAX.characters(click here, 10)
SAX.endElement(a)
SAX.characters(., 1)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963766655,78511,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Sunday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(RAM Overclocking? 
          , 39)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 9:57AM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963766655,78511,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(3 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(I know we're pretty big overcl, 636)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Extreme Overclocking has teste, 145)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(i)
SAX.characters(Well, the guys at Extreme Over, 344)
SAX.endElement(i)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.extremeoverclocking.com/reviews/memory/ram_roundup_1.html', target='_blank')
SAX.characters(Cooked RAM... Yummie, 20)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The 
            ÐÐ., 23)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963764236,76720,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(CPU 
            Guide, 23)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 9:17AM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963764236,76720,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(A follow up on the 'Weekly CPU, 203)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(li)
SAX.startElement(a, href='http://www6.tomshardware.com/howto/00q2/000412/index.html', target='_blank')
SAX.characters(http://www6.tomshardware.com/h, 57)
SAX.endElement(a)
SAX.endElement(li)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963685749,28290,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Saturday, 
                  , 43)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Weekly CPU 
            Price, 31)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 11:29AM 
            PDT, 28)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963685749,28290,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(2 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Wow, found this very useful! W, 104)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.sharkyextreme.com/hardware/weekly_cpu/', target='_blank')
SAX.characters(Click Here., 11)
SAX.endElement(a)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Thanks Sharky 
            Ex, 36)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963679881,35277,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Fast Wallpapers, 15)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 9:51AM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963679881,35277,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(FAST-MHz has released some wal, 53)
SAX.startElement(a, href='http://64.29.18.111/wallpaper/index.html', target='_blank')
SAX.characters(Click here, 10)
SAX.endElement(a)
SAX.characters( to view them. They come in si, 241)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(In other news, we want to 
  , 135)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml', target='_blank')
SAX.characters(Picture Gallery, 15)
SAX.endElement(a)
SAX.characters(. To help us out, you can send, 103)
SAX.startElement(a, href='mailto:thedaredevil@bp6.com')
SAX.characters(thedaredevil@bp6.com, 20)
SAX.endElement(a)
SAX.characters(. (The 
            topic bei, 186)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Okay, that's all for now., 25)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The 
            ÐÐ., 23)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963619505,3764,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgColor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Friday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Hey 
            There!, 24)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 5:05PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters( , 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963619505,3764,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(7 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters( , 2)
SAX.characters(|, 1)
SAX.characters( , 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Hey guys, just wanted to intro, 312)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(My e-mail address is , 21)
SAX.startElement(a, href='mailto:killz@i82hq.com')
SAX.characters(killz@i82hq.com, 15)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Ciao for 
            now., 27)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The ÐÐ., 9)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(center)
SAX.startElement(iframe, frameBorder='0', height='60', marginHeight='0', marginWidth='0', noResize, scrolling='no', src='doc3_files/ad_iframe.htm', width='468')
SAX.startElement(a, href='http://ads.adflight.com/go_static.asp?asid=7708', target='_top')
SAX.error: htmlParseEntityRef: expecting ';'
SAX.error: htmlParseEntityRef: expecting ';'
SAX.startElement(img, width='468', height='60', border='0', alt='Advertisement', src='http://ads.adflight.com/ad_static.asp?pid=2097&sid=1881&asid=7708')
SAX.endElement(img)
SAX.endElement(a)
SAX.endElement(iframe)
SAX.endElement(center)
SAX.error: Unexpected end tag : li
SAX.error: Unexpected end tag : font
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(center)
SAX.error: Unexpected end tag : p
SAX.endElement(td)
SAX.characters(
    , 6)
SAX.startElement(td, bgColor='silver', vAlign='top', width='10%')
SAX.characters(
      , 8)
SAX.startElement(center)
SAX.characters(
      , 8)
SAX.startElement(p)
SAX.characters(
      , 8)
SAX.endElement(p)
SAX.startElement(table, bgColor='silver', border='0', cellPadding='0', cellSpacing='0', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, COLSTART='1')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.comment(	<FORM ACTION="/cgi-bin/subscribe.pl" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
						<IMG SRC="/images/spacer.gif" WIDTH="111" HEIGHT="1"><BR>
						<P><B><FONT SIZE="2" COLOR="#000066" FACE="Verdana">Newsletter</FONT></B><FONT SIZE="1" FACE="Verdana"><BR>
						<INPUT TYPE="TEXT" NAME="email" SIZE="10" VALUE="ur@email.com"><BR>
						<INPUT TYPE="HIDDEN" NAME="subscribe" SIZE="-1" VALUE="subscribe"><INPUT TYPE="IMAGE" SRC="/images/subscribe.gif" WIDTH="80"
						HEIGHT="27" ALIGN="BOTTOM" BORDER="0"></FONT>
						</FORM> )
SAX.characters(
            , 14)
SAX.startElement(form, action='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?emaillist', method='post')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='111')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, size='1')
SAX.characters(Newsletter, 10)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='npemail', size='13', value='e-mail addr.')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='npsubscribe', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Subscribe')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment( <input type="submit" name="npunsubscribe" value="Unsubscribe" style="font-size: xx-small; font-family: Verdana; font-weight: bold; color: #ffffff; background-color: #000000;"> )
SAX.endElement(font)
SAX.endElement(form)
SAX.startElement(font, size='1')
SAX.characters(
            , 14)
SAX.startElement(form, action='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?search', method='post')
SAX.characters(Search news, 11)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='searchstring', size='13')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='submit', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Submit')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?newsall')
SAX.characters(News 
            archive, 26)
SAX.endElement(a)
SAX.error: Opening and ending tag mismatch: font and form
SAX.endElement(form)
SAX.endElement(font)
SAX.characters( , 1)
SAX.error: Unexpected end tag : form
SAX.endElement(center)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.comment(				<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" BGCOLOR="silver">
					<TR>
						<TD WIDTH="100%">
							<P ALIGN="CENTER"><A HREF="http://www.free56k.com" target="_blank"><IMG SRC="/images/free56k.gif" WIDTH="100" HEIGHT="49"
							ALIGN="BOTTOM" BORDER="0"></A>
						</TD>
					</TR>
				</TABLE> 
)
SAX.characters(
      , 8)
SAX.startElement(table, bgColor='silver', border='0', cellPadding='0', cellSpacing='0', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, align='middle', width='100%')
SAX.comment( BEGIN GoTo.com Search Box )
SAX.characters(
            , 14)
SAX.startElement(script, language='javascript', type='text/javascript')
SAX.characters(
							, 9)
SAX.comment(
							if ((parseInt(navigator.appVersion) >= 3)
							&& (navigator.appName != "Netscape")) {
							document.write("<IFRAME marginheight=0 frameborder=0 ");
							document.write("marginwidth=0 scrolling=no width=100 height");
							document.write("=90 ");
							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");
							document.write("ype=html&size=100x90&url=http://www.goto.co");
							document.write("m/d/search/ssn/&target=_blank&Partner=SSN80");
							document.write("42DF8478957377></IFRAME>");
							} else if ((parseInt(navigator.appVersion) > 3)
							&& (navigator.appName == "Netscape")) {
							document.write("<SCRIPT language=javascript type=text/javas");
							document.write("cript ");
							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");
							document.write("ype=js&size=100x90&url=http://www.goto.com/");
							document.write("d/search/ssn/&target=_blank&Partner=SSN8042");
							document.write("DF8478957377></SC");
							document.write("RIPT>");
							} else {
							document.write("<A TARGET=_blank ");
							document.write("HREF=http://www.goto.com/d/search/ssn/?from");
							document.write("GIF=true>");
							document.write("<IMG ismap ");
							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");
							document.write("ype=gif&size=100x90></A>");
							}
							// )
SAX.characters(
							, 9)
SAX.endElement(script)
SAX.characters(
            , 14)
SAX.startElement(b)
SAX.startElement(noscript)
SAX.error: Opening and ending tag mismatch: b and noscript
SAX.endElement(noscript)
SAX.endElement(b)
SAX.startElement(a, href='http://www.goto.com/d/search/ssn/?fromGIF=true', target='_blank')
SAX.startElement(img, align='bottom', border='0', height='90', isMap, src='doc3_files/100x90.gif', width='100')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(a, href='http://www.goto.com/d/search/ssn/?fromGIF=true', target='_blank')
SAX.characters( 
            , 15)
SAX.endElement(a)
SAX.error: Unexpected end tag : a
SAX.endElement(b)
SAX.startElement(b)
SAX.error: Unexpected end tag : noscript
SAX.endElement(b)
SAX.startElement(b)
SAX.comment( END GoTo.com Search Box )
SAX.endElement(b)
SAX.comment( Pricewatch Search Box )
SAX.characters(
            , 14)
SAX.startElement(form, action='http://www.pricewatch.com/search/search.asp', method='get', target='_Blank')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.characters(
            , 14)
SAX.startElement(p)
SAX.startElement(b)
SAX.startElement(font, color='white', face='ARIAL, HELVETICA', size='1')
SAX.characters(PC Price 
            Search, 29)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(input, maxLength='30', name='criteria', size='10')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='submit', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Search')
SAX.endElement(input)
SAX.characters( 
            , 15)
SAX.endElement(p)
SAX.error: Opening and ending tag mismatch: form and center
SAX.endElement(center)
SAX.endElement(form)
SAX.comment( Pricewatch Search Box )
SAX.startElement(a, href='http://www.puicorp.com/bp6specials.htm', target='_BLANK')
SAX.startElement(img, src='doc3_files/puibp6.gif')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://store.yahoo.com/dunamis-site/maxtor.html', target='_BLANK')
SAX.startElement(img, alt='BP6.com Special - Enter CODE: BP6-hd in the order (notes) to receive a discount', src='doc3_files/hd5.gif')
SAX.endElement(img)
SAX.startElement(font, size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(BP6.COM 
            Special, 29)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Code:BP6-hd, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( , 1)
SAX.error: Unexpected end tag : p
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.error: Opening and ending tag mismatch: center and table
SAX.endElement(table)
SAX.endElement(center)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.characters(
      , 8)
SAX.startElement(table, bgColor='silver', border='0', cellPadding='0', cellSpacing='0', height='100%', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, width='100%')
SAX.characters( , 2)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.error: Unexpected end tag : p
SAX.error: Unexpected end tag : center
SAX.error: Unexpected end tag : tr
SAX.error: Unexpected end tag : tbody
SAX.error: Unexpected end tag : table
SAX.comment(	</TABLE>)
SAX.characters(
, 2)
SAX.startElement(center)
SAX.endElement(center)
SAX.error: Unexpected end tag : td
SAX.error: Unexpected end tag : tr
SAX.startElement(tr)
SAX.startElement(td, COLSPAN='3', VALIGN='TOP', HEIGHT='70')
SAX.characters( , 2)
SAX.endElement(td)
SAX.characters( , 1)
SAX.endElement(tr)
SAX.error: Unexpected end tag : table
SAX.characters(
, 2)
SAX.startElement(table, border='0', width='780')
SAX.characters(
  , 4)
SAX.startElement(tbody)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, width='780')
SAX.characters(
      , 8)
SAX.startElement(p, align='center')
SAX.startElement(font, color='#999999', face='verdana,arial', size='1')
SAX.characters(Copyright 
      ©1999-2000 , 59)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Got news? Send it to , 21)
SAX.endElement(font)
SAX.startElement(a, href='mailto:tim@bp6.com')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Tim, 3)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( , 1)
SAX.endElement(p)
SAX.endElement(td)
SAX.endElement(tr)
SAX.comment(	<TR>		<TD WIDTH="780">			<P ALIGN="CENTER"><FONT SIZE="1" COLOR="#999999" FACE="Verdana,arial">Site design by Tim Brinkley</FONT>		</TD>	</TR> )
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(div)
SAX.startElement(p)
SAX.characters(
, 2)
SAX.startElement(script)
SAX.characters( window.open=NS_ActualOpen; , 28)
SAX.endElement(script)
SAX.characters(
, 2)
SAX.endElement(p)
SAX.endElement(body)
SAX.endElement(body)
SAX.endElement(html)
SAX.ignorableWhitespace(
, 2)
SAX.endDocument()
