<?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>66884</bug_id>
          
          <creation_ts>2011-08-24 13:14:53 -0700</creation_ts>
          <short_desc>Speed up texImage from BGRA</short_desc>
          <delta_ts>2012-05-16 20:42:00 -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>New Bugs</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>
          
          <blocked>86515</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="John Bauman">jbauman</reporter>
          <assigned_to name="John Bauman">jbauman</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>kbr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>456353</commentid>
    <comment_count>0</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-24 13:14:53 -0700</bug_when>
    <thetext>Speed up texImage from BGRA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456367</commentid>
    <comment_count>1</comment_count>
      <attachid>105056</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-24 13:21:22 -0700</bug_when>
    <thetext>Created attachment 105056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456370</commentid>
    <comment_count>2</comment_count>
      <attachid>105056</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 13:28:42 -0700</bug_when>
    <thetext>Comment on attachment 105056
Patch

Attachment 105056 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9488247</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456380</commentid>
    <comment_count>3</comment_count>
      <attachid>105059</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-24 13:39:57 -0700</bug_when>
    <thetext>Created attachment 105059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456570</commentid>
    <comment_count>4</comment_count>
      <attachid>105059</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-08-24 18:00:06 -0700</bug_when>
    <thetext>Comment on attachment 105059
Patch

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

Wheee! What kind of speed gains does this get (not fps, but for the actual pack fn)?

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1152
&gt; +    if (reinterpret_cast&lt;void*&gt;(rowPackingFunc) == reinterpret_cast&lt;void*&gt;(packOneRowOfRGBA8ToRGBA8)) {

As a bystander to this code, it took me a while to figure out what this check was really doing --- might want to preceed this with a comment saying &quot;skip unpacking step if does nothing and unpack directly to the destination&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456618</commentid>
    <comment_count>5</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-24 19:43:38 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 105059 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105059&amp;action=review
&gt; 
&gt; Wheee! What kind of speed gains does this get (not fps, but for the actual pack fn)?
I&apos;m not sure, as the benchmark I was using increased the amount of work that it had this do when I made it faster, but it maybe takes 1/2 to 1/3 of its old time. I know the benchmark scored about 1.5x what it was without the patch.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1152
&gt; &gt; +    if (reinterpret_cast&lt;void*&gt;(rowPackingFunc) == reinterpret_cast&lt;void*&gt;(packOneRowOfRGBA8ToRGBA8)) {
&gt; 
&gt; As a bystander to this code, it took me a while to figure out what this check was really doing --- might want to preceed this with a comment saying &quot;skip unpacking step if does nothing and unpack directly to the destination&quot;?

Good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456916</commentid>
    <comment_count>6</comment_count>
      <attachid>105201</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-25 09:41:13 -0700</bug_when>
    <thetext>Created attachment 105201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456940</commentid>
    <comment_count>7</comment_count>
      <attachid>105201</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-25 10:04:50 -0700</bug_when>
    <thetext>Comment on attachment 105201
Patch

Attachment 105201 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9495512

New failing tests:
fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456951</commentid>
    <comment_count>8</comment_count>
      <attachid>105207</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-25 10:19:08 -0700</bug_when>
    <thetext>Created attachment 105207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457028</commentid>
    <comment_count>9</comment_count>
      <attachid>105207</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-25 11:47:10 -0700</bug_when>
    <thetext>Comment on attachment 105207
Patch

Looks good to me. Did you run the texture-related WebGL conformance tests and layout tests to ensure no accidental regressions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458335</commentid>
    <comment_count>10</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-29 11:58:16 -0700</bug_when>
    <thetext>Yeah, they all seem to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458343</commentid>
    <comment_count>11</comment_count>
      <attachid>105207</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-29 12:06:04 -0700</bug_when>
    <thetext>Comment on attachment 105207
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:481
&gt; +        uint32_t rgba = (((bgra &gt;&gt; 16) | (bgra &lt;&lt; 16)) &amp; 0x00ff00ff) | (bgra &amp; 0xff00ff00);

Sorry, I just realized that this won&apos;t work correctly on big-endian hardware. You can use #if CPU(BIG_ENDIAN) to gate the code (see html/canvas/DataView.cpp); could you please add another arm?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458364</commentid>
    <comment_count>12</comment_count>
      <attachid>105510</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2011-08-29 12:27:13 -0700</bug_when>
    <thetext>Created attachment 105510
fix big endian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458467</commentid>
    <comment_count>13</comment_count>
      <attachid>105510</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-29 14:52:14 -0700</bug_when>
    <thetext>Comment on attachment 105510
fix big endian

Great, thanks. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458516</commentid>
    <comment_count>14</comment_count>
      <attachid>105510</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 15:54:19 -0700</bug_when>
    <thetext>Comment on attachment 105510
fix big endian

Clearing flags on attachment: 105510

Committed r94026: &lt;http://trac.webkit.org/changeset/94026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458517</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 15:54:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105056</attachid>
            <date>2011-08-24 13:21:22 -0700</date>
            <delta_ts>2011-08-24 13:39:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66884-20110824132120.patch</filename>
            <type>text/plain</type>
            <size>3917</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4ODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YzdkY2ZlYTY4NTdhOWQ1
YjIzNjU4MWU2MDk1MjZmMTdlMDNhM2Q1Li45MGM1N2VkZDY1ZjU0M2Q4MTVhNmUyMTJjNzRkNzcw
OWM2OTgxYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMjQgIEpvaG4g
QmF1bWFuICA8amJhdW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWQgdXAgdGV4SW1h
Z2UgZnJvbSBCR1JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Njg4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJHUkEgaW5wdXQgaXMgY29tbW9uIGNvbWluZyBmcm9tIHNraWEsIHNvIG9wdGltaXplIEJH
UkEtPlJHQkEKKyAgICAgICAgY29udmVyc2lvbiBhbmQgYWxzbyBhdm9pZCB0aGUgcG9pbnRsZXNz
IFJHQkEgdG8gUkdCQSBjb252ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9VbnBhY2tpbmdBbmRQ
YWNraW5nKToKKwogMjAxMS0wOC0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBdm9pZCBhZGRpbmcgdGhlIHZpc2libGUgd2FzaCBsYXllciB0d2lj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDBkNzRlYjlmNTEwNGQ4NTJiOTUxNTJkODUxNTZiZDk4NjZlNzEy
NzQuLjE4ZDhiYTM2YjU2ZDczZDRlYTIzZjY0NTkzNmRiMTUyMWM3MmY1YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ3NCwxMyArNDc0LDEyIEBAIHZvaWQgdW5wYWNrT25lUm93T2ZBQkdSOFRvUkdCQTgo
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zCiAKIHZvaWQg
dW5wYWNrT25lUm93T2ZCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyAgICBjb25zdCB1
aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291
cmNlKTsKKyAgICB1aW50MzJfdCogZGVzdGluYXRpb24zMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDMyX3QqPihkZXN0aW5hdGlvbik7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsyXTsK
LSAgICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07Ci0gICAgICAgIGRlc3RpbmF0aW9u
WzJdID0gc291cmNlWzBdOwotICAgICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKLSAg
ICAgICAgc291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgICAgIHVp
bnQzMl90IGJncmEgPSBzb3VyY2UzMltpXTsKKyAgICAgICAgdWludDMyX3QgcmdiYSA9ICgoYmdy
YSA+PiAxNikgfCAoYmdyYSA8PCAxNikpICYgMHgwMGZmMDBmZiB8IGJncmEgJiAweGZmMDBmZjAw
OworICAgICAgICBkZXN0aW5hdGlvbjMyW2ldID0gcmdiYTsKICAgICB9CiB9CiAKQEAgLTExNTAs
MTQgKzExNDksMjQgQEAgc3RhdGljIHZvaWQgZG9VbnBhY2tpbmdBbmRQYWNraW5nKGNvbnN0IFNv
dXJjZVR5cGUqIHNvdXJjZURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dm9pZCAoKnJvd1BhY2tpbmdGdW5jKShjb25zdCBJbnRlcm1lZGlhdGVUeXBlKiwgRGVzdFR5cGUq
LCB1bnNpZ25lZCBpbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpCiB7Ci0gICAgT3duQXJyYXlQdHI8
SW50ZXJtZWRpYXRlVHlwZT4gdGVtcG9yYXJ5UkdCQURhdGEgPSBhZG9wdEFycmF5UHRyKG5ldyBJ
bnRlcm1lZGlhdGVUeXBlW3dpZHRoICogNF0pOwotICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBv
aW50ZXIgPSBzb3VyY2VEYXRhICsgaGVpZ2h0ICogc291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAg
dW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJSb3cgPSB3aWR0aCAqIGRlc3RpbmF0
aW9uRWxlbWVudHNQZXJQaXhlbDsKLSAgICB3aGlsZSAoc291cmNlRGF0YSA8IGVuZFBvaW50ZXIp
IHsKLSAgICAgICAgcm93VW5wYWNraW5nRnVuYyhzb3VyY2VEYXRhLCB0ZW1wb3JhcnlSR0JBRGF0
YS5nZXQoKSwgd2lkdGgpOwotICAgICAgICByb3dQYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0
YS5nZXQoKSwgZGVzdGluYXRpb25EYXRhLCB3aWR0aCk7Ci0gICAgICAgIHNvdXJjZURhdGEgKz0g
c291cmNlRWxlbWVudHNQZXJSb3c7Ci0gICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5h
dGlvbkVsZW1lbnRzUGVyUm93OworICAgIGlmIChyZWludGVycHJldF9jYXN0PHZvaWQqPihyb3dQ
YWNraW5nRnVuYykgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocGFja09uZVJvd09mUkdCQThU
b1JHQkE4KSkgeworICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQb2ludGVyID0gc291cmNl
RGF0YSArIGhlaWdodCAqIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICB1bnNpZ25lZCBp
bnQgZGVzdGluYXRpb25FbGVtZW50c1BlclJvdyA9IHdpZHRoICogZGVzdGluYXRpb25FbGVtZW50
c1BlclBpeGVsOworICAgICAgICB3aGlsZSAoc291cmNlRGF0YSA8IGVuZFBvaW50ZXIpIHsKKyAg
ICAgICAgICAgIHJvd1VucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgcmVpbnRlcnByZXRfY2FzdDxJ
bnRlcm1lZGlhdGVUeXBlKj4oZGVzdGluYXRpb25EYXRhKSwgd2lkdGgpOworICAgICAgICAgICAg
c291cmNlRGF0YSArPSBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgICAgIGRlc3RpbmF0
aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUm93OworICAgICAgICB9CisgICAgfSBl
bHNlIHsKKyAgICAgICAgT3duQXJyYXlQdHI8SW50ZXJtZWRpYXRlVHlwZT4gdGVtcG9yYXJ5UkdC
QURhdGEgPSBhZG9wdEFycmF5UHRyKG5ldyBJbnRlcm1lZGlhdGVUeXBlW3dpZHRoICogNF0pOwor
ICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQb2ludGVyID0gc291cmNlRGF0YSArIGhlaWdo
dCAqIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICB1bnNpZ25lZCBpbnQgZGVzdGluYXRp
b25FbGVtZW50c1BlclJvdyA9IHdpZHRoICogZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsOwor
ICAgICAgICB3aGlsZSAoc291cmNlRGF0YSA8IGVuZFBvaW50ZXIpIHsKKyAgICAgICAgICAgIHJv
d1VucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgdGVtcG9yYXJ5UkdCQURhdGEuZ2V0KCksIHdpZHRo
KTsKKyAgICAgICAgICAgIHJvd1BhY2tpbmdGdW5jKHRlbXBvcmFyeVJHQkFEYXRhLmdldCgpLCBk
ZXN0aW5hdGlvbkRhdGEsIHdpZHRoKTsKKyAgICAgICAgICAgIHNvdXJjZURhdGEgKz0gc291cmNl
RWxlbWVudHNQZXJSb3c7CisgICAgICAgICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVzdGluYXRp
b25FbGVtZW50c1BlclJvdzsKKyAgICAgICAgfQogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105059</attachid>
            <date>2011-08-24 13:39:57 -0700</date>
            <delta_ts>2011-08-25 09:41:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66884-20110824133955.patch</filename>
            <type>text/plain</type>
            <size>3921</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4ODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YzdkY2ZlYTY4NTdhOWQ1
YjIzNjU4MWU2MDk1MjZmMTdlMDNhM2Q1Li45MGM1N2VkZDY1ZjU0M2Q4MTVhNmUyMTJjNzRkNzcw
OWM2OTgxYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMjQgIEpvaG4g
QmF1bWFuICA8amJhdW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWQgdXAgdGV4SW1h
Z2UgZnJvbSBCR1JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Njg4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJHUkEgaW5wdXQgaXMgY29tbW9uIGNvbWluZyBmcm9tIHNraWEsIHNvIG9wdGltaXplIEJH
UkEtPlJHQkEKKyAgICAgICAgY29udmVyc2lvbiBhbmQgYWxzbyBhdm9pZCB0aGUgcG9pbnRsZXNz
IFJHQkEgdG8gUkdCQSBjb252ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9VbnBhY2tpbmdBbmRQ
YWNraW5nKToKKwogMjAxMS0wOC0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBdm9pZCBhZGRpbmcgdGhlIHZpc2libGUgd2FzaCBsYXllciB0d2lj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDBkNzRlYjlmNTEwNGQ4NTJiOTUxNTJkODUxNTZiZDk4NjZlNzEy
NzQuLjg5NmU4ZTljM2ZjZmRhOGVlNDM2ZGY3M2JmYWMxYWI0N2E0ZTJkMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ3NCwxMyArNDc0LDEyIEBAIHZvaWQgdW5wYWNrT25lUm93T2ZBQkdSOFRvUkdCQTgo
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zCiAKIHZvaWQg
dW5wYWNrT25lUm93T2ZCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyAgICBjb25zdCB1
aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291
cmNlKTsKKyAgICB1aW50MzJfdCogZGVzdGluYXRpb24zMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDMyX3QqPihkZXN0aW5hdGlvbik7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsyXTsK
LSAgICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07Ci0gICAgICAgIGRlc3RpbmF0aW9u
WzJdID0gc291cmNlWzBdOwotICAgICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKLSAg
ICAgICAgc291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgICAgIHVp
bnQzMl90IGJncmEgPSBzb3VyY2UzMltpXTsKKyAgICAgICAgdWludDMyX3QgcmdiYSA9ICgoKGJn
cmEgPj4gMTYpIHwgKGJncmEgPDwgMTYpKSAmIDB4MDBmZjAwZmYpIHwgKGJncmEgJiAweGZmMDBm
ZjAwKTsKKyAgICAgICAgZGVzdGluYXRpb24zMltpXSA9IHJnYmE7CiAgICAgfQogfQogCkBAIC0x
MTUwLDE0ICsxMTQ5LDI0IEBAIHN0YXRpYyB2b2lkIGRvVW5wYWNraW5nQW5kUGFja2luZyhjb25z
dCBTb3VyY2VUeXBlKiBzb3VyY2VEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQgKCpyb3dQYWNraW5nRnVuYykoY29uc3QgSW50ZXJtZWRpYXRlVHlwZSosIERlc3RU
eXBlKiwgdW5zaWduZWQgaW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKQogewotICAgIE93bkFycmF5
UHRyPEludGVybWVkaWF0ZVR5cGU+IHRlbXBvcmFyeVJHQkFEYXRhID0gYWRvcHRBcnJheVB0cihu
ZXcgSW50ZXJtZWRpYXRlVHlwZVt3aWR0aCAqIDRdKTsKLSAgICBjb25zdCBTb3VyY2VUeXBlKiBl
bmRQb2ludGVyID0gc291cmNlRGF0YSArIGhlaWdodCAqIHNvdXJjZUVsZW1lbnRzUGVyUm93Owot
ICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7Ci0gICAgd2hpbGUgKHNvdXJjZURhdGEgPCBlbmRQb2lu
dGVyKSB7Ci0gICAgICAgIHJvd1VucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgdGVtcG9yYXJ5UkdC
QURhdGEuZ2V0KCksIHdpZHRoKTsKLSAgICAgICAgcm93UGFja2luZ0Z1bmModGVtcG9yYXJ5UkdC
QURhdGEuZ2V0KCksIGRlc3RpbmF0aW9uRGF0YSwgd2lkdGgpOwotICAgICAgICBzb3VyY2VEYXRh
ICs9IHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVz
dGluYXRpb25FbGVtZW50c1BlclJvdzsKKyAgICBpZiAocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
cm93UGFja2luZ0Z1bmMpID09IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHBhY2tPbmVSb3dPZlJH
QkE4VG9SR0JBOCkpIHsKKyAgICAgICAgY29uc3QgU291cmNlVHlwZSogZW5kUG9pbnRlciA9IHNv
dXJjZURhdGEgKyBoZWlnaHQgKiBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgdW5zaWdu
ZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJSb3cgPSB3aWR0aCAqIGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJQaXhlbDsKKyAgICAgICAgd2hpbGUgKHNvdXJjZURhdGEgPCBlbmRQb2ludGVyKSB7
CisgICAgICAgICAgICByb3dVbnBhY2tpbmdGdW5jKHNvdXJjZURhdGEsIHJlaW50ZXJwcmV0X2Nh
c3Q8SW50ZXJtZWRpYXRlVHlwZSo+KGRlc3RpbmF0aW9uRGF0YSksIHdpZHRoKTsKKyAgICAgICAg
ICAgIHNvdXJjZURhdGEgKz0gc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgICAgICBkZXN0
aW5hdGlvbkRhdGEgKz0gZGVzdGluYXRpb25FbGVtZW50c1BlclJvdzsKKyAgICAgICAgfQorICAg
IH0gZWxzZSB7CisgICAgICAgIE93bkFycmF5UHRyPEludGVybWVkaWF0ZVR5cGU+IHRlbXBvcmFy
eVJHQkFEYXRhID0gYWRvcHRBcnJheVB0cihuZXcgSW50ZXJtZWRpYXRlVHlwZVt3aWR0aCAqIDRd
KTsKKyAgICAgICAgY29uc3QgU291cmNlVHlwZSogZW5kUG9pbnRlciA9IHNvdXJjZURhdGEgKyBo
ZWlnaHQgKiBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgdW5zaWduZWQgaW50IGRlc3Rp
bmF0aW9uRWxlbWVudHNQZXJSb3cgPSB3aWR0aCAqIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bDsKKyAgICAgICAgd2hpbGUgKHNvdXJjZURhdGEgPCBlbmRQb2ludGVyKSB7CisgICAgICAgICAg
ICByb3dVbnBhY2tpbmdGdW5jKHNvdXJjZURhdGEsIHRlbXBvcmFyeVJHQkFEYXRhLmdldCgpLCB3
aWR0aCk7CisgICAgICAgICAgICByb3dQYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YS5nZXQo
KSwgZGVzdGluYXRpb25EYXRhLCB3aWR0aCk7CisgICAgICAgICAgICBzb3VyY2VEYXRhICs9IHNv
dXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3Rp
bmF0aW9uRWxlbWVudHNQZXJSb3c7CisgICAgICAgIH0KICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105201</attachid>
            <date>2011-08-25 09:41:13 -0700</date>
            <delta_ts>2011-08-25 10:19:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66884-20110825094111.patch</filename>
            <type>text/plain</type>
            <size>5430</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4ODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YzdkY2ZlYTY4NTdhOWQ1
YjIzNjU4MWU2MDk1MjZmMTdlMDNhM2Q1Li45MGM1N2VkZDY1ZjU0M2Q4MTVhNmUyMTJjNzRkNzcw
OWM2OTgxYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMjQgIEpvaG4g
QmF1bWFuICA8amJhdW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWQgdXAgdGV4SW1h
Z2UgZnJvbSBCR1JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Njg4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJHUkEgaW5wdXQgaXMgY29tbW9uIGNvbWluZyBmcm9tIHNraWEsIHNvIG9wdGltaXplIEJH
UkEtPlJHQkEKKyAgICAgICAgY29udmVyc2lvbiBhbmQgYWxzbyBhdm9pZCB0aGUgcG9pbnRsZXNz
IFJHQkEgdG8gUkdCQSBjb252ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9VbnBhY2tpbmdBbmRQ
YWNraW5nKToKKwogMjAxMS0wOC0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBdm9pZCBhZGRpbmcgdGhlIHZpc2libGUgd2FzaCBsYXllciB0d2lj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDBkNzRlYjlmNTEwNGQ4NTJiOTUxNTJkODUxNTZiZDk4NjZlNzEy
NzQuLmE5YzViOTU3Yzg0NjBhYWQzYjRjNmNlNTY2OGQ0MzM3Y2ZiYjNkYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ3NCwxMyArNDc0LDEyIEBAIHZvaWQgdW5wYWNrT25lUm93T2ZBQkdSOFRvUkdCQTgo
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zCiAKIHZvaWQg
dW5wYWNrT25lUm93T2ZCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyAgICBjb25zdCB1
aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291
cmNlKTsKKyAgICB1aW50MzJfdCogZGVzdGluYXRpb24zMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDMyX3QqPihkZXN0aW5hdGlvbik7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsyXTsK
LSAgICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07Ci0gICAgICAgIGRlc3RpbmF0aW9u
WzJdID0gc291cmNlWzBdOwotICAgICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKLSAg
ICAgICAgc291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgICAgIHVp
bnQzMl90IGJncmEgPSBzb3VyY2UzMltpXTsKKyAgICAgICAgdWludDMyX3QgcmdiYSA9ICgoKGJn
cmEgPj4gMTYpIHwgKGJncmEgPDwgMTYpKSAmIDB4MDBmZjAwZmYpIHwgKGJncmEgJiAweGZmMDBm
ZjAwKTsKKyAgICAgICAgZGVzdGluYXRpb24zMltpXSA9IHJnYmE7CiAgICAgfQogfQogCkBAIC04
NzEsMTkgKzg3MCw2IEBAIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1JHQjhVbm11bHRpcGx5KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpCiAgICAgfQogfQogCi0vLyBU
aGlzIGlzIG9ubHkgdXNlZCB3aGVuIHRoZSBzb3VyY2UgZm9ybWF0IGlzIGRpZmZlcmVudCB0aGFu
IFNvdXJjZUZvcm1hdFJHQkE4Lgotdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvUkdCQTgoY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVs
c1BlclJvdykKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7Ci0gICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwotICAgICAgICBk
ZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsxXTsKLSAgICAgICAgZGVzdGluYXRpb25bMl0gPSBzb3Vy
Y2VbMl07Ci0gICAgICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOwotICAgICAgICBzb3Vy
Y2UgKz0gNDsKLSAgICAgICAgZGVzdGluYXRpb24gKz0gNDsKLSAgICB9Ci19Ci0KIHZvaWQgcGFj
a09uZVJvd09mUkdCQThUb1JHQkE4UHJlbXVsdGlwbHkoY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBAIC0xMTUw
LDE0ICsxMTM2LDI1IEBAIHN0YXRpYyB2b2lkIGRvVW5wYWNraW5nQW5kUGFja2luZyhjb25zdCBT
b3VyY2VUeXBlKiBzb3VyY2VEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQgKCpyb3dQYWNraW5nRnVuYykoY29uc3QgSW50ZXJtZWRpYXRlVHlwZSosIERlc3RUeXBl
KiwgdW5zaWduZWQgaW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKQogewotICAgIE93bkFycmF5UHRy
PEludGVybWVkaWF0ZVR5cGU+IHRlbXBvcmFyeVJHQkFEYXRhID0gYWRvcHRBcnJheVB0cihuZXcg
SW50ZXJtZWRpYXRlVHlwZVt3aWR0aCAqIDRdKTsKLSAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQ
b2ludGVyID0gc291cmNlRGF0YSArIGhlaWdodCAqIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAg
IHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0aW5h
dGlvbkVsZW1lbnRzUGVyUGl4ZWw7Ci0gICAgd2hpbGUgKHNvdXJjZURhdGEgPCBlbmRQb2ludGVy
KSB7Ci0gICAgICAgIHJvd1VucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgdGVtcG9yYXJ5UkdCQURh
dGEuZ2V0KCksIHdpZHRoKTsKLSAgICAgICAgcm93UGFja2luZ0Z1bmModGVtcG9yYXJ5UkdCQURh
dGEuZ2V0KCksIGRlc3RpbmF0aW9uRGF0YSwgd2lkdGgpOwotICAgICAgICBzb3VyY2VEYXRhICs9
IHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVzdGlu
YXRpb25FbGVtZW50c1BlclJvdzsKKyAgICBpZiAoIXJvd1BhY2tpbmdGdW5jKSB7CisgICAgICAg
IC8vIFRoZSByb3cgcGFja2luZyBpcyB0cml2aWFsLCBzbyBkb24ndCBib3RoZXIgd2l0aCBhIHRl
bXBvcmFyeSBidWZmZXIuCisgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBz
b3VyY2VEYXRhICsgaGVpZ2h0ICogc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIHVuc2ln
bmVkIGludCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWw7CisgICAgICAgIHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikg
eworICAgICAgICAgICAgcm93VW5wYWNraW5nRnVuYyhzb3VyY2VEYXRhLCByZWludGVycHJldF9j
YXN0PEludGVybWVkaWF0ZVR5cGUqPihkZXN0aW5hdGlvbkRhdGEpLCB3aWR0aCk7CisgICAgICAg
ICAgICBzb3VyY2VEYXRhICs9IHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICAgICAgZGVz
dGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJSb3c7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgeworICAgICAgICBPd25BcnJheVB0cjxJbnRlcm1lZGlhdGVUeXBlPiB0ZW1wb3Jh
cnlSR0JBRGF0YSA9IGFkb3B0QXJyYXlQdHIobmV3IEludGVybWVkaWF0ZVR5cGVbd2lkdGggKiA0
XSk7CisgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBzb3VyY2VEYXRhICsg
aGVpZ2h0ICogc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIHVuc2lnbmVkIGludCBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4
ZWw7CisgICAgICAgIHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikgeworICAgICAgICAg
ICAgcm93VW5wYWNraW5nRnVuYyhzb3VyY2VEYXRhLCB0ZW1wb3JhcnlSR0JBRGF0YS5nZXQoKSwg
d2lkdGgpOworICAgICAgICAgICAgcm93UGFja2luZ0Z1bmModGVtcG9yYXJ5UkdCQURhdGEuZ2V0
KCksIGRlc3RpbmF0aW9uRGF0YSwgd2lkdGgpOworICAgICAgICAgICAgc291cmNlRGF0YSArPSBz
b3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUm93OworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xNDM1LDcg
KzE0MzIsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZURhdGEsCiAgICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAg
ICAgIGNhc2UgQWxwaGFEb05vdGhpbmc6CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURh
dGFGb3JtYXQgIT0gU291cmNlRm9ybWF0UkdCQTggfHwgc291cmNlVW5wYWNrQWxpZ25tZW50ID4g
NCk7IC8vIEhhbmRsZWQgYWJvdmUgd2l0aCBmYXN0IGNhc2UuCi0gICAgICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQ4X3Q+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWln
aHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIHBhY2tPbmVSb3dPZlJHQkE4
VG9SR0JBOCwgNCk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3Q+KHNvdXJjZURh
dGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVu
dCwgZGVzdGluYXRpb24sIDAsIDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBBbHBoYURvUHJlbXVsdGlwbHk6CiAgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVp
bnQ4X3Q+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIHBhY2tPbmVSb3dPZlJHQkE4VG9SR0JBOFBy
ZW11bHRpcGx5LCA0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105207</attachid>
            <date>2011-08-25 10:19:08 -0700</date>
            <delta_ts>2011-08-29 12:27:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66884-20110825101907.patch</filename>
            <type>text/plain</type>
            <size>6055</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI4ODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YzdkY2ZlYTY4NTdhOWQ1
YjIzNjU4MWU2MDk1MjZmMTdlMDNhM2Q1Li45MGM1N2VkZDY1ZjU0M2Q4MTVhNmUyMTJjNzRkNzcw
OWM2OTgxYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMjQgIEpvaG4g
QmF1bWFuICA8amJhdW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWQgdXAgdGV4SW1h
Z2UgZnJvbSBCR1JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Njg4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJHUkEgaW5wdXQgaXMgY29tbW9uIGNvbWluZyBmcm9tIHNraWEsIHNvIG9wdGltaXplIEJH
UkEtPlJHQkEKKyAgICAgICAgY29udmVyc2lvbiBhbmQgYWxzbyBhdm9pZCB0aGUgcG9pbnRsZXNz
IFJHQkEgdG8gUkdCQSBjb252ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9VbnBhY2tpbmdBbmRQ
YWNraW5nKToKKwogMjAxMS0wOC0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBdm9pZCBhZGRpbmcgdGhlIHZpc2libGUgd2FzaCBsYXllciB0d2lj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDBkNzRlYjlmNTEwNGQ4NTJiOTUxNTJkODUxNTZiZDk4NjZlNzEy
NzQuLjIwZjNjMjMzM2ZiY2ZlNmY0NGU1ZTQ0ODc5ZTM5NWEyNGM5YTVhODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ3NCwxMyArNDc0LDEyIEBAIHZvaWQgdW5wYWNrT25lUm93T2ZBQkdSOFRvUkdCQTgo
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zCiAKIHZvaWQg
dW5wYWNrT25lUm93T2ZCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyAgICBjb25zdCB1
aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291
cmNlKTsKKyAgICB1aW50MzJfdCogZGVzdGluYXRpb24zMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDMyX3QqPihkZXN0aW5hdGlvbik7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsyXTsK
LSAgICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07Ci0gICAgICAgIGRlc3RpbmF0aW9u
WzJdID0gc291cmNlWzBdOwotICAgICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKLSAg
ICAgICAgc291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgICAgIHVp
bnQzMl90IGJncmEgPSBzb3VyY2UzMltpXTsKKyAgICAgICAgdWludDMyX3QgcmdiYSA9ICgoKGJn
cmEgPj4gMTYpIHwgKGJncmEgPDwgMTYpKSAmIDB4MDBmZjAwZmYpIHwgKGJncmEgJiAweGZmMDBm
ZjAwKTsKKyAgICAgICAgZGVzdGluYXRpb24zMltpXSA9IHJnYmE7CiAgICAgfQogfQogCkBAIC04
NzEsMTkgKzg3MCw2IEBAIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1JHQjhVbm11bHRpcGx5KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpCiAgICAgfQogfQogCi0vLyBU
aGlzIGlzIG9ubHkgdXNlZCB3aGVuIHRoZSBzb3VyY2UgZm9ybWF0IGlzIGRpZmZlcmVudCB0aGFu
IFNvdXJjZUZvcm1hdFJHQkE4Lgotdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvUkdCQTgoY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVs
c1BlclJvdykKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7Ci0gICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwotICAgICAgICBk
ZXN0aW5hdGlvblsxXSA9IHNvdXJjZVsxXTsKLSAgICAgICAgZGVzdGluYXRpb25bMl0gPSBzb3Vy
Y2VbMl07Ci0gICAgICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOwotICAgICAgICBzb3Vy
Y2UgKz0gNDsKLSAgICAgICAgZGVzdGluYXRpb24gKz0gNDsKLSAgICB9Ci19Ci0KIHZvaWQgcGFj
a09uZVJvd09mUkdCQThUb1JHQkE4UHJlbXVsdGlwbHkoY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBAIC0xMTUw
LDE0ICsxMTM2LDI1IEBAIHN0YXRpYyB2b2lkIGRvVW5wYWNraW5nQW5kUGFja2luZyhjb25zdCBT
b3VyY2VUeXBlKiBzb3VyY2VEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQgKCpyb3dQYWNraW5nRnVuYykoY29uc3QgSW50ZXJtZWRpYXRlVHlwZSosIERlc3RUeXBl
KiwgdW5zaWduZWQgaW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKQogewotICAgIE93bkFycmF5UHRy
PEludGVybWVkaWF0ZVR5cGU+IHRlbXBvcmFyeVJHQkFEYXRhID0gYWRvcHRBcnJheVB0cihuZXcg
SW50ZXJtZWRpYXRlVHlwZVt3aWR0aCAqIDRdKTsKLSAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQ
b2ludGVyID0gc291cmNlRGF0YSArIGhlaWdodCAqIHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAg
IHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0aW5h
dGlvbkVsZW1lbnRzUGVyUGl4ZWw7Ci0gICAgd2hpbGUgKHNvdXJjZURhdGEgPCBlbmRQb2ludGVy
KSB7Ci0gICAgICAgIHJvd1VucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgdGVtcG9yYXJ5UkdCQURh
dGEuZ2V0KCksIHdpZHRoKTsKLSAgICAgICAgcm93UGFja2luZ0Z1bmModGVtcG9yYXJ5UkdCQURh
dGEuZ2V0KCksIGRlc3RpbmF0aW9uRGF0YSwgd2lkdGgpOwotICAgICAgICBzb3VyY2VEYXRhICs9
IHNvdXJjZUVsZW1lbnRzUGVyUm93OwotICAgICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVzdGlu
YXRpb25FbGVtZW50c1BlclJvdzsKKyAgICBpZiAoIXJvd1BhY2tpbmdGdW5jKSB7CisgICAgICAg
IC8vIFRoZSByb3cgcGFja2luZyBpcyB0cml2aWFsLCBzbyBkb24ndCBib3RoZXIgd2l0aCBhIHRl
bXBvcmFyeSBidWZmZXIuCisgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBz
b3VyY2VEYXRhICsgaGVpZ2h0ICogc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIHVuc2ln
bmVkIGludCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWw7CisgICAgICAgIHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikg
eworICAgICAgICAgICAgcm93VW5wYWNraW5nRnVuYyhzb3VyY2VEYXRhLCByZWludGVycHJldF9j
YXN0PEludGVybWVkaWF0ZVR5cGUqPihkZXN0aW5hdGlvbkRhdGEpLCB3aWR0aCk7CisgICAgICAg
ICAgICBzb3VyY2VEYXRhICs9IHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICAgICAgZGVz
dGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJSb3c7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgeworICAgICAgICBPd25BcnJheVB0cjxJbnRlcm1lZGlhdGVUeXBlPiB0ZW1wb3Jh
cnlSR0JBRGF0YSA9IGFkb3B0QXJyYXlQdHIobmV3IEludGVybWVkaWF0ZVR5cGVbd2lkdGggKiA0
XSk7CisgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBzb3VyY2VEYXRhICsg
aGVpZ2h0ICogc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIHVuc2lnbmVkIGludCBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4
ZWw7CisgICAgICAgIHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikgeworICAgICAgICAg
ICAgcm93VW5wYWNraW5nRnVuYyhzb3VyY2VEYXRhLCB0ZW1wb3JhcnlSR0JBRGF0YS5nZXQoKSwg
d2lkdGgpOworICAgICAgICAgICAgcm93UGFja2luZ0Z1bmModGVtcG9yYXJ5UkdCQURhdGEuZ2V0
KCksIGRlc3RpbmF0aW9uRGF0YSwgd2lkdGgpOworICAgICAgICAgICAgc291cmNlRGF0YSArPSBz
b3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0
aW5hdGlvbkVsZW1lbnRzUGVyUm93OworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xMTk3LDcg
KzExOTQsMTAgQEAgc3RhdGljIHZvaWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZURhdGEs
CiAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIGVuZFBvaW50ZXIgPSBzb3VyY2UgKyBoZWlnaHQgKiBz
b3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJSb3cgPSB3aWR0aCAqIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbDsKICAgICAg
ICAgd2hpbGUgKHNvdXJjZSA8IGVuZFBvaW50ZXIpIHsKLSAgICAgICAgICAgIHJvd1BhY2tpbmdG
dW5jKHNvdXJjZSwgZGVzdGluYXRpb25EYXRhLCB3aWR0aCk7CisgICAgICAgICAgICBpZiAocm93
UGFja2luZ0Z1bmMpCisgICAgICAgICAgICAgICAgcm93UGFja2luZ0Z1bmMoc291cmNlLCBkZXN0
aW5hdGlvbkRhdGEsIHdpZHRoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBt
ZW1jcHkoZGVzdGluYXRpb25EYXRhLCBzb3VyY2UsIHdpZHRoICogNCk7CiAgICAgICAgICAgICBz
b3VyY2UgKz0gc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgICAgICBkZXN0aW5hdGlvbkRh
dGEgKz0gZGVzdGluYXRpb25FbGVtZW50c1BlclJvdzsKICAgICAgICAgfQpAQCAtMTQzNSw3ICsx
NDM1LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25zdCB1aW50OF90
KiBzb3VyY2VEYXRhLAogICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgICAg
ICBjYXNlIEFscGhhRG9Ob3RoaW5nOgogICAgICAgICAgICAgICAgIEFTU0VSVChzb3VyY2VEYXRh
Rm9ybWF0ICE9IFNvdXJjZUZvcm1hdFJHQkE4IHx8IHNvdXJjZVVucGFja0FsaWdubWVudCA+IDQp
OyAvLyBIYW5kbGVkIGFib3ZlIHdpdGggZmFzdCBjYXNlLgotICAgICAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50OF90Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCBwYWNrT25lUm93T2ZSR0JBOFRv
UkdCQTgsIDQpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90Pihzb3VyY2VEYXRh
LCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQs
IGRlc3RpbmF0aW9uLCAwLCA0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgQWxwaGFEb1ByZW11bHRpcGx5OgogICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCBwYWNrT25lUm93T2ZSR0JBOFRvUkdCQThQcmVt
dWx0aXBseSwgNCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105510</attachid>
            <date>2011-08-29 12:27:13 -0700</date>
            <delta_ts>2011-08-29 15:54:19 -0700</delta_ts>
            <desc>fix big endian</desc>
            <filename>bug-66884-20110829122712.patch</filename>
            <type>text/plain</type>
            <size>6233</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM3ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMjQ4ZTA5MWE0MzQwMmU0
NjBmMjEyZTg5YzlhMmUxNzk5MzgwNTY1Li4zNWEwODU2ZjU0ZWViNzQzMzUyOThkMGFjY2IyMWU3
YjgxZjkxNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMjQgIEpvaG4g
QmF1bWFuICA8amJhdW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWQgdXAgdGV4SW1h
Z2UgZnJvbSBCR1JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Njg4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJHUkEgaW5wdXQgaXMgY29tbW9uIGNvbWluZyBmcm9tIHNraWEsIHNvIG9wdGltaXplIEJH
UkEtPlJHQkEKKyAgICAgICAgY29udmVyc2lvbiBhbmQgYWxzbyBhdm9pZCB0aGUgcG9pbnRsZXNz
IFJHQkEgdG8gUkdCQSBjb252ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9VbnBhY2tpbmdBbmRQ
YWNraW5nKToKKwogMjAxMS0wOC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkzNzcxLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwCmluZGV4IDczY2JiZTgwZWFlNDMwNDJkN2RlNmNlNjkwYzgzNTc3NTlmMGVlY2MuLmNi
NmQ0OGMzZGQ5M2EzNmQ3OTczMThiYWRlY2QxZGEzN2M2MDA0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKQEAg
LTQ3NCwxMyArNDc0LDE5IEBAIHZvaWQgdW5wYWNrT25lUm93T2ZBQkdSOFRvUkdCQTgoY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zCiAKIHZvaWQgdW5wYWNr
T25lUm93T2ZCR1JBOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKKyAgICBjb25zdCB1aW50MzJf
dCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oc291cmNlKTsK
KyAgICB1aW50MzJfdCogZGVzdGluYXRpb24zMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Qq
PihkZXN0aW5hdGlvbik7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQ
ZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsyXTsKLSAgICAg
ICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07Ci0gICAgICAgIGRlc3RpbmF0aW9uWzJdID0g
c291cmNlWzBdOwotICAgICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKLSAgICAgICAg
c291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7CisgICAgICAgIHVpbnQzMl90
IGJncmEgPSBzb3VyY2UzMltpXTsKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICAgICAgdWludDMy
X3QgYnJNYXNrID0gMHhmZjAwZmYwMDsKKyAgICAgICAgdWludDMyX3QgZ2FNYXNrID0gMHgwMGZm
MDBmZjsKKyNlbHNlCisgICAgICAgIHVpbnQzMl90IGJyTWFzayA9IDB4MDBmZjAwZmY7CisgICAg
ICAgIHVpbnQzMl90IGdhTWFzayA9IDB4ZmYwMGZmMDA7CisjZW5kaWYKKyAgICAgICAgdWludDMy
X3QgcmdiYSA9ICgoKGJncmEgPj4gMTYpIHwgKGJncmEgPDwgMTYpKSAmIGJyTWFzaykgfCAoYmdy
YSAmIGdhTWFzayk7CisgICAgICAgIGRlc3RpbmF0aW9uMzJbaV0gPSByZ2JhOwogICAgIH0KIH0K
IApAQCAtODcxLDE5ICs4NzcsNiBAQCB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9SR0I4VW5tdWx0
aXBseShjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aQogICAgIH0KIH0K
IAotLy8gVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiB0aGUgc291cmNlIGZvcm1hdCBpcyBkaWZmZXJl
bnQgdGhhbiBTb3VyY2VGb3JtYXRSR0JBOC4KLXZvaWQgcGFja09uZVJvd09mUkdCQThUb1JHQkE4
KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIGlu
dCBwaXhlbHNQZXJSb3cpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKLSAg
ICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07Ci0gICAgICAgIGRlc3RpbmF0aW9uWzJd
ID0gc291cmNlWzJdOwotICAgICAgICBkZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKLSAgICAg
ICAgc291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7Ci0gICAgfQotfQotCiB2
b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9SR0JBOFByZW11bHRpcGx5KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIGludCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtMTE1MCwxNCArMTE0MywyNSBAQCBzdGF0aWMgdm9pZCBkb1VucGFja2luZ0FuZFBhY2tpbmco
Y29uc3QgU291cmNlVHlwZSogc291cmNlRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkICgqcm93UGFja2luZ0Z1bmMpKGNvbnN0IEludGVybWVkaWF0ZVR5cGUqLCBE
ZXN0VHlwZSosIHVuc2lnbmVkIGludCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKLSAgICBPd25B
cnJheVB0cjxJbnRlcm1lZGlhdGVUeXBlPiB0ZW1wb3JhcnlSR0JBRGF0YSA9IGFkb3B0QXJyYXlQ
dHIobmV3IEludGVybWVkaWF0ZVR5cGVbd2lkdGggKiA0XSk7Ci0gICAgY29uc3QgU291cmNlVHlw
ZSogZW5kUG9pbnRlciA9IHNvdXJjZURhdGEgKyBoZWlnaHQgKiBzb3VyY2VFbGVtZW50c1BlclJv
dzsKLSAgICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1BlclJvdyA9IHdpZHRoICog
ZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsOwotICAgIHdoaWxlIChzb3VyY2VEYXRhIDwgZW5k
UG9pbnRlcikgewotICAgICAgICByb3dVbnBhY2tpbmdGdW5jKHNvdXJjZURhdGEsIHRlbXBvcmFy
eVJHQkFEYXRhLmdldCgpLCB3aWR0aCk7Ci0gICAgICAgIHJvd1BhY2tpbmdGdW5jKHRlbXBvcmFy
eVJHQkFEYXRhLmdldCgpLCBkZXN0aW5hdGlvbkRhdGEsIHdpZHRoKTsKLSAgICAgICAgc291cmNl
RGF0YSArPSBzb3VyY2VFbGVtZW50c1BlclJvdzsKLSAgICAgICAgZGVzdGluYXRpb25EYXRhICs9
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJSb3c7CisgICAgaWYgKCFyb3dQYWNraW5nRnVuYykgewor
ICAgICAgICAvLyBUaGUgcm93IHBhY2tpbmcgaXMgdHJpdmlhbCwgc28gZG9uJ3QgYm90aGVyIHdp
dGggYSB0ZW1wb3JhcnkgYnVmZmVyLgorICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQb2lu
dGVyID0gc291cmNlRGF0YSArIGhlaWdodCAqIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAg
ICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1BlclJvdyA9IHdpZHRoICogZGVzdGlu
YXRpb25FbGVtZW50c1BlclBpeGVsOworICAgICAgICB3aGlsZSAoc291cmNlRGF0YSA8IGVuZFBv
aW50ZXIpIHsKKyAgICAgICAgICAgIHJvd1VucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgcmVpbnRl
cnByZXRfY2FzdDxJbnRlcm1lZGlhdGVUeXBlKj4oZGVzdGluYXRpb25EYXRhKSwgd2lkdGgpOwor
ICAgICAgICAgICAgc291cmNlRGF0YSArPSBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAg
ICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUm93OworICAgICAg
ICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgT3duQXJyYXlQdHI8SW50ZXJtZWRpYXRlVHlwZT4g
dGVtcG9yYXJ5UkdCQURhdGEgPSBhZG9wdEFycmF5UHRyKG5ldyBJbnRlcm1lZGlhdGVUeXBlW3dp
ZHRoICogNF0pOworICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQb2ludGVyID0gc291cmNl
RGF0YSArIGhlaWdodCAqIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICB1bnNpZ25lZCBp
bnQgZGVzdGluYXRpb25FbGVtZW50c1BlclJvdyA9IHdpZHRoICogZGVzdGluYXRpb25FbGVtZW50
c1BlclBpeGVsOworICAgICAgICB3aGlsZSAoc291cmNlRGF0YSA8IGVuZFBvaW50ZXIpIHsKKyAg
ICAgICAgICAgIHJvd1VucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgdGVtcG9yYXJ5UkdCQURhdGEu
Z2V0KCksIHdpZHRoKTsKKyAgICAgICAgICAgIHJvd1BhY2tpbmdGdW5jKHRlbXBvcmFyeVJHQkFE
YXRhLmdldCgpLCBkZXN0aW5hdGlvbkRhdGEsIHdpZHRoKTsKKyAgICAgICAgICAgIHNvdXJjZURh
dGEgKz0gc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgICAgICBkZXN0aW5hdGlvbkRhdGEg
Kz0gZGVzdGluYXRpb25FbGVtZW50c1BlclJvdzsKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAt
MTE5Nyw3ICsxMjAxLDEwIEBAIHN0YXRpYyB2b2lkIGRvUGFja2luZyhjb25zdCB2b2lkKiBzb3Vy
Y2VEYXRhLAogICAgICAgICBjb25zdCB1aW50OF90KiBlbmRQb2ludGVyID0gc291cmNlICsgaGVp
Z2h0ICogc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIHVuc2lnbmVkIGludCBkZXN0aW5h
dGlvbkVsZW1lbnRzUGVyUm93ID0gd2lkdGggKiBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7
CiAgICAgICAgIHdoaWxlIChzb3VyY2UgPCBlbmRQb2ludGVyKSB7Ci0gICAgICAgICAgICByb3dQ
YWNraW5nRnVuYyhzb3VyY2UsIGRlc3RpbmF0aW9uRGF0YSwgd2lkdGgpOworICAgICAgICAgICAg
aWYgKHJvd1BhY2tpbmdGdW5jKQorICAgICAgICAgICAgICAgIHJvd1BhY2tpbmdGdW5jKHNvdXJj
ZSwgZGVzdGluYXRpb25EYXRhLCB3aWR0aCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbWVtY3B5KGRlc3RpbmF0aW9uRGF0YSwgc291cmNlLCB3aWR0aCAqIDQpOwogICAgICAg
ICAgICAgc291cmNlICs9IHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICAgICAgZGVzdGlu
YXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIH0KQEAgLTE0
MzUsNyArMTQ0Miw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3Qg
dWludDhfdCogc291cmNlRGF0YSwKICAgICAgICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAg
ICAgICAgICAgY2FzZSBBbHBoYURvTm90aGluZzoKICAgICAgICAgICAgICAgICBBU1NFUlQoc291
cmNlRGF0YUZvcm1hdCAhPSBTb3VyY2VGb3JtYXRSR0JBOCB8fCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQgPiA0KTsgLy8gSGFuZGxlZCBhYm92ZSB3aXRoIGZhc3QgY2FzZS4KLSAgICAgICAgICAgICAg
ICBkb1BhY2tpbmc8dWludDhfdD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgs
IGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgcGFja09uZVJvd09m
UkdCQThUb1JHQkE4LCA0KTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdD4oc291
cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxp
Z25tZW50LCBkZXN0aW5hdGlvbiwgMCwgNCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIEFscGhhRG9QcmVtdWx0aXBseToKICAgICAgICAgICAgICAgICBkb1BhY2tp
bmc8dWludDhfdD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgcGFja09uZVJvd09mUkdCQThUb1JH
QkE4UHJlbXVsdGlwbHksIDQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>