<?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>76399</bug_id>
          
          <creation_ts>2012-01-16 12:01:26 -0800</creation_ts>
          <short_desc>[Qt][WK2] QtWebIconDatabaseClient leaves a dangling pointer on WebIconDatabase after its destruction</short_desc>
          <delta_ts>2012-01-24 05:31:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rafael Brandao">rafael.lobo</reporter>
          <assigned_to name="Rafael Brandao">rafael.lobo</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jesus</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536697</commentid>
    <comment_count>0</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-16 12:01:26 -0800</bug_when>
    <thetext>[Qt][WK2] QtWebIconDatabaseClient may be deleted before running its slot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536700</commentid>
    <comment_count>1</comment_count>
      <attachid>122671</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-16 12:04:43 -0800</bug_when>
    <thetext>Created attachment 122671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536707</commentid>
    <comment_count>2</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-16 12:24:15 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=122671) [details]
&gt; Patch

This bug has been a pain to reproduce on release mode, but for some reason it was easily caught on debug mode.

When you run qmltests, you may get the assert inside WTF::Mutex::lock used by QtWebIconDatabaseClient::iconImageForPageURL. The call to pthread_mutex_lock was returning EINVAL which means that that mutex was not an initialized object. On other runs, I could get a seg fault inside WebIconDatabase::imageForPageURL, on the line with contents &quot;if (!m_webContext || !m_iconDatabaseImpl || !m_iconDatabaseImpl-&gt;isOpen() || pageURL.isEmpty())&quot;. So it become clear that m_iconDatabaseImpl has been deleted, but someone still kept a reference to it.

It happens between tests when we destroy all WebViews and then the QtWebContext is destroyed, taking QtWebIconDatabaseClient with him. So at this point no one should have a reference to it. Once we start a new test, new web views are created, a new QtWebContext and a new icon client are created. Each web view was pointing to the new icon client reference... so still, no one seemed to keep a reference to the old client. And then suddenly something just called the slot requestIconForPageURL from this old client that was deleted already. The only thing I can imagine is that this event was pending on the event queue when we deleted the last WebView.

As I&apos;ve said it&apos;s hard to reproduce, I&apos;ve tried to insert more prints on the code but suddenly all started working again without this change. I&apos;ve ran this change on Caio and Jesus machines on debug mode and the asserts that I&apos;ve described stopped happening (but still there is an unrelated assert triggering there on a later test). I&apos;d like to hear your thoughts about this change, it seems weird that we need to use deleteLater for this one.

This log (https://gist.github.com/bc8dc6da13d8d98c0a8a) can show the deleted client being called after all the new views are created. These two (https://gist.github.com/1620867 and https://gist.github.com/1620896) show some of the issues that we had before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537214</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-17 11:11:34 -0800</bug_when>
    <thetext>Do you have a backtrace from _where_ iconImageForPageURL was called from?

I don&apos;t like this &quot;solution&quot;, so I&apos;m curious if there&apos;s another way of fixing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537311</commentid>
    <comment_count>4</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-17 12:58:50 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Do you have a backtrace from _where_ iconImageForPageURL was called from?
&gt; 
&gt; I don&apos;t like this &quot;solution&quot;, so I&apos;m curious if there&apos;s another way of fixing it.

(In reply to comment #3)
&gt; Do you have a backtrace from _where_ iconImageForPageURL was called from?
&gt; 
&gt; I don&apos;t like this &quot;solution&quot;, so I&apos;m curious if there&apos;s another way of fixing it.(In reply to comment #3)
&gt; Do you have a backtrace from _where_ iconImageForPageURL was called from?
&gt; 
&gt; I don&apos;t like this &quot;solution&quot;, so I&apos;m curious if there&apos;s another way of fixing it.

This &quot;solution&quot; may not solve the real problem. I was checking again those backtraces that I&apos;ve posted here again and the function is called after we receive messages from WebProcess with new icon data. IconDatabase and WebIconDatabase are never destroyed and the last one keeps a reference to the icon client. After we destroy the client, a message from WebProcess may get into UIProcess before we have the chance to create a new one. Then WebIconDatabase handles the message with the old reference... and then fail. So I might have to cleanup that reference, but I&apos;m not sure if this alone is enough (maybe we should take care of such pending slot call as I&apos;ve thought initially, or maybe not).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537713</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-18 01:36:53 -0800</bug_when>
    <thetext>From the backtraces it looks like the QtWebIconDatabaseClient is indeed perhaps the stale object. It&apos;s life time should be the same as the WebIconDatabase the WebContext holds, in other words the intended destruction cycle should be:

QtWebContext dies -&gt; has the last ref on the WebContext -&gt; WebContext gets destroyed -&gt; has the last ref on the WebIconDatabase -&gt; WebIconDatabase gets destroyed and the QtWebIconDatabaseClient died in ~QtWebContext. That should all happen without any intermediate returns to the event loop.

UNLESS the &quot;has the last ref&quot; conditions don&apos;t hold, in which case WebIconDatabase quickly ends up with a dangling &quot;clientInfo&quot; pointer in WebIconDatabase::m_iconDatabaseClient::m_client.

If that is the case - and it seems somewhat likely - then we need to make sure QtWebIconDatabaseClient destructs correctly, i.e. using


QtWebIconDatabaseClient::~QtWebIconDatabaseClient()
{
+    WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase), 0);
}

QtWebContext::~QtWebContext()
{
+    m_iconDatabase.clear();
    if (s_defaultContext == this)
        s_defaultContext = 0;
    contextMap.remove(m_contextID);
}

(Note that m_iconDatabase has the _wrong_ name, it should be m_iconDatabaseClient)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537806</commentid>
    <comment_count>6</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-01-18 05:57:12 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; From the backtraces it looks like the QtWebIconDatabaseClient is indeed perhaps the stale object. It&apos;s life time should be the same as the WebIconDatabase the WebContext holds, in other words the intended destruction cycle should be:
&gt; 
&gt; QtWebContext dies -&gt; has the last ref on the WebContext -&gt; WebContext gets destroyed -&gt; has the last ref on the WebIconDatabase -&gt; WebIconDatabase gets destroyed and the QtWebIconDatabaseClient died in ~QtWebContext. That should all happen without any intermediate returns to the event loop.

Except that WebContext is never deleted today. It leaks as there is circular dependency that is not going to be fixed before WebKit2 supports multiple WebProcess (my talk with andersca). WebContext has a ref to WebPageProxy but WebPageProxy has a ref to WebProcessProxy which has a ref to WebContext.

&gt; 
&gt; UNLESS the &quot;has the last ref&quot; conditions don&apos;t hold, in which case WebIconDatabase quickly ends up with a dangling &quot;clientInfo&quot; pointer in WebIconDatabase::m_iconDatabaseClient::m_client.
&gt; 
&gt; If that is the case - and it seems somewhat likely - then we need to make sure QtWebIconDatabaseClient destructs correctly, i.e. using
&gt; 
&gt; 
&gt; QtWebIconDatabaseClient::~QtWebIconDatabaseClient()
&gt; {
&gt; +    WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase), 0);
&gt; }
&gt; 
&gt; QtWebContext::~QtWebContext()
&gt; {
&gt; +    m_iconDatabase.clear();
&gt;     if (s_defaultContext == this)
&gt;         s_defaultContext = 0;
&gt;     contextMap.remove(m_contextID);
&gt; }
&gt; 
&gt; (Note that m_iconDatabase has the _wrong_ name, it should be m_iconDatabaseClient)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537816</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-18 06:14:45 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; From the backtraces it looks like the QtWebIconDatabaseClient is indeed perhaps the stale object. It&apos;s life time should be the same as the WebIconDatabase the WebContext holds, in other words the intended destruction cycle should be:
&gt; &gt; 
&gt; &gt; QtWebContext dies -&gt; has the last ref on the WebContext -&gt; WebContext gets destroyed -&gt; has the last ref on the WebIconDatabase -&gt; WebIconDatabase gets destroyed and the QtWebIconDatabaseClient died in ~QtWebContext. That should all happen without any intermediate returns to the event loop.

Aha!

Actually it seems a whole lot simpler: WebContext has RefPtr&lt;WebProcessProxy&gt; m_process and WebProcessProxy has RefPtr&lt;WebContext&gt; m_context.

Strange, that looks like a straight-forward dependency to break.

Anyway, if it can&apos;t be broken then what I suggested in the previous comment should work and with this circular reference present the back-trace makes much more sense now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537824</commentid>
    <comment_count>8</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-01-18 06:22:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; From the backtraces it looks like the QtWebIconDatabaseClient is indeed perhaps the stale object. It&apos;s life time should be the same as the WebIconDatabase the WebContext holds, in other words the intended destruction cycle should be:
&gt; &gt; &gt; 
&gt; &gt; &gt; QtWebContext dies -&gt; has the last ref on the WebContext -&gt; WebContext gets destroyed -&gt; has the last ref on the WebIconDatabase -&gt; WebIconDatabase gets destroyed and the QtWebIconDatabaseClient died in ~QtWebContext. That should all happen without any intermediate returns to the event loop.
&gt; 
&gt; Aha!
&gt; 
&gt; Actually it seems a whole lot simpler: WebContext has RefPtr&lt;WebProcessProxy&gt; m_process and WebProcessProxy has RefPtr&lt;WebContext&gt; m_context.
&gt; 
&gt; Strange, that looks like a straight-forward dependency to break.
&gt;

I tried to break it :
http://trac.webkit.org/changeset/93784
with disconnectProcess() it happens to be a bad idea :(
 
&gt; Anyway, if it can&apos;t be broken then what I suggested in the previous comment should work and with this circular reference present the back-trace makes much more sense now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537903</commentid>
    <comment_count>9</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-18 09:07:34 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; &gt; From the backtraces it looks like the QtWebIconDatabaseClient is indeed perhaps the stale object. It&apos;s life time should be the same as the WebIconDatabase the WebContext holds, in other words the intended destruction cycle should be:
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; QtWebContext dies -&gt; has the last ref on the WebContext -&gt; WebContext gets destroyed -&gt; has the last ref on the WebIconDatabase -&gt; WebIconDatabase gets destroyed and the QtWebIconDatabaseClient died in ~QtWebContext. That should all happen without any intermediate returns to the event loop.
&gt; &gt; 
&gt; &gt; Aha!
&gt; &gt; 
&gt; &gt; Actually it seems a whole lot simpler: WebContext has RefPtr&lt;WebProcessProxy&gt; m_process and WebProcessProxy has RefPtr&lt;WebContext&gt; m_context.
&gt; &gt; 
&gt; &gt; Strange, that looks like a straight-forward dependency to break.
&gt; &gt;
&gt; 
&gt; I tried to break it :
&gt; http://trac.webkit.org/changeset/93784
&gt; with disconnectProcess() it happens to be a bad idea :(
&gt; 
&gt; &gt; Anyway, if it can&apos;t be broken then what I suggested in the previous comment should work and with this circular reference present the back-trace makes much more sense now.

(In reply to comment #5)
&gt; From the backtraces it looks like the QtWebIconDatabaseClient is indeed perhaps the stale object. It&apos;s life time should be the same as the WebIconDatabase the WebContext holds, in other words the intended destruction cycle should be:
&gt; 
&gt; QtWebContext dies -&gt; has the last ref on the WebContext -&gt; WebContext gets destroyed -&gt; has the last ref on the WebIconDatabase -&gt; WebIconDatabase gets destroyed and the QtWebIconDatabaseClient died in ~QtWebContext. That should all happen without any intermediate returns to the event loop.
&gt; 
&gt; UNLESS the &quot;has the last ref&quot; conditions don&apos;t hold, in which case WebIconDatabase quickly ends up with a dangling &quot;clientInfo&quot; pointer in WebIconDatabase::m_iconDatabaseClient::m_client.
&gt; 
&gt; If that is the case - and it seems somewhat likely - then we need to make sure QtWebIconDatabaseClient destructs correctly, i.e. using
&gt; 
&gt; 
&gt; QtWebIconDatabaseClient::~QtWebIconDatabaseClient()
&gt; {
&gt; +    WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase), 0);
&gt; }
&gt; 
&gt; QtWebContext::~QtWebContext()
&gt; {
&gt; +    m_iconDatabase.clear();
&gt;     if (s_defaultContext == this)
&gt;         s_defaultContext = 0;
&gt;     contextMap.remove(m_contextID);
&gt; }
&gt; 
&gt; (Note that m_iconDatabase has the _wrong_ name, it should be m_iconDatabaseClient)

I&apos;ve left building in debug mode yesterday using a similar approach and by running the tests today I assume the problem is not there anymore. As Alexis pointed out, we don&apos;t destroy WebContext, and consequently we don&apos;t destroy WebIconDatabase neither IconDatabase. I&apos;ll send a new patch with the proposed fix and will also change the name as you&apos;ve suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538125</commentid>
    <comment_count>10</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-18 13:54:05 -0800</bug_when>
    <thetext>Changing the bug title to reflect the real problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538163</commentid>
    <comment_count>11</comment_count>
      <attachid>122994</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-18 14:22:54 -0800</bug_when>
    <thetext>Created attachment 122994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538167</commentid>
    <comment_count>12</comment_count>
      <attachid>122994</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-18 14:26:20 -0800</bug_when>
    <thetext>Comment on attachment 122994
Patch

Simon, I don&apos;t think we need to explicitly call m_iconDatabaseClient.clear() on QtWebContext destructor because that OwnPtr is already being destroyed anyway, that&apos;s why I didn&apos;t put it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538548</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-19 01:16:26 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 122994 [details])
&gt; Simon, I don&apos;t think we need to explicitly call m_iconDatabaseClient.clear() on QtWebContext destructor because that OwnPtr is already being destroyed anyway, that&apos;s why I didn&apos;t put it there.

You&apos;re right that it&apos;s not _strictly_ needed.

It&apos;s the order however that matters. We must make sure that the WebIconDatabase that the WebIconDatabaseClient destructor uses in its call to WKSetIconDatabaseClient is still valid. We can be sneaky and silently rely on the reverse destruction order of the QtWebContext members, or we can play it safe and do it explicitly.

We could also change QtWebIconDatabaseClient to hold a _ref_ on the database, instead of storing a naked pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538618</commentid>
    <comment_count>14</comment_count>
      <attachid>123103</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-19 04:35:37 -0800</bug_when>
    <thetext>Created attachment 123103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538664</commentid>
    <comment_count>15</comment_count>
      <attachid>123103</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-19 06:12:32 -0800</bug_when>
    <thetext>Comment on attachment 123103
Patch

I just skipped application scheme qmltests and then I&apos;ve got an assert at some other point in the favicon test. I&apos;ll look into this to see what is wrong, so I&apos;m cleaning cq for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538666</commentid>
    <comment_count>16</comment_count>
      <attachid>123103</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-19 06:26:22 -0800</bug_when>
    <thetext>Comment on attachment 123103
Patch

I just looked into this assert and it has nothing to do with this patch. The broken tests are the ones which webview doesn&apos;t have its size previously set. I&apos;ve confirmed with Jesus, he got the same results as me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538974</commentid>
    <comment_count>17</comment_count>
      <attachid>123103</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-19 13:20:57 -0800</bug_when>
    <thetext>Comment on attachment 123103
Patch

I don&apos;t like the fact that this patch does two things in one:

    1) A stylistic rename

    2) A rather tricky bug fix.

I think it&apos;s better to do those as separate patches. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539069</commentid>
    <comment_count>18</comment_count>
      <attachid>123207</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-19 15:20:42 -0800</bug_when>
    <thetext>Created attachment 123207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539077</commentid>
    <comment_count>19</comment_count>
      <attachid>123207</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-19 15:24:59 -0800</bug_when>
    <thetext>Comment on attachment 123207
Patch

Here&apos;s the patch without the stylistic changes. Now I was just thinking that as we&apos;re keeping a reference to WebIconDatabase on our client, we should always have a valid pointer to it upon its destruction, right? If this is true, then maybe that explicit call to clear our client might not be needed anymore, but there&apos;s no warm on doing it anyway. ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540753</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-23 12:49:12 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 123207 [details])
&gt; Here&apos;s the patch without the stylistic changes. Now I was just thinking that as we&apos;re keeping a reference to WebIconDatabase on our client, we should always have a valid pointer to it upon its destruction, right? If this is true, then maybe that explicit call to clear our client might not be needed anymore, but there&apos;s no warm on doing it anyway. ;-)

That is actually correct, good point :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540755</commentid>
    <comment_count>21</comment_count>
      <attachid>123207</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-23 12:50:05 -0800</bug_when>
    <thetext>Comment on attachment 123207
Patch

r=me. I&apos;ll leave it to you if you want to land the patch as-is or remove the clear() before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541238</commentid>
    <comment_count>22</comment_count>
      <attachid>123713</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-24 04:17:05 -0800</bug_when>
    <thetext>Created attachment 123713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541254</commentid>
    <comment_count>23</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-24 05:01:13 -0800</bug_when>
    <thetext>*** Bug 76906 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541268</commentid>
    <comment_count>24</comment_count>
      <attachid>123713</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-24 05:31:04 -0800</bug_when>
    <thetext>Comment on attachment 123713
Patch

Clearing flags on attachment: 123713

Committed r105732: &lt;http://trac.webkit.org/changeset/105732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541269</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-24 05:31:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122671</attachid>
            <date>2012-01-16 12:04:43 -0800</date>
            <delta_ts>2012-01-18 14:22:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76399-20120116170441.patch</filename>
            <type>text/plain</type>
            <size>3259</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDA2N2M3M2QwMzE2ZmRh
ODQ1MWRkMGZkYjZlNWMwNTlmZGI0MDBiOS4uZDRhYmVhNzgyZDYzZmExOGE0Yjc3NDliMWRjNzll
ZTZhZWU3YTMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAxLTE2ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtX
SzJdIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50IG1heSBiZSBkZWxldGVkIGJlZm9yZSBydW5uaW5n
IGl0cyBzbG90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NjM5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0V2Vi
Q29udGV4dDo6UXRXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJDb250ZXh0Ojp+
UXRXZWJDb250ZXh0KTogVXNlIGRlbGV0ZUxhdGVyIGZvciBpY29uIGNsaWVudCBzbworICAgICAg
ICBhbnkgcGVuZGluZyBldmVudHMgZm9yIHRoYXQgb2JqZWN0IGFyZSByZW1vdmVkIGZyb20gdGhl
IGV2ZW50IHF1ZXVlLgorICAgICAgICAoV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmluaXRpYWxpemUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktp
dDo6UXRXZWJDb250ZXh0OjppY29uRGF0YWJhc2UpOgorCiAyMDEyLTAxLTE2ICBBbGV4YW5kZXIg
RsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUmVt
b3ZlIHJlZmVyZW5jZXMgdG8gUGFnZVBvaW50ZXIgaW4gdGhlIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHAKaW5kZXgg
MjlhNTQ3YmE5OGQ4MTE2OGJkNGE5N2ZlYTVjMzc2ODYwODNhMjcwZi4uOTA1OTk2ZWJmNzFhZmY3
NjdiOTM2YjE4NDI2MTE1Y2FlNjc5YjY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViQ29udGV4dC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgUXRXZWJDb250ZXh0KiBRdFdl
YkNvbnRleHQ6OnNfZGVmYXVsdENvbnRleHQgPSAwOwogCiBRdFdlYkNvbnRleHQ6OlF0V2ViQ29u
dGV4dChXZWJDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAg
LCBtX2ljb25EYXRhYmFzZSgwKQogewogICAgIG1fY29udGV4dElEID0gZ2VuZXJhdGVDb250ZXh0
SUQoKTsKICAgICBjb250ZXh0TWFwLnNldChtX2NvbnRleHRJRCwgdGhpcyk7CkBAIC01Niw2ICs1
Nyw4IEBAIFF0V2ViQ29udGV4dDo6flF0V2ViQ29udGV4dCgpCiAgICAgaWYgKHNfZGVmYXVsdENv
bnRleHQgPT0gdGhpcykKICAgICAgICAgc19kZWZhdWx0Q29udGV4dCA9IDA7CiAgICAgY29udGV4
dE1hcC5yZW1vdmUobV9jb250ZXh0SUQpOworICAgIGlmIChtX2ljb25EYXRhYmFzZSkKKyAgICAg
ICAgbV9pY29uRGF0YWJhc2UtPmRlbGV0ZUxhdGVyKCk7CiB9CiAKIC8vIFVzZWQgb25seSBieSBX
ZWJLaXRUZXN0UnVubmVyLiBJdCBhdm9pZHMgY2FsbGluZyBpbml0aWFsaXplKCksIHNvIHRoYXQg
d2UgZG9uJ3QgcmVnaXN0ZXIgYW55IGNsaWVudHMuCkBAIC0xMTAsNyArMTEzLDcgQEAgUXRXZWJD
b250ZXh0KiBRdFdlYkNvbnRleHQ6OmNvbnRleHRCeUlEKHVpbnQ2NF90IGlkKQogdm9pZCBRdFdl
YkNvbnRleHQ6OmluaXRpYWxpemUoKQogewogICAgIG1fZG93bmxvYWRNYW5hZ2VyID0gYWRvcHRQ
dHIobmV3IFF0RG93bmxvYWRNYW5hZ2VyKG1fY29udGV4dC5nZXQoKSkpOwotICAgIG1faWNvbkRh
dGFiYXNlID0gYWRvcHRQdHIobmV3IFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KHRoaXMpKTsKKyAg
ICBtX2ljb25EYXRhYmFzZSA9IG5ldyBRdFdlYkljb25EYXRhYmFzZUNsaWVudCh0aGlzKTsKICAg
ICBpbml0aWFsaXplQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaAppbmRleCAyMDJkYjIyNDI2OThiYTNl
NGI3YTNjN2M0OWFiNjQyNzFiNTBkZmUyLi42ZjUxOTBmOWJhOTkzYTM5YmMwYTU0YTg2MDAxNmFk
ZWZiYmJjZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5o
CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvbnRleHQqIGNvbnRleHQoKSB7
IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KICAgICBRdERvd25sb2FkTWFuYWdlciogZG93bmxv
YWRNYW5hZ2VyKCkgeyByZXR1cm4gbV9kb3dubG9hZE1hbmFnZXIuZ2V0KCk7IH0KLSAgICBRdFdl
Ykljb25EYXRhYmFzZUNsaWVudCogaWNvbkRhdGFiYXNlKCkgeyByZXR1cm4gbV9pY29uRGF0YWJh
c2UuZ2V0KCk7IH0KKyAgICBRdFdlYkljb25EYXRhYmFzZUNsaWVudCogaWNvbkRhdGFiYXNlKCkg
eyByZXR1cm4gbV9pY29uRGF0YWJhc2U7IH0KIAogICAgIHZvaWQgc2V0TmF2aWdhdG9yUXRPYmpl
Y3RFbmFibGVkKFdlYlBhZ2VQcm94eSosIGJvb2wpOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb05h
dmlnYXRvclF0T2JqZWN0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFFTdHJpbmcmKTsKQEAgLTc0LDcg
Kzc0LDcgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2NvbnRleHRJRDsKICAgICBSZWZQdHI8
V2ViQ29udGV4dD4gbV9jb250ZXh0OwogICAgIE93blB0cjxRdERvd25sb2FkTWFuYWdlcj4gbV9k
b3dubG9hZE1hbmFnZXI7Ci0gICAgT3duUHRyPFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50PiBtX2lj
b25EYXRhYmFzZTsKKyAgICBRdFdlYkljb25EYXRhYmFzZUNsaWVudCogbV9pY29uRGF0YWJhc2U7
CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122994</attachid>
            <date>2012-01-18 14:22:54 -0800</date>
            <delta_ts>2012-01-19 04:35:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76399-20120118192251.patch</filename>
            <type>text/plain</type>
            <size>7179</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGQyYTdhZjdhMDJjNjkx
MmQyN2I1ZDVjNTQwYWY4YTE4Y2Q1YmQ1Ny4uY2QzMzRlYjA4ODc1NzQ0ZmMyYjdjZDhlMWRiODcy
NjUxODQ1MDU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTE4ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtX
SzJdIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50IGxlYXZlcyBhIGRhbmdsaW5nIHBvaW50ZXIgb24g
V2ViSWNvbkRhdGFiYXNlIGFmdGVyIGl0cyBkZXN0cnVjdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEdWUgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGJl
dHdlZW4gV2ViQ29udGV4dCBhbmQgV2ViUHJvY2Vzc1Byb3h5LCBXZWJDb250ZXh0IGl0IG5vdAor
ICAgICAgICBiZWluZyBkZXN0cm95ZWQsIG5laXRoZXIgV2ViSWNvbkRhdGFiYXNlLiBBcyBRdFdl
Ykljb25EYXRhYmFzZUNsaWVudCdzIGxpZmUgdGltZSBpcyB0aGUgc2FtZQorICAgICAgICBhcyBR
dFdlYkNvbnRleHQgYW5kIHRoaXMgb25lIGlzIGJlaW5nIGRlc3Ryb3llZCwgdGhlIHJlbWFpbmlu
ZyByZWZlcmVuY2UgdG8gb3VyIGNsaWVudAorICAgICAgICBvbiBXZWJJY29uRGF0YWJhc2Ugc2hv
dWxkIGJlIGNsZWFuZWQgdXBvbiBpdHMgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOiBSZW5hbWVkIGFjY2Vzc29yIHVzYWdlcy4KKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpzZXRJY29uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHA6IERpdHRvLgorICAgICAgICAoUVdlYkljb25JbWFnZVBy
b3ZpZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYkNvbnRl
eHQuY3BwOiBSZW5hbWVkIG1faWNvbkRhdGFiYXNlIHRvIG1faWNvbkRhdGFiYXNlQ2xpZW50IGFu
ZCBpdHMgYWNjZXNzb3IuCisgICAgICAgIChXZWJLaXQ6OlF0V2ViQ29udGV4dDo6aW5pdGlhbGl6
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5oOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6UXRXZWJDb250ZXh0OjppY29uRGF0YWJhc2VDbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHA6CisgICAgICAgIChRdFdl
Ykljb25EYXRhYmFzZUNsaWVudDo6flF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KTogQ2xlYXIgY2xp
ZW50IHBvaW50ZXIgb24gV2ViSWNvbkRhdGFiYXNlLgorCiAyMDEyLTAxLTE4ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYWNjZXNzIHRv
IHVzZXIncyBsaXN0IG9mIHByZWZlcnJlZCBsYW5ndWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IGQzZGFjNWRmYzZjNDM3
MjQ4OGZjNTk3ZTBlNDlkMjY1ODY0ZjFhZDUuLmU5YWYyZDEyOTcyMmZiYTE3NGYzNTI0MzA3ODc0
NDlkMzhjZDM5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcApAQCAtOTQsOSArOTQsOSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjppbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBw
YQogICAgIHBhZ2VVSUNsaWVudC5yZXNldChuZXcgUXRXZWJQYWdlVUlDbGllbnQodG9BUEkod2Vi
UGFnZVByb3h5LmdldCgpKSwgcV9wdHIpKTsKICAgICBuYXZpZ2F0aW9uSGlzdG9yeSA9IGFkb3B0
UHRyKFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhpc3RvcnkodG9BUEkod2Vi
UGFnZVByb3h5LmdldCgpKSkpOwogCi0gICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25E
YXRhYmFzZSA9IGNvbnRleHQtPmljb25EYXRhYmFzZSgpOwotICAgIFFPYmplY3Q6OmNvbm5lY3Qo
aWNvbkRhdGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFVcmwsIFFVcmwpKSwg
cV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVybCwgUVVybCkpKTsKLSAg
ICBRT2JqZWN0Ojpjb25uZWN0KHFfcHRyLCBTSUdOQUwodXJsQ2hhbmdlZChRVXJsKSksIGljb25E
YXRhYmFzZSwgU0xPVChyZXF1ZXN0SWNvbkZvclBhZ2VVUkwoUVVybCkpKTsKKyAgICBRdFdlYklj
b25EYXRhYmFzZUNsaWVudCogaWNvbkRhdGFiYXNlQ2xpZW50ID0gY29udGV4dC0+aWNvbkRhdGFi
YXNlQ2xpZW50KCk7CisgICAgUU9iamVjdDo6Y29ubmVjdChpY29uRGF0YWJhc2VDbGllbnQsIFNJ
R05BTChpY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVybCwgUVVybCkpLCBxX3B0ciwgU0xPVChfcV9v
bkljb25DaGFuZ2VkRm9yUGFnZVVSTChRVXJsLCBRVXJsKSkpOworICAgIFFPYmplY3Q6OmNvbm5l
Y3QocV9wdHIsIFNJR05BTCh1cmxDaGFuZ2VkKFFVcmwpKSwgaWNvbkRhdGFiYXNlQ2xpZW50LCBT
TE9UKHJlcXVlc3RJY29uRm9yUGFnZVVSTChRVXJsKSkpOwogCiAgICAgLy8gQW55IHBhZ2Ugc2V0
dGluZyBzaG91bGQgcHJlZmVycmFibGUgYmUgc2V0IGJlZm9yZSBjcmVhdGluZyB0aGUgcGFnZS4K
ICAgICBzZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoZmFsc2UpOwpAQCAtNTQwLDEy
ICs1NDAsMTIgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0SWNvbihjb25zdCBRVXJs
JiBpY29uVVJMKQogICAgIFN0cmluZyBuZXdQYWdlVVJMID0gd2ViUGFnZVByb3h5LT5tYWluRnJh
bWUoKS0+dXJsKCk7CiAKICAgICBpZiAob2xkUGFnZVVSTCAhPSBuZXdQYWdlVVJMKSB7Ci0gICAg
ICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJhc2UgPSBjb250ZXh0LT5pY29u
RGF0YWJhc2UoKTsKKyAgICAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFz
ZUNsaWVudCA9IGNvbnRleHQtPmljb25EYXRhYmFzZUNsaWVudCgpOwogICAgICAgICBpZiAoIW9s
ZFBhZ2VVUkwuaXNFbXB0eSgpKQotICAgICAgICAgICAgaWNvbkRhdGFiYXNlLT5yZWxlYXNlSWNv
bkZvclBhZ2VVUkwob2xkUGFnZVVSTCk7CisgICAgICAgICAgICBpY29uRGF0YWJhc2VDbGllbnQt
PnJlbGVhc2VJY29uRm9yUGFnZVVSTChvbGRQYWdlVVJMKTsKIAogICAgICAgICBpZiAoIW5ld1Bh
Z2VVUkwuaXNFbXB0eSgpKQotICAgICAgICAgICAgaWNvbkRhdGFiYXNlLT5yZXRhaW5JY29uRm9y
UGFnZVVSTChuZXdQYWdlVVJMKTsKKyAgICAgICAgICAgIGljb25EYXRhYmFzZUNsaWVudC0+cmV0
YWluSWNvbkZvclBhZ2VVUkwobmV3UGFnZVVSTCk7CiAgICAgfQogCiAgICAgbV9pY29uVVJMID0g
aWNvblVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
Ymljb25pbWFnZXByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcAppbmRleCBkY2U2ZWU5ZGZlY2NjYTIzMjNlMDUxMjEw
ZjNjYmRjNzkwN2ZkYjk0Li45ZmFjZDRkNzI0ZGU0OTlkNzQ2YjFiYjE2Zjk0NWUyNDU4MTdmYWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1h
Z2Vwcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
aWNvbmltYWdlcHJvdmlkZXIuY3BwCkBAIC01NSw4ICs1NSw4IEBAIFFJbWFnZSBRV2ViSWNvbklt
YWdlUHJvdmlkZXI6OnJlcXVlc3RJbWFnZShjb25zdCBRU3RyaW5nJiBpZCwgUVNpemUqIHNpemUs
IGNvbnN0CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gUUltYWdlKCk7CiAKLSAg
ICBRdFdlYkljb25EYXRhYmFzZUNsaWVudCogaWNvbkRhdGFiYXNlID0gY29udGV4dC0+aWNvbkRh
dGFiYXNlKCk7Ci0gICAgUUltYWdlIGljb24gPSByZXF1ZXN0ZWRTaXplLmlzVmFsaWQoKSA/IGlj
b25EYXRhYmFzZS0+aWNvbkltYWdlRm9yUGFnZVVSTChwYWdlVVJMLCByZXF1ZXN0ZWRTaXplKSA6
IGljb25EYXRhYmFzZS0+aWNvbkltYWdlRm9yUGFnZVVSTChwYWdlVVJMKTsKKyAgICBRdFdlYklj
b25EYXRhYmFzZUNsaWVudCogaWNvbkRhdGFiYXNlQ2xpZW50ID0gY29udGV4dC0+aWNvbkRhdGFi
YXNlQ2xpZW50KCk7CisgICAgUUltYWdlIGljb24gPSByZXF1ZXN0ZWRTaXplLmlzVmFsaWQoKSA/
IGljb25EYXRhYmFzZUNsaWVudC0+aWNvbkltYWdlRm9yUGFnZVVSTChwYWdlVVJMLCByZXF1ZXN0
ZWRTaXplKSA6IGljb25EYXRhYmFzZUNsaWVudC0+aWNvbkltYWdlRm9yUGFnZVVSTChwYWdlVVJM
KTsKICAgICBBU1NFUlQoIWljb24uaXNOdWxsKCkpOwogCiAgICAgaWYgKHNpemUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuY3BwCmluZGV4IDI5YTU0N2JhOThk
ODExNjhiZDRhOTdmZWE1YzM3Njg2MDgzYTI3MGYuLjA1OThjMTdiNzkwZjExODVlMzhkYjZlMDhj
ZDQ1YTA0MGFkYmY5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNv
bnRleHQuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgUXRXZWJDb250ZXh0KiBRdFdlYkNvbnRleHQ6
OmNvbnRleHRCeUlEKHVpbnQ2NF90IGlkKQogdm9pZCBRdFdlYkNvbnRleHQ6OmluaXRpYWxpemUo
KQogewogICAgIG1fZG93bmxvYWRNYW5hZ2VyID0gYWRvcHRQdHIobmV3IFF0RG93bmxvYWRNYW5h
Z2VyKG1fY29udGV4dC5nZXQoKSkpOwotICAgIG1faWNvbkRhdGFiYXNlID0gYWRvcHRQdHIobmV3
IFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KHRoaXMpKTsKKyAgICBtX2ljb25EYXRhYmFzZUNsaWVu
dCA9IGFkb3B0UHRyKG5ldyBRdFdlYkljb25EYXRhYmFzZUNsaWVudCh0aGlzKSk7CiAgICAgaW5p
dGlhbGl6ZUNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmgKaW5kZXggMjAyZGIyMjQyNjk4YmEzZTRiN2Ez
YzdjNDlhYjY0MjcxYjUwZGZlMi4uYzgyYjcxM2Q5ZWM5ZWFmMzVkYjEyOTY1NTVhNzI2ZGI3NWE2
ZGM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaApAQCAt
NTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJDb250ZXh0KiBjb250ZXh0KCkgeyByZXR1
cm4gbV9jb250ZXh0LmdldCgpOyB9CiAgICAgUXREb3dubG9hZE1hbmFnZXIqIGRvd25sb2FkTWFu
YWdlcigpIHsgcmV0dXJuIG1fZG93bmxvYWRNYW5hZ2VyLmdldCgpOyB9Ci0gICAgUXRXZWJJY29u
RGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSgpIHsgcmV0dXJuIG1faWNvbkRhdGFiYXNlLmdl
dCgpOyB9CisgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZUNsaWVudCgp
IHsgcmV0dXJuIG1faWNvbkRhdGFiYXNlQ2xpZW50LmdldCgpOyB9CiAKICAgICB2b2lkIHNldE5h
dmlnYXRvclF0T2JqZWN0RW5hYmxlZChXZWJQYWdlUHJveHkqLCBib29sKTsKICAgICB2b2lkIHBv
c3RNZXNzYWdlVG9OYXZpZ2F0b3JRdE9iamVjdChXZWJQYWdlUHJveHkqLCBjb25zdCBRU3RyaW5n
Jik7CkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9jb250ZXh0SUQ7
CiAgICAgUmVmUHRyPFdlYkNvbnRleHQ+IG1fY29udGV4dDsKICAgICBPd25QdHI8UXREb3dubG9h
ZE1hbmFnZXI+IG1fZG93bmxvYWRNYW5hZ2VyOwotICAgIE93blB0cjxRdFdlYkljb25EYXRhYmFz
ZUNsaWVudD4gbV9pY29uRGF0YWJhc2U7CisgICAgT3duUHRyPFF0V2ViSWNvbkRhdGFiYXNlQ2xp
ZW50PiBtX2ljb25EYXRhYmFzZUNsaWVudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCmluZGV4IDhi
MDliMjBmMzBiYjNiNDExNGYzODQ2ZjA2MTRiYzRmMDJmZDY1YzkuLmYxZWI5Njk3NTQwNmIzMDNi
NDE1MzlmMjJhYTgxZWNhOTUyMGE3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcApAQCAtNTgsNiArNTgsNyBA
QCBRdFdlYkljb25EYXRhYmFzZUNsaWVudDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQoUXRXZWJD
b250ZXh0ICpxdFdlYkNvbnRleHQpCiAKIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50Ojp+UXRXZWJJ
Y29uRGF0YWJhc2VDbGllbnQoKQogeworICAgIFdLSWNvbkRhdGFiYXNlU2V0SWNvbkRhdGFiYXNl
Q2xpZW50KHRvQVBJKG1faWNvbkRhdGFiYXNlKSwgMCk7CiB9CiAKIHZvaWQgUXRXZWJJY29uRGF0
YWJhc2VDbGllbnQ6OmRpZENoYW5nZUljb25Gb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmIGlj
b25EYXRhYmFzZSwgV0tVUkxSZWYgcGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123103</attachid>
            <date>2012-01-19 04:35:37 -0800</date>
            <delta_ts>2012-01-19 15:20:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76399-20120119093535.patch</filename>
            <type>text/plain</type>
            <size>8553</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDMzZmRiZTM2Mjk5NDUy
ZGMxNzliODk5YTc1YTRjZmQ0ODkxOTcwMy4uY2YxNDM2ZDYzNzk0NmRhYWYwNWM1Y2FjNDFlOGY5
YTNlMTAxMDcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTE5ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtX
SzJdIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50IGxlYXZlcyBhIGRhbmdsaW5nIHBvaW50ZXIgb24g
V2ViSWNvbkRhdGFiYXNlIGFmdGVyIGl0cyBkZXN0cnVjdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEdWUgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGJl
dHdlZW4gV2ViQ29udGV4dCBhbmQgV2ViUHJvY2Vzc1Byb3h5LCBXZWJDb250ZXh0IGl0IG5vdAor
ICAgICAgICBiZWluZyBkZXN0cm95ZWQsIG5laXRoZXIgV2ViSWNvbkRhdGFiYXNlLiBBcyBRdFdl
Ykljb25EYXRhYmFzZUNsaWVudCdzIGxpZmUgdGltZSBpcyB0aGUgc2FtZQorICAgICAgICBhcyBR
dFdlYkNvbnRleHQgYW5kIHRoaXMgb25lIGlzIGJlaW5nIGRlc3Ryb3llZCwgdGhlIHJlbWFpbmlu
ZyByZWZlcmVuY2UgdG8gb3VyIGNsaWVudAorICAgICAgICBvbiBXZWJJY29uRGF0YWJhc2Ugc2hv
dWxkIGJlIGNsZWFuZWQgdXBvbiBpdHMgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOiBSZW5hbWVkIGFjY2Vzc29yIHVzYWdlcy4KKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpzZXRJY29uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHA6IERpdHRvLgorICAgICAgICAoUVdlYkljb25JbWFnZVBy
b3ZpZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYkNvbnRl
eHQuY3BwOiBSZW5hbWVkIG1faWNvbkRhdGFiYXNlIHRvIG1faWNvbkRhdGFiYXNlQ2xpZW50IGFu
ZCBpdHMgYWNjZXNzb3IuCisgICAgICAgIChXZWJLaXQ6OlF0V2ViQ29udGV4dDo6aW5pdGlhbGl6
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5oOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6UXRXZWJDb250ZXh0OjppY29uRGF0YWJhc2VDbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHA6CisgICAgICAgIChRdFdl
Ykljb25EYXRhYmFzZUNsaWVudDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQpOgorICAgICAgICAo
UXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6On5RdFdlYkljb25EYXRhYmFzZUNsaWVudCk6IENsZWFy
IGNsaWVudCBwb2ludGVyIG9uIFdlYkljb25EYXRhYmFzZS4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuaDoKKwogMjAxMi0wMS0xOCAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciBidWlsZCBmaXggZm9yIHIxMDUzNjQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNw
cAppbmRleCBkM2RhYzVkZmM2YzQzNzI0ODhmYzU5N2UwZTQ5ZDI2NTg2NGYxYWQ1Li5lOWFmMmQx
Mjk3MjJmYmExNzRmMzUyNDMwNzg3NDQ5ZDM4Y2QzOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTk0LDkgKzk0LDkgQEAg
dm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4
dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGEKICAgICBwYWdlVUlDbGllbnQucmVzZXQobmV3IFF0V2Vi
UGFnZVVJQ2xpZW50KHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQoKSksIHFfcHRyKSk7CiAgICAgbmF2
aWdhdGlvbkhpc3RvcnkgPSBhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlOjpj
cmVhdGVIaXN0b3J5KHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQoKSkpKTsKIAotICAgIFF0V2ViSWNv
bkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJhc2UgPSBjb250ZXh0LT5pY29uRGF0YWJhc2UoKTsK
LSAgICBRT2JqZWN0Ojpjb25uZWN0KGljb25EYXRhYmFzZSwgU0lHTkFMKGljb25DaGFuZ2VkRm9y
UGFnZVVSTChRVXJsLCBRVXJsKSksIHFfcHRyLCBTTE9UKF9xX29uSWNvbkNoYW5nZWRGb3JQYWdl
VVJMKFFVcmwsIFFVcmwpKSk7Ci0gICAgUU9iamVjdDo6Y29ubmVjdChxX3B0ciwgU0lHTkFMKHVy
bENoYW5nZWQoUVVybCkpLCBpY29uRGF0YWJhc2UsIFNMT1QocmVxdWVzdEljb25Gb3JQYWdlVVJM
KFFVcmwpKSk7CisgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZUNsaWVu
dCA9IGNvbnRleHQtPmljb25EYXRhYmFzZUNsaWVudCgpOworICAgIFFPYmplY3Q6OmNvbm5lY3Qo
aWNvbkRhdGFiYXNlQ2xpZW50LCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFVcmwsIFFV
cmwpKSwgcV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVybCwgUVVybCkp
KTsKKyAgICBRT2JqZWN0Ojpjb25uZWN0KHFfcHRyLCBTSUdOQUwodXJsQ2hhbmdlZChRVXJsKSks
IGljb25EYXRhYmFzZUNsaWVudCwgU0xPVChyZXF1ZXN0SWNvbkZvclBhZ2VVUkwoUVVybCkpKTsK
IAogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZlcnJhYmxlIGJlIHNldCBiZWZv
cmUgY3JlYXRpbmcgdGhlIHBhZ2UuCiAgICAgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZp
b3VyKGZhbHNlKTsKQEAgLTU0MCwxMiArNTQwLDEyIEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZh
dGU6OnNldEljb24oY29uc3QgUVVybCYgaWNvblVSTCkKICAgICBTdHJpbmcgbmV3UGFnZVVSTCA9
IHdlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCktPnVybCgpOwogCiAgICAgaWYgKG9sZFBhZ2VVUkwg
IT0gbmV3UGFnZVVSTCkgewotICAgICAgICBRdFdlYkljb25EYXRhYmFzZUNsaWVudCogaWNvbkRh
dGFiYXNlID0gY29udGV4dC0+aWNvbkRhdGFiYXNlKCk7CisgICAgICAgIFF0V2ViSWNvbkRhdGFi
YXNlQ2xpZW50KiBpY29uRGF0YWJhc2VDbGllbnQgPSBjb250ZXh0LT5pY29uRGF0YWJhc2VDbGll
bnQoKTsKICAgICAgICAgaWYgKCFvbGRQYWdlVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGlj
b25EYXRhYmFzZS0+cmVsZWFzZUljb25Gb3JQYWdlVVJMKG9sZFBhZ2VVUkwpOworICAgICAgICAg
ICAgaWNvbkRhdGFiYXNlQ2xpZW50LT5yZWxlYXNlSWNvbkZvclBhZ2VVUkwob2xkUGFnZVVSTCk7
CiAKICAgICAgICAgaWYgKCFuZXdQYWdlVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGljb25E
YXRhYmFzZS0+cmV0YWluSWNvbkZvclBhZ2VVUkwobmV3UGFnZVVSTCk7CisgICAgICAgICAgICBp
Y29uRGF0YWJhc2VDbGllbnQtPnJldGFpbkljb25Gb3JQYWdlVVJMKG5ld1BhZ2VVUkwpOwogICAg
IH0KIAogICAgIG1faWNvblVSTCA9IGljb25VUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAKaW5kZXggZGNl
NmVlOWRmZWNjY2EyMzIzZTA1MTIxMGYzY2JkYzc5MDdmZGI5NC4uOWZhY2Q0ZDcyNGRlNDk5ZDc0
NmIxYmIxNmY5NDVlMjQ1ODE3ZmFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2ViaWNvbmltYWdlcHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcApAQCAtNTUsOCArNTUs
OCBAQCBRSW1hZ2UgUVdlYkljb25JbWFnZVByb3ZpZGVyOjpyZXF1ZXN0SW1hZ2UoY29uc3QgUVN0
cmluZyYgaWQsIFFTaXplKiBzaXplLCBjb25zdAogICAgIGlmICghY29udGV4dCkKICAgICAgICAg
cmV0dXJuIFFJbWFnZSgpOwogCi0gICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRh
YmFzZSA9IGNvbnRleHQtPmljb25EYXRhYmFzZSgpOwotICAgIFFJbWFnZSBpY29uID0gcmVxdWVz
dGVkU2l6ZS5pc1ZhbGlkKCkgPyBpY29uRGF0YWJhc2UtPmljb25JbWFnZUZvclBhZ2VVUkwocGFn
ZVVSTCwgcmVxdWVzdGVkU2l6ZSkgOiBpY29uRGF0YWJhc2UtPmljb25JbWFnZUZvclBhZ2VVUkwo
cGFnZVVSTCk7CisgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZUNsaWVu
dCA9IGNvbnRleHQtPmljb25EYXRhYmFzZUNsaWVudCgpOworICAgIFFJbWFnZSBpY29uID0gcmVx
dWVzdGVkU2l6ZS5pc1ZhbGlkKCkgPyBpY29uRGF0YWJhc2VDbGllbnQtPmljb25JbWFnZUZvclBh
Z2VVUkwocGFnZVVSTCwgcmVxdWVzdGVkU2l6ZSkgOiBpY29uRGF0YWJhc2VDbGllbnQtPmljb25J
bWFnZUZvclBhZ2VVUkwocGFnZVVSTCk7CiAgICAgQVNTRVJUKCFpY29uLmlzTnVsbCgpKTsKIAog
ICAgIGlmIChzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0
LmNwcAppbmRleCAyOWE1NDdiYTk4ZDgxMTY4YmQ0YTk3ZmVhNWMzNzY4NjA4M2EyNzBmLi4yNmY1
YzAzYjViMmM5MzZjMWFkZmYxYTFkNGQzYTQ5OGEzYzAyY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcApAQCAtNTMsNiArNTMsNyBAQCBRdFdlYkNv
bnRleHQ6OlF0V2ViQ29udGV4dChXZWJDb250ZXh0KiBjb250ZXh0KQogCiBRdFdlYkNvbnRleHQ6
On5RdFdlYkNvbnRleHQoKQogeworICAgIG1faWNvbkRhdGFiYXNlQ2xpZW50LmNsZWFyKCk7CiAg
ICAgaWYgKHNfZGVmYXVsdENvbnRleHQgPT0gdGhpcykKICAgICAgICAgc19kZWZhdWx0Q29udGV4
dCA9IDA7CiAgICAgY29udGV4dE1hcC5yZW1vdmUobV9jb250ZXh0SUQpOwpAQCAtMTEwLDcgKzEx
MSw3IEBAIFF0V2ViQ29udGV4dCogUXRXZWJDb250ZXh0Ojpjb250ZXh0QnlJRCh1aW50NjRfdCBp
ZCkKIHZvaWQgUXRXZWJDb250ZXh0Ojppbml0aWFsaXplKCkKIHsKICAgICBtX2Rvd25sb2FkTWFu
YWdlciA9IGFkb3B0UHRyKG5ldyBRdERvd25sb2FkTWFuYWdlcihtX2NvbnRleHQuZ2V0KCkpKTsK
LSAgICBtX2ljb25EYXRhYmFzZSA9IGFkb3B0UHRyKG5ldyBRdFdlYkljb25EYXRhYmFzZUNsaWVu
dCh0aGlzKSk7CisgICAgbV9pY29uRGF0YWJhc2VDbGllbnQgPSBhZG9wdFB0cihuZXcgUXRXZWJJ
Y29uRGF0YWJhc2VDbGllbnQodGhpcykpOwogICAgIGluaXRpYWxpemVDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29u
dGV4dC5oCmluZGV4IDIwMmRiMjI0MjY5OGJhM2U0YjdhM2M3YzQ5YWI2NDI3MWI1MGRmZTIuLmM4
MmI3MTNkOWVjOWVhZjM1ZGIxMjk2NTU1YTcyNmRiNzVhNmRjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgog
CiAgICAgV2ViQ29udGV4dCogY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQog
ICAgIFF0RG93bmxvYWRNYW5hZ2VyKiBkb3dubG9hZE1hbmFnZXIoKSB7IHJldHVybiBtX2Rvd25s
b2FkTWFuYWdlci5nZXQoKTsgfQotICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0
YWJhc2UoKSB7IHJldHVybiBtX2ljb25EYXRhYmFzZS5nZXQoKTsgfQorICAgIFF0V2ViSWNvbkRh
dGFiYXNlQ2xpZW50KiBpY29uRGF0YWJhc2VDbGllbnQoKSB7IHJldHVybiBtX2ljb25EYXRhYmFz
ZUNsaWVudC5nZXQoKTsgfQogCiAgICAgdm9pZCBzZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQo
V2ViUGFnZVByb3h5KiwgYm9vbCk7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvTmF2aWdhdG9yUXRP
YmplY3QoV2ViUGFnZVByb3h5KiwgY29uc3QgUVN0cmluZyYpOwpAQCAtNzQsNyArNzQsNyBAQCBw
cml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29udGV4dElEOwogICAgIFJlZlB0cjxXZWJDb250ZXh0
PiBtX2NvbnRleHQ7CiAgICAgT3duUHRyPFF0RG93bmxvYWRNYW5hZ2VyPiBtX2Rvd25sb2FkTWFu
YWdlcjsKLSAgICBPd25QdHI8UXRXZWJJY29uRGF0YWJhc2VDbGllbnQ+IG1faWNvbkRhdGFiYXNl
OworICAgIE93blB0cjxRdFdlYkljb25EYXRhYmFzZUNsaWVudD4gbV9pY29uRGF0YWJhc2VDbGll
bnQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRX
ZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAppbmRleCA4YjA5YjIwZjMwYmIzYjQxMTRmMzg0NmYw
NjE0YmM0ZjAyZmQ2NWM5Li4xOWJhMzM2YWVkNThkZDA0N2M4OGFlZmQ2Njk5ZjVmMmU5NmM0NDRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJh
c2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25E
YXRhYmFzZUNsaWVudC5jcHAKQEAgLTUzLDExICs1MywxMiBAQCBRdFdlYkljb25EYXRhYmFzZUNs
aWVudDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQoUXRXZWJDb250ZXh0ICpxdFdlYkNvbnRleHQp
CiAgICAgaWNvbkRhdGFiYXNlQ2xpZW50LnZlcnNpb24gPSBrV0tJY29uRGF0YWJhc2VDbGllbnRD
dXJyZW50VmVyc2lvbjsKICAgICBpY29uRGF0YWJhc2VDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7
CiAgICAgaWNvbkRhdGFiYXNlQ2xpZW50LmRpZENoYW5nZUljb25Gb3JQYWdlVVJMID0gZGlkQ2hh
bmdlSWNvbkZvclBhZ2VVUkw7Ci0gICAgV0tJY29uRGF0YWJhc2VTZXRJY29uRGF0YWJhc2VDbGll
bnQodG9BUEkobV9pY29uRGF0YWJhc2UpLCAmaWNvbkRhdGFiYXNlQ2xpZW50KTsKKyAgICBXS0lj
b25EYXRhYmFzZVNldEljb25EYXRhYmFzZUNsaWVudCh0b0FQSShtX2ljb25EYXRhYmFzZS5nZXQo
KSksICZpY29uRGF0YWJhc2VDbGllbnQpOwogfQogCiBRdFdlYkljb25EYXRhYmFzZUNsaWVudDo6
flF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KCkKIHsKKyAgICBXS0ljb25EYXRhYmFzZVNldEljb25E
YXRhYmFzZUNsaWVudCh0b0FQSShtX2ljb25EYXRhYmFzZS5nZXQoKSksIDApOwogfQogCiB2b2lk
IFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChXS0ljb25E
YXRhYmFzZVJlZiBpY29uRGF0YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJ
Y29uRGF0YWJhc2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYklj
b25EYXRhYmFzZUNsaWVudC5oCmluZGV4IGU4ZDA1NjI0ODgwZjhkZDQ3Y2ZkNjA1OTIzYTY2ZTdm
NWUxZjdmY2UuLmIyYzAwYThlZTkxN2NjY2IxOTAwMWQ1YzMzODE5OThkMGE2MTYzYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNs
aWVudC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgaWNvblVSTEhh
c2hGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZUlj
b25Gb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmLCBXS1VSTFJlZiBwYWdlVVJMLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKICAgICB1aW50NjRfdCBtX2NvbnRleHRJZDsKLSAgICBXZWJLaXQ6
OldlYkljb25EYXRhYmFzZSogbV9pY29uRGF0YWJhc2U7CisgICAgUmVmUHRyPFdlYktpdDo6V2Vi
SWNvbkRhdGFiYXNlPiBtX2ljb25EYXRhYmFzZTsKICAgICBNdXRleCBtX2ltYWdlTG9jazsKIH07
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123207</attachid>
            <date>2012-01-19 15:20:42 -0800</date>
            <delta_ts>2012-01-24 04:16:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76399-20120119202040.patch</filename>
            <type>text/plain</type>
            <size>3828</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTlhNDJhMzA0ZGM0YTgz
Y2MxNjlkOWNlNmViMjhiMjQ5OTdhMzhjNS4uNzY2YzA3N2ZlYjczNmNmMDVkYTQwNWM4YzhiNTlj
ZTZjZGJjZWVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAxLTE5ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtX
SzJdIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50IGxlYXZlcyBhIGRhbmdsaW5nIHBvaW50ZXIgb24g
V2ViSWNvbkRhdGFiYXNlIGFmdGVyIGl0cyBkZXN0cnVjdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEdWUgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGJl
dHdlZW4gV2ViQ29udGV4dCBhbmQgV2ViUHJvY2Vzc1Byb3h5LCBXZWJDb250ZXh0IGl0IG5vdAor
ICAgICAgICBiZWluZyBkZXN0cm95ZWQsIG5laXRoZXIgV2ViSWNvbkRhdGFiYXNlLiBBcyBRdFdl
Ykljb25EYXRhYmFzZUNsaWVudCdzIGxpZmUgdGltZSBpcyB0aGUgc2FtZQorICAgICAgICBhcyBR
dFdlYkNvbnRleHQgYW5kIHRoaXMgb25lIGlzIGJlaW5nIGRlc3Ryb3llZCwgdGhlIHJlbWFpbmlu
ZyByZWZlcmVuY2UgdG8gb3VyIGNsaWVudAorICAgICAgICBvbiBXZWJJY29uRGF0YWJhc2Ugc2hv
dWxkIGJlIGNsZWFuZWQgdXBvbiBpdHMgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UXRXZWJDb250ZXh0Ojp+
UXRXZWJDb250ZXh0KTogRGVsZXRlIHRoZSBpY29uIGNsaWVudCBleHBsaWNpdGx5IHRvIGVuc3Vy
ZSB0aGF0CisgICAgICAgIHVwb24gaXRzIGRlc3RydWN0aW9uIHdlIHN0aWxsIGhhdmUgYSB2YWxp
ZCBXZWJJY29uRGF0YWJhc2UgcmVmZXJlbmNlLgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdl
Ykljb25EYXRhYmFzZUNsaWVudC5jcHA6CisgICAgICAgIChRdFdlYkljb25EYXRhYmFzZUNsaWVu
dDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQpOgorICAgICAgICAoUXRXZWJJY29uRGF0YWJhc2VD
bGllbnQ6On5RdFdlYkljb25EYXRhYmFzZUNsaWVudCk6IENsZWFyIGNsaWVudCBwb2ludGVyIG9u
IFdlYkljb25EYXRhYmFzZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJh
c2VDbGllbnQuaDogTWFrZSB0aGlzIGNsaWVudCBob2xkIGEgcmVmZXJlbmNlIHRvIFdlYkljb25E
YXRhYmFzZS4KKwogMjAxMi0wMS0xOCAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBOZWVkIGEgV2ViS2l0MiBBUEkgZm9yIHNldHRpbmcgbWVkaWEgdm9sdW1lCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuY3BwCmluZGV4IDI5YTU0N2Jh
OThkODExNjhiZDRhOTdmZWE1YzM3Njg2MDgzYTI3MGYuLmVjMDMwOTlkZDA2N2I2NWE1Yzc4NzY5
MTg4ZDE1MDc4OWVhYWJhYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YkNvbnRleHQuY3BwCkBAIC01Myw2ICs1Myw3IEBAIFF0V2ViQ29udGV4dDo6UXRXZWJDb250ZXh0
KFdlYkNvbnRleHQqIGNvbnRleHQpCiAKIFF0V2ViQ29udGV4dDo6flF0V2ViQ29udGV4dCgpCiB7
CisgICAgbV9pY29uRGF0YWJhc2UuY2xlYXIoKTsKICAgICBpZiAoc19kZWZhdWx0Q29udGV4dCA9
PSB0aGlzKQogICAgICAgICBzX2RlZmF1bHRDb250ZXh0ID0gMDsKICAgICBjb250ZXh0TWFwLnJl
bW92ZShtX2NvbnRleHRJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAppbmRleCA4YjA5YjIwZjMwYmIzYjQxMTRm
Mzg0NmYwNjE0YmM0ZjAyZmQ2NWM5Li4xOWJhMzM2YWVkNThkZDA0N2M4OGFlZmQ2Njk5ZjVmMmU5
NmM0NDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJY29u
RGF0YWJhc2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
Ykljb25EYXRhYmFzZUNsaWVudC5jcHAKQEAgLTUzLDExICs1MywxMiBAQCBRdFdlYkljb25EYXRh
YmFzZUNsaWVudDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQoUXRXZWJDb250ZXh0ICpxdFdlYkNv
bnRleHQpCiAgICAgaWNvbkRhdGFiYXNlQ2xpZW50LnZlcnNpb24gPSBrV0tJY29uRGF0YWJhc2VD
bGllbnRDdXJyZW50VmVyc2lvbjsKICAgICBpY29uRGF0YWJhc2VDbGllbnQuY2xpZW50SW5mbyA9
IHRoaXM7CiAgICAgaWNvbkRhdGFiYXNlQ2xpZW50LmRpZENoYW5nZUljb25Gb3JQYWdlVVJMID0g
ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkw7Ci0gICAgV0tJY29uRGF0YWJhc2VTZXRJY29uRGF0YWJh
c2VDbGllbnQodG9BUEkobV9pY29uRGF0YWJhc2UpLCAmaWNvbkRhdGFiYXNlQ2xpZW50KTsKKyAg
ICBXS0ljb25EYXRhYmFzZVNldEljb25EYXRhYmFzZUNsaWVudCh0b0FQSShtX2ljb25EYXRhYmFz
ZS5nZXQoKSksICZpY29uRGF0YWJhc2VDbGllbnQpOwogfQogCiBRdFdlYkljb25EYXRhYmFzZUNs
aWVudDo6flF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KCkKIHsKKyAgICBXS0ljb25EYXRhYmFzZVNl
dEljb25EYXRhYmFzZUNsaWVudCh0b0FQSShtX2ljb25EYXRhYmFzZS5nZXQoKSksIDApOwogfQog
CiB2b2lkIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChX
S0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYkljb25EYXRhYmFzZUNsaWVudC5oCmluZGV4IGU4ZDA1NjI0ODgwZjhkZDQ3Y2ZkNjA1OTIz
YTY2ZTdmNWUxZjdmY2UuLmIyYzAwYThlZTkxN2NjY2IxOTAwMWQ1YzMzODE5OThkMGE2MTYzYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFz
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRh
YmFzZUNsaWVudC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgaWNv
blVSTEhhc2hGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENo
YW5nZUljb25Gb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmLCBXS1VSTFJlZiBwYWdlVVJMLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICB1aW50NjRfdCBtX2NvbnRleHRJZDsKLSAgICBX
ZWJLaXQ6OldlYkljb25EYXRhYmFzZSogbV9pY29uRGF0YWJhc2U7CisgICAgUmVmUHRyPFdlYktp
dDo6V2ViSWNvbkRhdGFiYXNlPiBtX2ljb25EYXRhYmFzZTsKICAgICBNdXRleCBtX2ltYWdlTG9j
azsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123713</attachid>
            <date>2012-01-24 04:17:05 -0800</date>
            <delta_ts>2012-01-24 05:31:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76399-20120124091703.patch</filename>
            <type>text/plain</type>
            <size>3096</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzVmNDNkZTcyM2MwYTYw
YTc5OWQ4MWE1NzE0MjFhNDZiNzVlOWEwMC4uZjg1NzdiZGI1NzI3ZjdmYzM3MmI0OTc3ZTdjYzk2
YTczYjU2MjI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTI0ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtX
SzJdIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50IGxlYXZlcyBhIGRhbmdsaW5nIHBvaW50ZXIgb24g
V2ViSWNvbkRhdGFiYXNlIGFmdGVyIGl0cyBkZXN0cnVjdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzOTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEdWUgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGJl
dHdlZW4gV2ViQ29udGV4dCBhbmQgV2ViUHJvY2Vzc1Byb3h5LCBXZWJDb250ZXh0IGl0IG5vdAor
ICAgICAgICBiZWluZyBkZXN0cm95ZWQsIG5laXRoZXIgV2ViSWNvbkRhdGFiYXNlLiBBcyBRdFdl
Ykljb25EYXRhYmFzZUNsaWVudCdzIGxpZmUgdGltZSBpcyB0aGUgc2FtZQorICAgICAgICBhcyBR
dFdlYkNvbnRleHQgYW5kIHRoaXMgb25lIGlzIGJlaW5nIGRlc3Ryb3llZCwgdGhlIHJlbWFpbmlu
ZyByZWZlcmVuY2UgdG8gb3VyIGNsaWVudAorICAgICAgICBvbiBXZWJJY29uRGF0YWJhc2Ugc2hv
dWxkIGJlIGNsZWFuZWQgdXBvbiBpdHMgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwOgorICAgICAgICAoUXRXZWJJY29uRGF0
YWJhc2VDbGllbnQ6OlF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KToKKyAgICAgICAgKFF0V2ViSWNv
bkRhdGFiYXNlQ2xpZW50Ojp+UXRXZWJJY29uRGF0YWJhc2VDbGllbnQpOiBDbGVhciBjbGllbnQg
cG9pbnRlciBvbiBXZWJJY29uRGF0YWJhc2UuCisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2Vi
SWNvbkRhdGFiYXNlQ2xpZW50Lmg6IE1ha2UgdGhpcyBjbGllbnQgaG9sZCBhIHJlZmVyZW5jZSB0
byBXZWJJY29uRGF0YWJhc2UuCisKIDIwMTItMDEtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEZpeCAvd2Via2l0Mi9XZWJLaXRX
ZWJWaWV3L3JlbG9hZCBhZnRlciByMTA1Njg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAppbmRleCA4YjA5YjIwZjMw
YmIzYjQxMTRmMzg0NmYwNjE0YmM0ZjAyZmQ2NWM5Li4xOWJhMzM2YWVkNThkZDA0N2M4OGFlZmQ2
Njk5ZjVmMmU5NmM0NDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAKQEAgLTUzLDExICs1MywxMiBAQCBRdFdl
Ykljb25EYXRhYmFzZUNsaWVudDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQoUXRXZWJDb250ZXh0
ICpxdFdlYkNvbnRleHQpCiAgICAgaWNvbkRhdGFiYXNlQ2xpZW50LnZlcnNpb24gPSBrV0tJY29u
RGF0YWJhc2VDbGllbnRDdXJyZW50VmVyc2lvbjsKICAgICBpY29uRGF0YWJhc2VDbGllbnQuY2xp
ZW50SW5mbyA9IHRoaXM7CiAgICAgaWNvbkRhdGFiYXNlQ2xpZW50LmRpZENoYW5nZUljb25Gb3JQ
YWdlVVJMID0gZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkw7Ci0gICAgV0tJY29uRGF0YWJhc2VTZXRJ
Y29uRGF0YWJhc2VDbGllbnQodG9BUEkobV9pY29uRGF0YWJhc2UpLCAmaWNvbkRhdGFiYXNlQ2xp
ZW50KTsKKyAgICBXS0ljb25EYXRhYmFzZVNldEljb25EYXRhYmFzZUNsaWVudCh0b0FQSShtX2lj
b25EYXRhYmFzZS5nZXQoKSksICZpY29uRGF0YWJhc2VDbGllbnQpOwogfQogCiBRdFdlYkljb25E
YXRhYmFzZUNsaWVudDo6flF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KCkKIHsKKyAgICBXS0ljb25E
YXRhYmFzZVNldEljb25EYXRhYmFzZUNsaWVudCh0b0FQSShtX2ljb25EYXRhYmFzZS5nZXQoKSks
IDApOwogfQogCiB2b2lkIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9y
UGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkws
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5oCmluZGV4IGU4ZDA1NjI0ODgwZjhkZDQ3
Y2ZkNjA1OTIzYTY2ZTdmNWUxZjdmY2UuLmIyYzAwYThlZTkxN2NjY2IxOTAwMWQ1YzMzODE5OThk
MGE2MTYzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYklj
b25EYXRhYmFzZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
Ykljb25EYXRhYmFzZUNsaWVudC5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdW5z
aWduZWQgaWNvblVSTEhhc2hGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2
b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmLCBXS1VSTFJlZiBw
YWdlVVJMLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICB1aW50NjRfdCBtX2NvbnRleHRJ
ZDsKLSAgICBXZWJLaXQ6OldlYkljb25EYXRhYmFzZSogbV9pY29uRGF0YWJhc2U7CisgICAgUmVm
UHRyPFdlYktpdDo6V2ViSWNvbkRhdGFiYXNlPiBtX2ljb25EYXRhYmFzZTsKICAgICBNdXRleCBt
X2ltYWdlTG9jazsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>