<?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>198597</bug_id>
          
          <creation_ts>2019-06-05 19:52:11 -0700</creation_ts>
          <short_desc>Don&apos;t expose negative scrollLeft/scrollTop during rubber-banding</short_desc>
          <delta_ts>2019-09-12 08:23:04 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=198598</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=198599</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=199691</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>fred.wang</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1542276</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-05 19:52:11 -0700</bug_when>
    <thetext>Don&apos;t expose negative scrollLeft/scrollTop during rubber-banding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542277</commentid>
    <comment_count>1</comment_count>
      <attachid>371468</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-05 19:57:21 -0700</bug_when>
    <thetext>Created attachment 371468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542279</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-05 19:58:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/51467217&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542327</commentid>
    <comment_count>3</comment_count>
      <attachid>371468</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-06 01:36:16 -0700</bug_when>
    <thetext>Comment on attachment 371468
Patch

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

&gt; Source/WebCore/platform/ScrollView.h:224
&gt; +    WEBCORE_EXPORT ScrollPosition scrollPosition(ScrollClamping = ScrollClamping::Unclamped) const final;

Alternatively these functions could return both clamped and unclamped values as a struct, avoiding parameter passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542482</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-06 10:54:34 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 371468 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=371468&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollView.h:224
&gt; &gt; +    WEBCORE_EXPORT ScrollPosition scrollPosition(ScrollClamping = ScrollClamping::Unclamped) const final;
&gt; 
&gt; Alternatively these functions could return both clamped and unclamped values
&gt; as a struct, avoiding parameter passing.

I think that would be even more plumbing.

I&apos;m worried that this isn&apos;t web compatible, so I&apos;ll hold off on landing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544258</commentid>
    <comment_count>5</comment_count>
      <attachid>371468</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-12 15:30:43 -0700</bug_when>
    <thetext>Comment on attachment 371468
Patch

Not going to land until I&apos;m more convinced this won&apos;t break things.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371468</attachid>
            <date>2019-06-05 19:57:21 -0700</date>
            <delta_ts>2019-06-12 15:30:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198597-20190605195720.patch</filename>
            <type>text/plain</type>
            <size>27345</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY2ZDU3ODY5NTVkNTRm
MmNhM2NiYjdhNWRhMWQwZmQ5OTIyZWRiYy4uZjQ5NWE3OWJjOGQ4YjdjNjRhODcyODcxOTkzZTAz
MTgwNzdiYzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE5LTA2LTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGV4cG9z
ZSBuZWdhdGl2ZSBzY3JvbGxMZWZ0L3Njcm9sbFRvcCBkdXJpbmcgcnViYmVyLWJhbmRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODU5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNldmVyYWwgaW1w
b3J0YW50IHNpdGVzIGFuZCBKUyBsaWJyYXJpZXMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHZhbHVl
cyBvZiBzY3JvbGxMZWZ0LworICAgICAgICBzY3JvbGxUb3AgYmVjb21pbmcgbmVnYXRpdmUgZHVy
aW5nIHJ1YmJlci1iYW5kaW5nICh0aGV5IGdldCBjbGFtcGVkIHRvIDAgYW5kIHRoZW4gc2V0IGJh
Y2ssCisgICAgICAgIGNhdXNpbmcganVtcGluZXNzKS4KKworICAgICAgICBUaGUgZmlyc3Qgc3Rl
cCB0byBmaXhpbmcgdGhpcyBpcyB0byBjbGFtcHMgdGhlIEpTLWV4cG9zZWQgdmFsdWVzIHRvIGJl
IGluIHRoZSBhbGxvd2FibGUgcmFuZ2UsCisgICAgICAgIGZvciBib3RoIG92ZXJmbG93IGFuZCBw
YWdlIHNjcm9sbGluZy4KKworICAgICAgICBXZSBwYXNzIFNjcm9sbENsYW1waW5nIGFyb3VuZCBp
biBjb2RlIHRoYXQgZ2V0cyBzY3JvbGxQb3NpdGlvbiwgc2Nyb2xsTGVmdCBhbmQgc2Nyb2xsVG9w
LAorICAgICAgICBhbmQgYWRkIEVsZW1lbnQ6OnNjcm9sbExlZnRGb3JCaW5kaW5ncygpIGFuZCBF
bGVtZW50OjpzY3JvbGxUb3BGb3JCaW5kaW5ncygpIHdoaWNoIGFzayBmb3IKKyAgICAgICAgdGhl
IGNsYW1wZWQgdmFsdWVzLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc2Nyb2xsaW5nL3VuY29uc3Ry
YWluZWQtc2Nyb2xsdG8tcGFnZS5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OnNjcm9sbFRvcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbExlZnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpzY3JvbGxUb3BGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzZXRTY3JvbGxMZWZ0Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6c2V0U2Nyb2xsVG9wRm9yQmluZGluZ3MpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsZWRUb1RvcCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsZWRUb0JvdHRvbSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsZWRUb0xlZnQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbGVkVG9SaWdodCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb24g
Y29uc3QpOiBEZWxldGVkLiBSZW1vdmVkIHRoaXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICB3aGljaCBoYWQgYSB3ZWlyZCBkZXBlbmRlbmN5IG9uIHNjcm9sbGJhciB2YWx1ZXMsIGZv
cmNpbmcgaW1wbGVtZW50b3JzIHRvIHdyaXRlIHRoZWlyIG93bgorICAgICAgICBpbXBsZW1lbnRh
dGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzY3Jv
bGxMZWZ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2Nyb2xsVG9wIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3Jv
bGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6c2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6c2Nyb2xsTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMaXN0Qm94OjpzY3JvbGxUb3AgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
aXN0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNj
cm9sbExlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lOjpzY3JvbGxUb3AgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuaDoKKwogMjAxOS0wNi0wMyAgVGltb3RoeSBIYXRjaGVyICA8dGlt
b3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgVHdlYWsgdGhlIHRleHQgYW5kIHVuZGVybGluZSBj
b2xvciBmb3IgZGF0YSBkZXRlY3RlZCB0ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNjM4YTA2ODJlZDAxOGZh
YmFhYmI1Yzc1YjQwMzAyZDU3ZTJkMGU2Li5lZTI1NGIyYzUyMzdlODFjY2QwMTQwMjA1MTU2OTdh
OTdlNjgxNzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA2LTA1ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGV4cG9zZSBu
ZWdhdGl2ZSBzY3JvbGxMZWZ0L3Njcm9sbFRvcCBkdXJpbmcgcnViYmVyLWJhbmRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODU5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBERlBsdWdpbiBpbXBs
ZW1lbnRzIFNjcm9sbGFibGVBcmVhIHNvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2Ygc2Ny
b2xsUG9zaXRpb24oKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c2Nyb2xsUG9zaXRpb24gY29uc3QpOgorCiAyMDE5
LTA2LTAzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaW5pc2gg
Y2xlYW51cCBvZiBTdHJpbmc6Om51bWJlciBmb3IgZmxvYXRpbmcgcG9pbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCAzODVlMjIyM2UwZjNlZmMwNjE2Mzk4NWI5YTA3ZTEyOTA5YWEyNWFiLi4z
NzUzNDgxYzUwM2VmYTNjZGU0ZjNmMzBlYTQ2MzM4OWNhZWM0OGI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC0xMTE5LDMyICsxMTE5LDQyIEBAIEFMV0FZU19JTkxJTkUgRnJhbWUqIEVsZW1l
bnQ6OmRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSBjb25zdAogfQogCiBpbnQgRWxlbWVu
dDo6c2Nyb2xsTGVmdCgpCit7CisgICAgcmV0dXJuIHNjcm9sbExlZnQoU2Nyb2xsQ2xhbXBpbmc6
OlVuY2xhbXBlZCk7Cit9CisKK2ludCBFbGVtZW50OjpzY3JvbGxMZWZ0KFNjcm9sbENsYW1waW5n
IGNsYW1waW5nKQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0g
dGhpcykgewogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51
bGxWaWV3KCkpCi0gICAgICAgICAgICByZXR1cm4gYWRqdXN0Q29udGVudHNTY3JvbGxQb3NpdGlv
bk9yU2l6ZUZvclpvb20oZnJhbWUtPnZpZXcoKS0+Y29udGVudHNTY3JvbGxQb3NpdGlvbigpLngo
KSwgKmZyYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50c1Njcm9sbFBvc2l0
aW9uT3JTaXplRm9yWm9vbShmcmFtZS0+dmlldygpLT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKGNs
YW1waW5nKS54KCksICpmcmFtZSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGlm
IChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKQotICAgICAgICByZXR1cm4gYWRqdXN0Rm9y
QWJzb2x1dGVab29tKHJlbmRlcmVyLT5zY3JvbGxMZWZ0KCksICpyZW5kZXJlcik7CisgICAgICAg
IHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyZXItPnNjcm9sbExlZnQoY2xhbXBp
bmcpLCAqcmVuZGVyZXIpOwogICAgIHJldHVybiAwOwogfQogCiBpbnQgRWxlbWVudDo6c2Nyb2xs
VG9wKCkKK3sKKyAgICByZXR1cm4gc2Nyb2xsVG9wKFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQp
OworfQorCitpbnQgRWxlbWVudDo6c2Nyb2xsVG9wKFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQog
ewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewogICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCi0g
ICAgICAgICAgICByZXR1cm4gYWRqdXN0Q29udGVudHNTY3JvbGxQb3NpdGlvbk9yU2l6ZUZvclpv
b20oZnJhbWUtPnZpZXcoKS0+Y29udGVudHNTY3JvbGxQb3NpdGlvbigpLnkoKSwgKmZyYW1lKTsK
KyAgICAgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50c1Njcm9sbFBvc2l0aW9uT3JTaXplRm9y
Wm9vbShmcmFtZS0+dmlldygpLT5jb250ZW50c1Njcm9sbFBvc2l0aW9uKGNsYW1waW5nKS55KCks
ICpmcmFtZSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGlmIChSZW5kZXJCb3gq
IHJlbmRlcmVyID0gcmVuZGVyQm94KCkpCi0gICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0
ZVpvb20ocmVuZGVyZXItPnNjcm9sbFRvcCgpLCAqcmVuZGVyZXIpOworICAgICAgICByZXR1cm4g
YWRqdXN0Rm9yQWJzb2x1dGVab29tKHJlbmRlcmVyLT5zY3JvbGxUb3AoY2xhbXBpbmcpLCAqcmVu
ZGVyZXIpOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA4ZGVkNTQ1
MDI3ZmQ1ZTg4ZmUxZjBmYTNmMzI3MGIwNDY5MTI3YmY1Li4yMzBlNmExNmRiODI5Y2M3NWQxY2Q5
ZWI0MjJmOTgzZWU3ZmU2YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTE4MCwxMiArMTgwLDIy
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgY2xpZW50V2lkdGgoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgY2xpZW50SGVpZ2h0KCk7CiAKLSAgICB2aXJ0dWFsIGlu
dCBzY3JvbGxMZWZ0KCk7Ci0gICAgdmlydHVhbCBpbnQgc2Nyb2xsVG9wKCk7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFNjcm9sbExlZnQoaW50KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9w
KGludCk7Ci0gICAgdmlydHVhbCBpbnQgc2Nyb2xsV2lkdGgoKTsKLSAgICB2aXJ0dWFsIGludCBz
Y3JvbGxIZWlnaHQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2Nyb2xsTGVmdCgpOworICAg
IGludCBzY3JvbGxMZWZ0Rm9yQmluZGluZ3MoKSB7IHJldHVybiBzY3JvbGxMZWZ0KFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkKTsgfQorICAgIGludCBzY3JvbGxMZWZ0KFNjcm9sbENsYW1waW5nKTsK
KworICAgIFdFQkNPUkVfRVhQT1JUIGludCBzY3JvbGxUb3AoKTsKKyAgICBpbnQgc2Nyb2xsVG9w
Rm9yQmluZGluZ3MoKSB7IHJldHVybiBzY3JvbGxUb3AoU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQp
OyB9CisgICAgaW50IHNjcm9sbFRvcChTY3JvbGxDbGFtcGluZyk7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFNjcm9sbExlZnQoaW50KTsKKyAgICB2b2lkIHNldFNjcm9sbExlZnRGb3JC
aW5kaW5ncyhpbnQgdmFsdWUpIHsgc2V0U2Nyb2xsTGVmdCh2YWx1ZSk7IH0KKworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsVG9wKGludCk7CisgICAgdm9pZCBzZXRTY3JvbGxUb3BG
b3JCaW5kaW5ncyhpbnQgdmFsdWUpIHsgc2V0U2Nyb2xsVG9wKHZhbHVlKTsgfQorCisgICAgV0VC
Q09SRV9FWFBPUlQgaW50IHNjcm9sbFdpZHRoKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgaW50IHNj
cm9sbEhlaWdodCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UmVjdCBib3VuZHNJblJvb3RW
aWV3U3BhY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDRjNTU1MGFlZTFiNTBmNTRk
ZmZiYWUxMmYyNzBlOGUwZjNjYWRjNTIuLmU5NzIwMTUxNGMyMWQ3ZmQ4YjBiNDFmYWY3NDQyNDhm
M2ZkNzhkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTc4LDggKzc4LDggQEAKICAgICB2
b2lkIHNjcm9sbFRvKHVucmVzdHJpY3RlZCBkb3VibGUgeCwgdW5yZXN0cmljdGVkIGRvdWJsZSB5
KTsKICAgICB2b2lkIHNjcm9sbEJ5KG9wdGlvbmFsIFNjcm9sbFRvT3B0aW9ucyBvcHRpb24pOwog
ICAgIHZvaWQgc2Nyb2xsQnkodW5yZXN0cmljdGVkIGRvdWJsZSB4LCB1bnJlc3RyaWN0ZWQgZG91
YmxlIHkpOwotICAgIGF0dHJpYnV0ZSBsb25nIHNjcm9sbFRvcDsgLy8gRklYTUUod2Via2l0Lm9y
Zy9iLzE4ODA0NSk6IHNob3VsZCBiZSB1bnJlc3RyaWN0ZWQgZG91YmxlLgotICAgIGF0dHJpYnV0
ZSBsb25nIHNjcm9sbExlZnQ7IC8vIEZJWE1FKHdlYmtpdC5vcmcvYi8xODgwNDUpOiBzaG91bGQg
YmUgdW5yZXN0cmljdGVkIGRvdWJsZS4KKyAgICBbSW1wbGVtZW50ZWRBcz1zY3JvbGxUb3BGb3JC
aW5kaW5nc10gYXR0cmlidXRlIGxvbmcgc2Nyb2xsVG9wOyAvLyBGSVhNRSh3ZWJraXQub3JnL2Iv
MTg4MDQ1KTogc2hvdWxkIGJlIHVucmVzdHJpY3RlZCBkb3VibGUuCisgICAgW0ltcGxlbWVudGVk
QXM9c2Nyb2xsTGVmdEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgbG9uZyBzY3JvbGxMZWZ0OyAvLyBG
SVhNRSh3ZWJraXQub3JnL2IvMTg4MDQ1KTogc2hvdWxkIGJlIHVucmVzdHJpY3RlZCBkb3VibGUu
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc2Nyb2xsV2lkdGg7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgc2Nyb2xsSGVpZ2h0OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3Vi
bGUgY2xpZW50VG9wOyAvLyBGSVhNRTogU2hvdWxkIGJlIG9mIHR5cGUgbG9uZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggNjFiYjUxOGJjYTFhOTVlYTk1YmY5Nzhm
ODlmZDQ2MTE0ZWNiNWQ0MC4uYWU3ZmZlNzMwYjJlYjVjODIwNDNiY2ZiZTkxMGFjMDg5MDg3NGFi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTE5NywxMyArMTk3
LDEzIEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0RGVsZWdhdGVzU2Nyb2xsaW5nKGJvb2wgZGVsZWdh
dGVzU2Nyb2xsaW5nKQogICAgIGRlbGVnYXRlc1Njcm9sbGluZ0RpZENoYW5nZSgpOwogfQogCi1J
bnRQb2ludCBTY3JvbGxWaWV3Ojpjb250ZW50c1Njcm9sbFBvc2l0aW9uKCkgY29uc3QKK0ludFBv
aW50IFNjcm9sbFZpZXc6OmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oU2Nyb2xsQ2xhbXBpbmcgY2xh
bXBpbmcpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAocGxhdGZv
cm1XaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIGFjdHVhbFNjcm9sbFBvc2l0aW9uKCk7CiAjZW5k
aWYKLSAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24oKTsKKyAgICByZXR1cm4gc2Nyb2xsUG9zaXRp
b24oY2xhbXBpbmcpOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnNldENvbnRlbnRzU2Nyb2xsUG9z
aXRpb24oY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQpAQCAtMzUwLDYgKzM1MCwxNSBAQCB2b2lk
IFNjcm9sbFZpZXc6OnNldENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQogICAg
IHVwZGF0ZU92ZXJoYW5nQXJlYXMoKTsKIH0KIAorU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6
c2Nyb2xsUG9zaXRpb24oU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpIGNvbnN0Cit7CisgICAgYXV0
byBzY3JvbGxQb3NpdGlvbiA9IHZpc2libGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZp
c2libGVSZWN0KS5sb2NhdGlvbigpOworICAgIGlmIChjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCkKKyAgICAgICAgcmV0dXJuIGNvbnN0cmFpblNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uKTsKKworICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbjsKK30KKwogU2Nyb2xsUG9z
aXRpb24gU2Nyb2xsVmlldzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBT
Y3JvbGxQb3NpdGlvbiBtYXhpbXVtUG9zaXRpb24gPSBTY3JvbGxhYmxlQXJlYTo6bWF4aW11bVNj
cm9sbFBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKaW5kZXggZmY4
MmMyNzY0NGNhMGUxMGRjNTQ4Yzg4ZTFiNWU3YWVhYzE4ZmQ5Ny4uNThlODY5NzE2ODNhODJmOGNi
ZTgxNmZiNjM3N2M2OTE1NmE2YzMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aApAQCAtMjIxLDcgKzIyMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNTaXplKGNvbnN0IEludFNpemUmKTsKIAogICAgIC8vIEZ1bmN0aW9ucyBmb3IgcXVlcnlpbmcg
dGhlIGN1cnJlbnQgc2Nyb2xsZWQgcG9zaXRpb24gKGJvdGggYXMgYSBwb2ludCwgYSBzaXplLCBv
ciBhcyBpbmRpdmlkdWFsIFggYW5kIFkgdmFsdWVzKS4KLSAgICBTY3JvbGxQb3NpdGlvbiBzY3Jv
bGxQb3NpdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdChMZWdh
Y3lJT1NEb2N1bWVudFZpc2libGVSZWN0KS5sb2NhdGlvbigpOyB9CisgICAgV0VCQ09SRV9FWFBP
UlQgU2Nyb2xsUG9zaXRpb24gc2Nyb2xsUG9zaXRpb24oU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6VW5jbGFtcGVkKSBjb25zdCBmaW5hbDsKIAogICAgIFNjcm9sbFBvc2l0aW9uIG1h
eGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOyAvLyBUaGUgbWF4aW11bSBwb3Np
dGlvbiB3ZSBjYW4gYmUgc2Nyb2xsZWQgdG8uCiAKQEAgLTIzMSw3ICsyMzEsNyBAQCBwdWJsaWM6
CiAgICAgaW50IHNjcm9sbFkoKSBjb25zdCB7IHJldHVybiBzY3JvbGxQb3NpdGlvbigpLnkoKTsg
fQogCiAgICAgLy8gU2Nyb2xsIHBvc2l0aW9uIHVzZWQgYnkgd2ViLWV4cG9zZWQgZmVhdHVyZXMg
KGhhcyBsZWdhY3kgaU9TIGJlaGF2aW9yKS4KLSAgICBXRUJDT1JFX0VYUE9SVCBJbnRQb2ludCBj
b250ZW50c1Njcm9sbFBvc2l0aW9uKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgSW50UG9p
bnQgY29udGVudHNTY3JvbGxQb3NpdGlvbihTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5n
OjpVbmNsYW1wZWQpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihj
b25zdCBJbnRQb2ludCYpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCBhOThlNWRhYjZlZjYwZGNhYjJm
OTc3MTlkNWYwZDhlY2U1ZWYxMzFiLi5kZDY2NDVkYTlkYmIyYTc3MzZiZTk5OWU1ZWUwYTc1MDFl
ZWE1N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBA
IC02MTIsMTQgKzYxMiw2IEBAIEludFNpemUgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbGJhckludHJ1
c2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIHsgaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigp
LCB2ZXJ0aWNhbFNjcm9sbGJhckludHJ1c2lvbigpIH07CiB9CiAKLVNjcm9sbFBvc2l0aW9uIFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFRo
aXMgcmVsYXRpb25zaGlwIHNlZW1zIHRvIGJlIGludmVydGVkLiBTY3JvbGxiYXJzIHNob3VsZCBi
ZSAndmlldycsIG5vdCAnbW9kZWwnLCBhbmQgc2hvdWxkIGdldCB0aGVpciB2YWx1ZXMgZnJvbSB1
cy4KLSAgICBpbnQgeCA9IGhvcml6b250YWxTY3JvbGxiYXIoKSA/IGhvcml6b250YWxTY3JvbGxi
YXIoKS0+dmFsdWUoKSA6IDA7Ci0gICAgaW50IHkgPSB2ZXJ0aWNhbFNjcm9sbGJhcigpID8gdmVy
dGljYWxTY3JvbGxiYXIoKS0+dmFsdWUoKSA6IDA7Ci0gICAgcmV0dXJuIEludFBvaW50KHgsIHkp
OwotfQotCiBTY3JvbGxQb3NpdGlvbiBTY3JvbGxhYmxlQXJlYTo6bWluaW11bVNjcm9sbFBvc2l0
aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KFNjcm9s
bFBvc2l0aW9uKCkpOwpAQCAtNjQ3LDIyICs2MzksMjIgQEAgU2Nyb2xsT2Zmc2V0IFNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24p
IGMKIAogYm9vbCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsZWRUb1RvcCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkueSgpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLnko
KTsKKyAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24oU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpLnko
KSA9PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7CiB9CiAKIGJvb2wgU2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbGVkVG9Cb3R0b20oKSBjb25zdAogewotICAgIHJldHVybiBzY3JvbGxQb3NpdGlv
bigpLnkoKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7CisgICAgcmV0dXJuIHNjcm9s
bFBvc2l0aW9uKFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKS55KCkgPT0gbWF4aW11bVNjcm9sbFBv
c2l0aW9uKCkueSgpOwogfQogCiBib29sIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxlZFRvTGVmdCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkueCgpIDw9IG1pbmltdW1TY3Jv
bGxQb3NpdGlvbigpLngoKTsKKyAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24oU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQpLngoKSA9PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CiB9CiAKIGJv
b2wgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbGVkVG9SaWdodCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHNjcm9sbFBvc2l0aW9uKCkueCgpID49IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsKKyAg
ICByZXR1cm4gc2Nyb2xsUG9zaXRpb24oU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpLngoKSA9PSBt
YXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbGJhclN0eWxlQ2hhbmdlZChTY3JvbGxiYXJTdHlsZSwgYm9vbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IGZkZTYwN2YzODY4MmUzOTBiOTE0ZTQ4NjE3
ODFmZmZhMTNlYTI4YWYuLjM0YzVjZjNkNGUxYmQ3MDMzNDAxYjExOWM3ZDY2NTQ0YzU4YmE0M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTk2LDcgKzE5
Niw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxPcmlnaW47IH0KICAgICBib29sIHNjcm9sbE9yaWdpbkNoYW5nZWQo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9yaWdpbkNoYW5nZWQ7IH0KIAotICAgIHZpcnR1YWwg
U2Nyb2xsUG9zaXRpb24gc2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFNjcm9s
bFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uKFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6
OlVuY2xhbXBlZCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU2Nyb2xsUG9zaXRpb24gbWluaW11
bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTY3JvbGxQb3NpdGlvbiBtYXhp
bXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCBjNzFlNzNjZjcyMzQ3NWMyZTI4YzVjZTQ1YzAwNWNkYzdkMDA5MTBjLi4w
ZDA0MDUzMDM2NWY3YzIxYzkyNjNiMzNiY2JhOTVhYzJlZmM4ZmM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNTU3LDE0ICs1NTcsMTQgQEAgaW50IFJlbmRlckJv
eDo6c2Nyb2xsSGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gcm91bmRUb0ludChzdGQ6Om1heChj
bGllbnRIZWlnaHQoKSwgbGF5b3V0T3ZlcmZsb3dSZWN0KCkubWF4WSgpIC0gYm9yZGVyVG9wKCkp
KTsKIH0KIAotaW50IFJlbmRlckJveDo6c2Nyb2xsTGVmdCgpIGNvbnN0CitpbnQgUmVuZGVyQm94
OjpzY3JvbGxMZWZ0KFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBjb25zdAogewotICAgIHJldHVy
biBoYXNPdmVyZmxvd0NsaXAoKSAmJiBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsUG9zaXRpb24o
KS54KCkgOiAwOworICAgIHJldHVybiBoYXNPdmVyZmxvd0NsaXAoKSAmJiBsYXllcigpID8gbGF5
ZXIoKS0+c2Nyb2xsUG9zaXRpb24oY2xhbXBpbmcpLngoKSA6IDA7CiB9CiAKLWludCBSZW5kZXJC
b3g6OnNjcm9sbFRvcCgpIGNvbnN0CitpbnQgUmVuZGVyQm94OjpzY3JvbGxUb3AoU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGhhc092ZXJmbG93Q2xpcCgpICYm
IGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxQb3NpdGlvbigpLnkoKSA6IDA7CisgICAgcmV0dXJu
IGhhc092ZXJmbG93Q2xpcCgpICYmIGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxQb3NpdGlvbihj
bGFtcGluZykueSgpIDogMDsKIH0KIAogc3RhdGljIHZvaWQgc2V0dXBXaGVlbEV2ZW50VGVzdFRy
aWdnZXIoUmVuZGVyTGF5ZXImIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
CmluZGV4IGI3ODY1MDg3ZjJmNjM0OTdhMzMzNWJkZTQxMmYxZTEzODRlNjIwMzYuLmVlZjBiMDlk
NjA5YmRmMTY0MThjZjQ3NDYyMWIzZTM0MWMwZjNkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKQEAgLTI0Myw4ICsyNDMsOCBAQCBwdWJsaWM6CiAgICAgLy8gc2Nyb2xsTGVm
dC9Ub3AgcmV0dXJuIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbi4gIFRoZXNlIG1ldGhvZHMg
YXJlIHZpcnR1YWwgc28gdGhhdCBvYmplY3RzIGxpa2UKICAgICAvLyB0ZXh0YXJlYXMgY2FuIHNj
cm9sbCBzaGFkb3cgY29udGVudCAoYnV0IHByZXRlbmQgdGhhdCB0aGV5IGFyZSB0aGUgb2JqZWN0
cyB0aGF0IGFyZQogICAgIC8vIHNjcm9sbGluZykuCi0gICAgdmlydHVhbCBpbnQgc2Nyb2xsTGVm
dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgaW50IHNjcm9sbFRvcCgpIGNvbnN0OworICAgIHZpcnR1
YWwgaW50IHNjcm9sbExlZnQoU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6VW5jbGFt
cGVkKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoU2Nyb2xsQ2xhbXBpbmcgPSBT
Y3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxX
aWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCAzYTBkMjNjNDYyMGU0N2UwNmUwMWQxMTczMGIxYjE1MDcyOTNh
YmM1Li5mZjg1NDlkMTE5YWEyMjU2ZGE4NTFiYzEyNGU1NGYyZWUyMDIxN2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI4OTQsNiArMjg5NCwxMyBAQCB2
b2lkIFJlbmRlckxheWVyOjpyZXNpemUoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldnQsIGNv
bnN0IExheW91dFNpemUmIG9sZE9mZgogICAgIC8vIEZJWE1FIChSYWRhciA0MTE4NTY0KTogV2Ug
c2hvdWxkIGFsc28gYXV0b3Njcm9sbCB0aGUgd2luZG93IGFzIG5lY2Vzc2FyeSB0byBrZWVwIHRo
ZSBwb2ludCB1bmRlciB0aGUgY3Vyc29yIGluIHZpZXcuCiB9CiAKK1Njcm9sbFBvc2l0aW9uIFJl
bmRlckxheWVyOjpzY3JvbGxQb3NpdGlvbihTY3JvbGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QK
K3sKKyAgICBpZiAoY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpCisgICAgICAg
IHJldHVybiBjb25zdHJhaW5TY3JvbGxQb3NpdGlvbihtX3Njcm9sbFBvc2l0aW9uKTsKKyAgICBy
ZXR1cm4gbV9zY3JvbGxQb3NpdGlvbjsKK30KKwogaW50IFJlbmRlckxheWVyOjpzY3JvbGxTaXpl
KFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSBjb25zdAogewogICAgIFNjcm9sbGJh
ciogc2Nyb2xsYmFyID0gKChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSA/IG1f
aEJhciA6IG1fdkJhcikuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CmluZGV4IDVlMDdiYzc3NWYyMmJlNDgwZmRlMjQyYzU4Yzc4ZGE0NjM3M2EzMmQuLjgwYWFhNjVl
Zjk2ZmViOWQ0NDdkZGExMTE1MjliNDZiOTE1ZDc4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCkBAIC00NjYsNyArNDY2LDcgQEAgcHVibGljOgogICAgIGJvb2wgdmVy
dGljYWxTY3JvbGxiYXJIaWRkZW5CeVN0eWxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBT
Y3JvbGxhYmxlQXJlYSBvdmVycmlkZXMKLSAgICBTY3JvbGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlv
bigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KKyAgICBTY3Jv
bGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlvbihTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5n
OjpVbmNsYW1wZWQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgU2Nyb2xsYmFyKiBob3Jpem9udGFs
U2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9oQmFyLmdldCgpOyB9CiAgICAg
U2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
dkJhci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
CmluZGV4IGZlOTgyZTA0NzdmMGY5MTJlMjFkYTNmNGRjMzMwOTcxM2E1NjRhZDYuLjQ4YjYzMDdl
ZTI1NDljNmQ3MTk4YmNkM2ZjZjJkMDhhNWRiNTRhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTc0NCw3ICs3NDQsMTIgQEAgaW50IFJlbmRlckxp
c3RCb3g6OnNjcm9sbEhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIHJvdW5kVG9JbnQoc3RkOjpt
YXgoY2xpZW50SGVpZ2h0KCksIGxpc3RIZWlnaHQoKSkpOwogfQogCi1pbnQgUmVuZGVyTGlzdEJv
eDo6c2Nyb2xsTGVmdCgpIGNvbnN0CitTY3JvbGxQb3NpdGlvbiBSZW5kZXJMaXN0Qm94OjpzY3Jv
bGxQb3NpdGlvbihTY3JvbGxDbGFtcGluZykgY29uc3QKK3sKKyAgICByZXR1cm4geyAwLCBtX2lu
ZGV4T2Zmc2V0ICogaXRlbUhlaWdodCgpIH07Cit9CisKK2ludCBSZW5kZXJMaXN0Qm94OjpzY3Jv
bGxMZWZ0KFNjcm9sbENsYW1waW5nKSBjb25zdAogewogICAgIHJldHVybiAwOwogfQpAQCAtNzUz
LDcgKzc1OCw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nKQogewogfQogCi1pbnQgUmVuZGVyTGlzdEJveDo6c2Nyb2xs
VG9wKCkgY29uc3QKK2ludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxUb3AoU2Nyb2xsQ2xhbXBpbmcp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5kZXhPZmZzZXQgKiBpdGVtSGVpZ2h0KCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCAzY2QxNjk3ZTJhNDhh
NTNlYTlkMGExMzIwYWZjOWEwZTE1MGE0MjZiLi4yNjhkMTVlZGRkOWFmMWNhNTc0MWFmOTdhM2Qx
ZDY2MDQ5MmNhODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgK
QEAgLTEwMiw4ICsxMDIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFuU2Nyb2xsKGNvbnN0IElu
dFBvaW50Jikgb3ZlcnJpZGU7CiAKICAgICBpbnQgdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIGludCBzY3JvbGxMZWZ0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
aW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOworICAgIFNjcm9sbFBvc2l0aW9uIHNjcm9s
bFBvc2l0aW9uKFNjcm9sbENsYW1waW5nKSBjb25zdCBvdmVycmlkZTsKKyAgICBpbnQgc2Nyb2xs
TGVmdChTY3JvbGxDbGFtcGluZykgY29uc3Qgb3ZlcnJpZGU7CisgICAgaW50IHNjcm9sbFRvcChT
Y3JvbGxDbGFtcGluZykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggYTMwMThmZDA3N2Q5OTYwYzI3YTA0MGViMGJlMzMx
ODkxMDkyYWFlZC4uNmVhNDAzYWZmOTlkMTI0NmRlZTg1ZjNlNmVkYjkwMmU0MDJmZTBkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5jcHAKQEAgLTM2MiwxOCArMzYyLDE4IEBAIGludCBSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmU6OnNjcm9sbEhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlckJsb2Nr
Rmxvdzo6c2Nyb2xsSGVpZ2h0KCk7CiB9CiAKLWludCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmU6OnNjcm9sbExlZnQoKSBjb25zdAoraW50IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
c2Nyb2xsTGVmdChTY3JvbGxDbGFtcGluZyBjbGFtcGluZykgY29uc3QKIHsKICAgICBpZiAoaW5u
ZXJUZXh0RWxlbWVudCgpKQotICAgICAgICByZXR1cm4gaW5uZXJUZXh0RWxlbWVudCgpLT5zY3Jv
bGxMZWZ0KCk7Ci0gICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2Nyb2xsTGVmdCgpOworICAg
ICAgICByZXR1cm4gaW5uZXJUZXh0RWxlbWVudCgpLT5zY3JvbGxMZWZ0KGNsYW1waW5nKTsKKyAg
ICByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzY3JvbGxMZWZ0KGNsYW1waW5nKTsKIH0KIAotaW50
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2Nyb2xsVG9wKCkgY29uc3QKK2ludCBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNjcm9sbFRvcChTY3JvbGxDbGFtcGluZyBjbGFtcGlu
ZykgY29uc3QKIHsKICAgICBpZiAoaW5uZXJUZXh0RWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
aW5uZXJUZXh0RWxlbWVudCgpLT5zY3JvbGxUb3AoKTsKLSAgICByZXR1cm4gUmVuZGVyQmxvY2tG
bG93OjpzY3JvbGxUb3AoKTsKKyAgICAgICAgcmV0dXJuIGlubmVyVGV4dEVsZW1lbnQoKS0+c2Ny
b2xsVG9wKGNsYW1waW5nKTsKKyAgICByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzY3JvbGxUb3Ao
Y2xhbXBpbmcpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Ny
b2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmgKaW5kZXggM2Y1Nzg2ZGZlNDAwZWI4MGZkOGUyYjM5MDY2NjJiZDk5Yjk0ZjEzYS4uODk1ZTdi
NmIxZWM4ZmY5ZjI1YjdhOGNiMmE1NTliOWNjNjgxYTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTMs
OCArNTMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYXV0b3Njcm9sbChjb25zdCBJbnRQb2ludCYp
IG92ZXJyaWRlOwogCiAgICAgLy8gU3ViY2xhc3NlZCB0byBmb3J3YXJkIHRvIG91ciBpbm5lciBk
aXYuCi0gICAgaW50IHNjcm9sbExlZnQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQgc2Nyb2xs
VG9wKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgaW50IHNjcm9sbExlZnQoU2Nyb2xsQ2xhbXBpbmcp
IGNvbnN0IG92ZXJyaWRlOworICAgIGludCBzY3JvbGxUb3AoU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGlu
dCBzY3JvbGxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9sbExlZnQo
aW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggNjg2MmUzMDRm
ZWRiODViNzg2MzQ3MDBiOWQ2YjM1YTZjM2MyMGNlYy4uYTc2NzJiYjYyY2ZhZDNlZGMwM2FmYjQx
MTBhMDkzNjI1MjQ3NDRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjA2LDcgKzIwNiw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBpc0FjdGl2ZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBpbnQgc2Nyb2xsT2Zmc2V0KFdl
YkNvcmU6OlNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpT
Y3JvbGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6
OlNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uKFdlYkNvcmU6OlNjcm9sbENsYW1waW5nID0g
V2ViQ29yZTo6U2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCkgY29uc3QgZmluYWw7CiAgICAgV2Vi
Q29yZTo6U2Nyb2xsUG9zaXRpb24gbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QgZmluYWw7
CiAgICAgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb24gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29u
c3QgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fc2l6ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggMTU4OGJkMGUxYzUwNzk4ODA0Y2UxNDE0ZmYwMzMy
NzVmNDVjOWJjYS4uZjhmNGE2YTNjNzAxZDEwM2M4MTBlNjhlMzIwOTYwMDVkNDQyZjllMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CkBAIC05MDEsOSArOTAxLDE0IEBAIGludCBQREZQbHVnaW46OnNjcm9sbE9mZnNldChTY3JvbGxi
YXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotU2Ny
b2xsUG9zaXRpb24gUERGUGx1Z2luOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0CitTY3JvbGxQb3Np
dGlvbiBQREZQbHVnaW46OnNjcm9sbFBvc2l0aW9uKFNjcm9sbENsYW1waW5nIGNsYW1waW5nKSBj
b25zdAogewotICAgIHJldHVybiBJbnRQb2ludChtX3Njcm9sbE9mZnNldC53aWR0aCgpLCBtX3Nj
cm9sbE9mZnNldC5oZWlnaHQoKSk7CisgICAgU2Nyb2xsUG9zaXRpb24gc2Nyb2xsUG9zaXRpb24g
PSBJbnRQb2ludChtX3Njcm9sbE9mZnNldCk7CisKKyAgICBpZiAoY2xhbXBpbmcgPT0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpCisgICAgICAgIHJldHVybiBjb25zdHJhaW5TY3JvbGxQb3NpdGlv
bihzY3JvbGxQb3NpdGlvbik7CisKKyAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb247CiB9CiAKIFNj
cm9sbFBvc2l0aW9uIFBERlBsdWdpbjo6bWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBlYTRlYmFiZmIzNzhlOWZmYWM4YTY4YWZmODJhZDBhNWYwNWZjMzExLi40OTMzZjEyNjEy
MGZmOWZmMzE0MjE1OTVjYzhhZjQyOWFiMDNkOWJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTktMDYtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgRG9uJ3QgZXhwb3NlIG5lZ2F0aXZlIHNjcm9sbExlZnQvc2Nyb2xsVG9wIGR1cmluZyBydWJi
ZXItYmFuZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk4NTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy91bmNvbnN0cmFpbmVkLXNjcm9sbHRvLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy91bmNvbnN0cmFpbmVkLXNjcm9sbHRvLXBhZ2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy91bmNvbnN0cmFpbmVk
LXNjcm9sbHRvLXBhZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdW5j
b25zdHJhaW5lZC1zY3JvbGx0by5odG1sOgorCiAyMDE5LTA2LTAzICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gSlNPYmplY3Q6OmF0dGVtcHRUb0lu
dGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGUgc2hvdWxkIHVzZSBnZXRQcm90b3R5cGUgaW5zdGVhZCBv
ZiBnZXRQcm90b3R5cGVEaXJlY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL3VuY29uc3RyYWluZWQtc2Nyb2xsdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvdW5jb25zdHJhaW5lZC1zY3JvbGx0by1leHBlY3RlZC50eHQKaW5kZXggZDc2
NGE5MDFlMDNhYWQyMGE0N2RkZGM4NDI2Y2YwMzcxMDBiMWI5NS4uMzgwOGI3MjEwZGVjYmE0N2Q3
OGI0ODU3N2I1NWVjMmI3ZTFmMzUxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvdW5jb25zdHJhaW5lZC1zY3JvbGx0by1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvdW5jb25zdHJhaW5lZC1zY3JvbGx0by1leHBlY3RlZC50eHQKQEAg
LTEsNSArMSw4IEBACi1QQVNTIHNjcm9sbGVyLnNjcm9sbFRvcCBpcyAtMTUwCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKK1BBU1Mgc2Nyb2xsZXIuc2Ny
b2xsTGVmdCBpcyAxMDAKK1BBU1Mgc2Nyb2xsZXIuc2Nyb2xsVG9wIGlzIDE1MAorUEFTUyBzY3Jv
bGxlci5zY3JvbGxMZWZ0IGlzIDAKK1BBU1Mgc2Nyb2xsZXIuc2Nyb2xsVG9wIGlzIDAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdW5jb25zdHJhaW5lZC1zY3JvbGx0
by1wYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3VuY29uc3Ry
YWluZWQtc2Nyb2xsdG8tcGFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBlNWQ1YmYyNmQ2
YjNmOTk2MDE0NjNmZDMzOGRlMzE0NmMyOWNjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3VuY29uc3RyYWluZWQtc2Nyb2xsdG8tcGFnZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1MgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0IGlz
IDEwMAorUEFTUyBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCBpcyAxNTAKK1BB
U1MgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0IGlzIDAKK1BBU1MgZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgaXMgMAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy91bmNvbnN0cmFpbmVkLXNjcm9sbHRvLXBhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3VuY29uc3RyYWluZWQtc2Nyb2xsdG8tcGFnZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVjNTk2NDcwMzBlMzA2NjRiZjI3NmNhYWI2NjRiN2U4NWQwYzNjODQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy91bmNvbnN0cmFpbmVk
LXNjcm9sbHRvLXBhZ2UuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKwor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAg
ICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgICAgICB3aWR0aDogMjAwMHB4OworICAgICAgICB9
CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpbnRlcm5hbHMudW5jb25zdHJhaW5lZFNjcm9s
bFRvKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQsIDEwMCwgMTUwKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCdkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbExlZnQnLCAnMTAwJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgnZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3An
LCAnMTUwJyk7CisKKyAgICAgICAgICAgIGludGVybmFscy51bmNvbnN0cmFpbmVkU2Nyb2xsVG8o
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCwgLTEwMCwgLTE1MCk7CisgICAgICAgICAgICBzaG91
bGRCZSgnZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0JywgJzAnKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCdkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCcsICcw
Jyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3VuY29uc3RyYWluZWQtc2Nyb2xsdG8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3VuY29uc3RyYWluZWQtc2Nyb2xsdG8uaHRtbAppbmRleCBjMGNjZjc5NzhkOTg3Zjg0ZTU1ZDk0
NTFmODIxOTliYzU5NzEzYTY1Li4wNTJmZjc0YmU5MmIwYzljMjM4NGQzNjMzMDQ4ODIxMWIxZTVj
NGZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy91bmNvbnN0cmFpbmVk
LXNjcm9sbHRvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdW5jb25zdHJh
aW5lZC1zY3JvbGx0by5odG1sCkBAIC0xMiwyMyArMTIsMjcgQEAKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgLmNvbnRlbnRzIHsKLSAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAg
ICAgICAgd2lkdGg6IDIwMCU7CiAgICAgICAgICAgICBoZWlnaHQ6IDIwMCU7CiAgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgIH0KICAgICA8L3N0eWxlPgogICAg
IDxzY3JpcHQ+Ci0gICAgICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQogICAgICAgICB2
YXIgc2Nyb2xsZXI7CiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
ICAgICAgICAgICAgIHNjcm9sbGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbGVy
Jyk7Ci0gICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICBp
bnRlcm5hbHMudW5jb25zdHJhaW5lZFNjcm9sbFRvKHNjcm9sbGVyLCAwLCAtMTUwKTsKIAotICAg
ICAgICAgICAgc2hvdWxkQmUoJ3Njcm9sbGVyLnNjcm9sbFRvcCcsICctMTUwJyk7Ci0gICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIGludGVybmFscy51bmNvbnN0cmFpbmVk
U2Nyb2xsVG8oc2Nyb2xsZXIsIDEwMCwgMTUwKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdzY3Jv
bGxlci5zY3JvbGxMZWZ0JywgJzEwMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ3Njcm9sbGVy
LnNjcm9sbFRvcCcsICcxNTAnKTsKKworICAgICAgICAgICAgaW50ZXJuYWxzLnVuY29uc3RyYWlu
ZWRTY3JvbGxUbyhzY3JvbGxlciwgLTEwMCwgLTE1MCk7CisgICAgICAgICAgICBzaG91bGRCZSgn
c2Nyb2xsZXIuc2Nyb2xsTGVmdCcsICcwJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnc2Nyb2xs
ZXIuc2Nyb2xsVG9wJywgJzAnKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>