<?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>45984</bug_id>
          
          <creation_ts>2010-09-17 12:13:24 -0700</creation_ts>
          <short_desc>[Qt] QtWebProcess should clean up shared memory map files on close</short_desc>
          <delta_ts>2010-09-22 02:18:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>ossy</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280777</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-17 12:13:24 -0700</bug_when>
    <thetext>UpdateChunk uses mapped shared memory files, these files should be placed into the temporary directory and removed on QtWebProcess close. Implement a singleton pool class to track shared memory and clean up files from disk if RunLoop stops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280779</commentid>
    <comment_count>1</comment_count>
      <attachid>67929</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-17 12:16:57 -0700</bug_when>
    <thetext>Created attachment 67929
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280783</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-17 12:22:39 -0700</bug_when>
    <thetext>Attachment 67929 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/MappedMemory.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/Shared/qt/MappedMemory.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280784</commentid>
    <comment_count>3</comment_count>
      <attachid>67929</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-17 12:25:29 -0700</bug_when>
    <thetext>Comment on attachment 67929
proposed patch

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

This seems to include code written by a.o. Antti. Why isn&apos;t he credited?

&gt; WebKit2/Shared/qt/UpdateChunk.cpp:4
&gt; + * Copyright (C) 2010 Andras Becsi (abecsi@inf.u-szeged.hu), University of Szeged

Are we now going to get copyrights statements for everyone working at WebKit at University of Szeged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280785</commentid>
    <comment_count>4</comment_count>
      <attachid>67931</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-17 12:25:37 -0700</bug_when>
    <thetext>Created attachment 67931
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280791</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-17 12:27:51 -0700</bug_when>
    <thetext>Attachment 67931 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/MappedMemory.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280810</commentid>
    <comment_count>6</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-17 12:45:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 67929 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67929&amp;action=prettypatch
&gt; 
&gt; This seems to include code written by a.o. Antti. Why isn&apos;t he credited?

MappedMemory.h does include code written by Antti, I suppose, so I left the copyright text unchanged, but MappedMemory.cpp shouldn&apos;t.
If I&apos;m wrong, please point me to the snippet which includes code from Antti.

&gt; 
&gt; &gt; WebKit2/Shared/qt/UpdateChunk.cpp:4
&gt; &gt; + * Copyright (C) 2010 Andras Becsi (abecsi@inf.u-szeged.hu), University of Szeged
&gt; 
&gt; Are we now going to get copyrights statements for everyone working at WebKit at University of Szeged?

I think this should be a decision of each individual developer. I usually use this template, if it is not appropriate I&apos;ll change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280886</commentid>
    <comment_count>7</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-09-17 14:52:59 -0700</bug_when>
    <thetext>
&gt; &gt; &gt; WebKit2/Shared/qt/UpdateChunk.cpp:4
&gt; &gt; &gt; + * Copyright (C) 2010 Andras Becsi (abecsi@inf.u-szeged.hu), University of Szeged
&gt; &gt; 
&gt; &gt; Are we now going to get copyrights statements for everyone working at WebKit at University of Szeged?
&gt; 
&gt; I think this should be a decision of each individual developer. I usually use this template, if it is not appropriate I&apos;ll change it.

Personally, I would keep Szeged Copyright and add a &quot;Contributor(s)&quot;  field with people names.

But in the end, it is up to you, I think. You get to see that is reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280952</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-17 15:56:18 -0700</bug_when>
    <thetext>
&gt; Personally, I would keep Szeged Copyright and add a &quot;Contributor(s)&quot;  field with people names.
&gt; 
&gt; But in the end, it is up to you, I think. You get to see that is reasonable.

We kind of have ChangeLogs and git blame for these kinds of things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281100</commentid>
    <comment_count>9</comment_count>
      <attachid>68004</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-18 02:17:56 -0700</bug_when>
    <thetext>Created attachment 68004
proposed patch

Changed, to get the focus back on the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281101</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-18 02:19:15 -0700</bug_when>
    <thetext>Attachment 68004 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/MappedMemory.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281102</commentid>
    <comment_count>11</comment_count>
      <attachid>68004</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-18 02:20:57 -0700</bug_when>
    <thetext>Comment on attachment 68004
proposed patch

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

&gt; WebKit2/ChangeLog:4
&gt; +

Would be nice with a comment as &quot;Based on code by Antti Koivisto&quot; or what ever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281103</commentid>
    <comment_count>12</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-18 02:52:31 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 68004 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68004&amp;action=prettypatch
&gt; 
&gt; &gt; WebKit2/ChangeLog:4
&gt; &gt; +
&gt; 
&gt; Would be nice with a comment as &quot;Based on code by Antti Koivisto&quot; or what ever.

I do not fully understand why you think this is needed.
I only relocated the MappedMemory struct code (which was previously in UpdateChunk.cpp, and checked in by Antti) to MappedMemory.h. That is why I left the copyright as it was in UpdateChunk.cpp. This is only needed because I store MappedMemory in my MappedMemoryPool class which is the implementation I mention in the ChangeLog. I do not see the &quot;based on&quot; relation here, but maybe I am wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281114</commentid>
    <comment_count>13</comment_count>
      <attachid>68005</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-18 03:23:54 -0700</bug_when>
    <thetext>Created attachment 68005
proposed patch

Update ChangeLog text to avoid confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281115</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-18 03:25:20 -0700</bug_when>
    <thetext>Attachment 68005 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/MappedMemory.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281117</commentid>
    <comment_count>15</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-18 04:41:23 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 68004 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68004&amp;action=prettypatch
&gt; &gt; 
&gt; &gt; &gt; WebKit2/ChangeLog:4
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; Would be nice with a comment as &quot;Based on code by Antti Koivisto&quot; or what ever.
&gt; 
&gt; I do not fully understand why you think this is needed.
&gt; I only relocated the MappedMemory struct code (which was previously in UpdateChunk.cpp, and checked in by Antti) to MappedMemory.h. That is why I left the copyright as it was in UpdateChunk.cpp. This is only needed because I store MappedMemory in my MappedMemoryPool class which is the implementation I mention in the ChangeLog. I do not see the &quot;based on&quot; relation here, but maybe I am wrong.

Ah OK, that wasn&apos;t obvious from the diff - I should probably have looked better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281118</commentid>
    <comment_count>16</comment_count>
      <attachid>68005</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-18 04:43:07 -0700</bug_when>
    <thetext>Comment on attachment 68005
proposed patch

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

&gt; WebKit2/ChangeLog:14
&gt; +        * Shared/qt/MappedMemory.cpp: Added.

It seems that you didn&apos;t do it correctly, as this was a moved/renamed file. Not a newly added one.

You need to use git mv or the svn equivalent. r- because of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281119</commentid>
    <comment_count>17</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-18 04:51:54 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 68005 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68005&amp;action=prettypatch
&gt; 
&gt; &gt; WebKit2/ChangeLog:14
&gt; &gt; +        * Shared/qt/MappedMemory.cpp: Added.
&gt; 
&gt; It seems that you didn&apos;t do it correctly, as this was a moved/renamed file. Not a newly added one.
&gt; 
&gt; You need to use git mv or the svn equivalent. r- because of this.

No, it was not. MappedMemory.cpp is a new file, which implements the MappedMemoryPool class. The moved code snippet is the MappedMemory struct which is in MappedMemory.h and was previously in UpdateChunk.cpp (and forward declared in UpdateChunk.h), there is no moved file in my patch.
But I should probably rename MappedMemory.cpp to MappedMemoryPool.cpp, since this is what it implements, and this might be the root of confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281120</commentid>
    <comment_count>18</comment_count>
      <attachid>68006</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-18 05:10:44 -0700</bug_when>
    <thetext>Created attachment 68006
proposed patch

Renamed MappedMemory.cpp to MappedMemoryPool.cpp and made the ChangeLog more informative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281121</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-18 05:15:26 -0700</bug_when>
    <thetext>Attachment 68006 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/MappedMemoryPool.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281309</commentid>
    <comment_count>20</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-19 13:56:24 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=68006) [details]
&gt; proposed patch
&gt; 
&gt; Renamed MappedMemory.cpp to MappedMemoryPool.cpp and made the ChangeLog more informative.

Generally looks good to me. The main problem I see is calling cleanUp in RunLoop::stop.

&gt; WebKit2/Platform/qt/RunLoopQt.cpp:69
&gt; +    WebKit::MappedMemoryPool::instance()-&gt;cleanUp();

This does not belongs to here. For assuring that cleanUp will be called on exit I would use the QCoreApplication::aboutToQuit signal. MappedMemoryPool could be a QObject with the cleanUp slot and you could connect that to the signal in the ctor. Could you take a chance on that?

&gt; WebKit2/Shared/qt/MappedMemory.h:47
&gt; +    Vector&lt;MappedMemory&gt;* pool();

I think wrapper methods for accessing the pool instead of public access would be somewhat more encapsulated.

&gt; WebKit2/Shared/qt/MappedMemoryPool.cpp:47
&gt; +        MappedMemory* chunk = &amp;m_pool.at(i);

I would use a reference here.

(Sorry for the irregular way of review but I have still no bug edit permission currently.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281617</commentid>
    <comment_count>21</comment_count>
      <attachid>68099</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-20 09:57:26 -0700</bug_when>
    <thetext>Created attachment 68099
proposed patch v2

Uploading new patch which takes Balazs&apos;s comment into consideration.

Thanks Balazs for the reasonable suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281619</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-20 10:00:13 -0700</bug_when>
    <thetext>Attachment 68099 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/MappedMemoryPool.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/Shared/qt/MappedMemoryPool.cpp:33:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281640</commentid>
    <comment_count>23</comment_count>
      <attachid>68109</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-20 10:25:19 -0700</bug_when>
    <thetext>Created attachment 68109
proposed patch v2

Corrected the weird style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281643</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-20 10:29:04 -0700</bug_when>
    <thetext>Attachment 68109 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/MappedMemoryPool.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282176</commentid>
    <comment_count>25</comment_count>
      <attachid>68109</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-21 03:36:30 -0700</bug_when>
    <thetext>Comment on attachment 68109
proposed patch v2

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

&gt; WebKit2/Shared/qt/MappedMemoryPool.cpp:29
&gt; +#include &quot;MappedMemory.h&quot;
&gt; +
&gt; +#include &quot;StdLibExtras.h&quot;

#include &quot;config.h&quot; should be the first include,
please add it before landing. Otherwise LGTM, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282186</commentid>
    <comment_count>26</comment_count>
      <attachid>68109</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-21 03:54:32 -0700</bug_when>
    <thetext>Comment on attachment 68109
proposed patch v2

We shouldn&apos;t include config.h in WebKit2 code,
I realized it is a bug in check-webkit-style script:
https://bugs.webkit.org/show_bug.cgi?id=46032

Style is correct, so cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282247</commentid>
    <comment_count>27</comment_count>
      <attachid>68109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-21 06:06:02 -0700</bug_when>
    <thetext>Comment on attachment 68109
proposed patch v2

Clearing flags on attachment: 68109

Committed r67945: &lt;http://trac.webkit.org/changeset/67945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282248</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-21 06:06:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282251</commentid>
    <comment_count>29</comment_count>
      <attachid>68109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-21 06:19:08 -0700</bug_when>
    <thetext>Comment on attachment 68109
proposed patch v2

Rejecting patch 68109 from commit-queue.

Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
#1 FAILED at 1.
Hunk #2 FAILED at 32.
Hunk #3 FAILED at 55.
Hunk #4 FAILED at 81.
4 out of 4 hunks FAILED -- saving rejects to file WebKit2/Shared/qt/UpdateChunk.cpp.rej
patching file WebKit2/Shared/qt/UpdateChunk.h
Hunk #1 FAILED at 27.
Hunk #2 FAILED at 38.
2 out of 2 hunks FAILED -- saving rejects to file WebKit2/Shared/qt/UpdateChunk.h.rej
patching file WebKit2/WebKit2.pro
Hunk #1 FAILED at 162.
Hunk #2 FAILED at 294.
2 out of 2 hunks FAILED -- saving rejects to file WebKit2/WebKit2.pro.rej

Full output: http://queues.webkit.org/results/4020089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282253</commentid>
    <comment_count>30</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-21 06:23:15 -0700</bug_when>
    <thetext>Eric, have you got any idea what happened?
CQ landed the patch and after that it can&apos;t apply again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282254</commentid>
    <comment_count>31</comment_count>
      <attachid>68109</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-21 06:24:35 -0700</bug_when>
    <thetext>Comment on attachment 68109
proposed patch v2

Clearing flags.
Something strange happened with the commit-bot. The change was already landed by the commit-queue before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282285</commentid>
    <comment_count>32</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-09-21 07:13:25 -0700</bug_when>
    <thetext>If the app crashes the map files will still be left hanging around forever, so this doesn&apos;t really solve the problem. Maybe we could have a directory namespace for our map files and just wipe it out completely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282290</commentid>
    <comment_count>33</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-21 07:21:00 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; If the app crashes the map files will still be left hanging around forever, so this doesn&apos;t really solve the problem. Maybe we could have a directory namespace for our map files and just wipe it out completely?

How would you wipe out the dir if the app crashes. As I see it you still would have to implement a crash handler, or something similar.
On crash the files are left in /tmp/ now which is a tmpfs or is whiped out on reboot on Linux (at least by distributions I now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282356</commentid>
    <comment_count>34</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-09-21 09:37:54 -0700</bug_when>
    <thetext>It would probably be sufficient to wipe out the leftover files next time the app is used. That stops unlimited accumulation of files. 

Kimmo suggested it might be a good idea to actually unlink the files right away after they have been mmapd in the client. Then there would be no need for explicit cleanup on exit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282418</commentid>
    <comment_count>35</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-21 10:40:18 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; It would probably be sufficient to wipe out the leftover files next time the app is used. That stops unlimited accumulation of files. 
&gt; 
&gt; Kimmo suggested it might be a good idea to actually unlink the files right away after they have been mmapd in the client. Then there would be no need for explicit cleanup on exit.

If we clean up leftover files at startup we need a way to find files, which are currently unused, there could be files of another QtWebProcess which are currently used.
I would rather prefer a concept Kimmo suggested then we do not need complex magic like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282473</commentid>
    <comment_count>36</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-21 12:10:46 -0700</bug_when>
    <thetext>The commit-queue recently moved from one machine to a cluster, and we had locking problems for a bit (wehre multiple machines would attempt to land the same patch).  Hopefully those are all solved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282858</commentid>
    <comment_count>37</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-22 02:18:42 -0700</bug_when>
    <thetext>Hey guys, stop flooding a closed bug, go on with this stuff in https://bugs.webkit.org/show_bug.cgi?id=46252 ;) . This had been created
for continuing the debate.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67929</attachid>
            <date>2010-09-17 12:16:57 -0700</date>
            <delta_ts>2010-09-17 12:25:37 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>10932</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
YmMwOTQxOS4uOTJmYTNmYSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wOS0xNyAgQW5kcmFzIEJlY3Np
ICA8YWJlY3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hh
cmVkIG1lbW9yeSBtYXAgZmlsZXMgb24gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTg0CisKKyAgICAgICAgSW1wbGVtZW50IGEgc2luZ2xl
dG9uIHBvb2wgY2xhc3MgdG8gdHJhY2sgc2hhcmVkIG1lbW9yeSBhbmQgY2xlYW4KKyAgICAgICAg
dXAgbWFwIGZpbGVzIGZyb20gZGlzayBpZiBSdW5Mb29wIHN0b3BzLgorCisgICAgICAgICogUGxh
dGZvcm0vcXQvUnVuTG9vcFF0LmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OnN0b3ApOgorICAgICAg
ICAqIFNoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1v
cnlQb29sOjpwb29sKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6Y2xlYW5V
cCk6CisgICAgICAgICogU2hhcmVkL3F0L01hcHBlZE1lbW9yeS5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6TWFwcGVkTWVtb3J5OjptYXJrVXNlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBl
ZE1lbW9yeTo6bWFya0ZyZWUpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1vcnk6OmlzRnJl
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Ok1hcHBlZE1lbW9yeVBvb2wp
OgorICAgICAgICAqIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1hcE1lbW9yeSk6CisgICAgICAgIChXZWJLaXQ6Om1hcEZpbGUpOgorICAgICAgICAqIFNoYXJl
ZC9xdC9VcGRhdGVDaHVuay5oOgorICAgICAgICAqIFdlYktpdDIucHJvOgorCiAyMDEwLTA5LTE2
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
ZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQu
Y3BwIGIvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCmluZGV4IDQ5NTM5OGQuLmRk
MjI2YTIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAorKysg
Yi9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKQEAgLTI2LDggKzI2LDggQEAKIAog
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKIAorI2luY2x1ZGUgIk1hcHBlZE1lbW9yeS5oIgogI2luY2x1
ZGUgIldvcmtJdGVtLmgiCi0KICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UUFi
c3RyYWN0RXZlbnREaXNwYXRjaGVyPgogI2luY2x1ZGUgPFFPYmplY3Q+CkBAIC02Niw2ICs2Niw3
IEBAIHZvaWQgUnVuTG9vcDo6cnVuKCkKIAogdm9pZCBSdW5Mb29wOjpzdG9wKCkKIHsKKyAgICBX
ZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Omluc3RhbmNlKCktPmNsZWFuVXAoKTsKICAgICBRQ29y
ZUFwcGxpY2F0aW9uOjpleGl0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0
L01hcHBlZE1lbW9yeS5jcHAgYi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ZmUzNDUKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3pl
Z2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9G
IFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0Yg
U1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgIk1hcHBlZE1lbW9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
TWFwcGVkTWVtb3J5UG9vbCogTWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKQoreworICAgIHN0
YXRpYyBNYXBwZWRNZW1vcnlQb29sKiBzaW5nbGV0b24gPSBuZXcgTWFwcGVkTWVtb3J5UG9vbCgp
OworICAgIHJldHVybiBzaW5nbGV0b247Cit9CisKK1ZlY3RvcjxNYXBwZWRNZW1vcnk+KiBNYXBw
ZWRNZW1vcnlQb29sOjpwb29sKCkKK3sKKyAgICByZXR1cm4gJm1fcG9vbDsKK30KKwordm9pZCBN
YXBwZWRNZW1vcnlQb29sOjpjbGVhblVwKCkKK3sKKyAgICBzaXplX3Qgc2l6ZSA9IG1fcG9vbC5z
aXplKCk7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBNYXBwZWRNZW1vcnkqIGNodW5rID0g
Jm1fcG9vbC5hdChpKTsKKyAgICAgICAgaWYgKCFjaHVuay0+aXNGcmVlKCkpCisgICAgICAgICAg
ICBjaHVuay0+ZmlsZS0+dW5tYXAoY2h1bmstPmRhdGEpOworICAgICAgICBjaHVuay0+ZmlsZS0+
cmVtb3ZlKCk7CisgICAgfQorCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmggYi9X
ZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NjZiYzI4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQv
TWFwcGVkTWVtb3J5LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVy
c2l0eSBvZiBTemVnZWQKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNYXBwZWRNZW1vcnlfaAorI2RlZmlu
ZSBNYXBwZWRNZW1vcnlfaAorCisjaW5jbHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8UURlYnVnPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitzdHJ1Y3QgTWFw
cGVkTWVtb3J5IHsKKyAgICBRRmlsZSogZmlsZTsKKyAgICB1Y2hhciogZGF0YTsKKyAgICBzaXpl
X3Qgc2l6ZTsKKyAgICB2b2lkIG1hcmtVc2VkKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRf
dCo+KGRhdGEpID0gMDsgfQorICAgIHZvaWQgbWFya0ZyZWUoKSB7ICpyZWludGVycHJldF9jYXN0
PHVpbnQ2NF90Kj4oZGF0YSkgPSAweGRlYWRiZWVmOyB9CisgICAgYm9vbCBpc0ZyZWUoKSB7IHJl
dHVybiAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID09IDB4ZGVhZGJlZWY7IH0K
K307CisKK2NsYXNzIE1hcHBlZE1lbW9yeVBvb2wgeworcHVibGljOgorICAgIHN0YXRpYyBNYXBw
ZWRNZW1vcnlQb29sKiBpbnN0YW5jZSgpOworICAgIFZlY3RvcjxNYXBwZWRNZW1vcnk+KiBwb29s
KCk7CisgICAgdm9pZCBjbGVhblVwKCk7CisKK3ByaXZhdGU6CisgICAgTWFwcGVkTWVtb3J5UG9v
bCgpIHt9CisgICAgVmVjdG9yPE1hcHBlZE1lbW9yeT4gbV9wb29sOworfTsKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorI2VuZGlmIC8vIE1hcHBlZE1lbW9yeV9oCmRpZmYgLS1naXQgYS9XZWJLaXQy
L1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAgYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVu
ay5jcHAKaW5kZXggMjk0MGFkYy4uYjZlNzRmNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQv
cXQvVXBkYXRlQ2h1bmsuY3BwCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNw
cApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIEFu
ZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3plZ2Vk
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDM2ICszMiwyMiBAQAogI2lu
Y2x1ZGUgIkF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlIDxRRGVidWc+Ci0jaW5jbHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8UURpcj4KICNp
bmNsdWRlIDxRSW1hZ2U+CiAjaW5jbHVkZSA8UVRlbXBvcmFyeUZpbGU+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0gICAgCi1zdHJ1Y3QgTWFwcGVkTWVt
b3J5IHsKLSAgICBRRmlsZSogZmlsZTsKLSAgICB1Y2hhciogZGF0YTsKLSAgICBzaXplX3Qgc2l6
ZTsKLSAgICB2b2lkIG1hcmtVc2VkKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRh
dGEpID0gMDsgfQotICAgIHZvaWQgbWFya0ZyZWUoKSB7ICpyZWludGVycHJldF9jYXN0PHVpbnQ2
NF90Kj4oZGF0YSkgPSAweGRlYWRiZWVmOyB9Ci0gICAgYm9vbCBpc0ZyZWUoKSB7IHJldHVybiAq
cmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID09IDB4ZGVhZGJlZWY7IH0KLX07Ci0K
LXN0YXRpYyBWZWN0b3I8TWFwcGVkTWVtb3J5PiogbW1hcFBvb2w7Ci0gICAgCisKIHN0YXRpYyBN
YXBwZWRNZW1vcnkqIG1hcE1lbW9yeShzaXplX3Qgc2l6ZSkKIHsKLSAgICBpZiAoIW1tYXBQb29s
KQotICAgICAgICBtbWFwUG9vbCA9IG5ldyBWZWN0b3I8TWFwcGVkTWVtb3J5PjsKLSAgICAgICAg
Ci0gICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1tYXBQb29sLT5zaXplKCk7ICsrbikgewot
ICAgICAgICBNYXBwZWRNZW1vcnkmIGN1cnJlbnQgPSBtbWFwUG9vbC0+YXQobik7CisgICAgTWFw
cGVkTWVtb3J5UG9vbCogbW1hcCA9IE1hcHBlZE1lbW9yeVBvb2w6Omluc3RhbmNlKCk7CisgICAg
Zm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1tYXAtPnBvb2woKS0+c2l6ZSgpOyArK24pIHsKKyAg
ICAgICAgTWFwcGVkTWVtb3J5JiBjdXJyZW50ID0gbW1hcC0+cG9vbCgpLT5hdChuKTsKICAgICAg
ICAgaWYgKGN1cnJlbnQuc2l6ZSA+PSBzaXplICYmIGN1cnJlbnQuaXNGcmVlKCkpIHsKICAgICAg
ICAgICAgIGN1cnJlbnQubWFya1VzZWQoKTsKICAgICAgICAgICAgIHJldHVybiAmY3VycmVudDsK
QEAgLTY4LDIzICs1NSwyMSBAQCBzdGF0aWMgTWFwcGVkTWVtb3J5KiBtYXBNZW1vcnkoc2l6ZV90
IHNpemUpCiAgICAgfQogICAgIE1hcHBlZE1lbW9yeSBuZXdNYXA7CiAgICAgbmV3TWFwLnNpemUg
PSBzaXplOwotICAgIC8vIEZJWE1FOiBDbGVhbiB1cCBvciByZXVzZSBsZWZ0b3ZlciBtYXAgZmls
ZXMgZnJvbSB0aGUgZGlzay4KLSAgICBuZXdNYXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZSgi
V2ViS2l0MlVwZGF0ZUNodW5rIik7CisgICAgbmV3TWFwLmZpbGUgPSBuZXcgUVRlbXBvcmFyeUZp
bGUoUURpcjo6dGVtcFBhdGgoKSArICIvV2ViS2l0MlVwZGF0ZUNodW5rIik7CiAgICAgbmV3TWFw
LmZpbGUtPm9wZW4oUUlPRGV2aWNlOjpSZWFkV3JpdGUpOwogICAgIG5ld01hcC5maWxlLT5yZXNp
emUobmV3TWFwLnNpemUpOwogICAgIG5ld01hcC5kYXRhID0gbmV3TWFwLmZpbGUtPm1hcCgwLCBu
ZXdNYXAuc2l6ZSk7CiAgICAgbmV3TWFwLmZpbGUtPmNsb3NlKCk7CiAgICAgbmV3TWFwLm1hcmtV
c2VkKCk7Ci0gICAgbW1hcFBvb2wtPmFwcGVuZChuZXdNYXApOwotICAgIHJldHVybiAmbW1hcFBv
b2wtPmxhc3QoKTsKKyAgICBtbWFwLT5wb29sKCktPmFwcGVuZChuZXdNYXApOworICAgIHJldHVy
biAmbW1hcC0+cG9vbCgpLT5sYXN0KCk7CiB9CiAgICAgCiBzdGF0aWMgTWFwcGVkTWVtb3J5KiBt
YXBGaWxlKFFTdHJpbmcgZmlsZU5hbWUsIHNpemVfdCBzaXplKQogewotICAgIGlmICghbW1hcFBv
b2wpCi0gICAgICAgIG1tYXBQb29sID0gbmV3IFZlY3RvcjxNYXBwZWRNZW1vcnk+OwotICAgIGZv
ciAodW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwUG9vbC0+c2l6ZSgpOyArK24pIHsKLSAgICAgICAg
TWFwcGVkTWVtb3J5JiBjdXJyZW50ID0gbW1hcFBvb2wtPmF0KG4pOworICAgIE1hcHBlZE1lbW9y
eVBvb2wqIG1tYXAgPSBNYXBwZWRNZW1vcnlQb29sOjppbnN0YW5jZSgpOworICAgIGZvciAodW5z
aWduZWQgbiA9IDA7IG4gPCBtbWFwLT5wb29sKCktPnNpemUoKTsgKytuKSB7CisgICAgICAgIE1h
cHBlZE1lbW9yeSYgY3VycmVudCA9IG1tYXAtPnBvb2woKS0+YXQobik7CiAgICAgICAgIGlmIChj
dXJyZW50LmZpbGUtPmZpbGVOYW1lKCkgPT0gZmlsZU5hbWUpIHsKICAgICAgICAgICAgIEFTU0VS
VCghY3VycmVudC5pc0ZyZWUoKSk7CiAgICAgICAgICAgICByZXR1cm4gJmN1cnJlbnQ7CkBAIC05
Nyw4ICs4Miw4IEBAIHN0YXRpYyBNYXBwZWRNZW1vcnkqIG1hcEZpbGUoUVN0cmluZyBmaWxlTmFt
ZSwgc2l6ZV90IHNpemUpCiAgICAgbmV3TWFwLmRhdGEgPSBuZXdNYXAuZmlsZS0+bWFwKDAsIHNp
emUpOwogICAgIEFTU0VSVCghbmV3TWFwLmlzRnJlZSgpKTsKICAgICBuZXdNYXAuZmlsZS0+Y2xv
c2UoKTsKLSAgICBtbWFwUG9vbC0+YXBwZW5kKG5ld01hcCk7Ci0gICAgcmV0dXJuICZtbWFwUG9v
bC0+bGFzdCgpOworICAgIG1tYXAtPnBvb2woKS0+YXBwZW5kKG5ld01hcCk7CisgICAgcmV0dXJu
ICZtbWFwLT5wb29sKCktPmxhc3QoKTsKIH0KIAogVXBkYXRlQ2h1bms6OlVwZGF0ZUNodW5rKCkK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmggYi9XZWJLaXQyL1No
YXJlZC9xdC9VcGRhdGVDaHVuay5oCmluZGV4IGZmZTFiYTQuLjBjOTI4NmUgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQv
VXBkYXRlQ2h1bmsuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBVcGRhdGVDaHVua19oCiAj
ZGVmaW5lIFVwZGF0ZUNodW5rX2gKIAorI2luY2x1ZGUgIk1hcHBlZE1lbW9yeS5oIgogI2luY2x1
ZGUgPFFJbWFnZT4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KIApAQCAtMzcsOCArMzgs
NiBAQCBjbGFzcyBBcmd1bWVudERlY29kZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBNYXBwZWRNZW1vcnk7Ci0KIGNsYXNzIFVwZGF0ZUNodW5rIHsKIHB1YmxpYzoKICAgICBVcGRh
dGVDaHVuaygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQyLnBybyBiL1dlYktpdDIvV2Vi
S2l0Mi5wcm8KaW5kZXggMjk4NzU2MS4uNGFhODU3OSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJL
aXQyLnBybworKysgYi9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0xNjIsNiArMTYyLDggQEAgSEVB
REVSUyArPSBcCiAgICAgU2hhcmVkL011dGFibGVBcnJheS5oIFwKICAgICBTaGFyZWQvTXV0YWJs
ZURpY3Rpb25hcnkuaCBcCiAgICAgU2hhcmVkL05vdEltcGxlbWVudGVkLmggXAorICAgIFNoYXJl
ZC9xdC9NYXBwZWRNZW1vcnkuaCBcCisgICAgU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmggXAogICAg
IFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5oIFwKICAgICBTaGFyZWQvVXNlck1lc3NhZ2VD
b2RlcnMuaCBcCiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5rVGFibGUuaCBcCkBAIC0yODcsNiArMjg5
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwIFwK
ICAgICBTaGFyZWQvV2ViVVJMUmVxdWVzdC5jcHAgXAogICAgIFNoYXJlZC9XZWJVUkxSZXNwb25z
ZS5jcHAgXAorICAgIFNoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwIFwKICAgICBTaGFyZWQvcXQv
VXBkYXRlQ2h1bmsuY3BwIFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwIFwK
ICAgICBTaGFyZWQvcXQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzUXQuY3BwIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67931</attachid>
            <date>2010-09-17 12:25:37 -0700</date>
            <delta_ts>2010-09-18 02:17:56 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>10913</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
YmMwOTQxOS4uOTJmYTNmYSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wOS0xNyAgQW5kcmFzIEJlY3Np
ICA8YWJlY3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hh
cmVkIG1lbW9yeSBtYXAgZmlsZXMgb24gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTg0CisKKyAgICAgICAgSW1wbGVtZW50IGEgc2luZ2xl
dG9uIHBvb2wgY2xhc3MgdG8gdHJhY2sgc2hhcmVkIG1lbW9yeSBhbmQgY2xlYW4KKyAgICAgICAg
dXAgbWFwIGZpbGVzIGZyb20gZGlzayBpZiBSdW5Mb29wIHN0b3BzLgorCisgICAgICAgICogUGxh
dGZvcm0vcXQvUnVuTG9vcFF0LmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OnN0b3ApOgorICAgICAg
ICAqIFNoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1v
cnlQb29sOjpwb29sKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6Y2xlYW5V
cCk6CisgICAgICAgICogU2hhcmVkL3F0L01hcHBlZE1lbW9yeS5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6TWFwcGVkTWVtb3J5OjptYXJrVXNlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBl
ZE1lbW9yeTo6bWFya0ZyZWUpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1vcnk6OmlzRnJl
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Ok1hcHBlZE1lbW9yeVBvb2wp
OgorICAgICAgICAqIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1hcE1lbW9yeSk6CisgICAgICAgIChXZWJLaXQ6Om1hcEZpbGUpOgorICAgICAgICAqIFNoYXJl
ZC9xdC9VcGRhdGVDaHVuay5oOgorICAgICAgICAqIFdlYktpdDIucHJvOgorCiAyMDEwLTA5LTE2
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
ZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQu
Y3BwIGIvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCmluZGV4IDQ5NTM5OGQuLmRk
MjI2YTIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAorKysg
Yi9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKQEAgLTI2LDggKzI2LDggQEAKIAog
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKIAorI2luY2x1ZGUgIk1hcHBlZE1lbW9yeS5oIgogI2luY2x1
ZGUgIldvcmtJdGVtLmgiCi0KICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UUFi
c3RyYWN0RXZlbnREaXNwYXRjaGVyPgogI2luY2x1ZGUgPFFPYmplY3Q+CkBAIC02Niw2ICs2Niw3
IEBAIHZvaWQgUnVuTG9vcDo6cnVuKCkKIAogdm9pZCBSdW5Mb29wOjpzdG9wKCkKIHsKKyAgICBX
ZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Omluc3RhbmNlKCktPmNsZWFuVXAoKTsKICAgICBRQ29y
ZUFwcGxpY2F0aW9uOjpleGl0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0
L01hcHBlZE1lbW9yeS5jcHAgYi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ZmUzNDUKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3pl
Z2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9G
IFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0Yg
U1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgIk1hcHBlZE1lbW9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
TWFwcGVkTWVtb3J5UG9vbCogTWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKQoreworICAgIHN0
YXRpYyBNYXBwZWRNZW1vcnlQb29sKiBzaW5nbGV0b24gPSBuZXcgTWFwcGVkTWVtb3J5UG9vbCgp
OworICAgIHJldHVybiBzaW5nbGV0b247Cit9CisKK1ZlY3RvcjxNYXBwZWRNZW1vcnk+KiBNYXBw
ZWRNZW1vcnlQb29sOjpwb29sKCkKK3sKKyAgICByZXR1cm4gJm1fcG9vbDsKK30KKwordm9pZCBN
YXBwZWRNZW1vcnlQb29sOjpjbGVhblVwKCkKK3sKKyAgICBzaXplX3Qgc2l6ZSA9IG1fcG9vbC5z
aXplKCk7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBNYXBwZWRNZW1vcnkqIGNodW5rID0g
Jm1fcG9vbC5hdChpKTsKKyAgICAgICAgaWYgKCFjaHVuay0+aXNGcmVlKCkpCisgICAgICAgICAg
ICBjaHVuay0+ZmlsZS0+dW5tYXAoY2h1bmstPmRhdGEpOworICAgICAgICBjaHVuay0+ZmlsZS0+
cmVtb3ZlKCk7CisgICAgfQorCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmggYi9X
ZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lZmE4ODdhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQv
TWFwcGVkTWVtb3J5LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVy
c2l0eSBvZiBTemVnZWQKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNYXBwZWRNZW1vcnlfaAorI2RlZmlu
ZSBNYXBwZWRNZW1vcnlfaAorCisjaW5jbHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3N0cnVjdCBNYXBwZWRNZW1vcnkgeworICAgIFFG
aWxlKiBmaWxlOworICAgIHVjaGFyKiBkYXRhOworICAgIHNpemVfdCBzaXplOworICAgIHZvaWQg
bWFya1VzZWQoKSB7ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAwOyB9Cisg
ICAgdm9pZCBtYXJrRnJlZSgpIHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9
IDB4ZGVhZGJlZWY7IH0KKyAgICBib29sIGlzRnJlZSgpIHsgcmV0dXJuICpyZWludGVycHJldF9j
YXN0PHVpbnQ2NF90Kj4oZGF0YSkgPT0gMHhkZWFkYmVlZjsgfQorfTsKKworY2xhc3MgTWFwcGVk
TWVtb3J5UG9vbCB7CitwdWJsaWM6CisgICAgc3RhdGljIE1hcHBlZE1lbW9yeVBvb2wqIGluc3Rh
bmNlKCk7CisgICAgVmVjdG9yPE1hcHBlZE1lbW9yeT4qIHBvb2woKTsKKyAgICB2b2lkIGNsZWFu
VXAoKTsKKworcHJpdmF0ZToKKyAgICBNYXBwZWRNZW1vcnlQb29sKCkge30KKyAgICBWZWN0b3I8
TWFwcGVkTWVtb3J5PiBtX3Bvb2w7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYg
Ly8gTWFwcGVkTWVtb3J5X2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNo
dW5rLmNwcCBiL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcAppbmRleCAyOTQwYWRj
Li5iNmU3NGY3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAK
KysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwCkBAIC0xLDYgKzEsNyBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lA
aW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsMzYgKzMyLDIyIEBACiAjaW5jbHVkZSAiQXR0YWNobWVudC5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFFEZWJ1Zz4K
LSNpbmNsdWRlIDxRRmlsZT4KKyNpbmNsdWRlIDxRRGlyPgogI2luY2x1ZGUgPFFJbWFnZT4KICNp
bmNsdWRlIDxRVGVtcG9yYXJ5RmlsZT4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKLSAgICAKLXN0cnVjdCBNYXBwZWRNZW1vcnkgewotICAgIFFGaWxlKiBm
aWxlOwotICAgIHVjaGFyKiBkYXRhOwotICAgIHNpemVfdCBzaXplOwotICAgIHZvaWQgbWFya1Vz
ZWQoKSB7ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAwOyB9Ci0gICAgdm9p
ZCBtYXJrRnJlZSgpIHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDB4ZGVh
ZGJlZWY7IH0KLSAgICBib29sIGlzRnJlZSgpIHsgcmV0dXJuICpyZWludGVycHJldF9jYXN0PHVp
bnQ2NF90Kj4oZGF0YSkgPT0gMHhkZWFkYmVlZjsgfQotfTsKLQotc3RhdGljIFZlY3RvcjxNYXBw
ZWRNZW1vcnk+KiBtbWFwUG9vbDsKLSAgICAKKwogc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwTWVt
b3J5KHNpemVfdCBzaXplKQogewotICAgIGlmICghbW1hcFBvb2wpCi0gICAgICAgIG1tYXBQb29s
ID0gbmV3IFZlY3RvcjxNYXBwZWRNZW1vcnk+OwotICAgICAgICAKLSAgICBmb3IgKHVuc2lnbmVk
IG4gPSAwOyBuIDwgbW1hcFBvb2wtPnNpemUoKTsgKytuKSB7Ci0gICAgICAgIE1hcHBlZE1lbW9y
eSYgY3VycmVudCA9IG1tYXBQb29sLT5hdChuKTsKKyAgICBNYXBwZWRNZW1vcnlQb29sKiBtbWFw
ID0gTWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKTsKKyAgICBmb3IgKHVuc2lnbmVkIG4gPSAw
OyBuIDwgbW1hcC0+cG9vbCgpLT5zaXplKCk7ICsrbikgeworICAgICAgICBNYXBwZWRNZW1vcnkm
IGN1cnJlbnQgPSBtbWFwLT5wb29sKCktPmF0KG4pOwogICAgICAgICBpZiAoY3VycmVudC5zaXpl
ID49IHNpemUgJiYgY3VycmVudC5pc0ZyZWUoKSkgewogICAgICAgICAgICAgY3VycmVudC5tYXJr
VXNlZCgpOwogICAgICAgICAgICAgcmV0dXJuICZjdXJyZW50OwpAQCAtNjgsMjMgKzU1LDIxIEBA
IHN0YXRpYyBNYXBwZWRNZW1vcnkqIG1hcE1lbW9yeShzaXplX3Qgc2l6ZSkKICAgICB9CiAgICAg
TWFwcGVkTWVtb3J5IG5ld01hcDsKICAgICBuZXdNYXAuc2l6ZSA9IHNpemU7Ci0gICAgLy8gRklY
TUU6IENsZWFuIHVwIG9yIHJldXNlIGxlZnRvdmVyIG1hcCBmaWxlcyBmcm9tIHRoZSBkaXNrLgot
ICAgIG5ld01hcC5maWxlID0gbmV3IFFUZW1wb3JhcnlGaWxlKCJXZWJLaXQyVXBkYXRlQ2h1bmsi
KTsKKyAgICBuZXdNYXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZShRRGlyOjp0ZW1wUGF0aCgp
ICsgIi9XZWJLaXQyVXBkYXRlQ2h1bmsiKTsKICAgICBuZXdNYXAuZmlsZS0+b3BlbihRSU9EZXZp
Y2U6OlJlYWRXcml0ZSk7CiAgICAgbmV3TWFwLmZpbGUtPnJlc2l6ZShuZXdNYXAuc2l6ZSk7CiAg
ICAgbmV3TWFwLmRhdGEgPSBuZXdNYXAuZmlsZS0+bWFwKDAsIG5ld01hcC5zaXplKTsKICAgICBu
ZXdNYXAuZmlsZS0+Y2xvc2UoKTsKICAgICBuZXdNYXAubWFya1VzZWQoKTsKLSAgICBtbWFwUG9v
bC0+YXBwZW5kKG5ld01hcCk7Ci0gICAgcmV0dXJuICZtbWFwUG9vbC0+bGFzdCgpOworICAgIG1t
YXAtPnBvb2woKS0+YXBwZW5kKG5ld01hcCk7CisgICAgcmV0dXJuICZtbWFwLT5wb29sKCktPmxh
c3QoKTsKIH0KICAgICAKIHN0YXRpYyBNYXBwZWRNZW1vcnkqIG1hcEZpbGUoUVN0cmluZyBmaWxl
TmFtZSwgc2l6ZV90IHNpemUpCiB7Ci0gICAgaWYgKCFtbWFwUG9vbCkKLSAgICAgICAgbW1hcFBv
b2wgPSBuZXcgVmVjdG9yPE1hcHBlZE1lbW9yeT47Ci0gICAgZm9yICh1bnNpZ25lZCBuID0gMDsg
biA8IG1tYXBQb29sLT5zaXplKCk7ICsrbikgewotICAgICAgICBNYXBwZWRNZW1vcnkmIGN1cnJl
bnQgPSBtbWFwUG9vbC0+YXQobik7CisgICAgTWFwcGVkTWVtb3J5UG9vbCogbW1hcCA9IE1hcHBl
ZE1lbW9yeVBvb2w6Omluc3RhbmNlKCk7CisgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1t
YXAtPnBvb2woKS0+c2l6ZSgpOyArK24pIHsKKyAgICAgICAgTWFwcGVkTWVtb3J5JiBjdXJyZW50
ID0gbW1hcC0+cG9vbCgpLT5hdChuKTsKICAgICAgICAgaWYgKGN1cnJlbnQuZmlsZS0+ZmlsZU5h
bWUoKSA9PSBmaWxlTmFtZSkgewogICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50LmlzRnJlZSgp
KTsKICAgICAgICAgICAgIHJldHVybiAmY3VycmVudDsKQEAgLTk3LDggKzgyLDggQEAgc3RhdGlj
IE1hcHBlZE1lbW9yeSogbWFwRmlsZShRU3RyaW5nIGZpbGVOYW1lLCBzaXplX3Qgc2l6ZSkKICAg
ICBuZXdNYXAuZGF0YSA9IG5ld01hcC5maWxlLT5tYXAoMCwgc2l6ZSk7CiAgICAgQVNTRVJUKCFu
ZXdNYXAuaXNGcmVlKCkpOwogICAgIG5ld01hcC5maWxlLT5jbG9zZSgpOwotICAgIG1tYXBQb29s
LT5hcHBlbmQobmV3TWFwKTsKLSAgICByZXR1cm4gJm1tYXBQb29sLT5sYXN0KCk7CisgICAgbW1h
cC0+cG9vbCgpLT5hcHBlbmQobmV3TWFwKTsKKyAgICByZXR1cm4gJm1tYXAtPnBvb2woKS0+bGFz
dCgpOwogfQogCiBVcGRhdGVDaHVuazo6VXBkYXRlQ2h1bmsoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBiL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5r
LmgKaW5kZXggZmZlMWJhNC4uMGM5Mjg2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvcXQv
VXBkYXRlQ2h1bmsuaAorKysgYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaWZuZGVmIFVwZGF0ZUNodW5rX2gKICNkZWZpbmUgVXBkYXRlQ2h1bmtf
aAogCisjaW5jbHVkZSAiTWFwcGVkTWVtb3J5LmgiCiAjaW5jbHVkZSA8UUltYWdlPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogCkBAIC0zNyw4ICszOCw2IEBAIGNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIE1hcHBlZE1lbW9yeTsKLQog
Y2xhc3MgVXBkYXRlQ2h1bmsgewogcHVibGljOgogICAgIFVwZGF0ZUNodW5rKCk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYktpdDIucHJvIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwppbmRleCAyOTg3
NTYxLi40YWE4NTc5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIucHJvCisrKyBiL1dlYktp
dDIvV2ViS2l0Mi5wcm8KQEAgLTE2Miw2ICsxNjIsOCBAQCBIRUFERVJTICs9IFwKICAgICBTaGFy
ZWQvTXV0YWJsZUFycmF5LmggXAogICAgIFNoYXJlZC9NdXRhYmxlRGljdGlvbmFyeS5oIFwKICAg
ICBTaGFyZWQvTm90SW1wbGVtZW50ZWQuaCBcCisgICAgU2hhcmVkL3F0L01hcHBlZE1lbW9yeS5o
IFwKKyAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBcCiAgICAgU2hhcmVkL3F0L1dlYkV2ZW50
RmFjdG9yeVF0LmggXAogICAgIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIFwKICAgICBTaGFy
ZWQvVmlzaXRlZExpbmtUYWJsZS5oIFwKQEAgLTI4Nyw2ICsyODksNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgXAogICAgIFNoYXJlZC9XZWJVUkxS
ZXF1ZXN0LmNwcCBcCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcCBcCisgICAgU2hhcmVk
L3F0L01hcHBlZE1lbW9yeS5jcHAgXAogICAgIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAgXAog
ICAgIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5jcHAgXAogICAgIFNoYXJlZC9xdC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68004</attachid>
            <date>2010-09-18 02:17:56 -0700</date>
            <delta_ts>2010-09-18 03:23:54 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>10837</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NDlmODc2Zi4uZjgxMzAwOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wOS0xOCAgQW5kcmFzIEJlY3Np
ICA8YWJlY3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hh
cmVkIG1lbW9yeSBtYXAgZmlsZXMgb24gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTg0CisKKyAgICAgICAgSW1wbGVtZW50IGEgc2luZ2xl
dG9uIHBvb2wgY2xhc3MgdG8gdHJhY2sgc2hhcmVkIG1lbW9yeSBhbmQgY2xlYW4KKyAgICAgICAg
dXAgbWFwIGZpbGVzIGZyb20gZGlzayBpZiBSdW5Mb29wIHN0b3BzLgorCisgICAgICAgICogUGxh
dGZvcm0vcXQvUnVuTG9vcFF0LmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OnN0b3ApOgorICAgICAg
ICAqIFNoYXJlZC9xdC9NYXBwZWRNZW1vcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1v
cnlQb29sOjpwb29sKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6Y2xlYW5V
cCk6CisgICAgICAgICogU2hhcmVkL3F0L01hcHBlZE1lbW9yeS5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6TWFwcGVkTWVtb3J5OjptYXJrVXNlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBl
ZE1lbW9yeTo6bWFya0ZyZWUpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1vcnk6OmlzRnJl
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Ok1hcHBlZE1lbW9yeVBvb2wp
OgorICAgICAgICAqIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1hcE1lbW9yeSk6CisgICAgICAgIChXZWJLaXQ6Om1hcEZpbGUpOgorICAgICAgICAqIFNoYXJl
ZC9xdC9VcGRhdGVDaHVuay5oOgorICAgICAgICAqIFdlYktpdDIucHJvOgorCiAyMDEwLTA5LTE3
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSm9u
IEhvbmV5Y3V0dC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNw
cCBiL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAppbmRleCA0OTUzOThkLi5kZDIy
NmEyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKKysrIGIv
V2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCkBAIC0yNiw4ICsyNiw4IEBACiAKICNp
bmNsdWRlICJSdW5Mb29wLmgiCiAKKyNpbmNsdWRlICJNYXBwZWRNZW1vcnkuaCIKICNpbmNsdWRl
ICJXb3JrSXRlbS5oIgotCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFBYnN0
cmFjdEV2ZW50RGlzcGF0Y2hlcj4KICNpbmNsdWRlIDxRT2JqZWN0PgpAQCAtNjYsNiArNjYsNyBA
QCB2b2lkIFJ1bkxvb3A6OnJ1bigpCiAKIHZvaWQgUnVuTG9vcDo6c3RvcCgpCiB7CisgICAgV2Vi
S2l0OjpNYXBwZWRNZW1vcnlQb29sOjppbnN0YW5jZSgpLT5jbGVhblVwKCk7CiAgICAgUUNvcmVB
cHBsaWNhdGlvbjo6ZXhpdCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9N
YXBwZWRNZW1vcnkuY3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjdlM2YyCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmNwcApAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJNYXBwZWRNZW1vcnkuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK01hcHBlZE1lbW9yeVBvb2wqIE1hcHBlZE1lbW9yeVBvb2w6Omluc3Rh
bmNlKCkKK3sKKyAgICBzdGF0aWMgTWFwcGVkTWVtb3J5UG9vbCogc2luZ2xldG9uID0gbmV3IE1h
cHBlZE1lbW9yeVBvb2woKTsKKyAgICByZXR1cm4gc2luZ2xldG9uOworfQorCitWZWN0b3I8TWFw
cGVkTWVtb3J5PiogTWFwcGVkTWVtb3J5UG9vbDo6cG9vbCgpCit7CisgICAgcmV0dXJuICZtX3Bv
b2w7Cit9CisKK3ZvaWQgTWFwcGVkTWVtb3J5UG9vbDo6Y2xlYW5VcCgpCit7CisgICAgc2l6ZV90
IHNpemUgPSBtX3Bvb2wuc2l6ZSgpOworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgTWFwcGVk
TWVtb3J5KiBjaHVuayA9ICZtX3Bvb2wuYXQoaSk7CisgICAgICAgIGlmICghY2h1bmstPmlzRnJl
ZSgpKQorICAgICAgICAgICAgY2h1bmstPmZpbGUtPnVubWFwKGNodW5rLT5kYXRhKTsKKyAgICAg
ICAgY2h1bmstPmZpbGUtPnJlbW92ZSgpOworICAgIH0KKworICAgIGRlbGV0ZSB0aGlzOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0L01h
cHBlZE1lbW9yeS5oIGIvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5MTNlYgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdDIvU2hhcmVkL3F0L01hcHBlZE1lbW9yeS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTWFwcGVkTWVtb3J5X2gKKyNkZWZpbmUgTWFwcGVkTWVtb3J5X2gKKworI2lu
Y2x1ZGUgPFFGaWxlPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CitzdHJ1Y3QgTWFwcGVkTWVtb3J5IHsKKyAgICBRRmlsZSogZmlsZTsKKyAgICB1Y2hhciog
ZGF0YTsKKyAgICBzaXplX3Qgc2l6ZTsKKyAgICB2b2lkIG1hcmtVc2VkKCkgeyAqcmVpbnRlcnBy
ZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID0gMDsgfQorICAgIHZvaWQgbWFya0ZyZWUoKSB7ICpy
ZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAweGRlYWRiZWVmOyB9CisgICAgYm9v
bCBpc0ZyZWUoKSB7IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID09
IDB4ZGVhZGJlZWY7IH0KK307CisKK2NsYXNzIE1hcHBlZE1lbW9yeVBvb2wgeworcHVibGljOgor
ICAgIHN0YXRpYyBNYXBwZWRNZW1vcnlQb29sKiBpbnN0YW5jZSgpOworICAgIFZlY3RvcjxNYXBw
ZWRNZW1vcnk+KiBwb29sKCk7CisgICAgdm9pZCBjbGVhblVwKCk7CisKK3ByaXZhdGU6CisgICAg
TWFwcGVkTWVtb3J5UG9vbCgpIHt9CisgICAgVmVjdG9yPE1hcHBlZE1lbW9yeT4gbV9wb29sOwor
fTsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIE1hcHBlZE1lbW9yeV9oCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAgYi9XZWJLaXQyL1NoYXJl
ZC9xdC9VcGRhdGVDaHVuay5jcHAKaW5kZXggMjk0MGFkYy4uNDgzOGI3MCAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0
L1VwZGF0ZUNodW5rLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJp
Z2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMxLDM2ICszMiwyMiBAQAogI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxRRGVidWc+Ci0jaW5j
bHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8UURpcj4KICNpbmNsdWRlIDxRSW1hZ2U+CiAjaW5jbHVk
ZSA8UVRlbXBvcmFyeUZpbGU+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNl
IFdlYktpdCB7Ci0gICAgCi1zdHJ1Y3QgTWFwcGVkTWVtb3J5IHsKLSAgICBRRmlsZSogZmlsZTsK
LSAgICB1Y2hhciogZGF0YTsKLSAgICBzaXplX3Qgc2l6ZTsKLSAgICB2b2lkIG1hcmtVc2VkKCkg
eyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID0gMDsgfQotICAgIHZvaWQgbWFy
a0ZyZWUoKSB7ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAweGRlYWRiZWVm
OyB9Ci0gICAgYm9vbCBpc0ZyZWUoKSB7IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRf
dCo+KGRhdGEpID09IDB4ZGVhZGJlZWY7IH0KLX07Ci0KLXN0YXRpYyBWZWN0b3I8TWFwcGVkTWVt
b3J5PiogbW1hcFBvb2w7Ci0gICAgCisKIHN0YXRpYyBNYXBwZWRNZW1vcnkqIG1hcE1lbW9yeShz
aXplX3Qgc2l6ZSkKIHsKLSAgICBpZiAoIW1tYXBQb29sKQotICAgICAgICBtbWFwUG9vbCA9IG5l
dyBWZWN0b3I8TWFwcGVkTWVtb3J5PjsKLSAgICAgICAgCi0gICAgZm9yICh1bnNpZ25lZCBuID0g
MDsgbiA8IG1tYXBQb29sLT5zaXplKCk7ICsrbikgewotICAgICAgICBNYXBwZWRNZW1vcnkmIGN1
cnJlbnQgPSBtbWFwUG9vbC0+YXQobik7CisgICAgTWFwcGVkTWVtb3J5UG9vbCogbW1hcCA9IE1h
cHBlZE1lbW9yeVBvb2w6Omluc3RhbmNlKCk7CisgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8
IG1tYXAtPnBvb2woKS0+c2l6ZSgpOyArK24pIHsKKyAgICAgICAgTWFwcGVkTWVtb3J5JiBjdXJy
ZW50ID0gbW1hcC0+cG9vbCgpLT5hdChuKTsKICAgICAgICAgaWYgKGN1cnJlbnQuc2l6ZSA+PSBz
aXplICYmIGN1cnJlbnQuaXNGcmVlKCkpIHsKICAgICAgICAgICAgIGN1cnJlbnQubWFya1VzZWQo
KTsKICAgICAgICAgICAgIHJldHVybiAmY3VycmVudDsKQEAgLTY4LDIzICs1NSwyMSBAQCBzdGF0
aWMgTWFwcGVkTWVtb3J5KiBtYXBNZW1vcnkoc2l6ZV90IHNpemUpCiAgICAgfQogICAgIE1hcHBl
ZE1lbW9yeSBuZXdNYXA7CiAgICAgbmV3TWFwLnNpemUgPSBzaXplOwotICAgIC8vIEZJWE1FOiBD
bGVhbiB1cCBvciByZXVzZSBsZWZ0b3ZlciBtYXAgZmlsZXMgZnJvbSB0aGUgZGlzay4KLSAgICBu
ZXdNYXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZSgiV2ViS2l0MlVwZGF0ZUNodW5rIik7Cisg
ICAgbmV3TWFwLmZpbGUgPSBuZXcgUVRlbXBvcmFyeUZpbGUoUURpcjo6dGVtcFBhdGgoKSArICIv
V2ViS2l0MlVwZGF0ZUNodW5rIik7CiAgICAgbmV3TWFwLmZpbGUtPm9wZW4oUUlPRGV2aWNlOjpS
ZWFkV3JpdGUpOwogICAgIG5ld01hcC5maWxlLT5yZXNpemUobmV3TWFwLnNpemUpOwogICAgIG5l
d01hcC5kYXRhID0gbmV3TWFwLmZpbGUtPm1hcCgwLCBuZXdNYXAuc2l6ZSk7CiAgICAgbmV3TWFw
LmZpbGUtPmNsb3NlKCk7CiAgICAgbmV3TWFwLm1hcmtVc2VkKCk7Ci0gICAgbW1hcFBvb2wtPmFw
cGVuZChuZXdNYXApOwotICAgIHJldHVybiAmbW1hcFBvb2wtPmxhc3QoKTsKKyAgICBtbWFwLT5w
b29sKCktPmFwcGVuZChuZXdNYXApOworICAgIHJldHVybiAmbW1hcC0+cG9vbCgpLT5sYXN0KCk7
CiB9CiAgICAgCiBzdGF0aWMgTWFwcGVkTWVtb3J5KiBtYXBGaWxlKFFTdHJpbmcgZmlsZU5hbWUs
IHNpemVfdCBzaXplKQogewotICAgIGlmICghbW1hcFBvb2wpCi0gICAgICAgIG1tYXBQb29sID0g
bmV3IFZlY3RvcjxNYXBwZWRNZW1vcnk+OwotICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBt
bWFwUG9vbC0+c2l6ZSgpOyArK24pIHsKLSAgICAgICAgTWFwcGVkTWVtb3J5JiBjdXJyZW50ID0g
bW1hcFBvb2wtPmF0KG4pOworICAgIE1hcHBlZE1lbW9yeVBvb2wqIG1tYXAgPSBNYXBwZWRNZW1v
cnlQb29sOjppbnN0YW5jZSgpOworICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwLT5w
b29sKCktPnNpemUoKTsgKytuKSB7CisgICAgICAgIE1hcHBlZE1lbW9yeSYgY3VycmVudCA9IG1t
YXAtPnBvb2woKS0+YXQobik7CiAgICAgICAgIGlmIChjdXJyZW50LmZpbGUtPmZpbGVOYW1lKCkg
PT0gZmlsZU5hbWUpIHsKICAgICAgICAgICAgIEFTU0VSVCghY3VycmVudC5pc0ZyZWUoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gJmN1cnJlbnQ7CkBAIC05Nyw4ICs4Miw4IEBAIHN0YXRpYyBNYXBw
ZWRNZW1vcnkqIG1hcEZpbGUoUVN0cmluZyBmaWxlTmFtZSwgc2l6ZV90IHNpemUpCiAgICAgbmV3
TWFwLmRhdGEgPSBuZXdNYXAuZmlsZS0+bWFwKDAsIHNpemUpOwogICAgIEFTU0VSVCghbmV3TWFw
LmlzRnJlZSgpKTsKICAgICBuZXdNYXAuZmlsZS0+Y2xvc2UoKTsKLSAgICBtbWFwUG9vbC0+YXBw
ZW5kKG5ld01hcCk7Ci0gICAgcmV0dXJuICZtbWFwUG9vbC0+bGFzdCgpOworICAgIG1tYXAtPnBv
b2woKS0+YXBwZW5kKG5ld01hcCk7CisgICAgcmV0dXJuICZtbWFwLT5wb29sKCktPmxhc3QoKTsK
IH0KIAogVXBkYXRlQ2h1bms6OlVwZGF0ZUNodW5rKCkKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hh
cmVkL3F0L1VwZGF0ZUNodW5rLmggYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCmlu
ZGV4IGZmZTFiYTQuLjBjOTI4NmUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0
ZUNodW5rLmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaApAQCAtMjcsNiAr
MjcsNyBAQAogI2lmbmRlZiBVcGRhdGVDaHVua19oCiAjZGVmaW5lIFVwZGF0ZUNodW5rX2gKIAor
I2luY2x1ZGUgIk1hcHBlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFFJbWFnZT4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFJlY3QuaD4KIApAQCAtMzcsOCArMzgsNiBAQCBjbGFzcyBBcmd1bWVudERlY29k
ZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBNYXBwZWRNZW1vcnk7Ci0KIGNsYXNz
IFVwZGF0ZUNodW5rIHsKIHB1YmxpYzoKICAgICBVcGRhdGVDaHVuaygpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJLaXQyLnBybyBiL1dlYktpdDIvV2ViS2l0Mi5wcm8KaW5kZXggNDY4ODAwNy4u
OGRjOGI5MiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9XZWJLaXQyL1dl
YktpdDIucHJvCkBAIC0xNjIsNyArMTYyLDkgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL011
dGFibGVBcnJheS5oIFwKICAgICBTaGFyZWQvTXV0YWJsZURpY3Rpb25hcnkuaCBcCiAgICAgU2hh
cmVkL05vdEltcGxlbWVudGVkLmggXAorICAgIFNoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaCBcCiAg
ICAgU2hhcmVkL3F0L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggXAorICAgIFNoYXJlZC9xdC9V
cGRhdGVDaHVuay5oIFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaCBcCiAgICAg
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggXAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxl
LmggXApAQCAtMjkwLDYgKzI5Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmNwcCBcCiAgICAgU2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwIFwKICAgICBT
aGFyZWQvV2ViVVJMUmVzcG9uc2UuY3BwIFwKKyAgICBTaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmNw
cCBcCiAgICAgU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcCBcCiAgICAgU2hhcmVkL3F0L1dlYkV2
ZW50RmFjdG9yeVF0LmNwcCBcCiAgICAgU2hhcmVkL3F0L1dlYkNvcmVBcmd1bWVudENvZGVyc1F0
LmNwcCBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68005</attachid>
            <date>2010-09-18 03:23:54 -0700</date>
            <delta_ts>2010-09-18 05:10:44 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>10913</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NDlmODc2Zi4uZjY1Y2U1NyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wOS0xOCAgQW5kcmFzIEJlY3Np
ICA8YWJlY3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hh
cmVkIG1lbW9yeSBtYXAgZmlsZXMgb24gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTg0CisKKyAgICAgICAgUmVsb2NhdGUgTWFwcGVkTWVt
b3J5IHN0cnVjdCBjb2RlIHRvIGl0J3Mgb3duIGhlYWRlciBhbmQgaW1wbGVtZW50CisgICAgICAg
IGEgc2luZ2xldG9uIHBvb2wgY2xhc3MgdG8gdHJhY2sgc2hhcmVkIG1lbW9yeSB0byBiZSBhYmxl
IHRvIGNsZWFuIHVwCisgICAgICAgIG1hcCBmaWxlcyBmcm9tIGRpc2sgaWYgUnVuTG9vcCBzdG9w
cy4KKworICAgICAgICAqIFBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHA6CisgICAgICAgIChSdW5M
b29wOjpzdG9wKToKKyAgICAgICAgKiBTaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Omluc3RhbmNlKToKKyAgICAgICAg
KFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6cG9vbCk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBl
ZE1lbW9yeVBvb2w6OmNsZWFuVXApOgorICAgICAgICAqIFNoYXJlZC9xdC9NYXBwZWRNZW1vcnku
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeTo6bWFya1VzZWQpOgorICAg
ICAgICAoV2ViS2l0OjpNYXBwZWRNZW1vcnk6Om1hcmtGcmVlKToKKyAgICAgICAgKFdlYktpdDo6
TWFwcGVkTWVtb3J5Ojppc0ZyZWUpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1vcnlQb29s
OjpNYXBwZWRNZW1vcnlQb29sKToKKyAgICAgICAgKiBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjptYXBNZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjptYXBGaWxl
KToKKyAgICAgICAgKiBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaDoKKyAgICAgICAgKiBXZWJLaXQy
LnBybzoKKwogMjAxMC0wOS0xNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEpvbiBIb25leWN1dHQuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRm
b3JtL3F0L1J1bkxvb3BRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAK
aW5kZXggNDk1Mzk4ZC4uZGQyMjZhMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9S
dW5Mb29wUXQuY3BwCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcApAQCAt
MjYsOCArMjYsOCBAQAogCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgogCisjaW5jbHVkZSAiTWFwcGVk
TWVtb3J5LmgiCiAjaW5jbHVkZSAiV29ya0l0ZW0uaCIKLQogI2luY2x1ZGUgPFFBcHBsaWNhdGlv
bj4KICNpbmNsdWRlIDxRQWJzdHJhY3RFdmVudERpc3BhdGNoZXI+CiAjaW5jbHVkZSA8UU9iamVj
dD4KQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBSdW5Mb29wOjpydW4oKQogCiB2b2lkIFJ1bkxvb3A6
OnN0b3AoKQogeworICAgIFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKS0+Y2xl
YW5VcCgpOwogICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmNwcCBiL1dlYktpdDIvU2hhcmVkL3F0L01h
cHBlZE1lbW9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY3ZTNm
MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L01hcHBlZE1lbW9yeS5jcHAK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9m
IFN6ZWdlZAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiTWFwcGVk
TWVtb3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitNYXBwZWRNZW1vcnlQb29sKiBNYXBw
ZWRNZW1vcnlQb29sOjppbnN0YW5jZSgpCit7CisgICAgc3RhdGljIE1hcHBlZE1lbW9yeVBvb2wq
IHNpbmdsZXRvbiA9IG5ldyBNYXBwZWRNZW1vcnlQb29sKCk7CisgICAgcmV0dXJuIHNpbmdsZXRv
bjsKK30KKworVmVjdG9yPE1hcHBlZE1lbW9yeT4qIE1hcHBlZE1lbW9yeVBvb2w6OnBvb2woKQor
eworICAgIHJldHVybiAmbV9wb29sOworfQorCit2b2lkIE1hcHBlZE1lbW9yeVBvb2w6OmNsZWFu
VXAoKQoreworICAgIHNpemVfdCBzaXplID0gbV9wb29sLnNpemUoKTsKKyAgICBpZiAoIXNpemUp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KSB7CisgICAgICAgIE1hcHBlZE1lbW9yeSogY2h1bmsgPSAmbV9wb29sLmF0KGkpOworICAgICAg
ICBpZiAoIWNodW5rLT5pc0ZyZWUoKSkKKyAgICAgICAgICAgIGNodW5rLT5maWxlLT51bm1hcChj
aHVuay0+ZGF0YSk7CisgICAgICAgIGNodW5rLT5maWxlLT5yZW1vdmUoKTsKKyAgICB9CisKKyAg
ICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaCBiL1dlYktpdDIvU2hhcmVkL3F0L01hcHBl
ZE1lbW9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTEzZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaApAQCAtMCww
ICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5
IG9mIFN6ZWdlZAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1hcHBlZE1lbW9yeV9oCisjZGVmaW5lIE1h
cHBlZE1lbW9yeV9oCisKKyNpbmNsdWRlIDxRRmlsZT4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworc3RydWN0IE1hcHBlZE1lbW9yeSB7CisgICAgUUZpbGUq
IGZpbGU7CisgICAgdWNoYXIqIGRhdGE7CisgICAgc2l6ZV90IHNpemU7CisgICAgdm9pZCBtYXJr
VXNlZCgpIHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDA7IH0KKyAgICB2
b2lkIG1hcmtGcmVlKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID0gMHhk
ZWFkYmVlZjsgfQorICAgIGJvb2wgaXNGcmVlKCkgeyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8
dWludDY0X3QqPihkYXRhKSA9PSAweGRlYWRiZWVmOyB9Cit9OworCitjbGFzcyBNYXBwZWRNZW1v
cnlQb29sIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgTWFwcGVkTWVtb3J5UG9vbCogaW5zdGFuY2Uo
KTsKKyAgICBWZWN0b3I8TWFwcGVkTWVtb3J5PiogcG9vbCgpOworICAgIHZvaWQgY2xlYW5VcCgp
OworCitwcml2YXRlOgorICAgIE1hcHBlZE1lbW9yeVBvb2woKSB7fQorICAgIFZlY3RvcjxNYXBw
ZWRNZW1vcnk+IG1fcG9vbDsKK307Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKyNlbmRpZiAvLyBN
YXBwZWRNZW1vcnlfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsu
Y3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwCmluZGV4IDI5NDBhZGMuLjQ4
MzhiNzAgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcAorKysg
Yi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSwzNiArMzIsMjIgQEAKICNpbmNsdWRl
ICJBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSA8UURlYnVnPgotI2luY2x1ZGUgPFFGaWxlPgorI2luY2x1ZGUgPFFEaXI+CiAjaW5jbHVk
ZSA8UUltYWdlPgogI2luY2x1ZGUgPFFUZW1wb3JhcnlGaWxlPgogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotICAgIAotc3RydWN0IE1hcHBlZE1lbW9yeSB7
Ci0gICAgUUZpbGUqIGZpbGU7Ci0gICAgdWNoYXIqIGRhdGE7Ci0gICAgc2l6ZV90IHNpemU7Ci0g
ICAgdm9pZCBtYXJrVXNlZCgpIHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9
IDA7IH0KLSAgICB2b2lkIG1hcmtGcmVlKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+
KGRhdGEpID0gMHhkZWFkYmVlZjsgfQotICAgIGJvb2wgaXNGcmVlKCkgeyByZXR1cm4gKnJlaW50
ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9PSAweGRlYWRiZWVmOyB9Ci19OwotCi1zdGF0
aWMgVmVjdG9yPE1hcHBlZE1lbW9yeT4qIG1tYXBQb29sOwotICAgIAorCiBzdGF0aWMgTWFwcGVk
TWVtb3J5KiBtYXBNZW1vcnkoc2l6ZV90IHNpemUpCiB7Ci0gICAgaWYgKCFtbWFwUG9vbCkKLSAg
ICAgICAgbW1hcFBvb2wgPSBuZXcgVmVjdG9yPE1hcHBlZE1lbW9yeT47Ci0gICAgICAgIAotICAg
IGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwUG9vbC0+c2l6ZSgpOyArK24pIHsKLSAgICAg
ICAgTWFwcGVkTWVtb3J5JiBjdXJyZW50ID0gbW1hcFBvb2wtPmF0KG4pOworICAgIE1hcHBlZE1l
bW9yeVBvb2wqIG1tYXAgPSBNYXBwZWRNZW1vcnlQb29sOjppbnN0YW5jZSgpOworICAgIGZvciAo
dW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwLT5wb29sKCktPnNpemUoKTsgKytuKSB7CisgICAgICAg
IE1hcHBlZE1lbW9yeSYgY3VycmVudCA9IG1tYXAtPnBvb2woKS0+YXQobik7CiAgICAgICAgIGlm
IChjdXJyZW50LnNpemUgPj0gc2l6ZSAmJiBjdXJyZW50LmlzRnJlZSgpKSB7CiAgICAgICAgICAg
ICBjdXJyZW50Lm1hcmtVc2VkKCk7CiAgICAgICAgICAgICByZXR1cm4gJmN1cnJlbnQ7CkBAIC02
OCwyMyArNTUsMjEgQEAgc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwTWVtb3J5KHNpemVfdCBzaXpl
KQogICAgIH0KICAgICBNYXBwZWRNZW1vcnkgbmV3TWFwOwogICAgIG5ld01hcC5zaXplID0gc2l6
ZTsKLSAgICAvLyBGSVhNRTogQ2xlYW4gdXAgb3IgcmV1c2UgbGVmdG92ZXIgbWFwIGZpbGVzIGZy
b20gdGhlIGRpc2suCi0gICAgbmV3TWFwLmZpbGUgPSBuZXcgUVRlbXBvcmFyeUZpbGUoIldlYktp
dDJVcGRhdGVDaHVuayIpOworICAgIG5ld01hcC5maWxlID0gbmV3IFFUZW1wb3JhcnlGaWxlKFFE
aXI6OnRlbXBQYXRoKCkgKyAiL1dlYktpdDJVcGRhdGVDaHVuayIpOwogICAgIG5ld01hcC5maWxl
LT5vcGVuKFFJT0RldmljZTo6UmVhZFdyaXRlKTsKICAgICBuZXdNYXAuZmlsZS0+cmVzaXplKG5l
d01hcC5zaXplKTsKICAgICBuZXdNYXAuZGF0YSA9IG5ld01hcC5maWxlLT5tYXAoMCwgbmV3TWFw
LnNpemUpOwogICAgIG5ld01hcC5maWxlLT5jbG9zZSgpOwogICAgIG5ld01hcC5tYXJrVXNlZCgp
OwotICAgIG1tYXBQb29sLT5hcHBlbmQobmV3TWFwKTsKLSAgICByZXR1cm4gJm1tYXBQb29sLT5s
YXN0KCk7CisgICAgbW1hcC0+cG9vbCgpLT5hcHBlbmQobmV3TWFwKTsKKyAgICByZXR1cm4gJm1t
YXAtPnBvb2woKS0+bGFzdCgpOwogfQogICAgIAogc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwRmls
ZShRU3RyaW5nIGZpbGVOYW1lLCBzaXplX3Qgc2l6ZSkKIHsKLSAgICBpZiAoIW1tYXBQb29sKQot
ICAgICAgICBtbWFwUG9vbCA9IG5ldyBWZWN0b3I8TWFwcGVkTWVtb3J5PjsKLSAgICBmb3IgKHVu
c2lnbmVkIG4gPSAwOyBuIDwgbW1hcFBvb2wtPnNpemUoKTsgKytuKSB7Ci0gICAgICAgIE1hcHBl
ZE1lbW9yeSYgY3VycmVudCA9IG1tYXBQb29sLT5hdChuKTsKKyAgICBNYXBwZWRNZW1vcnlQb29s
KiBtbWFwID0gTWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKTsKKyAgICBmb3IgKHVuc2lnbmVk
IG4gPSAwOyBuIDwgbW1hcC0+cG9vbCgpLT5zaXplKCk7ICsrbikgeworICAgICAgICBNYXBwZWRN
ZW1vcnkmIGN1cnJlbnQgPSBtbWFwLT5wb29sKCktPmF0KG4pOwogICAgICAgICBpZiAoY3VycmVu
dC5maWxlLT5maWxlTmFtZSgpID09IGZpbGVOYW1lKSB7CiAgICAgICAgICAgICBBU1NFUlQoIWN1
cnJlbnQuaXNGcmVlKCkpOwogICAgICAgICAgICAgcmV0dXJuICZjdXJyZW50OwpAQCAtOTcsOCAr
ODIsOCBAQCBzdGF0aWMgTWFwcGVkTWVtb3J5KiBtYXBGaWxlKFFTdHJpbmcgZmlsZU5hbWUsIHNp
emVfdCBzaXplKQogICAgIG5ld01hcC5kYXRhID0gbmV3TWFwLmZpbGUtPm1hcCgwLCBzaXplKTsK
ICAgICBBU1NFUlQoIW5ld01hcC5pc0ZyZWUoKSk7CiAgICAgbmV3TWFwLmZpbGUtPmNsb3NlKCk7
Ci0gICAgbW1hcFBvb2wtPmFwcGVuZChuZXdNYXApOwotICAgIHJldHVybiAmbW1hcFBvb2wtPmxh
c3QoKTsKKyAgICBtbWFwLT5wb29sKCktPmFwcGVuZChuZXdNYXApOworICAgIHJldHVybiAmbW1h
cC0+cG9vbCgpLT5sYXN0KCk7CiB9CiAKIFVwZGF0ZUNodW5rOjpVcGRhdGVDaHVuaygpCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oIGIvV2ViS2l0Mi9TaGFyZWQv
cXQvVXBkYXRlQ2h1bmsuaAppbmRleCBmZmUxYmE0Li4wYzkyODZlIDEwMDY0NAotLS0gYS9XZWJL
aXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0
ZUNodW5rLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgVXBkYXRlQ2h1bmtfaAogI2RlZmlu
ZSBVcGRhdGVDaHVua19oCiAKKyNpbmNsdWRlICJNYXBwZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxR
SW1hZ2U+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAKQEAgLTM3LDggKzM4LDYgQEAg
Y2xhc3MgQXJndW1lbnREZWNvZGVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTWFw
cGVkTWVtb3J5OwotCiBjbGFzcyBVcGRhdGVDaHVuayB7CiBwdWJsaWM6CiAgICAgVXBkYXRlQ2h1
bmsoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQyL1dlYktpdDIu
cHJvCmluZGV4IDQ2ODgwMDcuLjhkYzhiOTIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi5w
cm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMTYyLDcgKzE2Miw5IEBAIEhFQURFUlMg
Kz0gXAogICAgIFNoYXJlZC9NdXRhYmxlQXJyYXkuaCBcCiAgICAgU2hhcmVkL011dGFibGVEaWN0
aW9uYXJ5LmggXAogICAgIFNoYXJlZC9Ob3RJbXBsZW1lbnRlZC5oIFwKKyAgICBTaGFyZWQvcXQv
TWFwcGVkTWVtb3J5LmggXAogICAgIFNoYXJlZC9xdC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5o
IFwKKyAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBcCiAgICAgU2hhcmVkL3F0L1dlYkV2ZW50
RmFjdG9yeVF0LmggXAogICAgIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIFwKICAgICBTaGFy
ZWQvVmlzaXRlZExpbmtUYWJsZS5oIFwKQEAgLTI5MCw2ICsyOTIsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgXAogICAgIFNoYXJlZC9XZWJVUkxS
ZXF1ZXN0LmNwcCBcCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcCBcCisgICAgU2hhcmVk
L3F0L01hcHBlZE1lbW9yeS5jcHAgXAogICAgIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAgXAog
ICAgIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5jcHAgXAogICAgIFNoYXJlZC9xdC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNRdC5jcHAgXAo=
</data>
<flag name="review"
          id="57444"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68006</attachid>
            <date>2010-09-18 05:10:44 -0700</date>
            <delta_ts>2010-09-20 09:57:26 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-Qt-QtWebProcess-should-clean-up-shared-memory-map-fi.patch</filename>
            <type>text/plain</type>
            <size>11866</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">RnJvbSAzNTM0ZGFjYjVhM2UyY2E1NmNhM2MzN2U4MjRlMTgxNzFmNjg2MTdjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyYXMgQmVjc2kgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+
CkRhdGU6IFNhdCwgMTggU2VwIDIwMTAgMTQ6MDU6NTggKzAyMDAKU3ViamVjdDogW1BBVENIXSBb
UXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hhcmVkIG1lbW9yeSBtYXAgZmlsZXMg
b24gY2xvc2UKCi0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAg
IDI5ICsrKysrKysrKysrKysrKysKIFdlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCAg
ICAgIHwgICAgMyArLQogV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmggICAgICAgfCAg
IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdDIvU2hhcmVkL3F0L01h
cHBlZE1lbW9yeVBvb2wuY3BwIHwgICA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwogV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwICAgICAgfCAgIDQxICsrKysrKyst
LS0tLS0tLS0tLS0tLS0tCiBXZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oICAgICAgICB8
ICAgIDMgKy0KIFdlYktpdDIvV2ViS2l0Mi5wcm8gICAgICAgICAgICAgICAgICAgIHwgICAgMyAr
KwogNyBmaWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnlQb29sLmNwcAoKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDlm
ODc2Zi4uN2Q2ZGNhMSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wOS0xOCAgQW5kcmFzIEJlY3NpICA8
YWJlY3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hhcmVk
IG1lbW9yeSBtYXAgZmlsZXMgb24gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1OTg0CisKKyAgICAgICAgUmVsb2NhdGUgTWFwcGVkTWVtb3J5
IHN0cnVjdCBjb2RlIHRvIGl0J3Mgb3duIGhlYWRlciBhbmQgaW1wbGVtZW50CisgICAgICAgIGEg
c2luZ2xldG9uIHBvb2wgY2xhc3MgKE1hcHBlZE1lbW9yeVBvb2wpIHdoaWNoIHRyYWNrcyBzaGFy
ZWQgbWVtb3J5CisgICAgICAgIHRvIGJlIGFibGUgdG8gY2xlYW4gdXAgbWFwIGZpbGVzIGZyb20g
ZGlzayBpZiBSdW5Mb29wIHN0b3BzLgorCisgICAgICAgICogUGxhdGZvcm0vcXQvUnVuTG9vcFF0
LmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAqIFNoYXJlZC9xdC9NYXBw
ZWRNZW1vcnlQb29sLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBv
b2w6Omluc3RhbmNlKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6cG9vbCk6
CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6OmNsZWFuVXApOgorICAgICAgICAq
IFNoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaDogQWRkZWQuCisgICAgICAgIE1vdmVkIE1hcHBlZE1l
bW9yeSBzdHJ1Y3QgdG8gdGhpcyBoZWFkZXIuCisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9y
eTo6bWFya1VzZWQpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1vcnk6Om1hcmtGcmVlKToK
KyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5Ojppc0ZyZWUpOgorICAgICAgICAoV2ViS2l0
OjpNYXBwZWRNZW1vcnlQb29sOjpNYXBwZWRNZW1vcnlQb29sKToKKyAgICAgICAgKiBTaGFyZWQv
cXQvVXBkYXRlQ2h1bmsuY3BwOgorICAgICAgICAoV2ViS2l0OjptYXBNZW1vcnkpOgorICAgICAg
ICAoV2ViS2l0OjptYXBGaWxlKToKKyAgICAgICAgKiBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaDoK
KyAgICAgICAgKiBXZWJLaXQyLnBybzogQWRkIGZpbGVzIHRvIGJ1aWxkIHN5c3RlbS4KKwogMjAx
MC0wOS0xNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEpvbiBIb25leWN1dHQuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxv
b3BRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKaW5kZXggNDk1Mzk4
ZC4uZGQyMjZhMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3Bw
CisrKyBiL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcApAQCAtMjYsOCArMjYsOCBA
QAogCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgogCisjaW5jbHVkZSAiTWFwcGVkTWVtb3J5LmgiCiAj
aW5jbHVkZSAiV29ya0l0ZW0uaCIKLQogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KICNpbmNsdWRl
IDxRQWJzdHJhY3RFdmVudERpc3BhdGNoZXI+CiAjaW5jbHVkZSA8UU9iamVjdD4KQEAgLTY2LDYg
KzY2LDcgQEAgdm9pZCBSdW5Mb29wOjpydW4oKQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewor
ICAgIFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKS0+Y2xlYW5VcCgpOwogICAg
IFFDb3JlQXBwbGljYXRpb246OmV4aXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFy
ZWQvcXQvTWFwcGVkTWVtb3J5LmggYi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkxM2ViCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmgKQEAgLTAsMCArMSw1NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBNYXBwZWRNZW1vcnlfaAorI2RlZmluZSBNYXBwZWRNZW1vcnlf
aAorCisjaW5jbHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK3N0cnVjdCBNYXBwZWRNZW1vcnkgeworICAgIFFGaWxlKiBmaWxlOworICAg
IHVjaGFyKiBkYXRhOworICAgIHNpemVfdCBzaXplOworICAgIHZvaWQgbWFya1VzZWQoKSB7ICpy
ZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAwOyB9CisgICAgdm9pZCBtYXJrRnJl
ZSgpIHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDB4ZGVhZGJlZWY7IH0K
KyAgICBib29sIGlzRnJlZSgpIHsgcmV0dXJuICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4o
ZGF0YSkgPT0gMHhkZWFkYmVlZjsgfQorfTsKKworY2xhc3MgTWFwcGVkTWVtb3J5UG9vbCB7Citw
dWJsaWM6CisgICAgc3RhdGljIE1hcHBlZE1lbW9yeVBvb2wqIGluc3RhbmNlKCk7CisgICAgVmVj
dG9yPE1hcHBlZE1lbW9yeT4qIHBvb2woKTsKKyAgICB2b2lkIGNsZWFuVXAoKTsKKworcHJpdmF0
ZToKKyAgICBNYXBwZWRNZW1vcnlQb29sKCkge30KKyAgICBWZWN0b3I8TWFwcGVkTWVtb3J5PiBt
X3Bvb2w7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisjZW5kaWYgLy8gTWFwcGVkTWVtb3J5
X2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0L01hcHBlZE1lbW9yeVBvb2wuY3BwIGIv
V2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5UG9vbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYTAzNjRmMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hh
cmVkL3F0L01hcHBlZE1lbW9yeVBvb2wuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJT
SVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJ
VFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgIk1hcHBlZE1lbW9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworTWFwcGVkTWVtb3J5UG9vbCogTWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKQorewor
ICAgIHN0YXRpYyBNYXBwZWRNZW1vcnlQb29sKiBzaW5nbGV0b24gPSBuZXcgTWFwcGVkTWVtb3J5
UG9vbCgpOworICAgIHJldHVybiBzaW5nbGV0b247Cit9CisKK1ZlY3RvcjxNYXBwZWRNZW1vcnk+
KiBNYXBwZWRNZW1vcnlQb29sOjpwb29sKCkKK3sKKyAgICByZXR1cm4gJm1fcG9vbDsKK30KKwor
dm9pZCBNYXBwZWRNZW1vcnlQb29sOjpjbGVhblVwKCkKK3sKKyAgICBzaXplX3Qgc2l6ZSA9IG1f
cG9vbC5zaXplKCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewor
ICAgICAgICBNYXBwZWRNZW1vcnkqIGNodW5rID0gJm1fcG9vbC5hdChpKTsKKyAgICAgICAgaWYg
KCFjaHVuay0+aXNGcmVlKCkpCisgICAgICAgICAgICBjaHVuay0+ZmlsZS0+dW5tYXAoY2h1bmst
PmRhdGEpOworICAgICAgICBjaHVuay0+ZmlsZS0+cmVtb3ZlKCk7CisgICAgfQorCisgICAgZGVs
ZXRlIHRoaXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1
bmsuY3BwCmluZGV4IDI5NDBhZGMuLjQ4MzhiNzAgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVk
L3F0L1VwZGF0ZUNodW5rLmNwcAorKysgYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5j
cHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBV
bml2ZXJzaXR5IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
MSwzNiArMzIsMjIgQEAKICNpbmNsdWRlICJBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8UURlYnVnPgotI2luY2x1ZGUgPFFGaWxlPgor
I2luY2x1ZGUgPFFEaXI+CiAjaW5jbHVkZSA8UUltYWdlPgogI2luY2x1ZGUgPFFUZW1wb3JhcnlG
aWxlPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotICAg
IAotc3RydWN0IE1hcHBlZE1lbW9yeSB7Ci0gICAgUUZpbGUqIGZpbGU7Ci0gICAgdWNoYXIqIGRh
dGE7Ci0gICAgc2l6ZV90IHNpemU7Ci0gICAgdm9pZCBtYXJrVXNlZCgpIHsgKnJlaW50ZXJwcmV0
X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDA7IH0KLSAgICB2b2lkIG1hcmtGcmVlKCkgeyAqcmVp
bnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID0gMHhkZWFkYmVlZjsgfQotICAgIGJvb2wg
aXNGcmVlKCkgeyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9PSAw
eGRlYWRiZWVmOyB9Ci19OwotCi1zdGF0aWMgVmVjdG9yPE1hcHBlZE1lbW9yeT4qIG1tYXBQb29s
OwotICAgIAorCiBzdGF0aWMgTWFwcGVkTWVtb3J5KiBtYXBNZW1vcnkoc2l6ZV90IHNpemUpCiB7
Ci0gICAgaWYgKCFtbWFwUG9vbCkKLSAgICAgICAgbW1hcFBvb2wgPSBuZXcgVmVjdG9yPE1hcHBl
ZE1lbW9yeT47Ci0gICAgICAgIAotICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwUG9v
bC0+c2l6ZSgpOyArK24pIHsKLSAgICAgICAgTWFwcGVkTWVtb3J5JiBjdXJyZW50ID0gbW1hcFBv
b2wtPmF0KG4pOworICAgIE1hcHBlZE1lbW9yeVBvb2wqIG1tYXAgPSBNYXBwZWRNZW1vcnlQb29s
OjppbnN0YW5jZSgpOworICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwLT5wb29sKCkt
PnNpemUoKTsgKytuKSB7CisgICAgICAgIE1hcHBlZE1lbW9yeSYgY3VycmVudCA9IG1tYXAtPnBv
b2woKS0+YXQobik7CiAgICAgICAgIGlmIChjdXJyZW50LnNpemUgPj0gc2l6ZSAmJiBjdXJyZW50
LmlzRnJlZSgpKSB7CiAgICAgICAgICAgICBjdXJyZW50Lm1hcmtVc2VkKCk7CiAgICAgICAgICAg
ICByZXR1cm4gJmN1cnJlbnQ7CkBAIC02OCwyMyArNTUsMjEgQEAgc3RhdGljIE1hcHBlZE1lbW9y
eSogbWFwTWVtb3J5KHNpemVfdCBzaXplKQogICAgIH0KICAgICBNYXBwZWRNZW1vcnkgbmV3TWFw
OwogICAgIG5ld01hcC5zaXplID0gc2l6ZTsKLSAgICAvLyBGSVhNRTogQ2xlYW4gdXAgb3IgcmV1
c2UgbGVmdG92ZXIgbWFwIGZpbGVzIGZyb20gdGhlIGRpc2suCi0gICAgbmV3TWFwLmZpbGUgPSBu
ZXcgUVRlbXBvcmFyeUZpbGUoIldlYktpdDJVcGRhdGVDaHVuayIpOworICAgIG5ld01hcC5maWxl
ID0gbmV3IFFUZW1wb3JhcnlGaWxlKFFEaXI6OnRlbXBQYXRoKCkgKyAiL1dlYktpdDJVcGRhdGVD
aHVuayIpOwogICAgIG5ld01hcC5maWxlLT5vcGVuKFFJT0RldmljZTo6UmVhZFdyaXRlKTsKICAg
ICBuZXdNYXAuZmlsZS0+cmVzaXplKG5ld01hcC5zaXplKTsKICAgICBuZXdNYXAuZGF0YSA9IG5l
d01hcC5maWxlLT5tYXAoMCwgbmV3TWFwLnNpemUpOwogICAgIG5ld01hcC5maWxlLT5jbG9zZSgp
OwogICAgIG5ld01hcC5tYXJrVXNlZCgpOwotICAgIG1tYXBQb29sLT5hcHBlbmQobmV3TWFwKTsK
LSAgICByZXR1cm4gJm1tYXBQb29sLT5sYXN0KCk7CisgICAgbW1hcC0+cG9vbCgpLT5hcHBlbmQo
bmV3TWFwKTsKKyAgICByZXR1cm4gJm1tYXAtPnBvb2woKS0+bGFzdCgpOwogfQogICAgIAogc3Rh
dGljIE1hcHBlZE1lbW9yeSogbWFwRmlsZShRU3RyaW5nIGZpbGVOYW1lLCBzaXplX3Qgc2l6ZSkK
IHsKLSAgICBpZiAoIW1tYXBQb29sKQotICAgICAgICBtbWFwUG9vbCA9IG5ldyBWZWN0b3I8TWFw
cGVkTWVtb3J5PjsKLSAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgbW1hcFBvb2wtPnNpemUo
KTsgKytuKSB7Ci0gICAgICAgIE1hcHBlZE1lbW9yeSYgY3VycmVudCA9IG1tYXBQb29sLT5hdChu
KTsKKyAgICBNYXBwZWRNZW1vcnlQb29sKiBtbWFwID0gTWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFu
Y2UoKTsKKyAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgbW1hcC0+cG9vbCgpLT5zaXplKCk7
ICsrbikgeworICAgICAgICBNYXBwZWRNZW1vcnkmIGN1cnJlbnQgPSBtbWFwLT5wb29sKCktPmF0
KG4pOwogICAgICAgICBpZiAoY3VycmVudC5maWxlLT5maWxlTmFtZSgpID09IGZpbGVOYW1lKSB7
CiAgICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQuaXNGcmVlKCkpOwogICAgICAgICAgICAgcmV0
dXJuICZjdXJyZW50OwpAQCAtOTcsOCArODIsOCBAQCBzdGF0aWMgTWFwcGVkTWVtb3J5KiBtYXBG
aWxlKFFTdHJpbmcgZmlsZU5hbWUsIHNpemVfdCBzaXplKQogICAgIG5ld01hcC5kYXRhID0gbmV3
TWFwLmZpbGUtPm1hcCgwLCBzaXplKTsKICAgICBBU1NFUlQoIW5ld01hcC5pc0ZyZWUoKSk7CiAg
ICAgbmV3TWFwLmZpbGUtPmNsb3NlKCk7Ci0gICAgbW1hcFBvb2wtPmFwcGVuZChuZXdNYXApOwot
ICAgIHJldHVybiAmbW1hcFBvb2wtPmxhc3QoKTsKKyAgICBtbWFwLT5wb29sKCktPmFwcGVuZChu
ZXdNYXApOworICAgIHJldHVybiAmbW1hcC0+cG9vbCgpLT5sYXN0KCk7CiB9CiAKIFVwZGF0ZUNo
dW5rOjpVcGRhdGVDaHVuaygpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVD
aHVuay5oIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaAppbmRleCBmZmUxYmE0Li4w
YzkyODZlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCisrKyBi
L1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5k
ZWYgVXBkYXRlQ2h1bmtfaAogI2RlZmluZSBVcGRhdGVDaHVua19oCiAKKyNpbmNsdWRlICJNYXBw
ZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxRSW1hZ2U+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CiAKQEAgLTM3LDggKzM4LDYgQEAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotY2xhc3MgTWFwcGVkTWVtb3J5OwotCiBjbGFzcyBVcGRhdGVDaHVuayB7
CiBwdWJsaWM6CiAgICAgVXBkYXRlQ2h1bmsoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0
Mi5wcm8gYi9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IDQ2ODgwMDcuLjJjNjc2YTMgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAt
MTYyLDcgKzE2Miw5IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9NdXRhYmxlQXJyYXkuaCBc
CiAgICAgU2hhcmVkL011dGFibGVEaWN0aW9uYXJ5LmggXAogICAgIFNoYXJlZC9Ob3RJbXBsZW1l
bnRlZC5oIFwKKyAgICBTaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmggXAogICAgIFNoYXJlZC9xdC9Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIFwKKyAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBc
CiAgICAgU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeVF0LmggXAogICAgIFNoYXJlZC9Vc2VyTWVz
c2FnZUNvZGVycy5oIFwKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5oIFwKQEAgLTI5MCw2
ICsyOTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5j
cHAgXAogICAgIFNoYXJlZC9XZWJVUkxSZXF1ZXN0LmNwcCBcCiAgICAgU2hhcmVkL1dlYlVSTFJl
c3BvbnNlLmNwcCBcCisgICAgU2hhcmVkL3F0L01hcHBlZE1lbW9yeVBvb2wuY3BwIFwKICAgICBT
aGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwIFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5
UXQuY3BwIFwKICAgICBTaGFyZWQvcXQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzUXQuY3BwIFwKLS0g
CjEuNy4yLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68099</attachid>
            <date>2010-09-20 09:57:26 -0700</date>
            <delta_ts>2010-09-20 10:25:19 -0700</delta_ts>
            <desc>proposed patch v2</desc>
            <filename>0001-Qt-QtWebProcess-should-clean-up-shared-memory-map-fi.patch</filename>
            <type>text/plain</type>
            <size>11583</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">RnJvbSA1ZTQ5MjU5OWQ0ODJiNzYwMGI0N2Y3MThhYWZjNzJlMDJlYzM0MTM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyYXMgQmVjc2kgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+
CkRhdGU6IE1vbiwgMjAgU2VwIDIwMTAgMTg6NTA6MjggKzAyMDAKU3ViamVjdDogW1BBVENIXSBb
UXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hhcmVkIG1lbW9yeSBtYXAgZmlsZXMg
b24gY2xvc2UKCi0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAg
IDI4ICsrKysrKysrKysrKwogV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmggICAgICAg
fCAgIDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1NoYXJlZC9xdC9NYXBw
ZWRNZW1vcnlQb29sLmNwcCB8ICAgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
IFdlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcCAgICAgIHwgICAzOSArKysrKy0tLS0t
LS0tLS0tLQogV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCAgICAgICAgfCAgICAzICst
CiBXZWJLaXQyL1dlYktpdDIucHJvICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogNiBmaWxl
cyBjaGFuZ2VkLCAxNzUgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmgKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnlQb29sLmNwcAoKZGlmZiAtLWdpdCBh
L1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjRhMTZjYi4uNzAy
NWE4OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wOS0yMCAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQGlu
Zi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbUXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hhcmVkIG1lbW9yeSBt
YXAgZmlsZXMgb24gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1OTg0CisKKyAgICAgICAgUmVsb2NhdGUgTWFwcGVkTWVtb3J5IHN0cnVjdCBj
b2RlIHRvIGl0J3Mgb3duIGhlYWRlciBhbmQgaW1wbGVtZW50CisgICAgICAgIGEgc2luZ2xldG9u
IHBvb2wgY2xhc3MgKE1hcHBlZE1lbW9yeVBvb2wpIHdoaWNoIHRyYWNrcyBzaGFyZWQgbWVtb3J5
CisgICAgICAgIHRvIGJlIGFibGUgdG8gY2xlYW4gdXAgbWFwIGZpbGVzIGZyb20gZGlzayBpZiBS
dW5Mb29wIHN0b3BzLgorCisgICAgICAgICogU2hhcmVkL3F0L01hcHBlZE1lbW9yeS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5OjptYXJrVXNlZCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1hcHBlZE1lbW9yeTo6bWFya0ZyZWUpOgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRN
ZW1vcnk6OmlzRnJlZSk6CisgICAgICAgICogU2hhcmVkL3F0L01hcHBlZE1lbW9yeVBvb2wuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6TWFwcGVkTWVtb3J5
UG9vbCk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Omluc3RhbmNlKToKKyAg
ICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6c2l6ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok1hcHBlZE1lbW9yeVBvb2w6OmF0KToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9v
bDo6YXBwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6Y2xlYW5VcCk6
CisgICAgICAgICogU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bWFwTWVtb3J5KToKKyAgICAgICAgKFdlYktpdDo6bWFwRmlsZSk6CisgICAgICAgICogU2hhcmVk
L3F0L1VwZGF0ZUNodW5rLmg6CisgICAgICAgICogV2ViS2l0Mi5wcm86CisKIDIwMTAtMDktMjAg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmggYi9X
ZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43OWE1MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQv
TWFwcGVkTWVtb3J5LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNYXBw
ZWRNZW1vcnlfaAorI2RlZmluZSBNYXBwZWRNZW1vcnlfaAorCisjaW5jbHVkZSA8UUNvcmVBcHBs
aWNhdGlvbj4KKyNpbmNsdWRlIDxRRmlsZT4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworc3RydWN0IE1hcHBlZE1lbW9yeSB7CisgICAgUUZpbGUqIGZpbGU7
CisgICAgdWNoYXIqIGRhdGE7CisgICAgc2l6ZV90IHNpemU7CisgICAgdm9pZCBtYXJrVXNlZCgp
IHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDA7IH0KKyAgICB2b2lkIG1h
cmtGcmVlKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID0gMHhkZWFkYmVl
ZjsgfQorICAgIGJvb2wgaXNGcmVlKCkgeyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0
X3QqPihkYXRhKSA9PSAweGRlYWRiZWVmOyB9Cit9OworCitjbGFzcyBNYXBwZWRNZW1vcnlQb29s
IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgc3RhdGljIE1h
cHBlZE1lbW9yeVBvb2wqIGluc3RhbmNlKCk7CisgICAgc2l6ZV90IHNpemUoKSBjb25zdDsKKyAg
ICBNYXBwZWRNZW1vcnkmIGF0KHNpemVfdCBpKTsKKyAgICBNYXBwZWRNZW1vcnkmIGFwcGVuZChj
b25zdCBNYXBwZWRNZW1vcnkmKTsKKworcHJpdmF0ZToKKyAgICBNYXBwZWRNZW1vcnlQb29sKCk7
CisgICAgUV9TTE9UIHZvaWQgY2xlYW5VcCgpOworCisgICAgVmVjdG9yPE1hcHBlZE1lbW9yeT4g
bV9wb29sOworfTsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8vIE1hcHBlZE1lbW9y
eV9oCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnlQb29sLmNwcCBi
L1dlYktpdDIvU2hhcmVkL3F0L01hcHBlZE1lbW9yeVBvb2wuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjIyMDcwNDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1No
YXJlZC9xdC9NYXBwZWRNZW1vcnlQb29sLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJT
SVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJNYXBwZWRNZW1vcnkuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK01hcHBlZE1lbW9yeVBvb2w6Ok1hcHBlZE1lbW9yeVBvb2woKQoreworICAgIGNvbm5l
Y3QoUUNvcmVBcHBsaWNhdGlvbjo6aW5zdGFuY2UoKSxTSUdOQUwoYWJvdXRUb1F1aXQoKSksU0xP
VChjbGVhblVwKCkpKTsKK30KKworTWFwcGVkTWVtb3J5UG9vbCogTWFwcGVkTWVtb3J5UG9vbDo6
aW5zdGFuY2UoKQoreworICAgIHN0YXRpYyBNYXBwZWRNZW1vcnlQb29sKiBzaW5nbGV0b24gPSBu
ZXcgTWFwcGVkTWVtb3J5UG9vbCgpOworICAgIHJldHVybiBzaW5nbGV0b247Cit9CisKK3NpemVf
dCBNYXBwZWRNZW1vcnlQb29sOjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wb29sLnNp
emUoKTsKK30KKworTWFwcGVkTWVtb3J5JiBNYXBwZWRNZW1vcnlQb29sOjphdChzaXplX3QgaSkK
K3sKKyAgICByZXR1cm4gbV9wb29sLmF0KGkpOworfQorCitNYXBwZWRNZW1vcnkmIE1hcHBlZE1l
bW9yeVBvb2w6OmFwcGVuZChjb25zdCBNYXBwZWRNZW1vcnkmIG5ld01hcCkKK3sKKyAgICBtX3Bv
b2wuYXBwZW5kKG5ld01hcCk7CisgICAgcmV0dXJuIG1fcG9vbC5sYXN0KCk7Cit9CisKK3ZvaWQg
TWFwcGVkTWVtb3J5UG9vbDo6Y2xlYW5VcCgpCit7CisgICAgc2l6ZV90IHNpemUgPSBtX3Bvb2wu
c2l6ZSgpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAg
ICAgTWFwcGVkTWVtb3J5JiBjaHVuayA9IG1fcG9vbC5hdChpKTsKKyAgICAgICAgaWYgKCFjaHVu
ay5pc0ZyZWUoKSkKKyAgICAgICAgICAgIGNodW5rLmZpbGUtPnVubWFwKGNodW5rLmRhdGEpOwor
ICAgICAgICBjaHVuay5maWxlLT5yZW1vdmUoKTsKKyAgICB9CisKKyAgICBkZWxldGUgdGhpczsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9x
dC9VcGRhdGVDaHVuay5jcHAgYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAKaW5k
ZXggMjk0MGFkYy4uYzU4ZGZiNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRl
Q2h1bmsuY3BwCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcApAQCAtMSw2
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkg
b2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDM2ICszMiwy
MiBAQAogI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlIDxRRGVidWc+Ci0jaW5jbHVkZSA8UUZpbGU+CisjaW5jbHVkZSA8
UURpcj4KICNpbmNsdWRlIDxRSW1hZ2U+CiAjaW5jbHVkZSA8UVRlbXBvcmFyeUZpbGU+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0gICAgCi1zdHJ1Y3Qg
TWFwcGVkTWVtb3J5IHsKLSAgICBRRmlsZSogZmlsZTsKLSAgICB1Y2hhciogZGF0YTsKLSAgICBz
aXplX3Qgc2l6ZTsKLSAgICB2b2lkIG1hcmtVc2VkKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50
NjRfdCo+KGRhdGEpID0gMDsgfQotICAgIHZvaWQgbWFya0ZyZWUoKSB7ICpyZWludGVycHJldF9j
YXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAweGRlYWRiZWVmOyB9Ci0gICAgYm9vbCBpc0ZyZWUoKSB7
IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID09IDB4ZGVhZGJlZWY7
IH0KLX07Ci0KLXN0YXRpYyBWZWN0b3I8TWFwcGVkTWVtb3J5PiogbW1hcFBvb2w7Ci0gICAgCisK
IHN0YXRpYyBNYXBwZWRNZW1vcnkqIG1hcE1lbW9yeShzaXplX3Qgc2l6ZSkKIHsKLSAgICBpZiAo
IW1tYXBQb29sKQotICAgICAgICBtbWFwUG9vbCA9IG5ldyBWZWN0b3I8TWFwcGVkTWVtb3J5PjsK
LSAgICAgICAgCi0gICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1tYXBQb29sLT5zaXplKCk7
ICsrbikgewotICAgICAgICBNYXBwZWRNZW1vcnkmIGN1cnJlbnQgPSBtbWFwUG9vbC0+YXQobik7
CisgICAgTWFwcGVkTWVtb3J5UG9vbCogcG9vbCA9IE1hcHBlZE1lbW9yeVBvb2w6Omluc3RhbmNl
KCk7CisgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IHBvb2wtPnNpemUoKTsgKytuKSB7Cisg
ICAgICAgIE1hcHBlZE1lbW9yeSYgY3VycmVudCA9IHBvb2wtPmF0KG4pOwogICAgICAgICBpZiAo
Y3VycmVudC5zaXplID49IHNpemUgJiYgY3VycmVudC5pc0ZyZWUoKSkgewogICAgICAgICAgICAg
Y3VycmVudC5tYXJrVXNlZCgpOwogICAgICAgICAgICAgcmV0dXJuICZjdXJyZW50OwpAQCAtNjgs
MjMgKzU1LDIwIEBAIHN0YXRpYyBNYXBwZWRNZW1vcnkqIG1hcE1lbW9yeShzaXplX3Qgc2l6ZSkK
ICAgICB9CiAgICAgTWFwcGVkTWVtb3J5IG5ld01hcDsKICAgICBuZXdNYXAuc2l6ZSA9IHNpemU7
Ci0gICAgLy8gRklYTUU6IENsZWFuIHVwIG9yIHJldXNlIGxlZnRvdmVyIG1hcCBmaWxlcyBmcm9t
IHRoZSBkaXNrLgotICAgIG5ld01hcC5maWxlID0gbmV3IFFUZW1wb3JhcnlGaWxlKCJXZWJLaXQy
VXBkYXRlQ2h1bmsiKTsKKyAgICBuZXdNYXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZShRRGly
Ojp0ZW1wUGF0aCgpICsgIi9XZWJLaXQyVXBkYXRlQ2h1bmsiKTsKICAgICBuZXdNYXAuZmlsZS0+
b3BlbihRSU9EZXZpY2U6OlJlYWRXcml0ZSk7CiAgICAgbmV3TWFwLmZpbGUtPnJlc2l6ZShuZXdN
YXAuc2l6ZSk7CiAgICAgbmV3TWFwLmRhdGEgPSBuZXdNYXAuZmlsZS0+bWFwKDAsIG5ld01hcC5z
aXplKTsKICAgICBuZXdNYXAuZmlsZS0+Y2xvc2UoKTsKICAgICBuZXdNYXAubWFya1VzZWQoKTsK
LSAgICBtbWFwUG9vbC0+YXBwZW5kKG5ld01hcCk7Ci0gICAgcmV0dXJuICZtbWFwUG9vbC0+bGFz
dCgpOworICAgIHJldHVybiAmcG9vbC0+YXBwZW5kKG5ld01hcCk7CiB9CiAgICAgCiBzdGF0aWMg
TWFwcGVkTWVtb3J5KiBtYXBGaWxlKFFTdHJpbmcgZmlsZU5hbWUsIHNpemVfdCBzaXplKQogewot
ICAgIGlmICghbW1hcFBvb2wpCi0gICAgICAgIG1tYXBQb29sID0gbmV3IFZlY3RvcjxNYXBwZWRN
ZW1vcnk+OwotICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwUG9vbC0+c2l6ZSgpOyAr
K24pIHsKLSAgICAgICAgTWFwcGVkTWVtb3J5JiBjdXJyZW50ID0gbW1hcFBvb2wtPmF0KG4pOwor
ICAgIE1hcHBlZE1lbW9yeVBvb2wqIHBvb2wgPSBNYXBwZWRNZW1vcnlQb29sOjppbnN0YW5jZSgp
OworICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBwb29sLT5zaXplKCk7ICsrbikgeworICAg
ICAgICBNYXBwZWRNZW1vcnkmIGN1cnJlbnQgPSBwb29sLT5hdChuKTsKICAgICAgICAgaWYgKGN1
cnJlbnQuZmlsZS0+ZmlsZU5hbWUoKSA9PSBmaWxlTmFtZSkgewogICAgICAgICAgICAgQVNTRVJU
KCFjdXJyZW50LmlzRnJlZSgpKTsKICAgICAgICAgICAgIHJldHVybiAmY3VycmVudDsKQEAgLTk3
LDggKzgxLDcgQEAgc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwRmlsZShRU3RyaW5nIGZpbGVOYW1l
LCBzaXplX3Qgc2l6ZSkKICAgICBuZXdNYXAuZGF0YSA9IG5ld01hcC5maWxlLT5tYXAoMCwgc2l6
ZSk7CiAgICAgQVNTRVJUKCFuZXdNYXAuaXNGcmVlKCkpOwogICAgIG5ld01hcC5maWxlLT5jbG9z
ZSgpOwotICAgIG1tYXBQb29sLT5hcHBlbmQobmV3TWFwKTsKLSAgICByZXR1cm4gJm1tYXBQb29s
LT5sYXN0KCk7CisgICAgcmV0dXJuICZwb29sLT5hcHBlbmQobmV3TWFwKTsKIH0KIAogVXBkYXRl
Q2h1bms6OlVwZGF0ZUNodW5rKCkKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0
ZUNodW5rLmggYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCmluZGV4IGZmZTFiYTQu
LjBjOTI4NmUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmgKKysr
IGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaApAQCAtMjcsNiArMjcsNyBAQAogI2lm
bmRlZiBVcGRhdGVDaHVua19oCiAjZGVmaW5lIFVwZGF0ZUNodW5rX2gKIAorI2luY2x1ZGUgIk1h
cHBlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFFJbWFnZT4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJl
Y3QuaD4KIApAQCAtMzcsOCArMzgsNiBAQCBjbGFzcyBBcmd1bWVudERlY29kZXI7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBNYXBwZWRNZW1vcnk7Ci0KIGNsYXNzIFVwZGF0ZUNodW5r
IHsKIHB1YmxpYzoKICAgICBVcGRhdGVDaHVuaygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJL
aXQyLnBybyBiL1dlYktpdDIvV2ViS2l0Mi5wcm8KaW5kZXggNTVjYWIwNy4uZmM4ZjZhNSAxMDA2
NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9XZWJLaXQyL1dlYktpdDIucHJvCkBA
IC0xNjIsNyArMTYyLDkgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL011dGFibGVBcnJheS5o
IFwKICAgICBTaGFyZWQvTXV0YWJsZURpY3Rpb25hcnkuaCBcCiAgICAgU2hhcmVkL05vdEltcGxl
bWVudGVkLmggXAorICAgIFNoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaCBcCiAgICAgU2hhcmVkL3F0
L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggXAorICAgIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5o
IFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaCBcCiAgICAgU2hhcmVkL1VzZXJN
ZXNzYWdlQ29kZXJzLmggXAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXApAQCAtMjky
LDYgKzI5NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3Jl
LmNwcCBcCiAgICAgU2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwIFwKICAgICBTaGFyZWQvV2ViVVJM
UmVzcG9uc2UuY3BwIFwKKyAgICBTaGFyZWQvcXQvTWFwcGVkTWVtb3J5UG9vbC5jcHAgXAogICAg
IFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAgXAogICAgIFNoYXJlZC9xdC9XZWJFdmVudEZhY3Rv
cnlRdC5jcHAgXAogICAgIFNoYXJlZC9xdC9XZWJDb3JlQXJndW1lbnRDb2RlcnNRdC5jcHAgXAot
LSAKMS43LjIuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68109</attachid>
            <date>2010-09-20 10:25:19 -0700</date>
            <delta_ts>2010-09-21 06:24:35 -0700</delta_ts>
            <desc>proposed patch v2</desc>
            <filename>0001-Qt-QtWebProcess-should-clean-up-shared-memory-map-fi.patch</filename>
            <type>text/plain</type>
            <size>10809</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
YjRhMTZjYi4uNzAyNWE4OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wOS0yMCAgQW5kcmFzIEJlY3Np
ICA8YWJlY3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViUHJvY2VzcyBzaG91bGQgY2xlYW4gdXAgc2hh
cmVkIG1lbW9yeSBtYXAgZmlsZXMgb24gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTg0CisKKyAgICAgICAgUmVsb2NhdGUgTWFwcGVkTWVt
b3J5IHN0cnVjdCBjb2RlIHRvIGl0J3Mgb3duIGhlYWRlciBhbmQgaW1wbGVtZW50CisgICAgICAg
IGEgc2luZ2xldG9uIHBvb2wgY2xhc3MgKE1hcHBlZE1lbW9yeVBvb2wpIHdoaWNoIHRyYWNrcyBz
aGFyZWQgbWVtb3J5CisgICAgICAgIHRvIGJlIGFibGUgdG8gY2xlYW4gdXAgbWFwIGZpbGVzIGZy
b20gZGlzayBpZiBSdW5Mb29wIHN0b3BzLgorCisgICAgICAgICogU2hhcmVkL3F0L01hcHBlZE1l
bW9yeS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5OjptYXJrVXNlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeTo6bWFya0ZyZWUpOgorICAgICAgICAoV2Vi
S2l0OjpNYXBwZWRNZW1vcnk6OmlzRnJlZSk6CisgICAgICAgICogU2hhcmVkL3F0L01hcHBlZE1l
bW9yeVBvb2wuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6
TWFwcGVkTWVtb3J5UG9vbCk6CisgICAgICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6Omlu
c3RhbmNlKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9vbDo6c2l6ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok1hcHBlZE1lbW9yeVBvb2w6OmF0KToKKyAgICAgICAgKFdlYktpdDo6TWFw
cGVkTWVtb3J5UG9vbDo6YXBwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5UG9v
bDo6Y2xlYW5VcCk6CisgICAgICAgICogU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6bWFwTWVtb3J5KToKKyAgICAgICAgKFdlYktpdDo6bWFwRmlsZSk6CisgICAg
ICAgICogU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmg6CisgICAgICAgICogV2ViS2l0Mi5wcm86CisK
IDIwMTAtMDktMjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvTWFwcGVk
TWVtb3J5LmggYi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWE1MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9TaGFyZWQvcXQvTWFwcGVkTWVtb3J5LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBNYXBwZWRNZW1vcnlfaAorI2RlZmluZSBNYXBwZWRNZW1vcnlfaAorCisjaW5jbHVk
ZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRmlsZT4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworc3RydWN0IE1hcHBlZE1lbW9yeSB7CisgICAg
UUZpbGUqIGZpbGU7CisgICAgdWNoYXIqIGRhdGE7CisgICAgc2l6ZV90IHNpemU7CisgICAgdm9p
ZCBtYXJrVXNlZCgpIHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDA7IH0K
KyAgICB2b2lkIG1hcmtGcmVlKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEp
ID0gMHhkZWFkYmVlZjsgfQorICAgIGJvb2wgaXNGcmVlKCkgeyByZXR1cm4gKnJlaW50ZXJwcmV0
X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9PSAweGRlYWRiZWVmOyB9Cit9OworCitjbGFzcyBNYXBw
ZWRNZW1vcnlQb29sIDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6Cisg
ICAgc3RhdGljIE1hcHBlZE1lbW9yeVBvb2wqIGluc3RhbmNlKCk7CisgICAgc2l6ZV90IHNpemUo
KSBjb25zdDsKKyAgICBNYXBwZWRNZW1vcnkmIGF0KHNpemVfdCBpKTsKKyAgICBNYXBwZWRNZW1v
cnkmIGFwcGVuZChjb25zdCBNYXBwZWRNZW1vcnkmKTsKKworcHJpdmF0ZToKKyAgICBNYXBwZWRN
ZW1vcnlQb29sKCk7CisgICAgUV9TTE9UIHZvaWQgY2xlYW5VcCgpOworCisgICAgVmVjdG9yPE1h
cHBlZE1lbW9yeT4gbV9wb29sOworfTsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorI2VuZGlmIC8v
IE1hcHBlZE1lbW9yeV9oCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1v
cnlQb29sLmNwcCBiL1dlYktpdDIvU2hhcmVkL3F0L01hcHBlZE1lbW9yeVBvb2wuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNDdkM2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXQyL1NoYXJlZC9xdC9NYXBwZWRNZW1vcnlQb29sLmNwcApAQCAtMCwwICsxLDc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJNYXBwZWRNZW1vcnkuaCIKKworI2lu
Y2x1ZGUgIlN0ZExpYkV4dHJhcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTWFwcGVkTWVt
b3J5UG9vbDo6TWFwcGVkTWVtb3J5UG9vbCgpCit7CisgICAgY29ubmVjdChRQ29yZUFwcGxpY2F0
aW9uOjppbnN0YW5jZSgpLCBTSUdOQUwoYWJvdXRUb1F1aXQoKSksIFNMT1QoY2xlYW5VcCgpKSk7
Cit9CisKK01hcHBlZE1lbW9yeVBvb2wqIE1hcHBlZE1lbW9yeVBvb2w6Omluc3RhbmNlKCkKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE1hcHBlZE1lbW9yeVBvb2wsIHNpbmdsZXRvbiwgKCkp
OworICAgIHJldHVybiAmc2luZ2xldG9uOworfQorCitzaXplX3QgTWFwcGVkTWVtb3J5UG9vbDo6
c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcG9vbC5zaXplKCk7Cit9CisKK01hcHBlZE1l
bW9yeSYgTWFwcGVkTWVtb3J5UG9vbDo6YXQoc2l6ZV90IGkpCit7CisgICAgcmV0dXJuIG1fcG9v
bC5hdChpKTsKK30KKworTWFwcGVkTWVtb3J5JiBNYXBwZWRNZW1vcnlQb29sOjphcHBlbmQoY29u
c3QgTWFwcGVkTWVtb3J5JiBuZXdNYXApCit7CisgICAgbV9wb29sLmFwcGVuZChuZXdNYXApOwor
ICAgIHJldHVybiBtX3Bvb2wubGFzdCgpOworfQorCit2b2lkIE1hcHBlZE1lbW9yeVBvb2w6OmNs
ZWFuVXAoKQoreworICAgIHNpemVfdCBzaXplID0gbV9wb29sLnNpemUoKTsKKworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIE1hcHBlZE1lbW9yeSYgY2h1
bmsgPSBtX3Bvb2wuYXQoaSk7CisgICAgICAgIGlmICghY2h1bmsuaXNGcmVlKCkpCisgICAgICAg
ICAgICBjaHVuay5maWxlLT51bm1hcChjaHVuay5kYXRhKTsKKyAgICAgICAgY2h1bmsuZmlsZS0+
cmVtb3ZlKCk7CisgICAgfQorCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwIGIv
V2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwCmluZGV4IDI5NDBhZGMuLmM1OGRmYjcg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcAorKysgYi9XZWJL
aXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSwzNiArMzIsMjIgQEAKICNpbmNsdWRlICJBdHRh
Y2htZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8
UURlYnVnPgotI2luY2x1ZGUgPFFGaWxlPgorI2luY2x1ZGUgPFFEaXI+CiAjaW5jbHVkZSA8UUlt
YWdlPgogI2luY2x1ZGUgPFFUZW1wb3JhcnlGaWxlPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRS
ZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotICAgIAotc3RydWN0IE1hcHBlZE1lbW9yeSB7Ci0gICAg
UUZpbGUqIGZpbGU7Ci0gICAgdWNoYXIqIGRhdGE7Ci0gICAgc2l6ZV90IHNpemU7Ci0gICAgdm9p
ZCBtYXJrVXNlZCgpIHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDA7IH0K
LSAgICB2b2lkIG1hcmtGcmVlKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEp
ID0gMHhkZWFkYmVlZjsgfQotICAgIGJvb2wgaXNGcmVlKCkgeyByZXR1cm4gKnJlaW50ZXJwcmV0
X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9PSAweGRlYWRiZWVmOyB9Ci19OwotCi1zdGF0aWMgVmVj
dG9yPE1hcHBlZE1lbW9yeT4qIG1tYXBQb29sOwotICAgIAorCiBzdGF0aWMgTWFwcGVkTWVtb3J5
KiBtYXBNZW1vcnkoc2l6ZV90IHNpemUpCiB7Ci0gICAgaWYgKCFtbWFwUG9vbCkKLSAgICAgICAg
bW1hcFBvb2wgPSBuZXcgVmVjdG9yPE1hcHBlZE1lbW9yeT47Ci0gICAgICAgIAotICAgIGZvciAo
dW5zaWduZWQgbiA9IDA7IG4gPCBtbWFwUG9vbC0+c2l6ZSgpOyArK24pIHsKLSAgICAgICAgTWFw
cGVkTWVtb3J5JiBjdXJyZW50ID0gbW1hcFBvb2wtPmF0KG4pOworICAgIE1hcHBlZE1lbW9yeVBv
b2wqIHBvb2wgPSBNYXBwZWRNZW1vcnlQb29sOjppbnN0YW5jZSgpOworICAgIGZvciAodW5zaWdu
ZWQgbiA9IDA7IG4gPCBwb29sLT5zaXplKCk7ICsrbikgeworICAgICAgICBNYXBwZWRNZW1vcnkm
IGN1cnJlbnQgPSBwb29sLT5hdChuKTsKICAgICAgICAgaWYgKGN1cnJlbnQuc2l6ZSA+PSBzaXpl
ICYmIGN1cnJlbnQuaXNGcmVlKCkpIHsKICAgICAgICAgICAgIGN1cnJlbnQubWFya1VzZWQoKTsK
ICAgICAgICAgICAgIHJldHVybiAmY3VycmVudDsKQEAgLTY4LDIzICs1NSwyMCBAQCBzdGF0aWMg
TWFwcGVkTWVtb3J5KiBtYXBNZW1vcnkoc2l6ZV90IHNpemUpCiAgICAgfQogICAgIE1hcHBlZE1l
bW9yeSBuZXdNYXA7CiAgICAgbmV3TWFwLnNpemUgPSBzaXplOwotICAgIC8vIEZJWE1FOiBDbGVh
biB1cCBvciByZXVzZSBsZWZ0b3ZlciBtYXAgZmlsZXMgZnJvbSB0aGUgZGlzay4KLSAgICBuZXdN
YXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZSgiV2ViS2l0MlVwZGF0ZUNodW5rIik7CisgICAg
bmV3TWFwLmZpbGUgPSBuZXcgUVRlbXBvcmFyeUZpbGUoUURpcjo6dGVtcFBhdGgoKSArICIvV2Vi
S2l0MlVwZGF0ZUNodW5rIik7CiAgICAgbmV3TWFwLmZpbGUtPm9wZW4oUUlPRGV2aWNlOjpSZWFk
V3JpdGUpOwogICAgIG5ld01hcC5maWxlLT5yZXNpemUobmV3TWFwLnNpemUpOwogICAgIG5ld01h
cC5kYXRhID0gbmV3TWFwLmZpbGUtPm1hcCgwLCBuZXdNYXAuc2l6ZSk7CiAgICAgbmV3TWFwLmZp
bGUtPmNsb3NlKCk7CiAgICAgbmV3TWFwLm1hcmtVc2VkKCk7Ci0gICAgbW1hcFBvb2wtPmFwcGVu
ZChuZXdNYXApOwotICAgIHJldHVybiAmbW1hcFBvb2wtPmxhc3QoKTsKKyAgICByZXR1cm4gJnBv
b2wtPmFwcGVuZChuZXdNYXApOwogfQogICAgIAogc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwRmls
ZShRU3RyaW5nIGZpbGVOYW1lLCBzaXplX3Qgc2l6ZSkKIHsKLSAgICBpZiAoIW1tYXBQb29sKQot
ICAgICAgICBtbWFwUG9vbCA9IG5ldyBWZWN0b3I8TWFwcGVkTWVtb3J5PjsKLSAgICBmb3IgKHVu
c2lnbmVkIG4gPSAwOyBuIDwgbW1hcFBvb2wtPnNpemUoKTsgKytuKSB7Ci0gICAgICAgIE1hcHBl
ZE1lbW9yeSYgY3VycmVudCA9IG1tYXBQb29sLT5hdChuKTsKKyAgICBNYXBwZWRNZW1vcnlQb29s
KiBwb29sID0gTWFwcGVkTWVtb3J5UG9vbDo6aW5zdGFuY2UoKTsKKyAgICBmb3IgKHVuc2lnbmVk
IG4gPSAwOyBuIDwgcG9vbC0+c2l6ZSgpOyArK24pIHsKKyAgICAgICAgTWFwcGVkTWVtb3J5JiBj
dXJyZW50ID0gcG9vbC0+YXQobik7CiAgICAgICAgIGlmIChjdXJyZW50LmZpbGUtPmZpbGVOYW1l
KCkgPT0gZmlsZU5hbWUpIHsKICAgICAgICAgICAgIEFTU0VSVCghY3VycmVudC5pc0ZyZWUoKSk7
CiAgICAgICAgICAgICByZXR1cm4gJmN1cnJlbnQ7CkBAIC05Nyw4ICs4MSw3IEBAIHN0YXRpYyBN
YXBwZWRNZW1vcnkqIG1hcEZpbGUoUVN0cmluZyBmaWxlTmFtZSwgc2l6ZV90IHNpemUpCiAgICAg
bmV3TWFwLmRhdGEgPSBuZXdNYXAuZmlsZS0+bWFwKDAsIHNpemUpOwogICAgIEFTU0VSVCghbmV3
TWFwLmlzRnJlZSgpKTsKICAgICBuZXdNYXAuZmlsZS0+Y2xvc2UoKTsKLSAgICBtbWFwUG9vbC0+
YXBwZW5kKG5ld01hcCk7Ci0gICAgcmV0dXJuICZtbWFwUG9vbC0+bGFzdCgpOworICAgIHJldHVy
biAmcG9vbC0+YXBwZW5kKG5ld01hcCk7CiB9CiAKIFVwZGF0ZUNodW5rOjpVcGRhdGVDaHVuaygp
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oIGIvV2ViS2l0Mi9T
aGFyZWQvcXQvVXBkYXRlQ2h1bmsuaAppbmRleCBmZmUxYmE0Li4wYzkyODZlIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0
L1VwZGF0ZUNodW5rLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgVXBkYXRlQ2h1bmtfaAog
I2RlZmluZSBVcGRhdGVDaHVua19oCiAKKyNpbmNsdWRlICJNYXBwZWRNZW1vcnkuaCIKICNpbmNs
dWRlIDxRSW1hZ2U+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAKQEAgLTM3LDggKzM4
LDYgQEAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgTWFwcGVkTWVtb3J5OwotCiBjbGFzcyBVcGRhdGVDaHVuayB7CiBwdWJsaWM6CiAgICAgVXBk
YXRlQ2h1bmsoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQyL1dl
YktpdDIucHJvCmluZGV4IDU1Y2FiMDcuLmZjOGY2YTUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2Vi
S2l0Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMTYyLDcgKzE2Miw5IEBAIEhF
QURFUlMgKz0gXAogICAgIFNoYXJlZC9NdXRhYmxlQXJyYXkuaCBcCiAgICAgU2hhcmVkL011dGFi
bGVEaWN0aW9uYXJ5LmggXAogICAgIFNoYXJlZC9Ob3RJbXBsZW1lbnRlZC5oIFwKKyAgICBTaGFy
ZWQvcXQvTWFwcGVkTWVtb3J5LmggXAogICAgIFNoYXJlZC9xdC9QbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5oIFwKKyAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBcCiAgICAgU2hhcmVkL3F0L1dl
YkV2ZW50RmFjdG9yeVF0LmggXAogICAgIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIFwKICAg
ICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5oIFwKQEAgLTI5Miw2ICsyOTQsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgXAogICAgIFNoYXJlZC9X
ZWJVUkxSZXF1ZXN0LmNwcCBcCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcCBcCisgICAg
U2hhcmVkL3F0L01hcHBlZE1lbW9yeVBvb2wuY3BwIFwKICAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1
bmsuY3BwIFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwIFwKICAgICBTaGFy
ZWQvcXQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzUXQuY3BwIFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>