<?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>40378</bug_id>
          
          <creation_ts>2010-06-09 11:44:15 -0700</creation_ts>
          <short_desc>[Qt] When any geometry change happens to a node it will resize the backing cache</short_desc>
          <delta_ts>2010-07-01 01:25:03 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38744</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Magnuson">smagnuso</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235909</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-09 11:44:15 -0700</bug_when>
    <thetext>We should attempt to use the same cache if possible since the whole area doesn&apos;t necessarily dirty and allocating a new backing surface may a bit costly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235937</commentid>
    <comment_count>1</comment_count>
      <attachid>58275</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-09 12:36:52 -0700</bug_when>
    <thetext>Created attachment 58275
Continue to grow the cache, but never toss it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237209</commentid>
    <comment_count>2</comment_count>
      <attachid>58275</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-11 18:48:54 -0700</bug_when>
    <thetext>Comment on attachment 58275
Continue to grow the cache, but never toss it.

Can you please run check-webkit-style (in WebKitTools/Scripts) and fix the style issues before putting this up for review again? Please read the style guide on webkit.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237309</commentid>
    <comment_count>3</comment_count>
      <attachid>58557</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-12 10:22:16 -0700</bug_when>
    <thetext>Created attachment 58557
Proposed patch with proper coding style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238293</commentid>
    <comment_count>4</comment_count>
      <attachid>58557</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-15 01:25:34 -0700</bug_when>
    <thetext>Comment on attachment 58557
Proposed patch with proper coding style

Patch doesn&apos;t apply (cq-) and it contains a coding style issue (r-).Please look at comment in 40376 (https://bugs.webkit.org/show_bug.cgi?id=40376#c3) similar problem applies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238500</commentid>
    <comment_count>5</comment_count>
      <attachid>58805</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-15 12:26:51 -0700</bug_when>
    <thetext>Created attachment 58805
Proposed patch with proper coding style, I had reapplied this after a pull from origin this week but never reposted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238504</commentid>
    <comment_count>6</comment_count>
      <attachid>58806</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-15 12:39:59 -0700</bug_when>
    <thetext>Created attachment 58806
Attached wrong patch in previous modification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238521</commentid>
    <comment_count>7</comment_count>
      <attachid>58806</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-15 13:35:40 -0700</bug_when>
    <thetext>Comment on attachment 58806
Attached wrong patch in previous modification.

=WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:44
 +  // #define QT_DEBUG_CACHEDUMP
This alone accounts for an r-, please remove

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:222
 +          QSizeF            size;
We do not do indentation like this; just one space

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:316
 +      if ( QPixmapCache::find(m_backingStore.key, &amp;pixmap) )
no space before QPixmap and at the end.

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:317
 +          QPixmapCache::remove(m_backingStore.key); // remove the reference to the pixmap in the cache to avoid a detach
Comments starts with capital and ends with a punctuation mark (dot) 

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:323
 +          // If the pixmap is not in the cache or the view has grown since the last cache
missing dot

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:323
 +          // If the pixmap is not in the cache or the view has grown since the last cache
since the last cache? since it was last cached?

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:333
 +              // If the pixmap
I do not understand this comment

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:344
 +              // Blit the contents of oldPixmap back into the cached pixmap as we are just adding new pixels
misses dot at the end

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:346
 +                  const QRegion cleanRegion = (QRegion(0, 0, m_size.width(), m_size.height()) &amp;
the &amp; should be at the next line, consult our style guide, please

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:348
 +                  if ( !cleanRegion.isEmpty() ) {
wrong style again

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:363
 +              if ( fill &amp;&amp; !region.isEmpty() ) { // Clear the entire pixmap with the background
again

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:373
 +          // If we have something to draw its time to erase it and render the contents
misses dot at the end

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:374
 +          if ( !region.isEmpty() ) {
wrong style (spaces)

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:387
 +              if ( !erased ) { // Erase the area in cache that we&apos;re drawing into
again

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:395
 +  
unneeded newline

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:405
 +              pixmap.save(QString().sprintf(&quot;/tmp/%05d_C.png&quot;, recacheCount), &quot;PNG&quot;);
is PNG supposed to be uppercase?

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:409
 +          m_backingStore.size = m_size; // Store the used size of the pixmap
dot

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:413
 +      m_backingStore.key = QPixmapCache::insert(pixmap);
dot

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:531
 +              const QRectF r(0, 0, m_backingStore.size.width(), m_backingStore.size.height());
r is not a good variable name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238541</commentid>
    <comment_count>8</comment_count>
      <attachid>58817</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-15 14:14:29 -0700</bug_when>
    <thetext>Created attachment 58817
Take 3, same patch with cleanups proposed in last review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238542</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-15 14:17:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 58806 [details])
&gt; =WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:44
&gt;  +  // #define QT_DEBUG_CACHEDUMP
&gt; This alone accounts for an r-, please remove
&gt; 

It seems convenient to document the define somewhere for turning on debugging - where should that go instead?

&gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:222
&gt;  +          QSizeF            size;
&gt; We do not do indentation like this; just one space
&gt; 

Ok.

&gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:316
&gt;  +      if ( QPixmapCache::find(m_backingStore.key, &amp;pixmap) )
&gt; no space before QPixmap and at the end.
&gt; 

I thought I&apos;ve had such things flagged by check-webkit-style before - but these seemed to slip by...

&gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:323
&gt;  +          // If the pixmap is not in the cache or the view has grown since the last cache
&gt; missing dot
&gt;

Fixed these.
 
&gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:346
&gt;  +                  const QRegion cleanRegion = (QRegion(0, 0, m_size.width(), m_size.height()) &amp;
&gt; the &amp; should be at the next line, consult our style guide, please
&gt;

I don&apos;t see that documented anywhere, or flagged by check-webkit-style. Where should I be looking for these details?
 
&gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:405
&gt;  +              pixmap.save(QString().sprintf(&quot;/tmp/%05d_C.png&quot;, recacheCount), &quot;PNG&quot;);
&gt; is PNG supposed to be uppercase?
&gt; 

Yes, I believe so:

http://doc.qt.nokia.com/4.6/qimage.html#reading-and-writing-image-files

//Sam</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238815</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-16 05:26:44 -0700</bug_when>
    <thetext>
&gt; It seems convenient to document the define somewhere for turning on debugging - where should that go instead?

define it as 0 instead of commenting it out would probably be ok


&gt; &gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:346
&gt; &gt;  +                  const QRegion cleanRegion = (QRegion(0, 0, m_size.width(), m_size.height()) &amp;
&gt; &gt; the &amp; should be at the next line, consult our style guide, please
&gt; &gt;
&gt; 
&gt; I don&apos;t see that documented anywhere, or flagged by check-webkit-style. Where should I be looking for these details?

should follow the same rule as &amp;&amp;, || etc. When the line is broken they go to the front of the next line, not to the end of the previous one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238816</commentid>
    <comment_count>11</comment_count>
      <attachid>58817</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-16 05:28:16 -0700</bug_when>
    <thetext>Comment on attachment 58817
Take 3, same patch with cleanups proposed in last review.

No&apos;am can you have a quick look at this patch to see if you find anything out of order? Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238925</commentid>
    <comment_count>12</comment_count>
      <attachid>58899</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-16 09:35:33 -0700</bug_when>
    <thetext>Created attachment 58899
define to 0 as requested rather than just removing the define.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238926</commentid>
    <comment_count>13</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-16 09:36:11 -0700</bug_when>
    <thetext>LGTM, as are all of Sam&apos;s patches to AC :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238927</commentid>
    <comment_count>14</comment_count>
      <attachid>58900</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-16 09:36:36 -0700</bug_when>
    <thetext>Created attachment 58900
define to 0 as requested rather than just removing the define.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240315</commentid>
    <comment_count>15</comment_count>
      <attachid>58900</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-19 04:44:44 -0700</bug_when>
    <thetext>Comment on attachment 58900
define to 0 as requested rather than just removing the define.

Rejecting patch 58900 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Kenneth Rohde Christiansen&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Parsed 2 diffs from patch file(s).
patching file WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
Hunk #2 succeeded at 229 (offset 11 lines).
Hunk #3 FAILED at 321.
Hunk #4 succeeded at 567 (offset 40 lines).
Hunk #5 succeeded at 753 (offset 60 lines).
Hunk #6 FAILED at 796.
Hunk #7 FAILED at 1070.
3 out of 7 hunks FAILED -- saving rejects to file WebCore/platform/graphics/qt/GraphicsLayerQt.cpp.rej

Full output: http://webkit-commit-queue.appspot.com/results/3337357</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240918</commentid>
    <comment_count>16</comment_count>
      <attachid>59299</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-21 15:21:32 -0700</bug_when>
    <thetext>Created attachment 59299
rebase and rediff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240919</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-21 15:23:03 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 58900 [details])
&gt; Rejecting patch 58900 from commit-queue.
&gt; 

Weird, I did a rebase to origin and resubmitted the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240946</commentid>
    <comment_count>18</comment_count>
      <attachid>59299</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-21 16:17:33 -0700</bug_when>
    <thetext>Comment on attachment 59299
rebase and rediff

Clearing the flags, it still doesn&apos;t apply cleanly, we&apos;re working on it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241418</commentid>
    <comment_count>19</comment_count>
      <attachid>58900</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-22 13:23:48 -0700</bug_when>
    <thetext>Comment on attachment 58900
define to 0 as requested rather than just removing the define.

Cleared Kenneth Rohde Christiansen&apos;s review+ from obsolete attachment 58900 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241511</commentid>
    <comment_count>20</comment_count>
      <attachid>59433</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-22 16:09:58 -0700</bug_when>
    <thetext>Created attachment 59433
Rediff against trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241538</commentid>
    <comment_count>21</comment_count>
      <attachid>59433</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-22 16:50:00 -0700</bug_when>
    <thetext>Comment on attachment 59433
Rediff against trunk

I have to take it off the cq because it doesn&apos;t compile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241701</commentid>
    <comment_count>22</comment_count>
      <attachid>59483</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-23 00:03:26 -0700</bug_when>
    <thetext>Created attachment 59483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243132</commentid>
    <comment_count>23</comment_count>
      <attachid>59483</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-25 12:31:22 -0700</bug_when>
    <thetext>Comment on attachment 59483
Patch

Clearing flags on attachment: 59483

Committed r61880: &lt;http://trac.webkit.org/changeset/61880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243133</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-25 12:31:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245192</commentid>
    <comment_count>25</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-07-01 01:24:15 -0700</bug_when>
    <thetext>Revision r61880 cherry-picked into qtwebkit-2.0 with commit 110642d6f33af6437d305058b73dbd9f03fc1c92</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58275</attachid>
            <date>2010-06-09 12:36:52 -0700</date>
            <delta_ts>2010-06-12 10:22:16 -0700</delta_ts>
            <desc>Continue to grow the cache, but never toss it.</desc>
            <filename>0004-adding-in-the-cache-growth-code.patch</filename>
            <type>text/plain</type>
            <size>8822</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBmMjgwMjZjNzVmOTI0MTQxMzQ4NzNiNWNlZTNmY2ZlODVkODlmOWZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBzbWFnbnVzb24gPHNtYWdudXNvQGdtYWlsLmNvbT4KRGF0ZTog
VHVlLCA4IEp1biAyMDEwIDExOjU5OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0LzhdIGFkZGlu
ZyBpbiB0aGUgY2FjaGUgZ3Jvd3RoIGNvZGUKCmNoYW5nZWxvZyBmb3IgMTU5Mjc4ZGNmMGQyMGVi
NzZjNmEzYTQ3NGQ1OGIyZjcyYTliMDJiYwotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgMTQxICsrKysrKysrKysrKysrKysrLS0tLS0K
IDIgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThj
MjAyNC4uNjJlOTc4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyNSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgogCisgICAgICAgIFtRdF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBl
bnMgdG8gYSBub2RlIGl0IHdpbGwgcmVzaXplIHRoZQorCWJhY2tpbmcgY2FjaGUKKwlodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzgKKworICAgICAgICBDb250aW51
ZSB0byBncm93IHRoZSBjYWNoZSwgYnV0IG5ldmVyIHRvc3MgaXQuIFdoZW4gdGhlIHBpeG1hcAor
CWNhY2hlIGdldHMgdG9vIGJpZyBpdCB3aWxsIGJlIGxvc3QgYW5kIGNyZWF0ZWQgYXQgdGhlIHJp
Z2h0IHNpemUKKwluZXh0IHRpbWUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMpOgorCisyMDEwLTA2LTA5ICBTYW0gTWFn
bnVzb24gIDxzbWFnbnVzb25AbmV0ZmxpeC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKIAlbUXRdIFdoZW4gUXQgZ3JhcGhpY3NsYXllciBnZXRzIGEgc2V0TmVl
ZHNEaXNwbGF5IChpZSBhbGwpIGl0IHNob3VsZG4ndCByZWNvcmQgdGhlIHJlY3QgdGhlbgogCWh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3NwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5kZXggODU0MWZi
Zi4uOTc5NTE5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFw
aGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhp
Y3NMYXllclF0LmNwcApAQCAtNDEsNiArNDEsOSBAQAogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXBj
YWNoZS5oPgogI2luY2x1ZGUgPFF0R3VpL3FzdHlsZW9wdGlvbi5oPgogCisvLyNkZWZpbmUgTkZf
REVCVUdfQ0FDSEVEVU1QCisvLyNkZWZpbmUgTkZfREVCVUdfUkVDQUNIRQorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNpZm5kZWYgUVRfTk9fR1JBUEhJQ1NFRkZFQ1QKQEAgLTIyNSw3ICsyMjgs
MTAgQEAgcHVibGljOgogICAgIGludCBtX2NoYW5nZU1hc2s7CiAKICAgICBRU2l6ZUYgbV9zaXpl
OwotICAgIFFQaXhtYXBDYWNoZTo6S2V5IG1fYmFja2luZ1N0b3JlS2V5OworCXN0cnVjdCB7CisJ
CVFQaXhtYXBDYWNoZTo6S2V5IGtleTsKKwkJUVNpemVGICAgICAgICAgICAgc2l6ZTsKKwl9IG1f
YmFja2luZ1N0b3JlOwogI2lmbmRlZiBRVF9OT19BTklNQVRJT04KICAgICBRTGlzdDxRV2Vha1Bv
aW50ZXI8UUFic3RyYWN0QW5pbWF0aW9uPiA+IG1fYW5pbWF0aW9uczsKICNlbmRpZgpAQCAtMzE3
LDMyICszMjMsMTA2IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25z
dCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICBpZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVu
dCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKICAgICAgICAgcmV0
dXJuIFFQaXhtYXAoKTsKIAotICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9VcGRhdGU7CiAg
ICAgUVBpeG1hcCBwaXhtYXA7CisJUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFja2luZ1N0b3JlLmtl
eSwgJnBpeG1hcCk7CisJUVBpeG1hcENhY2hlOjpyZW1vdmUobV9iYWNraW5nU3RvcmUua2V5KTsK
IAotICAgIC8vIFdlIG1pZ2h0IGJlIGRyYXdpbmcgaW50byBhbiBleGlzdGluZyBjYWNoZS4KLSAg
ICBpZiAoIVFQaXhtYXBDYWNoZTo6ZmluZChtX2JhY2tpbmdTdG9yZUtleSwgJnBpeG1hcCkpCi0g
ICAgICAgIHJlZ2lvbiA9IFFSZWdpb24oUVJlY3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6
ZS5oZWlnaHQoKSkpOworCXsKKwkJUVJlZ2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKIAot
ICAgIGlmIChtX3NpemUgIT0gcGl4bWFwLnNpemUoKSkgewotICAgICAgICBwaXhtYXAgPSBRUGl4
bWFwKG1fc2l6ZS50b1NpemUoKSk7Ci0gICAgICAgIGlmICghbV9sYXllci0+Y29udGVudHNPcGFx
dWUoKSkKLSAgICAgICAgICAgIHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7Ci0gICAgICAg
IG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgw
LCAwKSwgbV9zaXplLnRvU2l6ZSgpKSk7Ci0gICAgfQorCQkvLyBXZSBtaWdodCBiZSBkcmF3aW5n
IGludG8gYW4gZXhpc3RpbmcgY2FjaGUuCisJCWJvb2wgZXJhc2VkID0gZmFsc2U7CisKKwkJaWYg
KHBpeG1hcC5pc051bGwoKSB8fCBtX3NpemUgIT0gbV9iYWNraW5nU3RvcmUuc2l6ZSApIHsKKyNp
ZmRlZiBORl9ERUJVR19SRUNBQ0hFCisJCQlpZiggcGl4bWFwLmlzTnVsbCgpICkKKwkJCQlxRGVi
dWcoKSA8PCAiQ2FjaGVNaXNzIiA8PCB0aGlzIDw8IG1fc2l6ZTsKKyNlbmRpZgorCQkJYm9vbCBm
aWxsID0gdHJ1ZTsKKwkJCVFSZWdpb24gbmV3UmVnaW9uOworCQkJUVBpeG1hcCBvbGRQaXhtYXAg
PSBwaXhtYXA7CisKKwkJCWlmKCBwaXhtYXAud2lkdGgoKSA8IG1fc2l6ZS53aWR0aCgpIHx8IHBp
eG1hcC5oZWlnaHQoKSA8IG1fc2l6ZS5oZWlnaHQoKSApIHsKKyNpZmRlZiBORl9ERUJVR19SRUNB
Q0hFCisJCQkJcURlYnVnKCkgPDwgIkNhY2hlR3JvdyIgPDwgdGhpcyA8PCBtX3NpemU7CisjZW5k
aWYKKwkJCQlwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50b1NpemUoKSk7CisJCQkJcGl4bWFwLmZp
bGwoIFF0Ojp0cmFuc3BhcmVudCApOworCQkJCW5ld1JlZ2lvbiA9IFFSZWdpb24oMCwwLG1fc2l6
ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOworCQkJfQorCisjaWYgMQorCQkJaWYoICFvbGRQ
aXhtYXAuaXNOdWxsKCkgKSB7CisJCQkJY29uc3QgUVJlZ2lvbiBjbGVhblJlZ2lvbiA9IChRUmVn
aW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpICYKKwkJCQkJCQkJCQkJ
IFFSZWdpb24oMCwwLCBtX2JhY2tpbmdTdG9yZS5zaXplLndpZHRoKCksIG1fYmFja2luZ1N0b3Jl
LnNpemUuaGVpZ2h0KCkpKSAtIHJlZ2lvblRvVXBkYXRlOworCQkJCWlmKCAhY2xlYW5SZWdpb24u
aXNFbXB0eSgpICkgeworI2lmZGVmIE5GX0RFQlVHX1JFQ0FDSEUKKwkJCQkJcURlYnVnKCkgPDwg
IkNhY2hlQmxpdCIgPDwgdGhpcyA8PCBjbGVhblJlZ2lvbjsKKyNlbmRpZgorCQkJCQljb25zdCBR
UmVjdCBjbGVhbkJvdW5kcyggY2xlYW5SZWdpb24uYm91bmRpbmdSZWN0KCkgKTsKKwkJCQkJUVBh
aW50ZXIgcGFpbnRlcigmcGl4bWFwKTsKKwkJCQkJcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUo
UVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2UpOworCQkJCQlwYWludGVyLmRyYXdQaXht
YXAoIGNsZWFuQm91bmRzLnRvcExlZnQoKSwgb2xkUGl4bWFwLCBjbGVhbkJvdW5kcyApOworCQkJ
CQluZXdSZWdpb24gLT0gY2xlYW5SZWdpb247CisJCQkJCWZpbGwgPSBmYWxzZTsKKwkJCQl9CisJ
CQkJb2xkUGl4bWFwID0gUVBpeG1hcCgpOworCQkJfQorI2VuZGlmCisJCQlyZWdpb24gKz0gbmV3
UmVnaW9uOworCQkJaWYoIGZpbGwgJiYgIXJlZ2lvbi5pc0VtcHR5KCkgKSB7CisjaWZkZWYgTkZf
REVCVUdfUkVDQUNIRQorCQkJCXFEZWJ1ZygpIDw8ICJDYWNoZUVyYXNlIiA8PCB0aGlzIDw8IG1f
c2l6ZSA8PCBiYWNrZ3JvdW5kOworI2VuZGlmCisJCQkJZXJhc2VkID0gdHJ1ZTsKKwkJCQlwaXht
YXAuZmlsbCggUXQ6OnRyYW5zcGFyZW50ICk7CisJCQl9CisJCX0KKwkJcmVnaW9uICY9IFFSZWdp
b24oIDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkgKTsKKworCQkvL3FEZWJ1
ZygpIDw8IHRoaXMgPDwgcmVnaW9uIDw8IG1fc2l6ZSA8PCByZWdpb25Ub1VwZGF0ZTsKKworCQlp
ZiggIXJlZ2lvbi5pc0VtcHR5KCkgKSB7CisJCQlzdGF0aWMgaW50IHJlY2FjaGVfY250ID0gMDsK
KwkJCSsrcmVjYWNoZV9jbnQ7CiAKLSAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXApOwotICAg
IEdyYXBoaWNzQ29udGV4dCBnYygmcGFpbnRlcik7CisjaWZkZWYgTkZfREVCVUdfQ0FDSEVEVU1Q
CisJCQlxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2FjaGVfY250IDw8IHRoaXMg
PDwgbV9sYXllciA8PCByZWdpb24gPDwgbV9zaXplOworCQkJcGl4bWFwLnNhdmUoUVN0cmluZygp
LnNwcmludGYoIi90bXAvJTA1ZF9BLnBuZyIsIHJlY2FjaGVfY250KSwgIlBORyIpOworI2VuZGlm
CisKKwkJCVFQYWludGVyIHBhaW50ZXIoJnBpeG1hcCk7CisJCQlHcmFwaGljc0NvbnRleHQgZ2Mo
JnBhaW50ZXIpOwogCi0gICAgLy8gQ2xlYXIgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBk
cmF3aW5nIGludG8KLSAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29t
cG9zaXRpb25Nb2RlX0NsZWFyKTsKLSAgICBwYWludGVyLmZpbGxSZWN0KHJlZ2lvbi5ib3VuZGlu
Z1JlY3QoKSwgUXQ6OnRyYW5zcGFyZW50KTsKKwkJCXBhaW50ZXIuc2V0Q2xpcFJlZ2lvbiggcmVn
aW9uICk7CiAKLSAgICAvLyBSZW5kZXIgdGhlIGFjdHVhbCBjb250ZW50cyBpbnRvIHRoZSBjYWNo
ZQotICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1v
ZGVfU291cmNlT3Zlcik7Ci0gICAgbV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMo
Z2MsIHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CisJCQlpZiggIWVyYXNlZCApIHsgLy8gRXJhc2Ug
dGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8KKwkJCQlwYWludGVyLnNl
dENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0NsZWFyKTsKKwkJCQlw
YWludGVyLmZpbGxSZWN0KHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSwgUXQ6OnRyYW5zcGFyZW50KTsK
IAotICAgIG1fYmFja2luZ1N0b3JlS2V5ID0gUVBpeG1hcENhY2hlOjppbnNlcnQocGl4bWFwKTsK
KyNpZmRlZiBORl9ERUJVR19DQUNIRURVTVAKKwkJCQlxRGVidWcoKSA8PCAiKioqKiBDQUNIRURV
TVAiIDw8IHJlY2FjaGVfY250IDw8IHRoaXMgPDwgbV9sYXllciA8PCByZWdpb24gPDwgbV9zaXpl
OworCQkJCXBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQi5wbmciLCBy
ZWNhY2hlX2NudCksICJQTkciKTsKKyNlbmRpZgorCisJCQl9CisKKwkJCS8vIFJlbmRlciB0aGUg
YWN0dWFsIGNvbnRlbnRzIGludG8gdGhlIGNhY2hlCisJCQlwYWludGVyLnNldENvbXBvc2l0aW9u
TW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXIpOworCQkJbV9sYXllci0+
cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CisK
KwkJCXBhaW50ZXIuZW5kKCk7CisKKyNpZmRlZiBORl9ERUJVR19DQUNIRURVTVAKKwkJCXFEZWJ1
ZygpIDw8ICIqKioqIENBQ0hFRFVNUCIgPDwgcmVjYWNoZV9jbnQgPDwgdGhpcyA8PCBtX2xheWVy
IDw8IHJlZ2lvbiA8PCBtX3NpemU7CisJCQlwaXhtYXAuc2F2ZShRU3RyaW5nKCkuc3ByaW50Zigi
L3RtcC8lMDVkX0MucG5nIiwgcmVjYWNoZV9jbnQpLCAiUE5HIik7CisjZW5kaWYKKworCQl9CisJ
CW1fYmFja2luZ1N0b3JlLnNpemUgPSBtX3NpemU7CisJfQorCisgICAgbV9iYWNraW5nU3RvcmUu
a2V5ID0gUVBpeG1hcENhY2hlOjppbnNlcnQocGl4bWFwKTsKICAgICByZXR1cm4gcGl4bWFwOwog
fQogCkBAIC00NjYsNyArNTQ2LDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQo
UVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlCiAJCQltX3Bl
bmRpbmdDb250ZW50LnVwZGF0ZUFsbCA9IGZhbHNlOwogCQkJbV9wZW5kaW5nQ29udGVudC5yZWdp
b25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKICAgICAgICAgICAgIGNvbnN0IFFQaXhtYXAgYmFja2lu
Z1N0b3JlID0gcmVjYWNoZShyZWdpb24pOwotICAgICAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1h
cCgwLCAwLCBiYWNraW5nU3RvcmUpOworCQkJY29uc3QgUVJlY3RGIHIoIDAsIDAsIG1fYmFja2lu
Z1N0b3JlLnNpemUud2lkdGgoKSwgbV9iYWNraW5nU3RvcmUuc2l6ZS5oZWlnaHQoKSApOworCQkJ
cGFpbnRlci0+ZHJhd1BpeG1hcCggciwgYmFja2luZ1N0b3JlLCByICk7CisgICAgICAgIH0gZWxz
ZSBpZiAobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKSB7CisJCQlw
YWludGVyLT5maWxsUmVjdChvcHRpb24tPnJlY3QsIFFDb2xvcihtX2N1cnJlbnRDb250ZW50LmJh
Y2tncm91bmRDb2xvcikpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGl4
bWFwQ29udGVudFR5cGU6CkBAIC01NTMsMTEgKzYzNiw5IEBAIHZvaWQgR3JhcGhpY3NMYXllclF0
SW1wbDo6Zmx1c2hDaGFuZ2VzKGJvb2wgcmVjdXJzaXZlLCBib29sIGZvcmNlVXBkYXRlVHJhbnNm
b3JtCiAjZW5kaWYKICAgICB9CiAKLSAgICBpZiAobV9jaGFuZ2VNYXNrICYgU2l6ZUNoYW5nZSkg
ewotICAgICAgICBpZiAobV9sYXllci0+c2l6ZSgpICE9IG1fc3RhdGUuc2l6ZSkgewotCQkJaGFu
ZGxlR2VvbWV0cnlDaGFuZ2UoKTsKLSAgICAgICAgICAgIG1fc2l6ZSA9IFFTaXplRihtX2xheWVy
LT5zaXplKCkud2lkdGgoKSwgbV9sYXllci0+c2l6ZSgpLmhlaWdodCgpKTsKLSAgICAgICAgfQor
ICAgIGlmICgobV9jaGFuZ2VNYXNrICYgU2l6ZUNoYW5nZSkgJiYgbV9sYXllci0+c2l6ZSgpICE9
IG1fc3RhdGUuc2l6ZSkgeworCQloYW5kbGVHZW9tZXRyeUNoYW5nZSgpOworCQltX3NpemUgPSBR
U2l6ZUYobV9sYXllci0+c2l6ZSgpLndpZHRoKCksIG1fbGF5ZXItPnNpemUoKS5oZWlnaHQoKSk7
CiAgICAgfQogI2lmIDAKICAgICAvLyBGSVhNRTogdGhpcyBpcyBhIGhhY2ssIGR1ZSB0byBhIHBy
b2JhYmxlIFFHcmFwaGljc1NjZW5lIGJ1ZyB3aGVuIHJhcGlkbHkgbW9kaWZ5aW5nIHRoZSBwZXJz
cGVjdGl2ZQpAQCAtNjM1LDE4ICs3MTYsMjAgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpm
bHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zvcm0KICAg
ICBlbHNlCiAjZW5kaWYKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRGlzcGxheUNoYW5nZSkgewot
ICAgICAgICAvLyBSZWNhY2hlIG5vdzogYWxsIHRoZSBjb250ZW50IGlzIHJlYWR5IGFuZCB3ZSBk
b24ndCB3YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhaW50IGV2ZW50LgotICAgICAgICAvLyBXZSBv
bmx5IG5lZWQgdG8gZG8gdGhpcyBmb3IgSFRNTCBjb250ZW50LCB0aGVyZSdzIG5vIHBvaW50IGlu
IGNhY2hpbmcgZGlyZWN0bHkgY29tcG9zaXRlZAotICAgICAgICAvLyBjb250ZW50IGxpa2UgaW1h
Z2VzIG9yIHNvbGlkIHJlY3RhbmdsZXMuCiAgICAgICAgIGlmIChtX3BlbmRpbmdDb250ZW50LmNv
bnRlbnRUeXBlID09IEhUTUxDb250ZW50VHlwZSkgewogCQkJUVJlZ2lvbiByZWdpb247CiAJCQlp
ZiggbV9wZW5kaW5nQ29udGVudC51cGRhdGVBbGwgKQogCQkJCXJlZ2lvbiB8PSBib3VuZGluZ1Jl
Y3QoKS50b1JlY3QoKTsKIAkJCWVsc2UKIAkJCQlyZWdpb24gfD0gbV9wZW5kaW5nQ29udGVudC5y
ZWdpb25Ub1VwZGF0ZTsKKyNpZiAwCisJCQkvLyBSZWNhY2hlIG5vdzogYWxsIHRoZSBjb250ZW50
IGlzIHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhaW50IGV2ZW50
LgorCQkJLy8gV2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgZm9yIEhUTUwgY29udGVudCwgdGhlcmUn
cyBubyBwb2ludCBpbiBjYWNoaW5nIGRpcmVjdGx5IGNvbXBvc2l0ZWQKKwkJCS8vIGNvbnRlbnQg
bGlrZSBpbWFnZXMgb3Igc29saWQgcmVjdGFuZ2xlcy4KIAkJCW1fcGVuZGluZ0NvbnRlbnQudXBk
YXRlQWxsID0gZmFsc2U7CiAJCQltX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJl
Z2lvbigpOwogICAgICAgICAgICAgcmVjYWNoZShyZWdpb24pOworI2VuZGlmCiAJCQl1cGRhdGUo
cmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKIAkJfQogCX0KLS0gCjEuNy4xCgo=
</data>
<flag name="review"
          id="43244"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58557</attachid>
            <date>2010-06-12 10:22:16 -0700</date>
            <delta_ts>2010-06-15 12:26:51 -0700</delta_ts>
            <desc>Proposed patch with proper coding style</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>8975</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBjOWMwNGQ2MGFhNGY0YzFiMmI2MTM1NDRlZmI0MGI4ZTlmYjM3YzcwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCiBidWcgLSA0MDM3OAoKLS0tCiBXZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysKIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcCB8ICAxMjYgKysrKysrKysrKysr
KysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjIgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxZDlkNzM5Li41MmUxNzIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA2LTA5ICBTYW0g
TWFnbnVzb24gIDxzbWFnbnVzb25AbmV0ZmxpeC5jb20+CisgICAgICAgCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgW1F0XSBXaGVuIGFueSBn
ZW9tZXRyeSBjaGFuZ2UgaGFwcGVucyB0byBhIG5vZGUgaXQgd2lsbCByZXNpemUgdGhlCisgICAg
ICAgIGJhY2tpbmcgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQwMzc4CisKKyAgICAgICAgQ29udGludWUgdG8gZ3JvdyB0aGUgY2FjaGUsIGJ1
dCBuZXZlciB0b3NzIGl0LiBXaGVuIHRoZSBwaXhtYXAKKyAgICAgICAgY2FjaGUgZ2V0cyB0b28g
YmlnIGl0IHdpbGwgYmUgbG9zdCBhbmQgY3JlYXRlZCBhdCB0aGUgcmlnaHQgc2l6ZQorICAgICAg
ICBuZXh0IHRpbWUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyUXRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUXRJbXBsOjpmbHVzaENoYW5nZXMpOgorCiAyMDEwLTA2LTA3ICBKb2NlbHluIFR1cmNvdHRl
ICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzTGF5ZXJRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNz
TGF5ZXJRdC5jcHAKaW5kZXggYmU0NGZjYS4uNjkwYzVlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcApAQCAtNDEsNiArNDEsOSBAQAog
I2luY2x1ZGUgPFF0R3VpL3FwaXhtYXBjYWNoZS5oPgogI2luY2x1ZGUgPFF0R3VpL3FzdHlsZW9w
dGlvbi5oPgogCisvLyAjZGVmaW5lIE5GX0RFQlVHX0NBQ0hFRFVNUAorLy8gI2RlZmluZSBORl9E
RUJVR19SRUNBQ0hFCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmbmRlZiBRVF9OT19HUkFQ
SElDU0VGRkVDVApAQCAtMjE0LDcgKzIxNywxMCBAQCBwdWJsaWM6CiAgICAgaW50IG1fY2hhbmdl
TWFzazsKIAogICAgIFFTaXplRiBtX3NpemU7Ci0gICAgUVBpeG1hcENhY2hlOjpLZXkgbV9iYWNr
aW5nU3RvcmVLZXk7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAgICAgUVBpeG1hcENh
Y2hlOjpLZXkga2V5OworICAgICAgICAgICAgICAgIFFTaXplRiAgICAgICAgICAgIHNpemU7Cisg
ICAgICAgIH0gbV9iYWNraW5nU3RvcmU7CiAjaWZuZGVmIFFUX05PX0FOSU1BVElPTgogICAgIFFM
aXN0PFFXZWFrUG9pbnRlcjxRQWJzdHJhY3RBbmltYXRpb24+ID4gbV9hbmltYXRpb25zOwogI2Vu
ZGlmCkBAIC0zMDYsMzIgKzMxMiwxMDMgQEAgUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBsOjpy
ZWNhY2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQogICAgIGlmICghbV9sYXllci0+
ZHJhd3NDb250ZW50KCkgfHwgbV9zaXplLmlzRW1wdHkoKSB8fCFtX3NpemUuaXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCi0gICAgUVJlZ2lvbiByZWdpb24gPSByZWdpb25U
b1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKKyAgICBRUGl4bWFwQ2FjaGU6OmZpbmQobV9i
YWNraW5nU3RvcmUua2V5LCAmcGl4bWFwKTsKKyAgICBRUGl4bWFwQ2FjaGU6OnJlbW92ZShtX2Jh
Y2tpbmdTdG9yZS5rZXkpOworCisgICAgeworICAgICAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lv
blRvVXBkYXRlOwogCi0gICAgLy8gV2UgbWlnaHQgYmUgZHJhd2luZyBpbnRvIGFuIGV4aXN0aW5n
IGNhY2hlLgotICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFja2luZ1N0b3JlS2V5LCAm
cGl4bWFwKSkKLSAgICAgICAgcmVnaW9uID0gUVJlZ2lvbihRUmVjdCgwLCAwLCBtX3NpemUud2lk
dGgoKSwgbV9zaXplLmhlaWdodCgpKSk7CisgICAgICAgIC8vIFdlIG1pZ2h0IGJlIGRyYXdpbmcg
aW50byBhbiBleGlzdGluZyBjYWNoZS4KKyAgICAgICAgYm9vbCBlcmFzZWQgPSBmYWxzZTsKIAot
ICAgIGlmIChtX3NpemUgIT0gcGl4bWFwLnNpemUoKSkgewotICAgICAgICBwaXhtYXAgPSBRUGl4
bWFwKG1fc2l6ZS50b1NpemUoKSk7Ci0gICAgICAgIGlmICghbV9sYXllci0+Y29udGVudHNPcGFx
dWUoKSkKLSAgICAgICAgICAgIHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7Ci0gICAgICAg
IG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgw
LCAwKSwgbV9zaXplLnRvU2l6ZSgpKSk7Ci0gICAgfQorICAgICAgICBpZiAoIHBpeG1hcC5pc051
bGwoKSB8fCBtX3NpemUgIT0gbV9iYWNraW5nU3RvcmUuc2l6ZSApIHsKKyNpZmRlZiBORl9ERUJV
R19SRUNBQ0hFCisgICAgICAgICAgICBpZiAoIHBpeG1hcC5pc051bGwoKSApCisgICAgICAgICAg
ICAgICAgcURlYnVnKCkgPDwgIkNhY2hlTWlzcyIgPDwgdGhpcyA8PCBtX3NpemU7CisjZW5kaWYK
KyAgICAgICAgICAgIGJvb2wgZmlsbCA9IHRydWU7CisgICAgICAgICAgICBRUmVnaW9uIG5ld1Jl
Z2lvbjsKKyAgICAgICAgICAgIFFQaXhtYXAgb2xkUGl4bWFwID0gcGl4bWFwOworCisgICAgICAg
ICAgICBpZiAoIHBpeG1hcC53aWR0aCgpIDwgbV9zaXplLndpZHRoKCkgfHwgcGl4bWFwLmhlaWdo
dCgpIDwgbV9zaXplLmhlaWdodCgpICkgeworI2lmZGVmIE5GX0RFQlVHX1JFQ0FDSEUKKyAgICAg
ICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVHcm93IiA8PCB0aGlzIDw8IG1fc2l6ZTsKKyNl
bmRpZgorICAgICAgICAgICAgICAgIHBpeG1hcCA9IFFQaXhtYXAobV9zaXplLnRvU2l6ZSgpKTsK
KyAgICAgICAgICAgICAgICBwaXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAg
ICAgICAgIG5ld1JlZ2lvbiA9IFFSZWdpb24oMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5o
ZWlnaHQoKSk7CisgICAgICAgICAgICB9CisKKyNpZiAxCisgICAgICAgICAgICBpZiAoICFvbGRQ
aXhtYXAuaXNOdWxsKCkgKSB7CisgICAgICAgICAgICAgICAgY29uc3QgUVJlZ2lvbiBjbGVhblJl
Z2lvbiA9IChRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpICYK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFSZWdpb24oMCwg
MCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5zaXplLmhlaWdo
dCgpKSkgLSByZWdpb25Ub1VwZGF0ZTsKKyAgICAgICAgICAgICAgICBpZiAoICFjbGVhblJlZ2lv
bi5pc0VtcHR5KCkgKSB7CisjaWZkZWYgTkZfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgICAg
ICAgICBxRGVidWcoKSA8PCAiQ2FjaGVCbGl0IiA8PCB0aGlzIDw8IGNsZWFuUmVnaW9uOworI2Vu
ZGlmCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFSZWN0IGNsZWFuQm91bmRzKGNsZWFuUmVn
aW9uLmJvdW5kaW5nUmVjdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgUVBhaW50ZXIgcGFpbnRl
cigmcGl4bWFwKTsKKyAgICAgICAgICAgICAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1v
ZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2UpOworICAgICAgICAgICAgICAgICAg
ICBwYWludGVyLmRyYXdQaXhtYXAoY2xlYW5Cb3VuZHMudG9wTGVmdCgpLCBvbGRQaXhtYXAsIGNs
ZWFuQm91bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgbmV3UmVnaW9uIC09IGNsZWFuUmVnaW9u
OworICAgICAgICAgICAgICAgICAgICBmaWxsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIG9sZFBpeG1hcCA9IFFQaXhtYXAoKTsKKyAgICAgICAgICAgIH0KKyNl
bmRpZgorICAgICAgICAgICAgcmVnaW9uICs9IG5ld1JlZ2lvbjsKKyAgICAgICAgICAgIGlmICgg
ZmlsbCAmJiAhcmVnaW9uLmlzRW1wdHkoKSApIHsKKyNpZmRlZiBORl9ERUJVR19SRUNBQ0hFCisg
ICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlRXJhc2UiIDw8IHRoaXMgPDwgbV9zaXpl
IDw8IGJhY2tncm91bmQ7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBlcmFzZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgcmVnaW9uICY9IFFSZWdpb24oMCwgMCwgbV9zaXplLndp
ZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7CisKKyAgICAgICAgaWYgKCAhcmVnaW9uLmlzRW1wdHko
KSApIHsKKyNpZmRlZiBORl9ERUJVR19DQUNIRURVTVAKKyAgICAgICAgICAgIHN0YXRpYyBpbnQg
cmVjYWNoZUNvdW50ID0gMDsKKyAgICAgICAgICAgICsrcmVjYWNoZUNvdW50OworICAgICAgICAg
ICAgcURlYnVnKCkgPDwgIioqKiogQ0FDSEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8
PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3NpemU7CisgICAgICAgICAgICBwaXhtYXAuc2F2ZShR
U3RyaW5nKCkuc3ByaW50ZigiL3RtcC8lMDVkX0EucG5nIiwgcmVjYWNoZUNvdW50KSwgIlBORyIp
OworI2VuZGlmCisKKyAgICAgICAgICAgIFFQYWludGVyIHBhaW50ZXIoJnBpeG1hcCk7CisgICAg
ICAgICAgICBHcmFwaGljc0NvbnRleHQgZ2MoJnBhaW50ZXIpOworCisgICAgICAgICAgICBwYWlu
dGVyLnNldENsaXBSZWdpb24ocmVnaW9uKTsKKworICAgICAgICAgICAgaWYgKCAhZXJhc2VkICkg
eyAvLyBFcmFzZSB0aGUgYXJlYSBpbiBjYWNoZSB0aGF0IHdlJ3JlIGRyYXdpbmcgaW50bworICAg
ICAgICAgICAgICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3Np
dGlvbk1vZGVfQ2xlYXIpOworICAgICAgICAgICAgICAgIHBhaW50ZXIuZmlsbFJlY3QocmVnaW9u
LmJvdW5kaW5nUmVjdCgpLCBRdDo6dHJhbnNwYXJlbnQpOwogCi0gICAgUVBhaW50ZXIgcGFpbnRl
cigmcGl4bWFwKTsKLSAgICBHcmFwaGljc0NvbnRleHQgZ2MoJnBhaW50ZXIpOworI2lmZGVmIE5G
X0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIqKioqIENBQ0hF
RFVNUCIgPDwgcmVjYWNoZUNvdW50IDw8IHRoaXMgPDwgbV9sYXllciA8PCByZWdpb24gPDwgbV9z
aXplOworICAgICAgICAgICAgICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1w
LyUwNWRfQi5wbmciLCByZWNhY2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKworICAgICAgICAg
ICAgfQogCi0gICAgLy8gQ2xlYXIgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5n
IGludG8KLSAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRp
b25Nb2RlX0NsZWFyKTsKLSAgICBwYWludGVyLmZpbGxSZWN0KHJlZ2lvbi5ib3VuZGluZ1JlY3Qo
KSwgUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNv
bnRlbnRzIGludG8gdGhlIGNhY2hlCisgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9u
TW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXIpOworICAgICAgICAgICAg
bV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3VuZGluZ1Jl
Y3QoKSk7CiAKLSAgICAvLyBSZW5kZXIgdGhlIGFjdHVhbCBjb250ZW50cyBpbnRvIHRoZSBjYWNo
ZQotICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1v
ZGVfU291cmNlT3Zlcik7Ci0gICAgbV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMo
Z2MsIHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CisgICAgICAgICAgICBwYWludGVyLmVuZCgpOwog
Ci0gICAgbV9iYWNraW5nU3RvcmVLZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOyAg
ICAKKyNpZmRlZiBORl9ERUJVR19DQUNIRURVTVAKKyAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIq
KioqIENBQ0hFRFVNUCIgPDwgcmVjYWNoZUNvdW50IDw8IHRoaXMgPDwgbV9sYXllciA8PCByZWdp
b24gPDwgbV9zaXplOworICAgICAgICAgICAgcGl4bWFwLnNhdmUoUVN0cmluZygpLnNwcmludGYo
Ii90bXAvJTA1ZF9DLnBuZyIsIHJlY2FjaGVDb3VudCksICJQTkciKTsKKyNlbmRpZgorCisgICAg
ICAgIH0KKyAgICAgICAgbV9iYWNraW5nU3RvcmUuc2l6ZSA9IG1fc2l6ZTsKKyAgICB9CisKKyAg
ICBtX2JhY2tpbmdTdG9yZS5rZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOwogICAg
IHJldHVybiBwaXhtYXA7CiB9CiAKQEAgLTQ0OCw3ICs1MjUsOCBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJRdEltcGw6OnBhaW50KFFQYWludGVyKiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFw
aGljc0l0ZQogICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byByZWNhY2hlLCBpbiBjYXNl
IHdlIHRyeSB0byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJnZWQgKGUuZy4gaWYgaXQgd2Fz
IGZ1bGwpLgogICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3Rv
cmVLZXksICZiYWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5zaXplKCkgIT0gbV9zaXplLnRv
U2l6ZSgpKQogICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZSA9IHJlY2FjaGUoUVJlZ2lvbiht
X3N0YXRlLmNvbnRlbnRzUmVjdCkpOwotICAgICAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCgw
LCAwLCBiYWNraW5nU3RvcmUpOworICAgICAgICAgICAgY29uc3QgUVJlY3RGIHIoMCwgMCwgbV9i
YWNraW5nU3RvcmUuc2l6ZS53aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5zaXplLmhlaWdodCgpKTsK
KyAgICAgICAgICAgIHBhaW50ZXItPmRyYXdQaXhtYXAociwgYmFja2luZ1N0b3JlLCByKTsKICAg
ICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFBpeG1hcENvbnRlbnRUeXBlOgpAQCAt
NjEzLDExICs2OTEsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMo
Ym9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zvcm0KICAgICBlbHNlCiAjZW5k
aWYKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRGlzcGxheUNoYW5nZSkgeworI2lmIDAKICAgICAg
ICAgLy8gUmVjYWNoZSBub3c6IGFsbCB0aGUgY29udGVudCBpcyByZWFkeSBhbmQgd2UgZG9uJ3Qg
d2FudCB0byB3YWl0IHVudGlsIHRoZSBwYWludCBldmVudC4KICAgICAgICAgLy8gV2Ugb25seSBu
ZWVkIHRvIGRvIHRoaXMgZm9yIEhUTUwgY29udGVudCwgdGhlcmUncyBubyBwb2ludCBpbiBjYWNo
aW5nIGRpcmVjdGx5IGNvbXBvc2l0ZWQKICAgICAgICAgLy8gY29udGVudCBsaWtlIGltYWdlcyBv
ciBzb2xpZCByZWN0YW5nbGVzLgogICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5jb250ZW50
VHlwZSA9PSBIVE1MQ29udGVudFR5cGUpCiAgICAgICAgICAgICByZWNhY2hlKG1fcGVuZGluZ0Nv
bnRlbnQucmVnaW9uVG9VcGRhdGUpOworI2VuZGlmCiAgICAgICAgIHVwZGF0ZShtX3BlbmRpbmdD
b250ZW50LnJlZ2lvblRvVXBkYXRlLmJvdW5kaW5nUmVjdCgpKTsKICAgICAgICAgbV9wZW5kaW5n
Q29udGVudC5yZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKICAgICB9CkBAIC02NTQsNyArNzM0
LDcgQEAgYWZ0ZXJMYXllckNoYW5nZXM6CiAgICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgpOwogCiAg
ICAgaWYgKCFyZWN1cnNpdmUpCi0gICAgICAgIHJldHVybjsgICAgCisgICAgICAgIHJldHVybjsK
IAogICAgIFFMaXN0PFFHcmFwaGljc0l0ZW0qPiBjaGlsZHJlbiA9IGNoaWxkSXRlbXMoKTsKICAg
ICBpZiAobV9zdGF0ZS5tYXNrTGF5ZXIpCkBAIC05MjgsNyArMTAwOCw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllclF0OjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogICAgICAgICAgICAg
bV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnBpeG1hcCA9ICpweG07CiAgICAgICAgICAgICBtX2lt
cGwtPm1fcGVuZGluZ0NvbnRlbnQuY29udGVudFR5cGUgPSBHcmFwaGljc0xheWVyUXRJbXBsOjpQ
aXhtYXBDb250ZW50VHlwZTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfSAgICAgICAg
CisgICAgICAgIH0KICAgICB9CiAgICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnBpeG1hcCA9
IFFQaXhtYXAoKTsKIH0KLS0gCjEuNy4xCgo=
</data>
<flag name="review"
          id="44909"
          type_id="1"
          status="-"
          setter="jedrzej.nowacki"
    />
    <flag name="commit-queue"
          id="45205"
          type_id="3"
          status="-"
          setter="jedrzej.nowacki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58805</attachid>
            <date>2010-06-15 12:26:51 -0700</date>
            <delta_ts>2010-06-15 12:39:59 -0700</delta_ts>
            <desc>Proposed patch with proper coding style, I had reapplied this after a pull from origin this week but never reposted</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>9661</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBiODA3NzE3Yjk2YjQyOTNjNTlmZmZjNDNlMjlhNjk3ZmYxZTdlNmEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCiBidWcgLSA0MDM3OAoKLS0tCiBXZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKwogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwIHwgIDEzMCArKysrKysrKysrKysr
KysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZTA0NzI5ZC4uZDQ2OGYyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNi0wOSAgU2FtIE1h
Z251c29uICA8c21hZ251c29uQG5ldGZsaXguY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhh
cHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVzaXplIHRoZQorICAgICAgICBiYWNraW5nIGNhY2hl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3OAor
CisgICAgICAgIENvbnRpbnVlIHRvIGdyb3cgdGhlIGNhY2hlLCBidXQgbmV2ZXIgdG9zcyBpdC4g
V2hlbiB0aGUgcGl4bWFwCisgICAgICAgIGNhY2hlIGdldHMgdG9vIGJpZyBpdCB3aWxsIGJlIGxv
c3QgYW5kIGNyZWF0ZWQgYXQgdGhlIHJpZ2h0IHNpemUKKyAgICAgICAgbmV4dCB0aW1lLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0czogdGhpcyBpcyBhbiBvcHRpbWl6YXRpb24uCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyUXRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUXRJbXBsOjpmbHVzaENoYW5nZXMpOgorCiAyMDEwLTA2LTEzICBOb2FtIFJvc2VudGhhbCAg
PG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NM
YXllclF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0
LmNwcAppbmRleCBhZDJlYzljLi5mYTkyYjE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCkBAIC00MSw2ICs0MSw5IEBACiAjaW5jbHVk
ZSA8UXRHdWkvcXBpeG1hcGNhY2hlLmg+CiAjaW5jbHVkZSA8UXRHdWkvcXN0eWxlb3B0aW9uLmg+
CiAKKy8vICNkZWZpbmUgUVRfREVCVUdfQ0FDSEVEVU1QCisvLyAjZGVmaW5lIFFUX0RFQlVHX1JF
Q0FDSEUKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWZuZGVmIFFUX05PX0dSQVBISUNTRUZG
RUNUCkBAIC0yMTQsNyArMjE3LDEwIEBAIHB1YmxpYzoKICAgICBpbnQgbV9jaGFuZ2VNYXNrOwog
CiAgICAgUVNpemVGIG1fc2l6ZTsKLSAgICBRUGl4bWFwQ2FjaGU6OktleSBtX2JhY2tpbmdTdG9y
ZUtleTsKKyAgICBzdHJ1Y3QgeworICAgICAgICBRUGl4bWFwQ2FjaGU6OktleSBrZXk7CisgICAg
ICAgIFFTaXplRiAgICAgICAgICAgIHNpemU7CisgICAgfSBtX2JhY2tpbmdTdG9yZTsKICNpZm5k
ZWYgUVRfTk9fQU5JTUFUSU9OCiAgICAgUUxpc3Q8UVdlYWtQb2ludGVyPFFBYnN0cmFjdEFuaW1h
dGlvbj4gPiBtX2FuaW1hdGlvbnM7CiAjZW5kaWYKQEAgLTMwMywzNiArMzA5LDEwNyBAQCBjb25z
dCBHcmFwaGljc0xheWVyUXRJbXBsKiBHcmFwaGljc0xheWVyUXRJbXBsOjpyb290TGF5ZXIoKSBj
b25zdAogCiBRUGl4bWFwIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnJlY2FjaGUoY29uc3QgUVJlZ2lv
biYgcmVnaW9uVG9VcGRhdGUpCiB7Ci0gICAgaWYgKCFtX2xheWVyLT5kcmF3c0NvbnRlbnQoKSB8
fCBtX3NpemUuaXNFbXB0eSgpIHx8IW1fc2l6ZS5pc1ZhbGlkKCkpCisgICAgaWYgKCFtX2xheWVy
LT5kcmF3c0NvbnRlbnQoKSB8fCBtX3NpemUuaXNFbXB0eSgpIHx8ICFtX3NpemUuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCi0gICAgUVJlZ2lvbiByZWdpb24gPSByZWdp
b25Ub1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKKyAgICBpZiggUVBpeG1hcENhY2hlOjpm
aW5kKG1fYmFja2luZ1N0b3JlLmtleSwgJnBpeG1hcCkgKQorICAgICAgICBRUGl4bWFwQ2FjaGU6
OnJlbW92ZShtX2JhY2tpbmdTdG9yZS5rZXkpOyAvL3JlbW92ZSB0aGUgcmVmZXJlbmNlIHRvIHRo
ZSBwaXhtYXAgaW4gdGhlIGNhY2hlIHRvIGF2b2lkIGEgZGV0YWNoCiAKLSAgICAvLyBXZSBtaWdo
dCBiZSBkcmF3aW5nIGludG8gYW4gZXhpc3RpbmcgY2FjaGUuCi0gICAgaWYgKCFRUGl4bWFwQ2Fj
aGU6OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZwaXhtYXApKQotICAgICAgICByZWdpb24gPSBR
UmVnaW9uKFFSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsKKyAg
ICB7CisgICAgICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9VcGRhdGU7CisgICAgICAgIGJv
b2wgZXJhc2VkID0gZmFsc2U7CisKKyAgICAgICAgLy9JZiB0aGUgcGl4bWFwIGlzIG5vdCBpbiB0
aGUgY2FjaGUgb3IgdGhlIHZpZXcgaGFzIGdyb3duIHNpbmNlIHRoZSBsYXN0IGNhY2hlCisgICAg
ICAgIGlmICggcGl4bWFwLmlzTnVsbCgpIHx8IG1fc2l6ZSAhPSBtX2JhY2tpbmdTdG9yZS5zaXpl
ICkgeworI2lmZGVmIFFUX0RFQlVHX1JFQ0FDSEUKKyAgICAgICAgICAgIGlmICggcGl4bWFwLmlz
TnVsbCgpICkKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVNaXNzIiA8PCB0aGlz
IDw8IG1fc2l6ZTsKKyNlbmRpZgorICAgICAgICAgICAgYm9vbCBmaWxsID0gdHJ1ZTsKKyAgICAg
ICAgICAgIFFSZWdpb24gbmV3UmVnaW9uOworICAgICAgICAgICAgUVBpeG1hcCBvbGRQaXhtYXAg
PSBwaXhtYXA7CisKKyAgICAgICAgICAgIC8vSWYgdGhlIHBpeG1hcAorICAgICAgICAgICAgaWYg
KCBwaXhtYXAud2lkdGgoKSA8IG1fc2l6ZS53aWR0aCgpIHx8IHBpeG1hcC5oZWlnaHQoKSA8IG1f
c2l6ZS5oZWlnaHQoKSApIHsKKyNpZmRlZiBRVF9ERUJVR19SRUNBQ0hFCisgICAgICAgICAgICAg
ICAgcURlYnVnKCkgPDwgIkNhY2hlR3JvdyIgPDwgdGhpcyA8PCBtX3NpemU7CisjZW5kaWYKKyAg
ICAgICAgICAgICAgICBwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50b1NpemUoKSk7CisgICAgICAg
ICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAgICAgICAgICBu
ZXdSZWdpb24gPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkp
OworICAgICAgICAgICAgfQogCi0gICAgaWYgKG1fc2l6ZSAhPSBwaXhtYXAuc2l6ZSgpKSB7Ci0g
ICAgICAgIHBpeG1hcCA9IFFQaXhtYXAobV9zaXplLnRvU2l6ZSgpKTsKLSAgICAgICAgaWYgKCFt
X2xheWVyLT5jb250ZW50c09wYXF1ZSgpKQotICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRy
YW5zcGFyZW50KTsKLSAgICAgICAgbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9IFFS
ZWdpb24oUVJlY3QoUVBvaW50KDAsIDApLCBtX3NpemUudG9TaXplKCkpKTsKLSAgICB9CisjaWYg
MQorICAgICAgICAgICAgLy9CbGl0IHRoZSBjb250ZW50cyBvZiBvbGRQaXhtYXAgYmFjayBpbnRv
IHRoZSBjYWNoZWQgcGl4bWFwIGFzIHdlIGFyZSBqdXN0IGFkZGluZyBuZXcgcGl4ZWxzCisgICAg
ICAgICAgICBpZiAoICFvbGRQaXhtYXAuaXNOdWxsKCkgKSB7CisgICAgICAgICAgICAgICAgY29u
c3QgUVJlZ2lvbiBjbGVhblJlZ2lvbiA9IChRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBt
X3NpemUuaGVpZ2h0KCkpICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFFSZWdpb24oMCwgMCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53aWR0aCgpLCBtX2JhY2tp
bmdTdG9yZS5zaXplLmhlaWdodCgpKSkgLSByZWdpb25Ub1VwZGF0ZTsKKyAgICAgICAgICAgICAg
ICBpZiAoICFjbGVhblJlZ2lvbi5pc0VtcHR5KCkgKSB7CisjaWZkZWYgUVRfREVCVUdfUkVDQUNI
RQorICAgICAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVCbGl0IiA8PCB0aGlzIDw8
IGNsZWFuUmVnaW9uOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFSZWN0IGNs
ZWFuQm91bmRzKGNsZWFuUmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgUVBhaW50ZXIgcGFpbnRlcigmcGl4bWFwKTsKKyAgICAgICAgICAgICAgICAgICAgcGFpbnRl
ci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2UpOwor
ICAgICAgICAgICAgICAgICAgICBwYWludGVyLmRyYXdQaXhtYXAoY2xlYW5Cb3VuZHMudG9wTGVm
dCgpLCBvbGRQaXhtYXAsIGNsZWFuQm91bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgbmV3UmVn
aW9uIC09IGNsZWFuUmVnaW9uOworICAgICAgICAgICAgICAgICAgICBmaWxsID0gZmFsc2U7IC8v
d2UgY2Fubm90IGp1c3QgZmlsbCB0aGUgcGl4bWFwCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIG9sZFBpeG1hcCA9IFFQaXhtYXAoKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgor
ICAgICAgICAgICAgcmVnaW9uICs9IG5ld1JlZ2lvbjsKKyAgICAgICAgICAgIGlmICggZmlsbCAm
JiAhcmVnaW9uLmlzRW1wdHkoKSApIHsgLy9GaWxsIHRoZSBlbnRpcmUgcGl4bWFwIHdpdGggdGhl
IGJhY2tncm91bmQKKyNpZmRlZiBRVF9ERUJVR19SRUNBQ0hFCisgICAgICAgICAgICAgICAgcURl
YnVnKCkgPDwgIkNhY2hlRXJhc2UiIDw8IHRoaXMgPDwgbV9zaXplIDw8IGJhY2tncm91bmQ7Cisj
ZW5kaWYKKyAgICAgICAgICAgICAgICBlcmFzZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHBp
eG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgcmVnaW9uICY9IFFSZWdpb24oMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWln
aHQoKSk7CisKKyAgICAgICAgLy9JZiB3ZSBoYXZlIHNvbWV0aGluZyB0byBkcmF3IGl0cyB0aW1l
IHRvIGVyYXNlIGl0IGFuZCByZW5kZXIgdGhlIGNvbnRlbnRzCisgICAgICAgIGlmICggIXJlZ2lv
bi5pc0VtcHR5KCkgKSB7CisjaWZkZWYgUVRfREVCVUdfQ0FDSEVEVU1QCisgICAgICAgICAgICBz
dGF0aWMgaW50IHJlY2FjaGVDb3VudCA9IDA7CisgICAgICAgICAgICArK3JlY2FjaGVDb3VudDsK
KyAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIqKioqIENBQ0hFRFVNUCIgPDwgcmVjYWNoZUNvdW50
IDw8IHRoaXMgPDwgbV9sYXllciA8PCByZWdpb24gPDwgbV9zaXplOworICAgICAgICAgICAgcGl4
bWFwLnNhdmUoUVN0cmluZygpLnNwcmludGYoIi90bXAvJTA1ZF9BLnBuZyIsIHJlY2FjaGVDb3Vu
dCksICJQTkciKTsKKyNlbmRpZgogCi0gICAgUVBhaW50ZXIgcGFpbnRlcigmcGl4bWFwKTsKLSAg
ICBHcmFwaGljc0NvbnRleHQgZ2MoJnBhaW50ZXIpOworICAgICAgICAgICAgUVBhaW50ZXIgcGFp
bnRlcigmcGl4bWFwKTsKKyAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBnYygmcGFpbnRlcik7
CiAKLSAgICAvLyBDbGVhciB0aGUgYXJlYSBpbiBjYWNoZSB0aGF0IHdlJ3JlIGRyYXdpbmcgaW50
bwotICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1v
ZGVfQ2xlYXIpOwotICAgIHBhaW50ZXIuZmlsbFJlY3QocmVnaW9uLmJvdW5kaW5nUmVjdCgpLCBR
dDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgcGFpbnRlci5zZXRDbGlwUmVnaW9uKHJlZ2lv
bik7CiAKLSAgICAvLyBSZW5kZXIgdGhlIGFjdHVhbCBjb250ZW50cyBpbnRvIHRoZSBjYWNoZQot
ICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVf
U291cmNlT3Zlcik7Ci0gICAgbV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2Ms
IHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7Ci0gICAgcGFpbnRlci5lbmQoKTsKKyAgICAgICAgICAg
IGlmICggIWVyYXNlZCApIHsgLy8gRXJhc2UgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBk
cmF3aW5nIGludG8KKyAgICAgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShR
UGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0NsZWFyKTsKKyAgICAgICAgICAgICAgICBwYWludGVy
LmZpbGxSZWN0KHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSwgUXQ6OnRyYW5zcGFyZW50KTsKIAotICAg
IG1fYmFja2luZ1N0b3JlS2V5ID0gUVBpeG1hcENhY2hlOjppbnNlcnQocGl4bWFwKTsgICAgCisj
aWZkZWYgUVRfREVCVUdfQ0FDSEVEVU1QCisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIioq
KiogQ0FDSEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lv
biA8PCBtX3NpemU7CisgICAgICAgICAgICAgICAgcGl4bWFwLnNhdmUoUVN0cmluZygpLnNwcmlu
dGYoIi90bXAvJTA1ZF9CLnBuZyIsIHJlY2FjaGVDb3VudCksICJQTkciKTsKKyNlbmRpZgorCisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRz
IGludG8gdGhlIGNhY2hlCisgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShR
UGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXIpOworICAgICAgICAgICAgbV9sYXll
ci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7
CisgICAgICAgICAgICBwYWludGVyLmVuZCgpOworCisjaWZkZWYgUVRfREVCVUdfQ0FDSEVEVU1Q
CisgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2FjaGVDb3Vu
dCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAgICAgICAgIHBp
eG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQy5wbmciLCByZWNhY2hlQ291
bnQpLCAiUE5HIik7CisjZW5kaWYKKworICAgICAgICB9CisgICAgICAgIG1fYmFja2luZ1N0b3Jl
LnNpemUgPSBtX3NpemU7IC8vc3RvcmUgdGhlIHVzZWQgc2l6ZSBvZiB0aGUgcGl4bWFwCisgICAg
fQorCisgICAgbV9iYWNraW5nU3RvcmUua2V5ID0gUVBpeG1hcENhY2hlOjppbnNlcnQocGl4bWFw
KTsgLy9maW5hbGx5IGluc2VydCBpbnRvIHRoZSBjYWNoZSBhbmQgYWxsb3cgYSByZWZlcmVuY2Ug
dGhlcmUKICAgICByZXR1cm4gcGl4bWFwOwogfQogCkBAIC00NDksNyArNTI2LDggQEAgdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjpwYWludChRUGFpbnRlciogcGFpbnRlciwgY29uc3QgUVN0eWxl
T3B0aW9uR3JhcGhpY3NJdGUKICAgICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNo
ZSwgaW4gY2FzZSB3ZSB0cnkgdG8gcGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcu
IGlmIGl0IHdhcyBmdWxsKS4KICAgICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1f
YmFja2luZ1N0b3JlS2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9
IG1fc2l6ZS50b1NpemUoKSkKICAgICAgICAgICAgICAgICBiYWNraW5nU3RvcmUgPSByZWNhY2hl
KFFSZWdpb24obV9zdGF0ZS5jb250ZW50c1JlY3QpKTsKLSAgICAgICAgICAgIHBhaW50ZXItPmRy
YXdQaXhtYXAoMCwgMCwgYmFja2luZ1N0b3JlKTsKKyAgICAgICAgICAgIGNvbnN0IFFSZWN0RiBy
KDAsIDAsIG1fYmFja2luZ1N0b3JlLnNpemUud2lkdGgoKSwgbV9iYWNraW5nU3RvcmUuc2l6ZS5o
ZWlnaHQoKSk7CisgICAgICAgICAgICBwYWludGVyLT5kcmF3UGl4bWFwKHIsIGJhY2tpbmdTdG9y
ZSwgcik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQaXhtYXBDb250ZW50
VHlwZToKQEAgLTYxNCwxMSArNjkyLDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6Zmx1
c2hDaGFuZ2VzKGJvb2wgcmVjdXJzaXZlLCBib29sIGZvcmNlVXBkYXRlVHJhbnNmb3JtCiAgICAg
ZWxzZQogI2VuZGlmCiAgICAgaWYgKG1fY2hhbmdlTWFzayAmIERpc3BsYXlDaGFuZ2UpIHsKKyNp
Zm5kZWYgUVRfR1JBUEhJQ1NfTEFZRVJfTk9fUkVDQUNIRV9PTl9ESVNQTEFZX0NIQU5HRQogICAg
ICAgICAvLyBSZWNhY2hlIG5vdzogYWxsIHRoZSBjb250ZW50IGlzIHJlYWR5IGFuZCB3ZSBkb24n
dCB3YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhaW50IGV2ZW50LgogICAgICAgICAvLyBXZSBvbmx5
IG5lZWQgdG8gZG8gdGhpcyBmb3IgSFRNTCBjb250ZW50LCB0aGVyZSdzIG5vIHBvaW50IGluIGNh
Y2hpbmcgZGlyZWN0bHkgY29tcG9zaXRlZAogICAgICAgICAvLyBjb250ZW50IGxpa2UgaW1hZ2Vz
IG9yIHNvbGlkIHJlY3RhbmdsZXMuCiAgICAgICAgIGlmIChtX3BlbmRpbmdDb250ZW50LmNvbnRl
bnRUeXBlID09IEhUTUxDb250ZW50VHlwZSkKICAgICAgICAgICAgIHJlY2FjaGUobV9wZW5kaW5n
Q29udGVudC5yZWdpb25Ub1VwZGF0ZSk7CisjZW5kaWYKICAgICAgICAgdXBkYXRlKG1fcGVuZGlu
Z0NvbnRlbnQucmVnaW9uVG9VcGRhdGUuYm91bmRpbmdSZWN0KCkpOwogICAgICAgICBtX3BlbmRp
bmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigpOwogICAgIH0KQEAgLTY1NSw3ICs3
MzUsNyBAQCBhZnRlckxheWVyQ2hhbmdlczoKICAgICAgICAgdXBkYXRlVHJhbnNmb3JtKCk7CiAK
ICAgICBpZiAoIXJlY3Vyc2l2ZSkKLSAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgcmV0dXJu
OwogCiAgICAgUUxpc3Q8UUdyYXBoaWNzSXRlbSo+IGNoaWxkcmVuID0gY2hpbGRJdGVtcygpOwog
ICAgIGlmIChtX3N0YXRlLm1hc2tMYXllcikKQEAgLTkyOSw3ICsxMDA5LDcgQEAgdm9pZCBHcmFw
aGljc0xheWVyUXQ6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgICAg
ICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucGl4bWFwID0gKnB4bTsKICAgICAgICAgICAgIG1f
aW1wbC0+bV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9IEdyYXBoaWNzTGF5ZXJRdEltcGw6
OlBpeG1hcENvbnRlbnRUeXBlOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9ICAgICAg
ICAKKyAgICAgICAgfQogICAgIH0KICAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucGl4bWFw
ID0gUVBpeG1hcCgpOwogfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58806</attachid>
            <date>2010-06-15 12:39:59 -0700</date>
            <delta_ts>2010-06-15 14:14:29 -0700</delta_ts>
            <desc>Attached wrong patch in previous modification.</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>9678</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSA4ZDk4NDFmNGNhNjRkYjkxYjdmZjQ1ODM2ODMxMDhlNGQzNDMyNTE0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCgpidWcgLSA0MDM3OAotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgMTMyICsrKysrKysrKysrKysr
KysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlMDQ3MjlkLi5kNDY4ZjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA2LTA5ICBTYW0gTWFn
bnVzb24gIDxzbWFnbnVzb25AbmV0ZmxpeC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaGVuIGFueSBnZW9tZXRyeSBjaGFuZ2UgaGFw
cGVucyB0byBhIG5vZGUgaXQgd2lsbCByZXNpemUgdGhlCisgICAgICAgIGJhY2tpbmcgY2FjaGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzc4CisK
KyAgICAgICAgQ29udGludWUgdG8gZ3JvdyB0aGUgY2FjaGUsIGJ1dCBuZXZlciB0b3NzIGl0LiBX
aGVuIHRoZSBwaXhtYXAKKyAgICAgICAgY2FjaGUgZ2V0cyB0b28gYmlnIGl0IHdpbGwgYmUgbG9z
dCBhbmQgY3JlYXRlZCBhdCB0aGUgcmlnaHQgc2l6ZQorICAgICAgICBuZXh0IHRpbWUuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzOiB0aGlzIGlzIGFuIG9wdGltaXphdGlvbi4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJRdEltcGw6OmZsdXNoQ2hhbmdlcyk6CisKIDIwMTAtMDYtMTMgIE5vYW0gUm9zZW50aGFsICA8
bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xh
eWVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQu
Y3BwCmluZGV4IGFkMmVjOWMuLmQ5MGQxMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTQxLDYgKzQxLDkgQEAKICNpbmNsdWRl
IDxRdEd1aS9xcGl4bWFwY2FjaGUuaD4KICNpbmNsdWRlIDxRdEd1aS9xc3R5bGVvcHRpb24uaD4K
IAorLy8gI2RlZmluZSBRVF9ERUJVR19DQUNIRURVTVAKKy8vICNkZWZpbmUgUVRfREVCVUdfUkVD
QUNIRQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZm5kZWYgUVRfTk9fR1JBUEhJQ1NFRkZF
Q1QKQEAgLTIxNCw3ICsyMTcsMTAgQEAgcHVibGljOgogICAgIGludCBtX2NoYW5nZU1hc2s7CiAK
ICAgICBRU2l6ZUYgbV9zaXplOwotICAgIFFQaXhtYXBDYWNoZTo6S2V5IG1fYmFja2luZ1N0b3Jl
S2V5OworICAgIHN0cnVjdCB7CisgICAgICAgIFFQaXhtYXBDYWNoZTo6S2V5IGtleTsKKyAgICAg
ICAgUVNpemVGICAgICAgICAgICAgc2l6ZTsKKyAgICB9IG1fYmFja2luZ1N0b3JlOwogI2lmbmRl
ZiBRVF9OT19BTklNQVRJT04KICAgICBRTGlzdDxRV2Vha1BvaW50ZXI8UUFic3RyYWN0QW5pbWF0
aW9uPiA+IG1fYW5pbWF0aW9uczsKICNlbmRpZgpAQCAtMzAzLDM2ICszMDksMTA5IEBAIGNvbnN0
IEdyYXBoaWNzTGF5ZXJRdEltcGwqIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnJvb3RMYXllcigpIGNv
bnN0CiAKIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9u
JiByZWdpb25Ub1VwZGF0ZSkKIHsKLSAgICBpZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVudCgpIHx8
IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKKyAgICBpZiAoIW1fbGF5ZXIt
PmRyYXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwgIW1fc2l6ZS5pc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiBRUGl4bWFwKCk7CiAKLSAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lv
blRvVXBkYXRlOwogICAgIFFQaXhtYXAgcGl4bWFwOworICAgIGlmICggUVBpeG1hcENhY2hlOjpm
aW5kKG1fYmFja2luZ1N0b3JlLmtleSwgJnBpeG1hcCkgKQorICAgICAgICBRUGl4bWFwQ2FjaGU6
OnJlbW92ZShtX2JhY2tpbmdTdG9yZS5rZXkpOyAvLyByZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0
aGUgcGl4bWFwIGluIHRoZSBjYWNoZSB0byBhdm9pZCBhIGRldGFjaAogCi0gICAgLy8gV2UgbWln
aHQgYmUgZHJhd2luZyBpbnRvIGFuIGV4aXN0aW5nIGNhY2hlLgotICAgIGlmICghUVBpeG1hcENh
Y2hlOjpmaW5kKG1fYmFja2luZ1N0b3JlS2V5LCAmcGl4bWFwKSkKLSAgICAgICAgcmVnaW9uID0g
UVJlZ2lvbihRUmVjdCgwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKSk7Cisg
ICAgeworICAgICAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lvblRvVXBkYXRlOworICAgICAgICBi
b29sIGVyYXNlZCA9IGZhbHNlOworCisgICAgICAgIC8vIElmIHRoZSBwaXhtYXAgaXMgbm90IGlu
IHRoZSBjYWNoZSBvciB0aGUgdmlldyBoYXMgZ3Jvd24gc2luY2UgdGhlIGxhc3QgY2FjaGUKKyAg
ICAgICAgaWYgKCBwaXhtYXAuaXNOdWxsKCkgfHwgbV9zaXplICE9IG1fYmFja2luZ1N0b3JlLnNp
emUgKSB7CisjaWZkZWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgaWYgKCBwaXhtYXAu
aXNOdWxsKCkgKQorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJDYWNoZU1pc3MiIDw8IHRo
aXMgPDwgbV9zaXplOworI2VuZGlmCisgICAgICAgICAgICBib29sIGZpbGwgPSB0cnVlOworICAg
ICAgICAgICAgUVJlZ2lvbiBuZXdSZWdpb247CisgICAgICAgICAgICBRUGl4bWFwIG9sZFBpeG1h
cCA9IHBpeG1hcDsKKworICAgICAgICAgICAgLy8gSWYgdGhlIHBpeG1hcAorICAgICAgICAgICAg
aWYgKCBwaXhtYXAud2lkdGgoKSA8IG1fc2l6ZS53aWR0aCgpIHx8IHBpeG1hcC5oZWlnaHQoKSA8
IG1fc2l6ZS5oZWlnaHQoKSApIHsKKyNpZmRlZiBRVF9ERUJVR19SRUNBQ0hFCisgICAgICAgICAg
ICAgICAgcURlYnVnKCkgPDwgIkNhY2hlR3JvdyIgPDwgdGhpcyA8PCBtX3NpemU7CisjZW5kaWYK
KyAgICAgICAgICAgICAgICBwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50b1NpemUoKSk7CisgICAg
ICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAgICAgICAg
ICBuZXdSZWdpb24gPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0
KCkpOworICAgICAgICAgICAgfQogCi0gICAgaWYgKG1fc2l6ZSAhPSBwaXhtYXAuc2l6ZSgpKSB7
Ci0gICAgICAgIHBpeG1hcCA9IFFQaXhtYXAobV9zaXplLnRvU2l6ZSgpKTsKLSAgICAgICAgaWYg
KCFtX2xheWVyLT5jb250ZW50c09wYXF1ZSgpKQotICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6
OnRyYW5zcGFyZW50KTsKLSAgICAgICAgbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9
IFFSZWdpb24oUVJlY3QoUVBvaW50KDAsIDApLCBtX3NpemUudG9TaXplKCkpKTsKLSAgICB9Cisj
aWYgMQorICAgICAgICAgICAgLy8gQmxpdCB0aGUgY29udGVudHMgb2Ygb2xkUGl4bWFwIGJhY2sg
aW50byB0aGUgY2FjaGVkIHBpeG1hcCBhcyB3ZSBhcmUganVzdCBhZGRpbmcgbmV3IHBpeGVscwor
ICAgICAgICAgICAgaWYgKCAhb2xkUGl4bWFwLmlzTnVsbCgpICkgeworICAgICAgICAgICAgICAg
IGNvbnN0IFFSZWdpb24gY2xlYW5SZWdpb24gPSAoUVJlZ2lvbigwLCAwLCBtX3NpemUud2lkdGgo
KSwgbV9zaXplLmhlaWdodCgpKSAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBRUmVnaW9uKDAsIDAsIG1fYmFja2luZ1N0b3JlLnNpemUud2lkdGgoKSwgbV9i
YWNraW5nU3RvcmUuc2l6ZS5oZWlnaHQoKSkpIC0gcmVnaW9uVG9VcGRhdGU7CisgICAgICAgICAg
ICAgICAgaWYgKCAhY2xlYW5SZWdpb24uaXNFbXB0eSgpICkgeworI2lmZGVmIFFUX0RFQlVHX1JF
Q0FDSEUKKyAgICAgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlQmxpdCIgPDwgdGhp
cyA8PCBjbGVhblJlZ2lvbjsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBjb25zdCBRUmVj
dCBjbGVhbkJvdW5kcyhjbGVhblJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CisgICAgICAgICAgICAg
ICAgICAgIFFQYWludGVyIHBhaW50ZXIoJnBpeG1hcCk7CisgICAgICAgICAgICAgICAgICAgIHBh
aW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNl
KTsKKyAgICAgICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UGl4bWFwKGNsZWFuQm91bmRzLnRv
cExlZnQoKSwgb2xkUGl4bWFwLCBjbGVhbkJvdW5kcyk7CisgICAgICAgICAgICAgICAgICAgIG5l
d1JlZ2lvbiAtPSBjbGVhblJlZ2lvbjsKKyAgICAgICAgICAgICAgICAgICAgZmlsbCA9IGZhbHNl
OyAvLyB3ZSBjYW5ub3QganVzdCBmaWxsIHRoZSBwaXhtYXAKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgb2xkUGl4bWFwID0gUVBpeG1hcCgpOworICAgICAgICAgICAgfQorI2Vu
ZGlmCisgICAgICAgICAgICByZWdpb24gKz0gbmV3UmVnaW9uOworICAgICAgICAgICAgaWYgKCBm
aWxsICYmICFyZWdpb24uaXNFbXB0eSgpICkgeyAvLyBDbGVhciB0aGUgZW50aXJlIHBpeG1hcCB3
aXRoIHRoZSBiYWNrZ3JvdW5kCisjaWZkZWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAg
ICAgIHFEZWJ1ZygpIDw8ICJDYWNoZUVyYXNlIiA8PCB0aGlzIDw8IG1fc2l6ZSA8PCBiYWNrZ3Jv
dW5kOworI2VuZGlmCisgICAgICAgICAgICAgICAgZXJhc2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICBwaXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIHJlZ2lvbiAmPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3Np
emUuaGVpZ2h0KCkpOworCisgICAgICAgIC8vIElmIHdlIGhhdmUgc29tZXRoaW5nIHRvIGRyYXcg
aXRzIHRpbWUgdG8gZXJhc2UgaXQgYW5kIHJlbmRlciB0aGUgY29udGVudHMKKyAgICAgICAgaWYg
KCAhcmVnaW9uLmlzRW1wdHkoKSApIHsKKyNpZmRlZiBRVF9ERUJVR19DQUNIRURVTVAKKyAgICAg
ICAgICAgIHN0YXRpYyBpbnQgcmVjYWNoZUNvdW50ID0gMDsKKyAgICAgICAgICAgICsrcmVjYWNo
ZUNvdW50OworICAgICAgICAgICAgcURlYnVnKCkgPDwgIioqKiogQ0FDSEVEVU1QIiA8PCByZWNh
Y2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3NpemU7CisgICAgICAg
ICAgICBwaXhtYXAuc2F2ZShRU3RyaW5nKCkuc3ByaW50ZigiL3RtcC8lMDVkX0EucG5nIiwgcmVj
YWNoZUNvdW50KSwgIlBORyIpOworI2VuZGlmCiAKLSAgICBRUGFpbnRlciBwYWludGVyKCZwaXht
YXApOwotICAgIEdyYXBoaWNzQ29udGV4dCBnYygmcGFpbnRlcik7CisgICAgICAgICAgICBRUGFp
bnRlciBwYWludGVyKCZwaXhtYXApOworICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0IGdjKCZw
YWludGVyKTsKIAotICAgIC8vIENsZWFyIHRoZSBhcmVhIGluIGNhY2hlIHRoYXQgd2UncmUgZHJh
d2luZyBpbnRvCi0gICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBv
c2l0aW9uTW9kZV9DbGVhcik7Ci0gICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdS
ZWN0KCksIFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgICAgICBwYWludGVyLnNldENsaXBSZWdp
b24ocmVnaW9uKTsKIAotICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGludG8gdGhl
IGNhY2hlCi0gICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0
aW9uTW9kZV9Tb3VyY2VPdmVyKTsKLSAgICBtX2xheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250
ZW50cyhnYywgcmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKLSAgICBwYWludGVyLmVuZCgpOworICAg
ICAgICAgICAgaWYgKCAhZXJhc2VkICkgeyAvLyBFcmFzZSB0aGUgYXJlYSBpbiBjYWNoZSB0aGF0
IHdlJ3JlIGRyYXdpbmcgaW50bworICAgICAgICAgICAgICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRp
b25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfQ2xlYXIpOworICAgICAgICAgICAgICAg
IHBhaW50ZXIuZmlsbFJlY3QocmVnaW9uLmJvdW5kaW5nUmVjdCgpLCBRdDo6dHJhbnNwYXJlbnQp
OworCisjaWZkZWYgUVRfREVCVUdfQ0FDSEVEVU1QCisgICAgICAgICAgICAgICAgcURlYnVnKCkg
PDwgIioqKiogQ0FDSEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8
IHJlZ2lvbiA8PCBtX3NpemU7CisgICAgICAgICAgICAgICAgcGl4bWFwLnNhdmUoUVN0cmluZygp
LnNwcmludGYoIi90bXAvJTA1ZF9CLnBuZyIsIHJlY2FjaGVDb3VudCksICJQTkciKTsKKyNlbmRp
ZgorCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNv
bnRlbnRzIGludG8gdGhlIGNhY2hlCisgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9u
TW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXIpOworICAgICAgICAgICAg
bV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3VuZGluZ1Jl
Y3QoKSk7CisgICAgICAgICAgICBwYWludGVyLmVuZCgpOworCisjaWZkZWYgUVRfREVCVUdfQ0FD
SEVEVU1QCisgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2Fj
aGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAgICAg
ICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQy5wbmciLCByZWNh
Y2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKworICAgICAgICB9CisgICAgICAgIG1fYmFja2lu
Z1N0b3JlLnNpemUgPSBtX3NpemU7IC8vIFN0b3JlIHRoZSB1c2VkIHNpemUgb2YgdGhlIHBpeG1h
cAorICAgIH0KKworICAgIC8vIEZpbmFsbHkgaW5zZXJ0IGludG8gdGhlIGNhY2hlIGFuZCBhbGxv
dyBhIHJlZmVyZW5jZSB0aGVyZQorICAgIG1fYmFja2luZ1N0b3JlLmtleSA9IFFQaXhtYXBDYWNo
ZTo6aW5zZXJ0KHBpeG1hcCk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZUtleSA9IFFQaXhtYXBDYWNo
ZTo6aW5zZXJ0KHBpeG1hcCk7ICAgIAogICAgIHJldHVybiBwaXhtYXA7CiB9CiAKQEAgLTQ0OSw3
ICs1MjgsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQYWludGVyKiBwYWlu
dGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZQogICAgICAgICAgICAgLy8gV2UgbWln
aHQgbmVlZCB0byByZWNhY2hlLCBpbiBjYXNlIHdlIHRyeSB0byBwYWludCBhbmQgdGhlIGNhY2hl
IHdhcyBwdXJnZWQgKGUuZy4gaWYgaXQgd2FzIGZ1bGwpLgogICAgICAgICAgICAgaWYgKCFRUGl4
bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZiYWNraW5nU3RvcmUpIHx8IGJhY2tp
bmdTdG9yZS5zaXplKCkgIT0gbV9zaXplLnRvU2l6ZSgpKQogICAgICAgICAgICAgICAgIGJhY2tp
bmdTdG9yZSA9IHJlY2FjaGUoUVJlZ2lvbihtX3N0YXRlLmNvbnRlbnRzUmVjdCkpOwotICAgICAg
ICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCgwLCAwLCBiYWNraW5nU3RvcmUpOworICAgICAgICAg
ICAgY29uc3QgUVJlY3RGIHIoMCwgMCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53aWR0aCgpLCBtX2Jh
Y2tpbmdTdG9yZS5zaXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgIHBhaW50ZXItPmRyYXdQaXht
YXAociwgYmFja2luZ1N0b3JlLCByKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBj
YXNlIFBpeG1hcENvbnRlbnRUeXBlOgpAQCAtNjE0LDExICs2OTQsMTMgQEAgdm9pZCBHcmFwaGlj
c0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRh
dGVUcmFuc2Zvcm0KICAgICBlbHNlCiAjZW5kaWYKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRGlz
cGxheUNoYW5nZSkgeworI2lmbmRlZiBRVF9HUkFQSElDU19MQVlFUl9OT19SRUNBQ0hFX09OX0RJ
U1BMQVlfQ0hBTkdFCiAgICAgICAgIC8vIFJlY2FjaGUgbm93OiBhbGwgdGhlIGNvbnRlbnQgaXMg
cmVhZHkgYW5kIHdlIGRvbid0IHdhbnQgdG8gd2FpdCB1bnRpbCB0aGUgcGFpbnQgZXZlbnQuCiAg
ICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGZvciBIVE1MIGNvbnRlbnQsIHRoZXJl
J3Mgbm8gcG9pbnQgaW4gY2FjaGluZyBkaXJlY3RseSBjb21wb3NpdGVkCiAgICAgICAgIC8vIGNv
bnRlbnQgbGlrZSBpbWFnZXMgb3Igc29saWQgcmVjdGFuZ2xlcy4KICAgICAgICAgaWYgKG1fcGVu
ZGluZ0NvbnRlbnQuY29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKQogICAgICAgICAgICAg
cmVjYWNoZShtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlKTsKKyNlbmRpZgogICAgICAg
ICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7
CiAgICAgICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CiAg
ICAgfQpAQCAtNjU1LDcgKzczNyw3IEBAIGFmdGVyTGF5ZXJDaGFuZ2VzOgogICAgICAgICB1cGRh
dGVUcmFuc2Zvcm0oKTsKIAogICAgIGlmICghcmVjdXJzaXZlKQotICAgICAgICByZXR1cm47ICAg
IAorICAgICAgICByZXR1cm47CiAKICAgICBRTGlzdDxRR3JhcGhpY3NJdGVtKj4gY2hpbGRyZW4g
PSBjaGlsZEl0ZW1zKCk7CiAgICAgaWYgKG1fc3RhdGUubWFza0xheWVyKQpAQCAtOTI5LDcgKzEw
MTEsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBp
bWFnZSkKICAgICAgICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5waXhtYXAgPSAqcHht
OwogICAgICAgICAgICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LmNvbnRlbnRUeXBlID0gR3Jh
cGhpY3NMYXllclF0SW1wbDo6UGl4bWFwQ29udGVudFR5cGU7CiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0gICAgICAgIAorICAgICAgICB9CiAgICAgfQogICAgIG1faW1wbC0+bV9wZW5k
aW5nQ29udGVudC5waXhtYXAgPSBRUGl4bWFwKCk7CiB9Ci0tIAoxLjcuMQoK
</data>
<flag name="review"
          id="45286"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58817</attachid>
            <date>2010-06-15 14:14:29 -0700</date>
            <delta_ts>2010-06-16 09:36:36 -0700</delta_ts>
            <desc>Take 3, same patch with cleanups proposed in last review.</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>9562</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBhM2M4NzNjMjc4MTJjNWM4NzU5M2UxZDE3YWVjYWE4ZDg2YjU1MzZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCgpidWcgLSA0MDM3OAotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrKwogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwIHwgIDEyNyArKysrKysrKysrKysr
KysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGUwNDcyOWQuLmQ0NjhmMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDYtMDkgIFNhbSBN
YWdudXNvbiAgPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFdoZW4gYW55IGdlb21ldHJ5IGNoYW5nZSBo
YXBwZW5zIHRvIGEgbm9kZSBpdCB3aWxsIHJlc2l6ZSB0aGUKKyAgICAgICAgYmFja2luZyBjYWNo
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzgK
KworICAgICAgICBDb250aW51ZSB0byBncm93IHRoZSBjYWNoZSwgYnV0IG5ldmVyIHRvc3MgaXQu
IFdoZW4gdGhlIHBpeG1hcAorICAgICAgICBjYWNoZSBnZXRzIHRvbyBiaWcgaXQgd2lsbCBiZSBs
b3N0IGFuZCBjcmVhdGVkIGF0IHRoZSByaWdodCBzaXplCisgICAgICAgIG5leHQgdGltZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHM6IHRoaXMgaXMgYW4gb3B0aW1pemF0aW9uLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJRdEltcGw6OnJlY2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllclF0SW1wbDo6Zmx1c2hDaGFuZ2VzKToKKwogMjAxMC0wNi0xMyAgTm9hbSBSb3NlbnRoYWwg
IDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNz
TGF5ZXJRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJR
dC5jcHAKaW5kZXggYWQyZWM5Yy4uMmEyZDdlZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcApAQCAtMjE0LDcgKzIxNCwxMCBAQCBwdWJs
aWM6CiAgICAgaW50IG1fY2hhbmdlTWFzazsKIAogICAgIFFTaXplRiBtX3NpemU7Ci0gICAgUVBp
eG1hcENhY2hlOjpLZXkgbV9iYWNraW5nU3RvcmVLZXk7CisgICAgc3RydWN0IHsKKyAgICAgICAg
UVBpeG1hcENhY2hlOjpLZXkga2V5OworICAgICAgICBRU2l6ZUYgc2l6ZTsKKyAgICB9IG1fYmFj
a2luZ1N0b3JlOwogI2lmbmRlZiBRVF9OT19BTklNQVRJT04KICAgICBRTGlzdDxRV2Vha1BvaW50
ZXI8UUFic3RyYWN0QW5pbWF0aW9uPiA+IG1fYW5pbWF0aW9uczsKICNlbmRpZgpAQCAtMzAzLDM2
ICszMDYsMTA3IEBAIGNvbnN0IEdyYXBoaWNzTGF5ZXJRdEltcGwqIEdyYXBoaWNzTGF5ZXJRdElt
cGw6OnJvb3RMYXllcigpIGNvbnN0CiAKIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVj
YWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKIHsKLSAgICBpZiAoIW1fbGF5ZXIt
PmRyYXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkK
KyAgICBpZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwg
IW1fc2l6ZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBRUGl4bWFwKCk7CiAKLSAgICBRUmVn
aW9uIHJlZ2lvbiA9IHJlZ2lvblRvVXBkYXRlOwogICAgIFFQaXhtYXAgcGl4bWFwOworICAgIGlm
IChRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmUua2V5LCAmcGl4bWFwKSkKKyAgICAg
ICAgUVBpeG1hcENhY2hlOjpyZW1vdmUobV9iYWNraW5nU3RvcmUua2V5KTsgLy8gUmVtb3ZlIHRo
ZSByZWZlcmVuY2UgdG8gdGhlIHBpeG1hcCBpbiB0aGUgY2FjaGUgdG8gYXZvaWQgYSBkZXRhY2gu
CiAKLSAgICAvLyBXZSBtaWdodCBiZSBkcmF3aW5nIGludG8gYW4gZXhpc3RpbmcgY2FjaGUuCi0g
ICAgaWYgKCFRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZwaXhtYXApKQot
ICAgICAgICByZWdpb24gPSBRUmVnaW9uKFFSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3Np
emUuaGVpZ2h0KCkpKTsKKyAgICB7CisgICAgICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9V
cGRhdGU7CisgICAgICAgIGJvb2wgZXJhc2VkID0gZmFsc2U7CisKKyAgICAgICAgLy8gSWYgdGhl
IHBpeG1hcCBpcyBub3QgaW4gdGhlIGNhY2hlIG9yIHRoZSB2aWV3IGhhcyBncm93biBzaW5jZSBs
YXN0IGNhY2hlZC4KKyAgICAgICAgaWYgKHBpeG1hcC5pc051bGwoKSB8fCBtX3NpemUgIT0gbV9i
YWNraW5nU3RvcmUuc2l6ZSkgeworI2lmZGVmIFFUX0RFQlVHX1JFQ0FDSEUKKyAgICAgICAgICAg
IGlmIChwaXhtYXAuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hl
TWlzcyIgPDwgdGhpcyA8PCBtX3NpemU7CisjZW5kaWYKKyAgICAgICAgICAgIGJvb2wgZmlsbCA9
IHRydWU7CisgICAgICAgICAgICBRUmVnaW9uIG5ld1JlZ2lvbjsKKyAgICAgICAgICAgIFFQaXht
YXAgb2xkUGl4bWFwID0gcGl4bWFwOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlz
IHR3byBzbWFsbCB0byBob2xkIHRoZSB2aWV3IGNvbnRlbnRzIHdlIGVubGFyZ2UsIG90aGVyd2lz
ZSBqdXN0IHVzZSB0aGUgb2xkIChsYXJnZSkgcGl4bWFwLgorICAgICAgICAgICAgaWYgKHBpeG1h
cC53aWR0aCgpIDwgbV9zaXplLndpZHRoKCkgfHwgcGl4bWFwLmhlaWdodCgpIDwgbV9zaXplLmhl
aWdodCgpKSB7CisjaWZkZWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgICAgIHFEZWJ1
ZygpIDw8ICJDYWNoZUdyb3ciIDw8IHRoaXMgPDwgbV9zaXplOworI2VuZGlmCisgICAgICAgICAg
ICAgICAgcGl4bWFwID0gUVBpeG1hcChtX3NpemUudG9TaXplKCkpOworICAgICAgICAgICAgICAg
IHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgICAgICAgICAgbmV3UmVnaW9u
ID0gUVJlZ2lvbigwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsKKyAgICAg
ICAgICAgIH0KIAotICAgIGlmIChtX3NpemUgIT0gcGl4bWFwLnNpemUoKSkgewotICAgICAgICBw
aXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50b1NpemUoKSk7Ci0gICAgICAgIGlmICghbV9sYXllci0+
Y29udGVudHNPcGFxdWUoKSkKLSAgICAgICAgICAgIHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVu
dCk7Ci0gICAgICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFS
ZWN0KFFQb2ludCgwLCAwKSwgbV9zaXplLnRvU2l6ZSgpKSk7Ci0gICAgfQorI2lmIDEKKyAgICAg
ICAgICAgIC8vIEJsaXQgdGhlIGNvbnRlbnRzIG9mIG9sZFBpeG1hcCBiYWNrIGludG8gdGhlIGNh
Y2hlZCBwaXhtYXAgYXMgd2UgYXJlIGp1c3QgYWRkaW5nIG5ldyBwaXhlbHMuCisgICAgICAgICAg
ICBpZiAoIW9sZFBpeG1hcC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IFFSZWdp
b24gY2xlYW5SZWdpb24gPSAoUVJlZ2lvbigwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhl
aWdodCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBR
UmVnaW9uKDAsIDAsIG1fYmFja2luZ1N0b3JlLnNpemUud2lkdGgoKSwgbV9iYWNraW5nU3RvcmUu
c2l6ZS5oZWlnaHQoKSkpIC0gcmVnaW9uVG9VcGRhdGU7CisgICAgICAgICAgICAgICAgaWYgKCFj
bGVhblJlZ2lvbi5pc0VtcHR5KCkpIHsKKyNpZmRlZiBRVF9ERUJVR19SRUNBQ0hFCisgICAgICAg
ICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJDYWNoZUJsaXQiIDw8IHRoaXMgPDwgY2xlYW5SZWdp
b247CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgUVJlY3QgY2xlYW5Cb3VuZHMo
Y2xlYW5SZWdpb24uYm91bmRpbmdSZWN0KCkpOworICAgICAgICAgICAgICAgICAgICBRUGFpbnRl
ciBwYWludGVyKCZwaXhtYXApOworICAgICAgICAgICAgICAgICAgICBwYWludGVyLnNldENvbXBv
c2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgICAgICAg
ICAgICAgICAgIHBhaW50ZXIuZHJhd1BpeG1hcChjbGVhbkJvdW5kcy50b3BMZWZ0KCksIG9sZFBp
eG1hcCwgY2xlYW5Cb3VuZHMpOworICAgICAgICAgICAgICAgICAgICBuZXdSZWdpb24gLT0gY2xl
YW5SZWdpb247CisgICAgICAgICAgICAgICAgICAgIGZpbGwgPSBmYWxzZTsgLy8gV2UgY2Fubm90
IGp1c3QgZmlsbCB0aGUgcGl4bWFwLgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBvbGRQaXhtYXAgPSBRUGl4bWFwKCk7CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAg
ICAgIHJlZ2lvbiArPSBuZXdSZWdpb247CisgICAgICAgICAgICBpZiAoZmlsbCAmJiAhcmVnaW9u
LmlzRW1wdHkoKSkgeyAvLyBDbGVhciB0aGUgZW50aXJlIHBpeG1hcCB3aXRoIHRoZSBiYWNrZ3Jv
dW5kLgorI2lmZGVmIFFUX0RFQlVHX1JFQ0FDSEUKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8
PCAiQ2FjaGVFcmFzZSIgPDwgdGhpcyA8PCBtX3NpemUgPDwgYmFja2dyb3VuZDsKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIGVyYXNlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcGl4bWFwLmZp
bGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBy
ZWdpb24gJj0gUVJlZ2lvbigwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsK
KworICAgICAgICAvLyBJZiB3ZSBoYXZlIHNvbWV0aGluZyB0byBkcmF3IGl0cyB0aW1lIHRvIGVy
YXNlIGl0IGFuZCByZW5kZXIgdGhlIGNvbnRlbnRzLgorICAgICAgICBpZiAoIXJlZ2lvbi5pc0Vt
cHR5KCkpIHsKKyNpZmRlZiBRVF9ERUJVR19DQUNIRURVTVAKKyAgICAgICAgICAgIHN0YXRpYyBp
bnQgcmVjYWNoZUNvdW50ID0gMDsKKyAgICAgICAgICAgICsrcmVjYWNoZUNvdW50OworICAgICAg
ICAgICAgcURlYnVnKCkgPDwgIioqKiogQ0FDSEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwgdGhp
cyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3NpemU7CisgICAgICAgICAgICBwaXhtYXAuc2F2
ZShRU3RyaW5nKCkuc3ByaW50ZigiL3RtcC8lMDVkX0EucG5nIiwgcmVjYWNoZUNvdW50KSwgIlBO
RyIpOworI2VuZGlmCiAKLSAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXApOwotICAgIEdyYXBo
aWNzQ29udGV4dCBnYygmcGFpbnRlcik7CisgICAgICAgICAgICBRUGFpbnRlciBwYWludGVyKCZw
aXhtYXApOworICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0IGdjKCZwYWludGVyKTsKIAotICAg
IC8vIENsZWFyIHRoZSBhcmVhIGluIGNhY2hlIHRoYXQgd2UncmUgZHJhd2luZyBpbnRvCi0gICAg
cGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVh
cik7Ci0gICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0cmFu
c3BhcmVudCk7CisgICAgICAgICAgICBwYWludGVyLnNldENsaXBSZWdpb24ocmVnaW9uKTsKIAot
ICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGludG8gdGhlIGNhY2hlCi0gICAgcGFp
bnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VP
dmVyKTsKLSAgICBtX2xheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhnYywgcmVnaW9u
LmJvdW5kaW5nUmVjdCgpKTsKLSAgICBwYWludGVyLmVuZCgpOworICAgICAgICAgICAgaWYgKCFl
cmFzZWQpIHsgLy8gRXJhc2UgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGlu
dG8uCisgICAgICAgICAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6
OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CisgICAgICAgICAgICAgICAgcGFpbnRlci5maWxsUmVj
dChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0cmFuc3BhcmVudCk7CisKKyNpZmRlZiBRVF9E
RUJVR19DQUNIRURVTVAKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURV
TVAiIDw8IHJlY2FjaGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6
ZTsKKyAgICAgICAgICAgICAgICBwaXhtYXAuc2F2ZShRU3RyaW5nKCkuc3ByaW50ZigiL3RtcC8l
MDVkX0IucG5nIiwgcmVjYWNoZUNvdW50KSwgIlBORyIpOworI2VuZGlmCisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGludG8gdGhlIGNh
Y2hlLgorICAgICAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNv
bXBvc2l0aW9uTW9kZV9Tb3VyY2VPdmVyKTsKKyAgICAgICAgICAgIG1fbGF5ZXItPnBhaW50R3Jh
cGhpY3NMYXllckNvbnRlbnRzKGdjLCByZWdpb24uYm91bmRpbmdSZWN0KCkpOworICAgICAgICAg
ICAgcGFpbnRlci5lbmQoKTsKKworI2lmZGVmIFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAg
ICAgcURlYnVnKCkgPDwgIioqKiogQ0FDSEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8
PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3NpemU7CisgICAgICAgICAgICBwaXhtYXAuc2F2ZShR
U3RyaW5nKCkuc3ByaW50ZigiL3RtcC8lMDVkX0MucG5nIiwgcmVjYWNoZUNvdW50KSwgIlBORyIp
OworI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgbV9iYWNraW5nU3RvcmUuc2l6ZSA9IG1fc2l6
ZTsgLy8gU3RvcmUgdGhlIHVzZWQgc2l6ZSBvZiB0aGUgcGl4bWFwLgorICAgIH0KKworICAgIC8v
IEZpbmFsbHkgaW5zZXJ0IGludG8gdGhlIGNhY2hlIGFuZCBhbGxvdyBhIHJlZmVyZW5jZSB0aGVy
ZS4KKyAgICBtX2JhY2tpbmdTdG9yZS5rZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXAp
OwogCi0gICAgbV9iYWNraW5nU3RvcmVLZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXAp
OyAgICAKICAgICByZXR1cm4gcGl4bWFwOwogfQogCkBAIC00NDksNyArNTIzLDggQEAgdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjpwYWludChRUGFpbnRlciogcGFpbnRlciwgY29uc3QgUVN0eWxl
T3B0aW9uR3JhcGhpY3NJdGUKICAgICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNo
ZSwgaW4gY2FzZSB3ZSB0cnkgdG8gcGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcu
IGlmIGl0IHdhcyBmdWxsKS4KICAgICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1f
YmFja2luZ1N0b3JlS2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9
IG1fc2l6ZS50b1NpemUoKSkKICAgICAgICAgICAgICAgICBiYWNraW5nU3RvcmUgPSByZWNhY2hl
KFFSZWdpb24obV9zdGF0ZS5jb250ZW50c1JlY3QpKTsKLSAgICAgICAgICAgIHBhaW50ZXItPmRy
YXdQaXhtYXAoMCwgMCwgYmFja2luZ1N0b3JlKTsKKyAgICAgICAgICAgIGNvbnN0IFFSZWN0RiBi
b3VuZHMoMCwgMCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5z
aXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoYm91bmRzLCBi
YWNraW5nU3RvcmUsIGJvdW5kcyk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQaXhtYXBDb250ZW50VHlwZToKQEAgLTYxNCwxMSArNjg5LDEzIEBAIHZvaWQgR3JhcGhpY3NM
YXllclF0SW1wbDo6Zmx1c2hDaGFuZ2VzKGJvb2wgcmVjdXJzaXZlLCBib29sIGZvcmNlVXBkYXRl
VHJhbnNmb3JtCiAgICAgZWxzZQogI2VuZGlmCiAgICAgaWYgKG1fY2hhbmdlTWFzayAmIERpc3Bs
YXlDaGFuZ2UpIHsKKyNpZm5kZWYgUVRfR1JBUEhJQ1NfTEFZRVJfTk9fUkVDQUNIRV9PTl9ESVNQ
TEFZX0NIQU5HRQogICAgICAgICAvLyBSZWNhY2hlIG5vdzogYWxsIHRoZSBjb250ZW50IGlzIHJl
YWR5IGFuZCB3ZSBkb24ndCB3YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhaW50IGV2ZW50LgogICAg
ICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gZG8gdGhpcyBmb3IgSFRNTCBjb250ZW50LCB0aGVyZSdz
IG5vIHBvaW50IGluIGNhY2hpbmcgZGlyZWN0bHkgY29tcG9zaXRlZAogICAgICAgICAvLyBjb250
ZW50IGxpa2UgaW1hZ2VzIG9yIHNvbGlkIHJlY3RhbmdsZXMuCiAgICAgICAgIGlmIChtX3BlbmRp
bmdDb250ZW50LmNvbnRlbnRUeXBlID09IEhUTUxDb250ZW50VHlwZSkKICAgICAgICAgICAgIHJl
Y2FjaGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSk7CisjZW5kaWYKICAgICAgICAg
dXBkYXRlKG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUuYm91bmRpbmdSZWN0KCkpOwog
ICAgICAgICBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigpOwogICAg
IH0KQEAgLTY1NSw3ICs3MzIsNyBAQCBhZnRlckxheWVyQ2hhbmdlczoKICAgICAgICAgdXBkYXRl
VHJhbnNmb3JtKCk7CiAKICAgICBpZiAoIXJlY3Vyc2l2ZSkKLSAgICAgICAgcmV0dXJuOyAgICAK
KyAgICAgICAgcmV0dXJuOwogCiAgICAgUUxpc3Q8UUdyYXBoaWNzSXRlbSo+IGNoaWxkcmVuID0g
Y2hpbGRJdGVtcygpOwogICAgIGlmIChtX3N0YXRlLm1hc2tMYXllcikKQEAgLTkyOSw3ICsxMDA2
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyUXQ6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1h
Z2UpCiAgICAgICAgICAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucGl4bWFwID0gKnB4bTsK
ICAgICAgICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9IEdyYXBo
aWNzTGF5ZXJRdEltcGw6OlBpeG1hcENvbnRlbnRUeXBlOwogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9ICAgICAgICAKKyAgICAgICAgfQogICAgIH0KICAgICBtX2ltcGwtPm1fcGVuZGlu
Z0NvbnRlbnQucGl4bWFwID0gUVBpeG1hcCgpOwogfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58899</attachid>
            <date>2010-06-16 09:35:33 -0700</date>
            <delta_ts>2010-06-16 09:36:36 -0700</delta_ts>
            <desc>define to 0 as requested rather than just removing the define.</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>9741</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBhMDM2M2EyYTg1MmVlMjI1MDZiZmJmMjlkMWM5ZjhmY2FkOWM0YzRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCgpidWcgLSA0MDM3OAotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgMTMxICsrKysrKysrKysrKysr
KysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlMDQ3MjlkLi5kNDY4ZjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA2LTA5ICBTYW0gTWFn
bnVzb24gIDxzbWFnbnVzb25AbmV0ZmxpeC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaGVuIGFueSBnZW9tZXRyeSBjaGFuZ2UgaGFw
cGVucyB0byBhIG5vZGUgaXQgd2lsbCByZXNpemUgdGhlCisgICAgICAgIGJhY2tpbmcgY2FjaGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzc4CisK
KyAgICAgICAgQ29udGludWUgdG8gZ3JvdyB0aGUgY2FjaGUsIGJ1dCBuZXZlciB0b3NzIGl0LiBX
aGVuIHRoZSBwaXhtYXAKKyAgICAgICAgY2FjaGUgZ2V0cyB0b28gYmlnIGl0IHdpbGwgYmUgbG9z
dCBhbmQgY3JlYXRlZCBhdCB0aGUgcmlnaHQgc2l6ZQorICAgICAgICBuZXh0IHRpbWUuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzOiB0aGlzIGlzIGFuIG9wdGltaXphdGlvbi4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJRdEltcGw6OmZsdXNoQ2hhbmdlcyk6CisKIDIwMTAtMDYtMTMgIE5vYW0gUm9zZW50aGFsICA8
bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xh
eWVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQu
Y3BwCmluZGV4IGFkMmVjOWMuLjQwNDI4YmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTQxLDYgKzQxLDEwIEBACiAjaW5jbHVk
ZSA8UXRHdWkvcXBpeG1hcGNhY2hlLmg+CiAjaW5jbHVkZSA8UXRHdWkvcXN0eWxlb3B0aW9uLmg+
CiAKKworI2RlZmluZSBRVF9ERUJVR19SRUNBQ0hFIDAKKyNkZWZpbmUgUVRfREVCVUdfQ0FDSEVE
VU1QIDAKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWZuZGVmIFFUX05PX0dSQVBISUNTRUZG
RUNUCkBAIC0yMTQsNyArMjE4LDEwIEBAIHB1YmxpYzoKICAgICBpbnQgbV9jaGFuZ2VNYXNrOwog
CiAgICAgUVNpemVGIG1fc2l6ZTsKLSAgICBRUGl4bWFwQ2FjaGU6OktleSBtX2JhY2tpbmdTdG9y
ZUtleTsKKyAgICBzdHJ1Y3QgeworICAgICAgICBRUGl4bWFwQ2FjaGU6OktleSBrZXk7CisgICAg
ICAgIFFTaXplRiBzaXplOworICAgIH0gbV9iYWNraW5nU3RvcmU7CiAjaWZuZGVmIFFUX05PX0FO
SU1BVElPTgogICAgIFFMaXN0PFFXZWFrUG9pbnRlcjxRQWJzdHJhY3RBbmltYXRpb24+ID4gbV9h
bmltYXRpb25zOwogI2VuZGlmCkBAIC0zMDMsMzYgKzMxMCwxMDcgQEAgY29uc3QgR3JhcGhpY3NM
YXllclF0SW1wbCogR3JhcGhpY3NMYXllclF0SW1wbDo6cm9vdExheWVyKCkgY29uc3QKIAogUVBp
eG1hcCBHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRv
VXBkYXRlKQogewotICAgIGlmICghbV9sYXllci0+ZHJhd3NDb250ZW50KCkgfHwgbV9zaXplLmlz
RW1wdHkoKSB8fCFtX3NpemUuaXNWYWxpZCgpKQorICAgIGlmICghbV9sYXllci0+ZHJhd3NDb250
ZW50KCkgfHwgbV9zaXplLmlzRW1wdHkoKSB8fCAhbV9zaXplLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIFFQaXhtYXAoKTsKIAotICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9VcGRhdGU7
CiAgICAgUVBpeG1hcCBwaXhtYXA7CisgICAgaWYgKFFQaXhtYXBDYWNoZTo6ZmluZChtX2JhY2tp
bmdTdG9yZS5rZXksICZwaXhtYXApKQorICAgICAgICBRUGl4bWFwQ2FjaGU6OnJlbW92ZShtX2Jh
Y2tpbmdTdG9yZS5rZXkpOyAvLyBSZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0aGUgcGl4bWFwIGlu
IHRoZSBjYWNoZSB0byBhdm9pZCBhIGRldGFjaC4KIAotICAgIC8vIFdlIG1pZ2h0IGJlIGRyYXdp
bmcgaW50byBhbiBleGlzdGluZyBjYWNoZS4KLSAgICBpZiAoIVFQaXhtYXBDYWNoZTo6ZmluZCht
X2JhY2tpbmdTdG9yZUtleSwgJnBpeG1hcCkpCi0gICAgICAgIHJlZ2lvbiA9IFFSZWdpb24oUVJl
Y3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSkpOworICAgIHsKKyAgICAg
ICAgUVJlZ2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKKyAgICAgICAgYm9vbCBlcmFzZWQg
PSBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlzIG5vdCBpbiB0aGUgY2FjaGUg
b3IgdGhlIHZpZXcgaGFzIGdyb3duIHNpbmNlIGxhc3QgY2FjaGVkLgorICAgICAgICBpZiAocGl4
bWFwLmlzTnVsbCgpIHx8IG1fc2l6ZSAhPSBtX2JhY2tpbmdTdG9yZS5zaXplKSB7CisjaWYgUVRf
REVCVUdfUkVDQUNIRQorICAgICAgICAgICAgaWYgKHBpeG1hcC5pc051bGwoKSkKKyAgICAgICAg
ICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVNaXNzIiA8PCB0aGlzIDw8IG1fc2l6ZTsKKyNlbmRp
ZgorICAgICAgICAgICAgYm9vbCBmaWxsID0gdHJ1ZTsKKyAgICAgICAgICAgIFFSZWdpb24gbmV3
UmVnaW9uOworICAgICAgICAgICAgUVBpeG1hcCBvbGRQaXhtYXAgPSBwaXhtYXA7CisKKyAgICAg
ICAgICAgIC8vIElmIHRoZSBwaXhtYXAgaXMgdHdvIHNtYWxsIHRvIGhvbGQgdGhlIHZpZXcgY29u
dGVudHMgd2UgZW5sYXJnZSwgb3RoZXJ3aXNlIGp1c3QgdXNlIHRoZSBvbGQgKGxhcmdlKSBwaXht
YXAuCisgICAgICAgICAgICBpZiAocGl4bWFwLndpZHRoKCkgPCBtX3NpemUud2lkdGgoKSB8fCBw
aXhtYXAuaGVpZ2h0KCkgPCBtX3NpemUuaGVpZ2h0KCkpIHsKKyNpZiBRVF9ERUJVR19SRUNBQ0hF
CisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlR3JvdyIgPDwgdGhpcyA8PCBtX3Np
emU7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50b1Np
emUoKSk7CisgICAgICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAg
ICAgICAgICAgICAgICBuZXdSZWdpb24gPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBt
X3NpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgfQogCi0gICAgaWYgKG1fc2l6ZSAhPSBwaXht
YXAuc2l6ZSgpKSB7Ci0gICAgICAgIHBpeG1hcCA9IFFQaXhtYXAobV9zaXplLnRvU2l6ZSgpKTsK
LSAgICAgICAgaWYgKCFtX2xheWVyLT5jb250ZW50c09wYXF1ZSgpKQotICAgICAgICAgICAgcGl4
bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKLSAgICAgICAgbV9wZW5kaW5nQ29udGVudC5yZWdp
b25Ub1VwZGF0ZSA9IFFSZWdpb24oUVJlY3QoUVBvaW50KDAsIDApLCBtX3NpemUudG9TaXplKCkp
KTsKLSAgICB9CisjaWYgMQorICAgICAgICAgICAgLy8gQmxpdCB0aGUgY29udGVudHMgb2Ygb2xk
UGl4bWFwIGJhY2sgaW50byB0aGUgY2FjaGVkIHBpeG1hcCBhcyB3ZSBhcmUganVzdCBhZGRpbmcg
bmV3IHBpeGVscy4KKyAgICAgICAgICAgIGlmICghb2xkUGl4bWFwLmlzTnVsbCgpKSB7CisgICAg
ICAgICAgICAgICAgY29uc3QgUVJlZ2lvbiBjbGVhblJlZ2lvbiA9IChRUmVnaW9uKDAsIDAsIG1f
c2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmIFFSZWdpb24oMCwgMCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53
aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5zaXplLmhlaWdodCgpKSkgLSByZWdpb25Ub1VwZGF0ZTsK
KyAgICAgICAgICAgICAgICBpZiAoIWNsZWFuUmVnaW9uLmlzRW1wdHkoKSkgeworI2lmIFFUX0RF
QlVHX1JFQ0FDSEUKKyAgICAgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlQmxpdCIg
PDwgdGhpcyA8PCBjbGVhblJlZ2lvbjsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBjb25z
dCBRUmVjdCBjbGVhbkJvdW5kcyhjbGVhblJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CisgICAgICAg
ICAgICAgICAgICAgIFFQYWludGVyIHBhaW50ZXIoJnBpeG1hcCk7CisgICAgICAgICAgICAgICAg
ICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVf
U291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UGl4bWFwKGNsZWFuQm91
bmRzLnRvcExlZnQoKSwgb2xkUGl4bWFwLCBjbGVhbkJvdW5kcyk7CisgICAgICAgICAgICAgICAg
ICAgIG5ld1JlZ2lvbiAtPSBjbGVhblJlZ2lvbjsKKyAgICAgICAgICAgICAgICAgICAgZmlsbCA9
IGZhbHNlOyAvLyBXZSBjYW5ub3QganVzdCBmaWxsIHRoZSBwaXhtYXAuCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIG9sZFBpeG1hcCA9IFFQaXhtYXAoKTsKKyAgICAgICAgICAg
IH0KKyNlbmRpZgorICAgICAgICAgICAgcmVnaW9uICs9IG5ld1JlZ2lvbjsKKyAgICAgICAgICAg
IGlmIChmaWxsICYmICFyZWdpb24uaXNFbXB0eSgpKSB7IC8vIENsZWFyIHRoZSBlbnRpcmUgcGl4
bWFwIHdpdGggdGhlIGJhY2tncm91bmQuCisjaWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAg
ICAgICAgIHFEZWJ1ZygpIDw8ICJDYWNoZUVyYXNlIiA8PCB0aGlzIDw8IG1fc2l6ZSA8PCBiYWNr
Z3JvdW5kOworI2VuZGlmCisgICAgICAgICAgICAgICAgZXJhc2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBwaXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJlZ2lvbiAmPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBt
X3NpemUuaGVpZ2h0KCkpOworCisgICAgICAgIC8vIElmIHdlIGhhdmUgc29tZXRoaW5nIHRvIGRy
YXcgaXRzIHRpbWUgdG8gZXJhc2UgaXQgYW5kIHJlbmRlciB0aGUgY29udGVudHMuCisgICAgICAg
IGlmICghcmVnaW9uLmlzRW1wdHkoKSkgeworI2lmIFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAg
ICAgICAgc3RhdGljIGludCByZWNhY2hlQ291bnQgPSAwOworICAgICAgICAgICAgKytyZWNhY2hl
Q291bnQ7CisgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2Fj
aGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAgICAg
ICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQS5wbmciLCByZWNh
Y2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKworICAgICAgICAgICAgUVBhaW50ZXIgcGFpbnRl
cigmcGl4bWFwKTsKKyAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBnYygmcGFpbnRlcik7CiAK
LSAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXApOwotICAgIEdyYXBoaWNzQ29udGV4dCBnYygm
cGFpbnRlcik7CisgICAgICAgICAgICBwYWludGVyLnNldENsaXBSZWdpb24ocmVnaW9uKTsKIAot
ICAgIC8vIENsZWFyIHRoZSBhcmVhIGluIGNhY2hlIHRoYXQgd2UncmUgZHJhd2luZyBpbnRvCi0g
ICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9D
bGVhcik7Ci0gICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0
cmFuc3BhcmVudCk7CisgICAgICAgICAgICBpZiAoIWVyYXNlZCkgeyAvLyBFcmFzZSB0aGUgYXJl
YSBpbiBjYWNoZSB0aGF0IHdlJ3JlIGRyYXdpbmcgaW50by4KKyAgICAgICAgICAgICAgICBwYWlu
dGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0NsZWFyKTsK
KyAgICAgICAgICAgICAgICBwYWludGVyLmZpbGxSZWN0KHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSwg
UXQ6OnRyYW5zcGFyZW50KTsKIAotICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGlu
dG8gdGhlIGNhY2hlCi0gICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNv
bXBvc2l0aW9uTW9kZV9Tb3VyY2VPdmVyKTsKLSAgICBtX2xheWVyLT5wYWludEdyYXBoaWNzTGF5
ZXJDb250ZW50cyhnYywgcmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKLSAgICBwYWludGVyLmVuZCgp
OworI2lmIFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIq
KioqIENBQ0hFRFVNUCIgPDwgcmVjYWNoZUNvdW50IDw8IHRoaXMgPDwgbV9sYXllciA8PCByZWdp
b24gPDwgbV9zaXplOworICAgICAgICAgICAgICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJp
bnRmKCIvdG1wLyUwNWRfQi5wbmciLCByZWNhY2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVuZGVyIHRoZSBhY3R1YWwgY29udGVudHMg
aW50byB0aGUgY2FjaGUuCisgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShR
UGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXIpOworICAgICAgICAgICAgbV9sYXll
ci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7
CisgICAgICAgICAgICBwYWludGVyLmVuZCgpOworCisjaWYgUVRfREVCVUdfQ0FDSEVEVU1QCisg
ICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2FjaGVDb3VudCA8
PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAgICAgICAgIHBpeG1h
cC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQy5wbmciLCByZWNhY2hlQ291bnQp
LCAiUE5HIik7CisjZW5kaWYKKyAgICAgICAgfQorICAgICAgICBtX2JhY2tpbmdTdG9yZS5zaXpl
ID0gbV9zaXplOyAvLyBTdG9yZSB0aGUgdXNlZCBzaXplIG9mIHRoZSBwaXhtYXAuCisgICAgfQor
CisgICAgLy8gRmluYWxseSBpbnNlcnQgaW50byB0aGUgY2FjaGUgYW5kIGFsbG93IGEgcmVmZXJl
bmNlIHRoZXJlLgorICAgIG1fYmFja2luZ1N0b3JlLmtleSA9IFFQaXhtYXBDYWNoZTo6aW5zZXJ0
KHBpeG1hcCk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZUtleSA9IFFQaXhtYXBDYWNoZTo6aW5zZXJ0
KHBpeG1hcCk7ICAgIAogICAgIHJldHVybiBwaXhtYXA7CiB9CiAKQEAgLTQ0OSw3ICs1MjcsOCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQYWludGVyKiBwYWludGVyLCBjb25z
dCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZQogICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0
byByZWNhY2hlLCBpbiBjYXNlIHdlIHRyeSB0byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJn
ZWQgKGUuZy4gaWYgaXQgd2FzIGZ1bGwpLgogICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6
OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZiYWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5z
aXplKCkgIT0gbV9zaXplLnRvU2l6ZSgpKQogICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZSA9
IHJlY2FjaGUoUVJlZ2lvbihtX3N0YXRlLmNvbnRlbnRzUmVjdCkpOwotICAgICAgICAgICAgcGFp
bnRlci0+ZHJhd1BpeG1hcCgwLCAwLCBiYWNraW5nU3RvcmUpOworICAgICAgICAgICAgY29uc3Qg
UVJlY3RGIGJvdW5kcygwLCAwLCBtX2JhY2tpbmdTdG9yZS5zaXplLndpZHRoKCksIG1fYmFja2lu
Z1N0b3JlLnNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChi
b3VuZHMsIGJhY2tpbmdTdG9yZSwgYm91bmRzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBpeG1hcENvbnRlbnRUeXBlOgpAQCAtNjE0LDExICs2OTMsMTMgQEAgdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9y
Y2VVcGRhdGVUcmFuc2Zvcm0KICAgICBlbHNlCiAjZW5kaWYKICAgICBpZiAobV9jaGFuZ2VNYXNr
ICYgRGlzcGxheUNoYW5nZSkgeworI2lmbmRlZiBRVF9HUkFQSElDU19MQVlFUl9OT19SRUNBQ0hF
X09OX0RJU1BMQVlfQ0hBTkdFCiAgICAgICAgIC8vIFJlY2FjaGUgbm93OiBhbGwgdGhlIGNvbnRl
bnQgaXMgcmVhZHkgYW5kIHdlIGRvbid0IHdhbnQgdG8gd2FpdCB1bnRpbCB0aGUgcGFpbnQgZXZl
bnQuCiAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGZvciBIVE1MIGNvbnRlbnQs
IHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY2FjaGluZyBkaXJlY3RseSBjb21wb3NpdGVkCiAgICAgICAg
IC8vIGNvbnRlbnQgbGlrZSBpbWFnZXMgb3Igc29saWQgcmVjdGFuZ2xlcy4KICAgICAgICAgaWYg
KG1fcGVuZGluZ0NvbnRlbnQuY29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKQogICAgICAg
ICAgICAgcmVjYWNoZShtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlKTsKKyNlbmRpZgog
ICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1Jl
Y3QoKSk7CiAgICAgICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9u
KCk7CiAgICAgfQpAQCAtNjU1LDcgKzczNiw3IEBAIGFmdGVyTGF5ZXJDaGFuZ2VzOgogICAgICAg
ICB1cGRhdGVUcmFuc2Zvcm0oKTsKIAogICAgIGlmICghcmVjdXJzaXZlKQotICAgICAgICByZXR1
cm47ICAgIAorICAgICAgICByZXR1cm47CiAKICAgICBRTGlzdDxRR3JhcGhpY3NJdGVtKj4gY2hp
bGRyZW4gPSBjaGlsZEl0ZW1zKCk7CiAgICAgaWYgKG1fc3RhdGUubWFza0xheWVyKQpAQCAtOTI5
LDcgKzEwMTAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0Q29udGVudHNUb0ltYWdlKElt
YWdlKiBpbWFnZSkKICAgICAgICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5waXhtYXAg
PSAqcHhtOwogICAgICAgICAgICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LmNvbnRlbnRUeXBl
ID0gR3JhcGhpY3NMYXllclF0SW1wbDo6UGl4bWFwQ29udGVudFR5cGU7CiAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0gICAgICAgIAorICAgICAgICB9CiAgICAgfQogICAgIG1faW1wbC0+
bV9wZW5kaW5nQ29udGVudC5waXhtYXAgPSBRUGl4bWFwKCk7CiB9Ci0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58900</attachid>
            <date>2010-06-16 09:36:36 -0700</date>
            <delta_ts>2010-06-22 13:23:48 -0700</delta_ts>
            <desc>define to 0 as requested rather than just removing the define.</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>9741</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBhMDM2M2EyYTg1MmVlMjI1MDZiZmJmMjlkMWM5ZjhmY2FkOWM0YzRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCgpidWcgLSA0MDM3OAotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgMTMxICsrKysrKysrKysrKysr
KysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlMDQ3MjlkLi5kNDY4ZjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA2LTA5ICBTYW0gTWFn
bnVzb24gIDxzbWFnbnVzb25AbmV0ZmxpeC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaGVuIGFueSBnZW9tZXRyeSBjaGFuZ2UgaGFw
cGVucyB0byBhIG5vZGUgaXQgd2lsbCByZXNpemUgdGhlCisgICAgICAgIGJhY2tpbmcgY2FjaGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzc4CisK
KyAgICAgICAgQ29udGludWUgdG8gZ3JvdyB0aGUgY2FjaGUsIGJ1dCBuZXZlciB0b3NzIGl0LiBX
aGVuIHRoZSBwaXhtYXAKKyAgICAgICAgY2FjaGUgZ2V0cyB0b28gYmlnIGl0IHdpbGwgYmUgbG9z
dCBhbmQgY3JlYXRlZCBhdCB0aGUgcmlnaHQgc2l6ZQorICAgICAgICBuZXh0IHRpbWUuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzOiB0aGlzIGlzIGFuIG9wdGltaXphdGlvbi4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJRdEltcGw6OmZsdXNoQ2hhbmdlcyk6CisKIDIwMTAtMDYtMTMgIE5vYW0gUm9zZW50aGFsICA8
bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xh
eWVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQu
Y3BwCmluZGV4IGFkMmVjOWMuLjQwNDI4YmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTQxLDYgKzQxLDEwIEBACiAjaW5jbHVk
ZSA8UXRHdWkvcXBpeG1hcGNhY2hlLmg+CiAjaW5jbHVkZSA8UXRHdWkvcXN0eWxlb3B0aW9uLmg+
CiAKKworI2RlZmluZSBRVF9ERUJVR19SRUNBQ0hFIDAKKyNkZWZpbmUgUVRfREVCVUdfQ0FDSEVE
VU1QIDAKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWZuZGVmIFFUX05PX0dSQVBISUNTRUZG
RUNUCkBAIC0yMTQsNyArMjE4LDEwIEBAIHB1YmxpYzoKICAgICBpbnQgbV9jaGFuZ2VNYXNrOwog
CiAgICAgUVNpemVGIG1fc2l6ZTsKLSAgICBRUGl4bWFwQ2FjaGU6OktleSBtX2JhY2tpbmdTdG9y
ZUtleTsKKyAgICBzdHJ1Y3QgeworICAgICAgICBRUGl4bWFwQ2FjaGU6OktleSBrZXk7CisgICAg
ICAgIFFTaXplRiBzaXplOworICAgIH0gbV9iYWNraW5nU3RvcmU7CiAjaWZuZGVmIFFUX05PX0FO
SU1BVElPTgogICAgIFFMaXN0PFFXZWFrUG9pbnRlcjxRQWJzdHJhY3RBbmltYXRpb24+ID4gbV9h
bmltYXRpb25zOwogI2VuZGlmCkBAIC0zMDMsMzYgKzMxMCwxMDcgQEAgY29uc3QgR3JhcGhpY3NM
YXllclF0SW1wbCogR3JhcGhpY3NMYXllclF0SW1wbDo6cm9vdExheWVyKCkgY29uc3QKIAogUVBp
eG1hcCBHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRv
VXBkYXRlKQogewotICAgIGlmICghbV9sYXllci0+ZHJhd3NDb250ZW50KCkgfHwgbV9zaXplLmlz
RW1wdHkoKSB8fCFtX3NpemUuaXNWYWxpZCgpKQorICAgIGlmICghbV9sYXllci0+ZHJhd3NDb250
ZW50KCkgfHwgbV9zaXplLmlzRW1wdHkoKSB8fCAhbV9zaXplLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIFFQaXhtYXAoKTsKIAotICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9VcGRhdGU7
CiAgICAgUVBpeG1hcCBwaXhtYXA7CisgICAgaWYgKFFQaXhtYXBDYWNoZTo6ZmluZChtX2JhY2tp
bmdTdG9yZS5rZXksICZwaXhtYXApKQorICAgICAgICBRUGl4bWFwQ2FjaGU6OnJlbW92ZShtX2Jh
Y2tpbmdTdG9yZS5rZXkpOyAvLyBSZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0aGUgcGl4bWFwIGlu
IHRoZSBjYWNoZSB0byBhdm9pZCBhIGRldGFjaC4KIAotICAgIC8vIFdlIG1pZ2h0IGJlIGRyYXdp
bmcgaW50byBhbiBleGlzdGluZyBjYWNoZS4KLSAgICBpZiAoIVFQaXhtYXBDYWNoZTo6ZmluZCht
X2JhY2tpbmdTdG9yZUtleSwgJnBpeG1hcCkpCi0gICAgICAgIHJlZ2lvbiA9IFFSZWdpb24oUVJl
Y3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSkpOworICAgIHsKKyAgICAg
ICAgUVJlZ2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKKyAgICAgICAgYm9vbCBlcmFzZWQg
PSBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlzIG5vdCBpbiB0aGUgY2FjaGUg
b3IgdGhlIHZpZXcgaGFzIGdyb3duIHNpbmNlIGxhc3QgY2FjaGVkLgorICAgICAgICBpZiAocGl4
bWFwLmlzTnVsbCgpIHx8IG1fc2l6ZSAhPSBtX2JhY2tpbmdTdG9yZS5zaXplKSB7CisjaWYgUVRf
REVCVUdfUkVDQUNIRQorICAgICAgICAgICAgaWYgKHBpeG1hcC5pc051bGwoKSkKKyAgICAgICAg
ICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVNaXNzIiA8PCB0aGlzIDw8IG1fc2l6ZTsKKyNlbmRp
ZgorICAgICAgICAgICAgYm9vbCBmaWxsID0gdHJ1ZTsKKyAgICAgICAgICAgIFFSZWdpb24gbmV3
UmVnaW9uOworICAgICAgICAgICAgUVBpeG1hcCBvbGRQaXhtYXAgPSBwaXhtYXA7CisKKyAgICAg
ICAgICAgIC8vIElmIHRoZSBwaXhtYXAgaXMgdHdvIHNtYWxsIHRvIGhvbGQgdGhlIHZpZXcgY29u
dGVudHMgd2UgZW5sYXJnZSwgb3RoZXJ3aXNlIGp1c3QgdXNlIHRoZSBvbGQgKGxhcmdlKSBwaXht
YXAuCisgICAgICAgICAgICBpZiAocGl4bWFwLndpZHRoKCkgPCBtX3NpemUud2lkdGgoKSB8fCBw
aXhtYXAuaGVpZ2h0KCkgPCBtX3NpemUuaGVpZ2h0KCkpIHsKKyNpZiBRVF9ERUJVR19SRUNBQ0hF
CisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlR3JvdyIgPDwgdGhpcyA8PCBtX3Np
emU7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50b1Np
emUoKSk7CisgICAgICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAg
ICAgICAgICAgICAgICBuZXdSZWdpb24gPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBt
X3NpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgfQogCi0gICAgaWYgKG1fc2l6ZSAhPSBwaXht
YXAuc2l6ZSgpKSB7Ci0gICAgICAgIHBpeG1hcCA9IFFQaXhtYXAobV9zaXplLnRvU2l6ZSgpKTsK
LSAgICAgICAgaWYgKCFtX2xheWVyLT5jb250ZW50c09wYXF1ZSgpKQotICAgICAgICAgICAgcGl4
bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKLSAgICAgICAgbV9wZW5kaW5nQ29udGVudC5yZWdp
b25Ub1VwZGF0ZSA9IFFSZWdpb24oUVJlY3QoUVBvaW50KDAsIDApLCBtX3NpemUudG9TaXplKCkp
KTsKLSAgICB9CisjaWYgMQorICAgICAgICAgICAgLy8gQmxpdCB0aGUgY29udGVudHMgb2Ygb2xk
UGl4bWFwIGJhY2sgaW50byB0aGUgY2FjaGVkIHBpeG1hcCBhcyB3ZSBhcmUganVzdCBhZGRpbmcg
bmV3IHBpeGVscy4KKyAgICAgICAgICAgIGlmICghb2xkUGl4bWFwLmlzTnVsbCgpKSB7CisgICAg
ICAgICAgICAgICAgY29uc3QgUVJlZ2lvbiBjbGVhblJlZ2lvbiA9IChRUmVnaW9uKDAsIDAsIG1f
c2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmIFFSZWdpb24oMCwgMCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53
aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5zaXplLmhlaWdodCgpKSkgLSByZWdpb25Ub1VwZGF0ZTsK
KyAgICAgICAgICAgICAgICBpZiAoIWNsZWFuUmVnaW9uLmlzRW1wdHkoKSkgeworI2lmIFFUX0RF
QlVHX1JFQ0FDSEUKKyAgICAgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlQmxpdCIg
PDwgdGhpcyA8PCBjbGVhblJlZ2lvbjsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICBjb25z
dCBRUmVjdCBjbGVhbkJvdW5kcyhjbGVhblJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CisgICAgICAg
ICAgICAgICAgICAgIFFQYWludGVyIHBhaW50ZXIoJnBpeG1hcCk7CisgICAgICAgICAgICAgICAg
ICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVf
U291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UGl4bWFwKGNsZWFuQm91
bmRzLnRvcExlZnQoKSwgb2xkUGl4bWFwLCBjbGVhbkJvdW5kcyk7CisgICAgICAgICAgICAgICAg
ICAgIG5ld1JlZ2lvbiAtPSBjbGVhblJlZ2lvbjsKKyAgICAgICAgICAgICAgICAgICAgZmlsbCA9
IGZhbHNlOyAvLyBXZSBjYW5ub3QganVzdCBmaWxsIHRoZSBwaXhtYXAuCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIG9sZFBpeG1hcCA9IFFQaXhtYXAoKTsKKyAgICAgICAgICAg
IH0KKyNlbmRpZgorICAgICAgICAgICAgcmVnaW9uICs9IG5ld1JlZ2lvbjsKKyAgICAgICAgICAg
IGlmIChmaWxsICYmICFyZWdpb24uaXNFbXB0eSgpKSB7IC8vIENsZWFyIHRoZSBlbnRpcmUgcGl4
bWFwIHdpdGggdGhlIGJhY2tncm91bmQuCisjaWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAg
ICAgICAgIHFEZWJ1ZygpIDw8ICJDYWNoZUVyYXNlIiA8PCB0aGlzIDw8IG1fc2l6ZSA8PCBiYWNr
Z3JvdW5kOworI2VuZGlmCisgICAgICAgICAgICAgICAgZXJhc2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBwaXhtYXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJlZ2lvbiAmPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBt
X3NpemUuaGVpZ2h0KCkpOworCisgICAgICAgIC8vIElmIHdlIGhhdmUgc29tZXRoaW5nIHRvIGRy
YXcgaXRzIHRpbWUgdG8gZXJhc2UgaXQgYW5kIHJlbmRlciB0aGUgY29udGVudHMuCisgICAgICAg
IGlmICghcmVnaW9uLmlzRW1wdHkoKSkgeworI2lmIFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAg
ICAgICAgc3RhdGljIGludCByZWNhY2hlQ291bnQgPSAwOworICAgICAgICAgICAgKytyZWNhY2hl
Q291bnQ7CisgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2Fj
aGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAgICAg
ICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQS5wbmciLCByZWNh
Y2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKworICAgICAgICAgICAgUVBhaW50ZXIgcGFpbnRl
cigmcGl4bWFwKTsKKyAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBnYygmcGFpbnRlcik7CiAK
LSAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXApOwotICAgIEdyYXBoaWNzQ29udGV4dCBnYygm
cGFpbnRlcik7CisgICAgICAgICAgICBwYWludGVyLnNldENsaXBSZWdpb24ocmVnaW9uKTsKIAot
ICAgIC8vIENsZWFyIHRoZSBhcmVhIGluIGNhY2hlIHRoYXQgd2UncmUgZHJhd2luZyBpbnRvCi0g
ICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9D
bGVhcik7Ci0gICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0
cmFuc3BhcmVudCk7CisgICAgICAgICAgICBpZiAoIWVyYXNlZCkgeyAvLyBFcmFzZSB0aGUgYXJl
YSBpbiBjYWNoZSB0aGF0IHdlJ3JlIGRyYXdpbmcgaW50by4KKyAgICAgICAgICAgICAgICBwYWlu
dGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0NsZWFyKTsK
KyAgICAgICAgICAgICAgICBwYWludGVyLmZpbGxSZWN0KHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSwg
UXQ6OnRyYW5zcGFyZW50KTsKIAotICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGlu
dG8gdGhlIGNhY2hlCi0gICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNv
bXBvc2l0aW9uTW9kZV9Tb3VyY2VPdmVyKTsKLSAgICBtX2xheWVyLT5wYWludEdyYXBoaWNzTGF5
ZXJDb250ZW50cyhnYywgcmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKLSAgICBwYWludGVyLmVuZCgp
OworI2lmIFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIq
KioqIENBQ0hFRFVNUCIgPDwgcmVjYWNoZUNvdW50IDw8IHRoaXMgPDwgbV9sYXllciA8PCByZWdp
b24gPDwgbV9zaXplOworICAgICAgICAgICAgICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJp
bnRmKCIvdG1wLyUwNWRfQi5wbmciLCByZWNhY2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVuZGVyIHRoZSBhY3R1YWwgY29udGVudHMg
aW50byB0aGUgY2FjaGUuCisgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShR
UGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXIpOworICAgICAgICAgICAgbV9sYXll
ci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7
CisgICAgICAgICAgICBwYWludGVyLmVuZCgpOworCisjaWYgUVRfREVCVUdfQ0FDSEVEVU1QCisg
ICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2FjaGVDb3VudCA8
PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAgICAgICAgIHBpeG1h
cC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQy5wbmciLCByZWNhY2hlQ291bnQp
LCAiUE5HIik7CisjZW5kaWYKKyAgICAgICAgfQorICAgICAgICBtX2JhY2tpbmdTdG9yZS5zaXpl
ID0gbV9zaXplOyAvLyBTdG9yZSB0aGUgdXNlZCBzaXplIG9mIHRoZSBwaXhtYXAuCisgICAgfQor
CisgICAgLy8gRmluYWxseSBpbnNlcnQgaW50byB0aGUgY2FjaGUgYW5kIGFsbG93IGEgcmVmZXJl
bmNlIHRoZXJlLgorICAgIG1fYmFja2luZ1N0b3JlLmtleSA9IFFQaXhtYXBDYWNoZTo6aW5zZXJ0
KHBpeG1hcCk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZUtleSA9IFFQaXhtYXBDYWNoZTo6aW5zZXJ0
KHBpeG1hcCk7ICAgIAogICAgIHJldHVybiBwaXhtYXA7CiB9CiAKQEAgLTQ0OSw3ICs1MjcsOCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQYWludGVyKiBwYWludGVyLCBjb25z
dCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZQogICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0
byByZWNhY2hlLCBpbiBjYXNlIHdlIHRyeSB0byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJn
ZWQgKGUuZy4gaWYgaXQgd2FzIGZ1bGwpLgogICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6
OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZiYWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5z
aXplKCkgIT0gbV9zaXplLnRvU2l6ZSgpKQogICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZSA9
IHJlY2FjaGUoUVJlZ2lvbihtX3N0YXRlLmNvbnRlbnRzUmVjdCkpOwotICAgICAgICAgICAgcGFp
bnRlci0+ZHJhd1BpeG1hcCgwLCAwLCBiYWNraW5nU3RvcmUpOworICAgICAgICAgICAgY29uc3Qg
UVJlY3RGIGJvdW5kcygwLCAwLCBtX2JhY2tpbmdTdG9yZS5zaXplLndpZHRoKCksIG1fYmFja2lu
Z1N0b3JlLnNpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChi
b3VuZHMsIGJhY2tpbmdTdG9yZSwgYm91bmRzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBpeG1hcENvbnRlbnRUeXBlOgpAQCAtNjE0LDExICs2OTMsMTMgQEAgdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9y
Y2VVcGRhdGVUcmFuc2Zvcm0KICAgICBlbHNlCiAjZW5kaWYKICAgICBpZiAobV9jaGFuZ2VNYXNr
ICYgRGlzcGxheUNoYW5nZSkgeworI2lmbmRlZiBRVF9HUkFQSElDU19MQVlFUl9OT19SRUNBQ0hF
X09OX0RJU1BMQVlfQ0hBTkdFCiAgICAgICAgIC8vIFJlY2FjaGUgbm93OiBhbGwgdGhlIGNvbnRl
bnQgaXMgcmVhZHkgYW5kIHdlIGRvbid0IHdhbnQgdG8gd2FpdCB1bnRpbCB0aGUgcGFpbnQgZXZl
bnQuCiAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGZvciBIVE1MIGNvbnRlbnQs
IHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY2FjaGluZyBkaXJlY3RseSBjb21wb3NpdGVkCiAgICAgICAg
IC8vIGNvbnRlbnQgbGlrZSBpbWFnZXMgb3Igc29saWQgcmVjdGFuZ2xlcy4KICAgICAgICAgaWYg
KG1fcGVuZGluZ0NvbnRlbnQuY29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKQogICAgICAg
ICAgICAgcmVjYWNoZShtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlKTsKKyNlbmRpZgog
ICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1Jl
Y3QoKSk7CiAgICAgICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9u
KCk7CiAgICAgfQpAQCAtNjU1LDcgKzczNiw3IEBAIGFmdGVyTGF5ZXJDaGFuZ2VzOgogICAgICAg
ICB1cGRhdGVUcmFuc2Zvcm0oKTsKIAogICAgIGlmICghcmVjdXJzaXZlKQotICAgICAgICByZXR1
cm47ICAgIAorICAgICAgICByZXR1cm47CiAKICAgICBRTGlzdDxRR3JhcGhpY3NJdGVtKj4gY2hp
bGRyZW4gPSBjaGlsZEl0ZW1zKCk7CiAgICAgaWYgKG1fc3RhdGUubWFza0xheWVyKQpAQCAtOTI5
LDcgKzEwMTAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0Q29udGVudHNUb0ltYWdlKElt
YWdlKiBpbWFnZSkKICAgICAgICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5waXhtYXAg
PSAqcHhtOwogICAgICAgICAgICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LmNvbnRlbnRUeXBl
ID0gR3JhcGhpY3NMYXllclF0SW1wbDo6UGl4bWFwQ29udGVudFR5cGU7CiAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0gICAgICAgIAorICAgICAgICB9CiAgICAgfQogICAgIG1faW1wbC0+
bV9wZW5kaW5nQ29udGVudC5waXhtYXAgPSBRUGl4bWFwKCk7CiB9Ci0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59299</attachid>
            <date>2010-06-21 15:21:32 -0700</date>
            <delta_ts>2010-06-22 16:09:58 -0700</delta_ts>
            <desc>rebase and rediff</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>9883</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSA0MGU3NThkMzFkOWE3ZmJkNWY5MTJjMDFiNjAwM2IxNTMzYjJlZjQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCgpidWcgLSA0MDM3OAotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgMTM1ICsrKysrKysrKysrKysr
KysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZmQyNTllMC4uNGJmZTU5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNi0wOSAgU2FtIE1h
Z251c29uICA8c21hZ251c29uQG5ldGZsaXguY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhh
cHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVzaXplIHRoZQorICAgICAgICBiYWNraW5nIGNhY2hl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3OAor
CisgICAgICAgIENvbnRpbnVlIHRvIGdyb3cgdGhlIGNhY2hlLCBidXQgbmV2ZXIgdG9zcyBpdC4g
V2hlbiB0aGUgcGl4bWFwCisgICAgICAgIGNhY2hlIGdldHMgdG9vIGJpZyBpdCB3aWxsIGJlIGxv
c3QgYW5kIGNyZWF0ZWQgYXQgdGhlIHJpZ2h0IHNpemUKKyAgICAgICAgbmV4dCB0aW1lLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0czogdGhpcyBpcyBhbiBvcHRpbWl6YXRpb24uCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyUXRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUXRJbXBsOjpmbHVzaENoYW5nZXMpOgorCiAyMDEwLTA2LTIxICBCYWxhenMgS2VsZW1lbiAg
PGtiQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXll
clF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNw
cAppbmRleCBhZDJlYzljLi5hYWQyMWFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCkBAIC00MSw2ICs0MSwxMCBAQAogI2luY2x1ZGUg
PFF0R3VpL3FwaXhtYXBjYWNoZS5oPgogI2luY2x1ZGUgPFF0R3VpL3FzdHlsZW9wdGlvbi5oPgog
CisKKyNkZWZpbmUgUVRfREVCVUdfUkVDQUNIRSAwCisjZGVmaW5lIFFUX0RFQlVHX0NBQ0hFRFVN
UCAwCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmbmRlZiBRVF9OT19HUkFQSElDU0VGRkVD
VApAQCAtMjE0LDcgKzIxOCwxMCBAQCBwdWJsaWM6CiAgICAgaW50IG1fY2hhbmdlTWFzazsKIAog
ICAgIFFTaXplRiBtX3NpemU7Ci0gICAgUVBpeG1hcENhY2hlOjpLZXkgbV9iYWNraW5nU3RvcmVL
ZXk7CisgICAgc3RydWN0IHsKKyAgICAgICAgUVBpeG1hcENhY2hlOjpLZXkga2V5OworICAgICAg
ICBRU2l6ZUYgc2l6ZTsKKyAgICB9IG1fYmFja2luZ1N0b3JlOwogI2lmbmRlZiBRVF9OT19BTklN
QVRJT04KICAgICBRTGlzdDxRV2Vha1BvaW50ZXI8UUFic3RyYWN0QW5pbWF0aW9uPiA+IG1fYW5p
bWF0aW9uczsKICNlbmRpZgpAQCAtMzAzLDM2ICszMTAsMTExIEBAIGNvbnN0IEdyYXBoaWNzTGF5
ZXJRdEltcGwqIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnJvb3RMYXllcigpIGNvbnN0CiAKIFFQaXht
YXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1Vw
ZGF0ZSkKIHsKLSAgICBpZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0Vt
cHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKKyAgICBpZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVu
dCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwgIW1fc2l6ZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybiBRUGl4bWFwKCk7CiAKLSAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lvblRvVXBkYXRlOwog
ICAgIFFQaXhtYXAgcGl4bWFwOworICAgIGlmIChRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5n
U3RvcmUua2V5LCAmcGl4bWFwKSkgeworICAgICAgICBpZiggcmVnaW9uLmlzRW1wdHkoKSApCisg
ICAgICAgICAgICByZXR1cm4gcGl4bWFwOworICAgICAgICBRUGl4bWFwQ2FjaGU6OnJlbW92ZSht
X2JhY2tpbmdTdG9yZS5rZXkpOyAvLyBSZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0aGUgcGl4bWFw
IGluIHRoZSBjYWNoZSB0byBhdm9pZCBhIGRldGFjaC4KKyAgICB9CiAKLSAgICAvLyBXZSBtaWdo
dCBiZSBkcmF3aW5nIGludG8gYW4gZXhpc3RpbmcgY2FjaGUuCi0gICAgaWYgKCFRUGl4bWFwQ2Fj
aGU6OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZwaXhtYXApKQotICAgICAgICByZWdpb24gPSBR
UmVnaW9uKFFSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsKKyAg
ICB7CisgICAgICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9VcGRhdGU7CisgICAgICAgIGJv
b2wgZXJhc2VkID0gZmFsc2U7CisKKyAgICAgICAgLy8gSWYgdGhlIHBpeG1hcCBpcyBub3QgaW4g
dGhlIGNhY2hlIG9yIHRoZSB2aWV3IGhhcyBncm93biBzaW5jZSBsYXN0IGNhY2hlZC4KKyAgICAg
ICAgaWYgKHBpeG1hcC5pc051bGwoKSB8fCBtX3NpemUgIT0gbV9iYWNraW5nU3RvcmUuc2l6ZSkg
eworI2lmIFFUX0RFQlVHX1JFQ0FDSEUKKyAgICAgICAgICAgIGlmIChwaXhtYXAuaXNOdWxsKCkp
CisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlTWlzcyIgPDwgdGhpcyA8PCBtX3Np
emU7CisjZW5kaWYKKyAgICAgICAgICAgIGJvb2wgZmlsbCA9IHRydWU7CisgICAgICAgICAgICBR
UmVnaW9uIG5ld1JlZ2lvbjsKKyAgICAgICAgICAgIFFQaXhtYXAgb2xkUGl4bWFwID0gcGl4bWFw
OworCisgICAgICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlzIHR3byBzbWFsbCB0byBob2xkIHRo
ZSB2aWV3IGNvbnRlbnRzIHdlIGVubGFyZ2UsIG90aGVyd2lzZSBqdXN0IHVzZSB0aGUgb2xkIChs
YXJnZSkgcGl4bWFwLgorICAgICAgICAgICAgaWYgKHBpeG1hcC53aWR0aCgpIDwgbV9zaXplLndp
ZHRoKCkgfHwgcGl4bWFwLmhlaWdodCgpIDwgbV9zaXplLmhlaWdodCgpKSB7CisjaWYgUVRfREVC
VUdfUkVDQUNIRQorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJDYWNoZUdyb3ciIDw8IHRo
aXMgPDwgbV9zaXplOworI2VuZGlmCisgICAgICAgICAgICAgICAgcGl4bWFwID0gUVBpeG1hcCht
X3NpemUudG9TaXplKCkpOworICAgICAgICAgICAgICAgIHBpeG1hcC5maWxsKFF0Ojp0cmFuc3Bh
cmVudCk7CisgICAgICAgICAgICAgICAgbmV3UmVnaW9uID0gUVJlZ2lvbigwLCAwLCBtX3NpemUu
d2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgIH0KIAotICAgIGlmIChtX3Np
emUgIT0gcGl4bWFwLnNpemUoKSkgewotICAgICAgICBwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50
b1NpemUoKSk7Ci0gICAgICAgIGlmICghbV9sYXllci0+Y29udGVudHNPcGFxdWUoKSkKLSAgICAg
ICAgICAgIHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7Ci0gICAgICAgIG1fcGVuZGluZ0Nv
bnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgwLCAwKSwgbV9zaXpl
LnRvU2l6ZSgpKSk7Ci0gICAgfQorI2lmIDEKKyAgICAgICAgICAgIC8vIEJsaXQgdGhlIGNvbnRl
bnRzIG9mIG9sZFBpeG1hcCBiYWNrIGludG8gdGhlIGNhY2hlZCBwaXhtYXAgYXMgd2UgYXJlIGp1
c3QgYWRkaW5nIG5ldyBwaXhlbHMuCisgICAgICAgICAgICBpZiAoIW9sZFBpeG1hcC5pc051bGwo
KSkgeworICAgICAgICAgICAgICAgIGNvbnN0IFFSZWdpb24gY2xlYW5SZWdpb24gPSAoUVJlZ2lv
bigwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBRUmVnaW9uKDAsIDAsIG1fYmFja2luZ1N0
b3JlLnNpemUud2lkdGgoKSwgbV9iYWNraW5nU3RvcmUuc2l6ZS5oZWlnaHQoKSkpIC0gcmVnaW9u
VG9VcGRhdGU7CisgICAgICAgICAgICAgICAgaWYgKCFjbGVhblJlZ2lvbi5pc0VtcHR5KCkpIHsK
KyNpZiBRVF9ERUJVR19SRUNBQ0hFCisgICAgICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJD
YWNoZUJsaXQiIDw8IHRoaXMgPDwgY2xlYW5SZWdpb247CisjZW5kaWYKKyAgICAgICAgICAgICAg
ICAgICAgY29uc3QgUVJlY3QgY2xlYW5Cb3VuZHMoY2xlYW5SZWdpb24uYm91bmRpbmdSZWN0KCkp
OworICAgICAgICAgICAgICAgICAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXApOworICAgICAg
ICAgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9z
aXRpb25Nb2RlX1NvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIHBhaW50ZXIuZHJhd1BpeG1h
cChjbGVhbkJvdW5kcy50b3BMZWZ0KCksIG9sZFBpeG1hcCwgY2xlYW5Cb3VuZHMpOworICAgICAg
ICAgICAgICAgICAgICBuZXdSZWdpb24gLT0gY2xlYW5SZWdpb247CisgICAgICAgICAgICAgICAg
ICAgIGZpbGwgPSBmYWxzZTsgLy8gV2UgY2Fubm90IGp1c3QgZmlsbCB0aGUgcGl4bWFwLgorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGRQaXhtYXAgPSBRUGl4bWFwKCk7Cisg
ICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIHJlZ2lvbiArPSBuZXdSZWdpb247Cisg
ICAgICAgICAgICBpZiAoZmlsbCAmJiAhcmVnaW9uLmlzRW1wdHkoKSkgeyAvLyBDbGVhciB0aGUg
ZW50aXJlIHBpeG1hcCB3aXRoIHRoZSBiYWNrZ3JvdW5kLgorI2lmIFFUX0RFQlVHX1JFQ0FDSEUK
KyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVFcmFzZSIgPDwgdGhpcyA8PCBtX3Np
emUgPDwgYmFja2dyb3VuZDsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGVyYXNlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICByZWdpb24gJj0gUVJlZ2lvbigwLCAwLCBtX3NpemUu
d2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsKKworICAgICAgICAvLyBJZiB3ZSBoYXZlIHNvbWV0
aGluZyB0byBkcmF3IGl0cyB0aW1lIHRvIGVyYXNlIGl0IGFuZCByZW5kZXIgdGhlIGNvbnRlbnRz
LgorICAgICAgICBpZiAoIXJlZ2lvbi5pc0VtcHR5KCkpIHsKKyNpZiBRVF9ERUJVR19DQUNIRURV
TVAKKyAgICAgICAgICAgIHN0YXRpYyBpbnQgcmVjYWNoZUNvdW50ID0gMDsKKyAgICAgICAgICAg
ICsrcmVjYWNoZUNvdW50OworICAgICAgICAgICAgcURlYnVnKCkgPDwgIioqKiogQ0FDSEVEVU1Q
IiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3NpemU7
CisgICAgICAgICAgICBwaXhtYXAuc2F2ZShRU3RyaW5nKCkuc3ByaW50ZigiL3RtcC8lMDVkX0Eu
cG5nIiwgcmVjYWNoZUNvdW50KSwgIlBORyIpOworI2VuZGlmCiAKLSAgICBRUGFpbnRlciBwYWlu
dGVyKCZwaXhtYXApOwotICAgIEdyYXBoaWNzQ29udGV4dCBnYygmcGFpbnRlcik7CisgICAgICAg
ICAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXApOworICAgICAgICAgICAgR3JhcGhpY3NDb250
ZXh0IGdjKCZwYWludGVyKTsKIAotICAgIC8vIENsZWFyIHRoZSBhcmVhIGluIGNhY2hlIHRoYXQg
d2UncmUgZHJhd2luZyBpbnRvCi0gICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50
ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7Ci0gICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24u
Ym91bmRpbmdSZWN0KCksIFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgICAgICBwYWludGVyLnNl
dENsaXBSZWdpb24ocmVnaW9uKTsKIAotICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRz
IGludG8gdGhlIGNhY2hlCi0gICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6
OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VPdmVyKTsKLSAgICBtX2xheWVyLT5wYWludEdyYXBoaWNz
TGF5ZXJDb250ZW50cyhnYywgcmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKLSAgICBwYWludGVyLmVu
ZCgpOworICAgICAgICAgICAgaWYgKCFlcmFzZWQpIHsgLy8gRXJhc2UgdGhlIGFyZWEgaW4gY2Fj
aGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8uCisgICAgICAgICAgICAgICAgcGFpbnRlci5zZXRD
b21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CisgICAgICAg
ICAgICAgICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0cmFu
c3BhcmVudCk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZUtleSA9IFFQaXhtYXBDYWNoZTo6aW5zZXJ0
KHBpeG1hcCk7ICAgIAorI2lmIFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgICAgIHFE
ZWJ1ZygpIDw8ICIqKioqIENBQ0hFRFVNUCIgPDwgcmVjYWNoZUNvdW50IDw8IHRoaXMgPDwgbV9s
YXllciA8PCByZWdpb24gPDwgbV9zaXplOworICAgICAgICAgICAgICAgIHBpeG1hcC5zYXZlKFFT
dHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQi5wbmciLCByZWNhY2hlQ291bnQpLCAiUE5HIik7
CisjZW5kaWYKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVuZGVyIHRoZSBhY3R1
YWwgY29udGVudHMgaW50byB0aGUgY2FjaGUuCisgICAgICAgICAgICBwYWludGVyLnNldENvbXBv
c2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXIpOworICAgICAg
ICAgICAgbV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3Vu
ZGluZ1JlY3QoKSk7CisgICAgICAgICAgICBwYWludGVyLmVuZCgpOworCisjaWYgUVRfREVCVUdf
Q0FDSEVEVU1QCisgICAgICAgICAgICBxRGVidWcoKSA8PCAiKioqKiBDQUNIRURVTVAiIDw8IHJl
Y2FjaGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwgcmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAg
ICAgICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUwNWRfQy5wbmciLCBy
ZWNhY2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKyAgICAgICAgICAgIGlmIChzZW5kVXBkYXRl
KQorICAgICAgICAgICAgICAgIHVwZGF0ZShyZWdpb24uYm91bmRpbmdSZWN0KCkpOworICAgICAg
ICB9CisgICAgICAgIG1fYmFja2luZ1N0b3JlLnNpemUgPSBtX3NpemU7IC8vIFN0b3JlIHRoZSB1
c2VkIHNpemUgb2YgdGhlIHBpeG1hcC4KKyAgICB9CisKKyAgICAvLyBGaW5hbGx5IGluc2VydCBp
bnRvIHRoZSBjYWNoZSBhbmQgYWxsb3cgYSByZWZlcmVuY2UgdGhlcmUuCisgICAgbV9iYWNraW5n
U3RvcmUua2V5ID0gUVBpeG1hcENhY2hlOjppbnNlcnQocGl4bWFwKTsKICAgICByZXR1cm4gcGl4
bWFwOwogfQogCkBAIC00NDksNyArNTMxLDggQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpw
YWludChRUGFpbnRlciogcGFpbnRlciwgY29uc3QgUVN0eWxlT3B0aW9uR3JhcGhpY3NJdGUKICAg
ICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNoZSwgaW4gY2FzZSB3ZSB0cnkgdG8g
cGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcuIGlmIGl0IHdhcyBmdWxsKS4KICAg
ICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFja2luZ1N0b3JlS2V5LCAmYmFj
a2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9IG1fc2l6ZS50b1NpemUoKSkKICAg
ICAgICAgICAgICAgICBiYWNraW5nU3RvcmUgPSByZWNhY2hlKFFSZWdpb24obV9zdGF0ZS5jb250
ZW50c1JlY3QpKTsKLSAgICAgICAgICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoMCwgMCwgYmFja2lu
Z1N0b3JlKTsKKyAgICAgICAgICAgIGNvbnN0IFFSZWN0RiBib3VuZHMoMCwgMCwgbV9iYWNraW5n
U3RvcmUuc2l6ZS53aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5zaXplLmhlaWdodCgpKTsKKyAgICAg
ICAgICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoYm91bmRzLCBiYWNraW5nU3RvcmUsIGJvdW5kcyk7
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQaXhtYXBDb250ZW50VHlwZToK
QEAgLTYxNCwxMSArNjk3LDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6Zmx1c2hDaGFu
Z2VzKGJvb2wgcmVjdXJzaXZlLCBib29sIGZvcmNlVXBkYXRlVHJhbnNmb3JtCiAgICAgZWxzZQog
I2VuZGlmCiAgICAgaWYgKG1fY2hhbmdlTWFzayAmIERpc3BsYXlDaGFuZ2UpIHsKKyNpZm5kZWYg
UVRfR1JBUEhJQ1NfTEFZRVJfTk9fUkVDQUNIRV9PTl9ESVNQTEFZX0NIQU5HRQogICAgICAgICAv
LyBSZWNhY2hlIG5vdzogYWxsIHRoZSBjb250ZW50IGlzIHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50
IHRvIHdhaXQgdW50aWwgdGhlIHBhaW50IGV2ZW50LgogICAgICAgICAvLyBXZSBvbmx5IG5lZWQg
dG8gZG8gdGhpcyBmb3IgSFRNTCBjb250ZW50LCB0aGVyZSdzIG5vIHBvaW50IGluIGNhY2hpbmcg
ZGlyZWN0bHkgY29tcG9zaXRlZAogICAgICAgICAvLyBjb250ZW50IGxpa2UgaW1hZ2VzIG9yIHNv
bGlkIHJlY3RhbmdsZXMuCiAgICAgICAgIGlmIChtX3BlbmRpbmdDb250ZW50LmNvbnRlbnRUeXBl
ID09IEhUTUxDb250ZW50VHlwZSkKICAgICAgICAgICAgIHJlY2FjaGUobV9wZW5kaW5nQ29udGVu
dC5yZWdpb25Ub1VwZGF0ZSk7CisjZW5kaWYKICAgICAgICAgdXBkYXRlKG1fcGVuZGluZ0NvbnRl
bnQucmVnaW9uVG9VcGRhdGUuYm91bmRpbmdSZWN0KCkpOwogICAgICAgICBtX3BlbmRpbmdDb250
ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigpOwogICAgIH0KQEAgLTY1NSw3ICs3NDAsNyBA
QCBhZnRlckxheWVyQ2hhbmdlczoKICAgICAgICAgdXBkYXRlVHJhbnNmb3JtKCk7CiAKICAgICBp
ZiAoIXJlY3Vyc2l2ZSkKLSAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgcmV0dXJuOwogCiAg
ICAgUUxpc3Q8UUdyYXBoaWNzSXRlbSo+IGNoaWxkcmVuID0gY2hpbGRJdGVtcygpOwogICAgIGlm
IChtX3N0YXRlLm1hc2tMYXllcikKQEAgLTkyOSw3ICsxMDE0LDcgQEAgdm9pZCBHcmFwaGljc0xh
eWVyUXQ6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgICAgICBtX2lt
cGwtPm1fcGVuZGluZ0NvbnRlbnQucGl4bWFwID0gKnB4bTsKICAgICAgICAgICAgIG1faW1wbC0+
bV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9IEdyYXBoaWNzTGF5ZXJRdEltcGw6OlBpeG1h
cENvbnRlbnRUeXBlOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9ICAgICAgICAKKyAg
ICAgICAgfQogICAgIH0KICAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucGl4bWFwID0gUVBp
eG1hcCgpOwogfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59433</attachid>
            <date>2010-06-22 16:09:58 -0700</date>
            <delta_ts>2010-06-23 00:03:21 -0700</delta_ts>
            <desc>Rediff against trunk</desc>
            <filename>bug-40378.patch</filename>
            <type>text/plain</type>
            <size>9346</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSA0YWVkYTgzYjc4ODE4NmNlNTFkOTU3YmViNzEzYjBiNzE3ZmNkZGM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogTW9uLCAyMSBKdW4gMjAxMCAyMDo1ODo1OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdlIGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVz
aXplIHRoZSBiYWNraW5nIGNhY2hlCiBidWctNDAzNzgKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysKIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcCB8ICAxMzEgKysrKysrKysrKysrKysr
KysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA2OWIxNjc5Li5iNjQyNjM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA2LTA5ICBTYW0gTWFn
bnVzb24gIDxzbWFnbnVzb25AbmV0ZmxpeC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaGVuIGFueSBnZW9tZXRyeSBjaGFuZ2UgaGFw
cGVucyB0byBhIG5vZGUgaXQgd2lsbCByZXNpemUgdGhlCisgICAgICAgIGJhY2tpbmcgY2FjaGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzc4CisK
KyAgICAgICAgQ29udGludWUgdG8gZ3JvdyB0aGUgY2FjaGUsIGJ1dCBuZXZlciB0b3NzIGl0LiBX
aGVuIHRoZSBwaXhtYXAKKyAgICAgICAgY2FjaGUgZ2V0cyB0b28gYmlnIGl0IHdpbGwgYmUgbG9z
dCBhbmQgY3JlYXRlZCBhdCB0aGUgcmlnaHQgc2l6ZQorICAgICAgICBuZXh0IHRpbWUuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzOiB0aGlzIGlzIGFuIG9wdGltaXphdGlvbi4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJRdEltcGw6OmZsdXNoQ2hhbmdlcyk6CisKIDIwMTAtMDYtMjEgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI2MTU4NS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NMYXllclF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NM
YXllclF0LmNwcAppbmRleCA4ZWQwZDg5Li43MWU5ZWNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCkBAIC00MSw2ICs0MSwxMCBAQAog
I2luY2x1ZGUgPFF0R3VpL3FwaXhtYXBjYWNoZS5oPgogI2luY2x1ZGUgPFF0R3VpL3FzdHlsZW9w
dGlvbi5oPgogCisKKyNkZWZpbmUgUVRfREVCVUdfUkVDQUNIRSAwCisjZGVmaW5lIFFUX0RFQlVH
X0NBQ0hFRFVNUCAwCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmbmRlZiBRVF9OT19HUkFQ
SElDU0VGRkVDVApAQCAtMjI1LDcgKzIyOSwxMCBAQCBwdWJsaWM6CiAgICAgaW50IG1fY2hhbmdl
TWFzazsKIAogICAgIFFTaXplRiBtX3NpemU7Ci0gICAgUVBpeG1hcENhY2hlOjpLZXkgbV9iYWNr
aW5nU3RvcmVLZXk7CisgICAgc3RydWN0IHsKKyAgICAgICAgUVBpeG1hcENhY2hlOjpLZXkga2V5
OworICAgICAgICBRU2l6ZUYgc2l6ZTsKKyAgICB9IG1fYmFja2luZ1N0b3JlOwogI2lmbmRlZiBR
VF9OT19BTklNQVRJT04KICAgICBRTGlzdDxRV2Vha1BvaW50ZXI8UUFic3RyYWN0QW5pbWF0aW9u
PiA+IG1fYW5pbWF0aW9uczsKICNlbmRpZgpAQCAtMzM5LDM2ICszNDYsMTExIEBAIGNvbnN0IEdy
YXBoaWNzTGF5ZXJRdEltcGwqIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnJvb3RMYXllcigpIGNvbnN0
CiAKIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiBy
ZWdpb25Ub1VwZGF0ZSkKIHsKLSAgICBpZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1f
c2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKKyAgICBpZiAoIW1fbGF5ZXItPmRy
YXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwgIW1fc2l6ZS5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiBRUGl4bWFwKCk7CiAKLSAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lvblRv
VXBkYXRlOwogICAgIFFQaXhtYXAgcGl4bWFwOworICAgIGlmIChRUGl4bWFwQ2FjaGU6OmZpbmQo
bV9iYWNraW5nU3RvcmUua2V5LCAmcGl4bWFwKSkgeworICAgICAgICBpZiggcmVnaW9uLmlzRW1w
dHkoKSApCisgICAgICAgICAgICByZXR1cm4gcGl4bWFwOworICAgICAgICBRUGl4bWFwQ2FjaGU6
OnJlbW92ZShtX2JhY2tpbmdTdG9yZS5rZXkpOyAvLyBSZW1vdmUgdGhlIHJlZmVyZW5jZSB0byB0
aGUgcGl4bWFwIGluIHRoZSBjYWNoZSB0byBhdm9pZCBhIGRldGFjaC4KKyAgICB9CiAKLSAgICAv
LyBXZSBtaWdodCBiZSBkcmF3aW5nIGludG8gYW4gZXhpc3RpbmcgY2FjaGUuCi0gICAgaWYgKCFR
UGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZwaXhtYXApKQotICAgICAgICBy
ZWdpb24gPSBRUmVnaW9uKFFSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0
KCkpKTsKKyAgICB7CisgICAgICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9VcGRhdGU7Cisg
ICAgICAgIGJvb2wgZXJhc2VkID0gZmFsc2U7CisKKyAgICAgICAgLy8gSWYgdGhlIHBpeG1hcCBp
cyBub3QgaW4gdGhlIGNhY2hlIG9yIHRoZSB2aWV3IGhhcyBncm93biBzaW5jZSBsYXN0IGNhY2hl
ZC4KKyAgICAgICAgaWYgKHBpeG1hcC5pc051bGwoKSB8fCBtX3NpemUgIT0gbV9iYWNraW5nU3Rv
cmUuc2l6ZSkgeworI2lmIFFUX0RFQlVHX1JFQ0FDSEUKKyAgICAgICAgICAgIGlmIChwaXhtYXAu
aXNOdWxsKCkpCisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlTWlzcyIgPDwgdGhp
cyA8PCBtX3NpemU7CisjZW5kaWYKKyAgICAgICAgICAgIGJvb2wgZmlsbCA9IHRydWU7CisgICAg
ICAgICAgICBRUmVnaW9uIG5ld1JlZ2lvbjsKKyAgICAgICAgICAgIFFQaXhtYXAgb2xkUGl4bWFw
ID0gcGl4bWFwOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlzIHR3byBzbWFsbCB0
byBob2xkIHRoZSB2aWV3IGNvbnRlbnRzIHdlIGVubGFyZ2UsIG90aGVyd2lzZSBqdXN0IHVzZSB0
aGUgb2xkIChsYXJnZSkgcGl4bWFwLgorICAgICAgICAgICAgaWYgKHBpeG1hcC53aWR0aCgpIDwg
bV9zaXplLndpZHRoKCkgfHwgcGl4bWFwLmhlaWdodCgpIDwgbV9zaXplLmhlaWdodCgpKSB7Cisj
aWYgUVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJDYWNoZUdy
b3ciIDw8IHRoaXMgPDwgbV9zaXplOworI2VuZGlmCisgICAgICAgICAgICAgICAgcGl4bWFwID0g
UVBpeG1hcChtX3NpemUudG9TaXplKCkpOworICAgICAgICAgICAgICAgIHBpeG1hcC5maWxsKFF0
Ojp0cmFuc3BhcmVudCk7CisgICAgICAgICAgICAgICAgbmV3UmVnaW9uID0gUVJlZ2lvbigwLCAw
LCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsKKyAgICAgICAgICAgIH0KIAotICAg
IGlmIChtX3NpemUgIT0gcGl4bWFwLnNpemUoKSkgewotICAgICAgICBwaXhtYXAgPSBRUGl4bWFw
KG1fc2l6ZS50b1NpemUoKSk7Ci0gICAgICAgIGlmICghbV9sYXllci0+Y29udGVudHNPcGFxdWUo
KSkKLSAgICAgICAgICAgIHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7Ci0gICAgICAgIG1f
cGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgwLCAw
KSwgbV9zaXplLnRvU2l6ZSgpKSk7Ci0gICAgfQorI2lmIDEKKyAgICAgICAgICAgIC8vIEJsaXQg
dGhlIGNvbnRlbnRzIG9mIG9sZFBpeG1hcCBiYWNrIGludG8gdGhlIGNhY2hlZCBwaXhtYXAgYXMg
d2UgYXJlIGp1c3QgYWRkaW5nIG5ldyBwaXhlbHMuCisgICAgICAgICAgICBpZiAoIW9sZFBpeG1h
cC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IFFSZWdpb24gY2xlYW5SZWdpb24g
PSAoUVJlZ2lvbigwLCAwLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBRUmVnaW9uKDAsIDAsIG1f
YmFja2luZ1N0b3JlLnNpemUud2lkdGgoKSwgbV9iYWNraW5nU3RvcmUuc2l6ZS5oZWlnaHQoKSkp
IC0gcmVnaW9uVG9VcGRhdGU7CisgICAgICAgICAgICAgICAgaWYgKCFjbGVhblJlZ2lvbi5pc0Vt
cHR5KCkpIHsKKyNpZiBRVF9ERUJVR19SRUNBQ0hFCisgICAgICAgICAgICAgICAgICAgIHFEZWJ1
ZygpIDw8ICJDYWNoZUJsaXQiIDw8IHRoaXMgPDwgY2xlYW5SZWdpb247CisjZW5kaWYKKyAgICAg
ICAgICAgICAgICAgICAgY29uc3QgUVJlY3QgY2xlYW5Cb3VuZHMoY2xlYW5SZWdpb24uYm91bmRp
bmdSZWN0KCkpOworICAgICAgICAgICAgICAgICAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXAp
OworICAgICAgICAgICAgICAgICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRl
cjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIHBhaW50ZXIu
ZHJhd1BpeG1hcChjbGVhbkJvdW5kcy50b3BMZWZ0KCksIG9sZFBpeG1hcCwgY2xlYW5Cb3VuZHMp
OworICAgICAgICAgICAgICAgICAgICBuZXdSZWdpb24gLT0gY2xlYW5SZWdpb247CisgICAgICAg
ICAgICAgICAgICAgIGZpbGwgPSBmYWxzZTsgLy8gV2UgY2Fubm90IGp1c3QgZmlsbCB0aGUgcGl4
bWFwLgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGRQaXhtYXAgPSBRUGl4
bWFwKCk7CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIHJlZ2lvbiArPSBuZXdS
ZWdpb247CisgICAgICAgICAgICBpZiAoZmlsbCAmJiAhcmVnaW9uLmlzRW1wdHkoKSkgeyAvLyBD
bGVhciB0aGUgZW50aXJlIHBpeG1hcCB3aXRoIHRoZSBiYWNrZ3JvdW5kLgorI2lmIFFUX0RFQlVH
X1JFQ0FDSEUKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVFcmFzZSIgPDwgdGhp
cyA8PCBtX3NpemUgPDwgYmFja2dyb3VuZDsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGVyYXNl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZWdpb24gJj0gUVJlZ2lvbigwLCAw
LCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsKKworICAgICAgICAvLyBJZiB3ZSBo
YXZlIHNvbWV0aGluZyB0byBkcmF3IGl0cyB0aW1lIHRvIGVyYXNlIGl0IGFuZCByZW5kZXIgdGhl
IGNvbnRlbnRzLgorICAgICAgICBpZiAoIXJlZ2lvbi5pc0VtcHR5KCkpIHsKKyNpZiBRVF9ERUJV
R19DQUNIRURVTVAKKyAgICAgICAgICAgIHN0YXRpYyBpbnQgcmVjYWNoZUNvdW50ID0gMDsKKyAg
ICAgICAgICAgICsrcmVjYWNoZUNvdW50OworICAgICAgICAgICAgcURlYnVnKCkgPDwgIioqKiog
Q0FDSEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8
PCBtX3NpemU7CisgICAgICAgICAgICBwaXhtYXAuc2F2ZShRU3RyaW5nKCkuc3ByaW50ZigiL3Rt
cC8lMDVkX0EucG5nIiwgcmVjYWNoZUNvdW50KSwgIlBORyIpOworI2VuZGlmCisKKyAgICAgICAg
ICAgIFFQYWludGVyIHBhaW50ZXIoJnBpeG1hcCk7CisgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHQgZ2MoJnBhaW50ZXIpOworCisgICAgICAgICAgICBwYWludGVyLnNldENsaXBSZWdpb24ocmVn
aW9uKTsKKworICAgICAgICAgICAgaWYgKCFlcmFzZWQpIHsgLy8gRXJhc2UgdGhlIGFyZWEgaW4g
Y2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8uCisgICAgICAgICAgICAgICAgcGFpbnRlci5z
ZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CisgICAg
ICAgICAgICAgICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24uYm91bmRpbmdSZWN0KCksIFF0Ojp0
cmFuc3BhcmVudCk7CiAKLSAgICBRUGFpbnRlciBwYWludGVyKCZwaXhtYXApOwotICAgIEdyYXBo
aWNzQ29udGV4dCBnYygmcGFpbnRlcik7CisjaWYgUVRfREVCVUdfQ0FDSEVEVU1QCisgICAgICAg
ICAgICAgICAgcURlYnVnKCkgPDwgIioqKiogQ0FDSEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwg
dGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3NpemU7CisgICAgICAgICAgICAgICAgcGl4
bWFwLnNhdmUoUVN0cmluZygpLnNwcmludGYoIi90bXAvJTA1ZF9CLnBuZyIsIHJlY2FjaGVDb3Vu
dCksICJQTkciKTsKKyNlbmRpZgorICAgICAgICAgICAgfQogCi0gICAgLy8gQ2xlYXIgdGhlIGFy
ZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8KLSAgICBwYWludGVyLnNldENvbXBv
c2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0NsZWFyKTsKLSAgICBwYWludGVy
LmZpbGxSZWN0KHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSwgUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAg
ICAgICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGludG8gdGhlIGNhY2hlLgorICAg
ICAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9u
TW9kZV9Tb3VyY2VPdmVyKTsKKyAgICAgICAgICAgIG1fbGF5ZXItPnBhaW50R3JhcGhpY3NMYXll
ckNvbnRlbnRzKGdjLCByZWdpb24uYm91bmRpbmdSZWN0KCkpOworICAgICAgICAgICAgcGFpbnRl
ci5lbmQoKTsKIAotICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGludG8gdGhlIGNh
Y2hlCi0gICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9u
TW9kZV9Tb3VyY2VPdmVyKTsKLSAgICBtX2xheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250ZW50
cyhnYywgcmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKLSAgICBwYWludGVyLmVuZCgpOworI2lmIFFU
X0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgcURlYnVnKCkgPDwgIioqKiogQ0FDSEVEVU1Q
IiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBtX3NpemU7
CisgICAgICAgICAgICBwaXhtYXAuc2F2ZShRU3RyaW5nKCkuc3ByaW50ZigiL3RtcC8lMDVkX0Mu
cG5nIiwgcmVjYWNoZUNvdW50KSwgIlBORyIpOworI2VuZGlmCisgICAgICAgICAgICBpZiAoc2Vu
ZFVwZGF0ZSkKKyAgICAgICAgICAgICAgICB1cGRhdGUocmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsK
KyAgICAgICAgfQorICAgICAgICBtX2JhY2tpbmdTdG9yZS5zaXplID0gbV9zaXplOyAvLyBTdG9y
ZSB0aGUgdXNlZCBzaXplIG9mIHRoZSBwaXhtYXAuCisgICAgfQogCi0gICAgbV9iYWNraW5nU3Rv
cmVLZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOworICAgIC8vIEZpbmFsbHkgaW5z
ZXJ0IGludG8gdGhlIGNhY2hlIGFuZCBhbGxvdyBhIHJlZmVyZW5jZSB0aGVyZS4KKyAgICBtX2Jh
Y2tpbmdTdG9yZS5rZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOwogICAgIHJldHVy
biBwaXhtYXA7CiB9CiAKQEAgLTQ4OSw3ICs1NzEsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdElt
cGw6OnBhaW50KFFQYWludGVyKiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0
ZQogICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byByZWNhY2hlLCBpbiBjYXNlIHdlIHRy
eSB0byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJnZWQgKGUuZy4gaWYgaXQgd2FzIGZ1bGwp
LgogICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmVLZXks
ICZiYWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5zaXplKCkgIT0gbV9zaXplLnRvU2l6ZSgp
KQogICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZSA9IHJlY2FjaGUoUVJlZ2lvbihtX3N0YXRl
LmNvbnRlbnRzUmVjdCkpOwotICAgICAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCgwLCAwLCBi
YWNraW5nU3RvcmUpOworICAgICAgICAgICAgY29uc3QgUVJlY3RGIGJvdW5kcygwLCAwLCBtX2Jh
Y2tpbmdTdG9yZS5zaXplLndpZHRoKCksIG1fYmFja2luZ1N0b3JlLnNpemUuaGVpZ2h0KCkpOwor
ICAgICAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcChib3VuZHMsIGJhY2tpbmdTdG9yZSwgYm91
bmRzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFBpeG1hcENvbnRlbnRU
eXBlOgpAQCAtNjc0LDExICs3NTcsMTMgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVz
aENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zvcm0KICAgICBl
bHNlCiAjZW5kaWYKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRGlzcGxheUNoYW5nZSkgeworI2lm
bmRlZiBRVF9HUkFQSElDU19MQVlFUl9OT19SRUNBQ0hFX09OX0RJU1BMQVlfQ0hBTkdFCiAgICAg
ICAgIC8vIFJlY2FjaGUgbm93OiBhbGwgdGhlIGNvbnRlbnQgaXMgcmVhZHkgYW5kIHdlIGRvbid0
IHdhbnQgdG8gd2FpdCB1bnRpbCB0aGUgcGFpbnQgZXZlbnQuCiAgICAgICAgIC8vIFdlIG9ubHkg
bmVlZCB0byBkbyB0aGlzIGZvciBIVE1MIGNvbnRlbnQsIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY2Fj
aGluZyBkaXJlY3RseSBjb21wb3NpdGVkCiAgICAgICAgIC8vIGNvbnRlbnQgbGlrZSBpbWFnZXMg
b3Igc29saWQgcmVjdGFuZ2xlcy4KICAgICAgICAgaWYgKG1fcGVuZGluZ0NvbnRlbnQuY29udGVu
dFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKQogICAgICAgICAgICAgcmVjYWNoZShtX3BlbmRpbmdD
b250ZW50LnJlZ2lvblRvVXBkYXRlKTsKKyNlbmRpZgogICAgICAgICB1cGRhdGUobV9wZW5kaW5n
Q29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CiAgICAgICAgIG1fcGVuZGlu
Z0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CiAgICAgfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59483</attachid>
            <date>2010-06-23 00:03:26 -0700</date>
            <delta_ts>2010-06-25 12:31:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40378-20100623000327.patch</filename>
            <type>text/plain</type>
            <size>9018</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjliMTY3OTZiZGI4ZDIwYTgxNjI0MTk0OGU3MGYwMTk5ODYzOTRiOC4uYjY0MjYzODk3YjQ0ZmU5
MjI0YzllNzQ4ZjgyMjVjZDBkNDE0NjhjMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNi0wOSAgU2Ft
IE1hZ251c29uICA8c21hZ251c29uQG5ldGZsaXguY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gV2hlbiBhbnkgZ2VvbWV0cnkgY2hhbmdl
IGhhcHBlbnMgdG8gYSBub2RlIGl0IHdpbGwgcmVzaXplIHRoZQorICAgICAgICBiYWNraW5nIGNh
Y2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3
OAorCisgICAgICAgIENvbnRpbnVlIHRvIGdyb3cgdGhlIGNhY2hlLCBidXQgbmV2ZXIgdG9zcyBp
dC4gV2hlbiB0aGUgcGl4bWFwCisgICAgICAgIGNhY2hlIGdldHMgdG9vIGJpZyBpdCB3aWxsIGJl
IGxvc3QgYW5kIGNyZWF0ZWQgYXQgdGhlIHJpZ2h0IHNpemUKKyAgICAgICAgbmV4dCB0aW1lLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0czogdGhpcyBpcyBhbiBvcHRpbWl6YXRpb24uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyUXRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMpOgorCiAyMDEwLTA2LTIxICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByNjE1ODUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0dyYXBoaWNzTGF5ZXJRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBo
aWNzTGF5ZXJRdC5jcHAKaW5kZXggOGVkMGQ4OTY0NTgxMzg3OWVjMjI3MDBjZjJhMDJhMmJhODU0
NWIyYy4uM2JiNjQyMWMyZjA5MDU4NTVmMDNiMzJjNjE2ZTg4Mzc5MzFjYTVhNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcApAQCAtNDEs
NiArNDEsMTAgQEAKICNpbmNsdWRlIDxRdEd1aS9xcGl4bWFwY2FjaGUuaD4KICNpbmNsdWRlIDxR
dEd1aS9xc3R5bGVvcHRpb24uaD4KIAorCisjZGVmaW5lIFFUX0RFQlVHX1JFQ0FDSEUgMAorI2Rl
ZmluZSBRVF9ERUJVR19DQUNIRURVTVAgMAorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZm5k
ZWYgUVRfTk9fR1JBUEhJQ1NFRkZFQ1QKQEAgLTIyNSw3ICsyMjksMTAgQEAgcHVibGljOgogICAg
IGludCBtX2NoYW5nZU1hc2s7CiAKICAgICBRU2l6ZUYgbV9zaXplOwotICAgIFFQaXhtYXBDYWNo
ZTo6S2V5IG1fYmFja2luZ1N0b3JlS2V5OworICAgIHN0cnVjdCB7CisgICAgICAgIFFQaXhtYXBD
YWNoZTo6S2V5IGtleTsKKyAgICAgICAgUVNpemVGIHNpemU7CisgICAgfSBtX2JhY2tpbmdTdG9y
ZTsKICNpZm5kZWYgUVRfTk9fQU5JTUFUSU9OCiAgICAgUUxpc3Q8UVdlYWtQb2ludGVyPFFBYnN0
cmFjdEFuaW1hdGlvbj4gPiBtX2FuaW1hdGlvbnM7CiAjZW5kaWYKQEAgLTMzOSwzNiArMzQ2LDEw
OSBAQCBjb25zdCBHcmFwaGljc0xheWVyUXRJbXBsKiBHcmFwaGljc0xheWVyUXRJbXBsOjpyb290
TGF5ZXIoKSBjb25zdAogCiBRUGl4bWFwIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnJlY2FjaGUoY29u
c3QgUVJlZ2lvbiYgcmVnaW9uVG9VcGRhdGUpCiB7Ci0gICAgaWYgKCFtX2xheWVyLT5kcmF3c0Nv
bnRlbnQoKSB8fCBtX3NpemUuaXNFbXB0eSgpIHx8IW1fc2l6ZS5pc1ZhbGlkKCkpCisgICAgaWYg
KCFtX2xheWVyLT5kcmF3c0NvbnRlbnQoKSB8fCBtX3NpemUuaXNFbXB0eSgpIHx8ICFtX3NpemUu
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCi0gICAgUVJlZ2lvbiByZWdp
b24gPSByZWdpb25Ub1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKKyAgICBRUmVnaW9uIHJl
Z2lvbiA9IHJlZ2lvblRvVXBkYXRlOworICAgIGlmIChRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNr
aW5nU3RvcmUua2V5LCAmcGl4bWFwKSkgeworICAgICAgICBpZiAocmVnaW9uLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJldHVybiBwaXhtYXA7CisgICAgICAgIFFQaXhtYXBDYWNoZTo6cmVtb3Zl
KG1fYmFja2luZ1N0b3JlLmtleSk7IC8vIFJlbW92ZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBwaXht
YXAgaW4gdGhlIGNhY2hlIHRvIGF2b2lkIGEgZGV0YWNoLgorICAgIH0KIAotICAgIC8vIFdlIG1p
Z2h0IGJlIGRyYXdpbmcgaW50byBhbiBleGlzdGluZyBjYWNoZS4KLSAgICBpZiAoIVFQaXhtYXBD
YWNoZTo6ZmluZChtX2JhY2tpbmdTdG9yZUtleSwgJnBpeG1hcCkpCi0gICAgICAgIHJlZ2lvbiA9
IFFSZWdpb24oUVJlY3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSkpOwor
ICAgIHsKKyAgICAgICAgYm9vbCBlcmFzZWQgPSBmYWxzZTsKIAotICAgIGlmIChtX3NpemUgIT0g
cGl4bWFwLnNpemUoKSkgewotICAgICAgICBwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50b1NpemUo
KSk7Ci0gICAgICAgIGlmICghbV9sYXllci0+Y29udGVudHNPcGFxdWUoKSkKLSAgICAgICAgICAg
IHBpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7Ci0gICAgICAgIG1fcGVuZGluZ0NvbnRlbnQu
cmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgwLCAwKSwgbV9zaXplLnRvU2l6
ZSgpKSk7Ci0gICAgfQorICAgICAgICAvLyBJZiB0aGUgcGl4bWFwIGlzIG5vdCBpbiB0aGUgY2Fj
aGUgb3IgdGhlIHZpZXcgaGFzIGdyb3duIHNpbmNlIGxhc3QgY2FjaGVkLgorICAgICAgICBpZiAo
cGl4bWFwLmlzTnVsbCgpIHx8IG1fc2l6ZSAhPSBtX2JhY2tpbmdTdG9yZS5zaXplKSB7CisjaWYg
UVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgaWYgKHBpeG1hcC5pc051bGwoKSkKKyAgICAg
ICAgICAgICAgICBxRGVidWcoKSA8PCAiQ2FjaGVNaXNzIiA8PCB0aGlzIDw8IG1fc2l6ZTsKKyNl
bmRpZgorICAgICAgICAgICAgYm9vbCBmaWxsID0gdHJ1ZTsKKyAgICAgICAgICAgIFFSZWdpb24g
bmV3UmVnaW9uOworICAgICAgICAgICAgUVBpeG1hcCBvbGRQaXhtYXAgPSBwaXhtYXA7CisKKyAg
ICAgICAgICAgIC8vIElmIHRoZSBwaXhtYXAgaXMgdHdvIHNtYWxsIHRvIGhvbGQgdGhlIHZpZXcg
Y29udGVudHMgd2UgZW5sYXJnZSwgb3RoZXJ3aXNlIGp1c3QgdXNlIHRoZSBvbGQgKGxhcmdlKSBw
aXhtYXAuCisgICAgICAgICAgICBpZiAocGl4bWFwLndpZHRoKCkgPCBtX3NpemUud2lkdGgoKSB8
fCBwaXhtYXAuaGVpZ2h0KCkgPCBtX3NpemUuaGVpZ2h0KCkpIHsKKyNpZiBRVF9ERUJVR19SRUNB
Q0hFCisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIkNhY2hlR3JvdyIgPDwgdGhpcyA8PCBt
X3NpemU7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBwaXhtYXAgPSBRUGl4bWFwKG1fc2l6ZS50
b1NpemUoKSk7CisgICAgICAgICAgICAgICAgcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFyZW50KTsK
KyAgICAgICAgICAgICAgICBuZXdSZWdpb24gPSBRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgp
LCBtX3NpemUuaGVpZ2h0KCkpOworICAgICAgICAgICAgfQorCisjaWYgMQorICAgICAgICAgICAg
Ly8gQmxpdCB0aGUgY29udGVudHMgb2Ygb2xkUGl4bWFwIGJhY2sgaW50byB0aGUgY2FjaGVkIHBp
eG1hcCBhcyB3ZSBhcmUganVzdCBhZGRpbmcgbmV3IHBpeGVscy4KKyAgICAgICAgICAgIGlmICgh
b2xkUGl4bWFwLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgUVJlZ2lvbiBjbGVh
blJlZ2lvbiA9IChRUmVnaW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIFFSZWdpb24o
MCwgMCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5zaXplLmhl
aWdodCgpKSkgLSByZWdpb25Ub1VwZGF0ZTsKKyAgICAgICAgICAgICAgICBpZiAoIWNsZWFuUmVn
aW9uLmlzRW1wdHkoKSkgeworI2lmIFFUX0RFQlVHX1JFQ0FDSEUKKyAgICAgICAgICAgICAgICAg
ICAgcURlYnVnKCkgPDwgIkNhY2hlQmxpdCIgPDwgdGhpcyA8PCBjbGVhblJlZ2lvbjsKKyNlbmRp
ZgorICAgICAgICAgICAgICAgICAgICBjb25zdCBRUmVjdCBjbGVhbkJvdW5kcyhjbGVhblJlZ2lv
bi5ib3VuZGluZ1JlY3QoKSk7CisgICAgICAgICAgICAgICAgICAgIFFQYWludGVyIHBhaW50ZXIo
JnBpeG1hcCk7CisgICAgICAgICAgICAgICAgICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRpb25Nb2Rl
KFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAg
cGFpbnRlci5kcmF3UGl4bWFwKGNsZWFuQm91bmRzLnRvcExlZnQoKSwgb2xkUGl4bWFwLCBjbGVh
bkJvdW5kcyk7CisgICAgICAgICAgICAgICAgICAgIG5ld1JlZ2lvbiAtPSBjbGVhblJlZ2lvbjsK
KyAgICAgICAgICAgICAgICAgICAgZmlsbCA9IGZhbHNlOyAvLyBXZSBjYW5ub3QganVzdCBmaWxs
IHRoZSBwaXhtYXAuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZFBpeG1h
cCA9IFFQaXhtYXAoKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICAgICAgcmVnaW9u
ICs9IG5ld1JlZ2lvbjsKKyAgICAgICAgICAgIGlmIChmaWxsICYmICFyZWdpb24uaXNFbXB0eSgp
KSB7IC8vIENsZWFyIHRoZSBlbnRpcmUgcGl4bWFwIHdpdGggdGhlIGJhY2tncm91bmQuCisjaWYg
UVRfREVCVUdfUkVDQUNIRQorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJDYWNoZUVyYXNl
IiA8PCB0aGlzIDw8IG1fc2l6ZSA8PCBiYWNrZ3JvdW5kOworI2VuZGlmCisgICAgICAgICAgICAg
ICAgZXJhc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBwaXhtYXAuZmlsbChRdDo6dHJhbnNw
YXJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlZ2lvbiAmPSBRUmVn
aW9uKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOworCisgICAgICAgIC8v
IElmIHdlIGhhdmUgc29tZXRoaW5nIHRvIGRyYXcgaXRzIHRpbWUgdG8gZXJhc2UgaXQgYW5kIHJl
bmRlciB0aGUgY29udGVudHMuCisgICAgICAgIGlmICghcmVnaW9uLmlzRW1wdHkoKSkgeworI2lm
IFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgc3RhdGljIGludCByZWNhY2hlQ291bnQg
PSAwOworICAgICAgICAgICAgKytyZWNhY2hlQ291bnQ7CisgICAgICAgICAgICBxRGVidWcoKSA8
PCAiKioqKiBDQUNIRURVTVAiIDw8IHJlY2FjaGVDb3VudCA8PCB0aGlzIDw8IG1fbGF5ZXIgPDwg
cmVnaW9uIDw8IG1fc2l6ZTsKKyAgICAgICAgICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJp
bnRmKCIvdG1wLyUwNWRfQS5wbmciLCByZWNhY2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKwor
ICAgICAgICAgICAgUVBhaW50ZXIgcGFpbnRlcigmcGl4bWFwKTsKKyAgICAgICAgICAgIEdyYXBo
aWNzQ29udGV4dCBnYygmcGFpbnRlcik7CisKKyAgICAgICAgICAgIHBhaW50ZXIuc2V0Q2xpcFJl
Z2lvbihyZWdpb24pOwogCi0gICAgUVBhaW50ZXIgcGFpbnRlcigmcGl4bWFwKTsKLSAgICBHcmFw
aGljc0NvbnRleHQgZ2MoJnBhaW50ZXIpOworICAgICAgICAgICAgaWYgKCFlcmFzZWQpIHsgLy8g
RXJhc2UgdGhlIGFyZWEgaW4gY2FjaGUgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8uCisgICAgICAg
ICAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9u
TW9kZV9DbGVhcik7CisgICAgICAgICAgICAgICAgcGFpbnRlci5maWxsUmVjdChyZWdpb24uYm91
bmRpbmdSZWN0KCksIFF0Ojp0cmFuc3BhcmVudCk7CiAKLSAgICAvLyBDbGVhciB0aGUgYXJlYSBp
biBjYWNoZSB0aGF0IHdlJ3JlIGRyYXdpbmcgaW50bwotICAgIHBhaW50ZXIuc2V0Q29tcG9zaXRp
b25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfQ2xlYXIpOwotICAgIHBhaW50ZXIuZmls
bFJlY3QocmVnaW9uLmJvdW5kaW5nUmVjdCgpLCBRdDo6dHJhbnNwYXJlbnQpOworI2lmIFFUX0RF
QlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIqKioqIENBQ0hFRFVN
UCIgPDwgcmVjYWNoZUNvdW50IDw8IHRoaXMgPDwgbV9sYXllciA8PCByZWdpb24gPDwgbV9zaXpl
OworICAgICAgICAgICAgICAgIHBpeG1hcC5zYXZlKFFTdHJpbmcoKS5zcHJpbnRmKCIvdG1wLyUw
NWRfQi5wbmciLCByZWNhY2hlQ291bnQpLCAiUE5HIik7CisjZW5kaWYKKyAgICAgICAgICAgIH0K
IAotICAgIC8vIFJlbmRlciB0aGUgYWN0dWFsIGNvbnRlbnRzIGludG8gdGhlIGNhY2hlCi0gICAg
cGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3Vy
Y2VPdmVyKTsKLSAgICBtX2xheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhnYywgcmVn
aW9uLmJvdW5kaW5nUmVjdCgpKTsKLSAgICBwYWludGVyLmVuZCgpOworICAgICAgICAgICAgLy8g
UmVuZGVyIHRoZSBhY3R1YWwgY29udGVudHMgaW50byB0aGUgY2FjaGUuCisgICAgICAgICAgICBw
YWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJj
ZU92ZXIpOworICAgICAgICAgICAgbV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMo
Z2MsIHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CisgICAgICAgICAgICBwYWludGVyLmVuZCgpOwog
Ci0gICAgbV9iYWNraW5nU3RvcmVLZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOwor
I2lmIFFUX0RFQlVHX0NBQ0hFRFVNUAorICAgICAgICAgICAgcURlYnVnKCkgPDwgIioqKiogQ0FD
SEVEVU1QIiA8PCByZWNhY2hlQ291bnQgPDwgdGhpcyA8PCBtX2xheWVyIDw8IHJlZ2lvbiA8PCBt
X3NpemU7CisgICAgICAgICAgICBwaXhtYXAuc2F2ZShRU3RyaW5nKCkuc3ByaW50ZigiL3RtcC8l
MDVkX0MucG5nIiwgcmVjYWNoZUNvdW50KSwgIlBORyIpOworI2VuZGlmCisgICAgICAgIH0KKyAg
ICAgICAgbV9iYWNraW5nU3RvcmUuc2l6ZSA9IG1fc2l6ZTsgLy8gU3RvcmUgdGhlIHVzZWQgc2l6
ZSBvZiB0aGUgcGl4bWFwLgorICAgIH0KKworICAgIC8vIEZpbmFsbHkgaW5zZXJ0IGludG8gdGhl
IGNhY2hlIGFuZCBhbGxvdyBhIHJlZmVyZW5jZSB0aGVyZS4KKyAgICBtX2JhY2tpbmdTdG9yZS5r
ZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOwogICAgIHJldHVybiBwaXhtYXA7CiB9
CiAKQEAgLTQ4Nyw4ICs1NjcsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQ
YWludGVyKiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZQogICAgICAgICBp
ZiAobV9zdGF0ZS5kcmF3c0NvbnRlbnQpIHsKICAgICAgICAgICAgIFFQaXhtYXAgYmFja2luZ1N0
b3JlOwogICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byByZWNhY2hlLCBpbiBjYXNlIHdl
IHRyeSB0byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJnZWQgKGUuZy4gaWYgaXQgd2FzIGZ1
bGwpLgotICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmVL
ZXksICZiYWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5zaXplKCkgIT0gbV9zaXplLnRvU2l6
ZSgpKQorICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmUu
a2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9IG1fc2l6ZS50b1Np
emUoKSkKICAgICAgICAgICAgICAgICBiYWNraW5nU3RvcmUgPSByZWNhY2hlKFFSZWdpb24obV9z
dGF0ZS5jb250ZW50c1JlY3QpKTsKKyAgICAgICAgICAgIGNvbnN0IFFSZWN0RiBib3VuZHMoMCwg
MCwgbV9iYWNraW5nU3RvcmUuc2l6ZS53aWR0aCgpLCBtX2JhY2tpbmdTdG9yZS5zaXplLmhlaWdo
dCgpKTsKICAgICAgICAgICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoMCwgMCwgYmFja2luZ1N0b3Jl
KTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTY3NCwxMSArNzU1LDEzIEBAIHZvaWQg
R3JhcGhpY3NMYXllclF0SW1wbDo6Zmx1c2hDaGFuZ2VzKGJvb2wgcmVjdXJzaXZlLCBib29sIGZv
cmNlVXBkYXRlVHJhbnNmb3JtCiAgICAgZWxzZQogI2VuZGlmCiAgICAgaWYgKG1fY2hhbmdlTWFz
ayAmIERpc3BsYXlDaGFuZ2UpIHsKKyNpZm5kZWYgUVRfR1JBUEhJQ1NfTEFZRVJfTk9fUkVDQUNI
RV9PTl9ESVNQTEFZX0NIQU5HRQogICAgICAgICAvLyBSZWNhY2hlIG5vdzogYWxsIHRoZSBjb250
ZW50IGlzIHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhaW50IGV2
ZW50LgogICAgICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gZG8gdGhpcyBmb3IgSFRNTCBjb250ZW50
LCB0aGVyZSdzIG5vIHBvaW50IGluIGNhY2hpbmcgZGlyZWN0bHkgY29tcG9zaXRlZAogICAgICAg
ICAvLyBjb250ZW50IGxpa2UgaW1hZ2VzIG9yIHNvbGlkIHJlY3RhbmdsZXMuCiAgICAgICAgIGlm
IChtX3BlbmRpbmdDb250ZW50LmNvbnRlbnRUeXBlID09IEhUTUxDb250ZW50VHlwZSkKICAgICAg
ICAgICAgIHJlY2FjaGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSk7CisjZW5kaWYK
ICAgICAgICAgdXBkYXRlKG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUuYm91bmRpbmdS
ZWN0KCkpOwogICAgICAgICBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lv
bigpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>