<?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>202201</bug_id>
          
          <creation_ts>2019-09-25 06:32:54 -0700</creation_ts>
          <short_desc>[Nicosia] Implement frame scrolling functionality</short_desc>
          <delta_ts>2019-09-27 03:49:14 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>198475</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1574031</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-09-25 06:32:54 -0700</bug_when>
    <thetext>[Nicosia] Implement frame scrolling functionality</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574037</commentid>
    <comment_count>1</comment_count>
      <attachid>379545</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-09-25 06:47:07 -0700</bug_when>
    <thetext>Created attachment 379545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574761</commentid>
    <comment_count>2</comment_count>
      <attachid>379545</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-27 01:29:19 -0700</bug_when>
    <thetext>Comment on attachment 379545
Patch

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

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:161
&gt; +                [&amp;position](Nicosia::CompositionLayer::LayerState&amp; state)

why not position = WTFMove(position)? it&apos;s an rvalue ref

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:163
&gt; +                    state.position = position;

and WTFMove(position) here too.

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:183
&gt; +        applyLayerPosition(*m_rootContentsLayer, rootContentsPosition);
&gt; +        if (m_contentShadowLayer)
&gt; +            applyLayerPosition(*m_contentShadowLayer, rootContentsPosition);

hmm position can&apos;t be moved, so maybe the lambda should receive a ref instead of an rvalue ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574773</commentid>
    <comment_count>3</comment_count>
      <attachid>379545</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-09-27 03:47:24 -0700</bug_when>
    <thetext>Comment on attachment 379545
Patch

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

&gt;&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:183
&gt;&gt; +            applyLayerPosition(*m_contentShadowLayer, rootContentsPosition);
&gt; 
&gt; hmm position can&apos;t be moved, so maybe the lambda should receive a ref instead of an rvalue ref.

&apos;position&apos; values here are all FloatPoints -- nothing that would benefit from being moved instead of copied.

&apos;auto&amp;&amp;&apos; used in the lambda is there so that the lambda can operate on either an rvalue FloatPoint that&apos;s returned from FrameView functions or an lvalue reference like the one passed to the lambda here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574774</commentid>
    <comment_count>4</comment_count>
      <attachid>379545</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-09-27 03:48:33 -0700</bug_when>
    <thetext>Comment on attachment 379545
Patch

Clearing flags on attachment: 379545

Committed r250420: &lt;https://trac.webkit.org/changeset/250420&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574775</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-09-27 03:48:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574776</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-27 03:49:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/55777405&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379545</attachid>
            <date>2019-09-25 06:47:07 -0700</date>
            <delta_ts>2019-09-27 03:48:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202201-20190925154706.patch</filename>
            <type>text/plain</type>
            <size>12535</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkxZmU2ZDY0M2QzNTIz
NmRjYjRlMTIzNjc4MjVkZjQ0NDZlNmU1MS4uNDQ5Mzg2ODdmMDIzNjI4YjRkOWMwMTI1YzA3MGZk
ODA2Y2QyZjM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA5LTI1ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbTmljb3NpYV0gSW1w
bGVtZW50IGZyYW1lIHNjcm9sbGluZyBmdW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyMDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgbG9naWMgaW4gdGhlIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhIGNsYXNzLAorICAgICAgICBsYXJnZWx5
IGZvbGxvd2luZyB0aGUgTWFjIHBvcnQncyBpbXBsZW1lbnRhdGlvbiBidXQgc2tpcHBpbmcgYXJl
YXMgd2UKKyAgICAgICAgZG9uJ3Qgc3VwcG9ydCBvciBjYW4ga2VlcCBzaW1wbGUsIGxpa2UgQ1NT
IHNjcm9sbCBzbmFwLCBmcmFtZSBwaW5uaW5nCisgICAgICAgIGFuZCBtb3JlIGNvbXBsZXggd2hl
ZWwgZXZlbnQgaGFuZGxpbmcgdGhyb3VnaCB0aGUgcGxhdGZvcm0tc3BlY2lmaWMKKyAgICAgICAg
ZGVsZWdhdGUgYmVoYXZpb3IuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUJl
Zm9yZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4pOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU5pY29zaWE6OmFkanVzdGVkU2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmN1cnJlbnRTY3JvbGxQ
b3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU5pY29zaWE6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OnJlcG9zaXRp
b25SZWxhdGVkTGF5ZXJzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmg6CisKIDIwMTktMDktMjUgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtOaWNvc2lhXSBBZGQg
aW1wbGVtZW50YXRpb25zIGZvciBmaXhlZCwgcG9zaXRpb25lZCwgc3RpY2t5IFNjcm9sbGluZ1Ry
ZWVOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVOaWNvc2lhLmNwcAppbmRleCAxY2U0YTFhZGFkODFhNGMxMTVjMWM5Yjg5Zjc0MzRhYWFlYWIw
ODJhLi45ZGJlYWFhZjQ3ZTkwZGYxYmFiZDdlNjBlMzljZjNjY2MzNmJhYTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhIFMuTC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMiwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICszMSwxMSBAQAogCiAjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykgJiYgVVNFKE5JQ09TSUEpCiAKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNs
dWRlICJOaWNvc2lhUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPiBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y3JlYXRlKFNjcm9sbGluZ1RyZWUm
IHNjcm9sbGluZ1RyZWUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlEKQpAQCAtNDQsMTMgKzUwLDE0OSBAQCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTmljb3NpYTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEoUwog
CiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6flNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhKCkgPSBkZWZhdWx0OwogCi1TY3JvbGxpbmdFdmVudFJl
c3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKQordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3Jv
bGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKIHsKLSAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRS
ZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OworICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGNvbnN0
IGF1dG8mIHNjcm9sbGluZ1N0YXRlTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlRnJhbWVT
Y3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOworCisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OlJvb3RD
b250ZW50c0xheWVyKSkgeworICAgICAgICBOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKiBsYXllciA9
IHNjcm9sbGluZ1N0YXRlTm9kZS5yb290Q29udGVudHNMYXllcigpOworICAgICAgICBtX3Jvb3RD
b250ZW50c0xheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4obGF5ZXIp
OworICAgIH0KKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShT
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Q291bnRlclNjcm9sbGluZ0xheWVyKSkg
eworICAgICAgICBOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKiBsYXllciA9IHNjcm9sbGluZ1N0YXRl
Tm9kZS5jb3VudGVyU2Nyb2xsaW5nTGF5ZXIoKTsKKyAgICAgICAgbV9jb3VudGVyU2Nyb2xsaW5n
TGF5ZXIgPSBkb3duY2FzdDxOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyPihsYXllcik7CisgICAg
fQorICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpJbnNldENsaXBMYXllcikpIHsKKyAgICAgICAgTmlj
b3NpYTo6UGxhdGZvcm1MYXllciogbGF5ZXIgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuaW5zZXRDbGlw
TGF5ZXIoKTsKKyAgICAgICAgbV9pbnNldENsaXBMYXllciA9IGRvd25jYXN0PE5pY29zaWE6OkNv
bXBvc2l0aW9uTGF5ZXI+KGxheWVyKTsKKyAgICB9CisgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkNv
bnRlbnRTaGFkb3dMYXllcikpIHsKKyAgICAgICAgTmljb3NpYTo6UGxhdGZvcm1MYXllciogbGF5
ZXIgPSBzY3JvbGxpbmdTdGF0ZU5vZGUuY29udGVudFNoYWRvd0xheWVyKCk7CisgICAgICAgIG1f
Y29udGVudFNoYWRvd0xheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4o
bGF5ZXIpOworICAgIH0KKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SGVhZGVyTGF5ZXIpKSB7Cisg
ICAgICAgIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIqIGxheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2Rl
LmhlYWRlckxheWVyKCk7CisgICAgICAgIG1faGVhZGVyTGF5ZXIgPSBkb3duY2FzdDxOaWNvc2lh
OjpDb21wb3NpdGlvbkxheWVyPihsYXllcik7CisgICAgfQorICAgIGlmIChzY3JvbGxpbmdTdGF0
ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2Rl
OjpGb290ZXJMYXllcikpIHsKKyAgICAgICAgTmljb3NpYTo6UGxhdGZvcm1MYXllciogbGF5ZXIg
PSBzY3JvbGxpbmdTdGF0ZU5vZGUuZm9vdGVyTGF5ZXIoKTsKKyAgICAgICAgbV9mb290ZXJMYXll
ciA9IGRvd25jYXN0PE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI+KGxheWVyKTsKKyAgICB9Cit9
CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0
YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSkKK3sK
KyAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGNvbnN0IGF1dG8mIHNjcm9sbGluZ1N0YXRlTm9kZSA9
IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKTsKKworICAg
IC8vIFVwZGF0ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGFmdGVyIGNoaWxkIG5vZGVzIGhhdmUgYmVl
biB1cGRhdGVkLCBiZWNhdXNlIHRoZXkgbmVlZCB0byBoYXZlIHVwZGF0ZWQgdGhlaXIgY29uc3Ry
YWludHMgYmVmb3JlIGFueSBzY3JvbGxpbmcgaGFwcGVucy4KKyAgICBpZiAoc2Nyb2xsaW5nU3Rh
dGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkgeworICAgICAgICBhdXRvIHNjcm9sbFR5cGUgPSBzY3Jv
bGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1h
dGljU2Nyb2xsKCkgPyBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMgOiBTY3JvbGxUeXBlOjpVc2Vy
OworICAgICAgICBzY3JvbGxUbyhzY3JvbGxpbmdTdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24oKSwgc2Nyb2xsVHlwZSk7CisgICAgfQorfQorCitTY3JvbGxpbmdFdmVudFJlc3VsdCBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCit7CisgICAgaWYgKCFjYW5IYXZl
U2Nyb2xsYmFycygpKQorICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5v
dEhhbmRsZUV2ZW50OworCisgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVu
dC5kZWx0YVkoKSkgeworICAgICAgICBOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKiBzY3JvbGxMYXll
ciA9IHNjcm9sbGVkQ29udGVudHNMYXllcigpOworICAgICAgICBBU1NFUlQoc2Nyb2xsTGF5ZXIp
OworICAgICAgICBhdXRvJiBjb21wb3NpdGlvbkxheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29t
cG9zaXRpb25MYXllcj4oKnNjcm9sbExheWVyKTsKKworICAgICAgICBhdXRvIHVwZGF0ZVNjb3Bl
ID0gY29tcG9zaXRpb25MYXllci5jcmVhdGVVcGRhdGVTY29wZSgpOworICAgICAgICBzY3JvbGxC
eSh7IHdoZWVsRXZlbnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpIH0pOworICAgIH0K
KworICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRPckNsZWFyTGF0Y2hlZE5vZGUod2hlZWxFdmVudCwg
c2Nyb2xsaW5nTm9kZUlEKCkpOworCisgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gcmV0dXJu
IHdoZXRoZXIgdGhlIGV2ZW50IHdhcyBoYW5kbGVkLgorICAgIHJldHVybiBTY3JvbGxpbmdFdmVu
dFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQ7Cit9CisKK0Zsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxv
YXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbFBvc2l0aW9uQ2xhbXAgY2xhbXApIGNvbnN0Cit7Cisg
ICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbihyb3VuZGYocG9zaXRpb24ueCgpKSwgcm91bmRm
KHBvc2l0aW9uLnkoKSkpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlOjphZGp1c3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBjbGFtcCk7Cit9CisK
K3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmN1cnJlbnRTY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoKQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0
cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmN1cnJlbnRT
Y3JvbGxQb3NpdGlvbkNoYW5nZWQgdG8gIiA8PCBjdXJyZW50U2Nyb2xsUG9zaXRpb24oKSA8PCAi
IG1pbjogIiA8PCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSA8PCAiIG1heDogIiA8PCBtYXhpbXVt
U2Nyb2xsUG9zaXRpb24oKSA8PCAiIHN5bmM6ICIgPDwgc2hvdWxkVXBkYXRlU2Nyb2xsTGF5ZXJQ
b3NpdGlvblN5bmNocm9ub3VzbHkoKSk7CisKKyAgICBpZiAoc2hvdWxkVXBkYXRlU2Nyb2xsTGF5
ZXJQb3NpdGlvblN5bmNocm9ub3VzbHkoKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
OjpTZXQpOworICAgIGVsc2UKKyAgICAgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogfQogCiB2b2lkIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkK
IHsKKyAgICBOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKiBzY3JvbGxMYXllciA9IHNjcm9sbGVkQ29u
dGVudHNMYXllcigpOworICAgIEFTU0VSVChzY3JvbGxMYXllcik7CisgICAgYXV0byYgY29tcG9z
aXRpb25MYXllciA9IGRvd25jYXN0PE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI+KCpzY3JvbGxM
YXllcik7CisKKyAgICBhdXRvIHNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9u
KCk7CisKKyAgICBjb21wb3NpdGlvbkxheWVyLmFjY2Vzc1N0YWdpbmcoCisgICAgICAgIFsmc2Ny
b2xsUG9zaXRpb25dKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIHN0YXRl
KQorICAgICAgICB7CisgICAgICAgICAgICBzdGF0ZS5wb3NpdGlvbiA9IC1zY3JvbGxQb3NpdGlv
bjsKKyAgICAgICAgICAgIHN0YXRlLmRlbHRhLnBvc2l0aW9uQ2hhbmdlZCA9IHRydWU7CisgICAg
ICAgIH0pOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lh
OjpyZXBvc2l0aW9uUmVsYXRlZExheWVycygpCit7CisgICAgYXV0byBzY3JvbGxQb3NpdGlvbiA9
IGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpOworICAgIGF1dG8gbGF5b3V0Vmlld3BvcnQgPSB0aGlz
LT5sYXlvdXRWaWV3cG9ydCgpOworCisgICAgRmxvYXRSZWN0IHZpc2libGVDb250ZW50UmVjdChz
Y3JvbGxQb3NpdGlvbiwgc2Nyb2xsYWJsZUFyZWFTaXplKCkpOworCisgICAgYXV0byBhcHBseUxh
eWVyUG9zaXRpb24gPQorICAgICAgICBbXShhdXRvJiBsYXllciwgYXV0byYmIHBvc2l0aW9uKQor
ICAgICAgICB7CisgICAgICAgICAgICBsYXllci5hY2Nlc3NTdGFnaW5nKAorICAgICAgICAgICAg
ICAgIFsmcG9zaXRpb25dKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIHN0
YXRlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUucG9zaXRp
b24gPSBwb3NpdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUuZGVsdGEucG9zaXRpb25D
aGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsKKworICAgIGlm
IChtX2NvdW50ZXJTY3JvbGxpbmdMYXllcikKKyAgICAgICAgYXBwbHlMYXllclBvc2l0aW9uKCpt
X2NvdW50ZXJTY3JvbGxpbmdMYXllciwgbGF5b3V0Vmlld3BvcnQubG9jYXRpb24oKSk7CisKKyAg
ICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSB0aGlzLT50b3BDb250ZW50SW5zZXQoKTsKKyAgICBp
ZiAobV9pbnNldENsaXBMYXllciAmJiBtX3Jvb3RDb250ZW50c0xheWVyKSB7CisgICAgICAgIG1f
aW5zZXRDbGlwTGF5ZXItPmFjY2Vzc1N0YWdpbmcoCisgICAgICAgICAgICBbJnNjcm9sbFBvc2l0
aW9uLCAmdG9wQ29udGVudEluc2V0XShOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpMYXllclN0
YXRlJiBzdGF0ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGF0ZS5wb3NpdGlv
biA9IHsgc3RhdGUucG9zaXRpb24ueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xp
cExheWVyKHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50SW5zZXQpIH07CisgICAgICAgICAgICAg
ICAgc3RhdGUuZGVsdGEucG9zaXRpb25DaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOwor
CisgICAgICAgIGF1dG8gcm9vdENvbnRlbnRzUG9zaXRpb24gPSBGcmFtZVZpZXc6OnBvc2l0aW9u
Rm9yUm9vdENvbnRlbnRMYXllcihzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luKCksIHRvcENv
bnRlbnRJbnNldCwgaGVhZGVySGVpZ2h0KCkpOworICAgICAgICBhcHBseUxheWVyUG9zaXRpb24o
Km1fcm9vdENvbnRlbnRzTGF5ZXIsIHJvb3RDb250ZW50c1Bvc2l0aW9uKTsKKyAgICAgICAgaWYg
KG1fY29udGVudFNoYWRvd0xheWVyKQorICAgICAgICAgICAgYXBwbHlMYXllclBvc2l0aW9uKCpt
X2NvbnRlbnRTaGFkb3dMYXllciwgcm9vdENvbnRlbnRzUG9zaXRpb24pOworICAgIH0KKworICAg
IGlmIChtX2hlYWRlckxheWVyIHx8IG1fZm9vdGVyTGF5ZXIpIHsKKyAgICAgICAgLy8gR2VuZXJh
bGx5IHRoZSBiYW5uZXJzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGhvcml6b250YWwtcG9zaXRpb24g
Y29tcHV0YXRpb24gYXMgYSBmaXhlZCBlbGVtZW50LiBIb3dldmVyLAorICAgICAgICAvLyB0aGUg
YmFubmVycyBhcmUgbm90IGFmZmVjdGVkIGJ5IHRoZSBmcmFtZVNjYWxlRmFjdG9yKCksIHNvIGlm
IHRoZXJlIGlzIGN1cnJlbnRseSBhIG5vbi0xIGZyYW1lU2NhbGVGYWN0b3IoKQorICAgICAgICAv
LyB0aGVuIHdlIHNob3VsZCByZWNvbXB1dGUgbGF5b3V0Vmlld3BvcnQueCgpIGZvciB0aGUgYmFu
bmVyIHdpdGggYSBzY2FsZSBmYWN0b3Igb2YgMS4KKyAgICAgICAgZmxvYXQgaG9yaXpvbnRhbFNj
cm9sbE9mZnNldEZvckJhbm5lciA9IGxheW91dFZpZXdwb3J0LngoKTsKKyAgICAgICAgaWYgKG1f
aGVhZGVyTGF5ZXIpCisgICAgICAgICAgICBhcHBseUxheWVyUG9zaXRpb24oKm1faGVhZGVyTGF5
ZXIsIEZsb2F0UG9pbnQoaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciwgRnJhbWVWaWV3
Ojp5UG9zaXRpb25Gb3JIZWFkZXJMYXllcihzY3JvbGxQb3NpdGlvbiwgdG9wQ29udGVudEluc2V0
KSkpOworICAgICAgICBpZiAobV9mb290ZXJMYXllcikKKyAgICAgICAgICAgIGFwcGx5TGF5ZXJQ
b3NpdGlvbigqbV9mb290ZXJMYXllciwgRmxvYXRQb2ludChob3Jpem9udGFsU2Nyb2xsT2Zmc2V0
Rm9yQmFubmVyLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckZvb3RlckxheWVyKHNjcm9sbFBvc2l0
aW9uLCB0b3BDb250ZW50SW5zZXQsIHRvdGFsQ29udGVudHNTaXplKCkuaGVpZ2h0KCksIGZvb3Rl
ckhlaWdodCgpKSkpOworICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCmluZGV4
IDJiNWEyYmUzYmNlMGI1ZWU1MGVkOTA2YmM1ZTM2NDc4YTIwMmIxODYuLjFiOTkzZjYzMDI3NWIx
ZTFmMzM1NmFjZWZmNTQzZDliYjZlZWFiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29z
aWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgKQEAgLTEsNSArMSw2IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgSWdhbGlhIFMuTC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEs
NiArMzIsMTIgQEAKIAogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUu
aCIKIAorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIE5pY29zaWEgeworY2xh
c3MgQ29tcG9zaXRpb25MYXllcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYSBmaW5hbCA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlIHsKQEAgLTQxLDkgKzQ4LDI0IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCisgICAg
dm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYp
IG92ZXJyaWRlOworICAgIHZvaWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9s
bGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOworCiAgICAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAorICAg
IEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Ny
b2xsUG9zaXRpb25DbGFtcCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGN1cnJlbnRTY3Jv
bGxQb3NpdGlvbkNoYW5nZWQoKSBvdmVycmlkZTsKKwogICAgIHZvaWQgcmVwb3NpdGlvblNjcm9s
bGluZ0xheWVycygpIG92ZXJyaWRlOworICAgIHZvaWQgcmVwb3NpdGlvblJlbGF0ZWRMYXllcnMo
KSBvdmVycmlkZTsKKworICAgIFJlZlB0cjxOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyPiBtX3Jv
b3RDb250ZW50c0xheWVyOworICAgIFJlZlB0cjxOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyPiBt
X2NvdW50ZXJTY3JvbGxpbmdMYXllcjsKKyAgICBSZWZQdHI8Tmljb3NpYTo6Q29tcG9zaXRpb25M
YXllcj4gbV9pbnNldENsaXBMYXllcjsKKyAgICBSZWZQdHI8Tmljb3NpYTo6Q29tcG9zaXRpb25M
YXllcj4gbV9jb250ZW50U2hhZG93TGF5ZXI7CisgICAgUmVmUHRyPE5pY29zaWE6OkNvbXBvc2l0
aW9uTGF5ZXI+IG1faGVhZGVyTGF5ZXI7CisgICAgUmVmUHRyPE5pY29zaWE6OkNvbXBvc2l0aW9u
TGF5ZXI+IG1fZm9vdGVyTGF5ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>