<?xml version="1.0" encoding="Windows-1252"?>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     style="background: red;">
  <defs>
     <symbol id="sym1">
       <rect width="100" height="100" fill="lime" />
    </symbol>
  </defs>
  <rect width="100%" height="100%" fill="lime"/>
  <rect width="100" height="100" fill="red" />
  <use id="u" xlink:href="#sym1" width="1" />
  <script type="text/javascript">

    function doTest() {
      document.getElementById("u").setAttribute("width", "100");
      document.documentElement.removeAttribute('class');
      if (window.testRunner)
        testRunner.notifyDone();
    }

    if (window.testRunner)
      testRunner.waitUntilDone();

    setTimeout(doTest, 100);
    
</script>
</svg>
