<?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>89937</bug_id>
          
          <creation_ts>2012-06-25 19:27:25 -0700</creation_ts>
          <short_desc>[Qt] Use premultiplied alpha when extracting image data in WebGL</short_desc>
          <delta_ts>2012-06-26 15:51:57 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>dongseong.hwang</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>657184</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-25 19:27:25 -0700</bug_when>
    <thetext>In GraphicsContext3DQt, we convert the native QPixmap to QImage::Format_ARGB32, and then pass AlphaDoPremultiply as an argument to packPixels.
This means that if the image was originally premultiplied, the code path would convert it to unpremultiplied and then back to premultiplied.
Instead, we should use QImage::Format_ARGB32_Premultiplied when premultiplyAlpha is true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657195</commentid>
    <comment_count>1</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-25 19:38:00 -0700</bug_when>
    <thetext>This bug may solve itself with Bug 89938.

GraphicsContext3D::extractImageData causes strange message with specific png files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657197</commentid>
    <comment_count>2</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-25 19:40:08 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; This bug may solve itself with Bug 89938.
&gt; 
&gt; GraphicsContext3D::extractImageData causes strange message with specific png files.

hmm... not sure they&apos;re related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657557</commentid>
    <comment_count>3</comment_count>
      <attachid>149519</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-26 06:10:13 -0700</bug_when>
    <thetext>Created attachment 149519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657571</commentid>
    <comment_count>4</comment_count>
      <attachid>149519</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-06-26 06:38:08 -0700</bug_when>
    <thetext>Comment on attachment 149519
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=149519&amp;action=review

&gt; Source/WebCore/ChangeLog:14
&gt; +        Covered by existing WebGL pixel tests.

Any chance of naming them, for reference in the ChangeLog? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657588</commentid>
    <comment_count>5</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-06-26 07:03:25 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=149519&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        Format_ARB32_Premultiplied instead of converting it to ARGB32 and then letting

ARB32 -&gt; ARGB32

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:503
&gt; +    qtImage = qtImage.convertToFormat(premultiplyAlpha ? QImage::Format_ARGB32_Premultiplied : QImage::Format_ARGB32);

Won&apos;t this cause an extra conversion if the source image is, on the opposite, already in Format_ARGB32?
The cost of AlphaDoPremultiply should be pretty low as packPixel already has to convert from BGRA to ARGB and the data is in the CPU cache at the moment of the pre-multiplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657637</commentid>
    <comment_count>6</comment_count>
      <attachid>149542</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-26 09:12:25 -0700</bug_when>
    <thetext>Created attachment 149542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657669</commentid>
    <comment_count>7</comment_count>
      <attachid>149542</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-06-26 09:52:17 -0700</bug_when>
    <thetext>Comment on attachment 149542
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=149542&amp;action=review

&gt; Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:520
&gt; +    switch (qtImage.format()) {
&gt; +    case QImage::Format_ARGB32:
&gt; +        if (premultiplyAlpha)
&gt; +            alphaOp = AlphaDoPremultiply;
&gt; +        break;
&gt; +    case QImage::Format_ARGB32_Premultiplied:
&gt; +        if (!premultiplyAlpha)
&gt; +            alphaOp = AlphaDoUnmultiply;
&gt; +        break;
&gt; +    default:
&gt; +        // The image has a format that is not supported in packPixels. We have to convert it here.
&gt; +        qtImage = qtImage.convertToFormat(premultiplyAlpha ? QImage::Format_ARGB32_Premultiplied : QImage::Format_ARGB32);
&gt; +        break;
&gt; +    }

Wouldn&apos;t if/else look cleaner?

if (qtImage.format() == QImage::Format_ARGB32 &amp;&amp; premultiplyAlpha)
    alphaOp = AlphaDoPremultiply;
else if (qtImage.format() == QImage::Format_ARGB32_Premultiplied &amp;&amp; !premultiplyAlpha)
    alphaOp = AlphaDoUnmultiply;
else
    // The image has a format that is not supported in packPixels. We have to convert it here.
    qtImage = qtImage.convertToFormat(premultiplyAlpha ? QImage::Format_ARGB32_Premultiplied : QImage::Format_ARGB32);

r=me in any case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657674</commentid>
    <comment_count>8</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-06-26 09:55:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Wouldn&apos;t if/else look cleaner?
&gt; 
&gt; if (qtImage.format() == QImage::Format_ARGB32 &amp;&amp; premultiplyAlpha)
&gt;     alphaOp = AlphaDoPremultiply;
&gt; else if (qtImage.format() == QImage::Format_ARGB32_Premultiplied &amp;&amp; !premultiplyAlpha)
&gt;     alphaOp = AlphaDoUnmultiply;
&gt; else
&gt;     // The image has a format that is not supported in packPixels. We have to convert it here.
&gt;     qtImage = qtImage.convertToFormat(premultiplyAlpha ? QImage::Format_ARGB32_Premultiplied : QImage::Format_ARGB32);

Humm that would cause a call to convertToFormat(Format_ARGB32) if qtImage.format() == QImage::Format_ARGB32 &amp;&amp; !premultiplyAlpha. Probably a no-op but not so clean in any case, feel free to ignore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658054</commentid>
    <comment_count>9</comment_count>
      <attachid>149542</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-26 15:51:52 -0700</bug_when>
    <thetext>Comment on attachment 149542
Patch

Clearing flags on attachment: 149542

Committed r121292: &lt;http://trac.webkit.org/changeset/121292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658055</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-26 15:51:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149519</attachid>
            <date>2012-06-26 06:10:13 -0700</date>
            <delta_ts>2012-06-26 09:11:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89937-20120626061012.patch</filename>
            <type>text/plain</type>
            <size>3371</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUyYzNlNjI1NDdlMDdi
ZjhhZWE1N2U5NjcwNDVjYTc1MThjZGRjYS4uMTQ1YzdkYTE5Zjk2MjAzZWY1YWQxOWQyMDdlMjcy
NzZhZmZkNjliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA2LTI2ICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBV
c2UgcHJlbXVsdGlwbGllZCBhbHBoYSB3aGVuIGV4dHJhY3RpbmcgaW1hZ2UgZGF0YSBpbiBXZWJH
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5MzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHJl
cXVpcmluZyBwcmVtdWx0aXBsaWVkIGltYWdlIGRhdGEgZm9yIFdlYkdMLCBjb252ZXJ0IHRoZSBp
bWFnZSBkaXJlY3RseSB0bworICAgICAgICBGb3JtYXRfQVJCMzJfUHJlbXVsdGlwbGllZCBpbnN0
ZWFkIG9mIGNvbnZlcnRpbmcgaXQgdG8gQVJHQjMyIGFuZCB0aGVuIGxldHRpbmcKKyAgICAgICAg
cGFja1BpeGVscyBjb252ZXJ0IGl0IGFnYWluLgorCisgICAgICAgIFRoaXMgYXZvaWRzIHR3byBj
b252ZXJzaW9uIHN0ZXBzIGluIHNvbWUgY2FzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlz
dGluZyBXZWJHTCBwaXhlbCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisKIDIwMTItMDYtMjUgIEFuYW50YW5hcmF5YW5hbiBHIEl5
ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRW5zdXJl
IHRoYXQgdGhlIGNvbXBvc2l0b3IgY29kZSB3aGljaCBpcyBhd2FyZSBvZiBmbGlwcGVkIHN0YXR1
cyBvZiB2aWRlby10ZXh0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAppbmRleCAzN2IxODE3NzY2
N2E5NDIxMzhlOTJiZGEzNTM1ZGEyM2NjMGJlMThjLi4zZTdiZmFhNmZiNTE3NDZmZTU0ZWUxMjY2
ZDBmZDg0ODEzZWQ0NzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcApAQCAtNDg1LDEzICs0ODUs
MTIgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwK
ICAgICBVTlVTRURfUEFSQU0oaWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogICAgIGlmICgh
aW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBRSW1hZ2UgbmF0aXZlSW1hZ2U7Cisg
ICAgUUltYWdlIHF0SW1hZ2U7CiAgICAgLy8gSXMgaW1hZ2UgYWxyZWFkeSBsb2FkZWQ/IElmIG5v
dCwgbG9hZCBpdC4KICAgICBpZiAoaW1hZ2UtPmRhdGEoKSkKLSAgICAgICAgbmF0aXZlSW1hZ2Ug
PSBRSW1hZ2U6OmZyb21EYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWNoYXIqPihpbWFnZS0+
ZGF0YSgpLT5kYXRhKCkpLCBpbWFnZS0+ZGF0YSgpLT5zaXplKCkpLmNvbnZlcnRUb0Zvcm1hdChR
SW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgICAgICBxdEltYWdlID0gUUltYWdlOjpmcm9tRGF0
YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVjaGFyKj4oaW1hZ2UtPmRhdGEoKS0+ZGF0YSgpKSwg
aW1hZ2UtPmRhdGEoKS0+c2l6ZSgpKTsKICAgICBlbHNlIHsKICAgICAgICAgUVBpeG1hcCogbmF0
aXZlUGl4bWFwID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgICAg
IFFJbWFnZSBxdEltYWdlOwogI2lmIEhBVkUoUVQ1KQogICAgICAgICAvLyBXaXRoIFFQQSwgd2Ug
Y2FuIGF2b2lkIGEgZGVlcCBjb3B5LgogICAgICAgICBxdEltYWdlID0gKm5hdGl2ZVBpeG1hcC0+
aGFuZGxlKCktPmJ1ZmZlcigpOwpAQCAtNDk5LDExICs0OTgsOSBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hZ2UqIGltYWdlLAogICAgICAgICAvLyBUaGlzIG1pZ2h0
IGJlIGEgZGVlcCBjb3B5LCBkZXBlbmRpbmcgb24gb3RoZXIgcmVmZXJlbmNlcyB0byB0aGUgcGl4
bWFwLgogICAgICAgICBxdEltYWdlID0gbmF0aXZlUGl4bWFwLT50b0ltYWdlKCk7CiAjZW5kaWYK
LSAgICAgICAgbmF0aXZlSW1hZ2UgPSBxdEltYWdlLmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6OkZv
cm1hdF9BUkdCMzIpOwogICAgIH0KLSAgICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBBbHBoYURv
Tm90aGluZzsKLSAgICBpZiAocHJlbXVsdGlwbHlBbHBoYSkKLSAgICAgICAgbmVlZGVkQWxwaGFP
cCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKworICAgIHF0SW1hZ2UgPSBxdEltYWdlLmNvbnZlcnRU
b0Zvcm1hdChwcmVtdWx0aXBseUFscGhhID8gUUltYWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRp
cGxpZWQgOiBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOwogCiAgICAgdW5zaWduZWQgaW50IHBhY2tl
ZFNpemU7CiAgICAgLy8gT3V0cHV0IGRhdGEgaXMgdGlnaHRseSBwYWNrZWQgKGFsaWdubWVudCA9
PSAxKS4KQEAgLTUxMSw3ICs1MDgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFn
ZURhdGEoSW1hZ2UqIGltYWdlLAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgb3V0cHV0VmVj
dG9yLnJlc2l6ZShwYWNrZWRTaXplKTsKIAotICAgIHJldHVybiBwYWNrUGl4ZWxzKG5hdGl2ZUlt
YWdlLmJpdHMoKSwgU291cmNlRm9ybWF0QkdSQTgsIGltYWdlLT53aWR0aCgpLCBpbWFnZS0+aGVp
Z2h0KCksIDAsIGZvcm1hdCwgdHlwZSwgbmVlZGVkQWxwaGFPcCwgb3V0cHV0VmVjdG9yLmRhdGEo
KSk7CisgICAgcmV0dXJuIHBhY2tQaXhlbHMocXRJbWFnZS5iaXRzKCksIFNvdXJjZUZvcm1hdEJH
UkE4LCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpLCAwLCBmb3JtYXQsIHR5cGUsIEFs
cGhhRG9Ob3RoaW5nLCBvdXRwdXRWZWN0b3IuZGF0YSgpKTsKIH0KIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPENvbnRleHRMb3N0Q2Fs
bGJhY2s+KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149542</attachid>
            <date>2012-06-26 09:12:25 -0700</date>
            <delta_ts>2012-06-26 15:51:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89937-20120626091206.patch</filename>
            <type>text/plain</type>
            <size>4217</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiNTBhZjA5YTc2MGZj
OWI3YzNlNTZmYzA0NGUzMTBkZmU5YWEzZC4uMmRjNDIyYmRkM2JkZWQ5NTFjZTk4ODhhZDY2Yjdm
MWQ4ODgzYzY2NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTI2ICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBV
c2UgcHJlbXVsdGlwbGllZCBhbHBoYSB3aGVuIGV4dHJhY3RpbmcgaW1hZ2UgZGF0YSBpbiBXZWJH
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5MzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXJmb3Jt
IGNvbnZlcnNpb24gaW4gUUltYWdlIG9ubHkgaWYgdGhlIGltYWdlIGZvcm1hdCBpcyBub3QgQVJH
QjMyIG9yCisgICAgICAgIEFSR0IzMl9QcmVtdWx0aXBsaWVkLiBPdGhlcndpc2UsIGFsbG93IHBh
Y2tQaXhlbHMgdG8gcGVyZm9ybSB0aGUgY29udmVyc2lvbiBpZiB0aGUgZm9ybWF0cworICAgICAg
ICBkb24ndCBtYXRjaCwgYXMgcGFja1BpeGVscyBhbHJlYWR5IHBlcmZvcm1zIHBpeGVsLXNwZWNp
ZmljIG9wZXJhdGlvbnMuCisKKyAgICAgICAgQ292ZXJlZCBieSB0ZXN0cyBpbiBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbCwgZS5nLiB3ZWJnbC1jb21wb3NpdGUtbW9kZXMuaHRtbC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisKIDIw
MTItMDYtMjYgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAg
ICAgICAgW1RleG1hcF0gQnVnIGZpeCB0eXBvIGFib3V0IGNvbXB1dGluZyBieXRlc1BlckxpbmUg
aW4gQml0bWFwVGV4dHVyZUdMLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAppbmRleCA2Zjg3NDliOWEy
YzY3MTY1NTZmYzM2MDhkZWUxN2M3NzMxMWM3NjE5Li43YmUyYzVlMDU0NGY4MjBiZGIwMjhlYWMw
MjE3NmNhYTY3NjEzM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcApAQCAtNDE0LDYgKzQxNCw3
IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIC8vIElmIEdy
YXBoaWNzQ29udGV4dDNEIGluaXQgZmFpbGVkIGluIGNvbnN0cnVjdG9yLCBtX3ByaXZhdGUgc2V0
IHRvIG51bGxwdHIgYW5kIG5vIGJ1ZmZlcnMgYXJlIGFsbG9jYXRlZC4KICAgICBpZiAoIW1fcHJp
dmF0ZSkKICAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAg
Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKICAgICBnbERlbGV0ZUZyYW1lYnVmZmVy
cygxLCAmbV9mYm8pOwpAQCAtNDg2LDEzICs0ODcsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwKICAgICBVTlVTRURfUEFSQU0oaWdub3JlR2Ft
bWFBbmRDb2xvclByb2ZpbGUpOwogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBRSW1hZ2UgbmF0aXZlSW1hZ2U7CisKKyAgICBRSW1hZ2UgcXRJbWFnZTsKICAgICAv
LyBJcyBpbWFnZSBhbHJlYWR5IGxvYWRlZD8gSWYgbm90LCBsb2FkIGl0LgogICAgIGlmIChpbWFn
ZS0+ZGF0YSgpKQotICAgICAgICBuYXRpdmVJbWFnZSA9IFFJbWFnZTo6ZnJvbURhdGEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1Y2hhcio+KGltYWdlLT5kYXRhKCktPmRhdGEoKSksIGltYWdlLT5k
YXRhKCktPnNpemUoKSkuY29udmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7Cisg
ICAgICAgIHF0SW1hZ2UgPSBRSW1hZ2U6OmZyb21EYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWNoYXIqPihpbWFnZS0+ZGF0YSgpLT5kYXRhKCkpLCBpbWFnZS0+ZGF0YSgpLT5zaXplKCkpOwog
ICAgIGVsc2UgewogICAgICAgICBRUGl4bWFwKiBuYXRpdmVQaXhtYXAgPSBpbWFnZS0+bmF0aXZl
SW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKLSAgICAgICAgUUltYWdlIHF0SW1hZ2U7CiAjaWYgSEFW
RShRVDUpCiAgICAgICAgIC8vIFdpdGggUVBBLCB3ZSBjYW4gYXZvaWQgYSBkZWVwIGNvcHkuCiAg
ICAgICAgIHF0SW1hZ2UgPSAqbmF0aXZlUGl4bWFwLT5oYW5kbGUoKS0+YnVmZmVyKCk7CkBAIC01
MDAsMTkgKzUwMSwzMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1h
Z2UqIGltYWdlLAogICAgICAgICAvLyBUaGlzIG1pZ2h0IGJlIGEgZGVlcCBjb3B5LCBkZXBlbmRp
bmcgb24gb3RoZXIgcmVmZXJlbmNlcyB0byB0aGUgcGl4bWFwLgogICAgICAgICBxdEltYWdlID0g
bmF0aXZlUGl4bWFwLT50b0ltYWdlKCk7CiAjZW5kaWYKLSAgICAgICAgbmF0aXZlSW1hZ2UgPSBx
dEltYWdlLmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOwogICAgIH0KLSAg
ICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBBbHBoYURvTm90aGluZzsKLSAgICBpZiAocHJlbXVs
dGlwbHlBbHBoYSkKLSAgICAgICAgbmVlZGVkQWxwaGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsK
KworICAgIEFscGhhT3AgYWxwaGFPcCA9IEFscGhhRG9Ob3RoaW5nOworICAgIHN3aXRjaCAocXRJ
bWFnZS5mb3JtYXQoKSkgeworICAgIGNhc2UgUUltYWdlOjpGb3JtYXRfQVJHQjMyOgorICAgICAg
ICBpZiAocHJlbXVsdGlwbHlBbHBoYSkKKyAgICAgICAgICAgIGFscGhhT3AgPSBBbHBoYURvUHJl
bXVsdGlwbHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUUltYWdlOjpGb3JtYXRfQVJHQjMy
X1ByZW11bHRpcGxpZWQ6CisgICAgICAgIGlmICghcHJlbXVsdGlwbHlBbHBoYSkKKyAgICAgICAg
ICAgIGFscGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgLy8gVGhlIGltYWdlIGhhcyBhIGZvcm1hdCB0aGF0IGlzIG5vdCBzdXBw
b3J0ZWQgaW4gcGFja1BpeGVscy4gV2UgaGF2ZSB0byBjb252ZXJ0IGl0IGhlcmUuCisgICAgICAg
IHF0SW1hZ2UgPSBxdEltYWdlLmNvbnZlcnRUb0Zvcm1hdChwcmVtdWx0aXBseUFscGhhID8gUUlt
YWdlOjpGb3JtYXRfQVJHQjMyX1ByZW11bHRpcGxpZWQgOiBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIp
OworICAgICAgICBicmVhazsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBpbnQgcGFja2VkU2l6ZTsK
ICAgICAvLyBPdXRwdXQgZGF0YSBpcyB0aWdodGx5IHBhY2tlZCAoYWxpZ25tZW50ID09IDEpLgog
ICAgIGlmIChjb21wdXRlSW1hZ2VTaXplSW5CeXRlcyhmb3JtYXQsIHR5cGUsIGltYWdlLT53aWR0
aCgpLCBpbWFnZS0+aGVpZ2h0KCksIDEsICZwYWNrZWRTaXplLCAwKSAhPSBHcmFwaGljc0NvbnRl
eHQzRDo6Tk9fRVJST1IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIG91dHB1dFZlY3Rv
ci5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICByZXR1cm4gcGFja1BpeGVscyhuYXRpdmVJbWFn
ZS5iaXRzKCksIFNvdXJjZUZvcm1hdEJHUkE4LCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdo
dCgpLCAwLCBmb3JtYXQsIHR5cGUsIG5lZWRlZEFscGhhT3AsIG91dHB1dFZlY3Rvci5kYXRhKCkp
OworICAgIHJldHVybiBwYWNrUGl4ZWxzKHF0SW1hZ2UuYml0cygpLCBTb3VyY2VGb3JtYXRCR1JB
OCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCBhbHBo
YU9wLCBvdXRwdXRWZWN0b3IuZGF0YSgpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>