<?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>73058</bug_id>
          
          <creation_ts>2011-11-23 16:18:09 -0800</creation_ts>
          <short_desc>[chromium] Add WebKit API&apos;s to support the autosize algorithm in renderer process.</short_desc>
          <delta_ts>2013-07-24 15:47:13 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</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>
          <dependson>73420</dependson>
          <blocked>73035</blocked>
    
    <blocked>73631</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>508480</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-23 16:18:09 -0800</bug_when>
    <thetext>See summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508481</commentid>
    <comment_count>1</comment_count>
      <attachid>116448</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-23 16:20:02 -0800</bug_when>
    <thetext>Created attachment 116448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508486</commentid>
    <comment_count>2</comment_count>
      <attachid>116448</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-23 16:29:02 -0800</bug_when>
    <thetext>Comment on attachment 116448
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:168
&gt; +    virtual WebSize visibleFrameSize() const = 0;

nit: you might want to put this above contentsSize since the next one in the list is 
also prefixed with content*.

nit: maybe this method should just be called size()?  it seems correct to refer to it
as the &quot;size of the frame&quot;, which translates naturally to WebFrame::size().  we also
have WebWidget::size(), which is the size of the WebWidget (the size of the viewport).

&gt; Source/WebKit/chromium/public/WebFrameClient.h:125
&gt; +    virtual bool shouldAutoSize(WebFrame*, WebSize* /* minSize */, WebSize* /* maxSize */) { return false; }

nit: is it really necessary to comment out the parameter names?  we normally don&apos;t
compile with that warning enabled.  has something changed?

do you really have use cases for asking if an iframe should be autosized?  or do you
only care about this for the main frame?  if only for the main frame, then maybe this
should just be a method on WebViewClient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508491</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-23 16:30:54 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508504</commentid>
    <comment_count>4</comment_count>
      <attachid>116456</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-23 16:56:41 -0800</bug_when>
    <thetext>Created attachment 116456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508506</commentid>
    <comment_count>5</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-23 16:57:25 -0800</bug_when>
    <thetext>All done as requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508523</commentid>
    <comment_count>6</comment_count>
      <attachid>116456</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-23 17:30:30 -0800</bug_when>
    <thetext>Comment on attachment 116456
Patch

Investigating another approach per discussion with Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512960</commentid>
    <comment_count>7</comment_count>
      <attachid>117452</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-01 11:53:30 -0800</bug_when>
    <thetext>Created attachment 117452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512999</commentid>
    <comment_count>8</comment_count>
      <attachid>117452</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 12:41:27 -0800</bug_when>
    <thetext>Comment on attachment 117452
Patch

Attachment 117452 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10696750</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513326</commentid>
    <comment_count>9</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-01 17:31:46 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 117452 [details])
&gt; Attachment 117452 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10696750

Due to 73420 not being landed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513474</commentid>
    <comment_count>10</comment_count>
      <attachid>117452</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-01 21:41:31 -0800</bug_when>
    <thetext>Comment on attachment 117452
Patch

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2311
&gt; +void WebViewImpl::queueBothResizeEventAndPaint()

why is this method called &quot;queueBoth&quot; and not just sendResizeEventAndPaint.  It seems to do exactly those functions without queuing anything.

I think you may want to use the term &quot;repaint&quot; instead of &quot;paint&quot; since I believe calling didInvalidateRect is really about requesting a paint instead of actually doing the painting.  Plus, I think ChromeClient (and WebCore) uses the term repaint for this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513475</commentid>
    <comment_count>11</comment_count>
      <attachid>117452</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-01 21:42:12 -0800</bug_when>
    <thetext>Comment on attachment 117452
Patch

R=me assuming the renaming happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513598</commentid>
    <comment_count>12</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-02 01:01:00 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/101759

Did renaming. I also went through the change made settled on the resize naming for everything in this patch. (I need to go back and change FrameView.  I left m_minAutoSize as is because m_minAutoResize didn&apos;t make sense to me.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911447</commentid>
    <comment_count>13</comment_count>
      <attachid>117452</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-07-24 15:47:13 -0700</bug_when>
    <thetext>Comment on attachment 117452
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2311
&gt;&gt; +void WebViewImpl::queueBothResizeEventAndPaint()
&gt; 
&gt; why is this method called &quot;queueBoth&quot; and not just sendResizeEventAndPaint.  It seems to do exactly those functions without queuing anything.
&gt; 
&gt; I think you may want to use the term &quot;repaint&quot; instead of &quot;paint&quot; since I believe calling didInvalidateRect is really about requesting a paint instead of actually doing the painting.  Plus, I think ChromeClient (and WebCore) uses the term repaint for this function.

I ran across this code today.  I think it&apos;s wrong.

WebViewImpl should never be responsible for sending either repaint or resize events.  That&apos;s the FrameView&apos;s job.

I&apos;m fixing FrameView to not delay initial layout.  That&apos;s causing tests for resizeEvents to fail, as we now (correctly) are sending 2 resize events.  One from the FrameView code (which was being suppressed because layout was suppressed for the first 250ms) and a second from this code. :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116448</attachid>
            <date>2011-11-23 16:20:02 -0800</date>
            <delta_ts>2011-11-23 16:56:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73058-20111123162001.patch</filename>
            <type>text/plain</type>
            <size>3986</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGExNjZlYzkzZTM5NTBmZDA1OWQ1NWE5NDdkMWM3M2ZjZDcwMjNjYzIuLjhiZDk0ZTA2YjIzZTQ3
Y2M2YjMzODg2MDMyMGY2Nzk4YjRjYWRjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMjMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYktpdCBBUEkncyB0byBzdXBwb3J0IHRo
ZSBhdXRvc2l6ZSBhbGdvcml0aG0gaW4gcmVuZGVyZXIgcHJvY2Vzcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDU4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDogQWRk
IGEgd2F5IHRvIGdldCB0aGUgY3VycmVudCByZW5kZXJpbmcgc2l6ZQorICAgICAgICAgIG9mIHRo
ZSBmcmFtZS4KKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVJbXBsOjp2aXNpYmxlRnJhbWVTaXplKTogRGl0dG8uCisgICAgICAgICogc3Jj
L1dlYkZyYW1lSW1wbC5oOiBEaXR0by4KKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OnNob3VsZEF1dG9TaXplKTogQWRk
IGEgY2FsbGJhY2sgdG8gZGV0ZXJtaW5lCisgICAgICAgIGlmIHRoZSByZW5kZXJlciBzaG91bGQg
YXV0b21hdGljYWxseSBjaGFuZ2Ugc2l6ZSB0byBmaXQgaXRzIGNvbnRlbnQuCisKIDIwMTEtMTEt
MjIgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBGaXggcGx1bWJpbmcgZm9yIGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIGNsaXBib2FyZC9z
ZWxlY3Rpb24gcGFzdGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgK
aW5kZXggMGY3ZDQ2N2NkNjdiZmI0ZmJhOTEyZThlNmU3N2MwNDFiOGI5YTMxZS4uYjBkZjU1Nzhj
YzZiMzU5Y2IxMTcxMmZjMWVjZTQ1Nzg5MThiNGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZS5oCkBAIC0xNjQsNiArMTY0LDkgQEAgcHVibGljOgogICAgIC8vIFRo
ZSBzaXplIG9mIHRoZSBjb250ZW50cyBhcmVhLgogICAgIHZpcnR1YWwgV2ViU2l6ZSBjb250ZW50
c1NpemUoKSBjb25zdCA9IDA7CiAKKyAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgdmlzaWJsZSBhcmVh
IChpbmNsdWRpbmcgc2Nyb2xsYmFycykuCisgICAgdmlydHVhbCBXZWJTaXplIHZpc2libGVGcmFt
ZVNpemUoKSBjb25zdCA9IDA7CisKICAgICAvLyBSZXR1cm5zIHRoZSBtaW5pbXVtIHByZWZlcnJl
ZCB3aWR0aCBvZiB0aGUgY29udGVudCBjb250YWluZWQgaW4gdGhlCiAgICAgLy8gY3VycmVudCBk
b2N1bWVudC4KICAgICB2aXJ0dWFsIGludCBjb250ZW50c1ByZWZlcnJlZFdpZHRoKCkgY29uc3Qg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgK
aW5kZXggNDA2YmI2MWQwZTRlNmRiYWZmMTg4YzExYWFkMTk5MGNhNTJkYzFkYS4uOTNiNzc2YmM0
YTFhZTRhMzY0Y2M3YWQ2OGVmODk5MDg5ZGYyMGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCkBAIC0xMTgsNiArMTE4LDEyIEBAIHB1Ymxp
YzoKICAgICAvLyBmb3IgZWFjaCBmcmFtZSB1bmxlc3MgdGhlIGZyYW1lIGRpZCBub3QgbmVlZCBh
IGxheW91dC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTGF5b3V0KFdlYkZyYW1lKikgeyB9
CiAKKyAgICAvLyBMYXlvdXQgcXVlcmllcyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFNob3VsZCB0aGUgZnJhbWUgYXV0b21h
dGljYWxseSBjaGFuZ2Ugc2l6ZT8KKyAgICAvLyBJZiBpdCByZXR1cm5zIHRydWUsIHRoZW4gdGhl
IHVwcGVyIGFuZCBsb3dlciBib3VuZHMgc2hvdWxkIGJlIGZpbGxlZCBpbi4KKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkQXV0b1NpemUoV2ViRnJhbWUqLCBXZWJTaXplKiAvKiBtaW5TaXplICovLCBX
ZWJTaXplKiAvKiBtYXhTaXplICovKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgLy8gTG9hZCBj
b21tYW5kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKICAgICAvLyBUaGUgY2xpZW50IHNob3VsZCBoYW5kbGUgdGhlIG5hdmlnYXRpb24g
ZXh0ZXJuYWxseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CmluZGV4IDc1MWQyY2I2MjQ1MzdhZmJiMWRkNWI3NzQ3YTUwOTI5ZDgxNjQzOWQuLmY5NmM5MWQy
ZmMwOTFkNjBiODk3ODg0ZTc1YjI0YTJmNzM3N2ZjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNjM0LDYgKzYzNCwxMSBAQCBXZWJTaXplIFdl
YkZyYW1lSW1wbDo6Y29udGVudHNTaXplKCkgY29uc3QKICAgICByZXR1cm4gZnJhbWUoKS0+dmll
dygpLT5jb250ZW50c1NpemUoKTsKIH0KIAorV2ViU2l6ZSBXZWJGcmFtZUltcGw6OnZpc2libGVG
cmFtZVNpemUoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpLT52aWV3KCktPmZyYW1lUmVj
dCgpLnNpemUoKTsKK30KKwogaW50IFdlYkZyYW1lSW1wbDo6Y29udGVudHNQcmVmZXJyZWRXaWR0
aCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+cmVuZGVyVmlldygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5oCmluZGV4IDllN2I5NDc5MGQyMTczOTFiMTEzNTU2NjllNzNiM2EyMjdjNzdmMWYu
LjhhNWQ1ZGZjMTY3ZDBlOGVlNzVkOTJkNTk0YTBlZmM2Y2MyNGI3YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC03Niw2ICs3Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgV2ViU2l6ZSBtYXhpbXVtU2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBX
ZWJTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViU2l6ZSB2aXNpYmxl
RnJhbWVTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY29udGVudHNQcmVmZXJyZWRXaWR0
aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGRvY3VtZW50RWxlbWVudFNjcm9sbEhlaWdodCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116456</attachid>
            <date>2011-11-23 16:56:41 -0800</date>
            <delta_ts>2011-12-01 11:53:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73058-20111123165640.patch</filename>
            <type>text/plain</type>
            <size>4079</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGExNjZlYzkzZTM5NTBmZDA1OWQ1NWE5NDdkMWM3M2ZjZDcwMjNjYzIuLjRjZWFkYTM2N2JjZGJk
MmQzNmFlMWIxNDFiNGE1YTBlYWM0NjAxYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTEtMTEtMjMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYktpdCBBUEkncyB0byBzdXBwb3J0IHRo
ZSBhdXRvc2l6ZSBhbGdvcml0aG0gaW4gcmVuZGVyZXIgcHJvY2Vzcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDU4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWUuaDogQWRk
IGEgd2F5IHRvIGdldCB0aGUgY3VycmVudCBzaXplIG9mIHRoZSBmcmFtZS4KKyAgICAgICAgKiBz
cmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpzaXpl
KTogRGl0dG8uCisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOiBEaXR0by4KKyAgICAgICAg
KiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50
OjpzaG91bGRBdXRvU2l6ZSk6IEFkZCBhIGNhbGxiYWNrIHRvIGRldGVybWluZQorICAgICAgICBp
ZiB0aGUgcmVuZGVyZXIgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2hhbmdlIHNpemUgdG8gZml0IGl0
cyBjb250ZW50LgorCiAyMDExLTExLTIyICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRml4IHBsdW1iaW5nIGZvciBkaWZmZXJlbnRpYXRp
bmcgYmV0d2VlbiBjbGlwYm9hcmQvc2VsZWN0aW9uIHBhc3Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGcmFtZS5oCmluZGV4IDBmN2Q0NjdjZDY3YmZiNGZiYTkxMmU4ZTZlNzdj
MDQxYjhiOWEzMWUuLjM2ZmVlZWU1MDE5YzVhMTU2ZDdjNTgxZWY3NmZlZGNmZWMzZmNlMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtMTYwLDcgKzE2MCwx
MCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIG1pbmltdW0gYW5kIG1heGl1bSBzY3JvbGwgcG9zaXRp
b25zIGluIHBpeGVscy4KICAgICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFdlYlNpemUgbWF4aW11bVNjcm9sbE9mZnNldCgpIGNv
bnN0ID0gMDsKLSAKKworICAgIC8vIFRoZSBzaXplIG9mIHRoZSB2aXNpYmxlIGFyZWEgKGluY2x1
ZGluZyBzY3JvbGxiYXJzKS4KKyAgICB2aXJ0dWFsIFdlYlNpemUgc2l6ZSgpIGNvbnN0ID0gMDsK
KwogICAgIC8vIFRoZSBzaXplIG9mIHRoZSBjb250ZW50cyBhcmVhLgogICAgIHZpcnR1YWwgV2Vi
U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA2MmM3YjRkNDlkN2Y3M2FkODhiNjllNzhl
N2JiZDNkMTRiZDlhNjk1Li4zYjk2NTZlZWIwMDliOTU1NmUwYTk2NWY0Mjg4MGI3NDBmYTQwNWQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBA
IC03Myw2ICs3Myw3IEBAIHN0cnVjdCBXZWJDb25zb2xlTWVzc2FnZTsKIHN0cnVjdCBXZWJDb250
ZXh0TWVudURhdGE7CiBzdHJ1Y3QgV2ViUG9pbnQ7CiBzdHJ1Y3QgV2ViUG9wdXBNZW51SW5mbzsK
K3N0cnVjdCBXZWJTaXplOwogc3RydWN0IFdlYldpbmRvd0ZlYXR1cmVzOwogCiAvLyBTaW5jZSBh
IFdlYlZpZXcgaXMgYSBXZWJXaWRnZXQsIGEgV2ViVmlld0NsaWVudCBpcyBhIFdlYldpZGdldENs
aWVudC4KQEAgLTEyOSw2ICsxMzAsMTAgQEAgcHVibGljOgogICAgIC8vIHdpbGwgbmV2ZXIgYmUg
Y2FsbGVkLgogICAgIHZpcnR1YWwgYm9vbCBlbnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkoY29uc3Qg
V2ViU3RyaW5nJiBwYXRoLCBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24qKSB7IHJldHVybiBmYWxz
ZTsgfQogCisgICAgLy8gU2hvdWxkIHRoZSB2aWV3IGF1dG9tYXRpY2FsbHkgY2hhbmdlIHNpemUg
dG8gZml0IGl0cyBjb250ZW50PworICAgIC8vIElmIGl0IHJldHVybnMgdHJ1ZSwgdGhlbiB0aGUg
dXBwZXIgYW5kIGxvd2VyIGJvdW5kcyBzaG91bGQgYmUgZmlsbGVkIGluLgorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBdXRvU2l6ZShXZWJGcmFtZSosIFdlYlNpemUqIG1pblNpemUsIFdlYlNpemUq
IG1heFNpemUpIHsgcmV0dXJuIGZhbHNlOyB9CisKIAogICAgIC8vIE5hdmlnYXRpb25hbCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCA3NTFkMmNi
NjI0NTM3YWZiYjFkZDViNzc0N2E1MDkyOWQ4MTY0MzlkLi5kZjU4MWM0NjgyYzEzZGFkMDM3YjQx
M2M4MjVmYzA5ODY1NTdjYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKQEAgLTYyOSw2ICs2MjksMTEgQEAgdm9pZCBXZWJGcmFtZUltcGw6OnNldFNj
cm9sbE9mZnNldChjb25zdCBXZWJTaXplJiBvZmZzZXQpCiAgICAgICAgIHZpZXctPnNldFNjcm9s
bE9mZnNldChJbnRQb2ludChvZmZzZXQud2lkdGgsIG9mZnNldC5oZWlnaHQpKTsKIH0KIAorV2Vi
U2l6ZSBXZWJGcmFtZUltcGw6OnNpemUoKSBjb25zdAoreworICAgIHJldHVybiBmcmFtZSgpLT52
aWV3KCktPmZyYW1lUmVjdCgpLnNpemUoKTsKK30KKwogV2ViU2l6ZSBXZWJGcmFtZUltcGw6OmNv
bnRlbnRzU2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZyYW1lKCktPnZpZXcoKS0+Y29udGVu
dHNTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4
IDllN2I5NDc5MGQyMTczOTFiMTEzNTU2NjllNzNiM2EyMjdjNzdmMWYuLmEzZmU3YjUyMWIxMzE2
YWQ0NzhiNmE4ZDBiMTE0ZDU3ZTc5MTU5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFdlYlNpemUmKTsKICAgICB2aXJ0dWFsIFdlYlNpemUg
bWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU2l6ZSBtYXhpbXVt
U2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJTaXplIHNpemUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFdlYlNpemUgY29udGVudHNTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCBp
bnQgY29udGVudHNQcmVmZXJyZWRXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGRvY3Vt
ZW50RWxlbWVudFNjcm9sbEhlaWdodCgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117452</attachid>
            <date>2011-12-01 11:53:30 -0800</date>
            <delta_ts>2013-07-24 15:47:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73058-20111201115329.patch</filename>
            <type>text/plain</type>
            <size>17100</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDdiYWQxZTlhNjdmNWUxMTQyZDVjZDYzMjFkZWUyYjc5ZTI2ZTkzNDAuLmNkNjNjOWMxMzZjY2Ez
MTAxNzlhYzlmNWRkOWUxOGJmZjQxNzQzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTEtMTItMDEgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYktpdCBBUEkncyB0byBzdXBwb3J0IHRo
ZSBhdXRvc2l6ZSBhbGdvcml0aG0gaW4gcmVuZGVyZXIgcHJvY2Vzcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDU4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOiBFeHBv
c2UgdGhlIGF1dG8gcmVzaXplIG1ldGhvZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Q2xp
ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudDo6ZGlkQXV0b1Jlc2l6ZSk6
CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6Y3JlYXRlRnJhbWVWaWV3KTogU2V0IHRoZSBhdXRvc2l6ZQorICAgICAgICBzdGF0
ZSBvbiB0aGUgbmV3IHZpZXcuCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnJlc2l6ZSk6IEV4dHJhY3RlZCBxdWV1ZUJvdGhSZXNpemVFdmVudEFuZFBh
aW50LCBzbworICAgICAgICB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IGxheW91dFVwZGF0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpxdWV1ZUJvdGhSZXNpemVFdmVudEFuZFBhaW50
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYXNIb3Jpem9udGFsU2Ny
b2xsYmFyKTogQWRkZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuCisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpoYXNWZXJ0aWNhbFNjcm9sbGJhcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1NpemVNb2RlKTogU2V0LXVwIGF1dG8gcmVzaXplLgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bGF5b3V0VXBkYXRlZCk6IEhhbmRsZSB0aGUg
YXV0b3NpemUgY2FzZSBieQorICAgICAgICBzZW5kaW5nIGV2ZW50cyBhbmQgaW52YWxpZGF0aW9u
LgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOiBFeHBvc2UgdGhlIGF1dG9zaXplIGluZm9y
bWF0aW9uLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2hvdWxkQXV0b1NpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWluQXV0b1NpemUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6bWF4QXV0b1NpemUpOgorICAgICAgICAqIHRlc3RzL0ZyYW1lVGVz
dEhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVX
ZWJWaWV3QW5kTG9hZCk6IEFkZGVkIHRoZSBhYmlsaXR5IHRvCisgICAgICAgIHNwZWNpZnkgdGhl
IFdlYlZpZXdDbGllbnQuCisgICAgICAgICogdGVzdHMvRnJhbWVUZXN0SGVscGVycy5oOiBEaXR0
by4KKyAgICAgICAgKiB0ZXN0cy9XZWJWaWV3VGVzdC5jcHA6IEFkZGVkIGEgc2ltcGxlIHRlc3Qg
Zm9yIGF1dG9yZXNpemUuCisgICAgICAgIChXZWJLaXQ6OlRlc3REYXRhOjpzZXRXZWJWaWV3KToK
KyAgICAgICAgKFdlYktpdDo6VGVzdERhdGE6OnNldFNpemUpOiBDYXB0dXJlIHRoZSBuZXcgc2l6
ZS4KKyAgICAgICAgKFdlYktpdDo6VGVzdERhdGE6Omhhc0hvcml6b250YWxTY3JvbGxiYXIpOgor
ICAgICAgICAoV2ViS2l0OjpUZXN0RGF0YTo6aGFzVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAg
ICAoV2ViS2l0OjpUZXN0RGF0YTo6d2lkdGgpOgorICAgICAgICAoV2ViS2l0OjpUZXN0RGF0YTo6
aGVpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6QXV0b1NpemVXZWJWaWV3Q2xpZW50OjpkaWRBdXRv
UmVzaXplKTogSGFuZGxlIHRoZSByZXNpemUgZXZlbnQuCisgICAgICAgIChXZWJLaXQ6OkF1dG9T
aXplV2ViVmlld0NsaWVudDo6dGVzdERhdGEpOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOiBU
aGUgYWN0dWFsIHRlc3QuCisgICAgICAgICogdGVzdHMvZGF0YS9zcGVjaWZ5X3NpemUuaHRtbDog
QWRkZWQuCisKIDIwMTEtMTEtMzAgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gTW92ZSBkaWRVcGRhdGVMYXlvdXQgZnJvbSBXZWJGcmFtZUNs
aWVudCB0byBXZWJWaWV3Q2xpZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
dy5oCmluZGV4IDQxMDI4MGYxOGQ5MDU1YTMyZDViZjUzY2I0YTFlN2MzNDJmYjdkNDUuLmRhMTk4
Yzk5MmYyNzNkZWMwZGI2ZjA1NTJkODdlNTk0Mzk2OTZmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTI0OSw2ICsyNDksMTYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRGaXhlZExheW91dFNpemUoY29uc3QgV2ViU2l6ZSYpID0gMDsKIAogCisg
ICAgLy8gQXV0byBzaXplIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBJbiBhdXRvc2l6ZSBtb2RlLCB0aGUgdmlldyBp
cyBhdXRvbWF0aWNhbGx5IGFkanVzdGVkIHRvIGZpdCB0aGUgaHRtbAorICAgIC8vIGNvbnRlbnQg
d2l0aGluIHRoZSBnaXZlbiBib3VuZHMuCisgICAgdmlydHVhbCB2b2lkIGVuYWJsZUF1dG9TaXpl
TW9kZSgKKyAgICAgICAgYm9vbCBlbmFibGUsCisgICAgICAgIGNvbnN0IFdlYlNpemUmIG1pblNp
emUsCisgICAgICAgIGNvbnN0IFdlYlNpemUmIG1heFNpemUpID0gMDsKKworCiAgICAgLy8gTWVk
aWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKICAgICAvLyBQZXJmb3JtcyB0aGUgc3BlY2lmaWVkIGFjdGlvbiBvbiB0aGUg
bm9kZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYldpZGdldENsaWVudC5oCmluZGV4IGI0ZmIyMTdmOWEyZTBmMDgxOWE0NjAzMjMw
MDY0ZGMzYTBkMTVhMTguLmFiNjljMGQ1ZWY5MDZhMmNlNjYxMzNjNTAxMzQ4N2Y2MzI3MDFmODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5o
CkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViU3RyaW5nOwog
Y2xhc3MgV2ViV2lkZ2V0Owogc3RydWN0IFdlYkN1cnNvckluZm87CitzdHJ1Y3QgV2ViU2l6ZTsK
IAogY2xhc3MgV2ViV2lkZ2V0Q2xpZW50IHsKIHB1YmxpYzoKQEAgLTUxLDYgKzUyLDkgQEAgcHVi
bGljOgogICAgIC8vIHNjcm9sbGVkIGJ5IHRoZSBzcGVjaWZpZWQgZHggYW5kIGR5IGFtb3VudHMu
CiAgICAgdmlydHVhbCB2b2lkIGRpZFNjcm9sbFJlY3QoaW50IGR4LCBpbnQgZHksIGNvbnN0IFdl
YlJlY3QmIGNsaXBSZWN0KSB7IH0KIAorICAgIC8vIENhbGxlZCB3aGVuIHRoZSBXaWRnZXQgaGFz
IGNoYW5nZWQgc2l6ZSBhcyBhIHJlc3VsdCBvZiBhbiBhdXRvIHNpemUuCisgICAgdmlydHVhbCB2
b2lkIGRpZEF1dG9SZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkgeyB9CisKICAgICAvLyBD
YWxsZWQgd2hlbiB0aGUgY29tcG9zaXRvciBpcyBlbmFibGVkIG9yIGRpc2FibGVkLgogICAgIC8v
IFRoZSBXZWJDb21wb3NpdG9yIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgb24gdGhlIGNvbXBvc2l0
b3IgdGhyZWFkIHRvIGdldCBhY2Nlc3MKICAgICAvLyB0byB0aGUgV2ViQ29tcG9zaXRvciBpbnN0
YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBXZWJXaWRnZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCA3NTFkMmNiNjI0NTM3YWZiYjFkZDViNzc0
N2E1MDkyOWQ4MTY0MzlkLi5hYTY5ZWY5MjgzNTFkNzdkZGVhYzA4MDAxNDYyZjk1OWI0ODM0ZWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTIw
ODMsNiArMjA4Myw4IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpjcmVhdGVGcmFtZVZpZXcoKQogCiAg
ICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSB2aWV3SW1wbCgpOwogICAgIG1fZnJhbWUtPmNyZWF0
ZVZpZXcod2ViVmlldy0+c2l6ZSgpLCBDb2xvcjo6d2hpdGUsIHdlYlZpZXctPmlzVHJhbnNwYXJl
bnQoKSwgIHdlYlZpZXctPmZpeGVkTGF5b3V0U2l6ZSgpLCB3ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0
TW9kZUVuYWJsZWQoKSk7CisgICAgaWYgKHdlYlZpZXctPnNob3VsZEF1dG9TaXplKCkpCisgICAg
ICAgIG1fZnJhbWUtPnZpZXcoKS0+ZW5hYmxlQXV0b1NpemVNb2RlKHRydWUsIHdlYlZpZXctPm1p
bkF1dG9TaXplKCksIHdlYlZpZXctPm1heEF1dG9TaXplKCkpOwogCiAjaWYgRU5BQkxFKEdFU1RV
UkVfUkVDT0dOSVpFUikKICAgICB3ZWJWaWV3LT5yZXNldEdlc3R1cmVSZWNvZ25pemVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYmE0MDNlYjI2
ZDM0ZjE2ZGUzNDU4ZTNlNjU0NTYzNmI5ZGRkMmRkMS4uOTljOGRiOWY2ZDlkZTVlNDY4ZmQ4MWRm
YmNjYTRiYTNmZWMwYThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2lu
Y2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgpAQCAtMzM0LDYgKzMzNSw3
IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAg
LCBtX2RyYWdDbGllbnRJbXBsKHRoaXMpCiAgICAgLCBtX2VkaXRvckNsaWVudEltcGwodGhpcykK
ICAgICAsIG1faW5zcGVjdG9yQ2xpZW50SW1wbCh0aGlzKQorICAgICwgbV9zaG91bGRBdXRvU2l6
ZShmYWxzZSkKICAgICAsIG1fb2JzZXJ2ZWROZXdOYXZpZ2F0aW9uKGZhbHNlKQogI2lmbmRlZiBO
REVCVUcKICAgICAsIG1fbmV3TmF2aWdhdGlvbkxvYWRlcigwKQpAQCAtMTA0MSwyNSArMTA0Mywx
NSBAQCB2b2lkIFdlYlZpZXdJbXBsOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKIAogdm9pZCBXZWJW
aWV3SW1wbDo6cmVzaXplKGNvbnN0IFdlYlNpemUmIG5ld1NpemUpCiB7CisgICAgQVNTRVJUKCFt
X3Nob3VsZEF1dG9TaXplKTsKICAgICBpZiAobV9zaXplID09IG5ld1NpemUpCiAgICAgICAgIHJl
dHVybjsKICAgICBtX3NpemUgPSBuZXdTaXplOwogCi0gICAgaWYgKG1haW5GcmFtZUltcGwoKS0+
ZnJhbWVWaWV3KCkpIHsKKyAgICBpZiAobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKICAg
ICAgICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+cmVzaXplKG1fc2l6ZS53aWR0aCwg
bV9zaXplLmhlaWdodCk7Ci0gICAgICAgIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRI
YW5kbGVyKCktPnNlbmRSZXNpemVFdmVudCgpOwotICAgIH0KIAotICAgIGlmIChtX2NsaWVudCkg
ewotICAgICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpIHsKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgICAgICB1cGRhdGVMYXllclRyZWVW
aWV3cG9ydCgpOwotI2VuZGlmCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBXZWJSZWN0
IGRhbWFnZWRSZWN0KDAsIDAsIG1fc2l6ZS53aWR0aCwgbV9zaXplLmhlaWdodCk7Ci0gICAgICAg
ICAgICBtX2NsaWVudC0+ZGlkSW52YWxpZGF0ZVJlY3QoZGFtYWdlZFJlY3QpOwotICAgICAgICB9
Ci0gICAgfQorICAgIHF1ZXVlQm90aFJlc2l6ZUV2ZW50QW5kUGFpbnQoKTsKIH0KIAogdm9pZCBX
ZWJWaWV3SW1wbDo6d2lsbEVuZExpdmVSZXNpemUoKQpAQCAtMTI5OSw2ICsxMjkxLDE2IEBAIHZv
aWQgV2ViVmlld0ltcGw6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
KiBlbGVtZW50KQogICAgICAgICBtX2NsaWVudC0+ZXhpdEZ1bGxTY3JlZW4oKTsKIH0KIAorYm9v
bCBXZWJWaWV3SW1wbDo6aGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpCit7CisgICAgcmV0dXJuIG1h
aW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCktPmhvcml6b250YWxTY3JvbGxiYXIoKTsKK30KKwor
Ym9vbCBXZWJWaWV3SW1wbDo6aGFzVmVydGljYWxTY3JvbGxiYXIoKQoreworICAgIHJldHVybiBt
YWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLT52ZXJ0aWNhbFNjcm9sbGJhcigpOworfQorCiBj
b25zdCBXZWJJbnB1dEV2ZW50KiBXZWJWaWV3SW1wbDo6bV9jdXJyZW50SW5wdXRFdmVudCA9IDA7
CiAKIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVu
dCYgaW5wdXRFdmVudCkKQEAgLTIwNTAsNiArMjA1MiwxNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpl
bmFibGVGaXhlZExheW91dE1vZGUoYm9vbCBlbmFibGUpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJW
aWV3SW1wbDo6ZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBXZWJTaXplJiBt
aW5TaXplLCBjb25zdCBXZWJTaXplJiBtYXhTaXplKQoreworICAgIG1fc2hvdWxkQXV0b1NpemUg
PSBlbmFibGU7CisgICAgbV9taW5BdXRvU2l6ZSA9IG1pblNpemU7CisgICAgbV9tYXhBdXRvU2l6
ZSA9IG1heFNpemU7CisgICAgaWYgKCFtYWluRnJhbWVJbXBsKCkgfHwgIW1haW5GcmFtZUltcGwo
KS0+ZnJhbWUoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT52aWV3KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+dmlldygpLT5lbmFibGVB
dXRvU2l6ZU1vZGUobV9zaG91bGRBdXRvU2l6ZSwgbV9taW5BdXRvU2l6ZSwgbV9tYXhBdXRvU2l6
ZSk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9h
dCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkKIHsKICAgICBtX21pbmltdW1QYWdl
U2NhbGVGYWN0b3IgPSBtaW4obWF4KG1pblBhZ2VTY2FsZSwgbWluUGFnZVNjYWxlRmFjdG9yKSwg
bWF4UGFnZVNjYWxlRmFjdG9yKSAqIGRldmljZVNjYWxlRmFjdG9yKCk7CkBAIC0yMjk1LDYgKzIz
MDgsMjUgQEAgV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJhZ1RhcmdldERyYWdFbnRl
ck9yT3Zlcihjb25zdCBXZWJQb2ludCYgY2xpZW50UG8KICAgICByZXR1cm4gbV9kcmFnT3BlcmF0
aW9uOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpxdWV1ZUJvdGhSZXNpemVFdmVudEFuZFBhaW50
KCkKK3sKKyAgICBpZiAobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkgeworICAgICAgICAv
LyBFbnF1ZXVlcyB0aGUgcmVzaXplIGV2ZW50LgorICAgICAgICBtYWluRnJhbWVJbXBsKCktPmZy
YW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZW5kUmVzaXplRXZlbnQoKTsKKyAgICB9CisKKyAgICBp
ZiAobV9jbGllbnQpIHsKKyAgICAgICAgaWYgKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSgpKSB7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICAgICAgdXBk
YXRlTGF5ZXJUcmVlVmlld3BvcnQoKTsKKyNlbmRpZgorICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgV2ViUmVjdCBkYW1hZ2VkUmVjdCgwLCAwLCBtX3NpemUud2lkdGgsIG1fc2l6ZS5oZWln
aHQpOworICAgICAgICAgICAgbV9jbGllbnQtPmRpZEludmFsaWRhdGVSZWN0KGRhbWFnZWRSZWN0
KTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdW5zaWduZWQgbG9uZyBXZWJWaWV3SW1wbDo6Y3Jl
YXRlVW5pcXVlSWRlbnRpZmllckZvclJlcXVlc3QoKQogewogICAgIGlmIChtX3BhZ2UpCkBAIC0y
NTQ4LDYgKzI1ODAsMTUgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bGF5b3V0VXBkYXRlZChXZWJGcmFt
ZUltcGwqIHdlYmZyYW1lKQogICAgIGlmICghbV9jbGllbnQgfHwgd2ViZnJhbWUgIT0gbWFpbkZy
YW1lSW1wbCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSAm
JiBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCkgJiYgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT52
aWV3KCkpIHsKKyAgICAgICAgV2ViU2l6ZSBmcmFtZVNpemUgPSBtYWluRnJhbWVJbXBsKCktPmZy
YW1lKCktPnZpZXcoKS0+ZnJhbWVSZWN0KCkuc2l6ZSgpOworICAgICAgICBpZiAoZnJhbWVTaXpl
ICE9IG1fc2l6ZSkgeworICAgICAgICAgICAgbV9zaXplID0gZnJhbWVTaXplOworICAgICAgICAg
ICAgbV9jbGllbnQtPmRpZEF1dG9SZXNpemUobV9zaXplKTsKKyAgICAgICAgICAgIHF1ZXVlQm90
aFJlc2l6ZUV2ZW50QW5kUGFpbnQoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIG1fY2xpZW50
LT5kaWRVcGRhdGVMYXlvdXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKaW5kZXggN2MyZGQxZTQ4NDc4YmQ1OTUwMWNkNThiOTg5ODMyZDJjZjQwOWU3ZS4u
MWM5M2RkNmY4ODM4YzU0NzllMDM5Y2ZlMjA4OWU0ZjE3Yzk2NGNlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xNzYsNiArMTc2LDEwIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKTsKICAg
ICB2aXJ0dWFsIFdlYlNpemUgZml4ZWRMYXlvdXRTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHNldEZpeGVkTGF5b3V0U2l6ZShjb25zdCBXZWJTaXplJik7CisgICAgdmlydHVhbCB2b2lk
IGVuYWJsZUF1dG9TaXplTW9kZSgKKyAgICAgICAgYm9vbCBlbmFibGUsCisgICAgICAgIGNvbnN0
IFdlYlNpemUmIG1pblNpemUsCisgICAgICAgIGNvbnN0IFdlYlNpemUmIG1heFNpemUpOwogICAg
IHZpcnR1YWwgdm9pZCBwZXJmb3JtTWVkaWFQbGF5ZXJBY3Rpb24oCiAgICAgICAgIGNvbnN0IFdl
Yk1lZGlhUGxheWVyQWN0aW9uJiBhY3Rpb24sCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBsb2Nh
dGlvbik7CkBAIC0zMzksNiArMzQzLDIxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fY29u
dGV4dE1lbnVBbGxvd2VkOwogICAgIH0KIAorICAgIGJvb2wgc2hvdWxkQXV0b1NpemUoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc2hvdWxkQXV0b1NpemU7CisgICAgfQorCisgICAg
V2ViQ29yZTo6SW50U2l6ZSBtaW5BdXRvU2l6ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gbV9taW5BdXRvU2l6ZTsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1heEF1dG9T
aXplKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX21heEF1dG9TaXplOworICAgIH0K
KwogICAgIC8vIFNldCB0aGUgZGlzcG9zaXRpb24gZm9yIGhvdyB0aGlzIHdlYnZpZXcgaXMgdG8g
YmUgaW5pdGlhbGx5IHNob3duLgogICAgIHZvaWQgc2V0SW5pdGlhbE5hdmlnYXRpb25Qb2xpY3ko
V2ViTmF2aWdhdGlvblBvbGljeSBwb2xpY3kpCiAgICAgewpAQCAtNDM2LDYgKzQ1NSwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQqKTsKICAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
Kik7CiAKKyAgICAvLyBFeHBvc2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorICAgIGJvb2wgaGFz
SG9yaXpvbnRhbFNjcm9sbGJhcigpOworICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIoKTsK
KwogcHJpdmF0ZToKICAgICBmbG9hdCBjb21wdXRlUGFnZVNjYWxlRmFjdG9yV2l0aGluTGltaXRz
KGZsb2F0IHNjYWxlKTsKICAgICBXZWJQb2ludCBjbGFtcE9mZnNldEF0U2NhbGUoY29uc3QgV2Vi
UG9pbnQmIG9mZnNldCwgZmxvYXQgc2NhbGUpOwpAQCAtNDc4LDYgKzUwMSw4IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdl
YlBvaW50JiBzY3JlZW5Qb2ludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRHJhZ0FjdGlvbik7CiAKKyAgICB2b2lkIHF1ZXVlQm90aFJlc2l6ZUV2ZW50
QW5kUGFpbnQoKTsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lk
IHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sKTsKICAgICB2b2lkIGRvQ29t
cG9zaXRlKCk7CkBAIC00OTgsNiArNTIzLDEyIEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yQ2xp
ZW50SW1wbCBtX2luc3BlY3RvckNsaWVudEltcGw7CiAKICAgICBXZWJTaXplIG1fc2l6ZTsKKyAg
ICAvLyBJZiB0cnVlLCBhdXRvbWF0aWNhbGx5IHJlc2l6ZSB0aGUgcmVuZGVyIHZpZXcgYXJvdW5k
IGl0cyBjb250ZW50LgorICAgIGJvb2wgbV9zaG91bGRBdXRvU2l6ZTsKKyAgICAvLyBUaGUgbG93
ZXIgYm91bmQgb24gdGhlIHNpemUgd2hlbiBhdXRvc2l6aW5nLgorICAgIFdlYkNvcmU6OkludFNp
emUgbV9taW5BdXRvU2l6ZTsKKyAgICAvLyBUaGUgdXBwZXIgYm91bmQgb24gdGhlIHNpemUgd2hl
biBhdXRvc2l6aW5nLgorICAgIFdlYkNvcmU6OkludFNpemUgbV9tYXhBdXRvU2l6ZTsKIAogICAg
IFdlYlBvaW50IG1fbGFzdE1vdXNlUG9zaXRpb247CiAgICAgT3duUHRyPFdlYkNvcmU6OlBhZ2U+
IG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRnJhbWVU
ZXN0SGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ZyYW1lVGVzdEhl
bHBlcnMuY3BwCmluZGV4IDIzMjU4NGJjYzhiZDQzOTc0MmRiN2EzNzIxOTdkZWI4YWNhZDNjOTUu
LjQ2NGM5YTFiOTlkZWVhZDJiOThhMjZmODE1Yzg0NzEyYzQ1NGUxM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRnJhbWVUZXN0SGVscGVycy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GcmFtZVRlc3RIZWxwZXJzLmNwcApAQCAtODQsMTEg
Kzg0LDEzIEBAIHN0YXRpYyBXZWJWaWV3Q2xpZW50KiBkZWZhdWx0V2ViVmlld0NsaWVudCgpCiAg
ICAgcmV0dXJuICZjbGllbnQ7CiB9CiAKLVdlYlZpZXcqIGNyZWF0ZVdlYlZpZXdBbmRMb2FkKGNv
bnN0IHN0ZDo6c3RyaW5nJiB1cmwsIGJvb2wgZW5hYmxlSmF2YXNjcmlwdCwgV2ViRnJhbWVDbGll
bnQqIHdlYkZyYW1lQ2xpZW50KQorV2ViVmlldyogY3JlYXRlV2ViVmlld0FuZExvYWQoY29uc3Qg
c3RkOjpzdHJpbmcmIHVybCwgYm9vbCBlbmFibGVKYXZhc2NyaXB0LCBXZWJGcmFtZUNsaWVudCog
d2ViRnJhbWVDbGllbnQsIFdlYlZpZXdDbGllbnQqIHdlYlZpZXdDbGllbnQpCiB7CiAgICAgaWYg
KCF3ZWJGcmFtZUNsaWVudCkKICAgICAgICAgd2ViRnJhbWVDbGllbnQgPSBkZWZhdWx0V2ViRnJh
bWVDbGllbnQoKTsKLSAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmlldzo6Y3JlYXRlKGRlZmF1
bHRXZWJWaWV3Q2xpZW50KCkpOworICAgIGlmICghd2ViVmlld0NsaWVudCkKKyAgICAgICAgd2Vi
Vmlld0NsaWVudCA9IGRlZmF1bHRXZWJWaWV3Q2xpZW50KCk7CisgICAgV2ViVmlldyogd2ViVmll
dyA9IFdlYlZpZXc6OmNyZWF0ZSh3ZWJWaWV3Q2xpZW50KTsKICAgICB3ZWJWaWV3LT5zZXR0aW5n
cygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChlbmFibGVKYXZhc2NyaXB0KTsKICAgICB3ZWJWaWV3
LT5pbml0aWFsaXplTWFpbkZyYW1lKHdlYkZyYW1lQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GcmFtZVRlc3RIZWxwZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0ZyYW1lVGVzdEhlbHBlcnMuaAppbmRleCBkMmMxZmEzZTFlMzQ1
ZTM5MTZiZDg2MzEyZWY1NWM3OWMyOGU3MWJlLi4yOTBhY2ZlMTNlMTQ2YzJlMTg0MmU2NWM0N2Ni
NzBiNjRmZWY5ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zy
YW1lVGVzdEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ZyYW1l
VGVzdEhlbHBlcnMuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IFdlYkZyYW1lOwogY2xhc3MgV2ViRnJhbWVDbGllbnQ7CiBjbGFzcyBXZWJWaWV3OworY2xhc3Mg
V2ViVmlld0NsaWVudDsKIAogbmFtZXNwYWNlIEZyYW1lVGVzdEhlbHBlcnMgewogCkBAIC00NSw3
ICs0Niw3IEBAIHZvaWQgcmVnaXN0ZXJNb2NrZWRVUkxMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiBi
YXNlLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZU5hbWUpCiAKIHZvaWQgbG9hZEZyYW1lKFdlYkZy
YW1lKiwgY29uc3Qgc3RkOjpzdHJpbmcmIHVybCk7CiAKLVdlYlZpZXcqIGNyZWF0ZVdlYlZpZXdB
bmRMb2FkKGNvbnN0IHN0ZDo6c3RyaW5nJiB1cmwsIGJvb2wgZW5hYmxlSmF2YXNjcmlwdCA9IGZh
bHNlLCBXZWJGcmFtZUNsaWVudCogPSAwKTsKK1dlYlZpZXcqIGNyZWF0ZVdlYlZpZXdBbmRMb2Fk
KGNvbnN0IHN0ZDo6c3RyaW5nJiB1cmwsIGJvb2wgZW5hYmxlSmF2YXNjcmlwdCA9IGZhbHNlLCBX
ZWJGcmFtZUNsaWVudCogPSAwLCBXZWJWaWV3Q2xpZW50KiA9IDApOwogCiB9IC8vIG5hbWVzcGFj
ZSBGcmFtZVRlc3RIZWxwZXJzCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVmlld1Rlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAKaW5kZXggNjdmMmIyZTc3OGFmZmYzMzI4
NDY3ZTY4MmZmNjYyYWNhNzM2NGFlNi4uNDM1NGE3ZDYzZTgzYmMyM2MyMjhiYWM2ODI1NDU2ZTYw
ZTg0YWZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5j
cHAKQEAgLTMzLDEwICszMywxNSBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJGcmFtZVRlc3RIZWxwZXJzLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgorI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJ
bXBsLmgiCisjaW5jbHVkZSAiV2ViU2l6ZS5oIgorI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIK
KyNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5j
bHVkZSA8d2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4KIApAQCAtNDQsNiArNDksMzIg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIHsKIAorY2xhc3MgVGVzdERh
dGEgeworcHVibGljOgorICAgIHZvaWQgc2V0V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KSB7IG1f
d2ViVmlldyA9IHN0YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4od2ViVmlldyk7IH0KKyAgICB2b2lk
IHNldFNpemUoY29uc3QgV2ViU2l6ZSYgc2l6ZSkge21fc2l6ZSA9IHNpemU7IH0KKyAgICBib29s
IGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3dlYlZpZXctPmhhc0hv
cml6b250YWxTY3JvbGxiYXIoKTsgfQorICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIoKSBj
b25zdCAgeyByZXR1cm4gbV93ZWJWaWV3LT5oYXNWZXJ0aWNhbFNjcm9sbGJhcigpOyB9CisgICAg
aW50IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9zaXplLndpZHRoOyB9CisgICAgaW50IGhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZS5oZWlnaHQ7IH0KKworcHJpdmF0ZToKKyAgICBXZWJT
aXplIG1fc2l6ZTsKKyAgICBXZWJWaWV3SW1wbCogbV93ZWJWaWV3OworfTsKKworY2xhc3MgQXV0
b1NpemVXZWJWaWV3Q2xpZW50IDogcHVibGljIFdlYlZpZXdDbGllbnQgeworcHVibGljOgorICAg
IC8vIFdlYlZpZXdDbGllbnQgbWV0aG9kcworICAgIHZpcnR1YWwgdm9pZCBkaWRBdXRvUmVzaXpl
KGNvbnN0IFdlYlNpemUmIHNpemUpIHsgbV90ZXN0RGF0YS5zZXRTaXplKHNpemUpOyB9CisKKyAg
ICAvLyBMb2NhbCBtZXRob2RzCisgICAgVGVzdERhdGEmIHRlc3REYXRhKCkgeyByZXR1cm4gbV90
ZXN0RGF0YTsgfQorCitwcml2YXRlOgorICAgIFRlc3REYXRhIG1fdGVzdERhdGE7Cit9OworCiBj
bGFzcyBXZWJWaWV3VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKICAgICBX
ZWJWaWV3VGVzdCgpCkBAIC03OSw0ICsxMTAsMzUgQEAgVEVTVF9GKFdlYlZpZXdUZXN0LCBGb2N1
c0lzSW5hY3RpdmUpCiAgICAgd2ViVmlldy0+Y2xvc2UoKTsKIH0KIAorVEVTVF9GKFdlYlZpZXdU
ZXN0LCBBdXRvUmVzaXplTWluaW11bVNpemUpCit7CisgICAgQXV0b1NpemVXZWJWaWV3Q2xpZW50
IGNsaWVudDsKKyAgICBGcmFtZVRlc3RIZWxwZXJzOjpyZWdpc3Rlck1vY2tlZFVSTExvYWQobV9i
YXNlVVJMLCAic3BlY2lmeV9zaXplLmh0bWwiKTsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gRnJh
bWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsgInNwZWNpZnlf
c2l6ZS5odG1sIiwgdHJ1ZSwgMCwgJmNsaWVudCk7CisgICAgY2xpZW50LnRlc3REYXRhKCkuc2V0
V2ViVmlldyh3ZWJWaWV3KTsKKyAgICBGcmFtZVRlc3RIZWxwZXJzOjpsb2FkRnJhbWUod2ViVmll
dy0+bWFpbkZyYW1lKCksICJqYXZhc2NyaXB0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaXpl
cicpLnN0eWxlLmhlaWdodCA9ICc1NnB4JzsiKTsKKyAgICBGcmFtZVRlc3RIZWxwZXJzOjpsb2Fk
RnJhbWUod2ViVmlldy0+bWFpbkZyYW1lKCksICJqYXZhc2NyaXB0OmRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzaXplcicpLnN0eWxlLndpZHRoID0gJzkxcHgnOyIpOworCisgICAgV2ViRnJhbWVJ
bXBsKiBmcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lSW1wbCo+KHdlYlZpZXctPm1haW5GcmFt
ZSgpKTsKKyAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT5mcmFtZSgp
LT52aWV3KCk7CisgICAgRVhQRUNUX0ZBTFNFKGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoZnJhbWVWaWV3LT5uZWVkc0xheW91dCgpKTsKKworICAgIFdlYlNp
emUgbWluU2l6ZSg5MSwgNTYpOworICAgIFdlYlNpemUgbWF4U2l6ZSg0MDMsIDMwMik7CisgICAg
d2ViVmlldy0+ZW5hYmxlQXV0b1NpemVNb2RlKHRydWUsIG1pblNpemUsIG1heFNpemUpOworICAg
IEVYUEVDVF9UUlVFKGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKTsKKyAgICBFWFBFQ1RfVFJV
RShmcmFtZVZpZXctPm5lZWRzTGF5b3V0KCkpOworICAgIGZyYW1lVmlldy0+bGF5b3V0KCk7CisK
KyAgICBFWFBFQ1RfVFJVRShmcmFtZS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1l
bnQoKSk7CisKKyAgICBFWFBFQ1RfRVEoOTEsIGNsaWVudC50ZXN0RGF0YSgpLndpZHRoKCkpOwor
ICAgIEVYUEVDVF9FUSg1NiwgY2xpZW50LnRlc3REYXRhKCkuaGVpZ2h0KCkpOworICAgIEVYUEVD
VF9GQUxTRShjbGllbnQudGVzdERhdGEoKS5oYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkpOworICAg
IEVYUEVDVF9GQUxTRShjbGllbnQudGVzdERhdGEoKS5oYXNWZXJ0aWNhbFNjcm9sbGJhcigpKTsK
KworICAgIHdlYlZpZXctPmNsb3NlKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvZGF0YS9zcGVjaWZ5X3NpemUuaHRtbCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvZGF0YS9zcGVjaWZ5X3NpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Yjk2OTVm
ZDJjOWEyZTU5MmQ2NDQ4ZTUyZjBjMGE3Nzg0MzIzNDg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3NwZWNpZnlfc2l6ZS5odG1sCkBAIC0wLDAg
KzEsNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxib2R5IHN0eWxlPSdtYXJnaW46MHB4
Jz4KKzxpbWcgaWQ9J3NpemVyJyBzcmM9J2Jyb2tlbi5qcGcnLz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="116884"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="116899"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>