renaming mozilla/testing/performance/win32 to mozilla/testing/performance/talos, pull date '2007-05-04 15:00:00 PDT' b=368720

git-svn-id: svn://10.0.0.236/trunk@225601 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rhelmer%mozilla.com
2007-05-04 21:54:09 +00:00
parent 8033da6140
commit 71c6cf1075
35 changed files with 5718 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
PREREQUISITES:
You'll need to download some software onto your Windows machine before running
these performance tests:
* Python 2.4
The scripts all run from Python 2.4. You will need the windows version
(not the cygwin version). You can download it here:
http://www.python.org/ftp/python/2.4/python-2.4.msi
Make sure to correctly set the path to python in the paths.py file.
After you download and install Python 2.4, you'll need to install

View File

@@ -0,0 +1,709 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet title="XSL_formatting" type="text/xsl" href="/shared/bsp/xsl/rss/nolsol.xsl"?>
<rss version="2.0"><channel>
<title>BBC News | News Front Page | World Edition</title>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/default.stm</link>
<description>Visit BBC News for up-to-the-minute news, breaking news, video, audio and feature stories. BBC News provides trusted World and UK news as well as local and regional perspectives. Also entertainment, business, science, technology and health news.</description>
<language>en-gb</language>
<lastBuildDate>Thu, 06 Jul 2006 19:06:47 GMT</lastBuildDate>
<copyright>Copyright: (C) British Broadcasting Corporation, see http://news.bbc.co.uk/2/hi/help/rss/4498287.stm for terms and conditions of reuse</copyright>
<docs>http://www.bbc.co.uk/syndication/</docs>
<ttl>15</ttl>
<image>
<title>BBC News</title>
<url>http://news.bbc.co.uk/nol/shared/img/bbc_news_120x60.gif</url>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/default.stm</link>
</image>
<item>
<title>Deaths mount in Gaza incursions</title>
<description>Seventeen Palestinians and an Israeli soldier die, officials say, as Israeli troops push deeper into Gaza.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/middle_east/5153036.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/middle_east/5153036.stm</guid>
<pubDate>Thu, 06 Jul 2006 18:48:17 GMT</pubDate>
<category>Middle East</category>
</item>
<item>
<title>Video of 7 July bomber released</title>
<description>A video of one of the London bombers is aired on al-Jazeera TV on the eve of the first anniversary of the attacks.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/uk_news/5154714.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/uk_news/5154714.stm</guid>
<pubDate>Thu, 06 Jul 2006 19:02:50 GMT</pubDate>
<category>UK</category>
</item>
<item>
<title>Discovery docks after 'backflip'</title>
<description>The crew of the shuttle Discovery enter the space station after a &quot;backflip&quot; to allow safety checks.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/americas/5154396.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/americas/5154396.stm</guid>
<pubDate>Thu, 06 Jul 2006 18:21:50 GMT</pubDate>
<category>Americas</category>
</item>
<item>
<title>Mexico candidate vows vote fight</title>
<description>Mexico's leftist candidate says he will challenge election results after the count indicates his rival has won.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/americas/5154896.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/americas/5154896.stm</guid>
<pubDate>Thu, 06 Jul 2006 15:43:06 GMT</pubDate>
<category>Americas</category>
</item>
<item>
<title>EU to reopen Iran nuclear talks</title>
<description>Iranian-EU talks on incentives for Tehran to halt controversial nuclear work are due to begin in Brussels.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/middle_east/5154082.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/middle_east/5154082.stm</guid>
<pubDate>Thu, 06 Jul 2006 13:20:26 GMT</pubDate>
<category>Middle East</category>
</item>
<item>
<title>Darfur combat 'worse' since deal</title>
<description>Fighting in Sudan's Darfur region has increased since May's peace deal was signed, a senior UN official says.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/africa/5155984.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/africa/5155984.stm</guid>
<pubDate>Thu, 06 Jul 2006 18:44:39 GMT</pubDate>
<category>Africa</category>
</item>
<item>
<title>N Korea vows more missile tests</title>
<description>N Korea threatens to continue launching test missiles and warns of &quot;stronger actions&quot; if pressured to stop.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/asia-pacific/5152918.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/asia-pacific/5152918.stm</guid>
<pubDate>Thu, 06 Jul 2006 17:19:04 GMT</pubDate>
<category>Asia-Pacific</category>
</item>
<item>
<title>Legal victory for tobacco firms</title>
<description>Florida's Supreme Court upholds a ruling to throw out a $145bn damages award against tobacco companies.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/americas/5155610.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/americas/5155610.stm</guid>
<pubDate>Thu, 06 Jul 2006 17:29:29 GMT</pubDate>
<category>Americas</category>
</item>
<item>
<title>US gay marriage dealt setbacks</title>
<description>Advocates of gay marriage lose court battles in two of the largest US states, New York and Georgia.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/americas/5155122.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/americas/5155122.stm</guid>
<pubDate>Thu, 06 Jul 2006 16:38:01 GMT</pubDate>
<category>Americas</category>
</item>
<item>
<title>Tennis: Mauresmo outguns Sharapova</title>
<description>Amelie Mauresmo survives an attack of nerves to beat Maria Sharapova and reach her first Wimbledon final.</description>
<link>http://news.bbc.co.uk/go/rss/-/sport2/hi/tennis/5155336.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/sport2/hi/tennis/5155336.stm</guid>
<pubDate>Thu, 06 Jul 2006 16:10:57 GMT</pubDate>
<category>Tennis</category>
</item>
<item>
<title>Tennis: Henin-Hardenne into final</title>
<description>Justine Henin-Hardenne beats fellow Belgian Kim Clijsters in straight sets to reach the Wimbledon final.</description>
<link>http://news.bbc.co.uk/go/rss/-/sport2/hi/tennis/5154644.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/sport2/hi/tennis/5154644.stm</guid>
<pubDate>Thu, 06 Jul 2006 13:41:20 GMT</pubDate>
<category>Tennis</category>
</item>
<item>
<title>Cycling: Stage victory for Freire</title>
<description>Oscar Freire wins a bunch sprint to claim stage five of the Tour de France from Beauvais to Caen.</description>
<link>http://news.bbc.co.uk/go/rss/-/sport2/hi/other_sports/cycling/5155142.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/sport2/hi/other_sports/cycling/5155142.stm</guid>
<pubDate>Thu, 06 Jul 2006 15:20:40 GMT</pubDate>
<category>Cycling</category>
</item>
<item>
<title>Somalia soccer shooting arrests</title>
<description>Somali gunmen will face justice after two people were shot dead watching the World Cup, an Islamist leader says.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/africa/5153800.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/africa/5153800.stm</guid>
<pubDate>Thu, 06 Jul 2006 15:09:03 GMT</pubDate>
<category>Africa</category>
</item>
<item>
<title>Call for DR Congo election delay</title>
<description>More than half of the presidential candidates in DR Congo's elections this month seek a postponement.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/africa/5153244.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/africa/5153244.stm</guid>
<pubDate>Thu, 06 Jul 2006 08:56:06 GMT</pubDate>
<category>Africa</category>
</item>
<item>
<title>Brazil's election campaign begins</title>
<description>One year after a bruising corruption scandal, Brazil's president Luiz Inácio Lula da Silva seeks a second term in office.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/americas/5153156.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/americas/5153156.stm</guid>
<pubDate>Thu, 06 Jul 2006 09:14:51 GMT</pubDate>
<category>Americas</category>
</item>
<item>
<title>UK agrees to extradite hacker</title>
<description>Home Secretary John Reid agrees to extradite hacker Gary McKinnon to the US.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/technology/5156136.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/technology/5156136.stm</guid>
<pubDate>Thu, 06 Jul 2006 18:22:48 GMT</pubDate>
<category>Technology</category>
</item>
<item>
<title>Historic India-China link opens</title>
<description>China and India open a historic trade route in the Himalayas that was closed 44 years ago.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/south_asia/5150682.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/south_asia/5150682.stm</guid>
<pubDate>Thu, 06 Jul 2006 05:27:26 GMT</pubDate>
<category>South Asia</category>
</item>
<item>
<title>At least 30 dead in China floods</title>
<description>Flooding in eastern China in recent days has left more than 30 people dead, state media reports.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/asia-pacific/5153286.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/asia-pacific/5153286.stm</guid>
<pubDate>Thu, 06 Jul 2006 08:24:43 GMT</pubDate>
<category>Asia-Pacific</category>
</item>
<item>
<title>Putin urges negotiated solutions</title>
<description>Russian President Vladimir Putin says problems with Iran and N Korea must be solved via negotiation.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/europe/5154920.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/europe/5154920.stm</guid>
<pubDate>Thu, 06 Jul 2006 16:53:45 GMT</pubDate>
<category>Europe</category>
</item>
<item>
<title>Trans-Dniester blast kills eight</title>
<description>At least eight people die in a blast on a minibus in Moldova's breakaway Trans-Dniester region.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/europe/5153322.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/europe/5153322.stm</guid>
<pubDate>Thu, 06 Jul 2006 10:01:56 GMT</pubDate>
<category>Europe</category>
</item>
<item>
<title>Bomb targets Iraq shrine pilgrims</title>
<description>At least 12 people, including Iranian pilgrims, die in a car bombing at a Shia mosque in Iraq, police say.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/middle_east/5152930.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/middle_east/5152930.stm</guid>
<pubDate>Thu, 06 Jul 2006 07:00:03 GMT</pubDate>
<category>Middle East</category>
</item>
<item>
<title>UN urges Israel halt 'violations'</title>
<description>The UN Human Rights Council demands a halt to Israel's military offensive in the Gaza Strip.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/middle_east/5154594.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/middle_east/5154594.stm</guid>
<pubDate>Thu, 06 Jul 2006 14:12:49 GMT</pubDate>
<category>Middle East</category>
</item>
<item>
<title>Maoists denounce UN arms approach</title>
<description>Maoists in Nepal angrily denounce the government for asking the UN to monitor weapons held by both sides.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/south_asia/5153280.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/south_asia/5153280.stm</guid>
<pubDate>Thu, 06 Jul 2006 12:58:46 GMT</pubDate>
<category>South Asia</category>
</item>
<item>
<title>India privatisation on hold</title>
<description>Indian PM Manmohan Singh halts plans to sell stakes in state-owned companies following political opposition.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/south_asia/5154416.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/south_asia/5154416.stm</guid>
<pubDate>Thu, 06 Jul 2006 13:28:54 GMT</pubDate>
<category>South Asia</category>
</item>
<item>
<title>UK considers bigger Afghan force</title>
<description>The possibility of sending more UK troops to Afghanistan is being considered urgently, the defence secretary says.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/uk_news/5154362.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/uk_news/5154362.stm</guid>
<pubDate>Thu, 06 Jul 2006 13:04:48 GMT</pubDate>
<category>UK</category>
</item>
<item>
<title>Comic Davidson declared bankrupt</title>
<description>Comedian Jim Davidson is declared bankrupt after failing to maintain payments on a £1.4m tax bill.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/entertainment/5153936.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/entertainment/5153936.stm</guid>
<pubDate>Thu, 06 Jul 2006 13:31:00 GMT</pubDate>
<category>Entertainment</category>
</item>
<item>
<title>Airbus orders fall behind Boeing</title>
<description>European aircraft maker Airbus falls behind arch US rival Boeing in the number of new orders for planes.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/business/5152982.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/business/5152982.stm</guid>
<pubDate>Thu, 06 Jul 2006 10:53:05 GMT</pubDate>
<category>Business</category>
</item>
<item>
<title>ECB interest rate stays at 2.75%</title>
<description>The European Central Bank has left its interest rate at 2.75%, but economists think more rises are on the way.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/business/5152314.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/business/5152314.stm</guid>
<pubDate>Thu, 06 Jul 2006 12:01:51 GMT</pubDate>
<category>Business</category>
</item>
<item>
<title>Down's syndrome gene identified</title>
<description>Scientists believe they have found a possible cause for mental impairment in Down's syndrome.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/health/5151232.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/health/5151232.stm</guid>
<pubDate>Wed, 05 Jul 2006 23:52:34 GMT</pubDate>
<category>Health</category>
</item>
<item>
<title>Painkiller 'may cut cancer risk'</title>
<description>Using paracetamol regularly could reduce the risk of ovarian cancer by almost a third, a study says.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/health/5153320.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/health/5153320.stm</guid>
<pubDate>Thu, 06 Jul 2006 12:03:34 GMT</pubDate>
<category>Health</category>
</item>
<item>
<title>Climate change 'real and severe'</title>
<description>Experts convened by the BBC concludes that climate change is &quot;real and severe&quot;, but maybe not &quot;catastrophic&quot;.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/science/nature/5150816.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/science/nature/5150816.stm</guid>
<pubDate>Thu, 06 Jul 2006 03:50:53 GMT</pubDate>
<category>Science/Nature</category>
</item>
<item>
<title>Gene reveals mammoth coat colour</title>
<description>The coat colour of mammoths that roamed the Earth thousands of years ago is determined by scientists.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/science/nature/5154892.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/science/nature/5154892.stm</guid>
<pubDate>Thu, 06 Jul 2006 18:01:49 GMT</pubDate>
<category>Science/Nature</category>
</item>
<item>
<title>Handhelds boost gaming industry</title>
<description>Videogame sales in Japan rise sharply due to the popularity of handheld consoles, says a report.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/technology/5155786.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/technology/5155786.stm</guid>
<pubDate>Thu, 06 Jul 2006 16:47:06 GMT</pubDate>
<category>Technology</category>
</item>
<item>
<title>Microsoft opens up on file styles</title>
<description>The software giant is developing tools that allow users to save important documents in rival formats</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/technology/5153350.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/technology/5153350.stm</guid>
<pubDate>Thu, 06 Jul 2006 11:24:44 GMT</pubDate>
<category>Technology</category>
</item>
<item>
<title>24 leads Emmy drama nominations</title>
<description>Thriller 24 and medical drama Grey's Anatomy are among the leading nominees for US TV's Emmy awards.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/entertainment/5153296.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/entertainment/5153296.stm</guid>
<pubDate>Thu, 06 Jul 2006 14:55:55 GMT</pubDate>
<category>Entertainment</category>
</item>
<item>
<title>Malaysia call to ban film suicide</title>
<description>A Malaysian MP calls for suicide scenes to be cut from Indian films, after copy-cat incidents among Tamils.</description>
<link>http://news.bbc.co.uk/go/rss/-/2/hi/asia-pacific/5153376.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/2/hi/asia-pacific/5153376.stm</guid>
<pubDate>Thu, 06 Jul 2006 08:53:42 GMT</pubDate>
<category>Asia-Pacific</category>
</item>
</channel>
</rss>

Binary file not shown.

View File

@@ -0,0 +1,40 @@
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">Bookmarks Toolbar Folder</H3>
<DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar
<DL><p>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$GvPhC3">Getting Started</A>
<DT><A HREF="http://fxfeeds.mozilla.com/" LAST_MODIFIED="1094668003" FEEDURL="http://fxfeeds.mozilla.com/rss20.xml" ID="rdf:#$HvPhC3">Latest Headlines</A>
</DL><p>
<HR>
<DT><H3 ID="rdf:#$6wPhC3">Quick Searches</H3>
<DD>Handy searches that can be performed in the location bar
<DL><p>
<DT><A HREF="http://www.google.com/search?q=%s" SHORTCUTURL="google" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$7wPhC3">Google Quicksearch</A>
<DD>Type &quot;google &lt;search terms&gt;&quot; in the location bar to perform a Google search
<DT><A HREF="http://www.answers.com/main/ntquery?gwp=13&s=%s" SHORTCUTURL="dict" ID="rdf:#$8wPhC3">Answers.com Dictionary Quicksearch</A>
<DD>Type &quot;dict &lt;word&gt;&quot; in the location bar to perform a dictionary look-up
<DT><A HREF="http://www.google.com/search?q=stocks:%s" SHORTCUTURL="quote" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$9wPhC3">Stock Symbol Quicksearch</A>
<DD>Type &quot;quote &lt;symbol&gt;&quot; in the location bar to perform a stock symbol look-up
<DT><A HREF="http://en.wikipedia.org/wiki/Special:Search?search=%s" SHORTCUTURL="wp" ID="rdf:#$awPhC3">Wikipedia Quicksearch</A>
<DD>Type &quot;wp &lt;something&gt;&quot; in the location bar to look up something in Wikipedia, a free online encyclopedia.
</DL><p>
<DT><H3 ID="rdf:#$ZvPhC3">Firefox and Mozilla Links</H3>
<DL><p>
<DT><A HREF="http://en-us.start.mozilla.com/firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$.vPhC3">Firefox Start Page</A>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1">Firefox Central</A>
<DT><A HREF="http://addons.mozilla.org/?application=firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="UTF-8" ID="rdf:#$0wPhC3">Themes and Extensions</A>
<DT><A HREF="http://www.mozilla.com/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$+vPhC3">Mozilla.com</A>
<DT><A HREF="http://developer.mozilla.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$1wPhC3">Mozilla Developer Center</A>
<DT><A HREF="http://www.mozillazine.org/" ICON="data:image/x-icon;base64,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" LAST_CHARSET="ISO-8859-1" ID="rdf:#$2wPhC3">MozillaZine</A>
<DT><A HREF="http://store.mozilla.org/" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/////AP///wD///8A////AP///wD///8Ag4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/1NTU/9TU1P////8A////AP///wD///8Ag4OD/83Nzf/09PT/8/Pz//Pz8//w8PD/7e3t/+np6f/n5+f/wcHB/4ODg//U1NT/////AP///wD///8A////AIODg//19fX/9fX1//T09P/09PT/8vLy/+7u7v/q6ur/6Ojo/+Tk5P+Dg4P/1NTU/////wD///8A////AP///wCDg4P/9vb2//b29v/19fX/9fX1//T09P/w8PD/7Ozs/+np6f/l5eX/g4OD/9TU1P////8A////AP///wD///8Ag4OD//f39//39/f/9vb2//b29v/19fX/8vLy/+3t7f/p6en/5ubm/4ODg//U1NT/////AP///wD///8A////AIODg//4+Pj/+Pj4/2t2x//39/f/T1y+//Pz8/92f8n/3d7m/+fn5/+Dg4P/1NTU/////wD///8A////ANTU1P+Dg4P/+vr6//r6+v8YKav/srjh/xgpq/+wtd7/GCmr/+3t7f/o6Oj/g4OD/9TU1P/U1NT/1NTU/4ODg/+Dg4P/g4OD//v7+//6+vr/QlC6/2x3yP+JkdL/a3XH/0JQuv/u7u7/6urq/4ODg/+Dg4P/g4OD/9TU1P+Dg4P//Pz8/6urq//8/Pz/+/v7/1Bdv/80Q7X/7e72/zRDtf9QXb//7+/v/+vr6/+kpKT/5+fn/4ODg//U1NT/g4OD//z8/P/S0tL//Pz8//z8/P9QXb//X2rE//z8/P9fasT/UF2///Hx8f/t7e3/xcXF/+jo6P+Dg4P/1NTU/4ODg//9/f3//f39//39/f/9/f3//f39//39/f/9/f3/+vr6//f39//z8/P/7u7u/+vr6//p6en/g4OD/9TU1P+Dg4P//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//z8/P/4+Pj/9PT0//Dw8P/t7e3/6+vr/4ODg/////8A////AIODg/////////////////+Dg4P/g4OD/4ODg/+Dg4P/g4OD//b29v/y8vL/7+/v/4ODg/////8A////AP///wD///8Ag4OD/4ODg/+Dg4P/////AP///wD///8A////AP///wCDg4P/g4OD/4ODg/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8AcAAOADAADAAwAAwAMAAMADAADAAwAAwAMAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIADAADHxwAA//8AAA==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$3wPhC3">Mozilla Store</A>
<DT><A HREF="http://www.spreadfirefox.com/" LAST_CHARSET="UTF-8" ID="rdf:#$4wPhC3">Get Involved - Help spread Firefox!</A>
</DL><p>
</DL><p>

View File

@@ -0,0 +1,40 @@
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">Bookmarks Toolbar Folder</H3>
<DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar
<DL><p>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$GvPhC3">Getting Started</A>
<DT><A HREF="http://fxfeeds.mozilla.com/" LAST_MODIFIED="1151474111" FEEDURL="http://fxfeeds.mozilla.com/rss20.xml" ID="rdf:#$HvPhC3">Latest Headlines</A>
</DL><p>
<HR>
<DT><H3 ID="rdf:#$6wPhC3">Quick Searches</H3>
<DD>Handy searches that can be performed in the location bar
<DL><p>
<DT><A HREF="http://www.google.com/search?q=%s" SHORTCUTURL="google" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$7wPhC3">Google Quicksearch</A>
<DD>Type &quot;google &lt;search terms&gt;&quot; in the location bar to perform a Google search
<DT><A HREF="http://www.answers.com/main/ntquery?gwp=13&s=%s" SHORTCUTURL="dict" ID="rdf:#$8wPhC3">Answers.com Dictionary Quicksearch</A>
<DD>Type &quot;dict &lt;word&gt;&quot; in the location bar to perform a dictionary look-up
<DT><A HREF="http://www.google.com/search?q=stocks:%s" SHORTCUTURL="quote" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$9wPhC3">Stock Symbol Quicksearch</A>
<DD>Type &quot;quote &lt;symbol&gt;&quot; in the location bar to perform a stock symbol look-up
<DT><A HREF="http://en.wikipedia.org/wiki/Special:Search?search=%s" SHORTCUTURL="wp" ID="rdf:#$awPhC3">Wikipedia Quicksearch</A>
<DD>Type &quot;wp &lt;something&gt;&quot; in the location bar to look up something in Wikipedia, a free online encyclopedia.
</DL><p>
<DT><H3 ID="rdf:#$ZvPhC3">Firefox and Mozilla Links</H3>
<DL><p>
<DT><A HREF="http://en-us.start.mozilla.com/firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$.vPhC3">Firefox Start Page</A>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$+JWiR1">Firefox Central</A>
<DT><A HREF="http://addons.mozilla.org/?application=firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="UTF-8" ID="rdf:#$0wPhC3">Themes and Extensions</A>
<DT><A HREF="http://www.mozilla.com/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$+vPhC3">Mozilla.com</A>
<DT><A HREF="http://developer.mozilla.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$1wPhC3">Mozilla Developer Center</A>
<DT><A HREF="http://www.mozillazine.org/" ICON="data:image/x-icon;base64,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" LAST_CHARSET="ISO-8859-1" ID="rdf:#$2wPhC3">MozillaZine</A>
<DT><A HREF="http://store.mozilla.org/" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/////AP///wD///8A////AP///wD///8Ag4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/1NTU/9TU1P////8A////AP///wD///8Ag4OD/83Nzf/09PT/8/Pz//Pz8//w8PD/7e3t/+np6f/n5+f/wcHB/4ODg//U1NT/////AP///wD///8A////AIODg//19fX/9fX1//T09P/09PT/8vLy/+7u7v/q6ur/6Ojo/+Tk5P+Dg4P/1NTU/////wD///8A////AP///wCDg4P/9vb2//b29v/19fX/9fX1//T09P/w8PD/7Ozs/+np6f/l5eX/g4OD/9TU1P////8A////AP///wD///8Ag4OD//f39//39/f/9vb2//b29v/19fX/8vLy/+3t7f/p6en/5ubm/4ODg//U1NT/////AP///wD///8A////AIODg//4+Pj/+Pj4/2t2x//39/f/T1y+//Pz8/92f8n/3d7m/+fn5/+Dg4P/1NTU/////wD///8A////ANTU1P+Dg4P/+vr6//r6+v8YKav/srjh/xgpq/+wtd7/GCmr/+3t7f/o6Oj/g4OD/9TU1P/U1NT/1NTU/4ODg/+Dg4P/g4OD//v7+//6+vr/QlC6/2x3yP+JkdL/a3XH/0JQuv/u7u7/6urq/4ODg/+Dg4P/g4OD/9TU1P+Dg4P//Pz8/6urq//8/Pz/+/v7/1Bdv/80Q7X/7e72/zRDtf9QXb//7+/v/+vr6/+kpKT/5+fn/4ODg//U1NT/g4OD//z8/P/S0tL//Pz8//z8/P9QXb//X2rE//z8/P9fasT/UF2///Hx8f/t7e3/xcXF/+jo6P+Dg4P/1NTU/4ODg//9/f3//f39//39/f/9/f3//f39//39/f/9/f3/+vr6//f39//z8/P/7u7u/+vr6//p6en/g4OD/9TU1P+Dg4P//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//z8/P/4+Pj/9PT0//Dw8P/t7e3/6+vr/4ODg/////8A////AIODg/////////////////+Dg4P/g4OD/4ODg/+Dg4P/g4OD//b29v/y8vL/7+/v/4ODg/////8A////AP///wD///8Ag4OD/4ODg/+Dg4P/////AP///wD///8A////AP///wCDg4P/g4OD/4ODg/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8AcAAOADAADAAwAAwAMAAMADAADAAwAAwAMAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIADAADHxwAA//8AAA==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$3wPhC3">Mozilla Store</A>
<DT><A HREF="http://www.spreadfirefox.com/" LAST_CHARSET="UTF-8" ID="rdf:#$4wPhC3">Get Involved - Help spread Firefox!</A>
</DL><p>
</DL><p>

View File

@@ -0,0 +1,40 @@
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">Bookmarks Toolbar Folder</H3>
<DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar
<DL><p>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$GvPhC3">Getting Started</A>
<DT><A HREF="http://fxfeeds.mozilla.com/" LAST_MODIFIED="1152213115" FEEDURL="http://fxfeeds.mozilla.com/rss20.xml" ID="rdf:#$HvPhC3">Latest Headlines</A>
</DL><p>
<HR>
<DT><H3 ID="rdf:#$6wPhC3">Quick Searches</H3>
<DD>Handy searches that can be performed in the location bar
<DL><p>
<DT><A HREF="http://www.google.com/search?q=%s" SHORTCUTURL="google" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$7wPhC3">Google Quicksearch</A>
<DD>Type &quot;google &lt;search terms&gt;&quot; in the location bar to perform a Google search
<DT><A HREF="http://www.answers.com/main/ntquery?gwp=13&s=%s" SHORTCUTURL="dict" ID="rdf:#$8wPhC3">Answers.com Dictionary Quicksearch</A>
<DD>Type &quot;dict &lt;word&gt;&quot; in the location bar to perform a dictionary look-up
<DT><A HREF="http://www.google.com/search?q=stocks:%s" SHORTCUTURL="quote" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$9wPhC3">Stock Symbol Quicksearch</A>
<DD>Type &quot;quote &lt;symbol&gt;&quot; in the location bar to perform a stock symbol look-up
<DT><A HREF="http://en.wikipedia.org/wiki/Special:Search?search=%s" SHORTCUTURL="wp" ID="rdf:#$awPhC3">Wikipedia Quicksearch</A>
<DD>Type &quot;wp &lt;something&gt;&quot; in the location bar to look up something in Wikipedia, a free online encyclopedia.
</DL><p>
<DT><H3 ID="rdf:#$ZvPhC3">Firefox and Mozilla Links</H3>
<DL><p>
<DT><A HREF="http://en-us.start.mozilla.com/firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$.vPhC3">Firefox Start Page</A>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$+JWiR1">Firefox Central</A>
<DT><A HREF="http://addons.mozilla.org/?application=firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="UTF-8" ID="rdf:#$0wPhC3">Themes and Extensions</A>
<DT><A HREF="http://www.mozilla.com/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$+vPhC3">Mozilla.com</A>
<DT><A HREF="http://developer.mozilla.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$1wPhC3">Mozilla Developer Center</A>
<DT><A HREF="http://www.mozillazine.org/" ICON="data:image/x-icon;base64,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" LAST_CHARSET="ISO-8859-1" ID="rdf:#$2wPhC3">MozillaZine</A>
<DT><A HREF="http://store.mozilla.org/" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/////AP///wD///8A////AP///wD///8Ag4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/1NTU/9TU1P////8A////AP///wD///8Ag4OD/83Nzf/09PT/8/Pz//Pz8//w8PD/7e3t/+np6f/n5+f/wcHB/4ODg//U1NT/////AP///wD///8A////AIODg//19fX/9fX1//T09P/09PT/8vLy/+7u7v/q6ur/6Ojo/+Tk5P+Dg4P/1NTU/////wD///8A////AP///wCDg4P/9vb2//b29v/19fX/9fX1//T09P/w8PD/7Ozs/+np6f/l5eX/g4OD/9TU1P////8A////AP///wD///8Ag4OD//f39//39/f/9vb2//b29v/19fX/8vLy/+3t7f/p6en/5ubm/4ODg//U1NT/////AP///wD///8A////AIODg//4+Pj/+Pj4/2t2x//39/f/T1y+//Pz8/92f8n/3d7m/+fn5/+Dg4P/1NTU/////wD///8A////ANTU1P+Dg4P/+vr6//r6+v8YKav/srjh/xgpq/+wtd7/GCmr/+3t7f/o6Oj/g4OD/9TU1P/U1NT/1NTU/4ODg/+Dg4P/g4OD//v7+//6+vr/QlC6/2x3yP+JkdL/a3XH/0JQuv/u7u7/6urq/4ODg/+Dg4P/g4OD/9TU1P+Dg4P//Pz8/6urq//8/Pz/+/v7/1Bdv/80Q7X/7e72/zRDtf9QXb//7+/v/+vr6/+kpKT/5+fn/4ODg//U1NT/g4OD//z8/P/S0tL//Pz8//z8/P9QXb//X2rE//z8/P9fasT/UF2///Hx8f/t7e3/xcXF/+jo6P+Dg4P/1NTU/4ODg//9/f3//f39//39/f/9/f3//f39//39/f/9/f3/+vr6//f39//z8/P/7u7u/+vr6//p6en/g4OD/9TU1P+Dg4P//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//z8/P/4+Pj/9PT0//Dw8P/t7e3/6+vr/4ODg/////8A////AIODg/////////////////+Dg4P/g4OD/4ODg/+Dg4P/g4OD//b29v/y8vL/7+/v/4ODg/////8A////AP///wD///8Ag4OD/4ODg/+Dg4P/////AP///wD///8A////AP///wCDg4P/g4OD/4ODg/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8AcAAOADAADAAwAAwAMAAMADAADAAwAAwAMAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIADAADHxwAA//8AAA==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$3wPhC3">Mozilla Store</A>
<DT><A HREF="http://www.spreadfirefox.com/" LAST_CHARSET="UTF-8" ID="rdf:#$4wPhC3">Get Involved - Help spread Firefox!</A>
</DL><p>
</DL><p>

View File

@@ -0,0 +1,40 @@
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">Bookmarks Toolbar Folder</H3>
<DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar
<DL><p>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$GvPhC3">Getting Started</A>
<DT><A HREF="http://fxfeeds.mozilla.com/" LAST_MODIFIED="1152213115" FEEDURL="http://fxfeeds.mozilla.com/rss20.xml" ID="rdf:#$HvPhC3">Latest Headlines</A>
</DL><p>
<HR>
<DT><H3 ID="rdf:#$6wPhC3">Quick Searches</H3>
<DD>Handy searches that can be performed in the location bar
<DL><p>
<DT><A HREF="http://www.google.com/search?q=%s" SHORTCUTURL="google" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$7wPhC3">Google Quicksearch</A>
<DD>Type &quot;google &lt;search terms&gt;&quot; in the location bar to perform a Google search
<DT><A HREF="http://www.answers.com/main/ntquery?gwp=13&s=%s" SHORTCUTURL="dict" ID="rdf:#$8wPhC3">Answers.com Dictionary Quicksearch</A>
<DD>Type &quot;dict &lt;word&gt;&quot; in the location bar to perform a dictionary look-up
<DT><A HREF="http://www.google.com/search?q=stocks:%s" SHORTCUTURL="quote" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" LAST_CHARSET="UTF-8" ID="rdf:#$9wPhC3">Stock Symbol Quicksearch</A>
<DD>Type &quot;quote &lt;symbol&gt;&quot; in the location bar to perform a stock symbol look-up
<DT><A HREF="http://en.wikipedia.org/wiki/Special:Search?search=%s" SHORTCUTURL="wp" ID="rdf:#$awPhC3">Wikipedia Quicksearch</A>
<DD>Type &quot;wp &lt;something&gt;&quot; in the location bar to look up something in Wikipedia, a free online encyclopedia.
</DL><p>
<DT><H3 ID="rdf:#$ZvPhC3">Firefox and Mozilla Links</H3>
<DL><p>
<DT><A HREF="http://en-us.start.mozilla.com/firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$.vPhC3">Firefox Start Page</A>
<DT><A HREF="http://www.mozilla.com/products/firefox/central.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$+JWiR1">Firefox Central</A>
<DT><A HREF="http://addons.mozilla.org/?application=firefox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="UTF-8" ID="rdf:#$0wPhC3">Themes and Extensions</A>
<DT><A HREF="http://www.mozilla.com/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$+vPhC3">Mozilla.com</A>
<DT><A HREF="http://developer.mozilla.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$1wPhC3">Mozilla Developer Center</A>
<DT><A HREF="http://www.mozillazine.org/" ICON="data:image/x-icon;base64,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" LAST_CHARSET="ISO-8859-1" ID="rdf:#$2wPhC3">MozillaZine</A>
<DT><A HREF="http://store.mozilla.org/" ICON="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/1NTU/9TU1P/U1NT/////AP///wD///8A////AP///wD///8Ag4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/1NTU/9TU1P////8A////AP///wD///8Ag4OD/83Nzf/09PT/8/Pz//Pz8//w8PD/7e3t/+np6f/n5+f/wcHB/4ODg//U1NT/////AP///wD///8A////AIODg//19fX/9fX1//T09P/09PT/8vLy/+7u7v/q6ur/6Ojo/+Tk5P+Dg4P/1NTU/////wD///8A////AP///wCDg4P/9vb2//b29v/19fX/9fX1//T09P/w8PD/7Ozs/+np6f/l5eX/g4OD/9TU1P////8A////AP///wD///8Ag4OD//f39//39/f/9vb2//b29v/19fX/8vLy/+3t7f/p6en/5ubm/4ODg//U1NT/////AP///wD///8A////AIODg//4+Pj/+Pj4/2t2x//39/f/T1y+//Pz8/92f8n/3d7m/+fn5/+Dg4P/1NTU/////wD///8A////ANTU1P+Dg4P/+vr6//r6+v8YKav/srjh/xgpq/+wtd7/GCmr/+3t7f/o6Oj/g4OD/9TU1P/U1NT/1NTU/4ODg/+Dg4P/g4OD//v7+//6+vr/QlC6/2x3yP+JkdL/a3XH/0JQuv/u7u7/6urq/4ODg/+Dg4P/g4OD/9TU1P+Dg4P//Pz8/6urq//8/Pz/+/v7/1Bdv/80Q7X/7e72/zRDtf9QXb//7+/v/+vr6/+kpKT/5+fn/4ODg//U1NT/g4OD//z8/P/S0tL//Pz8//z8/P9QXb//X2rE//z8/P9fasT/UF2///Hx8f/t7e3/xcXF/+jo6P+Dg4P/1NTU/4ODg//9/f3//f39//39/f/9/f3//f39//39/f/9/f3/+vr6//f39//z8/P/7u7u/+vr6//p6en/g4OD/9TU1P+Dg4P//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//z8/P/4+Pj/9PT0//Dw8P/t7e3/6+vr/4ODg/////8A////AIODg/////////////////+Dg4P/g4OD/4ODg/+Dg4P/g4OD//b29v/y8vL/7+/v/4ODg/////8A////AP///wD///8Ag4OD/4ODg/+Dg4P/////AP///wD///8A////AP///wCDg4P/g4OD/4ODg/////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8AcAAOADAADAAwAAwAMAAMADAADAAwAAwAMAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIADAADHxwAA//8AAA==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$3wPhC3">Mozilla Store</A>
<DT><A HREF="http://www.spreadfirefox.com/" LAST_CHARSET="UTF-8" ID="rdf:#$4wPhC3">Get Involved - Help spread Firefox!</A>
</DL><p>
</DL><p>

View File

@@ -0,0 +1,4 @@
[Compatibility]
LastVersion=1.5.0.4_2006050817/1.8.0.4_2006050817
LastOSABI=WINNT_x86-msvc
LastPlatformDir=c:\Program Files\Mozilla Firefox

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
# HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file! Do not edit.
# To delete cookies, use the Cookie Manager.
.google.com TRUE / FALSE 2147368447 PREF ID=a802a1fec2a6bf27:TM=1152213074:LM=1152213074:S=8UabdTMjbhLKfAzL
.bbc.co.uk TRUE / FALSE 1183010110 BBC-UID 84d49a0251f9abfe2c37601f8191c91b8361247bb0405171f202937354e485550Mozilla%2f5%2e0%20%28Windows%3b%20U%3b%20Windows%20NT%205%2e1%3b%20en%2dUS%3b%20rv%3a1%2e8%2e0%2e4%29%20Gecko%2f20060508%20Firefox%2f1%2e5%2e0%2e4
.mozilla.com TRUE / FALSE 2147385600 __utma 183859642.951804536.1151474111.1151474111.1151474111.1
.mozilla.com TRUE / FALSE 1167242111 __utmz 183859642.1151474111.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)

View File

@@ -0,0 +1,4 @@
app-global inspector@mozilla.org rel%inspector@mozilla.org 1151204811
app-global talkback@mozilla.org rel%talkback@mozilla.org 1151204816
app-global {972ce4c6-7e08-4474-a285-3208198ce6fd} rel%{972ce4c6-7e08-4474-a285-3208198ce6fd} 1151204809
winreg-app-global web-accelerator@google.com abs%C:\Program Files\Google\Web Accelerator\firefox-1.0.66 1152118021

View File

@@ -0,0 +1,6 @@
[ExtensionDirs]
Extension0=c:\Program Files\Mozilla Firefox\extensions\inspector@mozilla.org
Extension1=c:\Program Files\Mozilla Firefox\extensions\talkback@mozilla.org
Extension2=C:\Program Files\Google\Web Accelerator\firefox-1.0.66
[ThemeDirs]
Extension0=c:\Program Files\Mozilla Firefox\extensions\{972ce4c6-7e08-4474-a285-3208198ce6fd}

View File

@@ -0,0 +1,82 @@
<?xml version="1.0"?>
<RDF:RDF xmlns:NS1="http://www.mozilla.org/2004/em-rdf#"
xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="urn:mozilla:item:web-accelerator@google.com"
NS1:installLocation="winreg-app-global"
NS1:version="1.0.66.84"
NS1:name="Google Web Accelerator"
NS1:description="Speed up the web!"
NS1:creator="Google Inc."
NS1:homepageURL="http://webaccelerator.google.com/">
<NS1:type NC:parseType="Integer">2</NS1:type>
<NS1:targetApplication RDF:resource="rdf:#$qW0R22"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$XyvdR1"
NS1:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
NS1:minVersion="1.5.0.4"
NS1:maxVersion="1.5.0.4" />
<RDF:Description RDF:about="rdf:#$wzvdR1"
NS1:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
NS1:minVersion="1.5.0.4"
NS1:maxVersion="1.5.0.4" />
<RDF:Description RDF:about="urn:mozilla:item:{972ce4c6-7e08-4474-a285-3208198ce6fd}"
NS1:installLocation="app-global"
NS1:version="2.0"
NS1:name="Firefox (default)"
NS1:description="The default theme"
NS1:creator="Gerich and Horlander"
NS1:internalName="classic/1.0"
NS1:locked="true"
NS1:appManaged="true"
NS1:contributor="Mozilla Contributors">
<NS1:type NC:parseType="Integer">4</NS1:type>
<NS1:targetApplication RDF:resource="rdf:#$XyvdR1"/>
</RDF:Description>
<RDF:Description RDF:about="rdf:#$ezvdR1"
NS1:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}"
NS1:minVersion="1.5.0.4"
NS1:maxVersion="1.5.0.4" />
<RDF:Seq RDF:about="urn:mozilla:item:root">
<RDF:li RDF:resource="urn:mozilla:item:inspector@mozilla.org"/>
<RDF:li RDF:resource="urn:mozilla:item:talkback@mozilla.org"/>
<RDF:li RDF:resource="urn:mozilla:item:{972ce4c6-7e08-4474-a285-3208198ce6fd}"/>
<RDF:li RDF:resource="urn:mozilla:item:web-accelerator@google.com"/>
</RDF:Seq>
<RDF:Description RDF:about="rdf:#$qW0R22"
NS1:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
NS1:minVersion="1.0+"
NS1:maxVersion="1.6.*" />
<RDF:Description RDF:about="rdf:#$dzvdR1"
NS1:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
NS1:minVersion="1.5.0.4"
NS1:maxVersion="1.5.0.4" />
<RDF:Description RDF:about="rdf:#$xzvdR1"
NS1:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}"
NS1:minVersion="1.5.0.4"
NS1:maxVersion="1.5.0.4" />
<RDF:Description RDF:about="urn:mozilla:item:inspector@mozilla.org"
NS1:installLocation="app-global"
NS1:version="1.8.0.4"
NS1:name="DOM Inspector"
NS1:description="Inspect the DOM of HTML, XUL, and XML pages, including the browser chrome."
NS1:creator="mozilla.org"
NS1:homepageURL="http://www.mozilla.org/projects/inspector/"
NS1:appManaged="true">
<NS1:type NC:parseType="Integer">2</NS1:type>
<NS1:targetApplication RDF:resource="rdf:#$wzvdR1"/>
<NS1:targetApplication RDF:resource="rdf:#$xzvdR1"/>
</RDF:Description>
<RDF:Description RDF:about="urn:mozilla:item:talkback@mozilla.org"
NS1:installLocation="app-global"
NS1:version="1.5.0.4"
NS1:name="Talkback"
NS1:description="Submit a crash report to Mozilla.org."
NS1:creator="mozilla.org"
NS1:homepageURL="http://talkback.mozilla.org/"
NS1:appManaged="true">
<NS1:type NC:parseType="Integer">2</NS1:type>
<NS1:targetApplication RDF:resource="rdf:#$dzvdR1"/>
<NS1:targetApplication RDF:resource="rdf:#$ezvdR1"/>
</RDF:Description>
</RDF:RDF>

View File

@@ -0,0 +1,41 @@
// <!-- <mdb:mork:z v="1.4"/> -->
< <(a=c)> // (f=iso-8859-1)
(8A=Typed)(8B=LastPageVisited)(8C=ByteOrder)
(80=ns:history:db:row:scope:history:all)
(81=ns:history:db:table:kind:history)(82=URL)(83=Referrer)
(84=LastVisitDate)(85=FirstVisitDate)(86=VisitCount)(87=Name)
(88=Hostname)(89=Hidden)>
<(80=LE)(81=http://www.mozilla.org/products/firefox/releases/whatsnew/)
(82=1151474110376904)(83=mozilla.org)(84=1)(85
=http://www.mozilla.com/firefox/releases/whatsnew/)(86=mozilla.com)
(87=)(88=http://www.mozilla.com/firefox/updated)(89
=F$00i$00r$00e$00f$00o$00x$00 $00C$00e$00n$00t$00r$00a$00l$00 $00|$00 $00M\
$00o$00z$00i$00l$00l$00a$00 $00C$00o$00r$00p$00o$00r$00a$00t$00i$00o$00n$00)
(8C
=http://en-us.start.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:e\
n-US:official)(8D=1152213074778298)(8E=en-us.start.mozilla.com)(8F
=http://www.google.com/firefox?client=firefox-a&rls=org.mozilla:en-US:offi\
cial)(90=google.com)(91
=M$00o$00z$00i$00l$00l$00a$00 $00F$00i$00r$00e$00f$00o$00x$00 $00S$00t$00a\
$00r$00t$00 $00P$00a$00g$00e$00)(92
=http://filer/home/sullivan/www/testwin.html)(93=1152213090341298)
(94=filer)(95=2)(96=E$00r$00r$00o$00r$00)>
{1:^80 {(k^81:c)(s=9)[1(^8C=LE)]}
[2(^82^81)(^84^82)(^85^82)(^88^83)(^89=1)]
[3(^82^85)(^84^82)(^85^82)(^88^86)(^87=)]
[4(^82^88)(^84^82)(^85^82)(^83^85)(^88^86)(^87^89)]
[6(^82^8C)(^84^8D)(^85^8D)(^88^8E)(^89=1)]
[7(^82^8F)(^84^8D)(^85^8D)(^88^90)(^87^91)]
[8(^82^92)(^84^93)(^85^93)(^88^94)(^8A=1)(^86=2)(^87^96)]}
@$${5{@
<(97=file:///z:/www/testwin.html)(99=1152213115198031)(98=1152213108608293)
(9A=3)>
{1:^80 {(k^81:c)(s=9)1 } [-9(^82^97)(^84^99)(^85^98)(^88=)(^8A=1)(^86=3)
(^87=)]}
@$$}5}@
@$${6{@
@$$}6}@

View File

@@ -0,0 +1,4 @@
# Permission File
# This is a generated file! Do not edit.
host popup 1 scheme:file

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="chrome://browser/content/browser.xul#toolbar-menubar"
currentset="menubar-items,spring,gwa-status-button,gwa-speedo-button,throbber-box" />
<RDF:Description RDF:about="chrome://browser/content/browser.xul#main-window"
width="994"
height="1010"
sizemode="normal"
screenX="432"
screenY="69" />
<RDF:Description RDF:about="chrome://browser/content/browser.xul">
<NC:persist RDF:resource="chrome://browser/content/browser.xul#main-window"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#toolbar-menubar"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-box"/>
<NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-title"/>
</RDF:Description>
<RDF:Description RDF:about="chrome://browser/content/browser.xul#sidebar-box"
sidebarcommand=""
width=""
src="" />
</RDF:RDF>

View File

@@ -0,0 +1,4 @@
# Mozilla User Preferences
/* Do not edit this file.
*
* If you make changes to this file while the application is running,

View File

@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="urn:search:category:1"
NC:title="Web" />
<RDF:Description RDF:about="urn:search:category:2"
NC:title="Mozilla" />
<RDF:Seq RDF:about="NC:SearchCategory?category=urn:search:category:2">
</RDF:Seq>
<RDF:Seq RDF:about="NC:SearchCategoryRoot">
<RDF:li RDF:resource="urn:search:category:2"/>
<RDF:li RDF:resource="urn:search:category:1"/>
</RDF:Seq>
<RDF:Seq RDF:about="NC:SearchCategory?category=urn:search:category:1">
<RDF:li RDF:resource="NC:SearchCategory?engine=urn:search:engine:google.src"/>
</RDF:Seq>
</RDF:RDF>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,232 @@
#!c:/Python24/python.exe
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
"""A set of functions for process management on Windows.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
import msvcrt
import os
import re
import time
import win32api
import win32file
import win32pdhutil
import win32pipe
import paths
def GetCygwinPath(dos_path):
"""Helper function to get the Cygwin path from a dos path.
Used to generate a Firefox command line piped through the
Cygwin bash shell
Args:
dos_path: String containing the dos path
Returns:
String containing the cygwin path
"""
# Convert the path to a cygwin path. Assumes the path starts with
# /cygdrive/driveletter
cygwin_path = '/' + dos_path[3:] # Remove 'C:\'
cygwin_path = cygwin_path.replace('\\', '/') # Backslashes->slashes
cygwin_path = cygwin_path.replace(' ', '\\ ') # Escape spaces
cygwin_path = '/cygdrive/' + dos_path[0] + cygwin_path # Add drive letter
return cygwin_path
def GenerateFirefoxCommandLine(firefox_path, profile_dir, url):
"""Generates the command line for a process to run Firefox, wrapped
by cygwin so that we can read the output from dump() statements.
Args:
firefox_path: String containing the path to the firefox exe to use
profile_dir: String containing the directory of the profile to run Firefox in
url: String containing url to start with.
"""
profile_arg = ''
if profile_dir:
profile_dir = profile_dir.replace('\\', '\\\\\\')
profile_arg = '-profile %s' % profile_dir
url_arg = ''
if url:
url_arg = '-url %s' % url
cmd = '%s "%s %s %s"' % (paths.CYGWIN,
GetCygwinPath(firefox_path),
profile_arg,
url_arg)
return cmd
def SyncAndSleep():
"""Runs sync and sleeps for a few seconds between Firefox runs.
Otherwise "Firefox is already running.." errors occur
"""
os.spawnl(os.P_WAIT, paths.SYNC)
time.sleep(3)
def TerminateProcess(pid):
"""Helper function to terminate a process, given the pid
Args:
pid: integer process id of the process to terminate.
"""
PROCESS_TERMINATE = 1
handle = win32api.OpenProcess(PROCESS_TERMINATE, False, pid)
win32api.TerminateProcess(handle, -1)
win32api.CloseHandle(handle)
def ProcessesWithNameExist(process_name):
"""Returns true if there are any processes running with the
given name. Useful to check whether a Firefox process is still running
Args:
process_name: String containing the process name, i.e. "firefox"
Returns:
True if any processes with that name are running, False otherwise.
"""
try:
pids = win32pdhutil.FindPerformanceAttributesByName(process_name, counter="ID Process")
return len(pids) > 0
except:
# Might get an exception if there are no instances of the process running.
return False
def TerminateAllProcesses(process_name):
"""Helper function to terminate all processes with the given process name
Args:
process_name: String containing the process name, i.e. "firefox"
"""
# Get all the process ids of running instances of this process, and terminate them.
try:
pids = win32pdhutil.FindPerformanceAttributesByName(process_name, counter="ID Process")
for pid in pids:
TerminateProcess(pid)
except:
# Might get an exception if there are no instances of the process running.
pass
def NonBlockingReadProcessOutput(handle):
"""Does a non-blocking read from the output of the process
with the given handle.
Args:
handle: The process handle returned from os.popen()
Returns:
A tuple (bytes, output) containing the number of output
bytes read, and the actual output.
"""
output = ""
try:
osfhandle = msvcrt.get_osfhandle(handle.fileno())
(read, num_avail, num_message) = win32pipe.PeekNamedPipe(osfhandle, 0)
if num_avail > 0:
(error_code, output) = win32file.ReadFile(osfhandle, num_avail, None)
return (num_avail, output)
except:
return (0, output)
def RunProcessAndWaitForOutput(command, process_name, output_regex, timeout):
"""Runs the given process and waits for the output that matches the given
regular expression. Stops if the process exits early or times out.
Args:
command: String containing command to run
process_name: Name of the process to run, in case it has to be killed
output_regex: Regular expression to check against each output line.
If the output matches, the process is terminated and
the function returns.
timeout: Time to wait before terminating the process and returning
Returns:
A tuple (match, timedout) where match is the match of the regular
expression, and timed out is true if the process timed out and
false otherwise.
"""
# Start the process
handle = os.popen(command)
# Wait for it to print output, terminate, or time out.
time_elapsed = 0
output = ''
interval = 2 # Wait 2 seconds in between checks
while time_elapsed < timeout:
time.sleep(interval)
time_elapsed += interval
(bytes, current_output) = NonBlockingReadProcessOutput(handle)
output += current_output
result = output_regex.search(output)
if result:
try:
return_val = result.group(1)
TerminateAllProcesses(process_name)
return (return_val, False)
except IndexError:
# Didn't really match
pass
# Timed out.
TerminateAllProcesses(process_name)
return (None, True)

View File

@@ -0,0 +1,164 @@
#!c:/Python24/python.exe
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
"""A set of functions to set up a Firefox profile with the correct
preferences and extensions in the given directory.
Sets up the profile by copying from a base directory, editing the
prefs.js file to set the prefs, and creating a file to link to each
extension. The profile is run with Firefox to make sure it is fully
initialized and won't cause extra startup time on the first run.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
import os
import re
import shutil
import tempfile
import time
import ffprocess
import paths
def PrefString(name, value, newline):
"""Helper function to create a pref string for Firefox profile prefs.js
in the form 'user_pref("name", value);<newline>'
Args:
name: String containing name of pref
value: String containing value of pref
newline: Line ending to use, i.e. '\n' or '\r\n'
Returns:
String containing 'user_pref("name", value);<newline>'
"""
out_value = str(value)
if type(value) == bool:
# Write bools as "true"/"false", not "True"/"False".
out_value = out_value.lower()
if type(value) == str:
# Write strings with quotes around them.
out_value = '"%s"' % value
return 'user_pref("%s", %s);%s' % (name, out_value, newline)
def MakeDirectoryContentsWritable(dirname):
"""Recursively makes all the contents of a directory writable.
Uses os.chmod(filename, 0777), which works on Windows.
Args:
dirname: Name of the directory to make contents writable.
"""
for (root, dirs, files) in os.walk(dirname):
os.chmod(root, 0777)
for filename in files:
os.chmod(os.path.join(root, filename), 0777)
def CreateTempProfileDir(source_profile, prefs, extensions):
"""Creates a temporary profile directory from the source profile directory
and adds the given prefs and links to extensions.
Args:
source_profile: String containing the absolute path of the source profile
directory to copy from.
prefs: Preferences to set in the prefs.js file of the new profile. Format:
{"PrefName1" : "PrefValue1", "PrefName2" : "PrefValue2"}
extensions: Guids and paths of extensions to link to. Format:
{"{GUID1}" : "c:\\Path\\to\\ext1", "{GUID2}", "c:\\Path\\to\\ext2"}
Returns:
String containing the absolute path of the profile directory.
"""
# Create a temporary directory for the profile, and copy the
# source profile to it.
profile_dir = tempfile.mkdtemp()
profile_dir = os.path.join(profile_dir, 'profile')
shutil.copytree(source_profile, profile_dir)
MakeDirectoryContentsWritable(profile_dir)
# Copy the user-set prefs to user.js
user_js_filename = os.path.join(profile_dir, 'user.js')
user_js_file = open(user_js_filename, 'w')
for pref in prefs:
user_js_file.write(PrefString(pref, prefs[pref], '\n'))
user_js_file.close()
# Add links to all the extensions.
extension_dir = os.path.join(profile_dir, "extensions")
if not os.path.exists(extension_dir):
os.makedirs(extension_dir)
for extension in extensions:
link_file = open(os.path.join(extension_dir, extension), 'w')
link_file.write(extensions[extension])
link_file.close()
return profile_dir
def InitializeNewProfile(firefox_path, profile_dir):
"""Runs Firefox with the new profile directory, to negate any performance
hit that could occur as a result of starting up with a new profile.
Also kills the "extra" Firefox that gets spawned the first time Firefox
is run with a new profile.
Args:
firefox_path: String containing the path to the Firefox exe
profile_dir: The full path to the profile directory to load
"""
# Run Firefox with the new profile directory
cmd = ffprocess.GenerateFirefoxCommandLine(firefox_path, profile_dir, paths.INIT_URL)
handle = os.popen(cmd)
# Wait for Firefox to shut down and restart with the new profile,
# then kill the new instance if it doesn't close itself.
time_elapsed = 0
while time_elapsed < 30:
time_elapsed += 5
time.sleep(5)
if not ffprocess.ProcessesWithNameExist("firefox"):
return
ffprocess.TerminateAllProcesses("firefox")

View File

@@ -0,0 +1,49 @@
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is Windows performance test.
-
- The Initial Developer of the Original Code is
- Google Inc.
- Portions created by the Initial Developer are Copyright (C) 1999
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Annie Sullivan <annie.sullivan@gmail.com>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>shutdown script</title>
</head>
<body onload="window.close();">
This page should close Firefox. If it does not, please make sure that
the dom.allow_scripts_to_close_windows preference is set to true in
<a href="about:config">about:config</a>
</body>
</html>

View File

@@ -0,0 +1,229 @@
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is JavaScript local page load test.
-
- The Initial Developer of the Original Code is
- Google Inc.
- Portions created by the Initial Developer are Copyright (C) 1999
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Darin Fisher <darin@meer.net>
- Annie Sullivan <annie.sullivan@gmail.com>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<html>
<script>
var win = null;
var pages = [
"bugzilla.mozilla.org/",
"lxr.mozilla.org/",
"vanilla-page/",
];
var pages_i18n = [
"bugzilla.mozilla.org/",
"lxr.mozilla.org/",
"vanilla-page/",
];
var NUM_PAGES;
var NUM_CYCLES;
function parseParams() {
var s = document.location.search.substring(1);
var params = s.split('&');
for (var i = 0; i < params.length; ++i) {
var fields = params[i].split('=');
switch (fields[0]) {
case 'cycles':
NUM_CYCLES = (fields[1] - 0);
break;
case 'pages':
NUM_PAGES = (fields[1] - 0);
break;
case 'i18n':
if (fields[1] == '1') {
pages = pages.concat(pages_i18n);
}
break;
}
}
if (!NUM_PAGES)
NUM_PAGES = pages.length;
if (!NUM_CYCLES)
NUM_CYCLES = 5;
}
parseParams();
var timeVals = new Array(NUM_PAGES); // matrix of times
for (var i = 0; i < timeVals.length; ++i) {
timeVals[i] = new Array;
}
var tstart;
var index = 0;
var cycle = 0;
// returns an object with the following properties:
// min : min value of array elements
// max : max value of array elements
// mean : mean value of array elements
// vari : variance computation
// stdd : standard deviation, sqrt(vari)
// indexOfMax : index of max element (the element that is
// removed from the mean computation)
function getArrayStats(ary) {
var r = {};
r.min = ary[0];
r.max = ary[0];
r.indexOfMax = 0;
var sum = 0;
for (var i = 0; i < ary.length; ++i) {
if (ary[i] < r.min) {
r.min = ary[i];
} else if (ary[i] > r.max) {
r.max = ary[i];
r.indexOfMax = i;
}
sum = sum + ary[i];
}
// ignore max value when computing mean and stddev
r.mean = (sum - r.max) / (ary.length - 1);
r.vari = 0;
for (var i = 0; i < ary.length; ++i) {
if (i == r.indexOfMax)
continue;
var d = r.mean - ary[i];
r.vari = r.vari + d * d;
}
r.vari = r.vari / (ary.length - 1);
r.stdd = Math.sqrt(r.vari);
return r;
}
function appendTableCol(tr, text) {
var doc = tr.ownerDocument;
var td = doc.createElement("TD");
td.appendChild(doc.createTextNode(text));
tr.appendChild(td);
return td;
}
function loadReport() {
win.addEventListener("load", showReport, true);
var baseUri = document.location.href.substr(0, document.location.href.lastIndexOf('/') + 1);
win.document.location = baseUri + "report.html";
}
function showReport() {
var doc = win.document;
var tbody = doc.getElementById("tbody");
var sum_mean = 0;
var sum_stdd = 0;
for (var i = 0; i < timeVals.length; ++i) {
var tr = doc.createElement("TR");
appendTableCol(tr, pages[i]);
var r = getArrayStats(timeVals[i]);
appendTableCol(tr, r.min.toFixed(2));
appendTableCol(tr, r.max.toFixed(2));
appendTableCol(tr, r.mean.toFixed(2));
appendTableCol(tr, r.stdd.toFixed(2));
sum_mean += r.mean;
sum_stdd += r.stdd;
//appendTableCol(tr, r.chi2.toFixed(2));
for (var j = 0; j < timeVals[i].length; ++j) {
var tv = timeVals[i][j];
var td = appendTableCol(tr, tv);
if (j == r.indexOfMax)
td.setAttribute("class", "discarded");
}
tbody.appendChild(tr);
}
dump("__start_page_load_report\n");
dump("mean: " + sum_mean.toFixed(2) + "\n");
dump("stdd: " + sum_stdd.toFixed(2) + "\n");
dump("__end_page_load_report\n");
win.close()
window.close()
}
function loadPage(i) {
tstart = new Date();
win.addEventListener("load", winLoad, true);
win.document.location = "base/" + pages[i] + "index.html";
}
function winLoad() {
var tend = new Date();
var href = win.document.location.href;
if (href == "about:blank")
return;
var tdelta = tend - tstart;
timeVals[index].push(tdelta);
var fields = href.split('/');
var text = (cycle + 1) + ', ' + (index + 1) + ', ' + fields[fields.length - 2] + ", " + tdelta;
var body = document.body;
while (body.firstChild)
body.removeChild(body.firstChild);
body.appendChild(document.createTextNode(text));
if (++index == NUM_PAGES) {
index = 0;
if (++cycle == NUM_CYCLES) {
// display summary
try {
win.removeEventListener("load", winLoad, true);
} catch (e) { alert("displaying summary, caught " + e); }
win.document.location = "about:blank";
window.setTimeout(loadReport, 500);
return;
}
}
try {
win.removeEventListener("load", winLoad, true);
} catch (e) { alert("Displaying page " + index + " caught " + e); }
win.document.location = "about:blank";
window.setTimeout("loadPage(" + index + ")", 500);
}
function init() {
win = window.open("about:blank", "Page Load Test");
window.setTimeout("loadPage(" + index + ")", 500);
}
</script>
<body onload="init();"></body>
</html>

View File

@@ -0,0 +1,77 @@
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is JavaScript local page load test.
-
- The Initial Developer of the Original Code is
- Google Inc.
- Portions created by the Initial Developer are Copyright (C) 1999
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Darin Fisher <darin@meer.net>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<html>
<head>
<style type="text/css">
table {
border-collapse: collapse;
}
thead {
border: solid 1px black;
}
th {
padding-left: 1em;
padding-right: 1em;
}
tr {
border: solid 1px black;
}
td {
padding-left: 1em;
padding-right: 1em;
}
tr > td {
text-align: right;
}
tr > td:first-child {
text-align: left;
}
td.discarded {
color: gray;
}
</style>
</head>
<body>
<table>
<thead>
<tr><th>Page</th><th>Min</th><th>Max</th><th>Mean</th><th>Std</th><th>Times...</th></tr>
</thead>
<tbody id="tbody"></tbody>
</table>
</body>
</html>

View File

@@ -0,0 +1,71 @@
#!c:/Python24/python.exe
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
"""A list of constants containing the paths to programs and files
needed by the performance testing scripts.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
"""For some reason, can only get output from dump() in Firefox if
it's run through cygwin bash. So here's the path to cygwin.
"""
CYGWIN = r'c:\cygwin\bin\bash.exe -c'
"""The tinderbox scripts run sync between Ts runs, so we do, too."""
SYNC = r'c:\cygwin\bin\sync'
"""The path to the base profile directory to use for testing. For the page
load test to work, this profile should have its hostperm.1 file set to allow
urls with scheme:file to open in new windows, and the preference to open
new windows in a tab should be off.
"""
BASE_PROFILE_DIR = r'C:\extension_perf_testing\base_profile'
"""The directory the generated reports go into."""
REPORTS_DIR = r'c:\extension_perf_reports'
"""The path to the file url to load when initializing a new profile"""
INIT_URL = 'file:///c:/mozilla/testing/performance/win32/initialize.html'
"""The path to the file url to load for startup test (Ts)"""
TS_URL = 'file:///c:/mozilla/testing/performance/win32/startup_test/startup_test.html?begin='
"""The path to the file url to load for page load test (Tp)"""
TP_URL = 'file:///c:/mozilla/testing/performance/win32/page_load_test/cycler.html'

View File

@@ -0,0 +1,234 @@
#!c:/Python24/python.exe
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
"""Writes a report with the results of the Ts (startup) and Tp (page load) tests.
The report contains the mean startup time for each profile and the standard
deviation, the sum of page load times and the standard deviation, and a graph
of each performance counter measured during the page load test.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
import csv
import math
import matplotlib.mlab
import os
import pylab
import re
import time
import paths
def MakeArray(start, len, step):
"""Helper function to create an array for an axis to plot counter data.
Args:
start: The first value in the array
len: The length of the array
step: The difference between values in the array
Returns:
An array starting at start, with len values each step apart.
"""
count = start
end = start + (len * step)
array = []
while count < end:
array.append(count)
count += step
return array
def GetPlottableData(counter_name, data):
"""Some counters should be displayed as a moving average, or
may need other adjustment to be plotted. This function
makes adjustments to the data based on counter name.
Args:
counter_name: The name of the counter, i.e 'Working Set'
data: The original data collected from the counter
Returns:
data array adjusted based on counter name.
"""
if counter_name == '% Processor Time':
# Use a moving average for % processor time
return matplotlib.mlab.movavg(data, 5)
if counter_name == 'Working Set' or counter_name == 'Private Bytes':
# Change the scale from bytes to megabytes for working set
return [float(x) / 1000000 for x in data]
# No change for other counters
return data
def GenerateReport(title, filename, configurations, ts_times, tp_times, tp_counters, tp_resolution):
""" Generates a report file in html using the given data
Args:
title: Title of the report
filename: Filename of the report, before the timestamp
configurations: Array of strings, containing the name of
each configuration tested.
ts_times: Array of arrays of ts startup times for each configuration.
tp_times: Array of page load times for each configuration tested.
tp_counters: Array of counter data for page load configurations
Returns:
filename of html report.
"""
# Make sure the reports/ and reports/graphs/ directories exist
graphs_subdir = os.path.join(paths.REPORTS_DIR, 'graphs')
if not os.path.exists(graphs_subdir):
os.makedirs(graphs_subdir) # Will create parent directories
# Create html report file
localtime = time.localtime()
timestamp = int(time.mktime(localtime))
report_filename = os.path.join(paths.REPORTS_DIR, filename + "_" + str(timestamp) + ".html")
report = open(report_filename, 'w')
report.write('<html><head><title>Performance Report for %s, %s</title></head>\n' %
(title, time.strftime('%m-%d-%y')))
report.write('<body>\n')
report.write('<h1>%s, %s</h1>' % (title, time.strftime('%m-%d-%y')))
# Write out TS data
report.write('<p><h2>Startup Test (Ts) Results</h2>\n')
report.write('<table border="1" cellpadding="5" cellspacing="0">\n')
report.write('<tr>')
report.write('<th>Profile Tested</th>')
report.write('<th>Mean</th>')
report.write('<th>Standard Deviation</th></tr>\n')
ts_csv_filename = os.path.join(paths.REPORTS_DIR, filename + "_" + str(timestamp) + '_ts.csv')
ts_csv_file = open(ts_csv_filename, 'wb')
ts_csv = csv.writer(ts_csv_file)
for i in range (0, len(configurations)):
# Calculate mean
mean = 0
for ts_time in ts_times[i]:
mean += float(ts_time)
mean = mean / len(ts_times[i])
# Calculate standard deviation
stdd = 0
for ts_time in ts_times[i]:
stdd += (float(ts_time) - mean) * (float(ts_time) - mean)
stdd = stdd / len(ts_times[i])
stdd = math.sqrt(stdd)
report.write('<tr><td>%s</td><td>%f</td><td>%f</td></tr>\n' %
(configurations[i], mean, stdd))
ts_csv.writerow([configurations[i], mean, stdd])
report.write('</table></p>\n')
ts_csv_file.close()
# Write out TP data
report.write('<p><h2>Page Load Test (Tp) Results</h2>\n')
report.write('<table border="1" cellpadding="5" cellspacing="0">\n')
report.write('<tr>')
report.write('<th>Profile Tested</th>')
report.write('<th>Sum of mean times</th>')
report.write('<th>Sum of Standard Deviations</th></tr>\n')
tp_csv_filename = os.path.join(paths.REPORTS_DIR, filename + "_" + str(timestamp) + '_tp.csv')
tp_csv_file = open(tp_csv_filename, 'wb')
tp_csv = csv.writer(tp_csv_file)
# Write out TP data
for i in range (0, len(tp_times)):
(tmp1, mean, tmp2, stdd) = tp_times[i].split()
report.write('<tr><td>%s</td><td>%f</td><td>%f</td></tr>\n' %
(configurations[i], float(mean), float(stdd)))
tp_csv.writerow([configurations[i], float(mean), float(stdd)])
report.write('</table></p>\n')
tp_csv_file.close()
# Write out counter data from TP tests
report.write('<p><h2>Performance Data</h2></p>\n')
# Write out graph of performance for each counter
colors = ['r-', 'g-', 'b-', 'y-', 'c-', 'm-']
nonchar = re.compile('[\W]*')
if len(tp_counters) > 0:
counter_names = []
for counter in tp_counters[0]:
counter_names.append(counter)
for counter_name in counter_names:
# Create a new figure for this counter
pylab.clf()
# Label the figure, and the x/y axes
pylab.title(counter_name)
pylab.ylabel(counter_name)
pylab.xlabel("Time")
# Draw a line for each counter in a different color on the graph
current_color = 0
line_handles = [] # Save the handle of each line for the legend
for count_data in tp_counters:
data = GetPlottableData(counter_name, count_data[counter_name])
times = MakeArray(0, len(data), tp_resolution)
handle = pylab.plot(times, data, colors[current_color])
line_handles.append(handle)
current_color = (current_color + 1) % len(colors)
# Draw a legend in the upper right corner
legend = pylab.legend(line_handles, configurations, 'upper right')
ltext = legend.get_texts()
pylab.setp(ltext, fontsize='small') # legend text is too large by default
# Save the graph and link to it from html.
image_name = os.path.join(graphs_subdir,
filename + "_" + str(timestamp) + nonchar.sub('', counter_name) + '.png')
pylab.savefig(image_name)
img_src = image_name[len(paths.REPORTS_DIR) : ]
if img_src.startswith('\\'):
img_src = img_src[1 : ]
img_src = img_src.replace('\\', '/')
report.write('<p><img src="%s" alt="%s"></p>\n' % (img_src, counter_name))
report.write('</body></html>\n')
return report_filename

View File

@@ -0,0 +1,130 @@
#!c:/Python24/python.exe
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
"""Runs extension performance tests.
This file runs Ts (startup time) and Tp (page load time) tests
for an extension with different profiles. It was originally
written for the Google Toolbar for Firefox; to make it work for
another extension modify get_xpi.py. To change the preferences
that are set on the profiles that are tested, edit the arrays in
the main function below.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
import time
import syck
import sys
import report
import paths
import tp
import ts
# Number of times to run startup test (Ts)
TS_NUM_RUNS = 5
# Number of times the page load test (Tp) loads each page in the test.
TP_NUM_CYCLES = 7
# Resolution of counter sample data for page load test (Tp), in seconds
# (For example, if TP_RESOLUTION=1, sample counters every 1 second
TP_RESOLUTION = 1
def test_file(filename):
"""Runs the Ts and Tp tests on the given config file and generates a report.
Args:
filename: the name of the file to run the tests on
"""
test_configs = []
test_names = []
title = ''
filename_prefix = ''
# Read in the profile info from the YAML config file
config_file = open(filename, 'r')
yaml = syck.load(config_file)
config_file.close()
for item in yaml:
if item == 'title':
title = yaml[item]
elif item == 'filename':
filename_prefix = yaml[item]
else:
new_config = [yaml[item]['preferences'],
yaml[item]['extensions'],
yaml[item]['firefox']]
test_configs.append(new_config)
test_names.append(item)
config_file.close()
# Run startup time test
ts_times = ts.RunStartupTests(paths.BASE_PROFILE_DIR,
test_configs,
TS_NUM_RUNS)
# Run page load test. For possible values of counters argument, see
# http://technet2.microsoft.com/WindowsServer/en/Library/86b5d116-6fb3-427b-af8c-9077162125fe1033.mspx?mfr=true
(tp_times, tp_counters) = tp.RunPltTests(paths.BASE_PROFILE_DIR,
test_configs,
TP_NUM_CYCLES,
['Private Bytes', 'Working Set', '% Processor Time'],
TP_RESOLUTION)
# Generate a report of the results.
report.GenerateReport(title,
filename_prefix,
test_names,
ts_times,
tp_times,
tp_counters,
TP_RESOLUTION)
if __name__=='__main__':
# Read in each config file and run the tests on it.
for i in range(1, len(sys.argv)):
test_file(sys.argv[i])

View File

@@ -0,0 +1,36 @@
# This is a sample configuration file to show how to run the Windows
# performance tests.
# The title of the html report
title: Windows 2000, 1Ghz Celeron, 256MB Ram
# Text to append to the filename (should only contain letters, numbers,
# and underscores)
filename: win2k_lowmem
# Profiles to test. Each of these can have different extensions installed,
# different prefs set, and different paths to firefox.
Firefox 1.5:
# Path to Firefox executable to test:
firefox: "C:\\Program Files\\Mozilla Firefox\\firefox.exe"
# No preferences beyond the defaults
preferences: {}
# No extensions installed
extensions: {}
Firefox 2.0 beta 1:
# Path to Firefox executable to test:
firefox: "C:\\Program Files\Mozilla Firefox 2 Beta 1\\firefox.exe"
# Turn on prefs to enable safe browsing with no remote lookups
# As an example of a string pref, make the selected search eBay
preferences:
browser.safebrowsing.enabled: true
browser.safebrowsing.remoteLookups: false
browser.search.selectedEngine: "eBay"
# No extensions
extensions: {}

View File

@@ -0,0 +1,49 @@
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is JavaScript startup test.
-
- The Initial Developer of the Original Code is
- Google Inc.
- Portions created by the Initial Developer are Copyright (C) 1999
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Annie Sullivan <annie.sullivan@gmail.com>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<!-- Pick off begin time as a cgi argument and print it out -->
<html>
<!-- call this with an arg, e.g. file://foo/startup-test.html?begin=12345678 -->
<!-- In-line this to avoid compilation. -->
<body onload="
var now = (new Date()).getTime();
var begin = document.location.search.split('=')[1]; // ?begin=nnnnn
var startupTime = now - begin;
document.write('\n\nStartup time = ' + startupTime + ' ms<br>');
if (window.dump) {
dump('\n\n__startuptime,' + startupTime + '\n\n');
}

View File

@@ -0,0 +1,230 @@
#!c:/Python24/python.exe
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
"""A set of functions to run the Tp test.
The Tp test measures page load times in Firefox. It does this with a
JavaScript script that opens a new window and cycles through page loads
from the local disk, timing each one. The script dumps the sum of the
mean times to open each page, and the standard deviation, to standard out.
We can also measure performance attributes during the test. See
http://technet2.microsoft.com/WindowsServer/en/Library/86b5d116-6fb3-427b-af8c-9077162125fe1033.mspx?mfr=true
for a description of what can be measured.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
import os
import re
import shutil
import time
import win32pdh
import win32pdhutil
import ffprocess
import ffprofile
import paths
# Regular expression to get stats for page load test (Tp)
TP_REGEX = re.compile('__start_page_load_report(.*)__end_page_load_report',
re.DOTALL | re.MULTILINE)
def AddCounter(counter_name):
"""Adds a pdh query and counter of the given name to Firefox.
Args: counter_name: The name of the counter to add, i.e. "% Processor Time"
Returns:
(query handle, counter handle)
"""
path = win32pdh.MakeCounterPath( (None,
'process',
'firefox',
None,
-1,
counter_name) )
hq = win32pdh.OpenQuery()
try:
hc = win32pdh.AddCounter(hq, path)
except:
win32pdh.CloseQuery(hq)
return hq, hc
def CleanupCounter(hq, hc):
"""Cleans up a counter after it is no longer needed.
Args:
hq: handle to the query for the counter
hc: handle to the counter
"""
try:
win32pdh.RemoveCounter(hc)
win32pdh.CloseQuery(hq)
except:
# Sometimes we get unexpected win32 errors. Not much can be done.
pass
def GetCounterValue(hq, hc):
"""Returns the current value of the given counter
Args:
hq: Handle of the query for the counter
hc: Handle of the counter
Returns:
The current value of the counter
"""
try:
win32pdh.CollectQueryData(hq)
type, val = win32pdh.GetFormattedCounterValue(hc, win32pdh.PDH_FMT_LONG)
return val
except:
return None
def RunPltTests(source_profile_dir,
profile_configs,
num_cycles,
counters,
resolution):
"""Runs the Page Load tests with profiles created from the given
base diectory and list of configuations.
Args:
source_profile_dir: Full path to base directory to copy profile from.
profile_configs: Array of configuration options for each profile.
These are of the format:
[{prefname:prevalue,prefname2:prefvalue2},
{extensionguid:path_to_extension}],[{prefname...
num_cycles: Number of times to cycle through all the urls on each test.
counters: Array of counters ("% Processor Time", "Working Set", etc)
See http://technet2.microsoft.com/WindowsServer/en/Library/86b5d116-6fb3-427b-af8c-9077162125fe1033.mspx?mfr=true
for a list of available counters and their descriptions.
resolution: Time (in seconds) between collecting counters
Returns:
A tuple containing:
An array of plt results for each run. For example:
["mean: 150.30\nstdd:34.2", "mean 170.33\nstdd:22.4"]
An array of counter data from each run. For example:
[{"counter1": [1, 2, 3], "counter2":[4,5,6]},
{"counter1":[1,3,5], "counter2":[2,4,6]}]
"""
counter_data = []
plt_results = []
for config in profile_configs:
# Create the new profile
profile_dir = ffprofile.CreateTempProfileDir(source_profile_dir,
config[0],
config[1])
# Run Firefox once with new profile so initializing it doesn't cause
# a performance hit, and the second Firefox that gets created is properly
# terminated.
ffprofile.InitializeNewProfile(config[2], profile_dir)
ffprocess.SyncAndSleep()
# Run the plt test for this profile
timeout = 300
total_time = 0
output = ''
url = paths.TP_URL + '?cycles=' + str(num_cycles)
command_line = ffprocess.GenerateFirefoxCommandLine(config[2], profile_dir, url)
handle = os.popen(command_line)
# PDH might need to be "refreshed" if it has been queried while
# Firefox is closed.
win32pdh.EnumObjects(None, None, 0, 1)
# Initialize counts
counts = {}
counter_handles = {}
for counter in counters:
counts[counter] = []
counter_handles[counter] = AddCounter(counter)
while total_time < timeout:
# Sleep for [resolution] seconds
time.sleep(resolution)
total_time += resolution
# Get the output from all the possible counters
for count_type in counters:
val = GetCounterValue(counter_handles[count_type][0],
counter_handles[count_type][1])
if (val):
# Sometimes the first sample can be None, or PLT test will have
# closed Firefox by this point. Only count real values.
counts[count_type].append(val)
# Check to see if page load times were outputted
(bytes, current_output) = ffprocess.NonBlockingReadProcessOutput(handle)
output += current_output
match = TP_REGEX.search(output)
if match:
plt_results.append(match.group(1))
break;
# Cleanup counters
for counter in counters:
CleanupCounter(counter_handles[counter][0], counter_handles[counter][1])
# Firefox should have exited cleanly, but close it if it doesn't
# after 2 seconds.
time.sleep(2)
ffprocess.TerminateAllProcesses("firefox")
ffprocess.SyncAndSleep()
# Delete the temp profile directory Make it writeable first,
# because every once in a while Firefox seems to drop a read-only
# file into it.
ffprofile.MakeDirectoryContentsWritable(profile_dir)
shutil.rmtree(profile_dir)
counter_data.append(counts)
return (plt_results, counter_data)

View File

@@ -0,0 +1,151 @@
#!c:/Python24/python.exe
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
"""A set of functions to run the Ts test.
The Ts test measures startup time for Firefox. It does this by running
Firefox with a special page that takes an argument containing the current
time, and when the page loads (and Firefox is fully started), it writes
the difference between that time and the now-current time to stdout. The
test is run a few times for different profiles, so we can tell if our
extension affects startup time.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
import re
import shutil
import time
import ffprocess
import ffprofile
import paths
# Regular expression to get the time for startup test (Ts)
TS_REGEX = re.compile('__startuptime,(\d*)')
def IsInteger(number):
"""Helper function to determine if a variable is an integer"""
try:
int(number)
except:
return False
return True
def RunStartupTest(firefox_path, profile_dir, num_runs, timeout):
"""Runs the Firefox startup test (Ts) for the given number
of times and returns the output. If running with a brand
new profile, make sure to call InitializeNewProfile() first.
Args:
firefox_path: The path to the firefox exe to run
profile_dir: The directory of the profile to use
num_runs: The number of times to run the startup test
(1 extra dummy run at the beginning will be thrown out)
timeout: The time in seconds to wait before failing and terminating Firefox
Returns:
Array containing startup times in milliseconds
"""
startup_times = []
for i in range(-1, num_runs):
# Make sure we don't get "Firefox is already running..." errors
ffprocess.SyncAndSleep()
# Create a command line that passes in the url of the startup test
# with the current time as the begin_time argument
time_arg = int(time.time() * 1000)
url = paths.TS_URL + str(time_arg)
command_line = ffprocess.GenerateFirefoxCommandLine(firefox_path, profile_dir, url)
(match, timed_out) = ffprocess.RunProcessAndWaitForOutput(command_line,
'firefox',
TS_REGEX,
timeout)
if timed_out or not IsInteger(match):
match = None
if i > -1 and match and match > 0:
startup_times.append(match)
return startup_times
def RunStartupTests(source_profile_dir, profile_configs, num_runs):
"""Runs the startup tests with profiles created from the
given base profile directory and list of configurations.
Args:
source_profile_dir: Full path to base directory to copy profile from.
profile_configs: Array of configuration options for each profile.
These are of the format:
[{prefname:prevalue,prefname2:prefvalue2},{extensionguid:path_to_extension}],[{prefname...
num_runs: Number of times to run startup tests for each profile
Returns:
Array of arrays of startup times, one for each profile.
"""
all_times = []
for config in profile_configs:
# Create the new profile
profile_dir = ffprofile.CreateTempProfileDir(source_profile_dir,
config[0],
config[1])
# Run Firefox once with new profile so initializing it doesn't
# cause a performance hit, and the second Firefox that gets
# created is properly terminated.
ffprofile.InitializeNewProfile(config[2], profile_dir)
# Run the startup tests for this profile and log the results.
times = RunStartupTest(config[2], profile_dir, 5, 30)
all_times.append(times)
# Delete the temp profile directory. Make it writeable first,
# because every once in a while Firefox seems to drop a read-only
# file into it.
ffprocess.SyncAndSleep()
ffprofile.MakeDirectoryContentsWritable(profile_dir)
shutil.rmtree(profile_dir)
return all_times