<!--

Copyright MetaCommunications, Inc. 2003-2005.

Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)

-->

<div class="legend">
<table border="0" summary="report description">
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="success legend">
                <tr class="summary-row-single"><td class="summary-success-expected user-summary-success-expected">&#160;pass&#160;</td></tr>
                </table>
        </td>
        <td class="legend-explanation">
            All library's tests pass.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="expected fail legend">
                <tr class="summary-row-single"><td class="summary-fail-expected user-summary-fail-expected"><u>details</u></td></tr>
            </table>
        </td>
        <td class="legend-explanation">
            Most of the library's tests pass, but there are some <b>known failures</b> which might affect the library's
            functionality. Please follow the link to see the detailed report.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="unexpected new fail legend">
                <tr class="summary-row-single"><td class="summary-fail-unexpected-new user-summary-fail-unexpected-new"><u>details</u></td></tr>
            </table>
        </td>
        <td class="legend-explanation">
            Some of the <b>newly added</b> library's tests fail, or some of the library's tests fail on
            the <b>newly added compiler</b>, or some of the tests fail due to <b>unresearched 
            reasons</b>. Please follow the link to see the detailed report.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="unexpected fail legend">
                <tr class="summary-row-single"><td class="summary-fail-unexpected user-summary-fail-unexpected"><u>regress.</u></td></tr>
            </table>
        </td>
        <td class="legend-explanation">
            There are some <b>regressions</b> in the library comparing to the previous release. 
            Please follow the link to see the detailed report.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="unusable legend">
                <tr class="summary-row-single"><td class="summary-unusable user-summary-unusable">unusable</td></tr>
            </table>
        </td>
        <td class="legend-explanation">
            The library author marked it as <b>unusable</b> on the particular platform/toolset.
            Please follow the link to see the detailed report.
        </td>
    </tr>
</table>
<hr/>
<table border="0" summary="report description" id="Table1">
    <tr>
        <td><span class="run-type-incremental">i</span></td>
        <td class="legend-explanation">An incremental run.</td>
    </tr>
</table>
</div>
