<?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>101826</bug_id>
          
          <creation_ts>2012-11-09 18:57:05 -0800</creation_ts>
          <short_desc>Notify embedder of lost contexts and allow overriding of WebGL support</short_desc>
          <delta_ts>2012-11-30 17:47:30 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>102319</blocked>
    
    <blocked>103793</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>bajones</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>fishd</cc>
    
    <cc>gman</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>763552</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-09 18:57:05 -0800</bug_when>
    <thetext>If WebGL content causes the context to be lost per the GL_ARB_robustness extension, the embedder should be notified, and to have the option to veto creation of new WebGL contexts and restoration of existing ones.

The FrameLoaderClient already contains the hooks to request permissions of the embedder, so this is the natural place to put the new hooks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763553</commentid>
    <comment_count>1</comment_count>
      <attachid>173423</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-09 19:10:26 -0800</bug_when>
    <thetext>Created attachment 173423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763555</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-09 19:11:23 -0800</bug_when>
    <thetext>@dino: please review this. Happy to field any questions about it. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763556</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 19:13:38 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763895</commentid>
    <comment_count>4</comment_count>
      <attachid>173423</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-11 15:15:25 -0800</bug_when>
    <thetext>Comment on attachment 173423
Patch

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

&gt; Source/WebKit/chromium/public/WebPermissionClient.h:112
&gt; +    // Notifies the client that a WebGL context was lost on this page with the given reason (one of
&gt; +    // the GL_ARB_robustness status codes; see Extensions3D.h in WebCore/platform/graphics).
&gt; +    virtual void didLoseWebGLContext(WebFrame*, int) { }

Why is this call routed through the WebPermissionClient?  I would have expected it to come through the WebFrameClient...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764741</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-12 13:25:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 173423 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173423&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebPermissionClient.h:112
&gt; &gt; +    // Notifies the client that a WebGL context was lost on this page with the given reason (one of
&gt; &gt; +    // the GL_ARB_robustness status codes; see Extensions3D.h in WebCore/platform/graphics).
&gt; &gt; +    virtual void didLoseWebGLContext(WebFrame*, int) { }
&gt; 
&gt; Why is this call routed through the WebPermissionClient?  I would have expected it to come through the WebFrameClient...

There seemed to be parallels with other methods on WebPermissionClient like didNotAllowPlugins and didNotAllowScript, but WebFrameClient looks like a good place for it too. Should I move it and regenerate the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764746</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 13:29:18 -0800</bug_when>
    <thetext>&gt; There seemed to be parallels with other methods on WebPermissionClient like didNotAllowPlugins and didNotAllowScript, but WebFrameClient looks like a good place for it too.

Those are related to permissions (e.g., we didn&apos;t allow script to run for some reason).

&gt; Should I move it and regenerate the patch?

Is didLoseWebGLContext related to permissions, or is it a more general notification that we lost the WebGL context (for any of a number of reasons)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764756</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-12 13:35:14 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; There seemed to be parallels with other methods on WebPermissionClient like didNotAllowPlugins and didNotAllowScript, but WebFrameClient looks like a good place for it too.
&gt; 
&gt; Those are related to permissions (e.g., we didn&apos;t allow script to run for some reason).
&gt; 
&gt; &gt; Should I move it and regenerate the patch?
&gt; 
&gt; Is didLoseWebGLContext related to permissions, or is it a more general notification that we lost the WebGL context (for any of a number of reasons)?

The calls are related; the intent is that the embedder will change its answer to allowWebGL (possibly even on other frames) if it receives a didLoseWebGLContext notification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764759</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 13:37:35 -0800</bug_when>
    <thetext>&gt; The calls are related; the intent is that the embedder will change its answer to allowWebGL (possibly even on other frames) if it receives a didLoseWebGLContext notification.

If it doesn&apos;t cause too much trouble, I&apos;d prefer to move the callback to another client.  WebKit shouldn&apos;t really know that the calls are related.  There are many things that might cause the embedder to change its answer to allowWebGL.  That&apos;s up to the embedder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764764</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-12 13:41:15 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; The calls are related; the intent is that the embedder will change its answer to allowWebGL (possibly even on other frames) if it receives a didLoseWebGLContext notification.
&gt; 
&gt; If it doesn&apos;t cause too much trouble, I&apos;d prefer to move the callback to another client.  WebKit shouldn&apos;t really know that the calls are related.  There are many things that might cause the embedder to change its answer to allowWebGL.  That&apos;s up to the embedder.

OK, no problem. I&apos;ll move the didLoseWebGLContext notification to WebFrameClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765122</commentid>
    <comment_count>10</comment_count>
      <attachid>173794</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-12 19:03:33 -0800</bug_when>
    <thetext>Created attachment 173794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765123</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-12 19:05:05 -0800</bug_when>
    <thetext>@abarth: addressed your review feedback. Please re-review. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765277</commentid>
    <comment_count>12</comment_count>
      <attachid>173794</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 22:57:20 -0800</bug_when>
    <thetext>Comment on attachment 173794
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:404
&gt; +        // Unlikely; possibly the window is being closed. Not worth reporting a spurious error in
&gt; +        // this situation.

I&apos;d skip this comment.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:407
&gt; +    Settings* settings = document-&gt;settings();

It&apos;s kind of strange to get the settings from the Document given that you&apos;ve already gone though the work of getting the frame.  It&apos;s better to get the settings from the frame: frame-&gt;settings().  That&apos;s all Document::settings does anyway.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:410
&gt; +    // If the FrameLoaderClient vetoes creation of a new WebGL context despite the page settings,
&gt; +    // return null.

This comment just says what the code does, not why.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:4474
&gt; +        Document* document = canvas()-&gt;document();
&gt; +        if (document) {

How can document be null here?

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:4476
&gt; +            Frame* frame = document-&gt;frame();
&gt; +            if (frame)

You can combine these two lines.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5619
&gt; +    if (!frame-&gt;loader()-&gt;client()-&gt;allowWebGL(document-&gt;settings() &amp;&amp; document-&gt;settings()-&gt;webGLEnabled()))

Same comment about how we should get the settings from the frame here since we already have the frame pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765278</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 22:57:37 -0800</bug_when>
    <thetext>Looks great.  My comments above are just nits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766071</commentid>
    <comment_count>14</comment_count>
      <attachid>173794</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-13 14:41:27 -0800</bug_when>
    <thetext>Comment on attachment 173794
Patch

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

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:407
&gt;&gt; +    Settings* settings = document-&gt;settings();
&gt; 
&gt; It&apos;s kind of strange to get the settings from the Document given that you&apos;ve already gone though the work of getting the frame.  It&apos;s better to get the settings from the frame: frame-&gt;settings().  That&apos;s all Document::settings does anyway.

Thanks; I didn&apos;t know how these were linked up. I&apos;ll update the code.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:410
&gt;&gt; +    // return null.
&gt; 
&gt; This comment just says what the code does, not why.

Will improve the comment.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:4474
&gt;&gt; +        if (document) {
&gt; 
&gt; How can document be null here?

We&apos;ve seen situations (probably during window closing) where some of the linkage between these objects is broken. Those may have just been bugs in WebGL&apos;s context restoration code, but I&apos;d prefer to program defensively here.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:4476
&gt;&gt; +            if (frame)
&gt; 
&gt; You can combine these two lines.

OK.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5619
&gt;&gt; +    if (!frame-&gt;loader()-&gt;client()-&gt;allowWebGL(document-&gt;settings() &amp;&amp; document-&gt;settings()-&gt;webGLEnabled()))
&gt; 
&gt; Same comment about how we should get the settings from the frame here since we already have the frame pointer.

Will adjust.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766102</commentid>
    <comment_count>15</comment_count>
      <attachid>174005</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-11-13 15:15:57 -0800</bug_when>
    <thetext>Created attachment 174005
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766342</commentid>
    <comment_count>16</comment_count>
      <attachid>174005</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 20:13:54 -0800</bug_when>
    <thetext>Comment on attachment 174005
Patch for landing

Clearing flags on attachment: 174005

Committed r134525: &lt;http://trac.webkit.org/changeset/134525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766343</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 20:13:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173423</attachid>
            <date>2012-11-09 19:10:26 -0800</date>
            <delta_ts>2012-11-12 19:03:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101826-20121109190833.patch</filename>
            <type>text/plain</type>
            <size>10231</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNiN2ZiNjZlYmFiYWVm
NThjZTc4ZTRiZDliNWZiNGEyYzUyYTU3Zi4uMGQ3M2YxYTA1ZjAwMTQ1MDU2MmRlZGNhNzMwZGVh
YTU3ZDA2NWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTA5ICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb3RpZnkgZW1iZWRkZXIg
b2YgbG9zdCBjb250ZXh0cyBhbmQgYWxsb3cgb3ZlcnJpZGluZyBvZiBXZWJHTCBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4MjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgaG9va3Mg
bm90aWZ5aW5nIHRoZSBlbWJlZGRlciB3aGVuIE9wZW5HTCBjb250ZXh0cyBhcmUgbG9zdCBhbmQK
KyAgICAgICAgYWxsb3dpbmcgb3ZlcnJpZGluZyBvZiBXZWJHTCBzdXBwb3J0IG9uIGEgcGVyLWZy
YW1lIGJhc2lzLgorCisgICAgICAgIE5vIHRlc3RzIHlldDsgZG9uJ3Qga25vdyBob3cgdG8gdGVz
dCB0aGlzIHNvbGVseSB3aXRoaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgZGV2ZWxvcGlu
ZyB0ZXN0cyBpbiB0aGUgQ2hyb21pdW0gcG9ydCBleGVyY2lzaW5nIHRoZQorICAgICAgICBub3Rp
ZmljYXRpb25zIGVuZC10by1lbmQuIE9uY2UgdGhvc2UgYXJlIGluIHBsYWNlLCBJJ20gcHJlcGFy
ZWQgdG8KKyAgICAgICAgaW52ZXN0aWdhdGUgYWRkaW5nIHRlc3RzIGZvciBhbGwgcG9ydHMuCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZSk6CisgICAgICAgICAgQ2hlY2sgd2hldGhlciBlbWJlZGRlciB2ZXRvZXMgY3JlYXRpb24g
b2YgbmV3IFdlYkdMIGNvbnRleHRzLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojpsb3NlQ29udGV4dEltcGwpOgorICAgICAgICAgIE5vdGlmeSBlbWJlZGRlciB0aGF0
IGNvbnRleHQgd2FzIGxvc3QuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6Om1heWJlUmVzdG9yZUNvbnRleHQpOgorICAgICAgICAgIENoZWNrIHdoZXRoZXIgZW1iZWRk
ZXIgdmV0b2VzIHJlc3RvcmF0aW9uIG9mIGV4aXN0aW5nIFdlYkdMIGNvbnRleHRzLgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93V2ViR0wpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpZExvc2VXZWJHTENvbnRleHQp
OgorICAgICAgICAgIEhvb2tzIG5vdGlmeWluZyBlbWJlZGRlciBvZiBsb3N0IGNvbnRleHRzIGFu
ZCBhc2tpbmcgcGVybWlzc2lvbiB0byBydW4gV2ViR0wuCisKIDIwMTItMTEtMDkgIFJpY2sgQnll
cnMgIDxyYnllcnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vIHRlc3RzIGZvciBjaGFuZ2lu
ZyBtb3VzZSBjdXJzb3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA3NjAzOTg3OWEx
N2EzYzVlMDc1MGQzZTg5ZGU4NjE5MDZhODdhMGEuLjJmYjcyNjI3ZDQ5ODU2ZmQ2YjhiOTYxMDYw
ZmM3MmM1NzVmZDA4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMTEtMDkgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAg
ICAgIE5vdGlmeSBlbWJlZGRlciBvZiBsb3N0IGNvbnRleHRzIGFuZCBhbGxvdyBvdmVycmlkaW5n
IG9mIFdlYkdMIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEV4cG9zZSBuZXcgRnJhbWVMb2FkZXJDbGllbnQgaG9va3MgdGhyb3VnaCBDaHJv
bWl1bSdzCisgICAgICAgIFdlYlBlcm1pc3Npb25DbGllbnQuIERvd25zdHJlYW0gYnJvd3NlciB0
ZXN0cyB3aWxsIGV4ZXJjaXNlIHRoaXMKKyAgICAgICAgbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViUGVybWlz
c2lvbkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQ6OmFsbG93
V2ViR0wpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjpkaWRMb3NlV2Vi
R0xDb250ZXh0KToKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6
YWxsb3dXZWJHTCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlk
TG9zZVdlYkdMQ29udGV4dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKwogMjAxMi0xMS0wOSAgQWxlYyBG
bGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBDb21i
aW5lIElEQkJhY2tpbmdTdG9yZSBhbmQgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggNWIxYjA1YTVkNDgwYmIzMTgxMWRmNjRkYTFhZTkwYWQ2NDg1ZjFiZi4uNmM2YzA3ZDU4Y2Fh
YjJhZGE4ZTNmOWJjZTNlNmY4MDA1NWU5MmMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTM5NiwxMiArMzk3LDI3IEBAIHByaXZhdGU6CiAK
IFBhc3NPd25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmNyZWF0ZShIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVz
KiBhdHRycykKIHsKLSAgICBIb3N0V2luZG93KiBob3N0V2luZG93ID0gY2FudmFzLT5kb2N1bWVu
dCgpLT52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpOworICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IGNhbnZhcy0+ZG9jdW1lbnQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJh
bWUoKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgIC8vIFVubGlrZWx5OyBwb3NzaWJseSB0
aGUgd2luZG93IGlzIGJlaW5nIGNsb3NlZC4gTm90IHdvcnRoIHJlcG9ydGluZyBhIHNwdXJpb3Vz
IGVycm9yIGluCisgICAgICAgIC8vIHRoaXMgc2l0dWF0aW9uLgorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICB9CisgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQtPnNldHRpbmdz
KCk7CisKKyAgICAvLyBJZiB0aGUgRnJhbWVMb2FkZXJDbGllbnQgdmV0b2VzIGNyZWF0aW9uIG9m
IGEgbmV3IFdlYkdMIGNvbnRleHQgZGVzcGl0ZSB0aGUgcGFnZSBzZXR0aW5ncywKKyAgICAvLyBy
ZXR1cm4gbnVsbC4KKyAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93V2Vi
R0woc2V0dGluZ3MgJiYgc2V0dGluZ3MtPndlYkdMRW5hYmxlZCgpKSkgeworICAgICAgICBjYW52
YXMtPmRpc3BhdGNoRXZlbnQoV2ViR0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
d2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIldlYiBwYWdlIHdh
cyBub3QgYWxsb3dlZCB0byBjcmVhdGUgYSBXZWJHTCBjb250ZXh0LiIpKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IGRvY3Vt
ZW50LT52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpOwogICAgIEdyYXBoaWNzQ29udGV4dDNE
OjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBhdHRycyA/IGF0dHJzLT5hdHRyaWJ1dGVzKCkgOiBH
cmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcygpOwogCiAgICAgaWYgKGF0dHJpYnV0ZXMuYW50
aWFsaWFzKSB7Ci0gICAgICAgIFBhZ2UqIHAgPSBjYW52YXMtPmRvY3VtZW50KCktPnBhZ2UoKTsK
LSAgICAgICAgaWYgKHAgJiYgIXAtPnNldHRpbmdzKCktPm9wZW5HTE11bHRpc2FtcGxpbmdFbmFi
bGVkKCkpCisgICAgICAgIGlmIChzZXR0aW5ncyAmJiAhc2V0dGluZ3MtPm9wZW5HTE11bHRpc2Ft
cGxpbmdFbmFibGVkKCkpCiAgICAgICAgICAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNl
OwogICAgIH0KIApAQCAtNDQ1MSw2ICs0NDY3LDE3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojpsb3NlQ29udGV4dEltcGwoV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpMb3N0Q29udGV4dE1v
CiAgICAgbV9jb250ZXh0TG9zdCA9IHRydWU7CiAgICAgbV9jb250ZXh0TG9zdE1vZGUgPSBtb2Rl
OwogCisgICAgaWYgKG1vZGUgPT0gUmVhbExvc3RDb250ZXh0KSB7CisgICAgICAgIC8vIEluZm9y
bSB0aGUgZW1iZWRkZXIgdGhhdCBhIGxvc3QgY29udGV4dCB3YXMgcmVjZWl2ZWQuIEluIHJlc3Bv
bnNlLCB0aGUgZW1iZWRkZXIgbWlnaHQKKyAgICAgICAgLy8gZGVjaWRlIHRvIHRha2UgYWN0aW9u
IHN1Y2ggYXMgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uIHRvIHVzZSBXZWJHTCBhZ2Fp
bi4KKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY2FudmFzKCktPmRvY3VtZW50KCk7Cisg
ICAgICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1l
bnQtPmZyYW1lKCk7CisgICAgICAgICAgICBpZiAoZnJhbWUpCisgICAgICAgICAgICAgICAgZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkTG9zZVdlYkdMQ29udGV4dChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS0+Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpKTsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKIAogICAgIGlmIChtX2Ry
YXdpbmdCdWZmZXIpIHsKQEAgLTU1ODUsNyArNTYxMiwxNCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6bWF5YmVSZXN0b3JlQ29udGV4dChUaW1lcjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KikKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjYW52YXMoKS0+ZG9jdW1lbnQoKTsKICAgICBp
ZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRnJhbWVWaWV3KiB2aWV3ID0gZG9j
dW1lbnQtPnZpZXcoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCktPmFsbG93V2ViR0woZG9jdW1lbnQtPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQt
PnNldHRpbmdzKCktPndlYkdMRW5hYmxlZCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRnJh
bWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJl
dHVybjsKICAgICBTY3JvbGxWaWV3KiByb290ID0gdmlldy0+cm9vdCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiNGFiZjg4ZjM1OTk2MWI4OWFlZjg3
NjA1NWE0OTc4NTZjZjEzYzVmLi44NWU0ZWVjZjE5Mjk0MWY3MDIzZWVhNmRiZWRkMDIxZWY3NDMy
YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzUz
LDYgKzM1MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKFJFUVVFU1RfQVVU
T0NPTVBMRVRFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVxdWVzdEF1dG9jb21wbGV0ZShQ
YXNzUmVmUHRyPEZvcm1TdGF0ZT4pID0gMDsKICNlbmRpZgorCisjaWYgRU5BQkxFKFdFQkdMKQor
ICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJHTChib29sIGVuYWJsZWRQZXJTZXR0aW5ncykg
eyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CisgICAgICAgIC8vIEluZm9ybXMgdGhlIGVt
YmVkZGVyIHRoYXQgYSBXZWJHTCBjYW52YXMgaW5zaWRlIHRoaXMgZnJhbWUgcmVjZWl2ZWQgYSBs
b3N0IGNvbnRleHQKKyAgICAgICAgLy8gbm90aWZpY2F0aW9uIHdpdGggdGhlIGdpdmVuIEdMX0FS
Ql9yb2J1c3RuZXNzIGd1aWx0L2lubm9jZW5jZSBjb2RlIChzZWUgRXh0ZW5zaW9uczNELmgpLgor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVdlYkdMQ29udGV4dChpbnQpIHsgfQorI2VuZGlm
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCmluZGV4IDBiNjQxNGI0ZTIy
Mzg2NzJmMzQ1ZjVkMGJjMjUyNjY5YTJmMzY0N2EuLmZlZWQzYWVkZTU2MzVjMWVhODllOTRhZTVk
YjM4MjlmMThkODI5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlBlcm1pc3Npb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKQEAgLTkzLDYgKzkzLDkgQEAgcHVibGljOgogICAgIC8v
IENvbnRyb2xzIHdoZXRoZXIgZW5hYmxpbmcgV2ViIENvbXBvbmVudHMgQVBJIGZvciB0aGlzIGZy
YW1lLgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dlYkNvbXBvbmVudHMoY29uc3QgV2ViRG9jdW1l
bnQmLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKKyAgICAv
LyBDb250cm9scyB3aGV0aGVyIGVuYWJsaW5nIFdlYkdMIGZvciB0aGlzIGZyYW1lLgorICAgIHZp
cnR1YWwgYm9vbCBhbGxvd1dlYkdMKFdlYkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0
dXJuIGRlZmF1bHRWYWx1ZTsgfQorCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBlbmFibGluZyBI
VE1MIG5vdGlmaWNhdGlvbnMgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBib29sIGFsbG93
SFRNTE5vdGlmaWNhdGlvbnMoY29uc3QgV2ViRG9jdW1lbnQmKSB7IHJldHVybiB0cnVlOyB9CiAK
QEAgLTEwNCw2ICsxMDcsMTAgQEAgcHVibGljOgogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgcHVz
aFN0YXRlIGFuZCByZWxhdGVkIEhpc3RvcnkgQVBJcyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBmcmFt
ZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQdXNoU3RhdGUoY29uc3QgV2ViRG9jdW1lbnQmKSB7
IHJldHVybiB0cnVlOyB9CiAKKyAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgYSBXZWJH
TCBjb250ZXh0IHdhcyBsb3N0IG9uIHRoaXMgcGFnZSB3aXRoIHRoZSBnaXZlbiByZWFzb24gKG9u
ZSBvZgorICAgIC8vIHRoZSBHTF9BUkJfcm9idXN0bmVzcyBzdGF0dXMgY29kZXM7IHNlZSBFeHRl
bnNpb25zM0QuaCBpbiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzKS4KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkTG9zZVdlYkdMQ29udGV4dChXZWJGcmFtZSosIGludCkgeyB9CisKICAgICAvLyBOb3Rp
ZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdvdWxkIGhhdmUgaW5zdGFudGlhdGVkIGEg
cGx1Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVuYWJsZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZE5v
dEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCA3ZmZlOTQzMzllYzFj
NDgyMjk3YTI3MjY1OWU4NjY2MmEzZWQ3N2FjLi5jOWJkNTcwYWIxZjBjNGIwZWZkZWY2Njg2NjVk
MDNmMGUwYWI3YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTE2NjIsNCArMTY2MiwyMiBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6ZGlkUmVxdWVzdEF1dG9jb21wbGV0ZShQYXNzUmVmUHRyPEZvcm1T
dGF0ZT4gZm9ybVN0YQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCR0wpCitib29sIEZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dXZWJHTChib29sIGVuYWJsZWRQZXJTZXR0aW5ncykKK3sK
KyAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7CisgICAg
aWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQorICAgICAgICByZXR1
cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkdMKG1fd2ViRnJhbWUsIGVu
YWJsZWRQZXJTZXR0aW5ncyk7CisKKyAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOworfQor
Cit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTG9zZVdlYkdMQ29udGV4dChpbnQgYXJi
Um9idXN0bmVzc0NvbnRleHRMb3N0UmVhc29uKQoreworICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3
ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKKyAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5w
ZXJtaXNzaW9uQ2xpZW50KCkpCisgICAgICAgIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+
ZGlkTG9zZVdlYkdMQ29udGV4dChtX3dlYkZyYW1lLCBhcmJSb2J1c3RuZXNzQ29udGV4dExvc3RS
ZWFzb24pOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAppbmRleCA2NTg5
YzM3YmI3OWU1NjQxZGYwM2EyYWVkYzRiZmJkMGZhYThhZTAwLi4yYWE2MjRiZGYzNmRkMjg2M2Yy
MjAxNmJmZTdlY2QwMTBlNzA3OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMjI5LDYgKzIyOSwxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlcXVlc3RBdXRvY29tcGxldGUoUGFzc1JlZlB0cjxXZWJD
b3JlOjpGb3JtU3RhdGU+KSBPVkVSUklERTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQkdMKQor
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dlYkdMKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVdlYkdMQ29udGV4dChpbnQgYXJiUm9idXN0
bmVzc0NvbnRleHRMb3N0UmVhc29uKSBPVkVSUklERTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IHZvaWQgbWFrZURvY3VtZW50VmlldygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173794</attachid>
            <date>2012-11-12 19:03:33 -0800</date>
            <delta_ts>2012-11-13 15:15:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101826-20121112190134.patch</filename>
            <type>text/plain</type>
            <size>10517</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNiNzA0NGRkOWU0YTgw
Y2FkNWNiZjgzY2U5NzNjMDdhNDMzZGQzZS4uNGExYTM3N2FkYmE4NjgyNzFiMDgzYmFiNWM1MDNm
NGJlM2FmMmMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTEyICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb3RpZnkgZW1iZWRkZXIg
b2YgbG9zdCBjb250ZXh0cyBhbmQgYWxsb3cgb3ZlcnJpZGluZyBvZiBXZWJHTCBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4MjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgaG9va3Mg
bm90aWZ5aW5nIHRoZSBlbWJlZGRlciB3aGVuIE9wZW5HTCBjb250ZXh0cyBhcmUgbG9zdCBhbmQK
KyAgICAgICAgYWxsb3dpbmcgb3ZlcnJpZGluZyBvZiBXZWJHTCBzdXBwb3J0IG9uIGEgcGVyLWZy
YW1lIGJhc2lzLgorCisgICAgICAgIE5vIHRlc3RzIHlldDsgZG9uJ3Qga25vdyBob3cgdG8gdGVz
dCB0aGlzIHNvbGVseSB3aXRoaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgZGV2ZWxvcGlu
ZyB0ZXN0cyBpbiB0aGUgQ2hyb21pdW0gcG9ydCBleGVyY2lzaW5nIHRoZQorICAgICAgICBub3Rp
ZmljYXRpb25zIGVuZC10by1lbmQuIE9uY2UgdGhvc2UgYXJlIGluIHBsYWNlLCBJJ20gcHJlcGFy
ZWQgdG8KKyAgICAgICAgaW52ZXN0aWdhdGUgYWRkaW5nIHRlc3RzIGZvciBhbGwgcG9ydHMuCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZSk6CisgICAgICAgICAgQ2hlY2sgd2hldGhlciBlbWJlZGRlciB2ZXRvZXMgY3JlYXRpb24g
b2YgbmV3IFdlYkdMIGNvbnRleHRzLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojpsb3NlQ29udGV4dEltcGwpOgorICAgICAgICAgIE5vdGlmeSBlbWJlZGRlciB0aGF0
IGNvbnRleHQgd2FzIGxvc3QuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6Om1heWJlUmVzdG9yZUNvbnRleHQpOgorICAgICAgICAgIENoZWNrIHdoZXRoZXIgZW1iZWRk
ZXIgdmV0b2VzIHJlc3RvcmF0aW9uIG9mIGV4aXN0aW5nIFdlYkdMIGNvbnRleHRzLgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93V2ViR0wpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpZExvc2VXZWJHTENvbnRleHQp
OgorICAgICAgICAgIEhvb2tzIG5vdGlmeWluZyBlbWJlZGRlciBvZiBsb3N0IGNvbnRleHRzIGFu
ZCBhc2tpbmcgcGVybWlzc2lvbiB0byBydW4gV2ViR0wuCisKIDIwMTItMTEtMTIgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTGVvcGFyZCBv
bmx5IGdyYWRpZW50IGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDMzODlmOTk1
YWRiNzhhYjcxMGI0ZTE3ZTUzMWEwZWQxYWMwYzkxNy4uODEwYzQ0MThmZGE1ODllNjgwOTg3Y2Vj
MGZmMDQ1NzcwZWI4Y2M4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NyBAQAorMjAxMi0xMS0xMiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgTm90aWZ5IGVtYmVkZGVyIG9mIGxvc3QgY29udGV4dHMgYW5kIGFsbG93IG92ZXJyaWRp
bmcgb2YgV2ViR0wgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAxODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXhwb3NlIG5ldyBGcmFtZUxvYWRlckNsaWVudCBob29rcyB0aHJvdWdoIENo
cm9taXVtJ3MKKyAgICAgICAgV2ViUGVybWlzc2lvbkNsaWVudCBhbmQgV2ViRnJhbWVDbGllbnQu
IERvd25zdHJlYW0gYnJvd3NlciB0ZXN0cworICAgICAgICB3aWxsIGV4ZXJjaXNlIHRoaXMgbmV3
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkZyYW1lQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6
OmRpZExvc2VXZWJHTENvbnRleHQpOgorICAgICAgICAqIHB1YmxpYy9XZWJQZXJtaXNzaW9uQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJQZXJtaXNzaW9uQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGVybWlzc2lvbkNsaWVudDo6YWxsb3dXZWJHTCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93V2ViR0wpOgorICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudEltcGw6OmRpZExvc2VXZWJHTENvbnRleHQpOgorICAgICAgICAqIHNyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50SW1wbCk6
CisKIDIwMTItMTEtMTIgIE1pbiBRaW4gIDxxaW5taW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEZpeCB3aW5kb3dSZWN0IGNhbGN1bGF0aW9uIGZvciB3ZWJwbHVnaW4gZHVlIHRvIHBhZ2Ugc2Nh
bGUgZmFjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNWIxYjA1YTVkNDgwYmIzMTgxMWRmNjRkYTFhZTkwYWQ2
NDg1ZjFiZi4uNmM2YzA3ZDU4Y2FhYjJhZGE4ZTNmOWJjZTNlNmY4MDA1NWU5MmMwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1
ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ2Fu
dmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTM5NiwxMiAr
Mzk3LDI3IEBAIHByaXZhdGU6CiAKIFBhc3NPd25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZShIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzKiBhdHRycykKIHsKLSAgICBIb3N0V2luZG93KiBob3N0V2lu
ZG93ID0gY2FudmFzLT5kb2N1bWVudCgpLT52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpOwor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNhbnZhcy0+ZG9jdW1lbnQoKTsKKyAgICBGcmFtZSog
ZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgIC8v
IFVubGlrZWx5OyBwb3NzaWJseSB0aGUgd2luZG93IGlzIGJlaW5nIGNsb3NlZC4gTm90IHdvcnRo
IHJlcG9ydGluZyBhIHNwdXJpb3VzIGVycm9yIGluCisgICAgICAgIC8vIHRoaXMgc2l0dWF0aW9u
LgorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgU2V0dGluZ3MqIHNldHRpbmdz
ID0gZG9jdW1lbnQtPnNldHRpbmdzKCk7CisKKyAgICAvLyBJZiB0aGUgRnJhbWVMb2FkZXJDbGll
bnQgdmV0b2VzIGNyZWF0aW9uIG9mIGEgbmV3IFdlYkdMIGNvbnRleHQgZGVzcGl0ZSB0aGUgcGFn
ZSBzZXR0aW5ncywKKyAgICAvLyByZXR1cm4gbnVsbC4KKyAgICBpZiAoIWZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCktPmFsbG93V2ViR0woc2V0dGluZ3MgJiYgc2V0dGluZ3MtPndlYkdMRW5hYmxl
ZCgpKSkgeworICAgICAgICBjYW52YXMtPmRpc3BhdGNoRXZlbnQoV2ViR0xDb250ZXh0RXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvckV2ZW50LCBmYWxz
ZSwgdHJ1ZSwgIldlYiBwYWdlIHdhcyBub3QgYWxsb3dlZCB0byBjcmVhdGUgYSBXZWJHTCBjb250
ZXh0LiIpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdyA9IGRvY3VtZW50LT52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpOwog
ICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBhdHRycyA/IGF0
dHJzLT5hdHRyaWJ1dGVzKCkgOiBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcygpOwogCiAg
ICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7Ci0gICAgICAgIFBhZ2UqIHAgPSBjYW52YXMt
PmRvY3VtZW50KCktPnBhZ2UoKTsKLSAgICAgICAgaWYgKHAgJiYgIXAtPnNldHRpbmdzKCktPm9w
ZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkKCkpCisgICAgICAgIGlmIChzZXR0aW5ncyAmJiAhc2V0
dGluZ3MtPm9wZW5HTE11bHRpc2FtcGxpbmdFbmFibGVkKCkpCiAgICAgICAgICAgICBhdHRyaWJ1
dGVzLmFudGlhbGlhcyA9IGZhbHNlOwogICAgIH0KIApAQCAtNDQ1MSw2ICs0NDY3LDE3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpsb3NlQ29udGV4dEltcGwoV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpMb3N0Q29udGV4dE1vCiAgICAgbV9jb250ZXh0TG9zdCA9IHRydWU7CiAgICAgbV9j
b250ZXh0TG9zdE1vZGUgPSBtb2RlOwogCisgICAgaWYgKG1vZGUgPT0gUmVhbExvc3RDb250ZXh0
KSB7CisgICAgICAgIC8vIEluZm9ybSB0aGUgZW1iZWRkZXIgdGhhdCBhIGxvc3QgY29udGV4dCB3
YXMgcmVjZWl2ZWQuIEluIHJlc3BvbnNlLCB0aGUgZW1iZWRkZXIgbWlnaHQKKyAgICAgICAgLy8g
ZGVjaWRlIHRvIHRha2UgYWN0aW9uIHN1Y2ggYXMgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNz
aW9uIHRvIHVzZSBXZWJHTCBhZ2Fpbi4KKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY2Fu
dmFzKCktPmRvY3VtZW50KCk7CisgICAgICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICAgICAg
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgICAgICAgICBpZiAoZnJhbWUp
CisgICAgICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkTG9zZVdlYkdM
Q29udGV4dChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+Z2V0R3JhcGhpY3NSZXNldFN0YXR1
c0FSQigpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVj
dHMoKTsKIAogICAgIGlmIChtX2RyYXdpbmdCdWZmZXIpIHsKQEAgLTU1ODUsNyArNTYxMiwxNCBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6bWF5YmVSZXN0b3JlQ29udGV4dChUaW1lcjxX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ+KikKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjYW52YXMo
KS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAg
RnJhbWVWaWV3KiB2aWV3ID0gZG9jdW1lbnQtPnZpZXcoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBk
b2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93V2ViR0woZG9jdW1lbnQtPnNl
dHRpbmdzKCkgJiYgZG9jdW1lbnQtPnNldHRpbmdzKCktPndlYkdMRW5hYmxlZCgpKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBp
ZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JvbGxWaWV3KiByb290ID0gdmlldy0+
cm9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBi
NGFiZjg4ZjM1OTk2MWI4OWFlZjg3NjA1NWE0OTc4NTZjZjEzYzVmLi44NWU0ZWVjZjE5Mjk0MWY3
MDIzZWVhNmRiZWRkMDIxZWY3NDMyYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMzUzLDYgKzM1MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
aWYgRU5BQkxFKFJFUVVFU1RfQVVUT0NPTVBMRVRFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVxdWVzdEF1dG9jb21wbGV0ZShQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pID0gMDsKICNlbmRpZgor
CisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJHTChib29s
IGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CisgICAg
ICAgIC8vIEluZm9ybXMgdGhlIGVtYmVkZGVyIHRoYXQgYSBXZWJHTCBjYW52YXMgaW5zaWRlIHRo
aXMgZnJhbWUgcmVjZWl2ZWQgYSBsb3N0IGNvbnRleHQKKyAgICAgICAgLy8gbm90aWZpY2F0aW9u
IHdpdGggdGhlIGdpdmVuIEdMX0FSQl9yb2J1c3RuZXNzIGd1aWx0L2lubm9jZW5jZSBjb2RlIChz
ZWUgRXh0ZW5zaW9uczNELmgpLgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVdlYkdMQ29u
dGV4dChpbnQpIHsgfQorI2VuZGlmCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKaW5kZXgg
NzM5ODBiZjdmMWRkMDg1NTgwYmM1NWQ4ZDljNTY2ZjE5OWRlZjZlNC4uZWMwZmUzMzc1MzcyNTE2
OGMyOTlmZDYwN2Y2OTM2OGRmMmM5ODVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCkBAIC00MjAsNiArNDIwLDEzIEBAIHB1YmxpYzoKICAg
ICAvLyBQbGF0Zm9ybTo6Y3VycmVudCgpLT51c2VyQWdlbnQoKSB3aWxsIGJlIGNhbGxlZCB0byBw
cm92aWRlIG9uZS4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyB1c2VyQWdlbnRPdmVycmlkZShXZWJG
cmFtZSosIGNvbnN0IFdlYlVSTCYgdXJsKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQogCisgICAg
Ly8gV2ViR0wgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKyAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgYSBXZWJHTCBjb250ZXh0
IHdhcyBsb3N0IG9uIHRoaXMgcGFnZSB3aXRoIHRoZQorICAgIC8vIGdpdmVuIHJlYXNvbiAob25l
IG9mIHRoZSBHTF9BUkJfcm9idXN0bmVzcyBzdGF0dXMgY29kZXM7IHNlZQorICAgIC8vIEV4dGVu
c2lvbnMzRC5oIGluIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MpLgorICAgIHZpcnR1YWwgdm9p
ZCBkaWRMb3NlV2ViR0xDb250ZXh0KFdlYkZyYW1lKiwgaW50KSB7IH0KKwogcHJvdGVjdGVkOgog
ICAgIH5XZWJGcmFtZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAppbmRleCAwYjY0MTRiNGUyMjM4Njcy
ZjM0NWY1ZDBiYzI1MjY2OWEyZjM2NDdhLi4xMGI0OTk1ZTVjMjdkMjc2YTljZmUxNDk1NzVmMjQ0
MjhhMzY3YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQ
ZXJtaXNzaW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
UGVybWlzc2lvbkNsaWVudC5oCkBAIC05Myw2ICs5Myw5IEBAIHB1YmxpYzoKICAgICAvLyBDb250
cm9scyB3aGV0aGVyIGVuYWJsaW5nIFdlYiBDb21wb25lbnRzIEFQSSBmb3IgdGhpcyBmcmFtZS4K
ICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKGNvbnN0IFdlYkRvY3VtZW50Jiwg
Ym9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQogCisgICAgLy8gQ29u
dHJvbHMgd2hldGhlciBlbmFibGluZyBXZWJHTCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dXZWJHTChXZWJGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBk
ZWZhdWx0VmFsdWU7IH0KKwogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgZW5hYmxpbmcgSFRNTCBu
b3RpZmljYXRpb25zIGZvciB0aGlzIGZyYW1lLgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0hUTUxO
b3RpZmljYXRpb25zKGNvbnN0IFdlYkRvY3VtZW50JikgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNw
cAppbmRleCA3ZmZlOTQzMzllYzFjNDgyMjk3YTI3MjY1OWU4NjY2MmEzZWQ3N2FjLi43MWRlMTdh
YjhkMmFlNWIyNTg4NTlkMzZhMzYxMGI1OWRjMWY0OWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTE2NjIsNCAr
MTY2MiwyMSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkUmVxdWVzdEF1dG9jb21w
bGV0ZShQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YQogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoV0VCR0wpCitib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dXZWJHTChib29sIGVu
YWJsZWRQZXJTZXR0aW5ncykKK3sKKyAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJh
bWUtPnZpZXdJbXBsKCk7CisgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNs
aWVudCgpKQorICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxv
d1dlYkdMKG1fd2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisKKyAgICByZXR1cm4gZW5h
YmxlZFBlclNldHRpbmdzOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTG9z
ZVdlYkdMQ29udGV4dChpbnQgYXJiUm9idXN0bmVzc0NvbnRleHRMb3N0UmVhc29uKQoreworICAg
IGlmIChtX3dlYkZyYW1lLT5jbGllbnQoKSkKKyAgICAgICAgbV93ZWJGcmFtZS0+Y2xpZW50KCkt
PmRpZExvc2VXZWJHTENvbnRleHQobV93ZWJGcmFtZSwgYXJiUm9idXN0bmVzc0NvbnRleHRMb3N0
UmVhc29uKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggNjU4
OWMzN2JiNzllNTY0MWRmMDNhMmFlZGM0YmZiZDBmYWE4YWUwMC4uMmFhNjI0YmRmMzZkZDI4NjNm
MjIwMTZiZmU3ZWNkMDEwZTcwNzliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKQEAgLTIyOSw2ICsyMjksMTEgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXF1ZXN0QXV0b2NvbXBsZXRlKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6Rm9ybVN0YXRlPikgT1ZFUlJJREU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJHTCkK
KyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJHTChib29sIGVuYWJsZWRQZXJTZXR0aW5ncykgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZExvc2VXZWJHTENvbnRleHQoaW50IGFyYlJvYnVz
dG5lc3NDb250ZXh0TG9zdFJlYXNvbikgT1ZFUlJJREU7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICB2b2lkIG1ha2VEb2N1bWVudFZpZXcoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174005</attachid>
            <date>2012-11-13 15:15:57 -0800</date>
            <delta_ts>2012-11-13 20:13:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101826-20121113151357.patch</filename>
            <type>text/plain</type>
            <size>10394</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU3N2UxZGUxZDVkNDZm
ODg3YThjY2IyOGU3NzhkZjUwYzcxNzVkYi4uY2U2ZmU4NTliNDE4NTYzMWQ2NWRjZGI4ZDI4Y2Ey
YWU3MDQ0M2I2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTEzICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBOb3RpZnkgZW1iZWRkZXIg
b2YgbG9zdCBjb250ZXh0cyBhbmQgYWxsb3cgb3ZlcnJpZGluZyBvZiBXZWJHTCBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4MjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEFkZCBob29rcyBub3Rp
ZnlpbmcgdGhlIGVtYmVkZGVyIHdoZW4gT3BlbkdMIGNvbnRleHRzIGFyZSBsb3N0IGFuZAorICAg
ICAgICBhbGxvd2luZyBvdmVycmlkaW5nIG9mIFdlYkdMIHN1cHBvcnQgb24gYSBwZXItZnJhbWUg
YmFzaXMuCisKKyAgICAgICAgTm8gdGVzdHMgeWV0OyBkb24ndCBrbm93IGhvdyB0byB0ZXN0IHRo
aXMgc29sZWx5IHdpdGhpbiBXZWJLaXQuCisgICAgICAgIEN1cnJlbnRseSBkZXZlbG9waW5nIHRl
c3RzIGluIHRoZSBDaHJvbWl1bSBwb3J0IGV4ZXJjaXNpbmcgdGhlCisgICAgICAgIG5vdGlmaWNh
dGlvbnMgZW5kLXRvLWVuZC4gT25jZSB0aG9zZSBhcmUgaW4gcGxhY2UsIEknbSBwcmVwYXJlZCB0
bworICAgICAgICBpbnZlc3RpZ2F0ZSBhZGRpbmcgdGVzdHMgZm9yIGFsbCBwb3J0cy4KKworICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
KToKKyAgICAgICAgICBDaGVjayB3aGV0aGVyIGVtYmVkZGVyIHZldG9lcyBjcmVhdGlvbiBvZiBu
ZXcgV2ViR0wgY29udGV4dHMuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6Omxvc2VDb250ZXh0SW1wbCk6CisgICAgICAgICAgTm90aWZ5IGVtYmVkZGVyIHRoYXQgY29u
dGV4dCB3YXMgbG9zdC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
bWF5YmVSZXN0b3JlQ29udGV4dCk6CisgICAgICAgICAgQ2hlY2sgd2hldGhlciBlbWJlZGRlciB2
ZXRvZXMgcmVzdG9yYXRpb24gb2YgZXhpc3RpbmcgV2ViR0wgY29udGV4dHMuCisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6YWxsb3dXZWJHTCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6ZGlkTG9zZVdlYkdMQ29udGV4dCk6Cisg
ICAgICAgICAgSG9va3Mgbm90aWZ5aW5nIGVtYmVkZGVyIG9mIGxvc3QgY29udGV4dHMgYW5kIGFz
a2luZyBwZXJtaXNzaW9uIHRvIHJ1biBXZWJHTC4KKwogMjAxMi0xMS0xMyAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTUGFyc2VyOjpzZXRTdHls
ZVNoZWV0KCkgc2hvdWxkIGJlIGlubGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBl
MDFhOGU2MTUyMjE1MmQyNTAyZGE0YmEwOWI2ZGEyNzY3YzMzZGRjLi5kMDU5ZGVhY2FkMTU3OTVm
MzI4NGE2MDE0ZmMyMjFkZGY2ZDdjNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDEyLTExLTEzICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNv
bT4KKworICAgICAgICBOb3RpZnkgZW1iZWRkZXIgb2YgbG9zdCBjb250ZXh0cyBhbmQgYWxsb3cg
b3ZlcnJpZGluZyBvZiBXZWJHTCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgorCisgICAgICAgIEV4cG9zZSBuZXcgRnJhbWVMb2FkZXJDbGllbnQgaG9va3MgdGhyb3Vn
aCBDaHJvbWl1bSdzCisgICAgICAgIFdlYlBlcm1pc3Npb25DbGllbnQgYW5kIFdlYkZyYW1lQ2xp
ZW50LiBEb3duc3RyZWFtIGJyb3dzZXIgdGVzdHMKKyAgICAgICAgd2lsbCBleGVyY2lzZSB0aGlz
IG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJGcmFtZUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lQ2xp
ZW50OjpkaWRMb3NlV2ViR0xDb250ZXh0KToKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVybWlzc2lv
bkNsaWVudC5oOgorICAgICAgICAoV2ViUGVybWlzc2lvbkNsaWVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBlcm1pc3Npb25DbGllbnQ6OmFsbG93V2ViR0wpOgorICAgICAgICAqIHNyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd1dlYkdMKToKKyAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWRMb3NlV2ViR0xDb250ZXh0KToKKyAgICAgICAgKiBz
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudElt
cGwpOgorCiAyMDEyLTExLTEzICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDQ0Ni4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmlu
ZGV4IDViMWIwNWE1ZDQ4MGJiMzE4MTFkZjY0ZGExYWU5MGFkNjQ4NWYxYmYuLjcwY2I4NTNjMzc5
ZmYwNjViOTg3ZDlkZWUxMDQzNTdkMjgxYmRiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCkBAIC0zOTYsMTIgKzM5NywyNCBAQCBwcml2YXRlOgog
CiBQYXNzT3duUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGUoSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgV2ViR0xDb250ZXh0QXR0cmlidXRl
cyogYXR0cnMpCiB7Ci0gICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IGNhbnZhcy0+ZG9jdW1l
bnQoKS0+dmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKTsKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBjYW52YXMtPmRvY3VtZW50KCk7CisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gZnJhbWUtPnNldHRpbmdzKCk7CisKKyAgICAvLyBUaGUgRnJhbWVM
b2FkZXJDbGllbnQgbWlnaHQgY3JlYXRpb24gb2YgYSBuZXcgV2ViR0wgY29udGV4dCBkZXNwaXRl
IHRoZSBwYWdlIHNldHRpbmdzOyBpbgorICAgIC8vIHBhcnRpY3VsYXIsIGlmIFdlYkdMIGNvbnRl
eHRzIHdlcmUgbG9zdCBvbmUgb3IgbW9yZSB0aW1lcyB2aWEgdGhlIEdMX0FSQl9yb2J1c3RuZXNz
IGV4dGVuc2lvbi4KKyAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93V2Vi
R0woc2V0dGluZ3MgJiYgc2V0dGluZ3MtPndlYkdMRW5hYmxlZCgpKSkgeworICAgICAgICBjYW52
YXMtPmRpc3BhdGNoRXZlbnQoV2ViR0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
d2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIldlYiBwYWdlIHdh
cyBub3QgYWxsb3dlZCB0byBjcmVhdGUgYSBXZWJHTCBjb250ZXh0LiIpKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IGRvY3Vt
ZW50LT52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpOwogICAgIEdyYXBoaWNzQ29udGV4dDNE
OjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBhdHRycyA/IGF0dHJzLT5hdHRyaWJ1dGVzKCkgOiBH
cmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcygpOwogCiAgICAgaWYgKGF0dHJpYnV0ZXMuYW50
aWFsaWFzKSB7Ci0gICAgICAgIFBhZ2UqIHAgPSBjYW52YXMtPmRvY3VtZW50KCktPnBhZ2UoKTsK
LSAgICAgICAgaWYgKHAgJiYgIXAtPnNldHRpbmdzKCktPm9wZW5HTE11bHRpc2FtcGxpbmdFbmFi
bGVkKCkpCisgICAgICAgIGlmIChzZXR0aW5ncyAmJiAhc2V0dGluZ3MtPm9wZW5HTE11bHRpc2Ft
cGxpbmdFbmFibGVkKCkpCiAgICAgICAgICAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNl
OwogICAgIH0KIApAQCAtNDQ1MSw2ICs0NDY0LDE1IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojpsb3NlQ29udGV4dEltcGwoV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpMb3N0Q29udGV4dE1v
CiAgICAgbV9jb250ZXh0TG9zdCA9IHRydWU7CiAgICAgbV9jb250ZXh0TG9zdE1vZGUgPSBtb2Rl
OwogCisgICAgaWYgKG1vZGUgPT0gUmVhbExvc3RDb250ZXh0KSB7CisgICAgICAgIC8vIEluZm9y
bSB0aGUgZW1iZWRkZXIgdGhhdCBhIGxvc3QgY29udGV4dCB3YXMgcmVjZWl2ZWQuIEluIHJlc3Bv
bnNlLCB0aGUgZW1iZWRkZXIgbWlnaHQKKyAgICAgICAgLy8gZGVjaWRlIHRvIHRha2UgYWN0aW9u
IHN1Y2ggYXMgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uIHRvIHVzZSBXZWJHTCBhZ2Fp
bi4KKyAgICAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGNhbnZhcygpLT5kb2N1bWVudCgp
KSB7CisgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCkpCisg
ICAgICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkTG9zZVdlYkdMQ29u
dGV4dChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FS
QigpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMo
KTsKIAogICAgIGlmIChtX2RyYXdpbmdCdWZmZXIpIHsKQEAgLTU1ODUsNyArNTYwNywxNCBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6bWF5YmVSZXN0b3JlQ29udGV4dChUaW1lcjxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+KikKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjYW52YXMoKS0+
ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRnJh
bWVWaWV3KiB2aWV3ID0gZG9jdW1lbnQtPnZpZXcoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93V2ViR0woZnJhbWUtPnNldHRpbmdz
KCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPndlYkdMRW5hYmxlZCgpKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcp
CiAgICAgICAgIHJldHVybjsKICAgICBTY3JvbGxWaWV3KiByb290ID0gdmlldy0+cm9vdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiNGFiZjg4ZjM1
OTk2MWI4OWFlZjg3NjA1NWE0OTc4NTZjZjEzYzVmLi44NWU0ZWVjZjE5Mjk0MWY3MDIzZWVhNmRi
ZWRkMDIxZWY3NDMyYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMzUzLDYgKzM1MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxF
KFJFUVVFU1RfQVVUT0NPTVBMRVRFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVxdWVzdEF1
dG9jb21wbGV0ZShQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pID0gMDsKICNlbmRpZgorCisjaWYgRU5B
QkxFKFdFQkdMKQorICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJHTChib29sIGVuYWJsZWRQ
ZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CisgICAgICAgIC8vIElu
Zm9ybXMgdGhlIGVtYmVkZGVyIHRoYXQgYSBXZWJHTCBjYW52YXMgaW5zaWRlIHRoaXMgZnJhbWUg
cmVjZWl2ZWQgYSBsb3N0IGNvbnRleHQKKyAgICAgICAgLy8gbm90aWZpY2F0aW9uIHdpdGggdGhl
IGdpdmVuIEdMX0FSQl9yb2J1c3RuZXNzIGd1aWx0L2lubm9jZW5jZSBjb2RlIChzZWUgRXh0ZW5z
aW9uczNELmgpLgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVdlYkdMQ29udGV4dChpbnQp
IHsgfQorI2VuZGlmCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKaW5kZXggNzM5ODBiZjdm
MWRkMDg1NTgwYmM1NWQ4ZDljNTY2ZjE5OWRlZjZlNC4uZWMwZmUzMzc1MzcyNTE2OGMyOTlmZDYw
N2Y2OTM2OGRmMmM5ODVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRnJhbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZUNsaWVudC5oCkBAIC00MjAsNiArNDIwLDEzIEBAIHB1YmxpYzoKICAgICAvLyBQbGF0
Zm9ybTo6Y3VycmVudCgpLT51c2VyQWdlbnQoKSB3aWxsIGJlIGNhbGxlZCB0byBwcm92aWRlIG9u
ZS4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyB1c2VyQWdlbnRPdmVycmlkZShXZWJGcmFtZSosIGNv
bnN0IFdlYlVSTCYgdXJsKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQogCisgICAgLy8gV2ViR0wg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
KyAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgYSBXZWJHTCBjb250ZXh0IHdhcyBsb3N0
IG9uIHRoaXMgcGFnZSB3aXRoIHRoZQorICAgIC8vIGdpdmVuIHJlYXNvbiAob25lIG9mIHRoZSBH
TF9BUkJfcm9idXN0bmVzcyBzdGF0dXMgY29kZXM7IHNlZQorICAgIC8vIEV4dGVuc2lvbnMzRC5o
IGluIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MpLgorICAgIHZpcnR1YWwgdm9pZCBkaWRMb3Nl
V2ViR0xDb250ZXh0KFdlYkZyYW1lKiwgaW50KSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJG
cmFtZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAppbmRleCAwYjY0MTRiNGUyMjM4NjcyZjM0NWY1ZDBi
YzI1MjY2OWEyZjM2NDdhLi4xMGI0OTk1ZTVjMjdkMjc2YTljZmUxNDk1NzVmMjQ0MjhhMzY3YmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9u
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lv
bkNsaWVudC5oCkBAIC05Myw2ICs5Myw5IEBAIHB1YmxpYzoKICAgICAvLyBDb250cm9scyB3aGV0
aGVyIGVuYWJsaW5nIFdlYiBDb21wb25lbnRzIEFQSSBmb3IgdGhpcyBmcmFtZS4KICAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKGNvbnN0IFdlYkRvY3VtZW50JiwgYm9vbCBkZWZh
dWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQogCisgICAgLy8gQ29udHJvbHMgd2hl
dGhlciBlbmFibGluZyBXZWJHTCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxs
b3dXZWJHTChXZWJGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFs
dWU7IH0KKwogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgZW5hYmxpbmcgSFRNTCBub3RpZmljYXRp
b25zIGZvciB0aGlzIGZyYW1lLgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0hUTUxOb3RpZmljYXRp
b25zKGNvbnN0IFdlYkRvY3VtZW50JikgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCA3
ZmZlOTQzMzllYzFjNDgyMjk3YTI3MjY1OWU4NjY2MmEzZWQ3N2FjLi43MWRlMTdhYjhkMmFlNWIy
NTg4NTlkMzZhMzYxMGI1OWRjMWY0OWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTE2NjIsNCArMTY2MiwyMSBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkUmVxdWVzdEF1dG9jb21wbGV0ZShQYXNz
UmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCR0wp
Citib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dXZWJHTChib29sIGVuYWJsZWRQZXJT
ZXR0aW5ncykKK3sKKyAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJ
bXBsKCk7CisgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQor
ICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkdMKG1f
d2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisKKyAgICByZXR1cm4gZW5hYmxlZFBlclNl
dHRpbmdzOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTG9zZVdlYkdMQ29u
dGV4dChpbnQgYXJiUm9idXN0bmVzc0NvbnRleHRMb3N0UmVhc29uKQoreworICAgIGlmIChtX3dl
YkZyYW1lLT5jbGllbnQoKSkKKyAgICAgICAgbV93ZWJGcmFtZS0+Y2xpZW50KCktPmRpZExvc2VX
ZWJHTENvbnRleHQobV93ZWJGcmFtZSwgYXJiUm9idXN0bmVzc0NvbnRleHRMb3N0UmVhc29uKTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggNjU4OWMzN2JiNzll
NTY0MWRmMDNhMmFlZGM0YmZiZDBmYWE4YWUwMC4uMmFhNjI0YmRmMzZkZDI4NjNmMjIwMTZiZmU3
ZWNkMDEwZTcwNzliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmgKQEAgLTIyOSw2ICsyMjksMTEgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZXF1ZXN0QXV0b2NvbXBsZXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9y
bVN0YXRlPikgT1ZFUlJJREU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dXZWJHTChib29sIGVuYWJsZWRQZXJTZXR0aW5ncykgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZExvc2VXZWJHTENvbnRleHQoaW50IGFyYlJvYnVzdG5lc3NDb250
ZXh0TG9zdFJlYXNvbikgT1ZFUlJJREU7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIG1h
a2VEb2N1bWVudFZpZXcoKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>