<?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>45627</bug_id>
          
          <creation_ts>2010-09-12 18:56:44 -0700</creation_ts>
          <short_desc>REGRESSION: Infinite redirect on developer.apple.com</short_desc>
          <delta_ts>2011-01-17 16:02:28 -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>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://developer.apple.com/library/mac/navigation/#section=Frameworks&amp;topic=Application%20Kit</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41115</blocked>
    
    <blocked>43328</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeff Johnson">opendarwin</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>mihaip</cc>
    
    <cc>phnixwxz</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277944</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2010-09-12 18:56:44 -0700</bug_when>
    <thetext>WebKit Debug build from source at svn r67348
Safari 5.0.2 (6533.18.5)
Mac OS X 10.6.4 Build 10F2521

When I load the page http://developer.apple.com/library/mac/navigation/#section=Frameworks&amp;topic=Application%20Kit in Safari, it goes into an infinite redirect. It eventually redirects to http://developer.apple.com/library/mac/index.html#home/ and keeps redirecting to there.

This bug does not occur using stock Mac OS X WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277955</commentid>
    <comment_count>1</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2010-09-12 20:23:42 -0700</bug_when>
    <thetext>Using the WebKit nightly builds, I found that this bug was introduced between svn r65825 and r66052.

My wild guess is that it may have been http://trac.webkit.org/changeset/65868/trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277956</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-12 20:25:57 -0700</bug_when>
    <thetext>Sounds like bug 43328.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277964</commentid>
    <comment_count>3</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2010-09-12 21:46:04 -0700</bug_when>
    <thetext>Confirmed by building from source that the bug was introduced in svn r65868.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277970</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-12 22:19:10 -0700</bug_when>
    <thetext>OK.  We need a reduction to make progress with this bug. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278133</commentid>
    <comment_count>5</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2010-09-13 05:08:05 -0700</bug_when>
    <thetext>I&apos;m afraid that may be beyond my ability, but perhaps someone at Apple could enlist the help of Ron Hayden and the documentation team, who would know how that page works better than anyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304440</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-03 19:55:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/8629435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307518</commentid>
    <comment_count>7</comment_count>
      <attachid>73532</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-10 13:28:29 -0800</bug_when>
    <thetext>Created attachment 73532
Testcase

I&apos;ve reduced the redirect loop down to this:
&lt;script&gt;
window.location.replace(&quot;location_replace.html&quot;);
&lt;/script&gt;
&lt;meta http-equiv=&quot;refresh&quot; content=&quot;0; URL=meta_refresh.html&quot;&gt;

In minefield, the location.replace happens first and the meta refresh is ignored, thus the user lands on location_replace.html. In WebKit, the meta refresh overrides the location replace and the user lands on meta_refresh.html. I&apos;m not sure what the specced behavior is here.

The developer.apple page falls victim to this differences with this line that I don&apos;t think the author expected to be reached:
&lt;meta id=&quot;refresh&quot; http-equiv=&quot;refresh&quot; CONTENT=&quot;0; URL=_index.html&quot;&gt;&lt;!-- Needed for iPad redirects --&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307524</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-10 13:42:44 -0800</bug_when>
    <thetext>Eric pointed out this and bug 43328 will be fixed by implementing this update:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10625</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309324</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-15 09:45:12 -0800</bug_when>
    <thetext>This is blocking Chrome 8, I&apos;ll look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310543</commentid>
    <comment_count>10</comment_count>
      <attachid>74159</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-17 14:47:01 -0800</bug_when>
    <thetext>Created attachment 74159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310547</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-17 14:50:53 -0800</bug_when>
    <thetext>This isn&apos;t quite complete. I have a question in the patch about an ASSERT I&apos;m hitting. FYI, all tests are passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310553</commentid>
    <comment_count>12</comment_count>
      <attachid>74159</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-17 14:56:06 -0800</bug_when>
    <thetext>Comment on attachment 74159
Patch

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

&gt; WebCore/dom/Document.cpp:1967
&gt; +// This method is designed to match &quot;Aborting a document load&quot;:
&gt; +// http://www.whatwg.org/specs/web-apps/current-work/#abort-a-document
&gt; +void Document::abort()

A function to abort a document load seems like it should be on the document loader, not the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310648</commentid>
    <comment_count>13</comment_count>
      <attachid>74187</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-17 18:01:51 -0800</bug_when>
    <thetext>Created attachment 74187
Move abort() to DocumentLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310651</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-17 18:03:04 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; A function to abort a document load seems like it should be on the document loader, not the document.
That makes sense. I moved the method. Still having trouble figuring out how to avoid the ASSERT in commitData(), any hints would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311065</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-18 13:24:50 -0800</bug_when>
    <thetext>&gt; Still having trouble figuring out how to avoid the ASSERT in commitData(), any hints would be appreciated.

The ASSERT only triggers for fast/loader/submit-form-while-parsing-1.xhtml, so I&apos;m trying to figure out what is different about the XMLDocumentParser from the HTMLDocumentParser in this case. The commitData doesn&apos;t have any real data, it originates from:

WebHTMLRepresentation.mm:finishedLoadingWithDataSource() {
...
// Telling the frame we received some data and passing nil as the data is our
// way to get work done that is normally done when the first bit of data is
// received, even for the case of a document with no data (like about:blank).
[webFrame _commitData:nil];
...
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311068</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-18 13:27:22 -0800</bug_when>
    <thetext>That may be hold-over from the old html parser where write(&quot;&quot;) was commonly used as a way to &quot;spin&quot; the parser.  These days the parser&apos;s loop is separate from the write/append calls.

I don&apos;t really know what commitData does, so I could be wrong here.  I would try removing it and see what breaks. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311192</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-18 17:21:22 -0800</bug_when>
    <thetext>&gt; I don&apos;t really know what commitData does, so I could be wrong here.  I would try removing it and see what breaks. :)

That didn&apos;t turn out to be fruitful. Too many other tests fail to call notifyDone without it.

Like I mentioned in http://code.google.com/p/chromium/issues/detail?id=61958, I&apos;ll be on vacation for a while so I&apos;m releasing this in case someone is able to get to it in the mean time.

Here&apos;s a quick brain dump:
When we schedule a navigation that will change the location, we should hit the current loader with the hardest hammer (cancel all loads, tasks, subframes, etc). window.stop() uses FrameLoader.stopForUserCancel(), so it is probably safe and appropriate. Then we should stop the parser if the hammer didn&apos;t already do so. Finally, we need to make sure the unload event fires and the new page loads.

The current patch does all of that, but hits an assert that indicates it isn&apos;t canceling the loads hard enough (I believe it only cancels subresources and not the main resource). The flows I&apos;ve found that cancel the main resource all have unintended side effects that either cancel the redirect, fire errors, or don&apos;t fire the unload event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311195</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-18 17:25:43 -0800</bug_when>
    <thetext>I would argue firing the unload event is secondary and does not need to be solved in this fix.  We can just fix the regression and deal with the unload event (which IE doesn&apos;t always fire) in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311196</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-18 17:26:24 -0800</bug_when>
    <thetext>Do you have a suggestion for a path which fixes this all-but the load event firing?  (I&apos;m also on vacation for the next two weeks, getting on a plane shortly.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311208</commentid>
    <comment_count>20</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-18 17:38:31 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Do you have a suggestion for a path which fixes this all-but the load event firing?  

If we don&apos;t fire unload, we&apos;d regress on fast/loader/unload-hyperlink.html (and possibly others).

&gt; (I&apos;m also on vacation for the next two weeks, getting on a plane shortly.)

Cool! Maybe Adam or Nate can take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312628</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-22 17:51:39 -0800</bug_when>
    <thetext>I landed the cleanup part of this patch for Tony in http://trac.webkit.org/changeset/72578</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312634</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-22 18:00:03 -0800</bug_when>
    <thetext>I agree with Eric that we should aim for a small patch that just fixes the regression for the short term.  In the longer term (e.g., when folks are back from vacation) we can do the all-sing, all-dance version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313421</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-24 12:11:30 -0800</bug_when>
    <thetext>Apparently I wrote http://trac.webkit.org/browser/trunk/LayoutTests/fast/loader/unload-hyperlink.html.  I certainly didn&apos;t intend it to cover the behavior we&apos;re tripping over here.  I&apos;ll cross-test other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313433</commentid>
    <comment_count>24</comment_count>
      <attachid>74187</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-24 13:17:06 -0800</bug_when>
    <thetext>Comment on attachment 74187
Move abort() to DocumentLoader

This appears to cause a bunch of test failures:



compositing/video/video-background-color.html	expected	actual	diff	pretty diff
fast/history/history-subframe-with-name.html	expected	actual	diff	pretty diff
fast/parser/no-crash-innerHTML-isindex.html	expected	actual	diff	pretty diff
media/audio-data-url.html	expected	actual	diff	pretty diff
media/audio-mpeg-supported.html	expected	actual	diff	pretty diff
media/video-does-not-loop.html	expected	actual	diff	pretty diff
media/video-source-moved.html	expected	actual	diff	pretty diff
http/tests/media/reload-after-dialog.html	expected	actual	diff	pretty diff
http/tests/media/remove-while-loading.html	expected	actual	diff	pretty diff
http/tests/media/video-cancel-load.html	expected	actual	diff	pretty diff
http/tests/media/video-served-as-text.html	expected	actual	diff	pretty diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313440</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-24 13:30:33 -0800</bug_when>
    <thetext>I should say that they&apos;re mostly timeouts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313500</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-24 15:37:30 -0800</bug_when>
    <thetext>I take it back.  Something&apos;s wrong with my machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320479</commentid>
    <comment_count>27</comment_count>
      <attachid>76279</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-10 16:07:40 -0800</bug_when>
    <thetext>Created attachment 76279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320482</commentid>
    <comment_count>28</comment_count>
      <attachid>76279</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-10 16:10:14 -0800</bug_when>
    <thetext>Comment on attachment 76279
Patch

This is better than being broken.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320485</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-10 16:13:00 -0800</bug_when>
    <thetext>Committed r73817: &lt;http://trac.webkit.org/changeset/73817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320556</commentid>
    <comment_count>30</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2010-12-10 19:43:20 -0800</bug_when>
    <thetext>Verified as fixed with svn r73831 built from trunk and Tony&apos;s test case.

(Apparently the original developer.apple.com URLs have been rewritten and no longer contain the relevant code.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320990</commentid>
    <comment_count>31</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-13 01:57:32 -0800</bug_when>
    <thetext>webkit-patch failure-reason is blaming:

  http://trac.webkit.org/changeset/73815
  http://trac.webkit.org/changeset/73816
  http://trac.webkit.org/changeset/73817

For a regression to http/tests/misc/acid3.html

I feel like this is the only change which has any chance of causing that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320991</commentid>
    <comment_count>32</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-13 01:58:00 -0800</bug_when>
    <thetext>I should clarify.  The regression to acid3 results is only on mac leopard (debug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321578</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-13 17:45:52 -0800</bug_when>
    <thetext>Sheriffbot failed me!  I don&apos;t have a Leopard machine to test with....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325203</commentid>
    <comment_count>34</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-21 14:37:37 -0800</bug_when>
    <thetext>I happened to see http://trac.webkit.org/changeset/74426 float by. That fixed the extra didCommit which triggered the ASSERT I was hitting in my original patch. With any luck that might make the more optimal fix easier now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325205</commentid>
    <comment_count>35</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-21 14:39:36 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; I happened to see http://trac.webkit.org/changeset/74426 float by. That fixed the extra didCommit which triggered the ASSERT I was hitting in my original patch. With any luck that might make the more optimal fix easier now.

Great.  Your approach is much better (hence the big FIXME in my patch).  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335567</commentid>
    <comment_count>36</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-17 16:02:28 -0800</bug_when>
    <thetext>*** Bug 43328 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>73532</attachid>
            <date>2010-11-10 13:28:29 -0800</date>
            <delta_ts>2010-11-10 13:28:29 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>45627.html</filename>
            <type>text/html</type>
            <size>132</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">PHNjcmlwdD4Kd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoImxvY2F0aW9uX3JlcGxhY2UuaHRtbCIp
Owo8L3NjcmlwdD4KPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMDsgVVJMPW1l
dGFfcmVmcmVzaC5odG1sIj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74159</attachid>
            <date>2010-11-17 14:47:01 -0800</date>
            <delta_ts>2010-11-17 18:01:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45627-20101117144659.patch</filename>
            <type>text/plain</type>
            <size>12344</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMDQ0NDMxMjAxM2E2ZTI0YzU0NTgxNzdkYzNlYjljYzIxMjQ3NjljLi5mZTk2ODBi
NTFkNmQyNzgyN2RlMDE0NjdmZDA5NmJlOWE2Y2FlZGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMTEtMTcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OOiBJ
bmZpbml0ZSByZWRpcmVjdCBvbiBkZXZlbG9wZXIuYXBwbGUuY29tCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTYyNworCisgICAgICAgICogZmFzdC9l
dmVudHMvc3RvcC1sb2FkLWluLXVubG9hZC1oYW5kbGVyLXVzaW5nLWRvY3VtZW50LXdyaXRlLWV4
cGVjdGVkLnR4dDogU2luY2UgdGhlIHJlZGlyZWN0IHRhcmdldCwgcGFzcy5odG1sLCBkb2Vzbid0
IGhhdmUgYW4gdW5sb2FkIGhhbmRsZXIsCisgICAgICAgICAgaXQgbWFrZXMgc2Vuc2UgdGhhdCB0
aGVyZSBpcyBubyB1bmxvYWQgaGFuZGxlciBvbiB0aGUgcGFnZS4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9zdG9wLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXItdXNpbmctd2luZG93LXN0b3AtZXhwZWN0
ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pdC1hYm9ydHMt
cGFyc2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0t
c3VibWl0LWFib3J0cy1wYXJzaW5nLmh0bWw6IEFkZGVkLiBWZXJpZnkgdGhhdCB1cG9uIHN1Ym1p
dHRpbmcgYSBmb3JtLCBwYXJzaW5nIGlzIGFib3J0ZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
bG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9sb2FkZXIvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLmh0bWw6IEFk
ZGVkLiBWZXJpZnkgdGhhdCB1cG9uIHJlZGlyZWN0aW5nLCBwYXJzaW5nIGlzIGFib3J0ZWQuCisg
ICAgICAgICogZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2xvY2F0aW9uLWNoYW5nZS1hYm9ydHMtcGFy
c2luZy1mYWlsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9s
b2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctcGFzcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJhcmNoaXZlL2xvYWRpbmcvbWFpbnJlc291cmNlLW51bGwtbWltZXR5cGUtY3Jhc2gtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmFyY2hpdmUvbG9hZGluZy9taXNzaW5nLWRhdGEtZXhw
ZWN0ZWQudHh0OgorCiAyMDEwLTExLTE2ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gZXhwZWN0YXRpb25zIHVwZGF0
ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxv
YWQtaGFuZGxlci11c2luZy1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zdG9wLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXItdXNpbmctZG9jdW1lbnQt
d3JpdGUtZXhwZWN0ZWQudHh0CmluZGV4IDZhZGFkMmRmZTg4NjU5MzRhZTVjNjhjNzAyZDY3MDVi
YzcwYzllZjguLjY5Y2ZjNWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEzNGFmOTczNmRkNTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxvYWQtaGFuZGxl
ci11c2luZy1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3RvcC1sb2FkLWluLXVubG9hZC1oYW5kbGVyLXVzaW5nLWRvY3VtZW50LXdyaXRl
LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDIgQEAKLWZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMC0tPi0tPiIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCiBQQVNTCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxvYWQtaGFuZGxl
ci11c2luZy13aW5kb3ctc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zdG9wLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXItdXNpbmctd2luZG93LXN0b3AtZXhwZWN0ZWQu
dHh0CmluZGV4IDZhZGFkMmRmZTg4NjU5MzRhZTVjNjhjNzAyZDY3MDViYzcwYzllZjguLjY5Y2Zj
NWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEzNGFmOTczNmRkNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxvYWQtaGFuZGxlci11c2luZy13aW5kb3ct
c3RvcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3RvcC1sb2Fk
LWluLXVubG9hZC1oYW5kbGVyLXVzaW5nLXdpbmRvdy1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMSwz
ICsxLDIgQEAKLWZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBoYXMg
MSBvbnVubG9hZCBoYW5kbGVyKHMpCiBQQVNTCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQwMTZjOGVmMTJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXQtYWJv
cnRzLXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pdC1hYm9ydHMtcGFyc2luZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNhYmMzNGU5ZmVhYTAxNjYwMWNlOGUxZWM0YzY4MDQ1ODIzYzgzOGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pdC1hYm9y
dHMtcGFyc2luZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0
aW9uPSJyZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLXBhc3MuaHRtbCI+
PC9mb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0KCk7Cis8
L3NjcmlwdD4KK0ZBSUw6IFBhcnNpbmcgZGlkIG5vdCBhYm9ydCBvbiBhIGZvcm0gc3VibWl0Lgor
PG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0nMCxyZXNvdXJjZXMvbG9jYXRpb24t
Y2hhbmdlLWFib3J0cy1wYXJzaW5nLWZhaWwuaHRtbCc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQw
MTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9j
YXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9sb2NhdGlvbi1jaGFuZ2Ut
YWJvcnRzLXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2F0aW9uLWNo
YW5nZS1hYm9ydHMtcGFyc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZTZkNDExYWJhNDE4MTJmMzQ0
OWRmZGI0NjVmMDFmNWE2YmJjOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDkg
QEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKK30KK3dpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ3Jlc291cmNlcy9s
b2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctcGFzcy5odG1sJzsKKzwvc2NyaXB0PgorRkFJ
TDogUGFyc2luZyBkaWQgbm90IGFib3J0IG9uIGEgbG9jYXRpb24gY2hhbmdlLgorPG1ldGEgaHR0
cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0nMCxyZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFi
b3J0cy1wYXJzaW5nLWZhaWwuaHRtbCc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9yZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWZhaWwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRz
LXBhcnNpbmctZmFpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MzVmMTEyYzFlNDA1MjljNDY5ODhkYTJl
NGNmYzYxOGY3NjFiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRl
ci9yZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWZhaWwuaHRtbApAQCAt
MCwwICsxLDUgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0PgorRkFJTApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2xvY2F0aW9uLWNo
YW5nZS1hYm9ydHMtcGFyc2luZy1wYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9y
ZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLXBhc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZmNkNWY3ZjQxZDYxZGJiMjljMjJkM2E5NmZmOWRjNDg5ZjUzZGM0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2xvY2F0aW9uLWNoYW5n
ZS1hYm9ydHMtcGFyc2luZy1wYXNzLmh0bWwKQEAgLTAsMCArMSw1IEBACis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cis8L3NjcmlwdD4KK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmFyY2hpdmUvbG9hZGluZy9tYWlucmVzb3VyY2UtbnVsbC1taW1ldHlwZS1jcmFzaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2xvYWRpbmcvbWFpbnJlc291cmNlLW51bGwt
bWltZXR5cGUtY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IDNjM2NkYWM5YmIyMTU1NjM4MDE1Yzlm
MDg5Y2ZhYjlmMmU2ODY2NTUuLjFjNzJmZTdjZDExYjhmNzY2MTYxOThkNWMyNzc3N2Q2NjgzNDVk
ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvbG9hZGluZy9tYWlucmVzb3Vy
Y2UtbnVsbC1taW1ldHlwZS1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXJjaGl2ZS9sb2FkaW5nL21haW5yZXNvdXJjZS1udWxsLW1pbWV0eXBlLWNyYXNoLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDYgQEAKIG1haW4gZnJhbWUgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCiBtYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCi1tYWluIGZyYW1l
IC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiByZXNvdXJjZXMvbWFpbnJlc291cmNl
LW51bGwtbWltZXR5cGUud2ViYXJjaGl2ZSAKIG1haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TDogcmVzb3VyY2VzL21haW5yZXNvdXJjZS1udWxsLW1pbWV0eXBlLndlYmFyY2hpdmUgCiBtYWlu
IGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmFyY2hpdmUvbG9hZGluZy9taXNzaW5nLWRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViYXJjaGl2ZS9sb2FkaW5nL21pc3NpbmctZGF0YS1leHBlY3RlZC50eHQKaW5kZXggMDk4
NTI3NjNhNTRmYzQ3YjgxYjYyZTJjOTIyM2E2OWMxMmYyNGViYi4uNjExNDUxMzdiYmU5MzYzZmU4
MGVmNTFiNjBkY2RjMmJkMjlkZTJlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXJjaGl2
ZS9sb2FkaW5nL21pc3NpbmctZGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXJjaGl2ZS9sb2FkaW5nL21pc3NpbmctZGF0YS1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBA
CiBtYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQogbWFpbiBmcmFt
ZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTDogcmVzb3VyY2VzL21pc3NpbmctZGF0YS53ZWJhcmNoaXZlIAogbWFpbiBm
cmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiByZXNvdXJjZXMvbWlzc2luZy1kYXRhLndlYmFyY2hp
dmUgCiBtYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNjZmQzNmQ2MDkxZTE2
NDE5NjQwYTk1MzA1ZDQ3MmJkYzEwZDg1YS4uMTllZTNhYzJhYWNhNTcxMjc5OWQ5ZGYwZmZjNzJm
MTVlNWM2NzVkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0xMS0xNyAgVG9ueSBHZW50aWxjb3JlICA8
dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJFR1JFU1NJT046IEluZmluaXRlIHJlZGlyZWN0IG9uIGRldmVsb3Blci5h
cHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ1NjI3CisKKyAgICAgICAgQmFzZWQgdXBvbjoKKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwNjI1CisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
bG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvbG9hZGVyL2xvY2F0aW9uLWNoYW5nZS1hYm9ydHMtcGFyc2luZy5odG1sCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFib3J0KTog
QWRkIGFuIGFib3J0IG1ldGhvZCBhcyBzcGVjaWZpZWQgaW4gaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jYWJvcnQtYS1kb2N1bWVudC4KKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNvbW1pdERhdGEpOiBUaGlzIEFTU0VS
VCBmYWlscyBub3csIGJ1dCBkb2Vzbid0IHNlZW0gdG8gY2F1c2UgYW55IHByb2JsZW1zLgorICAg
ICAgICAgIFRoZSBzcGVjIHNheXMgdG8gKDEpIGFib3J0IGZldGNoZXMsICgyKSBkaXNjYXJkIHRh
c2tlcyBxdWV1ZWQgZm9yIHRoZW0sIGFuZCAoMykgZGlzY2FyZCBhbnkgZnVydGhlciBkYXRhIHJl
Y2VpdmVkLgorICAgICAgICAgIEkgYmVsaWV2ZSBJJ20gbWlzc2luZyAjMywgYnV0IGl0IGlzbid0
IGNsZWFyIHRvIG1lIGhvdyB0byBhY2NvbXBsaXNoIHRoYXQuIEkgaW50ZW5kIHRvIHJlc29sdmUg
dGhpcyBiZWZvcmUgbGFuZGluZywgYnV0CisgICAgICAgICAgd2FudGVkIHRvIGdldCBzb21lIGlk
ZWEgb24gaG93IHRvIGRvIHRoYXQuCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxl
KTogQWJvcnQgdGhlIGRvY3VtZW50IHN5bmNocm9ub3VzbHkgdXBvbiBzY2hlZHVsaW5nIGEgcmVk
aXJlY3QuCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaDogRmluaXNoIHVw
IHJlbmFtZSBzdGFydGVkIGluIHI2OTAzOS4KKwogMjAxMC0xMS0xNiAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlr
aGF0c2t5LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDRjMzQyNWE3M2RmZDhiZmI4ZDUwNWMwODkzNDJlZDg1OTZl
MmQ4MzMuLjYyOWUxMzc1NWZhNWNkMGI3MmY0MTgwZDk2MDQwNmNlODMxNmE0YjIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMu
aCIKQEAgLTE5NjEsNiArMTk2MiwyMiBAQCB2b2lkIERvY3VtZW50OjpjYW5jZWxQYXJzaW5nKCkK
ICAgICB9CiB9CiAKKy8vIFRoaXMgbWV0aG9kIGlzIGRlc2lnbmVkIHRvIG1hdGNoICJBYm9ydGlu
ZyBhIGRvY3VtZW50IGxvYWQiOgorLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jYWJvcnQtYS1kb2N1bWVudAordm9pZCBEb2N1bWVudDo6YWJvcnQo
KQoreworICAgIC8vIEZJWE1FOiBBYm9ydCB0aGUgYWN0aXZlIGRvY3VtZW50cyBvZiBldmVyeSBj
aGlsZCBicm93c2luZyBjb250ZXh0LgorCisgICAgY2FjaGUoKS0+bG9hZGVyKCktPmNhbmNlbFJl
cXVlc3RzKGNhY2hlZFJlc291cmNlTG9hZGVyKCkpOworCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFt
X3BhcnNlciB8fCAhcGFyc2luZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRQYXJzaW5n
KGZhbHNlKTsKKyAgICBtX3BhcnNlci0+c3RvcFBhcnNpbmcoKTsKKyAgICBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+ZmluaXNoZWRQYXJzaW5nKCk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OmltcGxpY2l0T3Bl
bigpCiB7CiAgICAgY2FuY2VsUGFyc2luZygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYmE0OGQ2ZjgyZWNiNDA4YmRi
ZDE0N2Y2MjNlOWU2YzljYmYyMjE2OS4uZGM0YTMwOGZhNDU4MWUwNGUwNzcyZjE1ZGVlMTkzMDc3
NjcyZTZkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC01NDcsNiArNTQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xv
c2UoKTsKICAgICB2b2lkIGltcGxpY2l0Q2xvc2UoKTsKICAgICB2b2lkIGNhbmNlbFBhcnNpbmco
KTsKKyAgICB2b2lkIGFib3J0KCk7CiAKICAgICB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYgdGV4dCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSAwKTsKICAgICB2b2lkIHdyaXRl
KGNvbnN0IFN0cmluZyYgdGV4dCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSAwKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBjYzQ2MTEzZWNmZmZiMmVhM2QxMjg0NDZhZTJhZTA5
MDNkZTdiYzVhLi4xMGJmMGMyMDJkYmQwMWFlMjMzMmE3MDZhZDA4MGQ3MTBmZTRhNDczIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0zMDQsNyArMzA0LDggQEAgdm9pZCBEb2N1bWVu
dExvYWRlcjo6Y29tbWl0RGF0YShjb25zdCBjaGFyKiBieXRlcywgaW50IGxlbmd0aCkKICAgICB9
CiAgICAgLy8gRklYTUU6IERvY3VtZW50V3JpdGVyIHNob3VsZCBiZSBvd25lZCBieSBEb2N1bWVu
dExvYWRlci4KICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+d3JpdGVyKCktPnNldEVuY29kaW5nKGVu
Y29kaW5nLCB1c2VyQ2hvc2VuKTsKLSAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFy
c2luZygpKTsKKyAgICAvLyBGSVhNRTogUmVwbGFjZSB0aGlzIGJlZm9yZSBsYW5kaW5nISEhCisg
ICAgLy8gQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCktPnBhcnNpbmcoKSk7CiAgICAgbV9mcmFt
ZS0+bG9hZGVyKCktPndyaXRlcigpLT5hZGREYXRhKGJ5dGVzLCBsZW5ndGgpOwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCmluZGV4IDI4ZmRhOWFhYTVhMWIzMTgzZDg4
MjBkYzM2OTYxY2IyYWJlMGNhODcuLmY0NjYxMTU2ZTRmMTBiYjhiOTZiMTU3MThiMmRmMmUyMTIx
MDE2NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
CisrKyBiL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCkBAIC0zOTAsNyAr
MzkwLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZShQYXNzT3duUHRyPFNj
aGVkdWxlZE5hdmlnYXRpb24+IHJlZGlyZWN0KQogICAgIG1fcmVkaXJlY3QgPSByZWRpcmVjdDsK
IAogICAgIGlmICghbV9mcmFtZS0+bG9hZGVyKCktPmlzQ29tcGxldGUoKSAmJiBtX3JlZGlyZWN0
LT5pc0xvY2F0aW9uQ2hhbmdlKCkpCi0gICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0
ZWQoKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWJvcnQoKTsKIAogICAgIHN0YXJ0
VGltZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuaCBiL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuaAppbmRleCAzYmY1MDEw
MjRhMWIwNWE1NTQwNDRjOWM2YTNhMmYxMWIwMjA3ZGI2Li4xNDAwYzI1NDViNDU5MDk3MjRlODQ2
MTJmOTMzNTg0M2M2OTAyMjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
U2NoZWR1bGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oCkBA
IC0yOCw4ICsyOCw4IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUmVkaXJlY3RTY2hl
ZHVsZXJfaAotI2RlZmluZSBSZWRpcmVjdFNjaGVkdWxlcl9oCisjaWZuZGVmIE5hdmlnYXRpb25T
Y2hlZHVsZXJfaAorI2RlZmluZSBOYXZpZ2F0aW9uU2NoZWR1bGVyX2gKIAogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTc5LDQgKzc5LDQgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gUmVkaXJlY3RTY2hlZHVsZXJfaAor
I2VuZGlmIC8vIE5hdmlnYXRpb25TY2hlZHVsZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74187</attachid>
            <date>2010-11-17 18:01:51 -0800</date>
            <delta_ts>2010-12-10 16:07:36 -0800</delta_ts>
            <desc>Move abort() to DocumentLoader</desc>
            <filename>bug-45627-20101117180150.patch</filename>
            <type>text/plain</type>
            <size>12679</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMDQ0NDMxMjAxM2E2ZTI0YzU0NTgxNzdkYzNlYjljYzIxMjQ3NjljLi5mZTk2ODBi
NTFkNmQyNzgyN2RlMDE0NjdmZDA5NmJlOWE2Y2FlZGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMTEtMTcgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OOiBJ
bmZpbml0ZSByZWRpcmVjdCBvbiBkZXZlbG9wZXIuYXBwbGUuY29tCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTYyNworCisgICAgICAgICogZmFzdC9l
dmVudHMvc3RvcC1sb2FkLWluLXVubG9hZC1oYW5kbGVyLXVzaW5nLWRvY3VtZW50LXdyaXRlLWV4
cGVjdGVkLnR4dDogU2luY2UgdGhlIHJlZGlyZWN0IHRhcmdldCwgcGFzcy5odG1sLCBkb2Vzbid0
IGhhdmUgYW4gdW5sb2FkIGhhbmRsZXIsCisgICAgICAgICAgaXQgbWFrZXMgc2Vuc2UgdGhhdCB0
aGVyZSBpcyBubyB1bmxvYWQgaGFuZGxlciBvbiB0aGUgcGFnZS4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9zdG9wLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXItdXNpbmctd2luZG93LXN0b3AtZXhwZWN0
ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pdC1hYm9ydHMt
cGFyc2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0t
c3VibWl0LWFib3J0cy1wYXJzaW5nLmh0bWw6IEFkZGVkLiBWZXJpZnkgdGhhdCB1cG9uIHN1Ym1p
dHRpbmcgYSBmb3JtLCBwYXJzaW5nIGlzIGFib3J0ZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
bG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9sb2FkZXIvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLmh0bWw6IEFk
ZGVkLiBWZXJpZnkgdGhhdCB1cG9uIHJlZGlyZWN0aW5nLCBwYXJzaW5nIGlzIGFib3J0ZWQuCisg
ICAgICAgICogZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2xvY2F0aW9uLWNoYW5nZS1hYm9ydHMtcGFy
c2luZy1mYWlsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9s
b2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctcGFzcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJhcmNoaXZlL2xvYWRpbmcvbWFpbnJlc291cmNlLW51bGwtbWltZXR5cGUtY3Jhc2gtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmFyY2hpdmUvbG9hZGluZy9taXNzaW5nLWRhdGEtZXhw
ZWN0ZWQudHh0OgorCiAyMDEwLTExLTE2ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gZXhwZWN0YXRpb25zIHVwZGF0
ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxv
YWQtaGFuZGxlci11c2luZy1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zdG9wLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXItdXNpbmctZG9jdW1lbnQt
d3JpdGUtZXhwZWN0ZWQudHh0CmluZGV4IDZhZGFkMmRmZTg4NjU5MzRhZTVjNjhjNzAyZDY3MDVi
YzcwYzllZjguLjY5Y2ZjNWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEzNGFmOTczNmRkNTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxvYWQtaGFuZGxl
ci11c2luZy1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3RvcC1sb2FkLWluLXVubG9hZC1oYW5kbGVyLXVzaW5nLWRvY3VtZW50LXdyaXRl
LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDIgQEAKLWZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMC0tPi0tPiIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCiBQQVNTCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxvYWQtaGFuZGxl
ci11c2luZy13aW5kb3ctc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zdG9wLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXItdXNpbmctd2luZG93LXN0b3AtZXhwZWN0ZWQu
dHh0CmluZGV4IDZhZGFkMmRmZTg4NjU5MzRhZTVjNjhjNzAyZDY3MDViYzcwYzllZjguLjY5Y2Zj
NWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEzNGFmOTczNmRkNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3N0b3AtbG9hZC1pbi11bmxvYWQtaGFuZGxlci11c2luZy13aW5kb3ct
c3RvcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3RvcC1sb2Fk
LWluLXVubG9hZC1oYW5kbGVyLXVzaW5nLXdpbmRvdy1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMSwz
ICsxLDIgQEAKLWZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBoYXMg
MSBvbnVubG9hZCBoYW5kbGVyKHMpCiBQQVNTCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQwMTZjOGVmMTJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXQtYWJv
cnRzLXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pdC1hYm9ydHMtcGFyc2luZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNhYmMzNGU5ZmVhYTAxNjYwMWNlOGUxZWM0YzY4MDQ1ODIzYzgzOGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pdC1hYm9y
dHMtcGFyc2luZy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0
aW9uPSJyZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLXBhc3MuaHRtbCI+
PC9mb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0KCk7Cis8
L3NjcmlwdD4KK0ZBSUw6IFBhcnNpbmcgZGlkIG5vdCBhYm9ydCBvbiBhIGZvcm0gc3VibWl0Lgor
PG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0nMCxyZXNvdXJjZXMvbG9jYXRpb24t
Y2hhbmdlLWFib3J0cy1wYXJzaW5nLWZhaWwuaHRtbCc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQw
MTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9j
YXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9sb2NhdGlvbi1jaGFuZ2Ut
YWJvcnRzLXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2F0aW9uLWNo
YW5nZS1hYm9ydHMtcGFyc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZTZkNDExYWJhNDE4MTJmMzQ0
OWRmZGI0NjVmMDFmNWE2YmJjOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmcuaHRtbApAQCAtMCwwICsxLDkg
QEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKK30KK3dpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ3Jlc291cmNlcy9s
b2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctcGFzcy5odG1sJzsKKzwvc2NyaXB0PgorRkFJ
TDogUGFyc2luZyBkaWQgbm90IGFib3J0IG9uIGEgbG9jYXRpb24gY2hhbmdlLgorPG1ldGEgaHR0
cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0nMCxyZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFi
b3J0cy1wYXJzaW5nLWZhaWwuaHRtbCc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9yZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWZhaWwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRz
LXBhcnNpbmctZmFpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MzVmMTEyYzFlNDA1MjljNDY5ODhkYTJl
NGNmYzYxOGY3NjFiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRl
ci9yZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWZhaWwuaHRtbApAQCAt
MCwwICsxLDUgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0PgorRkFJTApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2xvY2F0aW9uLWNo
YW5nZS1hYm9ydHMtcGFyc2luZy1wYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9y
ZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLXBhc3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZmNkNWY3ZjQxZDYxZGJiMjljMjJkM2E5NmZmOWRjNDg5ZjUzZGM0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2xvY2F0aW9uLWNoYW5n
ZS1hYm9ydHMtcGFyc2luZy1wYXNzLmh0bWwKQEAgLTAsMCArMSw1IEBACis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cis8L3NjcmlwdD4KK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmFyY2hpdmUvbG9hZGluZy9tYWlucmVzb3VyY2UtbnVsbC1taW1ldHlwZS1jcmFzaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL2xvYWRpbmcvbWFpbnJlc291cmNlLW51bGwt
bWltZXR5cGUtY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IDNjM2NkYWM5YmIyMTU1NjM4MDE1Yzlm
MDg5Y2ZhYjlmMmU2ODY2NTUuLjFjNzJmZTdjZDExYjhmNzY2MTYxOThkNWMyNzc3N2Q2NjgzNDVk
ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvbG9hZGluZy9tYWlucmVzb3Vy
Y2UtbnVsbC1taW1ldHlwZS1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXJjaGl2ZS9sb2FkaW5nL21haW5yZXNvdXJjZS1udWxsLW1pbWV0eXBlLWNyYXNoLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDYgQEAKIG1haW4gZnJhbWUgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCiBtYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCi1tYWluIGZyYW1l
IC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiByZXNvdXJjZXMvbWFpbnJlc291cmNl
LW51bGwtbWltZXR5cGUud2ViYXJjaGl2ZSAKIG1haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TDogcmVzb3VyY2VzL21haW5yZXNvdXJjZS1udWxsLW1pbWV0eXBlLndlYmFyY2hpdmUgCiBtYWlu
IGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmFyY2hpdmUvbG9hZGluZy9taXNzaW5nLWRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViYXJjaGl2ZS9sb2FkaW5nL21pc3NpbmctZGF0YS1leHBlY3RlZC50eHQKaW5kZXggMDk4
NTI3NjNhNTRmYzQ3YjgxYjYyZTJjOTIyM2E2OWMxMmYyNGViYi4uNjExNDUxMzdiYmU5MzYzZmU4
MGVmNTFiNjBkY2RjMmJkMjlkZTJlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXJjaGl2
ZS9sb2FkaW5nL21pc3NpbmctZGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXJjaGl2ZS9sb2FkaW5nL21pc3NpbmctZGF0YS1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBA
CiBtYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQogbWFpbiBmcmFt
ZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQotbWFpbiBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTDogcmVzb3VyY2VzL21pc3NpbmctZGF0YS53ZWJhcmNoaXZlIAogbWFpbiBm
cmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiByZXNvdXJjZXMvbWlzc2luZy1kYXRhLndlYmFyY2hp
dmUgCiBtYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNjZmQzNmQ2MDkxZTE2
NDE5NjQwYTk1MzA1ZDQ3MmJkYzEwZDg1YS4uYmQ3NTM2ODVjZWM4NWE2OTgyZWE5Mjk2ZGMyOWYx
ZWU2MDcxMmZjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0xMS0xNyAgVG9ueSBHZW50aWxjb3JlICA8
dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJFR1JFU1NJT046IEluZmluaXRlIHJlZGlyZWN0IG9uIGRldmVsb3Blci5h
cHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ1NjI3CisKKyAgICAgICAgQmFzZWQgdXBvbjoKKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwNjI1CisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
bG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvbG9hZGVyL2xvY2F0aW9uLWNoYW5nZS1hYm9ydHMtcGFyc2luZy5odG1sCisKKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXI6OmFib3J0KTogQWRkIGFuIGFib3J0IG1ldGhvZCBhcyBzcGVjaWZpZWQgaW4gaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jYWJvcnQtYS1kb2N1
bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjb21taXREYXRhKTogVGhp
cyBBU1NFUlQgZmFpbHMgbm93LCBidXQgZG9lc24ndCBzZWVtIHRvIGNhdXNlIGFueSBwcm9ibGVt
cy4KKyAgICAgICAgICBUaGUgc3BlYyBzYXlzIHRvICgxKSBhYm9ydCBmZXRjaGVzLCAoMikgZGlz
Y2FyZCB0YXNrZXMgcXVldWVkIGZvciB0aGVtLCBhbmQgKDMpIGRpc2NhcmQgYW55IGZ1cnRoZXIg
ZGF0YSByZWNlaXZlZC4KKyAgICAgICAgICBJIGJlbGlldmUgSSdtIG1pc3NpbmcgIzMsIGJ1dCBp
dCBpc24ndCBjbGVhciB0byBtZSBob3cgdG8gYWNjb21wbGlzaCB0aGF0LiBJIGludGVuZCB0byBy
ZXNvbHZlIHRoaXMgYmVmb3JlIGxhbmRpbmcsIGJ1dAorICAgICAgICAgIHdhbnRlZCB0byBnZXQg
c29tZSBpZGVhIG9uIGhvdyB0byBkbyB0aGF0LgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDogCisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZSk6IEFib3J0IHRoZSBk
b2N1bWVudCBzeW5jaHJvbm91c2x5IHVwb24gc2NoZWR1bGluZyBhIHJlZGlyZWN0LgorICAgICAg
ICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmg6IEZpbmlzaCB1cCByZW5hbWUgc3RhcnRl
ZCBpbiByNjkwMzkuCisKIDIwMTAtMTEtMTYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBjYzQ2MTEzZWNmZmZiMmVhM2QxMjg0NDZhZTJhZTA5
MDNkZTdiYzVhLi4xODg4NDE2MDU5OTQ5MDUxNjVjNDVmMzlhYTZmOGY4NWY3Y2IwOTVhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNl
TG9hZGVyLmgiCisjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMjU0
LDYgKzI1NSwyNSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZyhEYXRhYmFzZVBv
bGljeSBkYXRhYmFzZVBvbGljeSkKICAgICBtX2lzU3RvcHBpbmcgPSBmYWxzZTsKIH0KIAorLy8g
VGhpcyBtZXRob2QgaXMgZGVzaWduZWQgdG8gbWF0Y2ggIkFib3J0aW5nIGEgZG9jdW1lbnQgbG9h
ZCI6CisvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3Jr
LyNhYm9ydC1hLWRvY3VtZW50CisvLyBJdCBpcyB2YWd1ZWx5IHNpbWlsYXIgdG8gc3RvcExvYWRp
bmcoKSwgYnV0IGRvZXMgbm90IHNldCBlcnJvciBjb25kaXRpb25zLgordm9pZCBEb2N1bWVudExv
YWRlcjo6YWJvcnQoKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3Vt
ZW50KCk7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKworICAgIC8vIEZJWE1FOiBBYm9ydCB0aGUg
YWN0aXZlIGRvY3VtZW50cyBvZiBldmVyeSBjaGlsZCBicm93c2luZyBjb250ZXh0LgorCisgICAg
Y2FjaGUoKS0+bG9hZGVyKCktPmNhbmNlbFJlcXVlc3RzKGRvY3VtZW50LT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpKTsKKyAgICBpZiAoZG9jdW1lbnQtPnBhcnNpbmcoKSkKKyAgICAgICAgZG9jdW1l
bnQtPnNldFBhcnNpbmcoZmFsc2UpOworICAgIGlmIChEb2N1bWVudFBhcnNlciogcGFyc2VyID0g
ZG9jdW1lbnQtPnBhcnNlcigpKQorICAgICAgICBwYXJzZXItPnN0b3BQYXJzaW5nKCk7CisgICAg
aWYgKG1fZnJhbWUpCisgICAgICAgIERvY3VtZW50TG9hZGVyOjpmcmFtZUxvYWRlcigpLT5maW5p
c2hlZFBhcnNpbmcoKTsKK30KKwogdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0dXBGb3JSZXBsYWNl
KCkKIHsKICAgICBmcmFtZUxvYWRlcigpLT5zZXR1cEZvclJlcGxhY2UoKTsKQEAgLTMwNCw3ICsz
MjQsOCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjb21taXREYXRhKGNvbnN0IGNoYXIqIGJ5dGVz
LCBpbnQgbGVuZ3RoKQogICAgIH0KICAgICAvLyBGSVhNRTogRG9jdW1lbnRXcml0ZXIgc2hvdWxk
IGJlIG93bmVkIGJ5IERvY3VtZW50TG9hZGVyLgogICAgIG1fZnJhbWUtPmxvYWRlcigpLT53cml0
ZXIoKS0+c2V0RW5jb2RpbmcoZW5jb2RpbmcsIHVzZXJDaG9zZW4pOwotICAgIEFTU0VSVChtX2Zy
YW1lLT5kb2N1bWVudCgpLT5wYXJzaW5nKCkpOworICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMg
YmVmb3JlIGxhbmRpbmchISEKKyAgICAvLyBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFy
c2luZygpKTsKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+d3JpdGVyKCktPmFkZERhdGEoYnl0ZXMs
IGxlbmd0aCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IGUxZjc1ZWRlMTRjYmE3
NjBhZGM3ZmRlMzVjZTE2ZDIxY2NhYTIwMjIuLmM3NTQ4ZGIwNjU2YmRhMzhkMDNiM2U2NjM3YjUy
YzUxOWI1MTU2NzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtOTMsNiArOTMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgcmVwbGFjZVJlcXVlc3RVUkxGb3JTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uKGNvbnN0IEtVUkwmKTsKICAgICAgICAgYm9vbCBpc1N0b3BwaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9pc1N0b3BwaW5nOyB9CiAgICAgICAgIHZvaWQgc3RvcExvYWRp
bmcoRGF0YWJhc2VQb2xpY3kgPSBEYXRhYmFzZVBvbGljeVN0b3ApOworICAgICAgICB2b2lkIGFi
b3J0KCk7CiAgICAgICAgIHZvaWQgc2V0Q29tbWl0dGVkKGJvb2wgY29tbWl0dGVkKSB7IG1fY29t
bWl0dGVkID0gY29tbWl0dGVkOyB9CiAgICAgICAgIGJvb2wgaXNDb21taXR0ZWQoKSBjb25zdCB7
IHJldHVybiBtX2NvbW1pdHRlZDsgfQogICAgICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZGluZzsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlv
blNjaGVkdWxlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApp
bmRleCAyOGZkYTlhYWE1YTFiMzE4M2Q4ODIwZGMzNjk2MWNiMmFiZTBjYTg3Li44NzEyYTgzYjg2
ZTExODMxOGY4MzdkNzBjNjVlN2RmYTU2ZGFjY2M4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
U2NoZWR1bGVyLmNwcApAQCAtMzkwLDcgKzM5MCw4IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxl
cjo6c2NoZWR1bGUoUGFzc093blB0cjxTY2hlZHVsZWROYXZpZ2F0aW9uPiByZWRpcmVjdCkKICAg
ICBtX3JlZGlyZWN0ID0gcmVkaXJlY3Q7CiAKICAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5p
c0NvbXBsZXRlKCkgJiYgbV9yZWRpcmVjdC0+aXNMb2NhdGlvbkNoYW5nZSgpKQotICAgICAgICBt
X2ZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVkKCk7CisgICAgICAgIGlmIChEb2N1bWVudExvYWRl
ciogZG9jdW1lbnRMb2FkZXIgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSkK
KyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5hYm9ydCgpOwogCiAgICAgc3RhcnRUaW1lcigp
OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oIGIv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5oCmluZGV4IDNiZjUwMTAyNGExYjA1
YTU1NDA0NGM5YzZhM2EyZjExYjAyMDdkYjYuLjE0MDBjMjU0NWI0NTkwOTcyNGU4NDYxMmY5MzM1
ODQzYzY5MDIyOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmgKQEAgLTI4LDgg
KzI4LDggQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBSZWRpcmVjdFNjaGVkdWxlcl9o
Ci0jZGVmaW5lIFJlZGlyZWN0U2NoZWR1bGVyX2gKKyNpZm5kZWYgTmF2aWdhdGlvblNjaGVkdWxl
cl9oCisjZGVmaW5lIE5hdmlnYXRpb25TY2hlZHVsZXJfaAogCiAjaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgpAQCAtNzksNCArNzksNCBAQCBwcml2YXRlOgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBSZWRpcmVjdFNjaGVkdWxlcl9oCisjZW5kaWYg
Ly8gTmF2aWdhdGlvblNjaGVkdWxlcl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76279</attachid>
            <date>2010-12-10 16:07:40 -0800</date>
            <delta_ts>2010-12-10 16:10:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45627-20101210160739.patch</filename>
            <type>text/plain</type>
            <size>7163</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzgxNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMTItMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdS
RVNTSU9OOiBJbmZpbml0ZSByZWRpcmVjdCBvbiBkZXZlbG9wZXIuYXBwbGUuY29tCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTYyNworCisgICAgICAg
IFRlc3RzOiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pdC1hYm9ydHMtcGFyc2luZy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2xvYWRlci9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmcuaHRt
bAorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgbm90IHByZXR0eSwgYnV0IGl0IGZpeGVzIHRoZSBi
dWcuICBJIHN0b2xlIHRoaXMgYXBwcm9hY2gKKyAgICAgICAgZnJvbSB0aGUgb2xkIEhUTUwgcGFy
c2VyIChhcyBzdWdnZXN0ZWQgYnkgRXJpYyBTZWlkZWwpLiAgVGhlIG90aGVyCisgICAgICAgIGFw
cHJvYWNoZXMgdGhhdCBmb2xrcyB0cmllZCBmb3IgdGhpcyBidWcgYXJlIGJldHRlciwgYnV0IGl0
J3MgaW5jbGVhcgorICAgICAgICBob3cgdG8gZ2V0IHRoZW0gdG8gd29yayBjb3JyZWN0bHkuICBJ
J3ZlIGFkZGVkIGEgbGFyZ2UgRklYTUUgY29tbWVudC4KKworICAgICAgICAqIGh0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQ
YXJzZXI6OnB1bXBUb2tlbml6ZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjppc1BhcnNpbmdGcmFn
bWVudCk6CisKIDIwMTAtMTItMTAgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYSBDaGFuLgpJbmRleDogV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24gNzM3OTkpCisrKyBXZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxNyw2ICsyMTcsMTUgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIo
UwogICAgIEhUTUxQYXJzZXJTY2hlZHVsZXI6OlB1bXBTZXNzaW9uIHNlc3Npb247CiAgICAgLy8g
RklYTUU6IFRoaXMgbG9vcCBib2R5IGhhcyBpcyBub3cgdG9vIGxvbmcgYW5kIG5lZWRzIGNsZWFu
dXAuCiAgICAgd2hpbGUgKG1vZGUgPT0gRm9yY2VTeW5jaHJvbm91cyB8fCBtX3BhcnNlclNjaGVk
dWxlci0+c2hvdWxkQ29udGludWVQYXJzaW5nKHNlc3Npb24pKSB7CisgICAgICAgIC8vIEZJWE1F
OiBJdCdzIHdyb25nIGZvciB0aGUgSFRNTERvY3VtZW50UGFyc2VyIHRvIHJlYWNoIGJhY2sgdG8g
dGhlCisgICAgICAgIC8vICAgICAgICBGcmFtZSwgYnV0IHRoaXMgYXBwcm9hY2ggaXMgaG93IHRo
ZSBvbGQgcGFyc2VyIGhhbmRsZWQKKyAgICAgICAgLy8gICAgICAgIHN0b3BwaW5nIHdoZW4gdGhl
IHBhZ2UgYXNzaWducyB3aW5kb3cubG9jYXRpb24uICBXaGF0IHJlYWxseQorICAgICAgICAvLyAg
ICAgICAgc2hvdWxkIGhhcHBlbiBpcyB0aGF0IGFzc2lnbmluZyB3aW5kb3cubG9jYXRpb24gY2F1
c2VzIHRoZQorICAgICAgICAvLyAgICAgICAgcGFyc2VyIHRvIHN0b3AgcGFyc2luZyBjbGVhbmx5
LiAgVGhlIHByb2JsZW0gaXMgd2UncmUgbm90CisgICAgICAgIC8vICAgICAgICBwZXJwYXJlZCB0
byBkbyB0aGF0IGF0IGV2ZXJ5IHBvaW50IHdoZXJlIHdlIHJ1biBKYXZhU2NyaXB0LgorICAgICAg
ICBpZiAoIW1fdHJlZUJ1aWxkZXItPmlzUGFyc2luZ0ZyYWdtZW50KCkKKyAgICAgICAgICAgICYm
IGRvY3VtZW50KCktPmZyYW1lKCkgJiYgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+bmF2aWdhdGlvblNj
aGVkdWxlcigpLT5sb2NhdGlvbkNoYW5nZVBlbmRpbmcoKSkKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBpZiAoIW1fdG9rZW5pemVyLT5uZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksIG1f
dG9rZW4pKQogICAgICAgICAgICAgYnJlYWs7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuaAkocmV2aXNpb24gNzM3OTkpCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw4IEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgfkhUTUxUcmVlQnVpbGRlcigpOwogCisgICAgYm9vbCBpc1BhcnNpbmdGcmFn
bWVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKTsgfQor
CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wgcGF1c2VkKSB7
IG1faXNQYXVzZWQgPSBwYXVzZWQ7IH0KQEAgLTExNCw4ICsxMTYsNiBAQCBwcml2YXRlOgogICAg
IEhUTUxUcmVlQnVpbGRlcihIVE1MVG9rZW5pemVyKiwgSFRNTERvY3VtZW50KiwgYm9vbCByZXBv
cnRFcnJvcnMsIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpOwogICAgIEhUTUxUcmVlQnVp
bGRlcihIVE1MVG9rZW5pemVyKiwgRG9jdW1lbnRGcmFnbWVudCosIEVsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIGJvb2wgdXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3MpOwogCi0gICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJu
ICEhbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKTsgfQotCiAgICAgdm9pZCBwcm9jZXNzVG9r
ZW4oQXRvbWljSFRNTFRva2VuJik7CiAKICAgICB2b2lkIHByb2Nlc3NEb2N0eXBlVG9rZW4oQXRv
bWljSFRNTFRva2VuJik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MzgxNikKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEwLTEyLTEwICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTjogSW5maW5pdGUgcmVkaXJlY3Qgb24g
ZGV2ZWxvcGVyLmFwcGxlLmNvbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDU2MjcKKworICAgICAgICBUZXN0cyBvcmlnaW5hbGx5IGJ5IFRvbnkgR2Vu
dGlsY29yZS4KKworICAgICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJz
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIvZm9ybS1zdWJt
aXQtYWJvcnRzLXBhcnNpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIvbG9j
YXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9sb2FkZXIvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRz
LXBhcnNpbmctZmFpbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9yZXNvdXJj
ZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLXBhc3MuaHRtbDogQWRkZWQuCisKIDIw
MTAtMTItMTAgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
Zm9ybS1zdWJtaXQtYWJvcnRzLXBhcnNpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWl0LWFib3J0cy1wYXJzaW5nLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWl0
LWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAor
UEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXQtYWJvcnRzLXBh
cnNpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1
Ym1pdC1hYm9ydHMtcGFyc2luZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvZm9ybS1zdWJtaXQtYWJvcnRzLXBhcnNpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMCBAQAorPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249InJlc291cmNlcy9sb2Nh
dGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctcGFzcy5odG1sIj48L2Zvcm0+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Cit9Citkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsKKzwvc2NyaXB0PgorRkFJTDogUGFy
c2luZyBkaWQgbm90IGFib3J0IG9uIGEgZm9ybSBzdWJtaXQuCis8bWV0YSBodHRwLWVxdWl2PSJy
ZWZyZXNoIiBjb250ZW50PScwLHJlc291cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNp
bmctZmFpbC5odG1sJz4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2F0aW9uLWNo
YW5nZS1hYm9ydHMtcGFyc2luZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2F0aW9uLWNoYW5n
ZS1hYm9ydHMtcGFyc2luZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAK
K1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2F0aW9uLWNoYW5nZS1hYm9y
dHMtcGFyc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xv
Y2F0aW9uLWNoYW5nZS1hYm9ydHMtcGFyc2luZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQord2luZG93LmxvY2F0
aW9uLmhyZWYgPSAncmVzb3VyY2VzL2xvY2F0aW9uLWNoYW5nZS1hYm9ydHMtcGFyc2luZy1wYXNz
Lmh0bWwnOworPC9zY3JpcHQ+CitGQUlMOiBQYXJzaW5nIGRpZCBub3QgYWJvcnQgb24gYSBsb2Nh
dGlvbiBjaGFuZ2UuCis8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PScwLHJlc291
cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctZmFpbC5odG1sJz4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBh
cnNpbmctZmFpbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jl
c291cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJvcnRzLXBhcnNpbmctZmFpbC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2xvY2F0aW9uLWNoYW5n
ZS1hYm9ydHMtcGFyc2luZy1mYWlsLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworPC9zY3JpcHQ+CitGQUlMCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5n
LXBhc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJj
ZXMvbG9jYXRpb24tY2hhbmdlLWFib3J0cy1wYXJzaW5nLXBhc3MuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9sb2NhdGlvbi1jaGFuZ2UtYWJv
cnRzLXBhcnNpbmctcGFzcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKKzxzY3Jp
cHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0PgorUEFTUwo=
</data>
<flag name="review"
          id="67203"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="67204"
          type_id="3"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>