<?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>96112</bug_id>
          
          <creation_ts>2012-09-07 08:16:22 -0700</creation_ts>
          <short_desc>[chromium] Add a method didHandleGestureEvent to WebViewClient, called from WebViewImpl::handleGestureEvent.</short_desc>
          <delta_ts>2012-09-19 12:07:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>66687</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Oli Lan">olilan</reporter>
          <assigned_to name="Oli Lan">olilan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714537</commentid>
    <comment_count>0</comment_count>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-07 08:16:22 -0700</bug_when>
    <thetext>[chromium] Allow WebViewClients to handle tap and longpress gesture events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714541</commentid>
    <comment_count>1</comment_count>
      <attachid>162779</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-07 08:19:39 -0700</bug_when>
    <thetext>Created attachment 162779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714542</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 08:23:31 -0700</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>720865</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 10:03:16 -0700</bug_when>
    <thetext>I suspect we&apos;re going to want fishd to review this patch.

I&apos;ve seen this in the diff for a while, but I don&apos;t fully understand why it is necessary.  For example, why isn&apos;t WebKit responsible for simulating mouse events from touch events?  My understanding is that we already have code to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720932</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 10:38:06 -0700</bug_when>
    <thetext>I spoke with olilan by chat and he&apos;s going to investigate whether Android can use the existing mouse event simulation code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722037</commentid>
    <comment_count>5</comment_count>
      <attachid>164415</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-17 10:41:51 -0700</bug_when>
    <thetext>Created attachment 164415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722040</commentid>
    <comment_count>6</comment_count>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-17 10:43:38 -0700</bug_when>
    <thetext>Thanks Adam. I am changing our implementation in Android to use the existing tap/longpress handling as discussed. We still need some client-specific behaviour, so Patch 2 now adds methods didHandleTapEvent and didHandleLongPressEvent, which are called when the events are handled but do not replace the standard handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722116</commentid>
    <comment_count>7</comment_count>
      <attachid>164415</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-17 11:42:20 -0700</bug_when>
    <thetext>Comment on attachment 164415
Patch

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

Thanks.  This is much better.  A couple small points below.

&gt; Source/WebKit/chromium/public/WebViewClient.h:147
&gt; +    // Called when GestureTap or GestureLongPress are handled.
&gt; +    virtual void didHandleTapEvent(int x, int y) { }
&gt; +    virtual void didHandleLongPressEvent(int x, int y) { }

Should we just pass the whole WebGestureEvent?  The client might be interested in more fields in the future and then we won&apos;t need to rev the API

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:736
&gt; +        m_client-&gt;didHandleTapEvent(event.x, event.y);
&gt; +
&gt;          return gestureHandled;

Do we want to call this API when gestureHandled is both true and when it is false?  It seems a bit odd to tell the client that we handled this event when gestureHandled is false...  Maybe we should pass this bool to the client?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722680</commentid>
    <comment_count>8</comment_count>
      <attachid>164415</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-18 05:16:31 -0700</bug_when>
    <thetext>Comment on attachment 164415
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:147
&gt;&gt; +    virtual void didHandleLongPressEvent(int x, int y) { }
&gt; 
&gt; Should we just pass the whole WebGestureEvent?  The client might be interested in more fields in the future and then we won&apos;t need to rev the API

Yes, that makes sense. Once we&apos;re passing the gesture event though, it doesn&apos;t seem right to have separate methods for tap and long press as we&apos;ll be passing the event type in the WebGestureEvent. So I&apos;ll change this to add just a didHandleGestureEvent method and call it for any gesture event.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:736
&gt;&gt;          return gestureHandled;
&gt; 
&gt; Do we want to call this API when gestureHandled is both true and when it is false?  It seems a bit odd to tell the client that we handled this event when gestureHandled is false...  Maybe we should pass this bool to the client?

Good point; passing the bool makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722686</commentid>
    <comment_count>9</comment_count>
      <attachid>164536</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-18 05:21:27 -0700</bug_when>
    <thetext>Created attachment 164536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723001</commentid>
    <comment_count>10</comment_count>
      <attachid>164536</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-18 13:05:45 -0700</bug_when>
    <thetext>Comment on attachment 164536
Patch

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

&gt; Source/WebKit/chromium/public/WebViewClient.h:146
&gt; +    virtual void didHandleGestureEvent(const WebGestureEvent&amp; event, bool handled) { }

The handled parameter here still seems a bit odd.  What does it mean for didHandleGestureEvent to be called when handled is false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723008</commentid>
    <comment_count>11</comment_count>
      <attachid>164536</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-18 13:15:01 -0700</bug_when>
    <thetext>Comment on attachment 164536
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:146
&gt;&gt; +    virtual void didHandleGestureEvent(const WebGestureEvent&amp; event, bool handled) { }
&gt; 
&gt; The handled parameter here still seems a bit odd.  What does it mean for didHandleGestureEvent to be called when handled is false?

This might just be a naming issue.  Would defaultWasPrevented be an appropriate name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723010</commentid>
    <comment_count>12</comment_count>
      <attachid>164536</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-18 13:18:27 -0700</bug_when>
    <thetext>Comment on attachment 164536
Patch

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

&gt;&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:146
&gt;&gt;&gt; +    virtual void didHandleGestureEvent(const WebGestureEvent&amp; event, bool handled) { }
&gt;&gt; 
&gt;&gt; The handled parameter here still seems a bit odd.  What does it mean for didHandleGestureEvent to be called when handled is false?
&gt; 
&gt; This might just be a naming issue.  Would defaultWasPrevented be an appropriate name?

Looking around in the code, &quot;eventSwallowed&quot; looks like it might be an appropriate name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723482</commentid>
    <comment_count>13</comment_count>
      <attachid>164536</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-19 05:57:41 -0700</bug_when>
    <thetext>Comment on attachment 164536
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:146
&gt;&gt;&gt;&gt; +    virtual void didHandleGestureEvent(const WebGestureEvent&amp; event, bool handled) { }
&gt;&gt;&gt; 
&gt;&gt;&gt; The handled parameter here still seems a bit odd.  What does it mean for didHandleGestureEvent to be called when handled is false?
&gt;&gt; 
&gt;&gt; This might just be a naming issue.  Would defaultWasPrevented be an appropriate name?
&gt; 
&gt; Looking around in the code, &quot;eventSwallowed&quot; looks like it might be an appropriate name.

OK, changing to eventSwallowed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723483</commentid>
    <comment_count>14</comment_count>
      <attachid>164723</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-09-19 05:58:59 -0700</bug_when>
    <thetext>Created attachment 164723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723695</commentid>
    <comment_count>15</comment_count>
      <attachid>164723</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-19 11:46:21 -0700</bug_when>
    <thetext>Comment on attachment 164723
Patch

Thanks for iterating on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723707</commentid>
    <comment_count>16</comment_count>
      <attachid>164723</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 12:07:15 -0700</bug_when>
    <thetext>Comment on attachment 164723
Patch

Clearing flags on attachment: 164723

Committed r129029: &lt;http://trac.webkit.org/changeset/129029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723708</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 12:07:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162779</attachid>
            <date>2012-09-07 08:19:39 -0700</date>
            <delta_ts>2012-09-17 10:41:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96112-20120907161918.patch</filename>
            <type>text/plain</type>
            <size>5537</size>
            <attacher name="Oli Lan">olilan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDNmZjQxMWQwZDA4OWVmZGFmODFjMDA5NTY4NGZiYTYwYzVmZmJmMWQuLmU0ZjVlYjEyOGYwOTll
OTYwZTZmYjYwOWE5NDdkNDMyZmIzOWRmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMDcgIE9saSBMYW4gIDxvbGlsYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgV2ViVmlld0NsaWVudHMgdG8gaGFuZGxlIHRh
cCBhbmQgbG9uZ3ByZXNzIGdlc3R1cmUgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIG5ldyBtZXRob2RzIGhhbmRsZVRhcEV2ZW50IGFu
ZCBoYW5kbGVMb25nUHJlc3NFdmVudCB0byBXZWJWaWV3Q2xpZW50LCBjYWxsZWQgZnJvbQorICAg
ICAgICBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50IGZvciB0aGUgY29ycmVzcG9uZGlu
ZyBldmVudHMuIFRoZSBjbGllbnQgY2FuIHJldHVybiB0cnVlCisgICAgICAgIHRvIGluZGljYXRl
IGl0IGhhcyBoYW5kbGVkIHRoZSBldmVudC4KKworICAgICAgICBUaGlzIHdpbGwgYmUgdXNlZCBi
eSB0aGUgQW5kcm9pZCBwb3J0IHRvIGltcGxlbWVudCBwbGF0Zm9ybS1zcGVjaWZpYyBnZXN0dXJl
IGJlaGF2aW91cgorICAgICAgICAoZS5nLiBjb252ZXJ0aW5nIHRhcHMgdG8gbW91c2UgY2xpY2tz
KS4KKworICAgICAgICBUaGlzIGlzIHRlc3RlZCBieSB0aGUgbmV3IHRlc3QgV2ViVmlld1Rlc3Qu
Q2xpZW50VGFwSGFuZGxlcnMuICAgICAgICAKKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xp
ZW50Lmg6CisgICAgICAgIChXZWJWaWV3Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0NsaWVudDo6aGFuZGxlVGFwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50
OjpoYW5kbGVMb25nUHJlc3NFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogdGVzdHMvV2ViVmlld1Rlc3QuY3BwOgorCiAyMDEyLTA5LTA3ICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFgxMSBHbG9iYWwg
U2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgKaW5kZXggODM5ZWQwZDE3NDFmYzFmOTZlNGM1NGRmMGM0NGU2ZWJjY2EyZjZhNi4uNTU5ZTZm
ZmZjMTAxMTZlZTljYzgwNjI4MTQxZTk5MWEzYWQ3YjdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBwdWJs
aWM6CiAgICAgLy8gQ2FsbGVkIHRvIHJldHJpZXZlIHRoZSBwcm92aWRlciBvZiBkZXNrdG9wIG5v
dGlmaWNhdGlvbnMuCiAgICAgdmlydHVhbCBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlm
aWNhdGlvblByZXNlbnRlcigpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENhbGxlZCB3aGVuIEdl
c3R1cmVUYXAgb3IgR2VzdHVyZUxvbmdQcmVzcyBhcmUgaGFuZGxlZC4KKyAgICB2aXJ0dWFsIGJv
b2wgaGFuZGxlVGFwRXZlbnQoaW50IHgsIGludCB5KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVMb25nUHJlc3NFdmVudChpbnQgeCwgaW50IHkpIHsgcmV0dXJuIGZh
bHNlOyB9CisKICAgICAvLyBDYWxsZWQgdG8gcmVxdWVzdCBhbiBpY29uIGZvciB0aGUgc3BlY2lm
aWVkIGZpbGVuYW1lcy4KICAgICAvLyBUaGUgaWNvbiBpcyBzaG93biBpbiBhIGZpbGUgdXBsb2Fk
IGNvbnRyb2wuCiAgICAgdmlydHVhbCBib29sIHF1ZXJ5SWNvbkZvckZpbGVzKGNvbnN0IFdlYlZl
Y3RvcjxXZWJTdHJpbmc+JiBmaWxlbmFtZXMsIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbiopIHsg
cmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKaW5kZXggZjQ3ZjlkY2I4YTQzMGU5YmJkNGZjYjQwODUzNWU5MzM1ZjEwYzIwMS4uOTkzMWI4
NWNmNDU5MDU2ZGVjMTFkNWQ5NmU5NjFiN2I5NDA0ZjJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNzA0LDYgKzcwNCw5IEBAIGJvb2wgV2ViVmll
d0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQog
ICAgICAgICBpZiAoZGV0ZWN0Q29udGVudE9uVG91Y2goV2ViUG9pbnQoZXZlbnQueCwgZXZlbnQu
eSksIGV2ZW50LnR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAgICAgaWYg
KG1fY2xpZW50LT5oYW5kbGVUYXBFdmVudChldmVudC54LCBldmVudC55KSkKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworCiAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cENvbnRhaW5lcj4g
c2VsZWN0UG9wdXA7CiAgICAgICAgIHNlbGVjdFBvcHVwID0gbV9zZWxlY3RQb3B1cDsKICAgICAg
ICAgaGlkZVNlbGVjdFBvcHVwKCk7CkBAIC03NDAsNiArNzQzLDkgQEAgYm9vbCBXZWJWaWV3SW1w
bDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAgICAg
ICAgIGlmIChkZXRlY3RDb250ZW50T25Ub3VjaChXZWJQb2ludChldmVudC54LCBldmVudC55KSwg
ZXZlbnQudHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgICAgICBpZiAobV9j
bGllbnQtPmhhbmRsZUxvbmdQcmVzc0V2ZW50KGV2ZW50LngsIGV2ZW50LnkpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKICAgICAgICAgbV9wYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIo
KS0+Y2xlYXJDb250ZXh0TWVudSgpOwogICAgICAgICBtX2NvbnRleHRNZW51QWxsb3dlZCA9IHRy
dWU7CiAgICAgICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50KG1h
aW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVmlld1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAKaW5kZXggNGUyNTUzYTM2Mzg3NTlmNTA1NWI0ZWVl
NmE2OWU4ZGNmNWYxOWM2Ni4uNDZmYTM2Nzg4YmI2MjM0MTdmZTdkZDFiOTU0MmEyMTlkNDBhOGUx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAKQEAg
LTEyMCw2ICsxMjAsNDMgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9jdXNlZDsKIH07CiAKK2Ns
YXNzIFRhcEhhbmRsaW5nV2ViVmlld0NsaWVudCA6IHB1YmxpYyBXZWJWaWV3Q2xpZW50IHsKK3B1
YmxpYzoKKyAgICAvLyBXZWJWaWV3Q2xpZW50IG1ldGhvZHMKKyAgICB2aXJ0dWFsIGJvb2wgaGFu
ZGxlVGFwRXZlbnQoaW50IHgsIGludCB5KQorICAgIHsKKyAgICAgICAgbV90YXBYID0geDsKKyAg
ICAgICAgbV90YXBZID0geTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmly
dHVhbCBib29sIGhhbmRsZUxvbmdQcmVzc0V2ZW50KGludCB4LCBpbnQgeSkKKyAgICB7CisgICAg
ICAgIG1fbG9uZ3ByZXNzWCA9IHg7CisgICAgICAgIG1fbG9uZ3ByZXNzWSA9IHk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8vIExvY2FsIG1ldGhvZHMKKyAgICB2b2lkIHJl
c2V0KCkKKyAgICB7CisgICAgICAgIG1fdGFwWCA9IC0xOworICAgICAgICBtX3RhcFkgPSAtMTsK
KyAgICAgICAgbV9sb25ncHJlc3NYID0gLTE7CisgICAgICAgIG1fbG9uZ3ByZXNzWSA9IC0xOwor
ICAgIH0KKyAgICBpbnQgdGFwWCgpIHsgcmV0dXJuIG1fdGFwWDsgfQorICAgIGludCB0YXBZKCkg
eyByZXR1cm4gbV90YXBZOyB9CisgICAgaW50IGxvbmdwcmVzc1goKSB7IHJldHVybiBtX2xvbmdw
cmVzc1g7IH0KKyAgICBpbnQgbG9uZ3ByZXNzWSgpIHsgcmV0dXJuIG1fbG9uZ3ByZXNzWTsgfQor
Citwcml2YXRlOgorICAgIGludCBtX3RhcFg7CisgICAgaW50IG1fdGFwWTsKKyAgICBpbnQgbV9s
b25ncHJlc3NYOworICAgIGludCBtX2xvbmdwcmVzc1k7Cit9OworCiBjbGFzcyBXZWJWaWV3VGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKICAgICBXZWJWaWV3VGVzdCgpCkBA
IC01NTAsNCArNTg3LDI4IEBAIFRFU1RfRihXZWJWaWV3VGVzdCwgRGV0ZWN0Q29udGVudEFyb3Vu
ZFBvc2l0aW9uKQogICAgIHdlYlZpZXctPmNsb3NlKCk7CiB9CiAKK1RFU1RfRihXZWJWaWV3VGVz
dCwgQ2xpZW50VGFwSGFuZGxpbmcpCit7CisgICAgVGFwSGFuZGxpbmdXZWJWaWV3Q2xpZW50IGNs
aWVudDsKKyAgICBjbGllbnQucmVzZXQoKTsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVU
ZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQoImFib3V0OmJsYW5rIiwgdHJ1ZSwgMCwg
JmNsaWVudCk7CisgICAgV2ViR2VzdHVyZUV2ZW50IGV2ZW50OworICAgIGV2ZW50LnR5cGUgPSBX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwOworICAgIGV2ZW50LnggPSAzOworICAgIGV2ZW50Lnkg
PSA4OworICAgIHdlYlZpZXctPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOworICAgIHdlYmtpdF9z
dXBwb3J0OjpSdW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKKyAgICBFWFBFQ1RfRVEoMywgY2xpZW50
LnRhcFgoKSk7CisgICAgRVhQRUNUX0VRKDgsIGNsaWVudC50YXBZKCkpOworICAgIGNsaWVudC5y
ZXNldCgpOworICAgIGV2ZW50LnR5cGUgPSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNz
OworICAgIGV2ZW50LnggPSAyNTsKKyAgICBldmVudC55ID0gNzsKKyAgICB3ZWJWaWV3LT5oYW5k
bGVJbnB1dEV2ZW50KGV2ZW50KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UnVuQWxsUGVuZGluZ01l
c3NhZ2VzKCk7CisgICAgRVhQRUNUX0VRKDI1LCBjbGllbnQubG9uZ3ByZXNzWCgpKTsKKyAgICBF
WFBFQ1RfRVEoNywgY2xpZW50LmxvbmdwcmVzc1koKSk7CisgICAgd2ViVmlldy0+Y2xvc2UoKTsK
K30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164415</attachid>
            <date>2012-09-17 10:41:51 -0700</date>
            <delta_ts>2012-09-18 05:21:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96112-20120917184119.patch</filename>
            <type>text/plain</type>
            <size>5284</size>
            <attacher name="Oli Lan">olilan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDViZjczNGFkMzNmOTRiNDQ3YmQ2NTdiY2EyZDU0YmQyOWY5ZGU5NWIuLjc1Mzg3ZjFiODdkMDM5
MzYwZWU3Y2MyMGQ5Mjk5ZjQ2NjQxMmM4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDktMTcgIE9saSBMYW4gIDxvbGlsYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgV2ViVmlld0NsaWVudHMgdG8gaGFuZGxlIHRh
cCBhbmQgbG9uZ3ByZXNzIGdlc3R1cmUgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIG5ldyBtZXRob2RzIGRpZEhhbmRsZVRhcEV2ZW50
IGFuZCBkaWRIYW5kbGVMb25nUHJlc3NFdmVudCB0byBXZWJWaWV3Q2xpZW50LAorICAgICAgICBj
YWxsZWQgZnJvbSBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50IGZvciB0aGUgY29ycmVz
cG9uZGluZyBldmVudHMuCisKKyAgICAgICAgVGhpcyB3aWxsIGJlIHVzZWQgYnkgdGhlIEFuZHJv
aWQgcG9ydCB0byBpbXBsZW1lbnQgcGxhdGZvcm0tc3BlY2lmaWMgZ2VzdHVyZSBiZWhhdmlvdXIu
CisKKyAgICAgICAgVGhpcyBpcyB0ZXN0ZWQgYnkgdGhlIG5ldyB0ZXN0IFdlYlZpZXdUZXN0LkNs
aWVudFRhcEhhbmRsZXJzLiAgICAgICAgCisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVu
dC5oOgorICAgICAgICAoV2ViVmlld0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnQ6OmhhbmRsZVRhcEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6
aGFuZGxlTG9uZ1ByZXNzRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAg
ICAqIHRlc3RzL1dlYlZpZXdUZXN0LmNwcDoKKwogMjAxMi0wOS0xNSAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhdXRvbWF0
aWNhbGx5IGRldGVjdCBpZiBjbGFzcyBoYXMgcmVwb3J0TWVtb3J5VXNhZ2UgbWV0aG9kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggODM5ZWQw
ZDE3NDFmYzFmOTZlNGM1NGRmMGM0NGU2ZWJjY2EyZjZhNi4uZGVhZmZiMzIxNTFlOWFjZDk1ZWM0
YTRjZDI5NWU3NTU5YjhhZGIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQ2Fs
bGVkIHRvIHJldHJpZXZlIHRoZSBwcm92aWRlciBvZiBkZXNrdG9wIG5vdGlmaWNhdGlvbnMuCiAg
ICAgdmlydHVhbCBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRl
cigpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENhbGxlZCB3aGVuIEdlc3R1cmVUYXAgb3IgR2Vz
dHVyZUxvbmdQcmVzcyBhcmUgaGFuZGxlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlVGFw
RXZlbnQoaW50IHgsIGludCB5KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlTG9uZ1By
ZXNzRXZlbnQoaW50IHgsIGludCB5KSB7IH0KKwogICAgIC8vIENhbGxlZCB0byByZXF1ZXN0IGFu
IGljb24gZm9yIHRoZSBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIC8vIFRoZSBpY29uIGlzIHNo
b3duIGluIGEgZmlsZSB1cGxvYWQgY29udHJvbC4KICAgICB2aXJ0dWFsIGJvb2wgcXVlcnlJY29u
Rm9yRmlsZXMoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGZpbGVuYW1lcywgV2ViSWNvbkxv
YWRpbmdDb21wbGV0aW9uKikgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBkMThjZDIzNmNlZDQ5MmQzNWY3MTMwMmIxODM2
MDZjYzI1ZDU5NDMzLi45YWEzMTg1NDk4ZDViMGYyNDc1NGUxOTgzNTFiY2JmODAxMWRjOTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC03MzEsNiAr
NzMxLDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdl
c3R1cmVFdmVudCYgZXZlbnQpCiAgICAgICAgICAgICBoaWRlU2VsZWN0UG9wdXAoKTsKICAgICAg
ICAgfQogCisgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVUYXBFdmVudChldmVudC54LCBldmVu
dC55KTsKKwogICAgICAgICByZXR1cm4gZ2VzdHVyZUhhbmRsZWQ7CiAgICAgfQogICAgIGNhc2Ug
V2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoKQEAgLTc0Nyw2ICs3NDksOSBAQCBi
b29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50
JiBldmVudCkKICAgICAgICAgUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZl
bnQobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpOwogICAgICAgICBib29sIGhh
bmRsZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29u
dGV4dE1lbnVFdmVudEZvckdlc3R1cmUocGxhdGZvcm1FdmVudCk7CiAgICAgICAgIG1fY29udGV4
dE1lbnVBbGxvd2VkID0gZmFsc2U7CisKKyAgICAgICAgbV9jbGllbnQtPmRpZEhhbmRsZUxvbmdQ
cmVzc0V2ZW50KGV2ZW50LngsIGV2ZW50LnkpOworCiAgICAgICAgIHJldHVybiBoYW5kbGVkOwog
ICAgIH0KICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBEb3duOiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVmlld1Rlc3QuY3BwCmluZGV4IGI3YWI2NThkZWVj
ZjZjZDVlZmIzYzgwYWExMDJhYThlZTdhMDI5ZGYuLjY0YWJjZWE2MTEyYWFmNzdhZWI4N2Y2ZmFi
YmQ2YTUzNzYxNGMyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViVmlld1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVmll
d1Rlc3QuY3BwCkBAIC0xMjAsNiArMTIwLDQxIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZvY3Vz
ZWQ7CiB9OwogCitjbGFzcyBUYXBIYW5kbGluZ1dlYlZpZXdDbGllbnQgOiBwdWJsaWMgV2ViVmll
d0NsaWVudCB7CitwdWJsaWM6CisgICAgLy8gV2ViVmlld0NsaWVudCBtZXRob2RzCisgICAgdmly
dHVhbCB2b2lkIGRpZEhhbmRsZVRhcEV2ZW50KGludCB4LCBpbnQgeSkKKyAgICB7CisgICAgICAg
IG1fdGFwWCA9IHg7CisgICAgICAgIG1fdGFwWSA9IHk7CisgICAgfQorCisgICAgdmlydHVhbCB2
b2lkIGRpZEhhbmRsZUxvbmdQcmVzc0V2ZW50KGludCB4LCBpbnQgeSkKKyAgICB7CisgICAgICAg
IG1fbG9uZ3ByZXNzWCA9IHg7CisgICAgICAgIG1fbG9uZ3ByZXNzWSA9IHk7CisgICAgfQorCisg
ICAgLy8gTG9jYWwgbWV0aG9kcworICAgIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbV90
YXBYID0gLTE7CisgICAgICAgIG1fdGFwWSA9IC0xOworICAgICAgICBtX2xvbmdwcmVzc1ggPSAt
MTsKKyAgICAgICAgbV9sb25ncHJlc3NZID0gLTE7CisgICAgfQorICAgIGludCB0YXBYKCkgeyBy
ZXR1cm4gbV90YXBYOyB9CisgICAgaW50IHRhcFkoKSB7IHJldHVybiBtX3RhcFk7IH0KKyAgICBp
bnQgbG9uZ3ByZXNzWCgpIHsgcmV0dXJuIG1fbG9uZ3ByZXNzWDsgfQorICAgIGludCBsb25ncHJl
c3NZKCkgeyByZXR1cm4gbV9sb25ncHJlc3NZOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdGFw
WDsKKyAgICBpbnQgbV90YXBZOworICAgIGludCBtX2xvbmdwcmVzc1g7CisgICAgaW50IG1fbG9u
Z3ByZXNzWTsKK307CisKIGNsYXNzIFdlYlZpZXdUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
ewogcHVibGljOgogICAgIFdlYlZpZXdUZXN0KCkKQEAgLTU4OSw0ICs2MjQsMjggQEAgVEVTVF9G
KFdlYlZpZXdUZXN0LCBEZXRlY3RDb250ZW50QXJvdW5kUG9zaXRpb24pCiAgICAgd2ViVmlldy0+
Y2xvc2UoKTsKIH0KIAorVEVTVF9GKFdlYlZpZXdUZXN0LCBDbGllbnRUYXBIYW5kbGluZykKK3sK
KyAgICBUYXBIYW5kbGluZ1dlYlZpZXdDbGllbnQgY2xpZW50OworICAgIGNsaWVudC5yZXNldCgp
OworICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3
QW5kTG9hZCgiYWJvdXQ6YmxhbmsiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICBXZWJHZXN0dXJl
RXZlbnQgZXZlbnQ7CisgICAgZXZlbnQudHlwZSA9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXA7
CisgICAgZXZlbnQueCA9IDM7CisgICAgZXZlbnQueSA9IDg7CisgICAgd2ViVmlldy0+aGFuZGxl
SW5wdXRFdmVudChldmVudCk7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bkFsbFBlbmRpbmdNZXNz
YWdlcygpOworICAgIEVYUEVDVF9FUSgzLCBjbGllbnQudGFwWCgpKTsKKyAgICBFWFBFQ1RfRVEo
OCwgY2xpZW50LnRhcFkoKSk7CisgICAgY2xpZW50LnJlc2V0KCk7CisgICAgZXZlbnQudHlwZSA9
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M7CisgICAgZXZlbnQueCA9IDI1OworICAg
IGV2ZW50LnkgPSA3OworICAgIHdlYlZpZXctPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOworICAg
IHdlYmtpdF9zdXBwb3J0OjpSdW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKKyAgICBFWFBFQ1RfRVEo
MjUsIGNsaWVudC5sb25ncHJlc3NYKCkpOworICAgIEVYUEVDVF9FUSg3LCBjbGllbnQubG9uZ3By
ZXNzWSgpKTsKKyAgICB3ZWJWaWV3LT5jbG9zZSgpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164536</attachid>
            <date>2012-09-18 05:21:27 -0700</date>
            <delta_ts>2012-09-19 05:58:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96112-20120918132054.patch</filename>
            <type>text/plain</type>
            <size>9972</size>
            <attacher name="Oli Lan">olilan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDViZjczNGFkMzNmOTRiNDQ3YmQ2NTdiY2EyZDU0YmQyOWY5ZGU5NWIuLjRmOGFiNzJkNDJlNzQx
MTgwN2M1ODRjNjQ3YWRhYmRjMDY4NTNhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMDktMTcgIE9saSBMYW4gIDxvbGlsYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgbWV0aG9kIGRpZEhhbmRsZUdlc3R1cmVFdmVu
dCB0byBXZWJWaWV3Q2xpZW50LCBjYWxsZWQgZnJvbSBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVy
ZUV2ZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTYxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIGEgbmV3IG1ldGhvZCBkaWRIYW5kbGVHZXN0dXJlRXZlbnQgdG8gV2ViVmlld0NsaWVudCwg
Y2FsbGVkIGZyb20gV2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudC4KKworICAgICAgICBU
aGlzIHdpbGwgYmUgdXNlZCBieSB0aGUgQW5kcm9pZCBwb3J0IHRvIGltcGxlbWVudCBwbGF0Zm9y
bS1zcGVjaWZpYyBnZXN0dXJlIGJlaGF2aW91ci4KKworICAgICAgICBUaGlzIGlzIHRlc3RlZCBi
eSB0aGUgbmV3IHRlc3QgV2ViVmlld1Rlc3QuQ2xpZW50VGFwSGFuZGxlcnMuICAgICAgICAKKwor
ICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJWaWV3Q2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGlkSGFuZGxlR2VzdHVyZUV2ZW50
KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKiB0ZXN0cy9XZWJWaWV3VGVz
dC5jcHA6CisKIDIwMTItMDktMTUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYXV0b21hdGljYWxseSBkZXRlY3QgaWYgY2xh
c3MgaGFzIHJlcG9ydE1lbW9yeVVzYWdlIG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDgzOWVkMGQxNzQxZmMxZjk2ZTRjNTRkZjBj
NDRlNmViY2NhMmY2YTYuLmM1NTM4ZmU0NmRjNDQwOGIxMGM2MzcxNmMyNzNlOTM3OTkwYzcwNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAg
LTE0Miw2ICsxNDIsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHRvIHJldHJpZXZlIHRoZSBw
cm92aWRlciBvZiBkZXNrdG9wIG5vdGlmaWNhdGlvbnMuCiAgICAgdmlydHVhbCBXZWJOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIHsgcmV0dXJuIDA7IH0KIAor
ICAgIC8vIENhbGxlZCB3aGVuIGEgZ2VzdHVyZSBldmVudCBpcyBoYW5kbGVkLgorICAgIHZpcnR1
YWwgdm9pZCBkaWRIYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVu
dCwgYm9vbCBoYW5kbGVkKSB7IH0KKwogICAgIC8vIENhbGxlZCB0byByZXF1ZXN0IGFuIGljb24g
Zm9yIHRoZSBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIC8vIFRoZSBpY29uIGlzIHNob3duIGlu
IGEgZmlsZSB1cGxvYWQgY29udHJvbC4KICAgICB2aXJ0dWFsIGJvb2wgcXVlcnlJY29uRm9yRmls
ZXMoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGZpbGVuYW1lcywgV2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uKikgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAppbmRleCBkMThjZDIzNmNlZDQ5MmQzNWY3MTMwMmIxODM2MDZjYzI1
ZDU5NDMzLi41ZGY3M2E5ZTY4NzBjODRiYTg3ZGEwYWQ1ZTJjM2UwNzg5MTk5NjkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC02ODIsNiArNjgyLDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsQnkoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRl
bHRhKQogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRs
ZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogeworICAgIGJvb2wg
aGFuZGxlZCA9IGZhbHNlOwogICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nU3RhcnQ6IHsKICAgICAgICAgbV9jbGllbnQtPmNhbmNl
bFNjaGVkdWxlZENvbnRlbnRJbnRlbnRzKCk7CkBAIC02OTIsMTggKzY5MywyMSBAQCBib29sIFdl
YlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVu
dCkKICAgICAgICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBmbGluZ0N1cnZlID0gUGxh
dGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5OjpnZXQoKS0+Y3JlYXRlQ3VydmUoZXZlbnQuZGF0YS5m
bGluZ1N0YXJ0LnNvdXJjZURldmljZSwgRmxvYXRQb2ludChldmVudC5kYXRhLmZsaW5nU3RhcnQu
dmVsb2NpdHlYLCBldmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlZKSk7CiAgICAgICAgIG1f
Z2VzdHVyZUFuaW1hdGlvbiA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3JlYXRl
KGZsaW5nQ3VydmUucmVsZWFzZSgpLCB0aGlzKTsKICAgICAgICAgc2NoZWR1bGVBbmltYXRpb24o
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5j
ZWw6CiAgICAgICAgIGlmIChtX2dlc3R1cmVBbmltYXRpb24pIHsKICAgICAgICAgICAgIG1fZ2Vz
dHVyZUFuaW1hdGlvbi5jbGVhcigpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICBoYW5kbGVkID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcDogewogICAg
ICAgICBtX2NsaWVudC0+Y2FuY2VsU2NoZWR1bGVkQ29udGVudEludGVudHMoKTsKLSAgICAgICAg
aWYgKGRldGVjdENvbnRlbnRPblRvdWNoKFdlYlBvaW50KGV2ZW50LngsIGV2ZW50LnkpLCBldmVu
dC50eXBlKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZGV0ZWN0Q29u
dGVudE9uVG91Y2goV2ViUG9pbnQoZXZlbnQueCwgZXZlbnQueSksIGV2ZW50LnR5cGUpKSB7Cisg
ICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CiAKICAgICAgICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyPiBzZWxlY3RQb3B1cDsK
ICAgICAgICAgc2VsZWN0UG9wdXAgPSBtX3NlbGVjdFBvcHVwOwpAQCAtNzE2LDEyICs3MjAsMTQg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVF
dmVudCYgZXZlbnQpCiAgICAgICAgICAgICBmaW5kR29vZFRvdWNoVGFyZ2V0cyhib3VuZGluZ0Jv
eCwgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLCBwYWdlU2NhbGVGYWN0b3IoKSwgZ29vZFRhcmdl
dHMpOwogICAgICAgICAgICAgLy8gRklYTUU6IHJlcGxhY2UgdG91Y2ggYWRqdXN0bWVudCBjb2Rl
IHdoZW4gbnVtYmVyT2ZHb29kVGFyZ2V0cyA9PSAxPwogICAgICAgICAgICAgLy8gU2luZ2xlIGNh
bmRpZGF0ZSBjYXNlIGlzIGN1cnJlbnRseSBoYW5kbGVkIGJ5OiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxMDEKLSAgICAgICAgICAgIGlmIChnb29kVGFyZ2V0cy5z
aXplKCkgPj0gMiAmJiBtX2NsaWVudCAmJiBtX2NsaWVudC0+ZGlkVGFwTXVsdGlwbGVUYXJnZXRz
KGV2ZW50LCBnb29kVGFyZ2V0cykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICBpZiAoZ29vZFRhcmdldHMuc2l6ZSgpID49IDIgJiYgbV9jbGllbnQgJiYgbV9jbGll
bnQtPmRpZFRhcE11bHRpcGxlVGFyZ2V0cyhldmVudCwgZ29vZFRhcmdldHMpKSB7CisgICAgICAg
ICAgICAgICAgaGFuZGxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIg
cGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7Ci0gICAg
ICAgIGJvb2wgZ2VzdHVyZUhhbmRsZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50
SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7CisgICAgICAgIGhh
bmRsZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVH
ZXN0dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7CiAKICAgICAgICAgaWYgKG1fc2VsZWN0UG9wdXAg
JiYgbV9zZWxlY3RQb3B1cCA9PSBzZWxlY3RQb3B1cCkgewogICAgICAgICAgICAgLy8gVGhhdCB0
YXAgdHJpZ2dlcmVkIGEgc2VsZWN0IHBvcHVwIHdoaWNoIGlzIHRoZSBzYW1lIGFzIHRoZSBvbmUg
dGhhdApAQCAtNzMxLDIzICs3MzcsMjYgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVy
ZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAgICAgICAgICAgICBoaWRlU2Vs
ZWN0UG9wdXAoKTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBnZXN0dXJlSGFuZGxlZDsK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3
b0ZpbmdlclRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6IHsK
ICAgICAgICAgaWYgKCFtYWluRnJhbWVJbXBsKCkgfHwgIW1haW5GcmFtZUltcGwoKS0+ZnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICBtX2NsaWVudC0+Y2FuY2VsU2NoZWR1bGVkQ29udGVudEludGVudHMoKTsKLSAgICAg
ICAgaWYgKGRldGVjdENvbnRlbnRPblRvdWNoKFdlYlBvaW50KGV2ZW50LngsIGV2ZW50LnkpLCBl
dmVudC50eXBlKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZGV0ZWN0
Q29udGVudE9uVG91Y2goV2ViUG9pbnQoZXZlbnQueCwgZXZlbnQueSksIGV2ZW50LnR5cGUpKSB7
CisgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CiAKICAgICAgICAgbV9wYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS0+Y2xlYXJDb250
ZXh0TWVudSgpOwogICAgICAgICBtX2NvbnRleHRNZW51QWxsb3dlZCA9IHRydWU7CiAgICAgICAg
IFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50KG1haW5GcmFtZUltcGwo
KS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKLSAgICAgICAgYm9vbCBoYW5kbGVkID0gbWFpbkZyYW1l
SW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnRGb3JH
ZXN0dXJlKHBsYXRmb3JtRXZlbnQpOworICAgICAgICBoYW5kbGVkID0gbWFpbkZyYW1lSW1wbCgp
LT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJl
KHBsYXRmb3JtRXZlbnQpOwogICAgICAgICBtX2NvbnRleHRNZW51QWxsb3dlZCA9IGZhbHNlOwot
ICAgICAgICByZXR1cm4gaGFuZGxlZDsKKworICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjogewogICAgICAgICBtX2NsaWVudC0+Y2Fu
Y2VsU2NoZWR1bGVkQ29udGVudEludGVudHMoKTsKQEAgLTc1Nyw3ICs3NjYsOCBAQCBib29sIFdl
YlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVu
dCkKICAgICAgICAgICAgIGVuYWJsZVRvdWNoSGlnaGxpZ2h0KEludFBvaW50KGV2ZW50LngsIGV2
ZW50LnkpKTsKICNlbmRpZgogICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIgcGxh
dGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7Ci0gICAgICAg
IHJldHVybiBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVH
ZXN0dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7CisgICAgICAgIGhhbmRsZWQgPSBtYWluRnJhbWVJ
bXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGxhdGZv
cm1FdmVudCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVEb3VibGVUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xs
QmVnaW46CkBAIC03NjgsMTYgKzc3OCwxOCBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0
dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKICAgICBjYXNlIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVQ
aW5jaFVwZGF0ZTogewogICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIgcGxhdGZv
cm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7Ci0gICAgICAgIHJl
dHVybiBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0
dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7CisgICAgICAgIGhhbmRsZWQgPSBtYWluRnJhbWVJbXBs
KCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGxhdGZvcm1F
dmVudCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdl
c3R1cmVUYXBDYW5jZWw6CiAgICAgICAgIC8vIEZJWE1FOiBVcGRhdGUgV2ViQ29yZSB0byBoYW5k
bGUgdGhpcyBldmVudCBhZnRlciBjaHJvbWl1bSBoYXMgYmVlbiB1cGRhdGVkIHRvIHNlbmQgaXQK
ICAgICAgICAgLy8gaHR0cDovL3drYi51Zy85NjA2MAotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9jbGllbnQtPmRpZEhhbmRsZUdlc3R1
cmVFdmVudChldmVudCwgaGFuZGxlZCk7CisgICAgcmV0dXJuIGhhbmRsZWQ7CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnRyYW5zZmVyQWN0aXZlV2hlZWxGbGluZ0FuaW1hdGlvbihjb25zdCBXZWJB
Y3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVmlld1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAKaW5kZXggYjdhYjY1OGRlZWNmNmNkNWVmYjNj
ODBhYTEwMmFhOGVlN2EwMjlkZi4uZDQ3OGFhZDkyZGQxNjE4MDc0MGYzYWVhNjJjMTk4N2ZkYjFi
YmJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAK
QEAgLTEyMCw2ICsxMjAsNDAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9jdXNlZDsKIH07CiAK
K2NsYXNzIFRhcEhhbmRsaW5nV2ViVmlld0NsaWVudCA6IHB1YmxpYyBXZWJWaWV3Q2xpZW50IHsK
K3B1YmxpYzoKKyAgICAvLyBXZWJWaWV3Q2xpZW50IG1ldGhvZHMKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkSGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQsIGJvb2wg
aGFuZGxlZCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC50eXBlID09IFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVUYXApIHsKKyAgICAgICAgICAgIG1fdGFwWCA9IGV2ZW50Lng7CisgICAgICAgICAg
ICBtX3RhcFkgPSBldmVudC55OworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2Vi
SW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzcykgeworICAgICAgICAgICAgbV9sb25ncHJlc3NY
ID0gZXZlbnQueDsKKyAgICAgICAgICAgIG1fbG9uZ3ByZXNzWSA9IGV2ZW50Lnk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICAvLyBMb2NhbCBtZXRob2RzCisgICAgdm9pZCByZXNldCgpCisgICAg
eworICAgICAgICBtX3RhcFggPSAtMTsKKyAgICAgICAgbV90YXBZID0gLTE7CisgICAgICAgIG1f
bG9uZ3ByZXNzWCA9IC0xOworICAgICAgICBtX2xvbmdwcmVzc1kgPSAtMTsKKyAgICB9CisgICAg
aW50IHRhcFgoKSB7IHJldHVybiBtX3RhcFg7IH0KKyAgICBpbnQgdGFwWSgpIHsgcmV0dXJuIG1f
dGFwWTsgfQorICAgIGludCBsb25ncHJlc3NYKCkgeyByZXR1cm4gbV9sb25ncHJlc3NYOyB9Cisg
ICAgaW50IGxvbmdwcmVzc1koKSB7IHJldHVybiBtX2xvbmdwcmVzc1k7IH0KKworcHJpdmF0ZToK
KyAgICBpbnQgbV90YXBYOworICAgIGludCBtX3RhcFk7CisgICAgaW50IG1fbG9uZ3ByZXNzWDsK
KyAgICBpbnQgbV9sb25ncHJlc3NZOworfTsKKwogY2xhc3MgV2ViVmlld1Rlc3QgOiBwdWJsaWMg
dGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CiAgICAgV2ViVmlld1Rlc3QoKQpAQCAtNTg5LDQgKzYy
MywyOCBAQCBURVNUX0YoV2ViVmlld1Rlc3QsIERldGVjdENvbnRlbnRBcm91bmRQb3NpdGlvbikK
ICAgICB3ZWJWaWV3LT5jbG9zZSgpOwogfQogCitURVNUX0YoV2ViVmlld1Rlc3QsIENsaWVudFRh
cEhhbmRsaW5nKQoreworICAgIFRhcEhhbmRsaW5nV2ViVmlld0NsaWVudCBjbGllbnQ7CisgICAg
Y2xpZW50LnJlc2V0KCk7CisgICAgV2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6
OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKCJhYm91dDpibGFuayIsIHRydWUsIDAsICZjbGllbnQpOwor
ICAgIFdlYkdlc3R1cmVFdmVudCBldmVudDsKKyAgICBldmVudC50eXBlID0gV2ViSW5wdXRFdmVu
dDo6R2VzdHVyZVRhcDsKKyAgICBldmVudC54ID0gMzsKKyAgICBldmVudC55ID0gODsKKyAgICB3
ZWJWaWV3LT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UnVu
QWxsUGVuZGluZ01lc3NhZ2VzKCk7CisgICAgRVhQRUNUX0VRKDMsIGNsaWVudC50YXBYKCkpOwor
ICAgIEVYUEVDVF9FUSg4LCBjbGllbnQudGFwWSgpKTsKKyAgICBjbGllbnQucmVzZXQoKTsKKyAg
ICBldmVudC50eXBlID0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczsKKyAgICBldmVu
dC54ID0gMjU7CisgICAgZXZlbnQueSA9IDc7CisgICAgd2ViVmlldy0+aGFuZGxlSW5wdXRFdmVu
dChldmVudCk7CisgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bkFsbFBlbmRpbmdNZXNzYWdlcygpOwor
ICAgIEVYUEVDVF9FUSgyNSwgY2xpZW50LmxvbmdwcmVzc1goKSk7CisgICAgRVhQRUNUX0VRKDcs
IGNsaWVudC5sb25ncHJlc3NZKCkpOworICAgIHdlYlZpZXctPmNsb3NlKCk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164723</attachid>
            <date>2012-09-19 05:58:59 -0700</date>
            <delta_ts>2012-09-19 12:07:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96112-20120919135825.patch</filename>
            <type>text/plain</type>
            <size>9818</size>
            <attacher name="Oli Lan">olilan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDk4OTg5NGRmMDQxMTJhMzY4YTE0ZDlkYTdhNzI1N2IwYzkwNGJlOTcuLjNhYTcxOWE3MWY1ODI2
NDFhOTczNzFmMWY1MTZhOTRkOTVmNTIwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMDktMTkgIE9saSBMYW4gIDxvbGlsYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgbWV0aG9kIGRpZEhhbmRsZUdlc3R1cmVFdmVu
dCB0byBXZWJWaWV3Q2xpZW50LCBjYWxsZWQgZnJvbSBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVy
ZUV2ZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTYxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIGEgbmV3IG1ldGhvZCBkaWRIYW5kbGVHZXN0dXJlRXZlbnQgdG8gV2ViVmlld0NsaWVudCwg
Y2FsbGVkIGZyb20gV2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudC4KKworICAgICAgICBU
aGlzIHdpbGwgYmUgdXNlZCBieSB0aGUgQW5kcm9pZCBwb3J0IHRvIGltcGxlbWVudCBwbGF0Zm9y
bS1zcGVjaWZpYyBnZXN0dXJlIGJlaGF2aW91ci4KKworICAgICAgICBUaGlzIGlzIHRlc3RlZCBi
eSB0aGUgbmV3IHRlc3QgV2ViVmlld1Rlc3QuQ2xpZW50VGFwSGFuZGxlcnMuCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViVmlld0NsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OmRpZEhhbmRsZUdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OmhhbmRsZUdlc3R1cmVFdmVudCk6CisgICAgICAgICogdGVzdHMvV2ViVmlld1Rlc3QuY3BwOgor
CiAyMDEyLTA5LTE5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbQ2hyb21pdW1dIEZpeCBjcmFzaCBpbiBXZWJGcmFtZUltcGw6OmxvYWRIaXN0b3J5SXRlbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDgz
OWVkMGQxNzQxZmMxZjk2ZTRjNTRkZjBjNDRlNmViY2NhMmY2YTYuLjg4ZGExNDE2YjJkY2I2Y2Jm
NGQ3Y2MwZDY1NmM2OTVmNzFmMmE1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE0Miw2ICsxNDIsOSBAQCBwdWJsaWM6CiAgICAgLy8g
Q2FsbGVkIHRvIHJldHJpZXZlIHRoZSBwcm92aWRlciBvZiBkZXNrdG9wIG5vdGlmaWNhdGlvbnMu
CiAgICAgdmlydHVhbCBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNl
bnRlcigpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENhbGxlZCB3aGVuIGEgZ2VzdHVyZSBldmVu
dCBpcyBoYW5kbGVkLgorICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVHZXN0dXJlRXZlbnQoY29u
c3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCwgYm9vbCBldmVudFN3YWxsb3dlZCkgeyB9CisKICAg
ICAvLyBDYWxsZWQgdG8gcmVxdWVzdCBhbiBpY29uIGZvciB0aGUgc3BlY2lmaWVkIGZpbGVuYW1l
cy4KICAgICAvLyBUaGUgaWNvbiBpcyBzaG93biBpbiBhIGZpbGUgdXBsb2FkIGNvbnRyb2wuCiAg
ICAgdmlydHVhbCBib29sIHF1ZXJ5SWNvbkZvckZpbGVzKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJp
bmc+JiBmaWxlbmFtZXMsIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbiopIHsgcmV0dXJuIGZhbHNl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMzQ2
MDA1ZWU0MTI0MjZiNWM1N2VmY2UxNGZlOTYwODE1Zjg4OGIwOC4uNzY0YWU2ZGNhMWFhYTVlYjJk
YmNmMmY3MDNkYmEwM2Y2Y2U0ODZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcApAQCAtNjgyLDYgKzY4Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjcm9s
bEJ5KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZWx0YSkKICNpZiBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCiBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2Vz
dHVyZUV2ZW50JiBldmVudCkKIHsKKyAgICBib29sIGV2ZW50U3dhbGxvd2VkID0gZmFsc2U7CiAg
ICAgc3dpdGNoIChldmVudC50eXBlKSB7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
RmxpbmdTdGFydDogewogICAgICAgICBtX2NsaWVudC0+Y2FuY2VsU2NoZWR1bGVkQ29udGVudElu
dGVudHMoKTsKQEAgLTY5MiwxOCArNjkzLDIxIEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUdl
c3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogICAgICAgICBPd25QdHI8
UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGZsaW5nQ3VydmUgPSBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZh
Y3Rvcnk6OmdldCgpLT5jcmVhdGVDdXJ2ZShldmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2
aWNlLCBGbG9hdFBvaW50KGV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVgsIGV2ZW50LmRh
dGEuZmxpbmdTdGFydC52ZWxvY2l0eVkpKTsKICAgICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0g
QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUoZmxpbmdDdXJ2ZS5yZWxlYXNl
KCksIHRoaXMpOwogICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwotICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgZXZlbnRTd2FsbG93ZWQgPSB0cnVlOworICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw6CiAgICAgICAg
IGlmIChtX2dlc3R1cmVBbmltYXRpb24pIHsKICAgICAgICAgICAgIG1fZ2VzdHVyZUFuaW1hdGlv
bi5jbGVhcigpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBldmVudFN3
YWxsb3dlZCA9IHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXA6IHsKICAgICAgICAg
bV9jbGllbnQtPmNhbmNlbFNjaGVkdWxlZENvbnRlbnRJbnRlbnRzKCk7Ci0gICAgICAgIGlmIChk
ZXRlY3RDb250ZW50T25Ub3VjaChXZWJQb2ludChldmVudC54LCBldmVudC55KSwgZXZlbnQudHlw
ZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGRldGVjdENvbnRlbnRP
blRvdWNoKFdlYlBvaW50KGV2ZW50LngsIGV2ZW50LnkpLCBldmVudC50eXBlKSkgeworICAgICAg
ICAgICAgZXZlbnRTd2FsbG93ZWQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KIAogICAgICAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBDb250YWluZXI+IHNlbGVjdFBvcHVw
OwogICAgICAgICBzZWxlY3RQb3B1cCA9IG1fc2VsZWN0UG9wdXA7CkBAIC03MTYsMTIgKzcyMCwx
NCBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVy
ZUV2ZW50JiBldmVudCkKICAgICAgICAgICAgIGZpbmRHb29kVG91Y2hUYXJnZXRzKGJvdW5kaW5n
Qm94LCBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCksIHBhZ2VTY2FsZUZhY3RvcigpLCBnb29kVGFy
Z2V0cyk7CiAgICAgICAgICAgICAvLyBGSVhNRTogcmVwbGFjZSB0b3VjaCBhZGp1c3RtZW50IGNv
ZGUgd2hlbiBudW1iZXJPZkdvb2RUYXJnZXRzID09IDE/CiAgICAgICAgICAgICAvLyBTaW5nbGUg
Y2FuZGlkYXRlIGNhc2UgaXMgY3VycmVudGx5IGhhbmRsZWQgYnk6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTEwMQotICAgICAgICAgICAgaWYgKGdvb2RUYXJnZXRz
LnNpemUoKSA+PSAyICYmIG1fY2xpZW50ICYmIG1fY2xpZW50LT5kaWRUYXBNdWx0aXBsZVRhcmdl
dHMoZXZlbnQsIGdvb2RUYXJnZXRzKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChnb29kVGFyZ2V0cy5zaXplKCkgPj0gMiAmJiBtX2NsaWVudCAmJiBtX2Ns
aWVudC0+ZGlkVGFwTXVsdGlwbGVUYXJnZXRzKGV2ZW50LCBnb29kVGFyZ2V0cykpIHsKKyAgICAg
ICAgICAgICAgICBldmVudFN3YWxsb3dlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVu
dEJ1aWxkZXIgcGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVu
dCk7Ci0gICAgICAgIGJvb2wgZ2VzdHVyZUhhbmRsZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7Cisg
ICAgICAgIGV2ZW50U3dhbGxvd2VkID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZlbnQpOwogCiAgICAgICAgIGlm
IChtX3NlbGVjdFBvcHVwICYmIG1fc2VsZWN0UG9wdXAgPT0gc2VsZWN0UG9wdXApIHsKICAgICAg
ICAgICAgIC8vIFRoYXQgdGFwIHRyaWdnZXJlZCBhIHNlbGVjdCBwb3B1cCB3aGljaCBpcyB0aGUg
c2FtZSBhcyB0aGUgb25lIHRoYXQKQEAgLTczMSwyMyArNzM3LDI2IEBAIGJvb2wgV2ViVmlld0lt
cGw6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogICAg
ICAgICAgICAgaGlkZVNlbGVjdFBvcHVwKCk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4g
Z2VzdHVyZUhhbmRsZWQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlTG9uZ1ByZXNzOiB7CiAgICAgICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8ICFtYWluRnJh
bWVJbXBsKCktPmZyYW1lVmlldygpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgbV9jbGllbnQtPmNhbmNlbFNjaGVkdWxlZENvbnRlbnRJ
bnRlbnRzKCk7Ci0gICAgICAgIGlmIChkZXRlY3RDb250ZW50T25Ub3VjaChXZWJQb2ludChldmVu
dC54LCBldmVudC55KSwgZXZlbnQudHlwZSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgaWYgKGRldGVjdENvbnRlbnRPblRvdWNoKFdlYlBvaW50KGV2ZW50LngsIGV2ZW50Lnkp
LCBldmVudC50eXBlKSkgeworICAgICAgICAgICAgZXZlbnRTd2FsbG93ZWQgPSB0cnVlOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAgICBtX3BhZ2UtPmNvbnRleHRNZW51
Q29udHJvbGxlcigpLT5jbGVhckNvbnRleHRNZW51KCk7CiAgICAgICAgIG1fY29udGV4dE1lbnVB
bGxvd2VkID0gdHJ1ZTsKICAgICAgICAgUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyIHBsYXRm
b3JtRXZlbnQobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpOwotICAgICAgICBi
b29sIGhhbmRsZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5z
ZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUocGxhdGZvcm1FdmVudCk7CisgICAgICAgIGV2
ZW50U3dhbGxvd2VkID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+
c2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJlKHBsYXRmb3JtRXZlbnQpOwogICAgICAgICBt
X2NvbnRleHRNZW51QWxsb3dlZCA9IGZhbHNlOwotICAgICAgICByZXR1cm4gaGFuZGxlZDsKKwor
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFw
RG93bjogewogICAgICAgICBtX2NsaWVudC0+Y2FuY2VsU2NoZWR1bGVkQ29udGVudEludGVudHMo
KTsKQEAgLTc1Nyw3ICs3NjYsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZl
bnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKICAgICAgICAgICAgIGVuYWJsZVRvdWNo
SGlnaGxpZ2h0KEludFBvaW50KGV2ZW50LngsIGV2ZW50LnkpKTsKICNlbmRpZgogICAgICAgICBQ
bGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIgcGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCkt
PmZyYW1lVmlldygpLCBldmVudCk7Ci0gICAgICAgIHJldHVybiBtYWluRnJhbWVJbXBsKCktPmZy
YW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGxhdGZvcm1FdmVudCk7
CisgICAgICAgIGV2ZW50U3dhbGxvd2VkID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVu
dEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZlbnQpOworICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgog
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luOgpAQCAtNzY5LDEyICs3
NzksMTQgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdl
c3R1cmVFdmVudCYgZXZlbnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hF
bmQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGU6IHsKICAgICAg
ICAgUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1w
bCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpOwotICAgICAgICByZXR1cm4gbWFpbkZyYW1lSW1wbCgp
LT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZl
bnQpOworICAgICAgICBldmVudFN3YWxsb3dlZCA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+
ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChwbGF0Zm9ybUV2ZW50KTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9jbGllbnQtPmRpZEhhbmRsZUdl
c3R1cmVFdmVudChldmVudCwgZXZlbnRTd2FsbG93ZWQpOworICAgIHJldHVybiBldmVudFN3YWxs
b3dlZDsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5p
bWF0aW9uKGNvbnN0IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAppbmRleCBiN2Fi
NjU4ZGVlY2Y2Y2Q1ZWZiM2M4MGFhMTAyYWE4ZWU3YTAyOWRmLi5kNDc4YWFkOTJkZDE2MTgwNzQw
ZjNhZWE2MmMxOTg3ZmRiMWJiYmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYlZpZXdUZXN0LmNwcApAQCAtMTIwLDYgKzEyMCw0MCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9mb2N1c2VkOwogfTsKIAorY2xhc3MgVGFwSGFuZGxpbmdXZWJWaWV3Q2xpZW50IDogcHVibGlj
IFdlYlZpZXdDbGllbnQgeworcHVibGljOgorICAgIC8vIFdlYlZpZXdDbGllbnQgbWV0aG9kcwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2
ZW50JiBldmVudCwgYm9vbCBoYW5kbGVkKQorICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LnR5cGUg
PT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcCkgeworICAgICAgICAgICAgbV90YXBYID0gZXZl
bnQueDsKKyAgICAgICAgICAgIG1fdGFwWSA9IGV2ZW50Lnk7CisgICAgICAgIH0gZWxzZSBpZiAo
ZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzKSB7CisgICAgICAg
ICAgICBtX2xvbmdwcmVzc1ggPSBldmVudC54OworICAgICAgICAgICAgbV9sb25ncHJlc3NZID0g
ZXZlbnQueTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIExvY2FsIG1ldGhvZHMKKyAgICB2
b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1fdGFwWCA9IC0xOworICAgICAgICBtX3RhcFkg
PSAtMTsKKyAgICAgICAgbV9sb25ncHJlc3NYID0gLTE7CisgICAgICAgIG1fbG9uZ3ByZXNzWSA9
IC0xOworICAgIH0KKyAgICBpbnQgdGFwWCgpIHsgcmV0dXJuIG1fdGFwWDsgfQorICAgIGludCB0
YXBZKCkgeyByZXR1cm4gbV90YXBZOyB9CisgICAgaW50IGxvbmdwcmVzc1goKSB7IHJldHVybiBt
X2xvbmdwcmVzc1g7IH0KKyAgICBpbnQgbG9uZ3ByZXNzWSgpIHsgcmV0dXJuIG1fbG9uZ3ByZXNz
WTsgfQorCitwcml2YXRlOgorICAgIGludCBtX3RhcFg7CisgICAgaW50IG1fdGFwWTsKKyAgICBp
bnQgbV9sb25ncHJlc3NYOworICAgIGludCBtX2xvbmdwcmVzc1k7Cit9OworCiBjbGFzcyBXZWJW
aWV3VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKICAgICBXZWJWaWV3VGVz
dCgpCkBAIC01ODksNCArNjIzLDI4IEBAIFRFU1RfRihXZWJWaWV3VGVzdCwgRGV0ZWN0Q29udGVu
dEFyb3VuZFBvc2l0aW9uKQogICAgIHdlYlZpZXctPmNsb3NlKCk7CiB9CiAKK1RFU1RfRihXZWJW
aWV3VGVzdCwgQ2xpZW50VGFwSGFuZGxpbmcpCit7CisgICAgVGFwSGFuZGxpbmdXZWJWaWV3Q2xp
ZW50IGNsaWVudDsKKyAgICBjbGllbnQucmVzZXQoKTsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0g
RnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQoImFib3V0OmJsYW5rIiwgdHJ1
ZSwgMCwgJmNsaWVudCk7CisgICAgV2ViR2VzdHVyZUV2ZW50IGV2ZW50OworICAgIGV2ZW50LnR5
cGUgPSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwOworICAgIGV2ZW50LnggPSAzOworICAgIGV2
ZW50LnkgPSA4OworICAgIHdlYlZpZXctPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOworICAgIHdl
YmtpdF9zdXBwb3J0OjpSdW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKKyAgICBFWFBFQ1RfRVEoMywg
Y2xpZW50LnRhcFgoKSk7CisgICAgRVhQRUNUX0VRKDgsIGNsaWVudC50YXBZKCkpOworICAgIGNs
aWVudC5yZXNldCgpOworICAgIGV2ZW50LnR5cGUgPSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9u
Z1ByZXNzOworICAgIGV2ZW50LnggPSAyNTsKKyAgICBldmVudC55ID0gNzsKKyAgICB3ZWJWaWV3
LT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50KTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UnVuQWxsUGVu
ZGluZ01lc3NhZ2VzKCk7CisgICAgRVhQRUNUX0VRKDI1LCBjbGllbnQubG9uZ3ByZXNzWCgpKTsK
KyAgICBFWFBFQ1RfRVEoNywgY2xpZW50LmxvbmdwcmVzc1koKSk7CisgICAgd2ViVmlldy0+Y2xv
c2UoKTsKK30KKwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>