<?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>27909</bug_id>
          
          <creation_ts>2009-07-31 19:14:46 -0700</creation_ts>
          <short_desc>WebKit cannot decode jpegs that are in CMYK or YCCK format</short_desc>
          <delta_ts>2012-08-29 11:47:23 -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>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://picrevisions.s3.cdn.pmnw.net/pictures/4a59207b3cfd3/1/thumb_604.jpg</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="Nico Weber">thakis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136341</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-07-31 19:14:46 -0700</bug_when>
    <thetext>Opening http://picrevisions.s3.cdn.pmnw.net/pictures/4a59207b3cfd3/1/thumb_604.jpg in webkit (e.g. in chrome/linux) displays a broken image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136344</commentid>
    <comment_count>1</comment_count>
      <attachid>33922</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-07-31 19:29:37 -0700</bug_when>
    <thetext>Created attachment 33922
Fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136345</commentid>
    <comment_count>2</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-07-31 19:30:26 -0700</bug_when>
    <thetext>This is http://code.google.com/p/chromium/issues/detail?id=15785 in chromium by the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136346</commentid>
    <comment_count>3</comment_count>
      <attachid>33922</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-31 19:30:36 -0700</bug_when>
    <thetext>Comment on attachment 33922
Fix.

Test cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136347</commentid>
    <comment_count>4</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-07-31 19:32:08 -0700</bug_when>
    <thetext>Hey, quick. Awesome.

How are image decoders usually tested? Can you point me to an example test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136348</commentid>
    <comment_count>5</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-07-31 19:36:50 -0700</bug_when>
    <thetext>As Catfish_Man just informed me in #webkit, WebKit/mac uses CoreGraphics for jpeg decoding, so if I add a test, it would fail on OS X (CoreGraphics decodes the jpeg to a black image -- and I can&apos;t fix CoreGraphics due to lack of source code).

If you still want a test, I&apos;ll add one, just wanted to point that out (and as I said, I&apos;d appreciate an example test).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136351</commentid>
    <comment_count>6</comment_count>
      <attachid>33922</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-31 19:40:07 -0700</bug_when>
    <thetext>Comment on attachment 33922
Fix.

Style issues (please see check-webkit-style script) and missing EMAIL_ADDRESS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136401</commentid>
    <comment_count>7</comment_count>
      <attachid>33929</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-07-31 22:17:42 -0700</bug_when>
    <thetext>Created attachment 33929
with email address

Sorry about the email address.

check-webkit-style doesn&apos;t find anything, though:

Done processing WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
Total errors found: 0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136576</commentid>
    <comment_count>8</comment_count>
      <attachid>33929</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-02 18:08:45 -0700</bug_when>
    <thetext>Comment on attachment 33929
with email address

&gt; +                buffer.setRGBA(x, info-&gt;output_scanline - 1, r, g, b, 0xFF);  // WTF???!??!?!?!

Do you honestly expect that a patch containing this comment will be landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136577</commentid>
    <comment_count>9</comment_count>
      <attachid>33957</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-08-02 18:35:48 -0700</bug_when>
    <thetext>Created attachment 33957
Remove stupid comment

Heh. I thought I had removed that comment before creating the patch. My apologies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137702</commentid>
    <comment_count>10</comment_count>
      <attachid>33957</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 17:59:58 -0700</bug_when>
    <thetext>Comment on attachment 33957
Remove stupid comment

This does not follow WebKit style.  Maybe it&apos;s not supposed to?

spacing:
 481         dest.setRGBA(x, info-&gt;output_scanline - 1, c*k/255, m*k/255, y*k/255, 0xFF);

spacing:
 513             JSAMPLE *j1 = samples[0];

extra { }:
2         } else if (info-&gt;out_color_space == JCS_CMYK) {
 523             cmyk_convert_rgb(buffer, *samples, info);
 524         } else {

See:
http://webkit.org/coding/coding-style.html

check-webkit-style should also help you.

Seems cmyk_convert_rgb should ASSERT output colorspace is JCS_CMYK?

You should consider throwing the rgb stuff in a similar static inline.

r- for the style violiations (or lack of informations as to why we would not want to match WebKit style in this file).  please run check-webkit-style, there is a diff option I&apos;m told.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137792</commentid>
    <comment_count>11</comment_count>
      <attachid>34250</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-08-06 22:16:42 -0700</bug_when>
    <thetext>Created attachment 34250
Fix style problems, extract rgb_convert_rgba() function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137910</commentid>
    <comment_count>12</comment_count>
      <attachid>34250</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 08:54:44 -0700</bug_when>
    <thetext>Comment on attachment 34250
Fix style problems, extract rgb_convert_rgba() function

cmyk_convert_rgba and rgb_convert_rgba should follow WebKit style naming (unless we have good reason not do here?)

Something like:
convertRGBToRGBA
convertCMYKToRGBA
would be webkit style naming.

Otherwise looks great.  If you were a committer I would r+ this and you could fix it when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137918</commentid>
    <comment_count>13</comment_count>
      <attachid>34282</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-08-07 09:11:02 -0700</bug_when>
    <thetext>Created attachment 34282
Rename functions to match webkit style

The function name wasn&apos;t caught by check-webkit-style I believe.

Sadly, I&apos;m not a committer (yet?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137958</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-08-07 10:25:48 -0700</bug_when>
    <thetext>+        // R = 1 - C =&gt; 1 - (1 - iC*iK) =&gt; iC*iK
+        // G = 1 - M =&gt; 1 - (1 - iM*iK) =&gt; iM*iK
+        // B = 1 - Y =&gt; 1 - (1 - iY*iK) =&gt; iY*iK

These formulas give really poor fidelity - this may be better than a broken image icon, but may be not.

Per comments in Chromium bug, this doesn&apos;t work in IE or Safari either. Is there a need to rush a low-quality implementation?

We&apos;ll need a bug to track fixing this for Safari, as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137961</commentid>
    <comment_count>15</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-08-07 10:30:50 -0700</bug_when>
    <thetext>ap: I don&apos;t see how this is &quot;low quality&quot;. It looks decent enough. It might be that there&apos;s a &quot;high-quality&quot; mode that is slightly better, but having an image that looks decent is miles better than having a broken image. This is a pretty commonly reported chromium bug (&quot;can see my pictures in firefox, but not in chrome. chrome FAIL&quot;), so I&apos;d like to get this fixed.

What do you think is wrong with the formula?


The Safari side of this fix needs a CoreGraphics patch, which I can&apos;t provide, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137968</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-08-07 10:45:35 -0700</bug_when>
    <thetext>Please see &lt;http://en.wikipedia.org/wiki/CMYK_color_model#Conversion&gt;, for example.

Please also note that the only sensible reason to use CMYK on the Web is to enable wide-gamut printing. So, besides a way to convert CMYK for display we&apos;d need a way to convert it directly to printer color space, as CMYK-&gt;display-&gt;printer will lose a lot of quality regardless of how well it is performed, simply because printer gamut is different.

See &lt;https://bugs.webkit.org/show_bug.cgi?id=12205#c6&gt; for what Opera does with CMYK CSS colors - there&apos;s a good chance that they do the same with images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137999</commentid>
    <comment_count>17</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-08-07 11:31:38 -0700</bug_when>
    <thetext>CSS does not have CMYK support yet, so it can be designed in a vacuum. Jpegs that use cmyk on the other are being used on the web right now, Firefox supports them (using the exact same conversion that this patch adds), and users complain that they don&apos;t work in chrome. In my eyes, this patch makes the situation strictly better for these users. I guess most people won&apos;t care about color-correct conversions (cf. http://crbug.com/17354 )

As far as I can see, webkit does not support cmyk bitmaps, so fixing this the Right Way requires substantial work. Until someone feels like doing this work, this patch fixes the problem for probably at least 95% of our users.

Finally, the web is not intended to be printed, wide-gamut or not ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138063</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-08-07 12:55:29 -0700</bug_when>
    <thetext>These images aren&apos;t even displayed by IE 8. Is there any urgency that would justify avoiding substantial work?

&gt; Finally, the web is not intended to be printed, wide-gamut or not ;-)

I&apos;m sure many people will disagree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138076</commentid>
    <comment_count>19</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-08-07 13:05:21 -0700</bug_when>
    <thetext>&quot;But it doesn&apos;t work in IE8 either&quot; does not sound like a strong argument.

Jpeg is one of the image formats supported on the web, so all of its subformats should be supported. It&apos;s hard to explain to users that a few jpegs don&apos;t work but most do. Firefox supports this format, and people complain that WebKit does not support it.

I don&apos;t think there&apos;s a need for &quot;substantial work&quot;, i.e. adding full cmyk support to all of webkit (but if &quot;many people&quot; believe that printing the web might be a good idea, then I might be wrong).

In any case, this less-than-100-lines patch should go in in my opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138136</commentid>
    <comment_count>20</comment_count>
      <attachid>34282</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 14:06:17 -0700</bug_when>
    <thetext>Comment on attachment 34282
Rename functions to match webkit style

LGTM.  Thank you for your patience and iteration!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138221</commentid>
    <comment_count>21</comment_count>
      <attachid>34282</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-07 17:03:32 -0700</bug_when>
    <thetext>Comment on attachment 34282
Rename functions to match webkit style

Clearing review flag on attachment: 34282

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
Committed r46931
	M	LayoutTests/platform/win/Skipped
	M	LayoutTests/ChangeLog
r46929 = 0a5b5f5445f0bc5e2dee4ea00e4e9da2629c65a1 (trunk)
	M	LayoutTests/platform/gtk/Skipped
	M	LayoutTests/ChangeLog
r46930 = 25e753dc58a5fbc3508ecfe03c156db2172fa46e (trunk)
	M	WebCore/ChangeLog
	M	WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
r46931 = d484caf449660b8f8febb1049dd9ab9f6b67349b (trunk)
First, rewinding head to replay your work on top of it...
Nothing to do.
http://trac.webkit.org/changeset/46931</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138222</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-07 17:03:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707699</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-29 11:47:23 -0700</bug_when>
    <thetext>CoreGraphics issue has been fixed as of OS X Lion, so these images are displayed correctly in Safari.

AFAICT, Chrome is still using the naive CMYK conversion introduced by this patch though. And we still don&apos;t have a non-lossy printing path.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33922</attachid>
            <date>2009-07-31 19:29:37 -0700</date>
            <delta_ts>2009-07-31 22:17:42 -0700</delta_ts>
            <desc>Fix.</desc>
            <filename>webkit_jpeg.diff</filename>
            <type>text/plain</type>
            <size>4340</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjY1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMDctMzEgIE5pY29sYXMgV2ViZXIgIDxzZXQgRU1BSUxfQURE
UkVTUyBlbnZpcm9ubWVudCB2YXJpYWJsZT4KKworICAgICAgICBUZWFjaCBXZWJLaXQgaG93IHRv
IGRlY29kZSBqcGVncyBpbiBjbXlrIGFuZCB5Y2NrIGNvbG9yIHNwYWNlcy4KKyAgICAgICAgSGVh
dmlseSBpbnNwaXJlZCBieSBGaXJlZm94J3MgdGFrZSBvbiB0aGlzIGlzc3VlLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzkwOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpQ
RUdJbWFnZVJlYWRlcjo6ZGVjb2RlKToKKyAgICAgICAgVGVsbCBqcGVnbGliIHRvIGNvbnZlcnQg
eWNjayB0byBjbXlrIGFuZCBrZWVwIGNteWsuCisgICAgICAgIChXZWJDb3JlOjpjbXlrX2NvbnZl
cnRfcmdiKToKKyAgICAgICAgQWRkZWQgZnVuY3Rpb24gdG8gY29udmVydCBjbXlrIHRvIHJnYi4K
KyAgICAgICAgKFdlYkNvcmU6OkpQRUdJbWFnZURlY29kZXI6Om91dHB1dFNjYW5saW5lcyk6Cisg
ICAgICAgIENhbGwgY215a19jb252ZXJ0X3JnYiBmb3IgY215ayBpbWFnZXMuCisKKwogMjAwOS0w
Ny0yOSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81Njk4MTEzPiBTYWZhcmkgc2hvdWxkbid0IGF1dG8tYWN0aXZhdGUgcGx1
Zy1pbnMgaW4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVH
SW1hZ2VEZWNvZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDQ1MDg2KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODMsNiArMTgzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIEpDU19DTVlLOgogICAg
ICAgICAgICAgICAgICAgICBjYXNlIEpDU19ZQ0NLOgorICAgICAgICAgICAgICAgICAgICAgICAg
Ly8ganBlZ2xpYiBjYW5ub3QgY29udmVydCB0aGVzZSB0byByZ2IsIGJ1dCBpdCBjYW4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgeWNjayB0byBjbXlrCisgICAgICAgICAgICAg
ICAgICAgICAgICBtX2luZm8ub3V0X2NvbG9yX3NwYWNlID0gSkNTX0NNWUs7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBKUEVHX0VSUk9SOwogICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDQ2LDYgKzQ1MCwzOCBAQCB2b2lkIEpQRUdJbWFn
ZURlY29kZXI6OmRlY29kZShib29sIHNpemVPCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBjbXlr
X2NvbnZlcnRfcmdiKFJHQkEzMkJ1ZmZlciYgZGVzdCwgSlNBTVBST1cgc3JjLCBqcGVnX2RlY29t
cHJlc3Nfc3RydWN0KiBpbmZvKQoreworICAgIGZvciAodW5zaWduZWQgeCA9IDA7IHggPCBpbmZv
LT5vdXRwdXRfd2lkdGg7ICsreCkgeworICAgICAgICB1bnNpZ25lZCBjID0gKnNyYysrOworICAg
ICAgICB1bnNpZ25lZCBtID0gKnNyYysrOworICAgICAgICB1bnNpZ25lZCB5ID0gKnNyYysrOwor
ICAgICAgICB1bnNpZ25lZCBrID0gKnNyYysrOworCisgICAgICAgIC8vIFNvdXJjZSBpcyAnSW52
ZXJ0ZWQgQ01ZSycsIG91dHB1dCBpcyBSR0IuCisgICAgICAgIC8vIFNlZTogaHR0cDovL3d3dy5l
YXN5cmdiLmNvbS9tYXRoLnBocD9NQVRIPU0xMiN0ZXh0MTIKKyAgICAgICAgLy8gT3I6ICBodHRw
Oi8vd3d3Lmlsa2VyYXRhbGF5LmNvbS9jb2xvcnNwYWNlc2ZhcS5waHAjcmdiCisKKyAgICAgICAg
Ly8gRnJvbSBDTVlLIHRvIENNWQorICAgICAgICAvLyBDID0gKCBDICogKCAxIC0gSyApICsgSyAp
CisgICAgICAgIC8vIE0gPSAoIE0gKiAoIDEgLSBLICkgKyBLICkKKyAgICAgICAgLy8gWSA9ICgg
WSAqICggMSAtIEsgKSArIEsgKQorCisgICAgICAgIC8vIEZyb20gSW52ZXJ0ZWQgQ01ZSyB0byBD
TVkgaXMgdGh1czoKKyAgICAgICAgLy8gQyA9ICggKDEtaUMpICogKDEgLSAoMS1pSykpICsgKDEt
aUspICkgPT4gMSAtIGlDKmlLCisgICAgICAgIC8vIFNhbWUgZm9yIE0gYW5kIFkKKworICAgICAg
ICAvLyBDb252ZXJ0IGZyb20gQ01ZICgwLi4xKSB0byBSR0IgKDAuLjEpCisgICAgICAgIC8vIFIg
PSAxIC0gQyA9PiAxIC0gKDEgLSBpQyppSykgPT4gaUMqaUsKKyAgICAgICAgLy8gRyA9IDEgLSBN
ID0+IDEgLSAoMSAtIGlNKmlLKSA9PiBpTSppSworICAgICAgICAvLyBCID0gMSAtIFkgPT4gMSAt
ICgxIC0gaVkqaUspID0+IGlZKmlLCisKKyAgICAgICAgLy8gcmVhZF9zY2FubGluZXMgaGFzIGlu
Y3JlYXNlZCB0aGUgc2NhbmxpbmUgY291bnRlciwgc28gd2UKKyAgICAgICAgLy8gYWN0dWFsbHkg
bWVhbiB0aGUgcHJldmlvdXMgb25lLgorICAgICAgICBkZXN0LnNldFJHQkEoeCwgaW5mby0+b3V0
cHV0X3NjYW5saW5lIC0gMSwgYyprLzI1NSwgbSprLzI1NSwgeSprLzI1NSwgMHhGRik7CisgICAg
fQorfQorCiBib29sIEpQRUdJbWFnZURlY29kZXI6Om91dHB1dFNjYW5saW5lcygpCiB7CiAgICAg
aWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0VtcHR5KCkpCkBAIC00NzIsMTQgKzUwOCwyMSBAQCBi
b29sIEpQRUdJbWFnZURlY29kZXI6Om91dHB1dFNjYW5saW5lcygpCiAgICAgICAgIC8qIFJlcXVl
c3Qgb25lIHNjYW5saW5lLiAgUmV0dXJucyAwIG9yIDEgc2NhbmxpbmVzLiAqLwogICAgICAgICBp
ZiAoanBlZ19yZWFkX3NjYW5saW5lcyhpbmZvLCBzYW1wbGVzLCAxKSAhPSAxKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBKU0FNUExFICpqMSA9IHNhbXBsZXNbMF07Ci0gICAg
ICAgIGZvciAodW5zaWduZWQgeCA9IDA7IHggPCBpbmZvLT5vdXRwdXRfd2lkdGg7ICsreCkgewot
ICAgICAgICAgICAgdW5zaWduZWQgciA9ICpqMSsrOwotICAgICAgICAgICAgdW5zaWduZWQgZyA9
ICpqMSsrOwotICAgICAgICAgICAgdW5zaWduZWQgYiA9ICpqMSsrOwotICAgICAgICAgICAgLy8g
cmVhZF9zY2FubGluZXMgaGFzIGluY3JlYXNlZCB0aGUgc2NhbmxpbmUgY291bnRlciwgc28gd2UK
LSAgICAgICAgICAgIC8vIGFjdHVhbGx5IG1lYW4gdGhlIHByZXZpb3VzIG9uZS4KLSAgICAgICAg
ICAgIGJ1ZmZlci5zZXRSR0JBKHgsIGluZm8tPm91dHB1dF9zY2FubGluZSAtIDEsIHIsIGcsIGIs
IDB4RkYpOworCisgICAgICAgIGlmIChpbmZvLT5vdXRfY29sb3Jfc3BhY2UgPT0gSkNTX1JHQikg
eworICAgICAgICAgICAgSlNBTVBMRSAqajEgPSBzYW1wbGVzWzBdOworICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCB4ID0gMDsgeCA8IGluZm8tPm91dHB1dF93aWR0aDsgKyt4KSB7CisgICAgICAg
ICAgICAgICAgdW5zaWduZWQgciA9ICpqMSsrOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGcg
PSAqajErKzsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBiID0gKmoxKys7CisgICAgICAgICAg
ICAgICAgLy8gcmVhZF9zY2FubGluZXMgaGFzIGluY3JlYXNlZCB0aGUgc2NhbmxpbmUgY291bnRl
ciwgc28gd2UKKyAgICAgICAgICAgICAgICAvLyBhY3R1YWxseSBtZWFuIHRoZSBwcmV2aW91cyBv
bmUuCisgICAgICAgICAgICAgICAgYnVmZmVyLnNldFJHQkEoeCwgaW5mby0+b3V0cHV0X3NjYW5s
aW5lIC0gMSwgciwgZywgYiwgMHhGRik7ICAvLyBXVEY/Pz8hPz8hPyE/IQorICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2UgaWYgKGluZm8tPm91dF9jb2xvcl9zcGFjZSA9PSBKQ1NfQ01ZSykg
eworICAgICAgICAgICAgY215a19jb252ZXJ0X3JnYihidWZmZXIsICpzYW1wbGVzLCBpbmZvKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33929</attachid>
            <date>2009-07-31 22:17:42 -0700</date>
            <delta_ts>2009-08-02 18:35:48 -0700</delta_ts>
            <desc>with email address</desc>
            <filename>webkit_jpeg.diff</filename>
            <type>text/plain</type>
            <size>4273</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjY1OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDctMzEgIE5pY29sYXMgV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFRlYWNoIFdlYktpdCBob3cgdG8gZGVjb2RlIGpwZWdzIGluIGNt
eWsgYW5kIHljY2sgY29sb3Igc3BhY2VzLgorICAgICAgICBIZWF2aWx5IGluc3BpcmVkIGJ5IEZp
cmVmb3gncyB0YWtlIG9uIHRoaXMgaXNzdWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlUmVhZGVyOjpkZWNv
ZGUpOgorICAgICAgICBUZWxsIGpwZWdsaWIgdG8gY29udmVydCB5Y2NrIHRvIGNteWsgYW5kIGtl
ZXAgY215ay4KKyAgICAgICAgKFdlYkNvcmU6OmNteWtfY29udmVydF9yZ2IpOgorICAgICAgICBB
ZGRlZCBmdW5jdGlvbiB0byBjb252ZXJ0IGNteWsgdG8gcmdiLgorICAgICAgICAoV2ViQ29yZTo6
SlBFR0ltYWdlRGVjb2Rlcjo6b3V0cHV0U2NhbmxpbmVzKToKKyAgICAgICAgQ2FsbCBjbXlrX2Nv
bnZlcnRfcmdiIGZvciBjbXlrIGltYWdlcy4KKwogMjAwOS0wNy0zMSAgWGFuIExvcGV6ICA8eGxv
cGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29k
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBl
Zy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNpb24gNDY2NTkpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE4Myw2ICsxODMsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgSkNTX0NNWUs6CiAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgSkNTX1lDQ0s6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBqcGVnbGli
IGNhbm5vdCBjb252ZXJ0IHRoZXNlIHRvIHJnYiwgYnV0IGl0IGNhbgorICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gY29udmVydCB5Y2NrIHRvIGNteWsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1faW5mby5vdXRfY29sb3Jfc3BhY2UgPSBKQ1NfQ01ZSzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9zdGF0ZSA9IEpQRUdfRVJST1I7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC00NDYsNiArNDUwLDM4IEBAIHZvaWQgSlBFR0ltYWdlRGVjb2Rlcjo6
ZGVjb2RlKGJvb2wgc2l6ZU8KICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIGNteWtfY29udmVydF9y
Z2IoUkdCQTMyQnVmZmVyJiBkZXN0LCBKU0FNUFJPVyBzcmMsIGpwZWdfZGVjb21wcmVzc19zdHJ1
Y3QqIGluZm8pCit7CisgICAgZm9yICh1bnNpZ25lZCB4ID0gMDsgeCA8IGluZm8tPm91dHB1dF93
aWR0aDsgKyt4KSB7CisgICAgICAgIHVuc2lnbmVkIGMgPSAqc3JjKys7CisgICAgICAgIHVuc2ln
bmVkIG0gPSAqc3JjKys7CisgICAgICAgIHVuc2lnbmVkIHkgPSAqc3JjKys7CisgICAgICAgIHVu
c2lnbmVkIGsgPSAqc3JjKys7CisKKyAgICAgICAgLy8gU291cmNlIGlzICdJbnZlcnRlZCBDTVlL
Jywgb3V0cHV0IGlzIFJHQi4KKyAgICAgICAgLy8gU2VlOiBodHRwOi8vd3d3LmVhc3lyZ2IuY29t
L21hdGgucGhwP01BVEg9TTEyI3RleHQxMgorICAgICAgICAvLyBPcjogIGh0dHA6Ly93d3cuaWxr
ZXJhdGFsYXkuY29tL2NvbG9yc3BhY2VzZmFxLnBocCNyZ2IKKworICAgICAgICAvLyBGcm9tIENN
WUsgdG8gQ01ZCisgICAgICAgIC8vIEMgPSAoIEMgKiAoIDEgLSBLICkgKyBLICkKKyAgICAgICAg
Ly8gTSA9ICggTSAqICggMSAtIEsgKSArIEsgKQorICAgICAgICAvLyBZID0gKCBZICogKCAxIC0g
SyApICsgSyApCisKKyAgICAgICAgLy8gRnJvbSBJbnZlcnRlZCBDTVlLIHRvIENNWSBpcyB0aHVz
OgorICAgICAgICAvLyBDID0gKCAoMS1pQykgKiAoMSAtICgxLWlLKSkgKyAoMS1pSykgKSA9PiAx
IC0gaUMqaUsKKyAgICAgICAgLy8gU2FtZSBmb3IgTSBhbmQgWQorCisgICAgICAgIC8vIENvbnZl
cnQgZnJvbSBDTVkgKDAuLjEpIHRvIFJHQiAoMC4uMSkKKyAgICAgICAgLy8gUiA9IDEgLSBDID0+
IDEgLSAoMSAtIGlDKmlLKSA9PiBpQyppSworICAgICAgICAvLyBHID0gMSAtIE0gPT4gMSAtICgx
IC0gaU0qaUspID0+IGlNKmlLCisgICAgICAgIC8vIEIgPSAxIC0gWSA9PiAxIC0gKDEgLSBpWSpp
SykgPT4gaVkqaUsKKworICAgICAgICAvLyByZWFkX3NjYW5saW5lcyBoYXMgaW5jcmVhc2VkIHRo
ZSBzY2FubGluZSBjb3VudGVyLCBzbyB3ZQorICAgICAgICAvLyBhY3R1YWxseSBtZWFuIHRoZSBw
cmV2aW91cyBvbmUuCisgICAgICAgIGRlc3Quc2V0UkdCQSh4LCBpbmZvLT5vdXRwdXRfc2Nhbmxp
bmUgLSAxLCBjKmsvMjU1LCBtKmsvMjU1LCB5KmsvMjU1LCAweEZGKTsKKyAgICB9Cit9CisKIGJv
b2wgSlBFR0ltYWdlRGVjb2Rlcjo6b3V0cHV0U2NhbmxpbmVzKCkKIHsKICAgICBpZiAobV9mcmFt
ZUJ1ZmZlckNhY2hlLmlzRW1wdHkoKSkKQEAgLTQ3MiwxNCArNTA4LDIxIEBAIGJvb2wgSlBFR0lt
YWdlRGVjb2Rlcjo6b3V0cHV0U2NhbmxpbmVzKCkKICAgICAgICAgLyogUmVxdWVzdCBvbmUgc2Nh
bmxpbmUuICBSZXR1cm5zIDAgb3IgMSBzY2FubGluZXMuICovCiAgICAgICAgIGlmIChqcGVnX3Jl
YWRfc2NhbmxpbmVzKGluZm8sIHNhbXBsZXMsIDEpICE9IDEpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIEpTQU1QTEUgKmoxID0gc2FtcGxlc1swXTsKLSAgICAgICAgZm9yICh1
bnNpZ25lZCB4ID0gMDsgeCA8IGluZm8tPm91dHB1dF93aWR0aDsgKyt4KSB7Ci0gICAgICAgICAg
ICB1bnNpZ25lZCByID0gKmoxKys7Ci0gICAgICAgICAgICB1bnNpZ25lZCBnID0gKmoxKys7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCBiID0gKmoxKys7Ci0gICAgICAgICAgICAvLyByZWFkX3NjYW5s
aW5lcyBoYXMgaW5jcmVhc2VkIHRoZSBzY2FubGluZSBjb3VudGVyLCBzbyB3ZQotICAgICAgICAg
ICAgLy8gYWN0dWFsbHkgbWVhbiB0aGUgcHJldmlvdXMgb25lLgotICAgICAgICAgICAgYnVmZmVy
LnNldFJHQkEoeCwgaW5mby0+b3V0cHV0X3NjYW5saW5lIC0gMSwgciwgZywgYiwgMHhGRik7CisK
KyAgICAgICAgaWYgKGluZm8tPm91dF9jb2xvcl9zcGFjZSA9PSBKQ1NfUkdCKSB7CisgICAgICAg
ICAgICBKU0FNUExFICpqMSA9IHNhbXBsZXNbMF07CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IHggPSAwOyB4IDwgaW5mby0+b3V0cHV0X3dpZHRoOyArK3gpIHsKKyAgICAgICAgICAgICAgICB1
bnNpZ25lZCByID0gKmoxKys7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgZyA9ICpqMSsrOwor
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGIgPSAqajErKzsKKyAgICAgICAgICAgICAgICAvLyBy
ZWFkX3NjYW5saW5lcyBoYXMgaW5jcmVhc2VkIHRoZSBzY2FubGluZSBjb3VudGVyLCBzbyB3ZQor
ICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IG1lYW4gdGhlIHByZXZpb3VzIG9uZS4KKyAgICAg
ICAgICAgICAgICBidWZmZXIuc2V0UkdCQSh4LCBpbmZvLT5vdXRwdXRfc2NhbmxpbmUgLSAxLCBy
LCBnLCBiLCAweEZGKTsgIC8vIFdURj8/PyE/PyE/IT8hCisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSBpZiAoaW5mby0+b3V0X2NvbG9yX3NwYWNlID09IEpDU19DTVlLKSB7CisgICAgICAg
ICAgICBjbXlrX2NvbnZlcnRfcmdiKGJ1ZmZlciwgKnNhbXBsZXMsIGluZm8pOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33957</attachid>
            <date>2009-08-02 18:35:48 -0700</date>
            <delta_ts>2009-08-06 22:16:42 -0700</delta_ts>
            <desc>Remove stupid comment</desc>
            <filename>webkit_jpeg.diff</filename>
            <type>text/plain</type>
            <size>4254</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjY1OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDctMzEgIE5pY29sYXMgV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFRlYWNoIFdlYktpdCBob3cgdG8gZGVjb2RlIGpwZWdzIGluIGNt
eWsgYW5kIHljY2sgY29sb3Igc3BhY2VzLgorICAgICAgICBIZWF2aWx5IGluc3BpcmVkIGJ5IEZp
cmVmb3gncyB0YWtlIG9uIHRoaXMgaXNzdWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlUmVhZGVyOjpkZWNv
ZGUpOgorICAgICAgICBUZWxsIGpwZWdsaWIgdG8gY29udmVydCB5Y2NrIHRvIGNteWsgYW5kIGtl
ZXAgY215ay4KKyAgICAgICAgKFdlYkNvcmU6OmNteWtfY29udmVydF9yZ2IpOgorICAgICAgICBB
ZGRlZCBmdW5jdGlvbiB0byBjb252ZXJ0IGNteWsgdG8gcmdiLgorICAgICAgICAoV2ViQ29yZTo6
SlBFR0ltYWdlRGVjb2Rlcjo6b3V0cHV0U2NhbmxpbmVzKToKKyAgICAgICAgQ2FsbCBjbXlrX2Nv
bnZlcnRfcmdiIGZvciBjbXlrIGltYWdlcy4KKwogMjAwOS0wNy0zMSAgWGFuIExvcGV6ICA8eGxv
cGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29k
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBl
Zy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNpb24gNDY2NTkpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE4Myw2ICsxODMsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgSkNTX0NNWUs6CiAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgSkNTX1lDQ0s6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBqcGVnbGli
IGNhbm5vdCBjb252ZXJ0IHRoZXNlIHRvIHJnYiwgYnV0IGl0IGNhbgorICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gY29udmVydCB5Y2NrIHRvIGNteWsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1faW5mby5vdXRfY29sb3Jfc3BhY2UgPSBKQ1NfQ01ZSzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9zdGF0ZSA9IEpQRUdfRVJST1I7CiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC00NDYsNiArNDUwLDM4IEBAIHZvaWQgSlBFR0ltYWdlRGVjb2Rlcjo6
ZGVjb2RlKGJvb2wgc2l6ZU8KICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIGNteWtfY29udmVydF9y
Z2IoUkdCQTMyQnVmZmVyJiBkZXN0LCBKU0FNUFJPVyBzcmMsIGpwZWdfZGVjb21wcmVzc19zdHJ1
Y3QqIGluZm8pCit7CisgICAgZm9yICh1bnNpZ25lZCB4ID0gMDsgeCA8IGluZm8tPm91dHB1dF93
aWR0aDsgKyt4KSB7CisgICAgICAgIHVuc2lnbmVkIGMgPSAqc3JjKys7CisgICAgICAgIHVuc2ln
bmVkIG0gPSAqc3JjKys7CisgICAgICAgIHVuc2lnbmVkIHkgPSAqc3JjKys7CisgICAgICAgIHVu
c2lnbmVkIGsgPSAqc3JjKys7CisKKyAgICAgICAgLy8gU291cmNlIGlzICdJbnZlcnRlZCBDTVlL
Jywgb3V0cHV0IGlzIFJHQi4KKyAgICAgICAgLy8gU2VlOiBodHRwOi8vd3d3LmVhc3lyZ2IuY29t
L21hdGgucGhwP01BVEg9TTEyI3RleHQxMgorICAgICAgICAvLyBPcjogIGh0dHA6Ly93d3cuaWxr
ZXJhdGFsYXkuY29tL2NvbG9yc3BhY2VzZmFxLnBocCNyZ2IKKworICAgICAgICAvLyBGcm9tIENN
WUsgdG8gQ01ZCisgICAgICAgIC8vIEMgPSAoIEMgKiAoIDEgLSBLICkgKyBLICkKKyAgICAgICAg
Ly8gTSA9ICggTSAqICggMSAtIEsgKSArIEsgKQorICAgICAgICAvLyBZID0gKCBZICogKCAxIC0g
SyApICsgSyApCisKKyAgICAgICAgLy8gRnJvbSBJbnZlcnRlZCBDTVlLIHRvIENNWSBpcyB0aHVz
OgorICAgICAgICAvLyBDID0gKCAoMS1pQykgKiAoMSAtICgxLWlLKSkgKyAoMS1pSykgKSA9PiAx
IC0gaUMqaUsKKyAgICAgICAgLy8gU2FtZSBmb3IgTSBhbmQgWQorCisgICAgICAgIC8vIENvbnZl
cnQgZnJvbSBDTVkgKDAuLjEpIHRvIFJHQiAoMC4uMSkKKyAgICAgICAgLy8gUiA9IDEgLSBDID0+
IDEgLSAoMSAtIGlDKmlLKSA9PiBpQyppSworICAgICAgICAvLyBHID0gMSAtIE0gPT4gMSAtICgx
IC0gaU0qaUspID0+IGlNKmlLCisgICAgICAgIC8vIEIgPSAxIC0gWSA9PiAxIC0gKDEgLSBpWSpp
SykgPT4gaVkqaUsKKworICAgICAgICAvLyByZWFkX3NjYW5saW5lcyBoYXMgaW5jcmVhc2VkIHRo
ZSBzY2FubGluZSBjb3VudGVyLCBzbyB3ZQorICAgICAgICAvLyBhY3R1YWxseSBtZWFuIHRoZSBw
cmV2aW91cyBvbmUuCisgICAgICAgIGRlc3Quc2V0UkdCQSh4LCBpbmZvLT5vdXRwdXRfc2Nhbmxp
bmUgLSAxLCBjKmsvMjU1LCBtKmsvMjU1LCB5KmsvMjU1LCAweEZGKTsKKyAgICB9Cit9CisKIGJv
b2wgSlBFR0ltYWdlRGVjb2Rlcjo6b3V0cHV0U2NhbmxpbmVzKCkKIHsKICAgICBpZiAobV9mcmFt
ZUJ1ZmZlckNhY2hlLmlzRW1wdHkoKSkKQEAgLTQ3MiwxNCArNTA4LDIxIEBAIGJvb2wgSlBFR0lt
YWdlRGVjb2Rlcjo6b3V0cHV0U2NhbmxpbmVzKCkKICAgICAgICAgLyogUmVxdWVzdCBvbmUgc2Nh
bmxpbmUuICBSZXR1cm5zIDAgb3IgMSBzY2FubGluZXMuICovCiAgICAgICAgIGlmIChqcGVnX3Jl
YWRfc2NhbmxpbmVzKGluZm8sIHNhbXBsZXMsIDEpICE9IDEpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIEpTQU1QTEUgKmoxID0gc2FtcGxlc1swXTsKLSAgICAgICAgZm9yICh1
bnNpZ25lZCB4ID0gMDsgeCA8IGluZm8tPm91dHB1dF93aWR0aDsgKyt4KSB7Ci0gICAgICAgICAg
ICB1bnNpZ25lZCByID0gKmoxKys7Ci0gICAgICAgICAgICB1bnNpZ25lZCBnID0gKmoxKys7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCBiID0gKmoxKys7Ci0gICAgICAgICAgICAvLyByZWFkX3NjYW5s
aW5lcyBoYXMgaW5jcmVhc2VkIHRoZSBzY2FubGluZSBjb3VudGVyLCBzbyB3ZQotICAgICAgICAg
ICAgLy8gYWN0dWFsbHkgbWVhbiB0aGUgcHJldmlvdXMgb25lLgotICAgICAgICAgICAgYnVmZmVy
LnNldFJHQkEoeCwgaW5mby0+b3V0cHV0X3NjYW5saW5lIC0gMSwgciwgZywgYiwgMHhGRik7CisK
KyAgICAgICAgaWYgKGluZm8tPm91dF9jb2xvcl9zcGFjZSA9PSBKQ1NfUkdCKSB7CisgICAgICAg
ICAgICBKU0FNUExFICpqMSA9IHNhbXBsZXNbMF07CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IHggPSAwOyB4IDwgaW5mby0+b3V0cHV0X3dpZHRoOyArK3gpIHsKKyAgICAgICAgICAgICAgICB1
bnNpZ25lZCByID0gKmoxKys7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgZyA9ICpqMSsrOwor
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGIgPSAqajErKzsKKyAgICAgICAgICAgICAgICAvLyBy
ZWFkX3NjYW5saW5lcyBoYXMgaW5jcmVhc2VkIHRoZSBzY2FubGluZSBjb3VudGVyLCBzbyB3ZQor
ICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IG1lYW4gdGhlIHByZXZpb3VzIG9uZS4KKyAgICAg
ICAgICAgICAgICBidWZmZXIuc2V0UkdCQSh4LCBpbmZvLT5vdXRwdXRfc2NhbmxpbmUgLSAxLCBy
LCBnLCBiLCAweEZGKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLT5v
dXRfY29sb3Jfc3BhY2UgPT0gSkNTX0NNWUspIHsKKyAgICAgICAgICAgIGNteWtfY29udmVydF9y
Z2IoYnVmZmVyLCAqc2FtcGxlcywgaW5mbyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAK
</data>
<flag name="review"
          id="18130"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34250</attachid>
            <date>2009-08-06 22:16:42 -0700</date>
            <delta_ts>2009-08-07 09:12:12 -0700</delta_ts>
            <desc>Fix style problems, extract rgb_convert_rgba() function</desc>
            <filename>webkit_jpeg.diff</filename>
            <type>text/plain</type>
            <size>4554</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njg4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDctMzEgIE5pY29sYXMgV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFRlYWNoIFdlYktpdCBob3cgdG8gZGVjb2RlIGpwZWdzIGluIGNt
eWsgYW5kIHljY2sgY29sb3Igc3BhY2VzLgorICAgICAgICBIZWF2aWx5IGluc3BpcmVkIGJ5IEZp
cmVmb3gncyB0YWtlIG9uIHRoaXMgaXNzdWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlUmVhZGVyOjpkZWNv
ZGUpOgorICAgICAgICBUZWxsIGpwZWdsaWIgdG8gY29udmVydCB5Y2NrIHRvIGNteWsgYW5kIGtl
ZXAgY215ay4KKyAgICAgICAgKFdlYkNvcmU6OmNteWtfY29udmVydF9yZ2JhKToKKyAgICAgICAg
QWRkZWQgZnVuY3Rpb24gdG8gY29udmVydCBjbXlrIHRvIHJnYi4KKyAgICAgICAgKFdlYkNvcmU6
OnJnYl9jb252ZXJ0X3JnYmEpOgorICAgICAgICBFeHRyYWN0ZWQgZXhpc3RpbmcgY29udmVyc2lv
biBsb2dpYyBpbnRvIGl0cyBvd24gZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1h
Z2VEZWNvZGVyOjpvdXRwdXRTY2FubGluZXMpOgorICAgICAgICBDYWxsIGNteWtfY29udmVydF9y
Z2IgZm9yIGNteWsgaW1hZ2VzLCByZ2JfY29udmVydF9yZ2JhIGZvciByZ2IKKyAgICAgICAgaW1h
Z2VzLgorCiAyMDA5LTA4LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCByZXZlcnQuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCShyZXZpc2lv
biA0Njg4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1h
Z2VEZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDYgKzE4MywxMCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBKQ1NfQ01ZSzoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBKQ1NfWUNDSzoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIGpwZWdsaWIgY2Fubm90IGNvbnZlcnQgdGhlc2UgdG8gcmdiLCBi
dXQgaXQgY2FuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb252ZXJ0IHljY2sgdG8gY215
aworICAgICAgICAgICAgICAgICAgICAgICAgbV9pbmZvLm91dF9jb2xvcl9zcGFjZSA9IEpDU19D
TVlLOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlID0gSlBFR19FUlJPUjsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ0Niw2ICs0NTAsNTQg
QEAgdm9pZCBKUEVHSW1hZ2VEZWNvZGVyOjpkZWNvZGUoYm9vbCBzaXplTwogICAgIH0KIH0KIAor
c3RhdGljIHZvaWQgY215a19jb252ZXJ0X3JnYmEoUkdCQTMyQnVmZmVyJiBkZXN0LCBKU0FNUFJP
VyBzcmMsIGpwZWdfZGVjb21wcmVzc19zdHJ1Y3QqIGluZm8pCit7CisgICAgQVNTRVJUKGluZm8t
Pm91dF9jb2xvcl9zcGFjZSA9PSBKQ1NfQ01ZSyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIHggPSAw
OyB4IDwgaW5mby0+b3V0cHV0X3dpZHRoOyArK3gpIHsKKyAgICAgICAgdW5zaWduZWQgYyA9ICpz
cmMrKzsKKyAgICAgICAgdW5zaWduZWQgbSA9ICpzcmMrKzsKKyAgICAgICAgdW5zaWduZWQgeSA9
ICpzcmMrKzsKKyAgICAgICAgdW5zaWduZWQgayA9ICpzcmMrKzsKKworICAgICAgICAvLyBTb3Vy
Y2UgaXMgJ0ludmVydGVkIENNWUsnLCBvdXRwdXQgaXMgUkdCLgorICAgICAgICAvLyBTZWU6IGh0
dHA6Ly93d3cuZWFzeXJnYi5jb20vbWF0aC5waHA/TUFUSD1NMTIjdGV4dDEyCisgICAgICAgIC8v
IE9yOiAgaHR0cDovL3d3dy5pbGtlcmF0YWxheS5jb20vY29sb3JzcGFjZXNmYXEucGhwI3JnYgor
CisgICAgICAgIC8vIEZyb20gQ01ZSyB0byBDTVkKKyAgICAgICAgLy8gQyA9IEMgKiAoIDEgLSBL
ICkgKyBLCisgICAgICAgIC8vIE0gPSBNICogKCAxIC0gSyApICsgSworICAgICAgICAvLyBZID0g
WSAqICggMSAtIEsgKSArIEsKKworICAgICAgICAvLyBGcm9tIEludmVydGVkIENNWUsgdG8gQ01Z
IGlzIHRodXM6CisgICAgICAgIC8vIEMgPSAoMS1pQykgKiAoMSAtICgxLWlLKSkgKyAoMS1pSykg
PT4gMSAtIGlDKmlLCisgICAgICAgIC8vIFNhbWUgZm9yIE0gYW5kIFkKKworICAgICAgICAvLyBD
b252ZXJ0IGZyb20gQ01ZICgwLi4xKSB0byBSR0IgKDAuLjEpCisgICAgICAgIC8vIFIgPSAxIC0g
QyA9PiAxIC0gKDEgLSBpQyppSykgPT4gaUMqaUsKKyAgICAgICAgLy8gRyA9IDEgLSBNID0+IDEg
LSAoMSAtIGlNKmlLKSA9PiBpTSppSworICAgICAgICAvLyBCID0gMSAtIFkgPT4gMSAtICgxIC0g
aVkqaUspID0+IGlZKmlLCisKKyAgICAgICAgLy8gcmVhZF9zY2FubGluZXMgaGFzIGluY3JlYXNl
ZCB0aGUgc2NhbmxpbmUgY291bnRlciwgc28gd2UKKyAgICAgICAgLy8gYWN0dWFsbHkgbWVhbiB0
aGUgcHJldmlvdXMgb25lLgorICAgICAgICBkZXN0LnNldFJHQkEoeCwgaW5mby0+b3V0cHV0X3Nj
YW5saW5lIC0gMSwgYyAqIGsgLyAyNTUsIG0gKiBrIC8gMjU1LCB5ICogayAvIDI1NSwgMHhGRik7
CisgICAgfQorfQorCitzdGF0aWMgdm9pZCByZ2JfY29udmVydF9yZ2JhKFJHQkEzMkJ1ZmZlciYg
ZGVzdCwgSlNBTVBST1cgc3JjLCBqcGVnX2RlY29tcHJlc3Nfc3RydWN0KiBpbmZvKQoreworICAg
IEFTU0VSVChpbmZvLT5vdXRfY29sb3Jfc3BhY2UgPT0gSkNTX1JHQik7CisKKyAgICBmb3IgKHVu
c2lnbmVkIHggPSAwOyB4IDwgaW5mby0+b3V0cHV0X3dpZHRoOyArK3gpIHsKKyAgICAgICAgdW5z
aWduZWQgciA9ICpzcmMrKzsKKyAgICAgICAgdW5zaWduZWQgZyA9ICpzcmMrKzsKKyAgICAgICAg
dW5zaWduZWQgYiA9ICpzcmMrKzsKKyAgICAgICAgLy8gcmVhZF9zY2FubGluZXMgaGFzIGluY3Jl
YXNlZCB0aGUgc2NhbmxpbmUgY291bnRlciwgc28gd2UKKyAgICAgICAgLy8gYWN0dWFsbHkgbWVh
biB0aGUgcHJldmlvdXMgb25lLgorICAgICAgICBkZXN0LnNldFJHQkEoeCwgaW5mby0+b3V0cHV0
X3NjYW5saW5lIC0gMSwgciwgZywgYiwgMHhGRik7CisgICAgfQorfQorCiBib29sIEpQRUdJbWFn
ZURlY29kZXI6Om91dHB1dFNjYW5saW5lcygpCiB7CiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNo
ZS5pc0VtcHR5KCkpCkBAIC00NzIsMTUgKzUyNCwxMyBAQCBib29sIEpQRUdJbWFnZURlY29kZXI6
Om91dHB1dFNjYW5saW5lcygpCiAgICAgICAgIC8qIFJlcXVlc3Qgb25lIHNjYW5saW5lLiAgUmV0
dXJucyAwIG9yIDEgc2NhbmxpbmVzLiAqLwogICAgICAgICBpZiAoanBlZ19yZWFkX3NjYW5saW5l
cyhpbmZvLCBzYW1wbGVzLCAxKSAhPSAxKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBKU0FNUExFICpqMSA9IHNhbXBsZXNbMF07Ci0gICAgICAgIGZvciAodW5zaWduZWQgeCA9
IDA7IHggPCBpbmZvLT5vdXRwdXRfd2lkdGg7ICsreCkgewotICAgICAgICAgICAgdW5zaWduZWQg
ciA9ICpqMSsrOwotICAgICAgICAgICAgdW5zaWduZWQgZyA9ICpqMSsrOwotICAgICAgICAgICAg
dW5zaWduZWQgYiA9ICpqMSsrOwotICAgICAgICAgICAgLy8gcmVhZF9zY2FubGluZXMgaGFzIGlu
Y3JlYXNlZCB0aGUgc2NhbmxpbmUgY291bnRlciwgc28gd2UKLSAgICAgICAgICAgIC8vIGFjdHVh
bGx5IG1lYW4gdGhlIHByZXZpb3VzIG9uZS4KLSAgICAgICAgICAgIGJ1ZmZlci5zZXRSR0JBKHgs
IGluZm8tPm91dHB1dF9zY2FubGluZSAtIDEsIHIsIGcsIGIsIDB4RkYpOwotICAgICAgICB9CisK
KyAgICAgICAgaWYgKGluZm8tPm91dF9jb2xvcl9zcGFjZSA9PSBKQ1NfUkdCKQorICAgICAgICAg
ICAgcmdiX2NvbnZlcnRfcmdiYShidWZmZXIsICpzYW1wbGVzLCBpbmZvKTsKKyAgICAgICAgZWxz
ZSBpZiAoaW5mby0+b3V0X2NvbG9yX3NwYWNlID09IEpDU19DTVlLKQorICAgICAgICAgICAgY215
a19jb252ZXJ0X3JnYmEoYnVmZmVyLCAqc2FtcGxlcywgaW5mbyk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
</data>
<flag name="review"
          id="18419"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34282</attachid>
            <date>2009-08-07 09:11:02 -0700</date>
            <delta_ts>2009-08-07 17:03:32 -0700</delta_ts>
            <desc>Rename functions to match webkit style</desc>
            <filename>webkit_jpeg.diff</filename>
            <type>text/plain</type>
            <size>4555</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njg4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDctMzEgIE5pY29sYXMgV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFRlYWNoIFdlYktpdCBob3cgdG8gZGVjb2RlIGpwZWdzIGluIGNt
eWsgYW5kIHljY2sgY29sb3Igc3BhY2VzLgorICAgICAgICBIZWF2aWx5IGluc3BpcmVkIGJ5IEZp
cmVmb3gncyB0YWtlIG9uIHRoaXMgaXNzdWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlBFR0ltYWdlUmVhZGVyOjpkZWNv
ZGUpOgorICAgICAgICBUZWxsIGpwZWdsaWIgdG8gY29udmVydCB5Y2NrIHRvIGNteWsgYW5kIGtl
ZXAgY215ay4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRDTVlLVG9SR0JBKToKKyAgICAgICAg
QWRkZWQgZnVuY3Rpb24gdG8gY29udmVydCBjbXlrIHRvIHJnYi4KKyAgICAgICAgKFdlYkNvcmU6
OmNvbnZlcnRSR0JUb1JHQkEpOgorICAgICAgICBFeHRyYWN0ZWQgZXhpc3RpbmcgY29udmVyc2lv
biBsb2dpYyBpbnRvIGl0cyBvd24gZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpKUEVHSW1h
Z2VEZWNvZGVyOjpvdXRwdXRTY2FubGluZXMpOgorICAgICAgICBDYWxsIGNvbnZlcnRDTVlLVG9S
R0JBIGZvciBjbXlrIGltYWdlcywgY29udmVydFJHQlRvUkdCQSBmb3IgcmdiCisgICAgICAgIGlt
YWdlcy4KKwogMjAwOS0wOC0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgcmV2ZXJ0LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNp
b24gNDY4ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0lt
YWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw2ICsxODMsMTAgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNh
c2UgSkNTX0NNWUs6CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgSkNTX1lDQ0s6CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBqcGVnbGliIGNhbm5vdCBjb252ZXJ0IHRoZXNlIHRvIHJnYiwg
YnV0IGl0IGNhbgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udmVydCB5Y2NrIHRvIGNt
eWsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1faW5mby5vdXRfY29sb3Jfc3BhY2UgPSBKQ1Nf
Q01ZSzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IEpQRUdfRVJST1I7
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NDYsNiArNDUwLDU0
IEBAIHZvaWQgSlBFR0ltYWdlRGVjb2Rlcjo6ZGVjb2RlKGJvb2wgc2l6ZU8KICAgICB9CiB9CiAK
K3N0YXRpYyB2b2lkIGNvbnZlcnRDTVlLVG9SR0JBKFJHQkEzMkJ1ZmZlciYgZGVzdCwgSlNBTVBS
T1cgc3JjLCBqcGVnX2RlY29tcHJlc3Nfc3RydWN0KiBpbmZvKQoreworICAgIEFTU0VSVChpbmZv
LT5vdXRfY29sb3Jfc3BhY2UgPT0gSkNTX0NNWUspOworCisgICAgZm9yICh1bnNpZ25lZCB4ID0g
MDsgeCA8IGluZm8tPm91dHB1dF93aWR0aDsgKyt4KSB7CisgICAgICAgIHVuc2lnbmVkIGMgPSAq
c3JjKys7CisgICAgICAgIHVuc2lnbmVkIG0gPSAqc3JjKys7CisgICAgICAgIHVuc2lnbmVkIHkg
PSAqc3JjKys7CisgICAgICAgIHVuc2lnbmVkIGsgPSAqc3JjKys7CisKKyAgICAgICAgLy8gU291
cmNlIGlzICdJbnZlcnRlZCBDTVlLJywgb3V0cHV0IGlzIFJHQi4KKyAgICAgICAgLy8gU2VlOiBo
dHRwOi8vd3d3LmVhc3lyZ2IuY29tL21hdGgucGhwP01BVEg9TTEyI3RleHQxMgorICAgICAgICAv
LyBPcjogIGh0dHA6Ly93d3cuaWxrZXJhdGFsYXkuY29tL2NvbG9yc3BhY2VzZmFxLnBocCNyZ2IK
KworICAgICAgICAvLyBGcm9tIENNWUsgdG8gQ01ZCisgICAgICAgIC8vIEMgPSBDICogKCAxIC0g
SyApICsgSworICAgICAgICAvLyBNID0gTSAqICggMSAtIEsgKSArIEsKKyAgICAgICAgLy8gWSA9
IFkgKiAoIDEgLSBLICkgKyBLCisKKyAgICAgICAgLy8gRnJvbSBJbnZlcnRlZCBDTVlLIHRvIENN
WSBpcyB0aHVzOgorICAgICAgICAvLyBDID0gKDEtaUMpICogKDEgLSAoMS1pSykpICsgKDEtaUsp
ID0+IDEgLSBpQyppSworICAgICAgICAvLyBTYW1lIGZvciBNIGFuZCBZCisKKyAgICAgICAgLy8g
Q29udmVydCBmcm9tIENNWSAoMC4uMSkgdG8gUkdCICgwLi4xKQorICAgICAgICAvLyBSID0gMSAt
IEMgPT4gMSAtICgxIC0gaUMqaUspID0+IGlDKmlLCisgICAgICAgIC8vIEcgPSAxIC0gTSA9PiAx
IC0gKDEgLSBpTSppSykgPT4gaU0qaUsKKyAgICAgICAgLy8gQiA9IDEgLSBZID0+IDEgLSAoMSAt
IGlZKmlLKSA9PiBpWSppSworCisgICAgICAgIC8vIHJlYWRfc2NhbmxpbmVzIGhhcyBpbmNyZWFz
ZWQgdGhlIHNjYW5saW5lIGNvdW50ZXIsIHNvIHdlCisgICAgICAgIC8vIGFjdHVhbGx5IG1lYW4g
dGhlIHByZXZpb3VzIG9uZS4KKyAgICAgICAgZGVzdC5zZXRSR0JBKHgsIGluZm8tPm91dHB1dF9z
Y2FubGluZSAtIDEsIGMgKiBrIC8gMjU1LCBtICogayAvIDI1NSwgeSAqIGsgLyAyNTUsIDB4RkYp
OworICAgIH0KK30KKworc3RhdGljIHZvaWQgY29udmVydFJHQlRvUkdCQShSR0JBMzJCdWZmZXIm
IGRlc3QsIEpTQU1QUk9XIHNyYywganBlZ19kZWNvbXByZXNzX3N0cnVjdCogaW5mbykKK3sKKyAg
ICBBU1NFUlQoaW5mby0+b3V0X2NvbG9yX3NwYWNlID09IEpDU19SR0IpOworCisgICAgZm9yICh1
bnNpZ25lZCB4ID0gMDsgeCA8IGluZm8tPm91dHB1dF93aWR0aDsgKyt4KSB7CisgICAgICAgIHVu
c2lnbmVkIHIgPSAqc3JjKys7CisgICAgICAgIHVuc2lnbmVkIGcgPSAqc3JjKys7CisgICAgICAg
IHVuc2lnbmVkIGIgPSAqc3JjKys7CisgICAgICAgIC8vIHJlYWRfc2NhbmxpbmVzIGhhcyBpbmNy
ZWFzZWQgdGhlIHNjYW5saW5lIGNvdW50ZXIsIHNvIHdlCisgICAgICAgIC8vIGFjdHVhbGx5IG1l
YW4gdGhlIHByZXZpb3VzIG9uZS4KKyAgICAgICAgZGVzdC5zZXRSR0JBKHgsIGluZm8tPm91dHB1
dF9zY2FubGluZSAtIDEsIHIsIGcsIGIsIDB4RkYpOworICAgIH0KK30KKwogYm9vbCBKUEVHSW1h
Z2VEZWNvZGVyOjpvdXRwdXRTY2FubGluZXMoKQogewogICAgIGlmIChtX2ZyYW1lQnVmZmVyQ2Fj
aGUuaXNFbXB0eSgpKQpAQCAtNDcyLDE1ICs1MjQsMTMgQEAgYm9vbCBKUEVHSW1hZ2VEZWNvZGVy
OjpvdXRwdXRTY2FubGluZXMoKQogICAgICAgICAvKiBSZXF1ZXN0IG9uZSBzY2FubGluZS4gIFJl
dHVybnMgMCBvciAxIHNjYW5saW5lcy4gKi8KICAgICAgICAgaWYgKGpwZWdfcmVhZF9zY2FubGlu
ZXMoaW5mbywgc2FtcGxlcywgMSkgIT0gMSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgSlNBTVBMRSAqajEgPSBzYW1wbGVzWzBdOwotICAgICAgICBmb3IgKHVuc2lnbmVkIHgg
PSAwOyB4IDwgaW5mby0+b3V0cHV0X3dpZHRoOyArK3gpIHsKLSAgICAgICAgICAgIHVuc2lnbmVk
IHIgPSAqajErKzsKLSAgICAgICAgICAgIHVuc2lnbmVkIGcgPSAqajErKzsKLSAgICAgICAgICAg
IHVuc2lnbmVkIGIgPSAqajErKzsKLSAgICAgICAgICAgIC8vIHJlYWRfc2NhbmxpbmVzIGhhcyBp
bmNyZWFzZWQgdGhlIHNjYW5saW5lIGNvdW50ZXIsIHNvIHdlCi0gICAgICAgICAgICAvLyBhY3R1
YWxseSBtZWFuIHRoZSBwcmV2aW91cyBvbmUuCi0gICAgICAgICAgICBidWZmZXIuc2V0UkdCQSh4
LCBpbmZvLT5vdXRwdXRfc2NhbmxpbmUgLSAxLCByLCBnLCBiLCAweEZGKTsKLSAgICAgICAgfQor
CisgICAgICAgIGlmIChpbmZvLT5vdXRfY29sb3Jfc3BhY2UgPT0gSkNTX1JHQikKKyAgICAgICAg
ICAgIGNvbnZlcnRSR0JUb1JHQkEoYnVmZmVyLCAqc2FtcGxlcywgaW5mbyk7CisgICAgICAgIGVs
c2UgaWYgKGluZm8tPm91dF9jb2xvcl9zcGFjZSA9PSBKQ1NfQ01ZSykKKyAgICAgICAgICAgIGNv
bnZlcnRDTVlLVG9SR0JBKGJ1ZmZlciwgKnNhbXBsZXMsIGluZm8pOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7Cg==
</data>
<flag name="commit-queue"
          id="18501"
          type_id="3"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>