<html><head><title>Epydoc Redirect Page</title>
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="pragma" content="no-cache" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>
<body>
<script type="text/javascript">
<!--
var pages = ["rcssmin-m"];
var dottedName = get_anchor();
if (dottedName) {
    var target = redirect_url(dottedName);
    if (target) window.location.replace(target);
}
// -->
</script>

<h3>Epydoc Auto-redirect page</h3>

<p>When javascript is enabled, this page will redirect URLs of
the form <tt>redirect.html#<i>dotted.name</i></tt> to the
documentation for the object with the given fully-qualified
dotted name.</p>
<p><a id="message"> &nbsp; </a></p>

<script type="text/javascript">
<!--
if (dottedName) {
    var msg = document.getElementById("message");
    msg.innerHTML = "No documentation found for <tt>"+
                    dottedName+"</tt>";
}
// -->
</script>

</body>
</html>
