<?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>220128</bug_id>
          
          <creation_ts>2020-12-23 14:04:05 -0800</creation_ts>
          <short_desc>Clean up some code related to scroll pinning</short_desc>
          <delta_ts>2020-12-23 17:03:43 -0800</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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1716511</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-23 14:04:05 -0800</bug_when>
    <thetext>Clean up some code related to scroll pinning</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716512</commentid>
    <comment_count>1</comment_count>
      <attachid>416725</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-23 14:07:39 -0800</bug_when>
    <thetext>Created attachment 416725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716520</commentid>
    <comment_count>2</comment_count>
      <attachid>416729</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-23 15:50:46 -0800</bug_when>
    <thetext>Created attachment 416729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716535</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-23 17:02:12 -0800</bug_when>
    <thetext>Committed r271081: &lt;https://trac.webkit.org/changeset/271081&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416729.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716537</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-23 17:03:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/72638790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416725</attachid>
            <date>2020-12-23 14:07:39 -0800</date>
            <delta_ts>2020-12-23 15:50:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220128-20201223140738.patch</filename>
            <type>text/plain</type>
            <size>21628</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZlMWJmMDI2NGY0NjA0
MzhkZjRkMzU1ZjUyMmU1NmJjNTBkY2VkZi4uMWM3NmI1NWUzNzg1YjU0OTA1YmI4ZGVlYjg2Nzgy
NzdjNTk5Y2YyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTEyLTIzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHNv
bWUgY29kZSByZWxhdGVkIHRvIHNjcm9sbCBwaW5uaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTY3JvbGxBbmltYXRvck1hYyBhbmQgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYyBzaGFyZSBhIGxvdCBvZiBzaW1pbGFyIGNvZGUK
KyAgICAgICAgcmVsYXRlZCB0byBiZWluZyAicGlubmVkIiB0byBhbiBlZGdlIGZvciBzY3JvbGxp
bmcgKGkuZS4gYWxyZWFkeSBzY3JvbGxlZCB0byBhbiBlZGdlKS4KKworICAgICAgICBUaGVyZSBh
cmUgdG9vIG1hbnkgZnVuY3Rpb25zIGltcGxlbWVudGluZyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkg
aW4gc2xpZ2h0bHkgZGlmZmVyZW50CisgICAgICAgIHdheXMuIFJlZHVjZSB0aGlzIGNvdW50IGJ5
IG9uZSBieSByZXdyaXRpbmcgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6
aXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoKQorICAgICAgICBhbmQgY2FsbGlu
ZyBpdCBmcm9tIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmlzUGlubmVk
Rm9yU2Nyb2xsRGVsdGEoKS4KKworICAgICAgICBSZW5hbWUgYm9vbCBwaW5uZWRJbkRpcmVjdGlv
bigpIHRvIGlzUGlubmVkRm9yU2Nyb2xsRGVsdGEoKS4KKworICAgICAgICBNYWtlIHVzZSBvZiB3
aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1h
Yzo6aXNQaW5uZWRGb3JTY3JvbGxEZWx0YU9uQXhpcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NIb3Jpem9udGFs
U3RyZXRjaGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aXNQ
aW5uZWRGb3JTY3JvbGxEZWx0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9m
R2VzdHVyZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpwaW5uZWRJbkRpcmVjdGlvbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZWRn
ZVBpbm5lZFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
Ojppc1Bpbm5lZEZvclNjcm9sbERlbHRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmFsbG93c0hvcml6b250YWxTdHJldGNoaW5nIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpwaW5uZWRJbkRpcmVj
dGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpuZXdHZXN0dXJlSXNTdGFy
dGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1v
Y2suaDoKKwogMjAyMC0xMi0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBTY3JvbGwgc25hcHBpbmcgdHJpZ2dlcnMgYm9keSBz
Y3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCmlu
ZGV4IDIzMmU5ZmNiYWM1NmM3YmRjYTgxMWIzYjY0ZDgyNTE2ZjY0Y2FjMmIuLjMyYTgzOGViNmYz
ZGE0Mzk4M2JjZmY1NWI3Y2M0MTgxNTU3MzRlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAtNzEsMTQgKzcxLDE0IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAg
ICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CisgICAgYm9vbCBpc1Bpbm5lZEZv
clNjcm9sbERlbHRhT25BeGlzKGZsb2F0IHNjcm9sbERlbHRhLCBTY3JvbGxFdmVudEF4aXMsIGZs
b2F0IHNjcm9sbExpbWl0ID0gMCkgY29uc3Q7CiAKICAgICAvLyBTY3JvbGxDb250cm9sbGVyQ2xp
ZW50LgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IGNyZWF0ZVRp
bWVyKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CiAgICAgYm9vbCBhbGxvd3NIb3Jpem9udGFs
U3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBj
b25zdCBmaW5hbDsKICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKLSAg
ICBib29sIHBpbm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IGZpbmFsOwor
ICAgIGJvb2wgaXNQaW5uZWRGb3JTY3JvbGxEZWx0YShjb25zdCBGbG9hdFNpemUmKSBjb25zdCBm
aW5hbDsKICAgICBSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5lZFN0YXRlKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBhbGxvd3NIb3Jpem9udGFsU2Nyb2xsaW5nKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBhbGxvd3NWZXJ0aWNhbFNjcm9sbGluZygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCA2MDViMmNiY2VmNzgx
OGJkOGVlYTRmOGJkY2RmY2I4NjEzNjUxMTk3Li5iNjBiODkwMGM0NzhjZjU2YWY0M2MzN2RhMjQ1
MDUwZTk4M2VhNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbQpAQCAtMjE1LDE5ICsyMTUsMzQgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKTsKIH0KIAot
Ly8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIHNvbWUgb2YgdGhlIGNvZGUg
ZnJvbSBuZXdHZXN0dXJlSXNTdGFydGluZygpLCBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9m
R2VzdHVyZSgpLAotLy8gYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKCksIGFuZCBhbGxvd3NIb3Jp
em9udGFsU3RyZXRjaGluZygpIHdpdGggdGhlIGltcGxlbWVudGF0aW9uIGluIFNjcm9sbEFuaW1h
dG9yTWFjLgotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc0Fs
cmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQsIFNjcm9sbEV2ZW50QXhpcyBheGlzKSBjb25zdAorYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc1Bpbm5lZEZvclNjcm9sbERlbHRhT25BeGlz
KGZsb2F0IHNjcm9sbERlbHRhLCBTY3JvbGxFdmVudEF4aXMgYXhpcywgZmxvYXQgc2Nyb2xsTGlt
aXQpIGNvbnN0CiB7CiAgICAgYXV0byBzY3JvbGxQb3NpdGlvbiA9IGN1cnJlbnRTY3JvbGxQb3Np
dGlvbigpOwogICAgIHN3aXRjaCAoYXhpcykgewogICAgIGNhc2UgU2Nyb2xsRXZlbnRBeGlzOjpW
ZXJ0aWNhbDoKLSAgICAgICAgcmV0dXJuICh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCAmJiBzY3Jv
bGxQb3NpdGlvbi55KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgpKSB8fCAod2hlZWxF
dmVudC5kZWx0YVkoKSA8IDAgJiYgc2Nyb2xsUG9zaXRpb24ueSgpID49IG1heGltdW1TY3JvbGxQ
b3NpdGlvbigpLnkoKSk7CisgICAgICAgIGlmIChzY3JvbGxEZWx0YSA8IDApIHsKKyAgICAgICAg
ICAgIGF1dG8gdG9wT2Zmc2V0ID0gc2Nyb2xsUG9zaXRpb24ueSgpIC0gbWluaW11bVNjcm9sbFBv
c2l0aW9uKCkueSgpOworICAgICAgICAgICAgcmV0dXJuIHRvcE9mZnNldCA8IHNjcm9sbExpbWl0
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNjcm9sbERlbHRhID4gMCkgeworICAgICAgICAg
ICAgYXV0byBib3R0b21PZmZzZXQgPSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCkgLSBzY3Jv
bGxQb3NpdGlvbi55KCk7CisgICAgICAgICAgICByZXR1cm4gYm90dG9tT2Zmc2V0IDwgc2Nyb2xs
TGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3JvbGxFdmVudEF4
aXM6Okhvcml6b250YWw6Ci0gICAgICAgIHJldHVybiAod2hlZWxFdmVudC5kZWx0YVgoKSA+IDAg
JiYgc2Nyb2xsUG9zaXRpb24ueCgpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKSkgfHwg
KHdoZWVsRXZlbnQuZGVsdGFYKCkgPCAwICYmIHNjcm9sbFBvc2l0aW9uLngoKSA+PSBtYXhpbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCkpOworICAgICAgICBpZiAoc2Nyb2xsRGVsdGEgPCAwKSB7Cisg
ICAgICAgICAgICBhdXRvIGxlZnRPZmZzZXQgPSBzY3JvbGxQb3NpdGlvbi54KCkgLSBtaW5pbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCk7CisgICAgICAgICAgICByZXR1cm4gbGVmdE9mZnNldCA8IHNj
cm9sbExpbWl0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNjcm9sbERlbHRhID4gMCkgewor
ICAgICAgICAgICAgYXV0byByaWdodE9mZnNldCA9IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLngo
KSAtIHNjcm9sbFBvc2l0aW9uLngoKTsKKyAgICAgICAgICAgIHJldHVybiByaWdodE9mZnNldCA8
IHNjcm9sbExpbWl0OworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjQ0LDcgKzI1
OSw3IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWxsb3dz
SG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhCiAgICAgc3dpdGNoIChob3Jpem9udGFsU2Ny
b2xsRWxhc3RpY2l0eSgpKSB7CiAgICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5QXV0b21hdGljOiB7
CiAgICAgICAgIGJvb2wgc2Nyb2xsYmFyc0FsbG93U3RyZXRjaGluZyA9IGFsbG93c0hvcml6b250
YWxTY3JvbGxpbmcoKSB8fCAhYWxsb3dzVmVydGljYWxTY3JvbGxpbmcoKTsKLSAgICAgICAgYm9v
bCBldmVudFByZXZlbnRzU3RyZXRjaGluZyA9IHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAm
JiBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZSh3aGVlbEV2ZW50LCBTY3JvbGxF
dmVudEF4aXM6Okhvcml6b250YWwpOworICAgICAgICBib29sIGV2ZW50UHJldmVudHNTdHJldGNo
aW5nID0gd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpICYmIGlzUGlubmVkRm9yU2Nyb2xsRGVs
dGFPbkF4aXMoLXdoZWVsRXZlbnQuZGVsdGFYKCksIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRh
bCk7CiAgICAgICAgIHJldHVybiBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5nICYmICFldmVudFBy
ZXZlbnRzU3RyZXRjaGluZzsKICAgICB9CiAgICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5Tm9uZToK
QEAgLTI2Niw3ICsyODEsNyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OmFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0ZgogICAgIHN3aXRjaCAo
dmVydGljYWxTY3JvbGxFbGFzdGljaXR5KCkpIHsKICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlB
dXRvbWF0aWM6IHsKICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5nID0gYWxs
b3dzVmVydGljYWxTY3JvbGxpbmcoKSB8fCAhYWxsb3dzSG9yaXpvbnRhbFNjcm9sbGluZygpOwot
ICAgICAgICBib29sIGV2ZW50UHJldmVudHNTdHJldGNoaW5nID0gd2hlZWxFdmVudC5pc0dlc3R1
cmVTdGFydCgpICYmIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKHdoZWVsRXZl
bnQsIFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwpOworICAgICAgICBib29sIGV2ZW50UHJldmVu
dHNTdHJldGNoaW5nID0gd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpICYmIGlzUGlubmVkRm9y
U2Nyb2xsRGVsdGFPbkF4aXMoLXdoZWVsRXZlbnQuZGVsdGFZKCksIFNjcm9sbEV2ZW50QXhpczo6
VmVydGljYWwpOwogICAgICAgICByZXR1cm4gc2Nyb2xsYmFyc0FsbG93U3RyZXRjaGluZyAmJiAh
ZXZlbnRQcmV2ZW50c1N0cmV0Y2hpbmc7CiAgICAgfQogICAgIGNhc2UgU2Nyb2xsRWxhc3RpY2l0
eU5vbmU6CkBAIC0zMDEsMzIgKzMxNiwxNSBAQCBJbnRTaXplIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWM6OnN0cmV0Y2hBbW91bnQoKSBjb25zdAogICAgIHJldHVybiBzdHJl
dGNoOwogfQogCi0vLyBGSVhNRTogU2hhcmUgbW9yZSB3aXRoIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjplZGdlUGlubmVkU3RhdGUoKS4KLWJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6cGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJiBkZWx0YSkg
Y29uc3QKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6aXNQaW5u
ZWRGb3JTY3JvbGxEZWx0YShjb25zdCBGbG9hdFNpemUmIGRlbHRhKSBjb25zdAogewotICAgIEZs
b2F0U2l6ZSBsaW1pdERlbHRhOwotICAgIGF1dG8gc2Nyb2xsUG9zaXRpb24gPSBjdXJyZW50U2Ny
b2xsUG9zaXRpb24oKTsKKyAgICBjb25zdGV4cHIgZmxvYXQgc2Nyb2xsT2Zmc2V0TGltaXQgPSAx
OwogCi0gICAgaWYgKGZhYnNmKGRlbHRhLmhlaWdodCgpKSA+PSBmYWJzZihkZWx0YS53aWR0aCgp
KSkgewotICAgICAgICBpZiAoZGVsdGEuaGVpZ2h0KCkgPCAwKSB7Ci0gICAgICAgICAgICAvLyBX
ZSBhcmUgdHJ5aW5nIHRvIHNjcm9sbCB1cC4gTWFrZSBzdXJlIHdlIGFyZSBub3QgcGlubmVkIHRv
IHRoZSB0b3AuCi0gICAgICAgICAgICBsaW1pdERlbHRhLnNldEhlaWdodChzY3JvbGxQb3NpdGlv
bi55KCkgLSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCkpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgLy8gV2UgYXJlIHRyeWluZyB0byBzY3JvbGwgZG93bi4gTWFrZSBzdXJlIHdl
IGFyZSBub3QgcGlubmVkIHRvIHRoZSBib3R0b20uCi0gICAgICAgICAgICBsaW1pdERlbHRhLnNl
dEhlaWdodChtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCkgLSBzY3JvbGxQb3NpdGlvbi55KCkp
OwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChkZWx0YS53aWR0aCgpKSB7Ci0gICAgICAgIGlm
IChkZWx0YS53aWR0aCgpIDwgMCkgewotICAgICAgICAgICAgLy8gV2UgYXJlIHRyeWluZyB0byBz
Y3JvbGwgbGVmdC4gTWFrZSBzdXJlIHdlIGFyZSBub3QgcGlubmVkIHRvIHRoZSBsZWZ0LgotICAg
ICAgICAgICAgbGltaXREZWx0YS5zZXRXaWR0aChzY3JvbGxQb3NpdGlvbi54KCkgLSBtaW5pbXVt
U2Nyb2xsUG9zaXRpb24oKS54KCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8g
V2UgYXJlIHRyeWluZyB0byBzY3JvbGwgcmlnaHQuIE1ha2Ugc3VyZSB3ZSBhcmUgbm90IHBpbm5l
ZCB0byB0aGUgcmlnaHQuCi0gICAgICAgICAgICBsaW1pdERlbHRhLnNldFdpZHRoKG1heGltdW1T
Y3JvbGxQb3NpdGlvbigpLngoKSAtIHNjcm9sbFBvc2l0aW9uLngoKSk7Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgaWYgKGZhYnNmKGRlbHRhLmhlaWdodCgpKSA+PSBmYWJzZihkZWx0YS53aWR0aCgp
KSkKKyAgICAgICAgcmV0dXJuIGlzUGlubmVkRm9yU2Nyb2xsRGVsdGFPbkF4aXMoZGVsdGEuaGVp
Z2h0KCksIFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIHNjcm9sbE9mZnNldExpbWl0KTsKIAot
ICAgIGlmICgoZGVsdGEud2lkdGgoKSB8fCBkZWx0YS5oZWlnaHQoKSkgJiYgKGxpbWl0RGVsdGEu
d2lkdGgoKSA8IDEgJiYgbGltaXREZWx0YS5oZWlnaHQoKSA8IDEpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAoZGVsdGEud2lkdGgoKSkKKyAgICAgICAgcmV0dXJuIGlzUGlubmVkRm9y
U2Nyb2xsRGVsdGFPbkF4aXMoZGVsdGEud2lkdGgoKSwgU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9u
dGFsLCBzY3JvbGxPZmZzZXRMaW1pdCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggY2Y2
NzEwYmY1M2VjODIxNDcxZmViZmM0NDUxYjdlMGNiZjk2ZGNkOS4uY2YzOTIzNDA1ZWUxMzE2OTY4
MTZiZTdmYjBhMjU0NTQxYjI0M2ZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBj
b25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxv
YXRTaXplJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1Bpbm5lZEZvclNjcm9sbERl
bHRhKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgUmVjdEVkZ2Vz
PGJvb2w+IGVkZ2VQaW5uZWRTdGF0ZSgpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggYTkyMTk4ODdiZjYz
Y2E0M2E1ZmY3ZjhjN2QyNTM3M2ExM2E3N2IyZi4uM2U0ZjA2OWNmMzJiNjMxODU2YThjNmEyZGVk
MGExNmUzZWY1MWZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
Y3JvbGxDb250cm9sbGVyLm1tCkBAIC0xMjksMTIgKzEyOSwxMSBAQCBib29sIFNjcm9sbENvbnRy
b2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50KQogICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2U6OkJlZ2FuKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUcnlpbmcgdG8gZGVjaWRlIGlmIGEgZ2Vz
dHVyZSBpcyBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGF0IHRoZSAiYmVnYW4iIHBoYXNlIGlzIHZl
cnkgZXJyb3ItcHJvbmUuCiAgICAgICAgIGF1dG8gZGlyZWN0aW9uID0gZGlyZWN0aW9uRnJvbUV2
ZW50KHdoZWVsRXZlbnQsIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCk7Ci0gICAgICAgIC8v
IEZJWE1FOiBwaW5uZWRJbkRpcmVjdGlvbigpIG5lZWRzIGNsZWFudXAuCi0gICAgICAgIGlmIChk
aXJlY3Rpb24gJiYgbV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKC13aGVlbEV2
ZW50LmRlbHRhWCgpLCAwKSkgJiYgIXNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rp
b24udmFsdWUoKSkpCisgICAgICAgIGlmIChkaXJlY3Rpb24gJiYgbV9jbGllbnQuaXNQaW5uZWRG
b3JTY3JvbGxEZWx0YShGbG9hdFNpemUoLXdoZWVsRXZlbnQuZGVsdGFYKCksIDApKSAmJiAhc2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbi52YWx1ZSgpKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICBkaXJlY3Rpb24gPSBkaXJlY3Rpb25Gcm9tRXZlbnQo
d2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCk7Ci0gICAgICAgIGlmIChkaXJl
Y3Rpb24gJiYgbV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKDAsIC13aGVlbEV2
ZW50LmRlbHRhWSgpKSkgJiYgIXNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rpb24u
dmFsdWUoKSkpCisgICAgICAgIGlmIChkaXJlY3Rpb24gJiYgbV9jbGllbnQuaXNQaW5uZWRGb3JT
Y3JvbGxEZWx0YShGbG9hdFNpemUoMCwgLXdoZWVsRXZlbnQuZGVsdGFZKCkpKSAmJiAhc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbi52YWx1ZSgpKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNl
OwpAQCAtMjIyLDcgKzIyMSw3IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAoaXNWZXJ0aWNhbGx5U3RyZXRjaGVkKSB7Ci0gICAgICAgICAgICBpZiAoIWlz
SG9yaXpvbnRhbGx5U3RyZXRjaGVkICYmIG1fY2xpZW50LnBpbm5lZEluRGlyZWN0aW9uKEZsb2F0
U2l6ZShkZWx0YVgsIDApKSkgeworICAgICAgICAgICAgaWYgKCFpc0hvcml6b250YWxseVN0cmV0
Y2hlZCAmJiBtX2NsaWVudC5pc1Bpbm5lZEZvclNjcm9sbERlbHRhKEZsb2F0U2l6ZShkZWx0YVgs
IDApKSkgewogICAgICAgICAgICAgICAgIC8vIFN0cmV0Y2hpbmcgb25seSBpbiB0aGUgdmVydGlj
YWwuCiAgICAgICAgICAgICAgICAgaWYgKGRlbHRhWSAmJiAoZmFic2YoZGVsdGFYIC8gZGVsdGFZ
KSA8IHJ1YmJlcmJhbmREaXJlY3Rpb25Mb2NrU3RyZXRjaFJhdGlvKSkKICAgICAgICAgICAgICAg
ICAgICAgZGVsdGFYID0gMDsKQEAgLTIzNCw3ICsyMzMsNyBAQCBib29sIFNjcm9sbENvbnRyb2xs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
KQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKGlzSG9yaXpvbnRhbGx5U3RyZXRj
aGVkKSB7CiAgICAgICAgICAgICAvLyBTdHJldGNoaW5nIG9ubHkgaW4gdGhlIGhvcml6b250YWwu
Ci0gICAgICAgICAgICBpZiAobV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKDAs
IGRlbHRhWSkpKSB7CisgICAgICAgICAgICBpZiAobV9jbGllbnQuaXNQaW5uZWRGb3JTY3JvbGxE
ZWx0YShGbG9hdFNpemUoMCwgZGVsdGFZKSkpIHsKICAgICAgICAgICAgICAgICBpZiAoZGVsdGFY
ICYmIChmYWJzZihkZWx0YVkgLyBkZWx0YVgpIDwgcnViYmVyYmFuZERpcmVjdGlvbkxvY2tTdHJl
dGNoUmF0aW8pKQogICAgICAgICAgICAgICAgICAgICBkZWx0YVkgPSAwOwogICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKGZhYnNmKGRlbHRhWSkgPCBydWJiZXJiYW5kTWluaW11bVJlcXVpcmVkRGVs
dGFCZWZvcmVTdHJldGNoKSB7CkBAIC0yNDUsNyArMjQ0LDcgQEAgYm9vbCBTY3JvbGxDb250cm9s
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCkKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIE5vdCBz
dHJldGNoaW5nIGF0IGFsbCB5ZXQuCi0gICAgICAgICAgICBpZiAobV9jbGllbnQucGlubmVkSW5E
aXJlY3Rpb24oRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSkpIHsKKyAgICAgICAgICAgIGlmICht
X2NsaWVudC5pc1Bpbm5lZEZvclNjcm9sbERlbHRhKEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSkp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGZhYnNmKGRlbHRhWSkgPj0gZmFic2YoZGVsdGFYKSkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoZmFic2YoZGVsdGFYKSA8IHJ1YmJlcmJhbmRNaW5p
bXVtUmVxdWlyZWREZWx0YUJlZm9yZVN0cmV0Y2gpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IG1fb3ZlcmZsb3dTY3JvbGxEZWx0YS5zZXRXaWR0aChtX292ZXJmbG93U2Nyb2xsRGVsdGEud2lk
dGgoKSArIGRlbHRhWCk7CkBAIC0yNTcsNyArMjU2LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIExPR19XSVRIX1NUUkVBTShTY3Jv
bGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudCgpIC0g
ZGVsdGFYICIgPDwgZGVsdGFYIDw8ICIgZGVsdGFZICIgPDwgZGVsdGFZIDw8ICIgcGlubmVkICIg
PDwgbV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSkg
PDwgIiBzaG91bGRTdHJldGNoICIgPDwgc2hvdWxkU3RyZXRjaCk7CisgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hl
ZWxFdmVudCgpIC0gZGVsdGFYICIgPDwgZGVsdGFYIDw8ICIgZGVsdGFZICIgPDwgZGVsdGFZIDw8
ICIgcGlubmVkICIgPDwgbV9jbGllbnQuaXNQaW5uZWRGb3JTY3JvbGxEZWx0YShGbG9hdFNpemUo
ZGVsdGFYLCBkZWx0YVkpKSA8PCAiIHNob3VsZFN0cmV0Y2ggIiA8PCBzaG91bGRTdHJldGNoKTsK
ICAgICB9CiAKICAgICBib29sIGhhbmRsZWQgPSB0cnVlOwpAQCAtMjc4LDcgKzI3Nyw3IEBAIGJv
b2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhWCA9IDA7CiAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50Q29hbGVzY2VkRGVsdGFYID0gMDsKICAgICAgICAgICAgICAg
ICAgICAgaGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzSG9y
aXpvbnRhbGx5U3RyZXRjaGVkICYmICFtX2NsaWVudC5waW5uZWRJbkRpcmVjdGlvbihGbG9hdFNp
emUoZGVsdGFYLCAwKSkpIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpc0hvcml6b250
YWxseVN0cmV0Y2hlZCAmJiAhbV9jbGllbnQuaXNQaW5uZWRGb3JTY3JvbGxEZWx0YShGbG9hdFNp
emUoZGVsdGFYLCAwKSkpIHsKICAgICAgICAgICAgICAgICAgICAgZGVsdGFYICo9IHNjcm9sbFdo
ZWVsTXVsdGlwbGllcigpOwogCiAgICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LmltbWVkaWF0
ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoRmxvYXRTaXplKGRlbHRhWCwg
MCkpOwpAQCAtMjkxLDcgKzI5MCw3IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgICAg
ICAgICAgICAgIGRlbHRhWSA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGV2ZW50Q29hbGVzY2Vk
RGVsdGFZID0gMDsKICAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IGZhbHNlOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoIWlzVmVydGljYWxseVN0cmV0Y2hlZCAmJiAhbV9jbGllbnQu
cGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKDAsIGRlbHRhWSkpKSB7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmICghaXNWZXJ0aWNhbGx5U3RyZXRjaGVkICYmICFtX2NsaWVudC5pc1Bpbm5l
ZEZvclNjcm9sbERlbHRhKEZsb2F0U2l6ZSgwLCBkZWx0YVkpKSkgewogICAgICAgICAgICAgICAg
ICAgICBkZWx0YVkgKj0gc2Nyb2xsV2hlZWxNdWx0aXBsaWVyKCk7CiAKICAgICAgICAgICAgICAg
ICAgICAgbV9jbGllbnQuaW1tZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDb25zdHJh
aW50cyhGbG9hdFNpemUoMCwgZGVsdGFZKSk7CkBAIC0zMDIsNyArMzAxLDcgQEAgYm9vbCBTY3Jv
bGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKICAgICAgICAgICAgIEludFNpemUgc3RyZXRjaEFtb3VudCA9IG1fY2xpZW50
LnN0cmV0Y2hBbW91bnQoKTsKIAogICAgICAgICAgICAgaWYgKG1fbW9tZW50dW1TY3JvbGxJblBy
b2dyZXNzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKChtX2NsaWVudC5waW5uZWRJbkRpcmVjdGlv
bihGbG9hdFNpemUoZXZlbnRDb2FsZXNjZWREZWx0YVgsIGV2ZW50Q29hbGVzY2VkRGVsdGFZKSkg
fHwgKGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFYKSArIGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVs
dGFZKSA8PSAwKSkgJiYgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXApIHsKKyAgICAgICAg
ICAgICAgICBpZiAoKG1fY2xpZW50LmlzUGlubmVkRm9yU2Nyb2xsRGVsdGEoRmxvYXRTaXplKGV2
ZW50Q29hbGVzY2VkRGVsdGFYLCBldmVudENvYWxlc2NlZERlbHRhWSkpIHx8IChmYWJzZihldmVu
dENvYWxlc2NlZERlbHRhWCkgKyBmYWJzZihldmVudENvYWxlc2NlZERlbHRhWSkgPD0gMCkpICYm
IG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wKSB7CiAgICAgICAgICAgICAgICAgICAgIG1f
aWdub3JlTW9tZW50dW1TY3JvbGxzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgbV9tb21l
bnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgc25hcFJ1
YmJlckJhbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmgKaW5kZXggNTFlODBkN2EzMzJiNWY1ZTAyYWYzNDhhOTZiYWVhNjJiZGE2NWE3OC4u
NmE2OGUyZDhkNWFjZDk5YzFiNmMzMjk0NzFlN2ZmMGFiOTE2MWJhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0Niw3ICsxNDYs
NyBAQCBwcml2YXRlOgogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBwaW5uZWRJbkRp
cmVjdGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzUGlubmVk
Rm9yU2Nyb2xsRGVsdGEoY29uc3QgRmxvYXRTaXplJikgY29uc3QgZmluYWw7CiAgICAgUmVjdEVk
Z2VzPGJvb2w+IGVkZ2VQaW5uZWRTdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYWxsb3dz
SG9yaXpvbnRhbFNjcm9sbGluZygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYWxsb3dzVmVydGlj
YWxTY3JvbGxpbmcoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA4OGZmYThlMDliZmZkOWZlN2M0NWQ3ODQx
NWQ5MzBhMjc0MTgwNjVmLi42NmYxNzFjMWFhMWFjNTdiNTVhMDc5ZDNiOTkwOWI5YTkwODY1NjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tCkBAIC0xMjk5LDcgKzEyOTksMTIgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgcmV0
dXJuIGRpZEhhbmRsZUV2ZW50OwogfQogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpwaW5uZWRJ
bkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmIGRpcmVjdGlvbikgY29uc3QKK1JlY3RFZGdlczxi
b29sPiBTY3JvbGxBbmltYXRvck1hYzo6ZWRnZVBpbm5lZFN0YXRlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5lZGdlUGlubmVkU3RhdGUoKTsKK30KKworYm9vbCBTY3Jv
bGxBbmltYXRvck1hYzo6aXNQaW5uZWRGb3JTY3JvbGxEZWx0YShjb25zdCBGbG9hdFNpemUmIGRp
cmVjdGlvbikgY29uc3QKIHsKICAgICBGbG9hdFNpemUgbGltaXREZWx0YTsKICAgICBpZiAoZmFi
c2YoZGlyZWN0aW9uLmhlaWdodCgpKSA+PSBmYWJzZihkaXJlY3Rpb24ud2lkdGgoKSkpIHsKQEAg
LTEzMjUsMTggKzEzMzAsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpwaW5uZWRJbkRpcmVj
dGlvbihjb25zdCBGbG9hdFNpemUmIGRpcmVjdGlvbikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLVJlY3RFZGdlczxib29sPiBTY3JvbGxBbmltYXRvck1hYzo6ZWRnZVBpbm5lZFN0YXRl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5lZGdlUGlubmVkU3RhdGUo
KTsKLX0KLQotLy8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIHNvbWUgb2Yg
dGhlIGNvZGUgZnJvbSBuZXdHZXN0dXJlSXNTdGFydGluZygpLCBpc0FscmVhZHlQaW5uZWRJbkRp
cmVjdGlvbk9mR2VzdHVyZSgpLAotLy8gYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKCksIGFuZCBh
bGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZygpIHdpdGggdGhlIGltcGxlbWVudGF0aW9uIGluIFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuCi1zdGF0aWMgYm9vbCBuZXdHZXN0dXJl
SXNTdGFydGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCi17Ci0gICAg
cmV0dXJuIHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5
QmVnaW4gfHwgd2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpC
ZWdhbjsKLX0KLQorLy8gU2ltaWxhciB0byBpc1Bpbm5lZEZvclNjcm9sbERlbHRhIGJ1dCBkb2Vz
bid0IGhhdmUgdGhlIDEtcGl4ZWwgc2xvcC4KIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OmlzQWxy
ZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChh
eGlzKSB7CkBAIC0xMzcwLDcgKzEzNjQsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjphbGxv
d3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbAogICAg
ICAgICBTY3JvbGxiYXIqIGhTY3JvbGxlciA9IG1fc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNj
cm9sbGJhcigpOwogICAgICAgICBTY3JvbGxiYXIqIHZTY3JvbGxlciA9IG1fc2Nyb2xsYWJsZUFy
ZWEudmVydGljYWxTY3JvbGxiYXIoKTsKICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJl
dGNoaW5nID0gKCh2U2Nyb2xsZXIgJiYgdlNjcm9sbGVyLT5lbmFibGVkKCkpIHx8ICghaFNjcm9s
bGVyIHx8ICFoU2Nyb2xsZXItPmVuYWJsZWQoKSkpOwotICAgICAgICBib29sIGV2ZW50UHJldmVu
dHNTdHJldGNoaW5nID0gbV9zY3JvbGxhYmxlQXJlYS5oYXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5k
YWJsZUFuY2VzdG9yKCkgJiYgbmV3R2VzdHVyZUlzU3RhcnRpbmcod2hlZWxFdmVudCkgJiYgaXNB
bHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUod2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRB
eGlzOjpWZXJ0aWNhbCk7CisgICAgICAgIGJvb2wgZXZlbnRQcmV2ZW50c1N0cmV0Y2hpbmcgPSBt
X3Njcm9sbGFibGVBcmVhLmhhc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0b3IoKSAm
JiB3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkgJiYgaXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rp
b25PZkdlc3R1cmUod2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCk7CiAjaWYg
RU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICAgICAgaWYgKCFldmVudFByZXZlbnRzU3RyZXRj
aGluZykKICAgICAgICAgICAgIGV2ZW50UHJldmVudHNTdHJldGNoaW5nID0gZ2VzdHVyZVNob3Vs
ZEJlZ2luU25hcCh3aGVlbEV2ZW50LCBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsU25hcE9mZnNl
dHMoKSk7CkBAIC0xMzk0LDcgKzEzODgsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjphbGxv
d3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZQogICAg
ICAgICBTY3JvbGxiYXIqIGhTY3JvbGxlciA9IG1fc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNj
cm9sbGJhcigpOwogICAgICAgICBTY3JvbGxiYXIqIHZTY3JvbGxlciA9IG1fc2Nyb2xsYWJsZUFy
ZWEudmVydGljYWxTY3JvbGxiYXIoKTsKICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJl
dGNoaW5nID0gKChoU2Nyb2xsZXIgJiYgaFNjcm9sbGVyLT5lbmFibGVkKCkpIHx8ICghdlNjcm9s
bGVyIHx8ICF2U2Nyb2xsZXItPmVuYWJsZWQoKSkpOwotICAgICAgICBib29sIGV2ZW50UHJldmVu
dHNTdHJldGNoaW5nID0gbV9zY3JvbGxhYmxlQXJlYS5oYXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5k
YWJsZUFuY2VzdG9yKCkgJiYgbmV3R2VzdHVyZUlzU3RhcnRpbmcod2hlZWxFdmVudCkgJiYgaXNB
bHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUod2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRB
eGlzOjpIb3Jpem9udGFsKTsKKyAgICAgICAgYm9vbCBldmVudFByZXZlbnRzU3RyZXRjaGluZyA9
IG1fc2Nyb2xsYWJsZUFyZWEuaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVBbmNlc3Rvcigp
ICYmIHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAmJiBpc0FscmVhZHlQaW5uZWRJbkRpcmVj
dGlvbk9mR2VzdHVyZSh3aGVlbEV2ZW50LCBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpOwog
I2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgICAgIGlmICghZXZlbnRQcmV2ZW50c1N0
cmV0Y2hpbmcpCiAgICAgICAgICAgICBldmVudFByZXZlbnRzU3RyZXRjaGluZyA9IGdlc3R1cmVT
aG91bGRCZWdpblNuYXAod2hlZWxFdmVudCwgbV9zY3JvbGxhYmxlQXJlYS5ob3Jpem9udGFsU25h
cE9mZnNldHMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Nj
cm9sbEFuaW1hdG9yTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxB
bmltYXRvck1vY2suaAppbmRleCA5ZWY0NzBhN2M5MTgwMmM1YmM5MzQxYjU4YzYxOTY1MjhmMTMw
MjA2Li40NmNlYTA2M2RkNzY0MDI5NjViOGQ1MzVmYmQwMmFhMGQzMzU5OGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGFsbG93c0hvcml6b250YWxTdHJldGNoaW5n
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBJbnRTaXplIHN0
cmV0Y2hBbW91bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBJbnRTaXplKCk7IH0KLSAgICBi
b29sIHBpbm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc1Bpbm5lZEZvclNjcm9sbERlbHRhKGNvbnN0IEZs
b2F0U2l6ZSYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgUmVjdEVkZ2Vz
PGJvb2w+IGVkZ2VQaW5uZWRTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfQog
ICAgIGJvb2wgYWxsb3dzSG9yaXpvbnRhbFNjcm9sbGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBhbGxvd3NWZXJ0aWNhbFNjcm9sbGluZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416729</attachid>
            <date>2020-12-23 15:50:46 -0800</date>
            <delta_ts>2020-12-23 17:02:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220128-20201223155045.patch</filename>
            <type>text/plain</type>
            <size>29337</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZlMWJmMDI2NGY0NjA0
MzhkZjRkMzU1ZjUyMmU1NmJjNTBkY2VkZi4uODE0MThjNGExZmU0NjliMjU3YThjYTM4ZDAwNGRm
ZTRlZmYzMjNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTEyLTIzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIHNv
bWUgY29kZSByZWxhdGVkIHRvIHNjcm9sbCBwaW5uaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAxMjgKKworICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgorCisgICAgICAgIFNjcm9sbEFuaW1hdG9yTWFjIGFuZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjIHNoYXJlIGEgbG90IG9mIHNpbWlsYXIgY29kZQorICAg
ICAgICByZWxhdGVkIHRvIGJlaW5nICJwaW5uZWQiIHRvIGFuIGVkZ2UgZm9yIHNjcm9sbGluZyAo
aS5lLiBhbHJlYWR5IHNjcm9sbGVkIHRvIGFuIGVkZ2UpLgorCisgICAgICAgIFRoZXJlIGFyZSB0
b28gbWFueSBmdW5jdGlvbnMgaW1wbGVtZW50aW5nIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBpbiBz
bGlnaHRseSBkaWZmZXJlbnQKKyAgICAgICAgd2F5cy4gUmVkdWNlIHRoaXMgY291bnQgYnkgb25l
IGJ5IHJld3JpdGluZyBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZSgpCisgICAg
ICAgIGFuZCBjYWxsaW5nIGl0IGZyb20gaXNQaW5uZWRGb3JTY3JvbGxEZWx0YSgpLgorCisgICAg
ICAgIFJlbmFtZSBib29sIHBpbm5lZEluRGlyZWN0aW9uKCkgdG8gaXNQaW5uZWRGb3JTY3JvbGxE
ZWx0YSgpLgorCisgICAgICAgIE1ha2UgdXNlIG9mIHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQo
KS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc1Bpbm5lZEZvclNjcm9sbERlbHRh
T25BeGlzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6b250YWxTdHJldGNoaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93
c1ZlcnRpY2FsU3RyZXRjaGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc1Bpbm5lZEZvclNjcm9sbERlbHRhIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OmlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6
OnBpbm5lZEluRGlyZWN0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNQ
aW5uZWRGb3JTY3JvbGxEZWx0YU9uQXhpcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYTo6aXNQaW5uZWRGb3JTY3JvbGxEZWx0YSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNQaW5uZWRJbkJvdGhEaXJlY3Rpb25zIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEhvcml6b250
YWxseUluRGlyZWN0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjppc1Bpbm5lZFZlcnRpY2FsbHlJbkRpcmVjdGlvbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjppc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWluaW11bVBvc2l0
aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpp
c0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1ZlcnRpY2FsU2Nyb2xsZXJQ
aW5uZWRUb01pbmltdW1Qb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxhYmxlQXJlYTo6aXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRp
b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JJT1M6OmRldGVybWluZVNjcm9sbGFibGVBcmVhRm9yVG91Y2hT
ZXF1ZW5jZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmlzUGlubmVkRm9yU2Nyb2xsRGVsdGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmFsbG93c1ZlcnRpY2FsU3RyZXRj
aGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6YWxsb3dz
SG9yaXpvbnRhbFN0cmV0Y2hpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6OnBpbm5lZEluRGlyZWN0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Om5ld0dlc3R1cmVJc1N0YXJ0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjppc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1v
Y2suaDoKKwogMjAyMC0xMi0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBTY3JvbGwgc25hcHBpbmcgdHJpZ2dlcnMgYm9keSBz
Y3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCmlu
ZGV4IDIzMmU5ZmNiYWM1NmM3YmRjYTgxMWIzYjY0ZDgyNTE2ZjY0Y2FjMmIuLjMyYTgzOGViNmYz
ZGE0Mzk4M2JjZmY1NWI3Y2M0MTgxNTU3MzRlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAtNzEsMTQgKzcxLDE0IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAg
ICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CisgICAgYm9vbCBpc1Bpbm5lZEZv
clNjcm9sbERlbHRhT25BeGlzKGZsb2F0IHNjcm9sbERlbHRhLCBTY3JvbGxFdmVudEF4aXMsIGZs
b2F0IHNjcm9sbExpbWl0ID0gMCkgY29uc3Q7CiAKICAgICAvLyBTY3JvbGxDb250cm9sbGVyQ2xp
ZW50LgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IGNyZWF0ZVRp
bWVyKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CiAgICAgYm9vbCBhbGxvd3NIb3Jpem9udGFs
U3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBj
b25zdCBmaW5hbDsKICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKLSAg
ICBib29sIHBpbm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IGZpbmFsOwor
ICAgIGJvb2wgaXNQaW5uZWRGb3JTY3JvbGxEZWx0YShjb25zdCBGbG9hdFNpemUmKSBjb25zdCBm
aW5hbDsKICAgICBSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5lZFN0YXRlKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBhbGxvd3NIb3Jpem9udGFsU2Nyb2xsaW5nKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBhbGxvd3NWZXJ0aWNhbFNjcm9sbGluZygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCA2MDViMmNiY2VmNzgx
OGJkOGVlYTRmOGJkY2RmY2I4NjEzNjUxMTk3Li5iNzVjNzIyNTkwYWM2MTc4MzExYTA0MWI1NTNh
MDViMDZmYmE2NDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbQpAQCAtMjE1LDE5ICsyMTUsMzQgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKTsKIH0KIAot
Ly8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIHNvbWUgb2YgdGhlIGNvZGUg
ZnJvbSBuZXdHZXN0dXJlSXNTdGFydGluZygpLCBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9m
R2VzdHVyZSgpLAotLy8gYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKCksIGFuZCBhbGxvd3NIb3Jp
em9udGFsU3RyZXRjaGluZygpIHdpdGggdGhlIGltcGxlbWVudGF0aW9uIGluIFNjcm9sbEFuaW1h
dG9yTWFjLgotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc0Fs
cmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQsIFNjcm9sbEV2ZW50QXhpcyBheGlzKSBjb25zdAorYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjppc1Bpbm5lZEZvclNjcm9sbERlbHRhT25BeGlz
KGZsb2F0IHNjcm9sbERlbHRhLCBTY3JvbGxFdmVudEF4aXMgYXhpcywgZmxvYXQgc2Nyb2xsTGlt
aXQpIGNvbnN0CiB7CiAgICAgYXV0byBzY3JvbGxQb3NpdGlvbiA9IGN1cnJlbnRTY3JvbGxQb3Np
dGlvbigpOwogICAgIHN3aXRjaCAoYXhpcykgewogICAgIGNhc2UgU2Nyb2xsRXZlbnRBeGlzOjpW
ZXJ0aWNhbDoKLSAgICAgICAgcmV0dXJuICh3aGVlbEV2ZW50LmRlbHRhWSgpID4gMCAmJiBzY3Jv
bGxQb3NpdGlvbi55KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgpKSB8fCAod2hlZWxF
dmVudC5kZWx0YVkoKSA8IDAgJiYgc2Nyb2xsUG9zaXRpb24ueSgpID49IG1heGltdW1TY3JvbGxQ
b3NpdGlvbigpLnkoKSk7CisgICAgICAgIGlmIChzY3JvbGxEZWx0YSA8IDApIHsKKyAgICAgICAg
ICAgIGF1dG8gdG9wT2Zmc2V0ID0gc2Nyb2xsUG9zaXRpb24ueSgpIC0gbWluaW11bVNjcm9sbFBv
c2l0aW9uKCkueSgpOworICAgICAgICAgICAgcmV0dXJuIHRvcE9mZnNldCA8PSBzY3JvbGxMaW1p
dDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzY3JvbGxEZWx0YSA+IDApIHsKKyAgICAgICAg
ICAgIGF1dG8gYm90dG9tT2Zmc2V0ID0gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpIC0gc2Ny
b2xsUG9zaXRpb24ueSgpOworICAgICAgICAgICAgcmV0dXJuIGJvdHRvbU9mZnNldCA8PSBzY3Jv
bGxMaW1pdDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKICAgICBjYXNlIFNjcm9sbEV2ZW50
QXhpczo6SG9yaXpvbnRhbDoKLSAgICAgICAgcmV0dXJuICh3aGVlbEV2ZW50LmRlbHRhWCgpID4g
MCAmJiBzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9uKCkueCgpKSB8
fCAod2hlZWxFdmVudC5kZWx0YVgoKSA8IDAgJiYgc2Nyb2xsUG9zaXRpb24ueCgpID49IG1heGlt
dW1TY3JvbGxQb3NpdGlvbigpLngoKSk7CisgICAgICAgIGlmIChzY3JvbGxEZWx0YSA8IDApIHsK
KyAgICAgICAgICAgIGF1dG8gbGVmdE9mZnNldCA9IHNjcm9sbFBvc2l0aW9uLngoKSAtIG1pbmlt
dW1TY3JvbGxQb3NpdGlvbigpLngoKTsKKyAgICAgICAgICAgIHJldHVybiBsZWZ0T2Zmc2V0IDw9
IHNjcm9sbExpbWl0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNjcm9sbERlbHRhID4gMCkg
eworICAgICAgICAgICAgYXV0byByaWdodE9mZnNldCA9IG1heGltdW1TY3JvbGxQb3NpdGlvbigp
LngoKSAtIHNjcm9sbFBvc2l0aW9uLngoKTsKKyAgICAgICAgICAgIHJldHVybiByaWdodE9mZnNl
dCA8PSBzY3JvbGxMaW1pdDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTI0NCw3
ICsyNTksNyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFs
bG93c0hvcml6b250YWxTdHJldGNoaW5nKGNvbnN0IFBsYQogICAgIHN3aXRjaCAoaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkoKSkgewogICAgIGNhc2UgU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRp
YzogewogICAgICAgICBib29sIHNjcm9sbGJhcnNBbGxvd1N0cmV0Y2hpbmcgPSBhbGxvd3NIb3Jp
em9udGFsU2Nyb2xsaW5nKCkgfHwgIWFsbG93c1ZlcnRpY2FsU2Nyb2xsaW5nKCk7Ci0gICAgICAg
IGJvb2wgZXZlbnRQcmV2ZW50c1N0cmV0Y2hpbmcgPSB3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0
KCkgJiYgaXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUod2hlZWxFdmVudCwgU2Ny
b2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsKTsKKyAgICAgICAgYm9vbCBldmVudFByZXZlbnRzU3Ry
ZXRjaGluZyA9IHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAmJiBpc1Bpbm5lZEZvclNjcm9s
bERlbHRhT25BeGlzKC13aGVlbEV2ZW50LmRlbHRhWCgpLCBTY3JvbGxFdmVudEF4aXM6Okhvcml6
b250YWwpOwogICAgICAgICByZXR1cm4gc2Nyb2xsYmFyc0FsbG93U3RyZXRjaGluZyAmJiAhZXZl
bnRQcmV2ZW50c1N0cmV0Y2hpbmc7CiAgICAgfQogICAgIGNhc2UgU2Nyb2xsRWxhc3RpY2l0eU5v
bmU6CkBAIC0yNjYsNyArMjgxLDcgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGYKICAgICBzd2l0
Y2ggKHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSgpKSB7CiAgICAgY2FzZSBTY3JvbGxFbGFzdGlj
aXR5QXV0b21hdGljOiB7CiAgICAgICAgIGJvb2wgc2Nyb2xsYmFyc0FsbG93U3RyZXRjaGluZyA9
IGFsbG93c1ZlcnRpY2FsU2Nyb2xsaW5nKCkgfHwgIWFsbG93c0hvcml6b250YWxTY3JvbGxpbmco
KTsKLSAgICAgICAgYm9vbCBldmVudFByZXZlbnRzU3RyZXRjaGluZyA9IHdoZWVsRXZlbnQuaXNH
ZXN0dXJlU3RhcnQoKSAmJiBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZSh3aGVl
bEV2ZW50LCBTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsKTsKKyAgICAgICAgYm9vbCBldmVudFBy
ZXZlbnRzU3RyZXRjaGluZyA9IHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAmJiBpc1Bpbm5l
ZEZvclNjcm9sbERlbHRhT25BeGlzKC13aGVlbEV2ZW50LmRlbHRhWSgpLCBTY3JvbGxFdmVudEF4
aXM6OlZlcnRpY2FsKTsKICAgICAgICAgcmV0dXJuIHNjcm9sbGJhcnNBbGxvd1N0cmV0Y2hpbmcg
JiYgIWV2ZW50UHJldmVudHNTdHJldGNoaW5nOwogICAgIH0KICAgICBjYXNlIFNjcm9sbEVsYXN0
aWNpdHlOb25lOgpAQCAtMzAxLDMyICszMTYsMTYgQEAgSW50U2l6ZSBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzdHJldGNoQW1vdW50KCkgY29uc3QKICAgICByZXR1cm4g
c3RyZXRjaDsKIH0KIAotLy8gRklYTUU6IFNoYXJlIG1vcmUgd2l0aCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6ZWRnZVBpbm5lZFN0YXRlKCkuCi1ib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWM6OnBpbm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYgZGVs
dGEpIGNvbnN0Citib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Omlz
UGlubmVkRm9yU2Nyb2xsRGVsdGEoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkgY29uc3QKIHsKLSAg
ICBGbG9hdFNpemUgbGltaXREZWx0YTsKLSAgICBhdXRvIHNjcm9sbFBvc2l0aW9uID0gY3VycmVu
dFNjcm9sbFBvc2l0aW9uKCk7CisgICAgLy8gVGhpcyAib2Zmc2V0IDwgMSIgbG9naWMgd2FzIGFk
ZGVkIGluIHIxMDc0ODguIFVuY2xlYXIgaWYgaXQncyBuZWVkZWQuCisgICAgY29uc3RleHByIGZs
b2F0IHNjcm9sbE9mZnNldExpbWl0ID0gMS4wZiAtIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+
OjplcHNpbG9uKCk7CiAKLSAgICBpZiAoZmFic2YoZGVsdGEuaGVpZ2h0KCkpID49IGZhYnNmKGRl
bHRhLndpZHRoKCkpKSB7Ci0gICAgICAgIGlmIChkZWx0YS5oZWlnaHQoKSA8IDApIHsKLSAgICAg
ICAgICAgIC8vIFdlIGFyZSB0cnlpbmcgdG8gc2Nyb2xsIHVwLiBNYWtlIHN1cmUgd2UgYXJlIG5v
dCBwaW5uZWQgdG8gdGhlIHRvcC4KLSAgICAgICAgICAgIGxpbWl0RGVsdGEuc2V0SGVpZ2h0KHNj
cm9sbFBvc2l0aW9uLnkoKSAtIG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBXZSBhcmUgdHJ5aW5nIHRvIHNjcm9sbCBkb3duLiBN
YWtlIHN1cmUgd2UgYXJlIG5vdCBwaW5uZWQgdG8gdGhlIGJvdHRvbS4KLSAgICAgICAgICAgIGxp
bWl0RGVsdGEuc2V0SGVpZ2h0KG1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSAtIHNjcm9sbFBv
c2l0aW9uLnkoKSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGRlbHRhLndpZHRoKCkpIHsK
LSAgICAgICAgaWYgKGRlbHRhLndpZHRoKCkgPCAwKSB7Ci0gICAgICAgICAgICAvLyBXZSBhcmUg
dHJ5aW5nIHRvIHNjcm9sbCBsZWZ0LiBNYWtlIHN1cmUgd2UgYXJlIG5vdCBwaW5uZWQgdG8gdGhl
IGxlZnQuCi0gICAgICAgICAgICBsaW1pdERlbHRhLnNldFdpZHRoKHNjcm9sbFBvc2l0aW9uLngo
KSAtIG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAvLyBXZSBhcmUgdHJ5aW5nIHRvIHNjcm9sbCByaWdodC4gTWFrZSBzdXJlIHdlIGFy
ZSBub3QgcGlubmVkIHRvIHRoZSByaWdodC4KLSAgICAgICAgICAgIGxpbWl0RGVsdGEuc2V0V2lk
dGgobWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueCgpIC0gc2Nyb2xsUG9zaXRpb24ueCgpKTsKLSAg
ICAgICAgfQotICAgIH0KKyAgICBpZiAoZmFic2YoZGVsdGEuaGVpZ2h0KCkpID49IGZhYnNmKGRl
bHRhLndpZHRoKCkpKQorICAgICAgICByZXR1cm4gaXNQaW5uZWRGb3JTY3JvbGxEZWx0YU9uQXhp
cyhkZWx0YS5oZWlnaHQoKSwgU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgc2Nyb2xsT2Zmc2V0
TGltaXQpOwogCi0gICAgaWYgKChkZWx0YS53aWR0aCgpIHx8IGRlbHRhLmhlaWdodCgpKSAmJiAo
bGltaXREZWx0YS53aWR0aCgpIDwgMSAmJiBsaW1pdERlbHRhLmhlaWdodCgpIDwgMSkpCi0gICAg
ICAgIHJldHVybiB0cnVlOworICAgIGlmIChkZWx0YS53aWR0aCgpKQorICAgICAgICByZXR1cm4g
aXNQaW5uZWRGb3JTY3JvbGxEZWx0YU9uQXhpcyhkZWx0YS53aWR0aCgpLCBTY3JvbGxFdmVudEF4
aXM6Okhvcml6b250YWwsIHNjcm9sbE9mZnNldExpbWl0KTsKIAogICAgIHJldHVybiBmYWxzZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCAxZGIy
OGYyN2M0ZDFjOGY5MmIzNWFiYjEwNGM3ZWM3MWRmMmYxNzEwLi41M2M2NTEyYjk4NTYxYzI0MzUw
NDEzYmFjZGNhYjQ4YjMwNmUzNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuY3BwCkBAIC02MjksMjggKzYyOSwzNCBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjp1
cGRhdGVTY3JvbGxTbmFwU3RhdGUoKQogfQogI2VuZGlmCiAKLQotYm9vbCBTY3JvbGxhYmxlQXJl
YTo6aXNQaW5uZWRJbkJvdGhEaXJlY3Rpb25zKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKSBj
b25zdAorYm9vbCBTY3JvbGxhYmxlQXJlYTo6aXNQaW5uZWRGb3JTY3JvbGxEZWx0YU9uQXhpcyhm
bG9hdCBzY3JvbGxEZWx0YSwgU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGlzUGlubmVkSG9yaXpvbnRhbGx5SW5EaXJlY3Rpb24oc2Nyb2xsRGVsdGEud2lkdGgoKSkg
JiYgaXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24oc2Nyb2xsRGVsdGEuaGVpZ2h0KCkpOwot
fQorICAgIGF1dG8gc2Nyb2xsUG9zaXRpb24gPSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpOworICAg
IHN3aXRjaCAoYXhpcykgeworICAgIGNhc2UgU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbDoKKyAg
ICAgICAgaWYgKHNjcm9sbERlbHRhIDwgMCkgLy8gdG9wCisgICAgICAgICAgICByZXR1cm4gc2Ny
b2xsUG9zaXRpb24ueSgpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLnkoKTsKKworICAgICAg
ICBpZiAoc2Nyb2xsRGVsdGEgPiAwKSAvLyBib3R0b20KKyAgICAgICAgICAgIHJldHVybiBzY3Jv
bGxQb3NpdGlvbi55KCkgPj0gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpOworCisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsOgorICAgICAgICBp
ZiAoc2Nyb2xsRGVsdGEgPCAwKSAvLyBsZWZ0CisgICAgICAgICAgICByZXR1cm4gc2Nyb2xsUG9z
aXRpb24ueCgpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsKKworICAgICAgICBpZiAo
c2Nyb2xsRGVsdGEgPiAwKSAvLyByaWdodAorICAgICAgICAgICAgcmV0dXJuIHNjcm9sbFBvc2l0
aW9uLngoKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CisKKyAgICAgICAgYnJlYWs7
CisgICAgfQogCi1ib29sIFNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEhvcml6b250YWxseUluRGly
ZWN0aW9uKGludCBob3Jpem9udGFsU2Nyb2xsRGVsdGEpIGNvbnN0Ci17Ci0gICAgaWYgKGhvcml6
b250YWxTY3JvbGxEZWx0YSA8IDAgJiYgaXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01pbmlt
dW1Qb3NpdGlvbigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAoaG9yaXpvbnRhbFNj
cm9sbERlbHRhID4gMCAmJiBpc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWF4aW11bVBvc2l0
aW9uKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9v
bCBTY3JvbGxhYmxlQXJlYTo6aXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24oaW50IHZlcnRp
Y2FsU2Nyb2xsRGVsdGEpIGNvbnN0Citib29sIFNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEZvclNj
cm9sbERlbHRhKGNvbnN0IEZsb2F0U2l6ZSYgc2Nyb2xsRGVsdGEpIGNvbnN0CiB7Ci0gICAgaWYg
KHZlcnRpY2FsU2Nyb2xsRGVsdGEgPCAwICYmIGlzVmVydGljYWxTY3JvbGxlclBpbm5lZFRvTWlu
aW11bVBvc2l0aW9uKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2ZXJ0aWNhbFNj
cm9sbERlbHRhID4gMCAmJiBpc1ZlcnRpY2FsU2Nyb2xsZXJQaW5uZWRUb01heGltdW1Qb3NpdGlv
bigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IGlzUGlubmVkRm9yU2Nyb2xsRGVsdGFPbkF4aXMoc2Nyb2xsRGVsdGEud2lkdGgoKSwgU2Nyb2xs
RXZlbnRBeGlzOjpIb3Jpem9udGFsKSAmJiBpc1Bpbm5lZEZvclNjcm9sbERlbHRhT25BeGlzKHNj
cm9sbERlbHRhLmhlaWdodCgpLCBTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsKTsKIH0KIAogUmVj
dEVkZ2VzPGJvb2w+IFNjcm9sbGFibGVBcmVhOjplZGdlUGlubmVkU3RhdGUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMDgyYWRlYWIwYTZjYjUw
YjdjMDI1MDI4ODdlNWU1YmU3ZDk1MzFiNC4uOWZjZDU0OWFiYjZlZGEyMDZlMjIwYzBiZDhkZDkx
ZmVmMjcyZjMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBA
IC0zMjYsMTUgKzMyNiw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHN0YXRp
YyBzbyB0aGF0IGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgb3IgdGhlIHNj
cm9sbGluZyB0aHJlYWQuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY29tcHV0ZVNj
cm9sbGJhclZhbHVlQW5kT3ZlcmhhbmcoZmxvYXQgY3VycmVudFBvc2l0aW9uLCBmbG9hdCB0b3Rh
bFNpemUsIGZsb2F0IHZpc2libGVTaXplLCBmbG9hdCYgZG91YmxlVmFsdWUsIGZsb2F0JiBvdmVy
aGFuZ0Ftb3VudCk7CiAKLSAgICBib29sIGlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NaW5p
bXVtUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiAhaG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHNj
cm9sbE9mZnNldCgpLngoKSA8PSAwOyB9Ci0gICAgYm9vbCBpc0hvcml6b250YWxTY3JvbGxlclBp
bm5lZFRvTWF4aW11bVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxi
YXIoKSB8fCBzY3JvbGxPZmZzZXQoKS54KCkgPj0gbWF4aW11bVNjcm9sbE9mZnNldCgpLngoKTsg
fQotICAgIGJvb2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQoKS55KCkg
PD0gMDsgfQotICAgIGJvb2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQo
KS55KCkgPj0gbWF4aW11bVNjcm9sbE9mZnNldCgpLnkoKTsgfQotCi0gICAgYm9vbCBpc1Bpbm5l
ZEluQm90aERpcmVjdGlvbnMoY29uc3QgSW50U2l6ZSYpIGNvbnN0OyAKLSAgICBib29sIGlzUGlu
bmVkSG9yaXpvbnRhbGx5SW5EaXJlY3Rpb24oaW50IGhvcml6b250YWxTY3JvbGxEZWx0YSkgY29u
c3Q7IAotICAgIGJvb2wgaXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24oaW50IHZlcnRpY2Fs
U2Nyb2xsRGVsdGEpIGNvbnN0OwotCisgICAgYm9vbCBpc1Bpbm5lZEZvclNjcm9sbERlbHRhT25B
eGlzKGZsb2F0IHNjcm9sbERlbHRhLCBTY3JvbGxFdmVudEF4aXMpIGNvbnN0OworICAgIGJvb2wg
aXNQaW5uZWRGb3JTY3JvbGxEZWx0YShjb25zdCBGbG9hdFNpemUmKSBjb25zdDsKICAgICBSZWN0
RWRnZXM8Ym9vbD4gZWRnZVBpbm5lZFN0YXRlKCkgY29uc3Q7CiAKICAgICAvLyBUcnVlIGlmIHNj
cm9sbGluZyBoYXBwZW5zIGJ5IG1vdmluZyBjb21wb3NpdGluZyBsYXllcnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggY2Y2NzEw
YmY1M2VjODIxNDcxZmViZmM0NDUxYjdlMGNiZjk2ZGNkOS4uY2YzOTIzNDA1ZWUxMzE2OTY4MTZi
ZTdmYjBhMjU0NTQxYjI0M2ZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBjb25z
dCA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRT
aXplJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1Bpbm5lZEZvclNjcm9sbERlbHRh
KGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgUmVjdEVkZ2VzPGJv
b2w+IGVkZ2VQaW5uZWRTdGF0ZSgpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggYTkyMTk4ODdiZjYzY2E0
M2E1ZmY3ZjhjN2QyNTM3M2ExM2E3N2IyZi4uM2U0ZjA2OWNmMzJiNjMxODU2YThjNmEyZGVkMGEx
NmUzZWY1MWZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tCkBAIC0xMjksMTIgKzEyOSwxMSBAQCBib29sIFNjcm9sbENvbnRyb2xs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
KQogICAgIGlmICh3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6
OkJlZ2FuKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUcnlpbmcgdG8gZGVjaWRlIGlmIGEgZ2VzdHVy
ZSBpcyBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGF0IHRoZSAiYmVnYW4iIHBoYXNlIGlzIHZlcnkg
ZXJyb3ItcHJvbmUuCiAgICAgICAgIGF1dG8gZGlyZWN0aW9uID0gZGlyZWN0aW9uRnJvbUV2ZW50
KHdoZWVsRXZlbnQsIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCk7Ci0gICAgICAgIC8vIEZJ
WE1FOiBwaW5uZWRJbkRpcmVjdGlvbigpIG5lZWRzIGNsZWFudXAuCi0gICAgICAgIGlmIChkaXJl
Y3Rpb24gJiYgbV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKC13aGVlbEV2ZW50
LmRlbHRhWCgpLCAwKSkgJiYgIXNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rpb24u
dmFsdWUoKSkpCisgICAgICAgIGlmIChkaXJlY3Rpb24gJiYgbV9jbGllbnQuaXNQaW5uZWRGb3JT
Y3JvbGxEZWx0YShGbG9hdFNpemUoLXdoZWVsRXZlbnQuZGVsdGFYKCksIDApKSAmJiAhc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbi52YWx1ZSgpKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICBkaXJlY3Rpb24gPSBkaXJlY3Rpb25Gcm9tRXZlbnQod2hl
ZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCk7Ci0gICAgICAgIGlmIChkaXJlY3Rp
b24gJiYgbV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKDAsIC13aGVlbEV2ZW50
LmRlbHRhWSgpKSkgJiYgIXNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rpb24udmFs
dWUoKSkpCisgICAgICAgIGlmIChkaXJlY3Rpb24gJiYgbV9jbGllbnQuaXNQaW5uZWRGb3JTY3Jv
bGxEZWx0YShGbG9hdFNpemUoMCwgLXdoZWVsRXZlbnQuZGVsdGFZKCkpKSAmJiAhc2hvdWxkUnVi
YmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbi52YWx1ZSgpKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwpA
QCAtMjIyLDcgKzIyMSw3IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoaXNWZXJ0aWNhbGx5U3RyZXRjaGVkKSB7Ci0gICAgICAgICAgICBpZiAoIWlzSG9y
aXpvbnRhbGx5U3RyZXRjaGVkICYmIG1fY2xpZW50LnBpbm5lZEluRGlyZWN0aW9uKEZsb2F0U2l6
ZShkZWx0YVgsIDApKSkgeworICAgICAgICAgICAgaWYgKCFpc0hvcml6b250YWxseVN0cmV0Y2hl
ZCAmJiBtX2NsaWVudC5pc1Bpbm5lZEZvclNjcm9sbERlbHRhKEZsb2F0U2l6ZShkZWx0YVgsIDAp
KSkgewogICAgICAgICAgICAgICAgIC8vIFN0cmV0Y2hpbmcgb25seSBpbiB0aGUgdmVydGljYWwu
CiAgICAgICAgICAgICAgICAgaWYgKGRlbHRhWSAmJiAoZmFic2YoZGVsdGFYIC8gZGVsdGFZKSA8
IHJ1YmJlcmJhbmREaXJlY3Rpb25Mb2NrU3RyZXRjaFJhdGlvKSkKICAgICAgICAgICAgICAgICAg
ICAgZGVsdGFYID0gMDsKQEAgLTIzNCw3ICsyMzMsNyBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQog
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKGlzSG9yaXpvbnRhbGx5U3RyZXRjaGVk
KSB7CiAgICAgICAgICAgICAvLyBTdHJldGNoaW5nIG9ubHkgaW4gdGhlIGhvcml6b250YWwuCi0g
ICAgICAgICAgICBpZiAobV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKDAsIGRl
bHRhWSkpKSB7CisgICAgICAgICAgICBpZiAobV9jbGllbnQuaXNQaW5uZWRGb3JTY3JvbGxEZWx0
YShGbG9hdFNpemUoMCwgZGVsdGFZKSkpIHsKICAgICAgICAgICAgICAgICBpZiAoZGVsdGFYICYm
IChmYWJzZihkZWx0YVkgLyBkZWx0YVgpIDwgcnViYmVyYmFuZERpcmVjdGlvbkxvY2tTdHJldGNo
UmF0aW8pKQogICAgICAgICAgICAgICAgICAgICBkZWx0YVkgPSAwOwogICAgICAgICAgICAgICAg
IGVsc2UgaWYgKGZhYnNmKGRlbHRhWSkgPCBydWJiZXJiYW5kTWluaW11bVJlcXVpcmVkRGVsdGFC
ZWZvcmVTdHJldGNoKSB7CkBAIC0yNDUsNyArMjQ0LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIE5vdCBzdHJl
dGNoaW5nIGF0IGFsbCB5ZXQuCi0gICAgICAgICAgICBpZiAobV9jbGllbnQucGlubmVkSW5EaXJl
Y3Rpb24oRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSkpIHsKKyAgICAgICAgICAgIGlmIChtX2Ns
aWVudC5pc1Bpbm5lZEZvclNjcm9sbERlbHRhKEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSkpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKGZhYnNmKGRlbHRhWSkgPj0gZmFic2YoZGVsdGFYKSkgewog
ICAgICAgICAgICAgICAgICAgICBpZiAoZmFic2YoZGVsdGFYKSA8IHJ1YmJlcmJhbmRNaW5pbXVt
UmVxdWlyZWREZWx0YUJlZm9yZVN0cmV0Y2gpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3ZlcmZsb3dTY3JvbGxEZWx0YS5zZXRXaWR0aChtX292ZXJmbG93U2Nyb2xsRGVsdGEud2lkdGgo
KSArIGRlbHRhWCk7CkBAIC0yNTcsNyArMjU2LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmcsIHN0cmVhbSA8PCAiU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudCgpIC0gZGVs
dGFYICIgPDwgZGVsdGFYIDw8ICIgZGVsdGFZICIgPDwgZGVsdGFZIDw8ICIgcGlubmVkICIgPDwg
bV9jbGllbnQucGlubmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSkgPDwg
IiBzaG91bGRTdHJldGNoICIgPDwgc2hvdWxkU3RyZXRjaCk7CisgICAgICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxF
dmVudCgpIC0gZGVsdGFYICIgPDwgZGVsdGFYIDw8ICIgZGVsdGFZICIgPDwgZGVsdGFZIDw8ICIg
cGlubmVkICIgPDwgbV9jbGllbnQuaXNQaW5uZWRGb3JTY3JvbGxEZWx0YShGbG9hdFNpemUoZGVs
dGFYLCBkZWx0YVkpKSA8PCAiIHNob3VsZFN0cmV0Y2ggIiA8PCBzaG91bGRTdHJldGNoKTsKICAg
ICB9CiAKICAgICBib29sIGhhbmRsZWQgPSB0cnVlOwpAQCAtMjc4LDcgKzI3Nyw3IEBAIGJvb2wg
U2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhWCA9IDA7CiAgICAgICAg
ICAgICAgICAgICAgIGV2ZW50Q29hbGVzY2VkRGVsdGFYID0gMDsKICAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzSG9yaXpv
bnRhbGx5U3RyZXRjaGVkICYmICFtX2NsaWVudC5waW5uZWRJbkRpcmVjdGlvbihGbG9hdFNpemUo
ZGVsdGFYLCAwKSkpIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpc0hvcml6b250YWxs
eVN0cmV0Y2hlZCAmJiAhbV9jbGllbnQuaXNQaW5uZWRGb3JTY3JvbGxEZWx0YShGbG9hdFNpemUo
ZGVsdGFYLCAwKSkpIHsKICAgICAgICAgICAgICAgICAgICAgZGVsdGFYICo9IHNjcm9sbFdoZWVs
TXVsdGlwbGllcigpOwogCiAgICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LmltbWVkaWF0ZVNj
cm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoRmxvYXRTaXplKGRlbHRhWCwgMCkp
OwpAQCAtMjkxLDcgKzI5MCw3IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgICAgICAg
ICAgICAgIGRlbHRhWSA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGV2ZW50Q29hbGVzY2VkRGVs
dGFZID0gMDsKICAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoIWlzVmVydGljYWxseVN0cmV0Y2hlZCAmJiAhbV9jbGllbnQucGlu
bmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKDAsIGRlbHRhWSkpKSB7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmICghaXNWZXJ0aWNhbGx5U3RyZXRjaGVkICYmICFtX2NsaWVudC5pc1Bpbm5lZEZv
clNjcm9sbERlbHRhKEZsb2F0U2l6ZSgwLCBkZWx0YVkpKSkgewogICAgICAgICAgICAgICAgICAg
ICBkZWx0YVkgKj0gc2Nyb2xsV2hlZWxNdWx0aXBsaWVyKCk7CiAKICAgICAgICAgICAgICAgICAg
ICAgbV9jbGllbnQuaW1tZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50
cyhGbG9hdFNpemUoMCwgZGVsdGFZKSk7CkBAIC0zMDIsNyArMzAxLDcgQEAgYm9vbCBTY3JvbGxD
b250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCkKICAgICAgICAgICAgIEludFNpemUgc3RyZXRjaEFtb3VudCA9IG1fY2xpZW50LnN0
cmV0Y2hBbW91bnQoKTsKIAogICAgICAgICAgICAgaWYgKG1fbW9tZW50dW1TY3JvbGxJblByb2dy
ZXNzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKChtX2NsaWVudC5waW5uZWRJbkRpcmVjdGlvbihG
bG9hdFNpemUoZXZlbnRDb2FsZXNjZWREZWx0YVgsIGV2ZW50Q29hbGVzY2VkRGVsdGFZKSkgfHwg
KGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFYKSArIGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFZ
KSA8PSAwKSkgJiYgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXApIHsKKyAgICAgICAgICAg
ICAgICBpZiAoKG1fY2xpZW50LmlzUGlubmVkRm9yU2Nyb2xsRGVsdGEoRmxvYXRTaXplKGV2ZW50
Q29hbGVzY2VkRGVsdGFYLCBldmVudENvYWxlc2NlZERlbHRhWSkpIHx8IChmYWJzZihldmVudENv
YWxlc2NlZERlbHRhWCkgKyBmYWJzZihldmVudENvYWxlc2NlZERlbHRhWSkgPD0gMCkpICYmIG1f
bGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wKSB7CiAgICAgICAgICAgICAgICAgICAgIG1faWdu
b3JlTW9tZW50dW1TY3JvbGxzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgbV9tb21lbnR1
bVNjcm9sbEluUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgc25hcFJ1YmJl
ckJhbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxB
bmltYXRvcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRv
cklPUy5tbQppbmRleCBlZDYzMmVhNWUzZjU1OTdlOWQ3NmZkMmU1NTY5NTYxZmU2YzRjMjI0Li5j
YjRmYjc4ODRjODQwNjM1MzdlNzUwMmM2MjNjNDRiZWIzNmNhN2Y3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsQW5pbWF0b3JJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tCkBAIC0xNzIsNyArMTcy
LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvcklPUzo6ZGV0ZXJtaW5lU2Nyb2xsYWJsZUFyZWFGb3JU
b3VjaFNlcXVlbmNlKGNvbnN0IEludFNpemUmIHMKIAogICAgIFNjcm9sbGFibGVBcmVhKiBzY3Jv
bGxhYmxlQXJlYSA9ICZtX3Njcm9sbGFibGVBcmVhOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIGlmICghc2Nyb2xsYWJsZUFyZWEtPmlzUGlubmVkSW5Cb3RoRGlyZWN0aW9ucyhzY3JvbGxE
ZWx0YSkpCisgICAgICAgIGlmICghc2Nyb2xsYWJsZUFyZWEtPmlzUGlubmVkRm9yU2Nyb2xsRGVs
dGEoc2Nyb2xsRGVsdGEpKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgU2Nyb2xsYWJs
ZUFyZWEqIGVuY2xvc2luZ0FyZWEgPSBzY3JvbGxhYmxlQXJlYS0+ZW5jbG9zaW5nU2Nyb2xsYWJs
ZUFyZWEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLmgKaW5kZXggNTFlODBkN2EzMzJiNWY1ZTAyYWYzNDhhOTZiYWVhNjJiZGE2NWE3OC4uNDlm
MGI0YjFkNzlmNzdhOTY4YTk1MmY4YWViOTc5NTRlMjk3MmUyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0Niw3ICsxNDYsNyBA
QCBwcml2YXRlOgogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBwaW5uZWRJbkRpcmVj
dGlvbihjb25zdCBGbG9hdFNpemUmKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzUGlubmVkRm9y
U2Nyb2xsRGVsdGEoY29uc3QgRmxvYXRTaXplJikgY29uc3QgZmluYWw7CiAgICAgUmVjdEVkZ2Vz
PGJvb2w+IGVkZ2VQaW5uZWRTdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYWxsb3dzSG9y
aXpvbnRhbFNjcm9sbGluZygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgYWxsb3dzVmVydGljYWxT
Y3JvbGxpbmcoKSBjb25zdCBmaW5hbDsKQEAgLTE1NCw4ICsxNTQsNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhjb25z
dCBGbG9hdFNpemUmKSBmaW5hbDsKICAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0IEZs
b2F0U2l6ZSYpIGZpbmFsOwogICAgIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lm
TmVjZXNzYXJ5KCkgZmluYWw7Ci0KLSAgICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9u
T2ZHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29u
c3Q7CiAjZW5kaWYKIAogICAgIGJvb2wgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4
IDg4ZmZhOGUwOWJmZmQ5ZmU3YzQ1ZDc4NDE1ZDkzMGEyNzQxODA2NWYuLjYxNTFkZWZjMGVhZWMz
YTA1NzE1MDIwYWU2NTAwMjNiYWNmMTRiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTEyOTksNTQgKzEyOTksMTkgQEAgYm9v
bCBTY3JvbGxBbmltYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgcmV0dXJuIGRpZEhhbmRsZUV2ZW50OwogfQogCi1ib29s
IFNjcm9sbEFuaW1hdG9yTWFjOjpwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmIGRp
cmVjdGlvbikgY29uc3QKLXsKLSAgICBGbG9hdFNpemUgbGltaXREZWx0YTsKLSAgICBpZiAoZmFi
c2YoZGlyZWN0aW9uLmhlaWdodCgpKSA+PSBmYWJzZihkaXJlY3Rpb24ud2lkdGgoKSkpIHsKLSAg
ICAgICAgaWYgKGRpcmVjdGlvbi5oZWlnaHQoKSA8IDApIHsKLSAgICAgICAgICAgIC8vIFdlIGFy
ZSB0cnlpbmcgdG8gc2Nyb2xsIHVwLiBNYWtlIHN1cmUgd2UgYXJlIG5vdCBwaW5uZWQgdG8gdGhl
IHRvcAotICAgICAgICAgICAgbGltaXREZWx0YS5zZXRIZWlnaHQobV9zY3JvbGxhYmxlQXJlYS52
aXNpYmxlQ29udGVudFJlY3QoKS55KCkgKyBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigp
LnkoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBXZSBhcmUgdHJ5aW5nIHRv
IHNjcm9sbCBkb3duLiBNYWtlIHN1cmUgd2UgYXJlIG5vdCBwaW5uZWQgdG8gdGhlIGJvdHRvbQot
ICAgICAgICAgICAgbGltaXREZWx0YS5zZXRIZWlnaHQobV9zY3JvbGxhYmxlQXJlYS50b3RhbENv
bnRlbnRzU2l6ZSgpLmhlaWdodCgpIC0gKG1fc2Nyb2xsYWJsZUFyZWEudmlzaWJsZUNvbnRlbnRS
ZWN0KCkubWF4WSgpICsgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKS55KCkpKTsKLSAg
ICAgICAgfQotICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uLndpZHRoKCkpIHsKLSAgICAgICAgaWYg
KGRpcmVjdGlvbi53aWR0aCgpIDwgMCkgewotICAgICAgICAgICAgLy8gV2UgYXJlIHRyeWluZyB0
byBzY3JvbGwgbGVmdC4gTWFrZSBzdXJlIHdlIGFyZSBub3QgcGlubmVkIHRvIHRoZSBsZWZ0Ci0g
ICAgICAgICAgICBsaW1pdERlbHRhLnNldFdpZHRoKG1fc2Nyb2xsYWJsZUFyZWEudmlzaWJsZUNv
bnRlbnRSZWN0KCkueCgpICsgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKS54KCkpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gV2UgYXJlIHRyeWluZyB0byBzY3JvbGwg
cmlnaHQuIE1ha2Ugc3VyZSB3ZSBhcmUgbm90IHBpbm5lZCB0byB0aGUgcmlnaHQKLSAgICAgICAg
ICAgIGxpbWl0RGVsdGEuc2V0V2lkdGgobV9zY3JvbGxhYmxlQXJlYS50b3RhbENvbnRlbnRzU2l6
ZSgpLndpZHRoKCkgLSAobV9zY3JvbGxhYmxlQXJlYS52aXNpYmxlQ29udGVudFJlY3QoKS5tYXhY
KCkgKyBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpLngoKSkpOwotICAgICAgICB9Ci0g
ICAgfQotICAgIAotICAgIGlmICgoZGlyZWN0aW9uLndpZHRoKCkgfHwgZGlyZWN0aW9uLmhlaWdo
dCgpKSAmJiAobGltaXREZWx0YS53aWR0aCgpIDwgMSAmJiBsaW1pdERlbHRhLmhlaWdodCgpIDwg
MSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogUmVjdEVk
Z2VzPGJvb2w+IFNjcm9sbEFuaW1hdG9yTWFjOjplZGdlUGlubmVkU3RhdGUoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmVkZ2VQaW5uZWRTdGF0ZSgpOwogfQogCi0vLyBG
SVhNRTogV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gc2hhcmUgc29tZSBvZiB0aGUgY29kZSBmcm9t
IG5ld0dlc3R1cmVJc1N0YXJ0aW5nKCksIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0
dXJlKCksCi0vLyBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoKSwgYW5kIGFsbG93c0hvcml6b250
YWxTdHJldGNoaW5nKCkgd2l0aCB0aGUgaW1wbGVtZW50YXRpb24gaW4gU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYy4KLXN0YXRpYyBib29sIG5ld0dlc3R1cmVJc1N0YXJ0aW5nKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JN
YWM6OmlzUGlubmVkRm9yU2Nyb2xsRGVsdGEoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkgY29uc3QK
IHsKLSAgICByZXR1cm4gd2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBo
YXNlOjpNYXlCZWdpbiB8fCB3aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2U6OkJlZ2FuOwotfQorICAgIGlmIChmYWJzZihkZWx0YS5oZWlnaHQoKSkgPj0gZmFic2Yo
ZGVsdGEud2lkdGgoKSkpCisgICAgICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmlzUGlubmVk
Rm9yU2Nyb2xsRGVsdGFPbkF4aXMoZGVsdGEuaGVpZ2h0KCksIFNjcm9sbEV2ZW50QXhpczo6VmVy
dGljYWwpOwogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjppc0FscmVhZHlQaW5uZWRJbkRpcmVj
dGlvbk9mR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9s
bEV2ZW50QXhpcyBheGlzKSBjb25zdAotewotICAgIHN3aXRjaCAoYXhpcykgewotICAgIGNhc2Ug
U2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbDoKLSAgICAgICAgcmV0dXJuICh3aGVlbEV2ZW50LmRl
bHRhWSgpID4gMCAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbGVkVG9Ub3AoKSkgfHwgKHdoZWVs
RXZlbnQuZGVsdGFZKCkgPCAwICYmIG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsZWRUb0JvdHRvbSgp
KTsKLSAgICBjYXNlIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbDoKLSAgICAgICAgcmV0dXJu
ICh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbGVkVG9M
ZWZ0KCkpIHx8ICh3aGVlbEV2ZW50LmRlbHRhWCgpIDwgMCAmJiBtX3Njcm9sbGFibGVBcmVhLnNj
cm9sbGVkVG9SaWdodCgpKTsKLSAgICB9CisgICAgaWYgKGRlbHRhLndpZHRoKCkpCisgICAgICAg
IHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmlzUGlubmVkRm9yU2Nyb2xsRGVsdGFPbkF4aXMoZGVs
dGEud2lkdGgoKSwgU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsKTsKIAotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTM3MCw3ICsxMzM1LDcg
QEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6YWxsb3dzVmVydGljYWxTdHJldGNoaW5nKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKICAgICAgICAgU2Nyb2xsYmFyKiBoU2Nyb2xsZXIg
PSBtX3Njcm9sbGFibGVBcmVhLmhvcml6b250YWxTY3JvbGxiYXIoKTsKICAgICAgICAgU2Nyb2xs
YmFyKiB2U2Nyb2xsZXIgPSBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsU2Nyb2xsYmFyKCk7CiAg
ICAgICAgIGJvb2wgc2Nyb2xsYmFyc0FsbG93U3RyZXRjaGluZyA9ICgodlNjcm9sbGVyICYmIHZT
Y3JvbGxlci0+ZW5hYmxlZCgpKSB8fCAoIWhTY3JvbGxlciB8fCAhaFNjcm9sbGVyLT5lbmFibGVk
KCkpKTsKLSAgICAgICAgYm9vbCBldmVudFByZXZlbnRzU3RyZXRjaGluZyA9IG1fc2Nyb2xsYWJs
ZUFyZWEuaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVBbmNlc3RvcigpICYmIG5ld0dlc3R1
cmVJc1N0YXJ0aW5nKHdoZWVsRXZlbnQpICYmIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZH
ZXN0dXJlKHdoZWVsRXZlbnQsIFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwpOworICAgICAgICBi
b29sIGV2ZW50UHJldmVudHNTdHJldGNoaW5nID0gbV9zY3JvbGxhYmxlQXJlYS5oYXNTY3JvbGxh
YmxlT3JSdWJiZXJiYW5kYWJsZUFuY2VzdG9yKCkgJiYgd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFy
dCgpICYmIG1fc2Nyb2xsYWJsZUFyZWEuaXNQaW5uZWRGb3JTY3JvbGxEZWx0YU9uQXhpcygtd2hl
ZWxFdmVudC5kZWx0YVkoKSwgU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCk7CiAjaWYgRU5BQkxF
KENTU19TQ1JPTExfU05BUCkKICAgICAgICAgaWYgKCFldmVudFByZXZlbnRzU3RyZXRjaGluZykK
ICAgICAgICAgICAgIGV2ZW50UHJldmVudHNTdHJldGNoaW5nID0gZ2VzdHVyZVNob3VsZEJlZ2lu
U25hcCh3aGVlbEV2ZW50LCBtX3Njcm9sbGFibGVBcmVhLnZlcnRpY2FsU25hcE9mZnNldHMoKSk7
CkBAIC0xMzk0LDcgKzEzNTksNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjphbGxvd3NIb3Jp
em9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZQogICAgICAgICBT
Y3JvbGxiYXIqIGhTY3JvbGxlciA9IG1fc2Nyb2xsYWJsZUFyZWEuaG9yaXpvbnRhbFNjcm9sbGJh
cigpOwogICAgICAgICBTY3JvbGxiYXIqIHZTY3JvbGxlciA9IG1fc2Nyb2xsYWJsZUFyZWEudmVy
dGljYWxTY3JvbGxiYXIoKTsKICAgICAgICAgYm9vbCBzY3JvbGxiYXJzQWxsb3dTdHJldGNoaW5n
ID0gKChoU2Nyb2xsZXIgJiYgaFNjcm9sbGVyLT5lbmFibGVkKCkpIHx8ICghdlNjcm9sbGVyIHx8
ICF2U2Nyb2xsZXItPmVuYWJsZWQoKSkpOwotICAgICAgICBib29sIGV2ZW50UHJldmVudHNTdHJl
dGNoaW5nID0gbV9zY3JvbGxhYmxlQXJlYS5oYXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZUFu
Y2VzdG9yKCkgJiYgbmV3R2VzdHVyZUlzU3RhcnRpbmcod2hlZWxFdmVudCkgJiYgaXNBbHJlYWR5
UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUod2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlzOjpI
b3Jpem9udGFsKTsKKyAgICAgICAgYm9vbCBldmVudFByZXZlbnRzU3RyZXRjaGluZyA9IG1fc2Ny
b2xsYWJsZUFyZWEuaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVBbmNlc3RvcigpICYmIHdo
ZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAmJiBtX3Njcm9sbGFibGVBcmVhLmlzUGlubmVkRm9y
U2Nyb2xsRGVsdGFPbkF4aXMoLXdoZWVsRXZlbnQuZGVsdGFYKCksIFNjcm9sbEV2ZW50QXhpczo6
SG9yaXpvbnRhbCk7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICAgICAgaWYgKCFl
dmVudFByZXZlbnRzU3RyZXRjaGluZykKICAgICAgICAgICAgIGV2ZW50UHJldmVudHNTdHJldGNo
aW5nID0gZ2VzdHVyZVNob3VsZEJlZ2luU25hcCh3aGVlbEV2ZW50LCBtX3Njcm9sbGFibGVBcmVh
Lmhvcml6b250YWxTbmFwT2Zmc2V0cygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0b3JNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1Njcm9sbEFuaW1hdG9yTW9jay5oCmluZGV4IDllZjQ3MGE3YzkxODAyYzViYzkzNDFi
NThjNjE5NjUyOGYxMzAyMDYuLjQ2Y2VhMDYzZGQ3NjQwMjk2NWI4ZDUzNWZiZDAyYWEwZDMzNTk4
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Nyb2xsQW5pbWF0
b3JNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRv
ck1vY2suaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgYWxsb3dzSG9yaXpv
bnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFNp
emUoKTsgfQotICAgIGJvb2wgcGlubmVkSW5EaXJlY3Rpb24oY29uc3QgRmxvYXRTaXplJikgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzUGlubmVkRm9yU2Nyb2xs
RGVsdGEoY29uc3QgRmxvYXRTaXplJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5lZFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4geyB9OyB9CiAgICAgYm9vbCBhbGxvd3NIb3Jpem9udGFsU2Nyb2xsaW5nKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGFsbG93c1ZlcnRpY2FsU2Nyb2xs
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>