<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Testing the Mobilization Filter</title>
<meta name="robots" content="index, nofollow"/>
<meta name="description" content="This page is for testing the mobilization filter [&hellip;]"/>
<meta name="viewport" content="width=100px;"/>
<link rel="stylesheet" href="http://test.com/not-a-valid-stylesheet.css" type="text/css" media="screen, projection"/>
<!--[if lte IE 8]><link rel="stylesheet" href="http://test.com/another-stylesheet.css" type="text/css" media="screen, projection" /><![endif]-->
<link rel="stylesheet" href="http://anothersite.com/style.css" type="text/css" media="screen, projection"/>
<script type='text/javascript' src='http://test.com/not-valid.js'></script>
<link media="screen, projection" type="text/css" href="http://content.site.com/not-valid.css" rel="stylesheet"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://test.com/custom.js"></script>
</head>
<body class="custom">
  <div id="nav_area" class="full_width">
    <div class="page">
      <ul class="nav_menu">
        <li class="tab"><a href="http://test.com">Home</a></li>
        <li class="tab"><a href="http://test.com/about" title="About">About</a></li>
        <li class="tab"><a href="http://test.com/articles" title="Articles">Articles</a></li>
        <li class="tab"><a href="http://test.com/rss" title="RSS Feed" rel="nofollow">RSS</a></li>
      </ul>
    </div>
  </div>
  <script>
    document.getElementById("stuff00").innerHTML = "JavaScript!";
    alert('00');
  </script>
  <div id="header_area" class="full_width">
    <div class="page" id="PageSpeed-header_area-0">
      <div id="header">
        <p id="title"><a href="http://test.com/">Mobilize all the Things</a></p>
        <div id="PageSpeed-header-1">
          <h1 id="author">Foobar</h1>
          <h2 id="date"></h2>
        </div>
      </div>
    </div>
    <div class="navbar" id="PageSpeed-header_area-1">
      <a href="http://test.com/way_cool">Way Cool</a>
        <ul>
          <li><a href="first">first</a>
          <li><a href="second">second</a>
          <li><a href="third">third</a>
        </ul>
      <a href="http://test.com/mondo">Mondo</a>
      <a href="http://test.com/outrageous">Outrageous</a>
      <a href="http://test.com/funky">Funky</a>
    </div>
    <script>
      document.getElementById("stuff01").innerHTML = "";
      alert('01');
    </script>
  </div>
  <div id="content_area" class="full_width">
    <div class="aside">
      <script>
        document.getElementById("stuff02").innerHTML = "";
        alert('02');
      </script>
      <form action="http://test.com/form/" method="get">
        <ul><li class="widget">
            <h3>Months</h3>
            <select name="archive">
              <option value="">Select Month</option>
              <option value='http://test.com/m=apr'>April</option>
              <option value='http://test.com/m=may'>May</option>
              <option value='http://test.com/m=jun'>June</option>
            </select>
          </li><li class="widget">
            <h3>Categories</h3>
            <select name='cat' id='cat'>
              <option value="">Select Category</option>
              <option value='http://test.com/c=gnarly'>Gnarly</option>
              <option value='http://test.com/c=tubular'>Tubular</option>
              <option value='http://test.com/c=groovy'>Awesome</option>
            </select>
        </li></ul>
      </form>
    </div>
    <div class="page">
      <div id="content" class="feed">
        <div class="post type-post status-publish">
          <div class="headline_area" id="PageSpeed-content-0-0">
            <h1 class="entry-title">Isn't Mobilization Cool!?</h1>
            <p class="headline_author">
              <span class="author">Foobar</span><br/>
              <abbr class="published" title="2014-01-01">2014-01-01</abbr>
            </p>
          </div>
          <div class="entry-content">
            <div class="empty"></div>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur mi est, pulvinar id euismod non, aliquam non dui.<br/>
              Quisque vehicula luctus magna vitae lobortis. Suspendisse lacinia enim nisl. In id euismod augue, at consequat justo
              <a href="http://google.com/">vestibulum mollis</a> porta leo sed placerat. Aenean consectetur
              tristique dolor vel interdum. Fusce blandit blandit dolor non dignissim.</p>
            <p>Vivamus vel odio gravida felis malesuada luctus. Quisque sit amet eros ipsum. Nunc id enim non justo lobortis gravida. Aenean
              hendrerit mollis velit, eget sollicitudin magna malesuada porttitor. Nam molestie lorem enim, sit amet imperdiet odio dapibus eu.
              Phasellus nec feugiat sem. Etiam elit ligula, tincidunt lobortis sodales nec, laoreet in orci.</p>
            <p><img align="middle" src="http://test.com/foobar.png"/></p>
            <p>Vivamus dapibus dictum neque et adipiscing. Suspendisse sit amet purus lacinia, feugiat turpis eget, viverra libero.</p>
            <pre class="brush: bash; title: ; notranslate" title="">
// my first program in C++
#include <iostream>

int main()
{
  std::cout << "Hello World!";
}
            </pre>
            <p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc eu turpis lorem.</p>
            <p>Vestibulum ut justo nulla. Sed condimentum nunc ante, <a href="http://google.com/">vestibulum mollis</a>
              eget convallis nibh sodales eu. Praesent eget eleifend mi, ut ullamcorper justo.</p>
            <h3>Nunc eu turpis lorem</h3>
            <p>Nunc ut pulvinar turpis. In lacinia arcu eget augue lacinia, et consectetur quam interdum.</p>
            <p>Aenean nec lacus ac sapien ultrices placerat non ac sem.</p>
          </div>
        </div>
      </div>
    </div>
  </div>
  <p>Aenean nec lacus ac sapien ultrices placerat non ac sem. Quisque accumsan porta tortor semper egestas.</p>
  <div class="footer" id="PageSpeed-6">
    Nulla ac elit sed urna molestie iaculis. Morbi posuere ac libero in fringilla.
    <br><a class="top"></a>
  </div>
<script type="text/javascript">pagespeedHeaderIds=['header','PageSpeed-content-0-0'];
pagespeedNavigationalIds=['nav_area','PageSpeed-header_area-1'];
pagespeedContentIds=['PageSpeed-header_area-0','PageSpeed-header-1','content_area'];
pagespeedMarginalIds=['PageSpeed-6'];
</script></body>
