<?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>74372</bug_id>
          
          <creation_ts>2011-12-12 17:06:26 -0800</creation_ts>
          <short_desc>WebAudio: Optimize calculateNormalizationScale().</short_desc>
          <delta_ts>2012-01-13 15:52:24 -0800</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>crogers</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519706</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-12-12 17:06:26 -0800</bug_when>
    <thetext>WebAudio: Optimize calculateNormalizationScale().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519716</commentid>
    <comment_count>1</comment_count>
      <attachid>118916</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-12-12 17:13:28 -0800</bug_when>
    <thetext>Created attachment 118916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535190</commentid>
    <comment_count>2</comment_count>
      <attachid>118916</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-12 14:44:52 -0800</bug_when>
    <thetext>Comment on attachment 118916
Patch

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

&gt; Source/WebCore/platform/audio/Reverb.cpp:67
&gt; +        float channelPower = 0.0;

WebKit style: 0 instead of 0.0

&gt; Source/WebCore/platform/audio/Reverb.cpp:68
&gt; +        vsvesq(response-&gt;channel(i)-&gt;data(), 1, &amp;power, length);

You need to pass in &amp;channelPower instead of &amp;power

&gt; Source/WebCore/platform/audio/VectorMath.cpp:90
&gt; +void vsvesq(const float* sourceP, int sourceStride, float* dest, size_t framesToProcess)

nit: I&apos;d use destP instead of dest to be consistent with the other functions

&gt; Source/WebCore/platform/audio/VectorMath.cpp:92
&gt; +    vDSP_svesq(const_cast&lt;float*&gt;(sourceP), sourceStride, dest, framesToProcess);

Might need the #if defined(__ppc__) || defined(__i386__) work-around like the other functions...

&gt; Source/WebCore/platform/audio/VectorMath.cpp:309
&gt; +void vsvesq(const float* sourceP, int sourceStride, float* dest, size_t framesToProcess);

nit: I&apos;d use destP instead of dest to be consistent with the other functions

&gt; Source/WebCore/platform/audio/VectorMath.h:40
&gt; +void vsvesq(const float* sourceP, int sourceStride, float* dest, size_t framesToProcess);

Simple comment describing what function does.

consistency nit: dest -&gt; destP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535255</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-12 16:06:27 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 118916 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118916&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/audio/Reverb.cpp:67
&gt; &gt; +        float channelPower = 0.0;
&gt; 
&gt; WebKit style: 0 instead of 0.0

Will change.

&gt; &gt; Source/WebCore/platform/audio/Reverb.cpp:68
&gt; &gt; +        vsvesq(response-&gt;channel(i)-&gt;data(), 1, &amp;power, length);
&gt; 
&gt; You need to pass in &amp;channelPower instead of &amp;power

Whoops!  Good catch.

&gt; &gt; Source/WebCore/platform/audio/VectorMath.cpp:90
&gt; &gt; +void vsvesq(const float* sourceP, int sourceStride, float* dest, size_t framesToProcess)
&gt; 
&gt; nit: I&apos;d use destP instead of dest to be consistent with the other functions

How about &quot;sumP&quot;?

&gt; &gt; Source/WebCore/platform/audio/VectorMath.cpp:92
&gt; &gt; +    vDSP_svesq(const_cast&lt;float*&gt;(sourceP), sourceStride, dest, framesToProcess);
&gt; 
&gt; Might need the #if defined(__ppc__) || defined(__i386__) work-around like the other functions...

Nope, this is one of the functions not in vDSP_translate.h.

&gt; &gt; Source/WebCore/platform/audio/VectorMath.cpp:309
&gt; &gt; +void vsvesq(const float* sourceP, int sourceStride, float* dest, size_t framesToProcess);
&gt; 
&gt; nit: I&apos;d use destP instead of dest to be consistent with the other functions

Ditto.

&gt; &gt; Source/WebCore/platform/audio/VectorMath.h:40
&gt; &gt; +void vsvesq(const float* sourceP, int sourceStride, float* dest, size_t framesToProcess);
&gt; 
&gt; Simple comment describing what function does.

Sure thing.

&gt; consistency nit: dest -&gt; destP

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535256</commentid>
    <comment_count>4</comment_count>
      <attachid>122330</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-12 16:08:06 -0800</bug_when>
    <thetext>Created attachment 122330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535312</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-12 17:06:28 -0800</bug_when>
    <thetext>Looks ok to me, but it seems like your patch is not applying.  You might need to update your source and re-upload a new patch.

Ok with me once that&apos;s done and the bots pass.  I&apos;m not a reviewer so I can&apos;t R+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535803</commentid>
    <comment_count>6</comment_count>
      <attachid>122462</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-13 10:59:41 -0800</bug_when>
    <thetext>Created attachment 122462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535894</commentid>
    <comment_count>7</comment_count>
      <attachid>122462</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 12:31:35 -0800</bug_when>
    <thetext>Comment on attachment 122462
Patch

Attachment 122462 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11236142</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535901</commentid>
    <comment_count>8</comment_count>
      <attachid>122480</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-13 12:41:01 -0800</bug_when>
    <thetext>Created attachment 122480
Patch

Fixed a compile error in the non-Darwin section of VectorMath.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536017</commentid>
    <comment_count>9</comment_count>
      <attachid>122480</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-13 15:05:15 -0800</bug_when>
    <thetext>Comment on attachment 122480
Patch

rs=me based on Chris&apos; &quot;unofficial&quot; review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536055</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-13 15:52:24 -0800</bug_when>
    <thetext>Committed r105004: &lt;http://trac.webkit.org/changeset/105004&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118916</attachid>
            <date>2011-12-12 17:13:28 -0800</date>
            <delta_ts>2012-01-12 16:08:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74372-20111212171327.patch</filename>
            <type>text/plain</type>
            <size>5959</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFmZjk1NzdjMDA1YjMz
NzVmY2E1ZDkyNTVlZDQ5Y2EwNGY5MDM2YS4uNGI1MmEwN2QwNTZmNTQ3YjVlMGRhNjIzZTliNWQ2
ZWVkZDFlNGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBjYWxjdWxhdGVOb3JtYWxpemF0aW9uU2NhbGUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0
ZU5vcm1hbGl6YXRpb25TY2FsZSk6IFJlcGxhY2UgaW1wbGVtZW50YXRpb24gd2l0aCBvcHRpbWl6
ZWQgdmVjdG9yCisgICAgICAgICAgICBtYXRoIG9wZXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJldmVyYjo6UmV2ZXJiKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OnZzdmVzcSk6IFZlY3RvciBtYXRoIG9w
ZXJhdGlvbiBmb3Igc3F1YXJlZCBzdW0gb2YgZWxlbWVudHMuCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vVmVjdG9yTWF0aC5oOgorCisyMDExLTEyLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCiAgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6ZSBBdWRpb0NoYW5uZWw6Om1h
eEFic1ZhbHVlKCkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NDM1OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9S
ZXZlcmIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcAppbmRl
eCBiNjIwNGZmZjczMWNhNWVjOTJmNzhiZWY0MjA3ZjZiZjc1Y2ZmMWFiLi5iMWU1NmI0YzVjZWQw
MzAwMWM1ZTA4MzI2NmY4OWViOTRiNzYxNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9SZXZlcmIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1JldmVyYi5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgog
I2luY2x1ZGUgIkF1ZGlvRmlsZVJlYWRlci5oIgogI2luY2x1ZGUgIlJldmVyYkNvbnZvbHZlci5o
IgorI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC00NiwyOCArNDcs
MjYgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2lu
ZyBuYW1lc3BhY2UgVmVjdG9yTWF0aDsKKwogLy8gRW1waXJpY2FsIGdhaW4gY2FsaWJyYXRpb24g
dGVzdGVkIGFjcm9zcyBtYW55IGltcHVsc2UgcmVzcG9uc2VzIHRvIGVuc3VyZSBwZXJjZWl2ZWQg
dm9sdW1lIGlzIHNhbWUgYXMgZHJ5ICh1bnByb2Nlc3NlZCkgc2lnbmFsCi1jb25zdCBkb3VibGUg
R2FpbkNhbGlicmF0aW9uID0gLTU4LjA7Citjb25zdCBmbG9hdCBHYWluQ2FsaWJyYXRpb24gPSAt
NTguMDsKIAogLy8gQSBtaW5pbXVtIHBvd2VyIHZhbHVlIHRvIHdoZW4gbm9ybWFsaXppbmcgYSBz
aWxlbnQgKG9yIHZlcnkgcXVpZXQpIGltcHVsc2UgcmVzcG9uc2UKLWNvbnN0IGRvdWJsZSBNaW5Q
b3dlciA9IDAuMDAwMTI1OworY29uc3QgZmxvYXQgTWluUG93ZXIgPSAwLjAwMDEyNTsKICAgICAK
LXN0YXRpYyBkb3VibGUgY2FsY3VsYXRlTm9ybWFsaXphdGlvblNjYWxlKEF1ZGlvQnVzKiByZXNw
b25zZSkKK3N0YXRpYyBmbG9hdCBjYWxjdWxhdGVOb3JtYWxpemF0aW9uU2NhbGUoQXVkaW9CdXMq
IHJlc3BvbnNlKQogewogICAgIC8vIE5vcm1hbGl6ZSBieSBSTVMgcG93ZXIKICAgICBzaXplX3Qg
bnVtYmVyT2ZDaGFubmVscyA9IHJlc3BvbnNlLT5udW1iZXJPZkNoYW5uZWxzKCk7CiAgICAgc2l6
ZV90IGxlbmd0aCA9IHJlc3BvbnNlLT5sZW5ndGgoKTsKIAotICAgIGRvdWJsZSBwb3dlciA9IDAu
MDsKKyAgICBmbG9hdCBwb3dlciA9IDAuMDsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bnVtYmVyT2ZDaGFubmVsczsgKytpKSB7Ci0gICAgICAgIGludCBuID0gbGVuZ3RoOwotICAgICAg
ICBmbG9hdCogcCA9IHJlc3BvbnNlLT5jaGFubmVsKGkpLT5kYXRhKCk7Ci0KLSAgICAgICAgd2hp
bGUgKG4tLSkgewotICAgICAgICAgICAgZmxvYXQgc2FtcGxlID0gKnArKzsKLSAgICAgICAgICAg
IHBvd2VyICs9IHNhbXBsZSAqIHNhbXBsZTsKLSAgICAgICAgfQorICAgICAgICBmbG9hdCBjaGFu
bmVsUG93ZXIgPSAwLjA7CisgICAgICAgIHZzdmVzcShyZXNwb25zZS0+Y2hhbm5lbChpKS0+ZGF0
YSgpLCAxLCAmcG93ZXIsIGxlbmd0aCk7CisgICAgICAgIHBvd2VyICs9IGNoYW5uZWxQb3dlcjsK
ICAgICB9CiAKICAgICBwb3dlciA9IHNxcnQocG93ZXIgLyAobnVtYmVyT2ZDaGFubmVscyAqIGxl
bmd0aCkpOwpAQCAtNzYsOSArNzUsOSBAQCBzdGF0aWMgZG91YmxlIGNhbGN1bGF0ZU5vcm1hbGl6
YXRpb25TY2FsZShBdWRpb0J1cyogcmVzcG9uc2UpCiAgICAgaWYgKGlzaW5mKHBvd2VyKSB8fCBp
c25hbihwb3dlcikgfHwgcG93ZXIgPCBNaW5Qb3dlcikKICAgICAgICAgcG93ZXIgPSBNaW5Qb3dl
cjsKIAotICAgIGRvdWJsZSBzY2FsZSA9IDEuMCAvIHBvd2VyOworICAgIGZsb2F0IHNjYWxlID0g
MS4wIC8gcG93ZXI7CiAKLSAgICBzY2FsZSAqPSBwb3coMTAuMCwgR2FpbkNhbGlicmF0aW9uICog
MC4wNSk7IC8vIGNhbGlicmF0ZSB0byBtYWtlIHBlcmNlaXZlZCB2b2x1bWUgc2FtZSBhcyB1bnBy
b2Nlc3NlZAorICAgIHNjYWxlICo9IHBvd2YoMTAuMCwgR2FpbkNhbGlicmF0aW9uICogMC4wNSk7
IC8vIGNhbGlicmF0ZSB0byBtYWtlIHBlcmNlaXZlZCB2b2x1bWUgc2FtZSBhcyB1bnByb2Nlc3Nl
ZAogCiAgICAgLy8gVHJ1ZS1zdGVyZW8gY29tcGVuc2F0aW9uCiAgICAgaWYgKHJlc3BvbnNlLT5u
dW1iZXJPZkNoYW5uZWxzKCkgPT0gNCkKQEAgLTg5LDcgKzg4LDcgQEAgc3RhdGljIGRvdWJsZSBj
YWxjdWxhdGVOb3JtYWxpemF0aW9uU2NhbGUoQXVkaW9CdXMqIHJlc3BvbnNlKQogCiBSZXZlcmI6
OlJldmVyYihBdWRpb0J1cyogaW1wdWxzZVJlc3BvbnNlLCBzaXplX3QgcmVuZGVyU2xpY2VTaXpl
LCBzaXplX3QgbWF4RkZUU2l6ZSwgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIGJvb2wgdXNlQmFj
a2dyb3VuZFRocmVhZHMpCiB7Ci0gICAgZG91YmxlIHNjYWxlID0gY2FsY3VsYXRlTm9ybWFsaXph
dGlvblNjYWxlKGltcHVsc2VSZXNwb25zZSk7CisgICAgZmxvYXQgc2NhbGUgPSBjYWxjdWxhdGVO
b3JtYWxpemF0aW9uU2NhbGUoaW1wdWxzZVJlc3BvbnNlKTsKICAgICBpZiAoc2NhbGUpCiAgICAg
ICAgIGltcHVsc2VSZXNwb25zZS0+c2NhbGUoc2NhbGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCmluZGV4IGY5YTVmMWJjYmZjNDk0NGI4NzA5YWI5
M2I5M2EzY2QwYjgxYWRkNzAuLjdhY2IwZjM2YzgxNzgxYzI1NjI1ODkzZWRjZTNhNmNhZjYzYzY1
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCkBA
IC04Niw2ICs4NiwxMSBAQCB2b2lkIHZtYXhtZ3YoY29uc3QgZmxvYXQgKnNvdXJjZVAsIGludCBz
b3VyY2VTdHJpZGUsIGZsb2F0ICpkZXN0LCBzaXplX3QgZnJhbWVzVAogewogICAgIHZEU1BfbWF4
bWd2KHNvdXJjZVAsIHNvdXJjZVN0cmlkZSwgZGVzdCwgZnJhbWVzVG9Qcm9jZXNzKTsKIH0KKwor
dm9pZCB2c3Zlc3EoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZsb2F0
KiBkZXN0LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIHZEU1Bfc3Zlc3EoY29uc3Rf
Y2FzdDxmbG9hdCo+KHNvdXJjZVApLCBzb3VyY2VTdHJpZGUsIGRlc3QsIGZyYW1lc1RvUHJvY2Vz
cyk7Cit9CiAjZWxzZQogCiB2b2lkIHZhZGQoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291
cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxv
YXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKQEAgLTMw
MCw2ICszMDUsMTcgQEAgdm9pZCB2bWF4bWd2KGNvbnN0IGZsb2F0ICpzb3VyY2VQLCBpbnQgc291
cmNlU3RyaWRlLCBmbG9hdCAqZGVzdCwgc2l6ZV90IGZyYW1lc1QKIAogICAgIHJldHVybiBtYXg7
CiB9CisKK3ZvaWQgdnN2ZXNxKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRl
LCBmbG9hdCogZGVzdCwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7Cit7CisgICAgLy8gRklYTUU6
IG9wdGltaXplIGZvciBTU0UKKyAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICB3aGls
ZSAobi0tKSB7CisgICAgICAgIGZsb2F0IHNhbXBsZSA9ICpzb3VyY2VQOworICAgICAgICBwb3dl
ciArPSBzYW1wbGUgKiBzYW1wbGU7CisgICAgICAgIHNvdXJjZVAgKz0gc291cmNlU3RyaWRlOwor
ICAgIH0KK30KICNlbmRpZiAvLyBPUyhEQVJXSU4pCiAKIH0gLy8gbmFtZXNwYWNlIFZlY3Rvck1h
dGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGgu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaAppbmRleCBhMTRh
ZjcwODg2Y2I1N2M3NDE3OTljMWUzNGJjN2QzYWFhMGExNWQ3Li43MDA3OTI5YmNiNWZmNjAwNmM5
NDQ1Y2E0OTczMDAxYjZlNDcyZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9WZWN0b3JNYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
VmVjdG9yTWF0aC5oCkBAIC0zNyw2ICszNyw3IEBAIHZvaWQgdm11bChjb25zdCBmbG9hdCogc291
cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzCiB2
b2lkIHZhc20oY29uc3QgZmxvYXQgKnNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3Qg
ZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQgKnNjYWxhck11bHQsIGZs
b2F0ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGludCBmcmFtZXNUb1Byb2Nlc3MpOwogdm9pZCB2
c21hKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGZsb2F0ICpzY2Fs
YXJNdWx0LCBjb25zdCBmbG9hdCAqc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCAq
ZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKTsKIHZvaWQgdm1heG1n
dihjb25zdCBmbG9hdCAqc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQgKmRlc3QsIHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2c3Zlc3EoY29uc3QgZmxvYXQqIHNvdXJjZVAs
IGludCBzb3VyY2VTdHJpZGUsIGZsb2F0KiBkZXN0LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsK
IAogfSAvLyBuYW1lc3BhY2UgVmVjdG9yTWF0aAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122330</attachid>
            <date>2012-01-12 16:08:06 -0800</date>
            <delta_ts>2012-01-13 10:59:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74372-20120112160805.patch</filename>
            <type>text/plain</type>
            <size>6711</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZjODg4ZmY3NzIzYzE4
OGM1ZDY5ZjU5ZWU2MDQwNDBmYTQwMDFjYi4uNzNkMjg2ZjU4ODM3MGJkYWVjZDBmOGQzYWU5MGM5
OTJiNzQ0MzcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBjYWxjdWxhdGVOb3JtYWxpemF0aW9uU2NhbGUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0
ZU5vcm1hbGl6YXRpb25TY2FsZSk6IFJlcGxhY2UgaW1wbGVtZW50YXRpb24gd2l0aCBvcHRpbWl6
ZWQgdmVjdG9yCisgICAgICAgICAgICBtYXRoIG9wZXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJldmVyYjo6UmV2ZXJiKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OnZzdmVzcSk6IFZlY3RvciBtYXRoIG9w
ZXJhdGlvbiBmb3Igc3F1YXJlZCBzdW0gb2YgZWxlbWVudHMuCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vVmVjdG9yTWF0aC5oOgorCisyMDExLTEyLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCiAgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6ZSBwcm9jZXNzV2l0aEdhaW5G
cm9tTW9ub1N0ZXJlby4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc0MzQ1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1JldmVyYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmIuY3BwCmlu
ZGV4IDJiNzg3ZWJmMzM2ZDY3NmRlYzdmNDAxNTIwYzExODdhNGNjNWQxNTQuLjM0MTYyNmZkOGNh
MThiNzczZGE4Y2FkNTI4NzJkMGI3MzNhMGUyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1JldmVyYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUmV2ZXJiLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgi
CiAjaW5jbHVkZSAiQXVkaW9GaWxlUmVhZGVyLmgiCiAjaW5jbHVkZSAiUmV2ZXJiQ29udm9sdmVy
LmgiCisjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTQ2LDI4ICs0
NywyNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3Vz
aW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOworCiAvLyBFbXBpcmljYWwgZ2FpbiBjYWxpYnJhdGlv
biB0ZXN0ZWQgYWNyb3NzIG1hbnkgaW1wdWxzZSByZXNwb25zZXMgdG8gZW5zdXJlIHBlcmNlaXZl
ZCB2b2x1bWUgaXMgc2FtZSBhcyBkcnkgKHVucHJvY2Vzc2VkKSBzaWduYWwKLWNvbnN0IGRvdWJs
ZSBHYWluQ2FsaWJyYXRpb24gPSAtNTguMDsKK2NvbnN0IGZsb2F0IEdhaW5DYWxpYnJhdGlvbiA9
IC01ODsKIAogLy8gQSBtaW5pbXVtIHBvd2VyIHZhbHVlIHRvIHdoZW4gbm9ybWFsaXppbmcgYSBz
aWxlbnQgKG9yIHZlcnkgcXVpZXQpIGltcHVsc2UgcmVzcG9uc2UKLWNvbnN0IGRvdWJsZSBNaW5Q
b3dlciA9IDAuMDAwMTI1OworY29uc3QgZmxvYXQgTWluUG93ZXIgPSAwLjAwMDEyNWY7CiAgICAg
Ci1zdGF0aWMgZG91YmxlIGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25TY2FsZShBdWRpb0J1cyogcmVz
cG9uc2UpCitzdGF0aWMgZmxvYXQgY2FsY3VsYXRlTm9ybWFsaXphdGlvblNjYWxlKEF1ZGlvQnVz
KiByZXNwb25zZSkKIHsKICAgICAvLyBOb3JtYWxpemUgYnkgUk1TIHBvd2VyCiAgICAgc2l6ZV90
IG51bWJlck9mQ2hhbm5lbHMgPSByZXNwb25zZS0+bnVtYmVyT2ZDaGFubmVscygpOwogICAgIHNp
emVfdCBsZW5ndGggPSByZXNwb25zZS0+bGVuZ3RoKCk7CiAKLSAgICBkb3VibGUgcG93ZXIgPSAw
LjA7CisgICAgZmxvYXQgcG93ZXIgPSAwOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBu
dW1iZXJPZkNoYW5uZWxzOyArK2kpIHsKLSAgICAgICAgaW50IG4gPSBsZW5ndGg7Ci0gICAgICAg
IGZsb2F0KiBwID0gcmVzcG9uc2UtPmNoYW5uZWwoaSktPmRhdGEoKTsKLQotICAgICAgICB3aGls
ZSAobi0tKSB7Ci0gICAgICAgICAgICBmbG9hdCBzYW1wbGUgPSAqcCsrOwotICAgICAgICAgICAg
cG93ZXIgKz0gc2FtcGxlICogc2FtcGxlOwotICAgICAgICB9CisgICAgICAgIGZsb2F0IGNoYW5u
ZWxQb3dlciA9IDA7CisgICAgICAgIHZzdmVzcShyZXNwb25zZS0+Y2hhbm5lbChpKS0+ZGF0YSgp
LCAxLCAmY2hhbm5lbFBvd2VyLCBsZW5ndGgpOworICAgICAgICBwb3dlciArPSBjaGFubmVsUG93
ZXI7CiAgICAgfQogCiAgICAgcG93ZXIgPSBzcXJ0KHBvd2VyIC8gKG51bWJlck9mQ2hhbm5lbHMg
KiBsZW5ndGgpKTsKQEAgLTc2LDIwICs3NSwyMCBAQCBzdGF0aWMgZG91YmxlIGNhbGN1bGF0ZU5v
cm1hbGl6YXRpb25TY2FsZShBdWRpb0J1cyogcmVzcG9uc2UpCiAgICAgaWYgKGlzaW5mKHBvd2Vy
KSB8fCBpc25hbihwb3dlcikgfHwgcG93ZXIgPCBNaW5Qb3dlcikKICAgICAgICAgcG93ZXIgPSBN
aW5Qb3dlcjsKIAotICAgIGRvdWJsZSBzY2FsZSA9IDEuMCAvIHBvd2VyOworICAgIGZsb2F0IHNj
YWxlID0gMSAvIHBvd2VyOwogCi0gICAgc2NhbGUgKj0gcG93KDEwLjAsIEdhaW5DYWxpYnJhdGlv
biAqIDAuMDUpOyAvLyBjYWxpYnJhdGUgdG8gbWFrZSBwZXJjZWl2ZWQgdm9sdW1lIHNhbWUgYXMg
dW5wcm9jZXNzZWQKKyAgICBzY2FsZSAqPSBwb3dmKDEwLCBHYWluQ2FsaWJyYXRpb24gKiAwLjA1
Zik7IC8vIGNhbGlicmF0ZSB0byBtYWtlIHBlcmNlaXZlZCB2b2x1bWUgc2FtZSBhcyB1bnByb2Nl
c3NlZAogCiAgICAgLy8gVHJ1ZS1zdGVyZW8gY29tcGVuc2F0aW9uCiAgICAgaWYgKHJlc3BvbnNl
LT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gNCkKLSAgICAgICAgc2NhbGUgKj0gMC41OworICAgICAg
ICBzY2FsZSAqPSAwLjVmOwogCiAgICAgcmV0dXJuIHNjYWxlOwogfQogCiBSZXZlcmI6OlJldmVy
YihBdWRpb0J1cyogaW1wdWxzZVJlc3BvbnNlLCBzaXplX3QgcmVuZGVyU2xpY2VTaXplLCBzaXpl
X3QgbWF4RkZUU2l6ZSwgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIGJvb2wgdXNlQmFja2dyb3Vu
ZFRocmVhZHMsIGJvb2wgbm9ybWFsaXplKQogewotICAgIGRvdWJsZSBzY2FsZSA9IDE7CisgICAg
ZmxvYXQgc2NhbGUgPSAxOwogCiAgICAgaWYgKG5vcm1hbGl6ZSkgewogICAgICAgICBzY2FsZSA9
IGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25TY2FsZShpbXB1bHNlUmVzcG9uc2UpOwpAQCAtMTA0LDcg
KzEwMyw3IEBAIFJldmVyYjo6UmV2ZXJiKEF1ZGlvQnVzKiBpbXB1bHNlUmVzcG9uc2UsIHNpemVf
dCByZW5kZXJTbGljZVNpemUsIHNpemVfdCBtYXhGRlRTCiAgICAgLy8gRklYTUU6IFdoYXQgYWJv
dXQgcm91bmRvZmY/IFBlcmhhcHMgY29uc2lkZXIgbWFraW5nIGEgdGVtcG9yYXJ5IHNjYWxlZCBj
b3B5CiAgICAgLy8gaW5zdGVhZCBvZiBzY2FsaW5nIGFuZCB1bnNjYWxpbmcgaW4gcGxhY2UuCiAg
ICAgaWYgKG5vcm1hbGl6ZSAmJiBzY2FsZSkKLSAgICAgICAgaW1wdWxzZVJlc3BvbnNlLT5zY2Fs
ZSgxLjAgLyBzY2FsZSk7CisgICAgICAgIGltcHVsc2VSZXNwb25zZS0+c2NhbGUoMSAvIHNjYWxl
KTsKIH0KIAogdm9pZCBSZXZlcmI6OmluaXRpYWxpemUoQXVkaW9CdXMqIGltcHVsc2VSZXNwb25z
ZUJ1ZmZlciwgc2l6ZV90IHJlbmRlclNsaWNlU2l6ZSwgc2l6ZV90IG1heEZGVFNpemUsIHNpemVf
dCBudW1iZXJPZkNoYW5uZWxzLCBib29sIHVzZUJhY2tncm91bmRUaHJlYWRzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcAppbmRleCBlMWE1OTAwOTllMTEy
MmM0NzFkYzdkZjVjMTRlNWMyYmRmYjc5ZGU0Li5mN2E5YzIxZTNiZjY3OTFlMjM2ZTVlNzQ4ZDc5
MGNjYzJjYzAwODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9W
ZWN0b3JNYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JN
YXRoLmNwcApAQCAtMTAwLDYgKzEwMCwxMCBAQCB2b2lkIHZzbWEoY29uc3QgZmxvYXQgKnNvdXJj
ZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgZmxvYXQgKnNjYWxhck11bHQsIGNvbnN0IGZsbwogICAg
IHZEU1BfdnNtYShjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApLCBzb3VyY2VTdHJpZGUxLCBz
Y2FsYXJNdWx0LCBjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMlApLCBzb3VyY2VTdHJpZGUyLCBk
ZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKIH0KIAordm9pZCB2c3Zlc3EoY29u
c3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGZsb2F0KiBzdW1QLCBzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIHZEU1Bfc3Zlc3EoY29uc3RfY2FzdDxmbG9hdCo+KHNv
dXJjZVApLCBzb3VyY2VTdHJpZGUsIHN1bVAsIGZyYW1lc1RvUHJvY2Vzcyk7Cit9CiAjZWxzZQog
CiB2b2lkIHZzbXVsKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25z
dCBmbG9hdCogc2NhbGUsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCkBAIC0zODQsNiArMzg4LDIxIEBAIHZvaWQgdnNtYShjb25zdCBmbG9hdCAq
c291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBmbG9hdCAqc2NhbGFyTXVsdCwgY29uc3QgZmxv
CiAgICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CiAgICAgfQogfQorCit2b2lkIHZzdmVzcShj
b25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpOworeworICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSBmb3IgU1NFCisg
ICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7CisgICAgZmxvYXQgc3VtID0gMDsKKyAgICB3aGls
ZSAobi0tKSB7CisgICAgICAgIGZsb2F0IHNhbXBsZSA9ICpzb3VyY2VQOworICAgICAgICBzdW0g
Kz0gc2FtcGxlICogc2FtcGxlOworICAgICAgICBzb3VyY2VQICs9IHNvdXJjZVN0cmlkZTsKKyAg
ICB9CisKKyAgICBBU1NFUlQoc3VtUCk7CisgICAgKnN1bVAgPSBzdW07Cit9CiAjZW5kaWYgLy8g
T1MoREFSV0lOKQogCiB9IC8vIG5hbWVzcGFjZSBWZWN0b3JNYXRoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKaW5kZXggOWRhNDIyOTI1ZmQwOWNjOTNkNzZmOGM0
Y2Y2ZmM3ZGM5ZTdkYzM4ZS4uYjRhNjgwODNlNzllMzNlNGNjY2IwMjQyOWU4MmUxYjNkNzllNDA5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaApAQCAtMzcs
NiArMzcsOSBAQCB2b2lkIHZtdWwoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3Ry
aWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgcwogdm9pZCB2YXNtKGNvbnN0IGZsb2F0
ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0ICpzb3VyY2UyUCwgaW50
IHNvdXJjZVN0cmlkZTIsIGZsb2F0ICpzY2FsYXJNdWx0LCBmbG9hdCAqZGVzdFAsIGludCBkZXN0
U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKTsKIHZvaWQgdnNtYShjb25zdCBmbG9hdCAqc291
cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBmbG9hdCAqc2NhbGFyTXVsdCwgY29uc3QgZmxvYXQg
KnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQgKmRlc3RQLCBpbnQgZGVzdFN0cmlk
ZSwgaW50IGZyYW1lc1RvUHJvY2Vzcyk7CiAKKy8vIFN1bXMgdGhlIHNxdWFyZXMgb2YgYSBmbG9h
dCB2ZWN0b3IncyBlbGVtZW50cy4KK3ZvaWQgdnN2ZXNxKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBp
bnQgc291cmNlU3RyaWRlLCBmbG9hdCogc3VtUCwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CisK
IC8vIEZvciBhbiBlbGVtZW50LWJ5LWVsZW1lbnQgbXVsdGlwbHkgb2YgdHdvIGZsb2F0IHZlY3Rv
cnMuCiB2b2lkIHZtdWwoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwg
Y29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQqIGRlc3RQLCBp
bnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122462</attachid>
            <date>2012-01-13 10:59:41 -0800</date>
            <delta_ts>2012-01-13 12:40:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74372-20120113105940.patch</filename>
            <type>text/plain</type>
            <size>6530</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEyYTdlMWUxMDA2N2Uy
NGEyNTlhMzQ1YzBjMmUyNDE0NTQ1ODhjNi4uYjM3M2U5OTFjMTk5ZGJmNmEwZjU2NWNiOGUyODg5
MjdkYWEzZWE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBjYWxjdWxhdGVOb3JtYWxpemF0aW9uU2NhbGUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0
ZU5vcm1hbGl6YXRpb25TY2FsZSk6IFJlcGxhY2UgaW1wbGVtZW50YXRpb24gd2l0aCBvcHRpbWl6
ZWQgdmVjdG9yCisgICAgICAgICAgICBtYXRoIG9wZXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJldmVyYjo6UmV2ZXJiKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OnZzdmVzcSk6IFZlY3RvciBtYXRoIG9w
ZXJhdGlvbiBmb3Igc3F1YXJlZCBzdW0gb2YgZWxlbWVudHMuCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vVmVjdG9yTWF0aC5oOgorCiAyMDEyLTAxLTEzICBBbmRyZWFzIEtsaW5nICA8YXdlc29t
ZWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBKU0MvRE9NIGJpbmRpbmdzOiBSZWR1Y2UgSGFu
ZGxlSGVhcCBjaHVybiBpbiBjYWNoZVdyYXBwZXIoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9SZXZlcmIuY3BwCmluZGV4IDJiNzg3ZWJmMzM2ZDY3NmRlYzdmNDAxNTIwYzExODdhNGNj
NWQxNTQuLjM0MTYyNmZkOGNhMThiNzczZGE4Y2FkNTI4NzJkMGI3MzNhMGUyZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9GaWxlUmVhZGVyLmgiCiAjaW5jbHVk
ZSAiUmV2ZXJiQ29udm9sdmVyLmgiCisjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUg
PG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KQEAgLTQ2LDI4ICs0NywyNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOworCiAvLyBFbXBpcmlj
YWwgZ2FpbiBjYWxpYnJhdGlvbiB0ZXN0ZWQgYWNyb3NzIG1hbnkgaW1wdWxzZSByZXNwb25zZXMg
dG8gZW5zdXJlIHBlcmNlaXZlZCB2b2x1bWUgaXMgc2FtZSBhcyBkcnkgKHVucHJvY2Vzc2VkKSBz
aWduYWwKLWNvbnN0IGRvdWJsZSBHYWluQ2FsaWJyYXRpb24gPSAtNTguMDsKK2NvbnN0IGZsb2F0
IEdhaW5DYWxpYnJhdGlvbiA9IC01ODsKIAogLy8gQSBtaW5pbXVtIHBvd2VyIHZhbHVlIHRvIHdo
ZW4gbm9ybWFsaXppbmcgYSBzaWxlbnQgKG9yIHZlcnkgcXVpZXQpIGltcHVsc2UgcmVzcG9uc2UK
LWNvbnN0IGRvdWJsZSBNaW5Qb3dlciA9IDAuMDAwMTI1OworY29uc3QgZmxvYXQgTWluUG93ZXIg
PSAwLjAwMDEyNWY7CiAgICAgCi1zdGF0aWMgZG91YmxlIGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25T
Y2FsZShBdWRpb0J1cyogcmVzcG9uc2UpCitzdGF0aWMgZmxvYXQgY2FsY3VsYXRlTm9ybWFsaXph
dGlvblNjYWxlKEF1ZGlvQnVzKiByZXNwb25zZSkKIHsKICAgICAvLyBOb3JtYWxpemUgYnkgUk1T
IHBvd2VyCiAgICAgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMgPSByZXNwb25zZS0+bnVtYmVyT2ZD
aGFubmVscygpOwogICAgIHNpemVfdCBsZW5ndGggPSByZXNwb25zZS0+bGVuZ3RoKCk7CiAKLSAg
ICBkb3VibGUgcG93ZXIgPSAwLjA7CisgICAgZmxvYXQgcG93ZXIgPSAwOwogCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzOyArK2kpIHsKLSAgICAgICAgaW50IG4g
PSBsZW5ndGg7Ci0gICAgICAgIGZsb2F0KiBwID0gcmVzcG9uc2UtPmNoYW5uZWwoaSktPmRhdGEo
KTsKLQotICAgICAgICB3aGlsZSAobi0tKSB7Ci0gICAgICAgICAgICBmbG9hdCBzYW1wbGUgPSAq
cCsrOwotICAgICAgICAgICAgcG93ZXIgKz0gc2FtcGxlICogc2FtcGxlOwotICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGNoYW5uZWxQb3dlciA9IDA7CisgICAgICAgIHZzdmVzcShyZXNwb25zZS0+
Y2hhbm5lbChpKS0+ZGF0YSgpLCAxLCAmY2hhbm5lbFBvd2VyLCBsZW5ndGgpOworICAgICAgICBw
b3dlciArPSBjaGFubmVsUG93ZXI7CiAgICAgfQogCiAgICAgcG93ZXIgPSBzcXJ0KHBvd2VyIC8g
KG51bWJlck9mQ2hhbm5lbHMgKiBsZW5ndGgpKTsKQEAgLTc2LDIwICs3NSwyMCBAQCBzdGF0aWMg
ZG91YmxlIGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25TY2FsZShBdWRpb0J1cyogcmVzcG9uc2UpCiAg
ICAgaWYgKGlzaW5mKHBvd2VyKSB8fCBpc25hbihwb3dlcikgfHwgcG93ZXIgPCBNaW5Qb3dlcikK
ICAgICAgICAgcG93ZXIgPSBNaW5Qb3dlcjsKIAotICAgIGRvdWJsZSBzY2FsZSA9IDEuMCAvIHBv
d2VyOworICAgIGZsb2F0IHNjYWxlID0gMSAvIHBvd2VyOwogCi0gICAgc2NhbGUgKj0gcG93KDEw
LjAsIEdhaW5DYWxpYnJhdGlvbiAqIDAuMDUpOyAvLyBjYWxpYnJhdGUgdG8gbWFrZSBwZXJjZWl2
ZWQgdm9sdW1lIHNhbWUgYXMgdW5wcm9jZXNzZWQKKyAgICBzY2FsZSAqPSBwb3dmKDEwLCBHYWlu
Q2FsaWJyYXRpb24gKiAwLjA1Zik7IC8vIGNhbGlicmF0ZSB0byBtYWtlIHBlcmNlaXZlZCB2b2x1
bWUgc2FtZSBhcyB1bnByb2Nlc3NlZAogCiAgICAgLy8gVHJ1ZS1zdGVyZW8gY29tcGVuc2F0aW9u
CiAgICAgaWYgKHJlc3BvbnNlLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gNCkKLSAgICAgICAgc2Nh
bGUgKj0gMC41OworICAgICAgICBzY2FsZSAqPSAwLjVmOwogCiAgICAgcmV0dXJuIHNjYWxlOwog
fQogCiBSZXZlcmI6OlJldmVyYihBdWRpb0J1cyogaW1wdWxzZVJlc3BvbnNlLCBzaXplX3QgcmVu
ZGVyU2xpY2VTaXplLCBzaXplX3QgbWF4RkZUU2l6ZSwgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMs
IGJvb2wgdXNlQmFja2dyb3VuZFRocmVhZHMsIGJvb2wgbm9ybWFsaXplKQogewotICAgIGRvdWJs
ZSBzY2FsZSA9IDE7CisgICAgZmxvYXQgc2NhbGUgPSAxOwogCiAgICAgaWYgKG5vcm1hbGl6ZSkg
ewogICAgICAgICBzY2FsZSA9IGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25TY2FsZShpbXB1bHNlUmVz
cG9uc2UpOwpAQCAtMTA0LDcgKzEwMyw3IEBAIFJldmVyYjo6UmV2ZXJiKEF1ZGlvQnVzKiBpbXB1
bHNlUmVzcG9uc2UsIHNpemVfdCByZW5kZXJTbGljZVNpemUsIHNpemVfdCBtYXhGRlRTCiAgICAg
Ly8gRklYTUU6IFdoYXQgYWJvdXQgcm91bmRvZmY/IFBlcmhhcHMgY29uc2lkZXIgbWFraW5nIGEg
dGVtcG9yYXJ5IHNjYWxlZCBjb3B5CiAgICAgLy8gaW5zdGVhZCBvZiBzY2FsaW5nIGFuZCB1bnNj
YWxpbmcgaW4gcGxhY2UuCiAgICAgaWYgKG5vcm1hbGl6ZSAmJiBzY2FsZSkKLSAgICAgICAgaW1w
dWxzZVJlc3BvbnNlLT5zY2FsZSgxLjAgLyBzY2FsZSk7CisgICAgICAgIGltcHVsc2VSZXNwb25z
ZS0+c2NhbGUoMSAvIHNjYWxlKTsKIH0KIAogdm9pZCBSZXZlcmI6OmluaXRpYWxpemUoQXVkaW9C
dXMqIGltcHVsc2VSZXNwb25zZUJ1ZmZlciwgc2l6ZV90IHJlbmRlclNsaWNlU2l6ZSwgc2l6ZV90
IG1heEZGVFNpemUsIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBib29sIHVzZUJhY2tncm91bmRU
aHJlYWRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9y
TWF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcApp
bmRleCAyMTkyOThmYWEyMmM1MDBmZjBiMDZlZWM4ZWM0N2FkZGQ0NTkxZmZlLi43M2JhNjkwZWNi
ODQ3YTA0NjY0NWNmNTkxOWQyZTJjOTA3ZjJiMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcApAQCAtOTUsNiArOTUsMTAgQEAgdm9pZCB2c21hKGNv
bnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGUs
IGZsb2F0KiBkZXMKICAgICB2RFNQX3ZzbWEoc291cmNlUCwgc291cmNlU3RyaWRlLCBzY2FsZSwg
ZGVzdFAsIGRlc3RTdHJpZGUsIGRlc3RQLCBkZXN0U3RyaWRlLCBmcmFtZXNUb1Byb2Nlc3MpOwog
fQogCit2b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwg
ZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgdkRTUF9zdmVzcShj
b25zdF9jYXN0PGZsb2F0Kj4oc291cmNlUCksIHNvdXJjZVN0cmlkZSwgc3VtUCwgZnJhbWVzVG9Q
cm9jZXNzKTsKK30KICNlbHNlCiAKIHZvaWQgdnNtYShjb25zdCBmbG9hdCogc291cmNlUCwgaW50
IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0
U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQpAQCAtNDEyLDYgKzQxNiwyMCBAQCB2b2lk
IHp2bXVsKGNvbnN0IGZsb2F0KiByZWFsMVAsIGNvbnN0IGZsb2F0KiBpbWFnMVAsIGNvbnN0IGZs
b2F0KiByZWFsMlAsIGNvbnN0CiAgICAgfQogfQogCit2b2lkIHZzdmVzcShjb25zdCBmbG9hdCog
c291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpOworeworICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSBmb3IgU1NFCisgICAgaW50IG4gPSBm
cmFtZXNUb1Byb2Nlc3M7CisgICAgZmxvYXQgc3VtID0gMDsKKyAgICB3aGlsZSAobi0tKSB7Cisg
ICAgICAgIGZsb2F0IHNhbXBsZSA9ICpzb3VyY2VQOworICAgICAgICBzdW0gKz0gc2FtcGxlICog
c2FtcGxlOworICAgICAgICBzb3VyY2VQICs9IHNvdXJjZVN0cmlkZTsKKyAgICB9CisKKyAgICBB
U1NFUlQoc3VtUCk7CisgICAgKnN1bVAgPSBzdW07Cit9CiAjZW5kaWYgLy8gT1MoREFSV0lOKQog
CiB9IC8vIG5hbWVzcGFjZSBWZWN0b3JNYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9WZWN0b3JNYXRoLmgKaW5kZXggZWFjYjM3NmI1ODJkYzYyMzFmMDk4YTdiZGQ0MWJlODYwZTY2
MWVmYi4uMTU1YTk0YjI2YjBiM2ExOTJkYzAxM2UwMTA5MDUwNDliNTY4NTVmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaApAQCAtMzcsNiArMzcsOSBAQCB2
b2lkIHZzbWEoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZs
b2F0KiBzY2FsZSwgZmxvYXQqIGRlcwogdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwg
aW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBk
ZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKIHZvaWQgdmFkZChjb25zdCBmbG9h
dCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGlu
dCBzb3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKTsKIAorLy8gU3VtcyB0aGUgc3F1YXJlcyBvZiBhIGZsb2F0IHZlY3Rvcidz
IGVsZW1lbnRzLgordm9pZCB2c3Zlc3EoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VT
dHJpZGUsIGZsb2F0KiBzdW1QLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKKwogLy8gRm9yIGFu
IGVsZW1lbnQtYnktZWxlbWVudCBtdWx0aXBseSBvZiB0d28gZmxvYXQgdmVjdG9ycy4KIHZvaWQg
dm11bChjb25zdCBmbG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9h
dCogc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3Ry
aWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122480</attachid>
            <date>2012-01-13 12:41:01 -0800</date>
            <delta_ts>2012-01-13 15:05:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74372-20120113124100.patch</filename>
            <type>text/plain</type>
            <size>6790</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEyYTdlMWUxMDA2N2Uy
NGEyNTlhMzQ1YzBjMmUyNDE0NTQ1ODhjNi4uYjM3M2U5OTFjMTk5ZGJmNmEwZjU2NWNiOGUyODg5
MjdkYWEzZWE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBjYWxjdWxhdGVOb3JtYWxpemF0aW9uU2NhbGUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0
ZU5vcm1hbGl6YXRpb25TY2FsZSk6IFJlcGxhY2UgaW1wbGVtZW50YXRpb24gd2l0aCBvcHRpbWl6
ZWQgdmVjdG9yCisgICAgICAgICAgICBtYXRoIG9wZXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJldmVyYjo6UmV2ZXJiKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6OnZzdmVzcSk6IFZlY3RvciBtYXRoIG9w
ZXJhdGlvbiBmb3Igc3F1YXJlZCBzdW0gb2YgZWxlbWVudHMuCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vVmVjdG9yTWF0aC5oOgorCiAyMDEyLTAxLTEzICBBbmRyZWFzIEtsaW5nICA8YXdlc29t
ZWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBKU0MvRE9NIGJpbmRpbmdzOiBSZWR1Y2UgSGFu
ZGxlSGVhcCBjaHVybiBpbiBjYWNoZVdyYXBwZXIoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9SZXZlcmIuY3BwCmluZGV4IDJiNzg3ZWJmMzM2ZDY3NmRlYzdmNDAxNTIwYzExODdhNGNj
NWQxNTQuLjM0MTYyNmZkOGNhMThiNzczZGE4Y2FkNTI4NzJkMGI3MzNhMGUyZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9GaWxlUmVhZGVyLmgiCiAjaW5jbHVk
ZSAiUmV2ZXJiQ29udm9sdmVyLmgiCisjaW5jbHVkZSAiVmVjdG9yTWF0aC5oIgogI2luY2x1ZGUg
PG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KQEAgLTQ2LDI4ICs0NywyNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOworCiAvLyBFbXBpcmlj
YWwgZ2FpbiBjYWxpYnJhdGlvbiB0ZXN0ZWQgYWNyb3NzIG1hbnkgaW1wdWxzZSByZXNwb25zZXMg
dG8gZW5zdXJlIHBlcmNlaXZlZCB2b2x1bWUgaXMgc2FtZSBhcyBkcnkgKHVucHJvY2Vzc2VkKSBz
aWduYWwKLWNvbnN0IGRvdWJsZSBHYWluQ2FsaWJyYXRpb24gPSAtNTguMDsKK2NvbnN0IGZsb2F0
IEdhaW5DYWxpYnJhdGlvbiA9IC01ODsKIAogLy8gQSBtaW5pbXVtIHBvd2VyIHZhbHVlIHRvIHdo
ZW4gbm9ybWFsaXppbmcgYSBzaWxlbnQgKG9yIHZlcnkgcXVpZXQpIGltcHVsc2UgcmVzcG9uc2UK
LWNvbnN0IGRvdWJsZSBNaW5Qb3dlciA9IDAuMDAwMTI1OworY29uc3QgZmxvYXQgTWluUG93ZXIg
PSAwLjAwMDEyNWY7CiAgICAgCi1zdGF0aWMgZG91YmxlIGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25T
Y2FsZShBdWRpb0J1cyogcmVzcG9uc2UpCitzdGF0aWMgZmxvYXQgY2FsY3VsYXRlTm9ybWFsaXph
dGlvblNjYWxlKEF1ZGlvQnVzKiByZXNwb25zZSkKIHsKICAgICAvLyBOb3JtYWxpemUgYnkgUk1T
IHBvd2VyCiAgICAgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMgPSByZXNwb25zZS0+bnVtYmVyT2ZD
aGFubmVscygpOwogICAgIHNpemVfdCBsZW5ndGggPSByZXNwb25zZS0+bGVuZ3RoKCk7CiAKLSAg
ICBkb3VibGUgcG93ZXIgPSAwLjA7CisgICAgZmxvYXQgcG93ZXIgPSAwOwogCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzOyArK2kpIHsKLSAgICAgICAgaW50IG4g
PSBsZW5ndGg7Ci0gICAgICAgIGZsb2F0KiBwID0gcmVzcG9uc2UtPmNoYW5uZWwoaSktPmRhdGEo
KTsKLQotICAgICAgICB3aGlsZSAobi0tKSB7Ci0gICAgICAgICAgICBmbG9hdCBzYW1wbGUgPSAq
cCsrOwotICAgICAgICAgICAgcG93ZXIgKz0gc2FtcGxlICogc2FtcGxlOwotICAgICAgICB9Cisg
ICAgICAgIGZsb2F0IGNoYW5uZWxQb3dlciA9IDA7CisgICAgICAgIHZzdmVzcShyZXNwb25zZS0+
Y2hhbm5lbChpKS0+ZGF0YSgpLCAxLCAmY2hhbm5lbFBvd2VyLCBsZW5ndGgpOworICAgICAgICBw
b3dlciArPSBjaGFubmVsUG93ZXI7CiAgICAgfQogCiAgICAgcG93ZXIgPSBzcXJ0KHBvd2VyIC8g
KG51bWJlck9mQ2hhbm5lbHMgKiBsZW5ndGgpKTsKQEAgLTc2LDIwICs3NSwyMCBAQCBzdGF0aWMg
ZG91YmxlIGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25TY2FsZShBdWRpb0J1cyogcmVzcG9uc2UpCiAg
ICAgaWYgKGlzaW5mKHBvd2VyKSB8fCBpc25hbihwb3dlcikgfHwgcG93ZXIgPCBNaW5Qb3dlcikK
ICAgICAgICAgcG93ZXIgPSBNaW5Qb3dlcjsKIAotICAgIGRvdWJsZSBzY2FsZSA9IDEuMCAvIHBv
d2VyOworICAgIGZsb2F0IHNjYWxlID0gMSAvIHBvd2VyOwogCi0gICAgc2NhbGUgKj0gcG93KDEw
LjAsIEdhaW5DYWxpYnJhdGlvbiAqIDAuMDUpOyAvLyBjYWxpYnJhdGUgdG8gbWFrZSBwZXJjZWl2
ZWQgdm9sdW1lIHNhbWUgYXMgdW5wcm9jZXNzZWQKKyAgICBzY2FsZSAqPSBwb3dmKDEwLCBHYWlu
Q2FsaWJyYXRpb24gKiAwLjA1Zik7IC8vIGNhbGlicmF0ZSB0byBtYWtlIHBlcmNlaXZlZCB2b2x1
bWUgc2FtZSBhcyB1bnByb2Nlc3NlZAogCiAgICAgLy8gVHJ1ZS1zdGVyZW8gY29tcGVuc2F0aW9u
CiAgICAgaWYgKHJlc3BvbnNlLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gNCkKLSAgICAgICAgc2Nh
bGUgKj0gMC41OworICAgICAgICBzY2FsZSAqPSAwLjVmOwogCiAgICAgcmV0dXJuIHNjYWxlOwog
fQogCiBSZXZlcmI6OlJldmVyYihBdWRpb0J1cyogaW1wdWxzZVJlc3BvbnNlLCBzaXplX3QgcmVu
ZGVyU2xpY2VTaXplLCBzaXplX3QgbWF4RkZUU2l6ZSwgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMs
IGJvb2wgdXNlQmFja2dyb3VuZFRocmVhZHMsIGJvb2wgbm9ybWFsaXplKQogewotICAgIGRvdWJs
ZSBzY2FsZSA9IDE7CisgICAgZmxvYXQgc2NhbGUgPSAxOwogCiAgICAgaWYgKG5vcm1hbGl6ZSkg
ewogICAgICAgICBzY2FsZSA9IGNhbGN1bGF0ZU5vcm1hbGl6YXRpb25TY2FsZShpbXB1bHNlUmVz
cG9uc2UpOwpAQCAtMTA0LDcgKzEwMyw3IEBAIFJldmVyYjo6UmV2ZXJiKEF1ZGlvQnVzKiBpbXB1
bHNlUmVzcG9uc2UsIHNpemVfdCByZW5kZXJTbGljZVNpemUsIHNpemVfdCBtYXhGRlRTCiAgICAg
Ly8gRklYTUU6IFdoYXQgYWJvdXQgcm91bmRvZmY/IFBlcmhhcHMgY29uc2lkZXIgbWFraW5nIGEg
dGVtcG9yYXJ5IHNjYWxlZCBjb3B5CiAgICAgLy8gaW5zdGVhZCBvZiBzY2FsaW5nIGFuZCB1bnNj
YWxpbmcgaW4gcGxhY2UuCiAgICAgaWYgKG5vcm1hbGl6ZSAmJiBzY2FsZSkKLSAgICAgICAgaW1w
dWxzZVJlc3BvbnNlLT5zY2FsZSgxLjAgLyBzY2FsZSk7CisgICAgICAgIGltcHVsc2VSZXNwb25z
ZS0+c2NhbGUoMSAvIHNjYWxlKTsKIH0KIAogdm9pZCBSZXZlcmI6OmluaXRpYWxpemUoQXVkaW9C
dXMqIGltcHVsc2VSZXNwb25zZUJ1ZmZlciwgc2l6ZV90IHJlbmRlclNsaWNlU2l6ZSwgc2l6ZV90
IG1heEZGVFNpemUsIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBib29sIHVzZUJhY2tncm91bmRU
aHJlYWRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9y
TWF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcApp
bmRleCAyMTkyOThmYWEyMmM1MDBmZjBiMDZlZWM4ZWM0N2FkZGQ0NTkxZmZlLi43ZWVhODVkNmNj
MDQ2ZjM4MDRlYzJkOTU5MTlmOTBmZmM4ZjZmYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcApAQCAtOTUsNiArOTUsMTAgQEAgdm9pZCB2c21hKGNv
bnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGUs
IGZsb2F0KiBkZXMKICAgICB2RFNQX3ZzbWEoc291cmNlUCwgc291cmNlU3RyaWRlLCBzY2FsZSwg
ZGVzdFAsIGRlc3RTdHJpZGUsIGRlc3RQLCBkZXN0U3RyaWRlLCBmcmFtZXNUb1Byb2Nlc3MpOwog
fQogCit2b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwg
ZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgdkRTUF9zdmVzcShj
b25zdF9jYXN0PGZsb2F0Kj4oc291cmNlUCksIHNvdXJjZVN0cmlkZSwgc3VtUCwgZnJhbWVzVG9Q
cm9jZXNzKTsKK30KICNlbHNlCiAKIHZvaWQgdnNtYShjb25zdCBmbG9hdCogc291cmNlUCwgaW50
IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0
U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQpAQCAtMTUyLDcgKzE1Niw2IEBAIHZvaWQg
dnNtYShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQq
IHNjYWxlLCBmbG9hdCogZGVzCiAgICAgfQogfQogCi0KIHZvaWQgdnNtdWwoY29uc3QgZmxvYXQq
IHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRl
c3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKICNpZmRlZiBf
X1NTRTJfXwpAQCAtNDEyLDYgKzQxNSwyMCBAQCB2b2lkIHp2bXVsKGNvbnN0IGZsb2F0KiByZWFs
MVAsIGNvbnN0IGZsb2F0KiBpbWFnMVAsIGNvbnN0IGZsb2F0KiByZWFsMlAsIGNvbnN0CiAgICAg
fQogfQogCit2b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlk
ZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgLy8gRklYTUU6
IG9wdGltaXplIGZvciBTU0UKKyAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICBmbG9h
dCBzdW0gPSAwOworICAgIHdoaWxlIChuLS0pIHsKKyAgICAgICAgZmxvYXQgc2FtcGxlID0gKnNv
dXJjZVA7CisgICAgICAgIHN1bSArPSBzYW1wbGUgKiBzYW1wbGU7CisgICAgICAgIHNvdXJjZVAg
Kz0gc291cmNlU3RyaWRlOworICAgIH0KKworICAgIEFTU0VSVChzdW1QKTsKKyAgICAqc3VtUCA9
IHN1bTsKK30KICNlbmRpZiAvLyBPUyhEQVJXSU4pCiAKIH0gLy8gbmFtZXNwYWNlIFZlY3Rvck1h
dGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGgu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaAppbmRleCBlYWNi
Mzc2YjU4MmRjNjIzMWYwOThhN2JkZDQxYmU4NjBlNjYxZWZiLi4xNTVhOTRiMjZiMGIzYTE5MmRj
MDEzZTAxMDkwNTA0OWI1Njg1NWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9WZWN0b3JNYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
VmVjdG9yTWF0aC5oCkBAIC0zNyw2ICszNyw5IEBAIHZvaWQgdnNtYShjb25zdCBmbG9hdCogc291
cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzCiB2
b2lkIHZzbXVsKGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBm
bG9hdCogc2NhbGUsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNU
b1Byb2Nlc3MpOwogdm9pZCB2YWRkKGNvbnN0IGZsb2F0KiBzb3VyY2UxUCwgaW50IHNvdXJjZVN0
cmlkZTEsIGNvbnN0IGZsb2F0KiBzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0KiBk
ZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCisvLyBTdW1z
IHRoZSBzcXVhcmVzIG9mIGEgZmxvYXQgdmVjdG9yJ3MgZWxlbWVudHMuCit2b2lkIHZzdmVzcShj
b25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpOworCiAvLyBGb3IgYW4gZWxlbWVudC1ieS1lbGVtZW50IG11bHRp
cGx5IG9mIHR3byBmbG9hdCB2ZWN0b3JzLgogdm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBzb3VyY2Ux
UCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBzb3VyY2UyUCwgaW50IHNvdXJjZVN0
cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpOwogCg==
</data>
<flag name="review"
          id="123273"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>