<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[279169] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/279169">279169</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2021-06-23 08:37:56 -0700 (Wed, 23 Jun 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>Update WPT tools from upstream
https://bugs.webkit.org/show_bug.cgi?id=227255

Reviewed by Jonathan Bedard.

LayoutTests/imported/w3c:

Update WPT tools from upstream 94d018bb5d7c0d46df7ba1.

* web-platform-tests/tools/*: Updated.

Tools:

* Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer.__init__):
The WPT server requires Python v3 to run so fallback to python3 executable if
the python executable is v2.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkLayoutTestshttpwptbeaconresourcesbeaconpreflightpy">trunk/LayoutTests/http/wpt/beacon/resources/beacon-preflight.py</a></li>
<li><a href="#trunkLayoutTestshttpwptbeaconresourcesredirectpy">trunk/LayoutTests/http/wpt/beacon/resources/redirect.py</a></li>
<li><a href="#trunkLayoutTestshttpwptcrossoriginresourcepolicyresourcesimagepy">trunk/LayoutTests/http/wpt/cross-origin-resource-policy/resources/image.py</a></li>
<li><a href="#trunkLayoutTestshttpwptfetchresourcesdntstatuspy">trunk/LayoutTests/http/wpt/fetch/resources/dnt-status.py</a></li>
<li><a href="#trunkLayoutTestshttpwptfetchresourcesfetchxhrloadpy">trunk/LayoutTests/http/wpt/fetch/resources/fetch-xhr-load.py</a></li>
<li><a href="#trunkLayoutTestshttpwptfetchresourcesiframewithimagepy">trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py</a></li>
<li><a href="#trunkLayoutTestshttpwptfetchresourcesimageloadpy">trunk/LayoutTests/http/wpt/fetch/resources/image-load.py</a></li>
<li><a href="#trunkLayoutTestshttpwptfetchresourcesredirectpy">trunk/LayoutTests/http/wpt/fetch/resources/redirect.py</a></li>
<li><a href="#trunkLayoutTestshttpwptfetchresourcesstorecspreportpy">trunk/LayoutTests/http/wpt/fetch/resources/store-csp-report.py</a></li>
<li><a href="#trunkLayoutTestshttpwptprefetchresourcesmainresourcecrossoriginvarycookiepy">trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py</a></li>
<li><a href="#trunkLayoutTestshttpwptprefetchresourcesmainresourceskipdiskcachepy">trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-skip-disk-cache.py</a></li>
<li><a href="#trunkLayoutTestshttpwptprefetchresourcesprefetchedmainresourceredirectpy">trunk/LayoutTests/http/wpt/prefetch/resources/prefetched-main-resource-redirect.py</a></li>
<li><a href="#trunkLayoutTestshttpwptpreloadresourcesreferrerimgpy">trunk/LayoutTests/http/wpt/preload/resources/referrer-img.py</a></li>
<li><a href="#trunkLayoutTestshttpwptresourcetimingresourcesrtrevalidationresponsepy">trunk/LayoutTests/http/wpt/resource-timing/resources/rt-revalidation-response.py</a></li>
<li><a href="#trunkLayoutTestshttpwptresourcesredirectpy">trunk/LayoutTests/http/wpt/resources/redirect.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourcescheckserviceworkerheaderpy">trunk/LayoutTests/http/wpt/service-workers/resources/check-service-worker-header.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourcesfileuploadcheckpy">trunk/LayoutTests/http/wpt/service-workers/resources/file-upload-check.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourceslengthypasspy">trunk/LayoutTests/http/wpt/service-workers/resources/lengthy-pass.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourcespersistentimportScriptsscriptpy">trunk/LayoutTests/http/wpt/service-workers/resources/persistent-importScripts-script.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourcespersistentimportedmodulescriptpy">trunk/LayoutTests/http/wpt/service-workers/resources/persistent-imported-module-script.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourcesresponsefullofheaderspy">trunk/LayoutTests/http/wpt/service-workers/resources/response-full-of-headers.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourcessetcookiepy">trunk/LayoutTests/http/wpt/service-workers/resources/set-cookie.py</a></li>
<li><a href="#trunkLayoutTestshttpwptserviceworkersresourcesupdateworkerpy">trunk/LayoutTests/http/wpt/service-workers/resources/update-worker.py</a></li>
<li><a href="#trunkLayoutTestshttpwptwebaudioresourcesdummyworkletpy">trunk/LayoutTests/http/wpt/webaudio/resources/dummy-worklet.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsbeaconresourcesbeaconpreflightpy">trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon-preflight.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsbeaconresourcesredirectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/redirect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonechopy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/echo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommongethostinfosubjs">trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonredirectoptinpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/redirect-opt-in.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsabjs">trunk/LayoutTests/imported/w3c/web-platform-tests/common/sab.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesREADMEmd">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/README.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesscopedocumentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/document.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesscopeutilpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/util.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesscopeworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceaudiopy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/audio.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcedocumentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/document.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceemptypy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/empty.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcefontpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/font.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceimagepy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/image.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcereferrerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/referrer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcescriptpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/script.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcesharedworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/shared-worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcestaticimportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/static-import.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcestylesheetpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/stylesheet.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcesubresourcepy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/subresource.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcesvgpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/svg.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcevideopy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/video.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcexhrpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/xhr.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturestoolsgeneratepy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/generate.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturestoolsspecsrcjson">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/spec.src.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturestoolsutilpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/util.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonslowpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonstringifiersjs">trunk/LayoutTests/imported/w3c/web-platform-tests/common/stringifiers.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/common/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyframeancestorsreportonlyframesubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetochildnavigatesparentblockedsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/child-navigates-parent-blocked.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetoformblockedsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/form-blocked.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetohreflocationblockedsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/href-location-blocked.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetolinkclickblockedsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/link-click-blocked.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetometarefreshblockedsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/meta-refresh-blocked.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetoparentnavigateschildblockedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/parent-navigates-child-blocked-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyreportingreportonlyunsafeevalexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyreportingreportoriginalurlonmixedcontentframehttpssubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyreportingsupportredirectthrowfunctionsubpy">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/support/redirect-throw-function.sub.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicysupportcheckReportsubjs">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/checkReport.sub.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicysupportreportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/report.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscookiesresourcesechojsonpy">trunk/LayoutTests/imported/w3c/web-platform-tests/cookies/resources/echo-json.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestresourcescachepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesauthenticationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/authentication.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesbadchunkencodingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcescachepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/cache.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcescleanstashpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/clean-stash.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesechocontentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/echo-content.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesinfiniteslowresponsepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/infinite-slow-response.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesinspectheaderspy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/inspect-headers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesmethodpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/method.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcespreflightpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesredirectemptylocationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect-empty-location.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesredirectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesscriptwithheaderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/script-with-header.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesstashputpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-put.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesstashtakepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-take.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesstatuspy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/status.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcestricklepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/trickle.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchcontenttyperesourcescontenttypepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/content-type/resources/content-type.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchhttpcacheresourceshttpcachepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/http-cache.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchhttpcacheresourcessecuredimagepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/securedimage.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchoriginresourcesredirectandstashpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/redirect-and-stash.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchoriginresourcesreferrerpolicypy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/referrer-policy.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchrangeresourceslongwavpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/range/resources/long-wav.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchstalewhilerevalidateresourcesstaleframepy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/stale-while-revalidate/resources/stale-frame.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementiframeloadinglazyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementmovingbetweendocumentsresourcesmovingbetweendocumentsiframepy">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/resources/moving-between-documents-iframe.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingTAOportmismatchmeanscrossoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-port-mismatch-means-crossorigin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingcrossoriginstartendtimewithredirectsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingresource_timing_content_lengthexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_content_length-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingresourcesfake_responsespy">trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/fake_responses.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingresourcespreflightpy">trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/preflight.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesbytecheckworkerimportedscriptpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker-imported-script.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesbytecheckworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesfetchaccesscontrolpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-access-control.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesimportscriptsgetpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-get.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesimportscriptsversionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-version.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesinvalidchunkedencodingwithflushpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding-with-flush.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesinvalidchunkedencodingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmalformedworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/malformed-worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmimetypeworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mime-type-worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmintnewworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mint-new-worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmultipartimagepy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/multipart-image.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesnavigationredirectbodypy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-body.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesnavigationredirectoutscopepy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesnotification_iconpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/notification_icon.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcestricklepy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/trickle.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesupdateworkerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/update-worker.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerworkerinterceptionhttpsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsMETAyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/META.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscertscacertkey">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.key</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscertscacertpem">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.pem</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscertswebplatformtestkey">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/web-platform.test.key</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscertswebplatformtestpem">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/web-platform.test.pem</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciazureaffected_testsyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/azure/affected_tests.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciazurefyi_hookyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/azure/fyi_hook.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciazureinstall_chromeyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/azure/install_chrome.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciazureinstall_firefoxyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/azure/install_firefox.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciazureinstall_pythonyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/azure/install_python.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciazureinstall_safariyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/azure/install_safari.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciazuresafaritechnologypreviewrb">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/azure/safari-technology-preview.rb</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscici_tools_integration_testsh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/ci_tools_integration_test.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscici_tools_unittestsh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/ci_tools_unittest.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscici_wptrunner_infrastructuresh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscijobspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/jobs.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscimanifest_buildpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/manifest_build.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscirun_tcpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/run_tc.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitaskclusterrunpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/taskcluster-run.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitcdecisionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/decision.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitcdownloadpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/download.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitcgithub_checks_outputpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/github_checks_output.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitcsink_taskpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/sink_task.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitctaskgraphpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/taskgraph.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitctaskstestyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/tasks/test.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitcteststest_decisionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/tests/test_decision.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitcteststest_validpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/tests/test_valid.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitctestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciwebsite_buildsh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/website_build.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsdockerREADMEmd">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/docker/README.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsdockerfrontendpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/docker/frontend.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsdockerretrypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/docker/retry.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsgitignoregitignorepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/gitignore.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslintfnmatchpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/lint/fnmatch.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslintlintpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/lint/lint.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslintrulespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/lint/rules.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslinttestsbasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslintteststest_file_lintspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/test_file_lints.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslintteststest_lintpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/test_lint.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslintteststest_path_lintspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/lint/tests/test_path_lints.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolslocalpathspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/localpaths.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestXMLParserpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/XMLParser.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestdownloadpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/download.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestitempy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/item.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestlogpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/log.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestmanifestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/manifest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestsourcefilepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/sourcefile.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifesttestpathspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/testpaths.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestteststest_itempy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/tests/test_item.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestteststest_manifestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/tests/test_manifest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestteststest_sourcefilepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/tests/test_sourcefile.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestteststest_utilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/tests/test_utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifesttypedatapy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/typedata.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestupdatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/update.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestvcspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/vcs.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmypyini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/mypy.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsquiccommandsjson">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/quic/commands.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsquicquic_transport_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/quic/quic_transport_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsquicrequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/quic/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsquicservepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/quic/serve.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsrequirements_flake8txt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/requirements_flake8.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsrequirements_mypytxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/requirements_mypy.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsrunnerreportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/runner/report.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsrunnerrunnerjs">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/runner/runner.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsserveservepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/serve/serve.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsservetest_functionalpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/serve/test_functional.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsservetest_servepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/serve/test_serve.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsservewavepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/serve/wave.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyenumPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/enum/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyenumenum__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/enum/enum/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyenumenumdocw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/enum/enum/doc/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyenumenumtestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/enum/enum/test.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyenumsetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/enum/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyenumsetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/enum/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsCHANGELOG">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/CHANGELOG</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsdocsindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/docs/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsfuncsigs__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/funcsigs/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsfuncsigsversionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/funcsigs/version.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsfuncsigsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/funcsigs/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsrequirementsdevelopmenttxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/requirements/development.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsrequirementsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/requirements/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigssetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsteststest_formatannotationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/tests/test_formatannotation.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsteststest_funcsigspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/tests/test_funcsigs.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsteststest_inspectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/tests/test_inspect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2CONTRIBUTORSrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/CONTRIBUTORS.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2HISTORYrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/HISTORY.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2MANIFESTin">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/MANIFEST.in</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2docssourceapirst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/docs/source/api.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2docssourcebasicusagerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/docs/source/basic-usage.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2docssourceconfpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/docs/source/conf.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2docssourcenegotiatinghttp2rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/docs/source/negotiating-http2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2docssourcetwistedheadexamplerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/docs/source/twisted-head-example.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2docssourcetwistedpostexamplerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/docs/source/twisted-post-example.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplesasyncioasyncioserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/asyncio/asyncio-server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplesasynciowsgiserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/asyncio/wsgi-server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplescuriocurioserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/curio/curio-server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2exampleseventleteventletserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/eventlet/eventlet-server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplesfragmentsclient_https_setup_fragmentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/fragments/client_https_setup_fragment.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplesfragmentsclient_upgrade_fragmentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/fragments/client_upgrade_fragment.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplesfragmentsserver_https_setup_fragmentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/fragments/server_https_setup_fragment.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplesfragmentsserver_upgrade_fragmentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/fragments/server_upgrade_fragment.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplestwistedhead_requestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/twisted/head_request.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplestwistedpost_requestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/twisted/post_request.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2examplestwistedtwistedserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/examples/twisted/twisted-server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2h2__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/h2/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2h2configpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/h2/config.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2h2connectionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/h2/connection.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2h2eventspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/h2/events.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2h2settingspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/h2/settings.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2h2streampy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/h2/stream.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2h2utilitiespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/h2/utilities.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2setupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2setuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_basic_logicpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_basic_logic.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_closed_streamspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_closed_streams.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_eventspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_events.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_flow_control_windowpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_flow_control_window.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_h2_upgradepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_h2_upgrade.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_head_requestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_head_request.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_invalid_frame_sequencespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_invalid_frame_sequences.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_invalid_headerspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_invalid_headers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_settingspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_settings.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_stream_resetpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_stream_reset.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2testtest_utility_functionspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test/test_utility_functions.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2test_requirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/test_requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2toxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyh2utilsbackportsh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/h2/utils/backport.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframeHISTORYrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/HISTORY.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframePKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframehyperframe__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/hyperframe/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframehyperframeflagspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/hyperframe/flags.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframehyperframeframepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/hyperframe/frame.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframehyperframeegginfoPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/hyperframe.egg-info/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframesetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframesetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyhyperframetesttest_framespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/hyperframe/test/test_frames.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyCHANGELOGrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/CHANGELOG.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyappveyoryml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/appveyor.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsapi_referencerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/api_reference.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsconfpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/conf.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexamplesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggysetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingbenchmarkpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/benchmark.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_detailspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_details.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_helperspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_helpers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_multicallpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_multicall.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_pluginmanagerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_pluginmanager.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_tracerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_tracer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestAUTHORS">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/AUTHORS</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestCHANGELOGrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/CHANGELOG.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestCONTRIBUTINGrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/CONTRIBUTING.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestbenchbenchpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/bench/bench.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestbenchbench_argcompletepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/bench/bench_argcomplete.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestbenchemptypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/bench/empty.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestbenchmanyparampy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/bench/manyparam.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestbenchskippy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/bench/skip.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestchangelogREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/changelog/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestchangelog_templaterst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/changelog/_template.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenMakefile">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/Makefile</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocen_templatesglobaltochtml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/_templates/globaltoc.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocen_templateslayouthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/_templates/layout.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocen_templatesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/_templates/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenadoptrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/adopt.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannounceindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease200rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.0.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease201rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.0.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease210rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.1.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease220rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.2.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease230rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.3.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease234rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.3.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease235rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.3.5.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease240rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.4.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease250rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.5.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease251rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.5.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease252rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.5.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease260rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.6.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease261rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.6.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease262rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.6.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease263rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.6.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease270rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.7.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease271rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.7.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease272rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.7.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease282rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.8.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease283rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.8.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease284rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.8.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease285rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.8.5.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease286rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.8.6.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease287rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.8.7.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease290rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.9.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease291rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.9.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease292rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-2.9.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease300rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease301rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease302rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease303rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease304rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease305rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.5.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease306rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.6.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease307rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.0.7.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease310rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.1.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease311rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.1.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease312rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.1.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease313rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.1.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease320rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.2.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease321rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.2.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease322rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.2.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease323rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.2.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease324rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.2.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease325rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.2.5.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease330rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.3.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease331rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.3.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease332rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.3.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease340rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.4.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease341rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.4.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease342rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.4.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease350rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.5.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease351rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.5.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease360rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.6.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease361rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.6.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease362rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.6.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenassertrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/assert.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenbackwardscompatibilityrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/backwards-compatibility.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenbashcompletionrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/bash-completion.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenbuiltinrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/builtin.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocencacherst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/cache.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocencapturerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/capture.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenchangelogrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/changelog.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenconfpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/conf.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocencontentsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/contents.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocencustomizerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/customize.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocendevelopment_guiderst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/development_guide.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocendoctestrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/doctest.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleassertionfailure_demopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/assertion/failure_demo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleassertionglobal_testmodule_configconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/assertion/global_testmodule_config/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleassertionglobal_testmodule_configtest_hello_worldpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/assertion/global_testmodule_config/test_hello_world.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleassertiontest_failurespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/assertion/test_failures.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleassertiontest_setup_flow_examplepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/assertion/test_setup_flow_example.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleatticrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/attic.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplemarkersrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/markers.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplemultipythonpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/multipython.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplenonpythonconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/nonpython/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplenonpythonw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/nonpython/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplenonpythonrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/nonpython.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexampleparametrizerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/parametrize.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplepythoncollectionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/pythoncollection.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplepythoncollectionrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/pythoncollection.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplereportingdemorst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/reportingdemo.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplesimplerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/simple.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplespecialrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/special.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexistingtestsuiterst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/existingtestsuite.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenfixturerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/fixture.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenfuncarg_comparerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/funcarg_compare.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocengettingstartedrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/getting-started.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocengoodpracticesrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/goodpractices.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenhistoricalnotesrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/historical-notes.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenimgw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/img/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenlicenserst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/license.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenloggingrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/logging.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenmarkrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/mark.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenmonkeypatchrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/monkeypatch.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocennoserst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/nose.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenparametrizerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/parametrize.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenpluginsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/plugins.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenprojectsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/projects.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenproposalsparametrize_with_fixturesrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/proposals/parametrize_with_fixtures.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenpythonpathrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/pythonpath.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenreferencerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/reference.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenrequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenskippingrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/skipping.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocentalksrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/talks.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocentmpdirrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/tmpdir.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenunittestrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/unittest.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenusagerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/usage.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenwarningsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/warnings.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenwriting_pluginsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/writing_plugins.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenxunit_setuprst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/xunit_setup.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenyieldfixturerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/yieldfixture.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestextraget_issuespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/extra/get_issues.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestpyprojecttoml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/pyproject.toml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_argcompletepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_argcomplete.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_code__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_code/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_codecodepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_code/code.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_codesourcepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_code/source.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_codew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_code/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestassertion__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/assertion/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestassertionrewritepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/assertion/rewrite.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestassertiontruncatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/assertion/truncate.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestassertionutilpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/assertion/util.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestcacheproviderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/cacheprovider.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestcapturepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/capture.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestcompatpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/compat.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestconfig__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/config/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestconfigargparsingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/config/argparsing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestconfigexceptionspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/config/exceptions.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestconfigfindpathspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/config/findpaths.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestdebuggingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/debugging.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestdeprecatedpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/deprecated.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestdoctestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/doctest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestfixturespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/fixtures.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestfreeze_supportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/freeze_support.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytesthelpconfigpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/helpconfig.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytesthookspecpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/hookspec.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestjunitxmlpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/junitxml.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestloggingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/logging.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmainpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/main.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmark__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/mark/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmarkstructurespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/mark/structures.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmarkw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/mark/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmonkeypatchpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/monkeypatch.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestnodespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/nodes.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestnosepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/nose.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestoutcomespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/outcomes.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestpastebinpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/pastebin.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestpytesterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/pytester.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestpythonpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/python.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestpython_apipy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/python_api.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestrecwarnpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/recwarn.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestrunnerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/runner.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestsetuponlypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/setuponly.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestsetupplanpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/setupplan.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestskippingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/skipping.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestterminalpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/terminal.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytesttmpdirpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/tmpdir.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestunittestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/unittest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestwarningspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/warnings.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingacceptance_testpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/acceptance_test.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingcodetest_codepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/code/test_code.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingcodetest_excinfopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/code/test_excinfo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingcodetest_sourcepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/code/test_source.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingcodew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/code/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingdeprecated_testpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/deprecated_test.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingfreezecreate_executablepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/freeze/create_executable.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingfreezeruntests_scriptpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/freeze/runtests_script.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingloggingtest_fixturepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/logging/test_fixture.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingloggingtest_formatterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/logging/test_formatter.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingloggingtest_reportingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/logging/test_reporting.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonapproxpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/approx.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythoncollectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/collect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonintegrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonmetafuncpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/metafunc.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonraisespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/raises.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonshow_fixtures_per_testpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/show_fixtures_per_test.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_argcompletepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_argcomplete.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_assertionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_assertion.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_assertrewritepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_assertrewrite.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_cacheproviderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_cacheprovider.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_capturepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_capture.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_collectionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_collection.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_compatpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_compat.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_configpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_config.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_conftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_doctestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_doctest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_entry_pointspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_entry_points.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_helpconfigpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_helpconfig.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_junitxmlpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_junitxml.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_markpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_mark.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_monkeypatchpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_monkeypatch.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_nodespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_nodes.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_nosepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_nose.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_parseoptpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_parseopt.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_pastebinpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_pastebin.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_pluginmanagerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_pluginmanager.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_pytesterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_pytester.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_recwarnpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_recwarn.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_runnerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_runner.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_runner_xunitpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_runner_xunit.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_sessionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_session.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_skippingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_skipping.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_terminalpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_terminal.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_tmpdirpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_tmpdir.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_unittestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_unittest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_warningspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_warnings.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3exampleecho_clientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/example/echo_client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsockethandshake__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/handshake/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsockethandshakehybipy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/handshake/hybi.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsockethandshakew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/handshake/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsocketstandalonepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/standalone.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsocketstreampy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/stream.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsocketutilpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/util.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsocketwebsocket_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/websocket_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3setuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3testclient_for_testingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/test/client_for_testing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3testtest_endtoendpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/test/test_endtoend.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3testtest_handshakepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/test/test_handshake.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3testtest_handshake_hybipy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/test/test_handshake_hybi.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3testtest_http_header_utilpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/test/test_http_header_util.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolstoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswaveconfiguration_loaderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/configuration_loader.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavedatasessionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/data/session.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavenetworkapiapi_handlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/network/api/api_handler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavenetworkapiresults_api_handlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/network/api/results_api_handler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavenetworkapisessions_api_handlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/network/api/sessions_api_handler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavenetworkapitests_api_handlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/network/api/tests_api_handler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavenetworkhttp_handlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/network/http_handler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavenetworkstatic_handlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/network/static_handler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswaverequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetestingevent_dispatcherpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/testing/event_dispatcher.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetestingresults_managerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/testing/results_manager.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetestingsessions_managerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/testing/sessions_manager.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetestingtest_loaderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/testing/test_loader.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetestingtests_managerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/testing/tests_manager.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetestingwpt_reportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/testing/wpt_report.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswaveteststest_wavepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/tests/test_wave.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswaveutilsdeserializerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/utils/deserializer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswaveutilsserializerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/utils/serializer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswaveutilsuser_agent_parserpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/utils/user_agent_parser.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavewave_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/wave_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswebdriverwebdriver__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/webdriver/webdriver/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswebdriverwebdriverclientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/webdriver/webdriver/client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswebdriverwebdrivererrorpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/webdriver/webdriver/error.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswebdriverwebdriverprotocolpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/webdriver/webdriver/protocol.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswebdriverwebdrivertransportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/webdriver/webdriver/transport.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswebdriverwebdriverw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/webdriver/webdriver/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptandroidpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/android.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptbrowserpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/browser.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptinstallpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/install.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrevlistpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/revlist.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/run.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswpttestfilespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/testfiles.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptteststest_browserpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tests/test_browser.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptteststest_revlistpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tests/test_revlist.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptteststest_runpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tests/test_run.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptteststest_testfilespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tests/test_testfiles.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptteststest_wptpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tests/test_wpt.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswpttestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswpttoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptutilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptvirtualenvpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/virtualenv.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptwptpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/wpt.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerdocsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/docs/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_android_webviewtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_android_webview.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_chrometxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_chrome.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_chrome_androidtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_chrome_iostxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_chrome_ios.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_edgetxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_edge.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_edge_chromiumtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_edge_chromium.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_epiphanytxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_epiphany.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_firefoxtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_firefox.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_ietxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_ie.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_operatxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_opera.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_safaritxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_safari.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_saucetxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_sauce.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_servotxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_servo.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerrequirements_webkittxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/requirements_webkit.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnersetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnertoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersandroid_weblayerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/android_weblayer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersandroid_webviewpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/android_webview.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersbasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserschromepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserschrome_androidpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserschrome_iospy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_ios.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserschrome_spki_certspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_spki_certs.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersedgepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersedge_webdriverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/edge_webdriver.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersedgechromiumpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/edgechromium.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersepiphanypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/epiphany.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersfirefoxpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersfirefox_androidpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox_android.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersiepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersoperapy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/opera.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserssafaripy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/safari.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserssaucepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersservopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/servo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowsersservodriverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/servodriver.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserswebkitpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/webkit.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerbrowserswebkitgtk_minibrowserpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/browsers/webkitgtk_minibrowser.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerconfigpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/config.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerenvironmentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/environment.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsactionspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/actions.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsbasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsexecutorchromepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/executorchrome.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsexecutormarionettepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsexecutorseleniumpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsexecutorservopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsexecutorservodriverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsexecutorwebdriverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorsprotocolpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexecutorspytestrunnerrunnerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerexpectedtreepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/expectedtree.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerfontpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/font.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerformatterschromiumpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/formatters/chromium.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerformattersteststest_chromiumpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/formatters/tests/test_chromium.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerformatterstestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/formatters/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerformatterswptreportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/formatters/wptreport.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerformatterswptscreenshotpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/formatters/wptscreenshot.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerinstrumentspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/instruments.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnermanifestexpectedpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnermanifestincludepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnermanifestupdatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnermetadatapy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/metadata.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerproductspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/products.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerstabilitypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/stability.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestdriverextrajs">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestharnessreportservojs">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/testharnessreport-servo.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestharnessreportservodriverjs">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/testharnessreport-servodriver.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestharnessreportjs">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/testharnessreport.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestloaderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/testloader.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestrunnerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestsbrowserstest_saucepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnertestsbrowserstest_webkitgtkpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/tests/browsers/test_webkitgtk.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerteststest_formatterspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/tests/test_formatters.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerteststest_productspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/tests/test_products.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerteststest_testloaderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/tests/test_testloader.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerteststest_updatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/tests/test_update.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerteststest_wpttestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/tests/test_wpttest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerupdatebasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/update/base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerupdatestatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/update/state.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerupdatesyncpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerupdatetreepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerupdateupdatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/update/update.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnervcspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/vcs.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwebdriver_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptcommandlinepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptloggingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptlogging.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptmanifestbackendsbasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptmanifestbackendsconditionalpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/conditional.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptmanifestnodepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/node.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptmanifestparserpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/parser.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptmanifestserializerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/serializer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptmanifestteststest_serializerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwptrunnerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerwpttestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservesetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionalbasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaldocrootsubdirimport_handlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/docroot/subdir/import_handler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaltest_handlerspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/test_handlers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaltest_input_filepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/test_input_file.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaltest_pipespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaltest_requestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/test_request.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaltest_responsepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/test_response.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaltest_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/test_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservetestsfunctionaltest_stashpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/functional/test_stash.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptserveteststest_configpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/test_config.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptserveteststest_replacement_tokenizerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/test_replacement_tokenizer.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptserveteststest_requestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/test_request.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptserveteststest_responsepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/test_response.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptserveteststest_stashpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/tests/test_stash.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptserveconfigpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/config.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptservehandlerspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/handlers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptserveloggerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/logger.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptservepipespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/pipes.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptserverequestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/request.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptserveresponsepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/response.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptserverouterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/router.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptserveserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptservesslutilsopensslpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/sslutils/openssl.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptservestashpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/stash.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptserveutilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptservew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswasmjsapiglobalvaluesetanyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswasmjsapiglobalvaluesetanyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsworkletsidlharnessworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/worklets/idlharness.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesaccesscontrolpreflightrequestheadersortedpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/access-control-preflight-request-header-sorted.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesaccesscontrolpreflightrequestheadersoriginpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/access-control-preflight-request-headers-origin.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesaccesscontrolpreflightrequestinvalidstatuspy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/access-control-preflight-request-invalid-status.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesaccesscontrolpreflightrequestmustnotcontaincookiepy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/access-control-preflight-request-must-not-contain-cookie.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesauthenticationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/authentication.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourceschunkedpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/chunked.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesconditionalpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/conditional.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcescontentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/content.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesechomethodpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/echo-method.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesgzippy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/gzip.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesinspectheaderspy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/inspect-headers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesinvalidutf8htmlpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/invalid-utf8-html.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourceslastmodifiedpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/last-modified.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesredirectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/redirect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcesshiftjishtmlpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/shift-jis-html.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourcestricklepy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/trickle.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsxhrresourceswin1252xmlpy">trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/resources/win-1252-xml.py</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpylayout_testsserversweb_platform_test_serverpy">trunk/Tools/Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonblankwithcorshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonblankwithcorshtmlheaders">trunk/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html.headers</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonslowredirectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow-redirect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonsquarepng">trunk/LayoutTests/imported/w3c/web-platform-tests/common/square.png</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonthird_partyreftestanalyzerxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/reftest-analyzer.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonthird_partyw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscommonwindownamesetterhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/common/window-name-setter.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciinterfaces_updatesh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/interfaces_update.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitctests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tc/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscitests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsflake8ini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/flake8.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsmanifestjsonlibpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/jsonlib.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsrequirements_pytesttxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/requirements_pytest.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsrequirements_teststxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/requirements_tests.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigstoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/tox.ini</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/.github/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/.github/workflows/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatagithubworkflowsmainyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/.github/workflows/main.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatagithubworkflowsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/.github/workflows/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataMANIFESTin">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/MANIFEST.in</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatacodecovyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/codecov.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatacoverageini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/coverage.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatacoverplugpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/coverplug.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/docs/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatadocs__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/docs/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatadocschangelogrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/docs/changelog.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatadocsconfpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/docs/conf.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatadocsindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/docs/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatadocsusingrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/docs/using.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatadocsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/docs/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/importlib_metadata/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataimportlib_metadata__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/importlib_metadata/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataimportlib_metadata_compatpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/importlib_metadata/_compat.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataimportlib_metadataw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/importlib_metadata/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/prepare/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/prepare/example/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/prepare/example/example/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataprepareexampleexample__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/prepare/example/example/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataprepareexampleexamplew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/prepare/example/example/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataprepareexamplesetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/prepare/example/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataprepareexamplew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/prepare/example/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatapyprojecttoml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/pyproject.toml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatasetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatasetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/setup.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/__init__.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/data/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatestsdata__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/data/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatestsdataexample2112py3noneanywhl">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/data/example-21.12-py3-none-any.whl</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatestsdataexample2112py36egg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/data/example-21.12-py3.6.egg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatestsdataw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/data/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatestsfixturespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/fixtures.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatestspy39compatpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/py39compat.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatateststest_apipy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/test_api.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatateststest_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/test_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatateststest_mainpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/test_main.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatateststest_zippy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/test_zip.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadatatoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyimportlib_metadataw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/importlib_metadata/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigCHANGELOG">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/CHANGELOG</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigMANIFESTin">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/MANIFEST.in</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigREADMEtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/README.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigexampleini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/example.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigpyprojecttoml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/pyproject.toml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigsetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigsetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/setup.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/src/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/src/iniconfig/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigsrciniconfig__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/src/iniconfig/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigsrciniconfig__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/src/iniconfig/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigsrciniconfigpytyped">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/src/iniconfig/py.typed</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigsrciniconfigw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/src/iniconfig/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/testing/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigtestingconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/testing/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigtestingtest_iniconfigpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/testing/test_iniconfig.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigtestingw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/testing/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigtoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyiniconfigw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/iniconfig/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/.github/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/.github/workflows/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackaginggithubworkflowsdocsyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/.github/workflows/docs.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackaginggithubworkflowslintyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/.github/workflows/lint.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackaginggithubworkflowstestyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/.github/workflows/test.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackaginggithubworkflowsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/.github/workflows/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingCHANGELOGrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/CHANGELOG.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingCONTRIBUTINGrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/CONTRIBUTING.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingLICENSEAPACHE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/LICENSE.APACHE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingLICENSEBSD">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/LICENSE.BSD</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/README.rst</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsMakefile">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/Makefile</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocschangelogrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/changelog.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsconfpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/conf.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/development/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsdevelopmentgettingstartedrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/development/getting-started.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsdevelopmentindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/development/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsdevelopmentreleaseprocessrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/development/release-process.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsdevelopmentreviewingpatchesrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/development/reviewing-patches.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsdevelopmentsubmittingpatchesrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/development/submitting-patches.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsdevelopmentw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/development/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsmarkersrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/markers.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsrequirementsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/requirements.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsrequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocssecurityrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/security.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsspecifiersrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/specifiers.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocstagsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/tags.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsutilsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/utils.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsversionrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/version.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingdocsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/docs/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingmypyini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/mypy.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingnoxfilepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/noxfile.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackaging__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackaging_compatpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/_compat.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackaging_structurespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/_structures.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackaging_typingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/_typing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingmarkerspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/markers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingpytyped">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/py.typed</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingrequirementspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/requirements.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingspecifierspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/specifiers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingtagspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/tags.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingutilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingversionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/version.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpackagingw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/packaging/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingpyprojecttoml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/pyproject.toml</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tasks/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtasks__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tasks/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtaskscheckpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tasks/check.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtaskspathspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tasks/paths.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtasksrequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tasks/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtasksw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tasks/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestsbuildhelloworldsh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/build-hello-world.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldarmv7larmel">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-armv7l-armel</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldarmv7larmhf">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-armv7l-armhf</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldinvalidclass">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-invalid-class</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldinvaliddata">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-invalid-data</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldinvalidmagic">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-invalid-magic</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworlds390xs390x">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-s390x-s390x</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldtooshort">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-too-short</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldx86_64amd64">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-x86_64-amd64</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldx86_64i386">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-x86_64-i386</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldx86_64x32">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world-x86_64-x32</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestshelloworldc">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/hello-world.c</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingteststest_markerspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/test_markers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingteststest_requirementspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/test_requirements.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingteststest_specifierspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/test_specifiers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingteststest_structurespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/test_structures.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingteststest_tagspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/test_tags.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingteststest_utilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/test_utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingteststest_versionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/test_version.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingtestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypackagingw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/packaging/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2CHANGELOGrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/CHANGELOG.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2LICENSErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/LICENSE.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2MANIFESTin">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/MANIFEST.in</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2READMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2VERSION">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/VERSION</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/appveyor/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2appveyorinstallps1">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/appveyor/install.ps1</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2appveyorw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/appveyor/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2appveyoryml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/appveyor.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2codecovyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/codecov.yml</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/pathlib2/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2pathlib2__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/pathlib2/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2pathlib2w3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/pathlib2/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2requirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2setupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2setuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/setup.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2teststest_pathlib2py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/tests/test_pathlib2.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2testsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypathlib2w3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pathlib2/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyHOWTORELEASErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/HOWTORELEASE.rst</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/changelog/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggychangelogREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/changelog/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggychangelog_templaterst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/changelog/_template.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggychangelogw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/changelog/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocschangelogrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/changelog.rst</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/eggsample/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsampleeggsample__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/eggsample/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsampleeggsamplehookspecspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/eggsample/hookspecs.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsampleeggsamplehostpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/eggsample/host.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsampleeggsamplelibpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/eggsample/lib.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsampleeggsamplew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/eggsample/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsamplesetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsamplew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample-spam/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsamplespameggsample_spampy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample-spam/eggsample_spam.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsamplespamsetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample-spam/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexampleseggsamplespamw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/eggsample-spam/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexamplestoyexamplepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/toy-example.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggypyprojecttoml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/pyproject.toml</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/scripts/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyscriptsreleasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/scripts/release.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggyscriptsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/scripts/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/pluggy/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggysrcpluggy__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/pluggy/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggysrcpluggy_tracingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/pluggy/_tracing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggysrcpluggycallerspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/pluggy/callers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggysrcpluggyhookspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/pluggy/hooks.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggysrcpluggymanagerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/pluggy/manager.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggysrcpluggyw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/src/pluggy/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_deprecationspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_deprecations.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_hookcallerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_hookcaller.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_invocationspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_invocations.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/ISSUE_TEMPLATE/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestgithubISSUE_TEMPLATE1_bug_reportmd">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/ISSUE_TEMPLATE/1_bug_report.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestgithubISSUE_TEMPLATE2_feature_requestmd">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/ISSUE_TEMPLATE/2_feature_request.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestgithubISSUE_TEMPLATEconfigyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/ISSUE_TEMPLATE/config.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestgithubISSUE_TEMPLATEw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/ISSUE_TEMPLATE/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/workflows/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestgithubworkflowsmainyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/workflows/main.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestgithubworkflowsreleaseoncommentyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/workflows/release-on-comment.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestgithubworkflowsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/.github/workflows/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestCITATION">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/CITATION</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestCODE_OF_CONDUCTmd">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/CODE_OF_CONDUCT.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestOPENCOLLECTIVErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/OPENCOLLECTIVE.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestRELEASINGrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/RELEASING.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestTIDELIFTrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/TIDELIFT.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestcodecovyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/codecov.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocen_templatesrelationshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/_templates/relations.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocen_templatesslim_searchboxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/_templates/slim_searchbox.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease3100rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.10.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease3101rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.10.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease363rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.6.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease364rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.6.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease370rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.7.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease371rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.7.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease372rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.7.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease373rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.7.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease374rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.7.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease380rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.8.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease381rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.8.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease382rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.8.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease390rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.9.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease391rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.9.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease392rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.9.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease393rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-3.9.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease400rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.0.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease401rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.0.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease402rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.0.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease410rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.1.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease411rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.1.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease420rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.2.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease421rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.2.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease430rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.3.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease431rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.3.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease440rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.4.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease441rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.4.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease442rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.4.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease450rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.5.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease460rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease461rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease462rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease463rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease464rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease465rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.5.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease466rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.6.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease467rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.7.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease468rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.8.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease469rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-4.6.9.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease500rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.0.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease501rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.0.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease510rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.1.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease511rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.1.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease512rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.1.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease513rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.1.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease520rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.2.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease521rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.2.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease522rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.2.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease523rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.2.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease524rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.2.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease530rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.3.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease531rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.3.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease532rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.3.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease533rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.3.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease534rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.3.4.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease535rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.3.5.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease540rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.4.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease541rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.4.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease542rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.4.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease543rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-5.4.3.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease600rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-6.0.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease600rc1rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-6.0.0rc1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease601rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-6.0.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease602rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-6.0.2.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease610rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-6.1.0.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenannouncerelease611rst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/announce/release-6.1.1.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocendeprecationsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/deprecations.rst</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/fixtures/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplefixturestest_fixtures_orderpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/fixtures/test_fixtures_order.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplefixturesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/fixtures/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplenonpythontest_simpleyaml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/nonpython/test_simple.yaml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenflakyrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/flaky.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenimgfaviconpng">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/img/favicon.png</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenpy27py34deprecationrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/py27-py34-deprecation.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocensponsorrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/sponsor.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocentideliftrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/tidelift.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsappend_codecov_tokenpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/append_codecov_token.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptspublishghreleasenotespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/publish-gh-release-notes.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsreleaseoncommentpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/release-on-comment.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsreleaseminorrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/release.minor.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsreleasepatchrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/release.patch.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsreleasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/release.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsreportcoveragesh">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/report-coverage.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptstowncrierdrafttofilepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/towncrier-draft-to-file.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_io/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_io__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_io/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_iosafereprpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_io/saferepr.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_ioterminalwriterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_io/terminalwriter.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_iow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_io/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_iowcwidthpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_io/wcwidth.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_versionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_version.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestfaulthandlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/faulthandler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmarkexpressionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/mark/expression.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestpathlibpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/pathlib.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestpytyped">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/py.typed</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestreportspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/reports.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pyteststepwisepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/stepwise.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pyteststorepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/store.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytesttimingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/timing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestwarning_typespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/warning_types.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytest__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytest__main__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest/__main__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestcollectpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest/collect.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestpytyped">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest/py.typed</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginfoPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginfoSOURCEStxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/SOURCES.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginfodependency_linkstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/dependency_links.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginfoentry_pointstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/entry_points.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginfonotzipsafe">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/not-zip-safe</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginforequirestxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/requires.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginfotop_leveltxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/top_level.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrcpytestegginfow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/pytest.egg-info/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/conftest.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/README.rst</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/acceptance/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsacceptancefixture_mock_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/acceptance/fixture_mock_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsacceptancew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/acceptance/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/collect_init_tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectcollect_init_testspytestini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/collect_init_tests/pytest.ini</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/collect_init_tests/tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectcollect_init_teststests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/collect_init_tests/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectcollect_init_teststeststest_foopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/collect_init_tests/tests/test_foo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectcollect_init_teststestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/collect_init_tests/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectcollect_init_testsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/collect_init_tests/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_infinite_recursion__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_infinite_recursionconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/conftest.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_infinite_recursiontests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_infinite_recursionteststest_basicpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/tests/test_basic.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_infinite_recursiontestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_infinite_recursionw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_infinite_recursion/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_init_given_as_arg/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_init_given_as_arg/pkg/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_init_given_as_argpkg__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_init_given_as_arg/pkg/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_init_given_as_argpkgtest_foopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_init_given_as_arg/pkg/test_foo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptscollectpackage_init_given_as_argpkgw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/collect/package_init_given_as_arg/pkg/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/config/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/config/collect_pytest_prefix/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsconfigcollect_pytest_prefix__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/config/collect_pytest_prefix/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsconfigcollect_pytest_prefixconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/config/collect_pytest_prefix/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsconfigcollect_pytest_prefixtest_foopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/config/collect_pytest_prefix/test_foo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsconfigcollect_pytest_prefixw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/config/collect_pytest_prefix/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/conftest_usageerror/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsconftest_usageerror__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/conftest_usageerror/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsconftest_usageerrorconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/conftest_usageerror/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsconftest_usageerrorw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/conftest_usageerror/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/dataclasses/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsdataclassestest_compare_dataclassespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/dataclasses/test_compare_dataclasses.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsdataclassestest_compare_dataclasses_field_comparison_offpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/dataclasses/test_compare_dataclasses_field_comparison_off.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsdataclassestest_compare_dataclasses_verbosepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/dataclasses/test_compare_dataclasses_verbose.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsdataclassestest_compare_recursive_dataclassespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/dataclasses/test_compare_recursive_dataclasses.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsdataclassestest_compare_two_different_dataclassespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/dataclasses/test_compare_two_different_dataclasses.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsdataclassesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/dataclasses/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturescustom_item__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturescustom_itemconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/conftest.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/foo/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturescustom_itemfoo__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/foo/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturescustom_itemfootest_foopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/foo/test_foo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturescustom_itemfoow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/foo/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturescustom_itemw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/custom_item/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub1__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub1conftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub1test_in_sub1py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/test_in_sub1.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub1w3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub2__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub2conftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub2test_in_sub2py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/test_in_sub2.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_conftest_funcargs_only_available_in_subdirsub2w3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_detect_recursive_dependency_errorpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_detect_recursive_dependency_error.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_conftest__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_conftestconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/conftest.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_conftestpkg__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_conftestpkgconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_conftestpkgtest_spampy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/test_spam.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_conftestpkgw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_conftestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_module__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_moduleconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_moduletest_extend_fixture_conftest_modulepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/test_extend_fixture_conftest_module.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_conftest_modulew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_extend_fixture_module_classpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_module_class.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_funcarg_basicpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_basic.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_funcarg_lookup_classlevelpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_classlevel.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_funcarg_lookup_modulelevelpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_modulelevel.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturestest_funcarg_lookupfailspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookupfails.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesfill_fixturesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/fill_fixtures/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturestest_fixture_named_requestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/test_fixture_named_request.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturestest_getfixturevalue_dynamicpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/test_getfixturevalue_dynamic.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsfixturesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/fixtures/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/issue88_initial_file_multinodes/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsissue88_initial_file_multinodes__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/issue88_initial_file_multinodes/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsissue88_initial_file_multinodesconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/issue88_initial_file_multinodes/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsissue88_initial_file_multinodestest_hellopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/issue88_initial_file_multinodes/test_hello.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsissue88_initial_file_multinodesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/issue88_initial_file_multinodes/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsissue_519py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/issue_519.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsjunit10xsd">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/junit-10.xsd</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/marks/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/marks/marks_considered_keywords/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsmarksmarks_considered_keywords__init__pyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/marks/marks_considered_keywords/__init__.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsmarksmarks_considered_keywordsconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/marks/marks_considered_keywords/conftest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsmarksmarks_considered_keywordstest_marks_as_keywordspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/marks/marks_considered_keywords/test_marks_as_keywords.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsmarksmarks_considered_keywordsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/marks/marks_considered_keywords/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/perf_examples/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/perf_examples/collect_stats/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsperf_examplescollect_statsgenerate_folderspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/perf_examples/collect_stats/generate_folders.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsperf_examplescollect_statstemplate_testpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/perf_examples/collect_stats/template_test.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsperf_examplescollect_statsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/perf_examples/collect_stats/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptspytestini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/pytest.ini</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/tmpdir/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptstmpdirtmpdir_fixturepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/tmpdir/tmpdir_fixture.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptstmpdirw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/tmpdir/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittesttest_parametrized_fixture_error_messagepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/test_parametrized_fixture_error_message.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittesttest_setup_skippy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/test_setup_skip.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittesttest_setup_skip_classpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/test_setup_skip_class.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittesttest_setup_skip_modulepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/test_setup_skip_module.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittesttest_unittest_asynciopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/test_unittest_asyncio.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittesttest_unittest_asynctestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/test_unittest_asynctest.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittesttest_unittest_plain_asyncpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/test_unittest_plain_async.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsunittestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/unittest/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/warnings/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptswarningstest_group_warnings_by_messagepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/warnings/test_group_warnings_by_message.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/warnings/test_group_warnings_by_message_summary/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptswarningstest_group_warnings_by_message_summarytest_1py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_1.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptswarningstest_group_warnings_by_message_summarytest_2py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_2.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptswarningstest_group_warnings_by_message_summaryw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/warnings/test_group_warnings_by_message_summary/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexample_scriptswarningsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/example_scripts/warnings/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/examples/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexamplestest_issue519py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/examples/test_issue519.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingexamplesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/examples/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/io/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingiotest_safereprpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/io/test_saferepr.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingiotest_terminalwriterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/io/test_terminalwriter.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingiotest_wcwidthpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/io/test_wcwidth.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingiow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/io/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationbdd_walletfeature">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/bdd_wallet.feature</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationbdd_walletpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/bdd_wallet.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationdjango_settingspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/django_settings.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationpytestini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/pytest.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationpytest_anyio_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/pytest_anyio_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationpytest_asyncio_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/pytest_asyncio_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationpytest_mock_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/pytest_mock_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationpytest_trio_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/pytest_trio_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationpytest_twisted_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/pytest_twisted_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationsimple_integrationpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/simple_integration.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingplugins_integrationw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/plugins_integration/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonfixturespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/fixtures.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_debuggingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_debugging.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_error_diffspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_error_diffs.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_faulthandlerpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_faulthandler.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_findpathspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_findpaths.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_link_resolvepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_link_resolve.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_mainpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_main.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_mark_expressionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_mark_expression.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_metapy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_meta.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_pathlibpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_pathlib.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_reportspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_reports.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_setuponlypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_setuponly.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_setupplanpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_setupplan.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_stepwisepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_stepwise.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_storepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_store.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_warning_typespy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_warning_types.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtyping_checkspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/typing_checks.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasyncioLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasyncioPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasyncioREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/README.rst</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncio__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asynciopluginpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio/plugin.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asynciow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncioegginfoPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncioegginfoSOURCEStxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/SOURCES.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncioegginfodependency_linkstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/dependency_links.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncioegginfoentry_pointstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/entry_points.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncioegginforequirestxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/requires.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncioegginfotop_leveltxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/top_level.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciopytest_asyncioegginfow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/pytest_asyncio.egg-info/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciosetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciosetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestasynciow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest-asyncio/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/example/cgi-bin/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3examplecgibinhipy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/example/cgi-bin/hi.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3examplecgibinw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/example/cgi-bin/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsockethandshakebasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/handshake/base.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsCODE_OF_CONDUCTmd">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/CODE_OF_CONDUCT.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsMANIFESTin">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/MANIFEST.in</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsMakefile">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/Makefile</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/README.rst</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/compliance/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketscomplianceREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/compliance/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketscompliancefuzzingclientjson">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/compliance/fuzzingclient.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketscompliancefuzzingserverjson">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/compliance/fuzzingserver.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketscompliancetest_clientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/compliance/test_client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketscompliancetest_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/compliance/test_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketscompliancew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/compliance/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsMakefile">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/Makefile</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/_static/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocs_statictideliftpng">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/_static/tidelift.png</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocs_staticw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/_static/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocs_staticwebsocketssvg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/_static/websockets.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsapirst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/api.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocschangelogrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/changelog.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocscheatsheetrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/cheatsheet.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsconfpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/conf.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocscontributingrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/contributing.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsdeploymentrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/deployment.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsdesignrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/design.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsextensionsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/extensions.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsfaqrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/faq.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsintrorst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/intro.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocslicenserst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/license.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocslifecyclegraffle">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/lifecycle.graffle</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocslifecyclesvg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/lifecycle.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocslimitationsrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/limitations.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsprotocolgraffle">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/protocol.graffle</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsprotocolsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/protocol.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsrequirementstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/requirements.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocssecurityrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/security.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsspelling_wordlisttxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/spelling_wordlist.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocstideliftrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/tidelift.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsdocsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/docs/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplebasic_auth_clientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/basic_auth_client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplebasic_auth_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/basic_auth_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleclientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplecounterhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/counter.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplecounterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/counter.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleechopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/echo.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplehealth_check_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/health_check_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplehellopy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/hello.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplelocalhostpem">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/localhost.pem</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplesecure_clientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/secure_client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplesecure_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/secure_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleshow_timehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/show_time.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleshow_timepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/show_time.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleshutdownpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/shutdown.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleunix_clientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/unix_client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexampleunix_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/unix_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsexamplew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/example/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/logo/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketslogohorizontalsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/logo/horizontal.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketslogoiconsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/logo/icon.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketslogooldsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/logo/old.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketslogotideliftpng">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/logo/tidelift.png</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketslogoverticalsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/logo/vertical.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketslogow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/logo/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/performance/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsperformancemem_clientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/performance/mem_client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsperformancemem_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/performance/mem_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsperformancew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/performance/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/setup.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsockets__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsockets__main__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/__main__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsauthpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/auth.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsclientpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/client.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsexceptionspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/exceptions.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/extensions/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsextensions__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/extensions/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsextensionsbasepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/extensions/base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsextensionspermessage_deflatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/extensions/permessage_deflate.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsextensionsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/extensions/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsframingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/framing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketshandshakepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/handshake.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsheaderspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/headers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketshttppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/http.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsprotocolpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/protocol.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketspytyped">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/py.typed</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsserverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsspeedupsc">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/speedups.c</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsspeedupspyi">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/speedups.pyi</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketstypingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/typing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsuripy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/uri.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsutilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsversionpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/version.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketssrcwebsocketsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/src/websockets/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/__init__.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/extensions/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstestsextensions__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/extensions/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstestsextensionstest_basepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/extensions/test_base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstestsextensionstest_permessage_deflatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/extensions/test_permessage_deflate.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstestsextensionsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/extensions/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_authpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_auth.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_client_serverpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_client_server.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_exceptionspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_exceptions.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_exportspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_exports.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_framingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_framing.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_handshakepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_handshake.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_headerspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_headers.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_httppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_http.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_localhostcnf">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_localhost.cnf</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_localhostpem">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_localhost.pem</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_protocolpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_protocol.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_uripy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_uri.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsteststest_utilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/test_utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstestsutilspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/utils.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketstoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partywebsocketsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/websockets/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippCHANGESrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/CHANGES.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippLICENSE">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/LICENSE</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippREADMErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/README.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippappveyoryml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/appveyor.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippconftestpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/conftest.py</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/docs/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippdocsconfpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/docs/conf.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippdocshistoryrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/docs/history.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippdocsindexrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/docs/index.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippdocsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/docs/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzipppyprojecttoml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/pyproject.toml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippsetupcfg">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/setup.cfg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippsetuppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/setup.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippskeletonmd">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/skeleton.md</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzipptest_zipppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/test_zipp.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzipptoxini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/tox.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.egg-info/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippzippegginfoPKGINFO">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.egg-info/PKG-INFO</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippzippegginfoSOURCEStxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.egg-info/SOURCES.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippzippegginfodependency_linkstxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.egg-info/dependency_links.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippzippegginforequirestxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.egg-info/requires.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippzippegginfotop_leveltxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.egg-info/top_level.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippzippegginfow3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.egg-info/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyzippzipppy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/zipp/zipp.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswavetests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wave/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswebdriverwebdriverbidipy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/webdriver/webdriver/bidi.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswpttests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wpt/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerformatterstests__init__py">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/formatters/tests/__init__.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnermpcontextpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/mpcontext.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptservewptservews_h2_handshakepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/ws_h2_handshake.py</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolscipr_previewpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/pr_preview.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsciteststest_pr_previewpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/ci/tests/test_pr_preview.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolspy27flake8ini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/py27-flake8.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolspy3flake8ini">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/py3-flake8.ini</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyenumenumdocenumpdf">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/enum/enum/doc/enum.pdf</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsfuncsigsodictpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/funcsigs/odict.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsrequirementsproductiontxt">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/requirements/production.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggydocsexamplesfirstexamplepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/docs/examples/firstexample.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_hookrelaypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_hookrelay.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypluggytestingtest_method_orderingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pluggy/testing/test_method_ordering.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestHOWTORELEASErst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/HOWTORELEASE.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestappveyoryml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/appveyor.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenexamplenonpythontest_simpleyml">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/example/nonpython/test_simple.yml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenfaqrst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/faq.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenimgpytest1faviico">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/img/pytest1favi.ico</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestdocenlinksinc">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/doc/en/links.inc</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptscalltoxbat">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/call-tox.bat</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestscriptsinstallpypybat">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/scripts/install-pypy.bat</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytest_code_py2tracebackpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/_code/_py2traceback.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmarkevaluatepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/mark/evaluate.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestmarklegacypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/mark/legacy.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytestsrc_pytestresultlogpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/src/_pytest/resultlog.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingcodetest_source_multiline_blockpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/code/test_source_multiline_block.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonfixturepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/fixture.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonsetup_onlypy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/setup_only.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythonsetup_planpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/setup_plan.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingpythontest_deprecationspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/python/test_deprecations.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_modimportpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_modimport.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_pdbpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_pdb.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypytesttestingtest_resultlogpy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pytest/testing/test_resultlog.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partypywebsocket3mod_pywebsockethandshake_basepy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/pywebsocket3/mod_pywebsocket/handshake/_base.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerdocsusagerst">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/docs/usage.rst</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformteststoolswptrunnerwptrunnerprocesspy">trunk/LayoutTests/imported/w3c/web-platform-tests/tools/wptrunner/wptrunner/process.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/TestExpectations  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -935,6 +935,8 @@
</span><span class="cx"> imported/w3c/web-platform-tests/mediacapture-fromelement/ended.html [ Failure ]
</span><span class="cx"> imported/w3c/web-platform-tests/mediacapture-fromelement/creation.html [ Pass Failure ]
</span><span class="cx"> imported/w3c/web-platform-tests/resource-timing/font-timestamps.html [ Failure ]
</span><ins>+imported/w3c/web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects.html [ Pass Failure ]
+imported/w3c/web-platform-tests/resource-timing/resource_timing_content_length.html [ Skip ]
</ins><span class="cx"> imported/w3c/web-platform-tests/resource-timing/status-codes-create-entry.html [ Pass Failure ]
</span><span class="cx"> imported/w3c/web-platform-tests/resource-timing/SO-XO-SO-redirect-chain-tao.https.html [ Failure ]
</span><span class="cx"> imported/w3c/web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain.html [ Failure ]
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptbeaconresourcesbeaconpreflightpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/beacon/resources/beacon-preflight.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/beacon/resources/beacon-preflight.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/beacon/resources/beacon-preflight.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,52 +1,53 @@
</span><span class="cx"> import json
</span><ins>+from wptserve.utils import isomorphic_decode
</ins><span class="cx"> 
</span><span class="cx"> def respondToCORSPreflight(request, response):
</span><del>-  headers = [("Content-Type", "text/plain")]
-  allow_cors = int(request.GET.first("allowCors", 0)) != 0;
</del><ins>+  headers = [(b"Content-Type", b"text/plain")]
+  allow_cors = int(request.GET.first(b"allowCors", 0)) != 0;
</ins><span class="cx">   
</span><span class="cx">   if not allow_cors:
</span><del>-    response.set_error(400, "Not allowed")
-    return headers, "ERROR: Not allowed"
</del><ins>+    response.set_error(400, u"Not allowed")
+    return headers, u"ERROR: Not allowed"
</ins><span class="cx">   
</span><del>-  if not "Access-Control-Request-Method" in request.headers:
-    response.set_error(400, "No Access-Control-Request-Method header")
-    return headers, "ERROR: No access-control-request-method in preflight!"
</del><ins>+  if not b"Access-Control-Request-Method" in request.headers:
+    response.set_error(400, u"No Access-Control-Request-Method header")
+    return headers, u"ERROR: No access-control-request-method in preflight!"
</ins><span class="cx">   
</span><del>-  headers.append(("Access-Control-Allow-Origin", request.headers.get("Origin", "*")))
-  headers.append(("Access-Control-Allow-Credentials", "true"))
-  requested_method = request.headers.get("Access-Control-Request-Method", None)
-  headers.append(("Access-Control-Allow-Methods", requested_method))
-  requested_headers = request.headers.get("Access-Control-Request-Headers", None)
-  headers.append(("Access-Control-Allow-Headers", requested_headers))
-  headers.append(("Access-Control-Max-Age", "60"))
-  return headers, ""
</del><ins>+  headers.append((b"Access-Control-Allow-Origin", request.headers.get(b"Origin", b"*")))
+  headers.append((b"Access-Control-Allow-Credentials", b"true"))
+  requested_method = request.headers.get(b"Access-Control-Request-Method", None)
+  headers.append((b"Access-Control-Allow-Methods", requested_method))
+  requested_headers = request.headers.get(b"Access-Control-Request-Headers", None)
+  headers.append((b"Access-Control-Allow-Headers", requested_headers))
+  headers.append((b"Access-Control-Max-Age", b"60"))
+  return headers, u""
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-  command = request.GET.first("cmd").lower();
-  test_id = request.GET.first("id")
</del><ins>+  command = request.GET.first(b"cmd").lower();
+  test_id = request.GET.first(b"id")
</ins><span class="cx">   stashed_data = request.server.stash.take(test_id)
</span><span class="cx">   if stashed_data is None:
</span><del>-    stashed_data = { 'preflight': 0, 'beacon': 0, 'preflight_requested_method': '', 'preflight_requested_headers': '', 'preflight_referrer': '', 'preflight_cookie_header': '', 'beacon_cookie_header': '' }
</del><ins>+    stashed_data = { u'preflight': 0, u'beacon': 0, u'preflight_requested_method': u'', u'preflight_requested_headers': u'', u'preflight_referrer': u'', u'preflight_cookie_header': u'', u'beacon_cookie_header': u'' }
</ins><span class="cx"> 
</span><del>-  if command == "put":
-    if request.method == "OPTIONS":
-      stashed_data['preflight'] = 1;
-      stashed_data['preflight_requested_method'] = request.headers.get("Access-Control-Request-Method", "")
-      stashed_data['preflight_requested_headers'] = request.headers.get("Access-Control-Request-Headers", "")
-      stashed_data['preflight_cookie_header'] = request.headers.get("Cookie", "");
-      stashed_data['preflight_referer'] = request.headers.get("Referer", "")
-      stashed_data['preflight_origin'] = request.headers.get("Origin", "")
</del><ins>+  if command == b"put":
+    if request.method == u"OPTIONS":
+      stashed_data[u'preflight'] = 1;
+      stashed_data[u'preflight_requested_method'] = isomorphic_decode(request.headers.get(b"Access-Control-Request-Method", b""))
+      stashed_data[u'preflight_requested_headers'] = isomorphic_decode(request.headers.get(b"Access-Control-Request-Headers", b""))
+      stashed_data[u'preflight_cookie_header'] = isomorphic_decode(request.headers.get(b"Cookie", b""))
+      stashed_data[u'preflight_referer'] = isomorphic_decode(request.headers.get(b"Referer", b""))
+      stashed_data[u'preflight_origin'] = isomorphic_decode(request.headers.get(b"Origin", b""))
</ins><span class="cx">       request.server.stash.put(test_id, stashed_data)
</span><span class="cx">       return respondToCORSPreflight(request, response)
</span><del>-    elif request.method == "POST":
-      stashed_data['beacon'] = 1;
-      stashed_data['beacon_cookie_header'] = request.headers.get("Cookie", "")
-      stashed_data['beacon_origin'] = request.headers.get("Origin", "")
</del><ins>+    elif request.method == u"POST":
+      stashed_data[u'beacon'] = 1;
+      stashed_data[u'beacon_cookie_header'] = isomorphic_decode(request.headers.get(b"Cookie", b""))
+      stashed_data[u'beacon_origin'] = isomorphic_decode(request.headers.get(b"Origin", b""))
</ins><span class="cx">       request.server.stash.put(test_id, stashed_data)
</span><del>-    return [("Content-Type", "text/plain")], ""
</del><ins>+    return [(b"Content-Type", b"text/plain")], u""
</ins><span class="cx"> 
</span><del>-  if command == "get":
-    return [("Content-Type", "text/plain")], json.dumps(stashed_data)
</del><ins>+  if command == b"get":
+    return [(b"Content-Type", b"text/plain")], json.dumps(stashed_data)
</ins><span class="cx"> 
</span><del>-  response.set_error(400, "Bad Command")
-  return [("Content-Type", "text/plain")], "ERROR: Bad Command!"
</del><ins>+  response.set_error(400, u"Bad Command")
+  return [(b"Content-Type", b"text/plain")], u"ERROR: Bad Command!"
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptbeaconresourcesredirectpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/beacon/resources/redirect.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/beacon/resources/redirect.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/beacon/resources/redirect.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,64 +1,67 @@
</span><del>-from urllib import urlencode
-from urlparse import urlparse
</del><ins>+import time
</ins><span class="cx"> 
</span><ins>+from urllib.parse import urlencode, urlparse
+
+from wptserve.utils import isomorphic_decode, isomorphic_encode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    stashed_data = {'count': 0, 'preflight': "0"}
</del><ins>+    stashed_data = {b'count': 0, b'preflight': b"0"}
</ins><span class="cx">     status = 302
</span><del>-    headers = [("Content-Type", "text/plain"),
-               ("Cache-Control", "no-cache"),
-               ("Pragma", "no-cache"),
-               ("Access-Control-Allow-Credentials", "true")]
-    if not "disallowCorsOnResponseNotPreflight" in request.GET or request.method == "OPTIONS":
-        headers.append(("Access-Control-Allow-Origin", request.headers.get("Origin", "*")))
</del><ins>+    headers = [(b"Content-Type", b"text/plain"),
+               (b"Cache-Control", b"no-cache"),
+               (b"Pragma", b"no-cache"),
+               (b"Access-Control-Allow-Credentials", b"true")]
+    if not b"disallowCorsOnResponseNotPreflight" in request.GET or request.method == u"OPTIONS":
+        headers.append((b"Access-Control-Allow-Origin", request.headers.get(b"Origin", b"*")))
</ins><span class="cx"> 
</span><span class="cx">     token = None
</span><del>-    if "token" in request.GET:
-        token = request.GET.first("token")
</del><ins>+    if b"token" in request.GET:
+        token = request.GET.first(b"token")
</ins><span class="cx">         data = request.server.stash.take(token)
</span><span class="cx">         if data:
</span><span class="cx">             stashed_data = data
</span><span class="cx"> 
</span><del>-    if request.method == "OPTIONS":
-        requested_method = request.headers.get("Access-Control-Request-Method", None)
-        headers.append(("Access-Control-Allow-Methods", requested_method))
-        requested_headers = request.headers.get("Access-Control-Request-Headers", None)
-        headers.append(("Access-Control-Allow-Headers", requested_headers))
-        stashed_data['preflight'] = "1"
</del><ins>+    if request.method == u"OPTIONS":
+        requested_method = request.headers.get(b"Access-Control-Request-Method", None)
+        headers.append((b"Access-Control-Allow-Methods", requested_method))
+        requested_headers = request.headers.get(b"Access-Control-Request-Headers", None)
+        headers.append((b"Access-Control-Allow-Headers", requested_headers))
+        stashed_data[b'preflight'] = b"1"
</ins><span class="cx">         #Preflight is not redirected: return 200
</span><del>-        if not "redirect_preflight" in request.GET:
</del><ins>+        if not b"redirect_preflight" in request.GET:
</ins><span class="cx">             if token:
</span><del>-              request.server.stash.put(request.GET.first("token"), stashed_data)
-            return 200, headers, ""
</del><ins>+                request.server.stash.put(request.GET.first(b"token"), stashed_data)
+            return 200, headers, u""
</ins><span class="cx"> 
</span><del>-    if "redirect_status" in request.GET:
-        status = int(request.GET['redirect_status'])
</del><ins>+    if b"redirect_status" in request.GET:
+        status = int(request.GET[b'redirect_status'])
</ins><span class="cx"> 
</span><del>-    stashed_data['count'] += 1
</del><ins>+    stashed_data[b'count'] += 1
</ins><span class="cx"> 
</span><del>-    if "location" in request.GET:
-        url = request.GET['location']
</del><ins>+    if b"location" in request.GET:
+        url = isomorphic_decode(request.GET[b'location'])
</ins><span class="cx">         scheme = urlparse(url).scheme
</span><del>-        if scheme == "" or scheme == "http" or scheme == "https":
-            url += "&" if '?' in url else "?"
</del><ins>+        if scheme == u"" or scheme == u"http" or scheme == u"https":
+            url += u"&" if u'?' in url else u"?"
</ins><span class="cx">             #keep url parameters in location
</span><span class="cx">             url_parameters = {}
</span><span class="cx">             for item in request.GET.items():
</span><del>-                url_parameters[item[0]] = item[1][0]
</del><ins>+                url_parameters[isomorphic_decode(item[0])] = isomorphic_decode(item[1][0])
</ins><span class="cx">             url += urlencode(url_parameters)
</span><span class="cx">             #make sure location changes during redirection loop
</span><del>-            url += "&count=" + str(stashed_data['count'])
-        headers.append(("Location", url))
</del><ins>+            url += u"&count=" + str(stashed_data[b'count'])
+        headers.append((b"Location", isomorphic_encode(url)))
</ins><span class="cx"> 
</span><del>-    if "redirect_referrerpolicy" in request.GET:
-        headers.append(("Referrer-Policy", request.GET['redirect_referrerpolicy']))
</del><ins>+    if b"redirect_referrerpolicy" in request.GET:
+        headers.append((b"Referrer-Policy", request.GET[b'redirect_referrerpolicy']))
</ins><span class="cx"> 
</span><span class="cx">     if token:
</span><del>-        request.server.stash.put(request.GET.first("token"), stashed_data)
-        if "max_count" in request.GET:
-            max_count =  int(request.GET['max_count'])
</del><ins>+        request.server.stash.put(request.GET.first(b"token"), stashed_data)
+        if b"max_count" in request.GET:
+            max_count = int(request.GET[b'max_count'])
</ins><span class="cx">             #stop redirecting and return count
</span><del>-            if stashed_data['count'] > max_count:
</del><ins>+            if stashed_data[b'count'] > max_count:
</ins><span class="cx">                 # -1 because the last is not a redirection
</span><del>-                return str(stashed_data['count'] - 1)
</del><ins>+                return str(stashed_data[b'count'] - 1)
</ins><span class="cx"> 
</span><del>-    return status, headers, ""
</del><ins>+    return status, headers, u""
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptcrossoriginresourcepolicyresourcesimagepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/cross-origin-resource-policy/resources/image.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/cross-origin-resource-policy/resources/image.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/cross-origin-resource-policy/resources/image.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> import os.path
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    type = request.GET.first("type", None)
</del><ins>+    type = request.GET.first(b"type", None)
</ins><span class="cx"> 
</span><span class="cx">     body = open(os.path.join(os.path.dirname(__file__), "green.png"), "rb").read()
</span><span class="cx"> 
</span><span class="lines">@@ -8,16 +8,16 @@
</span><span class="cx">     response.add_required_headers = False
</span><span class="cx">     response.writer.write_status(200)
</span><span class="cx"> 
</span><del>-    if 'cached' in request.GET:
-        response.writer.write_header("Cache-Control", "max-age=600000")
</del><ins>+    if b'cached' in request.GET:
+        response.writer.write_header(b"Cache-Control", b"max-age=600000")
</ins><span class="cx"> 
</span><del>-    if 'corp' in request.GET:
-        response.writer.write_header("cross-origin-resource-policy", request.GET['corp'])
-    if 'acao' in request.GET:
-        response.writer.write_header("access-control-allow-origin", request.GET['acao'])
-    response.writer.write_header("content-length", len(body))
</del><ins>+    if b'corp' in request.GET:
+        response.writer.write_header(b"cross-origin-resource-policy", request.GET[b'corp'])
+    if b'acao' in request.GET:
+        response.writer.write_header(b"access-control-allow-origin", request.GET[b'acao'])
+    response.writer.write_header(b"content-length", len(body))
</ins><span class="cx">     if(type != None):
</span><del>-      response.writer.write_header("content-type", type)
</del><ins>+      response.writer.write_header(b"content-type", type)
</ins><span class="cx">     response.writer.end_headers()
</span><span class="cx"> 
</span><span class="cx">     response.writer.write(body)
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptfetchresourcesdntstatuspy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/fetch/resources/dnt-status.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/fetch/resources/dnt-status.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/fetch/resources/dnt-status.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,12 @@
</span><ins>+from wptserve.utils import isomorphic_decode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-Type", "text/plain"),
-               ("Cache-Control", "no-cache"),
-               ("Pragma", "no-cache")]
</del><ins>+    headers = [(b"Content-Type", b"text/plain"),
+               (b"Cache-Control", b"no-cache"),
+               (b"Pragma", b"no-cache")]
</ins><span class="cx"> 
</span><del>-    if "store" in request.GET:
-        request.server.stash.put(request.GET['token'], request.headers.get("DNT", "-1"))
</del><ins>+    if b"store" in request.GET:
+        request.server.stash.put(request.GET[b'token'], isomorphic_decode(request.headers.get(b"DNT", b"-1")))
</ins><span class="cx">         return 200, headers, ""
</span><span class="cx"> 
</span><del>-    return 200, headers, str(request.server.stash.take(request.GET['token']))
</del><ins>+    return 200, headers, str(request.server.stash.take(request.GET[b'token']))
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptfetchresourcesfetchxhrloadpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/fetch/resources/fetch-xhr-load.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/fetch/resources/fetch-xhr-load.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/fetch/resources/fetch-xhr-load.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><del>-ETAG = '"123abc"'
</del><ins>+ETAG = b'"123abc"'
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    test_id = request.GET.first("uuid")
</del><ins>+    test_id = request.GET.first(b"uuid")
</ins><span class="cx">     stashed_count = request.server.stash.take(test_id)
</span><span class="cx">     if stashed_count is not None:
</span><span class="cx">         stashed_count = stashed_count + 1
</span><span class="lines">@@ -10,15 +10,15 @@
</span><span class="cx">         stashed_count = 0;
</span><span class="cx"> 
</span><span class="cx">     request.server.stash.put(test_id, stashed_count)
</span><del>-    etag = request.headers.get("If-None-Match", None)
</del><ins>+    etag = request.headers.get(b"If-None-Match", None)
</ins><span class="cx">     if etag == ETAG:
</span><del>-        response.headers.set("X-HTTP-STATUS", 304)
</del><ins>+        response.headers.set(b"X-HTTP-STATUS", 304)
</ins><span class="cx">         response.status = (304, "Not Modified")
</span><span class="cx">         return ""
</span><span class="cx"> 
</span><span class="cx">     # cache miss, so respond with the actual content
</span><span class="cx">     response.status = (200, "OK")
</span><del>-    response.headers.set("ETag", ETAG)
-    response.headers.set("Content-Type", 'text/plain')
-    response.headers.set("Cache-Control", "max-age=0");
</del><ins>+    response.headers.set(b"ETag", ETAG)
+    response.headers.set(b"Content-Type", b'text/plain')
+    response.headers.set(b"Cache-Control", b"max-age=0");
</ins><span class="cx">     return str(stashed_count)
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptfetchresourcesiframewithimagepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,8 +1,10 @@
</span><del>-ETAG = '"123abc"'
</del><ins>+from wptserve.utils import isomorphic_decode
</ins><span class="cx"> 
</span><ins>+ETAG = b'"123abc"'
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def main(request, response):
</span><del>-    test_id = request.GET.first("uuid")
</del><ins>+    test_id = isomorphic_decode(request.GET.first(b"uuid"))
</ins><span class="cx">     response.status = (200, "OK")
</span><del>-    response.headers.set("Content-Type", 'text/html')
</del><ins>+    response.headers.set(b"Content-Type", b'text/html')
</ins><span class="cx">     return "<!doctype html><image src='image-load.py?uuid=" + test_id + "'></image>"
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptfetchresourcesimageloadpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/fetch/resources/image-load.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/fetch/resources/image-load.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/fetch/resources/image-load.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><del>-ETAG = '"123abc"'
</del><ins>+ETAG = b'"123abc"'
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    test_id = request.GET.first("uuid")
</del><ins>+    test_id = request.GET.first(b"uuid")
</ins><span class="cx"> 
</span><span class="cx">     if request.method == "POST":
</span><span class="cx">         stashed_count = request.server.stash.take(test_id)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx">         request.server.stash.put(test_id, stashed_count)
</span><span class="cx"> 
</span><span class="cx">         response.status = (200, "OK")
</span><del>-        response.headers.set("Content-Type", 'text/plain')
</del><ins>+        response.headers.set(b"Content-Type", b'text/plain')
</ins><span class="cx">         return str(stashed_count)
</span><span class="cx"> 
</span><span class="cx">     stashed_count = request.server.stash.take(test_id)
</span><span class="lines">@@ -22,15 +22,15 @@
</span><span class="cx">         stashed_count = 1
</span><span class="cx">     request.server.stash.put(test_id, stashed_count)
</span><span class="cx"> 
</span><del>-    etag = request.headers.get("If-None-Match", None)
</del><ins>+    etag = request.headers.get(b"If-None-Match", None)
</ins><span class="cx">     if etag == ETAG:
</span><del>-        response.headers.set("X-HTTP-STATUS", 304)
</del><ins>+        response.headers.set(b"X-HTTP-STATUS", b"304")
</ins><span class="cx">         response.status = (304, "Not Modified")
</span><span class="cx">         return ""
</span><span class="cx"> 
</span><span class="cx">     # cache miss, so respond with the actual content
</span><span class="cx">     response.status = (200, "OK")
</span><del>-    response.headers.set("ETag", ETAG)
-    response.headers.set("Content-Type", 'image/png')
-    response.headers.set("Cache-Control", "max-age=0");
</del><ins>+    response.headers.set(b"ETag", ETAG)
+    response.headers.set(b"Content-Type", b'image/png')
+    response.headers.set(b"Cache-Control", b"max-age=0");
</ins><span class="cx">     return 'myimagecontent'
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptfetchresourcesredirectpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/fetch/resources/redirect.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/fetch/resources/redirect.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/fetch/resources/redirect.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Cache-Control", "no-cache"),
-               ("Pragma", "no-cache"),
-               ("Location", request.GET['location'])]
</del><ins>+    headers = [(b"Cache-Control", b"no-cache"),
+               (b"Pragma", b"no-cache"),
+               (b"Location", request.GET[b'location'])]
</ins><span class="cx">     return 302, headers, ""
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptfetchresourcesstorecspreportpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/fetch/resources/store-csp-report.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/fetch/resources/store-csp-report.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/fetch/resources/store-csp-report.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -4,29 +4,29 @@
</span><span class="cx">   ## Get the query parameter (key) from URL ##
</span><span class="cx">   ## Tests will record POST requests (CSP Report) and GET (rest) ##
</span><span class="cx">   if request.GET:
</span><del>-    key = request.GET['file']
</del><ins>+    key = request.GET[b'file']
</ins><span class="cx">   elif request.POST:
</span><del>-    key = request.POST['file']
</del><ins>+    key = request.POST[b'file']
</ins><span class="cx"> 
</span><span class="cx">   ## Convert the key from String to UUID valid String ##
</span><span class="cx">   testId = hashlib.md5(key).hexdigest()
</span><span class="cx"> 
</span><span class="cx">   ## Handle the header retrieval request ##
</span><del>-  if 'retrieve' in request.GET:
</del><ins>+  if b'retrieve' in request.GET:
</ins><span class="cx">     response.writer.write_status(200)
</span><del>-    response.headers.set("Access-Control-Allow-Origin", "*")
-    response.headers.set("Cache-Control", "no-cache, no-store, must-revalidate")
-    response.headers.set("Pragma", "no-cache")
-    response.headers.set("Expires", "0")
</del><ins>+    response.headers.set(b"Access-Control-Allow-Origin", b"*")
+    response.headers.set(b"Cache-Control", b"no-cache, no-store, must-revalidate")
+    response.headers.set(b"Pragma", b"no-cache")
+    response.headers.set(b"Expires", b"0")
</ins><span class="cx">     response.writer.end_headers()
</span><span class="cx">     try:
</span><span class="cx">       value = request.server.stash.take(testId)
</span><span class="cx">       response.writer.write(value)
</span><span class="cx">     except (KeyError, ValueError) as e:
</span><del>-      response.headers.set("Access-Control-Allow-Origin", "*")
-      response.headers.set("Cache-Control", "no-cache, no-store, must-revalidate")
-      response.headers.set("Pragma", "no-cache")
-      response.headers.set("Expires", "0")
</del><ins>+      response.headers.set(b"Access-Control-Allow-Origin", b"*")
+      response.headers.set(b"Cache-Control", b"no-cache, no-store, must-revalidate")
+      response.headers.set(b"Pragma", b"no-cache")
+      response.headers.set(b"Expires", b"0")
</ins><span class="cx">       response.writer.end_headers()
</span><span class="cx">       response.writer.write("No report has been recorded " + str(e))
</span><span class="cx">       pass
</span><span class="lines">@@ -35,9 +35,9 @@
</span><span class="cx">     return
</span><span class="cx"> 
</span><span class="cx">   request.server.stash.put(testId, request.body)
</span><del>-  response.headers.set("Access-Control-Allow-Origin", "*")
-  response.headers.set("Cache-Control", "no-cache, no-store, must-revalidate")
-  response.headers.set("Pragma", "no-cache")
-  response.headers.set("Expires", "0")
</del><ins>+  response.headers.set(b"Access-Control-Allow-Origin", b"*")
+  response.headers.set(b"Cache-Control", b"no-cache, no-store, must-revalidate")
+  response.headers.set(b"Pragma", b"no-cache")
+  response.headers.set(b"Expires", b"0")
</ins><span class="cx">   response.writer.end_headers()
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptprefetchresourcesmainresourcecrossoriginvarycookiepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,7 @@
</span><ins>+from wptserve.utils import isomorphic_decode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-Type", "text/html"), ("Vary", "Cookie")]
</del><ins>+    headers = [(b"Content-Type", b"text/html"), (b"Vary", b"Cookie")]
</ins><span class="cx"> 
</span><span class="cx">     document = """
</span><span class="cx"> <!DOCTYPE html>
</span><span class="lines">@@ -12,4 +14,4 @@
</span><span class="cx"> <body onload="test()">
</span><span class="cx"> """
</span><span class="cx"> 
</span><del>-    return headers, document % {'cookie': request.headers.get("Cookie", "") }
</del><ins>+    return headers, document % {'cookie': isomorphic_decode(request.headers.get(b"Cookie", b"")) }
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptprefetchresourcesmainresourceskipdiskcachepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-skip-disk-cache.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-skip-disk-cache.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/prefetch/resources/main-resource-skip-disk-cache.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,7 @@
</span><ins>+from wptserve.utils import isomorphic_decode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-Type", "text/html")]
</del><ins>+    headers = [(b"Content-Type", b"text/html")]
</ins><span class="cx"> 
</span><span class="cx">     document = """
</span><span class="cx"> <!DOCTYPE html>
</span><span class="lines">@@ -18,4 +20,4 @@
</span><span class="cx"> <body onload="test()">
</span><span class="cx"> """
</span><span class="cx"> 
</span><del>-    return headers, document % {'prefetch': request.headers.get("Purpose", ""), 'url': request.url }
</del><ins>+    return headers, document % {'prefetch': isomorphic_decode(request.headers.get(b"Purpose", b"")), 'url': request.url }
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptprefetchresourcesprefetchedmainresourceredirectpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/prefetch/resources/prefetched-main-resource-redirect.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/prefetch/resources/prefetched-main-resource-redirect.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/prefetch/resources/prefetched-main-resource-redirect.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> def main(request, response):
</span><del>-    if "prefetch" in request.headers.get("Purpose"):
-        headers = [("Cache-Control", "max-age=3600"), ("Location", "/WebKit/prefetch/resources/main-resource-redirect-no-prefetch.py")]
</del><ins>+    if b"prefetch" in request.headers.get(b"Purpose"):
+        headers = [(b"Cache-Control", b"max-age=3600"), (b"Location", b"/WebKit/prefetch/resources/main-resource-redirect-no-prefetch.py")]
</ins><span class="cx">         return 302, headers, ""
</span><span class="cx">     return 200, [], "FAIL"
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptpreloadresourcesreferrerimgpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/preload/resources/referrer-img.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/preload/resources/referrer-img.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/preload/resources/referrer-img.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> from base64 import decodestring
</span><span class="cx"> import time
</span><span class="cx"> 
</span><del>-png_response = decodestring('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACklEQVR4nGNiAAAABgADNjd8qAAAAABJRU5ErkJggg==')
</del><ins>+png_response = decodestring(b'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACklEQVR4nGNiAAAABgADNjd8qAAAAABJRU5ErkJggg==')
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    referrer = request.headers.get("Referer", "")
</del><ins>+    referrer = request.headers.get(b"Referer", b"")
</ins><span class="cx">     if not referrer:
</span><span class="cx">         return 200, [], png_response
</span><span class="cx">     return 404
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptresourcetimingresourcesrtrevalidationresponsepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/resource-timing/resources/rt-revalidation-response.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/resource-timing/resources/rt-revalidation-response.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/resource-timing/resources/rt-revalidation-response.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,22 +1,22 @@
</span><span class="cx"> def main(request, response):
</span><del>-    response.headers.set("Access-Control-Allow-Origin", "*")
-    response.headers.set("Access-Control-Allow-Headers", "If-Modified-Since")
</del><ins>+    response.headers.set(b"Access-Control-Allow-Origin", b"*")
+    response.headers.set(b"Access-Control-Allow-Headers", b"If-Modified-Since")
</ins><span class="cx"> 
</span><span class="cx">     # Just return 304 for any request with If-Modified-Since.
</span><del>-    modifiedSince = request.headers.get("If-Modified-Since", None)
</del><ins>+    modifiedSince = request.headers.get(b"If-Modified-Since", None)
</ins><span class="cx">     if modifiedSince is not None:
</span><span class="cx">         response.status = (304, "Not Modified")
</span><span class="cx">         return ""
</span><span class="cx"> 
</span><span class="cx">     # Otherwise return content from parameters.
</span><del>-    content = request.GET.first("content", None)
-    mime = request.GET.first("mime", "text/plain")
-    date = request.GET.first("date", None)
-    tao = request.GET.first("tao", None)
</del><ins>+    content = request.GET.first(b"content", None)
+    mime = request.GET.first(b"mime", b"text/plain")
+    date = request.GET.first(b"date", None)
+    tao = request.GET.first(b"tao", None)
</ins><span class="cx"> 
</span><del>-    if tao == "true":
-        response.headers.set("Timing-Allow-Origin", "*")
-    response.headers.set("Last-Modified", date)
</del><ins>+    if tao == b"true":
+        response.headers.set(b"Timing-Allow-Origin", b"*")
+    response.headers.set(b"Last-Modified", date)
</ins><span class="cx">     response.status = (200, "OK")
</span><del>-    response.headers.set("Content-Type", mime)
</del><ins>+    response.headers.set(b"Content-Type", mime)
</ins><span class="cx">     return content
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptresourcesredirectpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/resources/redirect.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/resources/redirect.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/resources/redirect.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Cache-Control", "no-cache"),
-               ("Pragma", "no-cache"),
-               ("Location", request.GET['location'])]
</del><ins>+    headers = [(b"Cache-Control", b"no-cache"),
+               (b"Pragma", b"no-cache"),
+               (b"Location", request.GET[b'location'])]
</ins><span class="cx">     return 302, headers, ""
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourcescheckserviceworkerheaderpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/check-service-worker-header.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/check-service-worker-header.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/check-service-worker-header.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> def main(request, response):
</span><span class="cx"> 
</span><del>-    service_worker_header_value = request.headers.get("Service-Worker")
-    code = 200 if service_worker_header_value == "script" else 404
-    return code, [("Content-Type", "application/javascript")], ""
</del><ins>+    service_worker_header_value = request.headers.get(b"Service-Worker")
+    code = 200 if service_worker_header_value == b"script" else 404
+    return code, [(b"Content-Type", b"application/javascript")], ""
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourcesfileuploadcheckpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/file-upload-check.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/file-upload-check.py        2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/file-upload-check.py   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> def main(request, response):
</span><span class="cx"> 
</span><del>-    return 200, [("Content-Type", "text/html")], request.body
</del><ins>+    return 200, [(b"Content-Type", b"text/html")], request.body
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourceslengthypasspy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/lengthy-pass.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/lengthy-pass.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/lengthy-pass.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -3,10 +3,10 @@
</span><span class="cx"> def main(request, response):
</span><span class="cx">     delay = 0.05
</span><span class="cx">     headers = []
</span><del>-    if "delay" in request.GET:
-        delay = float(request.GET.first("delay"))
-    response.headers.set("Content-type", "text/javascript")
-    response.headers.append("Access-Control-Allow-Origin", "*")
</del><ins>+    if b"delay" in request.GET:
+        delay = float(request.GET.first(b"delay"))
+    response.headers.set(b"Content-type", b"text/javascript")
+    response.headers.append(b"Access-Control-Allow-Origin", b"*")
</ins><span class="cx">     response.write_status_headers()
</span><span class="cx">     time.sleep(delay);
</span><span class="cx">     response.writer.write_content("document")
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourcespersistentimportScriptsscriptpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/persistent-importScripts-script.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/persistent-importScripts-script.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/persistent-importScripts-script.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> import random
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-type", "text/javascript"),
-        ("Cache-Control", "no-store")
</del><ins>+    headers = [(b"Content-type", b"text/javascript"),
+        (b"Cache-Control", b"no-store")
</ins><span class="cx">     ]
</span><span class="cx">     return headers, "self.addEventListener('message', function(e) { e.source.postMessage('" + str(random.random()) +"'); });"
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourcespersistentimportedmodulescriptpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/persistent-imported-module-script.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/persistent-imported-module-script.py        2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/persistent-imported-module-script.py   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     headers = [
</span><del>-        ("Content-type", "text/javascript"),
-        ("Cache-Control", "no-store")
</del><ins>+        (b"Content-type", b"text/javascript"),
+        (b"Cache-Control", b"no-store")
</ins><span class="cx">     ]
</span><span class="cx">     return headers, "self.addEventListener('message', function(e) { e.source.postMessage('" + str(random.random()) + "'); });"
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourcesresponsefullofheaderspy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/response-full-of-headers.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/response-full-of-headers.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/response-full-of-headers.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,18 +1,18 @@
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-type", "text/javascript"),
-        ("Set-Cookie", "1"),
-        ("Set-Cookie2", "2"),
-        ("Access-Control-Allow-Origin", "*"),
-        ("Access-Control-Allow-Credentials", "true"),
-        ("Access-Control-Allow-Methods", "GET, POST, HEAD"),
-        ("Timing-Allow-Origin", "*"),
-        ("Referrer-Policy", "origin"),
-        ("SourceMap", "1"),
-        ("x-sourcemap", "2"),
-        ("Access-Control-Expose-Headers", "x-Header1, content-length"),
-        ("x-header1", "x-value1"),
-        ("x-header2", "x-value2"),
-        ("Content-Length", "13"),
-        ("Cache-Control", "no-store")
</del><ins>+    headers = [(b"Content-type", b"text/javascript"),
+        (b"Set-Cookie", b"1"),
+        (b"Set-Cookie2", b"2"),
+        (b"Access-Control-Allow-Origin", b"*"),
+        (b"Access-Control-Allow-Credentials", b"true"),
+        (b"Access-Control-Allow-Methods", b"GET, POST, HEAD"),
+        (b"Timing-Allow-Origin", b"*"),
+        (b"Referrer-Policy", b"origin"),
+        (b"SourceMap", b"1"),
+        (b"x-sourcemap", b"2"),
+        (b"Access-Control-Expose-Headers", b"x-Header1, content-length"),
+        (b"x-header1", b"x-value1"),
+        (b"x-header2", b"x-value2"),
+        (b"Content-Length", b"13"),
+        (b"Cache-Control", b"no-store")
</ins><span class="cx">     ]
</span><span class="cx">     return headers, "document.body"
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourcessetcookiepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/set-cookie.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/set-cookie.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/set-cookie.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> import sys
</span><del>-import urlparse
</del><ins>+import urllib.parse
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     """
</span><span class="lines">@@ -17,10 +17,10 @@
</span><span class="cx">     < Date: Tue, 04 Oct 2016 18:16:06 GMT
</span><span class="cx">     < Content-Length: 80
</span><span class="cx">     """
</span><del>-    params = urlparse.parse_qs(request.url_parts.query)
</del><ins>+    params = urllib.parse.parse_qs(request.url_parts.query)
</ins><span class="cx">     headers = [
</span><del>-        ("Content-Type", "application/json"),
-        ("Set-Cookie", "{name[0]}=1; Path={path[0]}; Expires=Wed, 09 Jun 2021 10:18:14 GMT".format(**params))
</del><ins>+        (b"Content-Type", b"application/json"),
+        (b"Set-Cookie", b"{name[0]}=1; Path={path[0]}; Expires=Wed, 09 Jun 2021 10:18:14 GMT".format(**params))
</ins><span class="cx">     ]
</span><span class="cx">     body = "{}"
</span><span class="cx">     return headers, body
</span></span></pre></div>
<a id="trunkLayoutTestshttpwptserviceworkersresourcesupdateworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/service-workers/resources/update-worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/service-workers/resources/update-worker.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/service-workers/resources/update-worker.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -12,4 +12,4 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-  return [('Content-Type', 'application/javascript'), ('Cache-Control', 'np-cache, no-store')], script % time.time()
</del><ins>+  return [(b'Content-Type', b'application/javascript'), (b'Cache-Control', b'np-cache, no-store')], script % time.time()
</ins></span></pre></div>
<a id="trunkLayoutTestshttpwptwebaudioresourcesdummyworkletpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/wpt/webaudio/resources/dummy-worklet.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/wpt/webaudio/resources/dummy-worklet.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/http/wpt/webaudio/resources/dummy-worklet.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,10 @@
</span><span class="cx"> def main(request, response):
</span><span class="cx">     response.status = (200, "OK")
</span><del>-    response.headers.set("Content-Type", 'text/javascript')
-    response.headers.set("Cache-Control", "max-age=0");
</del><ins>+    response.headers.set(b"Content-Type", b'text/javascript')
+    response.headers.set(b"Cache-Control", b"max-age=0");
</ins><span class="cx"> 
</span><del>-    if "useCORS" in request.GET:
-        response.headers.set("Access-Control-Allow-Origin", "*")
</del><ins>+    if b"useCORS" in request.GET:
+        response.headers.set(b"Access-Control-Allow-Origin", b"*")
</ins><span class="cx"> 
</span><span class="cx">     return """
</span><span class="cx"> class DummyProcessor extends AudioWorkletProcessor {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2021-06-23  Chris Dumez  <cdumez@apple.com>
+
+        Update WPT tools from upstream
+        https://bugs.webkit.org/show_bug.cgi?id=227255
+
+        Reviewed by Jonathan Bedard.
+
+        Update WPT tools from upstream 94d018bb5d7c0d46df7ba1.
+
+        * web-platform-tests/tools/*: Updated.
+
</ins><span class="cx"> 2021-06-22  Cathie Chen  <cathiechen@igalia.com>
</span><span class="cx"> 
</span><span class="cx">         Implement width and height attributes on source elements of <picture>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsbeaconresourcesbeaconpreflightpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon-preflight.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon-preflight.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/beacon-preflight.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,55 +1,56 @@
</span><span class="cx"> import json
</span><ins>+from wptserve.utils import isomorphic_decode
</ins><span class="cx"> 
</span><span class="cx"> def respondToCORSPreflight(request, response):
</span><del>-  allow_cors = int(request.GET.first("allowCors", 0)) != 0;
</del><ins>+  allow_cors = int(request.GET.first(b"allowCors", 0)) != 0;
</ins><span class="cx"> 
</span><span class="cx">   if not allow_cors:
</span><span class="cx">     response.set_error(400, "Not allowed")
</span><span class="cx">     return "ERROR: Not allowed"
</span><span class="cx"> 
</span><del>-  if not "Access-Control-Request-Method" in request.headers:
</del><ins>+  if not b"Access-Control-Request-Method" in request.headers:
</ins><span class="cx">     response.set_error(400, "No Access-Control-Request-Method header")
</span><span class="cx">     return "ERROR: No access-control-request-method in preflight!"
</span><span class="cx"> 
</span><del>-  headers = [("Content-Type", "text/plain")]
-  headers.append(("Access-Control-Allow-Origin", request.headers.get("Origin", "*")))
-  headers.append(("Access-Control-Allow-Credentials", "true"))
-  requested_method = request.headers.get("Access-Control-Request-Method", None)
-  headers.append(("Access-Control-Allow-Methods", requested_method))
-  requested_headers = request.headers.get("Access-Control-Request-Headers", None)
-  headers.append(("Access-Control-Allow-Headers", requested_headers))
-  headers.append(("Access-Control-Max-Age", "60"))
</del><ins>+  headers = [(b"Content-Type", b"text/plain")]
+  headers.append((b"Access-Control-Allow-Origin", request.headers.get(b"Origin", b"*")))
+  headers.append((b"Access-Control-Allow-Credentials", b"true"))
+  requested_method = request.headers.get(b"Access-Control-Request-Method", None)
+  headers.append((b"Access-Control-Allow-Methods", requested_method))
+  requested_headers = request.headers.get(b"Access-Control-Request-Headers", None)
+  headers.append((b"Access-Control-Allow-Headers", requested_headers))
+  headers.append((b"Access-Control-Max-Age", b"60"))
</ins><span class="cx">   return headers, ""
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-  command = request.GET.first("cmd").lower();
-  test_id = request.GET.first("id")
</del><ins>+  command = request.GET.first(b"cmd").lower();
+  test_id = request.GET.first(b"id")
</ins><span class="cx">   stashed_data = request.server.stash.take(test_id)
</span><span class="cx">   if stashed_data is None:
</span><span class="cx">     stashed_data = { 'preflight': 0, 'beacon': 0, 'preflight_requested_method': '', 'preflight_requested_headers': '', 'preflight_referrer': '', 'preflight_cookie_header': '', 'beacon_cookie_header': '' }
</span><span class="cx"> 
</span><del>-  if command == "put":
</del><ins>+  if command == b"put":
</ins><span class="cx">     if request.method == "OPTIONS":
</span><span class="cx">       stashed_data['preflight'] = 1;
</span><del>-      stashed_data['preflight_requested_method'] = request.headers.get("Access-Control-Request-Method", "")
-      stashed_data['preflight_requested_headers'] = request.headers.get("Access-Control-Request-Headers", "")
-      stashed_data['preflight_cookie_header'] = request.headers.get("Cookie", "");
-      stashed_data['preflight_referer'] = request.headers.get("Referer", "")
-      stashed_data['preflight_origin'] = request.headers.get("Origin", "")
</del><ins>+      stashed_data['preflight_requested_method'] = isomorphic_decode(request.headers.get(b"Access-Control-Request-Method", b""))
+      stashed_data['preflight_requested_headers'] = isomorphic_decode(request.headers.get(b"Access-Control-Request-Headers", b""))
+      stashed_data['preflight_cookie_header'] = isomorphic_decode(request.headers.get(b"Cookie", b""));
+      stashed_data['preflight_referer'] = isomorphic_decode(request.headers.get(b"Referer", b""))
+      stashed_data['preflight_origin'] = isomorphic_decode(request.headers.get(b"Origin", b""))
</ins><span class="cx">       request.server.stash.put(test_id, stashed_data)
</span><span class="cx">       return respondToCORSPreflight(request, response)
</span><span class="cx">     elif request.method == "POST":
</span><span class="cx">       stashed_data['beacon'] = 1;
</span><del>-      stashed_data['beacon_cookie_header'] = request.headers.get("Cookie", "")
-      stashed_data['beacon_origin'] = request.headers.get("Origin", "")
</del><ins>+      stashed_data['beacon_cookie_header'] = isomorphic_decode(request.headers.get(b"Cookie", b""))
+      stashed_data['beacon_origin'] = isomorphic_decode(request.headers.get(b"Origin", b""))
</ins><span class="cx">       stashed_data['url'] = request.url
</span><span class="cx">       request.server.stash.put(test_id, stashed_data)
</span><del>-    return [("Content-Type", "text/plain")], ""
</del><ins>+    return [(b"Content-Type", b"text/plain")], ""
</ins><span class="cx"> 
</span><del>-  if command == "get":
</del><ins>+  if command == b"get":
</ins><span class="cx">     if stashed_data is not None:
</span><del>-      return [("Content-Type", "text/plain")], json.dumps(stashed_data)
-    return [("Content-Type", "text/plain")], ""
</del><ins>+      return [(b"Content-Type", b"text/plain")], json.dumps(stashed_data)
+    return [(b"Content-Type", b"text/plain")], ""
</ins><span class="cx"> 
</span><span class="cx">   response.set_error(400, "Bad Command")
</span><span class="cx">   return "ERROR: Bad Command!"
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsbeaconresourcesredirectpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/redirect.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/redirect.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/beacon/resources/redirect.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,41 +1,41 @@
</span><del>-from urllib import urlencode
-from urlparse import urlparse
</del><ins>+from urllib.parse import urlencode, urlparse
+from wptserve.utils import isomorphic_decode, isomorphic_encode
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     stashed_data = {'count': 0, 'preflight': "0"}
</span><span class="cx">     status = 302
</span><del>-    headers = [("Content-Type", "text/plain"),
-               ("Cache-Control", "no-cache"),
-               ("Pragma", "no-cache"),
-               ("Access-Control-Allow-Credentials", "true")]
-    headers.append(("Access-Control-Allow-Origin", request.headers.get("Origin", "*")))
</del><ins>+    headers = [(b"Content-Type", b"text/plain"),
+               (b"Cache-Control", b"no-cache"),
+               (b"Pragma", b"no-cache"),
+               (b"Access-Control-Allow-Credentials", b"true")]
+    headers.append((b"Access-Control-Allow-Origin", request.headers.get(b"Origin", b"*")))
</ins><span class="cx">     token = None
</span><span class="cx"> 
</span><del>-    if "token" in request.GET:
-        token = request.GET.first("token")
</del><ins>+    if b"token" in request.GET:
+        token = request.GET.first(b"token")
</ins><span class="cx">         data = request.server.stash.take(token)
</span><span class="cx">         if data:
</span><span class="cx">             stashed_data = data
</span><span class="cx"> 
</span><span class="cx">     if request.method == "OPTIONS":
</span><del>-        requested_method = request.headers.get("Access-Control-Request-Method", None)
-        headers.append(("Access-Control-Allow-Methods", requested_method))
-        requested_headers = request.headers.get("Access-Control-Request-Headers", None)
-        headers.append(("Access-Control-Allow-Headers", requested_headers))
</del><ins>+        requested_method = request.headers.get(b"Access-Control-Request-Method", None)
+        headers.append((b"Access-Control-Allow-Methods", requested_method))
+        requested_headers = request.headers.get(b"Access-Control-Request-Headers", None)
+        headers.append((b"Access-Control-Allow-Headers", requested_headers))
</ins><span class="cx">         stashed_data['preflight'] = "1"
</span><span class="cx">         #Preflight is not redirected: return 200
</span><del>-        if not "redirect_preflight" in request.GET:
</del><ins>+        if not b"redirect_preflight" in request.GET:
</ins><span class="cx">             if token:
</span><span class="cx">               request.server.stash.put(request.GET.first("token"), stashed_data)
</span><span class="cx">             return 200, headers, ""
</span><span class="cx"> 
</span><del>-    if "redirect_status" in request.GET:
-        status = int(request.GET['redirect_status'])
</del><ins>+    if b"redirect_status" in request.GET:
+        status = int(request.GET[b'redirect_status'])
</ins><span class="cx"> 
</span><span class="cx">     stashed_data['count'] += 1
</span><span class="cx"> 
</span><del>-    if "location" in request.GET:
-        url = request.GET['location']
</del><ins>+    if b"location" in request.GET:
+        url = isomorphic_decode(request.GET[b'location'])
</ins><span class="cx">         scheme = urlparse(url).scheme
</span><span class="cx">         if scheme == "" or scheme == "http" or scheme == "https":
</span><span class="cx">             url += "&" if '?' in url else "?"
</span><span class="lines">@@ -46,15 +46,15 @@
</span><span class="cx">             url += urlencode(url_parameters)
</span><span class="cx">             #make sure location changes during redirection loop
</span><span class="cx">             url += "&count=" + str(stashed_data['count'])
</span><del>-        headers.append(("Location", url))
</del><ins>+        headers.append((b"Location", isomorphic_encode(url)))
</ins><span class="cx"> 
</span><del>-    if "redirect_referrerpolicy" in request.GET:
-        headers.append(("Referrer-Policy", request.GET['redirect_referrerpolicy']))
</del><ins>+    if b"redirect_referrerpolicy" in request.GET:
+        headers.append((b"Referrer-Policy", request.GET[b'redirect_referrerpolicy']))
</ins><span class="cx"> 
</span><span class="cx">     if token:
</span><del>-        request.server.stash.put(request.GET.first("token"), stashed_data)
-        if "max_count" in request.GET:
-            max_count =  int(request.GET['max_count'])
</del><ins>+        request.server.stash.put(request.GET.first(b"token"), stashed_data)
+        if b"max_count" in request.GET:
+            max_count =  int(request.GET[b'max_count'])
</ins><span class="cx">             #stop redirecting and return count
</span><span class="cx">             if stashed_data['count'] > max_count:
</span><span class="cx">                 # -1 because the last is not a redirection
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonblankwithcorshtmlfromrev279168trunkLayoutTestsimportedw3cwebplatformteststoolsthird_partyfuncsigsrequirementsproductiontxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html (from rev 279168, trunk/LayoutTests/imported/w3c/web-platform-tests/tools/third_party/funcsigs/requirements/production.txt) ( => )</h4>
<pre class="diff"><span>
<span class="info">Added: trunk/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html.headers
===================================================================
</span><del>--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html.headers                               (rev 0)
</del><ins>+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html.headers        2021-06-23 15:37:56 UTC (rev 279169)
</ins><span class="lines">@@ -0,0 +1 @@
</span><ins>+Access-Control-Allow-Origin: *
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonechopy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/echo.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/echo.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/echo.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> def main(request, response):
</span><span class="cx">     # Without X-XSS-Protection to disable non-standard XSS protection the functionality this
</span><span class="cx">     # resource offers is useless
</span><del>-    response.headers.set("X-XSS-Protection", "0")
-    response.headers.set("Content-Type", "text/html")
-    response.content = request.GET.first("content")
</del><ins>+    response.headers.set(b"X-XSS-Protection", b"0")
+    response.headers.set(b"Content-Type", b"text/html")
+    response.content = request.GET.first(b"content")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommongethostinfosubjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/get-host-info.sub.js       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -7,8 +7,11 @@
</span><span class="cx">   var HTTP_PORT = '{{ports[http][0]}}';
</span><span class="cx">   var HTTP_PORT2 = '{{ports[http][1]}}';
</span><span class="cx">   var HTTPS_PORT = '{{ports[https][0]}}';
</span><ins>+  var HTTPS_PORT2 = '{{ports[https][1]}}';
</ins><span class="cx">   var PROTOCOL = self.location.protocol;
</span><span class="cx">   var IS_HTTPS = (PROTOCOL == "https:");
</span><ins>+  var PORT = IS_HTTPS ? HTTPS_PORT : HTTP_PORT;
+  var PORT2 = IS_HTTPS ? HTTPS_PORT2 : HTTP_PORT2;
</ins><span class="cx">   var HTTP_PORT_ELIDED = HTTP_PORT == "80" ? "" : (":" + HTTP_PORT);
</span><span class="cx">   var HTTP_PORT2_ELIDED = HTTP_PORT2 == "80" ? "" : (":" + HTTP_PORT2);
</span><span class="cx">   var HTTPS_PORT_ELIDED = HTTPS_PORT == "443" ? "" : (":" + HTTPS_PORT);
</span><span class="lines">@@ -22,6 +25,9 @@
</span><span class="cx">     HTTP_PORT: HTTP_PORT,
</span><span class="cx">     HTTP_PORT2: HTTP_PORT2,
</span><span class="cx">     HTTPS_PORT: HTTPS_PORT,
</span><ins>+    HTTPS_PORT2: HTTPS_PORT2,
+    PORT: PORT,
+    PORT2: PORT2,
</ins><span class="cx">     ORIGINAL_HOST: ORIGINAL_HOST,
</span><span class="cx">     REMOTE_HOST: REMOTE_HOST,
</span><span class="cx"> 
</span><span class="lines">@@ -31,6 +37,7 @@
</span><span class="cx">     HTTPS_ORIGIN_WITH_CREDS: 'https://foo:bar@' + ORIGINAL_HOST + HTTPS_PORT_ELIDED,
</span><span class="cx">     HTTP_ORIGIN_WITH_DIFFERENT_PORT: 'http://' + ORIGINAL_HOST + HTTP_PORT2_ELIDED,
</span><span class="cx">     REMOTE_ORIGIN: PROTOCOL + "//" + REMOTE_HOST + PORT_ELIDED,
</span><ins>+    OTHER_ORIGIN: PROTOCOL + "//" + OTHER_HOST + PORT_ELIDED,
</ins><span class="cx">     HTTP_REMOTE_ORIGIN: 'http://' + REMOTE_HOST + HTTP_PORT_ELIDED,
</span><span class="cx">     HTTP_NOTSAMESITE_ORIGIN: 'http://' + NOTSAMESITE_HOST + HTTP_PORT_ELIDED,
</span><span class="cx">     HTTP_REMOTE_ORIGIN_WITH_DIFFERENT_PORT: 'http://' + REMOTE_HOST + HTTP_PORT2_ELIDED,
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonredirectoptinpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/redirect-opt-in.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/redirect-opt-in.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/redirect-opt-in.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -6,15 +6,15 @@
</span><span class="cx">     location - The resource to redirect to.
</span><span class="cx">     """
</span><span class="cx">     status = 302
</span><del>-    if "status" in request.GET:
</del><ins>+    if b"status" in request.GET:
</ins><span class="cx">         try:
</span><del>-            status = int(request.GET.first("status"))
</del><ins>+            status = int(request.GET.first(b"status"))
</ins><span class="cx">         except ValueError:
</span><span class="cx">             pass
</span><span class="cx"> 
</span><span class="cx">     response.status = status
</span><span class="cx"> 
</span><del>-    location = request.GET.first("location")
</del><ins>+    location = request.GET.first(b"location")
</ins><span class="cx"> 
</span><del>-    response.headers.set("Location", location)
-    response.headers.set("Timing-Allow-Origin", "*")
</del><ins>+    response.headers.set(b"Location", location)
+    response.headers.set(b"Timing-Allow-Origin", b"*")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsabjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/sab.js (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/sab.js  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/sab.js     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,11 +1,16 @@
</span><span class="cx"> const createBuffer = (() => {
</span><span class="cx">   // See https://github.com/whatwg/html/issues/5380 for why not `new SharedArrayBuffer()`
</span><del>-  const sabConstructor = new WebAssembly.Memory({ shared:true, initial:0, maximum:0 }).buffer.constructor;
</del><ins>+  let sabConstructor;
+  try {
+    sabConstructor = new WebAssembly.Memory({ shared:true, initial:0, maximum:0 }).buffer.constructor;
+  } catch(e) {
+    sabConstructor = null;
+  }
</ins><span class="cx">   return (type, length) => {
</span><span class="cx">     if (type === "ArrayBuffer") {
</span><span class="cx">       return new ArrayBuffer(length);
</span><span class="cx">     } else if (type === "SharedArrayBuffer") {
</span><del>-      if (sabConstructor.name !== "SharedArrayBuffer") {
</del><ins>+      if (sabConstructor && sabConstructor.name !== "SharedArrayBuffer") {
</ins><span class="cx">         throw new Error("WebAssembly.Memory does not support shared:true");
</span><span class="cx">       }
</span><span class="cx">       return new sabConstructor(length);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesREADMEmd"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/README.md (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/README.md     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/README.md        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -278,9 +278,9 @@
</span><span class="cx"> 
</span><span class="cx"> Taking the spec JSON, the generator follows this algorithm:
</span><span class="cx"> 
</span><del>-* Expand all ```excluded_tests``` to create a blacklist of selections
</del><ins>+* Expand all ```excluded_tests``` to create a denylist of selections
</ins><span class="cx"> 
</span><del>-* For each `specification` entries: Expand the ```test_expansion``` pattern into selections and check each against the blacklist, if not marked as suppresed, generate the test resources for the selection
</del><ins>+* For each `specification` entries: Expand the ```test_expansion``` pattern into selections and check each against the denylist, if not marked as suppresed, generate the test resources for the selection
</ins><span class="cx"> 
</span><span class="cx"> ###  SourceContext Resolution
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesscopedocumentpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/document.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/document.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/document.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,35 +1,36 @@
</span><span class="cx"> import os, sys, json
</span><span class="cx"> 
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import util
</del><ins>+from wptserve.utils import isomorphic_decode, isomorphic_encode
</ins><span class="cx"> 
</span><ins>+import importlib
+util = importlib.import_module("common.security-features.scope.util")
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-  policyDeliveries = json.loads(request.GET.first("policyDeliveries", "[]"))
</del><ins>+  policyDeliveries = json.loads(request.GET.first(b"policyDeliveries", b"[]"))
</ins><span class="cx">   maybe_additional_headers = {}
</span><del>-  meta = ''
-  error = ''
</del><ins>+  meta = u''
+  error = u''
</ins><span class="cx">   for delivery in policyDeliveries:
</span><del>-    if delivery['deliveryType'] == 'meta':
-      if delivery['key'] == 'referrerPolicy':
-        meta += '<meta name="referrer" content="%s">' % delivery['value']
</del><ins>+    if delivery[u'deliveryType'] == u'meta':
+      if delivery[u'key'] == u'referrerPolicy':
+        meta += u'<meta name="referrer" content="%s">' % delivery[u'value']
</ins><span class="cx">       else:
</span><del>-        error = 'invalid delivery key'
-    elif delivery['deliveryType'] == 'http-rp':
-      if delivery['key'] == 'referrerPolicy':
-        maybe_additional_headers['Referrer-Policy'] = delivery['value']
</del><ins>+        error = u'invalid delivery key'
+    elif delivery[u'deliveryType'] == u'http-rp':
+      if delivery[u'key'] == u'referrerPolicy':
+        maybe_additional_headers[b'Referrer-Policy'] = isomorphic_encode(delivery[u'value'])
</ins><span class="cx">       else:
</span><del>-        error = 'invalid delivery key'
</del><ins>+        error = u'invalid delivery key'
</ins><span class="cx">     else:
</span><del>-      error = 'invalid deliveryType'
</del><ins>+      error = u'invalid deliveryType'
</ins><span class="cx"> 
</span><del>-  handler = lambda: util.get_template("document.html.template") % ({
-      "meta": meta,
-      "error": error
</del><ins>+  handler = lambda: util.get_template(u"document.html.template") % ({
+      u"meta": meta,
+      u"error": error
</ins><span class="cx">   })
</span><span class="cx">   util.respond(
</span><span class="cx">       request,
</span><span class="cx">       response,
</span><span class="cx">       payload_generator=handler,
</span><del>-      content_type="text/html",
</del><ins>+      content_type=b"text/html",
</ins><span class="cx">       maybe_additional_headers=maybe_additional_headers)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesscopeutilpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/util.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/util.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/util.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,11 @@
</span><span class="cx"> import os
</span><span class="cx"> 
</span><ins>+from wptserve.utils import isomorphic_decode
</ins><span class="cx"> 
</span><span class="cx"> def get_template(template_basename):
</span><del>-  script_directory = os.path.dirname(os.path.abspath(__file__))
</del><ins>+  script_directory = os.path.dirname(os.path.abspath(isomorphic_decode(__file__)))
</ins><span class="cx">   template_directory = os.path.abspath(
</span><del>-      os.path.join(script_directory, "template"))
</del><ins>+      os.path.join(script_directory, u"template"))
</ins><span class="cx">   template_filename = os.path.join(template_directory, template_basename)
</span><span class="cx"> 
</span><span class="cx">   with open(template_filename, "r") as f:
</span><span class="lines">@@ -12,25 +13,25 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def __noop(request, response):
</span><del>-  return ""
</del><ins>+  return u""
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def respond(request,
</span><span class="cx">             response,
</span><span class="cx">             status_code=200,
</span><del>-            content_type="text/html",
</del><ins>+            content_type=b"text/html",
</ins><span class="cx">             payload_generator=__noop,
</span><del>-            cache_control="no-cache; must-revalidate",
-            access_control_allow_origin="*",
</del><ins>+            cache_control=b"no-cache; must-revalidate",
+            access_control_allow_origin=b"*",
</ins><span class="cx">             maybe_additional_headers=None):
</span><span class="cx">   response.add_required_headers = False
</span><span class="cx">   response.writer.write_status(status_code)
</span><span class="cx"> 
</span><span class="cx">   if access_control_allow_origin != None:
</span><del>-    response.writer.write_header("access-control-allow-origin",
</del><ins>+    response.writer.write_header(b"access-control-allow-origin",
</ins><span class="cx">                                  access_control_allow_origin)
</span><del>-  response.writer.write_header("content-type", content_type)
-  response.writer.write_header("cache-control", cache_control)
</del><ins>+  response.writer.write_header(b"content-type", content_type)
+  response.writer.write_header(b"cache-control", cache_control)
</ins><span class="cx"> 
</span><span class="cx">   additional_headers = maybe_additional_headers or {}
</span><span class="cx">   for header, value in additional_headers.items():
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturesscopeworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/worker.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/scope/worker.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,44 +1,44 @@
</span><span class="cx"> import os, sys, json
</span><span class="cx"> 
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import util
</del><ins>+from wptserve.utils import isomorphic_decode, isomorphic_encode
+import importlib
+util = importlib.import_module("common.security-features.scope.util")
</ins><span class="cx"> 
</span><del>-
</del><span class="cx"> def main(request, response):
</span><del>-  policyDeliveries = json.loads(request.GET.first('policyDeliveries', '[]'))
-  worker_type = request.GET.first('type', 'classic')
-  commonjs_url = '%s://%s:%s/common/security-features/resources/common.sub.js' % (
</del><ins>+  policyDeliveries = json.loads(request.GET.first(b'policyDeliveries', b'[]'))
+  worker_type = request.GET.first(b'type', b'classic')
+  commonjs_url = u'%s://%s:%s/common/security-features/resources/common.sub.js' % (
</ins><span class="cx">       request.url_parts.scheme, request.url_parts.hostname,
</span><span class="cx">       request.url_parts.port)
</span><del>-  if worker_type == 'classic':
-    import_line = 'importScripts("%s");' % commonjs_url
</del><ins>+  if worker_type == b'classic':
+    import_line = u'importScripts("%s");' % commonjs_url
</ins><span class="cx">   else:
</span><del>-    import_line = 'import "%s";' % commonjs_url
</del><ins>+    import_line = u'import "%s";' % commonjs_url
</ins><span class="cx"> 
</span><span class="cx">   maybe_additional_headers = {}
</span><del>-  error = ''
</del><ins>+  error = u''
</ins><span class="cx">   for delivery in policyDeliveries:
</span><del>-    if delivery['deliveryType'] == 'meta':
-      error = '<meta> cannot be used in WorkerGlobalScope'
-    elif delivery['deliveryType'] == 'http-rp':
-      if delivery['key'] == 'referrerPolicy':
-        maybe_additional_headers['Referrer-Policy'] = delivery['value']
-      elif delivery['key'] == 'mixedContent' and delivery['value'] == 'opt-in':
-        maybe_additional_headers['Content-Security-Policy'] = 'block-all-mixed-content'
-      elif delivery['key'] == 'upgradeInsecureRequests' and delivery['value'] == 'upgrade':
-        maybe_additional_headers['Content-Security-Policy'] = 'upgrade-insecure-requests'
</del><ins>+    if delivery[u'deliveryType'] == u'meta':
+      error = u'<meta> cannot be used in WorkerGlobalScope'
+    elif delivery[u'deliveryType'] == u'http-rp':
+      if delivery[u'key'] == u'referrerPolicy':
+        maybe_additional_headers[b'Referrer-Policy'] = isomorphic_encode(delivery[u'value'])
+      elif delivery[u'key'] == u'mixedContent' and delivery[u'value'] == u'opt-in':
+        maybe_additional_headers[b'Content-Security-Policy'] = b'block-all-mixed-content'
+      elif delivery[u'key'] == u'upgradeInsecureRequests' and delivery[u'value'] == u'upgrade':
+        maybe_additional_headers[b'Content-Security-Policy'] = b'upgrade-insecure-requests'
</ins><span class="cx">       else:
</span><del>-        error = 'invalid delivery key for http-rp: %s' % delivery['key']
</del><ins>+        error = u'invalid delivery key for http-rp: %s' % delivery[u'key']
</ins><span class="cx">     else:
</span><del>-      error = 'invalid deliveryType: %s' % delivery['deliveryType']
</del><ins>+      error = u'invalid deliveryType: %s' % delivery[u'deliveryType']
</ins><span class="cx"> 
</span><del>-  handler = lambda: util.get_template('worker.js.template') % ({
-      'import': import_line,
-      'error': error
</del><ins>+  handler = lambda: util.get_template(u'worker.js.template') % ({
+      u'import': import_line,
+      u'error': error
</ins><span class="cx">   })
</span><span class="cx">   util.respond(
</span><span class="cx">       request,
</span><span class="cx">       response,
</span><span class="cx">       payload_generator=handler,
</span><del>-      content_type='text/javascript',
</del><ins>+      content_type=b'text/javascript',
</ins><span class="cx">       maybe_additional_headers=maybe_additional_headers)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceaudiopy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/audio.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/audio.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/audio.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,11 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(request, server_data):
</span><del>-    file = os.path.join(request.doc_root, "webaudio", "resources",
-                        "sin_440Hz_-6dBFS_1s.wav")
</del><ins>+    file = os.path.join(request.doc_root, u"webaudio", u"resources",
+                        u"sin_440Hz_-6dBFS_1s.wav")
</ins><span class="cx">     return open(file, "rb").read()
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -13,6 +14,5 @@
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = handler,
</span><del>-                        access_control_allow_origin = "*",
-                        content_type = "audio/wav")
-
</del><ins>+                        access_control_allow_origin = b"*",
+                        content_type = b"audio/wav")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcedocumentpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/document.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/document.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/document.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,9 +1,10 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(server_data):
</span><del>-    return subresource.get_template("document.html.template") % server_data
</del><ins>+    return subresource.get_template(u"document.html.template") % server_data
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     subresource.respond(request,
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceemptypy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/empty.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/empty.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/empty.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,14 +1,14 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(server_data):
</span><del>-    return ''
</del><ins>+    return u''
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = generate_payload,
</span><del>-                        access_control_allow_origin = "*",
-                        content_type = "text/plain")
-
</del><ins>+                        access_control_allow_origin = b"*",
+                        content_type = b"text/plain")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcefontpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/font.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/font.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/font.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,72 +1,76 @@
</span><del>-import os, sys, base64
-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+import os, sys
+from base64 import decodebytes
</ins><span class="cx"> 
</span><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
+
+
</ins><span class="cx"> def generate_payload(request, server_data):
</span><del>-    data = ('{"headers": %(headers)s}') % server_data
-    if "id" in request.GET:
-        request.server.stash.put(request.GET["id"], data)
</del><ins>+    data = (u'{"headers": %(headers)s}') % server_data
+    if b"id" in request.GET:
+        request.server.stash.put(request.GET[b"id"], data)
</ins><span class="cx">     # Simple base64 encoded .tff font
</span><del>-    return base64.decodestring("AAEAAAANAIAAAwBQRkZUTU6u6MkAAAXcAAAAHE9TLzJWYW"
-                               "QKAAABWAAAAFZjbWFwAA8D7wAAAcAAAAFCY3Z0IAAhAnkA"
-                               "AAMEAAAABGdhc3D//wADAAAF1AAAAAhnbHlmCC6aTwAAAx"
-                               "QAAACMaGVhZO8ooBcAAADcAAAANmhoZWEIkAV9AAABFAAA"
-                               "ACRobXR4EZQAhQAAAbAAAAAQbG9jYQBwAFQAAAMIAAAACm"
-                               "1heHAASQA9AAABOAAAACBuYW1lehAVOgAAA6AAAAIHcG9z"
-                               "dP+uADUAAAWoAAAAKgABAAAAAQAAMhPyuV8PPPUACwPoAA"
-                               "AAAMU4Lm0AAAAAxTgubQAh/5wFeAK8AAAACAACAAAAAAAA"
-                               "AAEAAAK8/5wAWgXcAAAAAAV4AAEAAAAAAAAAAAAAAAAAAA"
-                               "AEAAEAAAAEAAwAAwAAAAAAAgAAAAEAAQAAAEAALgAAAAAA"
-                               "AQXcAfQABQAAAooCvAAAAIwCigK8AAAB4AAxAQIAAAIABg"
-                               "kAAAAAAAAAAAABAAAAAAAAAAAAAAAAUGZFZABAAEEAQQMg"
-                               "/zgAWgK8AGQAAAABAAAAAAAABdwAIQAAAAAF3AAABdwAZA"
-                               "AAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAA"
-                               "BAAEAAEAAABB//8AAABB////wgABAAAAAAAAAQYAAAEAAA"
-                               "AAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA"
-                               "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAA"
-                               "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
-                               "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
-                               "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
-                               "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
-                               "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
-                               "AAAAAAAAAAAAAAAAAAAhAnkAAAAqACoAKgBGAAAAAgAhAA"
-                               "ABKgKaAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCx"
-                               "AwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIREnMxEjIQEJ6M"
-                               "fHApr9ZiECWAAAAwBk/5wFeAK8AAMABwALAAABNSEVATUh"
-                               "FQE1IRUB9AH0/UQDhPu0BRQB9MjI/tTIyP7UyMgAAAAAAA"
-                               "4ArgABAAAAAAAAACYATgABAAAAAAABAAUAgQABAAAAAAAC"
-                               "AAYAlQABAAAAAAADACEA4AABAAAAAAAEAAUBDgABAAAAAA"
-                               "AFABABNgABAAAAAAAGAAUBUwADAAEECQAAAEwAAAADAAEE"
-                               "CQABAAoAdQADAAEECQACAAwAhwADAAEECQADAEIAnAADAA"
-                               "EECQAEAAoBAgADAAEECQAFACABFAADAAEECQAGAAoBRwBD"
-                               "AG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADAAOA"
-                               "AgAE0AbwB6AGkAbABsAGEAIABDAG8AcgBwAG8AcgBhAHQA"
-                               "aQBvAG4AAENvcHlyaWdodCAoYykgMjAwOCBNb3ppbGxhIE"
-                               "NvcnBvcmF0aW9uAABNAGEAcgBrAEEAAE1hcmtBAABNAGUA"
-                               "ZABpAHUAbQAATWVkaXVtAABGAG8AbgB0AEYAbwByAGcAZQ"
-                               "AgADIALgAwACAAOgAgAE0AYQByAGsAQQAgADoAIAA1AC0A"
-                               "MQAxAC0AMgAwADAAOAAARm9udEZvcmdlIDIuMCA6IE1hcm"
-                               "tBIDogNS0xMS0yMDA4AABNAGEAcgBrAEEAAE1hcmtBAABW"
-                               "AGUAcgBzAGkAbwBuACAAMAAwADEALgAwADAAMAAgAABWZX"
-                               "JzaW9uIDAwMS4wMDAgAABNAGEAcgBrAEEAAE1hcmtBAAAA"
-                               "AgAAAAAAAP+DADIAAAABAAAAAAAAAAAAAAAAAAAAAAAEAA"
-                               "AAAQACACQAAAAAAAH//wACAAAAAQAAAADEPovuAAAAAMU4"
-                               "Lm0AAAAAxTgubQ==");
</del><ins>+    return decodebytes(b"AAEAAAANAIAAAwBQRkZUTU6u6MkAAAXcAAAAHE9TLzJWYW"
+                       b"QKAAABWAAAAFZjbWFwAA8D7wAAAcAAAAFCY3Z0IAAhAnkA"
+                       b"AAMEAAAABGdhc3D//wADAAAF1AAAAAhnbHlmCC6aTwAAAx"
+                       b"QAAACMaGVhZO8ooBcAAADcAAAANmhoZWEIkAV9AAABFAAA"
+                       b"ACRobXR4EZQAhQAAAbAAAAAQbG9jYQBwAFQAAAMIAAAACm"
+                       b"1heHAASQA9AAABOAAAACBuYW1lehAVOgAAA6AAAAIHcG9z"
+                       b"dP+uADUAAAWoAAAAKgABAAAAAQAAMhPyuV8PPPUACwPoAA"
+                       b"AAAMU4Lm0AAAAAxTgubQAh/5wFeAK8AAAACAACAAAAAAAA"
+                       b"AAEAAAK8/5wAWgXcAAAAAAV4AAEAAAAAAAAAAAAAAAAAAA"
+                       b"AEAAEAAAAEAAwAAwAAAAAAAgAAAAEAAQAAAEAALgAAAAAA"
+                       b"AQXcAfQABQAAAooCvAAAAIwCigK8AAAB4AAxAQIAAAIABg"
+                       b"kAAAAAAAAAAAABAAAAAAAAAAAAAAAAUGZFZABAAEEAQQMg"
+                       b"/zgAWgK8AGQAAAABAAAAAAAABdwAIQAAAAAF3AAABdwAZA"
+                       b"AAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAA"
+                       b"BAAEAAEAAABB//8AAABB////wgABAAAAAAAAAQYAAAEAAA"
+                       b"AAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA"
+                       b"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAA"
+                       b"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+                       b"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+                       b"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+                       b"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+                       b"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+                       b"AAAAAAAAAAAAAAAAAAAhAnkAAAAqACoAKgBGAAAAAgAhAA"
+                       b"ABKgKaAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCx"
+                       b"AwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIREnMxEjIQEJ6M"
+                       b"fHApr9ZiECWAAAAwBk/5wFeAK8AAMABwALAAABNSEVATUh"
+                       b"FQE1IRUB9AH0/UQDhPu0BRQB9MjI/tTIyP7UyMgAAAAAAA"
+                       b"4ArgABAAAAAAAAACYATgABAAAAAAABAAUAgQABAAAAAAAC"
+                       b"AAYAlQABAAAAAAADACEA4AABAAAAAAAEAAUBDgABAAAAAA"
+                       b"AFABABNgABAAAAAAAGAAUBUwADAAEECQAAAEwAAAADAAEE"
+                       b"CQABAAoAdQADAAEECQACAAwAhwADAAEECQADAEIAnAADAA"
+                       b"EECQAEAAoBAgADAAEECQAFACABFAADAAEECQAGAAoBRwBD"
+                       b"AG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADAAOA"
+                       b"AgAE0AbwB6AGkAbABsAGEAIABDAG8AcgBwAG8AcgBhAHQA"
+                       b"aQBvAG4AAENvcHlyaWdodCAoYykgMjAwOCBNb3ppbGxhIE"
+                       b"NvcnBvcmF0aW9uAABNAGEAcgBrAEEAAE1hcmtBAABNAGUA"
+                       b"ZABpAHUAbQAATWVkaXVtAABGAG8AbgB0AEYAbwByAGcAZQ"
+                       b"AgADIALgAwACAAOgAgAE0AYQByAGsAQQAgADoAIAA1AC0A"
+                       b"MQAxAC0AMgAwADAAOAAARm9udEZvcmdlIDIuMCA6IE1hcm"
+                       b"tBIDogNS0xMS0yMDA4AABNAGEAcgBrAEEAAE1hcmtBAABW"
+                       b"AGUAcgBzAGkAbwBuACAAMAAwADEALgAwADAAMAAgAABWZX"
+                       b"JzaW9uIDAwMS4wMDAgAABNAGEAcgBrAEEAAE1hcmtBAAAA"
+                       b"AgAAAAAAAP+DADIAAAABAAAAAAAAAAAAAAAAAAAAAAAEAA"
+                       b"AAAQACACQAAAAAAAH//wACAAAAAQAAAADEPovuAAAAAMU4"
+                       b"Lm0AAAAAxTgubQ==")
</ins><span class="cx"> 
</span><span class="cx"> def generate_report_headers_payload(request, server_data):
</span><del>-    stashed_data = request.server.stash.take(request.GET["id"])
</del><ins>+    stashed_data = request.server.stash.take(request.GET[b"id"])
</ins><span class="cx">     return stashed_data
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     handler = lambda data: generate_payload(request, data)
</span><del>-    content_type = 'application/x-font-truetype'
</del><ins>+    content_type = b'application/x-font-truetype'
</ins><span class="cx"> 
</span><del>-    if "report-headers" in request.GET:
</del><ins>+    if b"report-headers" in request.GET:
</ins><span class="cx">         handler = lambda data: generate_report_headers_payload(request, data)
</span><del>-        content_type = 'application/json'
</del><ins>+        content_type = b'application/json'
</ins><span class="cx"> 
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = handler,
</span><span class="cx">                         content_type = content_type,
</span><del>-                        access_control_allow_origin = "*")
</del><ins>+                        access_control_allow_origin = b"*")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceimagepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/image.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/image.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/image.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,7 +1,12 @@
</span><del>-import os, sys, array, math, StringIO
-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+import os, sys, array, math
</ins><span class="cx"> 
</span><ins>+from io import BytesIO
+
+from wptserve.utils import isomorphic_decode
+
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
+
</ins><span class="cx"> class Image:
</span><span class="cx">     """This class partially implements the interface of the PIL.Image.Image.
</span><span class="cx">        One day in the future WPT might support the PIL module or another imaging
</span><span class="lines">@@ -36,9 +41,9 @@
</span><span class="cx">     def save(self, f, type):
</span><span class="cx">         assert type == "BMP"
</span><span class="cx">         # 54 bytes of preambule + image color data.
</span><del>-        filesize = 54 + 3 * self.width * self.height;
</del><ins>+        filesize = 54 + 3 * self.width * self.height
</ins><span class="cx">         # 14 bytes of header.
</span><del>-        bmpfileheader = bytearray(['B', 'M'] + self._int_to_bytes(filesize) +
</del><ins>+        bmpfileheader = bytearray([ord('B'), ord('M')] + self._int_to_bytes(filesize) +
</ins><span class="cx">                                   [0, 0, 0, 0, 54, 0, 0, 0])
</span><span class="cx">         # 40 bytes of info.
</span><span class="cx">         bmpinfoheader = bytearray([40, 0, 0, 0] +
</span><span class="lines">@@ -47,7 +52,7 @@
</span><span class="cx">                                   [1, 0, 24] + (25 * [0]))
</span><span class="cx"> 
</span><span class="cx">         padlength = (4 - (self.width * 3) % 4) % 4
</span><del>-        bmppad = bytearray([0, 0, 0]);
</del><ins>+        bmppad = bytearray([0, 0, 0])
</ins><span class="cx">         padding = bmppad[0 : padlength]
</span><span class="cx"> 
</span><span class="cx">         f.write(bmpfileheader)
</span><span class="lines">@@ -59,7 +64,7 @@
</span><span class="cx">             f.write(padding)
</span><span class="cx"> 
</span><span class="cx"> def encode_string_as_bmp_image(string_data):
</span><del>-    data_bytes = array.array("B", string_data)
</del><ins>+    data_bytes = array.array("B", string_data.encode("utf-8"))
</ins><span class="cx"> 
</span><span class="cx">     num_bytes = len(data_bytes)
</span><span class="cx"> 
</span><span class="lines">@@ -79,7 +84,7 @@
</span><span class="cx">     img.putdata(color_data)
</span><span class="cx"> 
</span><span class="cx">     # Flush image to string.
</span><del>-    f = StringIO.StringIO()
</del><ins>+    f = BytesIO()
</ins><span class="cx">     img.save(f, "BMP")
</span><span class="cx">     f.seek(0)
</span><span class="cx"> 
</span><span class="lines">@@ -86,26 +91,26 @@
</span><span class="cx">     return f.read()
</span><span class="cx"> 
</span><span class="cx"> def generate_payload(request, server_data):
</span><del>-    data = ('{"headers": %(headers)s}') % server_data
-    if "id" in request.GET:
-        request.server.stash.put(request.GET["id"], data)
</del><ins>+    data = (u'{"headers": %(headers)s}') % server_data
+    if b"id" in request.GET:
+        request.server.stash.put(request.GET[b"id"], data)
</ins><span class="cx">     data = encode_string_as_bmp_image(data)
</span><span class="cx">     return data
</span><span class="cx"> 
</span><span class="cx"> def generate_report_headers_payload(request, server_data):
</span><del>-    stashed_data = request.server.stash.take(request.GET["id"])
</del><ins>+    stashed_data = request.server.stash.take(request.GET[b"id"])
</ins><span class="cx">     return stashed_data
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     handler = lambda data: generate_payload(request, data)
</span><del>-    content_type = 'image/bmp'
</del><ins>+    content_type = b'image/bmp'
</ins><span class="cx"> 
</span><del>-    if "report-headers" in request.GET:
</del><ins>+    if b"report-headers" in request.GET:
</ins><span class="cx">         handler = lambda data: generate_report_headers_payload(request, data)
</span><del>-        content_type = 'application/json'
</del><ins>+        content_type = b'application/json'
</ins><span class="cx"> 
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = handler,
</span><span class="cx">                         content_type = content_type,
</span><del>-                        access_control_allow_origin = "*")
</del><ins>+                        access_control_allow_origin = b"*")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcereferrerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/referrer.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/referrer.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/referrer.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> def main(request, response):
</span><del>-    referrer = request.headers.get("referer", "")
-    response_headers = [("Content-Type", "text/javascript")];
-    return (200, response_headers, "window.referrer = '" + referrer + "'")
</del><ins>+    referrer = request.headers.get(b"referer", b"")
+    response_headers = [(b"Content-Type", b"text/javascript")]
+    return (200, response_headers, b"window.referrer = '" + referrer + b"'")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcescriptpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/script.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/script.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/script.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,13 +1,14 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
</ins><span class="cx"> 
</span><ins>+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
+
</ins><span class="cx"> def generate_payload(server_data):
</span><del>-    return subresource.get_template("script.js.template") % server_data
</del><ins>+    return subresource.get_template(u"script.js.template") % server_data
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = generate_payload,
</span><del>-                        content_type = "application/javascript")
-
</del><ins>+                        content_type = b"application/javascript")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcesharedworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/shared-worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/shared-worker.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/shared-worker.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,12 +1,13 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(server_data):
</span><del>-    return subresource.get_template("shared-worker.js.template") % server_data
</del><ins>+    return subresource.get_template(u"shared-worker.js.template") % server_data
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = generate_payload,
</span><del>-                        content_type = "application/javascript")
</del><ins>+                        content_type = b"application/javascript")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcestaticimportpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/static-import.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/static-import.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/static-import.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,11 +1,14 @@
</span><del>-import os, sys, urllib
-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+import os, sys
+from urllib.parse import unquote
</ins><span class="cx"> 
</span><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
+
</ins><span class="cx"> def generate_payload(request):
</span><del>-    import_url = urllib.unquote(request.GET['import_url'])
-    return subresource.get_template("static-import.js.template") % {
-        "import_url": import_url
</del><ins>+    import_url = unquote(isomorphic_decode(request.GET[b'import_url']))
+    return subresource.get_template(u"static-import.js.template") % {
+        u"import_url": import_url
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="lines">@@ -13,4 +16,4 @@
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = payload_generator,
</span><del>-                        content_type = "application/javascript")
</del><ins>+                        content_type = b"application/javascript")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcestylesheetpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/stylesheet.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/stylesheet.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/stylesheet.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,50 +1,51 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(request, server_data):
</span><del>-    data = ('{"headers": %(headers)s}') % server_data
-    type = 'image'
-    if "type" in request.GET:
-        type = request.GET["type"]
</del><ins>+    data = (u'{"headers": %(headers)s}') % server_data
+    type = b'image'
+    if b"type" in request.GET:
+        type = request.GET[b"type"]
</ins><span class="cx"> 
</span><del>-    if "id" in request.GET:
-        request.server.stash.put(request.GET["id"], data)
</del><ins>+    if b"id" in request.GET:
+        request.server.stash.put(request.GET[b"id"], data)
</ins><span class="cx"> 
</span><del>-    if type == 'image':
-        return subresource.get_template("image.css.template") % {"id": request.GET["id"]}
</del><ins>+    if type == b'image':
+        return subresource.get_template(u"image.css.template") % {u"id": isomorphic_decode(request.GET[b"id"])}
</ins><span class="cx"> 
</span><del>-    elif type == 'font':
-        return subresource.get_template("font.css.template") % {"id": request.GET["id"]}
</del><ins>+    elif type == b'font':
+        return subresource.get_template(u"font.css.template") % {u"id": isomorphic_decode(request.GET[b"id"])}
</ins><span class="cx"> 
</span><del>-    elif type == 'svg':
-        return subresource.get_template("svg.css.template") % {
-            "id": request.GET["id"],
-            "property": request.GET["property"]}
</del><ins>+    elif type == b'svg':
+        return subresource.get_template(u"svg.css.template") % {
+            u"id": isomorphic_decode(request.GET[b"id"]),
+            u"property": isomorphic_decode(request.GET[b"property"])}
</ins><span class="cx"> 
</span><span class="cx"> def generate_import_rule(request, server_data):
</span><del>-    return "@import url('%(url)s');" % {
-        "url": subresource.create_url(request, swap_origin=True,
-                                      query_parameter_to_remove="import-rule")
</del><ins>+    return u"@import url('%(url)s');" % {
+        u"url": subresource.create_url(request, swap_origin=True,
+                                       query_parameter_to_remove=u"import-rule")
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> def generate_report_headers_payload(request, server_data):
</span><del>-    stashed_data = request.server.stash.take(request.GET["id"])
</del><ins>+    stashed_data = request.server.stash.take(request.GET[b"id"])
</ins><span class="cx">     return stashed_data
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     payload_generator = lambda data: generate_payload(request, data)
</span><del>-    content_type = "text/css"
-    referrer_policy = "unsafe-url"
-    if "import-rule" in request.GET:
</del><ins>+    content_type = b"text/css"
+    referrer_policy = b"unsafe-url"
+    if b"import-rule" in request.GET:
</ins><span class="cx">         payload_generator = lambda data: generate_import_rule(request, data)
</span><span class="cx"> 
</span><del>-    if "report-headers" in request.GET:
</del><ins>+    if b"report-headers" in request.GET:
</ins><span class="cx">         payload_generator = lambda data: generate_report_headers_payload(request, data)
</span><del>-        content_type = 'application/json'
</del><ins>+        content_type = b'application/json'
</ins><span class="cx"> 
</span><del>-    if "referrer-policy" in request.GET:
-        referrer_policy = request.GET["referrer-policy"]
</del><ins>+    if b"referrer-policy" in request.GET:
+        referrer_policy = request.GET[b"referrer-policy"]
</ins><span class="cx"> 
</span><span class="cx">     subresource.respond(
</span><span class="cx">         request,
</span><span class="lines">@@ -51,4 +52,4 @@
</span><span class="cx">         response,
</span><span class="cx">         payload_generator = payload_generator,
</span><span class="cx">         content_type = content_type,
</span><del>-        maybe_additional_headers = { "Referrer-Policy": referrer_policy })
</del><ins>+        maybe_additional_headers = { b"Referrer-Policy": referrer_policy })
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcesubresourcepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/subresource.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/subresource.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/subresource.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,13 @@
</span><del>-import os, json, urllib, urlparse
</del><ins>+import os, json
+from urllib.parse import parse_qsl, SplitResult, urlencode, urlsplit, urlunsplit
</ins><span class="cx"> 
</span><ins>+from wptserve.utils import isomorphic_decode, isomorphic_encode
+
</ins><span class="cx"> def get_template(template_basename):
</span><del>-    script_directory = os.path.dirname(os.path.abspath(__file__))
</del><ins>+    script_directory = os.path.dirname(os.path.abspath(isomorphic_decode(__file__)))
</ins><span class="cx">     template_directory = os.path.abspath(os.path.join(script_directory,
</span><del>-                                                      "template"))
-    template_filename = os.path.join(template_directory, template_basename);
</del><ins>+                                                      u"template"))
+    template_filename = os.path.join(template_directory, template_basename)
</ins><span class="cx"> 
</span><span class="cx">     with open(template_filename, "r") as f:
</span><span class="cx">         return f.read()
</span><span class="lines">@@ -13,15 +16,15 @@
</span><span class="cx"> def redirect(url, response):
</span><span class="cx">     response.add_required_headers = False
</span><span class="cx">     response.writer.write_status(301)
</span><del>-    response.writer.write_header("access-control-allow-origin", "*")
-    response.writer.write_header("location", url)
</del><ins>+    response.writer.write_header(b"access-control-allow-origin", b"*")
+    response.writer.write_header(b"location", isomorphic_encode(url))
</ins><span class="cx">     response.writer.end_headers()
</span><del>-    response.writer.write("")
</del><ins>+    response.writer.write(u"")
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> # TODO(kristijanburnik): subdomain_prefix is a hardcoded value aligned with
</span><span class="cx"> # referrer-policy-test-case.js. The prefix should be configured in one place.
</span><del>-def __get_swapped_origin_netloc(netloc, subdomain_prefix = "www1."):
</del><ins>+def __get_swapped_origin_netloc(netloc, subdomain_prefix = u"www1."):
</ins><span class="cx">     if netloc.startswith(subdomain_prefix):
</span><span class="cx">         return netloc[len(subdomain_prefix):]
</span><span class="cx">     else:
</span><span class="lines">@@ -40,16 +43,16 @@
</span><span class="cx">                swap_scheme=False,
</span><span class="cx">                swap_origin=False,
</span><span class="cx">                downgrade=False,
</span><del>-               query_parameter_to_remove="redirection"):
-    parsed = urlparse.urlsplit(request.url)
</del><ins>+               query_parameter_to_remove=u"redirection"):
+    parsed = urlsplit(request.url)
</ins><span class="cx">     destination_netloc = parsed.netloc
</span><span class="cx"> 
</span><span class="cx">     scheme = parsed.scheme
</span><span class="cx">     if swap_scheme:
</span><del>-        scheme = "http" if parsed.scheme == "https" else "https"
-        hostname = parsed.netloc.split(':')[0]
-        port = request.server.config["ports"][scheme][0]
-        destination_netloc = ":".join([hostname, str(port)])
</del><ins>+        scheme = u"http" if parsed.scheme == u"https" else u"https"
+        hostname = parsed.netloc.split(u':')[0]
+        port = request.server.config[u"ports"][scheme][0]
+        destination_netloc = u":".join([hostname, str(port)])
</ins><span class="cx"> 
</span><span class="cx">     if downgrade:
</span><span class="cx">         # These rely on some unintuitive cleverness due to WPT's test setup:
</span><span class="lines">@@ -58,29 +61,28 @@
</span><span class="cx">         # which will be upgraded to `https://[domain]:[https-port]`.
</span><span class="cx">         # If the upgrade fails, the load will fail, as we don't serve HTTP over
</span><span class="cx">         # the secure port.
</span><del>-        if parsed.scheme == "https":
-            scheme = "http"
-        elif parsed.scheme == "wss":
-            scheme = "ws"
</del><ins>+        if parsed.scheme == u"https":
+            scheme = u"http"
+        elif parsed.scheme == u"wss":
+            scheme = u"ws"
</ins><span class="cx">         else:
</span><del>-            raise ValueError("Downgrade redirection: Invalid scheme '%s'" %
</del><ins>+            raise ValueError(u"Downgrade redirection: Invalid scheme '%s'" %
</ins><span class="cx">                              parsed.scheme)
</span><del>-        hostname = parsed.netloc.split(':')[0]
-        port = request.server.config["ports"][parsed.scheme][0]
-        destination_netloc = ":".join([hostname, str(port)])
</del><ins>+        hostname = parsed.netloc.split(u':')[0]
+        port = request.server.config[u"ports"][parsed.scheme][0]
+        destination_netloc = u":".join([hostname, str(port)])
</ins><span class="cx"> 
</span><span class="cx">     if swap_origin:
</span><span class="cx">         destination_netloc = __get_swapped_origin_netloc(destination_netloc)
</span><span class="cx"> 
</span><del>-    parsed_query = urlparse.parse_qsl(parsed.query, keep_blank_values=True)
-    parsed_query = filter(lambda x: x[0] != query_parameter_to_remove,
-                          parsed_query)
</del><ins>+    parsed_query = parse_qsl(parsed.query, keep_blank_values=True)
+    parsed_query = [x for x in parsed_query if x[0] != query_parameter_to_remove]
</ins><span class="cx"> 
</span><del>-    destination_url = urlparse.urlunsplit(urlparse.SplitResult(
</del><ins>+    destination_url = urlunsplit(SplitResult(
</ins><span class="cx">         scheme = scheme,
</span><span class="cx">         netloc = destination_netloc,
</span><span class="cx">         path = parsed.path,
</span><del>-        query = urllib.urlencode(parsed_query),
</del><ins>+        query = urlencode(parsed_query),
</ins><span class="cx">         fragment = None))
</span><span class="cx"> 
</span><span class="cx">     return destination_url
</span><span class="lines">@@ -87,25 +89,25 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def preprocess_redirection(request, response):
</span><del>-    if "redirection" not in request.GET:
</del><ins>+    if b"redirection" not in request.GET:
</ins><span class="cx">         return False
</span><span class="cx"> 
</span><del>-    redirection = request.GET["redirection"]
</del><ins>+    redirection = request.GET[b"redirection"]
</ins><span class="cx"> 
</span><del>-    if redirection == "no-redirect":
</del><ins>+    if redirection == b"no-redirect":
</ins><span class="cx">         return False
</span><del>-    elif redirection == "keep-scheme":
</del><ins>+    elif redirection == b"keep-scheme":
</ins><span class="cx">         redirect_url = create_url(request, swap_scheme=False)
</span><del>-    elif redirection == "swap-scheme":
</del><ins>+    elif redirection == b"swap-scheme":
</ins><span class="cx">         redirect_url = create_url(request, swap_scheme=True)
</span><del>-    elif redirection == "downgrade":
</del><ins>+    elif redirection == b"downgrade":
</ins><span class="cx">         redirect_url = create_url(request, downgrade=True)
</span><del>-    elif redirection == "keep-origin":
</del><ins>+    elif redirection == b"keep-origin":
</ins><span class="cx">         redirect_url = create_url(request, swap_origin=False)
</span><del>-    elif redirection == "swap-origin":
</del><ins>+    elif redirection == b"swap-origin":
</ins><span class="cx">         redirect_url = create_url(request, swap_origin=True)
</span><span class="cx">     else:
</span><del>-        raise ValueError("Invalid redirection type '%s'" % redirection)
</del><ins>+        raise ValueError(u"Invalid redirection type '%s'" % isomorphic_decode(redirection))
</ins><span class="cx"> 
</span><span class="cx">     redirect(redirect_url, response)
</span><span class="cx">     return True
</span><span class="lines">@@ -112,37 +114,38 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def preprocess_stash_action(request, response):
</span><del>-    if "action" not in request.GET:
</del><ins>+    if b"action" not in request.GET:
</ins><span class="cx">         return False
</span><span class="cx"> 
</span><del>-    action = request.GET["action"]
</del><ins>+    action = request.GET[b"action"]
</ins><span class="cx"> 
</span><del>-    key = request.GET["key"]
</del><ins>+    key = request.GET[b"key"]
</ins><span class="cx">     stash = request.server.stash
</span><del>-    path = request.GET.get("path", request.url.split('?'))[0]
</del><ins>+    path = request.GET[b"path"] if b"path" in request.GET \
+           else isomorphic_encode(request.url.split(u'?')[0])
</ins><span class="cx"> 
</span><del>-    if action == "put":
-        value = request.GET["value"]
</del><ins>+    if action == b"put":
+        value = isomorphic_decode(request.GET[b"value"])
</ins><span class="cx">         stash.take(key=key, path=path)
</span><span class="cx">         stash.put(key=key, value=value, path=path)
</span><del>-        response_data = json.dumps({"status": "success", "result": key})
-    elif action == "purge":
</del><ins>+        response_data = json.dumps({u"status": u"success", u"result": isomorphic_decode(key)})
+    elif action == b"purge":
</ins><span class="cx">         value = stash.take(key=key, path=path)
</span><span class="cx">         return False
</span><del>-    elif action == "take":
</del><ins>+    elif action == b"take":
</ins><span class="cx">         value = stash.take(key=key, path=path)
</span><span class="cx">         if value is None:
</span><del>-            status = "allowed"
</del><ins>+            status = u"allowed"
</ins><span class="cx">         else:
</span><del>-            status = "blocked"
-        response_data = json.dumps({"status": status, "result": value})
</del><ins>+            status = u"blocked"
+        response_data = json.dumps({u"status": status, u"result": value})
</ins><span class="cx">     else:
</span><span class="cx">         return False
</span><span class="cx"> 
</span><span class="cx">     response.add_required_headers = False
</span><span class="cx">     response.writer.write_status(200)
</span><del>-    response.writer.write_header("content-type", "text/javascript")
-    response.writer.write_header("cache-control", "no-cache; must-revalidate")
</del><ins>+    response.writer.write_header(b"content-type", b"text/javascript")
+    response.writer.write_header(b"cache-control", b"no-cache; must-revalidate")
</ins><span class="cx">     response.writer.end_headers()
</span><span class="cx">     response.writer.write(response_data)
</span><span class="cx">     return True
</span><span class="lines">@@ -149,16 +152,16 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def __noop(request, response):
</span><del>-    return ""
</del><ins>+    return u""
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def respond(request,
</span><span class="cx">             response,
</span><span class="cx">             status_code = 200,
</span><del>-            content_type = "text/html",
</del><ins>+            content_type = b"text/html",
</ins><span class="cx">             payload_generator = __noop,
</span><del>-            cache_control = "no-cache; must-revalidate",
-            access_control_allow_origin = "*",
</del><ins>+            cache_control = b"no-cache; must-revalidate",
+            access_control_allow_origin = b"*",
</ins><span class="cx">             maybe_additional_headers = None):
</span><span class="cx">     if preprocess_redirection(request, response):
</span><span class="cx">         return
</span><span class="lines">@@ -170,10 +173,10 @@
</span><span class="cx">     response.writer.write_status(status_code)
</span><span class="cx"> 
</span><span class="cx">     if access_control_allow_origin != None:
</span><del>-        response.writer.write_header("access-control-allow-origin",
</del><ins>+        response.writer.write_header(b"access-control-allow-origin",
</ins><span class="cx">                                      access_control_allow_origin)
</span><del>-    response.writer.write_header("content-type", content_type)
-    response.writer.write_header("cache-control", cache_control)
</del><ins>+    response.writer.write_header(b"content-type", content_type)
+    response.writer.write_header(b"cache-control", cache_control)
</ins><span class="cx"> 
</span><span class="cx">     additional_headers = maybe_additional_headers or {}
</span><span class="cx">     for header, value in additional_headers.items():
</span><span class="lines">@@ -181,9 +184,16 @@
</span><span class="cx"> 
</span><span class="cx">     response.writer.end_headers()
</span><span class="cx"> 
</span><del>-    server_data = {"headers": json.dumps(request.headers, indent = 4)}
</del><ins>+    new_headers = {}
+    new_val = []
+    for key, val in request.headers.items():
+        if len(val) == 1:
+            new_val = isomorphic_decode(val[0])
+        else:
+            new_val = [isomorphic_decode(x) for x in val]
+        new_headers[isomorphic_decode(key)] = new_val
</ins><span class="cx"> 
</span><ins>+    server_data = {u"headers": json.dumps(new_headers, indent = 4)}
+
</ins><span class="cx">     payload = payload_generator(server_data)
</span><span class="cx">     response.writer.write(payload)
</span><del>-
-
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcesvgpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/svg.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/svg.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/svg.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,34 +1,35 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(request, server_data):
</span><del>-    data = ('{"headers": %(headers)s}') % server_data
-    if "id" in request.GET:
</del><ins>+    data = (u'{"headers": %(headers)s}') % server_data
+    if b"id" in request.GET:
</ins><span class="cx">         with request.server.stash.lock:
</span><del>-            request.server.stash.take(request.GET["id"])
-            request.server.stash.put(request.GET["id"], data)
-    return "<svg xmlns='http://www.w3.org/2000/svg'></svg>";
</del><ins>+            request.server.stash.take(request.GET[b"id"])
+            request.server.stash.put(request.GET[b"id"], data)
+    return u"<svg xmlns='http://www.w3.org/2000/svg'></svg>"
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload_embedded(request, server_data):
</span><del>-    return subresource.get_template("svg.embedded.template") % {
-        "id": request.GET["id"],
-        "property": request.GET["property"]};
</del><ins>+    return subresource.get_template(u"svg.embedded.template") % {
+        u"id": isomorphic_decode(request.GET[b"id"]),
+        u"property": isomorphic_decode(request.GET[b"property"])}
</ins><span class="cx"> 
</span><span class="cx"> def generate_report_headers_payload(request, server_data):
</span><del>-    stashed_data = request.server.stash.take(request.GET["id"])
</del><ins>+    stashed_data = request.server.stash.take(request.GET[b"id"])
</ins><span class="cx">     return stashed_data
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     handler = lambda data: generate_payload(request, data)
</span><del>-    content_type = 'image/svg+xml'
</del><ins>+    content_type = b'image/svg+xml'
</ins><span class="cx"> 
</span><del>-    if "embedded-svg" in request.GET:
</del><ins>+    if b"embedded-svg" in request.GET:
</ins><span class="cx">         handler = lambda data: generate_payload_embedded(request, data)
</span><span class="cx"> 
</span><del>-    if "report-headers" in request.GET:
</del><ins>+    if b"report-headers" in request.GET:
</ins><span class="cx">         handler = lambda data: generate_report_headers_payload(request, data)
</span><del>-        content_type = 'application/json'
</del><ins>+        content_type = b'application/json'
</ins><span class="cx"> 
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcevideopy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/video.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/video.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/video.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,9 +1,10 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(request, server_data):
</span><del>-    file = os.path.join(request.doc_root, "media", "movie_5.ogv")
</del><ins>+    file = os.path.join(request.doc_root, u"media", u"movie_5.ogv")
</ins><span class="cx">     return open(file, "rb").read()
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -12,6 +13,5 @@
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = handler,
</span><del>-                        access_control_allow_origin = "*",
-                        content_type = "video/ogg")
-
</del><ins>+                        access_control_allow_origin = b"*",
+                        content_type = b"video/ogg")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourceworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/worker.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/worker.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,12 +1,13 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(server_data):
</span><del>-    return subresource.get_template("worker.js.template") % server_data
</del><ins>+    return subresource.get_template(u"worker.js.template") % server_data
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = generate_payload,
</span><del>-                        content_type = "application/javascript")
</del><ins>+                        content_type = b"application/javascript")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturessubresourcexhrpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/xhr.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/xhr.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/subresource/xhr.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,9 +1,10 @@
</span><span class="cx"> import os, sys
</span><del>-sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
-import subresource
</del><ins>+from wptserve.utils import isomorphic_decode
+import importlib
+subresource = importlib.import_module("common.security-features.subresource.subresource")
</ins><span class="cx"> 
</span><span class="cx"> def generate_payload(server_data):
</span><del>-    data = ('{"headers": %(headers)s}') % server_data
</del><ins>+    data = (u'{"headers": %(headers)s}') % server_data
</ins><span class="cx">     return data
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="lines">@@ -10,6 +11,6 @@
</span><span class="cx">     subresource.respond(request,
</span><span class="cx">                         response,
</span><span class="cx">                         payload_generator = generate_payload,
</span><del>-                        access_control_allow_origin = "*",
-                        content_type = "application/json")
-
</del><ins>+                        access_control_allow_origin = b"*",
+                        content_type = b"application/json",
+                        cache_control = b"no-store")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturestoolsgeneratepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/generate.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/generate.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/generate.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -76,6 +76,43 @@
</span><span class="cx">         spec_json['test_file_path_pattern'] % selection_for_filename)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+def get_csp_value(value):
+    '''
+    Returns actual CSP header values (e.g. "worker-src 'self'") for the
+    given string used in PolicyDelivery's value (e.g. "worker-src-self").
+    '''
+
+    # script-src
+    # Test-related scripts like testharness.js and inline scripts containing
+    # test bodies.
+    # 'unsafe-inline' is added as a workaround here. This is probably not so
+    # bad, as it shouldn't intefere non-inline-script requests that we want to
+    # test.
+    if value == 'script-src-wildcard':
+        return "script-src * 'unsafe-inline'"
+    if value == 'script-src-self':
+        return "script-src 'self' 'unsafe-inline'"
+    # Workaround for "script-src 'none'" would be more complicated, because
+    # - "script-src 'none' 'unsafe-inline'" is handled somehow differently from
+    #   "script-src 'none'", i.e.
+    #   https://w3c.github.io/webappsec-csp/#match-url-to-source-list Step 3
+    #   handles the latter but not the former.
+    # - We need nonce- or path-based additional values to allow same-origin
+    #   test scripts like testharness.js.
+    # Therefore, we disable 'script-src-none' tests for now in
+    # `/content-security-policy/spec.src.json`.
+    if value == 'script-src-none':
+        return "script-src 'none'"
+
+    # worker-src
+    if value == 'worker-src-wildcard':
+        return 'worker-src *'
+    if value == 'worker-src-self':
+        return "worker-src 'self'"
+    if value == 'worker-src-none':
+        return "worker-src 'none'"
+    raise Exception('Invalid delivery_value: %s' % value)
+
</ins><span class="cx"> def handle_deliveries(policy_deliveries):
</span><span class="cx">     '''
</span><span class="cx">     Generate <meta> elements and HTTP headers for the given list of
</span><span class="lines">@@ -110,6 +147,16 @@
</span><span class="cx">             else:
</span><span class="cx">                 raise Exception(
</span><span class="cx">                     'Invalid delivery_type: %s' % delivery.delivery_type)
</span><ins>+        elif delivery.key == 'contentSecurityPolicy':
+            csp_value = get_csp_value(delivery.value)
+            if delivery.delivery_type == 'meta':
+                meta += '<meta http-equiv="Content-Security-Policy" ' + \
+                       'content="' + csp_value + '">'
+            elif delivery.delivery_type == 'http-rp':
+                headers['Content-Security-Policy'] = csp_value
+            else:
+                raise Exception(
+                    'Invalid delivery_type: %s' % delivery.delivery_type)
</ins><span class="cx">         elif delivery.key == 'upgradeInsecureRequests':
</span><span class="cx">             # https://w3c.github.io/webappsec-upgrade-insecure-requests/#delivery
</span><span class="cx">             assert (delivery.value == 'upgrade')
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturestoolsspecsrcjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/spec.src.json (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/spec.src.json   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/spec.src.json      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -94,16 +94,23 @@
</span><span class="cx">       "delivery_value": "*",
</span><span class="cx">       "redirection": "*",
</span><span class="cx">       "subresource": [
</span><ins>+        "a-tag",
</ins><span class="cx">         "area-tag",
</span><del>-        "a-tag",
</del><ins>+        "audio-tag",
+        "beacon",
</ins><span class="cx">         "fetch",
</span><span class="cx">         "iframe-tag",
</span><span class="cx">         "img-tag",
</span><ins>+        "link-css-tag",
+        "link-prefetch-tag",
+        "object-tag",
+        "picture-tag",
</ins><span class="cx">         "script-tag",
</span><span class="cx">         "sharedworker-classic",
</span><span class="cx">         "sharedworker-import",
</span><span class="cx">         "sharedworker-import-data",
</span><span class="cx">         "sharedworker-module",
</span><ins>+        "video-tag",
</ins><span class="cx">         "worker-classic",
</span><span class="cx">         "worker-import",
</span><span class="cx">         "worker-import-data",
</span><span class="lines">@@ -127,6 +134,27 @@
</span><span class="cx">         "cross-ws-downgrade"
</span><span class="cx">       ],
</span><span class="cx">       "expectation": "*"
</span><ins>+    },
+    {
+      // Worklets are HTTPS contexts only
+      "expansion": "*",
+      "source_scheme": "http",
+      "source_context_list": "*",
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "redirection": "*",
+      "subresource": [
+        "worklet-animation",
+        "worklet-animation-import-data",
+        "worklet-audio",
+        "worklet-audio-import-data",
+        "worklet-layout",
+        "worklet-layout-import-data",
+        "worklet-paint",
+        "worklet-paint-import-data"
+      ],
+      "origin": "*",
+      "expectation": "*"
</ins><span class="cx">     }
</span><span class="cx">   ],
</span><span class="cx">   "source_context_schema": {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsecurityfeaturestoolsutilpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/util.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/util.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/security-features/tools/util.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -122,6 +122,8 @@
</span><span class="cx">                 raise ShouldSkip()
</span><span class="cx">             policy_delivery = target_policy_delivery
</span><span class="cx">         elif obj == "anotherPolicy":
</span><ins>+            if len(supported_delivery_types) == 0:
+                raise ShouldSkip()
</ins><span class="cx">             policy_delivery = target_policy_delivery.get_another_policy(
</span><span class="cx">                 supported_delivery_types[0])
</span><span class="cx">         elif isinstance(obj, dict):
</span><span class="lines">@@ -156,6 +158,11 @@
</span><span class="cx">                 return PolicyDelivery(delivery_type, self.key, None)
</span><span class="cx">             else:
</span><span class="cx">                 return PolicyDelivery(delivery_type, self.key, 'opt-in')
</span><ins>+        elif self.key == 'contentSecurityPolicy':
+            if self.value is not None:
+                return PolicyDelivery(delivery_type, self.key, None)
+            else:
+                return PolicyDelivery(delivery_type, self.key, 'worker-src-none')
</ins><span class="cx">         elif self.key == 'upgradeInsecureRequests':
</span><span class="cx">             if self.value == 'upgrade':
</span><span class="cx">                 return PolicyDelivery(delivery_type, self.key, None)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonslowredirectpy"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow-redirect.py (0 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow-redirect.py                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow-redirect.py   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+import time
+
+def main(request, response):
+    """Simple handler that causes redirection.
+
+    The request should typically have two query parameters:
+    status - The status to use for the redirection. Defaults to 302.
+    location - The resource to redirect to.
+    """
+    status = 302
+    delay = 2
+    if b"status" in request.GET:
+        try:
+            status = int(request.GET.first(b"status"))
+        except ValueError:
+            pass
+
+    if b"delay" in request.GET:
+        try:
+            delay = int(request.GET.first(b"delay"))
+        except ValueError:
+            pass
+
+    response.status = status
+    time.sleep(delay)
+
+    location = request.GET.first(b"location")
+
+    response.headers.set(b"Location", location)
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonslowpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/slow.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -2,4 +2,4 @@
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     time.sleep(2)
</span><del>-    return 200, [], ''
</del><ins>+    return 200, [], b''
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonsquarepng"></a>
<div class="binary"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/common/square.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Index: trunk/LayoutTests/imported/w3c/web-platform-tests/common/square.png
</span><span class="cx">===================================================================
</span><del>--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/square.png 2021-06-23 15:20:49 UTC (rev 279168)
</del><ins>+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/square.png  2021-06-23 15:37:56 UTC (rev 279169)
</ins><span class="cx">Property changes on: trunk/LayoutTests/imported/w3c/web-platform-tests/common/square.png
</span><span class="cx">___________________________________________________________________
</span><a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<ins>+image/png
</ins><span class="cx">\ No newline at end of property
</span><a id="trunkLayoutTestsimportedw3cwebplatformtestscommonstringifiersjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/stringifiers.js (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/stringifiers.js 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/stringifiers.js    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Runs tests for <http://heycam.github.io/webidl/#es-stringifier>.
</span><span class="cx">  * @param {Object} aObject - object to test
</span><span class="cx">  * @param {string} aAttribute - IDL attribute name that is annotated with `stringifier`
</span><del>- * @param {boolean} aIsUnforgeable - whether the IDL attribute is `[Unforgeable]`
</del><ins>+ * @param {boolean} aIsUnforgeable - whether the IDL attribute is `[LegacyUnforgeable]`
</ins><span class="cx">  */
</span><span class="cx"> function test_stringifier_attribute(aObject, aAttribute, aIsUnforgeable) {
</span><span class="cx">   // Step 1.
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonthird_partyreftestanalyzerxhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/reftest-analyzer.xhtml (0 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/reftest-analyzer.xhtml                              (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/reftest-analyzer.xhtml 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -0,0 +1,934 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+<!-- -*- Mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set shiftwidth=2 tabstop=2 autoindent expandtab: -->
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!--
+
+Features to add:
+* make the left and right parts of the viewer independently scrollable
+* make the test list filterable
+** default to only showing unexpecteds
+* add other ways to highlight differences other than circling?
+* add zoom/pan to images
+* Add ability to load log via XMLHttpRequest (also triggered via URL param)
+* color the test list based on pass/fail and expected/unexpected/random/skip
+* ability to load multiple logs ?
+** rename them by clicking on the name and editing
+** turn the test list into a collapsing tree view
+** move log loading into popup from viewer UI
+
+-->
+<!DOCTYPE html>
+<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>Reftest analyzer</title>
+  <style type="text/css"><![CDATA[
+
+  html, body { margin: 0; }
+  html { padding: 0; }
+  body { padding: 4px; }
+
+  #pixelarea, #itemlist, #images { position: absolute; }
+  #itemlist, #images { overflow: auto; }
+  #pixelarea { top: 0; left: 0; width: 320px; height: 84px; overflow: visible }
+  #itemlist { top: 84px; left: 0; width: 320px; bottom: 0; }
+  #images { top: 0; bottom: 0; left: 320px; right: 0; }
+
+  #leftpane { width: 320px; }
+  #images { position: fixed; top: 10px; left: 340px; }
+
+  form#imgcontrols { margin: 0; display: block; }
+
+  #itemlist > table { border-collapse: collapse; }
+  #itemlist > table > tbody > tr > td { border: 1px solid; padding: 1px; }
+  #itemlist td.activeitem { background-color: yellow; }
+
+  /*
+  #itemlist > table > tbody > tr.pass > td.url { background: lime; }
+  #itemlist > table > tbody > tr.fail > td.url { background: red; }
+  */
+
+  #magnification > svg { display: block; width: 84px; height: 84px; }
+
+  #pixelinfo { font: small sans-serif; position: absolute; width: 200px; left: 84px; }
+  #pixelinfo table { border-collapse: collapse; }
+  #pixelinfo table th { white-space: nowrap; text-align: left; padding: 0; }
+  #pixelinfo table td { font-family: monospace; padding: 0 0 0 0.25em; }
+
+  #pixelhint { display: inline; color: #88f; cursor: help; }
+  #pixelhint > * { display: none; position: absolute; margin: 8px 0 0 8px; padding: 4px; width: 400px; background: #ffa; color: black; box-shadow: 3px 3px 2px #888; z-index: 1; }
+  #pixelhint:hover { color: #000; }
+  #pixelhint:hover > * { display: block; }
+  #pixelhint p { margin: 0; }
+  #pixelhint p + p { margin-top: 1em; }
+
+  ]]></style>
+  <script type="text/javascript"><![CDATA[
+
+var XLINK_NS = "http://www.w3.org/1999/xlink";
+var SVG_NS = "http://www.w3.org/2000/svg";
+var IMAGE_NOT_AVAILABLE = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAASCAYAAADczdVTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAHy0lEQVRoge2aX2hb5xnGf2dYabROgqQkpMuKnWUJLmxHMFaa/SscteQiF5EvUgqLctEVrDJKK1+MolzkQr4IctgW+SLIheJc1BpFpswJw92FbaZsTCGTL0465AtntUekJdJ8lByVHbnnwLsLKbKdSJbiZBVjeuAYn+/P+z3fc97vfd9zbEVEhB566BK+1m0CPfx/o+eAPXQVbR3QqVapOl8FlR46h0O1Wu02iacCZfsasMKEz8vbx1JYE6fY/dXx6mEbFObPcvDVDBlznpc9G+2r8xNcvLqK2w39r4UI+fs7tFjmytgFFu718865EIebPGincI3zFz7Bcrtx97/GL0P+p+IPbSOgRwXtW3vpewqL/a/g5rgf39hit2m0hGUAHOHrrq3trmef4/lDB7Ay57n01zuPZXPX7jUunv+Yf9ktR7D/0CHca7/n3KXPsHbAuynkCWCZptgiImKLaVqP9NuW1bT9ceybpr3j+WJbYrVa3rbEatGZi2uixvWdrysilmWKae2M+5PqlktoosayLfubcrN10dAk24aynUsIxMVsadwUs+EX7dEyAlaXLqMoCj6fj5HkUqO9MD+Govjx+xXcXi+uoRAhvwuv182Z8Ws4AJUlxoZ8uNxuvF43ii/EtdXNNUuV68lR/IqC4gsxPj7KkE/BF5qmClRXrzFSt+/1ulDOjLNU6eQ4OcyPDqH4hhg5O4LicuN2K4xcvk6jjHUKJM8O1fvcKMoZkouFOq1VPp1OcuXGAvrvfsv0lWmSySTzN0sdH+jyYhK/ouB2e/G6XfjPJikBVG8SUhT8fl99nwVGfQp+vx+f4iO5VO1AtwJjfgXF58M/kqSVJP9ef0xuAI6NlwWmL41
 xxqeg+PyMXr72yBqW3cI4JaZHh1DcXrxeLy5liORiB7q1PiZFyeV0mQqz9TRZeUmFVUGLSjqdkgCIFp2RTCosEJOiiIihSyKWkDl9WYrFnCQCCNF0w0QmHhBQJTEzJ+nZSQmAoEYks2KIGBkJgASiM5I3LbGMnCSCCEQl38GJMvMZiag1e+nlFcmmIgKaZEwREaPGhWGZ1VfEMFZkNj4sgCSyhoihSzwSlqCGoAUlEo1IJByW+Oxyh+dZJJ+eklhiRnIrRcnrM6KCxLOmiNiipyICSGR2pTY2O1m7T2XEsNrrJmJLfjkn6amwoMbFaMEhG28eAVtzExErW3sOBCWVzkpmNiEqCOEZ2RyLTT3eJAKaMhVEUMOSXjHEtg3JTIUFkNTK9rGwbQrWm2xGb6QoWxIqEtdtEWO28aDtoi6JSFCAjUtL1AUzJA4SSW/IZ2VjjU0V0zEBJBiJSzwWk1g8IZEAAmrdidrBkoSKxB4IW08tGVNEzIxoIJM5a8v4SQ1RY5lGSy6x8xScz6QkHFBre1Zre49nH+y1KDEQLV7TcyU1LBCtHVppp9smxk2dYAMtHXA7blZWNJDZ4sZ4MxPbdHjrbc3WNuvOq4YlkYhLLBaXeKx2sLcrBUS2ScFtUbUBh3WgajvgOYgGuKjw4Rsqb1uvkssbWLbJXFQFqL/I9IEKa2WzYcqy16E2BNteB1R+cuwoRwcHGRx4nlfenWMuPclRDx3goSraqd+7Gj/Y5d76SrXLu3VKLYW1rMZbo/QpB4+9zt6fT1I0Law/LRMBaLzC7ePNuSgL7/2GpcotLr7+AZG5t9gH0Fa3zuFq1tiWG4DKs5tebV1NDDW1XYd26iWO9A8wODjAUfUN5ubm+Ch4ZFuuLRzQoVwqUCqXyN9fg3tFSuUShVIZhyr5O2vo94o42DwD/PP23fq8Bf5urLO+BoHBwxzc20c++wcmz+lAkWLFATwcf3+YDwIDhMYmuDw+wt5j5+C5ZwDY
 P/gSoLP6xX5+fOIkJ47/lIP8g49/Nc3tDj59OZUiRR3uFYsAVO/eZoE1yvkyeA6gAaff+zU3SxUcp8LilQucnoFTP3hhix19/garlQqFW9eZOBti9Mqt9mubXwBw+NALeDC4cfVDzgP3i3keUN/nf4uo+hEver/DRaK84/9mY/72uoFTKVMolVn5/HPgPvlSmVKhRL2bSrlEqVyidH8N/d7t2u/lakfcKneLgM4rvxhncbXA6tI8kTffB+0NjnrAqZYplcrk83ceXdtzgB+psHD7S/pfPs7JkydQB1x8dnWS2SVje9GaxkVLl+DmNNC4NJn/S6JxH5nJyNRwrW7Qi7oMgxBMyd9molvmRKO1cExgshG6l9NTEhkOynAkLlOJoKBuhPV8ZlK0h9aNTqVbv3ltEK/VIiAQEN0yZVLbuM+aImLoEgts3VdsJrfFil1M1/ZSv9RAROaWO8n/hkyF1Q3bgeFGygvPrDRG5Wcf1IJbq9rlNrrNbra96aqlUVMSWrNnNiw5uw23T/4o4Xq7FtA29h2My3K9WtETgRZr13UxdIk+pGswkpCcsX0N2OZD9BOgWqFsgWePp20KWb0ywkDgEIa8y55Gq0O5XKHP7cGz++l/haxWylgOuD17aG7eoVpxwL27RX8b27jZ42n1qdahXKrg2bfnUW0eQ7edoD232l+/LPp2pHvNfh8eT2f8/3sO2AZLyRAvns6gqToLOgxP6Uz87HvdoNJDF9E1B6ysLrLw5yW+3PUNvv3dH/L9wX3doNFDl9E1B+yhB+j9O1YPXcZ/AAl9BWJNvZE7AAAAAElFTkSuQmCC";
+
+var gPhases = null;
+
+var gIDCache = {};
+
+var gMagPixPaths = [];     // 2D array of array-of-two <path> objects used in the pixel magnifier
+var gMagWidth = 5;         // number of zoomed in pixels to show horizontally
+var gMagHeight = 5;        // number of zoomed in pixels to show vertically
+var gMagZoom = 16;         // size of the zoomed in pixels
+var gImage1Data;           // ImageData object for the reference image
+var gImage2Data;           // ImageData object for the test output image
+var gFlashingPixels = [];  // array of <path> objects that should be flashed due to pixel color mismatch
+var gParams;
+
+function ID(id) {
+  if (!(id in gIDCache))
+    gIDCache[id] = document.getElementById(id);
+  return gIDCache[id];
+}
+
+function hash_parameters() {
+  var result = { };
+  var params = window.location.hash.substr(1).split(/[&;]/);
+  for (var i = 0; i < params.length; i++) {
+    var parts = params[i].split("=");
+    result[parts[0]] = unescape(unescape(parts[1]));
+  }
+  return result;
+}
+
+function load() {
+  gPhases = [ ID("entry"), ID("loading"), ID("viewer") ];
+  build_mag();
+  gParams = hash_parameters();
+  if (gParams.log) {
+    show_phase("loading");
+    process_log(gParams.log);
+  } else if (gParams.logurl) {
+    show_phase("loading");
+    var req = new XMLHttpRequest();
+    req.onreadystatechange = function() {
+      if (req.readyState === 4) {
+        process_log(req.responseText);
+      }
+    };
+    req.open('GET', gParams.logurl, true);
+    req.send();
+  }
+  window.addEventListener('keypress', handle_keyboard_shortcut);
+  window.addEventListener('keydown',  handle_keydown);
+  ID("image1").addEventListener('error', image_load_error);
+  ID("image2").addEventListener('error', image_load_error);
+}
+
+function image_load_error(e) {
+  e.target.setAttributeNS(XLINK_NS, "xlink:href", IMAGE_NOT_AVAILABLE);
+}
+
+function build_mag() {
+  var mag = ID("mag");
+
+  var r = document.createElementNS(SVG_NS, "rect");
+  r.setAttribute("x", gMagZoom * -gMagWidth / 2);
+  r.setAttribute("y", gMagZoom * -gMagHeight / 2);
+  r.setAttribute("width", gMagZoom * gMagWidth);
+  r.setAttribute("height", gMagZoom * gMagHeight);
+  mag.appendChild(r);
+
+  mag.setAttribute("transform", "translate(" + (gMagZoom * (gMagWidth / 2) + 1) + "," + (gMagZoom * (gMagHeight / 2) + 1) + ")");
+
+  for (var x = 0; x < gMagWidth; x++) {
+    gMagPixPaths[x] = [];
+    for (var y = 0; y < gMagHeight; y++) {
+      var p1 = document.createElementNS(SVG_NS, "path");
+      p1.setAttribute("d", "M" + ((x - gMagWidth / 2) + 1) * gMagZoom + "," + (y - gMagHeight / 2) * gMagZoom + "h" + -gMagZoom + "v" + gMagZoom);
+      p1.setAttribute("stroke", "black");
+      p1.setAttribute("stroke-width", "1px");
+      p1.setAttribute("fill", "#aaa");
+
+      var p2 = document.createElementNS(SVG_NS, "path");
+      p2.setAttribute("d", "M" + ((x - gMagWidth / 2) + 1) * gMagZoom + "," + (y - gMagHeight / 2) * gMagZoom + "v" + gMagZoom + "h" + -gMagZoom);
+      p2.setAttribute("stroke", "black");
+      p2.setAttribute("stroke-width", "1px");
+      p2.setAttribute("fill", "#888");
+
+      mag.appendChild(p1);
+      mag.appendChild(p2);
+      gMagPixPaths[x][y] = [p1, p2];
+    }
+  }
+
+  var flashedOn = false;
+  setInterval(function() {
+    flashedOn = !flashedOn;
+    flash_pixels(flashedOn);
+  }, 500);
+}
+
+function show_phase(phaseid) {
+  for (var i in gPhases) {
+    var phase = gPhases[i];
+    phase.style.display = (phase.id == phaseid) ? "" : "none";
+  }
+
+  if (phase == "viewer")
+    ID("images").style.display = "none";
+}
+
+function fileentry_changed() {
+  show_phase("loading");
+  var input = ID("fileentry");
+  var files = input.files;
+  if (files.length > 0) {
+    // Only handle the first file; don't handle multiple selection.
+    // The parts of the log we care about are ASCII-only.  Since we
+    // can ignore lines we don't care about, best to read in as
+    // iso-8859-1, which guarantees we don't get decoding errors.
+    var fileReader = new FileReader();
+    fileReader.onload = function(e) {
+      var log = null;
+
+      log = e.target.result;
+
+      if (log)
+        process_log(log);
+      else
+        show_phase("entry");
+    }
+    fileReader.readAsText(files[0], "iso-8859-1");
+  }
+  // So the user can process the same filename again (after
+  // overwriting the log), clear the value on the form input so we
+  // will always get an onchange event.
+  input.value = "";
+}
+
+function log_pasted() {
+  show_phase("loading");
+  var entry = ID("logentry");
+  var log = entry.value;
+  entry.value = "";
+  process_log(log);
+}
+
+var gTestItems;
+
+// This function is not used in production code, but can be invoked manually
+// from the devtools console in order to test changes to the parsing regexes
+// in process_log.
+function test_parsing() {
+  // Note that the logs in these testcases have been manually edited to strip
+  // out stuff for brevity.
+  var testcases = [
+    { "name": "empty log",
+      "log": "",
+      "expected": { "pass": 0, "unexpected": 0, "random": 0, "skip": 0 },
+      "expected_images": 0,
+    },
+    { "name": "android log",
+      "log": `[task 2018-12-28T10:36:45.718Z] 10:36:45     INFO -  REFTEST TEST-START | a == b
+[task 2018-12-28T10:36:45.719Z] 10:36:45     INFO -  REFTEST TEST-LOAD | a | 78 / 275 (28%)
+[task 2018-12-28T10:36:56.138Z] 10:36:56     INFO -  REFTEST TEST-LOAD | b | 78 / 275 (28%)
+[task 2018-12-28T10:37:06.559Z] 10:37:06     INFO -  REFTEST TEST-UNEXPECTED-FAIL | a == b | image comparison, max difference: 255, number of differing pixels: 5950
+[task 2018-12-28T10:37:06.568Z] 10:37:06     INFO -  REFTEST   IMAGE 1 (TEST): data:image/png;base64,
+[task 2018-12-28T10:37:06.577Z] 10:37:06     INFO -  REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,
+[task 2018-12-28T10:37:06.577Z] 10:37:06     INFO -  REFTEST INFO | Saved log: stuff trimmed here
+[task 2018-12-28T10:37:06.582Z] 10:37:06     INFO -  REFTEST TEST-END | a == b
+[task 2018-12-28T10:37:06.583Z] 10:37:06     INFO -  REFTEST TEST-START | a2 == b2
+[task 2018-12-28T10:37:06.583Z] 10:37:06     INFO -  REFTEST TEST-LOAD | a2 | 79 / 275 (28%)
+[task 2018-12-28T10:37:06.584Z] 10:37:06     INFO -  REFTEST TEST-LOAD | b2 | 79 / 275 (28%)
+[task 2018-12-28T10:37:16.982Z] 10:37:16     INFO -  REFTEST TEST-PASS | a2 == b2 | image comparison, max difference: 0, number of differing pixels: 0
+[task 2018-12-28T10:37:16.982Z] 10:37:16     INFO -  REFTEST TEST-END | a2 == b2`,
+      "expected": { "pass": 1, "unexpected": 1, "random": 0, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "local reftest run (Linux)",
+      "log": `REFTEST TEST-START | file:///a == file:///b
+REFTEST TEST-LOAD | file:///a | 73 / 86 (84%)
+REFTEST TEST-LOAD | file:///b | 73 / 86 (84%)
+REFTEST TEST-PASS | file:///a == file:///b | image comparison, max difference: 0, number of differing pixels: 0
+REFTEST TEST-END | file:///a == file:///b`,
+      "expected": { "pass": 1, "unexpected": 0, "random": 0, "skip": 0 },
+      "expected_images": 0,
+    },
+    { "name": "wpt reftests (Linux automation)",
+      "log": `16:50:43     INFO - TEST-START | /a
+16:50:43     INFO - PID 4276 | 1548694243694   Marionette      INFO    Testing http://web-platform.test:8000/a == http://web-platform.test:8000/b
+16:50:43     INFO - PID 4276 | 1548694243963   Marionette      INFO    No differences allowed
+16:50:44     INFO - TEST-PASS | /a | took 370ms
+16:50:44     INFO - TEST-START | /a2
+16:50:44     INFO - PID 4276 | 1548694244066   Marionette      INFO    Testing http://web-platform.test:8000/a2 == http://web-platform.test:8000/b2
+16:50:44     INFO - PID 4276 | 1548694244792   Marionette      INFO    No differences allowed
+16:50:44     INFO - PID 4276 | 1548694244792   Marionette      INFO    Found 28 pixels different, maximum difference per channel 14
+16:50:44     INFO - TEST-UNEXPECTED-FAIL | /a2 | Testing http://web-platform.test:8000/a2 == http://web-platform.test:8000/b2
+16:50:44     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,
+16:50:44     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,
+16:50:44     INFO - TEST-INFO took 840ms`,
+      "expected": { "pass": 1, "unexpected": 1, "random": 0, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "windows log",
+      "log": `12:17:14     INFO - REFTEST TEST-START | a == b
+12:17:14     INFO - REFTEST TEST-LOAD | a | 1603 / 2053 (78%)
+12:17:14     INFO - REFTEST TEST-LOAD | b | 1603 / 2053 (78%)
+12:17:14     INFO - REFTEST TEST-PASS(EXPECTED RANDOM) | a == b | image comparison, max difference: 0, number of differing pixels: 0
+12:17:14     INFO - REFTEST TEST-END | a == b
+12:17:14     INFO - REFTEST TEST-START | a2 == b2
+12:17:14     INFO - REFTEST TEST-LOAD | a2 | 1604 / 2053 (78%)
+12:17:14     INFO - REFTEST TEST-LOAD | b2 | 1604 / 2053 (78%)
+12:17:14     INFO - REFTEST TEST-UNEXPECTED-FAIL | a2 == b2 | image comparison, max difference: 255, number of differing pixels: 9976
+12:17:14     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,
+12:17:14     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,
+12:17:14     INFO - REFTEST INFO | Saved log: stuff trimmed here
+12:17:14     INFO - REFTEST TEST-END | a2 == b2
+12:01:09     INFO - REFTEST TEST-START | a3 == b3
+12:01:09     INFO - REFTEST TEST-LOAD | a3 | 66 / 189 (34%)
+12:01:09     INFO - REFTEST TEST-LOAD | b3 | 66 / 189 (34%)
+12:01:09     INFO - REFTEST TEST-KNOWN-FAIL | a3 == b3 | image comparison, max difference: 255, number of differing pixels: 9654
+12:01:09     INFO - REFTEST TEST-END | a3 == b3`,
+      "expected": { "pass": 1, "unexpected": 1, "random": 1, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "webrender wrench log (windows)",
+      "log": `[task 2018-12-29T04:29:48.800Z] REFTEST a == b
+[task 2018-12-29T04:29:48.984Z] REFTEST a2 == b2
+[task 2018-12-29T04:29:49.053Z] REFTEST TEST-UNEXPECTED-FAIL | a2 == b2 | image comparison, max difference: 255, number of differing pixels: 3128
+[task 2018-12-29T04:29:49.053Z] REFTEST   IMAGE 1 (TEST): data:image/png;
+[task 2018-12-29T04:29:49.053Z] REFTEST   IMAGE 2 (REFERENCE): data:image/png;
+[task 2018-12-29T04:29:49.053Z] REFTEST TEST-END | a2 == b2`,
+      "expected": { "pass": 0, "unexpected": 1, "random": 0, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "wpt reftests (Linux local; Bug 1530008)",
+      "log": `SUITE-START | Running 1 tests
+TEST-START | /css/css-backgrounds/border-image-6.html
+TEST-UNEXPECTED-FAIL | /css/css-backgrounds/border-image-6.html | Testing http://web-platform.test:8000/css/css-backgrounds/border-image-6.html == http://web-platform.test:8000/css/css-backgrounds/border-image-6-ref.html
+REFTEST   IMAGE 1 (TEST): data:image/png;base64,
+REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,
+TEST-INFO took 425ms
+SUITE-END | took 2s`,
+      "expected": { "pass": 0, "unexpected": 1, "random": 0, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "wpt reftests (taskcluster log from macOS CI)",
+      "log": `[task 2020-06-26T01:35:29.065Z] 01:35:29     INFO - TEST-START | /html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values.html
+[task 2020-06-26T01:35:29.065Z] 01:35:29     INFO - PID 1353 | 1593135329040    Marionette  INFO    Testing http://web-platform.test:8000/html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values.html == http://web-platform.test:8000/html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values-ref.html
+[task 2020-06-26T01:35:29.673Z] 01:35:29     INFO - PID 1353 | 1593135329633    Marionette  INFO    No differences allowed
+[task 2020-06-26T01:35:29.726Z] 01:35:29     INFO - TEST-KNOWN-INTERMITTENT-FAIL | /html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values.html | took 649ms
+[task 2020-06-26T01:35:29.726Z] 01:35:29     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;
+[task 2020-06-26T01:35:29.726Z] 01:35:29     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;`,
+      "expected": { "pass": 0, "unexpected": 0, "random": 1, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "wpt reftests (taskcluster log from Windows CI)",
+      "log": `[task 2020-06-26T01:41:19.205Z] 01:41:19     INFO - TEST-START | /html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values.html
+[task 2020-06-26T01:41:19.214Z] 01:41:19     INFO - PID 5920 | 1593135679202    Marionette  WARN    [24] http://web-platform.test:8000/css/WOFF2/metadatadisplay-schema-license-022-ref.xht overflows viewport (width: 783, height: 731)
+[task 2020-06-26T01:41:19.214Z] 01:41:19     INFO - PID 9692 | 1593135679208    Marionette  INFO    Testing http://web-platform.test:8000/html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values.html == http://web-platform.test:8000/html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values-ref.html
+[task 2020-06-26T01:41:19.638Z] 01:41:19     INFO - PID 9692 | 1593135679627    Marionette  INFO    No differences allowed
+[task 2020-06-26T01:41:19.688Z] 01:41:19     INFO - TEST-KNOWN-INTERMITTENT-PASS | /html/rendering/non-replaced-elements/the-page/iframe-scrolling-attribute-values.html | took 474ms
+[task 2020-06-26T01:41:19.688Z] 01:41:19     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;
+[task 2020-06-26T01:41:19.689Z] 01:41:19     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;`,
+      "expected": { "pass": 1, "unexpected": 0, "random": 1, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "local reftest run with timestamps (Linux; Bug 1167712)",
+      "log": ` 0:05.21 REFTEST TEST-START | a
+ 0:05.21 REFTEST REFTEST TEST-LOAD | a | 0 / 1 (0%)
+ 0:05.27 REFTEST REFTEST TEST-LOAD | b | 0 / 1 (0%)
+ 0:05.66 REFTEST TEST-UNEXPECTED-FAIL | a | image comparison (==), max difference: 106, number of differing pixels: 800
+ 0:05.67 REFTEST REFTEST   IMAGE 1 (TEST): data:image/png;base64,
+ 0:05.67 REFTEST REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,
+ 0:05.73 REFTEST REFTEST TEST-END | a`,
+      "expected": { "pass": 0, "unexpected": 1, "random": 0, "skip": 0 },
+      "expected_images": 2,
+    },
+    { "name": "reftest run with whitespace compressed (Treeherder; Bug 1084322)",
+      "log": ` REFTEST TEST-START | a
+REFTEST TEST-LOAD | a | 0 / 1 (0%)
+REFTEST TEST-LOAD | b | 0 / 1 (0%)
+REFTEST TEST-UNEXPECTED-FAIL | a | image comparison (==), max difference: 106, number of differing pixels: 800
+REFTEST REFTEST IMAGE 1 (TEST): data:image/png;base64,
+REFTEST REFTEST IMAGE 2 (REFERENCE): data:image/png;base64,
+REFTEST REFTEST TEST-END | a`,
+      "expected": { "pass": 0, "unexpected": 1, "random": 0, "skip": 0 },
+      "expected_images": 2,
+    },
+  ];
+
+  var current_test = 0;
+
+  // Override the build_viewer function invoked at the end of process_log to
+  // actually just check the results of parsing.
+  build_viewer = function() {
+    var expected = testcases[current_test].expected;
+    var expected_images = testcases[current_test].expected_images;
+    for (var result of gTestItems) {
+      for (let type in expected) { // type is "pass", "unexpected" etc.
+        if (result[type]) {
+          expected[type]--;
+        }
+      }
+    }
+    var failed = false;
+    for (let type in expected) {
+      if (expected[type] != 0) {
+        console.log(`Failure: for testcase ${testcases[current_test].name} got ${expected[type]} fewer ${type} results than expected!`);
+        failed = true;
+      }
+    }
+
+    let total_images = 0;
+    for (var result of gTestItems) {
+      total_images += result.images.length;
+    }
+    if (total_images !== expected_images) {
+      console.log(`Failure: for testcase ${testcases[current_test].name} got ${total_images} images, expected ${expected_images}`);
+      failed = true;
+    }
+
+    if (!failed) {
+      console.log(`Success for testcase ${testcases[current_test].name}`);
+    }
+  };
+
+  while (current_test < testcases.length) {
+    process_log(testcases[current_test].log);
+    current_test++;
+  }
+}
+
+function process_log(contents) {
+  var lines = contents.split(/[\r\n]+/);
+  gTestItems = [];
+  for (var j in lines) {
+
+    // !!!!!!
+    // When making any changes to this code, please add a test to the
+    // test_parsing function above, and ensure all existing tests pass.
+    // !!!!!!
+
+    var line = lines[j];
+    // Ignore duplicated output in logcat.
+    if (line.match(/I\/Gecko.*?REFTEST/))
+      continue;
+    var match = line.match(/^.*?(?:REFTEST\s+)+(.*)$/);
+    if (!match) {
+      // WPT reftests don't always have the "REFTEST" prefix but do have
+      // mozharness prefixing. Trying to match both prefixes optionally with a
+      // single regex either makes an unreadable mess or matches everything so
+      // we do them separately.
+      match = line.match(/^(?:.*? (?:INFO|ERROR) -\s+)(.*)$/);
+    }
+    if (match)
+      line = match[1];
+    match = line.match(/^(TEST-PASS|TEST-UNEXPECTED-PASS|TEST-FAIL|TEST-KNOWN-FAIL|TEST-UNEXPECTED-FAIL|TEST-DEBUG-INFO|TEST-KNOWN-INTERMITTENT-FAIL|TEST-KNOWN-INTERMITTENT-PASS)(\(EXPECTED RANDOM\)|) \| ([^\|]+)(?: \|(.*)|$)/);
+    if (match) {
+      var state = match[1];
+      var random = match[2];
+      var url = match[3];
+      var extra = match[4];
+      gTestItems.push(
+        {
+          pass: !state.match(/DEBUG-INFO$|FAIL$/),
+          // only one of the following three should ever be true
+          unexpected: !!state.match(/^TEST-UNEXPECTED/),
+          random: (random == "(EXPECTED RANDOM)" || state == "TEST-KNOWN-INTERMITTENT-FAIL" || state == "TEST-KNOWN-INTERMITTENT-PASS"),
+          skip: (extra == " (SKIP)"),
+          url: url,
+          images: [],
+          imageLabels: []
+        });
+      continue;
+    }
+    match = line.match(/^IMAGE([^:]*): (data:.*)$/);
+    if (match) {
+      var item = gTestItems[gTestItems.length - 1];
+      item.images.push(match[2]);
+      item.imageLabels.push(match[1]);
+    }
+  }
+
+  build_viewer();
+}
+
+function build_viewer() {
+  if (gTestItems.length == 0) {
+    show_phase("entry");
+    return;
+  }
+
+  var cell = ID("itemlist");
+  while (cell.childNodes.length > 0)
+    cell.removeChild(cell.childNodes[cell.childNodes.length - 1]);
+
+  var table = document.createElement("table");
+  var tbody = document.createElement("tbody");
+  table.appendChild(tbody);
+
+  for (var i in gTestItems) {
+    var item = gTestItems[i];
+
+    // optional url filter for only showing unexpected results
+    if (parseInt(gParams.only_show_unexpected) && !item.unexpected)
+      continue;
+
+    // XXX regardless skip expected pass items until we have filtering UI
+    if (item.pass && !item.unexpected)
+      continue;
+
+    var tr = document.createElement("tr");
+    var rowclass = item.pass ? "pass" : "fail";
+    var td;
+    var text;
+
+    td = document.createElement("td");
+    text = "";
+    if (item.unexpected) { text += "!"; rowclass += " unexpected"; }
+    if (item.random) { text += "R"; rowclass += " random"; }
+    if (item.skip) { text += "S"; rowclass += " skip"; }
+    td.appendChild(document.createTextNode(text));
+    tr.appendChild(td);
+
+    td = document.createElement("td");
+    td.id = "item" + i;
+    td.className = "url";
+    // Only display part of URL after "/mozilla/".
+    var match = item.url.match(/\/mozilla\/(.*)/);
+    text = document.createTextNode(match ? match[1] : item.url);
+    if (item.images.length > 0) {
+      var a = document.createElement("a");
+      a.href = "javascript:show_images(" + i + ")";
+      a.appendChild(text);
+      td.appendChild(a);
+    } else {
+      td.appendChild(text);
+    }
+    tr.appendChild(td);
+
+    tbody.appendChild(tr);
+  }
+
+  cell.appendChild(table);
+
+  show_phase("viewer");
+}
+
+function get_image_data(src, whenReady) {
+  var img = new Image();
+  img.onload = function() {
+    var canvas = document.createElement("canvas");
+    canvas.width = img.naturalWidth;
+    canvas.height = img.naturalHeight;
+
+    var ctx = canvas.getContext("2d");
+    ctx.drawImage(img, 0, 0);
+
+    whenReady(ctx.getImageData(0, 0, img.naturalWidth, img.naturalHeight));
+  };
+  img.src = src;
+}
+
+function sync_svg_size(imageData) {
+  // We need the size of the 'svg' and its 'image' elements to match the size
+  // of the ImageData objects that we're going to read pixels from or else our
+  // magnify() function will be very broken.
+  ID("svg").setAttribute("width", imageData.width);
+  ID("svg").setAttribute("height", imageData.height);
+}
+
+function show_images(i) {
+  var item = gTestItems[i];
+  var cell = ID("images");
+
+  // Remove activeitem class from any existing elements
+  var activeItems = document.querySelectorAll(".activeitem");
+  for (var activeItemIdx = activeItems.length; activeItemIdx-- != 0;) {
+    activeItems[activeItemIdx].classList.remove("activeitem");
+  }
+
+  ID("item" + i).classList.add("activeitem");
+  ID("image1").style.display = "";
+  ID("image2").style.display = "none";
+  ID("diffrect").style.display = "none";
+  ID("imgcontrols").reset();
+  ID("pixel-differences").textContent = "";
+
+  ID("image1").setAttributeNS(XLINK_NS, "xlink:href", item.images[0]);
+  // Making the href be #image1 doesn't seem to work
+  ID("feimage1").setAttributeNS(XLINK_NS, "xlink:href", item.images[0]);
+  if (item.images.length == 1) {
+    ID("imgcontrols").style.display = "none";
+  } else {
+    ID("imgcontrols").style.display = "";
+
+    ID("image2").setAttributeNS(XLINK_NS, "xlink:href", item.images[1]);
+    // Making the href be #image2 doesn't seem to work
+    ID("feimage2").setAttributeNS(XLINK_NS, "xlink:href", item.images[1]);
+
+    ID("label1").textContent = 'Image ' + item.imageLabels[0];
+    ID("label2").textContent = 'Image ' + item.imageLabels[1];
+  }
+
+  cell.style.display = "";
+
+  let loaded = [false, false];
+
+  function images_loaded(id) {
+    loaded[id] = true;
+    if (loaded.every(x => x)) {
+      update_pixel_difference_text()
+    }
+  }
+
+  get_image_data(item.images[0], function(data) { gImage1Data = data; sync_svg_size(gImage1Data); images_loaded(0)});
+  get_image_data(item.images[1], function(data) { gImage2Data = data; images_loaded(1)});
+
+}
+
+function update_pixel_difference_text() {
+  let differenceText;
+  if (gImage1Data.height !== gImage2Data.height ||
+      gImage1Data.width !== gImage2Data.width) {
+    differenceText = "Images are different sizes"
+  } else {
+    let [numPixels, maxPerChannel] = get_pixel_differences();
+    if (!numPixels) {
+      differenceText = "Images are identical";
+    } else {
+      differenceText = `Maximum difference per channel ${maxPerChannel}, ${numPixels} pixels differ`;
+    }
+  }
+  // Disable this for now, because per bug 1633504, the numbers may be
+  // inaccurate and dependent on the browser's configuration.
+  // ID("pixel-differences").textContent = differenceText;
+}
+
+function get_pixel_differences() {
+  let numPixels = 0;
+  let maxPerChannel = 0;
+  for (var i=0; i<gImage1Data.data.length; i+=4) {
+    let r1 = gImage1Data.data[i];
+    let r2 = gImage2Data.data[i];
+    let g1 = gImage1Data.data[i+1];
+    let g2 = gImage2Data.data[i+1];
+    let b1 = gImage1Data.data[i+2];
+    let b2 = gImage2Data.data[i+2];
+    // Ignore alpha.
+    if (r1 == r2 && g1 == g2 && b1 == b2) {
+      continue;
+    }
+    numPixels += 1;
+    let maxDiff = Math.max(Math.abs(r1-r2),
+                           Math.abs(g1-g2),
+                           Math.abs(b1-b2));
+    if (maxDiff > maxPerChannel) {
+      maxPerChannel = maxDiff
+    }
+  }
+  return [numPixels, maxPerChannel];
+}
+
+function show_image(i) {
+  if (i == 1) {
+    ID("image1").style.display = "";
+    ID("image2").style.display = "none";
+  } else {
+    ID("image1").style.display = "none";
+    ID("image2").style.display = "";
+  }
+}
+
+function handle_keyboard_shortcut(event) {
+  switch (event.charCode) {
+  case 49: // "1" key
+    document.getElementById("radio1").checked = true;
+    show_image(1);
+    break;
+  case 50: // "2" key
+    document.getElementById("radio2").checked = true;
+    show_image(2);
+    break;
+  case 100: // "d" key
+    document.getElementById("differences").click();
+    break;
+  case 112: // "p" key
+    shift_images(-1);
+    break;
+  case 110: // "n" key
+    shift_images(1);
+    break;
+  }
+}
+
+function handle_keydown(event) {
+  switch (event.keyCode) {
+  case 37:  // left arrow
+    move_pixel(-1, 0);
+    break;
+  case 38:  // up arrow
+    move_pixel(0,-1);
+    break;
+  case 39:  // right arrow
+    move_pixel(1, 0);
+    break;
+  case 40:  // down arrow
+    move_pixel(0, 1);
+    break;
+  }
+}
+
+function shift_images(dir) {
+  var activeItem = document.querySelector(".activeitem");
+  if (!activeItem) {
+    return;
+  }
+  for (var elm = activeItem; elm; elm = elm.parentElement) {
+    if (elm.tagName != "tr") {
+      continue;
+    }
+    elm = dir > 0 ? elm.nextElementSibling : elm.previousElementSibling;
+    if (elm) {
+      elm.getElementsByTagName("a")[0].click();
+    }
+    return;
+  }
+}
+
+function show_differences(cb) {
+  ID("diffrect").style.display = cb.checked ? "" : "none";
+}
+
+function flash_pixels(on) {
+  var stroke = on ? "red" : "black";
+  var strokeWidth = on ? "2px" : "1px";
+  for (var i = 0; i < gFlashingPixels.length; i++) {
+    gFlashingPixels[i].setAttribute("stroke", stroke);
+    gFlashingPixels[i].setAttribute("stroke-width", strokeWidth);
+  }
+}
+
+function cursor_point(evt) {
+  var m = evt.target.getScreenCTM().inverse();
+  var p = ID("svg").createSVGPoint();
+  p.x = evt.clientX;
+  p.y = evt.clientY;
+  p = p.matrixTransform(m);
+  return { x: Math.floor(p.x), y: Math.floor(p.y) };
+}
+
+function hex2(i) {
+  return (i < 16 ? "0" : "") + i.toString(16);
+}
+
+function canvas_pixel_as_hex(data, x, y) {
+  var offset = (y * data.width + x) * 4;
+  var r = data.data[offset];
+  var g = data.data[offset + 1];
+  var b = data.data[offset + 2];
+  return "#" + hex2(r) + hex2(g) + hex2(b);
+}
+
+function hex_as_rgb(hex) {
+  return "rgb(" + [parseInt(hex.substring(1, 3), 16), parseInt(hex.substring(3, 5), 16), parseInt(hex.substring(5, 7), 16)] + ")";
+}
+
+function magnify(evt) {
+  var { x: x, y: y } = cursor_point(evt);
+  do_magnify(x, y);
+}
+
+function do_magnify(x, y) {
+  var centerPixelColor1, centerPixelColor2;
+
+  var dx_lo = -Math.floor(gMagWidth / 2);
+  var dx_hi = Math.floor(gMagWidth / 2);
+  var dy_lo = -Math.floor(gMagHeight / 2);
+  var dy_hi = Math.floor(gMagHeight / 2);
+
+  flash_pixels(false);
+  gFlashingPixels = [];
+  for (var j = dy_lo; j <= dy_hi; j++) {
+    for (var i = dx_lo; i <= dx_hi; i++) {
+      var px = x + i;
+      var py = y + j;
+      var p1 = gMagPixPaths[i + dx_hi][j + dy_hi][0];
+      var p2 = gMagPixPaths[i + dx_hi][j + dy_hi][1];
+      // Here we just use the dimensions of gImage1Data since we expect test
+      // and reference to have the same dimensions.
+      if (px < 0 || py < 0 || px >= gImage1Data.width || py >= gImage1Data.height) {
+        p1.setAttribute("fill", "#aaa");
+        p2.setAttribute("fill", "#888");
+      } else {
+        var color1 = canvas_pixel_as_hex(gImage1Data, x + i, y + j);
+        var color2 = canvas_pixel_as_hex(gImage2Data, x + i, y + j);
+        p1.setAttribute("fill", color1);
+        p2.setAttribute("fill", color2);
+        if (color1 != color2) {
+          gFlashingPixels.push(p1, p2);
+          p1.parentNode.appendChild(p1);
+          p2.parentNode.appendChild(p2);
+        }
+        if (i == 0 && j == 0) {
+          centerPixelColor1 = color1;
+          centerPixelColor2 = color2;
+        }
+      }
+    }
+  }
+  flash_pixels(true);
+  show_pixelinfo(x, y, centerPixelColor1, hex_as_rgb(centerPixelColor1), centerPixelColor2, hex_as_rgb(centerPixelColor2));
+}
+
+function show_pixelinfo(x, y, pix1rgb, pix1hex, pix2rgb, pix2hex) {
+  var pixelinfo = ID("pixelinfo");
+  ID("coords").textContent = [x, y];
+  ID("pix1hex").textContent = pix1hex;
+  ID("pix1rgb").textContent = pix1rgb;
+  ID("pix2hex").textContent = pix2hex;
+  ID("pix2rgb").textContent = pix2rgb;
+}
+
+function move_pixel(deltax, deltay) {
+  coords = ID("coords").textContent.split(',');
+  x = parseInt(coords[0]);
+  y = parseInt(coords[1]);
+  if (isNaN(x) || isNaN(y)) {
+    return;
+  }
+  x = x + deltax;
+  y = y + deltay;
+  if (x >= 0 && y >= 0 && x < gImage1Data.width && y < gImage1Data.height) {
+    do_magnify(x, y);
+  }
+}
+
+  ]]></script>
+
+</head>
+<body onload="load()">
+
+<div id="entry">
+
+<h1>Reftest analyzer: load reftest log</h1>
+
+<p>Either paste your log into this textarea:<br />
+<textarea cols="80" rows="10" id="logentry"/><br/>
+<input type="button" value="Process pasted log" onclick="log_pasted()" /></p>
+
+<p>... or load it from a file:<br/>
+<input type="file" id="fileentry" onchange="fileentry_changed()" />
+</p>
+</div>
+
+<div id="loading" style="display:none">Loading log...</div>
+
+<div id="viewer" style="display:none">
+  <div id="pixelarea">
+    <div id="pixelinfo">
+      <table>
+        <tbody>
+          <tr><th>Pixel at:</th><td colspan="2" id="coords"/></tr>
+          <tr><th>Image 1:</th><td id="pix1rgb"></td><td id="pix1hex"></td></tr>
+          <tr><th>Image 2:</th><td id="pix2rgb"></td><td id="pix2hex"></td></tr>
+        </tbody>
+      </table>
+      <div>
+        <div id="pixelhint">★
+          <div>
+            <p>Move the mouse over the reftest image on the right to show
+            magnified pixels on the left.  The color information above is for
+            the pixel centered in the magnified view.</p>
+            <p>Image 1 is shown in the upper triangle of each pixel and Image 2
+            is shown in the lower triangle.</p>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div id="magnification">
+      <svg xmlns="http://www.w3.org/2000/svg" width="84" height="84" shape-rendering="optimizeSpeed">
+        <g id="mag"/>
+      </svg>
+    </div>
+  </div>
+  <div id="itemlist"></div>
+  <div id="images" style="display:none">
+    <form id="imgcontrols">
+    <input id="radio1" type="radio" name="which" value="0" onchange="show_image(1)" checked="checked" /><label id="label1" title="1" for="radio1">Image 1</label>
+    <input id="radio2" type="radio" name="which" value="1" onchange="show_image(2)"                   /><label id="label2" title="2" for="radio2">Image 2</label>
+    <label><input id="differences" type="checkbox" onchange="show_differences(this)" />Circle differences</label>
+    </form>
+    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="800" height="1000" id="svg">
+      <defs>
+        <!-- use sRGB to avoid loss of data -->
+        <filter id="showDifferences" x="0%" y="0%" width="100%" height="100%"
+                style="color-interpolation-filters: sRGB">
+          <feImage id="feimage1" result="img1" xlink:href="#image1" />
+          <feImage id="feimage2" result="img2" xlink:href="#image2" />
+          <!-- inv1 and inv2 are the images with RGB inverted -->
+          <feComponentTransfer result="inv1" in="img1">
+            <feFuncR type="linear" slope="-1" intercept="1" />
+            <feFuncG type="linear" slope="-1" intercept="1" />
+            <feFuncB type="linear" slope="-1" intercept="1" />
+          </fecomponenttransfer>
+          <feComponentTransfer result="inv2" in="img2">
+            <feFuncR type="linear" slope="-1" intercept="1" />
+            <feFuncG type="linear" slope="-1" intercept="1" />
+            <feFuncB type="linear" slope="-1" intercept="1" />
+          </fecomponenttransfer>
+          <!-- w1 will have non-white pixels anywhere that img2
+               is brighter than img1, and w2 for the reverse.
+               It would be nice not to have to go through these
+               intermediate states, but feComposite
+               type="arithmetic" can't transform the RGB channels
+               and leave the alpha channel untouched. -->
+          <feComposite result="w1" in="img1" in2="inv2" operator="arithmetic" k2="1" k3="1" />
+          <feComposite result="w2" in="img2" in2="inv1" operator="arithmetic" k2="1" k3="1" />
+          <!-- c1 will have non-black pixels anywhere that img2
+               is brighter than img1, and c2 for the reverse -->
+          <feComponentTransfer result="c1" in="w1">
+            <feFuncR type="linear" slope="-1" intercept="1" />
+            <feFuncG type="linear" slope="-1" intercept="1" />
+            <feFuncB type="linear" slope="-1" intercept="1" />
+          </fecomponenttransfer>
+          <feComponentTransfer result="c2" in="w2">
+            <feFuncR type="linear" slope="-1" intercept="1" />
+            <feFuncG type="linear" slope="-1" intercept="1" />
+            <feFuncB type="linear" slope="-1" intercept="1" />
+          </fecomponenttransfer>
+          <!-- c will be nonblack (and fully on) for every pixel+component where there are differences -->
+          <feComposite result="c" in="c1" in2="c2" operator="arithmetic" k2="255" k3="255" />
+          <!-- a will be opaque for every pixel with differences and transparent for all others -->
+          <feColorMatrix result="a" type="matrix" values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  1 1 1 0 0" />
+
+          <!-- a, dilated by 1 pixel -->
+          <feMorphology result="dila1" in="a" operator="dilate" radius="1" />
+          <!-- a, dilated by 2 pixels -->
+          <feMorphology result="dila2" in="dila1" operator="dilate" radius="1" />
+
+          <!-- all the pixels in the 2-pixel dilation of a but not in the 1-pixel dilation, to highlight the diffs -->
+          <feComposite result="highlight" in="dila2" in2="dila1" operator="out" />
+
+          <feFlood result="red" flood-color="red" />
+          <feComposite result="redhighlight" in="red" in2="highlight" operator="in" />
+          <feFlood result="black" flood-color="black" flood-opacity="0.5" />
+          <feMerge>
+            <feMergeNode in="black" />
+            <feMergeNode in="redhighlight" />
+          </femerge>
+        </filter>
+      </defs>
+      <g onmousemove="magnify(evt)">
+        <image x="0" y="0" width="100%" height="100%" id="image1" />
+        <image x="0" y="0" width="100%" height="100%" id="image2" />
+      </g>
+      <rect id="diffrect" filter="url(#showDifferences)" pointer-events="none" x="0" y="0" width="100%" height="100%" />
+    </svg>
+    <div id="pixel-differences"></div>
+  </div>
+</div>
+
+</body>
+</html>
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonthird_partyw3cimportlog"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/w3c-import.log (0 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/w3c-import.log                              (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/third_party/w3c-import.log 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/common/third_party/reftest-analyzer.xhtml
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/common/w3c-import.log (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/w3c-import.log  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/w3c-import.log     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -21,6 +21,8 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/PrefixedPostMessage.js.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/README.md
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/arrays.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html
+/LayoutTests/imported/w3c/web-platform-tests/common/blank-with-cors.html.headers
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/blank.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/domain-setter.sub.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/dummy.xhtml
</span><span class="lines">@@ -40,7 +42,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/reftest-wait.js.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/rendering-utils.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/sab.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/common/slow-redirect.py
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/slow.py
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/common/square.png
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/stringifiers.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/stringifiers.js.headers
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/subset-tests-by-key.js
</span><span class="lines">@@ -50,5 +54,6 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/text-plain.txt
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/utils.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/utils.js.headers
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/common/window-name-setter.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/worklet-reftest.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/common/worklet-reftest.js.headers
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscommonwindownamesetterhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/common/window-name-setter.html (0 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/common/window-name-setter.html                         (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/common/window-name-setter.html    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>A page that sets window.name</title>
+
+<script>
+"use strict";
+
+window.onload = () => {
+  window.name = location.hash.slice(1);  // Drop the first '#' character.
+  window.name = "spices";
+};
+</script>
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyframeancestorsreportonlyframesubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub-expected.txt     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub-expected.txt        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetochildnavigatesparentblockedsubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/child-navigates-parent-blocked.sub-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/child-navigates-parent-blocked.sub-expected.txt    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/child-navigates-parent-blocked.sub-expected.txt       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> FAIL Test that the child can't navigate the parent because the relevant policy belongs to the navigation initiator (in this case the child which has the policy `navigate-to 'none'`) assert_equals: expected "fail" but got "success"
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetoformblockedsubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/form-blocked.sub-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/form-blocked.sub-expected.txt      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/form-blocked.sub-expected.txt 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> FAIL Test that the child iframe navigation is not allowed assert_equals: expected "fail" but got "success"
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetohreflocationblockedsubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/href-location-blocked.sub-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/href-location-blocked.sub-expected.txt     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/href-location-blocked.sub-expected.txt        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> 
</span><span class="cx"> FAIL Test that the child iframe navigation is not allowed assert_equals: expected "fail" but got "success"
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetolinkclickblockedsubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/link-click-blocked.sub-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/link-click-blocked.sub-expected.txt        2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/link-click-blocked.sub-expected.txt   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> FAIL Test that the child iframe navigation is not allowed assert_equals: expected "fail" but got "success"
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetometarefreshblockedsubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/meta-refresh-blocked.sub-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/meta-refresh-blocked.sub-expected.txt      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/meta-refresh-blocked.sub-expected.txt 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> FAIL Test that the child iframe navigation is not allowed assert_equals: expected "fail" but got "success"
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicynavigatetoparentnavigateschildblockedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/parent-navigates-child-blocked-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/parent-navigates-child-blocked-expected.txt        2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/navigate-to/parent-navigates-child-blocked-expected.txt   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> FAIL Test that the parent can't navigate the child because the relevant policy belongs to the navigation initiator (in this case the parent, which has the policy `navigate-to support/wait_for_navigation.html;`) assert_unreached: Should not have received a message as the navigation should not have been successful Reached unreachable code
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyreportingreportonlyunsafeevalexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval-expected.txt 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval-expected.txt    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Eval is allowed because the CSP is report-only
</span><span class="cx"> FAIL SPV event is still raised assert_unreached: SPV event has not been received Reached unreachable code
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyreportingreportoriginalurlonmixedcontentframehttpssubexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub-expected.txt    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub-expected.txt       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-FAIL Violation report status OK. assert_equals: No such report. expected "" but got "false"
</del><ins>+FAIL Violation report status OK. undefined is not an object (evaluating 'data[0]["body"]')
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicyreportingsupportredirectthrowfunctionsubpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/support/redirect-throw-function.sub.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/support/redirect-throw-function.sub.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/reporting/support/redirect-throw-function.sub.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,8 +1,10 @@
</span><span class="cx"> import re
</span><span class="cx"> 
</span><ins>+from wptserve.utils import isomorphic_encode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    response.status = 302;
-    location = re.sub('redirect-throw-function.*',
-                      'throw-function.js?secret=1234#ref',
-                      request.url)
-    response.headers.set("Location", location);
</del><ins>+    response.status = 302
+    location = re.sub(b'redirect-throw-function.*',
+                      b'throw-function.js?secret=1234#ref',
+                      isomorphic_encode(request.url))
+    response.headers.set(b"Location", location)
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicysupportcheckReportsubjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/checkReport.sub.js (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/checkReport.sub.js     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/checkReport.sub.js        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -63,30 +63,38 @@
</span><span class="cx"> 
</span><span class="cx">     var report = new XMLHttpRequest();
</span><span class="cx">     report.onload = reportTest.step_func(function () {
</span><ins>+      var data = JSON.parse(report.responseText);
</ins><span class="cx"> 
</span><del>-        var data = JSON.parse(report.responseText);
</del><ins>+      if (data.error) {
+        assert_equals("false", reportExists, data.error);
+      } else {
+        if (reportExists === "false") {
+          assert_equals(data.length, 0,
+                        "CSP report sent, but not expecting one.");
+        } else {
+          // With the 'report-uri' directive, the report is contained in
+          // `data[0]["csp-report"]`. With the 'report-to' directive, the report
+          // is contained in `data[0]["body"]`.
+          const reportBody = data[0]["body"]
+                ? data[0]["body"]
+                : data[0]["csp-report"];
</ins><span class="cx"> 
</span><del>-        if (data.error) {
-          assert_equals("false", reportExists, data.error);
-        } else {
-          if(reportExists != "" && reportExists == "false" && data["csp-report"]) {
-              assert_unreached("CSP report sent, but not expecting one: " + JSON.stringify(data["csp-report"]));
-          }
</del><ins>+          assert_true(reportBody !== undefined,
+                      "No CSP report sent, but expecting one.");
</ins><span class="cx">           // Firefox expands 'self' or origins in a policy to the actual origin value
</span><span class="cx">           // so "www.example.com" becomes "http://www.example.com:80".
</span><span class="cx">           // Accomodate this by just testing that the correct directive name
</span><span class="cx">           // is reported, not the details...
</span><span class="cx"> 
</span><del>-          if(data["csp-report"] != undefined && data["csp-report"][reportField] != undefined) {
-            assert_field_value(data["csp-report"][reportField], reportValue, reportField);
-          } else if (data[0] != undefined && data[0]["body"] != undefined && data[0]["body"][reportField] != undefined) {
-            assert_field_value(data[0]["body"][reportField], reportValue, reportField);
</del><ins>+          if (reportBody[reportField] !== undefined) {
+            assert_field_value(reportBody[reportField], reportValue, reportField);
</ins><span class="cx">           } else {
</span><del>-            assert_equals("", reportField, "Expected report field could not be found in report");
</del><ins>+            assert_equals(reportField, "", "Expected report field could not be found in report.");
</ins><span class="cx">           }
</span><span class="cx">         }
</span><ins>+      }
</ins><span class="cx"> 
</span><del>-        reportTest.done();
</del><ins>+      reportTest.done();
</ins><span class="cx">     });
</span><span class="cx"> 
</span><span class="cx">     report.open("GET", reportLocation, true);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscontentsecuritypolicysupportreportpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/report.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/report.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/content-security-policy/support/report.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,57 +1,121 @@
</span><span class="cx"> import time
</span><span class="cx"> import json
</span><span class="cx"> import re
</span><ins>+import uuid
</ins><span class="cx"> 
</span><del>-def retrieve_from_stash(request, key, timeout, default_value):
</del><ins>+from wptserve.utils import isomorphic_decode
+
+def retrieve_from_stash(request, key, timeout, default_value, min_count=None, retain=False):
+  """Retrieve the set of reports for a given report ID.
+
+  This will extract either the set of reports, credentials, or request count
+  from the stash (depending on the key passed in) and return it encoded as JSON.
+
+  When retrieving reports, this will not return any reports until min_count
+  reports have been received.
+
+  If timeout seconds elapse before the requested data can be found in the stash,
+  or before at least min_count reports are received, default_value will be
+  returned instead."""
</ins><span class="cx">   t0 = time.time()
</span><span class="cx">   while time.time() - t0 < timeout:
</span><span class="cx">     time.sleep(0.5)
</span><del>-    value = request.server.stash.take(key=key)
-    if value is not None:
-      return value
</del><ins>+    with request.server.stash.lock:
+      value = request.server.stash.take(key=key)
+      if value is not None:
+        have_sufficient_reports = (min_count is None or len(value) >= min_count)
+        if retain or not have_sufficient_reports:
+          request.server.stash.put(key=key, value=value)
+        if have_sufficient_reports:
+          return json.dumps(value)
</ins><span class="cx"> 
</span><span class="cx">   return default_value
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-  op = request.GET.first("op");
-  key = request.GET.first("reportID")
-  cookie_key = re.sub('^....', 'cccc', key)
-  count_key = re.sub('^....', 'dddd', key)
</del><ins>+  # Handle CORS preflight requests
+  if request.method == u'OPTIONS':
+    # Always reject preflights for one subdomain
+    if b"www2" in request.headers[b"Origin"]:
+      return (400, [], u"CORS preflight rejected for www2")
+    return [
+      (b"Content-Type", b"text/plain"),
+      (b"Access-Control-Allow-Origin", b"*"),
+      (b"Access-Control-Allow-Methods", b"post"),
+      (b"Access-Control-Allow-Headers", b"Content-Type"),
+    ], u"CORS allowed"
</ins><span class="cx"> 
</span><del>-  try:
-    timeout = request.GET.first("timeout")
-  except:
-    timeout = 0.5
-  timeout = float(timeout)
</del><ins>+  if b"reportID" in request.GET:
+    key = request.GET.first(b"reportID")
+  elif b"endpoint" in request.GET:
+    key = uuid.uuid5(uuid.NAMESPACE_OID, isomorphic_decode(request.GET[b'endpoint'])).urn.encode('ascii')[9:]
+  else:
+    response.status = 400
+    return "Either reportID or endpoint parameter is required."
</ins><span class="cx"> 
</span><del>-  if op == "retrieve_report":
-    return [("Content-Type", "application/json")], retrieve_from_stash(request, key, timeout, json.dumps({'error': 'No such report.' , 'guid' : key}))
</del><ins>+  # Cookie and count keys are derived from the report ID.
+  cookie_key = re.sub(b'^....', b'cccc', key)
+  count_key = re.sub(b'^....', b'dddd', key)
</ins><span class="cx"> 
</span><del>-  if op == "retrieve_cookies":
-    return [("Content-Type", "application/json")], "{ \"reportCookies\" : " + str(retrieve_from_stash(request, cookie_key, timeout, "\"None\"")) + "}"
</del><ins>+  if request.method == u'GET':
+    try:
+      timeout = float(request.GET.first(b"timeout"))
+    except:
+      timeout = 0.5
+    try:
+      min_count = int(request.GET.first(b"min_count"))
+    except:
+      min_count = 1
+    retain = (b"retain" in request.GET)
</ins><span class="cx"> 
</span><del>-  if op == "retrieve_count":
-    return [("Content-Type", "application/json")], json.dumps({'report_count': str(retrieve_from_stash(request, count_key, timeout, 0))})
</del><ins>+    op = request.GET.first(b"op", b"")
+    if op in (b"retrieve_report", b""):
+      return [(b"Content-Type", b"application/json")], retrieve_from_stash(request, key, timeout, u'[]', min_count, retain)
</ins><span class="cx"> 
</span><del>-  # save cookies
-  if hasattr(request, 'cookies') and len(request.cookies.keys()) > 0:
-    # convert everything into strings and dump it into a dict so it can be jsoned
</del><ins>+    if op == b"retrieve_cookies":
+      return [(b"Content-Type", b"application/json")], u"{ \"reportCookies\" : " + str(retrieve_from_stash(request, cookie_key, timeout, u"\"None\"")) + u"}"
+
+    if op == b"retrieve_count":
+      return [(b"Content-Type", b"application/json")], json.dumps({u'report_count': str(retrieve_from_stash(request, count_key, timeout, 0))})
+
+    response.status = 400
+    return "op parameter value not recognized."
+
+  # Save cookies.
+  if len(request.cookies.keys()) > 0:
+    # Convert everything into strings and dump it into a dict.
</ins><span class="cx">     temp_cookies_dict = {}
</span><span class="cx">     for dict_key in request.cookies.keys():
</span><del>-      temp_cookies_dict[str(dict_key)] = str(request.cookies.get_list(dict_key))
</del><ins>+      temp_cookies_dict[isomorphic_decode(dict_key)] = str(request.cookies.get_list(dict_key))
</ins><span class="cx">     with request.server.stash.lock:
</span><ins>+      # Clear any existing cookie data for this request before storing new data.
</ins><span class="cx">       request.server.stash.take(key=cookie_key)
</span><del>-      request.server.stash.put(key=cookie_key, value=json.dumps(temp_cookies_dict))
</del><ins>+      request.server.stash.put(key=cookie_key, value=temp_cookies_dict)
</ins><span class="cx"> 
</span><del>-  # save latest report
-  report = request.body
-  report.rstrip()
</del><ins>+  # Append new report(s).
+  new_reports = json.loads(request.body)
+
+  # If the incoming report is a CSP report-uri report, then it will be a single
+  # dictionary rather than a list of reports. To handle this case, ensure that
+  # any non-list request bodies are wrapped in a list.
+  if not isinstance(new_reports, list):
+    new_reports = [new_reports]
+
+  for report in new_reports:
+    report[u"metadata"] = {
+      u"content_type": isomorphic_decode(request.headers[b"Content-Type"]),
+    }
+
</ins><span class="cx">   with request.server.stash.lock:
</span><del>-    request.server.stash.take(key=key)
-    request.server.stash.put(key=key, value=report)
</del><ins>+    reports = request.server.stash.take(key=key)
+    if reports is None:
+      reports = []
+    reports.extend(new_reports)
+    request.server.stash.put(key=key, value=reports)
</ins><span class="cx"> 
</span><ins>+  # Increment report submission count. This tracks the number of times this
+  # reporting endpoint was contacted, rather than the total number of reports
+  # submitted, which can be seen from the length of the report list.
</ins><span class="cx">   with request.server.stash.lock:
</span><del>-    # increment report count
</del><span class="cx">     count = request.server.stash.take(key=count_key)
</span><span class="cx">     if count is None:
</span><span class="cx">       count = 0
</span><span class="lines">@@ -58,5 +122,5 @@
</span><span class="cx">     count += 1
</span><span class="cx">     request.server.stash.put(key=count_key, value=count)
</span><span class="cx"> 
</span><del>-  # return acknowledgement report
-  return [("Content-Type", "text/plain")], "Recorded report " + report
</del><ins>+  # Return acknowledgement report.
+  return [(b"Content-Type", b"text/plain")], b"Recorded report " + request.body
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscookiesresourcesechojsonpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/cookies/resources/echo-json.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/cookies/resources/echo-json.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/cookies/resources/echo-json.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,15 +1,15 @@
</span><del>-import json
</del><ins>+from wptserve.utils import isomorphic_decode
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-Type", "application/json"),
-               ("Access-Control-Allow-Credentials", "true")]
</del><ins>+    headers = [(b"Content-Type", b"application/json"),
+               (b"Access-Control-Allow-Credentials", b"true")]
</ins><span class="cx"> 
</span><del>-    if "origin" in request.headers:
-        headers.append(("Access-Control-Allow-Origin", request.headers["origin"]))
</del><ins>+    if b"origin" in request.headers:
+        headers.append((b"Access-Control-Allow-Origin", request.headers[b"origin"]))
</ins><span class="cx"> 
</span><span class="cx">     values = []
</span><span class="cx">     for key in request.cookies:
</span><span class="cx">         for value in request.cookies.get_list(key):
</span><del>-            values.append("\"%s\": \"%s\"" % (key, value))
-    body = "{ %s }" % ",".join(values)
</del><ins>+            values.append(u"\"%s\": \"%s\"" % (isomorphic_decode(key), value))
+    body = u"{ %s }" % u",".join(values)
</ins><span class="cx">     return headers, body
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestresourcescachepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/cache.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,24 +1,26 @@
</span><ins>+from wptserve.utils import isomorphic_decode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    token = request.GET.first("token", None)
-    if "querystate" in request.GET:
</del><ins>+    token = request.GET.first(b"token", None)
+    if b"querystate" in request.GET:
</ins><span class="cx">         from json import JSONEncoder
</span><del>-        response.headers.set("Content-Type", "text/plain")
</del><ins>+        response.headers.set(b"Content-Type", b"text/plain")
</ins><span class="cx">         return JSONEncoder().encode(request.server.stash.take(token))
</span><del>-    content = request.GET.first("content", None)
-    tag = request.GET.first("tag", None)
-    date = request.GET.first("date", None)
-    expires = request.GET.first("expires", None)
-    vary = request.GET.first("vary", None)
-    cc = request.GET.first("cache_control", None)
-    redirect = request.GET.first("redirect", None)
-    inm = request.headers.get("If-None-Match", None)
-    ims = request.headers.get("If-Modified-Since", None)
-    pragma = request.headers.get("Pragma", None)
-    cache_control = request.headers.get("Cache-Control", None)
-    ignore = "ignore" in request.GET
</del><ins>+    content = request.GET.first(b"content", None)
+    tag = request.GET.first(b"tag", None)
+    date = request.GET.first(b"date", None)
+    expires = request.GET.first(b"expires", None)
+    vary = request.GET.first(b"vary", None)
+    cc = request.GET.first(b"cache_control", None)
+    redirect = request.GET.first(b"redirect", None)
+    inm = request.headers.get(b"If-None-Match", None)
+    ims = request.headers.get(b"If-Modified-Since", None)
+    pragma = request.headers.get(b"Pragma", None)
+    cache_control = request.headers.get(b"Cache-Control", None)
+    ignore = b"ignore" in request.GET
</ins><span class="cx"> 
</span><span class="cx">     if tag:
</span><del>-        tag = '"%s"' % tag
</del><ins>+        tag = b'"%s"' % tag
</ins><span class="cx"> 
</span><span class="cx">     server_state = request.server.stash.take(token)
</span><span class="cx">     if not server_state:
</span><span class="lines">@@ -26,40 +28,40 @@
</span><span class="cx">     state = dict()
</span><span class="cx">     if not ignore:
</span><span class="cx">         if inm:
</span><del>-            state["If-None-Match"] = inm
</del><ins>+            state[u"If-None-Match"] = isomorphic_decode(inm)
</ins><span class="cx">         if ims:
</span><del>-            state["If-Modified-Since"] = ims
</del><ins>+            state[u"If-Modified-Since"] = isomorphic_decode(ims)
</ins><span class="cx">         if pragma:
</span><del>-            state["Pragma"] = pragma
</del><ins>+            state[u"Pragma"] = isomorphic_decode(pragma)
</ins><span class="cx">         if cache_control:
</span><del>-            state["Cache-Control"] = cache_control
</del><ins>+            state[u"Cache-Control"] = isomorphic_decode(cache_control)
</ins><span class="cx">     server_state.append(state)
</span><span class="cx">     request.server.stash.put(token, server_state)
</span><span class="cx"> 
</span><span class="cx">     if tag:
</span><del>-        response.headers.set("ETag", '%s' % tag)
</del><ins>+        response.headers.set(b"ETag", b'%s' % tag)
</ins><span class="cx">     elif date:
</span><del>-        response.headers.set("Last-Modified", date)
</del><ins>+        response.headers.set(b"Last-Modified", date)
</ins><span class="cx">     if expires:
</span><del>-        response.headers.set("Expires", expires)
</del><ins>+        response.headers.set(b"Expires", expires)
</ins><span class="cx">     if vary:
</span><del>-        response.headers.set("Vary", vary)
</del><ins>+        response.headers.set(b"Vary", vary)
</ins><span class="cx">     if cc:
</span><del>-        response.headers.set("Cache-Control", cc)
</del><ins>+        response.headers.set(b"Cache-Control", cc)
</ins><span class="cx"> 
</span><span class="cx">     # The only-if-cached redirect tests wants CORS to be okay, the other tests
</span><span class="cx">     # are all same-origin anyways and don't care.
</span><del>-    response.headers.set("Access-Control-Allow-Origin", "*")
</del><ins>+    response.headers.set(b"Access-Control-Allow-Origin", b"*")
</ins><span class="cx"> 
</span><span class="cx">     if redirect:
</span><del>-        response.headers.set("Location", redirect)
-        response.status = (302, "Redirect")
-        return ""
</del><ins>+        response.headers.set(b"Location", redirect)
+        response.status = (302, b"Redirect")
+        return b""
</ins><span class="cx">     elif ((inm is not None and inm == tag) or
</span><span class="cx">           (ims is not None and ims == date)):
</span><del>-        response.status = (304, "Not Modified")
-        return ""
</del><ins>+        response.status = (304, b"Not Modified")
+        return b""
</ins><span class="cx">     else:
</span><del>-        response.status = (200, "OK")
-        response.headers.set("Content-Type", "text/plain")
</del><ins>+        response.status = (200, b"OK")
+        response.headers.set(b"Content-Type", b"text/plain")
</ins><span class="cx">         return content
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesauthenticationpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/authentication.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/authentication.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/authentication.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -2,13 +2,13 @@
</span><span class="cx">     user = request.auth.username
</span><span class="cx">     password = request.auth.password
</span><span class="cx"> 
</span><del>-    if user == "user" and password == "password":
-        return "Authentication done"
</del><ins>+    if user == b"user" and password == b"password":
+        return b"Authentication done"
</ins><span class="cx"> 
</span><del>-    realm = "test"
-    if "realm" in request.GET:
-        realm = request.GET.first("realm")
</del><ins>+    realm = b"test"
+    if b"realm" in request.GET:
+        realm = request.GET.first(b"realm")
</ins><span class="cx"> 
</span><del>-    return ((401, "Unauthorized"),
-            [("WWW-Authenticate", 'Basic realm="' + realm + '"')],
-            "Please login with credentials 'user' and 'password'")
</del><ins>+    return ((401, b"Unauthorized"),
+            [(b"WWW-Authenticate", b'Basic realm="' + realm + b'"')],
+            b"Please login with credentials 'user' and 'password'")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesbadchunkencodingpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,13 +1,13 @@
</span><span class="cx"> import time
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    delay = float(request.GET.first("ms", 1000)) / 1E3
-    count = int(request.GET.first("count", 50))
</del><ins>+    delay = float(request.GET.first(b"ms", 1000)) / 1E3
+    count = int(request.GET.first(b"count", 50))
</ins><span class="cx">     time.sleep(delay)
</span><del>-    response.headers.set("Transfer-Encoding", "chunked")
</del><ins>+    response.headers.set(b"Transfer-Encoding", b"chunked")
</ins><span class="cx">     response.write_status_headers()
</span><span class="cx">     time.sleep(delay)
</span><del>-    for i in xrange(count):
-        response.writer.write_content("a\r\nTEST_CHUNK\r\n")
</del><ins>+    for i in range(count):
+        response.writer.write_content(b"a\r\nTEST_CHUNK\r\n")
</ins><span class="cx">         time.sleep(delay)
</span><del>-    response.writer.write_content("garbage")
</del><ins>+    response.writer.write_content(b"garbage")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcescachepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/cache.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/cache.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/cache.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,18 +1,18 @@
</span><del>-ETAG = '"123abc"'
-CONTENT_TYPE = "text/plain"
-CONTENT = "lorem ipsum dolor sit amet"
</del><ins>+ETAG = b'"123abc"'
+CONTENT_TYPE = b"text/plain"
+CONTENT = b"lorem ipsum dolor sit amet"
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     # let caching kick in if possible (conditional GET)
</span><del>-    etag = request.headers.get("If-None-Match", None)
</del><ins>+    etag = request.headers.get(b"If-None-Match", None)
</ins><span class="cx">     if etag == ETAG:
</span><del>-        response.headers.set("X-HTTP-STATUS", 304)
-        response.status = (304, "Not Modified")
-        return ""
</del><ins>+        response.headers.set(b"X-HTTP-STATUS", 304)
+        response.status = (304, b"Not Modified")
+        return b""
</ins><span class="cx"> 
</span><span class="cx">     # cache miss, so respond with the actual content
</span><del>-    response.status = (200, "OK")
-    response.headers.set("ETag", ETAG)
-    response.headers.set("Content-Type", CONTENT_TYPE)
</del><ins>+    response.status = (200, b"OK")
+    response.headers.set(b"ETag", ETAG)
+    response.headers.set(b"Content-Type", CONTENT_TYPE)
</ins><span class="cx">     return CONTENT
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcescleanstashpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/clean-stash.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/clean-stash.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/clean-stash.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> def main(request, response):
</span><del>-    token = request.GET.first("token")
</del><ins>+    token = request.GET.first(b"token")
</ins><span class="cx">     if request.server.stash.take(token) is not None:
</span><del>-        return "1"
</del><ins>+        return b"1"
</ins><span class="cx">     else:
</span><del>-        return "0"
</del><ins>+        return b"0"
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesechocontentpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/echo-content.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/echo-content.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/echo-content.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,12 @@
</span><ins>+from wptserve.utils import isomorphic_encode
+
</ins><span class="cx"> def main(request, response):
</span><span class="cx"> 
</span><del>-    headers = [("X-Request-Method", request.method),
-               ("X-Request-Content-Length", request.headers.get("Content-Length", "NO")),
-               ("X-Request-Content-Type", request.headers.get("Content-Type", "NO")),
</del><ins>+    headers = [(b"X-Request-Method", isomorphic_encode(request.method)),
+               (b"X-Request-Content-Length", request.headers.get(b"Content-Length", b"NO")),
+               (b"X-Request-Content-Type", request.headers.get(b"Content-Type", b"NO")),
</ins><span class="cx">                # Avoid any kind of content sniffing on the response.
</span><del>-               ("Content-Type", "text/plain")]
</del><ins>+               (b"Content-Type", b"text/plain")]
</ins><span class="cx">     content = request.body
</span><span class="cx"> 
</span><span class="cx">     return headers, content
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesinfiniteslowresponsepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/infinite-slow-response.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/infinite-slow-response.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/infinite-slow-response.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def url_dir(request):
</span><del>-    return '/'.join(request.url_parts.path.split('/')[:-1]) + '/'
</del><ins>+    return u'/'.join(request.url_parts.path.split(u'/')[:-1]) + u'/'
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def stash_write(request, key, value):
</span><span class="lines">@@ -12,24 +12,23 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    stateKey = request.GET.first("stateKey", "")
-    abortKey = request.GET.first("abortKey", "")
</del><ins>+    stateKey = request.GET.first(b"stateKey", b"")
+    abortKey = request.GET.first(b"abortKey", b"")
</ins><span class="cx"> 
</span><span class="cx">     if stateKey:
</span><span class="cx">         stash_write(request, stateKey, 'open')
</span><span class="cx"> 
</span><del>-    response.headers.set("Content-type", "text/plain")
</del><ins>+    response.headers.set(b"Content-type", b"text/plain")
</ins><span class="cx">     response.write_status_headers()
</span><span class="cx"> 
</span><span class="cx">     # Writing an initial 2k so browsers realise it's there. *shrug*
</span><del>-    response.writer.write("." * 2048)
</del><ins>+    response.writer.write(b"." * 2048)
</ins><span class="cx"> 
</span><span class="cx">     while True:
</span><del>-        if not response.writer.flush():
</del><ins>+        if not response.writer.write(b"."):
</ins><span class="cx">             break
</span><span class="cx">         if abortKey and request.server.stash.take(abortKey, url_dir(request)):
</span><span class="cx">             break
</span><del>-        response.writer.write(".")
</del><span class="cx">         time.sleep(0.01)
</span><span class="cx"> 
</span><span class="cx">     if stateKey:
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesinspectheaderspy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/inspect-headers.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/inspect-headers.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/inspect-headers.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,24 +1,24 @@
</span><span class="cx"> def main(request, response):
</span><span class="cx">     headers = []
</span><del>-    if "headers" in request.GET:
-        checked_headers = request.GET.first("headers").split("|")
</del><ins>+    if b"headers" in request.GET:
+        checked_headers = request.GET.first(b"headers").split(b"|")
</ins><span class="cx">         for header in checked_headers:
</span><span class="cx">             if header in request.headers:
</span><del>-                headers.append(("x-request-" + header, request.headers.get(header, "")))
</del><ins>+                headers.append((b"x-request-" + header, request.headers.get(header, b"")))
</ins><span class="cx"> 
</span><del>-    if "cors" in request.GET:
-        if "Origin" in request.headers:
-            headers.append(("Access-Control-Allow-Origin", request.headers.get("Origin", "")))
</del><ins>+    if b"cors" in request.GET:
+        if b"Origin" in request.headers:
+            headers.append((b"Access-Control-Allow-Origin", request.headers.get(b"Origin", b"")))
</ins><span class="cx">         else:
</span><del>-            headers.append(("Access-Control-Allow-Origin", "*"))
-        headers.append(("Access-Control-Allow-Credentials", "true"))
-        headers.append(("Access-Control-Allow-Methods", "GET, POST, HEAD"))
-        exposed_headers = ["x-request-" + header for header in checked_headers]
-        headers.append(("Access-Control-Expose-Headers", ", ".join(exposed_headers)))
-        if "allow_headers" in request.GET:
-            headers.append(("Access-Control-Allow-Headers", request.GET['allow_headers']))
</del><ins>+            headers.append((b"Access-Control-Allow-Origin", b"*"))
+        headers.append((b"Access-Control-Allow-Credentials", b"true"))
+        headers.append((b"Access-Control-Allow-Methods", b"GET, POST, HEAD"))
+        exposed_headers = [b"x-request-" + header for header in checked_headers]
+        headers.append((b"Access-Control-Expose-Headers", b", ".join(exposed_headers)))
+        if b"allow_headers" in request.GET:
+            headers.append((b"Access-Control-Allow-Headers", request.GET[b'allow_headers']))
</ins><span class="cx">         else:
</span><del>-            headers.append(("Access-Control-Allow-Headers", ", ".join(request.headers)))
</del><ins>+            headers.append((b"Access-Control-Allow-Headers", b", ".join(request.headers)))
</ins><span class="cx"> 
</span><del>-    headers.append(("content-type", "text/plain"))
-    return headers, ""
</del><ins>+    headers.append((b"content-type", b"text/plain"))
+    return headers, b""
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesmethodpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/method.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/method.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/method.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,16 +1,18 @@
</span><ins>+from wptserve.utils import isomorphic_encode
+
</ins><span class="cx"> def main(request, response):
</span><span class="cx">     headers = []
</span><del>-    if "cors" in request.GET:
-        headers.append(("Access-Control-Allow-Origin", "*"))
-        headers.append(("Access-Control-Allow-Credentials", "true"))
-        headers.append(("Access-Control-Allow-Methods", "GET, POST, PUT, FOO"))
-        headers.append(("Access-Control-Allow-Headers", "x-test, x-foo"))
-        headers.append(("Access-Control-Expose-Headers", "x-request-method"))
</del><ins>+    if b"cors" in request.GET:
+        headers.append((b"Access-Control-Allow-Origin", b"*"))
+        headers.append((b"Access-Control-Allow-Credentials", b"true"))
+        headers.append((b"Access-Control-Allow-Methods", b"GET, POST, PUT, FOO"))
+        headers.append((b"Access-Control-Allow-Headers", b"x-test, x-foo"))
+        headers.append((b"Access-Control-Expose-Headers", b"x-request-method"))
</ins><span class="cx"> 
</span><del>-    headers.append(("x-request-method", request.method))
-    headers.append(("x-request-content-type", request.headers.get("Content-Type", "NO")))
-    headers.append(("x-request-content-length", request.headers.get("Content-Length", "NO")))
-    headers.append(("x-request-content-encoding", request.headers.get("Content-Encoding", "NO")))
-    headers.append(("x-request-content-language", request.headers.get("Content-Language", "NO")))
-    headers.append(("x-request-content-location", request.headers.get("Content-Location", "NO")))
</del><ins>+    headers.append((b"x-request-method", isomorphic_encode(request.method)))
+    headers.append((b"x-request-content-type", request.headers.get(b"Content-Type", b"NO")))
+    headers.append((b"x-request-content-length", request.headers.get(b"Content-Length", b"NO")))
+    headers.append((b"x-request-content-encoding", request.headers.get(b"Content-Encoding", b"NO")))
+    headers.append((b"x-request-content-language", request.headers.get(b"Content-Language", b"NO")))
+    headers.append((b"x-request-content-location", request.headers.get(b"Content-Location", b"NO")))
</ins><span class="cx">     return headers, request.body
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcespreflightpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,58 +1,58 @@
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-Type", "text/plain")]
-    stashed_data = {'control_request_headers': "", 'preflight': "0", 'preflight_referrer': ""}
</del><ins>+    headers = [(b"Content-Type", b"text/plain")]
+    stashed_data = {b'control_request_headers': b"", b'preflight': b"0", b'preflight_referrer': b""}
</ins><span class="cx"> 
</span><span class="cx">     token = None
</span><del>-    if "token" in request.GET:
-        token = request.GET.first("token")
</del><ins>+    if b"token" in request.GET:
+        token = request.GET.first(b"token")
</ins><span class="cx"> 
</span><del>-    if "origin" in request.GET:
-        for origin in request.GET['origin'].split(", "):
-            headers.append(("Access-Control-Allow-Origin", origin))
</del><ins>+    if b"origin" in request.GET:
+        for origin in request.GET[b'origin'].split(b", "):
+            headers.append((b"Access-Control-Allow-Origin", origin))
</ins><span class="cx">     else:
</span><del>-        headers.append(("Access-Control-Allow-Origin", "*"))
</del><ins>+        headers.append((b"Access-Control-Allow-Origin", b"*"))
</ins><span class="cx"> 
</span><del>-    if "clear-stash" in request.GET:
</del><ins>+    if b"clear-stash" in request.GET:
</ins><span class="cx">         if request.server.stash.take(token) is not None:
</span><del>-            return headers, "1"
</del><ins>+            return headers, b"1"
</ins><span class="cx">         else:
</span><del>-            return headers, "0"
</del><ins>+            return headers, b"0"
</ins><span class="cx"> 
</span><del>-    if "credentials" in request.GET:
-        headers.append(("Access-Control-Allow-Credentials", "true"))
</del><ins>+    if b"credentials" in request.GET:
+        headers.append((b"Access-Control-Allow-Credentials", b"true"))
</ins><span class="cx"> 
</span><del>-    if request.method == "OPTIONS":
-        if not "Access-Control-Request-Method" in request.headers:
-            response.set_error(400, "No Access-Control-Request-Method header")
-            return "ERROR: No access-control-request-method in preflight!"
</del><ins>+    if request.method == u"OPTIONS":
+        if not b"Access-Control-Request-Method" in request.headers:
+            response.set_error(400, u"No Access-Control-Request-Method header")
+            return b"ERROR: No access-control-request-method in preflight!"
</ins><span class="cx"> 
</span><del>-        if request.headers.get("Accept", "") != "*/*":
-            response.set_error(400, "Request does not have 'Accept: */*' header")
-            return "ERROR: Invalid access in preflight!"
</del><ins>+        if request.headers.get(b"Accept", b"") != b"*/*":
+            response.set_error(400, u"Request does not have 'Accept: */*' header")
+            return b"ERROR: Invalid access in preflight!"
</ins><span class="cx"> 
</span><del>-        if "control_request_headers" in request.GET:
-            stashed_data['control_request_headers'] = request.headers.get("Access-Control-Request-Headers", None)
</del><ins>+        if b"control_request_headers" in request.GET:
+            stashed_data[b'control_request_headers'] = request.headers.get(b"Access-Control-Request-Headers", None)
</ins><span class="cx"> 
</span><del>-        if "max_age" in request.GET:
-            headers.append(("Access-Control-Max-Age", request.GET['max_age']))
</del><ins>+        if b"max_age" in request.GET:
+            headers.append((b"Access-Control-Max-Age", request.GET[b'max_age']))
</ins><span class="cx"> 
</span><del>-        if "allow_headers" in request.GET:
-            headers.append(("Access-Control-Allow-Headers", request.GET['allow_headers']))
</del><ins>+        if b"allow_headers" in request.GET:
+            headers.append((b"Access-Control-Allow-Headers", request.GET[b'allow_headers']))
</ins><span class="cx"> 
</span><del>-        if "allow_methods" in request.GET:
-            headers.append(("Access-Control-Allow-Methods", request.GET['allow_methods']))
</del><ins>+        if b"allow_methods" in request.GET:
+            headers.append((b"Access-Control-Allow-Methods", request.GET[b'allow_methods']))
</ins><span class="cx"> 
</span><span class="cx">         preflight_status = 200
</span><del>-        if "preflight_status" in request.GET:
-            preflight_status = int(request.GET.first("preflight_status"))
</del><ins>+        if b"preflight_status" in request.GET:
+            preflight_status = int(request.GET.first(b"preflight_status"))
</ins><span class="cx"> 
</span><del>-        stashed_data['preflight'] = "1"
-        stashed_data['preflight_referrer'] = request.headers.get("Referer", "")
-        stashed_data['preflight_user_agent'] = request.headers.get("User-Agent", "")
</del><ins>+        stashed_data[b'preflight'] = b"1"
+        stashed_data[b'preflight_referrer'] = request.headers.get(b"Referer", b"")
+        stashed_data[b'preflight_user_agent'] = request.headers.get(b"User-Agent", b"")
</ins><span class="cx">         if token:
</span><span class="cx">             request.server.stash.put(token, stashed_data)
</span><span class="cx"> 
</span><del>-        return preflight_status, headers, ""
</del><ins>+        return preflight_status, headers, b""
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     if token:
</span><span class="lines">@@ -60,19 +60,19 @@
</span><span class="cx">         if data:
</span><span class="cx">             stashed_data = data
</span><span class="cx"> 
</span><del>-    if "checkUserAgentHeaderInPreflight" in request.GET and request.headers.get("User-Agent") != stashed_data['preflight_user_agent']:
-        return 400, headers, "ERROR: No user-agent header in preflight"
</del><ins>+    if b"checkUserAgentHeaderInPreflight" in request.GET and request.headers.get(b"User-Agent") != stashed_data[b'preflight_user_agent']:
+        return 400, headers, b"ERROR: No user-agent header in preflight"
</ins><span class="cx"> 
</span><span class="cx">     #use x-* headers for returning value to bodyless responses
</span><del>-    headers.append(("Access-Control-Expose-Headers", "x-did-preflight, x-control-request-headers, x-referrer, x-preflight-referrer, x-origin"))
-    headers.append(("x-did-preflight", stashed_data['preflight']))
-    if stashed_data['control_request_headers'] != None:
-        headers.append(("x-control-request-headers", stashed_data['control_request_headers']))
-    headers.append(("x-preflight-referrer", stashed_data['preflight_referrer']))
-    headers.append(("x-referrer", request.headers.get("Referer", "")))
-    headers.append(("x-origin", request.headers.get("Origin", "")))
</del><ins>+    headers.append((b"Access-Control-Expose-Headers", b"x-did-preflight, x-control-request-headers, x-referrer, x-preflight-referrer, x-origin"))
+    headers.append((b"x-did-preflight", stashed_data[b'preflight']))
+    if stashed_data[b'control_request_headers'] != None:
+        headers.append((b"x-control-request-headers", stashed_data[b'control_request_headers']))
+    headers.append((b"x-preflight-referrer", stashed_data[b'preflight_referrer']))
+    headers.append((b"x-referrer", request.headers.get(b"Referer", b"")))
+    headers.append((b"x-origin", request.headers.get(b"Origin", b"")))
</ins><span class="cx"> 
</span><span class="cx">     if token:
</span><span class="cx">         request.server.stash.put(token, stashed_data)
</span><span class="cx"> 
</span><del>-    return headers, ""
</del><ins>+    return headers, b""
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesredirectemptylocationpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect-empty-location.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect-empty-location.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect-empty-location.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Location", "")]
-    return 302, headers, ""
</del><ins>+    headers = [(b"Location", b"")]
+    return 302, headers, b""
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesredirectpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect.py        2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect.py   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> import time
</span><span class="cx"> 
</span><del>-from six.moves.urllib.parse import urlencode, urlparse
</del><ins>+from urllib.parse import urlencode, urlparse
</ins><span class="cx"> 
</span><span class="cx"> from wptserve.utils import isomorphic_decode, isomorphic_encode
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesscriptwithheaderpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/script-with-header.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/script-with-header.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/script-with-header.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-type", request.GET.first("mime"))]
-    if "content" in request.GET and request.GET.first("content") == "empty":
-        content = ''
</del><ins>+    headers = [(b"Content-type", request.GET.first(b"mime"))]
+    if b"content" in request.GET and request.GET.first(b"content") == b"empty":
+        content = b''
</ins><span class="cx">     else:
</span><del>-        content = "console.log('Script loaded')"
</del><ins>+        content = b"console.log('Script loaded')"
</ins><span class="cx">     return 200, headers, content
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesstashputpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-put.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-put.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-put.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,14 +1,17 @@
</span><ins>+from wptserve.utils import isomorphic_decode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    if request.method == 'OPTIONS':
</del><ins>+    if request.method == u'OPTIONS':
</ins><span class="cx">         # CORS preflight
</span><del>-        response.headers.set('Access-Control-Allow-Origin', '*')
-        response.headers.set('Access-Control-Allow-Methods', '*')
-        response.headers.set('Access-Control-Allow-Headers', '*')
</del><ins>+        response.headers.set(b'Access-Control-Allow-Origin', b'*')
+        response.headers.set(b'Access-Control-Allow-Methods', b'*')
+        response.headers.set(b'Access-Control-Allow-Headers', b'*')
</ins><span class="cx">         return 'done'
</span><span class="cx"> 
</span><del>-    url_dir = '/'.join(request.url_parts.path.split('/')[:-1]) + '/'
-    key = request.GET.first("key")
-    value = request.GET.first("value")
-    request.server.stash.put(key, value, url_dir)
-    response.headers.set('Access-Control-Allow-Origin', '*')
</del><ins>+    url_dir = u'/'.join(request.url_parts.path.split(u'/')[:-1]) + u'/'
+    key = request.GET.first(b"key")
+    value = request.GET.first(b"value")
+    # value here must be a text string. It will be json.dump()'ed in stash-take.py.
+    request.server.stash.put(key, isomorphic_decode(value), url_dir)
+    response.headers.set(b'Access-Control-Allow-Origin', b'*')
</ins><span class="cx">     return "done"
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesstashtakepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-take.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-take.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/stash-take.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> 
</span><span class="cx"> @json_handler
</span><span class="cx"> def main(request, response):
</span><del>-    dir = '/'.join(request.url_parts.path.split('/')[:-1]) + '/'
-    key = request.GET.first("key")
-    response.headers.set('Access-Control-Allow-Origin', '*')
</del><ins>+    dir = u'/'.join(request.url_parts.path.split(u'/')[:-1]) + u'/'
+    key = request.GET.first(b"key")
+    response.headers.set(b'Access-Control-Allow-Origin', b'*')
</ins><span class="cx">     return request.server.stash.take(key, dir)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesstatuspy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/status.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/status.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/status.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,9 +1,11 @@
</span><ins>+from wptserve.utils import isomorphic_encode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    code = int(request.GET.first("code", 200))
-    text = request.GET.first("text", "OMG")
-    content = request.GET.first("content", "")
-    type = request.GET.first("type", "")
</del><ins>+    code = int(request.GET.first(b"code", 200))
+    text = request.GET.first(b"text", b"OMG")
+    content = request.GET.first(b"content", b"")
+    type = request.GET.first(b"type", b"")
</ins><span class="cx">     status = (code, text)
</span><del>-    headers = [("Content-Type", type),
-               ("X-Request-Method", request.method)]
</del><ins>+    headers = [(b"Content-Type", type),
+               (b"X-Request-Method", isomorphic_encode(request.method))]
</ins><span class="cx">     return status, headers, content
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcestricklepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/trickle.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/trickle.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/trickle.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,7 +1,5 @@
</span><span class="cx"> import time
</span><span class="cx"> 
</span><del>-from six.moves import xrange
-
</del><span class="cx"> def main(request, response):
</span><span class="cx">     delay = float(request.GET.first(b"ms", 500)) / 1E3
</span><span class="cx">     count = int(request.GET.first(b"count", 50))
</span><span class="lines">@@ -11,6 +9,6 @@
</span><span class="cx">     response.headers.set(b"Content-type", b"text/plain")
</span><span class="cx">     response.write_status_headers()
</span><span class="cx">     time.sleep(delay)
</span><del>-    for i in xrange(count):
-        response.writer.write_content(u"TEST_TRICKLE\n")
</del><ins>+    for i in range(count):
+        response.writer.write_content(b"TEST_TRICKLE\n")
</ins><span class="cx">         time.sleep(delay)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchcontenttyperesourcescontenttypepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/content-type/resources/content-type.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/content-type/resources/content-type.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/content-type/resources/content-type.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,15 +1,17 @@
</span><ins>+from wptserve.utils import isomorphic_encode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    values = request.GET.get_list("value")
-    content = request.GET.first("content", "<b>hi</b>\n")
-    output =  "HTTP/1.1 200 OK\r\n"
-    output += "X-Content-Type-Options: nosniff\r\n"
-    if "single_header" in request.GET:
-        output += "Content-Type: " + ",".join(values) + "\r\n"
</del><ins>+    values = request.GET.get_list(b"value")
+    content = request.GET.first(b"content", b"<b>hi</b>\n")
+    output = b"HTTP/1.1 200 OK\r\n"
+    output += b"X-Content-Type-Options: nosniff\r\n"
+    if b"single_header" in request.GET:
+        output += b"Content-Type: " + b",".join(values) + b"\r\n"
</ins><span class="cx">     else:
</span><span class="cx">         for value in values:
</span><del>-            output += "Content-Type: " + value + "\r\n"
-    output += "Content-Length: " + str(len(content)) + "\r\n"
-    output += "\r\n"
</del><ins>+            output += b"Content-Type: " + value + b"\r\n"
+    output += b"Content-Length: " + isomorphic_encode(str(len(content))) + b"\r\n"
+    output += b"\r\n"
</ins><span class="cx">     output += content
</span><span class="cx">     response.writer.write(output)
</span><span class="cx">     response.close_connection = True
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchhttpcacheresourceshttpcachepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/http-cache.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/http-cache.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/http-cache.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -5,98 +5,100 @@
</span><span class="cx"> import time
</span><span class="cx"> from base64 import b64decode
</span><span class="cx"> 
</span><del>-NOTEHDRS = set(['content-type', 'access-control-allow-origin', 'last-modified', 'etag'])
</del><ins>+from wptserve.utils import isomorphic_decode, isomorphic_encode
+
+NOTEHDRS = set([u'content-type', u'access-control-allow-origin', u'last-modified', u'etag'])
</ins><span class="cx"> NOBODYSTATUS = set([204, 304])
</span><del>-LOCATIONHDRS = set(['location', 'content-location'])
-DATEHDRS = set(['date', 'expires', 'last-modified'])
</del><ins>+LOCATIONHDRS = set([u'location', u'content-location'])
+DATEHDRS = set([u'date', u'expires', u'last-modified'])
</ins><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    dispatch = request.GET.first("dispatch", None)
-    uuid = request.GET.first("uuid", None)
</del><ins>+    dispatch = request.GET.first(b"dispatch", None)
+    uuid = request.GET.first(b"uuid", None)
</ins><span class="cx"> 
</span><del>-    if request.method == "OPTIONS":
</del><ins>+    if request.method == u"OPTIONS":
</ins><span class="cx">         return handle_preflight(uuid, request, response)
</span><span class="cx">     if not uuid:
</span><del>-        response.status = (404, "Not Found")
-        response.headers.set("Content-Type", "text/plain")
-        return "UUID not found"
-    if dispatch == 'test':
</del><ins>+        response.status = (404, b"Not Found")
+        response.headers.set(b"Content-Type", b"text/plain")
+        return b"UUID not found"
+    if dispatch == b'test':
</ins><span class="cx">         return handle_test(uuid, request, response)
</span><del>-    elif dispatch == 'state':
</del><ins>+    elif dispatch == b'state':
</ins><span class="cx">         return handle_state(uuid, request, response)
</span><del>-    response.status = (404, "Not Found")
-    response.headers.set("Content-Type", "text/plain")
-    return "Fallthrough"
</del><ins>+    response.status = (404, b"Not Found")
+    response.headers.set(b"Content-Type", b"text/plain")
+    return b"Fallthrough"
</ins><span class="cx"> 
</span><span class="cx"> def handle_preflight(uuid, request, response):
</span><del>-    response.status = (200, "OK")
-    response.headers.set("Access-Control-Allow-Origin", "*")
-    response.headers.set("Access-Control-Allow-Methods", "GET")
-    response.headers.set("Access-Control-Allow-Headers", "*")
-    response.headers.set("Access-Control-Max-Age", "86400")
-    return "Preflight request"
</del><ins>+    response.status = (200, b"OK")
+    response.headers.set(b"Access-Control-Allow-Origin", b"*")
+    response.headers.set(b"Access-Control-Allow-Methods", b"GET")
+    response.headers.set(b"Access-Control-Allow-Headers", b"*")
+    response.headers.set(b"Access-Control-Max-Age", b"86400")
+    return b"Preflight request"
</ins><span class="cx"> 
</span><span class="cx"> def handle_state(uuid, request, response):
</span><del>-    response.headers.set("Content-Type", "text/plain")
</del><ins>+    response.headers.set(b"Content-Type", b"text/plain")
</ins><span class="cx">     return json.dumps(request.server.stash.take(uuid))
</span><span class="cx"> 
</span><span class="cx"> def handle_test(uuid, request, response):
</span><span class="cx">     server_state = request.server.stash.take(uuid) or []
</span><span class="cx">     try:
</span><del>-        requests = json.loads(b64decode(request.headers.get('Test-Requests', "")))
</del><ins>+        requests = json.loads(b64decode(request.headers.get(b'Test-Requests', b"")))
</ins><span class="cx">     except:
</span><del>-        response.status = (400, "Bad Request")
-        response.headers.set("Content-Type", "text/plain")
-        return "No or bad Test-Requests request header"
</del><ins>+        response.status = (400, b"Bad Request")
+        response.headers.set(b"Content-Type", b"text/plain")
+        return b"No or bad Test-Requests request header"
</ins><span class="cx">     config = requests[len(server_state)]
</span><span class="cx">     if not config:
</span><del>-        response.status = (404, "Not Found")
-        response.headers.set("Content-Type", "text/plain")
-        return "Config not found"
</del><ins>+        response.status = (404, b"Not Found")
+        response.headers.set(b"Content-Type", b"text/plain")
+        return b"Config not found"
</ins><span class="cx">     noted_headers = {}
</span><span class="cx">     now = time.time()
</span><del>-    for header in config.get('response_headers', []):
</del><ins>+    for header in config.get(u'response_headers', []):
</ins><span class="cx">         if header[0].lower() in LOCATIONHDRS: # magic locations
</span><span class="cx">             if (len(header[1]) > 0):
</span><del>-                header[1] = "%s&target=%s" % (request.url, header[1])
</del><ins>+                header[1] = u"%s&target=%s" % (request.url, header[1])
</ins><span class="cx">             else:
</span><span class="cx">                 header[1] = request.url
</span><span class="cx">         if header[0].lower() in DATEHDRS and isinstance(header[1], int):  # magic dates
</span><span class="cx">             header[1] = http_date(now, header[1])
</span><del>-        response.headers.set(header[0], header[1])
</del><ins>+        response.headers.set(isomorphic_encode(header[0]), isomorphic_encode(header[1]))
</ins><span class="cx">         if header[0].lower() in NOTEHDRS:
</span><span class="cx">             noted_headers[header[0].lower()] = header[1]
</span><span class="cx">     state = {
</span><del>-        'now': now,
-        'request_method': request.method,
-        'request_headers': dict([[h.lower(), request.headers[h]] for h in request.headers]),
-        'response_headers': noted_headers
</del><ins>+        u'now': now,
+        u'request_method': request.method,
+        u'request_headers': dict([[isomorphic_decode(h.lower()), isomorphic_decode(request.headers[h])] for h in request.headers]),
+        u'response_headers': noted_headers
</ins><span class="cx">     }
</span><span class="cx">     server_state.append(state)
</span><span class="cx">     request.server.stash.put(uuid, server_state)
</span><span class="cx"> 
</span><del>-    if "access-control-allow-origin" not in noted_headers:
-        response.headers.set("Access-Control-Allow-Origin", "*")
-    if "content-type" not in noted_headers:
-        response.headers.set("Content-Type", "text/plain")
-    response.headers.set("Server-Request-Count", len(server_state))
</del><ins>+    if u"access-control-allow-origin" not in noted_headers:
+        response.headers.set(b"Access-Control-Allow-Origin", b"*")
+    if u"content-type" not in noted_headers:
+        response.headers.set(b"Content-Type", b"text/plain")
+    response.headers.set(b"Server-Request-Count", len(server_state))
</ins><span class="cx"> 
</span><del>-    code, phrase = config.get("response_status", [200, "OK"])
-    if config.get("expected_type", "").endswith('validated'):
-        ref_hdrs = server_state[0]['response_headers']
-        previous_lm = ref_hdrs.get('last-modified', False)
-        if previous_lm and request.headers.get("If-Modified-Since", False) == previous_lm:
-            code, phrase = [304, "Not Modified"]
-        previous_etag = ref_hdrs.get('etag', False)
-        if previous_etag and request.headers.get("If-None-Match", False) == previous_etag:
-            code, phrase = [304, "Not Modified"]
</del><ins>+    code, phrase = config.get(u"response_status", [200, b"OK"])
+    if config.get(u"expected_type", u"").endswith(u'validated'):
+        ref_hdrs = server_state[0][u'response_headers']
+        previous_lm = ref_hdrs.get(u'last-modified', False)
+        if previous_lm and request.headers.get(b"If-Modified-Since", False) == isomorphic_encode(previous_lm):
+            code, phrase = [304, b"Not Modified"]
+        previous_etag = ref_hdrs.get(u'etag', False)
+        if previous_etag and request.headers.get(b"If-None-Match", False) == isomorphic_encode(previous_etag):
+            code, phrase = [304, b"Not Modified"]
</ins><span class="cx">         if code != 304:
</span><del>-            code, phrase = [999, '304 Not Generated']
</del><ins>+            code, phrase = [999, b'304 Not Generated']
</ins><span class="cx">     response.status = (code, phrase)
</span><span class="cx"> 
</span><del>-    content = config.get("response_body", uuid)
</del><ins>+    content = config.get(u"response_body", uuid)
</ins><span class="cx">     if code in NOBODYSTATUS:
</span><del>-        return ""
</del><ins>+        return b""
</ins><span class="cx">     return content
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -107,13 +109,13 @@
</span><span class="cx">             result = header[1]
</span><span class="cx">     return result
</span><span class="cx"> 
</span><del>-WEEKDAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
-MONTHS = [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul',
-          'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
</del><ins>+WEEKDAYS = [u'Mon', u'Tue', u'Wed', u'Thu', u'Fri', u'Sat', u'Sun']
+MONTHS = [None, u'Jan', u'Feb', u'Mar', u'Apr', u'May', u'Jun', u'Jul',
+          u'Aug', u'Sep', u'Oct', u'Nov', u'Dec']
</ins><span class="cx"> 
</span><span class="cx"> def http_date(now, delta_secs=0):
</span><span class="cx">     date = datetime.datetime.utcfromtimestamp(now + delta_secs)
</span><del>-    return "%s, %.2d %s %.4d %.2d:%.2d:%.2d GMT" % (
</del><ins>+    return u"%s, %.2d %s %.4d %.2d:%.2d:%.2d GMT" % (
</ins><span class="cx">         WEEKDAYS[date.weekday()],
</span><span class="cx">         date.day,
</span><span class="cx">         MONTHS[date.month],
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchhttpcacheresourcessecuredimagepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/securedimage.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/securedimage.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/http-cache/resources/securedimage.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,17 +1,19 @@
</span><span class="cx"> # -*- coding: utf-8 -
</span><span class="cx"> 
</span><ins>+from wptserve.utils import isomorphic_decode, isomorphic_encode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    image_url = str.replace(request.url, "fetch/http-cache/resources/securedimage.py", "images/green.png")
</del><ins>+    image_url = str.replace(request.url, u"fetch/http-cache/resources/securedimage.py", u"images/green.png")
</ins><span class="cx"> 
</span><del>-    if "authorization" not in request.headers:
</del><ins>+    if b"authorization" not in request.headers:
</ins><span class="cx">         response.status = 401
</span><del>-        response.headers.set("WWW-Authenticate", "Basic")
</del><ins>+        response.headers.set(b"WWW-Authenticate", b"Basic")
</ins><span class="cx">         return
</span><span class="cx">     else:
</span><del>-        auth = request.headers.get("Authorization")
-        if auth != "Basic dGVzdHVzZXI6dGVzdHBhc3M=":
-            response.set_error(403, "Invalid username or password - " + auth)
</del><ins>+        auth = request.headers.get(b"Authorization")
+        if auth != b"Basic dGVzdHVzZXI6dGVzdHBhc3M=":
+            response.set_error(403, u"Invalid username or password - " + isomorphic_decode(auth))
</ins><span class="cx">             return
</span><span class="cx"> 
</span><span class="cx">     response.status = 301
</span><del>-    response.headers.set("Location", image_url)
</del><ins>+    response.headers.set(b"Location", isomorphic_encode(image_url))
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchoriginresourcesredirectandstashpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/redirect-and-stash.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/redirect-and-stash.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/redirect-and-stash.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,30 +1,32 @@
</span><span class="cx"> import json
</span><span class="cx"> 
</span><ins>+from wptserve.utils import isomorphic_decode
+
</ins><span class="cx"> def main(request, response):
</span><del>-    key = request.GET.first("stash")
-    origin = request.headers.get("origin")
</del><ins>+    key = request.GET.first(b"stash")
+    origin = request.headers.get(b"origin")
</ins><span class="cx">     if origin is None:
</span><del>-        origin = "no Origin header"
</del><ins>+        origin = b"no Origin header"
</ins><span class="cx"> 
</span><span class="cx">     origin_list = request.server.stash.take(key)
</span><span class="cx"> 
</span><del>-    if "dump" in request.GET:
-        response.headers.set("Content-Type", "application/json")
</del><ins>+    if b"dump" in request.GET:
+        response.headers.set(b"Content-Type", b"application/json")
</ins><span class="cx">         response.content = json.dumps(origin_list)
</span><span class="cx">         return
</span><span class="cx"> 
</span><span class="cx">     if origin_list is None:
</span><del>-        origin_list = [origin]
</del><ins>+        origin_list = [isomorphic_decode(origin)]
</ins><span class="cx">     else:
</span><del>-        origin_list.append(origin)
</del><ins>+        origin_list.append(isomorphic_decode(origin))
</ins><span class="cx"> 
</span><span class="cx">     request.server.stash.put(key, origin_list)
</span><span class="cx"> 
</span><del>-    if "location" in request.GET:
</del><ins>+    if b"location" in request.GET:
</ins><span class="cx">         response.status = 308
</span><del>-        response.headers.set("Location", request.GET.first("location"))
</del><ins>+        response.headers.set(b"Location", request.GET.first(b"location"))
</ins><span class="cx">         return
</span><span class="cx"> 
</span><del>-    response.headers.set("Content-Type", "text/html")
-    response.headers.set("Access-Control-Allow-Origin", "*")
-    response.content = "<meta charset=utf-8>\n<body><script>parent.postMessage('loaded','*')</script></body>"
</del><ins>+    response.headers.set(b"Content-Type", b"text/html")
+    response.headers.set(b"Access-Control-Allow-Origin", b"*")
+    response.content = b"<meta charset=utf-8>\n<body><script>parent.postMessage('loaded','*')</script></body>"
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchoriginresourcesreferrerpolicypy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/referrer-policy.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/referrer-policy.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/origin/resources/referrer-policy.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> def main(request, response):
</span><del>-    if "referrerPolicy" in request.GET:
-        response.headers.set("Referrer-Policy",
-                             request.GET.first("referrerPolicy"))
</del><ins>+    if b"referrerPolicy" in request.GET:
+        response.headers.set(b"Referrer-Policy",
+                             request.GET.first(b"referrerPolicy"))
</ins><span class="cx">     response.status = 200
</span><del>-    response.headers.set("Content-Type", "text/html")
-    response.content = "<meta charset=utf-8>\n<body><script>parent.postMessage('action','*')</script></body>"
</del><ins>+    response.headers.set(b"Content-Type", b"text/html")
+    response.content = b"<meta charset=utf-8>\n<body><script>parent.postMessage('action','*')</script></body>"
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchrangeresourceslongwavpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/range/resources/long-wav.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/range/resources/long-wav.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/range/resources/long-wav.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -118,12 +118,11 @@
</span><span class="cx">     bytes_remaining_to_send -= len(initial_write)
</span><span class="cx"> 
</span><span class="cx">     while bytes_remaining_to_send > 0:
</span><del>-        if not response.writer.flush():
-            break
-
</del><span class="cx">         to_send = b'\x00' * min(bytes_remaining_to_send, sample_rate)
</span><span class="cx">         bytes_remaining_to_send -= len(to_send)
</span><span class="cx"> 
</span><del>-        response.writer.write(to_send)
</del><ins>+        if not response.writer.write(to_send):
+            break
+
</ins><span class="cx">         # Throttle the stream
</span><span class="cx">         time.sleep(0.5)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchstalewhilerevalidateresourcesstaleframepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/stale-while-revalidate/resources/stale-frame.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/stale-while-revalidate/resources/stale-frame.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/stale-while-revalidate/resources/stale-frame.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,4 +1,5 @@
</span><span class="cx"> import random, string, datetime, time
</span><ins>+from wptserve.utils import isomorphic_decode, isomorphic_encode
</ins><span class="cx"> 
</span><span class="cx"> def id_token():
</span><span class="cx">    letters = string.ascii_lowercase
</span><span class="lines">@@ -5,9 +6,9 @@
</span><span class="cx">    return ''.join(random.choice(letters) for i in range(20))
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    is_revalidation = request.headers.get("If-None-Match", None)
-    token = request.GET.first("token", None)
-    is_query = request.GET.first("query", None) != None
</del><ins>+    is_revalidation = request.headers.get(b"If-None-Match", None)
+    token = request.GET.first(b"token", None)
+    is_query = request.GET.first(b"query", None) != None
</ins><span class="cx">     with request.server.stash.lock:
</span><span class="cx">       value = request.server.stash.take(token)
</span><span class="cx">       count = 0
</span><span class="lines">@@ -22,14 +23,14 @@
</span><span class="cx">         request.server.stash.put(token, count)
</span><span class="cx"> 
</span><span class="cx">     if is_query:
</span><del>-      headers = [("Count", count), ("Test", str(request.raw_headers))]
</del><ins>+      headers = [(b"Count", isomorphic_encode(str(count))), (b"Test", isomorphic_encode(str(request.raw_headers)))]
</ins><span class="cx">       content = ""
</span><span class="cx">       return 200, headers, content
</span><span class="cx">     else:
</span><span class="cx">       unique_id = id_token()
</span><del>-      headers = [("Content-Type", "text/html"),
-                 ("Cache-Control", "private, max-age=0, stale-while-revalidate=60"),
-                 ("ETag", '"swr"'),
-                 ("Unique-Id", unique_id)]
</del><ins>+      headers = [(b"Content-Type", b"text/html"),
+                 (b"Cache-Control", b"private, max-age=0, stale-while-revalidate=60"),
+                 (b"ETag", b'"swr"'),
+                 (b"Unique-Id", isomorphic_encode(unique_id))]
</ins><span class="cx">       content = "<body>{}</body>".format(unique_id)
</span><span class="cx">       return 200, headers, content
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheiframeelementiframeloadinglazyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-expected.txt    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-expected.txt       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> 
</span><span class="cx"> PASS In-viewport iframes load eagerly
</span><span class="cx"> PASS Below-viewport iframes load lazily
</span><del>-FAIL Below-viewport srcdoc iframes load lazily assert_true: The window load event should have fired before the below-viewport srcdoc iframe loads expected true got false
</del><ins>+FAIL Below-viewport srcdoc iframes load lazily assert_true: The window load event should have fired before the below-viewport srcdoc iframe's subresource loads expected true got false
</ins><span class="cx"> FAIL Below-viewport data: url iframes load lazily assert_true: The window load event should have fired before the below-viewport data url iframe loads expected true got false
</span><span class="cx"> FAIL Below-viewport blob url iframes load lazily assert_true: The window load event should have fired before the below-viewport blob url iframe loads expected true got false
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementmovingbetweendocumentsresourcesmovingbetweendocumentsiframepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/resources/moving-between-documents-iframe.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/resources/moving-between-documents-iframe.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/resources/moving-between-documents-iframe.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -47,7 +47,6 @@
</span><span class="cx">   response.writer.write(u"%x\r\n" % len(body))
</span><span class="cx">   response.writer.write(body)
</span><span class="cx">   response.writer.write(u"\r\n")
</span><del>-  response.writer.flush()
</del><span class="cx"> 
</span><span class="cx">   body = u""
</span><span class="cx"> 
</span><span class="lines">@@ -101,4 +100,3 @@
</span><span class="cx"> 
</span><span class="cx">   response.writer.write(u"0\r\n")
</span><span class="cx">   response.writer.write(u"\r\n")
</span><del>-  response.writer.flush()
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingTAOportmismatchmeanscrossoriginexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-port-mismatch-means-crossorigin-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-port-mismatch-means-crossorigin-expected.txt       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/TAO-port-mismatch-means-crossorigin-expected.txt  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -3,6 +3,6 @@
</span><span class="cx"> This test validates that for a cross origin resource with different ports, the timing allow check algorithm will fail when the value of Timing-Allow-Origin value has the right host but the wrong port in it.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-FAIL A port mismatch must fail the TAO check promise_test: Unhandled rejection with value: object "TypeError: URL is not valid or contains user credentials."
-FAIL An identical port must pass the TAO check promise_test: Unhandled rejection with value: object "TypeError: URL is not valid or contains user credentials."
</del><ins>+PASS A port mismatch must fail the TAO check
+PASS An identical port must pass the TAO check
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingcrossoriginstartendtimewithredirectsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects-expected.txt        2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects-expected.txt   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS Verify that cross-origin resources don't implicitly expose their redirect timings
</del><ins>+FAIL Verify that cross-origin resources don't implicitly expose their redirect timings assert_less_than: startTime should not expose redirect delays expected a number less than 2000 but got 2033
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingresource_timing_content_lengthexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_content_length-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_content_length-expected.txt    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_timing_content_length-expected.txt       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,8 +1,8 @@
</span><span class="cx"> 
</span><span class="cx"> Harness Error (TIMEOUT), message = null
</span><span class="cx"> 
</span><del>-PASS encodedBodySize should be equal to the actual byte size of the content
-PASS encodedBodySize should be equal to the actual byte size of the content when no header present
</del><ins>+FAIL encodedBodySize should be equal to the actual byte size of the content assert_equals: expected 3 but got 0
+FAIL encodedBodySize should be equal to the actual byte size of the content when no header present assert_equals: expected 13 but got 0
</ins><span class="cx"> PASS encodedBodySize should be equal to the actual byte size of the content when header value is lower than actual content
</span><span class="cx"> TIMEOUT encodedBodySize should be equal to the actual byte size of the content when header value is higher than actual content Test timed out
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingresourcesfake_responsespy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/fake_responses.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/fake_responses.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/fake_responses.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,6 +1,12 @@
</span><span class="cx"> # /xhr/resources/conditional.py -- to fake a 304 response
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><ins>+    if request.method == "OPTIONS":
+        # Assume this is a CORS preflight
+        response.headers.set(b"Access-Control-Allow-Headers", "*")
+        response.headers.set(b"Access-Control-Allow-Origin", "*")
+        response.status = (204, "No Content")
+        return b""
</ins><span class="cx">     tag = request.GET.first(b"tag", None)
</span><span class="cx">     redirect = request.GET.first(b"redirect", None)
</span><span class="cx">     match = request.headers.get(b"If-None-Match", None)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsresourcetimingresourcespreflightpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/preflight.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/preflight.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/preflight.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,8 +1,9 @@
</span><span class="cx"> def main(request, response):
</span><del>-    response.headers.set(b"Access-Control-Allow-Origin", b"*");
-    response.headers.set(b"Access-Control-Max-Age", b"0");
-    response.headers.set(b"Timing-Allow-Origin", b"*");
-    # If this script is accessed with the header X-Require-Preflight then the
-    # browser will send a preflight request. Otherwise it won't.
-    if request.method == u'OPTIONS':
-        response.headers.set(b"Access-Control-Allow-Headers", b"X-Require-Preflight");
</del><ins>+  response.headers.set(b"Access-Control-Allow-Origin", b"*")
+  response.headers.set(b"Access-Control-Max-Age", b"0")
+  response.headers.set(b"Timing-Allow-Origin", b"*")
+  # If this script is accessed with the header X-Require-Preflight then the
+  # browser will send a preflight request. Otherwise it won't.
+  if request.method == u'OPTIONS':
+    response.headers.set(b"Access-Control-Allow-Headers",
+        b"X-Require-Preflight")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesbytecheckworkerimportedscriptpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker-imported-script.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker-imported-script.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker-imported-script.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -2,7 +2,8 @@
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><span class="cx">     headers = [(b'Content-Type', b'application/javascript'),
</span><del>-               (b'Cache-Control', b'max-age=0')]
</del><ins>+               (b'Cache-Control', b'max-age=0'),
+               (b'Access-Control-Allow-Origin', b'*')]
</ins><span class="cx"> 
</span><span class="cx">     imported_content_type = b''
</span><span class="cx">     if b'imported' in request.GET:
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesbytecheckworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/bytecheck-worker.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -24,9 +24,15 @@
</span><span class="cx">     if imported_request_type == b'time':
</span><span class="cx">         imported_request = b'?imported=time'
</span><span class="cx"> 
</span><del>-    body = b'''
-    // %s
-    importScripts('%sbytecheck-worker-imported-script.py%s');
-    ''' % (main_content, imported_request_path, imported_request)
</del><ins>+    if b'type' in request.GET and request.GET[b'type'] == b'module':
+        body = b'''
+        // %s
+        import '%sbytecheck-worker-imported-script.py%s';
+        ''' % (main_content, imported_request_path, imported_request)
+    else:
+        body = b'''
+        // %s
+        importScripts('%sbytecheck-worker-imported-script.py%s');
+        ''' % (main_content, imported_request_path, imported_request)
</ins><span class="cx"> 
</span><span class="cx">     return headers, body
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesfetchaccesscontrolpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-access-control.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-access-control.py       2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-access-control.py  2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><del>-import base64
</del><span class="cx"> import json
</span><span class="cx"> import os
</span><ins>+from base64 import decodebytes
</ins><span class="cx"> 
</span><span class="cx"> from wptserve.utils import isomorphic_decode, isomorphic_encode
</span><span class="cx"> 
</span><span class="lines">@@ -29,9 +29,9 @@
</span><span class="cx"> 
</span><span class="cx">     if b"PNGIMAGE" in request.GET:
</span><span class="cx">         headers.append((b"Content-Type", b"image/png"))
</span><del>-        body = base64.decodestring(b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1B"
-                                   b"AACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAhSURBVDhPY3wro/KfgQLABKXJBqMG"
-                                   b"jBoAAqMGDLwBDAwAEsoCTFWunmQAAAAASUVORK5CYII=")
</del><ins>+        body = decodebytes(b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1B"
+                           b"AACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAhSURBVDhPY3wro/KfgQLABKXJBqMG"
+                           b"jBoAAqMGDLwBDAwAEsoCTFWunmQAAAAASUVORK5CYII=")
</ins><span class="cx">         return headers, body
</span><span class="cx"> 
</span><span class="cx">     if b"VIDEO" in request.GET:
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesimportscriptsgetpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-get.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-get.py 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-get.py    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> def main(req, res):
</span><span class="cx">     return ([
</span><del>-        ('Cache-Control', 'no-cache, must-revalidate'),
-        ('Pragma', 'no-cache'),
-        ('Content-Type', 'application/javascript')],
-        '%s = "%s";\n' % (req.GET['output'], req.GET['msg']))
</del><ins>+        (b'Cache-Control', b'no-cache, must-revalidate'),
+        (b'Pragma', b'no-cache'),
+        (b'Content-Type', b'application/javascript')],
+        b'%s = "%s";\n' % (req.GET[b'output'], req.GET[b'msg']))
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesimportscriptsversionpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-version.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-version.py     2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/import-scripts-version.py        2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx">     now = (datetime.datetime.now() - epoch).total_seconds()
</span><span class="cx"> 
</span><span class="cx">     return ([
</span><del>-        ('Cache-Control', 'no-cache, must-revalidate'),
-        ('Pragma', 'no-cache'),
-        ('Content-Type', 'application/javascript')],
-      'version = "%s";\n' % now)
</del><ins>+        (b'Cache-Control', b'no-cache, must-revalidate'),
+        (b'Pragma', b'no-cache'),
+        (b'Content-Type', b'application/javascript')],
+       u'version = "%s";\n' % now)
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesinvalidchunkedencodingwithflushpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding-with-flush.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding-with-flush.py        2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding-with-flush.py   2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,11 +1,9 @@
</span><span class="cx"> import time
</span><span class="cx"> def main(request, response):
</span><del>-    response.headers.set("Content-Type", "application/javascript")
-    response.headers.set("Transfer-encoding", "chunked")
</del><ins>+    response.headers.set(b"Content-Type", b"application/javascript")
+    response.headers.set(b"Transfer-encoding", b"chunked")
</ins><span class="cx">     response.write_status_headers()
</span><span class="cx"> 
</span><span class="cx">     time.sleep(1)
</span><del>-    response.explicit_flush = True
</del><span class="cx"> 
</span><del>-    response.writer.write("XX\r\n\r\n")
-    response.writer.flush()
</del><ins>+    response.writer.write(b"XX\r\n\r\n")
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesinvalidchunkedencodingpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,2 +1,2 @@
</span><span class="cx"> def main(request, response):
</span><del>-    return [("Content-Type", "application/javascript"), ("Transfer-encoding", "chunked")], "XX\r\n\r\n"
</del><ins>+    return [(b"Content-Type", b"application/javascript"), (b"Transfer-encoding", b"chunked")], b"XX\r\n\r\n"
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmalformedworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/malformed-worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/malformed-worker.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/malformed-worker.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,10 +1,14 @@
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [("Content-Type", "application/javascript")]
</del><ins>+    headers = [(b"Content-Type", b"application/javascript")]
</ins><span class="cx"> 
</span><del>-    body = {'parse-error': 'var foo = function() {;',
-            'undefined-error': 'foo.bar = 42;',
-            'uncaught-exception': 'throw new DOMException("AbortError");',
-            'caught-exception': 'try { throw new Error; } catch(e) {}',
-            'import-malformed-script': 'importScripts("malformed-worker.py?parse-error");',
-            'import-no-such-script': 'importScripts("no-such-script.js");'}[request.url_parts.query]
</del><ins>+    body = {u'parse-error': u'var foo = function() {;',
+            u'undefined-error': u'foo.bar = 42;',
+            u'uncaught-exception': u'throw new DOMException("AbortError");',
+            u'caught-exception': u'try { throw new Error; } catch(e) {}',
+            u'import-malformed-script': u'importScripts("malformed-worker.py?parse-error");',
+            u'import-no-such-script': u'importScripts("no-such-script.js");',
+            u'top-level-await': u'await Promise.resolve(1);',
+            u'instantiation-error': u'import nonexistent from "./imported-module-script.js";',
+            u'instantiation-error-and-top-level-await': u'import nonexistent from "./imported-module-script.js"; await Promise.resolve(1);'}[request.url_parts.query]
+
</ins><span class="cx">     return headers, body
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmimetypeworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mime-type-worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mime-type-worker.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mime-type-worker.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><span class="cx"> def main(request, response):
</span><del>-    if 'mime' in request.GET:
-        return [('Content-Type', request.GET['mime'])], ""
-    return [], ""
</del><ins>+    if b'mime' in request.GET:
+        return [(b'Content-Type', request.GET[b'mime'])], b""
+    return [], b""
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmintnewworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mint-new-worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mint-new-worker.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/mint-new-worker.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,6 +1,8 @@
</span><ins>+import random
+
</ins><span class="cx"> import time
</span><span class="cx"> 
</span><del>-body = '''
</del><ins>+body = u'''
</ins><span class="cx"> onactivate = (e) => e.waitUntil(clients.claim());
</span><span class="cx"> var resolve_wait_until;
</span><span class="cx"> var wait_until = new Promise(resolve => {
</span><span class="lines">@@ -14,12 +16,12 @@
</span><span class="cx">   };'''
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    headers = [('Cache-Control', 'no-cache, must-revalidate'),
-               ('Pragma', 'no-cache'),
-               ('Content-Type', 'application/javascript')]
</del><ins>+    headers = [(b'Cache-Control', b'no-cache, must-revalidate'),
+               (b'Pragma', b'no-cache'),
+               (b'Content-Type', b'application/javascript')]
</ins><span class="cx"> 
</span><del>-    skipWaiting = ''
-    if 'skip-waiting' in request.GET:
-      skipWaiting = 'skipWaiting();'
</del><ins>+    skipWaiting = u''
+    if b'skip-waiting' in request.GET:
+        skipWaiting = u'skipWaiting();'
</ins><span class="cx"> 
</span><del>-    return headers, '/* %s %s */ %s %s' % (time.time(), time.clock(), skipWaiting, body)
</del><ins>+    return headers, u'/* %s %s */ %s %s' % (time.time(), random.random(), skipWaiting, body)
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesmultipartimagepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/multipart-image.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/multipart-image.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/multipart-image.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -3,21 +3,21 @@
</span><span class="cx"> import os
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-BOUNDARY = 'cutHere'
</del><ins>+BOUNDARY = b'cutHere'
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def create_part(path):
</span><del>-    with open(path, 'rb') as f:
-        return 'Content-Type: image/png\r\n\r\n' + f.read() + '--%s' % BOUNDARY
</del><ins>+    with open(path, u'rb') as f:
+        return b'Content-Type: image/png\r\n\r\n' + f.read() + b'--%s' % BOUNDARY
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def main(request, response):
</span><del>-    content_type = 'multipart/x-mixed-replace; boundary=%s' % BOUNDARY
-    headers = [('Content-Type', content_type)]
-    if 'approvecors' in request.GET:
-        headers.append(('Access-Control-Allow-Origin', '*'))
</del><ins>+    content_type = b'multipart/x-mixed-replace; boundary=%s' % BOUNDARY
+    headers = [(b'Content-Type', content_type)]
+    if b'approvecors' in request.GET:
+        headers.append((b'Access-Control-Allow-Origin', b'*'))
</ins><span class="cx"> 
</span><del>-    image_path = os.path.join(request.doc_root, 'images')
-    body = create_part(os.path.join(image_path, 'red.png'))
-    body = body + create_part(os.path.join(image_path, 'red-16x16.png'))
</del><ins>+    image_path = os.path.join(request.doc_root, u'images')
+    body = create_part(os.path.join(image_path, u'red.png'))
+    body = body + create_part(os.path.join(image_path, u'red-16x16.png'))
</ins><span class="cx">     return headers, body
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesnavigationredirectbodypy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-body.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-body.py   2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-body.py      2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,9 +1,11 @@
</span><span class="cx"> import os
</span><span class="cx"> 
</span><del>-filename = os.path.basename(__file__)
</del><ins>+from wptserve.utils import isomorphic_encode
</ins><span class="cx"> 
</span><ins>+filename = os.path.basename(isomorphic_encode(__file__))
+
</ins><span class="cx"> def main(request, response):
</span><del>-    if request.method == 'POST':
-        return 302, [('Location', './%s?redirect' % filename)], ''
</del><ins>+    if request.method == u'POST':
+        return 302, [(b'Location', b'./%s?redirect' % filename)], b''
</ins><span class="cx"> 
</span><del>-    return [('Content-Type', 'text/plain')], request.request_path
</del><ins>+    return [(b'Content-Type', b'text/plain')], request.request_path
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesnavigationredirectoutscopepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,14 +1,14 @@
</span><span class="cx"> def main(request, response):
</span><del>-    if "url" in request.GET:
-        headers = [("Location", request.GET["url"])]
-        return 302, headers, ''
</del><ins>+    if b"url" in request.GET:
+        headers = [(b"Location", request.GET[b"url"])]
+        return 302, headers, b''
</ins><span class="cx"> 
</span><span class="cx">     status = 200
</span><span class="cx"> 
</span><del>-    if "noLocationRedirect" in request.GET:
</del><ins>+    if b"noLocationRedirect" in request.GET:
</ins><span class="cx">         status = 302
</span><span class="cx"> 
</span><del>-    return status, [("content-type", "text/html")], '''
</del><ins>+    return status, [(b"content-type", b"text/html")], b'''
</ins><span class="cx"> <!DOCTYPE html>
</span><span class="cx"> <script>
</span><span class="cx"> onmessage = event => {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesnotification_iconpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/notification_icon.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/notification_icon.py  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/notification_icon.py     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-from six.moves.urllib.parse import parse_qs
</del><ins>+from urllib.parse import parse_qs
</ins><span class="cx"> 
</span><span class="cx"> from wptserve.utils import isomorphic_encode
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcestricklepy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/trickle.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/trickle.py    2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/trickle.py       2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,7 +1,5 @@
</span><span class="cx"> import time
</span><span class="cx"> 
</span><del>-from six import range
-
</del><span class="cx"> def main(request, response):
</span><span class="cx">     delay = float(request.GET.first(b"ms", 500)) / 1E3
</span><span class="cx">     count = int(request.GET.first(b"count", 50))
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerresourcesupdateworkerpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/update-worker.py (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/update-worker.py      2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/update-worker.py 2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-from six.moves.urllib.parse import unquote
</del><ins>+from urllib.parse import unquote
</ins><span class="cx"> 
</span><span class="cx"> from wptserve.utils import isomorphic_decode, isomorphic_encode
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsserviceworkersserviceworkerworkerinterceptionhttpsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt  2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt     2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> PASS Verify a no-cors cross-origin worker script served by a service worker fails dedicated worker start.
</span><span class="cx"> FAIL Verify a no-cors cross-origin worker script served by a service worker fails shared worker start. promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: SharedWorker"
</span><span class="cx"> PASS Register a service worker for worker subresource interception tests.
</span><del>-FAIL Requests on a dedicated worker controlled by a service worker. assert_equals: expected "This load was successfully intercepted." but got "{\"error\": {\"message\": \"\", \"code\": 404}}"
</del><ins>+FAIL Requests on a dedicated worker controlled by a service worker. assert_equals: expected "This load was successfully intercepted." but got "{\"error\": {\"code\": 404, \"message\": \"404\"}}"
</ins><span class="cx"> FAIL Requests on a shared worker controlled by a service worker. promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: SharedWorker"
</span><span class="cx"> FAIL Requests on a dedicated worker nested in a dedicated worker and controlled by a service worker assert_equals: expected "This load was successfully intercepted." but got "Unexpected error! Can't find variable: Worker"
</span><span class="cx"> FAIL Requests on a dedicated worker nested in a shared worker and controlled by a service worker promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: SharedWorker"
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformteststoolsMETAyml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/tools/META.yml (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/tools/META.yml 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/tools/META.yml    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,5 +1,3 @@
</span><span class="cx"> suggested_reviewers:
</span><span class="cx">   - jgraham
</span><del>-  - Hexcles
-  - stephenmcgruer
-  - LukeZielinski
</del><ins>+  - foolip
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformteststoolscertscacertkey"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.key (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.key 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.key    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,30 +1,30 @@
</span><span class="cx"> -----BEGIN ENCRYPTED PRIVATE KEY-----
</span><del>-MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIRu7scI+V5ZQCAggA
-MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECNDpjncoMek0BIIEyNdSEzeGgFTc
-2mdljspg2028EFpD6wAK7XbcoA8WHN81qkJA4a4XQQFgp4RID7DQc95ELs4awMLu
-SkY19F4VETrS0RvjPYIQkcOQMuPicVGrmH9cDptXv+IM24BuBXfj692B1ZNhE8Gd
-tHlRpSiSga7ja1635mJ4lcZsNJHiDVpEI/aIy+Xy/G5hHFcg+S22w797tuKxG2MZ
-PG9mnI1S/PF1KZbbJJZeZE2u60GxGQYiv3sOUOd4tNZqMLt2Nzo0JrjQJCwxFgFK
-7EzRrN41G2IuSuSMSrn9CEADbvB1hgDWEgc8tW4jE28d9NhoiI+Lwzq33WBN6tyG
-oJly36w8J0VNBqhqQSLzwAQ+ChT2/a59GJ4R5LvFCP2AxDGkag1iN5FdQ96aIoCA
-zAevHtDNmGvj44qpkAiRlACiFjYXK7vR9ZiB+CIhe0dxm9kYCce9S2Du3541a//P
-2YtfjScV3mma21e+xUMPzgNR+p8O9OY2DSMi3m56cXFfR5eoKAFvBUalOBjJu9Wp
-k9dpLZlbE8qBd8plEjnq3ie3+DSkWOaq8KI4OeBa0ZyE6kRnC+2qYQ2aafGq/y5d
-o8V/P9xpvZJfH/QsFpaQM9TP3biI8wdN1w+uU5ZX/g9zpgkVSBR4jVWbjmSdpcN8
-IdVNIohLZDtSSGDA+yzG+T/3tloS7uB3dIQgjqINcJqp3l6W8chbjZoe2WDAJH6u
-F+VthCo82dTgDpn+yPWsKNTyJc9B4bbCgHkZCjX0ENksJt22Oi9Bq2+uCU9RdKZ8
-KxL37OlqAwLvDg8XgV/ox3lzcMmSR/Y1xY5XdUS4crsXcSZMtakEHlYt9U2s8SsH
-WqdiUrdTC7YJHReJ/FhooEo9Tk4bfxJtSeOJMvzHkE14jRW/ovy1tYCpyJI7Q+Dy
-9z++hi/DuNusWoHjw3KLOtPST2o/YduBPGBK88sPEVUIZXdJ/JLe1CQGb+1IuKxw
-XADhNMIGW31i5uoaM7eVgRM5oZ6FUhK356vBgJVu39qStBuc8dq19lu0iOfgtVWY
-WEQd7PuwJnZrcpz6YiPHTrtCDApPT53RnuYJgPlDGkW/yUkjZk8Qzcg4yes4zZaT
-Zkts/BiGtQ4bgTkOZtwE8xCI+NZTnhWyIyMk+us2fSvJJGEsnBtJ8PO5XwoZvHxQ
-DMP4MoaZt1/TV5TXMYel/shvpCWIbKFVG9npk3bomC2ApUJbNlrvOKrxS5vaVd1i
-bZXigYZcynDYSsY4RI8jK3nSp2uR8C4YCaBU1ws0uj0ZAvY+SxuYSQTEs1eQd0ra
-QMOlhmUAydHkP+kT2zUTYa4uFn2F/KMhQ/r2nAtpgG/wT6gYeOz5bi8bGl6+dfvU
-9HT6JWFNOKaFVTVvlu32VGpe4nbUszVQlgXLu+1tHL4K0yRgLL6nGpLH31U4M9YV
-T+aJGjCBEsH56ipMMy0Ke/NfJyfwG+HEkg9EXK+re+1zsm4vWI5Aru4eApN3Im+N
-TnIE7y5OZCQEYgolZotzvPoXDAesofRpt2RoAMNIL/pRZZGKG+6bojq0AIrKi6rp
-6y2nF3NjSjGBM8K2FIsj2ORchbGzw3zu4QOBsMfLO32/SheMhaytqPVt3Pkss5xb
-ivBI1FNVMcGJYA9S+4ZF3Q==
</del><ins>+MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIyen2KzS3mmcCAggA
+MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECEIgc7HDneCrBIIEyJ+6FjXliBf8
+6KlnCu9xW3GoRwWQFOfctmHxTR5wtuye28QGaf3GJP48c7Q0agXk3kFkr2/9AM29
+7JosuHYqiYFnsV02PWvIzCH8GqcSAUblWR9w0fD7VM7Zh3QCu4NmMcsYjLezK3Ov
+BpS/1N7FePLlWKTJWKPhSW8YMJAZCsgonZ2QcsULOIfwV2Muh9rJe3PyJIQUMziJ
+q7O+1QpSUxXTuQDqArNBlsfGWjvYCZ9TFJRP8ucuzvu28MgZ4Atc8bxlLzweMRIK
+tCQcLmXR7M4cYIgLQJoRcJbyiTQ3GoiXK4jy9oPxcLUZNOyTyOMTueIfoFBrygjn
+wewYQAy5ZlzftRyFAUf1QQTmHlRVHslChjF2mMET519sp99DUQ11PW/eN/ZqcQtR
+5KUW6TyvMu1eBsb+rtftl4mYUAHIhNesaD2jlmaUYQnzGeBNYCDi7Lb2FkT657iO
+2D/lo2V/Bm0Egm5nD8RvnXvEigm1J2m6CKQuAEktwGkh/fKm13UUZNJL43472Q9r
+F2SucLkIpDT+nv5isMH+TfPmJ9ikIG+46OoMf17WjE/d5MLwxyOuaGUrs+cakRkI
+DgRTVjVGZDaK9qVPhFQlVLHOEgHOQHcF7Ia0V1eyt5D08vwTNd+cecLg+xQRbI0R
+MQzYLkuXWXksWIHAwA12CJekXKlf9N0cmVsAd8LnGtsPepdDh/TcyOXiNmtmtpi3
+rH3ZxLpUZnrt8Pr6MI1gUtNBwNICMSd9VdD58hze3uoNhuSWg4hcXDZv6Gt0OErB
+10oXgZpR8XKvlYtoGx/0IdkityTXPRsslLLFHkGauMVRfaJUPH8kiIEJEcFEsXWK
+oVfZ2df7zgdkk8vGbcKkvpszeWdZn+K8tMYWCHElQk1aAFt/CqSGv+4XV5AoC1us
+ht2aCbOjs2uYwNwrEXapjW4OV3NsclEF+l5nfSpya7VNU/RKcyer0mEKM+yk539M
+Mr5OIpPbia2w9hDJKl7fzb0FLQ6x8GejLILmqGLH23qn8hIc6X2CJFErSOfErDgD
+AX658k7GbhAnMBxnhCkP17WyygZ5ZGLDxXGYVHfb/LDJWqrrziIrjIK3Oq2goNLW
+E0CF8FFSYXKG1SkPzzYLIzkuPKCtfjg6lTAadbOpYe6qtaDmo/cxvwPW9U6COgfY
+AuUwj0ratjr4CTlB5/Zs8g1vuucvFGNfe0mdH/pG+vGprBCrxgGX472NOwHZ7XR+
+9XSh4FQpFoa0bM2T28uJKvEpkrEqFeucGipESymiOEDRMW98rY0ApTrFcooOtEm2
++sVN4SlxIQ2Uc2kO0N8xeKFv64NrNgYVt8ZHeUfhsY8Tw9V9RWc3BjEdiLLj8C84
+eh8yNC3Ga9W81EAduHhGKEy65buIgOH1P934HT6fORfGj1TEaka7b4KDcLSmVO6l
+5rECqCOQ8ki1+RLVbg7Pi/ukKVbjPBbTciFrgIIjXnUQAtnFdYnBGwIzCGlRKAwV
+pVlqprL2KC1B+Is+kCYKlkcrg5igf6lLjR+lrUgfn6fGS4iq4Ey4CsS8CMLi5vu8
+W9Ja3yIpg9HsDYxjlmHCeZkNeJmcQcm7dI8CgEPbhiCxYObNbMU6lz/ujYJnCv4i
+b/kZkJoNDKxekrg5nuaL7g==
</ins><span class="cx"> -----END ENCRYPTED PRIVATE KEY-----
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformteststoolscertscacertpem"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.pem (279168 => 279169)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.pem 2021-06-23 15:20:49 UTC (rev 279168)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/tools/certs/cacert.pem    2021-06-23 15:37:56 UTC (rev 279169)
</span><span class="lines">@@ -1,347 +1,347 @@
</span><span class="cx"> -----BEGIN CERTIFICATE-----
</span><del>-MIJAhzCCP2+gAwIBAgIDDeufMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
-Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMDEwMTIwMDMwNDdaFw0yMTEwMTIwMDMwNDda
</del><ins>+MIJAhzCCP2+gAwIBAgIDCUCiMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMTA2MTIwMDMyMTdaFw0yMjA2MTIwMDMyMTda
</ins><span class="cx"> MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
</span><del>-BQADggEPADCCAQoCggEBAOGkP/wDuZaB5F+dyDND3yegR0+uA/PsPzKcpALwjr6G
-AkEWSqOp1H5pLtV0L+VuFJM7k9OhihrX9gQF3NG2oViUo8FY0u90NQUOFOpKaiol
-pQEtC0nW7RJME9i6OqHp8oEVEUmTN3sgXnmLznO/EVpbjs7gEV8bdvIUeg224I9D
-Ly7QcF90GHWHjp9SI7EbODhbE7oB07l55/ddTsjCQE32KAdzLMLrowIvfMHtGIG7
-DKtEzM4muXaHJImDJdiXLdv64ZlbpwjwqhEzNBdfGhPnEqCqDK0/Gqn5VfS+UzcD
-/uQrMWsoL/oUrwTztk2uI+zcKYCXooKlEvzAQmNlXmcCAwEAAaOCPc4wgj3KMAwG
-A1UdEwQFMAMBAf8wHQYDVR0OBBYEFIFuwBVBQHcPDDoei++ltCM0KtQPMEcGA1Ud
-IwRAMD6AFIFuwBVBQHcPDDoei++ltCM0KtQPoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
-cGxhdGZvcm0tdGVzdHOCAw3rnzALBgNVHQ8EBAMCAgQwgh+bBgNVHR4Egh+SMIIf
-jqCCH4owE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVb3A4LndlYi1wbGF0Zm9ybS50
-ZXN0MBeCFW9wNy53ZWItcGxhdGZvcm0udGVzdDAXghVvcDkud2ViLXBsYXRmb3Jt
-LnRlc3QwF4IVb3A0LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW5vdC13ZWItcGxhdGZv
-cm0udGVzdDAXghVvcDYud2ViLXBsYXRmb3JtLnRlc3QwF4IVb3AzLndlYi1wbGF0
-Zm9ybS50ZXN0MBeCFW9wMi53ZWItcGxhdGZvcm0udGVzdDAXghVvcDEud2ViLXBs
-YXRmb3JtLnRlc3QwF4IVd3d3LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW9wNS53ZWIt
-cGxhdGZvcm0udGVzdDAYghZvcDg4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTgu
-d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4NS53ZWItcGxhdGZvcm0udGVzdDAYghZv
-cDg5LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjYud2ViLXBsYXRmb3JtLnRlc3Qw
-GIIWb3A3Mi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDI0LndlYi1wbGF0Zm9ybS50
-ZXN0MBiCFm9wNDEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A3OS53ZWItcGxhdGZv
-cm0udGVzdDAYghZvcDkxLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTkud2ViLXBs
-YXRmb3JtLnRlc3QwGIIWb3AzOS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDYwLndl
-Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTgud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3Ay
-OC53ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cxLndlYi1wbGF0Zm9ybS50ZXN0MBiC
-Fm9wMTQud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2OS53ZWItcGxhdGZvcm0udGVz
-dDAYghZvcDQwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNzQud2ViLXBsYXRmb3Jt
-LnRlc3QwGIIWb3AzMS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDE4LndlYi1wbGF0
-Zm9ybS50ZXN0MBiCFm9wNzMud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A3Ny53ZWIt
-cGxhdGZvcm0udGVzdDAYghZvcDEyLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTQu
-d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2My53ZWItcGxhdGZvcm0udGVzdDAYghZv
-cDcxLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTUud2ViLXBsYXRmb3JtLnRlc3Qw
-GIIWb3AxNi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDM2LndlYi1wbGF0Zm9ybS50
-ZXN0MBiCFm9wMjcud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AyOS53ZWItcGxhdGZv
-cm0udGVzdDAYghZvcDk0LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDQud2ViLXBs
-YXRmb3JtLnRlc3QwGIIWb3AzMy53ZWItcGxhdGZvcm0udGVzdDAYghZvcDg0Lndl
-Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2
-MS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDcwLndlYi1wbGF0Zm9ybS50ZXN0MBiC
-Fnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0My53ZWItcGxhdGZvcm0udGVz
-dDAYghZvcDc4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjYud2ViLXBsYXRmb3Jt
-LnRlc3QwGIIWb3A3Ni53ZWItcGxhdGZvcm0udGVzdDAYghZvcDUyLndlYi1wbGF0
-Zm9ybS50ZXN0MBiCFm9wOTkud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4Ni53ZWIt
-cGxhdGZvcm0udGVzdDAYghZvcDQ2LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMTcu
-d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A5MC53ZWItcGxhdGZvcm0udGVzdDAYghZv
-cDkzLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMTAud2ViLXBsYXRmb3JtLnRlc3Qw
-GIIWb3A1NS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDQ3LndlYi1wbGF0Zm9ybS50
-ZXN0MBiCFm9wNTEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0NS53ZWItcGxhdGZv
-cm0udGVzdDAYghZvcDgwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjgud2ViLXBs
-YXRmb3JtLnRlc3QwGIIWb3A0OS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDU3Lndl
-Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzUud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2
-Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDkyLndlYi1wbGF0Zm9ybS50ZXN0MBiC
-Fm9wMTUud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AxMy53ZWItcGxhdGZvcm0udGVz
-dDAYghZvcDc1LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjQud2ViLXBsYXRmb3Jt
-LnRlc3QwGIIWb3A5Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDM3LndlYi1wbGF0
-Zm9ybS50ZXN0MBiCFm9wNTYud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2Mi53ZWIt
-cGxhdGZvcm0udGVzdDAYghZvcDgyLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjUu
-d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AxMS53ZWItcGxhdGZvcm0udGVzdDAYghZv
-cDUwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzgud2ViLXBsYXRmb3JtLnRlc3Qw
-GIIWb3A4My53ZWItcGxhdGZvcm0udGVzdDAYghZvcDgxLndlYi1wbGF0Zm9ybS50
-ZXN0MBiCFm9wMjAud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AyMS53ZWItcGxhdGZv
-cm0udGVzdDAYghZvcDIzLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDIud2ViLXBs
-YXRmb3JtLnRlc3QwGIIWb3AyMi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDY1Lndl
-Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTYud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4
-Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDE5LndlYi1wbGF0Zm9ybS50ZXN0MBiC
-Fm9wNTMud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AzMC53ZWItcGxhdGZvcm0udGVz
-dDAYghZvcDQ4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzQud2ViLXBsYXRmb3Jt
-LnRlc3QwG4IZb3A2Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAbghlvcDMubm90LXdl
-Yi1wbGF0Zm9ybS50ZXN0MBuCGW9wMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZ
-b3A1Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAbghl3d3cubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MBuCGXd3dy53d3cud2ViLXBsYXRmb3JtLnRlc3QwG4IZb3A3Lm5vdC13
-ZWItcGxhdGZvcm0udGVzdDAbghlvcDQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MBuC
-GW9wOC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZb3A5Lm5vdC13ZWItcGxhdGZv
-cm0udGVzdDAbghlvcDEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzYubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wNTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjQubm90LXdlYi1w
</del><ins>+BQADggEPADCCAQoCggEBAJoNCndop0ERsIznj/uQ9AU24lnDZpg/Q3gZhKZfsxNw
+mGQFuHUqo6H1b4301jvSfh72iOMcqTLRonjUYAlIrzKSVlOWsbWZzBN3mEbUU3OB
+iEQ2PxzxHsB5i+kUmZQopYZQCqHSmAbM4nIRBJCn/aNyqOuKn73NjXe+u1T9S01z
+dFR9Z9dEAPEKuN9R6As8AF5aB7EhO2IT60JzTVKQc+o58P1ClRmSY3QiMRZVUqZE
+Ay3dmtKTZLJFnlwf+MD+qZ3z3etJHnZh6kZxziNzB4ncDle6J3+6i4SYdz9zlk7W
++NBFn3jeRX/BFqQ+qTYHhJjJrv5z2SYju4RYEoJhXlECAwEAAaOCPc4wgj3KMAwG
+A1UdEwQFMAMBAf8wHQYDVR0OBBYEFKhPhS7+1FaJ6b+wwiYdVdn3inAYMEcGA1Ud
+IwRAMD6AFKhPhS7+1FaJ6b+wwiYdVdn3inAYoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
+cGxhdGZvcm0tdGVzdHOCAwlAojALBgNVHQ8EBAMCAgQwgh+bBgNVHR4Egh+SMIIf
+jqCCH4owE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVbm90LXdlYi1wbGF0Zm9ybS50
+ZXN0MBeCFW9wMi53ZWItcGxhdGZvcm0udGVzdDAXghV3d3cud2ViLXBsYXRmb3Jt
+LnRlc3QwF4IVb3AzLndlYi1wbGF0Zm9ybS50ZXN0MBeCFW9wNi53ZWItcGxhdGZv
+cm0udGVzdDAXghVvcDEud2ViLXBsYXRmb3JtLnRlc3QwF4IVb3A4LndlYi1wbGF0
+Zm9ybS50ZXN0MBeCFW9wOS53ZWItcGxhdGZvcm0udGVzdDAXghVvcDUud2ViLXBs
+YXRmb3JtLnRlc3QwF4IVb3A3LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW9wNC53ZWIt
+cGxhdGZvcm0udGVzdDAYghZvcDc3LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzQu
+d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0OS53ZWItcGxhdGZvcm0udGVzdDAYghZv
+cDQyLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTcud2ViLXBsYXRmb3JtLnRlc3Qw
+GIIWb3AyOC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDE1LndlYi1wbGF0Zm9ybS50
+ZXN0MBiCFm9wMzYud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AzMS53ZWItcGxhdGZv
+cm0udGVzdDAYghZvcDg5LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjQud2ViLXBs
+YXRmb3JtLnRlc3QwGIIWb3A3NC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDI2Lndl
+Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wODIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3Ax
+Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDkzLndlYi1wbGF0Zm9ybS50ZXN0MBiC
+Fm9wMTEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AyMS53ZWItcGxhdGZvcm0udGVz
+dDAYghZvcDcxLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTEud2ViLXBsYXRmb3Jt
+LnRlc3QwGIIWb3A0MS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDMyLndlYi1wbGF0
+Zm9ybS50ZXN0MBiCFm9wMTAud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A3Mi53ZWIt
+cGxhdGZvcm0udGVzdDAYghZvcDQ1LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjMu
+d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A3Ni53ZWItcGxhdGZvcm0udGVzdDAYghZv
+cDg0LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNzUud2ViLXBsYXRmb3JtLnRlc3Qw
+GIIWb3A3My53ZWItcGxhdGZvcm0udGVzdDAYghZvcDg1LndlYi1wbGF0Zm9ybS50
+ZXN0MBiCFm9wNjIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2OC53ZWItcGxhdGZv
+cm0udGVzdDAYghZvcDYwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDMud2ViLXBs
+YXRmb3JtLnRlc3QwGIIWb3A0Ni53ZWItcGxhdGZvcm0udGVzdDAYghZvcDUyLndl
+Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3Ay
+Mi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDIzLndlYi1wbGF0Zm9ybS50ZXN0MBiC
+Fm9wNTQud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2Ni53ZWItcGxhdGZvcm0udGVz
+dDAYghZvcDU1LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzMud2ViLXBsYXRmb3Jt
+LnRlc3QwGIIWb3AzOC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDMwLndlYi1wbGF0
+Zm9ybS50ZXN0MBiCFm9wNjEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A5MC53ZWIt
+cGxhdGZvcm0udGVzdDAYghZvcDE4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTAu
+d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AxOS53ZWItcGxhdGZvcm0udGVzdDAYghZv
+cDIwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjcud2ViLXBsYXRmb3JtLnRlc3Qw
+GIIWb3A1Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDk1LndlYi1wbGF0Zm9ybS50
+ZXN0MBiCFm9wNzkud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4My53ZWItcGxhdGZv
+cm0udGVzdDAYghZvcDk0LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMTIud2ViLXBs
+YXRmb3JtLnRlc3QwGIIWb3A5OC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDI5Lndl
+Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wNzAud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4
+MC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDE0LndlYi1wbGF0Zm9ybS50ZXN0MBiC
+Fnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4OC53ZWItcGxhdGZvcm0udGVz
+dDAYghZvcDM1LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTkud2ViLXBsYXRmb3Jt
+LnRlc3QwGIIWb3AyNC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDU2LndlYi1wbGF0
+Zm9ybS50ZXN0MBiCFm9wNTMud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A1OS53ZWIt
+cGxhdGZvcm0udGVzdDAYghZvcDc4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wODYu
+d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4Ny53ZWItcGxhdGZvcm0udGVzdDAYghZv
+cDY5LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wODEud2ViLXBsYXRmb3JtLnRlc3Qw
+GIIWb3A2Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDM3LndlYi1wbGF0Zm9ybS50
+ZXN0MBiCFm9wNDgud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A5Mi53ZWItcGxhdGZv
+cm0udGVzdDAYghZvcDM5LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMTMud2ViLXBs
+YXRmb3JtLnRlc3QwGIIWb3AxNi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDk2Lndl
+Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjUud2ViLXBsYXRmb3JtLnRlc3QwGIIWd3d3
+MS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDU4LndlYi1wbGF0Zm9ybS50ZXN0MBiC
+Fm9wNDcud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0MC53ZWItcGxhdGZvcm0udGVz
+dDAYghZvcDY1LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDQud2ViLXBsYXRmb3Jt
+LnRlc3QwG4IZb3AzLm5vdC13ZWItcGxhdGZvcm0udGVzdDAbghl3d3cubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0MBuCGW9wOS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZ
+d3d3Lnd3dy53ZWItcGxhdGZvcm0udGVzdDAbghlvcDUubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MBuCGW9wNy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZb3A4Lm5vdC13
+ZWItcGxhdGZvcm0udGVzdDAbghlvcDYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MBuC
+GW9wMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZb3A0Lm5vdC13ZWItcGxhdGZv
+cm0udGVzdDAbghlvcDIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODcubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wOTgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzcubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+NTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTEubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wMzUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjcubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wODgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzEubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wNTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+Njgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDIubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wNzYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODQubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODYubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wOTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3LndlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wNjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+ODAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzMubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wODEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTkubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wNDQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDUubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+Mzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODUubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wMzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjUubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wNTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIud3d3LndlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wMzYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+MjQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjkubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wNTgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTkubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wMTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzIubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wNjQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+NjUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjIubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wNTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTMubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wOTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDcubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wNzQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+MTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzgubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wOTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTcubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGnd3dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjIubm90LXdlYi1w
</ins><span class="cx"> bGF0Zm9ybS50ZXN0MByCGm9wMzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
</span><del>-OTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODMubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzMubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wMjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODEubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wNzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-Nzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDAubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wMjUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjUubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wODAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTIubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wNjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-NDUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzEubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wNzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTAubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wNDkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzcubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wNzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-ODIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cxLndlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wMTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzkubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDQubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTgubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wMTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-MzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjIubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wNjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTIubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wOTgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjQubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wMjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-MjIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTQubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wMzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzMubm90
</del><ins>+Mzcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzAubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wMTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzUubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzMubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wNTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDAubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wMzQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+Mjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDgubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wMjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTcubm90
</ins><span class="cx"> LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjMubm90LXdlYi1wbGF0Zm9ybS50ZXN0
</span><del>-MByCGm9wNTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTQubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wODUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-NDYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTcubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wMzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjAubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wNTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDEubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wMzUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-OTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDIubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wNjcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzcubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDgubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wNTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTYubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wODQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-MzQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjkubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wMTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTMubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wODYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTMubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wMjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-NzYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjcubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wMTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzUubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wNDcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTgubm90LXdlYi1w
</del><ins>+MByCGm9wNzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDMubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wODIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+OTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODkubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wOTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjcubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wNjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cxLndlYi1w
</ins><span class="cx"> bGF0Zm9ybS50ZXN0MByCGm9wNjMubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
</span><del>-Mjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDMubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wNjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIud3d3
-LndlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
-MByCGm9wNzQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTkubm90LXdlYi1w
-bGF0Zm9ybS50ZXN0MByCGm9wODgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
-ODcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTAubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0MByCGm9wMTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3
-Mi53ZWItcGxhdGZvcm0udGVzdDAdght3d3cyLnd3dzIud2ViLXBsYXRmb3JtLnRl
-c3QwHYIbd3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3MS53
</del><ins>+MTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTIubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wNTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODMubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTgubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+MByCGm9wMzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDYubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0MByCGm9wMTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
+Nzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjEubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0MByCGm9wNDEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3
+MS53ZWItcGxhdGZvcm0udGVzdDAdght3d3cyLnd3dzIud2ViLXBsYXRmb3JtLnRl
+c3QwHYIbd3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3Mi53
</ins><span class="cx"> ZWItcGxhdGZvcm0udGVzdDAfgh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
</span><del>-dDAggh54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3MS53d3cu
-bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCCCHnd3dy53d3cyLm5vdC13ZWItcGxhdGZv
-cm0udGVzdDAggh53d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3
-Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzIud3d3Mi5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3QwIYIfd3d3Mi53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVz
-dDAhgh93d3cxLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3
-Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwJIIieG4tLWx2ZS02bGFkLnd3dy53ZWIt
</del><ins>+dDAggh53d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Lnd3dzIu
+bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCCCHnd3dy53d3cxLm5vdC13ZWItcGxhdGZv
+cm0udGVzdDAggh53d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIeeG4t
+LWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzIud3d3MS5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3QwIYIfd3d3MS53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVz
+dDAhgh93d3cyLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3
+MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwJIIieG4tLWx2ZS02bGFkLnd3dy53ZWIt
</ins><span class="cx"> cGxhdGZvcm0udGVzdDAkgiJ4bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50
</span><span class="cx"> ZXN0MCSCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3
</span><del>-Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFk
-Lnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzEud2Vi
-LXBsYXRmb3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt
</del><ins>+MS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFk
+Lnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3Mi54bi0tbHZlLTZsYWQud2Vi
+LXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzIud2ViLXBsYXRmb3Jt
</ins><span class="cx"> LnRlc3QwKIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
</span><span class="cx"> KIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4t
</span><del>-LWx2ZS02bGFkLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3d3dzIueG4t
-LWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid3d3cxLnhuLS1sdmUt
-NmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02bGFkLnd3dzIu
</del><ins>+LWx2ZS02bGFkLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3huLS1sdmUt
+NmxhZC53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid3d3cyLnhuLS1sdmUt
+NmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYInd3d3MS54bi0tbHZlLTZsYWQu
</ins><span class="cx"> bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCuCKXhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
</span><span class="cx"> LndlYi1wbGF0Zm9ybS50ZXN0MC2CK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
</span><del>-d2ViLXBsYXRmb3JtLnRlc3QwL4Itd3d3LnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
-LndlYi1wbGF0Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5v
-dC13ZWItcGxhdGZvcm0udGVzdDAvgi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS53
-d3cud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFo
</del><ins>+d2ViLXBsYXRmb3JtLnRlc3QwL4IteG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3
+dy53ZWItcGxhdGZvcm0udGVzdDAvgi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYy
+OGEud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFo
</ins><span class="cx"> djI4YS53ZWItcGxhdGZvcm0udGVzdDAwgi54bi0tbjhqNmRzNTNsd3drcnFodjI4
</span><del>-YS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MDCCLnhuLS1uOGo2ZHM1M2x3d2tycWh2
-MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3Mi54bi0tbjhqNmRzNTNs
-d3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4t
</del><ins>+YS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MDCCLnd3dzIueG4tLW44ajZkczUzbHd3
+a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwMIIueG4tLW44ajZkczUzbHd3a3Jx
+aHYyOGEud3d3Mi53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4t
</ins><span class="cx"> LWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF3d3cueG4tLW44ajZk
</span><span class="cx"> czUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDOCMXhuLS1uOGo2
</span><span class="cx"> ZHM1M2x3d2tycWh2MjhhLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyeG4t
</span><span class="cx"> LW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
</span><del>-NIIyd3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3Jt
-LnRlc3QwNIIyd3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
</del><ins>+NIIyd3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3QwNIIyd3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
</ins><span class="cx"> YXRmb3JtLnRlc3QwNIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qt
</span><del>-d2ViLXBsYXRmb3JtLnRlc3QwOII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4t
-LWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1sdmUtNmxhZC54bi0t
-bjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbjhq
-NmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50
-ZXN0MDyCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qt
</del><ins>+d2ViLXBsYXRmb3JtLnRlc3QwOII2eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3
+d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1uOGo2ZHM1M2x3d2ty
+cWh2MjhhLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbHZl
+LTZsYWQueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0MDyCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qt
</ins><span class="cx"> d2ViLXBsYXRmb3JtLnRlc3QwQ4JBeG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4t
</span><span class="cx"> LW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwR4JFeG4tLW44
</span><span class="cx"> ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdl
</span><span class="cx"> Yi1wbGF0Zm9ybS50ZXN0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMIIdjwYDVR0RBIId
</span><del>-hjCCHYKCEXdlYi1wbGF0Zm9ybS50ZXN0ghVvcDgud2ViLXBsYXRmb3JtLnRlc3SC
-FW9wNy53ZWItcGxhdGZvcm0udGVzdIIVb3A5LndlYi1wbGF0Zm9ybS50ZXN0ghVv
-cDQud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13ZWItcGxhdGZvcm0udGVzdIIVb3A2
-LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDMud2ViLXBsYXRmb3JtLnRlc3SCFW9wMi53
-ZWItcGxhdGZvcm0udGVzdIIVb3AxLndlYi1wbGF0Zm9ybS50ZXN0ghV3d3cud2Vi
-LXBsYXRmb3JtLnRlc3SCFW9wNS53ZWItcGxhdGZvcm0udGVzdIIWb3A4OC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A5OC53ZWItcGxhdGZvcm0udGVzdIIWb3A4NS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A4OS53ZWItcGxhdGZvcm0udGVzdIIWb3A2Ni53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A3Mi53ZWItcGxhdGZvcm0udGVzdIIWb3AyNC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A0MS53ZWItcGxhdGZvcm0udGVzdIIWb3A3OS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A5MS53ZWItcGxhdGZvcm0udGVzdIIWb3A1OS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AzOS53ZWItcGxhdGZvcm0udGVzdIIWb3A2MC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A1OC53ZWItcGxhdGZvcm0udGVzdIIWb3AyOC53ZWIt
-cGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIWb3AxNC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A2OS53ZWItcGxhdGZvcm0udGVzdIIWb3A0MC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A3NC53ZWItcGxhdGZvcm0udGVzdIIWb3AzMS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AxOC53ZWItcGxhdGZvcm0udGVzdIIWb3A3My53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A3Ny53ZWItcGxhdGZvcm0udGVzdIIWb3AxMi53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A1NC53ZWItcGxhdGZvcm0udGVzdIIWb3A2My53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A3MS53ZWItcGxhdGZvcm0udGVzdIIWb3A5NS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AxNi53ZWItcGxhdGZvcm0udGVzdIIWb3AzNi53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AyNy53ZWItcGxhdGZvcm0udGVzdIIWb3AyOS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A5NC53ZWItcGxhdGZvcm0udGVzdIIWb3A0NC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AzMy53ZWItcGxhdGZvcm0udGVzdIIWb3A4NC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AzMi53ZWItcGxhdGZvcm0udGVzdIIWb3A2MS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A3MC53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A0My53ZWItcGxhdGZvcm0udGVzdIIWb3A3OC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AyNi53ZWItcGxhdGZvcm0udGVzdIIWb3A3Ni53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A1Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A5OS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A4Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A0Ni53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AxNy53ZWItcGxhdGZvcm0udGVzdIIWb3A5MC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A5My53ZWItcGxhdGZvcm0udGVzdIIWb3AxMC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A1NS53ZWItcGxhdGZvcm0udGVzdIIWb3A0Ny53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A1MS53ZWItcGxhdGZvcm0udGVzdIIWb3A0NS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A4MC53ZWItcGxhdGZvcm0udGVzdIIWb3A2OC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A0OS53ZWItcGxhdGZvcm0udGVzdIIWb3A1Ny53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AzNS53ZWItcGxhdGZvcm0udGVzdIIWb3A2Ny53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A5Mi53ZWItcGxhdGZvcm0udGVzdIIWb3AxNS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AxMy53ZWItcGxhdGZvcm0udGVzdIIWb3A3NS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A2NC53ZWItcGxhdGZvcm0udGVzdIIWb3A5Ny53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AzNy53ZWItcGxhdGZvcm0udGVzdIIWb3A1Ni53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A2Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A4Mi53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AyNS53ZWItcGxhdGZvcm0udGVzdIIWb3AxMS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A1MC53ZWItcGxhdGZvcm0udGVzdIIWb3AzOC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A4My53ZWItcGxhdGZvcm0udGVzdIIWb3A4MS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AyMC53ZWItcGxhdGZvcm0udGVzdIIWb3AyMS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AyMy53ZWItcGxhdGZvcm0udGVzdIIWb3A0Mi53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AyMi53ZWItcGxhdGZvcm0udGVzdIIWb3A2NS53ZWIt
-cGxhdGZvcm0udGVzdIIWb3A5Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A4Ny53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AxOS53ZWItcGxhdGZvcm0udGVzdIIWb3A1My53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AzMC53ZWItcGxhdGZvcm0udGVzdIIWb3A0OC53ZWIt
-cGxhdGZvcm0udGVzdIIWb3AzNC53ZWItcGxhdGZvcm0udGVzdIIZb3A2Lm5vdC13
-ZWItcGxhdGZvcm0udGVzdIIZb3AzLm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3Ay
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A1Lm5vdC13ZWItcGxhdGZvcm0udGVz
-dIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZv
-cm0udGVzdIIZb3A3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A0Lm5vdC13ZWIt
-cGxhdGZvcm0udGVzdIIZb3A4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A5Lm5v
-dC13ZWItcGxhdGZvcm0udGVzdIIZb3AxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
-b3AzNi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTMubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDUwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AyNC5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGm9wMzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDk1
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A4My5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDczLm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3AxOS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjEubm90
</del><ins>+hjCCHYKCEXdlYi1wbGF0Zm9ybS50ZXN0ghVub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+FW9wMi53ZWItcGxhdGZvcm0udGVzdIIVd3d3LndlYi1wbGF0Zm9ybS50ZXN0ghVv
+cDMud2ViLXBsYXRmb3JtLnRlc3SCFW9wNi53ZWItcGxhdGZvcm0udGVzdIIVb3Ax
+LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDgud2ViLXBsYXRmb3JtLnRlc3SCFW9wOS53
+ZWItcGxhdGZvcm0udGVzdIIVb3A1LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDcud2Vi
+LXBsYXRmb3JtLnRlc3SCFW9wNC53ZWItcGxhdGZvcm0udGVzdIIWb3A3Ny53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AzNC53ZWItcGxhdGZvcm0udGVzdIIWb3A0OS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A0Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A5Ny53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AyOC53ZWItcGxhdGZvcm0udGVzdIIWb3AxNS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AzNi53ZWItcGxhdGZvcm0udGVzdIIWb3AzMS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A4OS53ZWItcGxhdGZvcm0udGVzdIIWb3A2NC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A3NC53ZWItcGxhdGZvcm0udGVzdIIWb3AyNi53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A4Mi53ZWItcGxhdGZvcm0udGVzdIIWb3AxNy53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A5My53ZWItcGxhdGZvcm0udGVzdIIWb3AxMS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AyMS53ZWItcGxhdGZvcm0udGVzdIIWb3A3MS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A5MS53ZWItcGxhdGZvcm0udGVzdIIWb3A0MS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AzMi53ZWItcGxhdGZvcm0udGVzdIIWb3AxMC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A3Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A0NS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A2My53ZWItcGxhdGZvcm0udGVzdIIWb3A3Ni53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A4NC53ZWItcGxhdGZvcm0udGVzdIIWb3A3NS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A3My53ZWItcGxhdGZvcm0udGVzdIIWb3A4NS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A2Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A2OC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A2MC53ZWItcGxhdGZvcm0udGVzdIIWb3A0My53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A0Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A1Mi53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A1MS53ZWItcGxhdGZvcm0udGVzdIIWb3AyMi53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AyMy53ZWItcGxhdGZvcm0udGVzdIIWb3A1NC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A2Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A1NS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AzMy53ZWItcGxhdGZvcm0udGVzdIIWb3AzOC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AzMC53ZWItcGxhdGZvcm0udGVzdIIWb3A2MS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A5MC53ZWItcGxhdGZvcm0udGVzdIIWb3AxOC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A1MC53ZWItcGxhdGZvcm0udGVzdIIWb3AxOS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AyMC53ZWItcGxhdGZvcm0udGVzdIIWb3AyNy53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A1Ny53ZWItcGxhdGZvcm0udGVzdIIWb3A5NS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A3OS53ZWItcGxhdGZvcm0udGVzdIIWb3A4My53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A5NC53ZWItcGxhdGZvcm0udGVzdIIWb3AxMi53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A5OC53ZWItcGxhdGZvcm0udGVzdIIWb3AyOS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A3MC53ZWItcGxhdGZvcm0udGVzdIIWb3A4MC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AxNC53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A4OC53ZWItcGxhdGZvcm0udGVzdIIWb3AzNS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A5OS53ZWItcGxhdGZvcm0udGVzdIIWb3AyNC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A1Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A1My53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A1OS53ZWItcGxhdGZvcm0udGVzdIIWb3A3OC53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A4Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A4Ny53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A2OS53ZWItcGxhdGZvcm0udGVzdIIWb3A4MS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A2Ny53ZWItcGxhdGZvcm0udGVzdIIWb3AzNy53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A0OC53ZWItcGxhdGZvcm0udGVzdIIWb3A5Mi53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AzOS53ZWItcGxhdGZvcm0udGVzdIIWb3AxMy53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AxNi53ZWItcGxhdGZvcm0udGVzdIIWb3A5Ni53ZWIt
+cGxhdGZvcm0udGVzdIIWb3AyNS53ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A1OC53ZWItcGxhdGZvcm0udGVzdIIWb3A0Ny53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A0MC53ZWItcGxhdGZvcm0udGVzdIIWb3A2NS53ZWIt
+cGxhdGZvcm0udGVzdIIWb3A0NC53ZWItcGxhdGZvcm0udGVzdIIZb3AzLm5vdC13
+ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A5
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVz
+dIIZb3A1Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A3Lm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIZb3A4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A2Lm5vdC13ZWIt
+cGxhdGZvcm0udGVzdIIZb3AxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A0Lm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIZb3AyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
+b3A4Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMTYubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDk4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3Ny5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDUy
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5MS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGm9wMzUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI3Lm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3AxNy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wODgubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDcxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
+b3A1My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjgubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDQyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3Ni5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGm9wODQubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDg2
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5Ni5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghpvcDYwLm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3A4MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzMubm90
</ins><span class="cx"> LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDgxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
</span><del>-b3A3MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzgubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDQwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AyNS5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGm9wNjUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cu
-d3d3Mi53ZWItcGxhdGZvcm0udGVzdIIab3A4MC5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCGm9wNTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDY4Lm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3A0NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzEubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDcyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
-b3A5MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wODkubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDQ5Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3Ny5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGm9wNzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDgy
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3Lnd3dzEud2ViLXBsYXRmb3JtLnRl
-c3SCGm9wMTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM5Lm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3A0NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
-b3AxNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzAubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDYyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2MS5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGm9wOTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI5
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5OC5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCGm9wNjQubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI2Lm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3AyMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wOTQubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
-b3AzMy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjMubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDU3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1NC5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGm9wODUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQ2
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5Ny5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCGm9wMzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDYwLm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3A5Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTEubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
-b3AzNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wOTkubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDQyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2Ny5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGm9wMzcubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQ4
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1NS5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCGm9wNTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDg0Lm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3AzNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjkubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDExLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
-b3A5My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3LndlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDg2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AxMy5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGm9wMjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDc2
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AyNy5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCGm9wMTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDc1Lm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3AxNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNDcubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
-b3A2My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjgubm90LXdlYi1wbGF0Zm9y
-bS50ZXN0ghpvcDQzLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2Ni5ub3Qtd2Vi
-LXBsYXRmb3JtLnRlc3SCGnd3dzIud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghpvcDkx
-Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3NC5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCGm9wNTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDg4Lm5vdC13ZWItcGxh
-dGZvcm0udGVzdIIab3A4Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMTAubm90
-LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIb
-d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cyLnd3dzIud2ViLXBsYXRm
-b3JtLnRlc3SCG3d3dzIud3d3MS53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cx
</del><ins>+b3A1OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wOTQubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDQ0Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0NS5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM4
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A4NS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGm9wMzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI1Lm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3A2OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTYubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLnd3dy53ZWItcGxhdGZvcm0udGVzdIIa
+b3AzNi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjQubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDI5Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1OC5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGm9wOTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI2
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AxOS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGm9wMzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDY0Lm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3A2NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjIubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU1Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
+b3AxMy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNDkubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDkzLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0Ny5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGm9wNzQubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDEx
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3OC5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGm9wOTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU3Lm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3AyMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dy53d3cy
+LndlYi1wbGF0Zm9ybS50ZXN0ghpvcDIyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
+b3AzMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzcubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDcwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AxMC5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGm9wNzUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDMz
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1MS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGm9wNDAubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM0Lm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3AyOC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNDgubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDIwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
+b3A5Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjMubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDcyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0My5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGm9wODIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDkw
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A4OS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGm9wOTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDY3Lm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3A1MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjYubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cud3d3MS53ZWItcGxhdGZvcm0udGVzdIIa
+b3A2My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMTQubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0ghpvcDEyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1NC5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCGm9wODMubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE4
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AzMC5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCGm9wNDYubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE1Lm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIab3A3OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjEubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIb
+d3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cyLnd3dzIud2ViLXBsYXRm
+b3JtLnRlc3SCG3d3dzIud3d3MS53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cy
</ins><span class="cx"> LndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
</span><del>-dIIeeG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gh53d3cxLnd3dy5ub3Qt
-d2ViLXBsYXRmb3JtLnRlc3SCHnd3dy53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVz
-dIIed3d3Mi53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qt
-d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
-c3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5u
-b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3Jt
</del><ins>+dIIed3d3Mi53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3Mi5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCHnd3dy53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVz
+dIIed3d3MS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh54bi0tbHZlLTZsYWQu
+d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5u
+b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
</ins><span class="cx"> LnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1s
</span><span class="cx"> dmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZsYWQu
</span><del>-d2ViLXBsYXRmb3JtLnRlc3SCI3d3dzIueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9y
-bS50ZXN0giN4bi0tbHZlLTZsYWQud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIjeG4t
-LWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCI3d3dzEueG4tLWx2ZS02
-bGFkLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt
</del><ins>+d2ViLXBsYXRmb3JtLnRlc3SCI3d3dzEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9y
+bS50ZXN0giN4bi0tbHZlLTZsYWQud3d3MS53ZWItcGxhdGZvcm0udGVzdIIjd3d3
+Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53
+d3cyLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt
</ins><span class="cx"> cGxhdGZvcm0udGVzdIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3Jt
</span><del>-LnRlc3SCJ3huLS1sdmUtNmxhZC53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
-d3d3Mi54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cxLnhu
-LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
-d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
</del><ins>+LnRlc3SCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
+eG4tLWx2ZS02bGFkLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cyLnhu
+LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3d3dzEueG4tLWx2ZS02
+bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
</ins><span class="cx"> OGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
</span><del>-d2ViLXBsYXRmb3JtLnRlc3SCLXd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53
-ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdl
-Yi1wbGF0Zm9ybS50ZXN0gi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cud2Vi
</del><ins>+d2ViLXBsYXRmb3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13
+ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Lndl
+Yi1wbGF0Zm9ybS50ZXN0gi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
</ins><span class="cx"> LXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
</span><del>-LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2Vi
</del><span class="cx"> LXBsYXRmb3