<?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>104142</bug_id>
          
          <creation_ts>2012-12-05 11:06:13 -0800</creation_ts>
          <short_desc>[HTMLTemplateElement] Prevent first-level recursive &lt;template&gt; from resetting the implied context</short_desc>
          <delta_ts>2012-12-18 13:47:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103547</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rafael Weinstein">rafaelw</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>rafaelw</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>783918</commentid>
    <comment_count>0</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-12-05 11:06:13 -0800</bug_when>
    <thetext>Hey guys,

Here&apos;s my take on resolving: https://www.w3.org/Bugs/Public/show_bug.cgi?id=20130

Is this a reasonable approach? If so, I&apos;ll update the spec, refer to it in this patch, then request formal review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783920</commentid>
    <comment_count>1</comment_count>
      <attachid>177796</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-12-05 11:09:29 -0800</bug_when>
    <thetext>Created attachment 177796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784390</commentid>
    <comment_count>2</comment_count>
      <attachid>177796</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 18:00:42 -0800</bug_when>
    <thetext>Comment on attachment 177796
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        This patch adds a &quot;stack&quot; (although the impl is just a map) which allows for retaining the chosen &quot;implied context&quot; for each template element.

I see, it is just a stack.  Is there a reason you used a HashMap rather than a Vector to implement the stack?  A Vector seems both more efficient and to be a clearer representation of a stack.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.h:237
&gt; +#if ENABLE(TEMPLATE_ELEMENT)
&gt; +    HashMap&lt;Element*, InsertionMode&gt; m_templateInsertionModes;
&gt; +#endif

Interesting!  Does this need to be a hashmap?  I would have expected just a Vector&lt;InsertionMode&gt; that we&apos;d push and pop in parallel with the stack of open elements.  (We can overwrite the top of the stack in processStartTag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784391</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 18:01:20 -0800</bug_when>
    <thetext>Yeah, this looks like a good way to resolve this issue (modulo implementation details).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785346</commentid>
    <comment_count>4</comment_count>
      <attachid>178095</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-06 15:45:57 -0800</bug_when>
    <thetext>Created attachment 178095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785348</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-06 15:46:36 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 177796 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177796&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        This patch adds a &quot;stack&quot; (although the impl is just a map) which allows for retaining the chosen &quot;implied context&quot; for each template element.
&gt; 
&gt; I see, it is just a stack.  Is there a reason you used a HashMap rather than a Vector to implement the stack?  A Vector seems both more efficient and to be a clearer representation of a stack.
&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.h:237
&gt; &gt; +#if ENABLE(TEMPLATE_ELEMENT)
&gt; &gt; +    HashMap&lt;Element*, InsertionMode&gt; m_templateInsertionModes;
&gt; &gt; +#endif
&gt; 
&gt; Interesting!  Does this need to be a hashmap?  I would have expected just a Vector&lt;InsertionMode&gt; that we&apos;d push and pop in parallel with the stack of open elements.  (We can overwrite the top of the stack in processStartTag.

Switched to a vector-as-stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785452</commentid>
    <comment_count>6</comment_count>
      <attachid>178095</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-06 17:25:53 -0800</bug_when>
    <thetext>Comment on attachment 178095
Patch

Should we assert that the stack is empty when we&apos;re done parsing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785499</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-06 18:03:22 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 178095 [details])
&gt; Should we assert that the stack is empty when we&apos;re done parsing?

Well, right now, it&apos;s not always empty. For example, in the fragment-parsing mode, it&apos;s always size 1 when we finish. And I haven&apos;t added code to, e.g., processEndOfFile to clear out the stack. But I am a little worried about it getting out of sync with the stack of open elements. If I were going to add such an assert, would it go in finished()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785550</commentid>
    <comment_count>8</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-12-06 19:18:31 -0800</bug_when>
    <thetext>Thanks for taking over this one as well.

FWIW, I&apos;m fine with what you guys decide here. The reason why I used a hashmap rather than a vector is that I was worried about maintaining a &apos;stack within a stack&apos;. In other words, its seems to me that that the only logical stack here is the stack of open elements and that the map was encoding a property which gets applied to each &lt;template&gt; encountered during parsing, but that properties lifetime is tied to a single invocation of the parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785989</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-07 10:56:56 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Thanks for taking over this one as well.
&gt; 
&gt; FWIW, I&apos;m fine with what you guys decide here. The reason why I used a hashmap rather than a vector is that I was worried about maintaining a &apos;stack within a stack&apos;. In other words, its seems to me that that the only logical stack here is the stack of open elements and that the map was encoding a property which gets applied to each &lt;template&gt; encountered during parsing, but that properties lifetime is tied to a single invocation of the parser.

For what it&apos;s worth, running the original (HashMap-based) patch in debug mode caused run-template.html to crash for me. I think there may be some issues with having to get ahold of the current template when wanting to find the current template insertion mode.

Perhaps we should integrate this enum stack directly into the element stack?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791837</commentid>
    <comment_count>10</comment_count>
      <attachid>179530</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-14 14:02:12 -0800</bug_when>
    <thetext>Created attachment 179530
Patch with better ASSERTs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793902</commentid>
    <comment_count>11</comment_count>
      <attachid>179530</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-18 12:03:21 -0800</bug_when>
    <thetext>Comment on attachment 179530
Patch with better ASSERTs

Seems reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793904</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-18 12:04:09 -0800</bug_when>
    <thetext>The review tool seems to have lost all my comments!?!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793906</commentid>
    <comment_count>13</comment_count>
      <attachid>179530</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-18 12:05:04 -0800</bug_when>
    <thetext>Comment on attachment 179530
Patch with better ASSERTs

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

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2517
&gt; +#if ENABLE(TEMPLATE_ELEMENT) &amp;&amp; !ASSERT_DISABLED

Why is this disabled in release?

&gt; LayoutTests/html5lib/resources/template.dat:847
&gt; +&lt;body&gt;&lt;template&gt;&lt;thead&gt;&lt;/thead&gt;&lt;template&gt;&lt;tr&gt;&lt;/tr&gt;&lt;/template&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tfoot&gt;&lt;/tfoot&gt;&lt;/template&gt;

Do we need additional tests (for misnested templates, etc)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793937</commentid>
    <comment_count>14</comment_count>
      <attachid>179530</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-18 12:27:48 -0800</bug_when>
    <thetext>Comment on attachment 179530
Patch with better ASSERTs

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

&gt;&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2517
&gt;&gt; +#if ENABLE(TEMPLATE_ELEMENT) &amp;&amp; !ASSERT_DISABLED
&gt; 
&gt; Why is this disabled in release?

I had this here since only an ASSERT depends on the fact that the vector is cleared before destruction. I was worried about performance, but I guess we&apos;ll take the hit anyway when we destroy the tree builder, so I may as well remove the disable-in-release thing.

&gt;&gt; LayoutTests/html5lib/resources/template.dat:847
&gt;&gt; +&lt;body&gt;&lt;template&gt;&lt;thead&gt;&lt;/thead&gt;&lt;template&gt;&lt;tr&gt;&lt;/tr&gt;&lt;/template&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tfoot&gt;&lt;/tfoot&gt;&lt;/template&gt;
&gt; 
&gt; Do we need additional tests (for misnested templates, etc)?

There are already some mis-nested examples in this file. Did you have particular test cases you had in mind?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793939</commentid>
    <comment_count>15</comment_count>
      <attachid>180004</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-18 12:28:41 -0800</bug_when>
    <thetext>Created attachment 180004
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793965</commentid>
    <comment_count>16</comment_count>
      <attachid>180004</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 13:07:38 -0800</bug_when>
    <thetext>Comment on attachment 180004
Patch for landing

Clearing flags on attachment: 180004

Committed r138059: &lt;http://trac.webkit.org/changeset/138059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793966</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 13:07:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794006</commentid>
    <comment_count>18</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-18 13:47:19 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; The review tool seems to have lost all my comments!?!

See https://bugs.webkit.org/show_bug.cgi?id=105252 .  I&apos;ve seen it too, but we need repro steps.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177796</attachid>
            <date>2012-12-05 11:09:29 -0800</date>
            <delta_ts>2012-12-06 15:45:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104142-20121205110654.patch</filename>
            <type>text/plain</type>
            <size>6778</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU0NDBlNjEwODkxOGJj
YjQwMDgxYjFkZGZkYjFkNTE5MGUyNmFjYy4uYTNhYTNjM2Q0OWEwMjU0OGJjMzYzMjM0NzE4YWMw
ZjY1YTYzZDMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEyLTA1ICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0hUTUxUZW1w
bGF0ZUVsZW1lbnRdIFByZXZlbnQgZmlyc3QtbGV2ZWwgcmVjdXJzaXZlIDx0ZW1wbGF0ZT4gZnJv
bSByZXNldHRpbmcgdGhlIGltcGxpZWQgY29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgInN0YWNrIiAoYWx0aG91
Z2ggdGhlIGltcGwgaXMganVzdCBhIG1hcCkgd2hpY2ggYWxsb3dzIGZvciByZXRhaW5pbmcgdGhl
IGNob3NlbiAiaW1wbGllZCBjb250ZXh0IiBmb3IgZWFjaCB0ZW1wbGF0ZSBlbGVtZW50LgorCisg
ICAgICAgIFRlc3RzIGFkZGVkIHRvIGh0bWw1bGliL3J1bi10ZW1wbGF0ZS5odG1sCisKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZUVuZFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRy
ZWVCdWlsZGVyKToKKwogMjAxMi0xMi0wNSAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRp
Z2lhLmNvbT4KIAogICAgICAgICBGaXggY29tcGlsYXRpb24gZm9yIFF0NS4wLjAgc3RhYmxlIGJy
YW5jaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
CmluZGV4IDY5NzRjNjRiZDUxNmZlOTc0MjhjNTRmYzlmMjVlODk4Y2E3OGFlMmYuLjBmM2U3YTMz
ZjMzMGYzZjJiZGVmNjg5MDhjN2M0MWNlYjdkMjBkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtOTY1LDYgKzk2NSw5IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogewogICAgIG1fdHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+YXBwZW5k
TWFya2VyKCk7CiAgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsKKyAgICBFbGVt
ZW50KiBjdXJyZW50VGVtcGxhdGUgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICBBU1NF
UlQoY3VycmVudFRlbXBsYXRlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSk7CisgICAgbV90ZW1w
bGF0ZUluc2VydGlvbk1vZGVzLnNldChjdXJyZW50VGVtcGxhdGUsIFRlbXBsYXRlQ29udGVudHNN
b2RlKTsKICAgICBzZXRJbnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKIH0KIApA
QCAtOTc3LDYgKzk4MCwxMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRl
RW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgbV90cmVlLmdlbmVyYXRlSW1wbGll
ZEVuZFRhZ3MoKTsKICAgICBpZiAoIW1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc0xvY2Fs
TmFtZSh0b2tlbi0+bmFtZSgpKSkKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisKKyAgICBF
bGVtZW50KiBjdXJyZW50VGVtcGxhdGUgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICBB
U1NFUlQoY3VycmVudFRlbXBsYXRlLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSk7CisgICAgbV90
ZW1wbGF0ZUluc2VydGlvbk1vZGVzLnJlbW92ZShjdXJyZW50VGVtcGxhdGUpOworCiAgICAgbV90
cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi0+bmFtZSgpKTsKICAgICBt
X3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFyVG9MYXN0TWFya2VyKCk7CiAg
ICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwpAQCAtMTQ0MSwxOCArMTQ0OSwy
NCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tl
biogdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBJbnNl
cnRpb25Nb2RlIGluc2VydGlvbk1vZGUgPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZTsKICAgICAgICAg
aWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCi0gICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEluRnJhbWVzZXRNb2RlKTsKKyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJbkZyYW1l
c2V0TW9kZTsKICAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBjb2xUYWcpCi0gICAg
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsKKyAgICAgICAgICAg
IGluc2VydGlvbk1vZGUgPSBJbkNvbHVtbkdyb3VwTW9kZTsKICAgICAgICAgZWxzZSBpZiAoaXND
YXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1RhYmxlQm9keUNvbnRl
eHRUYWcodG9rZW4tPm5hbWUoKSkpCi0gICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFi
bGVNb2RlKTsKKyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJblRhYmxlTW9kZTsKICAgICAg
ICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSB0clRhZykKLSAgICAgICAgICAgIHNldEluc2Vy
dGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJ
blRhYmxlQm9keU1vZGU7CiAgICAgICAgIGVsc2UgaWYgKGlzVGFibGVDZWxsQ29udGV4dFRhZyh0
b2tlbi0+bmFtZSgpKSkKLSAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Sb3dNb2RlKTsK
KyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJblJvd01vZGU7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisgICAgICAgICAgICBpbnNl
cnRpb25Nb2RlID0gSW5Cb2R5TW9kZTsKKworICAgICAgICBFbGVtZW50KiBjdXJyZW50VGVtcGxh
dGUgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgQVNTRVJUKGN1cnJlbnRUZW1w
bGF0ZS0+aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpOworICAgICAgICBtX3RlbXBsYXRlSW5zZXJ0
aW9uTW9kZXMuc2V0KGN1cnJlbnRUZW1wbGF0ZSwgaW5zZXJ0aW9uTW9kZSk7CisgICAgICAgIHNl
dEluc2VydGlvbk1vZGUoaW5zZXJ0aW9uTW9kZSk7CiAKICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFn
KHRva2VuKTsKICNlbHNlCkBAIC0xNjQxLDkgKzE2NTUsOCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgICAgICAgICBpdGVtID0g
SFRNTFN0YWNrSXRlbTo6Y3JlYXRlKG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50KCks
IEhUTUxTdGFja0l0ZW06Okl0ZW1Gb3JDb250ZXh0RWxlbWVudCk7CiAgICAgICAgIH0KICNpZiBF
TkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vd3d3Lncz
Lm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMzAgKHNob3VsZCA8dGVtcGxhdGU+
IGNsZWFyIHRoZSAiaW1wbGllZCBjb250ZXh0IGVsZW1lbnQiLgogICAgICAgICBpZiAoaXRlbS0+
aGFzVGFnTmFtZSh0ZW1wbGF0ZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9u
TW9kZShUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0
aW9uTW9kZShtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMuZ2V0KGl0ZW0tPmVsZW1lbnQoKSkpOwog
I2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpIHsKICAgICAg
ICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IDIxM2U3ZTBiZTM2ZjM0
NWQ4MzRhY2JlNzRmMmVlMWJlNjBjNjJiNTIuLjY1ZTA5NjQ5ZDFjZDZlNjI4ZjZjYjM4NDhjODRl
N2M1ZDQwZWMxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oCkBAIC0yMzIsNiArMjMyLDEwIEBAIHByaXZhdGU6CiAgICAgLy8gaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5o
dG1sI29yaWdpbmFsLWluc2VydGlvbi1tb2RlCiAgICAgSW5zZXJ0aW9uTW9kZSBtX29yaWdpbmFs
SW5zZXJ0aW9uTW9kZTsKIAorI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIEhhc2hN
YXA8RWxlbWVudCosIEluc2VydGlvbk1vZGU+IG1fdGVtcGxhdGVJbnNlcnRpb25Nb2RlczsKKyNl
bmRpZgorCiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0aW9uLmh0bWwjcGVuZGluZy10YWJsZS1jaGFyYWN0
ZXItdG9rZW5zCiAgICAgU3RyaW5nQnVpbGRlciBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnM7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMWRjNjg4MGMxMTVlNDQzYmU3NTlkYzRlM2U0NDJiNzAwNWQwN2RkLi4zNWVjNDAx
ODQzYjIzNGYzOWY2MjNkZDA4ZjVjMjM0ODExMDdkNDVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMTItMDUgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbSFRNTFRlbXBsYXRlRWxlbWVudF0gUHJldmVudCBmaXJzdC1sZXZlbCByZWN1cnNp
dmUgPHRlbXBsYXRlPiBmcm9tIHJlc2V0dGluZyB0aGUgaW1wbGllZCBjb250ZXh0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxNDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IHRoYXQg
dGhlIG9yaWdpbmFsIHRlbXBsYXRlIGNvbnRleHQgaXMgcmV0YWluZWQgYWZ0ZXIgaW5uZXIgdGVt
cGxhdGUuCisKKyAgICAgICAgKiBodG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0OgorCiAy
MDEyLTEyLTA1ICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdW0dUS10gTGlzdCB2YWx1ZSByZXNwb25zZSBoZWFkZXJzIGFy
ZSBub3QgaGFuZGxlZCBpbiBSZXNwb3VyY2VSZXNwb25zZSAobGlic291cCBzcGVjaWZpYykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9M
YXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CmluZGV4IDFiYWU4MWVm
ZGRmZGM0ZDhmODY3NzFjNjJjNGExMzk3MjQwMmJhOGIuLmZkYzI0OWIxMzMxNmRlMjc3NjViOWRl
NzExYjc1ZjcwNDhkY2Y2ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291
cmNlcy90ZW1wbGF0ZS5kYXQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3Rl
bXBsYXRlLmRhdApAQCAtODQwLDQgKzg0MCwyMiBAQAogfCAgICAgICAgIDx0cj4KIHwgICAgICAg
ICA8dGVtcGxhdGU+CiB8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKLXwgICAgICAgICA8
dGQ+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRl
bXBsYXRlPjx0aGVhZD48L3RoZWFkPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0cj48
L3RyPjx0Zm9vdD48L3Rmb290PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGZvb3Q+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178095</attachid>
            <date>2012-12-06 15:45:57 -0800</date>
            <delta_ts>2012-12-14 14:02:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104142-20121206154321.patch</filename>
            <type>text/plain</type>
            <size>8089</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiZGVkNDBhMzg5N2Yw
MGIyODU3NzIwMjVlZjc0MTkwZmZhNjlhMC4uYmNhZTYwMzJmNmZkOTY2MjdmNDcxOTE1OGIzOGU2
MTg2MGY5MWE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEyLTA2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtIVE1MVGVtcGxhdGVFbGVt
ZW50XSBQcmV2ZW50IGZpcnN0LWxldmVsIHJlY3Vyc2l2ZSA8dGVtcGxhdGU+IGZyb20gcmVzZXR0
aW5nIHRoZSBpbXBsaWVkIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHN0YWNrIG9mIEluc2VydGlvbk1vZGVz
IHJldGFpbnMgdGhlIGNob3NlbgorICAgICAgICAiaW1wbGllZCBjb250ZXh0IiBmb3IgZWFjaCB0
ZW1wbGF0ZSBlbGVtZW50LgorCisgICAgICAgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgUmFmYWVsIFdl
aW5zdGVpbi4KKworICAgICAgICBUZXN0cyBhZGRlZCB0byBodG1sNWxpYi9ydW4tdGVtcGxhdGUu
aHRtbAorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVGVtcGxhdGVFbmRUYWcpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVs
eSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgIChI
VE1MVHJlZUJ1aWxkZXIpOgorCiAyMDEyLTEyLTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM2
ODcxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
aW5kZXggNjk3NGM2NGJkNTE2ZmU5NzQyOGM1NGZjOWYyNWU4OThjYTc4YWUyZi4uMGMxZTM2MDZh
NDU5ODBhMGU0ZmQyZmNiNTg5NGVkOTYzMDVmYzRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIEhUTUxU
cmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyLCBE
b2N1bWVudEZyYWdtZW50KiBmCiAgICAgICAgIC8vIEZvciBlZmZpY2llbmN5LCB3ZSBza2lwIHN0
ZXAgNC4yICgiTGV0IHJvb3QgYmUgYSBuZXcgaHRtbCBlbGVtZW50IHdpdGggbm8gYXR0cmlidXRl
cyIpCiAgICAgICAgIC8vIGFuZCBpbnN0ZWFkIHVzZSB0aGUgRG9jdW1lbnRGcmFnbWVudCBhcyBh
IHJvb3Qgbm9kZS4KICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wdXNoUm9vdE5vZGUo
SFRNTFN0YWNrSXRlbTo6Y3JlYXRlKGZyYWdtZW50LCBIVE1MU3RhY2tJdGVtOjpJdGVtRm9yRG9j
dW1lbnRGcmFnbWVudE5vZGUpKTsKKworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAg
ICAgICBpZiAoY29udGV4dEVsZW1lbnQtPmhhc0xvY2FsTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAg
ICAgICAgICBtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMuYXBwZW5kKFRlbXBsYXRlQ29udGVudHNN
b2RlKTsKKyNlbmRpZgorCiAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHko
KTsKICAgICAgICAgbV90cmVlLnNldEZvcm0oY2xvc2VzdEZvcm1BbmNlc3Rvcihjb250ZXh0RWxl
bWVudCkpOwogICAgIH0KQEAgLTk2NSw2ICs5NzEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1RlbXBsYXRlU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBt
X3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtlcigpOwogICAgIG1f
dHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CisgICAgbV90ZW1wbGF0ZUluc2VydGlvbk1v
ZGVzLmFwcGVuZChUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShU
ZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CiB9CiAKQEAgLTk3Nyw2ICs5ODQsMTAgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZUVuZFRhZyhBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7CiAgICAgaWYgKCFtX3RyZWUu
Y3VycmVudFN0YWNrSXRlbSgpLT5oYXNMb2NhbE5hbWUodG9rZW4tPm5hbWUoKSkpCiAgICAgICAg
IHBhcnNlRXJyb3IodG9rZW4pOworCisgICAgQVNTRVJUKCFtX3RlbXBsYXRlSW5zZXJ0aW9uTW9k
ZXMuaXNFbXB0eSgpKTsKKyAgICBtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMucmVtb3ZlTGFzdCgp
OworCiAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi0+bmFt
ZSgpKTsKICAgICBtX3RyZWUuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCktPmNsZWFyVG9MYXN0
TWFya2VyKCk7CiAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwpAQCAtMTQ0
MSwxOCArMTQ1MiwyNSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAor
ICAgICAgICBJbnNlcnRpb25Nb2RlIGluc2VydGlvbk1vZGUgPSBUZW1wbGF0ZUNvbnRlbnRzTW9k
ZTsKICAgICAgICAgaWYgKHRva2VuLT5uYW1lKCkgPT0gZnJhbWVUYWcpCi0gICAgICAgICAgICBz
ZXRJbnNlcnRpb25Nb2RlKEluRnJhbWVzZXRNb2RlKTsKKyAgICAgICAgICAgIGluc2VydGlvbk1v
ZGUgPSBJbkZyYW1lc2V0TW9kZTsKICAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSBj
b2xUYWcpCi0gICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQ29sdW1uR3JvdXBNb2RlKTsK
KyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJbkNvbHVtbkdyb3VwTW9kZTsKICAgICAgICAg
ZWxzZSBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi0+bmFtZSgpKSB8fCBpc1Rh
YmxlQm9keUNvbnRleHRUYWcodG9rZW4tPm5hbWUoKSkpCi0gICAgICAgICAgICBzZXRJbnNlcnRp
b25Nb2RlKEluVGFibGVNb2RlKTsKKyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJblRhYmxl
TW9kZTsKICAgICAgICAgZWxzZSBpZiAodG9rZW4tPm5hbWUoKSA9PSB0clRhZykKLSAgICAgICAg
ICAgIHNldEluc2VydGlvbk1vZGUoSW5UYWJsZUJvZHlNb2RlKTsKKyAgICAgICAgICAgIGluc2Vy
dGlvbk1vZGUgPSBJblRhYmxlQm9keU1vZGU7CiAgICAgICAgIGVsc2UgaWYgKGlzVGFibGVDZWxs
Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkKLSAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUo
SW5Sb3dNb2RlKTsKKyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJblJvd01vZGU7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CisgICAg
ICAgICAgICBpbnNlcnRpb25Nb2RlID0gSW5Cb2R5TW9kZTsKKworICAgICAgICBBU1NFUlQoaW5z
ZXJ0aW9uTW9kZSAhPSBUZW1wbGF0ZUNvbnRlbnRzTW9kZSk7CisgICAgICAgIEFTU0VSVCghbV90
ZW1wbGF0ZUluc2VydGlvbk1vZGVzLmlzRW1wdHkoKSk7CisgICAgICAgIEFTU0VSVChtX3RlbXBs
YXRlSW5zZXJ0aW9uTW9kZXMubGFzdCgpID09IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyAgICAg
ICAgbV90ZW1wbGF0ZUluc2VydGlvbk1vZGVzLmxhc3QoKSA9IGluc2VydGlvbk1vZGU7CisgICAg
ICAgIHNldEluc2VydGlvbk1vZGUoaW5zZXJ0aW9uTW9kZSk7CiAKICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKICNlbHNlCkBAIC0xNjQxLDkgKzE2NTksMTAgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogICAgICAgICAgICAg
aXRlbSA9IEhUTUxTdGFja0l0ZW06OmNyZWF0ZShtX2ZyYWdtZW50Q29udGV4dC5jb250ZXh0RWxl
bWVudCgpLCBIVE1MU3RhY2tJdGVtOjpJdGVtRm9yQ29udGV4dEVsZW1lbnQpOwogICAgICAgICB9
CiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCi0gICAgICAgIC8vIEZJWE1FOiBodHRwczov
L3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIwMTMwIChzaG91bGQgPHRl
bXBsYXRlPiBjbGVhciB0aGUgImltcGxpZWQgY29udGV4dCBlbGVtZW50Ii4KLSAgICAgICAgaWYg
KGl0ZW0tPmhhc1RhZ05hbWUodGVtcGxhdGVUYWcpKQotICAgICAgICAgICAgcmV0dXJuIHNldElu
c2VydGlvbk1vZGUoVGVtcGxhdGVDb250ZW50c01vZGUpOworICAgICAgICBpZiAoaXRlbS0+aGFz
VGFnTmFtZSh0ZW1wbGF0ZVRhZykpIHsKKyAgICAgICAgICAgIEFTU0VSVCghbV90ZW1wbGF0ZUlu
c2VydGlvbk1vZGVzLmlzRW1wdHkoKSk7CisgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9u
TW9kZShtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMubGFzdCgpKTsKKyAgICAgICAgfQogI2VuZGlm
CiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpIHsKICAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CkBAIC0yMjc1LDYgKzIyOTQs
OCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykgewogICAg
ICAgICAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc1RhZ05hbWUodGVt
cGxhdGVUYWcpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5pc0VtcHR5KCkpOwor
ICAgICAgICAgICAgbV90ZW1wbGF0ZUluc2VydGlvbk1vZGVzLnJlbW92ZUxhc3QoKTsKICAgICAg
ICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuaAppbmRleCAyMTNlN2UwYmUzNmYzNDVkODM0YWNiZTc0ZjJlZTFiZTYwYzYyYjUyLi42
NGEwOWEzNGIyYmQ0NWEwYzU0YjYzY2FjMWY0MDgwMzNlNzVkNjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRp
b24uaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CkBAIC0yMzIsNiArMjMzLDEw
IEBAIHByaXZhdGU6CiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI29yaWdpbmFsLWluc2VydGlvbi1t
b2RlCiAgICAgSW5zZXJ0aW9uTW9kZSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKIAorI2lmIEVO
QUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIFZlY3RvcjxJbnNlcnRpb25Nb2RlPiBtX3RlbXBs
YXRlSW5zZXJ0aW9uTW9kZXM7CisjZW5kaWYKKwogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1s
I3BlbmRpbmctdGFibGUtY2hhcmFjdGVyLXRva2VucwogICAgIFN0cmluZ0J1aWxkZXIgbV9wZW5k
aW5nVGFibGVDaGFyYWN0ZXJzOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTEzMjg2Y2UxOGM5MGUxMzgxMjU4NTcwOGVi
OGYyMDUzZWQzNDU4NS4uNTU3NTNlNDVmNmJjNGM5NzIzZTcxNjJhODEyZDQwMTMyOTJmYzA0MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEyLTA2ICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtIVE1MVGVtcGxhdGVFbGVtZW50XSBQcmV2ZW50IGZpcnN0
LWxldmVsIHJlY3Vyc2l2ZSA8dGVtcGxhdGU+IGZyb20gcmVzZXR0aW5nIHRoZSBpbXBsaWVkIGNv
bnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIHRlc3QgdGhhdCB0aGUgb3JpZ2luYWwgdGVtcGxhdGUgY29udGV4dCBpcyByZXRhaW5lZCBh
ZnRlciBpbm5lciB0ZW1wbGF0ZS4KKworICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy90ZW1w
bGF0ZS5kYXQ6CisKIDIwMTItMTItMDYgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9M
YXlvdXRUZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CmluZGV4IDFiYWU4MWVm
ZGRmZGM0ZDhmODY3NzFjNjJjNGExMzk3MjQwMmJhOGIuLmZkYzI0OWIxMzMxNmRlMjc3NjViOWRl
NzExYjc1ZjcwNDhkY2Y2ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291
cmNlcy90ZW1wbGF0ZS5kYXQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3Rl
bXBsYXRlLmRhdApAQCAtODQwLDQgKzg0MCwyMiBAQAogfCAgICAgICAgIDx0cj4KIHwgICAgICAg
ICA8dGVtcGxhdGU+CiB8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKLXwgICAgICAgICA8
dGQ+Cit8ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRl
bXBsYXRlPjx0aGVhZD48L3RoZWFkPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0cj48
L3RyPjx0Zm9vdD48L3Rmb290PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0
bWw+Cit8ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNk
b2N1bWVudC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+
Cit8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgIDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGZvb3Q+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179530</attachid>
            <date>2012-12-14 14:02:12 -0800</date>
            <delta_ts>2012-12-18 12:28:38 -0800</delta_ts>
            <desc>Patch with better ASSERTs</desc>
            <filename>bug-104142-20121214135931.patch</filename>
            <type>text/plain</type>
            <size>9021</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMmFiZWVjZDQ3ZmYx
MDVkNWRlYTdlMzA4ZmVhN2EwODU1ZGMyMC4uOTZkYjE5NDE0ZTc3Nzc2NmVjN2Y3NmM0OWQ5YmQx
MzZkNTQyMTFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEyLTE0ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtIVE1MVGVtcGxhdGVFbGVt
ZW50XSBQcmV2ZW50IGZpcnN0LWxldmVsIHJlY3Vyc2l2ZSA8dGVtcGxhdGU+IGZyb20gcmVzZXR0
aW5nIHRoZSBpbXBsaWVkIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHN0YWNrIG9mIEluc2VydGlvbk1vZGVz
IHJldGFpbnMgdGhlIGNob3NlbgorICAgICAgICAiaW1wbGllZCBjb250ZXh0IiBmb3IgZWFjaCB0
ZW1wbGF0ZSBlbGVtZW50LgorCisgICAgICAgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgUmFmYWVsIFdl
aW5zdGVpbi4KKworICAgICAgICBUZXN0cyBhZGRlZCB0byBodG1sNWxpYi9ydW4tdGVtcGxhdGUu
aHRtbAorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKTogSW5pdGlhbGl6
ZSB0aGUgc3RhY2sgYXBwcm9wcmlhdGVseSBmb3IgSFRNTFRlbXBsYXRlRWxlbWVudC5pbm5lckhU
TUwuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZVN0
YXJ0VGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBs
YXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0
YXJ0VGFnKTogT25jZSB3ZSd2ZSBmaWd1cmVkIG91dCB0aGUgaW5zZXJ0aW9uIG1vZGUgZm9yIGEg
Z2l2ZW4gPHRlbXBsYXRlPiBzdG9yZSBpdCBpbiB0aGUgc3RhY2suCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZSk6IENsZWFyIHRoZSBz
dGFjayBpZiB3ZSBoaXQgZW5kIG9mIGZpbGUgdG8gYWxsb3cgdGhlIGFzc2VydGlvbiBpbiBmaW5p
c2goKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6ZmluaXNoZWQpOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVC
dWlsZGVyKToKKwogMjAxMi0xMi0xNCAgQW50b24gVmF5dm9kICA8YXZheXZvZEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBDb25zaWRlciBpbmxpbmUtYmxvY2sgYW5k
IGlubGluZS10YWJsZSBlbGVtZW50cyB0byBiZSBhdXRvc2l6aW5nIGNsdXN0ZXJzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggNjk3NGM2
NGJkNTE2ZmU5NzQyOGM1NGZjOWYyNWU4OThjYTc4YWUyZi4uNDk1NTY0NzdiNjg0NmUzODhlMjY2
ZDNiYTYxODVmMDg1MzUyZGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIEhUTUxUcmVlQnVpbGRlcjo6
SFRNTFRyZWVCdWlsZGVyKEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyLCBEb2N1bWVudEZyYWdt
ZW50KiBmCiAgICAgICAgIC8vIEZvciBlZmZpY2llbmN5LCB3ZSBza2lwIHN0ZXAgNC4yICgiTGV0
IHJvb3QgYmUgYSBuZXcgaHRtbCBlbGVtZW50IHdpdGggbm8gYXR0cmlidXRlcyIpCiAgICAgICAg
IC8vIGFuZCBpbnN0ZWFkIHVzZSB0aGUgRG9jdW1lbnRGcmFnbWVudCBhcyBhIHJvb3Qgbm9kZS4K
ICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wdXNoUm9vdE5vZGUoSFRNTFN0YWNrSXRl
bTo6Y3JlYXRlKGZyYWdtZW50LCBIVE1MU3RhY2tJdGVtOjpJdGVtRm9yRG9jdW1lbnRGcmFnbWVu
dE5vZGUpKTsKKworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAoY29u
dGV4dEVsZW1lbnQtPmhhc0xvY2FsTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICBtX3Rl
bXBsYXRlSW5zZXJ0aW9uTW9kZXMuYXBwZW5kKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbmRp
ZgorCiAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKICAgICAgICAg
bV90cmVlLnNldEZvcm0oY2xvc2VzdEZvcm1BbmNlc3Rvcihjb250ZXh0RWxlbWVudCkpOwogICAg
IH0KQEAgLTk2MCwxMSArOTY2LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3Rh
cnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIH0KIAogI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQotCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRl
U3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBtX3RyZWUuYWN0aXZlRm9y
bWF0dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtlcigpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1M
RWxlbWVudCh0b2tlbik7CisgICAgbV90ZW1wbGF0ZUluc2VydGlvbk1vZGVzLmFwcGVuZChUZW1w
bGF0ZUNvbnRlbnRzTW9kZSk7CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRz
TW9kZSk7CiB9CiAKQEAgLTk3OSw2ICs5ODUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1RlbXBsYXRlRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHBhcnNl
RXJyb3IodG9rZW4pOwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQo
dG9rZW4tPm5hbWUoKSk7CiAgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5j
bGVhclRvTGFzdE1hcmtlcigpOworICAgIG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5yZW1vdmVM
YXN0KCk7CiAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogfQogI2VuZGlm
CkBAIC0xNDQxLDE4ICsxNDQ4LDI0IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3Rh
cnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCisgICAgICAgIEluc2VydGlvbk1vZGUgaW5zZXJ0aW9uTW9kZSA9IFRlbXBsYXRlQ29u
dGVudHNNb2RlOwogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZVRhZykKLSAgICAg
ICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5GcmFtZXNldE1vZGUpOworICAgICAgICAgICAgaW5z
ZXJ0aW9uTW9kZSA9IEluRnJhbWVzZXRNb2RlOwogICAgICAgICBlbHNlIGlmICh0b2tlbi0+bmFt
ZSgpID09IGNvbFRhZykKLSAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91
cE1vZGUpOworICAgICAgICAgICAgaW5zZXJ0aW9uTW9kZSA9IEluQ29sdW1uR3JvdXBNb2RlOwog
ICAgICAgICBlbHNlIGlmIChpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLT5uYW1lKCkp
IHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkKLSAgICAgICAgICAgIHNl
dEluc2VydGlvbk1vZGUoSW5UYWJsZU1vZGUpOworICAgICAgICAgICAgaW5zZXJ0aW9uTW9kZSA9
IEluVGFibGVNb2RlOwogICAgICAgICBlbHNlIGlmICh0b2tlbi0+bmFtZSgpID09IHRyVGFnKQot
ICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlQm9keU1vZGUpOworICAgICAgICAg
ICAgaW5zZXJ0aW9uTW9kZSA9IEluVGFibGVCb2R5TW9kZTsKICAgICAgICAgZWxzZSBpZiAoaXNU
YWJsZUNlbGxDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQotICAgICAgICAgICAgc2V0SW5zZXJ0
aW9uTW9kZShJblJvd01vZGUpOworICAgICAgICAgICAgaW5zZXJ0aW9uTW9kZSA9IEluUm93TW9k
ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2Rl
KTsKKyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJbkJvZHlNb2RlOworCisgICAgICAgIEFT
U0VSVChpbnNlcnRpb25Nb2RlICE9IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyAgICAgICAgQVNT
RVJUKG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5sYXN0KCkgPT0gVGVtcGxhdGVDb250ZW50c01v
ZGUpOworICAgICAgICBtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMubGFzdCgpID0gaW5zZXJ0aW9u
TW9kZTsKKyAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShpbnNlcnRpb25Nb2RlKTsKIAogICAgICAg
ICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogI2Vsc2UKQEAgLTE2NDEsOSArMTY1NCw4IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKICAg
ICAgICAgICAgIGl0ZW0gPSBIVE1MU3RhY2tJdGVtOjpjcmVhdGUobV9mcmFnbWVudENvbnRleHQu
Y29udGV4dEVsZW1lbnQoKSwgSFRNTFN0YWNrSXRlbTo6SXRlbUZvckNvbnRleHRFbGVtZW50KTsK
ICAgICAgICAgfQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQotICAgICAgICAvLyBGSVhN
RTogaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMDEzMCAo
c2hvdWxkIDx0ZW1wbGF0ZT4gY2xlYXIgdGhlICJpbXBsaWVkIGNvbnRleHQgZWxlbWVudCIuCiAg
ICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKLSAgICAgICAgICAgIHJl
dHVybiBzZXRJbnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyAgICAgICAgICAg
IHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5sYXN0KCkp
OwogI2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpIHsKICAg
ICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CkBAIC0yMjc1
LDYgKzIyODcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNI
VE1MVG9rZW4qIHRva2VuKQogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRh
ZykgewogICAgICAgICAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc1Rh
Z05hbWUodGVtcGxhdGVUYWcpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
cG9wKCk7CisgICAgICAgICAgICBtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMucmVtb3ZlTGFzdCgp
OwogICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNTAxLDYgKzI1MTQsOSBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShFeHRlcm5hbENoYXJh
Y3RlclRva2VuQnVmZgogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBBU1NFUlQodG9rZW4tPnR5cGUoKSA9PSBIVE1M
VG9rZW5UeXBlczo6RW5kT2ZGaWxlKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkgJiYg
IUFTU0VSVF9ESVNBQkxFRAorICAgIG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5jbGVhcigpOwor
I2VuZGlmCiAgICAgc3dpdGNoIChpbnNlcnRpb25Nb2RlKCkpIHsKICAgICBjYXNlIEluaXRpYWxN
b2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluaXRpYWxNb2RlKTsKQEAg
LTI4ODQsNyArMjkwMCwxMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZmluaXNoZWQoKQogewog
ICAgIGlmIChpc1BhcnNpbmdGcmFnbWVudCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKKyNp
ZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBBU1NFUlQobV90ZW1wbGF0ZUluc2VydGlv
bk1vZGVzLmlzRW1wdHkoKSk7CisjZW5kaWYKKwogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAg
ICAvLyBXYXJuaW5nLCB0aGlzIG1heSBkZXRhY2ggdGhlIHBhcnNlci4gRG8gbm90IGRvIGFueXRo
aW5nIGVsc2UgYWZ0ZXIgdGhpcy4KICAgICBtX2RvY3VtZW50LT5maW5pc2hlZFBhcnNpbmcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKaW5kZXggMjEz
ZTdlMGJlMzZmMzQ1ZDgzNGFjYmU3NGYyZWUxYmU2MGM2MmI1Mi4uNjRhMDlhMzRiMmJkNDVhMGM1
NGI2M2NhYzFmNDA4MDMzZTc1ZDYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvVW5pY29kZS5oPgpAQCAtMjMyLDYgKzIzMywxMCBAQCBwcml2YXRlOgogICAg
IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL3BhcnNpbmcuaHRtbCNvcmlnaW5hbC1pbnNlcnRpb24tbW9kZQogICAgIEluc2VydGlv
bk1vZGUgbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7CiAKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxF
TUVOVCkKKyAgICBWZWN0b3I8SW5zZXJ0aW9uTW9kZT4gbV90ZW1wbGF0ZUluc2VydGlvbk1vZGVz
OworI2VuZGlmCisKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMv
Y3VycmVudC13b3JrL211bHRpcGFnZS90b2tlbml6YXRpb24uaHRtbCNwZW5kaW5nLXRhYmxlLWNo
YXJhY3Rlci10b2tlbnMKICAgICBTdHJpbmdCdWlsZGVyIG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVy
czsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDJjY2RkYmY1MThkNDYzNzIwNGIyMTU2MDI5NzVlZGQxYjVmZWViN2QuLmI3
NGFjMzZkZWI2MDhkMTU4YTU5ZjEwZjMxNjhiOGZkODViYTEyODAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMi0xMi0xNCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbSFRNTFRlbXBsYXRlRWxlbWVudF0gUHJldmVudCBmaXJzdC1sZXZlbCByZWN1cnNpdmUg
PHRlbXBsYXRlPiBmcm9tIHJlc2V0dGluZyB0aGUgaW1wbGllZCBjb250ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxNDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IHRoYXQgdGhl
IG9yaWdpbmFsIHRlbXBsYXRlIGNvbnRleHQgaXMgcmV0YWluZWQgYWZ0ZXIgaW5uZXIgdGVtcGxh
dGUuCisKKyAgICAgICAgKiBodG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0OgorCiAyMDEy
LTEyLTE0ICBBbnRvbiBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KIAogICAgICAgICBD
b25zaWRlciBpbmxpbmUtYmxvY2sgYW5kIGlubGluZS10YWJsZSBlbGVtZW50cyB0byBiZSBhdXRv
c2l6aW5nIGNsdXN0ZXJzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3Vy
Y2VzL3RlbXBsYXRlLmRhdCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0
ZS5kYXQKaW5kZXggMWJhZTgxZWZkZGZkYzRkOGY4Njc3MWM2MmM0YTEzOTcyNDAyYmE4Yi4uZmRj
MjQ5YjEzMzE2ZGUyNzc2NWI5ZGU3MTFiNzVmNzA0OGRjZjZlNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRlLmRhdAorKysgYi9MYXlvdXRUZXN0cy9o
dG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CkBAIC04NDAsNCArODQwLDIyIEBACiB8ICAg
ICAgICAgPHRyPgogfCAgICAgICAgIDx0ZW1wbGF0ZT4KIHwgICAgICAgICAgICNkb2N1bWVudC1m
cmFnbWVudAotfCAgICAgICAgIDx0ZD4KK3wgICAgICAgICA8dHI+Cit8ICAgICAgICAgICA8dGQ+
CisKKyNkYXRhCis8Ym9keT48dGVtcGxhdGU+PHRoZWFkPjwvdGhlYWQ+PHRlbXBsYXRlPjx0cj48
L3RyPjwvdGVtcGxhdGU+PHRyPjwvdHI+PHRmb290PjwvdGZvb3Q+PC90ZW1wbGF0ZT4KKyNlcnJv
cnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDx0
ZW1wbGF0ZT4KK3wgICAgICAgI2RvY3VtZW50LWZyYWdtZW50Cit8ICAgICAgICAgPHRoZWFkPgor
fCAgICAgICAgIDx0ZW1wbGF0ZT4KK3wgICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAorfCAg
ICAgICAgICAgICA8dHI+Cit8ICAgICAgICAgPHRib2R5PgorfCAgICAgICAgICAgPHRyPgorfCAg
ICAgICAgIDx0Zm9vdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180004</attachid>
            <date>2012-12-18 12:28:41 -0800</date>
            <delta_ts>2012-12-18 13:07:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104142-20121218122558.patch</filename>
            <type>text/plain</type>
            <size>8995</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMmFiZWVjZDQ3ZmYx
MDVkNWRlYTdlMzA4ZmVhN2EwODU1ZGMyMC4uNDc1NjNmMjJkYTk0NDA1YTZhNzA2ODNkZTJiYzg2
ZDVmZGRmYmFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEyLTE0ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtIVE1MVGVtcGxhdGVFbGVt
ZW50XSBQcmV2ZW50IGZpcnN0LWxldmVsIHJlY3Vyc2l2ZSA8dGVtcGxhdGU+IGZyb20gcmVzZXR0
aW5nIHRoZSBpbXBsaWVkIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDE0MgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHN0YWNrIG9mIEluc2VydGlvbk1vZGVzIHJl
dGFpbnMgdGhlIGNob3NlbgorICAgICAgICAiaW1wbGllZCBjb250ZXh0IiBmb3IgZWFjaCB0ZW1w
bGF0ZSBlbGVtZW50LgorCisgICAgICAgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgUmFmYWVsIFdlaW5z
dGVpbi4KKworICAgICAgICBUZXN0cyBhZGRlZCB0byBodG1sNWxpYi9ydW4tdGVtcGxhdGUuaHRt
bAorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKTogSW5pdGlhbGl6ZSB0
aGUgc3RhY2sgYXBwcm9wcmlhdGVseSBmb3IgSFRNTFRlbXBsYXRlRWxlbWVudC5pbm5lckhUTUwu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUZW1wbGF0ZVN0YXJ0
VGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRl
RW5kVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnKTogT25jZSB3ZSd2ZSBmaWd1cmVkIG91dCB0aGUgaW5zZXJ0aW9uIG1vZGUgZm9yIGEgZ2l2
ZW4gPHRlbXBsYXRlPiBzdG9yZSBpdCBpbiB0aGUgc3RhY2suCisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZSk6IENsZWFyIHRoZSBzdGFj
ayBpZiB3ZSBoaXQgZW5kIG9mIGZpbGUgdG8gYWxsb3cgdGhlIGFzc2VydGlvbiBpbiBmaW5pc2go
KS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6ZmluaXNoZWQpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAoSFRNTFRyZWVCdWls
ZGVyKToKKwogMjAxMi0xMi0xNCAgQW50b24gVmF5dm9kICA8YXZheXZvZEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBDb25zaWRlciBpbmxpbmUtYmxvY2sgYW5kIGlu
bGluZS10YWJsZSBlbGVtZW50cyB0byBiZSBhdXRvc2l6aW5nIGNsdXN0ZXJzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggNjk3NGM2NGJk
NTE2ZmU5NzQyOGM1NGZjOWYyNWU4OThjYTc4YWUyZi4uMmU1MjRlNDM3MDc5MjBiYjU1YTI2YmZi
ZmY0ZDExYzYzMDQ2ODdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIEhUTUxUcmVlQnVpbGRlcjo6SFRN
TFRyZWVCdWlsZGVyKEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyLCBEb2N1bWVudEZyYWdtZW50
KiBmCiAgICAgICAgIC8vIEZvciBlZmZpY2llbmN5LCB3ZSBza2lwIHN0ZXAgNC4yICgiTGV0IHJv
b3QgYmUgYSBuZXcgaHRtbCBlbGVtZW50IHdpdGggbm8gYXR0cmlidXRlcyIpCiAgICAgICAgIC8v
IGFuZCBpbnN0ZWFkIHVzZSB0aGUgRG9jdW1lbnRGcmFnbWVudCBhcyBhIHJvb3Qgbm9kZS4KICAg
ICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wdXNoUm9vdE5vZGUoSFRNTFN0YWNrSXRlbTo6
Y3JlYXRlKGZyYWdtZW50LCBIVE1MU3RhY2tJdGVtOjpJdGVtRm9yRG9jdW1lbnRGcmFnbWVudE5v
ZGUpKTsKKworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBpZiAoY29udGV4
dEVsZW1lbnQtPmhhc0xvY2FsTmFtZSh0ZW1wbGF0ZVRhZykpCisgICAgICAgICAgICBtX3RlbXBs
YXRlSW5zZXJ0aW9uTW9kZXMuYXBwZW5kKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyNlbmRpZgor
CiAgICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKICAgICAgICAgbV90
cmVlLnNldEZvcm0oY2xvc2VzdEZvcm1BbmNlc3Rvcihjb250ZXh0RWxlbWVudCkpOwogICAgIH0K
QEAgLTk2MCwxMSArOTY2LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRU
YWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIH0KIAogI2lmIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKQotCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1RlbXBsYXRlU3Rh
cnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBtX3RyZWUuYWN0aXZlRm9ybWF0
dGluZ0VsZW1lbnRzKCktPmFwcGVuZE1hcmtlcigpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxl
bWVudCh0b2tlbik7CisgICAgbV90ZW1wbGF0ZUluc2VydGlvbk1vZGVzLmFwcGVuZChUZW1wbGF0
ZUNvbnRlbnRzTW9kZSk7CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShUZW1wbGF0ZUNvbnRlbnRzTW9k
ZSk7CiB9CiAKQEAgLTk3OSw2ICs5ODUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1RlbXBsYXRlRW5kVGFnKEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiAgICAgICAgIHBhcnNlRXJy
b3IodG9rZW4pOwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9r
ZW4tPm5hbWUoKSk7CiAgICAgbV90cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVh
clRvTGFzdE1hcmtlcigpOworICAgIG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5yZW1vdmVMYXN0
KCk7CiAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogfQogI2VuZGlmCkBA
IC0xNDQxLDE4ICsxNDQ4LDI0IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRU
YWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCisgICAgICAgIEluc2VydGlvbk1vZGUgaW5zZXJ0aW9uTW9kZSA9IFRlbXBsYXRlQ29udGVu
dHNNb2RlOwogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSBmcmFtZVRhZykKLSAgICAgICAg
ICAgIHNldEluc2VydGlvbk1vZGUoSW5GcmFtZXNldE1vZGUpOworICAgICAgICAgICAgaW5zZXJ0
aW9uTW9kZSA9IEluRnJhbWVzZXRNb2RlOwogICAgICAgICBlbHNlIGlmICh0b2tlbi0+bmFtZSgp
ID09IGNvbFRhZykKLSAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91cE1v
ZGUpOworICAgICAgICAgICAgaW5zZXJ0aW9uTW9kZSA9IEluQ29sdW1uR3JvdXBNb2RlOwogICAg
ICAgICBlbHNlIGlmIChpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2VuLT5uYW1lKCkpIHx8
IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi0+bmFtZSgpKSkKLSAgICAgICAgICAgIHNldElu
c2VydGlvbk1vZGUoSW5UYWJsZU1vZGUpOworICAgICAgICAgICAgaW5zZXJ0aW9uTW9kZSA9IElu
VGFibGVNb2RlOwogICAgICAgICBlbHNlIGlmICh0b2tlbi0+bmFtZSgpID09IHRyVGFnKQotICAg
ICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlQm9keU1vZGUpOworICAgICAgICAgICAg
aW5zZXJ0aW9uTW9kZSA9IEluVGFibGVCb2R5TW9kZTsKICAgICAgICAgZWxzZSBpZiAoaXNUYWJs
ZUNlbGxDb250ZXh0VGFnKHRva2VuLT5uYW1lKCkpKQotICAgICAgICAgICAgc2V0SW5zZXJ0aW9u
TW9kZShJblJvd01vZGUpOworICAgICAgICAgICAgaW5zZXJ0aW9uTW9kZSA9IEluUm93TW9kZTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsK
KyAgICAgICAgICAgIGluc2VydGlvbk1vZGUgPSBJbkJvZHlNb2RlOworCisgICAgICAgIEFTU0VS
VChpbnNlcnRpb25Nb2RlICE9IFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyAgICAgICAgQVNTRVJU
KG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5sYXN0KCkgPT0gVGVtcGxhdGVDb250ZW50c01vZGUp
OworICAgICAgICBtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMubGFzdCgpID0gaW5zZXJ0aW9uTW9k
ZTsKKyAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShpbnNlcnRpb25Nb2RlKTsKIAogICAgICAgICBw
cm9jZXNzU3RhcnRUYWcodG9rZW4pOwogI2Vsc2UKQEAgLTE2NDEsOSArMTY1NCw4IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKICAgICAg
ICAgICAgIGl0ZW0gPSBIVE1MU3RhY2tJdGVtOjpjcmVhdGUobV9mcmFnbWVudENvbnRleHQuY29u
dGV4dEVsZW1lbnQoKSwgSFRNTFN0YWNrSXRlbTo6SXRlbUZvckNvbnRleHRFbGVtZW50KTsKICAg
ICAgICAgfQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQotICAgICAgICAvLyBGSVhNRTog
aHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMDEzMCAoc2hv
dWxkIDx0ZW1wbGF0ZT4gY2xlYXIgdGhlICJpbXBsaWVkIGNvbnRleHQgZWxlbWVudCIuCiAgICAg
ICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHRlbXBsYXRlVGFnKSkKLSAgICAgICAgICAgIHJldHVy
biBzZXRJbnNlcnRpb25Nb2RlKFRlbXBsYXRlQ29udGVudHNNb2RlKTsKKyAgICAgICAgICAgIHJl
dHVybiBzZXRJbnNlcnRpb25Nb2RlKG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5sYXN0KCkpOwog
I2VuZGlmCiAgICAgICAgIGlmIChpdGVtLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpIHsKICAgICAg
ICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CkBAIC0yMjc1LDYg
KzIyODcsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1M
VG9rZW4qIHRva2VuKQogICAgICAgICBpZiAodG9rZW4tPm5hbWUoKSA9PSB0ZW1wbGF0ZVRhZykg
ewogICAgICAgICAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCktPmhhc1RhZ05h
bWUodGVtcGxhdGVUYWcpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9w
KCk7CisgICAgICAgICAgICBtX3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMucmVtb3ZlTGFzdCgpOwog
ICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNTAxLDYgKzI1MTQsOSBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShFeHRlcm5hbENoYXJhY3Rl
clRva2VuQnVmZgogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRvbWlj
SFRNTFRva2VuKiB0b2tlbikKIHsKICAgICBBU1NFUlQodG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9r
ZW5UeXBlczo6RW5kT2ZGaWxlKTsKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICBt
X3RlbXBsYXRlSW5zZXJ0aW9uTW9kZXMuY2xlYXIoKTsKKyNlbmRpZgogICAgIHN3aXRjaCAoaW5z
ZXJ0aW9uTW9kZSgpKSB7CiAgICAgY2FzZSBJbml0aWFsTW9kZToKICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBJbml0aWFsTW9kZSk7CkBAIC0yODg0LDcgKzI5MDAsMTEgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OmZpbmlzaGVkKCkKIHsKICAgICBpZiAoaXNQYXJzaW5nRnJhZ21l
bnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1F
TlQpCisgICAgQVNTRVJUKG1fdGVtcGxhdGVJbnNlcnRpb25Nb2Rlcy5pc0VtcHR5KCkpOworI2Vu
ZGlmCisKICAgICBBU1NFUlQobV9kb2N1bWVudCk7CiAgICAgLy8gV2FybmluZywgdGhpcyBtYXkg
ZGV0YWNoIHRoZSBwYXJzZXIuIERvIG5vdCBkbyBhbnl0aGluZyBlbHNlIGFmdGVyIHRoaXMuCiAg
ICAgbV9kb2N1bWVudC0+ZmluaXNoZWRQYXJzaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IDIxM2U3ZTBiZTM2ZjM0NWQ4MzRhY2JlNzRm
MmVlMWJlNjBjNjJiNTIuLjY0YTA5YTM0YjJiZDQ1YTBjNTRiNjNjYWMxZjQwODAzM2U3NWQ2MGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4K
QEAgLTIzMiw2ICsyMzMsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjb3Jp
Z2luYWwtaW5zZXJ0aW9uLW1vZGUKICAgICBJbnNlcnRpb25Nb2RlIG1fb3JpZ2luYWxJbnNlcnRp
b25Nb2RlOwogCisjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCisgICAgVmVjdG9yPEluc2Vy
dGlvbk1vZGU+IG1fdGVtcGxhdGVJbnNlcnRpb25Nb2RlczsKKyNlbmRpZgorCiAgICAgLy8gaHR0
cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uv
dG9rZW5pemF0aW9uLmh0bWwjcGVuZGluZy10YWJsZS1jaGFyYWN0ZXItdG9rZW5zCiAgICAgU3Ry
aW5nQnVpbGRlciBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnM7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyY2NkZGJmNTE4
ZDQ2MzcyMDRiMjE1NjAyOTc1ZWRkMWI1ZmVlYjdkLi40MjA0ODQwNDQ2MmE0YTRmM2Y3ZTkyMDdj
MTVmN2E0N2M4MzMyODkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMTQgIEFkYW0g
S2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0hUTUxUZW1wbGF0ZUVsZW1l
bnRdIFByZXZlbnQgZmlyc3QtbGV2ZWwgcmVjdXJzaXZlIDx0ZW1wbGF0ZT4gZnJvbSByZXNldHRp
bmcgdGhlIGltcGxpZWQgY29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA0MTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CisKKyAgICAgICAgQWRkZWQgdGVzdCB0aGF0IHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZSBjb250ZXh0
IGlzIHJldGFpbmVkIGFmdGVyIGlubmVyIHRlbXBsYXRlLgorCisgICAgICAgICogaHRtbDVsaWIv
cmVzb3VyY2VzL3RlbXBsYXRlLmRhdDoKKwogMjAxMi0xMi0xNCAgQW50b24gVmF5dm9kICA8YXZh
eXZvZEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29uc2lkZXIgaW5saW5lLWJsb2NrIGFuZCBp
bmxpbmUtdGFibGUgZWxlbWVudHMgdG8gYmUgYXV0b3NpemluZyBjbHVzdGVycy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90ZW1wbGF0ZS5kYXQgYi9MYXlvdXRU
ZXN0cy9odG1sNWxpYi9yZXNvdXJjZXMvdGVtcGxhdGUuZGF0CmluZGV4IDFiYWU4MWVmZGRmZGM0
ZDhmODY3NzFjNjJjNGExMzk3MjQwMmJhOGIuLmZkYzI0OWIxMzMxNmRlMjc3NjViOWRlNzExYjc1
ZjcwNDhkY2Y2ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy90
ZW1wbGF0ZS5kYXQKKysrIGIvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3RlbXBsYXRl
LmRhdApAQCAtODQwLDQgKzg0MCwyMiBAQAogfCAgICAgICAgIDx0cj4KIHwgICAgICAgICA8dGVt
cGxhdGU+CiB8ICAgICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKLXwgICAgICAgICA8dGQ+Cit8
ICAgICAgICAgPHRyPgorfCAgICAgICAgICAgPHRkPgorCisjZGF0YQorPGJvZHk+PHRlbXBsYXRl
Pjx0aGVhZD48L3RoZWFkPjx0ZW1wbGF0ZT48dHI+PC90cj48L3RlbXBsYXRlPjx0cj48L3RyPjx0
Zm9vdD48L3Rmb290PjwvdGVtcGxhdGU+CisjZXJyb3JzCisjZG9jdW1lbnQKK3wgPGh0bWw+Cit8
ICAgPGhlYWQ+Cit8ICAgPGJvZHk+Cit8ICAgICA8dGVtcGxhdGU+Cit8ICAgICAgICNkb2N1bWVu
dC1mcmFnbWVudAorfCAgICAgICAgIDx0aGVhZD4KK3wgICAgICAgICA8dGVtcGxhdGU+Cit8ICAg
ICAgICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKK3wgICAgICAgICAgICAgPHRyPgorfCAgICAgICAg
IDx0Ym9keT4KK3wgICAgICAgICAgIDx0cj4KK3wgICAgICAgICA8dGZvb3Q+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>