<?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>210939</bug_id>
          
          <creation_ts>2020-04-23 15:38:28 -0700</creation_ts>
          <short_desc>Caret may be placed in the wrong spot for text input context that is a form control</short_desc>
          <delta_ts>2020-07-05 12:36:28 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211056</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213975</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1644992</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-23 15:38:28 -0700</bug_when>
    <thetext>-_focusTextInputContext:placeCaretAt:completionHandler: may place the caret in the wrong spot when the text input context represents a form control element (e.g. &lt;input&gt;) and the point is outside the bounds of the form control&apos;s inner element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644993</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-23 15:38:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/61943089&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645854</commentid>
    <comment_count>2</comment_count>
      <attachid>397635</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-26 16:45:38 -0700</bug_when>
    <thetext>Created attachment 397635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645856</commentid>
    <comment_count>3</comment_count>
      <attachid>397635</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-26 16:57:38 -0700</bug_when>
    <thetext>Comment on attachment 397635
Patch

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

&gt; Source/WebCore/editing/Editing.cpp:585
&gt; +    auto visiblePosition = frame-&gt;visiblePositionForPoint(constrainedPoint);

I don&apos;t need to do this, which does a hit test. I think I can do something like:

[[
bool isFixed = renderer-&gt;style().position() == PositionType::Fixed;
FloatPoint localPoint = renderer-&gt;absoluteToLocal(constrainedPoint, UseTransforms | (isFixed ? IsFixed : 0));
auto visiblePosition = renderer-&gt;positionForPoint(flooredLayoutPoint(localPoint), nullptr);
]]

To the reviewer, I hope you don&apos;t mind that I do this in a follow up likely in the same fix for the FIXME I added in focusTextInputContextAndPlaceCaret() below. I prefer to do it this way to minimize risk: I want to fix this bug with the smallest change necessary given the trickiness with hit testing. This change builds up my confidence to then more radically change the algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645864</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-26 17:48:14 -0700</bug_when>
    <thetext>Test failure is fixed by bug #211056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645868</commentid>
    <comment_count>5</comment_count>
      <attachid>397635</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-26 18:02:16 -0700</bug_when>
    <thetext>Comment on attachment 397635
Patch

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

&gt; Source/WebCore/editing/Editing.cpp:568
&gt; +    RenderObject* renderer = element.renderer();

Getting the renderer before update layout is always a risky proposition. This might be an element that was display none until now and was just changed.

&gt; Source/WebCore/editing/Editing.cpp:570
&gt; +    if (!renderer)
&gt; +        return { };

This isn’t needed. The second null check below is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645873</commentid>
    <comment_count>6</comment_count>
      <attachid>397635</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-26 18:37:22 -0700</bug_when>
    <thetext>Comment on attachment 397635
Patch

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

Thanks for the review, Darin!

&gt;&gt; Source/WebCore/editing/Editing.cpp:568
&gt;&gt; +    RenderObject* renderer = element.renderer();
&gt; 
&gt; Getting the renderer before update layout is always a risky proposition. This might be an element that was display none until now and was just changed.

Yep, I made an assumption based on my current caller, which DOES  a layout. I will update layout here too to future proof.

&gt;&gt; Source/WebCore/editing/Editing.cpp:570
&gt;&gt; +        return { };
&gt; 
&gt; This isn’t needed. The second null check below is sufficient.

Yep. Will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646028</commentid>
    <comment_count>7</comment_count>
      <attachid>397687</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-27 09:07:11 -0700</bug_when>
    <thetext>Created attachment 397687
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646030</commentid>
    <comment_count>8</comment_count>
      <attachid>397687</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-27 09:08:25 -0700</bug_when>
    <thetext>Comment on attachment 397687
To Land

Clearing flags on attachment: 397687

Committed r260759: &lt;https://trac.webkit.org/changeset/260759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646031</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-27 09:08:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397635</attachid>
            <date>2020-04-26 16:45:38 -0700</date>
            <delta_ts>2020-04-27 09:07:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210939-20200426164537.patch</filename>
            <type>text/plain</type>
            <size>9827</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTAyZTJkNDU4ODVhMTY5
NWUxNTgxZWMyMDY0N2I4ZjgyZDQ0MGM5MS4uOWY3MDIyZDA3NjhlZjQzNTY4NTRlZTBiNWQ5NTQy
YjlmZmRjMzdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA0LTI2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDYXJldCBtYXkgYmUgcGxh
Y2VkIGluIHRoZSB3cm9uZyBzcG90IGZvciB0ZXh0IGlucHV0IGNvbnRleHQgdGhhdCBpcyBhIGZv
cm0gY29udHJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwOTM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTk0MzA4OT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBoZWxwZXIgZnVuY3Rp
b24gdGhhdCByZXR1cm5zIHRoZSBjbG9zZXN0IGVkaXRhYmxlIHBvc2l0aW9uIGluc2lkZSBhbiBl
bGVtZW50CisgICAgICAgIGZvciBhIGdpdmVuIHBvaW50IChpZiBhbnkpLgorCisgICAgICAgICog
ZWRpdGluZy9FZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNsb3Nlc3RFZGl0YWJsZVBv
c2l0aW9uSW5FbGVtZW50Rm9yQWJzb2x1dGVQb2ludCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZy5oOgorCiAyMDIwLTA0LTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXBsZW1lbnQgVUlLaXQgU1BJIF9pc0hvcml6b250YWxX
cml0aW5nTW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZjVkMDhjNzMyZmUxNTI3NWJhMTNhOTRlOWUyMjgzYTVh
ZjVlNmJmLi5mZTIyNWJhMzkzZTY1MDNiZTc2NjViZGIxYjg4MTQ3ZTU4Yjk0ZTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTI2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBDYXJldCBtYXkgYmUgcGxhY2VkIGluIHRoZSB3cm9uZyBzcG90
IGZvciB0ZXh0IGlucHV0IGNvbnRleHQgdGhhdCBpcyBhIGZvcm0gY29udHJvbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTM5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82MTk0MzA4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaW5kIHRoZSBjbG9zZXN0IGVkaXRhYmxlIHBvc2l0aW9uIGluIHRo
ZSBlbGVtZW50IGZvciB0aGUgcG9pbnQgdXNpbmcgdGhlCisgICAgICAgIG5ld2x5IGludHJvZHVj
ZWQgY2xvc2VzdEVkaXRhYmxlUG9zaXRpb25JbkVsZW1lbnRGb3JBYnNvbHV0ZVBvaW50KCkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQpOgor
CiAyMDIwLTA0LTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBJbXBsZW1lbnQgVUlLaXQgU1BJIF9pc0hvcml6b250YWxXcml0aW5nTW9kZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKaW5kZXggZmMyZWZhOTUxZmY1MGE2ZmFkMzY5NDgzNTk5
NmI4NTljZTU3OWZiMS4uNTAyNjQ1NGI2MTJkMmE3MjI0Y2VhNDk5MjU2NGEwMDZmOGE1YjdhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC01MCw4ICs1MCwxMCBAQAogI2luY2x1
ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IlJlbmRlclRhYmxlQ2VsbC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVk
ZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
QEAgLTU2MSw2ICs1NjMsMjkgQEAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkFmdGVy
Tm9kZShOb2RlJiBub2RlKQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QWZ0ZXJOb2RlKCZu
b2RlKTsKIH0KIAorVmlzaWJsZVBvc2l0aW9uIGNsb3Nlc3RFZGl0YWJsZVBvc2l0aW9uSW5FbGVt
ZW50Rm9yQWJzb2x1dGVQb2ludChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRQb2lu
dCYgcG9pbnQpCit7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVy
ZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4geyB9OworICAgIEFTU0VS
VChlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgYXV0byBmcmFtZSA9IG1ha2VSZWYo
KmVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICAvLyBMb29rIGF0IHRoZSBpbm5lciBl
bGVtZW50IG9mIGEgZm9ybSBjb250cm9sLCBub3QgdGhlIGNvbnRyb2wgaXRzZWxmLCBhcyBpdCBp
cyB0aGUgZWRpdGFibGUgcGFydC4KKyAgICBpZiAoaXM8SFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ+KGVsZW1lbnQpKSB7CisgICAgICAgIGF1dG8mIGZvcm1Db250cm9sRWxlbWVudCA9IGRvd25j
YXN0PEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50PihlbGVtZW50KTsKKyAgICAgICAgaWYgKCFm
b3JtQ29udHJvbEVsZW1lbnQuaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKSkKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIGlmIChhdXRvIGlubmVyVGV4dEVsZW1lbnQgPSBmb3Jt
Q29udHJvbEVsZW1lbnQuaW5uZXJUZXh0RWxlbWVudCgpKQorICAgICAgICAgICAgcmVuZGVyZXIg
PSBpbm5lclRleHRFbGVtZW50LT5yZW5kZXJlcigpOworICAgIH0KKyAgICBpZiAoIXJlbmRlcmVy
KQorICAgICAgICByZXR1cm4geyB9OworICAgIGF1dG8gYWJzb2x1dGVCb3VuZGluZ0JveCA9IHJl
bmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOworICAgIGF1dG8gY29uc3RyYWluZWRQ
b2ludCA9IHBvaW50LmNvbnN0cmFpbmVkQmV0d2VlbihhYnNvbHV0ZUJvdW5kaW5nQm94Lm1pblhN
aW5ZQ29ybmVyKCksIGFic29sdXRlQm91bmRpbmdCb3gubWF4WE1heFlDb3JuZXIoKSk7CisgICAg
YXV0byB2aXNpYmxlUG9zaXRpb24gPSBmcmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29u
c3RyYWluZWRQb2ludCk7CisgICAgcmV0dXJuIGlzRWRpdGFibGVQb3NpdGlvbih2aXNpYmxlUG9z
aXRpb24uZGVlcEVxdWl2YWxlbnQoKSkgPyB2aXNpYmxlUG9zaXRpb24gOiBWaXNpYmxlUG9zaXRp
b24geyB9OworfQorCiBib29sIGlzTGlzdEhUTUxFbGVtZW50KE5vZGUqIG5vZGUpCiB7CiAgICAg
cmV0dXJuIG5vZGUgJiYgKGlzPEhUTUxVTGlzdEVsZW1lbnQ+KCpub2RlKSB8fCBpczxIVE1MT0xp
c3RFbGVtZW50Pigqbm9kZSkgfHwgaXM8SFRNTERMaXN0RWxlbWVudD4oKm5vZGUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nLmgKaW5kZXggZGVkNjNkZDNlMjdiYjFhMDlhMTE5ZGViNjRjNGM3ZDc5
MzBhZmI0MS4uOWFiM2Q2NjA3ODQ5ZjQwMjZhZjRjZjZiYmIzZDQyZDlmOTA5MjcyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nLmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBXRUJDT1JFX0VYUE9SVCBW
aXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yUG9zaXRpb25XaXRoT2Zmc2V0KGNvbnN0
IFZpc2libAogV0VCQ09SRV9FWFBPUlQgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZv
ckluZGV4KGludCBpbmRleCwgQ29udGFpbmVyTm9kZSogc2NvcGUpOwogVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlJiwgaW50
IGluZGV4KTsgLy8gRklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRoaXMgdmVyc2lvbj8KIAorV0VCQ09S
RV9FWFBPUlQgVmlzaWJsZVBvc2l0aW9uIGNsb3Nlc3RFZGl0YWJsZVBvc2l0aW9uSW5FbGVtZW50
Rm9yQWJzb2x1dGVQb2ludChjb25zdCBFbGVtZW50JiwgY29uc3QgSW50UG9pbnQmKTsKKwogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogLy8gSFRNTEVsZW1lbnQKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
aW5kZXggZWEyYTc5NTEyMzQ4NWYxYWZjZmExOTZjNDI4N2E0MDg5NGFkMjkxMS4uOTk5MGMxZGNh
MGEzOTMwMzVjMmVlMTRjNjU3OWVlZTI5YjUyODIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTk5LDcgKzk5LDYgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvSFRNTFNlbGVjdEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SFRNTFN1bW1hcnlFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvSGl0VGVzdFJl
c3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KQEAgLTQzMDksNiArNDMwOCw4
IEBAIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25z
dCBFbGVtZW50Q29udGV4dCYgZWxlbWVudENvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAg
ICAvLyBGSVhNRTogRG8gbm90IGZvY3VzIGFuIGVsZW1lbnQgaWYgaXQgbW92ZWQgb3IgdGhlIGNh
cmV0IHBvaW50IGlzIG91dHNpZGUgaXRzIGJvdW5kcworICAgIC8vIGJlY2F1c2Ugd2Ugb25seSB3
YW50IHRvIGRvIHNvIGlmIHRoZSBjYXJldCBjYW4gYmUgcGxhY2VkLgogICAgIFVzZXJHZXN0dXJl
SW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IgeyBQcm9jZXNzaW5nVXNlckdlc3R1cmUsICZ0YXJn
ZXQtPmRvY3VtZW50KCkgfTsKICAgICBTZXRGb3JTY29wZTxib29sPiB1c2VySXNJbnRlcmFjdGlu
Z0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKICAgICBtX3BhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldC5nZXQoKSwgdGFyZ2V0RnJhbWUp
OwpAQCAtNDMxOCw5ICs0MzE5LDEzIEBAIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250
ZXh0QW5kUGxhY2VDYXJldChjb25zdCBFbGVtZW50Q29udGV4dCYgZWxlbWVudENvCiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAv
LyBUaGUgZnVuY3Rpb24gdmlzaWJsZVBvc2l0aW9uSW5Gb2N1c2VkTm9kZUZvclBvaW50IGNvbnN0
cmFpbnMgdGhlIHBvaW50IHRvIGJlIGluc2lkZQotICAgIC8vIHRoZSBib3VuZHMgb2YgdGhlIHRh
cmdldCBlbGVtZW50LgotICAgIGF1dG8gcG9zaXRpb24gPSB2aXNpYmxlUG9zaXRpb25JbkZvY3Vz
ZWROb2RlRm9yUG9pbnQodGFyZ2V0RnJhbWUsIHBvaW50LCB0cnVlIC8qIGlzSW50ZXJhY3RpbmdX
aXRoRm9jdXNlZEVsZW1lbnQgKi8pOworCisgICAgQVNTRVJUKHRhcmdldEZyYW1lLT52aWV3KCkp
OworICAgIGF1dG8gcG9zaXRpb24gPSBjbG9zZXN0RWRpdGFibGVQb3NpdGlvbkluRWxlbWVudEZv
ckFic29sdXRlUG9pbnQoKnRhcmdldCwgdGFyZ2V0RnJhbWUtPnZpZXcoKS0+cm9vdFZpZXdUb0Nv
bnRlbnRzKHBvaW50KSk7CisgICAgaWYgKHBvc2l0aW9uLmlzTnVsbCgpKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICB0YXJn
ZXRGcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0ZWRSYW5nZShSYW5nZTo6Y3JlYXRlKCp0YXJn
ZXRGcmFtZS0+ZG9jdW1lbnQoKSwgcG9zaXRpb24sIHBvc2l0aW9uKS5wdHIoKSwgcG9zaXRpb24u
YWZmaW5pdHkoKSwgV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlNob3VsZENsb3NlVHlwaW5nOjpZ
ZXMsIFVzZXJUcmlnZ2VyZWQpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVkMzA0NzQ5
MTY1M2YyZmI2ZDQ0NTVkNDkzYjI1M2E2NWIxNWJhNzguLjRkMGYzNmFiOGNlMjRiOWEwNDI5ZTk4
Y2I3Njc5Y2U4OTk4MjAzZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0yNiAgRGFuaWVsIEJhdGVzICA8
ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2FyZXQgbWF5IGJlIHBsYWNlZCBpbiB0aGUg
d3Jvbmcgc3BvdCBmb3IgdGV4dCBpbnB1dCBjb250ZXh0IHRoYXQgaXMgYSBmb3JtIGNvbnRyb2wK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDkzOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjE5NDMwODk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdC4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNC0yNiAgRGFuaWVsIEJhdGVz
ICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVGV4dCBpbnRlcmFjdGlvbiB0ZXN0cyBz
aG91bGQgZW5zdXJlIHZpZXcgaXMgbm90IHNjcm9sbCBpbnN0ZWFkIG9mIGxvb2tpbmcgZm9yIGEg
em9vbSBjaGFuZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tCmluZGV4IDcyYjg4ZTFk
ZjM3YzUwMTA4ODM2NjVjZmY5ZTViNGU3MTE3Njk5MzUuLjc4NGE1MzEyY2FmMmE4MTI2YTliN2Qw
OTViODFhN2E0ODBlNmE0N2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQpAQCAt
NDY0LDYgKzQ2NCwyNiBAQCBURVNUKFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0LCBGb2N1c0ZpZWxk
QW5kUGxhY2VDYXJldEF0RW5kKQogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxpbnQ+KGV4YW1w
bGVUZXh0TGVuZ3RoKSwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJk
b2N1bWVudC5hY3RpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCJdIGludFZhbHVlXSk7CiB9CiAKK1RF
U1QoUmVxdWVzdFRleHRJbnB1dENvbnRleHQsIEZvY3VzRmllbGRXaXRoUGFkZGluZ0FuZFBsYWNl
Q2FyZXRBdEVuZCkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgY29u
c3RleHByIGNoYXIgZXhhbXBsZVRleHRbXSA9ICJoZWxsbyB3b3JsZCI7CisgICAgY29uc3RleHBy
IHNpemVfdCBleGFtcGxlVGV4dExlbmd0aCA9IHNpemVvZihleGFtcGxlVGV4dCkgLSAxOworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiPGlucHV0IHR5cGU9J3RleHQnIHZhbHVlPSclcycgc3R5bGU9
J3dpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBwYWRkaW5nOiAyMHB4Jz4iLCBleGFtcGxlVGV4
dF0pXTsKKyAgICBOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKmNvbnRleHRzID0gW3dl
YlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpbd2ViVmll
dyBib3VuZHNdXTsKKyAgICBFWFBFQ1RfRVEoMVVMLCBjb250ZXh0cy5jb3VudCk7CisgICAgUmV0
YWluUHRyPF9XS1RleHRJbnB1dENvbnRleHQ+IGlucHV0RWxlbWVudCA9IGNvbnRleHRzWzBdOwor
CisgICAgQ0dSZWN0IGJvdW5kaW5nUmVjdCA9IFtpbnB1dEVsZW1lbnQgYm91bmRpbmdSZWN0XTsK
KyAgICBDR1BvaW50IGVuZFBvc2l0aW9uID0gQ0dQb2ludE1ha2UoYm91bmRpbmdSZWN0Lm9yaWdp
bi54ICsgYm91bmRpbmdSZWN0LnNpemUud2lkdGgsIGJvdW5kaW5nUmVjdC5vcmlnaW4ueSk7Cisg
ICAgRVhQRUNUX0VRKChVSVJlc3BvbmRlcjxVSVRleHRJbnB1dD4gKilbd2ViVmlldyB0ZXh0SW5w
dXRDb250ZW50Vmlld10sIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlGb2N1c1RleHRJbnB1dENvbnRl
eHQ6aW5wdXRFbGVtZW50LmdldCgpIHBsYWNlQ2FyZXRBdDplbmRQb3NpdGlvbl0pOworICAgIEVY
UEVDVF9XS19TVFJFUSgiSU5QVVQiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIl0pOworICAgIEVYUEVDVF9FUShz
dGF0aWNfY2FzdDxpbnQ+KGV4YW1wbGVUZXh0TGVuZ3RoKSwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0
Il0gaW50VmFsdWVdKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50PihleGFtcGxlVGV4
dExlbmd0aCksIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQiXSBpbnRWYWx1ZV0pOworfQorCiBURVNUKFJl
cXVlc3RUZXh0SW5wdXRDb250ZXh0LCBGb2N1c0ZpZWxkQW5kUGxhY2VDYXJldE91dHNpZGVGaWVs
ZCkKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397687</attachid>
            <date>2020-04-27 09:07:11 -0700</date>
            <delta_ts>2020-04-27 09:07:11 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-210939-20200427090710.patch</filename>
            <type>text/plain</type>
            <size>9945</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTAyZTJkNDU4ODVhMTY5
NWUxNTgxZWMyMDY0N2I4ZjgyZDQ0MGM5MS4uZGU1MzQyZjk4Y2Q0MTkxYTliZDI2MDMzNzgzMTRh
MmJkOWY4MTdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA0LTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDYXJldCBtYXkgYmUgcGxh
Y2VkIGluIHRoZSB3cm9uZyBzcG90IGZvciB0ZXh0IGlucHV0IGNvbnRleHQgdGhhdCBpcyBhIGZv
cm0gY29udHJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwOTM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTk0MzA4OT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgYSBoZWxwZXIgZnVuY3Rpb24g
dGhhdCByZXR1cm5zIHRoZSBjbG9zZXN0IGVkaXRhYmxlIHBvc2l0aW9uIGluc2lkZSBhbiBlbGVt
ZW50CisgICAgICAgIGZvciBhIGdpdmVuIHBvaW50IChpZiBhbnkpLgorCisgICAgICAgICogZWRp
dGluZy9FZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNsb3Nlc3RFZGl0YWJsZVBvc2l0
aW9uSW5FbGVtZW50Rm9yQWJzb2x1dGVQb2ludCk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
RWRpdGluZy5oOgorCiAyMDIwLTA0LTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBJbXBsZW1lbnQgVUlLaXQgU1BJIF9pc0hvcml6b250YWxXcml0
aW5nTW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAxZjVkMDhjNzMyZmUxNTI3NWJhMTNhOTRlOWUyMjgzYTVhZjVl
NmJmLi43MzQ5ODc3MGI5NGM3NzU3YTRhN2E3MDA2OWVlMzliMmVmY2RkNTBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxl
LmNvbT4KKworICAgICAgICBDYXJldCBtYXkgYmUgcGxhY2VkIGluIHRoZSB3cm9uZyBzcG90IGZv
ciB0ZXh0IGlucHV0IGNvbnRleHQgdGhhdCBpcyBhIGZvcm0gY29udHJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTM5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MTk0MzA4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBGaW5kIHRoZSBjbG9zZXN0IGVkaXRhYmxlIHBvc2l0aW9uIGluIHRoZSBlbGVt
ZW50IGZvciB0aGUgcG9pbnQgdXNpbmcgdGhlCisgICAgICAgIG5ld2x5IGludHJvZHVjZWQgY2xv
c2VzdEVkaXRhYmxlUG9zaXRpb25JbkVsZW1lbnRGb3JBYnNvbHV0ZVBvaW50KCkuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQpOgorCiAyMDIw
LTA0LTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBJbXBsZW1lbnQgVUlLaXQgU1BJIF9pc0hvcml6b250YWxXcml0aW5nTW9kZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZy5jcHAKaW5kZXggZmMyZWZhOTUxZmY1MGE2ZmFkMzY5NDgzNTk5NmI4NTlj
ZTU3OWZiMS4uMDUzNTAzOGY0MDE1M2NkYzRhMmJiYmEyMmEyMzUwYzE4MGQxYmFmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCkBAIC01MCw4ICs1MCwxMCBAQAogI2luY2x1ZGUgIlJl
bmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
clRhYmxlQ2VsbC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgog
I2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTU2
MSw2ICs1NjMsMzMgQEAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkFmdGVyTm9kZShO
b2RlJiBub2RlKQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QWZ0ZXJOb2RlKCZub2RlKTsK
IH0KIAorVmlzaWJsZVBvc2l0aW9uIGNsb3Nlc3RFZGl0YWJsZVBvc2l0aW9uSW5FbGVtZW50Rm9y
QWJzb2x1dGVQb2ludChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRQb2ludCYgcG9p
bnQpCit7CisgICAgaWYgKCFlbGVtZW50LmlzQ29ubmVjdGVkKCkgfHwgIWVsZW1lbnQuZG9jdW1l
bnQoKS5mcmFtZSgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgUmVmPGNvbnN0IEVsZW1l
bnQ+IHByb3RlY3RlZEVsZW1lbnQgeyBlbGVtZW50IH07CisgICAgYXV0byBmcmFtZSA9IG1ha2VS
ZWYoKmVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKworICAgIGVsZW1lbnQuZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKworICAgIFJlbmRlck9i
amVjdCogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7CisgICAgLy8gTG9vayBhdCB0aGUg
aW5uZXIgZWxlbWVudCBvZiBhIGZvcm0gY29udHJvbCwgbm90IHRoZSBjb250cm9sIGl0c2VsZiwg
YXMgaXQgaXMgdGhlIGVkaXRhYmxlIHBhcnQuCisgICAgaWYgKGlzPEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50PihlbGVtZW50KSkgeworICAgICAgICBhdXRvJiBmb3JtQ29udHJvbEVsZW1lbnQg
PSBkb3duY2FzdDxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudCk7CisgICAgICAg
IGlmICghZm9ybUNvbnRyb2xFbGVtZW50LmlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxlKCkpCisg
ICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBpZiAoYXV0byBpbm5lclRleHRFbGVtZW50
ID0gZm9ybUNvbnRyb2xFbGVtZW50LmlubmVyVGV4dEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJl
bmRlcmVyID0gaW5uZXJUZXh0RWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICB9CisgICAgaWYgKCFy
ZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBhdXRvIGFic29sdXRlQm91bmRpbmdC
b3ggPSByZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKKyAgICBhdXRvIGNvbnN0
cmFpbmVkUG9pbnQgPSBwb2ludC5jb25zdHJhaW5lZEJldHdlZW4oYWJzb2x1dGVCb3VuZGluZ0Jv
eC5taW5YTWluWUNvcm5lcigpLCBhYnNvbHV0ZUJvdW5kaW5nQm94Lm1heFhNYXhZQ29ybmVyKCkp
OworICAgIGF1dG8gdmlzaWJsZVBvc2l0aW9uID0gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBv
aW50KGNvbnN0cmFpbmVkUG9pbnQpOworICAgIHJldHVybiBpc0VkaXRhYmxlUG9zaXRpb24odmlz
aWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkpID8gdmlzaWJsZVBvc2l0aW9uIDogVmlzaWJs
ZVBvc2l0aW9uIHsgfTsKK30KKwogYm9vbCBpc0xpc3RIVE1MRWxlbWVudChOb2RlKiBub2RlKQog
ewogICAgIHJldHVybiBub2RlICYmIChpczxIVE1MVUxpc3RFbGVtZW50Pigqbm9kZSkgfHwgaXM8
SFRNTE9MaXN0RWxlbWVudD4oKm5vZGUpIHx8IGlzPEhUTUxETGlzdEVsZW1lbnQ+KCpub2RlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oCmluZGV4IGRlZDYzZGQzZTI3YmIxYTA5YTExOWRlYjY0
YzRjN2Q3OTMwYWZiNDEuLjlhYjNkNjYwNzg0OWY0MDI2YWY0Y2Y2YmJiM2Q0MmQ5ZjkwOTI3MjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oCkBAIC0xNTUsNiArMTU1LDggQEAgV0VCQ09SRV9F
WFBPUlQgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvc2l0aW9uV2l0aE9mZnNl
dChjb25zdCBWaXNpYmwKIFdFQkNPUkVfRVhQT1JUIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9z
aXRpb25Gb3JJbmRleChpbnQgaW5kZXgsIENvbnRhaW5lck5vZGUqIHNjb3BlKTsKIFZpc2libGVQ
b3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleFVzaW5nQ2hhcmFjdGVySXRlcmF0b3IoTm9k
ZSYsIGludCBpbmRleCk7IC8vIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCB0aGlzIHZlcnNpb24/CiAK
K1dFQkNPUkVfRVhQT1JUIFZpc2libGVQb3NpdGlvbiBjbG9zZXN0RWRpdGFibGVQb3NpdGlvbklu
RWxlbWVudEZvckFic29sdXRlUG9pbnQoY29uc3QgRWxlbWVudCYsIGNvbnN0IEludFBvaW50Jik7
CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEhUTUxFbGVtZW50CiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCmluZGV4IGVhMmE3OTUxMjM0ODVmMWFmY2ZhMTk2YzQyODdhNDA4OTRhZDI5MTEuLjk5
OTBjMWRjYTBhMzkzMDM1YzJlZTE0YzY1NzllZWUyOWI1MjgyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC05OSw3ICs5
OSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxTZWxlY3RFbGVtZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hUTUxTdW1tYXJ5RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFy
ZWFFbGVtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hp
dFRlc3RSZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CkBAIC00MzA5LDYg
KzQzMDgsOCBAQCB2b2lkIFdlYlBhZ2U6OmZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2Fy
ZXQoY29uc3QgRWxlbWVudENvbnRleHQmIGVsZW1lbnRDbwogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgLy8gRklYTUU6IERvIG5vdCBmb2N1cyBhbiBlbGVtZW50IGlmIGl0IG1vdmVkIG9y
IHRoZSBjYXJldCBwb2ludCBpcyBvdXRzaWRlIGl0cyBib3VuZHMKKyAgICAvLyBiZWNhdXNlIHdl
IG9ubHkgd2FudCB0byBkbyBzbyBpZiB0aGUgY2FyZXQgY2FuIGJlIHBsYWNlZC4KICAgICBVc2Vy
R2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJHZXN0dXJl
LCAmdGFyZ2V0LT5kb2N1bWVudCgpIH07CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXNlcklzSW50
ZXJhY3RpbmdDaGFuZ2UgeyBtX3VzZXJJc0ludGVyYWN0aW5nLCB0cnVlIH07CiAgICAgbV9wYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0YXJnZXQuZ2V0KCksIHRhcmdl
dEZyYW1lKTsKQEAgLTQzMTgsOSArNDMxOSwxMyBAQCB2b2lkIFdlYlBhZ2U6OmZvY3VzVGV4dElu
cHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoY29uc3QgRWxlbWVudENvbnRleHQmIGVsZW1lbnRDbwog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgLy8gVGhlIGZ1bmN0aW9uIHZpc2libGVQb3NpdGlvbkluRm9jdXNlZE5vZGVGb3JQb2lu
dCBjb25zdHJhaW5zIHRoZSBwb2ludCB0byBiZSBpbnNpZGUKLSAgICAvLyB0aGUgYm91bmRzIG9m
IHRoZSB0YXJnZXQgZWxlbWVudC4KLSAgICBhdXRvIHBvc2l0aW9uID0gdmlzaWJsZVBvc2l0aW9u
SW5Gb2N1c2VkTm9kZUZvclBvaW50KHRhcmdldEZyYW1lLCBwb2ludCwgdHJ1ZSAvKiBpc0ludGVy
YWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50ICovKTsKKworICAgIEFTU0VSVCh0YXJnZXRGcmFtZS0+
dmlldygpKTsKKyAgICBhdXRvIHBvc2l0aW9uID0gY2xvc2VzdEVkaXRhYmxlUG9zaXRpb25JbkVs
ZW1lbnRGb3JBYnNvbHV0ZVBvaW50KCp0YXJnZXQsIHRhcmdldEZyYW1lLT52aWV3KCktPnJvb3RW
aWV3VG9Db250ZW50cyhwb2ludCkpOworICAgIGlmIChwb3NpdGlvbi5pc051bGwoKSkgeworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAg
ICAgdGFyZ2V0RnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2U6OmNyZWF0
ZSgqdGFyZ2V0RnJhbWUtPmRvY3VtZW50KCksIHBvc2l0aW9uLCBwb3NpdGlvbikucHRyKCksIHBv
c2l0aW9uLmFmZmluaXR5KCksIFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpTaG91bGRDbG9zZVR5
cGluZzo6WWVzLCBVc2VyVHJpZ2dlcmVkKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBl
ZDMwNDc0OTE2NTNmMmZiNmQ0NDU1ZDQ5M2IyNTNhNjViMTViYTc4Li5kNzZmMWI3ZjFjMWM2NzA0
ZDI3ZjYwMWE3NTE1YzBkZDdmZGRiY2EyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMjcgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIENhcmV0IG1heSBiZSBwbGFjZWQg
aW4gdGhlIHdyb25nIHNwb3QgZm9yIHRleHQgaW5wdXQgY29udGV4dCB0aGF0IGlzIGEgZm9ybSBj
b250cm9sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTA5MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxOTQzMDg5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBhIHRlc3QuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDQtMjYgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFRleHQgaW50ZXJhY3Rpb24gdGVz
dHMgc2hvdWxkIGVuc3VyZSB2aWV3IGlzIG5vdCBzY3JvbGwgaW5zdGVhZCBvZiBsb29raW5nIGZv
ciBhIHpvb20gY2hhbmdlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQppbmRleCA3MmI4
OGUxZGYzN2M1MDEwODgzNjY1Y2ZmOWU1YjRlNzExNzY5OTM1Li43ODRhNTMxMmNhZjJhODEyNmE5
YjdkMDk1YjgxYTdhNDgwZTZhNDdiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0K
QEAgLTQ2NCw2ICs0NjQsMjYgQEAgVEVTVChSZXF1ZXN0VGV4dElucHV0Q29udGV4dCwgRm9jdXNG
aWVsZEFuZFBsYWNlQ2FyZXRBdEVuZCkKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50Pihl
eGFtcGxlVGV4dExlbmd0aCksIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQiXSBpbnRWYWx1ZV0pOwogfQog
CitURVNUKFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0LCBGb2N1c0ZpZWxkV2l0aFBhZGRpbmdBbmRQ
bGFjZUNhcmV0QXRFbmQpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAg
IGNvbnN0ZXhwciBjaGFyIGV4YW1wbGVUZXh0W10gPSAiaGVsbG8gd29ybGQiOworICAgIGNvbnN0
ZXhwciBzaXplX3QgZXhhbXBsZVRleHRMZW5ndGggPSBzaXplb2YoZXhhbXBsZVRleHQpIC0gMTsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHlsZShbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxpbnB1dCB0eXBlPSd0ZXh0JyB2YWx1ZT0nJXMnIHN0
eWxlPSd3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgcGFkZGluZzogMjBweCc+IiwgZXhhbXBs
ZVRleHRdKV07CisgICAgTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICpjb250ZXh0cyA9
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dl
YlZpZXcgYm91bmRzXV07CisgICAgRVhQRUNUX0VRKDFVTCwgY29udGV4dHMuY291bnQpOworICAg
IFJldGFpblB0cjxfV0tUZXh0SW5wdXRDb250ZXh0PiBpbnB1dEVsZW1lbnQgPSBjb250ZXh0c1sw
XTsKKworICAgIENHUmVjdCBib3VuZGluZ1JlY3QgPSBbaW5wdXRFbGVtZW50IGJvdW5kaW5nUmVj
dF07CisgICAgQ0dQb2ludCBlbmRQb3NpdGlvbiA9IENHUG9pbnRNYWtlKGJvdW5kaW5nUmVjdC5v
cmlnaW4ueCArIGJvdW5kaW5nUmVjdC5zaXplLndpZHRoLCBib3VuZGluZ1JlY3Qub3JpZ2luLnkp
OworICAgIEVYUEVDVF9FUSgoVUlSZXNwb25kZXI8VUlUZXh0SW5wdXQ+ICopW3dlYlZpZXcgdGV4
dElucHV0Q29udGVudFZpZXddLCBbd2ViVmlldyBzeW5jaHJvbm91c2x5Rm9jdXNUZXh0SW5wdXRD
b250ZXh0OmlucHV0RWxlbWVudC5nZXQoKSBwbGFjZUNhcmV0QXQ6ZW5kUG9zaXRpb25dKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoIklOUFVUIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSJdKTsKKyAgICBFWFBFQ1Rf
RVEoc3RhdGljX2Nhc3Q8aW50PihleGFtcGxlVGV4dExlbmd0aCksIFtbd2ViVmlldyBvYmplY3RC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5zZWxlY3Rpb25T
dGFydCJdIGludFZhbHVlXSk7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PGludD4oZXhhbXBs
ZVRleHRMZW5ndGgpLCBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kIl0gaW50VmFsdWVdKTsKK30KKwogVEVT
VChSZXF1ZXN0VGV4dElucHV0Q29udGV4dCwgRm9jdXNGaWVsZEFuZFBsYWNlQ2FyZXRPdXRzaWRl
RmllbGQpCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>