<?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>73495</bug_id>
          
          <creation_ts>2011-11-30 16:02:59 -0800</creation_ts>
          <short_desc>[Chromium] Enable viewport metatag</short_desc>
          <delta_ts>2011-12-08 21:15:43 -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>
          <dependson>70556</dependson>
    
    <dependson>72983</dependson>
          <blocked>70559</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jknotten</cc>
    
    <cc>johnme</cc>
    
    <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>512202</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-30 16:02:59 -0800</bug_when>
    <thetext>[Chromium] Enable viewport metatag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512205</commentid>
    <comment_count>1</comment_count>
      <attachid>117289</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-30 16:09:07 -0800</bug_when>
    <thetext>Created attachment 117289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512206</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 16:10:28 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512207</commentid>
    <comment_count>3</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-11-30 16:11:11 -0800</bug_when>
    <thetext>Once this patch lands, it should be possible to begin upstreaming layout tests for viewport that are independent of chromium. As long as fixed layout mode is enabled, viewport is respected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512843</commentid>
    <comment_count>4</comment_count>
      <attachid>117289</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-01 09:34:46 -0800</bug_when>
    <thetext>Comment on attachment 117289
Patch

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

I have to admit that I find it hard to understand what you are trying to accomplish,
which makes it hard to provide a good review.

You are doing a lot of work in ChromeClientImpl::dispatchViewportPropertiesDidChange,
which smells fishy.  Normally, the WebKit layer is just about providing API glue
around WebCore.  We try not to do a lot of substantive work there.  Are you sure
this couldn&apos;t / shouldn&apos;t live in WebCore?

&gt; Source/WebKit/chromium/public/WebViewClient.h:115
&gt; +    virtual void didReceiveViewport(float initialScale, bool initialScaleExplicitlySet, float minimumScale, float maximumScale, float devicePixelRatio) { }

hmm, have you considered creating a WebViewport structure for these values?

&gt; Source/WebKit/chromium/public/WebViewClient.h:120
&gt; +    virtual int getDefaultFixedLayoutWidth() const { return 980; }

Why isn&apos;t this value pushed down to WebKit?  Why does it need to be a callback?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1053
&gt; +            m_page-&gt;chrome()-&gt;client()-&gt;dispatchViewportPropertiesDidChange(viewport);

It is kind of strange to be calling the ChromeClient from WebViewImpl.  ChromeClient is
meant to be called by WebCore.  Could it be that some more of this fixed layout processing
code should actually move down into WebCore?  Why isn&apos;t the FrameView handling this (i.e.,
why not do this work from FrameView::resize)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512854</commentid>
    <comment_count>5</comment_count>
      <attachid>117289</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-01 09:44:31 -0800</bug_when>
    <thetext>Comment on attachment 117289
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:115
&gt;&gt; +    virtual void didReceiveViewport(float initialScale, bool initialScaleExplicitlySet, float minimumScale, float maximumScale, float devicePixelRatio) { }
&gt; 
&gt; hmm, have you considered creating a WebViewport structure for these values?

It was initially when we had a larger set of parameters, I&apos;m actually not convinced we need to pass all these parameters now (because WebViewImpl keeps track of them for us now), thanks in part to aelias@) :)

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:120
&gt;&gt; +    virtual int getDefaultFixedLayoutWidth() const { return 980; }
&gt; 
&gt; Why isn&apos;t this value pushed down to WebKit?  Why does it need to be a callback?

The value is very platform and device dependent. This doesn&apos;t belong in WebKit in my humble opinion. Some devices have 800px default layout width (if there is no viewport tag), some have 980. This is highly device dependent.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1053
&gt;&gt; +            m_page-&gt;chrome()-&gt;client()-&gt;dispatchViewportPropertiesDidChange(viewport);
&gt; 
&gt; It is kind of strange to be calling the ChromeClient from WebViewImpl.  ChromeClient is
&gt; meant to be called by WebCore.  Could it be that some more of this fixed layout processing
&gt; code should actually move down into WebCore?  Why isn&apos;t the FrameView handling this (i.e.,
&gt; why not do this work from FrameView::resize)?

I guess we can call dispatchViewportPropertiesDidChange from FrameView::resize? The actual viewport computations are highly platform and device dependent as I mentioned. Not all the details have been standardized for how viewport should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512897</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-01 10:51:28 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 117289 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117289&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:115
&gt; &gt;&gt; +    virtual void didReceiveViewport(float initialScale, bool initialScaleExplicitlySet, float minimumScale, float maximumScale, float devicePixelRatio) { }
&gt; &gt; 
&gt; &gt; hmm, have you considered creating a WebViewport structure for these values?
&gt; 
&gt; It was initially when we had a larger set of parameters, I&apos;m actually not convinced we need to pass all these parameters now (because WebViewImpl keeps track of them for us now), thanks in part to aelias@) :)
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:120
&gt; &gt;&gt; +    virtual int getDefaultFixedLayoutWidth() const { return 980; }
&gt; &gt; 
&gt; &gt; Why isn&apos;t this value pushed down to WebKit?  Why does it need to be a callback?
&gt; 
&gt; The value is very platform and device dependent. This doesn&apos;t belong in WebKit in my humble opinion. Some devices have 800px default layout width (if there is no viewport tag), some have 980. This is highly device dependent.

It sounds like you are describing something that is a setting.  See WebSettings.  We also convey some other settings via static setters on WebView.  I don&apos;t see why this is different.  You only need a callback for things that are very dynamic, or which may change at subtle times.  This doesn&apos;t seem to fit that bill.


&gt; &gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1053
&gt; &gt;&gt; +            m_page-&gt;chrome()-&gt;client()-&gt;dispatchViewportPropertiesDidChange(viewport);
&gt; &gt; 
&gt; &gt; It is kind of strange to be calling the ChromeClient from WebViewImpl.  ChromeClient is
&gt; &gt; meant to be called by WebCore.  Could it be that some more of this fixed layout processing
&gt; &gt; code should actually move down into WebCore?  Why isn&apos;t the FrameView handling this (i.e.,
&gt; &gt; why not do this work from FrameView::resize)?
&gt; 
&gt; I guess we can call dispatchViewportPropertiesDidChange from FrameView::resize? The actual viewport computations are highly platform and device dependent as I mentioned. Not all the details have been standardized for how viewport should work.

Would it make sense for FrameView to have an #if ENABLE(VIEWPORT) code branch?  How can I learn more about viewport?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512906</commentid>
    <comment_count>7</comment_count>
      <attachid>117289</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-01 10:59:36 -0800</bug_when>
    <thetext>Comment on attachment 117289
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:115
&gt;&gt;&gt;&gt; +    virtual void didReceiveViewport(float initialScale, bool initialScaleExplicitlySet, float minimumScale, float maximumScale, float devicePixelRatio) { }
&gt;&gt;&gt; 
&gt;&gt;&gt; hmm, have you considered creating a WebViewport structure for these values?
&gt;&gt; 
&gt;&gt; It was initially when we had a larger set of parameters, I&apos;m actually not convinced we need to pass all these parameters now (because WebViewImpl keeps track of them for us now), thanks in part to aelias@) :)
&gt; 
&gt; It sounds like you are describing something that is a setting.  See WebSettings.  We also convey some other settings via static setters on WebView.  I don&apos;t see why this is different.  You only need a callback for things that are very dynamic, or which may change at subtle times.  This doesn&apos;t seem to fit that bill.

You&apos;re right. I will look into WebSettings.

&gt;&gt;&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1053
&gt;&gt;&gt;&gt; +            m_page-&gt;chrome()-&gt;client()-&gt;dispatchViewportPropertiesDidChange(viewport);
&gt;&gt;&gt; 
&gt;&gt;&gt; It is kind of strange to be calling the ChromeClient from WebViewImpl.  ChromeClient is
&gt;&gt;&gt; meant to be called by WebCore.  Could it be that some more of this fixed layout processing
&gt;&gt;&gt; code should actually move down into WebCore?  Why isn&apos;t the FrameView handling this (i.e.,
&gt;&gt;&gt; why not do this work from FrameView::resize)?
&gt;&gt; 
&gt;&gt; I guess we can call dispatchViewportPropertiesDidChange from FrameView::resize? The actual viewport computations are highly platform and device dependent as I mentioned. Not all the details have been standardized for how viewport should work.
&gt; 
&gt; Would it make sense for FrameView to have an #if ENABLE(VIEWPORT) code branch?  How can I learn more about viewport?

http://developer.android.com/guide/webapps/targeting.html contains most of the details.

I think it makes sense to put it in an ENABLE(VIEWPORT) branch at this point in time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513037</commentid>
    <comment_count>8</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-12-01 13:15:52 -0800</bug_when>
    <thetext>This change looks good to me.  I agree with Darin&apos;s suggestions.

As for didReceiveViewport, it looks like at this point, we only need one parameter, initialScale.  Given the other logic that has been pushed down to WebViewImpl, the Chrome-side code only needs to know that the scale has been set at all.  So we can switch to:

virtual void didReceiveViewport(float initialScale);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513040</commentid>
    <comment_count>9</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-12-01 13:19:36 -0800</bug_when>
    <thetext>Correction, the boolean is what we need (as the computed value doesn&apos;t specify whether it was explicitly set or not), so we should have:

virtual void didReceiveViewport(bool initialScaleExplicitlySet);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513041</commentid>
    <comment_count>10</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-01 13:20:35 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; This change looks good to me.  I agree with Darin&apos;s suggestions.
&gt; 
&gt; As for didReceiveViewport, it looks like at this point, we only need one parameter, initialScale.  Given the other logic that has been pushed down to WebViewImpl, the Chrome-side code only needs to know that the scale has been set at all.  So we can switch to:
&gt; 
&gt; virtual void didReceiveViewport(float initialScale);

I will make the following changes:

1. default fixed layout width becomes a WebSetting.
2. didReceiveViewport loses a few (unused) parameters.
3. Moving a call to dispatchViewportPropertiesDidChange from WebViewImpl::resize to FrameView::resize behind an ENABLE(VIEWPORT) flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513593</commentid>
    <comment_count>11</comment_count>
      <attachid>117585</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 00:51:29 -0800</bug_when>
    <thetext>Created attachment 117585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513607</commentid>
    <comment_count>12</comment_count>
      <attachid>117585</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-02 01:14:18 -0800</bug_when>
    <thetext>Comment on attachment 117585
Patch

Attachment 117585 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10693969</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513782</commentid>
    <comment_count>13</comment_count>
      <attachid>117630</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 08:29:05 -0800</bug_when>
    <thetext>Created attachment 117630
Made it compile with Chromium-side changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513784</commentid>
    <comment_count>14</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 08:29:45 -0800</bug_when>
    <thetext>That last patch should say without rather than with Chromium-side changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513791</commentid>
    <comment_count>15</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 08:35:50 -0800</bug_when>
    <thetext>*** Bug 70558 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514210</commentid>
    <comment_count>16</comment_count>
      <attachid>117630</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-02 15:06:58 -0800</bug_when>
    <thetext>Comment on attachment 117630
Made it compile with Chromium-side changes

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

&gt; Source/WebKit/chromium/public/WebViewClient.h:116
&gt; +    virtual void didReceiveViewport(bool initialScaleExplicitlySet) { }

Can this be called more than once?  Or, does this just happen during page load?
Is the &lt;meta viewport&gt; only honored for the top-most frame?

If the viewport parameters can change after the page is loaded (because the tag
could be re-written), then we should probably name this function didUpdateViewport
or didChangeViewport instead.

I&apos;m a little confused about the division of labor between WebKit and the embedder
w.r.t. scaling.  It seems like we should either handle everything inside WebKit
or not.  Are there reasons why the embedder has to know anything about viewport
scaling factors?

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:622
&gt; +    // If the window size has not been set yet don&apos;t attempt to set the viewport

do you have to worry about setting it later when the deviceRect information is available?
it seems like stopping here could result in buggy behavior.  am i missing something?

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:639
&gt; +    m_webView-&gt;setPageScaleFactorLimits(computed.minimumScale, computed.maximumScale);

if we are calling these methods here, within WebKit, do we still need these
functions on the public WebView interface?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514545</commentid>
    <comment_count>17</comment_count>
      <attachid>117769</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-03 11:06:01 -0800</bug_when>
    <thetext>Created attachment 117769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514547</commentid>
    <comment_count>18</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-03 11:10:09 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=117769) [details]
&gt; Patch

This needs more work. Uploading for personal reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514549</commentid>
    <comment_count>19</comment_count>
      <attachid>117630</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-03 11:17:19 -0800</bug_when>
    <thetext>Comment on attachment 117630
Made it compile with Chromium-side changes

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

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:116
&gt;&gt; +    virtual void didReceiveViewport(bool initialScaleExplicitlySet) { }
&gt; 
&gt; Can this be called more than once?  Or, does this just happen during page load?
&gt; Is the &lt;meta viewport&gt; only honored for the top-most frame?
&gt; 
&gt; If the viewport parameters can change after the page is loaded (because the tag
&gt; could be re-written), then we should probably name this function didUpdateViewport
&gt; or didChangeViewport instead.
&gt; 
&gt; I&apos;m a little confused about the division of labor between WebKit and the embedder
&gt; w.r.t. scaling.  It seems like we should either handle everything inside WebKit
&gt; or not.  Are there reasons why the embedder has to know anything about viewport
&gt; scaling factors?

1. I&apos;ve removed this, so this addresses your point. Things should happen from ChromeClientImpl::layoutUpdated now.
2. I absolutely agree, I would love to move as much as possible into WebKit. Basically, all the embedder should be doing is deciding whether to enable fixed layout or not...

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:622
&gt;&gt; +    // If the window size has not been set yet don&apos;t attempt to set the viewport
&gt; 
&gt; do you have to worry about setting it later when the deviceRect information is available?
&gt; it seems like stopping here could result in buggy behavior.  am i missing something?

It seems like there are cases where the size of the WebView is 0 initially, and then it sizes itself appropriately, but we deal with this in FrameView::resize now.

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:639
&gt;&gt; +    m_webView-&gt;setPageScaleFactorLimits(computed.minimumScale, computed.maximumScale);
&gt; 
&gt; if we are calling these methods here, within WebKit, do we still need these
&gt; functions on the public WebView interface?

Where else would they go? We might want to expose these to our port of DRT for testing, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514550</commentid>
    <comment_count>20</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-03 11:20:30 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 117630 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117630&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:116
&gt; &gt;&gt; +    virtual void didReceiveViewport(bool initialScaleExplicitlySet) { }
&gt; &gt; 
&gt; &gt; Can this be called more than once?  Or, does this just happen during page load?
&gt; &gt; Is the &lt;meta viewport&gt; only honored for the top-most frame?
&gt; &gt; 
&gt; &gt; If the viewport parameters can change after the page is loaded (because the tag
&gt; &gt; could be re-written), then we should probably name this function didUpdateViewport
&gt; &gt; or didChangeViewport instead.
&gt; &gt; 
&gt; &gt; I&apos;m a little confused about the division of labor between WebKit and the embedder
&gt; &gt; w.r.t. scaling.  It seems like we should either handle everything inside WebKit
&gt; &gt; or not.  Are there reasons why the embedder has to know anything about viewport
&gt; &gt; scaling factors?
&gt; 
&gt; 1. I&apos;ve removed this, so this addresses your point. Things should happen from ChromeClientImpl::layoutUpdated now.
&gt; 2. I absolutely agree, I would love to move as much as possible into WebKit. Basically, all the embedder should be doing is deciding whether to enable fixed layout or not...
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:622
&gt; &gt;&gt; +    // If the window size has not been set yet don&apos;t attempt to set the viewport
&gt; &gt; 
&gt; &gt; do you have to worry about setting it later when the deviceRect information is available?
&gt; &gt; it seems like stopping here could result in buggy behavior.  am i missing something?
&gt; 
&gt; It seems like there are cases where the size of the WebView is 0 initially, and then it sizes itself appropriately, but we deal with this in FrameView::resize now.
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:639
&gt; &gt;&gt; +    m_webView-&gt;setPageScaleFactorLimits(computed.minimumScale, computed.maximumScale);
&gt; &gt; 
&gt; &gt; if we are calling these methods here, within WebKit, do we still need these
&gt; &gt; functions on the public WebView interface?
&gt; 
&gt; Where else would they go? We might want to expose these to our port of DRT for testing, no?

Darin, I&apos;d like to add that an embedder may choose to not use fixed layout or use the viewport tag and instead control scaling outside of WebKit. I don&apos;t see why we can&apos;t expose this to the public API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514552</commentid>
    <comment_count>21</comment_count>
      <attachid>117630</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-03 11:23:03 -0800</bug_when>
    <thetext>Comment on attachment 117630
Made it compile with Chromium-side changes

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

&gt;&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:639
&gt;&gt;&gt; +    m_webView-&gt;setPageScaleFactorLimits(computed.minimumScale, computed.maximumScale);
&gt;&gt; 
&gt;&gt; if we are calling these methods here, within WebKit, do we still need these
&gt;&gt; functions on the public WebView interface?
&gt; 
&gt; Where else would they go? We might want to expose these to our port of DRT for testing, no?

Let me repeat inline: An embedder may choose to control scaling outside of WebKit, and disable fixed layout, for example. Not all content will take this code path (if fixed layout is disabled).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514555</commentid>
    <comment_count>22</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-03 11:36:06 -0800</bug_when>
    <thetext>I&apos;d like to use computePageScaleFactorLimits from ChromeClientImpl::layoutUpdated:

https://bugs.webkit.org/show_bug.cgi?id=72983

I&apos;m going to set this bug  as depending on 72983.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517216</commentid>
    <comment_count>23</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-07 23:36:13 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; I&apos;d like to use computePageScaleFactorLimits from ChromeClientImpl::layoutUpdated:
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=72983
&gt; 
&gt; I&apos;m going to set this bug  as depending on 72983.

Hmm, I just noticed computePageScaleFactorLimits is private. It&apos;s called anyway if we compute a default viewport on first layout, so I&apos;ll leave that part of the code as it is. I&apos;m about to upload a change that makes use of the screen DPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517219</commentid>
    <comment_count>24</comment_count>
      <attachid>118339</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-07 23:45:56 -0800</bug_when>
    <thetext>Created attachment 118339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517660</commentid>
    <comment_count>25</comment_count>
      <attachid>118339</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-08 12:12:00 -0800</bug_when>
    <thetext>Comment on attachment 118339
Patch

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:628
&gt; +

nit: extra new line

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:655
&gt; +

nit: extra new line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518029</commentid>
    <comment_count>26</comment_count>
      <attachid>118513</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-08 19:02:02 -0800</bug_when>
    <thetext>Created attachment 118513
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518031</commentid>
    <comment_count>27</comment_count>
      <attachid>118339</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-08 19:08:08 -0800</bug_when>
    <thetext>Comment on attachment 118339
Patch

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

There&apos;s a minor issue here where if the user does a same page navigation, the page scale factor will get reset, as pointed out by aelias@. The change is non-trivial, so I will fix it in a separate bug.

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:628
&gt;&gt; +
&gt; 
&gt; nit: extra new line

Done.

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:655
&gt;&gt; +
&gt; 
&gt; nit: extra new line

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518093</commentid>
    <comment_count>28</comment_count>
      <attachid>118513</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 21:15:36 -0800</bug_when>
    <thetext>Comment on attachment 118513
Patch for landing

Clearing flags on attachment: 118513

Committed r102429: &lt;http://trac.webkit.org/changeset/102429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518094</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 21:15:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117289</attachid>
            <date>2011-11-30 16:09:07 -0800</date>
            <delta_ts>2011-12-02 00:51:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73495-20111130190905.patch</filename>
            <type>text/plain</type>
            <size>6844</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA0MDU5ZmI1N2U4ZmZmZWI1Nzc5NjQxYzkxOGNjMmUyMzBlZmIyOTYuLjIzODc1OGFlYzAwZGUx
MmQzZTNhOTY2MjZlYzczM2FhOWY4ZWU1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMzAgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgdmlld3BvcnQgbWV0YXRhZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0OTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wdXRlIHRoZSBh
cHByb3ByaWF0ZSBmaXhlZCBsYXlvdXQgc2l6ZSwgcGFnZSwgYW5kIGRldmljZSBzY2FsZSBmYWN0
b3JzLAorICAgICAgICBiYXNlZCBvbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCisKKyAgICAgICAg
UmVjb21wdXRlIHRob3NlIHBhcmFtZXRlcnMgaWYgdGhlIHdpbmRvdyByZWN0IGNoYW5nZXMgKGlu
IFdlYlZpZXdJbXBsOjpyZXNpemUpLgorCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGlkUmVjZWl2ZVZpZXdwb3J0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Z2V0RGVmYXVsdEZpeGVkTGF5b3V0V2lk
dGgpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Up
OgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2l6ZSk6CisKIDIw
MTEtMTEtMzAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgZGVmZXJyZWQgYmFja2VuZC0+ZnJvbnQtZW5kIGNv
bW1hbmRzIHByb2Nlc3NpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmgKaW5kZXggMjBhYzVlOWI5MzJjZWVhYjUzMGMyZTM4YTcwN2VmZjhiMjViYTU2
NS4uOWE1YjY5ZDdhODc2Zjg1NzE0OWNiOTYzNTE2NzEwOGNjZTNlNTExMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMTExLDYgKzExMSwx
NCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoCiAg
ICAgICAgIGNvbnN0IFdlYkNvbnNvbGVNZXNzYWdlJiwgY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VO
YW1lLCB1bnNpZ25lZCBzb3VyY2VMaW5lKSB7IH0KIAorICAgIC8vIERpZCByZWNlaXZlIHRoZSB2
aWV3cG9ydCBtZXRhIHRhZworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlVmlld3BvcnQoZmxv
YXQgaW5pdGlhbFNjYWxlLCBib29sIGluaXRpYWxTY2FsZUV4cGxpY2l0bHlTZXQsIGZsb2F0IG1p
bmltdW1TY2FsZSwgZmxvYXQgbWF4aW11bVNjYWxlLCBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvKSB7
IH0KKworICAgIC8vIEEgbWV0aG9kIHRvIGFsbG93IHRoZSBjbGllbnQgdG8gc2V0IHRoZSBkZWZh
dWx0IHdpZHRoIGZvciB0aGUKKyAgICAvLyBmaXhlZExheW91dC4gV2UgY2FsY3VsYXRlIHRoZSBo
ZWlnaHQgb2YgZml4ZWRMYXlvdXQgYWNjb3JkaW5nIHRvIHRoaXMKKyAgICAvLyB3aWR0aCB3aXRo
IGtlZXBpbmcgdGhlIHNjcmVlbiByYXRpby4KKyAgICB2aXJ0dWFsIGludCBnZXREZWZhdWx0Rml4
ZWRMYXlvdXRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDk4MDsgfQorCiAgICAgLy8gQ2FsbGVkIHdo
ZW4gc2NyaXB0IGluIHRoZSBwYWdlIGNhbGxzIHdpbmRvdy5wcmludCgpLiAgSWYgZnJhbWUgaXMK
ICAgICAvLyBub24tbnVsbCwgdGhlbiBpdCBzZWxlY3RzIGEgcGFydGljdWxhciBmcmFtZSwgaW5j
bHVkaW5nIGl0cwogICAgIC8vIGNoaWxkcmVuLCB0byBwcmludC4gIE90aGVyd2lzZSwgdGhlIG1h
aW4gZnJhbWUgYW5kIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA1Zjg0YTJmY2M3YjRmNjgyMGYwNDY4MmZmNDY0
NWZhODE1ZTcwMWQ2Li41ZGYzYTE3NGMwNzQzY2NkZjA5MTQ0MjhkZjE1YmY1NTZlZjhjOTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApA
QCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRl
ICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIu
aCIKICNpbmNsdWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgpAQCAtNjAzLDYgKzYwNCw0NSBAQCB2
b2lkIENocm9tZUNsaWVudEltcGw6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sdGlwVGV4
dCwgVGV4dERpcmVjdGlvbiBkaXIpCiAgICAgICAgIHRvb2x0aXBUZXh0LCB0ZXh0RGlyZWN0aW9u
KTsKIH0KIAordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGll
c0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAorewor
ICAgIGlmICghbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJW
aWV3LT5jbGllbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmlld3BvcnRBcmd1bWVudHMg
YXJnczsKKyAgICBpZiAoYXJndW1lbnRzID09IGFyZ3MpCisgICAgICAgIC8vIERlZmF1bHQgdmll
d3BvcnQgYXJndW1lbnRzIHBhc3NlZCBpbi4gVGhpcyBpcyBhIHNpZ25hbCB0byByZXNldCB0aGUg
dmlld3BvcnQuCisgICAgICAgIGFyZ3Mud2lkdGggPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVE
ZXNrdG9wV2lkdGg7CisgICAgZWxzZQorICAgICAgICBhcmdzID0gYXJndW1lbnRzOworCisgICAg
Ly8gRklYTUU6IFNldCB0byBzY3JlZW5EcGkoZnJhbWVWaWV3KSBvbmNlIERQSSBwbHVtYmluZyBs
YW5kcy4KKyAgICBpbnQgZHBpID0gOTI7CisgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93
ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBXZWJSZWN0IGRldmljZVJlY3QgPSBjbGllbnQtPndpbmRv
d1JlY3QoKTsKKyAgICAvLyBJZiB0aGUgd2luZG93IHNpemUgaGFzIG5vdCBiZWVuIHNldCB5ZXQg
ZG9uJ3QgYXR0ZW1wdCB0byBzZXQgdGhlIHZpZXdwb3J0CisgICAgaWYgKCFkZXZpY2VSZWN0Lndp
ZHRoIHx8ICFkZXZpY2VSZWN0LmhlaWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQ2Fs
bCB0aGUgY29tbW9uIHZpZXdwb3J0IGNvbXB1dGluZyBsb2dpYyBpbiBWaWV3cG9ydEFyZ3VtZW50
cy5jcHAuCisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1dGVkID0gY29tcHV0ZVZpZXdwb3J0
QXR0cmlidXRlcygKKyAgICAgICAgYXJncywgY2xpZW50LT5nZXREZWZhdWx0Rml4ZWRMYXlvdXRX
aWR0aCgpLCBkZXZpY2VSZWN0LndpZHRoLCBkZXZpY2VSZWN0LmhlaWdodCwKKyAgICAgICAgZHBp
LCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJlY3QuaGVpZ2h0KSk7CisKKyAgICBp
bnQgbGF5b3V0V2lkdGggPSBjb21wdXRlZC5sYXlvdXRTaXplLndpZHRoKCk7CisgICAgaW50IGxh
eW91dEhlaWdodCA9IGNvbXB1dGVkLmxheW91dFNpemUuaGVpZ2h0KCk7CisgICAgbV93ZWJWaWV3
LT5zZXRGaXhlZExheW91dFNpemUoSW50U2l6ZShsYXlvdXRXaWR0aCwgbGF5b3V0SGVpZ2h0KSk7
CisKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgdGhlIGltcGFjdCB0aGlzIGhhcyBvbiBsYXlv
dXQvcmVuZGVyaW5nIGlmIGFueS4KKyAgICAvLyBUaGlzIGV4cG9zZXMgdGhlIGNvcnJlY3QgZGV2
aWNlIHNjYWxlIHRvIGphdmFzY3JpcHQgYW5kIG1lZGlhIHF1ZXJpZXMuCisgICAgbV93ZWJWaWV3
LT5zZXREZXZpY2VTY2FsZUZhY3Rvcihjb21wdXRlZC5kZXZpY2VQaXhlbFJhdGlvKTsKKyAgICBt
X3dlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhjb21wdXRlZC5taW5pbXVtU2NhbGUs
IGNvbXB1dGVkLm1heGltdW1TY2FsZSk7CisgICAgbV93ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0
b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0KGNvbXB1dGVkLmluaXRpYWxTY2FsZSAqIGNvbXB1dGVk
LmRldmljZVBpeGVsUmF0aW8pOworICAgIC8vIFRoaXMgd2lsbCBnbyBiYWNrIHRvIHRoZSBjbGll
bnQgdG8gc2V0IHRoZSBhcHByb3ByaWF0ZSBzY2FsZSBmYWN0b3IuCisgICAgY2xpZW50LT5kaWRS
ZWNlaXZlVmlld3BvcnQoY29tcHV0ZWQuaW5pdGlhbFNjYWxlLCBhcmd1bWVudHMuaW5pdGlhbFNj
YWxlICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8sIGNvbXB1dGVkLm1pbmltdW1TY2Fs
ZSwgY29tcHV0ZWQubWF4aW11bVNjYWxlLCBjb21wdXRlZC5kZXZpY2VQaXhlbFJhdGlvKTsKK30K
KworCiB2b2lkIENocm9tZUNsaWVudEltcGw6OnByaW50KEZyYW1lKiBmcmFtZSkKIHsKICAgICBp
ZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuaAppbmRleCA3N2YyNjQxYTQ0NGRmMGMwZWMwMjNkOGNlNTZlMWZhOWQw
NDkxNTU4Li45ZmE5MmVmZTAxYmZiZmQ2ZjNkODQzOWEwNjNhZTAyNWNmNWE5ZDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xMjUsNiAr
MTI1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dCgKICAgICAgICAgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25l
ZCBtb2RpZmllckZsYWdzKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6
OlN0cmluZyYgdG9vbHRpcFRleHQsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJD
b3JlOjpGcmFtZSopOwogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoCiAg
ICAgICAgIFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYThmYzFh
NmZkZjRkOTY1ZjQ1ZjI3ZjkzNjljYmM0MWJiMTU3MWQ0Ni4uYTE2ZWY5YmYwZGM1NTVlOWU2ZjQx
N2QzMGZmZGExODZiZWZhNTFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtMTA0NSw4ICsxMDQ1LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlc2l6
ZShjb25zdCBXZWJTaXplJiBuZXdTaXplKQogICAgICAgICByZXR1cm47CiAgICAgbV9zaXplID0g
bmV3U2l6ZTsKIAotICAgIGlmIChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKSB7Ci0gICAg
ICAgIG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCktPnJlc2l6ZShtX3NpemUud2lkdGgsIG1f
c2l6ZS5oZWlnaHQpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lSW1wbCgp
LT5mcmFtZVZpZXcoKTsKKyAgICBpZiAoZnJhbWVWaWV3KSB7CisgICAgICAgIGlmIChpc0ZpeGVk
TGF5b3V0TW9kZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
bWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgICAgICAgICAgVmlld3Bv
cnRBcmd1bWVudHMgdmlld3BvcnQgPSBkb2N1bWVudC0+dmlld3BvcnRBcmd1bWVudHMoKTsKKyAg
ICAgICAgICAgIG1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdwb3J0UHJv
cGVydGllc0RpZENoYW5nZSh2aWV3cG9ydCk7CisgICAgICAgIH0KKyAgICAgICAgZnJhbWVWaWV3
LT5yZXNpemUobV9zaXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KTsKICAgICAgICAgbWFpbkZyYW1l
SW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2VuZFJlc2l6ZUV2ZW50KCk7CiAgICAg
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117585</attachid>
            <date>2011-12-02 00:51:29 -0800</date>
            <delta_ts>2011-12-02 08:28:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73495-20111202035128.patch</filename>
            <type>text/plain</type>
            <size>8396</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Mzg4OTY0NzNmM2I3ODdlZTcyNmVhNWU4YTRlZDc5NjE3YWI5MWFjLi5kMTY0MjVmYzUyNzBjOWZk
NTg2ZTU3OTFlZGJiNmJhZGFmODUzOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wMiAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3cG9ydCBtZXRhdGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6
CisKIDIwMTEtMTItMDEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBUk12NyBvbmx5IGFsbG93cyBmb3Igb25lLXNob3QgcGF0Y2hpbmcgb2YgY29tcGFjdCBvZmZz
ZXRzLCB3aGlsZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjkwNzgyYzJkZWY3YmM3MTQ3YTVhNjcxY2I0
ODI2OTIwYjdiN2M2Li5mZmFhMDEzMzAxYzllYmYzZjJkMmE4ZWRjYmVjMzk1MTgzZDAwYzFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTItMDIgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgdmlld3BvcnQg
bWV0YXRhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzM0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWNvbXB1dGUgdmlld3BvcnQgcGFyYW1ldGVycyBvbiBmcmFtZSByZWN0IHJlc2l6ZS4KKworICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2V0RnJhbWVSZWN0KToKKwogMjAxMS0xMi0wMSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIHRoZSB1bnVzZWQgZnVuY3Rpb24gbmFt
ZUZvckN1cnNvclR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkMWM4MTQ0OWQ0
ZWVhNDgyYWM1Nzk1NzEzYjU1NjY3MjkwOTYzNTI2Li4zOTgyYWU2YjU5ODg3NGZhNTcwYjJmODA1
YTc0YmZjNmNjNmJmYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDExLTEyLTAyICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtDaHJvbWl1bV0gRW5hYmxlIHZpZXdwb3J0IG1ldGF0YWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDk1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29tcHV0ZSB0aGUgYXBwcm9wcmlhdGUg
Zml4ZWQgbGF5b3V0IHNpemUsIHBhZ2UsIGFuZCBkZXZpY2Ugc2NhbGUgZmFjdG9ycywKKyAgICAg
ICAgYmFzZWQgb24gdGhlIHZpZXdwb3J0IG1ldGEgdGFnLgorCisgICAgICAgIFNlZSBodHRwOi8v
ZGV2ZWxvcGVyLmFuZHJvaWQuY29tL2d1aWRlL3dlYmFwcHMvdGFyZ2V0aW5nLmh0bWwgZm9yIG1v
cmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OmRp
ZFJlY2VpdmVWaWV3cG9ydCk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZSk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorCiAyMDExLTEyLTAxICBFbGxpb3QgUG9nZXIgIDxl
cG9nZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICB3ZWJraXQtPmNocm9taXVtIERFUFMgcm9sbCAx
MTE1NzUtPjExMjQ2MwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGJlMGM2
NGVkNjU3NzMyOWRhYjdjMjMxNGMzODA0NmEwM2RhNTkxNDguLmJkNDM1ODA4NDQyY2NmZjc3MTNi
MDhjYzM3NGE0NDlmODUzM2QzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgK
QEAgLTg1Nyw2ICs4NTcsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0dFU1RVUkVfUkVDT0dOSVpFUiAw
CiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXUE9SVCkKKyNkZWZpbmUgRU5BQkxF
X1ZJRVdQT1JUIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMp
CiAjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IDlhNmZkNzRmODkwNWQyMTNhOGU0NzE1ZGJhZjc4MGU1ZmM5OTFmY2Mu
LmUyMjVjMzhmZmM4MmE3ZDlkMzNkZTFlY2QwMjMyNjBlOWJjZGM5NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTQwMiw2ICs0MDIsMTYgQEAgdm9pZCBGcmFtZVZpZXc6OnNldEZy
YW1lUmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQogICAgIGlmIChuZXdSZWN0ID09IG9sZFJl
Y3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShWSUVXUE9SVCkKKyAgICBpZiAodXNl
Rml4ZWRMYXlvdXQoKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpOworICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydCA9IGRvY3VtZW50
LT52aWV3cG9ydEFyZ3VtZW50cygpOworICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/IGZy
YW1lKCktPnBhZ2UoKSA6IDA7CisgICAgICAgIGlmIChwYWdlKQorICAgICAgICAgICAgcGFnZS0+
Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSh2
aWV3cG9ydCk7CisgICAgfQorI2VuZGlmCisKICAgICBTY3JvbGxWaWV3OjpzZXRGcmFtZVJlY3Qo
bmV3UmVjdCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggZTA4ZjY1YTVjMmRjOWM3Yzc0ZjYzY2Q2OTYwYzI5
OGI0MTA4MzFmNC4uY2E2NTMyYmRlMTE4YjJkMTllNWYyMjVmZjU4NjI4ODAwYmI4ODg1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtOTAsNiArOTAsNyBAQAogICAgICAg
J0VOQUJMRV9WOF9TQ1JJUFRfREVCVUdfU0VSVkVSPTEnLAogICAgICAgJ0VOQUJMRV9WSURFTz0x
JywKICAgICAgICdFTkFCTEVfVklERU9fVFJBQ0s9MScsCisgICAgICAnRU5BQkxFX1ZJRVdQT1JU
PTwoZW5hYmxlX3ZpZXdwb3J0KScsCiAgICAgICAnRU5BQkxFX1dFQkdMPTEnLAogICAgICAgJ0VO
QUJMRV9XRUJfU09DS0VUUz0xJywKICAgICAgICdFTkFCTEVfV0VCX1RJTUlORz0xJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCAwMzlkNDlk
ZjM3YjZkNmYzOTMwYjk1Yzc4ZDc1MGI5ZTJiMmQzYzc2Li5kMTQ2OTQ4NDAxYTkzNjRhM2EyMDQ5
NDcyOGU0ODM4MDY4Y2UwN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlld0NsaWVudC5oCkBAIC0xMTIsNiArMTEyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkaWRBZGRNZXNzYWdlVG9Db25zb2xlKAogICAgICAgICBjb25zdCBXZWJDb25zb2xlTWVz
c2FnZSYsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlTmFtZSwgdW5zaWduZWQgc291cmNlTGluZSkg
eyB9CiAKKyAgICAvLyBEaWQgcmVjZWl2ZSB0aGUgdmlld3BvcnQgbWV0YSB0YWcKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVZpZXdwb3J0KGJvb2wgaW5pdGlhbFNjYWxlRXhwbGljaXRseVNl
dCkgeyB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBzY3JpcHQgaW4gdGhlIHBhZ2UgY2FsbHMgd2lu
ZG93LnByaW50KCkuICBJZiBmcmFtZSBpcwogICAgIC8vIG5vbi1udWxsLCB0aGVuIGl0IHNlbGVj
dHMgYSBwYXJ0aWN1bGFyIGZyYW1lLCBpbmNsdWRpbmcgaXRzCiAgICAgLy8gY2hpbGRyZW4sIHRv
IHByaW50LiAgT3RoZXJ3aXNlLCB0aGUgbWFpbiBmcmFtZSBhbmQgaXRzIGNoaWxkcmVuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDE2
MTI4MzI1NmJlMDk5MDdkNmNmOWI2NzAzM2UyZDM5Y2IwNmMxYmIuLjEwMmEzNThkMWNlZmQxMGVh
Y2ZjOTc2NTIzMmVkZGNhOTc1NWU3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiTmF2
aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIK
ICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9taXVt
LmgiCkBAIC02MDEsNiArNjAyLDQ4IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0VG9vbFRp
cChjb25zdCBTdHJpbmcmIHRvb2x0aXBUZXh0LCBUZXh0RGlyZWN0aW9uIGRpcikKICAgICAgICAg
dG9vbHRpcFRleHQsIHRleHREaXJlY3Rpb24pOwogfQogCit2b2lkIENocm9tZUNsaWVudEltcGw6
OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1l
bnRzJiBhcmd1bWVudHMpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJRVdQT1JUKQorICAgIGlmICgh
bV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5jbGll
bnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZpZXdw
b3J0QXJndW1lbnRzIGFyZ3M7CisgICAgaWYgKGFyZ3VtZW50cyA9PSBhcmdzKQorICAgICAgICAv
LyBEZWZhdWx0IHZpZXdwb3J0IGFyZ3VtZW50cyBwYXNzZWQgaW4uIFRoaXMgaXMgYSBzaWduYWwg
dG8gcmVzZXQgdGhlIHZpZXdwb3J0LgorICAgICAgICBhcmdzLndpZHRoID0gVmlld3BvcnRBcmd1
bWVudHM6OlZhbHVlRGVza3RvcFdpZHRoOworICAgIGVsc2UKKyAgICAgICAgYXJncyA9IGFyZ3Vt
ZW50czsKKworICAgIC8vIEZJWE1FOiBTZXQgdG8gc2NyZWVuRHBpKGZyYW1lVmlldykgb25jZSBE
UEkgcGx1bWJpbmcgbGFuZHMuCisgICAgaW50IGRwaSA9IDkyOworICAgIFdlYlZpZXdDbGllbnQq
IGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgV2ViUmVjdCBkZXZpY2VSZWN0ID0g
Y2xpZW50LT53aW5kb3dSZWN0KCk7CisgICAgLy8gSWYgdGhlIHdpbmRvdyBzaXplIGhhcyBub3Qg
YmVlbiBzZXQgeWV0IGRvbid0IGF0dGVtcHQgdG8gc2V0IHRoZSB2aWV3cG9ydAorICAgIGlmICgh
ZGV2aWNlUmVjdC53aWR0aCB8fCAhZGV2aWNlUmVjdC5oZWlnaHQpCisgICAgICAgIHJldHVybjsK
KworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygp
OworICAgIC8vIENhbGwgdGhlIGNvbW1vbiB2aWV3cG9ydCBjb21wdXRpbmcgbG9naWMgaW4gVmll
d3BvcnRBcmd1bWVudHMuY3BwLgorICAgIFZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlZCA9IGNv
bXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoCisgICAgICAgIGFyZ3MsIHNldHRpbmdzLT5sYXlvdXRG
YWxsYmFja1dpZHRoKCksIGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJlY3QuaGVpZ2h0LAorICAg
ICAgICBkcGksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2aWNlUmVjdC5oZWlnaHQpKTsK
KworICAgIGludCBsYXlvdXRXaWR0aCA9IGNvbXB1dGVkLmxheW91dFNpemUud2lkdGgoKTsKKyAg
ICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29tcHV0ZWQubGF5b3V0U2l6ZS5oZWlnaHQoKTsKKyAgICBt
X3dlYlZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShJbnRTaXplKGxheW91dFdpZHRoLCBsYXlvdXRI
ZWlnaHQpKTsKKworICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSB0aGUgaW1wYWN0IHRoaXMgaGFz
IG9uIGxheW91dC9yZW5kZXJpbmcgaWYgYW55LgorICAgIC8vIFRoaXMgZXhwb3NlcyB0aGUgY29y
cmVjdCBkZXZpY2Ugc2NhbGUgdG8gamF2YXNjcmlwdCBhbmQgbWVkaWEgcXVlcmllcy4KKyAgICBt
X3dlYlZpZXctPnNldERldmljZVNjYWxlRmFjdG9yKGNvbXB1dGVkLmRldmljZVBpeGVsUmF0aW8p
OworICAgIG1fd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGNvbXB1dGVkLm1pbmlt
dW1TY2FsZSwgY29tcHV0ZWQubWF4aW11bVNjYWxlKTsKKyAgICBtX3dlYlZpZXctPnNldFBhZ2VT
Y2FsZUZhY3RvclByZXNlcnZpbmdTY3JvbGxPZmZzZXQoY29tcHV0ZWQuaW5pdGlhbFNjYWxlICog
Y29tcHV0ZWQuZGV2aWNlUGl4ZWxSYXRpbyk7CisKKyAgICBjbGllbnQtPmRpZFJlY2VpdmVWaWV3
cG9ydChhcmd1bWVudHMuaW5pdGlhbFNjYWxlICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1
dG8pOworI2VuZGlmCit9CisKKwogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwcmludChGcmFtZSog
ZnJhbWUpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggNzdmMjY0MWE0NDRkZjBjMGVj
MDIzZDhjZTU2ZTFmYTlkMDQ5MTU1OC4uOWZhOTJlZmUwMWJmYmZkNmYzZDg0MzlhMDYzYWUwMjVj
ZjVhOWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRv
b2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmIHRvb2x0aXBUZXh0LCBXZWJDb3JlOjpUZXh0RGlyZWN0
aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFu
Z2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKAogICAgICAgICBXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5n
JiBkYXRhYmFzZU5hbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117630</attachid>
            <date>2011-12-02 08:29:05 -0800</date>
            <delta_ts>2011-12-03 11:23:03 -0800</delta_ts>
            <desc>Made it compile with Chromium-side changes</desc>
            <filename>bug-73495-20111202112903.patch</filename>
            <type>text/plain</type>
            <size>8642</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Mzg4OTY0NzNmM2I3ODdlZTcyNmVhNWU4YTRlZDc5NjE3YWI5MWFjLi5kMTY0MjVmYzUyNzBjOWZk
NTg2ZTU3OTFlZGJiNmJhZGFmODUzOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wMiAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3cG9ydCBtZXRhdGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6
CisKIDIwMTEtMTItMDEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBUk12NyBvbmx5IGFsbG93cyBmb3Igb25lLXNob3QgcGF0Y2hpbmcgb2YgY29tcGFjdCBvZmZz
ZXRzLCB3aGlsZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjkwNzgyYzJkZWY3YmM3MTQ3YTVhNjcxY2I0
ODI2OTIwYjdiN2M2Li5mZmFhMDEzMzAxYzllYmYzZjJkMmE4ZWRjYmVjMzk1MTgzZDAwYzFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTItMDIgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgdmlld3BvcnQg
bWV0YXRhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzM0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWNvbXB1dGUgdmlld3BvcnQgcGFyYW1ldGVycyBvbiBmcmFtZSByZWN0IHJlc2l6ZS4KKworICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2V0RnJhbWVSZWN0KToKKwogMjAxMS0xMi0wMSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIHRoZSB1bnVzZWQgZnVuY3Rpb24gbmFt
ZUZvckN1cnNvclR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkMWM4MTQ0OWQ0
ZWVhNDgyYWM1Nzk1NzEzYjU1NjY3MjkwOTYzNTI2Li4zOTgyYWU2YjU5ODg3NGZhNTcwYjJmODA1
YTc0YmZjNmNjNmJmYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDExLTEyLTAyICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtDaHJvbWl1bV0gRW5hYmxlIHZpZXdwb3J0IG1ldGF0YWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDk1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29tcHV0ZSB0aGUgYXBwcm9wcmlhdGUg
Zml4ZWQgbGF5b3V0IHNpemUsIHBhZ2UsIGFuZCBkZXZpY2Ugc2NhbGUgZmFjdG9ycywKKyAgICAg
ICAgYmFzZWQgb24gdGhlIHZpZXdwb3J0IG1ldGEgdGFnLgorCisgICAgICAgIFNlZSBodHRwOi8v
ZGV2ZWxvcGVyLmFuZHJvaWQuY29tL2d1aWRlL3dlYmFwcHMvdGFyZ2V0aW5nLmh0bWwgZm9yIG1v
cmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OmRp
ZFJlY2VpdmVWaWV3cG9ydCk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZSk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorCiAyMDExLTEyLTAxICBFbGxpb3QgUG9nZXIgIDxl
cG9nZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICB3ZWJraXQtPmNocm9taXVtIERFUFMgcm9sbCAx
MTE1NzUtPjExMjQ2MwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGJlMGM2
NGVkNjU3NzMyOWRhYjdjMjMxNGMzODA0NmEwM2RhNTkxNDguLmJkNDM1ODA4NDQyY2NmZjc3MTNi
MDhjYzM3NGE0NDlmODUzM2QzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgK
QEAgLTg1Nyw2ICs4NTcsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0dFU1RVUkVfUkVDT0dOSVpFUiAw
CiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXUE9SVCkKKyNkZWZpbmUgRU5BQkxF
X1ZJRVdQT1JUIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMp
CiAjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IDlhNmZkNzRmODkwNWQyMTNhOGU0NzE1ZGJhZjc4MGU1ZmM5OTFmY2Mu
LmUyMjVjMzhmZmM4MmE3ZDlkMzNkZTFlY2QwMjMyNjBlOWJjZGM5NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTQwMiw2ICs0MDIsMTYgQEAgdm9pZCBGcmFtZVZpZXc6OnNldEZy
YW1lUmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQogICAgIGlmIChuZXdSZWN0ID09IG9sZFJl
Y3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShWSUVXUE9SVCkKKyAgICBpZiAodXNl
Rml4ZWRMYXlvdXQoKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpOworICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydCA9IGRvY3VtZW50
LT52aWV3cG9ydEFyZ3VtZW50cygpOworICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/IGZy
YW1lKCktPnBhZ2UoKSA6IDA7CisgICAgICAgIGlmIChwYWdlKQorICAgICAgICAgICAgcGFnZS0+
Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSh2
aWV3cG9ydCk7CisgICAgfQorI2VuZGlmCisKICAgICBTY3JvbGxWaWV3OjpzZXRGcmFtZVJlY3Qo
bmV3UmVjdCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggZTA4ZjY1YTVjMmRjOWM3Yzc0ZjYzY2Q2OTYwYzI5
OGI0MTA4MzFmNC4uN2M1OGVjMzkyZDU4OGVmOTYyMjVmOGI0MDhhOWFmNTY4NDgxMWZmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtOTAsNiArOTAsNyBAQAogICAgICAg
J0VOQUJMRV9WOF9TQ1JJUFRfREVCVUdfU0VSVkVSPTEnLAogICAgICAgJ0VOQUJMRV9WSURFTz0x
JywKICAgICAgICdFTkFCTEVfVklERU9fVFJBQ0s9MScsCisgICAgICAnRU5BQkxFX1ZJRVdQT1JU
PTwoZW5hYmxlX3ZpZXdwb3J0KScsCiAgICAgICAnRU5BQkxFX1dFQkdMPTEnLAogICAgICAgJ0VO
QUJMRV9XRUJfU09DS0VUUz0xJywKICAgICAgICdFTkFCTEVfV0VCX1RJTUlORz0xJywKQEAgLTEx
Miw2ICsxMTMsNyBAQAogICAgICAgJ3VzZV9hY2NlbGVyYXRlZF9jb21wb3NpdGluZyUnOiAxLAog
ICAgICAgJ2VuYWJsZV9za2lhX3RleHQlJzogMCwKICAgICAgICdlbmFibGVfc3ZnJSc6IDEsCisg
ICAgICAnZW5hYmxlX3ZpZXdwb3J0JSc6IDAsCiAgICAgICAnZW5hYmxlX3RvdWNoX2V2ZW50cyUn
OiAxLAogICAgICAgJ3VzZV9za2lhJSc6IDAsCiAgICAgICAnZW5hYmxlX3RvdWNoX2ljb25fbG9h
ZGluZyUnIDogMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAppbmRleCAwMzlkNDlkZjM3YjZkNmYzOTMwYjk1Yzc4ZDc1MGI5ZTJiMmQzYzc2Li5kMTQ2
OTQ4NDAxYTkzNjRhM2EyMDQ5NDcyOGU0ODM4MDY4Y2UwN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0xMTIsNiArMTEyLDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRNZXNzYWdlVG9Db25zb2xlKAogICAgICAgICBj
b25zdCBXZWJDb25zb2xlTWVzc2FnZSYsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlTmFtZSwgdW5z
aWduZWQgc291cmNlTGluZSkgeyB9CiAKKyAgICAvLyBEaWQgcmVjZWl2ZSB0aGUgdmlld3BvcnQg
bWV0YSB0YWcKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVZpZXdwb3J0KGJvb2wgaW5pdGlh
bFNjYWxlRXhwbGljaXRseVNldCkgeyB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBzY3JpcHQgaW4g
dGhlIHBhZ2UgY2FsbHMgd2luZG93LnByaW50KCkuICBJZiBmcmFtZSBpcwogICAgIC8vIG5vbi1u
dWxsLCB0aGVuIGl0IHNlbGVjdHMgYSBwYXJ0aWN1bGFyIGZyYW1lLCBpbmNsdWRpbmcgaXRzCiAg
ICAgLy8gY2hpbGRyZW4sIHRvIHByaW50LiAgT3RoZXJ3aXNlLCB0aGUgbWFpbiBmcmFtZSBhbmQg
aXRzIGNoaWxkcmVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCmluZGV4IDE2MTI4MzI1NmJlMDk5MDdkNmNmOWI2NzAzM2UyZDM5Y2IwNmMxYmIu
LjEwMmEzNThkMWNlZmQxMGVhY2ZjOTc2NTIzMmVkZGNhOTc1NWU3MTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgogI2luY2x1ZGUg
IlBvcHVwTWVudUNocm9taXVtLmgiCkBAIC02MDEsNiArNjAyLDQ4IEBAIHZvaWQgQ2hyb21lQ2xp
ZW50SW1wbDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2x0aXBUZXh0LCBUZXh0RGlyZWN0
aW9uIGRpcikKICAgICAgICAgdG9vbHRpcFRleHQsIHRleHREaXJlY3Rpb24pOwogfQogCit2b2lk
IENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNv
bnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJ
RVdQT1JUKQorICAgIGlmICghbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8
fCAhbV93ZWJWaWV3LT5jbGllbnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3M7CisgICAgaWYgKGFyZ3VtZW50cyA9
PSBhcmdzKQorICAgICAgICAvLyBEZWZhdWx0IHZpZXdwb3J0IGFyZ3VtZW50cyBwYXNzZWQgaW4u
IFRoaXMgaXMgYSBzaWduYWwgdG8gcmVzZXQgdGhlIHZpZXdwb3J0LgorICAgICAgICBhcmdzLndp
ZHRoID0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGVza3RvcFdpZHRoOworICAgIGVsc2UKKyAg
ICAgICAgYXJncyA9IGFyZ3VtZW50czsKKworICAgIC8vIEZJWE1FOiBTZXQgdG8gc2NyZWVuRHBp
KGZyYW1lVmlldykgb25jZSBEUEkgcGx1bWJpbmcgbGFuZHMuCisgICAgaW50IGRwaSA9IDkyOwor
ICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgV2Vi
UmVjdCBkZXZpY2VSZWN0ID0gY2xpZW50LT53aW5kb3dSZWN0KCk7CisgICAgLy8gSWYgdGhlIHdp
bmRvdyBzaXplIGhhcyBub3QgYmVlbiBzZXQgeWV0IGRvbid0IGF0dGVtcHQgdG8gc2V0IHRoZSB2
aWV3cG9ydAorICAgIGlmICghZGV2aWNlUmVjdC53aWR0aCB8fCAhZGV2aWNlUmVjdC5oZWlnaHQp
CisgICAgICAgIHJldHVybjsKKworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fd2ViVmlldy0+
cGFnZSgpLT5zZXR0aW5ncygpOworICAgIC8vIENhbGwgdGhlIGNvbW1vbiB2aWV3cG9ydCBjb21w
dXRpbmcgbG9naWMgaW4gVmlld3BvcnRBcmd1bWVudHMuY3BwLgorICAgIFZpZXdwb3J0QXR0cmli
dXRlcyBjb21wdXRlZCA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoCisgICAgICAgIGFyZ3Ms
IHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVJlY3Qud2lkdGgsIGRldmlj
ZVJlY3QuaGVpZ2h0LAorICAgICAgICBkcGksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2
aWNlUmVjdC5oZWlnaHQpKTsKKworICAgIGludCBsYXlvdXRXaWR0aCA9IGNvbXB1dGVkLmxheW91
dFNpemUud2lkdGgoKTsKKyAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29tcHV0ZWQubGF5b3V0U2l6
ZS5oZWlnaHQoKTsKKyAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShJbnRTaXplKGxh
eW91dFdpZHRoLCBsYXlvdXRIZWlnaHQpKTsKKworICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSB0
aGUgaW1wYWN0IHRoaXMgaGFzIG9uIGxheW91dC9yZW5kZXJpbmcgaWYgYW55LgorICAgIC8vIFRo
aXMgZXhwb3NlcyB0aGUgY29ycmVjdCBkZXZpY2Ugc2NhbGUgdG8gamF2YXNjcmlwdCBhbmQgbWVk
aWEgcXVlcmllcy4KKyAgICBtX3dlYlZpZXctPnNldERldmljZVNjYWxlRmFjdG9yKGNvbXB1dGVk
LmRldmljZVBpeGVsUmF0aW8pOworICAgIG1fd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGlt
aXRzKGNvbXB1dGVkLm1pbmltdW1TY2FsZSwgY29tcHV0ZWQubWF4aW11bVNjYWxlKTsKKyAgICBt
X3dlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvclByZXNlcnZpbmdTY3JvbGxPZmZzZXQoY29tcHV0
ZWQuaW5pdGlhbFNjYWxlICogY29tcHV0ZWQuZGV2aWNlUGl4ZWxSYXRpbyk7CisKKyAgICBjbGll
bnQtPmRpZFJlY2VpdmVWaWV3cG9ydChhcmd1bWVudHMuaW5pdGlhbFNjYWxlICE9IFZpZXdwb3J0
QXJndW1lbnRzOjpWYWx1ZUF1dG8pOworI2VuZGlmCit9CisKKwogdm9pZCBDaHJvbWVDbGllbnRJ
bXBsOjpwcmludChGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXgg
NzdmMjY0MWE0NDRkZjBjMGVjMDIzZDhjZTU2ZTFmYTlkMDQ5MTU1OC4uOWZhOTJlZmUwMWJmYmZk
NmYzZDg0MzlhMDYzYWUwMjVjZjVhOWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoCiAgICAgICAgIGNvbnN0IFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAgICAg
dmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmIHRvb2x0aXBUZXh0LCBX
ZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9y
dFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKAogICAgICAgICBXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117769</attachid>
            <date>2011-12-03 11:06:01 -0800</date>
            <delta_ts>2011-12-07 23:45:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73495-20111203140600.patch</filename>
            <type>text/plain</type>
            <size>13452</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Mzg4OTY0NzNmM2I3ODdlZTcyNmVhNWU4YTRlZDc5NjE3YWI5MWFjLi5kNjYzZGVlNWI0NGZmNmFj
ZjcyODhiMTcxZmVlMTRlOTg5ZTgwN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wMyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3cG9ydCBtZXRhdGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6
IEFkZGVkIEVOQUJMRShWSUVXUE9SVCkgZmxhZy4KKwogMjAxMS0xMi0wMSAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFSTXY3IG9ubHkgYWxsb3dzIGZvciBvbmUt
c2hvdCBwYXRjaGluZyBvZiBjb21wYWN0IG9mZnNldHMsIHdoaWxlIHRoZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDgyOTA3ODJjMmRlZjdiYzcxNDdhNWE2NzFjYjQ4MjY5MjBiN2I3YzYuLmFhNjMwZTMwZGIyZjJm
N2EyOGM3NGY2ZGExZmE4ZTdlNGViYjJjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMS0xMi0wMyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3cG9ydCBtZXRhdGFnCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAg
ICAgIFJlY29tcHV0ZSB2aWV3cG9ydCBwYXJhbWV0ZXJzIG9uIGZyYW1lIHJlY3QgcmVzaXplLgor
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpzZXRGcmFtZVJlY3QpOgorCiAyMDExLTEyLTAxICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEdldCByaWQgb2YgdGhlIHVudXNlZCBmdW5jdGlv
biBuYW1lRm9yQ3Vyc29yVHlwZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQxYzgx
NDQ5ZDRlZWE0ODJhYzU3OTU3MTNiNTU2NjcyOTA5NjM1MjYuLjE2MDBjODAyMjgwMmJkZGI5ODVm
N2IwZDEzNDFhMjNmYzA0ZDVlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMTEtMTItMDMgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgdmlld3BvcnQgbWV0YXRhZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0OTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wdXRlIHRoZSBhcHByb3By
aWF0ZSBmaXhlZCBsYXlvdXQgc2l6ZSwgcGFnZSwgYW5kIGRldmljZSBzY2FsZSBmYWN0b3JzLAor
ICAgICAgICBiYXNlZCBvbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcgcGFyYW1ldGVycy4KKworICAg
ICAgICBTZWUgaHR0cDovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9ndWlkZS93ZWJhcHBzL3Rhcmdl
dGluZy5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lw
aTogZGVmaW5lZCBFTkFCTEUoVklFV1BPUlQpIGZsYWcuCisgICAgICAgICogcHVibGljL1dlYlZp
ZXcuaDoKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudEltcGw6OmxheW91dFVwZGF0ZWQpOiAKKyAgICAgICAgSWYgdGhlIHBh
Z2UgZG9lcyBub3QgaGF2ZSBhIHZpZXdwb3J0IHRhZyBvciBpdCB3YXNuJ3Qgc2V0IHRvIGFuIGV4
cGxpY2l0IAorICAgICAgICB2YWx1ZSwgdGhlbiBzdHJldGNoIHRoZSBjb250ZW50IHRvIGZpdCB0
aGUgd2luZG93LgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZp
ZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSk6CisgICAgICAgIENvbXB1dGUgdGhlIGxheW91dCBz
aXplIGFuZCBzY2FsZSBmYWN0b3IgYmFzZWQgb24gdGhlIHZpZXdwb3J0IHRhZyBoZXJlLgorICAg
ICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6Y3JlYXRlRnJhbWVWaWV3KToK
KyAgICAgICAgU2J1ZnJhbWVzIHNob3VsZCBub3QgdXNlIGZpeGVkIGxheW91dAorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJW
aWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc1BhZ2VTY2FsZUZhY3Rv
clNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6b2JzZXJ2ZU5ld05hdmlnYXRpb24pOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICBSZXNldCBtX3BhZ2VTY2FsZUZh
Y3RvcklzU2V0IHNvIHRoYXQgd2Uga25vdyB3ZSBuZWVkIHRvIGNvbXB1dGUKKyAgICAgICAgdGhl
IGFwcHJvcHJhaXRlIHNjYWxpbmcgYWZ0ZXIgbGF5b3V0LgorCiAyMDExLTEyLTAxICBFbGxpb3Qg
UG9nZXIgIDxlcG9nZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICB3ZWJraXQtPmNocm9taXVtIERF
UFMgcm9sbCAxMTE1NzUtPjExMjQ2MwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmlu
ZGV4IGJlMGM2NGVkNjU3NzMyOWRhYjdjMjMxNGMzODA0NmEwM2RhNTkxNDguLmJkNDM1ODA4NDQy
Y2NmZjc3MTNiMDhjYzM3NGE0NDlmODUzM2QzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKQEAgLTg1Nyw2ICs4NTcsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0dFU1RVUkVfUkVD
T0dOSVpFUiAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXUE9SVCkKKyNkZWZp
bmUgRU5BQkxFX1ZJRVdQT1JUIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX05PVElG
SUNBVElPTlMpCiAjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDlhNmZkNzRmODkwNWQyMTNhOGU0NzE1ZGJhZjc4MGU1
ZmM5OTFmY2MuLmUyMjVjMzhmZmM4MmE3ZDlkMzNkZTFlY2QwMjMyNjBlOWJjZGM5NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTQwMiw2ICs0MDIsMTYgQEAgdm9pZCBGcmFtZVZp
ZXc6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQogICAgIGlmIChuZXdSZWN0
ID09IG9sZFJlY3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShWSUVXUE9SVCkKKyAg
ICBpZiAodXNlRml4ZWRMYXlvdXQoKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydCA9
IGRvY3VtZW50LT52aWV3cG9ydEFyZ3VtZW50cygpOworICAgICAgICBQYWdlKiBwYWdlID0gZnJh
bWUoKSA/IGZyYW1lKCktPnBhZ2UoKSA6IDA7CisgICAgICAgIGlmIChwYWdlKQorICAgICAgICAg
ICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0Rp
ZENoYW5nZSh2aWV3cG9ydCk7CisgICAgfQorI2VuZGlmCisKICAgICBTY3JvbGxWaWV3OjpzZXRG
cmFtZVJlY3QobmV3UmVjdCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggZTA4ZjY1YTVjMmRjOWM3Yzc0ZjYz
Y2Q2OTYwYzI5OGI0MTA4MzFmNC4uN2M1OGVjMzkyZDU4OGVmOTYyMjVmOGI0MDhhOWFmNTY4NDgx
MWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtOTAsNiArOTAsNyBA
QAogICAgICAgJ0VOQUJMRV9WOF9TQ1JJUFRfREVCVUdfU0VSVkVSPTEnLAogICAgICAgJ0VOQUJM
RV9WSURFTz0xJywKICAgICAgICdFTkFCTEVfVklERU9fVFJBQ0s9MScsCisgICAgICAnRU5BQkxF
X1ZJRVdQT1JUPTwoZW5hYmxlX3ZpZXdwb3J0KScsCiAgICAgICAnRU5BQkxFX1dFQkdMPTEnLAog
ICAgICAgJ0VOQUJMRV9XRUJfU09DS0VUUz0xJywKICAgICAgICdFTkFCTEVfV0VCX1RJTUlORz0x
JywKQEAgLTExMiw2ICsxMTMsNyBAQAogICAgICAgJ3VzZV9hY2NlbGVyYXRlZF9jb21wb3NpdGlu
ZyUnOiAxLAogICAgICAgJ2VuYWJsZV9za2lhX3RleHQlJzogMCwKICAgICAgICdlbmFibGVfc3Zn
JSc6IDEsCisgICAgICAnZW5hYmxlX3ZpZXdwb3J0JSc6IDAsCiAgICAgICAnZW5hYmxlX3RvdWNo
X2V2ZW50cyUnOiAxLAogICAgICAgJ3VzZV9za2lhJSc6IDAsCiAgICAgICAnZW5hYmxlX3RvdWNo
X2ljb25fbG9hZGluZyUnIDogMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcu
aAppbmRleCA0MTAyODBmMThkOTA1NWEzMmQ1YmY1M2NiNGExZTdjMzQyZmI3ZDQ1Li5jMjA4YmUw
MTBmYjMwOGFjMjA0MWU1OGU2NzM5MDRlYzI3ODk2MTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yMTMsNiArMjEzLDEwIEBAIHB1YmxpYzoKICAgICAvLyBp
cyBzY2FsZWQgdXAsIDwgMS4wIGlzIHNjYWxlZCBkb3duLgogICAgIHZpcnR1YWwgZmxvYXQgcGFn
ZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwogCisgICAgLy8gSW5kaWNhdGVzIHdlaHRoZXIgdGhl
IHBhZ2Ugc2NhbGUgZmFjdG9yIGhhcyBiZWVuIHNldCBzaW5jZSBuYXZpZ2F0aW5nCisgICAgLy8g
dG8gYSBuZXcgcGFnZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlU2NhbGVGYWN0b3JTZXQoKSBj
b25zdCA9IDA7CisKICAgICAvLyBTY2FsZXMgdGhlIHBhZ2UgYW5kIHRoZSBzY3JvbGwgb2Zmc2V0
IGJ5IGEgZ2l2ZW4gZmFjdG9yLCB3aGlsZSBlbnN1cmluZwogICAgIC8vIHRoYXQgdGhlIG5ldyBz
Y3JvbGwgcG9zaXRpb24gZG9lcyBub3QgZ28gYmV5b25kIHRoZSBlZGdlIG9mIHRoZSBwYWdlLgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0
KGZsb2F0KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCmluZGV4IDE2MTI4MzI1NmJlMDk5MDdkNmNmOWI2NzAzM2UyZDM5Y2IwNmMxYmIu
LmRlZmE4MDRjOTU5YmYyNzk2ZDQ2OGU3NTRhNDg2Y2NmMDM1M2E3ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgogI2luY2x1ZGUg
IlBvcHVwTWVudUNocm9taXVtLmgiCkBAIC01NTcsNiArNTU4LDEyIEBAIHZvaWQgQ2hyb21lQ2xp
ZW50SW1wbDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUm
IHNpemUpIGNvCiAKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6bGF5b3V0VXBkYXRlZChGcmFtZSog
ZnJhbWUpIGNvbnN0CiB7CisjaWYgRU5BQkxFKFZJRVdQT1JUKQorICAgIGlmICghbV93ZWJWaWV3
LT5pc1BhZ2VTY2FsZUZhY3RvclNldCgpICYmIGZyYW1lID09IGZyYW1lLT5wYWdlKCktPm1haW5G
cmFtZSgpKSB7CisgICAgICAgIFZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0ID0gZnJhbWUtPmRv
Y3VtZW50KCktPnZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAgICAgIGRpc3BhdGNoVmlld3BvcnRQ
cm9wZXJ0aWVzRGlkQ2hhbmdlKHZpZXdwb3J0KTsKKyAgICB9CisjZW5kaWYKICAgICBtX3dlYlZp
ZXctPmxheW91dFVwZGF0ZWQoV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZnJhbWUpKTsKIH0KIApA
QCAtNjAxLDYgKzYwOCw0NiBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnNldFRvb2xUaXAoY29u
c3QgU3RyaW5nJiB0b29sdGlwVGV4dCwgVGV4dERpcmVjdGlvbiBkaXIpCiAgICAgICAgIHRvb2x0
aXBUZXh0LCB0ZXh0RGlyZWN0aW9uKTsKIH0KIAordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNw
YXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYg
YXJndW1lbnRzKSBjb25zdAoreworI2lmIEVOQUJMRShWSUVXUE9SVCkKKyAgICBpZiAoIW1fd2Vi
Vmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkg
fHwgIW1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWaWV3cG9ydEFy
Z3VtZW50cyBhcmdzOworICAgIGlmIChhcmd1bWVudHMgPT0gYXJncykKKyAgICAgICAgLy8gRGVm
YXVsdCB2aWV3cG9ydCBhcmd1bWVudHMgcGFzc2VkIGluLiBUaGlzIGlzIGEgc2lnbmFsIHRvIHJl
c2V0IHRoZSB2aWV3cG9ydC4KKyAgICAgICAgYXJncy53aWR0aCA9IFZpZXdwb3J0QXJndW1lbnRz
OjpWYWx1ZURlc2t0b3BXaWR0aDsKKyAgICBlbHNlCisgICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7
CisKKyAgICAvLyBGSVhNRTogU2V0IHRvIHNjcmVlbkRwaShmcmFtZVZpZXcpIG9uY2UgRFBJIHBs
dW1iaW5nIGxhbmRzLgorICAgIGludCBkcGkgPSA5MjsKKyAgICBXZWJWaWV3Q2xpZW50KiBjbGll
bnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIFdlYlJlY3QgZGV2aWNlUmVjdCA9IGNsaWVu
dC0+d2luZG93UmVjdCgpOworICAgIC8vIElmIHRoZSB3aW5kb3cgc2l6ZSBoYXMgbm90IGJlZW4g
c2V0IHlldCBkb24ndCBhdHRlbXB0IHRvIHNldCB0aGUgdmlld3BvcnQKKyAgICBpZiAoIWRldmlj
ZVJlY3Qud2lkdGggfHwgIWRldmljZVJlY3QuaGVpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKTsKKyAg
ICAvLyBDYWxsIHRoZSBjb21tb24gdmlld3BvcnQgY29tcHV0aW5nIGxvZ2ljIGluIFZpZXdwb3J0
QXJndW1lbnRzLmNwcC4KKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZWQgPSBjb21wdXRl
Vmlld3BvcnRBdHRyaWJ1dGVzKAorICAgICAgICBhcmdzLCBzZXR0aW5ncy0+bGF5b3V0RmFsbGJh
Y2tXaWR0aCgpLCBkZXZpY2VSZWN0LndpZHRoLCBkZXZpY2VSZWN0LmhlaWdodCwKKyAgICAgICAg
ZHBpLCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJlY3QuaGVpZ2h0KSk7CisKKyAg
ICBpbnQgbGF5b3V0V2lkdGggPSBjb21wdXRlZC5sYXlvdXRTaXplLndpZHRoKCk7CisgICAgaW50
IGxheW91dEhlaWdodCA9IGNvbXB1dGVkLmxheW91dFNpemUuaGVpZ2h0KCk7CisgICAgbV93ZWJW
aWV3LT5zZXRGaXhlZExheW91dFNpemUoSW50U2l6ZShsYXlvdXRXaWR0aCwgbGF5b3V0SGVpZ2h0
KSk7CisKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgdGhlIGltcGFjdCB0aGlzIGhhcyBvbiBs
YXlvdXQvcmVuZGVyaW5nIGlmIGFueS4KKyAgICAvLyBUaGlzIGV4cG9zZXMgdGhlIGNvcnJlY3Qg
ZGV2aWNlIHNjYWxlIHRvIGphdmFzY3JpcHQgYW5kIG1lZGlhIHF1ZXJpZXMuCisgICAgbV93ZWJW
aWV3LT5zZXREZXZpY2VTY2FsZUZhY3Rvcihjb21wdXRlZC5kZXZpY2VQaXhlbFJhdGlvKTsKKyAg
ICBtX3dlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhjb21wdXRlZC5taW5pbXVtU2Nh
bGUsIGNvbXB1dGVkLm1heGltdW1TY2FsZSk7CisgICAgbV93ZWJWaWV3LT5zZXRQYWdlU2NhbGVG
YWN0b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0KGNvbXB1dGVkLmluaXRpYWxTY2FsZSAqIGNvbXB1
dGVkLmRldmljZVBpeGVsUmF0aW8pOworI2VuZGlmCit9CisKKwogdm9pZCBDaHJvbWVDbGllbnRJ
bXBsOjpwcmludChGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXgg
NzdmMjY0MWE0NDRkZjBjMGVjMDIzZDhjZTU2ZTFmYTlkMDQ5MTU1OC4uOWZhOTJlZmUwMWJmYmZk
NmYzZDg0MzlhMDYzYWUwMjVjZjVhOWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoCiAgICAgICAgIGNvbnN0IFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAgICAg
dmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmIHRvb2x0aXBUZXh0LCBX
ZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9y
dFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKAogICAgICAgICBXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggNzUxZDJjYjYyNDUzN2FmYmIxZGQ1Yjc3NDdh
NTA5MjlkODE2NDM5ZC4uMTdlYzE1ODMzYzI1MWQwZDkxOTczYzBjMTZjNjY0OWI5Yjg1ZTc0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0yMDgy
LDcgKzIwODIsOCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6Y3JlYXRlRnJhbWVWaWV3KCkKICAgICBB
U1NFUlQobV9mcmFtZSk7IC8vIElmIG1fZnJhbWUgZG9lc24ndCBleGlzdCwgd2UgcHJvYmFibHkg
ZGlkbid0IGluaXQgcHJvcGVybHkuCiAKICAgICBXZWJWaWV3SW1wbCogd2ViVmlldyA9IHZpZXdJ
bXBsKCk7Ci0gICAgbV9mcmFtZS0+Y3JlYXRlVmlldyh3ZWJWaWV3LT5zaXplKCksIENvbG9yOjp3
aGl0ZSwgd2ViVmlldy0+aXNUcmFuc3BhcmVudCgpLCAgd2ViVmlldy0+Zml4ZWRMYXlvdXRTaXpl
KCksIHdlYlZpZXctPmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpKTsKKyAgICBib29sIGlzTWFp
bkZyYW1lID0gd2ViVmlldy0+bWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpID09IG1fZnJhbWU7Cisg
ICAgbV9mcmFtZS0+Y3JlYXRlVmlldyh3ZWJWaWV3LT5zaXplKCksIENvbG9yOjp3aGl0ZSwgd2Vi
Vmlldy0+aXNUcmFuc3BhcmVudCgpLCB3ZWJWaWV3LT5maXhlZExheW91dFNpemUoKSwgaXNNYWlu
RnJhbWUgPyB3ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSA6IDApOwogCiAjaWYg
RU5BQkxFKEdFU1RVUkVfUkVDT0dOSVpFUikKICAgICB3ZWJWaWV3LT5yZXNldEdlc3R1cmVSZWNv
Z25pemVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5k
ZXggYmE0MDNlYjI2ZDM0ZjE2ZGUzNDU4ZTNlNjU0NTYzNmI5ZGRkMmRkMS4uMTFkMDE2MWQzNWI0
NjlkNGYwY2M3M2E1NzIwMTY4MzJiNzFiMjUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzQzLDYgKzM0Myw3IEBAIFdlYlZpZXdJbXBsOjpXZWJW
aWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX21heGltdW1ab29tTGV2ZWwo
em9vbUZhY3RvclRvWm9vbUxldmVsKG1heFRleHRTaXplTXVsdGlwbGllcikpCiAgICAgLCBtX21p
bmltdW1QYWdlU2NhbGVGYWN0b3IobWluUGFnZVNjYWxlRmFjdG9yKQogICAgICwgbV9tYXhpbXVt
UGFnZVNjYWxlRmFjdG9yKG1heFBhZ2VTY2FsZUZhY3RvcikKKyAgICAsIG1fcGFnZVNjYWxlRmFj
dG9ySXNTZXQoZmFsc2UpCiAgICAgLCBtX2NvbnRleHRNZW51QWxsb3dlZChmYWxzZSkKICAgICAs
IG1fZG9pbmdEcmFnQW5kRHJvcChmYWxzZSkKICAgICAsIG1faWdub3JlSW5wdXRFdmVudHMoZmFs
c2UpCkBAIC0xOTUyLDYgKzE5NTMsMTEgQEAgZmxvYXQgV2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZh
Y3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAK
K2Jvb2wgV2ViVmlld0ltcGw6OmlzUGFnZVNjYWxlRmFjdG9yU2V0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3JJc1NldDsKK30KKwogZmxvYXQgV2ViVmlld0ltcGw6OmNv
bXB1dGVQYWdlU2NhbGVGYWN0b3JXaXRoaW5MaW1pdHMoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAg
ICAgcmV0dXJuIG1pbihtYXgoc2NhbGVGYWN0b3IsIG1fbWluaW11bVBhZ2VTY2FsZUZhY3Rvciks
IG1fbWF4aW11bVBhZ2VTY2FsZUZhY3Rvcik7CkBAIC0yMDAwLDYgKzIwMDYsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IFdl
YlBvaW50JiBvcmlnaW4pCiAgICAgc2NhbGVGYWN0b3IgPSBjb21wdXRlUGFnZVNjYWxlRmFjdG9y
V2l0aGluTGltaXRzKHNjYWxlRmFjdG9yKTsKICAgICBXZWJQb2ludCBjbGFtcGVkT3JpZ2luID0g
Y2xhbXBPZmZzZXRBdFNjYWxlKG9yaWdpbiwgc2NhbGVGYWN0b3IpOwogICAgIHBhZ2UoKS0+c2V0
UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBjbGFtcGVkT3JpZ2luKTsKKyAgICBtX3BhZ2VT
Y2FsZUZhY3RvcklzU2V0ID0gdHJ1ZTsKIH0KIAogZmxvYXQgV2ViVmlld0ltcGw6OmRldmljZVNj
YWxlRmFjdG9yKCkgY29uc3QKQEAgLTI1OTksNiArMjYwNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAogdm9pZCBXZWJWaWV3
SW1wbDo6b2JzZXJ2ZU5ld05hdmlnYXRpb24oKQogewogICAgIG1fb2JzZXJ2ZWROZXdOYXZpZ2F0
aW9uID0gdHJ1ZTsKKyAgICBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0ID0gZmFsc2U7CiAjaWZuZGVm
IE5ERUJVRwogICAgIG1fbmV3TmF2aWdhdGlvbkxvYWRlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkt
PmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA3YzJkZDFlNDg0NzhiZDU5NTAxY2Q1OGI5ODk4MzJk
MmNmNDA5ZTdlLi5lZWE1MjdkYzY4NGUyZmJkOGY0OTkyYjgxNTAxZGRmN2UxMjNiYWYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTE2NCw2ICsxNjQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5p
bXVtWm9vbUxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUg
bWF4aW11bVpvb21MZXZlbCk7CiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlU2NhbGVGYWN0b3JTZXQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yUHJlc2VydmluZ1Njcm9sbE9mZnNldChm
bG9hdCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZh
Y3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VT
Y2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSk7
CkBAIC01NDAsNiArNTQxLDggQEAgcHJpdmF0ZToKIAogICAgIGZsb2F0IG1fbWF4aW11bVBhZ2VT
Y2FsZUZhY3RvcjsKIAorICAgIGJvb2wgbV9wYWdlU2NhbGVGYWN0b3JJc1NldDsKKwogICAgIGJv
b2wgbV9jb250ZXh0TWVudUFsbG93ZWQ7CiAKICAgICBib29sIG1fZG9pbmdEcmFnQW5kRHJvcDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118339</attachid>
            <date>2011-12-07 23:45:56 -0800</date>
            <delta_ts>2011-12-08 19:08:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73495-20111208024554.patch</filename>
            <type>text/plain</type>
            <size>13292</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YjkwMDE4ODNlYTFiZjU3OTE5MWMwYzIwMWIzMjY4ZGM2NGNkY2IxLi45NzZiZGJjZGJmMGEwMzhl
NTQ3ZWJkOGM5MTFjZDUwNDliYWUxZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3cG9ydCBtZXRhdGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6
IEFkZGVkIEVOQUJMRShWSUVXUE9SVCkgdGFnLgorCiAyMDExLTEyLTA3ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIENTRSBzaG91bGQga25vdyB0aGF0IENo
ZWNrRnVuY3Rpb24gaXMgcHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNlNmM3ZDA4MTRmODk1NmZhNzFkMzk4
YzJlYWQ2YWJmOGY5NDdlZTAuLmUzYjE3MjkyYTRlNTUwMDMzNWI5NzViNDIwODFlMzliMWZjM2Uy
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMi0wNyAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3
cG9ydCBtZXRhdGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MzQ5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlY29tcHV0ZSB2aWV3cG90IHBhcmFtZXRlcnMgb24gZnJhbWUgcmVjdCByZXNpemUuCisK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnNldEZyYW1lUmVjdCk6CisKIDIwMTEtMTItMDcgIFhpbmduYW4gV2FuZyAgPHhpbmduYW4u
d2FuZ0BpbnRlbC5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBTU0Ugb3B0aW1pemF0aW9u
IGluIFNpbmNSZXNhbXBsZXI6OnByb2Nlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA1NjliYmI4NzZhZjJjMjhmNGI2YzA4ZDZiNWQ5MTBjZTY1NjdkZGRkLi42NGJmYTdkODRkZmQz
Nzk2ODQyY2NlMTdjMzI4NjExNjI1MWJlYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMxIEBACisyMDExLTEyLTA3ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gRW5hYmxlIHZpZXdwb3J0IG1ldGF0YWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29tcHV0ZSB0aGUg
YXBwcm9wcmlhdGUgZml4ZWQgbGF5b3V0IHNpemUsIHBhZ2UsIGFuZCBkZXZpY2Ugc2NhbGUgZmFj
dG9ycywKKyAgICAgICAgYmFzZWQgb24gdGhlIHZpZXdwb3J0IG1ldGEgdGFnIHBhcmFtZXRlcnMu
CisKKyAgICAgICAgU2VlIGh0dHA6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vZ3VpZGUvd2ViYXBw
cy90YXJnZXRpbmcuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKworCisgICAgICAgICogZmVh
dHVyZXMuZ3lwaToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHNyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6
bGF5b3V0VXBkYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmRpc3Bh
dGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OmNyZWF0ZUZyYW1lVmlldyk6CisgICAgICAgICogc3JjL1dlYlZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzUGFnZVNjYWxlRmFjdG9yU2V0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpvYnNlcnZlTmV3TmF2aWdhdGlvbik6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTEtMTItMDcgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlh
c0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIHBhZ2Utc2NhbGUgYW5pbWF0
aW9uIHN1cHBvcnQgdG8gSW1wbCB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAppbmRleCBlODZmODIwYzY5ODU4YTQzN2FkMDMwMjA4MzE4YzVhZTUyOTI1NjU3Li43MmJmMjNi
YjZjZWI1ZDJiY2Q5ZmQ2MjQ4NjY4MDUyOTFjMzIzMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9QbGF0Zm9ybS5oCkBAIC04NTcsNiArODU3LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9HRVNUVVJF
X1JFQ09HTklaRVIgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfVklFV1BPUlQpCisj
ZGVmaW5lIEVOQUJMRV9WSUVXUE9SVCAwCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9O
T1RJRklDQVRJT05TKQogI2RlZmluZSBFTkFCTEVfTk9USUZJQ0FUSU9OUyAwCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA4NzZlYTEwOTVkYTk2ZjBhZjkyNmQ5MmM4YmM2
ZmE5NWNlNTVjM2Y4Li4zMTlmYWM4ZDRjZmJkMDA1ZTFlMjFkZjBlMTVlMjhiNGRmODhkYjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00MDUsNiArNDA1LDE2IEBAIHZvaWQgRnJh
bWVWaWV3OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgbmV3UmVjdCkKICAgICBpZiAobmV3
UmVjdCA9PSBvbGRSZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoVklFV1BPUlQp
CisgICAgaWYgKHVzZUZpeGVkTGF5b3V0KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgVmlld3BvcnRBcmd1bWVudHMgdmlld3Bv
cnQgPSBkb2N1bWVudC0+dmlld3BvcnRBcmd1bWVudHMoKTsKKyAgICAgICAgUGFnZSogcGFnZSA9
IGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAwOworICAgICAgICBpZiAocGFnZSkKKyAgICAg
ICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRp
ZXNEaWRDaGFuZ2Uodmlld3BvcnQpOworICAgIH0KKyNlbmRpZgorCiAgICAgU2Nyb2xsVmlldzo6
c2V0RnJhbWVSZWN0KG5ld1JlY3QpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDUwNzNkNDM0YzE5NDQxNTU4
NzgxNGE2MTE5OGZhN2M5MDU2NGUyMDYuLjZmZGFhMGU0Mjg3NDM1NTQyODRiMDQwOTAwMmVmOTE3
MTQ0Y2Y2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTkwLDYgKzkw
LDcgQEAKICAgICAgICdFTkFCTEVfVjhfU0NSSVBUX0RFQlVHX1NFUlZFUj0xJywKICAgICAgICdF
TkFCTEVfVklERU89MScsCiAgICAgICAnRU5BQkxFX1ZJREVPX1RSQUNLPTEnLAorICAgICAgJ0VO
QUJMRV9WSUVXUE9SVD08KGVuYWJsZV92aWV3cG9ydCknLAogICAgICAgJ0VOQUJMRV9XRUJHTD0x
JywKICAgICAgICdFTkFCTEVfV0VCX1NPQ0tFVFM9MScsCiAgICAgICAnRU5BQkxFX1dFQl9USU1J
Tkc9MScsCkBAIC0xMTIsNiArMTEzLDcgQEAKICAgICAgICd1c2VfYWNjZWxlcmF0ZWRfY29tcG9z
aXRpbmclJzogMSwKICAgICAgICdlbmFibGVfc2tpYV90ZXh0JSc6IDAsCiAgICAgICAnZW5hYmxl
X3N2ZyUnOiAxLAorICAgICAgJ2VuYWJsZV92aWV3cG9ydCUnOiAwLAogICAgICAgJ2VuYWJsZV90
b3VjaF9ldmVudHMlJzogMSwKICAgICAgICd1c2Vfc2tpYSUnOiAwLAogICAgICAgJ2VuYWJsZV90
b3VjaF9pY29uX2xvYWRpbmclJyA6IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3LmgKaW5kZXggODU5NzU3Zjk5N2U1NGU3YTQ2ODFmOGVmOGEwNzA4NDhkMzVkMjZhNC4uMDEy
NjI0M2M3MTAxYWRmOTJmNDhhZWQxMmJjODE2NGEyOTEzYTVkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjE0LDYgKzIxNCwxMCBAQCBwdWJsaWM6CiAgICAg
Ly8gaXMgc2NhbGVkIHVwLCA8IDEuMCBpcyBzY2FsZWQgZG93bi4KICAgICB2aXJ0dWFsIGZsb2F0
IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0ID0gMDsKIAorICAgIC8vIEluZGljYXRlcyB3ZWh0aGVy
IHRoZSBwYWdlIHNjYWxlIGZhY3RvciBoYXMgYmVlbiBzZXQgc2luY2UgbmF2aWdhdGluZworICAg
IC8vIHRvIGEgbmV3IHBhZ2UuCisgICAgdmlydHVhbCBib29sIGlzUGFnZVNjYWxlRmFjdG9yU2V0
KCkgY29uc3QgPSAwOworCiAgICAgLy8gU2NhbGVzIHRoZSBwYWdlIGFuZCB0aGUgc2Nyb2xsIG9m
ZnNldCBieSBhIGdpdmVuIGZhY3Rvciwgd2hpbGUgZW5zdXJpbmcKICAgICAvLyB0aGF0IHRoZSBu
ZXcgc2Nyb2xsIHBvc2l0aW9uIGRvZXMgbm90IGdvIGJleW9uZCB0aGUgZWRnZSBvZiB0aGUgcGFn
ZS4KICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yUHJlc2VydmluZ1Njcm9sbE9m
ZnNldChmbG9hdCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcAppbmRleCA0NWZjODI1MDM2NDllNjgyMjIxMTgwMmI3YjFjYzQzOWQyN2E3
ODdjLi5jOGIyNTY3ZjNkZjU1ZjM1MjBkNzhmMDE5N2I5NmU4ZWMzZDA3NjYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTUsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRlICJOb2RlLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIKICNpbmNs
dWRlICJQb3B1cE1lbnVDaHJvbWl1bS5oIgpAQCAtNTU5LDYgKzU2MCwxNSBAQCB2b2lkIENocm9t
ZUNsaWVudEltcGw6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRT
aXplJiBzaXplKSBjbwogCiB2b2lkIENocm9tZUNsaWVudEltcGw6OmxheW91dFVwZGF0ZWQoRnJh
bWUqIGZyYW1lKSBjb25zdAogeworI2lmIEVOQUJMRShWSUVXUE9SVCkKKyAgICBpZiAoIW1fd2Vi
Vmlldy0+aXNQYWdlU2NhbGVGYWN0b3JTZXQoKSAmJiBmcmFtZSA9PSBmcmFtZS0+cGFnZSgpLT5t
YWluRnJhbWUoKSkgeworICAgICAgICAvLyBJZiB0aGUgcGFnZSBkb2VzIG5vdCBoYXZlIGEgdmll
d3BvcnQgdGFnLCB0aGVuIGNvbXB1dGUgYSBzY2FsZQorICAgICAgICAvLyBmYWN0b3IgdG8gbWFr
ZSB0aGUgcGFnZSB3aWR0aCBmaXQgdGhlIGRldmljZSB3aWR0aCBiYXNlZCBvbiB0aGUKKyAgICAg
ICAgLy8gZGVmYXVsdCB2aWV3cG9ydCBwYXJhbWV0ZXJzLgorICAgICAgICBWaWV3cG9ydEFyZ3Vt
ZW50cyB2aWV3cG9ydCA9IGZyYW1lLT5kb2N1bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygpOwor
ICAgICAgICBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSh2aWV3cG9ydCk7Cisg
ICAgfQorI2VuZGlmCiAgICAgbV93ZWJWaWV3LT5sYXlvdXRVcGRhdGVkKFdlYkZyYW1lSW1wbDo6
ZnJvbUZyYW1lKGZyYW1lKSk7CiB9CiAKQEAgLTYwMyw2ICs2MTMsNDcgQEAgdm9pZCBDaHJvbWVD
bGllbnRJbXBsOjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbHRpcFRleHQsIFRleHREaXJl
Y3Rpb24gZGlyKQogICAgICAgICB0b29sdGlwVGV4dCwgdGV4dERpcmVjdGlvbik7CiB9CiAKK3Zv
aWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykgY29uc3QKK3sKKyNpZiBFTkFCTEUo
VklFV1BPUlQpCisgICAgaWYgKCFtX3dlYlZpZXctPmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgp
IHx8ICFtX3dlYlZpZXctPmNsaWVudCgpIHx8ICFtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgVmlld3BvcnRBcmd1bWVudHMgYXJnczsKKyAgICBpZiAoYXJndW1lbnRz
ID09IGFyZ3MpCisgICAgICAgIC8vIERlZmF1bHQgdmlld3BvcnQgYXJndW1lbnRzIHBhc3NlZCBp
bi4gVGhpcyBpcyBhIHNpZ25hbCB0byByZXNldCB0aGUgdmlld3BvcnQuCisgICAgICAgIGFyZ3Mu
d2lkdGggPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXNrdG9wV2lkdGg7CisgICAgZWxzZQor
ICAgICAgICBhcmdzID0gYXJndW1lbnRzOworCisgICAgCisgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBtX3dlYlZpZXctPm1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCk7CisgICAgaW50IGRw
aSA9IHNjcmVlbkhvcml6b250YWxEUEkoZnJhbWVWaWV3KTsKKyAgICBXZWJWaWV3Q2xpZW50KiBj
bGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIFdlYlJlY3QgZGV2aWNlUmVjdCA9IGNs
aWVudC0+d2luZG93UmVjdCgpOworICAgIC8vIElmIHRoZSB3aW5kb3cgc2l6ZSBoYXMgbm90IGJl
ZW4gc2V0IHlldCBkb24ndCBhdHRlbXB0IHRvIHNldCB0aGUgdmlld3BvcnQKKyAgICBpZiAoIWRl
dmljZVJlY3Qud2lkdGggfHwgIWRldmljZVJlY3QuaGVpZ2h0KQorICAgICAgICByZXR1cm47CisK
KyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKTsK
KyAgICAvLyBDYWxsIHRoZSBjb21tb24gdmlld3BvcnQgY29tcHV0aW5nIGxvZ2ljIGluIFZpZXdw
b3J0QXJndW1lbnRzLmNwcC4KKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZWQgPSBjb21w
dXRlVmlld3BvcnRBdHRyaWJ1dGVzKAorICAgICAgICBhcmdzLCBzZXR0aW5ncy0+bGF5b3V0RmFs
bGJhY2tXaWR0aCgpLCBkZXZpY2VSZWN0LndpZHRoLCBkZXZpY2VSZWN0LmhlaWdodCwKKyAgICAg
ICAgZHBpLCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJlY3QuaGVpZ2h0KSk7CisK
KyAgICBpbnQgbGF5b3V0V2lkdGggPSBjb21wdXRlZC5sYXlvdXRTaXplLndpZHRoKCk7CisgICAg
aW50IGxheW91dEhlaWdodCA9IGNvbXB1dGVkLmxheW91dFNpemUuaGVpZ2h0KCk7CisgICAgbV93
ZWJWaWV3LT5zZXRGaXhlZExheW91dFNpemUoSW50U2l6ZShsYXlvdXRXaWR0aCwgbGF5b3V0SGVp
Z2h0KSk7CisKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgdGhlIGltcGFjdCB0aGlzIGhhcyBv
biBsYXlvdXQvcmVuZGVyaW5nIGlmIGFueS4KKyAgICAvLyBUaGlzIGV4cG9zZXMgdGhlIGNvcnJl
Y3QgZGV2aWNlIHNjYWxlIHRvIGphdmFzY3JpcHQgYW5kIG1lZGlhIHF1ZXJpZXMuCisgICAgbV93
ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZhY3Rvcihjb21wdXRlZC5kZXZpY2VQaXhlbFJhdGlvKTsK
KyAgICBtX3dlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhjb21wdXRlZC5taW5pbXVt
U2NhbGUsIGNvbXB1dGVkLm1heGltdW1TY2FsZSk7CisgICAgbV93ZWJWaWV3LT5zZXRQYWdlU2Nh
bGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0KGNvbXB1dGVkLmluaXRpYWxTY2FsZSAqIGNv
bXB1dGVkLmRldmljZVBpeGVsUmF0aW8pOworI2VuZGlmCit9CisKKwogdm9pZCBDaHJvbWVDbGll
bnRJbXBsOjpwcmludChGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5k
ZXggNzdmMjY0MWE0NDRkZjBjMGVjMDIzZDhjZTU2ZTFmYTlkMDQ5MTU1OC4uOWZhOTJlZmUwMWJm
YmZkNmYzZDg0MzlhMDYzYWUwMjVjZjVhOWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoCiAgICAgICAgIGNvbnN0IFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmIHRvb2x0aXBUZXh0
LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3
cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMm
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKAogICAgICAgICBXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZjMwNDAyY2ZlNTliYTEyMGZhMzUyYmM2
NjEyNDhlODFlYjMyMjBmMS4uM2EyYmNhN2I3NTAwM2QxMTJmNzA3OGQ0OGI5NzBlOTE5NTRhMGRl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0y
MDg4LDcgKzIwODgsOCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6Y3JlYXRlRnJhbWVWaWV3KCkKICAg
ICBBU1NFUlQobV9mcmFtZSk7IC8vIElmIG1fZnJhbWUgZG9lc24ndCBleGlzdCwgd2UgcHJvYmFi
bHkgZGlkbid0IGluaXQgcHJvcGVybHkuCiAKICAgICBXZWJWaWV3SW1wbCogd2ViVmlldyA9IHZp
ZXdJbXBsKCk7Ci0gICAgbV9mcmFtZS0+Y3JlYXRlVmlldyh3ZWJWaWV3LT5zaXplKCksIENvbG9y
Ojp3aGl0ZSwgd2ViVmlldy0+aXNUcmFuc3BhcmVudCgpLCAgd2ViVmlldy0+Zml4ZWRMYXlvdXRT
aXplKCksIHdlYlZpZXctPmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpKTsKKyAgICBib29sIGlz
TWFpbkZyYW1lID0gd2ViVmlldy0+bWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpID09IG1fZnJhbWU7
CisgICAgbV9mcmFtZS0+Y3JlYXRlVmlldyh3ZWJWaWV3LT5zaXplKCksIENvbG9yOjp3aGl0ZSwg
d2ViVmlldy0+aXNUcmFuc3BhcmVudCgpLCAgd2ViVmlldy0+Zml4ZWRMYXlvdXRTaXplKCksIGlz
TWFpbkZyYW1lID8gd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgOiAwKTsKICAg
ICBpZiAod2ViVmlldy0+c2hvdWxkQXV0b1Jlc2l6ZSgpKQogICAgICAgICBtX2ZyYW1lLT52aWV3
KCktPmVuYWJsZUF1dG9TaXplTW9kZSh0cnVlLCB3ZWJWaWV3LT5taW5BdXRvU2l6ZSgpLCB3ZWJW
aWV3LT5tYXhBdXRvU2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IDJlMzlmY2U0MGQyYWY4NjMwZTg5MzEwNzc3Yjc5ZDM1MDZiM2U1OTUu
LjEyMWM1OGM3NGM5NDVkMTkyYzUyNzQ5NzUzZjAxOGNhYjdiMWE0YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM0Nyw2ICszNDcsNyBAQCBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogICAgICwgbV9wYWdl
RGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IoLTEpCiAgICAgLCBtX21pbmltdW1QYWdlU2Nh
bGVGYWN0b3IobWluUGFnZVNjYWxlRmFjdG9yKQogICAgICwgbV9tYXhpbXVtUGFnZVNjYWxlRmFj
dG9yKG1heFBhZ2VTY2FsZUZhY3RvcikKKyAgICAsIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQoZmFs
c2UpCiAgICAgLCBtX2NvbnRleHRNZW51QWxsb3dlZChmYWxzZSkKICAgICAsIG1fZG9pbmdEcmFn
QW5kRHJvcChmYWxzZSkKICAgICAsIG1faWdub3JlSW5wdXRFdmVudHMoZmFsc2UpCkBAIC0xOTU1
LDYgKzE5NTYsMTEgQEAgZmxvYXQgV2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0
CiAgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKK2Jvb2wgV2ViVmll
d0ltcGw6OmlzUGFnZVNjYWxlRmFjdG9yU2V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdl
U2NhbGVGYWN0b3JJc1NldDsKK30KKwogZmxvYXQgV2ViVmlld0ltcGw6OmNsYW1wUGFnZVNjYWxl
RmFjdG9yVG9MaW1pdHMoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgcmV0dXJuIG1pbihtYXgo
c2NhbGVGYWN0b3IsIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvciksIG1fbWF4aW11bVBhZ2VTY2Fs
ZUZhY3Rvcik7CkBAIC0yMDAzLDYgKzIwMDksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdl
U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IFdlYlBvaW50JiBvcmlnaW4pCiAg
ICAgc2NhbGVGYWN0b3IgPSBjbGFtcFBhZ2VTY2FsZUZhY3RvclRvTGltaXRzKHNjYWxlRmFjdG9y
KTsKICAgICBXZWJQb2ludCBjbGFtcGVkT3JpZ2luID0gY2xhbXBPZmZzZXRBdFNjYWxlKG9yaWdp
biwgc2NhbGVGYWN0b3IpOwogICAgIHBhZ2UoKS0+c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFj
dG9yLCBjbGFtcGVkT3JpZ2luKTsKKyAgICBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0ID0gdHJ1ZTsK
IH0KIAogZmxvYXQgV2ViVmlld0ltcGw6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKQEAgLTI2
NzUsNiArMjY4Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2Vi
RHJhZ0RhdGEmIGRyYWdEYXRhLAogdm9pZCBXZWJWaWV3SW1wbDo6b2JzZXJ2ZU5ld05hdmlnYXRp
b24oKQogewogICAgIG1fb2JzZXJ2ZWROZXdOYXZpZ2F0aW9uID0gdHJ1ZTsKKyAgICBtX3BhZ2VT
Y2FsZUZhY3RvcklzU2V0ID0gZmFsc2U7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fbmV3TmF2aWdh
dGlvbkxvYWRlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRl
cigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRl
eCA3MzhlMGZmM2E2M2IwODJlODM0ZjYyZDIwY2VmZGZlNzE0MTA1MDVlLi45ZTI5MWE1MTQ4NWQ5
ZTMzMmZlNzk5ZWRkM2IwZjIyOWU2MTU3ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCk7CiAgICAg
dmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNQYWdlU2NhbGVGYWN0b3JTZXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVNj
YWxlRmFjdG9yUHJlc2VydmluZ1Njcm9sbE9mZnNldChmbG9hdCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQmIG9y
aWdpbik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBt
aW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSk7CkBAIC01NzYsNiArNTc3LDggQEAgcHJp
dmF0ZToKICAgICBmbG9hdCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV9t
YXhpbXVtUGFnZVNjYWxlRmFjdG9yOwogCisgICAgYm9vbCBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0
OworCiAgICAgYm9vbCBtX2NvbnRleHRNZW51QWxsb3dlZDsKIAogICAgIGJvb2wgbV9kb2luZ0Ry
YWdBbmREcm9wOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118513</attachid>
            <date>2011-12-08 19:02:02 -0800</date>
            <delta_ts>2011-12-08 21:15:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-73495-20111208220200.patch</filename>
            <type>text/plain</type>
            <size>13421</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YjkwMDE4ODNlYTFiZjU3OTE5MWMwYzIwMWIzMjY4ZGM2NGNkY2IxLi5iNDMzZDZhMjUwMzhiYmZm
MWEwNDYzMjNhNjExYTczNjgwZmQxOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMS0xMi0wOCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3cG9ydCBtZXRhdGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOiBB
ZGRlZCBFTkFCTEUoVklFV1BPUlQpIHRhZy4KKwogMjAxMS0xMi0wNyAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBDU0Ugc2hvdWxkIGtub3cgdGhhdCBDaGVj
a0Z1bmN0aW9uIGlzIHB1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNjg4OTM0YmE2NmIxYTExMDUwMmRkMjg5
ZDY0NmFkOGI1Y2ZlOTZiLi43MTQzZTMzNDhlNmJjZTU2OWE1NTg0MmMxNmU1YjcxODBkMzNmOGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTItMDggIEZhZHkgU2FtdWVsICA8
ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgdmlld3Bv
cnQgbWV0YXRhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzM0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCisKKyAgICAgICAg
UmVjb21wdXRlIHZpZXdwb3QgcGFyYW1ldGVycyBvbiBmcmFtZSByZWN0IHJlc2l6ZS4KKworICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2V0RnJhbWVSZWN0KToKKwogMjAxMS0xMi0wOCAgVGFrYXNoaSBUb3lvc2hpbWEgIDx0b3lvc2hp
bUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUHJvdmlkZSBtb3JlIHNwZWNpZmljIGVycm9yIGRl
c2NyaXB0aW9uIGZvciBTb2NrZXRTdHJlYW1FcnJvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNTY5YmJiODc2YWYyYzI4ZjRiNmMwOGQ2YjVkOTEwY2U2NTY3ZGRkZC4uOTlkOWNkMDg0
N2JjY2JmYjY1MDMzMGVkZGRlZjUyOTU3NTczNTQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0xMi0wOCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSB2aWV3cG9ydCBtZXRhdGFn
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICBDb21wdXRlIHRo
ZSBhcHByb3ByaWF0ZSBmaXhlZCBsYXlvdXQgc2l6ZSwgcGFnZSwgYW5kIGRldmljZSBzY2FsZSBm
YWN0b3JzLAorICAgICAgICBiYXNlZCBvbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcgcGFyYW1ldGVy
cy4KKworICAgICAgICBTZWUgaHR0cDovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9ndWlkZS93ZWJh
cHBzL3RhcmdldGluZy5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCisKKyAgICAgICAgKiBm
ZWF0dXJlcy5neXBpOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpsYXlvdXRVcGRhdGVkKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lSW1wbDo6Y3JlYXRlRnJhbWVWaWV3KToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNQYWdlU2NhbGVGYWN0b3JTZXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om9ic2VydmVOZXdOYXZpZ2F0aW9uKToKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMS0xMi0wNyAgQWxleGFuZHJlIEVsaWFzICA8YWVs
aWFzQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgcGFnZS1zY2FsZSBhbmlt
YXRpb24gc3VwcG9ydCB0byBJbXBsIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oCmluZGV4IGU4NmY4MjBjNjk4NThhNDM3YWQwMzAyMDgzMThjNWFlNTI5MjU2NTcuLjcyYmYy
M2JiNmNlYjVkMmJjZDlmZDYyNDg2NjgwNTI5MWMzMjMyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL1BsYXRmb3JtLmgKQEAgLTg1Nyw2ICs4NTcsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0dFU1RV
UkVfUkVDT0dOSVpFUiAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXUE9SVCkK
KyNkZWZpbmUgRU5BQkxFX1ZJRVdQT1JUIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxF
X05PVElGSUNBVElPTlMpCiAjZGVmaW5lIEVOQUJMRV9OT1RJRklDQVRJT05TIDAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDg3NmVhMTA5NWRhOTZmMGFmOTI2ZDkyYzhi
YzZmYTk1Y2U1NWMzZjguLjMxOWZhYzhkNGNmYmQwMDVlMWUyMWRmMGUxNWUyOGI0ZGY4OGRiMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTQwNSw2ICs0MDUsMTYgQEAgdm9pZCBG
cmFtZVZpZXc6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQogICAgIGlmIChu
ZXdSZWN0ID09IG9sZFJlY3QpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShWSUVXUE9S
VCkKKyAgICBpZiAodXNlRml4ZWRMYXlvdXQoKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3
cG9ydCA9IGRvY3VtZW50LT52aWV3cG9ydEFyZ3VtZW50cygpOworICAgICAgICBQYWdlKiBwYWdl
ID0gZnJhbWUoKSA/IGZyYW1lKCktPnBhZ2UoKSA6IDA7CisgICAgICAgIGlmIChwYWdlKQorICAg
ICAgICAgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZSh2aWV3cG9ydCk7CisgICAgfQorI2VuZGlmCisKICAgICBTY3JvbGxWaWV3
OjpzZXRGcmFtZVJlY3QobmV3UmVjdCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggNTA3M2Q0MzRjMTk0NDE1
NTg3ODE0YTYxMTk4ZmE3YzkwNTY0ZTIwNi4uNmZkYWEwZTQyODc0MzU1NDI4NGIwNDA5MDAyZWY5
MTcxNDRjZjY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5n
eXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtOTAsNiAr
OTAsNyBAQAogICAgICAgJ0VOQUJMRV9WOF9TQ1JJUFRfREVCVUdfU0VSVkVSPTEnLAogICAgICAg
J0VOQUJMRV9WSURFTz0xJywKICAgICAgICdFTkFCTEVfVklERU9fVFJBQ0s9MScsCisgICAgICAn
RU5BQkxFX1ZJRVdQT1JUPTwoZW5hYmxlX3ZpZXdwb3J0KScsCiAgICAgICAnRU5BQkxFX1dFQkdM
PTEnLAogICAgICAgJ0VOQUJMRV9XRUJfU09DS0VUUz0xJywKICAgICAgICdFTkFCTEVfV0VCX1RJ
TUlORz0xJywKQEAgLTExMiw2ICsxMTMsNyBAQAogICAgICAgJ3VzZV9hY2NlbGVyYXRlZF9jb21w
b3NpdGluZyUnOiAxLAogICAgICAgJ2VuYWJsZV9za2lhX3RleHQlJzogMCwKICAgICAgICdlbmFi
bGVfc3ZnJSc6IDEsCisgICAgICAnZW5hYmxlX3ZpZXdwb3J0JSc6IDAsCiAgICAgICAnZW5hYmxl
X3RvdWNoX2V2ZW50cyUnOiAxLAogICAgICAgJ3VzZV9za2lhJSc6IDAsCiAgICAgICAnZW5hYmxl
X3RvdWNoX2ljb25fbG9hZGluZyUnIDogMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZXcuaAppbmRleCA4NTk3NTdmOTk3ZTU0ZTdhNDY4MWY4ZWY4YTA3MDg0OGQzNWQyNmE0Li4w
MTI2MjQzYzcxMDFhZGY5MmY0OGFlZDEyYmM4MTY0YTI5MTNhNWQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yMTQsNiArMjE0LDEwIEBAIHB1YmxpYzoKICAg
ICAvLyBpcyBzY2FsZWQgdXAsIDwgMS4wIGlzIHNjYWxlZCBkb3duLgogICAgIHZpcnR1YWwgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwogCisgICAgLy8gSW5kaWNhdGVzIHdlaHRo
ZXIgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yIGhhcyBiZWVuIHNldCBzaW5jZSBuYXZpZ2F0aW5nCisg
ICAgLy8gdG8gYSBuZXcgcGFnZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlU2NhbGVGYWN0b3JT
ZXQoKSBjb25zdCA9IDA7CisKICAgICAvLyBTY2FsZXMgdGhlIHBhZ2UgYW5kIHRoZSBzY3JvbGwg
b2Zmc2V0IGJ5IGEgZ2l2ZW4gZmFjdG9yLCB3aGlsZSBlbnN1cmluZwogICAgIC8vIHRoYXQgdGhl
IG5ldyBzY3JvbGwgcG9zaXRpb24gZG9lcyBub3QgZ28gYmV5b25kIHRoZSBlZGdlIG9mIHRoZSBw
YWdlLgogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xs
T2Zmc2V0KGZsb2F0KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCmluZGV4IDQ1ZmM4MjUwMzY0OWU2ODIyMjExODAyYjdiMWNjNDM5ZDI3
YTc4N2MuLmRmYThiMjRiNGE2NDQwODI2NmE2MDhmMDljOWE2MzExYzU4NDhhMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC01NSw2
ICs1NSw3IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIk5vZGUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgogI2lu
Y2x1ZGUgIlBvcHVwTWVudUNocm9taXVtLmgiCkBAIC01NTksNiArNTYwLDE1IEBAIHZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IElu
dFNpemUmIHNpemUpIGNvCiAKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6bGF5b3V0VXBkYXRlZChG
cmFtZSogZnJhbWUpIGNvbnN0CiB7CisjaWYgRU5BQkxFKFZJRVdQT1JUKQorICAgIGlmICghbV93
ZWJWaWV3LT5pc1BhZ2VTY2FsZUZhY3RvclNldCgpICYmIGZyYW1lID09IGZyYW1lLT5wYWdlKCkt
Pm1haW5GcmFtZSgpKSB7CisgICAgICAgIC8vIElmIHRoZSBwYWdlIGRvZXMgbm90IGhhdmUgYSB2
aWV3cG9ydCB0YWcsIHRoZW4gY29tcHV0ZSBhIHNjYWxlCisgICAgICAgIC8vIGZhY3RvciB0byBt
YWtlIHRoZSBwYWdlIHdpZHRoIGZpdCB0aGUgZGV2aWNlIHdpZHRoIGJhc2VkIG9uIHRoZQorICAg
ICAgICAvLyBkZWZhdWx0IHZpZXdwb3J0IHBhcmFtZXRlcnMuCisgICAgICAgIFZpZXdwb3J0QXJn
dW1lbnRzIHZpZXdwb3J0ID0gZnJhbWUtPmRvY3VtZW50KCktPnZpZXdwb3J0QXJndW1lbnRzKCk7
CisgICAgICAgIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKHZpZXdwb3J0KTsK
KyAgICB9CisjZW5kaWYKICAgICBtX3dlYlZpZXctPmxheW91dFVwZGF0ZWQoV2ViRnJhbWVJbXBs
Ojpmcm9tRnJhbWUoZnJhbWUpKTsKIH0KIApAQCAtNjAzLDYgKzYxMyw0NyBAQCB2b2lkIENocm9t
ZUNsaWVudEltcGw6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sdGlwVGV4dCwgVGV4dERp
cmVjdGlvbiBkaXIpCiAgICAgICAgIHRvb2x0aXBUZXh0LCB0ZXh0RGlyZWN0aW9uKTsKIH0KIAor
dm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5n
ZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAoreworI2lmIEVOQUJM
RShWSUVXUE9SVCkKKyAgICBpZiAoIW1fd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFibGVk
KCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwgIW1fd2ViVmlldy0+cGFnZSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmdzOworICAgIGlmIChhcmd1bWVu
dHMgPT0gYXJncykKKyAgICAgICAgLy8gRGVmYXVsdCB2aWV3cG9ydCBhcmd1bWVudHMgcGFzc2Vk
IGluLiBUaGlzIGlzIGEgc2lnbmFsIHRvIHJlc2V0IHRoZSB2aWV3cG9ydC4KKyAgICAgICAgYXJn
cy53aWR0aCA9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURlc2t0b3BXaWR0aDsKKyAgICBlbHNl
CisgICAgICAgIGFyZ3MgPSBhcmd1bWVudHM7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IG1fd2ViVmlldy0+bWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKTsKKyAgICBpbnQgZHBpID0g
c2NyZWVuSG9yaXpvbnRhbERQSShmcmFtZVZpZXcpOworICAgIEFTU0VSVChkcGkgPiAwKTsKKwor
ICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgV2Vi
UmVjdCBkZXZpY2VSZWN0ID0gY2xpZW50LT53aW5kb3dSZWN0KCk7CisgICAgLy8gSWYgdGhlIHdp
bmRvdyBzaXplIGhhcyBub3QgYmVlbiBzZXQgeWV0IGRvbid0IGF0dGVtcHQgdG8gc2V0IHRoZSB2
aWV3cG9ydAorICAgIGlmICghZGV2aWNlUmVjdC53aWR0aCB8fCAhZGV2aWNlUmVjdC5oZWlnaHQp
CisgICAgICAgIHJldHVybjsKKworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fd2ViVmlldy0+
cGFnZSgpLT5zZXR0aW5ncygpOworICAgIC8vIENhbGwgdGhlIGNvbW1vbiB2aWV3cG9ydCBjb21w
dXRpbmcgbG9naWMgaW4gVmlld3BvcnRBcmd1bWVudHMuY3BwLgorICAgIFZpZXdwb3J0QXR0cmli
dXRlcyBjb21wdXRlZCA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoCisgICAgICAgIGFyZ3Ms
IHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVJlY3Qud2lkdGgsIGRldmlj
ZVJlY3QuaGVpZ2h0LAorICAgICAgICBkcGksIEludFNpemUoZGV2aWNlUmVjdC53aWR0aCwgZGV2
aWNlUmVjdC5oZWlnaHQpKTsKKworICAgIGludCBsYXlvdXRXaWR0aCA9IGNvbXB1dGVkLmxheW91
dFNpemUud2lkdGgoKTsKKyAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29tcHV0ZWQubGF5b3V0U2l6
ZS5oZWlnaHQoKTsKKyAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShJbnRTaXplKGxh
eW91dFdpZHRoLCBsYXlvdXRIZWlnaHQpKTsKKworICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSB0
aGUgaW1wYWN0IHRoaXMgaGFzIG9uIGxheW91dC9yZW5kZXJpbmcgaWYgYW55LgorICAgIC8vIFRo
aXMgZXhwb3NlcyB0aGUgY29ycmVjdCBkZXZpY2Ugc2NhbGUgdG8gamF2YXNjcmlwdCBhbmQgbWVk
aWEgcXVlcmllcy4KKyAgICBtX3dlYlZpZXctPnNldERldmljZVNjYWxlRmFjdG9yKGNvbXB1dGVk
LmRldmljZVBpeGVsUmF0aW8pOworICAgIG1fd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGlt
aXRzKGNvbXB1dGVkLm1pbmltdW1TY2FsZSwgY29tcHV0ZWQubWF4aW11bVNjYWxlKTsKKyAgICBt
X3dlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvclByZXNlcnZpbmdTY3JvbGxPZmZzZXQoY29tcHV0
ZWQuaW5pdGlhbFNjYWxlICogY29tcHV0ZWQuZGV2aWNlUGl4ZWxSYXRpbyk7CisjZW5kaWYKK30K
Kwogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwcmludChGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYg
KG1fd2ViVmlldy0+Y2xpZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmgKaW5kZXggNzdmMjY0MWE0NDRkZjBjMGVjMDIzZDhjZTU2ZTFmYTlkMDQ5
MTU1OC4uOWZhOTJlZmUwMWJmYmZkNmYzZDg0MzlhMDYzYWUwMjVjZjVhOWQ3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTI1LDYgKzEy
NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
CiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQg
bW9kaWZpZXJGbGFncyk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpT
dHJpbmcmIHRvb2x0aXBUZXh0LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29y
ZTo6RnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKAogICAg
ICAgICBXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZjMwNDAy
Y2ZlNTliYTEyMGZhMzUyYmM2NjEyNDhlODFlYjMyMjBmMS4uM2EyYmNhN2I3NTAwM2QxMTJmNzA3
OGQ0OGI5NzBlOTE5NTRhMGRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCkBAIC0yMDg4LDcgKzIwODgsOCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6Y3Jl
YXRlRnJhbWVWaWV3KCkKICAgICBBU1NFUlQobV9mcmFtZSk7IC8vIElmIG1fZnJhbWUgZG9lc24n
dCBleGlzdCwgd2UgcHJvYmFibHkgZGlkbid0IGluaXQgcHJvcGVybHkuCiAKICAgICBXZWJWaWV3
SW1wbCogd2ViVmlldyA9IHZpZXdJbXBsKCk7Ci0gICAgbV9mcmFtZS0+Y3JlYXRlVmlldyh3ZWJW
aWV3LT5zaXplKCksIENvbG9yOjp3aGl0ZSwgd2ViVmlldy0+aXNUcmFuc3BhcmVudCgpLCAgd2Vi
Vmlldy0+Zml4ZWRMYXlvdXRTaXplKCksIHdlYlZpZXctPmlzRml4ZWRMYXlvdXRNb2RlRW5hYmxl
ZCgpKTsKKyAgICBib29sIGlzTWFpbkZyYW1lID0gd2ViVmlldy0+bWFpbkZyYW1lSW1wbCgpLT5m
cmFtZSgpID09IG1fZnJhbWU7CisgICAgbV9mcmFtZS0+Y3JlYXRlVmlldyh3ZWJWaWV3LT5zaXpl
KCksIENvbG9yOjp3aGl0ZSwgd2ViVmlldy0+aXNUcmFuc3BhcmVudCgpLCAgd2ViVmlldy0+Zml4
ZWRMYXlvdXRTaXplKCksIGlzTWFpbkZyYW1lID8gd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVF
bmFibGVkKCkgOiAwKTsKICAgICBpZiAod2ViVmlldy0+c2hvdWxkQXV0b1Jlc2l6ZSgpKQogICAg
ICAgICBtX2ZyYW1lLT52aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZSh0cnVlLCB3ZWJWaWV3LT5t
aW5BdXRvU2l6ZSgpLCB3ZWJWaWV3LT5tYXhBdXRvU2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDJlMzlmY2U0MGQyYWY4NjMwZTg5MzEw
Nzc3Yjc5ZDM1MDZiM2U1OTUuLmRkZDk4ZGJjY2U5MjZmMjUwYWY4ZTg1OGNlMGY1OGM3ZjZkZGQ1
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM0
Nyw2ICszNDcsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xp
ZW50KQogICAgICwgbV9wYWdlRGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IoLTEpCiAgICAg
LCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IobWluUGFnZVNjYWxlRmFjdG9yKQogICAgICwgbV9t
YXhpbXVtUGFnZVNjYWxlRmFjdG9yKG1heFBhZ2VTY2FsZUZhY3RvcikKKyAgICAsIG1fcGFnZVNj
YWxlRmFjdG9ySXNTZXQoZmFsc2UpCiAgICAgLCBtX2NvbnRleHRNZW51QWxsb3dlZChmYWxzZSkK
ICAgICAsIG1fZG9pbmdEcmFnQW5kRHJvcChmYWxzZSkKICAgICAsIG1faWdub3JlSW5wdXRFdmVu
dHMoZmFsc2UpCkBAIC0xOTU1LDYgKzE5NTYsMTEgQEAgZmxvYXQgV2ViVmlld0ltcGw6OnBhZ2VT
Y2FsZUZhY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7
CiB9CiAKK2Jvb2wgV2ViVmlld0ltcGw6OmlzUGFnZVNjYWxlRmFjdG9yU2V0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3JJc1NldDsKK30KKwogZmxvYXQgV2ViVmlld0lt
cGw6OmNsYW1wUGFnZVNjYWxlRmFjdG9yVG9MaW1pdHMoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAg
ICAgcmV0dXJuIG1pbihtYXgoc2NhbGVGYWN0b3IsIG1fbWluaW11bVBhZ2VTY2FsZUZhY3Rvciks
IG1fbWF4aW11bVBhZ2VTY2FsZUZhY3Rvcik7CkBAIC0yMDAzLDYgKzIwMDksNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IFdl
YlBvaW50JiBvcmlnaW4pCiAgICAgc2NhbGVGYWN0b3IgPSBjbGFtcFBhZ2VTY2FsZUZhY3RvclRv
TGltaXRzKHNjYWxlRmFjdG9yKTsKICAgICBXZWJQb2ludCBjbGFtcGVkT3JpZ2luID0gY2xhbXBP
ZmZzZXRBdFNjYWxlKG9yaWdpbiwgc2NhbGVGYWN0b3IpOwogICAgIHBhZ2UoKS0+c2V0UGFnZVNj
YWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBjbGFtcGVkT3JpZ2luKTsKKyAgICBtX3BhZ2VTY2FsZUZh
Y3RvcklzU2V0ID0gdHJ1ZTsKIH0KIAogZmxvYXQgV2ViVmlld0ltcGw6OmRldmljZVNjYWxlRmFj
dG9yKCkgY29uc3QKQEAgLTI2NzUsNiArMjY4Miw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0
RHJhZ2dpbmcoY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAogdm9pZCBXZWJWaWV3SW1wbDo6
b2JzZXJ2ZU5ld05hdmlnYXRpb24oKQogewogICAgIG1fb2JzZXJ2ZWROZXdOYXZpZ2F0aW9uID0g
dHJ1ZTsKKyAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBtX3BhZ2VTY2Fs
ZUZhY3RvcklzU2V0IGlzIG5vdCByZXNldAorICAgIC8vIG9uIHNhbWUgcGFnZSBuYXZpZ2F0aW9u
cy4KKyAgICBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0ID0gZmFsc2U7CiAjaWZuZGVmIE5ERUJVRwog
ICAgIG1fbmV3TmF2aWdhdGlvbkxvYWRlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAppbmRleCA3MzhlMGZmM2E2M2IwODJlODM0ZjYyZDIwY2VmZGZlNzE0MTA1MDVl
Li45ZTI5MWE1MTQ4NWQ5ZTMzMmZlNzk5ZWRkM2IwZjIyOWU2MTU3ZWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFuZ2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxl
dmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbWF4aW11bVpv
b21MZXZlbCk7CiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQYWdlU2NhbGVGYWN0b3JTZXQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yUHJlc2VydmluZ1Njcm9sbE9mZnNldChmbG9hdCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29u
c3QgV2ViUG9pbnQmIG9yaWdpbik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3Rv
ckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSk7CkBAIC01NzYs
NiArNTc3LDggQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3I7
CiAgICAgZmxvYXQgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yOwogCisgICAgYm9vbCBtX3BhZ2VT
Y2FsZUZhY3RvcklzU2V0OworCiAgICAgYm9vbCBtX2NvbnRleHRNZW51QWxsb3dlZDsKIAogICAg
IGJvb2wgbV9kb2luZ0RyYWdBbmREcm9wOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>