<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>26544</bug_id>
          
          <creation_ts>2009-06-19 09:42:58 -0700</creation_ts>
          <short_desc>Transition animation fails to render correctly at http://www.ferretarmy.com/ (singular matrices)</short_desc>
          <delta_ts>2009-06-19 15:43:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.ferretarmy.com/files/css-animation/test1/test1.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126946</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-19 09:42:58 -0700</bug_when>
    <thetext>Transition animation fails to rendered correctly at http://www.ferretarmy.com/files/css-animation/test1/test1.html. Reproduces on TOT or Webkit nightly ( r44702) under SL 10A386 with a Mac Book Pro ( late 2008 )

* STEPS TO REPRODUCE
1. Launch TOT or Webkit nightly ( r44702) under SL 10A386
2. Go to http://www.ferretarmy.com/files/css-animation/test1/test1.html
3. Click on on page to start the animation.  The animation SHOULD display a series of green blocks falling and rotating slightly as they drop to bottom of browser window. Instead, you see the green blocks remain stationery on the page and scale to (0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126947</commentid>
    <comment_count>1</comment_count>
      <attachid>31547</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-19 09:45:59 -0700</bug_when>
    <thetext>Created attachment 31547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126969</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-19 11:25:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/6978323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126985</commentid>
    <comment_count>3</comment_count>
      <attachid>31547</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-19 11:50:26 -0700</bug_when>
    <thetext>Comment on attachment 31547
Patch

&gt; Index: WebCore/platform/graphics/mac/GraphicsLayerCA.mm
&gt; ===================================================================
&gt; --- WebCore/platform/graphics/mac/GraphicsLayerCA.mm	(revision 44828)
&gt; +++ WebCore/platform/graphics/mac/GraphicsLayerCA.mm	(working copy)
&gt; @@ -981,6 +981,15 @@ bool GraphicsLayerCA::animateTransform(c
&gt;                  if (isMatrixAnimation) {
&gt;                      TransformationMatrix t;
&gt;                      curValue.value()-&gt;apply(size, t);
&gt; +                    
&gt; +                    // If any matrix is singular, CA won&apos;t animate it correctly. So fall back to software animation
&gt; +                    if (!t.isInvertible()) {
&gt; +                        [timesArray release];
&gt; +                        [valArray release];
&gt; +                        [tfArray release];
&gt; +                        return false;
&gt; +                    }

Maybe use OwnPtrs for those arrays so we don&apos;t have to worry about releasing them?

Also, you can&apos;t return here without END_BLOCK_OBJC_EXCEPTIONS. I&apos;d prefer a &apos;break&apos; out of the loop, to avoid additional returns from this method.

&gt;                      CATransform3D cat;
&gt;                      copyTransform(cat, t);
&gt;                      [valArray addObject:[NSValue valueWithCATransform3D:cat]];
&gt; @@ -1004,6 +1013,12 @@ bool GraphicsLayerCA::animateTransform(c
&gt;                  TransformationMatrix fromt, tot;
&gt;                  valueList.at(0).value()-&gt;apply(size, fromt);
&gt;                  valueList.at(1).value()-&gt;apply(size, tot);
&gt; +
&gt; +                // If any matrix is singular, CA won&apos;t animate it correctly. So fall back to software animation
&gt; +                if (!fromt.isInvertible())
&gt; +                    return false;
&gt; +                if (!tot.isInvertible())
&gt; +                    return false;

Same issue about returning without END_BLOCK_OBJC_EXCEPTIONS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127029</commentid>
    <comment_count>4</comment_count>
      <attachid>31562</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-19 13:53:26 -0700</bug_when>
    <thetext>Created attachment 31562
Replacement patch

Incorporates changes from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127048</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-19 15:43:49 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/platform/graphics/mac/GraphicsLayerCA.mm
Transmitting file data ..
Committed revision 44878.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31547</attachid>
            <date>2009-06-19 09:45:59 -0700</date>
            <delta_ts>2009-06-19 13:53:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>26544.patch</filename>
            <type>text/plain</type>
            <size>2371</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDYtMTkgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjU0NAorCisgICAgICAgIElm
IEkgYW0gZG9pbmcgYSBNYXRyaXggaGFyZHdhcmUgYW5pbWF0aW9uIGFuZCBhbnkgbWF0cml4IGlz
IHNpbmd1bGFyLCBJIHJldmVydCB0byBzb2Z0d2FyZS4KKyAgICAgICAgVGhpcyBpcyBub3QgcmVh
bGx5IHRlc3RhYmxlLCBzaW5jZSB3ZSBjYW4ndCBzZWUgd2hhdCB0aGUgaGFyZHdhcmUgYW5pbWF0
aW9uIGlzIGRvaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
TGF5ZXJDQS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0ZVRy
YW5zZm9ybSk6CisKIDIwMDktMDYtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQkocmV2
aXNpb24gNDQ4MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xh
eWVyQ0EubW0JKHdvcmtpbmcgY29weSkKQEAgLTk4MSw2ICs5ODEsMTUgQEAgYm9vbCBHcmFwaGlj
c0xheWVyQ0E6OmFuaW1hdGVUcmFuc2Zvcm0oYwogICAgICAgICAgICAgICAgIGlmIChpc01hdHJp
eEFuaW1hdGlvbikgewogICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0
OwogICAgICAgICAgICAgICAgICAgICBjdXJWYWx1ZS52YWx1ZSgpLT5hcHBseShzaXplLCB0KTsK
KyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIElmIGFueSBtYXRy
aXggaXMgc2luZ3VsYXIsIENBIHdvbid0IGFuaW1hdGUgaXQgY29ycmVjdGx5LiBTbyBmYWxsIGJh
Y2sgdG8gc29mdHdhcmUgYW5pbWF0aW9uCisgICAgICAgICAgICAgICAgICAgIGlmICghdC5pc0lu
dmVydGlibGUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgW3RpbWVzQXJyYXkgcmVsZWFz
ZV07CisgICAgICAgICAgICAgICAgICAgICAgICBbdmFsQXJyYXkgcmVsZWFzZV07CisgICAgICAg
ICAgICAgICAgICAgICAgICBbdGZBcnJheSByZWxlYXNlXTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgQ0FUcmFuc2Zvcm0zRCBjYXQ7CiAgICAgICAgICAg
ICAgICAgICAgIGNvcHlUcmFuc2Zvcm0oY2F0LCB0KTsKICAgICAgICAgICAgICAgICAgICAgW3Zh
bEFycmF5IGFkZE9iamVjdDpbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmNhdF1dOwpA
QCAtMTAwNCw2ICsxMDEzLDEyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphbmltYXRlVHJhbnNm
b3JtKGMKICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBmcm9tdCwgdG90Owog
ICAgICAgICAgICAgICAgIHZhbHVlTGlzdC5hdCgwKS52YWx1ZSgpLT5hcHBseShzaXplLCBmcm9t
dCk7CiAgICAgICAgICAgICAgICAgdmFsdWVMaXN0LmF0KDEpLnZhbHVlKCktPmFwcGx5KHNpemUs
IHRvdCk7CisKKyAgICAgICAgICAgICAgICAvLyBJZiBhbnkgbWF0cml4IGlzIHNpbmd1bGFyLCBD
QSB3b24ndCBhbmltYXRlIGl0IGNvcnJlY3RseS4gU28gZmFsbCBiYWNrIHRvIHNvZnR3YXJlIGFu
aW1hdGlvbgorICAgICAgICAgICAgICAgIGlmICghZnJvbXQuaXNJbnZlcnRpYmxlKCkpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvdC5p
c0ludmVydGlibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIENBVHJhbnNmb3JtM0QgY2F0OwogICAgICAgICAg
ICAgICAgIGNvcHlUcmFuc2Zvcm0oY2F0LCBmcm9tdCk7Cg==
</data>
<flag name="review"
          id="16186"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31562</attachid>
            <date>2009-06-19 13:53:26 -0700</date>
            <delta_ts>2009-06-19 14:02:27 -0700</delta_ts>
            <desc>Replacement patch</desc>
            <filename>26544.patch</filename>
            <type>text/plain</type>
            <size>9111</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDYtMTkgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjU0NAorCisgICAgICAgIElm
IEkgYW0gZG9pbmcgYSBNYXRyaXggaGFyZHdhcmUgYW5pbWF0aW9uIGFuZCBhbnkgbWF0cml4IGlz
IHNpbmd1bGFyLCBJIHJldmVydCB0byBzb2Z0d2FyZS4KKyAgICAgICAgVGhpcyBpcyBub3QgcmVh
bGx5IHRlc3RhYmxlLCBzaW5jZSB3ZSBjYW4ndCBzZWUgd2hhdCB0aGUgaGFyZHdhcmUgYW5pbWF0
aW9uIGlzIGRvaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
TGF5ZXJDQS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0ZVRy
YW5zZm9ybSk6CisKIDIwMDktMDYtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQkocmV2
aXNpb24gNDQ4NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xh
eWVyQ0EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBvcnQgIldlYlRp
bGVkTGF5ZXIuaCIKICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL1Vu
dXNlZFBhcmFtLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKQEAgLTkyOSw2ICs5MzAsOCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0
ZVRyYW5zZm9ybShjCiAgICAgaWYgKChoYXNCaWdSb3RhdGlvbiB8fCBmdW5jdGlvbkxpc3Quc2l6
ZSgpID4gMSkgJiYgIWNhVmFsdWVGdW5jdGlvblN1cHBvcnRlZCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCisgICAgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKKyAgICAKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKICAgICAvLyBSdWxlcyBmb3IgYW5pbWF0aW9uOgpA
QCAtOTU3LDE2ICs5NjAsMTYgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGVUcmFuc2Zv
cm0oYwogICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgb3BUeXBlID0g
aXNNYXRyaXhBbmltYXRpb24gPyBUcmFuc2Zvcm1PcGVyYXRpb246Ok1BVFJJWF8zRCA6IGZ1bmN0
aW9uTGlzdFtmdW5jdGlvbkluZGV4XTsKIAogICAgICAgICBpZiAoaXNLZXlmcmFtZSkgewotICAg
ICAgICAgICAgTlNNdXRhYmxlQXJyYXkqIHRpbWVzQXJyYXkgPSBbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XTsKLSAgICAgICAgICAgIE5TTXV0YWJsZUFycmF5KiB2YWxBcnJheSA9IFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOwotICAgICAgICAgICAgTlNNdXRhYmxlQXJyYXkqIHRm
QXJyYXkgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKKyAgICAgICAgICAgIFJldGFp
blB0cjxOU011dGFibGVBcnJheT4gdGltZXNBcnJheShBZG9wdE5TLCBbW05TTXV0YWJsZUFycmF5
IGFsbG9jXSBpbml0XSk7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHZh
bEFycmF5KEFkb3B0TlMsIFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAg
ICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdGZBcnJheShBZG9wdE5TLCBbW05TTXV0YWJs
ZUFycmF5IGFsbG9jXSBpbml0XSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIEl0ZXJh
dGUgdGhyb3VnaCB0aGUga2V5ZnJhbWVzLCBidWlsZGluZyBhcnJheXMgZm9yIHRoZSBhbmltYXRp
b24uCiAgICAgICAgICAgICBmb3IgKFZlY3RvcjxUcmFuc2Zvcm1WYWx1ZT46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gdmFsdWVMaXN0LnZhbHVlcygpLmJlZ2luKCk7IGl0ICE9IHZhbHVlTGlzdC52YWx1
ZXMoKS5lbmQoKTsgKytpdCkgewogICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybVZhbHVl
JiBjdXJWYWx1ZSA9ICgqaXQpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8v
IGZpbGwgaW4gdGhlIGtleSB0aW1lIGFuZCB0aW1pbmcgZnVuY3Rpb24KLSAgICAgICAgICAgICAg
ICBbdGltZXNBcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhGbG9hdDpjdXJWYWx1
ZS5rZXkoKV1dOworICAgICAgICAgICAgICAgIFt0aW1lc0FycmF5LmdldCgpIGFkZE9iamVjdDpb
TlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OmN1clZhbHVlLmtleSgpXV07CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRmID0gMDsKICAgICAg
ICAgICAgICAgICBpZiAoY3VyVmFsdWUudGltaW5nRnVuY3Rpb24oKSkKQEAgLTk3NSwyNyArOTc4
LDMyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphbmltYXRlVHJhbnNmb3JtKGMKICAgICAgICAg
ICAgICAgICAgICAgdGYgPSAmYW5pbS0+dGltaW5nRnVuY3Rpb24oKTsKICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9u
ID0gZ2V0Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHRmID8gKnRmIDogVGltaW5nRnVuY3Rpb24oTGlu
ZWFyVGltaW5nRnVuY3Rpb24pKTsKLSAgICAgICAgICAgICAgICBbdGZBcnJheSBhZGRPYmplY3Q6
dGltaW5nRnVuY3Rpb25dOworICAgICAgICAgICAgICAgIFt0ZkFycmF5LmdldCgpIGFkZE9iamVj
dDp0aW1pbmdGdW5jdGlvbl07CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgLy8g
ZmlsbCBpbiB0aGUgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBpZiAoaXNNYXRyaXhBbmltYXRp
b24pIHsKICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAg
ICAgICAgICAgICAgICAgY3VyVmFsdWUudmFsdWUoKS0+YXBwbHkoc2l6ZSwgdCk7CisgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBJZiBhbnkgbWF0cml4IGlzIHNp
bmd1bGFyLCBDQSB3b24ndCBhbmltYXRlIGl0IGNvcnJlY3RseS4gU28gZmFsbCBiYWNrIHRvIHNv
ZnR3YXJlIGFuaW1hdGlvbgorICAgICAgICAgICAgICAgICAgICBpZiAoIXQuaXNJbnZlcnRpYmxl
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBDQVRyYW5zZm9ybTNEIGNhdDsKICAgICAg
ICAgICAgICAgICAgICAgY29weVRyYW5zZm9ybShjYXQsIHQpOwotICAgICAgICAgICAgICAgICAg
ICBbdmFsQXJyYXkgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Y2F0
XV07CisgICAgICAgICAgICAgICAgICAgIFt2YWxBcnJheS5nZXQoKSBhZGRPYmplY3Q6W05TVmFs
dWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpjYXRdXTsKICAgICAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgW3ZhbEFycmF5IGFkZE9iamVjdDpnZXRUcmFuc2Zvcm1GdW5j
dGlvblZhbHVlKGN1clZhbHVlLCBmdW5jdGlvbkluZGV4LCBzaXplLCBvcFR5cGUpXTsKKyAgICAg
ICAgICAgICAgICAgICAgW3ZhbEFycmF5LmdldCgpIGFkZE9iamVjdDpnZXRUcmFuc2Zvcm1GdW5j
dGlvblZhbHVlKGN1clZhbHVlLCBmdW5jdGlvbkluZGV4LCBzaXplLCBvcFR5cGUpXTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgLy8gV2UgdG9zcyB0aGUgbGFzdCB0
ZkFycmF5IHZhbHVlIGJlY2F1c2UgaXQgaGFzIHRvIG9uZSBzaG9ydGVyIHRoYW4gdGhlIG90aGVy
cy4KLSAgICAgICAgICAgIFt0ZkFycmF5IHJlbW92ZUxhc3RPYmplY3RdOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBzZXRLZXlmcmFtZUFuaW1hdGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0
VHJhbnNmb3JtLCBvcFR5cGUsIGZ1bmN0aW9uSW5kZXgsIHRpbWVzQXJyYXksIHZhbEFycmF5LCB0
ZkFycmF5LCBpc1RyYW5zaXRpb24sIGFuaW0sIGJlZ2luVGltZSk7CisgICAgICAgICAgICBpZiAo
c3VjY2VzcykgeworICAgICAgICAgICAgICAgIC8vIFdlIHRvc3MgdGhlIGxhc3QgdGZBcnJheSB2
YWx1ZSBiZWNhdXNlIGl0IGhhcyB0byBiZSBvbmUgc2hvcnRlciB0aGFuIHRoZSBvdGhlcnMuCisg
ICAgICAgICAgICAgICAgW3RmQXJyYXkuZ2V0KCkgcmVtb3ZlTGFzdE9iamVjdF07CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIFt0aW1lc0FycmF5IHJlbGVhc2VdOwotICAgICAgICAgICAgW3Zh
bEFycmF5IHJlbGVhc2VdOwotICAgICAgICAgICAgW3RmQXJyYXkgcmVsZWFzZV07CisgICAgICAg
ICAgICAgICAgc2V0S2V5ZnJhbWVBbmltYXRpb24oQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5z
Zm9ybSwgb3BUeXBlLCBmdW5jdGlvbkluZGV4LCB0aW1lc0FycmF5LmdldCgpLCB2YWxBcnJheS5n
ZXQoKSwgdGZBcnJheS5nZXQoKSwgaXNUcmFuc2l0aW9uLCBhbmltLCBiZWdpblRpbWUpOworICAg
ICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gSXMgYSB0cmFuc2l0
aW9uCiAgICAgICAgICAgICBpZCBmcm9tVmFsdWUsIHRvVmFsdWU7CkBAIC0xMDA0LDE4ICsxMDEy
LDI0IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphbmltYXRlVHJhbnNmb3JtKGMKICAgICAgICAg
ICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBmcm9tdCwgdG90OwogICAgICAgICAgICAgICAg
IHZhbHVlTGlzdC5hdCgwKS52YWx1ZSgpLT5hcHBseShzaXplLCBmcm9tdCk7CiAgICAgICAgICAg
ICAgICAgdmFsdWVMaXN0LmF0KDEpLnZhbHVlKCktPmFwcGx5KHNpemUsIHRvdCk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgQ0FUcmFuc2Zvcm0zRCBjYXQ7Ci0gICAgICAgICAg
ICAgICAgY29weVRyYW5zZm9ybShjYXQsIGZyb210KTsKLSAgICAgICAgICAgICAgICBmcm9tVmFs
dWUgPSBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmNhdF07Ci0gICAgICAgICAgICAg
ICAgY29weVRyYW5zZm9ybShjYXQsIHRvdCk7Ci0gICAgICAgICAgICAgICAgdG9WYWx1ZSA9IFtO
U1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Y2F0XTsKKworICAgICAgICAgICAgICAgIC8v
IElmIGFueSBtYXRyaXggaXMgc2luZ3VsYXIsIENBIHdvbid0IGFuaW1hdGUgaXQgY29ycmVjdGx5
LiBTbyBmYWxsIGJhY2sgdG8gc29mdHdhcmUgYW5pbWF0aW9uCisgICAgICAgICAgICAgICAgaWYg
KCFmcm9tdC5pc0ludmVydGlibGUoKSB8fCAhdG90LmlzSW52ZXJ0aWJsZSgpKQorICAgICAgICAg
ICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIENBVHJhbnNmb3JtM0QgY2F0OworICAgICAgICAgICAgICAgICAgICBj
b3B5VHJhbnNmb3JtKGNhdCwgZnJvbXQpOworICAgICAgICAgICAgICAgICAgICBmcm9tVmFsdWUg
PSBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmNhdF07CisgICAgICAgICAgICAgICAg
ICAgIGNvcHlUcmFuc2Zvcm0oY2F0LCB0b3QpOworICAgICAgICAgICAgICAgICAgICB0b1ZhbHVl
ID0gW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpjYXRdOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZnJvbVZhbHVlID0gZ2V0
VHJhbnNmb3JtRnVuY3Rpb25WYWx1ZSh2YWx1ZUxpc3QuYXQoMCksIGZ1bmN0aW9uSW5kZXgsIHNp
emUsIG9wVHlwZSk7CiAgICAgICAgICAgICAgICAgdG9WYWx1ZSA9IGdldFRyYW5zZm9ybUZ1bmN0
aW9uVmFsdWUodmFsdWVMaXN0LmF0KDEpLCBmdW5jdGlvbkluZGV4LCBzaXplLCBvcFR5cGUpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXRCYXNpY0FuaW1hdGlv
bihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtLCBvcFR5cGUsIGZ1bmN0aW9uSW5kZXgs
IGZyb21WYWx1ZSwgdG9WYWx1ZSwgaXNUcmFuc2l0aW9uLCBhbmltLCBiZWdpblRpbWUpOworICAg
ICAgICAgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgICAgICAgICAgc2V0QmFzaWNBbmltYXRpb24o
QW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSwgb3BUeXBlLCBmdW5jdGlvbkluZGV4LCBm
cm9tVmFsdWUsIHRvVmFsdWUsIGlzVHJhbnNpdGlvbiwgYW5pbSwgYmVnaW5UaW1lKTsKICAgICAg
ICAgfQogICAgICAgICAKICAgICAgICAgaWYgKGlzTWF0cml4QW5pbWF0aW9uKQpAQCAtMTAyMyw3
ICsxMDM3LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGVUcmFuc2Zvcm0oYwogICAg
IH0KIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICByZXR1cm4gc3VjY2VzczsKIH0KIAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGVGbG9h
dChBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHksIGNvbnN0IEZsb2F0VmFsdWVMaXN0JiB2YWx1
ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBkb3VibGUgYmVnaW5UaW1lKQpAQCAt
MTA1MiwxNCArMTA2NiwxNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0ZUZsb2F0KEFu
aW1hCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKLSAgICBOU011dGFi
bGVBcnJheSogdGltZXNBcnJheSA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOwotICAg
IE5TTXV0YWJsZUFycmF5KiB2YWxBcnJheSA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRd
OwotICAgIE5TTXV0YWJsZUFycmF5KiB0ZkFycmF5ID0gW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdF07CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiB0aW1lc0FycmF5KEFkb3B0TlMs
IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
QXJyYXk+IHZhbEFycmF5KEFkb3B0TlMsIFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsK
KyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHRmQXJyYXkoQWRvcHROUywgW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF0pOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHZh
bHVlTGlzdC52YWx1ZXMoKS5zaXplKCk7ICsraSkgewogICAgICAgICBjb25zdCBGbG9hdFZhbHVl
JiBjdXJWYWx1ZSA9IHZhbHVlTGlzdC52YWx1ZXMoKVtpXTsKLSAgICAgICAgW3RpbWVzQXJyYXkg
YWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6Y3VyVmFsdWUua2V5KCldXTsKLSAg
ICAgICAgW3ZhbEFycmF5IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OmN1clZh
bHVlLnZhbHVlKCldXTsKKyAgICAgICAgW3RpbWVzQXJyYXkuZ2V0KCkgYWRkT2JqZWN0OltOU051
bWJlciBudW1iZXJXaXRoRmxvYXQ6Y3VyVmFsdWUua2V5KCldXTsKKyAgICAgICAgW3ZhbEFycmF5
LmdldCgpIGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OmN1clZhbHVlLnZhbHVl
KCldXTsKIAogICAgICAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGYgPSAwOwogICAgICAgICBp
ZiAoY3VyVmFsdWUudGltaW5nRnVuY3Rpb24oKSkKQEAgLTEwNjgsMjAgKzEwODIsMTYgQEAgYm9v
bCBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGVGbG9hdChBbmltYQogICAgICAgICAgICAgdGYgPSAm
YW5pbWF0aW9uLT50aW1pbmdGdW5jdGlvbigpOwogCiAgICAgICAgIENBTWVkaWFUaW1pbmdGdW5j
dGlvbiogdGltaW5nRnVuY3Rpb24gPSBnZXRDQU1lZGlhVGltaW5nRnVuY3Rpb24odGYgPyAqdGYg
OiBUaW1pbmdGdW5jdGlvbigpKTsKLSAgICAgICAgW3RmQXJyYXkgYWRkT2JqZWN0OnRpbWluZ0Z1
bmN0aW9uXTsKKyAgICAgICAgW3RmQXJyYXkuZ2V0KCkgYWRkT2JqZWN0OnRpbWluZ0Z1bmN0aW9u
XTsKICAgICB9CiAgICAgCiAgICAgLy8gV2UgdG9zcyB0aGUgbGFzdCB0ZkFycmF5IHZhbHVlIGJl
Y2F1c2UgaXQgaGFzIHRvIG9uZSBzaG9ydGVyIHRoYW4gdGhlIG90aGVycy4KLSAgICBbdGZBcnJh
eSByZW1vdmVMYXN0T2JqZWN0XTsKKyAgICBbdGZBcnJheS5nZXQoKSByZW1vdmVMYXN0T2JqZWN0
XTsKICAgICAKICAgICAvLyBJbml0aWFsaXplIHRoZSBwcm9wZXJ0eSB0byAwLgogICAgIFthbmlt
YXRlZExheWVyKHByb3BlcnR5KSBzZXRWYWx1ZTowIGZvcktleVBhdGg6cHJvcGVydHlJZFRvU3Ry
aW5nKHByb3BlcnR5KV07CiAgICAgLy8gVGhlbiBzZXQgdGhlIGFuaW1hdGlvbi4KLSAgICBzZXRL
ZXlmcmFtZUFuaW1hdGlvbihwcm9wZXJ0eSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpOT05FLCAwLCB0
aW1lc0FycmF5LCB2YWxBcnJheSwgdGZBcnJheSwgZmFsc2UsIGFuaW1hdGlvbiwgYmVnaW5UaW1l
KTsKLQotICAgIFt0aW1lc0FycmF5IHJlbGVhc2VdOwotICAgIFt2YWxBcnJheSByZWxlYXNlXTsK
LSAgICBbdGZBcnJheSByZWxlYXNlXTsKKyAgICBzZXRLZXlmcmFtZUFuaW1hdGlvbihwcm9wZXJ0
eSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpOT05FLCAwLCB0aW1lc0FycmF5LmdldCgpLCB2YWxBcnJh
eS5nZXQoKSwgdGZBcnJheS5nZXQoKSwgZmFsc2UsIGFuaW1hdGlvbiwgYmVnaW5UaW1lKTsKIAog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gdHJ1ZTsK
</data>
<flag name="review"
          id="16199"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>