<?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>268227</bug_id>
          
          <creation_ts>2024-01-27 09:05:04 -0800</creation_ts>
          <short_desc>[IFC] Add inline box count to InlineContentCache::InlineItems</short_desc>
          <delta_ts>2024-01-28 13:13:13 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2008174</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-01-27 09:05:04 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2008179</commentid>
    <comment_count>1</comment_count>
      <attachid>469572</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-01-27 09:21:28 -0800</bug_when>
    <thetext>Created attachment 469572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2008181</commentid>
    <comment_count>2</comment_count>
      <attachid>469573</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-01-27 10:07:13 -0800</bug_when>
    <thetext>Created attachment 469573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2008183</commentid>
    <comment_count>3</comment_count>
      <attachid>469574</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-01-27 10:25:52 -0800</bug_when>
    <thetext>Created attachment 469574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2008321</commentid>
    <comment_count>4</comment_count>
      <attachid>469584</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-01-28 11:15:32 -0800</bug_when>
    <thetext>Created attachment 469584
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2008339</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-01-28 13:12:30 -0800</bug_when>
    <thetext>Committed 273632@main (3d10ef21695f): &lt;https://commits.webkit.org/273632@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 469584.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2008340</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-01-28 13:13:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/121816580&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469572</attachid>
            <date>2024-01-27 09:21:28 -0800</date>
            <delta_ts>2024-01-27 10:19:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268227-20240127092126.patch</filename>
            <type>text/plain</type>
            <size>26260</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyNmQwNTUzMGQ5NGY2N2QxMzBkZmI5NjllZGVlOGI3MmY2ZjU1NWYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjcgSmFuIDIwMjQgMDk6MDU6MTQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBB
ZGQgaW5saW5lIGJveCBjb3VudCB0byBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MjI3CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGJlaW5nIGFibGUg
dG8gcnVuIGEgcmFuZ2Ugb2YgY29udGVudCB0aHJvdWdoIHRoZSBzaW1wbGUgbGluZSBidWlsZGVy
ICh3aGVyZSB0aGUgcmFuZ2UgaGFzIHRleHQgb25seSBjb250ZW50IGUuZy4gPGRpdj48c3Bhbj50
aGlzIGlzIHRleHQgY29udGVudDwvc3Bhbj48L2Rpdj4KCjEuIEtlZXAgdHJhY2sgb2YgdGhlIG51
bWJlciBvZiBpbmxpbmUgYm94ZXMgKG1faW5saW5lQm94Q291bnQpCjIuIG1faXNUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQgb25seSB0cmFja3MgX2NvbnRlbnRfIHR5cGUgb2YgaW5s
aW5lIGxldmVsIGJveGVzIG5vdyAoZXhjbHVkaW5nIGlubGluZSBib3hlcywgc2VlICMxKQozLiBh
bmQgaXQgZG9lcyBub3QgdHJhY2sgaWYgY29udGVudCBuZWVkcyBiaWRpIHJlb3JkZXJpbmcgYW55
bW9yZSAod2UgYWxyZWFkeSB0cmFjayB0aGF0IGluZm9ybWF0aW9uIGluIG1fY29udGVudFJlcXVp
cmVzVmlzdWFsUmVvcmRlcmluZykKNC4gQWRkIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRl
bXM6OkNvbnRlbnRBdHRyaWJ1dGVzIHRvIGhvbGQgYWxsIHRoZXNlIGJpdHMuCjUuIFJlbW92ZSBk
ZWRpY2F0ZWQgc2V0IGZ1bmN0aW9ucyBhbmQgcGFzcyB0aGVzZSBiaXQgdGhyb3VnaCBJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQvcmVwbGFjZS4KCiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENhY2hlLmg6CihX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OnJlcXVpcmVz
VmlzdWFsUmVvcmRlcmluZyBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRD
YWNoZTo6SW5saW5lSXRlbXM6Omhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6Omhhc0lu
bGluZUJveGVzIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJ
bmxpbmVJdGVtczo6aW5saW5lQm94Q291bnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpyZXBsYWNlKToKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6YXBwZW5kKTogRGVsZXRlZC4KKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Y2xlYXIpOiBEZWxl
dGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpz
ZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXRJc05vbkJpZGlUZXh0QW5kRm9yY2Vk
TGluZUJyZWFrT25seUNvbnRlbnQpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjppc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFr
T25seUNvbnRlbnQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Om1pbmltdW1NYXhpbXVtQ29udGVu
dFNpemUpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bWluaW11
bUNvbnRlbnRTaXplKToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
Om1heGltdW1Db250ZW50U2l6ZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lSXRlbXNCdWlsZGVyOjpidWlsZCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1z
QnVpbGRlcjo6dHJhdmVyc2VVbnRpbERhbWFnZWQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJ
dGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVtcyk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUl0ZW1zQnVpbGRlcjo6aGFuZGxlVGV4dENvbnRlbnQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUJveFN0YXJ0KToKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hFbmQpOgooV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUxldmVsQm94KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRy
aW5zaWNXaWR0aEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbnRyaW5zaWNXaWR0aEhh
bmRsZXI6OkludHJpbnNpY1dpZHRoSGFuZGxlcik6CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNp
Y1dpZHRoSGFuZGxlcjo6bWluaW11bUNvbnRlbnRTaXplKToKKFdlYkNvcmU6OkxheW91dDo6SW50
cmluc2ljV2lkdGhIYW5kbGVyOjptYXhpbXVtQ29udGVudFNpemUpOgooV2ViQ29yZTo6TGF5b3V0
OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJh
aW50KToKKFdlYkNvcmU6OkxheW91dDo6SW50cmluc2ljV2lkdGhIYW5kbGVyOjpzaW1wbGlmaWVk
TWF4aW11bVdpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaDoKKFdlYkNvcmU6OkxheW91dDo6SW50cmlu
c2ljV2lkdGhIYW5kbGVyOjppbmxpbmVJdGVtTGlzdCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRl
ci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmlzRWxp
Z2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQpOgotLS0KIC4uLi9pbmxpbmUv
SW5saW5lQ29udGVudENhY2hlLmggICAgICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKystLS0t
LS0KIC4uLi9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICAgICAgICB8IDE4ICsr
KystLS0tLQogLi4uL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwICAgICAgICAgICAgIHwg
MzAgKysrKysrLS0tLS0tLS0tCiAuLi4vaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oICAgICAg
ICAgICAgICAgfCAgMyArLQogLi4uL2lubGluZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuY3BwICAg
ICAgICAgIHwgMjIgKysrKystLS0tLS0KIC4uLi9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVy
LmggICAgICAgICAgICB8ICA3ICsrLS0KIC4uLi9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVp
bGRlci5jcHAgICAgICB8ICA1ICsrLQogNyBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCsp
LCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50Q2FjaGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRDYWNoZS5o
CmluZGV4IGRkZmVhN2M3NDVhMS4uNzlhOWJjMWFkODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50Q2FjaGUuaApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIkZvcm1hdHRp
bmdDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIklubGluZURpc3BsYXlDb250ZW50LmgiCiAjaW5j
bHVkZSAiSW5saW5lSXRlbS5oIgotI2luY2x1ZGUgIkludHJpbnNpY1dpZHRoSGFuZGxlci5oIgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogCkBAIC00MywyNCArNDIsMjggQEAgcHVibGljOgogICAgICAgICBJbmxpbmVJdGVtTGlz
dCYgY29udGVudCgpIHsgcmV0dXJuIG1faW5saW5lSXRlbUxpc3Q7IH0KICAgICAgICAgY29uc3Qg
SW5saW5lSXRlbUxpc3QmIGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUl0ZW1MaXN0
OyB9CiAKLSAgICAgICAgdm9pZCBzZXQoSW5saW5lSXRlbUxpc3QmJiBpbmxpbmVJdGVtTGlzdCkg
eyBtX2lubGluZUl0ZW1MaXN0ID0gV1RGTW92ZShpbmxpbmVJdGVtTGlzdCk7IH0KLSAgICAgICAg
dm9pZCBhcHBlbmQoSW5saW5lSXRlbUxpc3QmJiBpbmxpbmVJdGVtTGlzdCkgeyBtX2lubGluZUl0
ZW1MaXN0LmFwcGVuZFZlY3RvcihXVEZNb3ZlKGlubGluZUl0ZW1MaXN0KSk7IH0KLSAgICAgICAg
dm9pZCBjbGVhcigpIHsgbV9pbmxpbmVJdGVtTGlzdC5jbGVhcigpOyB9CisgICAgICAgIHN0cnVj
dCBDb250ZW50QXR0cmlidXRlcyB7CisgICAgICAgICAgICBib29sIHJlcXVpcmVzVmlzdWFsUmVv
cmRlcmluZyB7IGZhbHNlIH07CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgPHNwYW4+dGhpcyBp
cyB0ZXh0PC9zcGFuPiByZXR1cm5zIHRydWUgYXMgaW5saW5lIGJveGVzIGFyZSBub3QgY29uc2lk
ZXJlZCAnY29udGVudCcgaGVyZS4KKyAgICAgICAgICAgIGJvb2wgaGFzVGV4dEFuZExpbmVCcmVh
a09ubHlDb250ZW50IHsgZmFsc2UgfTsKKyAgICAgICAgICAgIHNpemVfdCBpbmxpbmVCb3hDb3Vu
dCB7IDAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdm9pZCBzZXQoSW5saW5lSXRlbUxpc3QmJiwg
Q29udGVudEF0dHJpYnV0ZXMpOworICAgICAgICB2b2lkIHJlcGxhY2Uoc2l6ZV90IGluc2VydGlv
blBvc2l0aW9uLCBJbmxpbmVJdGVtTGlzdCYmLCBDb250ZW50QXR0cmlidXRlcyk7CiAgICAgICAg
IHZvaWQgc2hyaW5rVG9GaXQoKSB7IG1faW5saW5lSXRlbUxpc3Quc2hyaW5rVG9GaXQoKTsgfQog
CiAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGNvbnRlbnQoKS5pc0VtcHR5
KCk7IH0KICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBjb250ZW50KCkuc2l6
ZSgpOyB9CiAKLSAgICAgICAgdm9pZCBzZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcoYm9vbCBj
b250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKSB7IG1fY29udGVudFJlcXVpcmVzVmlzdWFs
UmVvcmRlcmluZyA9IGNvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmc7IH0KLSAgICAgICAg
Ym9vbCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRS
ZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmc7IH0KLQotICAgICAgICB2b2lkIHNldElzTm9uQmlkaVRl
eHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudChib29sIGlzTm9uQmlkaVRleHRBbmRGb3Jj
ZWRMaW5lQnJlYWtPbmx5Q29udGVudCkgeyBtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJl
YWtPbmx5Q29udGVudCA9IGlzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVu
dDsgfQotICAgICAgICBib29sIGlzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09u
bHlDb250ZW50OyB9CisgICAgICAgIGJvb2wgcmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZW50QXR0cmlidXRlcy5yZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmc7
IH0KKyAgICAgICAgYm9vbCBoYXNUZXh0QW5kTGluZUJyZWFrT25seUNvbnRlbnQoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRlbnRBdHRyaWJ1dGVzLmhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVu
dDsgfQorICAgICAgICBib29sIGhhc0lubGluZUJveGVzKCkgY29uc3QgeyByZXR1cm4gISFpbmxp
bmVCb3hDb3VudCgpOyB9CisgICAgICAgIHNpemVfdCBpbmxpbmVCb3hDb3VudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY29udGVudEF0dHJpYnV0ZXMuaW5saW5lQm94Q291bnQ7IH0KIAogICAgIHByaXZh
dGU6CisgICAgICAgIENvbnRlbnRBdHRyaWJ1dGVzIG1fY29udGVudEF0dHJpYnV0ZXM7CiAgICAg
ICAgIElubGluZUl0ZW1MaXN0IG1faW5saW5lSXRlbUxpc3Q7Ci0gICAgICAgIGJvb2wgbV9jb250
ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nIHsgZmFsc2UgfTsKLSAgICAgICAgYm9vbCBtX2lz
Tm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCB7IGZhbHNlIH07CisKICAg
ICB9OwogICAgIGNvbnN0IElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcygpIGNvbnN0IHsgcmV0dXJu
IG1faW5saW5lSXRlbXM7IH0KICAgICBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMoKSB7IHJldHVy
biBtX2lubGluZUl0ZW1zOyB9CkBAIC04OSw2ICs5MiwxOSBAQCBpbmxpbmUgdm9pZCBJbmxpbmVD
b250ZW50Q2FjaGU6OnJlc2V0TWluaW11bU1heGltdW1Db250ZW50U2l6ZXMoKQogICAgIG1fbWF4
aW11bUludHJpbnNpY1dpZHRoTGluZUNvbnRlbnQgPSB7IH07CiB9CiAKK2lubGluZSB2b2lkIElu
bGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OnNldChJbmxpbmVJdGVtTGlzdCYmIGlubGlu
ZUl0ZW1MaXN0LCBDb250ZW50QXR0cmlidXRlcyBjb250ZW50QXR0cmlidXRlcykKK3sKKyAgICBt
X2lubGluZUl0ZW1MaXN0ID0gV1RGTW92ZShpbmxpbmVJdGVtTGlzdCk7CisgICAgbV9jb250ZW50
QXR0cmlidXRlcyA9IGNvbnRlbnRBdHRyaWJ1dGVzOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpyZXBsYWNlKHNpemVfdCBpbnNlcnRpb25Qb3NpdGlv
biwgSW5saW5lSXRlbUxpc3QmJiBpbmxpbmVJdGVtTGlzdCwgQ29udGVudEF0dHJpYnV0ZXMgY29u
dGVudEF0dHJpYnV0ZXMpCit7CisgICAgbV9pbmxpbmVJdGVtTGlzdC5yZW1vdmUoaW5zZXJ0aW9u
UG9zaXRpb24sIG1faW5saW5lSXRlbUxpc3Quc2l6ZSgpIC0gaW5zZXJ0aW9uUG9zaXRpb24pOwor
ICAgIG1faW5saW5lSXRlbUxpc3QuYXBwZW5kVmVjdG9yKFdURk1vdmUoaW5saW5lSXRlbUxpc3Qp
KTsKKyAgICBtX2NvbnRlbnRBdHRyaWJ1dGVzID0gY29udGVudEF0dHJpYnV0ZXM7Cit9CisKIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CmluZGV4IGMyNDc5NGQ2YjM0NC4uNTRmNDJjZGE1MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNjAsMTAgKzE2MCwxMCBAQCBz
dGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
Om1pbmltdW1NYXhpbXVtQ29udGVudAogICAgICAgICByZXR1cm4geyBjZWlsZWRMYXlvdXRVbml0
KCptaW5pbXVtQ29udGVudFNpemUpLCBjZWlsZWRMYXlvdXRVbml0KCptYXhpbXVtQ29udGVudFNp
emUpIH07CiAKICAgICByZWJ1aWxkSW5saW5lSXRlbUxpc3RJZk5lZWRlZChsaW5lRGFtYWdlKTsK
LSAgICBhdXRvJiBpbmxpbmVJdGVtTGlzdCA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVt
cygpLmNvbnRlbnQoKTsKKyAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGlubGluZUNvbnRlbnRDYWNo
ZS5pbmxpbmVJdGVtcygpOwogCi0gICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJ
dGVtTGlzdCkpIHsKLSAgICAgICAgYXV0byBpbnRyaW5zaWNXaWR0aEhhbmRsZXIgPSBJbnRyaW5z
aWNXaWR0aEhhbmRsZXIgeyAqdGhpcywgaW5saW5lSXRlbUxpc3QsIFRleHRPbmx5U2ltcGxlTGlu
ZUJ1aWxkZXI6OmlzRWxpZ2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQocm9v
dCgpLCBpbmxpbmVDb250ZW50Q2FjaGUpIH07CisgICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVu
dChpbmxpbmVJdGVtcy5jb250ZW50KCkpKSB7CisgICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhI
YW5kbGVyID0gSW50cmluc2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGluZUl0ZW1zLCBUZXh0
T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2ltcGxpZmllZFRleHRPbmx5SW5s
aW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lQ29udGVudENhY2hlKSB9OwogCiAgICAgICAgIGlmICgh
bWluaW11bUNvbnRlbnRTaXplKQogICAgICAgICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gaW50
cmluc2ljV2lkdGhIYW5kbGVyLm1pbmltdW1Db250ZW50U2l6ZSgpOwpAQCAtMTg4LDEwICsxODgs
MTAgQEAgTGF5b3V0VW5pdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bWluaW11bUNvbnRlbnRT
aXplKGNvbnN0IElubGluZURhbWFnZSogbGluZUQKICAgICAgICAgcmV0dXJuIGNlaWxlZExheW91
dFVuaXQoKmlubGluZUNvbnRlbnRDYWNoZS5taW5pbXVtQ29udGVudFNpemUoKSk7CiAKICAgICBy
ZWJ1aWxkSW5saW5lSXRlbUxpc3RJZk5lZWRlZChsaW5lRGFtYWdlKTsKLSAgICBhdXRvJiBpbmxp
bmVJdGVtTGlzdCA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVtcygpLmNvbnRlbnQoKTsK
KyAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVtcygp
OwogICAgIGF1dG8gbWluaW11bUNvbnRlbnRTaXplID0gSW5saW5lTGF5b3V0VW5pdCB7IH07Ci0g
ICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJdGVtTGlzdCkpCi0gICAgICAgIG1p
bmltdW1Db250ZW50U2l6ZSA9IEludHJpbnNpY1dpZHRoSGFuZGxlciB7ICp0aGlzLCBpbmxpbmVJ
dGVtTGlzdCwgVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aXNFbGlnaWJsZUZvclNpbXBsaWZp
ZWRUZXh0T25seUlubGluZUxheW91dChyb290KCksIGlubGluZUNvbnRlbnRDYWNoZSkgfS5taW5p
bXVtQ29udGVudFNpemUoKTsKKyAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250ZW50KGlubGluZUl0
ZW1zLmNvbnRlbnQoKSkpCisgICAgICAgIG1pbmltdW1Db250ZW50U2l6ZSA9IEludHJpbnNpY1dp
ZHRoSGFuZGxlciB7ICp0aGlzLCBpbmxpbmVJdGVtcywgVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRl
cjo6aXNFbGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChyb290KCksIGlu
bGluZUNvbnRlbnRDYWNoZSkgfS5taW5pbXVtQ29udGVudFNpemUoKTsKICAgICBpbmxpbmVDb250
ZW50Q2FjaGUuc2V0TWluaW11bUNvbnRlbnRTaXplKG1pbmltdW1Db250ZW50U2l6ZSk7CiAgICAg
cmV0dXJuIGNlaWxlZExheW91dFVuaXQobWluaW11bUNvbnRlbnRTaXplKTsKIH0KQEAgLTIwMywx
MCArMjAzLDEwIEBAIExheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Om1heGltdW1D
b250ZW50U2l6ZShjb25zdCBJbmxpbmVEYW1hZ2UqIGxpbmVECiAgICAgICAgIHJldHVybiBjZWls
ZWRMYXlvdXRVbml0KCppbmxpbmVDb250ZW50Q2FjaGUubWF4aW11bUNvbnRlbnRTaXplKCkpOwog
CiAgICAgcmVidWlsZElubGluZUl0ZW1MaXN0SWZOZWVkZWQobGluZURhbWFnZSk7Ci0gICAgYXV0
byYgaW5saW5lSXRlbUxpc3QgPSBpbmxpbmVDb250ZW50Q2FjaGUuaW5saW5lSXRlbXMoKS5jb250
ZW50KCk7CisgICAgYXV0byYgaW5saW5lSXRlbXMgPSBpbmxpbmVDb250ZW50Q2FjaGUuaW5saW5l
SXRlbXMoKTsKICAgICBhdXRvIG1heGltdW1Db250ZW50U2l6ZSA9IElubGluZUxheW91dFVuaXQg
eyB9OwotICAgIGlmICghaXNFbXB0eUlubGluZUNvbnRlbnQoaW5saW5lSXRlbUxpc3QpKSB7Ci0g
ICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhIYW5kbGVyID0gSW50cmluc2ljV2lkdGhIYW5kbGVy
IHsgKnRoaXMsIGlubGluZUl0ZW1MaXN0LCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0Vs
aWdpYmxlRm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lQ29u
dGVudENhY2hlKSB9OworICAgIGlmICghaXNFbXB0eUlubGluZUNvbnRlbnQoaW5saW5lSXRlbXMu
Y29udGVudCgpKSkgeworICAgICAgICBhdXRvIGludHJpbnNpY1dpZHRoSGFuZGxlciA9IEludHJp
bnNpY1dpZHRoSGFuZGxlciB7ICp0aGlzLCBpbmxpbmVJdGVtcywgVGV4dE9ubHlTaW1wbGVMaW5l
QnVpbGRlcjo6aXNFbGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChyb290
KCksIGlubGluZUNvbnRlbnRDYWNoZSkgfTsKIAogICAgICAgICBtYXhpbXVtQ29udGVudFNpemUg
PSBpbnRyaW5zaWNXaWR0aEhhbmRsZXIubWF4aW11bUNvbnRlbnRTaXplKCk7CiAgICAgICAgIGlm
IChpbnRyaW5zaWNXaWR0aEhhbmRsZXIubWF4aW11bUludHJpbnNpY1dpZHRoTGluZUNvbnRlbnQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCmluZGV4IDAwNmQz
YTBjZGMyZS4uMTQ2NjFkYzEzNDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1z
QnVpbGRlci5jcHAKQEAgLTk4LDE4ICs5OCwxNiBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6
YnVpbGQoSW5saW5lSXRlbVBvc2l0aW9uIHN0YXJ0UG9zaXRpb24pCiAgICAgY29tcHV0ZUlubGlu
ZVRleHRJdGVtV2lkdGhzKGlubGluZUl0ZW1MaXN0KTsKIAogICAgIGF1dG8gYWRqdXN0SW5saW5l
Q29udGVudENhY2hlV2l0aE5ld0lubGluZUl0ZW1zID0gWyZdIHsKKyAgICAgICAgYXV0byBjb250
ZW50QXR0cmlidXRlcyA9IElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OkNvbnRlbnRB
dHRyaWJ1dGVzIHsgbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nLCBtX2lzVGV4dEFu
ZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50LCBtX2lubGluZUJveENvdW50IH07CiAgICAgICAg
IGF1dG8mIGlubGluZUl0ZW1DYWNoZSA9IGlubGluZUNvbnRlbnRDYWNoZSgpLmlubGluZUl0ZW1z
KCk7CiAgICAgICAgIGlmICghc3RhcnRQb3NpdGlvbikKLSAgICAgICAgICAgIHJldHVybiBpbmxp
bmVJdGVtQ2FjaGUuc2V0KFdURk1vdmUoaW5saW5lSXRlbUxpc3QpKTsKKyAgICAgICAgICAgIHJl
dHVybiBpbmxpbmVJdGVtQ2FjaGUuc2V0KFdURk1vdmUoaW5saW5lSXRlbUxpc3QpLCBjb250ZW50
QXR0cmlidXRlcyk7CiAgICAgICAgIC8vIExldCdzIGZpcnN0IHJlbW92ZSB0aGUgZGlydHkgaW5s
aW5lIGl0ZW1zIGlmIHRoZXJlIGFyZSBhbnkuCi0gICAgICAgIGF1dG8mIGN1cnJlbnRJbmxpbmVJ
dGVtcyA9IGlubGluZUl0ZW1DYWNoZS5jb250ZW50KCk7Ci0gICAgICAgIGlmIChzdGFydFBvc2l0
aW9uLmluZGV4ID49IGN1cnJlbnRJbmxpbmVJdGVtcy5zaXplKCkpIHsKKyAgICAgICAgaWYgKHN0
YXJ0UG9zaXRpb24uaW5kZXggPj0gaW5saW5lSXRlbUNhY2hlLmNvbnRlbnQoKS5zaXplKCkpIHsK
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIGlu
bGluZUl0ZW1DYWNoZS5zZXQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCkpOworICAgICAgICAgICAg
cmV0dXJuIGlubGluZUl0ZW1DYWNoZS5zZXQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCksIGNvbnRl
bnRBdHRyaWJ1dGVzKTsKICAgICAgICAgfQotICAgICAgICAvLyBGSVhNRTogVXNlIHJlcGxhY2Ug
aW5zdGVhZC4KLSAgICAgICAgY3VycmVudElubGluZUl0ZW1zLnJlbW92ZShzdGFydFBvc2l0aW9u
LmluZGV4LCBjdXJyZW50SW5saW5lSXRlbXMuc2l6ZSgpIC0gc3RhcnRQb3NpdGlvbi5pbmRleCk7
Ci0gICAgICAgIGlubGluZUl0ZW1DYWNoZS5hcHBlbmQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCkp
OworICAgICAgICBpbmxpbmVJdGVtQ2FjaGUucmVwbGFjZShzdGFydFBvc2l0aW9uLmluZGV4LCBX
VEZNb3ZlKGlubGluZUl0ZW1MaXN0KSwgY29udGVudEF0dHJpYnV0ZXMpOwogICAgIH07CiAgICAg
YWRqdXN0SW5saW5lQ29udGVudENhY2hlV2l0aE5ld0lubGluZUl0ZW1zKCk7CiAKQEAgLTE1NSw3
ICsxNTMsNyBAQCBib29sIElubGluZUl0ZW1zQnVpbGRlcjo6dHJhdmVyc2VVbnRpbERhbWFnZWQo
TGF5b3V0UXVldWUmIGxheW91dFF1ZXVlLCBjb25zdCBCbwogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyA9IG1fY29udGVudFJlcXVp
cmVzVmlzdWFsUmVvcmRlcmluZyB8fCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcoc3VidHJlZVJv
b3QpOwotICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0g
bV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgJiYgIW1fY29udGVu
dFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyAmJiBpc1RleHRPckxpbmVCcmVhayhzdWJ0cmVlUm9v
dCk7CisgICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IG1faXNUZXh0
QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgJiYgaXNUZXh0T3JMaW5lQnJlYWsoc3VidHJl
ZVJvb3QpOwogCiAgICAgYXV0byBzaG91bGRTa2lwU3VidHJlZSA9IHN1YnRyZWVSb290LmVzdGFi
bGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKTsKICAgICBpZiAoIXNob3VsZFNraXBTdWJ0cmVlICYm
IGlzPEVsZW1lbnRCb3g+KHN1YnRyZWVSb290KSAmJiBkb3duY2FzdDxFbGVtZW50Qm94PihzdWJ0
cmVlUm9vdCkuaGFzQ2hpbGQoKSkgewpAQCAtMjU2LDcgKzI1NCw3IEBAIHZvaWQgSW5saW5lSXRl
bXNCdWlsZGVyOjpjb2xsZWN0SW5saW5lSXRlbXMoSW5saW5lSXRlbUxpc3QmIGlubGluZUl0ZW1M
aXN0LCBJbmxpCiAgICAgICAgIHdoaWxlICghbGF5b3V0UXVldWUuaXNFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBhdXRvIGxheW91dEJveCA9IGxheW91dFF1ZXVlLnRha2VMYXN0KCk7CiAgICAgICAg
ICAgICBpZiAobGF5b3V0Qm94LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICAg
ICAgICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVu
dCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlubGluZUl0ZW1MaXN0LmFwcGVuZCh7IGxheW91
dEJveCwgSW5saW5lSXRlbTo6VHlwZTo6T3BhcXVlIH0pOwogICAgICAgICAgICAgfSBlbHNlIGlm
IChsYXlvdXRCb3gtPmlzSW5saW5lVGV4dEJveCgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byYg
aW5saW5lVGV4dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCk7CkBAIC0y
NjcsNyArMjY1LDcgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVt
cyhJbmxpbmVJdGVtTGlzdCYgaW5saW5lSXRlbUxpc3QsIElubGkKICAgICAgICAgICAgICAgICBo
YW5kbGVJbmxpbmVCb3hFbmQobGF5b3V0Qm94LCBpbmxpbmVJdGVtTGlzdCk7CiAgICAgICAgICAg
ICBlbHNlIGlmIChsYXlvdXRCb3gtPmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpIHsKICAgICAgICAg
ICAgICAgICBpbmxpbmVJdGVtTGlzdC5hcHBlbmQoeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5
cGU6OkZsb2F0IH0pOwotICAgICAgICAgICAgICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExp
bmVCcmVha09ubHlDb250ZW50ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbV9pc1RleHRBbmRG
b3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKQEAgLTI3Nyw4ICsyNzUsNiBA
QCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6Y29sbGVjdElubGluZUl0ZW1zKElubGluZUl0ZW1M
aXN0JiBpbmxpbmVJdGVtTGlzdCwgSW5saQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQotICAgIGlubGluZUl0ZW1DYWNoZS5zZXRJc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFr
T25seUNvbnRlbnQobV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQp
OwotICAgIGlubGluZUl0ZW1DYWNoZS5zZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcobV9jb250
ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKTsKIH0KIAogc3RhdGljIHZvaWQgcmVwbGFjZU5v
blByZXNlcnZlZE5ld0xpbmVBbmRUYWJDaGFyYWN0ZXJzQW5kQXBwZW5kKGNvbnN0IElubGluZVRl
eHRCb3gmIGlubGluZVRleHRCb3gsIFN0cmluZ0J1aWxkZXImIHBhcmFncmFwaENvbnRlbnRCdWls
ZGVyKQpAQCAtNjgyLDcgKzY3OCw2IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVU
ZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBJCiAgICAgICAg
IHJldHVybiBpbmxpbmVJdGVtTGlzdC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZU5vbldo
aXRlc3BhY2VJdGVtKGlubGluZVRleHRCb3gsIHsgfSwgY29udGVudExlbmd0aCwgVUJJRElfREVG
QVVMVF9MVFIsIGZhbHNlLCB7IH0pKTsKIAogICAgIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVv
cmRlcmluZyA9IG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyB8fCByZXF1aXJlc1Zp
c3VhbFJlb3JkZXJpbmcoaW5saW5lVGV4dEJveCk7Ci0gICAgbV9pc05vbkJpZGlUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJl
YWtPbmx5Q29udGVudCAmJiAhbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nOwogICAg
IGF1dG8mIHN0eWxlID0gaW5saW5lVGV4dEJveC5zdHlsZSgpOwogICAgIGF1dG8gc2hvdWxkUHJl
c2VydmVTcGFjZXNBbmRUYWJzID0gVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFi
cyhpbmxpbmVUZXh0Qm94KTsKICAgICBhdXRvIHNob3VsZFByZXNlcnZlTmV3bGluZSA9IFRleHRV
dGlsOjpzaG91bGRQcmVzZXJ2ZU5ld2xpbmUoaW5saW5lVGV4dEJveCk7CkBAIC03NzcsMTUgKzc3
MiwxNCBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94U3RhcnQoY29u
c3QgQm94JiBpbmxpbmVCb3gsIElubGluZUl0ZW1MaQogewogICAgIGlubGluZUl0ZW1MaXN0LmFw
cGVuZCh7IGlubGluZUJveCwgSW5saW5lSXRlbTo6VHlwZTo6SW5saW5lQm94U3RhcnQgfSk7CiAg
ICAgbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nID0gbV9jb250ZW50UmVxdWlyZXNW
aXN1YWxSZW9yZGVyaW5nIHx8IHJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyhpbmxpbmVCb3gpOwot
ICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gZmFsc2U7
CisgICAgKyttX2lubGluZUJveENvdW50OwogfQogCiB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6
aGFuZGxlSW5saW5lQm94RW5kKGNvbnN0IEJveCYgaW5saW5lQm94LCBJbmxpbmVJdGVtTGlzdCYg
aW5saW5lSXRlbUxpc3QpCiB7CiAgICAgaW5saW5lSXRlbUxpc3QuYXBwZW5kKHsgaW5saW5lQm94
LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hFbmQgfSk7Ci0gICAgQVNTRVJUKCFtX2lzTm9u
QmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCk7Ci0gICAgbV9pc05vbkJpZGlU
ZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKICAgICAvLyBJbmxpbmUg
Ym94IGVuZCBpdGVtIGl0c2VsZiBjYW4gbm90IHRyaWdnZXIgYmlkaSBjb250ZW50LgorICAgIEFT
U0VSVChtX2lubGluZUJveENvdW50KTsKICAgICBBU1NFUlQoY29udGVudFJlcXVpcmVzVmlzdWFs
UmVvcmRlcmluZygpIHx8IGlubGluZUJveC5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSB8fCBpbmxpbmVCb3guc3R5bGUoKS5ydGxPcmRlcmluZygpID09IE9yZGVyOjpWaXN1YWwgfHwg
aW5saW5lQm94LnN0eWxlKCkudW5pY29kZUJpZGkoKSA9PSBVbmljb2RlQmlkaTo6Tm9ybWFsKTsK
IH0KIApAQCAtNzk1LDEyICs3ODksMTIgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRs
ZUlubGluZUxldmVsQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBJbmxpbmVJdGVtTGkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKGxheW91dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkp
IHsKLSAgICAgICAgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQg
PSBmYWxzZTsKKyAgICAgICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9
IGZhbHNlOwogICAgICAgICByZXR1cm4gaW5saW5lSXRlbUxpc3QuYXBwZW5kKHsgbGF5b3V0Qm94
LCBJbmxpbmVJdGVtOjpUeXBlOjpCb3ggfSk7CiAgICAgfQogCiAgICAgaWYgKGxheW91dEJveC5p
c0xpbmVCcmVha0JveCgpKSB7Ci0gICAgICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVC
cmVha09ubHlDb250ZW50ID0gbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNv
bnRlbnQgJiYgaXNUZXh0T3JMaW5lQnJlYWsobGF5b3V0Qm94KTsKKyAgICAgICAgbV9pc1RleHRB
bmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IG1faXNUZXh0QW5kRm9yY2VkTGluZUJyZWFr
T25seUNvbnRlbnQgJiYgaXNUZXh0T3JMaW5lQnJlYWsobGF5b3V0Qm94KTsKICAgICAgICAgcmV0
dXJuIGlubGluZUl0ZW1MaXN0LmFwcGVuZCh7IGxheW91dEJveCwgbGF5b3V0Qm94LmlzV29yZEJy
ZWFrT3Bwb3J0dW5pdHkoKSA/IElubGluZUl0ZW06OlR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5
IDogSW5saW5lSXRlbTo6VHlwZTo6SGFyZExpbmVCcmVhayB9KTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUl0ZW1zQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmgKaW5kZXggMzJjNDIyNjcxMDg3Li4wODVjOTgy
YmVlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCkBAIC02Myw3
ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgY29uc3QgRWxlbWVudEJveCYgbV9yb290OwogCiAgICAg
Ym9vbCBtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgeyB0cnVlIH07
CisgICAgYm9vbCBtX2lzVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50IHsgdHJ1ZSB9
OworICAgIHNpemVfdCBtX2lubGluZUJveENvdW50IHsgMCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmlu
c2ljV2lkdGhIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAKaW5kZXggMDM1OWZiYTEzNDc2
Li42M2RlZjU1M2FmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhI
YW5kbGVyLmNwcApAQCAtODAsOSArODAsOSBAQCBzdGF0aWMgYm9vbCBtYXlVc2VDb250ZW50V2lk
dGhCZXR3ZWVuTGluZUJyZWFrc0FzTWF4aW11bVNpemUoY29uc3QgRWxlbWVudEJveCYgcgogICAg
IHJldHVybiB0cnVlOwogfQogCi1JbnRyaW5zaWNXaWR0aEhhbmRsZXI6OkludHJpbnNpY1dpZHRo
SGFuZGxlcihJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQs
IGNvbnN0IElubGluZUl0ZW1MaXN0JiBpbmxpbmVJdGVtTGlzdCwgYm9vbCBtYXlVc2VTaW1wbGlm
aWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQpCitJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OkludHJpbnNp
Y1dpZHRoSGFuZGxlcihJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQsIGNvbnN0IElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXMmIGlubGluZUl0ZW1z
LCBib29sIG1heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCkKICAgICA6IG1faW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQoaW5saW5lRm9ybWF0dGluZ0NvbnRleHQpCi0gICAgLCBtX2lu
bGluZUl0ZW1MaXN0KGlubGluZUl0ZW1MaXN0KQorICAgICwgbV9pbmxpbmVJdGVtcyhpbmxpbmVJ
dGVtcykKICAgICAsIG1fbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KG1heVVz
ZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCkKIHsKIH0KQEAgLTk0LDEwICs5NCwxMCBA
QCBJbmxpbmVMYXlvdXRVbml0IEludHJpbnNpY1dpZHRoSGFuZGxlcjo6bWluaW11bUNvbnRlbnRT
aXplKCkKICAgICBpZiAoaXNDb250ZW50RWxpZ2libGVGb3JOb25MaW5lQnVpbGRlck1pbmltdW1X
aWR0aChyb290KCksIG1fbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KSkKICAg
ICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gc2ltcGxpZmllZE1pbmltdW1XaWR0aChyb290KCkp
OwogICAgIGVsc2UgaWYgKG1fbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KSB7
Ci0gICAgICAgIGF1dG8gc2ltcGxpZmllZExpbmVCdWlsZGVyID0gVGV4dE9ubHlTaW1wbGVMaW5l
QnVpbGRlciB7IGZvcm1hdHRpbmdDb250ZXh0KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9Owor
ICAgICAgICBhdXRvIHNpbXBsaWZpZWRMaW5lQnVpbGRlciA9IFRleHRPbmx5U2ltcGxlTGluZUJ1
aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7IH0sIGlubGluZUl0ZW1MaXN0KCkgfTsKICAg
ICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gY29tcHV0ZWRJbnRyaW5zaWNXaWR0aEZvckNvbnN0
cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNaW5pbXVtLCBzaW1wbGlmaWVkTGluZUJ1aWxkZXIs
IE1heUNhY2hlTGF5b3V0UmVzdWx0OjpObyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byBs
aW5lQnVpbGRlciA9IExpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBtX2lu
bGluZUl0ZW1MaXN0IH07CisgICAgICAgIGF1dG8gbGluZUJ1aWxkZXIgPSBMaW5lQnVpbGRlciB7
IGZvcm1hdHRpbmdDb250ZXh0KCksIHsgfSwgaW5saW5lSXRlbUxpc3QoKSB9OwogICAgICAgICBt
aW5pbXVtQ29udGVudFNpemUgPSBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJ
bnRyaW5zaWNXaWR0aE1vZGU6Ok1pbmltdW0sIGxpbmVCdWlsZGVyLCBNYXlDYWNoZUxheW91dFJl
c3VsdDo6Tm8pOwogICAgIH0KIApAQCAtMTA5LDIxICsxMDksMjEgQEAgSW5saW5lTGF5b3V0VW5p
dCBJbnRyaW5zaWNXaWR0aEhhbmRsZXI6Om1heGltdW1Db250ZW50U2l6ZSgpCiAgICAgYXV0byBt
YXlDYWNoZUxheW91dFJlc3VsdCA9IG1fbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5
b3V0ID8gTWF5Q2FjaGVMYXlvdXRSZXN1bHQ6OlllcyA6IE1heUNhY2hlTGF5b3V0UmVzdWx0OjpO
bzsKICAgICBhdXRvIG1heGltdW1Db250ZW50U2l6ZSA9IElubGluZUxheW91dFVuaXQgeyB9Owog
Ci0gICAgaWYgKGlzQ29udGVudEVsaWdpYmxlRm9yTm9uTGluZUJ1aWxkZXJNYXhpbXVtV2lkdGgo
cm9vdCgpLCBtX2lubGluZUl0ZW1MaXN0KSkKKyAgICBpZiAoaXNDb250ZW50RWxpZ2libGVGb3JO
b25MaW5lQnVpbGRlck1heGltdW1XaWR0aChyb290KCksIGlubGluZUl0ZW1MaXN0KCkpKQogICAg
ICAgICBtYXhpbXVtQ29udGVudFNpemUgPSBzaW1wbGlmaWVkTWF4aW11bVdpZHRoKG1heUNhY2hl
TGF5b3V0UmVzdWx0KTsKICAgICBlbHNlIGlmIChtX21heVVzZVNpbXBsaWZpZWRUZXh0T25seUlu
bGluZUxheW91dCkgewotICAgICAgICBpZiAobV9tYXhpbXVtQ29udGVudFdpZHRoQmV0d2Vlbkxp
bmVCcmVha3MgJiYgbWF5VXNlQ29udGVudFdpZHRoQmV0d2VlbkxpbmVCcmVha3NBc01heGltdW1T
aXplKHJvb3QoKSwgbV9pbmxpbmVJdGVtTGlzdCkpIHsKKyAgICAgICAgaWYgKG1fbWF4aW11bUNv
bnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzICYmIG1heVVzZUNvbnRlbnRXaWR0aEJldHdlZW5M
aW5lQnJlYWtzQXNNYXhpbXVtU2l6ZShyb290KCksIGlubGluZUl0ZW1MaXN0KCkpKSB7CiAgICAg
ICAgICAgICBtYXhpbXVtQ29udGVudFNpemUgPSAqbV9tYXhpbXVtQ29udGVudFdpZHRoQmV0d2Vl
bkxpbmVCcmVha3M7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICAgICAgYXV0byBzaW1wbGlmaWVk
TGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRl
eHQoKSwgeyB9LCBtX2lubGluZUl0ZW1MaXN0IH07CisgICAgICAgICAgICBhdXRvIHNpbXBsaWZp
ZWRMaW5lQnVpbGRlciA9IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29u
dGV4dCgpLCB7IH0sIGlubGluZUl0ZW1MaXN0KCkgfTsKICAgICAgICAgICAgIEFTU0VSVChzdGQ6
OmFicyhtYXhpbXVtQ29udGVudFNpemUgLSBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3Ry
YWludChJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGltdW0sIHNpbXBsaWZpZWRMaW5lQnVpbGRlciwg
TWF5Q2FjaGVMYXlvdXRSZXN1bHQ6Ok5vKSkgPCAxKTsKICNlbmRpZgogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBs
ZUxpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBtX2lubGluZUl0ZW1MaXN0
IH07CisgICAgICAgICAgICBhdXRvIHNpbXBsaWZpZWRMaW5lQnVpbGRlciA9IFRleHRPbmx5U2lt
cGxlTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7IH0sIGlubGluZUl0ZW1MaXN0
KCkgfTsKICAgICAgICAgICAgIG1heGltdW1Db250ZW50U2l6ZSA9IGNvbXB1dGVkSW50cmluc2lj
V2lkdGhGb3JDb25zdHJhaW50KEludHJpbnNpY1dpZHRoTW9kZTo6TWF4aW11bSwgc2ltcGxpZmll
ZExpbmVCdWlsZGVyLCBtYXlDYWNoZUxheW91dFJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9IGVs
c2UgewotICAgICAgICBhdXRvIGxpbmVCdWlsZGVyID0gTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5n
Q29udGV4dCgpLCB7IH0sIG1faW5saW5lSXRlbUxpc3QgfTsKKyAgICAgICAgYXV0byBsaW5lQnVp
bGRlciA9IExpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBpbmxpbmVJdGVt
TGlzdCgpIH07CiAgICAgICAgIG1heGltdW1Db250ZW50U2l6ZSA9IGNvbXB1dGVkSW50cmluc2lj
V2lkdGhGb3JDb25zdHJhaW50KEludHJpbnNpY1dpZHRoTW9kZTo6TWF4aW11bSwgbGluZUJ1aWxk
ZXIsIG1heUNhY2hlTGF5b3V0UmVzdWx0KTsKICAgICB9CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBJ
bmxpbmVMYXlvdXRVbml0IEludHJpbnNpY1dpZHRoSGFuZGxlcjo6Y29tcHV0ZWRJbnRyaW5zaWNX
aWR0aEZvckNvbnN0cmFpbnQoSW50cgogICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0g
SG9yaXpvbnRhbENvbnN0cmFpbnRzIHsgfTsKICAgICBpZiAoaW50cmluc2ljV2lkdGhNb2RlID09
IEludHJpbnNpY1dpZHRoTW9kZTo6TWF4aW11bSkKICAgICAgICAgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLmxvZ2ljYWxXaWR0aCA9IG1heElubGluZUxheW91dFVuaXQoKTsKLSAgICBhdXRvIGxheW91
dFJhbmdlID0gSW5saW5lSXRlbVJhbmdlIHsgMCAsIG1faW5saW5lSXRlbUxpc3Quc2l6ZSgpIH07
CisgICAgYXV0byBsYXlvdXRSYW5nZSA9IElubGluZUl0ZW1SYW5nZSB7IDAgLCBpbmxpbmVJdGVt
TGlzdCgpLnNpemUoKSB9OwogICAgIGlmIChsYXlvdXRSYW5nZS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKQEAgLTIzMSw3ICsyMzEsNyBAQCBJbmxpbmVMYXlvdXRVbml0IEludHJp
bnNpY1dpZHRoSGFuZGxlcjo6c2ltcGxpZmllZE1pbmltdW1XaWR0aChjb25zdCBFbGVtZW50Qm94
JgogSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OnNpbXBsaWZpZWRNYXhp
bXVtV2lkdGgoTWF5Q2FjaGVMYXlvdXRSZXN1bHQgbWF5Q2FjaGVMYXlvdXRSZXN1bHQpCiB7CiAg
ICAgQVNTRVJUKHJvb3QoKS5maXJzdENoaWxkKCkgJiYgcm9vdCgpLmZpcnN0Q2hpbGQoKSA9PSBy
b290KCkubGFzdENoaWxkKCkpOwotICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8
SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbUxpc3RbMF0pOworICAgIGF1dG8mIGlubGluZVRl
eHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW1MaXN0KClbMF0pOwog
ICAgIGF1dG8mIHN0eWxlID0gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5bGUoKTsKIAogICAg
IGF1dG8gY29udGVudExvZ2ljYWxXaWR0aCA9IFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRl
bSwgc3R5bGUuZm9udENhc2NhZGUoKSwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmlu
c2ljV2lkdGhIYW5kbGVyLmgKaW5kZXggMmI4OTkxMDE5ZTM2Li41NDkyNDBiNTEwNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
dHJpbnNpY1dpZHRoSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5oCkBAIC0yNSw2ICsyNSw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSW5saW5lQ29udGVudENhY2hlLmgiCiAj
aW5jbHVkZSAiTGluZUxheW91dFJlc3VsdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
MiwxMiArMzMsMTEgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIEFic3RyYWN0TGluZUJ1
aWxkZXI7CiBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDsKLWNsYXNzIElubGluZUNvbnRl
bnRDYWNoZTsKIHN0cnVjdCBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzOwogCiBjbGFzcyBJbnRy
aW5zaWNXaWR0aEhhbmRsZXIgewogcHVibGljOgotICAgIEludHJpbnNpY1dpZHRoSGFuZGxlcihJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IElubGluZUl0ZW1MaXN0JiwgYm9vbCBtYXlV
c2VTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQpOworICAgIEludHJpbnNpY1dpZHRoSGFu
ZGxlcihJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IElubGluZUNvbnRlbnRDYWNoZTo6
SW5saW5lSXRlbXMmLCBib29sIG1heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCk7
CiAKICAgICBJbmxpbmVMYXlvdXRVbml0IG1pbmltdW1Db250ZW50U2l6ZSgpOwogICAgIElubGlu
ZUxheW91dFVuaXQgbWF4aW11bUNvbnRlbnRTaXplKCk7CkBAIC01NCwxMCArNTQsMTEgQEAgcHJp
dmF0ZToKICAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRl
eHQoKSBjb25zdDsKICAgICBjb25zdCBJbmxpbmVDb250ZW50Q2FjaGUmIGZvcm1hdHRpbmdTdGF0
ZSgpIGNvbnN0OwogICAgIGNvbnN0IEVsZW1lbnRCb3gmIHJvb3QoKSBjb25zdDsKKyAgICBjb25z
dCBJbmxpbmVJdGVtTGlzdCYgaW5saW5lSXRlbUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2lubGlu
ZUl0ZW1zLmNvbnRlbnQoKTsgfQogCiBwcml2YXRlOgogICAgIElubGluZUZvcm1hdHRpbmdDb250
ZXh0JiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0OwotICAgIGNvbnN0IElubGluZUl0ZW1MaXN0
JiBtX2lubGluZUl0ZW1MaXN0OworICAgIGNvbnN0IElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5l
SXRlbXMmIG1faW5saW5lSXRlbXM7CiAgICAgY29uc3QgYm9vbCBtX21heVVzZVNpbXBsaWZpZWRU
ZXh0T25seUlubGluZUxheW91dCB7IGZhbHNlIH07CiAKICAgICBzdGQ6Om9wdGlvbmFsPElubGlu
ZUxheW91dFVuaXQ+IG1fbWF4aW11bUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzIHsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAK
aW5kZXggY2IwZmZjMzNhMjIwLi42ZTE2NmFkMzc4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwCkBAIC00NDYsOSArNDQ2LDEwIEBA
IGJvb2wgVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aXNFbGlnaWJsZUZvclNpbXBsaWZpZWRU
ZXh0T25seUlubGluZUxheW91dChjb25zCiB7CiAgICAgaWYgKHBsYWNlZEZsb2F0cyAmJiAhcGxh
Y2VkRmxvYXRzLT5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoaW5s
aW5lQ29udGVudENhY2hlLmlubGluZUl0ZW1zKCkuaXNFbXB0eSgpKQorICAgIGF1dG8mIGlubGlu
ZUl0ZW1zID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0ZW1zKCk7CisgICAgaWYgKGlubGlu
ZUl0ZW1zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghaW5saW5l
Q29udGVudENhY2hlLmlubGluZUl0ZW1zKCkuaXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVh
a09ubHlDb250ZW50KCkpCisgICAgaWYgKCFpbmxpbmVJdGVtcy5oYXNUZXh0QW5kTGluZUJyZWFr
T25seUNvbnRlbnQoKSB8fCBpbmxpbmVJdGVtcy5oYXNJbmxpbmVCb3hlcygpIHx8IGlubGluZUl0
ZW1zLnJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBhdXRvJiByb290U3R5bGUgPSByb290Qm94LnN0eWxlKCk7Cg==
</data>
<flag name="commit-queue"
          id="495993"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469573</attachid>
            <date>2024-01-27 10:07:13 -0800</date>
            <delta_ts>2024-01-27 10:27:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268227-20240127100712.patch</filename>
            <type>text/plain</type>
            <size>26325</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkMmExNDQzZTdiYTU4MWY4MDBlMzNiNTIxY2ViODUyNjlmODViZGNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjcgSmFuIDIwMjQgMDk6MDU6MTQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBB
ZGQgaW5saW5lIGJveCBjb3VudCB0byBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MjI3CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGJlaW5nIGFibGUg
dG8gcnVuIGEgcmFuZ2Ugb2YgY29udGVudCB0aHJvdWdoIHRoZSBzaW1wbGUgbGluZSBidWlsZGVy
ICh3aGVyZSB0aGUgcmFuZ2UgaGFzIHRleHQgb25seSBjb250ZW50IGUuZy4gPGRpdj48c3Bhbj50
aGlzIGlzIHRleHQgY29udGVudDwvc3Bhbj48L2Rpdj4KCjEuIEtlZXAgdHJhY2sgb2YgdGhlIG51
bWJlciBvZiBpbmxpbmUgYm94ZXMgKG1faW5saW5lQm94Q291bnQpCjIuIG1faXNUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQgb25seSB0cmFja3MgX2NvbnRlbnRfIHR5cGUgb2YgaW5s
aW5lIGxldmVsIGJveGVzIG5vdyAoZXhjbHVkaW5nIGlubGluZSBib3hlcywgc2VlICMxKQozLiBh
bmQgaXQgZG9lcyBub3QgdHJhY2sgaWYgY29udGVudCBuZWVkcyBiaWRpIHJlb3JkZXJpbmcgYW55
bW9yZSAod2UgYWxyZWFkeSB0cmFjayB0aGF0IGluZm9ybWF0aW9uIGluIG1fY29udGVudFJlcXVp
cmVzVmlzdWFsUmVvcmRlcmluZykKNC4gQWRkIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRl
bXM6OkNvbnRlbnRBdHRyaWJ1dGVzIHRvIGhvbGQgYWxsIHRoZXNlIGJpdHMuCjUuIFJlbW92ZSBk
ZWRpY2F0ZWQgc2V0IGZ1bmN0aW9ucyBhbmQgcGFzcyB0aGVzZSBiaXQgdGhyb3VnaCBJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQvcmVwbGFjZS4KCiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENhY2hlLmg6CihX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OnJlcXVpcmVz
VmlzdWFsUmVvcmRlcmluZyBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRD
YWNoZTo6SW5saW5lSXRlbXM6Omhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6Omhhc0lu
bGluZUJveGVzIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJ
bmxpbmVJdGVtczo6aW5saW5lQm94Q291bnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpyZXBsYWNlKToKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6YXBwZW5kKTogRGVsZXRlZC4KKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Y2xlYXIpOiBEZWxl
dGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpz
ZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXRJc05vbkJpZGlUZXh0QW5kRm9yY2Vk
TGluZUJyZWFrT25seUNvbnRlbnQpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjppc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFr
T25seUNvbnRlbnQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Om1pbmltdW1NYXhpbXVtQ29udGVu
dFNpemUpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bWluaW11
bUNvbnRlbnRTaXplKToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
Om1heGltdW1Db250ZW50U2l6ZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lSXRlbXNCdWlsZGVyOjpidWlsZCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1z
QnVpbGRlcjo6dHJhdmVyc2VVbnRpbERhbWFnZWQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJ
dGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVtcyk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUl0ZW1zQnVpbGRlcjo6aGFuZGxlVGV4dENvbnRlbnQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUJveFN0YXJ0KToKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hFbmQpOgooV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUxldmVsQm94KToKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRy
aW5zaWNXaWR0aEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbnRyaW5zaWNXaWR0aEhh
bmRsZXI6OkludHJpbnNpY1dpZHRoSGFuZGxlcik6CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNp
Y1dpZHRoSGFuZGxlcjo6bWluaW11bUNvbnRlbnRTaXplKToKKFdlYkNvcmU6OkxheW91dDo6SW50
cmluc2ljV2lkdGhIYW5kbGVyOjptYXhpbXVtQ29udGVudFNpemUpOgooV2ViQ29yZTo6TGF5b3V0
OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJh
aW50KToKKFdlYkNvcmU6OkxheW91dDo6SW50cmluc2ljV2lkdGhIYW5kbGVyOjpzaW1wbGlmaWVk
TWF4aW11bVdpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaDoKKFdlYkNvcmU6OkxheW91dDo6SW50cmlu
c2ljV2lkdGhIYW5kbGVyOjppbmxpbmVJdGVtTGlzdCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRl
ci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmlzRWxp
Z2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQpOgotLS0KIC4uLi9pbmxpbmUv
SW5saW5lQ29udGVudENhY2hlLmggICAgICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKystLS0t
LS0KIC4uLi9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICAgICAgICB8IDE4ICsr
KystLS0tLQogLi4uL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwICAgICAgICAgICAgIHwg
MzQgKysrKysrKystLS0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmggICAg
ICAgICAgICAgICB8ICAzICstCiAuLi4vaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAg
ICAgICAgICAgfCAyMiArKysrKy0tLS0tLQogLi4uL2lubGluZS9JbnRyaW5zaWNXaWR0aEhhbmRs
ZXIuaCAgICAgICAgICAgIHwgIDcgKystLQogLi4uL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVC
dWlsZGVyLmNwcCAgICAgIHwgIDUgKystCiA3IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMo
KyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENhY2hl
LmgKaW5kZXggZGRmZWE3Yzc0NWExLi43OWE5YmMxYWQ4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUNvbnRlbnRDYWNoZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiRm9ybWF0
dGluZ0NvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiSW5saW5lRGlzcGxheUNvbnRlbnQuaCIKICNp
bmNsdWRlICJJbmxpbmVJdGVtLmgiCi0jaW5jbHVkZSAiSW50cmluc2ljV2lkdGhIYW5kbGVyLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CiAKQEAgLTQzLDI0ICs0MiwyOCBAQCBwdWJsaWM6CiAgICAgICAgIElubGluZUl0ZW1M
aXN0JiBjb250ZW50KCkgeyByZXR1cm4gbV9pbmxpbmVJdGVtTGlzdDsgfQogICAgICAgICBjb25z
dCBJbmxpbmVJdGVtTGlzdCYgY29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lSXRlbUxp
c3Q7IH0KIAotICAgICAgICB2b2lkIHNldChJbmxpbmVJdGVtTGlzdCYmIGlubGluZUl0ZW1MaXN0
KSB7IG1faW5saW5lSXRlbUxpc3QgPSBXVEZNb3ZlKGlubGluZUl0ZW1MaXN0KTsgfQotICAgICAg
ICB2b2lkIGFwcGVuZChJbmxpbmVJdGVtTGlzdCYmIGlubGluZUl0ZW1MaXN0KSB7IG1faW5saW5l
SXRlbUxpc3QuYXBwZW5kVmVjdG9yKFdURk1vdmUoaW5saW5lSXRlbUxpc3QpKTsgfQotICAgICAg
ICB2b2lkIGNsZWFyKCkgeyBtX2lubGluZUl0ZW1MaXN0LmNsZWFyKCk7IH0KKyAgICAgICAgc3Ry
dWN0IENvbnRlbnRBdHRyaWJ1dGVzIHsKKyAgICAgICAgICAgIGJvb2wgcmVxdWlyZXNWaXN1YWxS
ZW9yZGVyaW5nIHsgZmFsc2UgfTsKKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCA8c3Bhbj50aGlz
IGlzIHRleHQ8L3NwYW4+IHJldHVybnMgdHJ1ZSBhcyBpbmxpbmUgYm94ZXMgYXJlIG5vdCBjb25z
aWRlcmVkICdjb250ZW50JyBoZXJlLgorICAgICAgICAgICAgYm9vbCBoYXNUZXh0QW5kTGluZUJy
ZWFrT25seUNvbnRlbnQgeyBmYWxzZSB9OworICAgICAgICAgICAgc2l6ZV90IGlubGluZUJveENv
dW50IHsgMCB9OworICAgICAgICB9OworICAgICAgICB2b2lkIHNldChJbmxpbmVJdGVtTGlzdCYm
LCBDb250ZW50QXR0cmlidXRlcyk7CisgICAgICAgIHZvaWQgcmVwbGFjZShzaXplX3QgaW5zZXJ0
aW9uUG9zaXRpb24sIElubGluZUl0ZW1MaXN0JiYsIENvbnRlbnRBdHRyaWJ1dGVzKTsKICAgICAg
ICAgdm9pZCBzaHJpbmtUb0ZpdCgpIHsgbV9pbmxpbmVJdGVtTGlzdC5zaHJpbmtUb0ZpdCgpOyB9
CiAKICAgICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gY29udGVudCgpLmlzRW1w
dHkoKTsgfQogICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnRlbnQoKS5z
aXplKCk7IH0KIAotICAgICAgICB2b2lkIHNldFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyhib29s
IGNvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcpIHsgbV9jb250ZW50UmVxdWlyZXNWaXN1
YWxSZW9yZGVyaW5nID0gY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZzsgfQotICAgICAg
ICBib29sIHJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVu
dFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZzsgfQotCi0gICAgICAgIHZvaWQgc2V0SXNOb25CaWRp
VGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50KGJvb2wgaXNOb25CaWRpVGV4dEFuZEZv
cmNlZExpbmVCcmVha09ubHlDb250ZW50KSB7IG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVC
cmVha09ubHlDb250ZW50ID0gaXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250
ZW50OyB9Ci0gICAgICAgIGJvb2wgaXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlD
b250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFr
T25seUNvbnRlbnQ7IH0KKyAgICAgICAgYm9vbCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRlbnRBdHRyaWJ1dGVzLnJlcXVpcmVzVmlzdWFsUmVvcmRlcmlu
ZzsgfQorICAgICAgICBib29sIGhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY29udGVudEF0dHJpYnV0ZXMuaGFzVGV4dEFuZExpbmVCcmVha09ubHlDb250
ZW50OyB9CisgICAgICAgIGJvb2wgaGFzSW5saW5lQm94ZXMoKSBjb25zdCB7IHJldHVybiAhIWlu
bGluZUJveENvdW50KCk7IH0KKyAgICAgICAgc2l6ZV90IGlubGluZUJveENvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZW50QXR0cmlidXRlcy5pbmxpbmVCb3hDb3VudDsgfQogCiAgICAgcHJp
dmF0ZToKKyAgICAgICAgQ29udGVudEF0dHJpYnV0ZXMgbV9jb250ZW50QXR0cmlidXRlczsKICAg
ICAgICAgSW5saW5lSXRlbUxpc3QgbV9pbmxpbmVJdGVtTGlzdDsKLSAgICAgICAgYm9vbCBtX2Nv
bnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgeyBmYWxzZSB9OwotICAgICAgICBib29sIG1f
aXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50IHsgZmFsc2UgfTsKKwog
ICAgIH07CiAgICAgY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKCkgY29uc3QgeyByZXR1
cm4gbV9pbmxpbmVJdGVtczsgfQogICAgIElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcygpIHsgcmV0
dXJuIG1faW5saW5lSXRlbXM7IH0KQEAgLTg5LDYgKzkyLDE5IEBAIGlubGluZSB2b2lkIElubGlu
ZUNvbnRlbnRDYWNoZTo6cmVzZXRNaW5pbXVtTWF4aW11bUNvbnRlbnRTaXplcygpCiAgICAgbV9t
YXhpbXVtSW50cmluc2ljV2lkdGhMaW5lQ29udGVudCA9IHsgfTsKIH0KIAoraW5saW5lIHZvaWQg
SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6c2V0KElubGluZUl0ZW1MaXN0JiYgaW5s
aW5lSXRlbUxpc3QsIENvbnRlbnRBdHRyaWJ1dGVzIGNvbnRlbnRBdHRyaWJ1dGVzKQoreworICAg
IG1faW5saW5lSXRlbUxpc3QgPSBXVEZNb3ZlKGlubGluZUl0ZW1MaXN0KTsKKyAgICBtX2NvbnRl
bnRBdHRyaWJ1dGVzID0gY29udGVudEF0dHJpYnV0ZXM7Cit9CisKK2lubGluZSB2b2lkIElubGlu
ZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OnJlcGxhY2Uoc2l6ZV90IGluc2VydGlvblBvc2l0
aW9uLCBJbmxpbmVJdGVtTGlzdCYmIGlubGluZUl0ZW1MaXN0LCBDb250ZW50QXR0cmlidXRlcyBj
b250ZW50QXR0cmlidXRlcykKK3sKKyAgICBtX2lubGluZUl0ZW1MaXN0LnJlbW92ZShpbnNlcnRp
b25Qb3NpdGlvbiwgbV9pbmxpbmVJdGVtTGlzdC5zaXplKCkgLSBpbnNlcnRpb25Qb3NpdGlvbik7
CisgICAgbV9pbmxpbmVJdGVtTGlzdC5hcHBlbmRWZWN0b3IoV1RGTW92ZShpbmxpbmVJdGVtTGlz
dCkpOworICAgIG1fY29udGVudEF0dHJpYnV0ZXMgPSBjb250ZW50QXR0cmlidXRlczsKK30KKwog
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKaW5kZXggYzI0Nzk0ZDZiMzQ0Li41NGY0MmNkYTUzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTE2MCwxMCArMTYwLDEwIEBA
IHN0ZDo6cGFpcjxMYXlvdXRVbml0LCBMYXlvdXRVbml0PiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDo6bWluaW11bU1heGltdW1Db250ZW50CiAgICAgICAgIHJldHVybiB7IGNlaWxlZExheW91dFVu
aXQoKm1pbmltdW1Db250ZW50U2l6ZSksIGNlaWxlZExheW91dFVuaXQoKm1heGltdW1Db250ZW50
U2l6ZSkgfTsKIAogICAgIHJlYnVpbGRJbmxpbmVJdGVtTGlzdElmTmVlZGVkKGxpbmVEYW1hZ2Up
OwotICAgIGF1dG8mIGlubGluZUl0ZW1MaXN0ID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0
ZW1zKCkuY29udGVudCgpOworICAgIGF1dG8mIGlubGluZUl0ZW1zID0gaW5saW5lQ29udGVudENh
Y2hlLmlubGluZUl0ZW1zKCk7CiAKLSAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250ZW50KGlubGlu
ZUl0ZW1MaXN0KSkgewotICAgICAgICBhdXRvIGludHJpbnNpY1dpZHRoSGFuZGxlciA9IEludHJp
bnNpY1dpZHRoSGFuZGxlciB7ICp0aGlzLCBpbmxpbmVJdGVtTGlzdCwgVGV4dE9ubHlTaW1wbGVM
aW5lQnVpbGRlcjo6aXNFbGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChy
b290KCksIGlubGluZUNvbnRlbnRDYWNoZSkgfTsKKyAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250
ZW50KGlubGluZUl0ZW1zLmNvbnRlbnQoKSkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNXaWR0
aEhhbmRsZXIgPSBJbnRyaW5zaWNXaWR0aEhhbmRsZXIgeyAqdGhpcywgaW5saW5lSXRlbXMsIFRl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmlzRWxpZ2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJ
bmxpbmVMYXlvdXQocm9vdCgpLCBpbmxpbmVDb250ZW50Q2FjaGUpIH07CiAKICAgICAgICAgaWYg
KCFtaW5pbXVtQ29udGVudFNpemUpCiAgICAgICAgICAgICBtaW5pbXVtQ29udGVudFNpemUgPSBp
bnRyaW5zaWNXaWR0aEhhbmRsZXIubWluaW11bUNvbnRlbnRTaXplKCk7CkBAIC0xODgsMTAgKzE4
OCwxMCBAQCBMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjptaW5pbXVtQ29udGVu
dFNpemUoY29uc3QgSW5saW5lRGFtYWdlKiBsaW5lRAogICAgICAgICByZXR1cm4gY2VpbGVkTGF5
b3V0VW5pdCgqaW5saW5lQ29udGVudENhY2hlLm1pbmltdW1Db250ZW50U2l6ZSgpKTsKIAogICAg
IHJlYnVpbGRJbmxpbmVJdGVtTGlzdElmTmVlZGVkKGxpbmVEYW1hZ2UpOwotICAgIGF1dG8mIGlu
bGluZUl0ZW1MaXN0ID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0ZW1zKCkuY29udGVudCgp
OworICAgIGF1dG8mIGlubGluZUl0ZW1zID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0ZW1z
KCk7CiAgICAgYXV0byBtaW5pbXVtQ29udGVudFNpemUgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsK
LSAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250ZW50KGlubGluZUl0ZW1MaXN0KSkKLSAgICAgICAg
bWluaW11bUNvbnRlbnRTaXplID0gSW50cmluc2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGlu
ZUl0ZW1MaXN0LCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2ltcGxp
ZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lQ29udGVudENhY2hlKSB9Lm1p
bmltdW1Db250ZW50U2l6ZSgpOworICAgIGlmICghaXNFbXB0eUlubGluZUNvbnRlbnQoaW5saW5l
SXRlbXMuY29udGVudCgpKSkKKyAgICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gSW50cmluc2lj
V2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGluZUl0ZW1zLCBUZXh0T25seVNpbXBsZUxpbmVCdWls
ZGVyOjppc0VsaWdpYmxlRm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwg
aW5saW5lQ29udGVudENhY2hlKSB9Lm1pbmltdW1Db250ZW50U2l6ZSgpOwogICAgIGlubGluZUNv
bnRlbnRDYWNoZS5zZXRNaW5pbXVtQ29udGVudFNpemUobWluaW11bUNvbnRlbnRTaXplKTsKICAg
ICByZXR1cm4gY2VpbGVkTGF5b3V0VW5pdChtaW5pbXVtQ29udGVudFNpemUpOwogfQpAQCAtMjAz
LDEwICsyMDMsMTAgQEAgTGF5b3V0VW5pdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bWF4aW11
bUNvbnRlbnRTaXplKGNvbnN0IElubGluZURhbWFnZSogbGluZUQKICAgICAgICAgcmV0dXJuIGNl
aWxlZExheW91dFVuaXQoKmlubGluZUNvbnRlbnRDYWNoZS5tYXhpbXVtQ29udGVudFNpemUoKSk7
CiAKICAgICByZWJ1aWxkSW5saW5lSXRlbUxpc3RJZk5lZWRlZChsaW5lRGFtYWdlKTsKLSAgICBh
dXRvJiBpbmxpbmVJdGVtTGlzdCA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVtcygpLmNv
bnRlbnQoKTsKKyAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxp
bmVJdGVtcygpOwogICAgIGF1dG8gbWF4aW11bUNvbnRlbnRTaXplID0gSW5saW5lTGF5b3V0VW5p
dCB7IH07Ci0gICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJdGVtTGlzdCkpIHsK
LSAgICAgICAgYXV0byBpbnRyaW5zaWNXaWR0aEhhbmRsZXIgPSBJbnRyaW5zaWNXaWR0aEhhbmRs
ZXIgeyAqdGhpcywgaW5saW5lSXRlbUxpc3QsIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6Omlz
RWxpZ2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQocm9vdCgpLCBpbmxpbmVD
b250ZW50Q2FjaGUpIH07CisgICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJdGVt
cy5jb250ZW50KCkpKSB7CisgICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhIYW5kbGVyID0gSW50
cmluc2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGluZUl0ZW1zLCBUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJv
b3QoKSwgaW5saW5lQ29udGVudENhY2hlKSB9OwogCiAgICAgICAgIG1heGltdW1Db250ZW50U2l6
ZSA9IGludHJpbnNpY1dpZHRoSGFuZGxlci5tYXhpbXVtQ29udGVudFNpemUoKTsKICAgICAgICAg
aWYgKGludHJpbnNpY1dpZHRoSGFuZGxlci5tYXhpbXVtSW50cmluc2ljV2lkdGhMaW5lQ29udGVu
dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKaW5kZXggMDA2
ZDNhMGNkYzJlLi41NTc1NGFkNjJhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRl
bXNCdWlsZGVyLmNwcApAQCAtOTgsMTggKzk4LDE2IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVy
OjpidWlsZChJbmxpbmVJdGVtUG9zaXRpb24gc3RhcnRQb3NpdGlvbikKICAgICBjb21wdXRlSW5s
aW5lVGV4dEl0ZW1XaWR0aHMoaW5saW5lSXRlbUxpc3QpOwogCiAgICAgYXV0byBhZGp1c3RJbmxp
bmVDb250ZW50Q2FjaGVXaXRoTmV3SW5saW5lSXRlbXMgPSBbJl0geworICAgICAgICBhdXRvIGNv
bnRlbnRBdHRyaWJ1dGVzID0gSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Q29udGVu
dEF0dHJpYnV0ZXMgeyBtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcsIG1faXNUZXh0
QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQsIG1faW5saW5lQm94Q291bnQgfTsKICAgICAg
ICAgYXV0byYgaW5saW5lSXRlbUNhY2hlID0gaW5saW5lQ29udGVudENhY2hlKCkuaW5saW5lSXRl
bXMoKTsKICAgICAgICAgaWYgKCFzdGFydFBvc2l0aW9uKQotICAgICAgICAgICAgcmV0dXJuIGlu
bGluZUl0ZW1DYWNoZS5zZXQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCkpOworICAgICAgICAgICAg
cmV0dXJuIGlubGluZUl0ZW1DYWNoZS5zZXQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCksIGNvbnRl
bnRBdHRyaWJ1dGVzKTsKICAgICAgICAgLy8gTGV0J3MgZmlyc3QgcmVtb3ZlIHRoZSBkaXJ0eSBp
bmxpbmUgaXRlbXMgaWYgdGhlcmUgYXJlIGFueS4KLSAgICAgICAgYXV0byYgY3VycmVudElubGlu
ZUl0ZW1zID0gaW5saW5lSXRlbUNhY2hlLmNvbnRlbnQoKTsKLSAgICAgICAgaWYgKHN0YXJ0UG9z
aXRpb24uaW5kZXggPj0gY3VycmVudElubGluZUl0ZW1zLnNpemUoKSkgeworICAgICAgICBpZiAo
c3RhcnRQb3NpdGlvbi5pbmRleCA+PSBpbmxpbmVJdGVtQ2FjaGUuY29udGVudCgpLnNpemUoKSkg
ewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4g
aW5saW5lSXRlbUNhY2hlLnNldChXVEZNb3ZlKGlubGluZUl0ZW1MaXN0KSk7CisgICAgICAgICAg
ICByZXR1cm4gaW5saW5lSXRlbUNhY2hlLnNldChXVEZNb3ZlKGlubGluZUl0ZW1MaXN0KSwgY29u
dGVudEF0dHJpYnV0ZXMpOwogICAgICAgICB9Ci0gICAgICAgIC8vIEZJWE1FOiBVc2UgcmVwbGFj
ZSBpbnN0ZWFkLgotICAgICAgICBjdXJyZW50SW5saW5lSXRlbXMucmVtb3ZlKHN0YXJ0UG9zaXRp
b24uaW5kZXgsIGN1cnJlbnRJbmxpbmVJdGVtcy5zaXplKCkgLSBzdGFydFBvc2l0aW9uLmluZGV4
KTsKLSAgICAgICAgaW5saW5lSXRlbUNhY2hlLmFwcGVuZChXVEZNb3ZlKGlubGluZUl0ZW1MaXN0
KSk7CisgICAgICAgIGlubGluZUl0ZW1DYWNoZS5yZXBsYWNlKHN0YXJ0UG9zaXRpb24uaW5kZXgs
IFdURk1vdmUoaW5saW5lSXRlbUxpc3QpLCBjb250ZW50QXR0cmlidXRlcyk7CiAgICAgfTsKICAg
ICBhZGp1c3RJbmxpbmVDb250ZW50Q2FjaGVXaXRoTmV3SW5saW5lSXRlbXMoKTsKIApAQCAtMTU1
LDcgKzE1MywxMSBAQCBib29sIElubGluZUl0ZW1zQnVpbGRlcjo6dHJhdmVyc2VVbnRpbERhbWFn
ZWQoTGF5b3V0UXVldWUmIGxheW91dFF1ZXVlLCBjb25zdCBCbwogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyA9IG1fY29udGVudFJl
cXVpcmVzVmlzdWFsUmVvcmRlcmluZyB8fCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcoc3VidHJl
ZVJvb3QpOwotICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50
ID0gbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgJiYgIW1fY29u
dGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyAmJiBpc1RleHRPckxpbmVCcmVhayhzdWJ0cmVl
Um9vdCk7CisgICAgaWYgKCFpc1RleHRPckxpbmVCcmVhayhzdWJ0cmVlUm9vdCkpIHsKKyAgICAg
ICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IGZhbHNlOworICAgICAg
ICBpZiAoc3VidHJlZVJvb3QuaXNJbmxpbmVCb3goKSkKKyAgICAgICAgICAgICsrbV9pbmxpbmVC
b3hDb3VudDsKKyAgICB9CiAKICAgICBhdXRvIHNob3VsZFNraXBTdWJ0cmVlID0gc3VidHJlZVJv
b3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpOwogICAgIGlmICghc2hvdWxkU2tpcFN1
YnRyZWUgJiYgaXM8RWxlbWVudEJveD4oc3VidHJlZVJvb3QpICYmIGRvd25jYXN0PEVsZW1lbnRC
b3g+KHN1YnRyZWVSb290KS5oYXNDaGlsZCgpKSB7CkBAIC0yNTYsNyArMjU4LDcgQEAgdm9pZCBJ
bmxpbmVJdGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVtcyhJbmxpbmVJdGVtTGlzdCYgaW5s
aW5lSXRlbUxpc3QsIElubGkKICAgICAgICAgd2hpbGUgKCFsYXlvdXRRdWV1ZS5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIGF1dG8gbGF5b3V0Qm94ID0gbGF5b3V0UXVldWUudGFrZUxhc3QoKTsK
ICAgICAgICAgICAgIGlmIChsYXlvdXRCb3gtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7Ci0g
ICAgICAgICAgICAgICAgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRl
bnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBtX2lzVGV4dEFuZEZvcmNlZExpbmVCcmVha09u
bHlDb250ZW50ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgaW5saW5lSXRlbUxpc3QuYXBwZW5k
KHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpPcGFxdWUgfSk7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKGxheW91dEJveC0+aXNJbmxpbmVUZXh0Qm94KCkpIHsKICAgICAgICAgICAgICAg
ICBhdXRvJiBpbmxpbmVUZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94
KTsKQEAgLTI2Nyw3ICsyNjksNyBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6Y29sbGVjdElu
bGluZUl0ZW1zKElubGluZUl0ZW1MaXN0JiBpbmxpbmVJdGVtTGlzdCwgSW5saQogICAgICAgICAg
ICAgICAgIGhhbmRsZUlubGluZUJveEVuZChsYXlvdXRCb3gsIGlubGluZUl0ZW1MaXN0KTsKICAg
ICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC0+aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkgewog
ICAgICAgICAgICAgICAgIGlubGluZUl0ZW1MaXN0LmFwcGVuZCh7IGxheW91dEJveCwgSW5saW5l
SXRlbTo6VHlwZTo6RmxvYXQgfSk7Ci0gICAgICAgICAgICAgICAgbV9pc05vbkJpZGlUZXh0QW5k
Rm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBtX2lz
VGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gZmFsc2U7CiAgICAgICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIApAQCAtMjc3LDgg
KzI3OSw2IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpjb2xsZWN0SW5saW5lSXRlbXMoSW5s
aW5lSXRlbUxpc3QmIGlubGluZUl0ZW1MaXN0LCBJbmxpCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9Ci0gICAgaW5saW5lSXRlbUNhY2hlLnNldElzTm9uQmlkaVRleHRBbmRGb3JjZWRM
aW5lQnJlYWtPbmx5Q29udGVudChtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5
Q29udGVudCk7Ci0gICAgaW5saW5lSXRlbUNhY2hlLnNldFJlcXVpcmVzVmlzdWFsUmVvcmRlcmlu
ZyhtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcpOwogfQogCiBzdGF0aWMgdm9pZCBy
ZXBsYWNlTm9uUHJlc2VydmVkTmV3TGluZUFuZFRhYkNoYXJhY3RlcnNBbmRBcHBlbmQoY29uc3Qg
SW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgU3RyaW5nQnVpbGRlciYgcGFyYWdyYXBoQ29u
dGVudEJ1aWxkZXIpCkBAIC02ODIsNyArNjgyLDYgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6
OmhhbmRsZVRleHRDb250ZW50KGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIEkK
ICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1MaXN0LmFwcGVuZChJbmxpbmVUZXh0SXRlbTo6Y3Jl
YXRlTm9uV2hpdGVzcGFjZUl0ZW0oaW5saW5lVGV4dEJveCwgeyB9LCBjb250ZW50TGVuZ3RoLCBV
QklESV9ERUZBVUxUX0xUUiwgZmFsc2UsIHsgfSkpOwogCiAgICAgbV9jb250ZW50UmVxdWlyZXNW
aXN1YWxSZW9yZGVyaW5nID0gbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nIHx8IHJl
cXVpcmVzVmlzdWFsUmVvcmRlcmluZyhpbmxpbmVUZXh0Qm94KTsKLSAgICBtX2lzTm9uQmlkaVRl
eHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IG1faXNOb25CaWRpVGV4dEFuZEZvcmNl
ZExpbmVCcmVha09ubHlDb250ZW50ICYmICFtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJp
bmc7CiAgICAgYXV0byYgc3R5bGUgPSBpbmxpbmVUZXh0Qm94LnN0eWxlKCk7CiAgICAgYXV0byBz
aG91bGRQcmVzZXJ2ZVNwYWNlc0FuZFRhYnMgPSBUZXh0VXRpbDo6c2hvdWxkUHJlc2VydmVTcGFj
ZXNBbmRUYWJzKGlubGluZVRleHRCb3gpOwogICAgIGF1dG8gc2hvdWxkUHJlc2VydmVOZXdsaW5l
ID0gVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlTmV3bGluZShpbmxpbmVUZXh0Qm94KTsKQEAgLTc3
NywxNSArNzc2LDE0IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hT
dGFydChjb25zdCBCb3gmIGlubGluZUJveCwgSW5saW5lSXRlbUxpCiB7CiAgICAgaW5saW5lSXRl
bUxpc3QuYXBwZW5kKHsgaW5saW5lQm94LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hTdGFy
dCB9KTsKICAgICBtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgPSBtX2NvbnRlbnRS
ZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgfHwgcmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKGlubGlu
ZUJveCk7Ci0gICAgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQg
PSBmYWxzZTsKKyAgICArK21faW5saW5lQm94Q291bnQ7CiB9CiAKIHZvaWQgSW5saW5lSXRlbXNC
dWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hFbmQoY29uc3QgQm94JiBpbmxpbmVCb3gsIElubGluZUl0
ZW1MaXN0JiBpbmxpbmVJdGVtTGlzdCkKIHsKICAgICBpbmxpbmVJdGVtTGlzdC5hcHBlbmQoeyBp
bmxpbmVCb3gsIElubGluZUl0ZW06OlR5cGU6OklubGluZUJveEVuZCB9KTsKLSAgICBBU1NFUlQo
IW1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50KTsKLSAgICBtX2lz
Tm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IGZhbHNlOwogICAgIC8v
IElubGluZSBib3ggZW5kIGl0ZW0gaXRzZWxmIGNhbiBub3QgdHJpZ2dlciBiaWRpIGNvbnRlbnQu
CisgICAgQVNTRVJUKG1faW5saW5lQm94Q291bnQpOwogICAgIEFTU0VSVChjb250ZW50UmVxdWly
ZXNWaXN1YWxSZW9yZGVyaW5nKCkgfHwgaW5saW5lQm94LnN0eWxlKCkuaXNMZWZ0VG9SaWdodERp
cmVjdGlvbigpIHx8IGlubGluZUJveC5zdHlsZSgpLnJ0bE9yZGVyaW5nKCkgPT0gT3JkZXI6OlZp
c3VhbCB8fCBpbmxpbmVCb3guc3R5bGUoKS51bmljb2RlQmlkaSgpID09IFVuaWNvZGVCaWRpOjpO
b3JtYWwpOwogfQogCkBAIC03OTUsMTIgKzc5MywxMiBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRl
cjo6aGFuZGxlSW5saW5lTGV2ZWxCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIElubGluZUl0ZW1M
aQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2
ZWxCb3goKSkgewotICAgICAgICBtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5
Q29udGVudCA9IGZhbHNlOworICAgICAgICBtX2lzVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlD
b250ZW50ID0gZmFsc2U7CiAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtTGlzdC5hcHBlbmQoeyBs
YXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkJveCB9KTsKICAgICB9CiAKICAgICBpZiAobGF5
b3V0Qm94LmlzTGluZUJyZWFrQm94KCkpIHsKLSAgICAgICAgbV9pc05vbkJpZGlUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJl
YWtPbmx5Q29udGVudCAmJiBpc1RleHRPckxpbmVCcmVhayhsYXlvdXRCb3gpOworICAgICAgICBt
X2lzVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gbV9pc1RleHRBbmRGb3JjZWRM
aW5lQnJlYWtPbmx5Q29udGVudCAmJiBpc1RleHRPckxpbmVCcmVhayhsYXlvdXRCb3gpOwogICAg
ICAgICByZXR1cm4gaW5saW5lSXRlbUxpc3QuYXBwZW5kKHsgbGF5b3V0Qm94LCBsYXlvdXRCb3gu
aXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpID8gSW5saW5lSXRlbTo6VHlwZTo6V29yZEJyZWFrT3Bw
b3J0dW5pdHkgOiBJbmxpbmVJdGVtOjpUeXBlOjpIYXJkTGluZUJyZWFrIH0pOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbXNCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuaAppbmRleCAzMmM0MjI2NzEwODcu
LjA4NWM5ODJiZWU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmgK
QEAgLTYzLDcgKzYzLDggQEAgcHJpdmF0ZToKICAgICBjb25zdCBFbGVtZW50Qm94JiBtX3Jvb3Q7
CiAKICAgICBib29sIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCB7
IHRydWUgfTsKKyAgICBib29sIG1faXNUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQg
eyB0cnVlIH07CisgICAgc2l6ZV90IG1faW5saW5lQm94Q291bnQgeyAwIH07CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmNwcAppbmRleCAwMzU5
ZmJhMTM0NzYuLjYzZGVmNTUzYWZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRyaW5z
aWNXaWR0aEhhbmRsZXIuY3BwCkBAIC04MCw5ICs4MCw5IEBAIHN0YXRpYyBib29sIG1heVVzZUNv
bnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzQXNNYXhpbXVtU2l6ZShjb25zdCBFbGVtZW50Qm94
JiByCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUludHJpbnNpY1dpZHRoSGFuZGxlcjo6SW50cmlu
c2ljV2lkdGhIYW5kbGVyKElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0aW5n
Q29udGV4dCwgY29uc3QgSW5saW5lSXRlbUxpc3QmIGlubGluZUl0ZW1MaXN0LCBib29sIG1heVVz
ZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCkKK0ludHJpbnNpY1dpZHRoSGFuZGxlcjo6
SW50cmluc2ljV2lkdGhIYW5kbGVyKElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dCwgY29uc3QgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtcyYgaW5s
aW5lSXRlbXMsIGJvb2wgbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KQogICAg
IDogbV9pbmxpbmVGb3JtYXR0aW5nQ29udGV4dChpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCkKLSAg
ICAsIG1faW5saW5lSXRlbUxpc3QoaW5saW5lSXRlbUxpc3QpCisgICAgLCBtX2lubGluZUl0ZW1z
KGlubGluZUl0ZW1zKQogICAgICwgbV9tYXlVc2VTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlv
dXQobWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KQogewogfQpAQCAtOTQsMTAg
Kzk0LDEwIEBAIElubGluZUxheW91dFVuaXQgSW50cmluc2ljV2lkdGhIYW5kbGVyOjptaW5pbXVt
Q29udGVudFNpemUoKQogICAgIGlmIChpc0NvbnRlbnRFbGlnaWJsZUZvck5vbkxpbmVCdWlsZGVy
TWluaW11bVdpZHRoKHJvb3QoKSwgbV9tYXlVc2VTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlv
dXQpKQogICAgICAgICBtaW5pbXVtQ29udGVudFNpemUgPSBzaW1wbGlmaWVkTWluaW11bVdpZHRo
KHJvb3QoKSk7CiAgICAgZWxzZSBpZiAobV9tYXlVc2VTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVM
YXlvdXQpIHsKLSAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxkZXIgPSBUZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBtX2lubGluZUl0ZW1M
aXN0IH07CisgICAgICAgIGF1dG8gc2ltcGxpZmllZExpbmVCdWlsZGVyID0gVGV4dE9ubHlTaW1w
bGVMaW5lQnVpbGRlciB7IGZvcm1hdHRpbmdDb250ZXh0KCksIHsgfSwgaW5saW5lSXRlbUxpc3Qo
KSB9OwogICAgICAgICBtaW5pbXVtQ29udGVudFNpemUgPSBjb21wdXRlZEludHJpbnNpY1dpZHRo
Rm9yQ29uc3RyYWludChJbnRyaW5zaWNXaWR0aE1vZGU6Ok1pbmltdW0sIHNpbXBsaWZpZWRMaW5l
QnVpbGRlciwgTWF5Q2FjaGVMYXlvdXRSZXN1bHQ6Ok5vKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBhdXRvIGxpbmVCdWlsZGVyID0gTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7
IH0sIG1faW5saW5lSXRlbUxpc3QgfTsKKyAgICAgICAgYXV0byBsaW5lQnVpbGRlciA9IExpbmVC
dWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBpbmxpbmVJdGVtTGlzdCgpIH07CiAg
ICAgICAgIG1pbmltdW1Db250ZW50U2l6ZSA9IGNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25z
dHJhaW50KEludHJpbnNpY1dpZHRoTW9kZTo6TWluaW11bSwgbGluZUJ1aWxkZXIsIE1heUNhY2hl
TGF5b3V0UmVzdWx0OjpObyk7CiAgICAgfQogCkBAIC0xMDksMjEgKzEwOSwyMSBAQCBJbmxpbmVM
YXlvdXRVbml0IEludHJpbnNpY1dpZHRoSGFuZGxlcjo6bWF4aW11bUNvbnRlbnRTaXplKCkKICAg
ICBhdXRvIG1heUNhY2hlTGF5b3V0UmVzdWx0ID0gbV9tYXlVc2VTaW1wbGlmaWVkVGV4dE9ubHlJ
bmxpbmVMYXlvdXQgPyBNYXlDYWNoZUxheW91dFJlc3VsdDo6WWVzIDogTWF5Q2FjaGVMYXlvdXRS
ZXN1bHQ6Ok5vOwogICAgIGF1dG8gbWF4aW11bUNvbnRlbnRTaXplID0gSW5saW5lTGF5b3V0VW5p
dCB7IH07CiAKLSAgICBpZiAoaXNDb250ZW50RWxpZ2libGVGb3JOb25MaW5lQnVpbGRlck1heGlt
dW1XaWR0aChyb290KCksIG1faW5saW5lSXRlbUxpc3QpKQorICAgIGlmIChpc0NvbnRlbnRFbGln
aWJsZUZvck5vbkxpbmVCdWlsZGVyTWF4aW11bVdpZHRoKHJvb3QoKSwgaW5saW5lSXRlbUxpc3Qo
KSkpCiAgICAgICAgIG1heGltdW1Db250ZW50U2l6ZSA9IHNpbXBsaWZpZWRNYXhpbXVtV2lkdGgo
bWF5Q2FjaGVMYXlvdXRSZXN1bHQpOwogICAgIGVsc2UgaWYgKG1fbWF5VXNlU2ltcGxpZmllZFRl
eHRPbmx5SW5saW5lTGF5b3V0KSB7Ci0gICAgICAgIGlmIChtX21heGltdW1Db250ZW50V2lkdGhC
ZXR3ZWVuTGluZUJyZWFrcyAmJiBtYXlVc2VDb250ZW50V2lkdGhCZXR3ZWVuTGluZUJyZWFrc0Fz
TWF4aW11bVNpemUocm9vdCgpLCBtX2lubGluZUl0ZW1MaXN0KSkgeworICAgICAgICBpZiAobV9t
YXhpbXVtQ29udGVudFdpZHRoQmV0d2VlbkxpbmVCcmVha3MgJiYgbWF5VXNlQ29udGVudFdpZHRo
QmV0d2VlbkxpbmVCcmVha3NBc01heGltdW1TaXplKHJvb3QoKSwgaW5saW5lSXRlbUxpc3QoKSkp
IHsKICAgICAgICAgICAgIG1heGltdW1Db250ZW50U2l6ZSA9ICptX21heGltdW1Db250ZW50V2lk
dGhCZXR3ZWVuTGluZUJyZWFrczsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAgICBhdXRvIHNp
bXBsaWZpZWRMaW5lQnVpbGRlciA9IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIgeyBmb3JtYXR0
aW5nQ29udGV4dCgpLCB7IH0sIG1faW5saW5lSXRlbUxpc3QgfTsKKyAgICAgICAgICAgIGF1dG8g
c2ltcGxpZmllZExpbmVCdWlsZGVyID0gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlciB7IGZvcm1h
dHRpbmdDb250ZXh0KCksIHsgfSwgaW5saW5lSXRlbUxpc3QoKSB9OwogICAgICAgICAgICAgQVNT
RVJUKHN0ZDo6YWJzKG1heGltdW1Db250ZW50U2l6ZSAtIGNvbXB1dGVkSW50cmluc2ljV2lkdGhG
b3JDb25zdHJhaW50KEludHJpbnNpY1dpZHRoTW9kZTo6TWF4aW11bSwgc2ltcGxpZmllZExpbmVC
dWlsZGVyLCBNYXlDYWNoZUxheW91dFJlc3VsdDo6Tm8pKSA8IDEpOwogI2VuZGlmCiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHNpbXBsaWZpZWRMaW5lQnVpbGRlciA9IFRleHRP
bmx5U2ltcGxlTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7IH0sIG1faW5saW5l
SXRlbUxpc3QgfTsKKyAgICAgICAgICAgIGF1dG8gc2ltcGxpZmllZExpbmVCdWlsZGVyID0gVGV4
dE9ubHlTaW1wbGVMaW5lQnVpbGRlciB7IGZvcm1hdHRpbmdDb250ZXh0KCksIHsgfSwgaW5saW5l
SXRlbUxpc3QoKSB9OwogICAgICAgICAgICAgbWF4aW11bUNvbnRlbnRTaXplID0gY29tcHV0ZWRJ
bnRyaW5zaWNXaWR0aEZvckNvbnN0cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVtLCBz
aW1wbGlmaWVkTGluZUJ1aWxkZXIsIG1heUNhY2hlTGF5b3V0UmVzdWx0KTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gbGluZUJ1aWxkZXIgPSBMaW5lQnVpbGRlciB7IGZv
cm1hdHRpbmdDb250ZXh0KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9OworICAgICAgICBhdXRv
IGxpbmVCdWlsZGVyID0gTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7IH0sIGlu
bGluZUl0ZW1MaXN0KCkgfTsKICAgICAgICAgbWF4aW11bUNvbnRlbnRTaXplID0gY29tcHV0ZWRJ
bnRyaW5zaWNXaWR0aEZvckNvbnN0cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVtLCBs
aW5lQnVpbGRlciwgbWF5Q2FjaGVMYXlvdXRSZXN1bHQpOwogICAgIH0KIApAQCAtMTM1LDcgKzEz
NSw3IEBAIElubGluZUxheW91dFVuaXQgSW50cmluc2ljV2lkdGhIYW5kbGVyOjpjb21wdXRlZElu
dHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJbnRyCiAgICAgYXV0byBob3Jpem9udGFsQ29uc3Ry
YWludHMgPSBIb3Jpem9udGFsQ29uc3RyYWludHMgeyB9OwogICAgIGlmIChpbnRyaW5zaWNXaWR0
aE1vZGUgPT0gSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVtKQogICAgICAgICBob3Jpem9udGFs
Q29uc3RyYWludHMubG9naWNhbFdpZHRoID0gbWF4SW5saW5lTGF5b3V0VW5pdCgpOwotICAgIGF1
dG8gbGF5b3V0UmFuZ2UgPSBJbmxpbmVJdGVtUmFuZ2UgeyAwICwgbV9pbmxpbmVJdGVtTGlzdC5z
aXplKCkgfTsKKyAgICBhdXRvIGxheW91dFJhbmdlID0gSW5saW5lSXRlbVJhbmdlIHsgMCAsIGlu
bGluZUl0ZW1MaXN0KCkuc2l6ZSgpIH07CiAgICAgaWYgKGxheW91dFJhbmdlLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtMjMxLDcgKzIzMSw3IEBAIElubGluZUxheW91dFVu
aXQgSW50cmluc2ljV2lkdGhIYW5kbGVyOjpzaW1wbGlmaWVkTWluaW11bVdpZHRoKGNvbnN0IEVs
ZW1lbnRCb3gmCiBJbmxpbmVMYXlvdXRVbml0IEludHJpbnNpY1dpZHRoSGFuZGxlcjo6c2ltcGxp
ZmllZE1heGltdW1XaWR0aChNYXlDYWNoZUxheW91dFJlc3VsdCBtYXlDYWNoZUxheW91dFJlc3Vs
dCkKIHsKICAgICBBU1NFUlQocm9vdCgpLmZpcnN0Q2hpbGQoKSAmJiByb290KCkuZmlyc3RDaGls
ZCgpID09IHJvb3QoKS5sYXN0Q2hpbGQoKSk7Ci0gICAgYXV0byYgaW5saW5lVGV4dEl0ZW0gPSBk
b3duY2FzdDxJbmxpbmVUZXh0SXRlbT4obV9pbmxpbmVJdGVtTGlzdFswXSk7CisgICAgYXV0byYg
aW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbUxpc3Qo
KVswXSk7CiAgICAgYXV0byYgc3R5bGUgPSBpbmxpbmVUZXh0SXRlbS5maXJzdExpbmVTdHlsZSgp
OwogCiAgICAgYXV0byBjb250ZW50TG9naWNhbFdpZHRoID0gVGV4dFV0aWw6OndpZHRoKGlubGlu
ZVRleHRJdGVtLCBzdHlsZS5mb250Q2FzY2FkZSgpLCB7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaAppbmRleCAyYjg5OTEwMTllMzYuLjU0OTI0MGI1MTA1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJJbmxpbmVDb250ZW50Q2Fj
aGUuaCIKICNpbmNsdWRlICJMaW5lTGF5b3V0UmVzdWx0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTMyLDEyICszMywxMSBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgQWJzdHJh
Y3RMaW5lQnVpbGRlcjsKIGNsYXNzIElubGluZUZvcm1hdHRpbmdDb250ZXh0OwotY2xhc3MgSW5s
aW5lQ29udGVudENhY2hlOwogc3RydWN0IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7CiAKIGNs
YXNzIEludHJpbnNpY1dpZHRoSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgSW50cmluc2ljV2lkdGhI
YW5kbGVyKElubGluZUZvcm1hdHRpbmdDb250ZXh0JiwgY29uc3QgSW5saW5lSXRlbUxpc3QmLCBi
b29sIG1heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCk7CisgICAgSW50cmluc2lj
V2lkdGhIYW5kbGVyKElubGluZUZvcm1hdHRpbmdDb250ZXh0JiwgY29uc3QgSW5saW5lQ29udGVu
dENhY2hlOjpJbmxpbmVJdGVtcyYsIGJvb2wgbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5l
TGF5b3V0KTsKIAogICAgIElubGluZUxheW91dFVuaXQgbWluaW11bUNvbnRlbnRTaXplKCk7CiAg
ICAgSW5saW5lTGF5b3V0VW5pdCBtYXhpbXVtQ29udGVudFNpemUoKTsKQEAgLTU0LDEwICs1NCwx
MSBAQCBwcml2YXRlOgogICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0
aW5nQ29udGV4dCgpIGNvbnN0OwogICAgIGNvbnN0IElubGluZUNvbnRlbnRDYWNoZSYgZm9ybWF0
dGluZ1N0YXRlKCkgY29uc3Q7CiAgICAgY29uc3QgRWxlbWVudEJveCYgcm9vdCgpIGNvbnN0Owor
ICAgIGNvbnN0IElubGluZUl0ZW1MaXN0JiBpbmxpbmVJdGVtTGlzdCgpIGNvbnN0IHsgcmV0dXJu
IG1faW5saW5lSXRlbXMuY29udGVudCgpOyB9CiAKIHByaXZhdGU6CiAgICAgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQmIG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgY29uc3QgSW5saW5l
SXRlbUxpc3QmIG1faW5saW5lSXRlbUxpc3Q7CisgICAgY29uc3QgSW5saW5lQ29udGVudENhY2hl
OjpJbmxpbmVJdGVtcyYgbV9pbmxpbmVJdGVtczsKICAgICBjb25zdCBib29sIG1fbWF5VXNlU2lt
cGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0IHsgZmFsc2UgfTsKIAogICAgIHN0ZDo6b3B0aW9u
YWw8SW5saW5lTGF5b3V0VW5pdD4gbV9tYXhpbXVtQ29udGVudFdpZHRoQmV0d2VlbkxpbmVCcmVh
a3MgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWls
ZGVyLmNwcAppbmRleCBjYjBmZmMzM2EyMjAuLjZlMTY2YWQzNzhlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1w
bGVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAKQEAgLTQ0Niw5ICs0
NDYsMTAgQEAgYm9vbCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2lt
cGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KGNvbnMKIHsKICAgICBpZiAocGxhY2VkRmxvYXRz
ICYmICFwbGFjZWRGbG9hdHMtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmIChpbmxpbmVDb250ZW50Q2FjaGUuaW5saW5lSXRlbXMoKS5pc0VtcHR5KCkpCisgICAgYXV0
byYgaW5saW5lSXRlbXMgPSBpbmxpbmVDb250ZW50Q2FjaGUuaW5saW5lSXRlbXMoKTsKKyAgICBp
ZiAoaW5saW5lSXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFpbmxpbmVDb250ZW50Q2FjaGUuaW5saW5lSXRlbXMoKS5pc05vbkJpZGlUZXh0QW5kRm9yY2Vk
TGluZUJyZWFrT25seUNvbnRlbnQoKSkKKyAgICBpZiAoIWlubGluZUl0ZW1zLmhhc1RleHRBbmRM
aW5lQnJlYWtPbmx5Q29udGVudCgpIHx8IGlubGluZUl0ZW1zLmhhc0lubGluZUJveGVzKCkgfHwg
aW5saW5lSXRlbXMucmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGF1dG8mIHJvb3RTdHlsZSA9IHJvb3RCb3guc3R5bGUoKTsK
</data>
<flag name="commit-queue"
          id="495994"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469574</attachid>
            <date>2024-01-27 10:25:52 -0800</date>
            <delta_ts>2024-01-28 11:15:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268227-20240127102551.patch</filename>
            <type>text/plain</type>
            <size>28706</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwYjAxMjNkODg2NzMyOWFlMTVkOTUyNTdkNTNlOTVjMzgzNTFmNGYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjcgSmFuIDIwMjQgMTA6MjQ6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBB
ZGQgaW5saW5lIGJveCBjb3VudCB0byBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MjI3CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGJlaW5nIGFibGUg
dG8gcnVuIGEgcmFuZ2Ugb2YgY29udGVudCB0aHJvdWdoIHRoZSBzaW1wbGUgbGluZSBidWlsZGVy
ICh3aGVyZSB0aGUgcmFuZ2UgaGFzIHRleHQgb25seSBjb250ZW50IGUuZy4gPGRpdj48c3Bhbj50
aGlzIGlzIHRleHQgY29udGVudDwvc3Bhbj48L2Rpdj4KCjEuIEtlZXAgdHJhY2sgb2YgdGhlIG51
bWJlciBvZiBpbmxpbmUgYm94ZXMgKG1faW5saW5lQm94Q291bnQpCjIuIG1faXNUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQgb25seSB0cmFja3MgX2NvbnRlbnRfIHR5cGUgb2YgaW5s
aW5lIGxldmVsIGJveGVzIG5vdyAoZXhjbHVkaW5nIGlubGluZSBib3hlcywgc2VlICMxKQozLiBh
bmQgaXQgZG9lcyBub3QgdHJhY2sgaWYgY29udGVudCBuZWVkcyBiaWRpIHJlb3JkZXJpbmcgYW55
bW9yZSAod2UgYWxyZWFkeSB0cmFjayB0aGF0IGluZm9ybWF0aW9uIGluIG1fY29udGVudFJlcXVp
cmVzVmlzdWFsUmVvcmRlcmluZykKNC4gQWRkIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRl
bXM6OkNvbnRlbnRBdHRyaWJ1dGVzIHRvIGhvbGQgYWxsIHRoZXNlIGJpdHMuCjUuIFJlbW92ZSBk
ZWRpY2F0ZWQgc2V0IGZ1bmN0aW9ucyBhbmQgcGFzcyB0aGVzZSBiaXQgdGhyb3VnaCBJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQvcmVwbGFjZS4KCiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENhY2hlLmg6CihX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OnJlcXVpcmVz
VmlzdWFsUmVvcmRlcmluZyBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRD
YWNoZTo6SW5saW5lSXRlbXM6Omhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6Omhhc0lu
bGluZUJveGVzIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJ
bmxpbmVJdGVtczo6aW5saW5lQm94Q291bnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpyZXBsYWNlKToKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6YXBwZW5kKTogRGVsZXRlZC4KKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Y2xlYXIpOiBEZWxl
dGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpz
ZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXRJc05vbkJpZGlUZXh0QW5kRm9yY2Vk
TGluZUJyZWFrT25seUNvbnRlbnQpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjppc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFr
T25seUNvbnRlbnQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCk6CihXZWJDb3JlOjpM
YXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjptaW5pbXVtTWF4aW11bUNvbnRlbnRTaXpl
KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Om1pbmltdW1Db250
ZW50U2l6ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjptYXhp
bXVtQ29udGVudFNpemUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUl0ZW1zQnVpbGRlcjo6YnVpbGQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxk
ZXI6OnRyYXZlcnNlVW50aWxEYW1hZ2VkKToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNC
dWlsZGVyOjpjb2xsZWN0SW5saW5lSXRlbXMpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVt
c0J1aWxkZXI6OmhhbmRsZVRleHRDb250ZW50KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRl
bXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hTdGFydCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94RW5kKToKKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVMZXZlbEJveCk6CiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmg6Ciog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2lj
V2lkdGhIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW50cmluc2ljV2lkdGhIYW5kbGVy
OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXIpOgooV2ViQ29yZTo6TGF5b3V0OjpJbnRyaW5zaWNXaWR0
aEhhbmRsZXI6Om1pbmltdW1Db250ZW50U2l6ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNp
Y1dpZHRoSGFuZGxlcjo6bWF4aW11bUNvbnRlbnRTaXplKToKKFdlYkNvcmU6OkxheW91dDo6SW50
cmluc2ljV2lkdGhIYW5kbGVyOjpjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNpY1dpZHRoSGFuZGxlcjo6c2ltcGxpZmllZE1heGlt
dW1XaWR0aCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNpY1dp
ZHRoSGFuZGxlcjo6aW5saW5lSXRlbUxpc3QgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3Bw
OgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxl
Rm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmg6
Ci0tLQogLi4uL2lubGluZS9JbmxpbmVDb250ZW50Q2FjaGUuaCAgICAgICAgICAgICAgIHwgMzgg
KysrKysrKysrKysrKy0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAgICAgICAgIHwgMjAgKysrKystLS0tLQogLi4uL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
Y3BwICAgICAgICAgICAgIHwgMzQgKysrKysrKystLS0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5l
SXRlbXNCdWlsZGVyLmggICAgICAgICAgICAgICB8ICAzICstCiAuLi4vaW5saW5lL0ludHJpbnNp
Y1dpZHRoSGFuZGxlci5jcHAgICAgICAgICAgfCAyNCArKysrKystLS0tLS0KIC4uLi9pbmxpbmUv
SW50cmluc2ljV2lkdGhIYW5kbGVyLmggICAgICAgICAgICB8ICA4ICsrLS0KIC4uLi9pbmxpbmUv
VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAgICAgICB8ICA2ICstLQogLi4uL2lubGluZS9U
ZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmggICAgICAgIHwgIDQgKy0KIDggZmlsZXMgY2hhbmdl
ZCwgNzYgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENh
Y2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50Q2FjaGUuaAppbmRleCBkZGZlYTdjNzQ1YTEuLjc5YTliYzFhZDg0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lQ29udGVudENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENhY2hlLmgKQEAgLTI4LDcgKzI4LDYgQEAK
ICNpbmNsdWRlICJGb3JtYXR0aW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJJbmxpbmVEaXNw
bGF5Q29udGVudC5oIgogI2luY2x1ZGUgIklubGluZUl0ZW0uaCIKLSNpbmNsdWRlICJJbnRyaW5z
aWNXaWR0aEhhbmRsZXIuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNDMsMjQgKzQyLDI4IEBAIHB1YmxpYzoKICAg
ICAgICAgSW5saW5lSXRlbUxpc3QmIGNvbnRlbnQoKSB7IHJldHVybiBtX2lubGluZUl0ZW1MaXN0
OyB9CiAgICAgICAgIGNvbnN0IElubGluZUl0ZW1MaXN0JiBjb250ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9pbmxpbmVJdGVtTGlzdDsgfQogCi0gICAgICAgIHZvaWQgc2V0KElubGluZUl0ZW1MaXN0
JiYgaW5saW5lSXRlbUxpc3QpIHsgbV9pbmxpbmVJdGVtTGlzdCA9IFdURk1vdmUoaW5saW5lSXRl
bUxpc3QpOyB9Ci0gICAgICAgIHZvaWQgYXBwZW5kKElubGluZUl0ZW1MaXN0JiYgaW5saW5lSXRl
bUxpc3QpIHsgbV9pbmxpbmVJdGVtTGlzdC5hcHBlbmRWZWN0b3IoV1RGTW92ZShpbmxpbmVJdGVt
TGlzdCkpOyB9Ci0gICAgICAgIHZvaWQgY2xlYXIoKSB7IG1faW5saW5lSXRlbUxpc3QuY2xlYXIo
KTsgfQorICAgICAgICBzdHJ1Y3QgQ29udGVudEF0dHJpYnV0ZXMgeworICAgICAgICAgICAgYm9v
bCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgeyBmYWxzZSB9OworICAgICAgICAgICAgLy8gTm90
ZSB0aGF0IDxzcGFuPnRoaXMgaXMgdGV4dDwvc3Bhbj4gcmV0dXJucyB0cnVlIGFzIGlubGluZSBi
b3hlcyBhcmUgbm90IGNvbnNpZGVyZWQgJ2NvbnRlbnQnIGhlcmUuCisgICAgICAgICAgICBib29s
IGhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCB7IGZhbHNlIH07CisgICAgICAgICAgICBz
aXplX3QgaW5saW5lQm94Q291bnQgeyAwIH07CisgICAgICAgIH07CisgICAgICAgIHZvaWQgc2V0
KElubGluZUl0ZW1MaXN0JiYsIENvbnRlbnRBdHRyaWJ1dGVzKTsKKyAgICAgICAgdm9pZCByZXBs
YWNlKHNpemVfdCBpbnNlcnRpb25Qb3NpdGlvbiwgSW5saW5lSXRlbUxpc3QmJiwgQ29udGVudEF0
dHJpYnV0ZXMpOwogICAgICAgICB2b2lkIHNocmlua1RvRml0KCkgeyBtX2lubGluZUl0ZW1MaXN0
LnNocmlua1RvRml0KCk7IH0KIAogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biBjb250ZW50KCkuaXNFbXB0eSgpOyB9CiAgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gY29udGVudCgpLnNpemUoKTsgfQogCi0gICAgICAgIHZvaWQgc2V0UmVxdWlyZXNWaXN1
YWxSZW9yZGVyaW5nKGJvb2wgY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZykgeyBtX2Nv
bnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgPSBjb250ZW50UmVxdWlyZXNWaXN1YWxSZW9y
ZGVyaW5nOyB9Ci0gICAgICAgIGJvb2wgcmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRJc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQoYm9vbCBp
c05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQpIHsgbV9pc05vbkJpZGlU
ZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBpc05vbkJpZGlUZXh0QW5kRm9yY2Vk
TGluZUJyZWFrT25seUNvbnRlbnQ7IH0KLSAgICAgICAgYm9vbCBpc05vbkJpZGlUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2lzTm9uQmlkaVRleHRB
bmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudDsgfQorICAgICAgICBib29sIHJlcXVpcmVzVmlz
dWFsUmVvcmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudEF0dHJpYnV0ZXMucmVxdWly
ZXNWaXN1YWxSZW9yZGVyaW5nOyB9CisgICAgICAgIGJvb2wgaGFzVGV4dEFuZExpbmVCcmVha09u
bHlDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50QXR0cmlidXRlcy5oYXNUZXh0QW5k
TGluZUJyZWFrT25seUNvbnRlbnQ7IH0KKyAgICAgICAgYm9vbCBoYXNJbmxpbmVCb3hlcygpIGNv
bnN0IHsgcmV0dXJuICEhaW5saW5lQm94Q291bnQoKTsgfQorICAgICAgICBzaXplX3QgaW5saW5l
Qm94Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRBdHRyaWJ1dGVzLmlubGluZUJveENv
dW50OyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBDb250ZW50QXR0cmlidXRlcyBtX2NvbnRl
bnRBdHRyaWJ1dGVzOwogICAgICAgICBJbmxpbmVJdGVtTGlzdCBtX2lubGluZUl0ZW1MaXN0Owot
ICAgICAgICBib29sIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyB7IGZhbHNlIH07
Ci0gICAgICAgIGJvb2wgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRl
bnQgeyBmYWxzZSB9OworCiAgICAgfTsKICAgICBjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRl
bXMoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUl0ZW1zOyB9CiAgICAgSW5saW5lSXRlbXMmIGlu
bGluZUl0ZW1zKCkgeyByZXR1cm4gbV9pbmxpbmVJdGVtczsgfQpAQCAtODksNiArOTIsMTkgQEAg
aW5saW5lIHZvaWQgSW5saW5lQ29udGVudENhY2hlOjpyZXNldE1pbmltdW1NYXhpbXVtQ29udGVu
dFNpemVzKCkKICAgICBtX21heGltdW1JbnRyaW5zaWNXaWR0aExpbmVDb250ZW50ID0geyB9Owog
fQogCitpbmxpbmUgdm9pZCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQoSW5s
aW5lSXRlbUxpc3QmJiBpbmxpbmVJdGVtTGlzdCwgQ29udGVudEF0dHJpYnV0ZXMgY29udGVudEF0
dHJpYnV0ZXMpCit7CisgICAgbV9pbmxpbmVJdGVtTGlzdCA9IFdURk1vdmUoaW5saW5lSXRlbUxp
c3QpOworICAgIG1fY29udGVudEF0dHJpYnV0ZXMgPSBjb250ZW50QXR0cmlidXRlczsKK30KKwor
aW5saW5lIHZvaWQgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6cmVwbGFjZShzaXpl
X3QgaW5zZXJ0aW9uUG9zaXRpb24sIElubGluZUl0ZW1MaXN0JiYgaW5saW5lSXRlbUxpc3QsIENv
bnRlbnRBdHRyaWJ1dGVzIGNvbnRlbnRBdHRyaWJ1dGVzKQoreworICAgIG1faW5saW5lSXRlbUxp
c3QucmVtb3ZlKGluc2VydGlvblBvc2l0aW9uLCBtX2lubGluZUl0ZW1MaXN0LnNpemUoKSAtIGlu
c2VydGlvblBvc2l0aW9uKTsKKyAgICBtX2lubGluZUl0ZW1MaXN0LmFwcGVuZFZlY3RvcihXVEZN
b3ZlKGlubGluZUl0ZW1MaXN0KSk7CisgICAgbV9jb250ZW50QXR0cmlidXRlcyA9IGNvbnRlbnRB
dHRyaWJ1dGVzOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBjMjQ3OTRkNmIzNDQuLjg5MzMwOWNhNTI2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAt
MTQyLDcgKzE0Miw3IEBAIElubGluZUxheW91dFJlc3VsdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDo6bGF5b3V0KGNvbnN0IENvbnN0cmFpbnRzRm9ySW5saW5lQ29uCiAgICAgICAgICAgICBsYXlv
dXRTdGF0ZSgpLnNldEF2YWlsYWJsZUxpbmVXaWR0aE92ZXJyaWRlKHsgKmJhbGFuY2VkTGluZVdp
ZHRocyB9KTsKICAgICB9CiAKLSAgICBpZiAoVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aXNF
bGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChyb290KCksIGlubGluZUNv
bnRlbnRDYWNoZSgpLCAmcGxhY2VkRmxvYXRzKSkgeworICAgIGlmIChUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJv
b3QoKSwgaW5saW5lQ29udGVudENhY2hlKCkuaW5saW5lSXRlbXMoKSwgJnBsYWNlZEZsb2F0cykp
IHsKICAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyIHsgKnRoaXMsIGNvbnN0cmFpbnRzLmhvcml6b250YWwoKSwgaW5saW5lSXRlbUxp
c3QgfTsKICAgICAgICAgcmV0dXJuIGxpbmVMYXlvdXQoc2ltcGxpZmllZExpbmVCdWlsZGVyLCBp
bmxpbmVJdGVtTGlzdCwgbmVlZHNMYXlvdXRSYW5nZSwgcHJldmlvdXNMaW5lKCksIGNvbnN0cmFp
bnRzLCBsaW5lRGFtYWdlKTsKICAgICB9CkBAIC0xNjAsMTAgKzE2MCwxMCBAQCBzdGQ6OnBhaXI8
TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Om1pbmltdW1N
YXhpbXVtQ29udGVudAogICAgICAgICByZXR1cm4geyBjZWlsZWRMYXlvdXRVbml0KCptaW5pbXVt
Q29udGVudFNpemUpLCBjZWlsZWRMYXlvdXRVbml0KCptYXhpbXVtQ29udGVudFNpemUpIH07CiAK
ICAgICByZWJ1aWxkSW5saW5lSXRlbUxpc3RJZk5lZWRlZChsaW5lRGFtYWdlKTsKLSAgICBhdXRv
JiBpbmxpbmVJdGVtTGlzdCA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVtcygpLmNvbnRl
bnQoKTsKKyAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJ
dGVtcygpOwogCi0gICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJdGVtTGlzdCkp
IHsKLSAgICAgICAgYXV0byBpbnRyaW5zaWNXaWR0aEhhbmRsZXIgPSBJbnRyaW5zaWNXaWR0aEhh
bmRsZXIgeyAqdGhpcywgaW5saW5lSXRlbUxpc3QsIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6
OmlzRWxpZ2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQocm9vdCgpLCBpbmxp
bmVDb250ZW50Q2FjaGUpIH07CisgICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJ
dGVtcy5jb250ZW50KCkpKSB7CisgICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhIYW5kbGVyID0g
SW50cmluc2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGluZUl0ZW1zIH07CiAKICAgICAgICAg
aWYgKCFtaW5pbXVtQ29udGVudFNpemUpCiAgICAgICAgICAgICBtaW5pbXVtQ29udGVudFNpemUg
PSBpbnRyaW5zaWNXaWR0aEhhbmRsZXIubWluaW11bUNvbnRlbnRTaXplKCk7CkBAIC0xODgsMTAg
KzE4OCwxMCBAQCBMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjptaW5pbXVtQ29u
dGVudFNpemUoY29uc3QgSW5saW5lRGFtYWdlKiBsaW5lRAogICAgICAgICByZXR1cm4gY2VpbGVk
TGF5b3V0VW5pdCgqaW5saW5lQ29udGVudENhY2hlLm1pbmltdW1Db250ZW50U2l6ZSgpKTsKIAog
ICAgIHJlYnVpbGRJbmxpbmVJdGVtTGlzdElmTmVlZGVkKGxpbmVEYW1hZ2UpOwotICAgIGF1dG8m
IGlubGluZUl0ZW1MaXN0ID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0ZW1zKCkuY29udGVu
dCgpOworICAgIGF1dG8mIGlubGluZUl0ZW1zID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0
ZW1zKCk7CiAgICAgYXV0byBtaW5pbXVtQ29udGVudFNpemUgPSBJbmxpbmVMYXlvdXRVbml0IHsg
fTsKLSAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250ZW50KGlubGluZUl0ZW1MaXN0KSkKLSAgICAg
ICAgbWluaW11bUNvbnRlbnRTaXplID0gSW50cmluc2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlu
bGluZUl0ZW1MaXN0LCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2lt
cGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lQ29udGVudENhY2hlKSB9
Lm1pbmltdW1Db250ZW50U2l6ZSgpOworICAgIGlmICghaXNFbXB0eUlubGluZUNvbnRlbnQoaW5s
aW5lSXRlbXMuY29udGVudCgpKSkKKyAgICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gSW50cmlu
c2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGluZUl0ZW1zIH0ubWluaW11bUNvbnRlbnRTaXpl
KCk7CiAgICAgaW5saW5lQ29udGVudENhY2hlLnNldE1pbmltdW1Db250ZW50U2l6ZShtaW5pbXVt
Q29udGVudFNpemUpOwogICAgIHJldHVybiBjZWlsZWRMYXlvdXRVbml0KG1pbmltdW1Db250ZW50
U2l6ZSk7CiB9CkBAIC0yMDMsMTAgKzIwMywxMCBAQCBMYXlvdXRVbml0IElubGluZUZvcm1hdHRp
bmdDb250ZXh0OjptYXhpbXVtQ29udGVudFNpemUoY29uc3QgSW5saW5lRGFtYWdlKiBsaW5lRAog
ICAgICAgICByZXR1cm4gY2VpbGVkTGF5b3V0VW5pdCgqaW5saW5lQ29udGVudENhY2hlLm1heGlt
dW1Db250ZW50U2l6ZSgpKTsKIAogICAgIHJlYnVpbGRJbmxpbmVJdGVtTGlzdElmTmVlZGVkKGxp
bmVEYW1hZ2UpOwotICAgIGF1dG8mIGlubGluZUl0ZW1MaXN0ID0gaW5saW5lQ29udGVudENhY2hl
LmlubGluZUl0ZW1zKCkuY29udGVudCgpOworICAgIGF1dG8mIGlubGluZUl0ZW1zID0gaW5saW5l
Q29udGVudENhY2hlLmlubGluZUl0ZW1zKCk7CiAgICAgYXV0byBtYXhpbXVtQ29udGVudFNpemUg
PSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKLSAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250ZW50KGlu
bGluZUl0ZW1MaXN0KSkgewotICAgICAgICBhdXRvIGludHJpbnNpY1dpZHRoSGFuZGxlciA9IElu
dHJpbnNpY1dpZHRoSGFuZGxlciB7ICp0aGlzLCBpbmxpbmVJdGVtTGlzdCwgVGV4dE9ubHlTaW1w
bGVMaW5lQnVpbGRlcjo6aXNFbGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91
dChyb290KCksIGlubGluZUNvbnRlbnRDYWNoZSkgfTsKKyAgICBpZiAoIWlzRW1wdHlJbmxpbmVD
b250ZW50KGlubGluZUl0ZW1zLmNvbnRlbnQoKSkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNX
aWR0aEhhbmRsZXIgPSBJbnRyaW5zaWNXaWR0aEhhbmRsZXIgeyAqdGhpcywgaW5saW5lSXRlbXMg
fTsKIAogICAgICAgICBtYXhpbXVtQ29udGVudFNpemUgPSBpbnRyaW5zaWNXaWR0aEhhbmRsZXIu
bWF4aW11bUNvbnRlbnRTaXplKCk7CiAgICAgICAgIGlmIChpbnRyaW5zaWNXaWR0aEhhbmRsZXIu
bWF4aW11bUludHJpbnNpY1dpZHRoTGluZUNvbnRlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVJdGVtc0J1aWxkZXIuY3BwCmluZGV4IDAwNmQzYTBjZGMyZS4uNTU3NTRhZDYyYTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKQEAgLTk4LDE4ICs5
OCwxNiBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6YnVpbGQoSW5saW5lSXRlbVBvc2l0aW9u
IHN0YXJ0UG9zaXRpb24pCiAgICAgY29tcHV0ZUlubGluZVRleHRJdGVtV2lkdGhzKGlubGluZUl0
ZW1MaXN0KTsKIAogICAgIGF1dG8gYWRqdXN0SW5saW5lQ29udGVudENhY2hlV2l0aE5ld0lubGlu
ZUl0ZW1zID0gWyZdIHsKKyAgICAgICAgYXV0byBjb250ZW50QXR0cmlidXRlcyA9IElubGluZUNv
bnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OkNvbnRlbnRBdHRyaWJ1dGVzIHsgbV9jb250ZW50UmVx
dWlyZXNWaXN1YWxSZW9yZGVyaW5nLCBtX2lzVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250
ZW50LCBtX2lubGluZUJveENvdW50IH07CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW1DYWNoZSA9
IGlubGluZUNvbnRlbnRDYWNoZSgpLmlubGluZUl0ZW1zKCk7CiAgICAgICAgIGlmICghc3RhcnRQ
b3NpdGlvbikKLSAgICAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtQ2FjaGUuc2V0KFdURk1vdmUo
aW5saW5lSXRlbUxpc3QpKTsKKyAgICAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtQ2FjaGUuc2V0
KFdURk1vdmUoaW5saW5lSXRlbUxpc3QpLCBjb250ZW50QXR0cmlidXRlcyk7CiAgICAgICAgIC8v
IExldCdzIGZpcnN0IHJlbW92ZSB0aGUgZGlydHkgaW5saW5lIGl0ZW1zIGlmIHRoZXJlIGFyZSBh
bnkuCi0gICAgICAgIGF1dG8mIGN1cnJlbnRJbmxpbmVJdGVtcyA9IGlubGluZUl0ZW1DYWNoZS5j
b250ZW50KCk7Ci0gICAgICAgIGlmIChzdGFydFBvc2l0aW9uLmluZGV4ID49IGN1cnJlbnRJbmxp
bmVJdGVtcy5zaXplKCkpIHsKKyAgICAgICAgaWYgKHN0YXJ0UG9zaXRpb24uaW5kZXggPj0gaW5s
aW5lSXRlbUNhY2hlLmNvbnRlbnQoKS5zaXplKCkpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1DYWNoZS5zZXQoV1RGTW92
ZShpbmxpbmVJdGVtTGlzdCkpOworICAgICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1DYWNoZS5z
ZXQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCksIGNvbnRlbnRBdHRyaWJ1dGVzKTsKICAgICAgICAg
fQotICAgICAgICAvLyBGSVhNRTogVXNlIHJlcGxhY2UgaW5zdGVhZC4KLSAgICAgICAgY3VycmVu
dElubGluZUl0ZW1zLnJlbW92ZShzdGFydFBvc2l0aW9uLmluZGV4LCBjdXJyZW50SW5saW5lSXRl
bXMuc2l6ZSgpIC0gc3RhcnRQb3NpdGlvbi5pbmRleCk7Ci0gICAgICAgIGlubGluZUl0ZW1DYWNo
ZS5hcHBlbmQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCkpOworICAgICAgICBpbmxpbmVJdGVtQ2Fj
aGUucmVwbGFjZShzdGFydFBvc2l0aW9uLmluZGV4LCBXVEZNb3ZlKGlubGluZUl0ZW1MaXN0KSwg
Y29udGVudEF0dHJpYnV0ZXMpOwogICAgIH07CiAgICAgYWRqdXN0SW5saW5lQ29udGVudENhY2hl
V2l0aE5ld0lubGluZUl0ZW1zKCk7CiAKQEAgLTE1NSw3ICsxNTMsMTEgQEAgYm9vbCBJbmxpbmVJ
dGVtc0J1aWxkZXI6OnRyYXZlcnNlVW50aWxEYW1hZ2VkKExheW91dFF1ZXVlJiBsYXlvdXRRdWV1
ZSwgY29uc3QgQm8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBtX2NvbnRlbnRSZXF1aXJl
c1Zpc3VhbFJlb3JkZXJpbmcgPSBtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgfHwg
cmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKHN1YnRyZWVSb290KTsKLSAgICBtX2lzTm9uQmlkaVRl
eHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IG1faXNOb25CaWRpVGV4dEFuZEZvcmNl
ZExpbmVCcmVha09ubHlDb250ZW50ICYmICFtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJp
bmcgJiYgaXNUZXh0T3JMaW5lQnJlYWsoc3VidHJlZVJvb3QpOworICAgIGlmICghaXNUZXh0T3JM
aW5lQnJlYWsoc3VidHJlZVJvb3QpKSB7CisgICAgICAgIG1faXNUZXh0QW5kRm9yY2VkTGluZUJy
ZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgaWYgKHN1YnRyZWVSb290LmlzSW5saW5l
Qm94KCkpCisgICAgICAgICAgICArK21faW5saW5lQm94Q291bnQ7CisgICAgfQogCiAgICAgYXV0
byBzaG91bGRTa2lwU3VidHJlZSA9IHN1YnRyZWVSb290LmVzdGFibGlzaGVzRm9ybWF0dGluZ0Nv
bnRleHQoKTsKICAgICBpZiAoIXNob3VsZFNraXBTdWJ0cmVlICYmIGlzPEVsZW1lbnRCb3g+KHN1
YnRyZWVSb290KSAmJiBkb3duY2FzdDxFbGVtZW50Qm94PihzdWJ0cmVlUm9vdCkuaGFzQ2hpbGQo
KSkgewpAQCAtMjU2LDcgKzI1OCw3IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpjb2xsZWN0
SW5saW5lSXRlbXMoSW5saW5lSXRlbUxpc3QmIGlubGluZUl0ZW1MaXN0LCBJbmxpCiAgICAgICAg
IHdoaWxlICghbGF5b3V0UXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBhdXRvIGxheW91
dEJveCA9IGxheW91dFF1ZXVlLnRha2VMYXN0KCk7CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94
LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICAgICAgICAgIG1faXNOb25CaWRp
VGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gZmFsc2U7CisgICAgICAgICAgICAg
ICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgIGlubGluZUl0ZW1MaXN0LmFwcGVuZCh7IGxheW91dEJveCwgSW5saW5lSXRlbTo6
VHlwZTo6T3BhcXVlIH0pOwogICAgICAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3gtPmlzSW5s
aW5lVGV4dEJveCgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lVGV4dEJveCA9IGRv
d25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCk7CkBAIC0yNjcsNyArMjY5LDcgQEAgdm9p
ZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVtcyhJbmxpbmVJdGVtTGlzdCYg
aW5saW5lSXRlbUxpc3QsIElubGkKICAgICAgICAgICAgICAgICBoYW5kbGVJbmxpbmVCb3hFbmQo
bGF5b3V0Qm94LCBpbmxpbmVJdGVtTGlzdCk7CiAgICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRC
b3gtPmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgICAgICAgICBpbmxpbmVJdGVt
TGlzdC5hcHBlbmQoeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkZsb2F0IH0pOwotICAg
ICAgICAgICAgICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50
ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5
Q29udGVudCA9IGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAKQEAgLTI3Nyw4ICsyNzksNiBAQCB2b2lkIElubGluZUl0ZW1z
QnVpbGRlcjo6Y29sbGVjdElubGluZUl0ZW1zKElubGluZUl0ZW1MaXN0JiBpbmxpbmVJdGVtTGlz
dCwgSW5saQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIGlubGluZUl0ZW1D
YWNoZS5zZXRJc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQobV9pc05v
bkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQpOwotICAgIGlubGluZUl0ZW1D
YWNoZS5zZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcobV9jb250ZW50UmVxdWlyZXNWaXN1YWxS
ZW9yZGVyaW5nKTsKIH0KIAogc3RhdGljIHZvaWQgcmVwbGFjZU5vblByZXNlcnZlZE5ld0xpbmVB
bmRUYWJDaGFyYWN0ZXJzQW5kQXBwZW5kKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRC
b3gsIFN0cmluZ0J1aWxkZXImIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyKQpAQCAtNjgyLDcgKzY4
Miw2IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVUZXh0Q29udGVudChjb25zdCBJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBJCiAgICAgICAgIHJldHVybiBpbmxpbmVJdGVt
TGlzdC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGlubGlu
ZVRleHRCb3gsIHsgfSwgY29udGVudExlbmd0aCwgVUJJRElfREVGQVVMVF9MVFIsIGZhbHNlLCB7
IH0pKTsKIAogICAgIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyA9IG1fY29udGVu
dFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyB8fCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcoaW5s
aW5lVGV4dEJveCk7Ci0gICAgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNv
bnRlbnQgPSBtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCAmJiAh
bV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nOwogICAgIGF1dG8mIHN0eWxlID0gaW5s
aW5lVGV4dEJveC5zdHlsZSgpOwogICAgIGF1dG8gc2hvdWxkUHJlc2VydmVTcGFjZXNBbmRUYWJz
ID0gVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhpbmxpbmVUZXh0Qm94KTsK
ICAgICBhdXRvIHNob3VsZFByZXNlcnZlTmV3bGluZSA9IFRleHRVdGlsOjpzaG91bGRQcmVzZXJ2
ZU5ld2xpbmUoaW5saW5lVGV4dEJveCk7CkBAIC03NzcsMTUgKzc3NiwxNCBAQCB2b2lkIElubGlu
ZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94U3RhcnQoY29uc3QgQm94JiBpbmxpbmVCb3gs
IElubGluZUl0ZW1MaQogewogICAgIGlubGluZUl0ZW1MaXN0LmFwcGVuZCh7IGlubGluZUJveCwg
SW5saW5lSXRlbTo6VHlwZTo6SW5saW5lQm94U3RhcnQgfSk7CiAgICAgbV9jb250ZW50UmVxdWly
ZXNWaXN1YWxSZW9yZGVyaW5nID0gbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nIHx8
IHJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyhpbmxpbmVCb3gpOwotICAgIG1faXNOb25CaWRpVGV4
dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gZmFsc2U7CisgICAgKyttX2lubGluZUJv
eENvdW50OwogfQogCiB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94RW5k
KGNvbnN0IEJveCYgaW5saW5lQm94LCBJbmxpbmVJdGVtTGlzdCYgaW5saW5lSXRlbUxpc3QpCiB7
CiAgICAgaW5saW5lSXRlbUxpc3QuYXBwZW5kKHsgaW5saW5lQm94LCBJbmxpbmVJdGVtOjpUeXBl
OjpJbmxpbmVCb3hFbmQgfSk7Ci0gICAgQVNTRVJUKCFtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRM
aW5lQnJlYWtPbmx5Q29udGVudCk7Ci0gICAgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJy
ZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKICAgICAvLyBJbmxpbmUgYm94IGVuZCBpdGVtIGl0c2Vs
ZiBjYW4gbm90IHRyaWdnZXIgYmlkaSBjb250ZW50LgorICAgIEFTU0VSVChtX2lubGluZUJveENv
dW50KTsKICAgICBBU1NFUlQoY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZygpIHx8IGlu
bGluZUJveC5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSB8fCBpbmxpbmVCb3guc3R5
bGUoKS5ydGxPcmRlcmluZygpID09IE9yZGVyOjpWaXN1YWwgfHwgaW5saW5lQm94LnN0eWxlKCku
dW5pY29kZUJpZGkoKSA9PSBVbmljb2RlQmlkaTo6Tm9ybWFsKTsKIH0KIApAQCAtNzk1LDEyICs3
OTMsMTIgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUxldmVsQm94KGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBJbmxpbmVJdGVtTGkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKGxheW91dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkpIHsKLSAgICAgICAgbV9pc05v
bkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAg
bV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IGZhbHNlOwogICAgICAgICBy
ZXR1cm4gaW5saW5lSXRlbUxpc3QuYXBwZW5kKHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBl
OjpCb3ggfSk7CiAgICAgfQogCiAgICAgaWYgKGxheW91dEJveC5pc0xpbmVCcmVha0JveCgpKSB7
Ci0gICAgICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0g
bV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgJiYgaXNUZXh0T3JM
aW5lQnJlYWsobGF5b3V0Qm94KTsKKyAgICAgICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtP
bmx5Q29udGVudCA9IG1faXNUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgJiYgaXNU
ZXh0T3JMaW5lQnJlYWsobGF5b3V0Qm94KTsKICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1MaXN0
LmFwcGVuZCh7IGxheW91dEJveCwgbGF5b3V0Qm94LmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSA/
IElubGluZUl0ZW06OlR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5IDogSW5saW5lSXRlbTo6VHlw
ZTo6SGFyZExpbmVCcmVhayB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRl
bXNCdWlsZGVyLmgKaW5kZXggMzJjNDIyNjcxMDg3Li4wODVjOTgyYmVlOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0
ZW1zQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCkBAIC02Myw3ICs2Myw4IEBAIHByaXZhdGU6
CiAgICAgY29uc3QgRWxlbWVudEJveCYgbV9yb290OwogCiAgICAgYm9vbCBtX2NvbnRlbnRSZXF1
aXJlc1Zpc3VhbFJlb3JkZXJpbmcgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc05vbkJpZGlUZXh0
QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgeyB0cnVlIH07CisgICAgYm9vbCBtX2lzVGV4
dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50IHsgdHJ1ZSB9OworICAgIHNpemVfdCBtX2lu
bGluZUJveENvdW50IHsgMCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0ludHJp
bnNpY1dpZHRoSGFuZGxlci5jcHAKaW5kZXggMDM1OWZiYTEzNDc2Li5jNGJlNWMzYzU2NjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0ludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmNwcApAQCAtODAs
MTAgKzgwLDEwIEBAIHN0YXRpYyBib29sIG1heVVzZUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJl
YWtzQXNNYXhpbXVtU2l6ZShjb25zdCBFbGVtZW50Qm94JiByCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLUludHJpbnNpY1dpZHRoSGFuZGxlcjo6SW50cmluc2ljV2lkdGhIYW5kbGVyKElubGluZUZv
cm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgSW5saW5lSXRl
bUxpc3QmIGlubGluZUl0ZW1MaXN0LCBib29sIG1heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGlu
ZUxheW91dCkKK0ludHJpbnNpY1dpZHRoSGFuZGxlcjo6SW50cmluc2ljV2lkdGhIYW5kbGVyKElu
bGluZUZvcm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgSW5s
aW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiAgICAgOiBtX2lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0KGlubGluZUZvcm1hdHRpbmdDb250ZXh0KQotICAgICwgbV9pbmxp
bmVJdGVtTGlzdChpbmxpbmVJdGVtTGlzdCkKLSAgICAsIG1fbWF5VXNlU2ltcGxpZmllZFRleHRP
bmx5SW5saW5lTGF5b3V0KG1heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCkKKyAg
ICAsIG1faW5saW5lSXRlbXMoaW5saW5lSXRlbXMpCisgICAgLCBtX21heVVzZVNpbXBsaWZpZWRU
ZXh0T25seUlubGluZUxheW91dChUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxl
Rm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lSXRlbXMpKQog
ewogfQogCkBAIC05NCwxMCArOTQsMTAgQEAgSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0
aEhhbmRsZXI6Om1pbmltdW1Db250ZW50U2l6ZSgpCiAgICAgaWYgKGlzQ29udGVudEVsaWdpYmxl
Rm9yTm9uTGluZUJ1aWxkZXJNaW5pbXVtV2lkdGgocm9vdCgpLCBtX21heVVzZVNpbXBsaWZpZWRU
ZXh0T25seUlubGluZUxheW91dCkpCiAgICAgICAgIG1pbmltdW1Db250ZW50U2l6ZSA9IHNpbXBs
aWZpZWRNaW5pbXVtV2lkdGgocm9vdCgpKTsKICAgICBlbHNlIGlmIChtX21heVVzZVNpbXBsaWZp
ZWRUZXh0T25seUlubGluZUxheW91dCkgewotICAgICAgICBhdXRvIHNpbXBsaWZpZWRMaW5lQnVp
bGRlciA9IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7
IH0sIG1faW5saW5lSXRlbUxpc3QgfTsKKyAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxk
ZXIgPSBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9
LCBpbmxpbmVJdGVtTGlzdCgpIH07CiAgICAgICAgIG1pbmltdW1Db250ZW50U2l6ZSA9IGNvbXB1
dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KEludHJpbnNpY1dpZHRoTW9kZTo6TWluaW11
bSwgc2ltcGxpZmllZExpbmVCdWlsZGVyLCBNYXlDYWNoZUxheW91dFJlc3VsdDo6Tm8pOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gbGluZUJ1aWxkZXIgPSBMaW5lQnVpbGRlciB7IGZvcm1h
dHRpbmdDb250ZXh0KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9OworICAgICAgICBhdXRvIGxp
bmVCdWlsZGVyID0gTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7IH0sIGlubGlu
ZUl0ZW1MaXN0KCkgfTsKICAgICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gY29tcHV0ZWRJbnRy
aW5zaWNXaWR0aEZvckNvbnN0cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNaW5pbXVtLCBsaW5l
QnVpbGRlciwgTWF5Q2FjaGVMYXlvdXRSZXN1bHQ6Ok5vKTsKICAgICB9CiAKQEAgLTEwOSwyMSAr
MTA5LDIxIEBAIElubGluZUxheW91dFVuaXQgSW50cmluc2ljV2lkdGhIYW5kbGVyOjptYXhpbXVt
Q29udGVudFNpemUoKQogICAgIGF1dG8gbWF5Q2FjaGVMYXlvdXRSZXN1bHQgPSBtX21heVVzZVNp
bXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCA/IE1heUNhY2hlTGF5b3V0UmVzdWx0OjpZZXMg
OiBNYXlDYWNoZUxheW91dFJlc3VsdDo6Tm87CiAgICAgYXV0byBtYXhpbXVtQ29udGVudFNpemUg
PSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKIAotICAgIGlmIChpc0NvbnRlbnRFbGlnaWJsZUZvck5v
bkxpbmVCdWlsZGVyTWF4aW11bVdpZHRoKHJvb3QoKSwgbV9pbmxpbmVJdGVtTGlzdCkpCisgICAg
aWYgKGlzQ29udGVudEVsaWdpYmxlRm9yTm9uTGluZUJ1aWxkZXJNYXhpbXVtV2lkdGgocm9vdCgp
LCBpbmxpbmVJdGVtTGlzdCgpKSkKICAgICAgICAgbWF4aW11bUNvbnRlbnRTaXplID0gc2ltcGxp
ZmllZE1heGltdW1XaWR0aChtYXlDYWNoZUxheW91dFJlc3VsdCk7CiAgICAgZWxzZSBpZiAobV9t
YXlVc2VTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQpIHsKLSAgICAgICAgaWYgKG1fbWF4
aW11bUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzICYmIG1heVVzZUNvbnRlbnRXaWR0aEJl
dHdlZW5MaW5lQnJlYWtzQXNNYXhpbXVtU2l6ZShyb290KCksIG1faW5saW5lSXRlbUxpc3QpKSB7
CisgICAgICAgIGlmIChtX21heGltdW1Db250ZW50V2lkdGhCZXR3ZWVuTGluZUJyZWFrcyAmJiBt
YXlVc2VDb250ZW50V2lkdGhCZXR3ZWVuTGluZUJyZWFrc0FzTWF4aW11bVNpemUocm9vdCgpLCBp
bmxpbmVJdGVtTGlzdCgpKSkgewogICAgICAgICAgICAgbWF4aW11bUNvbnRlbnRTaXplID0gKm1f
bWF4aW11bUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzOwogI2lmbmRlZiBOREVCVUcKLSAg
ICAgICAgICAgIGF1dG8gc2ltcGxpZmllZExpbmVCdWlsZGVyID0gVGV4dE9ubHlTaW1wbGVMaW5l
QnVpbGRlciB7IGZvcm1hdHRpbmdDb250ZXh0KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9Owor
ICAgICAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBpbmxpbmVJdGVtTGlzdCgpIH07
CiAgICAgICAgICAgICBBU1NFUlQoc3RkOjphYnMobWF4aW11bUNvbnRlbnRTaXplIC0gY29tcHV0
ZWRJbnRyaW5zaWNXaWR0aEZvckNvbnN0cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVt
LCBzaW1wbGlmaWVkTGluZUJ1aWxkZXIsIE1heUNhY2hlTGF5b3V0UmVzdWx0OjpObykpIDwgMSk7
CiAjZW5kaWYKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gc2ltcGxpZmllZExp
bmVCdWlsZGVyID0gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlciB7IGZvcm1hdHRpbmdDb250ZXh0
KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9OworICAgICAgICAgICAgYXV0byBzaW1wbGlmaWVk
TGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRl
eHQoKSwgeyB9LCBpbmxpbmVJdGVtTGlzdCgpIH07CiAgICAgICAgICAgICBtYXhpbXVtQ29udGVu
dFNpemUgPSBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJbnRyaW5zaWNXaWR0
aE1vZGU6Ok1heGltdW0sIHNpbXBsaWZpZWRMaW5lQnVpbGRlciwgbWF5Q2FjaGVMYXlvdXRSZXN1
bHQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byBsaW5lQnVpbGRlciA9
IExpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBtX2lubGluZUl0ZW1MaXN0
IH07CisgICAgICAgIGF1dG8gbGluZUJ1aWxkZXIgPSBMaW5lQnVpbGRlciB7IGZvcm1hdHRpbmdD
b250ZXh0KCksIHsgfSwgaW5saW5lSXRlbUxpc3QoKSB9OwogICAgICAgICBtYXhpbXVtQ29udGVu
dFNpemUgPSBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJbnRyaW5zaWNXaWR0
aE1vZGU6Ok1heGltdW0sIGxpbmVCdWlsZGVyLCBtYXlDYWNoZUxheW91dFJlc3VsdCk7CiAgICAg
fQogCkBAIC0xMzUsNyArMTM1LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0aEhh
bmRsZXI6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KEludHIKICAgICBhdXRv
IGhvcml6b250YWxDb25zdHJhaW50cyA9IEhvcml6b250YWxDb25zdHJhaW50cyB7IH07CiAgICAg
aWYgKGludHJpbnNpY1dpZHRoTW9kZSA9PSBJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGltdW0pCiAg
ICAgICAgIGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGggPSBtYXhJbmxpbmVMYXlv
dXRVbml0KCk7Ci0gICAgYXV0byBsYXlvdXRSYW5nZSA9IElubGluZUl0ZW1SYW5nZSB7IDAgLCBt
X2lubGluZUl0ZW1MaXN0LnNpemUoKSB9OworICAgIGF1dG8gbGF5b3V0UmFuZ2UgPSBJbmxpbmVJ
dGVtUmFuZ2UgeyAwICwgaW5saW5lSXRlbUxpc3QoKS5zaXplKCkgfTsKICAgICBpZiAobGF5b3V0
UmFuZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC0yMzEsNyArMjMxLDcg
QEAgSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OnNpbXBsaWZpZWRNaW5p
bXVtV2lkdGgoY29uc3QgRWxlbWVudEJveCYKIElubGluZUxheW91dFVuaXQgSW50cmluc2ljV2lk
dGhIYW5kbGVyOjpzaW1wbGlmaWVkTWF4aW11bVdpZHRoKE1heUNhY2hlTGF5b3V0UmVzdWx0IG1h
eUNhY2hlTGF5b3V0UmVzdWx0KQogewogICAgIEFTU0VSVChyb290KCkuZmlyc3RDaGlsZCgpICYm
IHJvb3QoKS5maXJzdENoaWxkKCkgPT0gcm9vdCgpLmxhc3RDaGlsZCgpKTsKLSAgICBhdXRvJiBp
bmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihtX2lubGluZUl0ZW1MaXN0
WzBdKTsKKyAgICBhdXRvJiBpbmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVt
PihpbmxpbmVJdGVtTGlzdCgpWzBdKTsKICAgICBhdXRvJiBzdHlsZSA9IGlubGluZVRleHRJdGVt
LmZpcnN0TGluZVN0eWxlKCk7CiAKICAgICBhdXRvIGNvbnRlbnRMb2dpY2FsV2lkdGggPSBUZXh0
VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0ZW0sIHN0eWxlLmZvbnRDYXNjYWRlKCksIHsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5oCmluZGV4IDJiODk5MTAx
OWUzNi4uMGJmZmM5OWY5NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRyaW5zaWNXaWR0
aEhhbmRsZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IklubGluZUNvbnRlbnRDYWNoZS5oIgogI2luY2x1ZGUgIkxpbmVMYXlvdXRSZXN1bHQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsMTIgKzMzLDEwIEBAIG5hbWVzcGFjZSBMYXlvdXQg
ewogCiBjbGFzcyBBYnN0cmFjdExpbmVCdWlsZGVyOwogY2xhc3MgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ7Ci1jbGFzcyBJbmxpbmVDb250ZW50Q2FjaGU7Ci1zdHJ1Y3QgSW50cmluc2ljV2lkdGhD
b25zdHJhaW50czsKIAogY2xhc3MgSW50cmluc2ljV2lkdGhIYW5kbGVyIHsKIHB1YmxpYzoKLSAg
ICBJbnRyaW5zaWNXaWR0aEhhbmRsZXIoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmLCBjb25zdCBJ
bmxpbmVJdGVtTGlzdCYsIGJvb2wgbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0
KTsKKyAgICBJbnRyaW5zaWNXaWR0aEhhbmRsZXIoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmLCBj
b25zdCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zJik7CiAKICAgICBJbmxpbmVMYXlv
dXRVbml0IG1pbmltdW1Db250ZW50U2l6ZSgpOwogICAgIElubGluZUxheW91dFVuaXQgbWF4aW11
bUNvbnRlbnRTaXplKCk7CkBAIC01NCwxMCArNTMsMTEgQEAgcHJpdmF0ZToKICAgICBjb25zdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAgICBj
b25zdCBJbmxpbmVDb250ZW50Q2FjaGUmIGZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0OwogICAgIGNv
bnN0IEVsZW1lbnRCb3gmIHJvb3QoKSBjb25zdDsKKyAgICBjb25zdCBJbmxpbmVJdGVtTGlzdCYg
aW5saW5lSXRlbUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUl0ZW1zLmNvbnRlbnQoKTsg
fQogCiBwcml2YXRlOgogICAgIElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBtX2lubGluZUZvcm1h
dHRpbmdDb250ZXh0OwotICAgIGNvbnN0IElubGluZUl0ZW1MaXN0JiBtX2lubGluZUl0ZW1MaXN0
OworICAgIGNvbnN0IElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXMmIG1faW5saW5lSXRl
bXM7CiAgICAgY29uc3QgYm9vbCBtX21heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91
dCB7IGZhbHNlIH07CiAKICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1fbWF4
aW11bUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxl
TGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAKaW5kZXggY2IwZmZjMzNhMjIw
Li4zZGYzNGE3MzIyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2lt
cGxlTGluZUJ1aWxkZXIuY3BwCkBAIC00NDIsMTMgKzQ0MiwxMyBAQCBJbmxpbmVMYXlvdXRVbml0
IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmF2YWlsYWJsZVdpZHRoKCkgY29uc3QKICAgICBy
ZXR1cm4gKG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCkgKyBMYXlvdXRVbml0OjplcHNpbG9uKCkp
IC0gKCFzdGQ6OmlzbmFuKGNvbnRlbnRMb2dpY2FsUmlnaHQpID8gY29udGVudExvZ2ljYWxSaWdo
dCA6IDAuZik7CiB9CiAKLWJvb2wgVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aXNFbGlnaWJs
ZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChjb25zdCBFbGVtZW50Qm94JiByb290
Qm94LCBjb25zdCBJbmxpbmVDb250ZW50Q2FjaGUmIGlubGluZUNvbnRlbnRDYWNoZSwgY29uc3Qg
UGxhY2VkRmxvYXRzKiBwbGFjZWRGbG9hdHMpCitib29sIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXI6OmlzRWxpZ2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQoY29uc3QgRWxl
bWVudEJveCYgcm9vdEJveCwgY29uc3QgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtcyYg
aW5saW5lSXRlbXMsIGNvbnN0IFBsYWNlZEZsb2F0cyogcGxhY2VkRmxvYXRzKQogewogICAgIGlm
IChwbGFjZWRGbG9hdHMgJiYgIXBsYWNlZEZsb2F0cy0+aXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVtcygpLmlzRW1w
dHkoKSkKKyAgICBpZiAoaW5saW5lSXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFpbmxpbmVDb250ZW50Q2FjaGUuaW5saW5lSXRlbXMoKS5pc05vbkJpZGlU
ZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQoKSkKKyAgICBpZiAoIWlubGluZUl0ZW1z
Lmhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCgpIHx8IGlubGluZUl0ZW1zLmhhc0lubGlu
ZUJveGVzKCkgfHwgaW5saW5lSXRlbXMucmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8mIHJvb3RTdHlsZSA9IHJvb3RCb3guc3R5bGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaApp
bmRleCAzZmU2NzNhNzIyZmIuLjI3YzRkNTc1MjgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVp
bGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaApAQCAtMjYsMTIgKzI2LDEyIEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkFic3RyYWN0TGluZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJJ
bmxpbmVDb250ZW50Q2FjaGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExh
eW91dCB7CiAKIGNsYXNzIElubGluZUNvbnRlbnRCcmVha2VyOwotY2xhc3MgSW5saW5lQ29udGVu
dENhY2hlOwogc3RydWN0IENhbmRpZGF0ZVRleHRDb250ZW50Owogc3RydWN0IFRleHRPbmx5TGlu
ZUJyZWFrUmVzdWx0OwogCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICBUZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyKElubGluZUZvcm1hdHRpbmdDb250ZXh0JiwgSG9yaXpvbnRhbENvbnN0
cmFpbnRzIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IElubGluZUl0ZW1MaXN0Jik7
CiAgICAgTGluZUxheW91dFJlc3VsdCBsYXlvdXRJbmxpbmVDb250ZW50KGNvbnN0IExpbmVJbnB1
dCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8UHJldmlvdXNMaW5lPiYpIGZpbmFsOwogCi0gICAgc3Rh
dGljIGJvb2wgaXNFbGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChjb25z
dCBFbGVtZW50Qm94JiByb290LCBjb25zdCBJbmxpbmVDb250ZW50Q2FjaGUmLCBjb25zdCBQbGFj
ZWRGbG9hdHMqID0gbnVsbHB0cik7CisgICAgc3RhdGljIGJvb2wgaXNFbGlnaWJsZUZvclNpbXBs
aWZpZWRUZXh0T25seUlubGluZUxheW91dChjb25zdCBFbGVtZW50Qm94JiByb290LCBjb25zdCBJ
bmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zJiwgY29uc3QgUGxhY2VkRmxvYXRzKiA9IG51
bGxwdHIpOwogCiBwcml2YXRlOgogICAgIElubGluZUl0ZW1Qb3NpdGlvbiBwbGFjZUlubGluZVRl
eHRDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5nZSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469584</attachid>
            <date>2024-01-28 11:15:32 -0800</date>
            <delta_ts>2024-01-28 13:12:31 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-268227-20240128111531.patch</filename>
            <type>text/plain</type>
            <size>28706</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA0NzJmNzYyM2UwZDJlYTMxYmU1MjA5YjhhMWZhY2NkN2E3OTFlYzg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMjcgSmFuIDIwMjQgMTA6MjQ6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBB
ZGQgaW5saW5lIGJveCBjb3VudCB0byBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MjI3CgpSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KClRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGJlaW5nIGFibGUg
dG8gcnVuIGEgcmFuZ2Ugb2YgY29udGVudCB0aHJvdWdoIHRoZSBzaW1wbGUgbGluZSBidWlsZGVy
ICh3aGVyZSB0aGUgcmFuZ2UgaGFzIHRleHQgb25seSBjb250ZW50IGUuZy4gPGRpdj48c3Bhbj50
aGlzIGlzIHRleHQgY29udGVudDwvc3Bhbj48L2Rpdj4KCjEuIEtlZXAgdHJhY2sgb2YgdGhlIG51
bWJlciBvZiBpbmxpbmUgYm94ZXMgKG1faW5saW5lQm94Q291bnQpCjIuIG1faXNUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQgb25seSB0cmFja3MgX2NvbnRlbnRfIHR5cGUgb2YgaW5s
aW5lIGxldmVsIGJveGVzIG5vdyAoZXhjbHVkaW5nIGlubGluZSBib3hlcywgc2VlICMxKQozLiBh
bmQgaXQgZG9lcyBub3QgdHJhY2sgaWYgY29udGVudCBuZWVkcyBiaWRpIHJlb3JkZXJpbmcgYW55
bW9yZSAod2UgYWxyZWFkeSB0cmFjayB0aGF0IGluZm9ybWF0aW9uIGluIG1fY29udGVudFJlcXVp
cmVzVmlzdWFsUmVvcmRlcmluZykKNC4gQWRkIElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRl
bXM6OkNvbnRlbnRBdHRyaWJ1dGVzIHRvIGhvbGQgYWxsIHRoZXNlIGJpdHMuCjUuIFJlbW92ZSBk
ZWRpY2F0ZWQgc2V0IGZ1bmN0aW9ucyBhbmQgcGFzcyB0aGVzZSBiaXQgdGhyb3VnaCBJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQvcmVwbGFjZS4KCiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENhY2hlLmg6CihX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OnJlcXVpcmVz
VmlzdWFsUmVvcmRlcmluZyBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRD
YWNoZTo6SW5saW5lSXRlbXM6Omhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6Omhhc0lu
bGluZUJveGVzIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJ
bmxpbmVJdGVtczo6aW5saW5lQm94Q291bnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpyZXBsYWNlKToKKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6YXBwZW5kKTogRGVsZXRlZC4KKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6Y2xlYXIpOiBEZWxl
dGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpz
ZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXRJc05vbkJpZGlUZXh0QW5kRm9yY2Vk
TGluZUJyZWFrT25seUNvbnRlbnQpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVD
b250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjppc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFr
T25seUNvbnRlbnQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCk6CihXZWJDb3JlOjpM
YXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjptaW5pbXVtTWF4aW11bUNvbnRlbnRTaXpl
KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Om1pbmltdW1Db250
ZW50U2l6ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjptYXhp
bXVtQ29udGVudFNpemUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUl0ZW1zQnVpbGRlcjo6YnVpbGQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxk
ZXI6OnRyYXZlcnNlVW50aWxEYW1hZ2VkKToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNC
dWlsZGVyOjpjb2xsZWN0SW5saW5lSXRlbXMpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVt
c0J1aWxkZXI6OmhhbmRsZVRleHRDb250ZW50KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRl
bXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hTdGFydCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94RW5kKToKKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVMZXZlbEJveCk6CiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmg6Ciog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2lj
V2lkdGhIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW50cmluc2ljV2lkdGhIYW5kbGVy
OjpJbnRyaW5zaWNXaWR0aEhhbmRsZXIpOgooV2ViQ29yZTo6TGF5b3V0OjpJbnRyaW5zaWNXaWR0
aEhhbmRsZXI6Om1pbmltdW1Db250ZW50U2l6ZSk6CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNp
Y1dpZHRoSGFuZGxlcjo6bWF4aW11bUNvbnRlbnRTaXplKToKKFdlYkNvcmU6OkxheW91dDo6SW50
cmluc2ljV2lkdGhIYW5kbGVyOjpjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludCk6
CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNpY1dpZHRoSGFuZGxlcjo6c2ltcGxpZmllZE1heGlt
dW1XaWR0aCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkludHJpbnNpY1dp
ZHRoSGFuZGxlcjo6aW5saW5lSXRlbUxpc3QgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3Bw
OgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxl
Rm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmg6
Ci0tLQogLi4uL2lubGluZS9JbmxpbmVDb250ZW50Q2FjaGUuaCAgICAgICAgICAgICAgIHwgMzgg
KysrKysrKysrKysrKy0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAgICAgICAgIHwgMjAgKysrKystLS0tLQogLi4uL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
Y3BwICAgICAgICAgICAgIHwgMzQgKysrKysrKystLS0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5l
SXRlbXNCdWlsZGVyLmggICAgICAgICAgICAgICB8ICAzICstCiAuLi4vaW5saW5lL0ludHJpbnNp
Y1dpZHRoSGFuZGxlci5jcHAgICAgICAgICAgfCAyNCArKysrKystLS0tLS0KIC4uLi9pbmxpbmUv
SW50cmluc2ljV2lkdGhIYW5kbGVyLmggICAgICAgICAgICB8ICA4ICsrLS0KIC4uLi9pbmxpbmUv
VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAgICAgICB8ICA2ICstLQogLi4uL2lubGluZS9U
ZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmggICAgICAgIHwgIDQgKy0KIDggZmlsZXMgY2hhbmdl
ZCwgNzYgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENh
Y2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50Q2FjaGUuaAppbmRleCBkZGZlYTdjNzQ1YTEuLjc5YTliYzFhZDg0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lQ29udGVudENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudENhY2hlLmgKQEAgLTI4LDcgKzI4LDYgQEAK
ICNpbmNsdWRlICJGb3JtYXR0aW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJJbmxpbmVEaXNw
bGF5Q29udGVudC5oIgogI2luY2x1ZGUgIklubGluZUl0ZW0uaCIKLSNpbmNsdWRlICJJbnRyaW5z
aWNXaWR0aEhhbmRsZXIuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNDMsMjQgKzQyLDI4IEBAIHB1YmxpYzoKICAg
ICAgICAgSW5saW5lSXRlbUxpc3QmIGNvbnRlbnQoKSB7IHJldHVybiBtX2lubGluZUl0ZW1MaXN0
OyB9CiAgICAgICAgIGNvbnN0IElubGluZUl0ZW1MaXN0JiBjb250ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9pbmxpbmVJdGVtTGlzdDsgfQogCi0gICAgICAgIHZvaWQgc2V0KElubGluZUl0ZW1MaXN0
JiYgaW5saW5lSXRlbUxpc3QpIHsgbV9pbmxpbmVJdGVtTGlzdCA9IFdURk1vdmUoaW5saW5lSXRl
bUxpc3QpOyB9Ci0gICAgICAgIHZvaWQgYXBwZW5kKElubGluZUl0ZW1MaXN0JiYgaW5saW5lSXRl
bUxpc3QpIHsgbV9pbmxpbmVJdGVtTGlzdC5hcHBlbmRWZWN0b3IoV1RGTW92ZShpbmxpbmVJdGVt
TGlzdCkpOyB9Ci0gICAgICAgIHZvaWQgY2xlYXIoKSB7IG1faW5saW5lSXRlbUxpc3QuY2xlYXIo
KTsgfQorICAgICAgICBzdHJ1Y3QgQ29udGVudEF0dHJpYnV0ZXMgeworICAgICAgICAgICAgYm9v
bCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgeyBmYWxzZSB9OworICAgICAgICAgICAgLy8gTm90
ZSB0aGF0IDxzcGFuPnRoaXMgaXMgdGV4dDwvc3Bhbj4gcmV0dXJucyB0cnVlIGFzIGlubGluZSBi
b3hlcyBhcmUgbm90IGNvbnNpZGVyZWQgJ2NvbnRlbnQnIGhlcmUuCisgICAgICAgICAgICBib29s
IGhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCB7IGZhbHNlIH07CisgICAgICAgICAgICBz
aXplX3QgaW5saW5lQm94Q291bnQgeyAwIH07CisgICAgICAgIH07CisgICAgICAgIHZvaWQgc2V0
KElubGluZUl0ZW1MaXN0JiYsIENvbnRlbnRBdHRyaWJ1dGVzKTsKKyAgICAgICAgdm9pZCByZXBs
YWNlKHNpemVfdCBpbnNlcnRpb25Qb3NpdGlvbiwgSW5saW5lSXRlbUxpc3QmJiwgQ29udGVudEF0
dHJpYnV0ZXMpOwogICAgICAgICB2b2lkIHNocmlua1RvRml0KCkgeyBtX2lubGluZUl0ZW1MaXN0
LnNocmlua1RvRml0KCk7IH0KIAogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biBjb250ZW50KCkuaXNFbXB0eSgpOyB9CiAgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gY29udGVudCgpLnNpemUoKTsgfQogCi0gICAgICAgIHZvaWQgc2V0UmVxdWlyZXNWaXN1
YWxSZW9yZGVyaW5nKGJvb2wgY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZykgeyBtX2Nv
bnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgPSBjb250ZW50UmVxdWlyZXNWaXN1YWxSZW9y
ZGVyaW5nOyB9Ci0gICAgICAgIGJvb2wgcmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nOyB9Ci0KLSAgICAgICAg
dm9pZCBzZXRJc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQoYm9vbCBp
c05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQpIHsgbV9pc05vbkJpZGlU
ZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBpc05vbkJpZGlUZXh0QW5kRm9yY2Vk
TGluZUJyZWFrT25seUNvbnRlbnQ7IH0KLSAgICAgICAgYm9vbCBpc05vbkJpZGlUZXh0QW5kRm9y
Y2VkTGluZUJyZWFrT25seUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2lzTm9uQmlkaVRleHRB
bmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudDsgfQorICAgICAgICBib29sIHJlcXVpcmVzVmlz
dWFsUmVvcmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudEF0dHJpYnV0ZXMucmVxdWly
ZXNWaXN1YWxSZW9yZGVyaW5nOyB9CisgICAgICAgIGJvb2wgaGFzVGV4dEFuZExpbmVCcmVha09u
bHlDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50QXR0cmlidXRlcy5oYXNUZXh0QW5k
TGluZUJyZWFrT25seUNvbnRlbnQ7IH0KKyAgICAgICAgYm9vbCBoYXNJbmxpbmVCb3hlcygpIGNv
bnN0IHsgcmV0dXJuICEhaW5saW5lQm94Q291bnQoKTsgfQorICAgICAgICBzaXplX3QgaW5saW5l
Qm94Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRBdHRyaWJ1dGVzLmlubGluZUJveENv
dW50OyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBDb250ZW50QXR0cmlidXRlcyBtX2NvbnRl
bnRBdHRyaWJ1dGVzOwogICAgICAgICBJbmxpbmVJdGVtTGlzdCBtX2lubGluZUl0ZW1MaXN0Owot
ICAgICAgICBib29sIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyB7IGZhbHNlIH07
Ci0gICAgICAgIGJvb2wgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRl
bnQgeyBmYWxzZSB9OworCiAgICAgfTsKICAgICBjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRl
bXMoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUl0ZW1zOyB9CiAgICAgSW5saW5lSXRlbXMmIGlu
bGluZUl0ZW1zKCkgeyByZXR1cm4gbV9pbmxpbmVJdGVtczsgfQpAQCAtODksNiArOTIsMTkgQEAg
aW5saW5lIHZvaWQgSW5saW5lQ29udGVudENhY2hlOjpyZXNldE1pbmltdW1NYXhpbXVtQ29udGVu
dFNpemVzKCkKICAgICBtX21heGltdW1JbnRyaW5zaWNXaWR0aExpbmVDb250ZW50ID0geyB9Owog
fQogCitpbmxpbmUgdm9pZCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zOjpzZXQoSW5s
aW5lSXRlbUxpc3QmJiBpbmxpbmVJdGVtTGlzdCwgQ29udGVudEF0dHJpYnV0ZXMgY29udGVudEF0
dHJpYnV0ZXMpCit7CisgICAgbV9pbmxpbmVJdGVtTGlzdCA9IFdURk1vdmUoaW5saW5lSXRlbUxp
c3QpOworICAgIG1fY29udGVudEF0dHJpYnV0ZXMgPSBjb250ZW50QXR0cmlidXRlczsKK30KKwor
aW5saW5lIHZvaWQgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtczo6cmVwbGFjZShzaXpl
X3QgaW5zZXJ0aW9uUG9zaXRpb24sIElubGluZUl0ZW1MaXN0JiYgaW5saW5lSXRlbUxpc3QsIENv
bnRlbnRBdHRyaWJ1dGVzIGNvbnRlbnRBdHRyaWJ1dGVzKQoreworICAgIG1faW5saW5lSXRlbUxp
c3QucmVtb3ZlKGluc2VydGlvblBvc2l0aW9uLCBtX2lubGluZUl0ZW1MaXN0LnNpemUoKSAtIGlu
c2VydGlvblBvc2l0aW9uKTsKKyAgICBtX2lubGluZUl0ZW1MaXN0LmFwcGVuZFZlY3RvcihXVEZN
b3ZlKGlubGluZUl0ZW1MaXN0KSk7CisgICAgbV9jb250ZW50QXR0cmlidXRlcyA9IGNvbnRlbnRB
dHRyaWJ1dGVzOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCAwZWU0Yjg2OGI0MTUuLjEyMzUxYjM0NjVlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAt
MTQyLDcgKzE0Miw3IEBAIElubGluZUxheW91dFJlc3VsdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDo6bGF5b3V0KGNvbnN0IENvbnN0cmFpbnRzRm9ySW5saW5lQ29uCiAgICAgICAgICAgICBsYXlv
dXRTdGF0ZSgpLnNldEF2YWlsYWJsZUxpbmVXaWR0aE92ZXJyaWRlKHsgKmJhbGFuY2VkTGluZVdp
ZHRocyB9KTsKICAgICB9CiAKLSAgICBpZiAoVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aXNF
bGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChyb290KCksIGlubGluZUNv
bnRlbnRDYWNoZSgpLCAmcGxhY2VkRmxvYXRzKSkgeworICAgIGlmIChUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJv
b3QoKSwgaW5saW5lQ29udGVudENhY2hlKCkuaW5saW5lSXRlbXMoKSwgJnBsYWNlZEZsb2F0cykp
IHsKICAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyIHsgKnRoaXMsIGNvbnN0cmFpbnRzLmhvcml6b250YWwoKSwgaW5saW5lSXRlbUxp
c3QgfTsKICAgICAgICAgcmV0dXJuIGxpbmVMYXlvdXQoc2ltcGxpZmllZExpbmVCdWlsZGVyLCBp
bmxpbmVJdGVtTGlzdCwgbmVlZHNMYXlvdXRSYW5nZSwgcHJldmlvdXNMaW5lKCksIGNvbnN0cmFp
bnRzLCBsaW5lRGFtYWdlKTsKICAgICB9CkBAIC0xNjAsMTAgKzE2MCwxMCBAQCBzdGQ6OnBhaXI8
TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Om1pbmltdW1N
YXhpbXVtQ29udGVudAogICAgICAgICByZXR1cm4geyBjZWlsZWRMYXlvdXRVbml0KCptaW5pbXVt
Q29udGVudFNpemUpLCBjZWlsZWRMYXlvdXRVbml0KCptYXhpbXVtQ29udGVudFNpemUpIH07CiAK
ICAgICByZWJ1aWxkSW5saW5lSXRlbUxpc3RJZk5lZWRlZChsaW5lRGFtYWdlKTsKLSAgICBhdXRv
JiBpbmxpbmVJdGVtTGlzdCA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVtcygpLmNvbnRl
bnQoKTsKKyAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJ
dGVtcygpOwogCi0gICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJdGVtTGlzdCkp
IHsKLSAgICAgICAgYXV0byBpbnRyaW5zaWNXaWR0aEhhbmRsZXIgPSBJbnRyaW5zaWNXaWR0aEhh
bmRsZXIgeyAqdGhpcywgaW5saW5lSXRlbUxpc3QsIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6
OmlzRWxpZ2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQocm9vdCgpLCBpbmxp
bmVDb250ZW50Q2FjaGUpIH07CisgICAgaWYgKCFpc0VtcHR5SW5saW5lQ29udGVudChpbmxpbmVJ
dGVtcy5jb250ZW50KCkpKSB7CisgICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhIYW5kbGVyID0g
SW50cmluc2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGluZUl0ZW1zIH07CiAKICAgICAgICAg
aWYgKCFtaW5pbXVtQ29udGVudFNpemUpCiAgICAgICAgICAgICBtaW5pbXVtQ29udGVudFNpemUg
PSBpbnRyaW5zaWNXaWR0aEhhbmRsZXIubWluaW11bUNvbnRlbnRTaXplKCk7CkBAIC0xODgsMTAg
KzE4OCwxMCBAQCBMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjptaW5pbXVtQ29u
dGVudFNpemUoY29uc3QgSW5saW5lRGFtYWdlKiBsaW5lRAogICAgICAgICByZXR1cm4gY2VpbGVk
TGF5b3V0VW5pdCgqaW5saW5lQ29udGVudENhY2hlLm1pbmltdW1Db250ZW50U2l6ZSgpKTsKIAog
ICAgIHJlYnVpbGRJbmxpbmVJdGVtTGlzdElmTmVlZGVkKGxpbmVEYW1hZ2UpOwotICAgIGF1dG8m
IGlubGluZUl0ZW1MaXN0ID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0ZW1zKCkuY29udGVu
dCgpOworICAgIGF1dG8mIGlubGluZUl0ZW1zID0gaW5saW5lQ29udGVudENhY2hlLmlubGluZUl0
ZW1zKCk7CiAgICAgYXV0byBtaW5pbXVtQ29udGVudFNpemUgPSBJbmxpbmVMYXlvdXRVbml0IHsg
fTsKLSAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250ZW50KGlubGluZUl0ZW1MaXN0KSkKLSAgICAg
ICAgbWluaW11bUNvbnRlbnRTaXplID0gSW50cmluc2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlu
bGluZUl0ZW1MaXN0LCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9yU2lt
cGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lQ29udGVudENhY2hlKSB9
Lm1pbmltdW1Db250ZW50U2l6ZSgpOworICAgIGlmICghaXNFbXB0eUlubGluZUNvbnRlbnQoaW5s
aW5lSXRlbXMuY29udGVudCgpKSkKKyAgICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gSW50cmlu
c2ljV2lkdGhIYW5kbGVyIHsgKnRoaXMsIGlubGluZUl0ZW1zIH0ubWluaW11bUNvbnRlbnRTaXpl
KCk7CiAgICAgaW5saW5lQ29udGVudENhY2hlLnNldE1pbmltdW1Db250ZW50U2l6ZShtaW5pbXVt
Q29udGVudFNpemUpOwogICAgIHJldHVybiBjZWlsZWRMYXlvdXRVbml0KG1pbmltdW1Db250ZW50
U2l6ZSk7CiB9CkBAIC0yMDMsMTAgKzIwMywxMCBAQCBMYXlvdXRVbml0IElubGluZUZvcm1hdHRp
bmdDb250ZXh0OjptYXhpbXVtQ29udGVudFNpemUoY29uc3QgSW5saW5lRGFtYWdlKiBsaW5lRAog
ICAgICAgICByZXR1cm4gY2VpbGVkTGF5b3V0VW5pdCgqaW5saW5lQ29udGVudENhY2hlLm1heGlt
dW1Db250ZW50U2l6ZSgpKTsKIAogICAgIHJlYnVpbGRJbmxpbmVJdGVtTGlzdElmTmVlZGVkKGxp
bmVEYW1hZ2UpOwotICAgIGF1dG8mIGlubGluZUl0ZW1MaXN0ID0gaW5saW5lQ29udGVudENhY2hl
LmlubGluZUl0ZW1zKCkuY29udGVudCgpOworICAgIGF1dG8mIGlubGluZUl0ZW1zID0gaW5saW5l
Q29udGVudENhY2hlLmlubGluZUl0ZW1zKCk7CiAgICAgYXV0byBtYXhpbXVtQ29udGVudFNpemUg
PSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKLSAgICBpZiAoIWlzRW1wdHlJbmxpbmVDb250ZW50KGlu
bGluZUl0ZW1MaXN0KSkgewotICAgICAgICBhdXRvIGludHJpbnNpY1dpZHRoSGFuZGxlciA9IElu
dHJpbnNpY1dpZHRoSGFuZGxlciB7ICp0aGlzLCBpbmxpbmVJdGVtTGlzdCwgVGV4dE9ubHlTaW1w
bGVMaW5lQnVpbGRlcjo6aXNFbGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91
dChyb290KCksIGlubGluZUNvbnRlbnRDYWNoZSkgfTsKKyAgICBpZiAoIWlzRW1wdHlJbmxpbmVD
b250ZW50KGlubGluZUl0ZW1zLmNvbnRlbnQoKSkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNX
aWR0aEhhbmRsZXIgPSBJbnRyaW5zaWNXaWR0aEhhbmRsZXIgeyAqdGhpcywgaW5saW5lSXRlbXMg
fTsKIAogICAgICAgICBtYXhpbXVtQ29udGVudFNpemUgPSBpbnRyaW5zaWNXaWR0aEhhbmRsZXIu
bWF4aW11bUNvbnRlbnRTaXplKCk7CiAgICAgICAgIGlmIChpbnRyaW5zaWNXaWR0aEhhbmRsZXIu
bWF4aW11bUludHJpbnNpY1dpZHRoTGluZUNvbnRlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVJdGVtc0J1aWxkZXIuY3BwCmluZGV4IDAwNmQzYTBjZGMyZS4uNTU3NTRhZDYyYTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKQEAgLTk4LDE4ICs5
OCwxNiBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6YnVpbGQoSW5saW5lSXRlbVBvc2l0aW9u
IHN0YXJ0UG9zaXRpb24pCiAgICAgY29tcHV0ZUlubGluZVRleHRJdGVtV2lkdGhzKGlubGluZUl0
ZW1MaXN0KTsKIAogICAgIGF1dG8gYWRqdXN0SW5saW5lQ29udGVudENhY2hlV2l0aE5ld0lubGlu
ZUl0ZW1zID0gWyZdIHsKKyAgICAgICAgYXV0byBjb250ZW50QXR0cmlidXRlcyA9IElubGluZUNv
bnRlbnRDYWNoZTo6SW5saW5lSXRlbXM6OkNvbnRlbnRBdHRyaWJ1dGVzIHsgbV9jb250ZW50UmVx
dWlyZXNWaXN1YWxSZW9yZGVyaW5nLCBtX2lzVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250
ZW50LCBtX2lubGluZUJveENvdW50IH07CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW1DYWNoZSA9
IGlubGluZUNvbnRlbnRDYWNoZSgpLmlubGluZUl0ZW1zKCk7CiAgICAgICAgIGlmICghc3RhcnRQ
b3NpdGlvbikKLSAgICAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtQ2FjaGUuc2V0KFdURk1vdmUo
aW5saW5lSXRlbUxpc3QpKTsKKyAgICAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtQ2FjaGUuc2V0
KFdURk1vdmUoaW5saW5lSXRlbUxpc3QpLCBjb250ZW50QXR0cmlidXRlcyk7CiAgICAgICAgIC8v
IExldCdzIGZpcnN0IHJlbW92ZSB0aGUgZGlydHkgaW5saW5lIGl0ZW1zIGlmIHRoZXJlIGFyZSBh
bnkuCi0gICAgICAgIGF1dG8mIGN1cnJlbnRJbmxpbmVJdGVtcyA9IGlubGluZUl0ZW1DYWNoZS5j
b250ZW50KCk7Ci0gICAgICAgIGlmIChzdGFydFBvc2l0aW9uLmluZGV4ID49IGN1cnJlbnRJbmxp
bmVJdGVtcy5zaXplKCkpIHsKKyAgICAgICAgaWYgKHN0YXJ0UG9zaXRpb24uaW5kZXggPj0gaW5s
aW5lSXRlbUNhY2hlLmNvbnRlbnQoKS5zaXplKCkpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1DYWNoZS5zZXQoV1RGTW92
ZShpbmxpbmVJdGVtTGlzdCkpOworICAgICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1DYWNoZS5z
ZXQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCksIGNvbnRlbnRBdHRyaWJ1dGVzKTsKICAgICAgICAg
fQotICAgICAgICAvLyBGSVhNRTogVXNlIHJlcGxhY2UgaW5zdGVhZC4KLSAgICAgICAgY3VycmVu
dElubGluZUl0ZW1zLnJlbW92ZShzdGFydFBvc2l0aW9uLmluZGV4LCBjdXJyZW50SW5saW5lSXRl
bXMuc2l6ZSgpIC0gc3RhcnRQb3NpdGlvbi5pbmRleCk7Ci0gICAgICAgIGlubGluZUl0ZW1DYWNo
ZS5hcHBlbmQoV1RGTW92ZShpbmxpbmVJdGVtTGlzdCkpOworICAgICAgICBpbmxpbmVJdGVtQ2Fj
aGUucmVwbGFjZShzdGFydFBvc2l0aW9uLmluZGV4LCBXVEZNb3ZlKGlubGluZUl0ZW1MaXN0KSwg
Y29udGVudEF0dHJpYnV0ZXMpOwogICAgIH07CiAgICAgYWRqdXN0SW5saW5lQ29udGVudENhY2hl
V2l0aE5ld0lubGluZUl0ZW1zKCk7CiAKQEAgLTE1NSw3ICsxNTMsMTEgQEAgYm9vbCBJbmxpbmVJ
dGVtc0J1aWxkZXI6OnRyYXZlcnNlVW50aWxEYW1hZ2VkKExheW91dFF1ZXVlJiBsYXlvdXRRdWV1
ZSwgY29uc3QgQm8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBtX2NvbnRlbnRSZXF1aXJl
c1Zpc3VhbFJlb3JkZXJpbmcgPSBtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcgfHwg
cmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKHN1YnRyZWVSb290KTsKLSAgICBtX2lzTm9uQmlkaVRl
eHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IG1faXNOb25CaWRpVGV4dEFuZEZvcmNl
ZExpbmVCcmVha09ubHlDb250ZW50ICYmICFtX2NvbnRlbnRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJp
bmcgJiYgaXNUZXh0T3JMaW5lQnJlYWsoc3VidHJlZVJvb3QpOworICAgIGlmICghaXNUZXh0T3JM
aW5lQnJlYWsoc3VidHJlZVJvb3QpKSB7CisgICAgICAgIG1faXNUZXh0QW5kRm9yY2VkTGluZUJy
ZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgaWYgKHN1YnRyZWVSb290LmlzSW5saW5l
Qm94KCkpCisgICAgICAgICAgICArK21faW5saW5lQm94Q291bnQ7CisgICAgfQogCiAgICAgYXV0
byBzaG91bGRTa2lwU3VidHJlZSA9IHN1YnRyZWVSb290LmVzdGFibGlzaGVzRm9ybWF0dGluZ0Nv
bnRleHQoKTsKICAgICBpZiAoIXNob3VsZFNraXBTdWJ0cmVlICYmIGlzPEVsZW1lbnRCb3g+KHN1
YnRyZWVSb290KSAmJiBkb3duY2FzdDxFbGVtZW50Qm94PihzdWJ0cmVlUm9vdCkuaGFzQ2hpbGQo
KSkgewpAQCAtMjU2LDcgKzI1OCw3IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpjb2xsZWN0
SW5saW5lSXRlbXMoSW5saW5lSXRlbUxpc3QmIGlubGluZUl0ZW1MaXN0LCBJbmxpCiAgICAgICAg
IHdoaWxlICghbGF5b3V0UXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBhdXRvIGxheW91
dEJveCA9IGxheW91dFF1ZXVlLnRha2VMYXN0KCk7CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94
LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICAgICAgICAgIG1faXNOb25CaWRp
VGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gZmFsc2U7CisgICAgICAgICAgICAg
ICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgIGlubGluZUl0ZW1MaXN0LmFwcGVuZCh7IGxheW91dEJveCwgSW5saW5lSXRlbTo6
VHlwZTo6T3BhcXVlIH0pOwogICAgICAgICAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3gtPmlzSW5s
aW5lVGV4dEJveCgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lVGV4dEJveCA9IGRv
d25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJveCk7CkBAIC0yNjcsNyArMjY5LDcgQEAgdm9p
ZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVtcyhJbmxpbmVJdGVtTGlzdCYg
aW5saW5lSXRlbUxpc3QsIElubGkKICAgICAgICAgICAgICAgICBoYW5kbGVJbmxpbmVCb3hFbmQo
bGF5b3V0Qm94LCBpbmxpbmVJdGVtTGlzdCk7CiAgICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRC
b3gtPmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgICAgICAgICBpbmxpbmVJdGVt
TGlzdC5hcHBlbmQoeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkZsb2F0IH0pOwotICAg
ICAgICAgICAgICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50
ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5
Q29udGVudCA9IGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAKQEAgLTI3Nyw4ICsyNzksNiBAQCB2b2lkIElubGluZUl0ZW1z
QnVpbGRlcjo6Y29sbGVjdElubGluZUl0ZW1zKElubGluZUl0ZW1MaXN0JiBpbmxpbmVJdGVtTGlz
dCwgSW5saQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIGlubGluZUl0ZW1D
YWNoZS5zZXRJc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQobV9pc05v
bkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQpOwotICAgIGlubGluZUl0ZW1D
YWNoZS5zZXRSZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcobV9jb250ZW50UmVxdWlyZXNWaXN1YWxS
ZW9yZGVyaW5nKTsKIH0KIAogc3RhdGljIHZvaWQgcmVwbGFjZU5vblByZXNlcnZlZE5ld0xpbmVB
bmRUYWJDaGFyYWN0ZXJzQW5kQXBwZW5kKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRC
b3gsIFN0cmluZ0J1aWxkZXImIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyKQpAQCAtNjgyLDcgKzY4
Miw2IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVUZXh0Q29udGVudChjb25zdCBJ
bmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBJCiAgICAgICAgIHJldHVybiBpbmxpbmVJdGVt
TGlzdC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGlubGlu
ZVRleHRCb3gsIHsgfSwgY29udGVudExlbmd0aCwgVUJJRElfREVGQVVMVF9MVFIsIGZhbHNlLCB7
IH0pKTsKIAogICAgIG1fY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyA9IG1fY29udGVu
dFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyB8fCByZXF1aXJlc1Zpc3VhbFJlb3JkZXJpbmcoaW5s
aW5lVGV4dEJveCk7Ci0gICAgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNv
bnRlbnQgPSBtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCAmJiAh
bV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nOwogICAgIGF1dG8mIHN0eWxlID0gaW5s
aW5lVGV4dEJveC5zdHlsZSgpOwogICAgIGF1dG8gc2hvdWxkUHJlc2VydmVTcGFjZXNBbmRUYWJz
ID0gVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhpbmxpbmVUZXh0Qm94KTsK
ICAgICBhdXRvIHNob3VsZFByZXNlcnZlTmV3bGluZSA9IFRleHRVdGlsOjpzaG91bGRQcmVzZXJ2
ZU5ld2xpbmUoaW5saW5lVGV4dEJveCk7CkBAIC03NzcsMTUgKzc3NiwxNCBAQCB2b2lkIElubGlu
ZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94U3RhcnQoY29uc3QgQm94JiBpbmxpbmVCb3gs
IElubGluZUl0ZW1MaQogewogICAgIGlubGluZUl0ZW1MaXN0LmFwcGVuZCh7IGlubGluZUJveCwg
SW5saW5lSXRlbTo6VHlwZTo6SW5saW5lQm94U3RhcnQgfSk7CiAgICAgbV9jb250ZW50UmVxdWly
ZXNWaXN1YWxSZW9yZGVyaW5nID0gbV9jb250ZW50UmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nIHx8
IHJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZyhpbmxpbmVCb3gpOwotICAgIG1faXNOb25CaWRpVGV4
dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0gZmFsc2U7CisgICAgKyttX2lubGluZUJv
eENvdW50OwogfQogCiB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94RW5k
KGNvbnN0IEJveCYgaW5saW5lQm94LCBJbmxpbmVJdGVtTGlzdCYgaW5saW5lSXRlbUxpc3QpCiB7
CiAgICAgaW5saW5lSXRlbUxpc3QuYXBwZW5kKHsgaW5saW5lQm94LCBJbmxpbmVJdGVtOjpUeXBl
OjpJbmxpbmVCb3hFbmQgfSk7Ci0gICAgQVNTRVJUKCFtX2lzTm9uQmlkaVRleHRBbmRGb3JjZWRM
aW5lQnJlYWtPbmx5Q29udGVudCk7Ci0gICAgbV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJy
ZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKICAgICAvLyBJbmxpbmUgYm94IGVuZCBpdGVtIGl0c2Vs
ZiBjYW4gbm90IHRyaWdnZXIgYmlkaSBjb250ZW50LgorICAgIEFTU0VSVChtX2lubGluZUJveENv
dW50KTsKICAgICBBU1NFUlQoY29udGVudFJlcXVpcmVzVmlzdWFsUmVvcmRlcmluZygpIHx8IGlu
bGluZUJveC5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSB8fCBpbmxpbmVCb3guc3R5
bGUoKS5ydGxPcmRlcmluZygpID09IE9yZGVyOjpWaXN1YWwgfHwgaW5saW5lQm94LnN0eWxlKCku
dW5pY29kZUJpZGkoKSA9PSBVbmljb2RlQmlkaTo6Tm9ybWFsKTsKIH0KIApAQCAtNzk1LDEyICs3
OTMsMTIgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUxldmVsQm94KGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBJbmxpbmVJdGVtTGkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKGxheW91dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkpIHsKLSAgICAgICAgbV9pc05v
bkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAg
bV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtPbmx5Q29udGVudCA9IGZhbHNlOwogICAgICAgICBy
ZXR1cm4gaW5saW5lSXRlbUxpc3QuYXBwZW5kKHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBl
OjpCb3ggfSk7CiAgICAgfQogCiAgICAgaWYgKGxheW91dEJveC5pc0xpbmVCcmVha0JveCgpKSB7
Ci0gICAgICAgIG1faXNOb25CaWRpVGV4dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50ID0g
bV9pc05vbkJpZGlUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgJiYgaXNUZXh0T3JM
aW5lQnJlYWsobGF5b3V0Qm94KTsKKyAgICAgICAgbV9pc1RleHRBbmRGb3JjZWRMaW5lQnJlYWtP
bmx5Q29udGVudCA9IG1faXNUZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgJiYgaXNU
ZXh0T3JMaW5lQnJlYWsobGF5b3V0Qm94KTsKICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1MaXN0
LmFwcGVuZCh7IGxheW91dEJveCwgbGF5b3V0Qm94LmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSA/
IElubGluZUl0ZW06OlR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5IDogSW5saW5lSXRlbTo6VHlw
ZTo6SGFyZExpbmVCcmVhayB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRl
bXNCdWlsZGVyLmgKaW5kZXggMzJjNDIyNjcxMDg3Li4wODVjOTgyYmVlOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0
ZW1zQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCkBAIC02Myw3ICs2Myw4IEBAIHByaXZhdGU6
CiAgICAgY29uc3QgRWxlbWVudEJveCYgbV9yb290OwogCiAgICAgYm9vbCBtX2NvbnRlbnRSZXF1
aXJlc1Zpc3VhbFJlb3JkZXJpbmcgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc05vbkJpZGlUZXh0
QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQgeyB0cnVlIH07CisgICAgYm9vbCBtX2lzVGV4
dEFuZEZvcmNlZExpbmVCcmVha09ubHlDb250ZW50IHsgdHJ1ZSB9OworICAgIHNpemVfdCBtX2lu
bGluZUJveENvdW50IHsgMCB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0ludHJp
bnNpY1dpZHRoSGFuZGxlci5jcHAKaW5kZXggMDM1OWZiYTEzNDc2Li5jNGJlNWMzYzU2NjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0ludHJpbnNpY1dpZHRoSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW50cmluc2ljV2lkdGhIYW5kbGVyLmNwcApAQCAtODAs
MTAgKzgwLDEwIEBAIHN0YXRpYyBib29sIG1heVVzZUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJl
YWtzQXNNYXhpbXVtU2l6ZShjb25zdCBFbGVtZW50Qm94JiByCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLUludHJpbnNpY1dpZHRoSGFuZGxlcjo6SW50cmluc2ljV2lkdGhIYW5kbGVyKElubGluZUZv
cm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgSW5saW5lSXRl
bUxpc3QmIGlubGluZUl0ZW1MaXN0LCBib29sIG1heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGlu
ZUxheW91dCkKK0ludHJpbnNpY1dpZHRoSGFuZGxlcjo6SW50cmluc2ljV2lkdGhIYW5kbGVyKElu
bGluZUZvcm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgSW5s
aW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiAgICAgOiBtX2lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0KGlubGluZUZvcm1hdHRpbmdDb250ZXh0KQotICAgICwgbV9pbmxp
bmVJdGVtTGlzdChpbmxpbmVJdGVtTGlzdCkKLSAgICAsIG1fbWF5VXNlU2ltcGxpZmllZFRleHRP
bmx5SW5saW5lTGF5b3V0KG1heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCkKKyAg
ICAsIG1faW5saW5lSXRlbXMoaW5saW5lSXRlbXMpCisgICAgLCBtX21heVVzZVNpbXBsaWZpZWRU
ZXh0T25seUlubGluZUxheW91dChUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppc0VsaWdpYmxl
Rm9yU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0KHJvb3QoKSwgaW5saW5lSXRlbXMpKQog
ewogfQogCkBAIC05NCwxMCArOTQsMTAgQEAgSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0
aEhhbmRsZXI6Om1pbmltdW1Db250ZW50U2l6ZSgpCiAgICAgaWYgKGlzQ29udGVudEVsaWdpYmxl
Rm9yTm9uTGluZUJ1aWxkZXJNaW5pbXVtV2lkdGgocm9vdCgpLCBtX21heVVzZVNpbXBsaWZpZWRU
ZXh0T25seUlubGluZUxheW91dCkpCiAgICAgICAgIG1pbmltdW1Db250ZW50U2l6ZSA9IHNpbXBs
aWZpZWRNaW5pbXVtV2lkdGgocm9vdCgpKTsKICAgICBlbHNlIGlmIChtX21heVVzZVNpbXBsaWZp
ZWRUZXh0T25seUlubGluZUxheW91dCkgewotICAgICAgICBhdXRvIHNpbXBsaWZpZWRMaW5lQnVp
bGRlciA9IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7
IH0sIG1faW5saW5lSXRlbUxpc3QgfTsKKyAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxk
ZXIgPSBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9
LCBpbmxpbmVJdGVtTGlzdCgpIH07CiAgICAgICAgIG1pbmltdW1Db250ZW50U2l6ZSA9IGNvbXB1
dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KEludHJpbnNpY1dpZHRoTW9kZTo6TWluaW11
bSwgc2ltcGxpZmllZExpbmVCdWlsZGVyLCBNYXlDYWNoZUxheW91dFJlc3VsdDo6Tm8pOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gbGluZUJ1aWxkZXIgPSBMaW5lQnVpbGRlciB7IGZvcm1h
dHRpbmdDb250ZXh0KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9OworICAgICAgICBhdXRvIGxp
bmVCdWlsZGVyID0gTGluZUJ1aWxkZXIgeyBmb3JtYXR0aW5nQ29udGV4dCgpLCB7IH0sIGlubGlu
ZUl0ZW1MaXN0KCkgfTsKICAgICAgICAgbWluaW11bUNvbnRlbnRTaXplID0gY29tcHV0ZWRJbnRy
aW5zaWNXaWR0aEZvckNvbnN0cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNaW5pbXVtLCBsaW5l
QnVpbGRlciwgTWF5Q2FjaGVMYXlvdXRSZXN1bHQ6Ok5vKTsKICAgICB9CiAKQEAgLTEwOSwyMSAr
MTA5LDIxIEBAIElubGluZUxheW91dFVuaXQgSW50cmluc2ljV2lkdGhIYW5kbGVyOjptYXhpbXVt
Q29udGVudFNpemUoKQogICAgIGF1dG8gbWF5Q2FjaGVMYXlvdXRSZXN1bHQgPSBtX21heVVzZVNp
bXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dCA/IE1heUNhY2hlTGF5b3V0UmVzdWx0OjpZZXMg
OiBNYXlDYWNoZUxheW91dFJlc3VsdDo6Tm87CiAgICAgYXV0byBtYXhpbXVtQ29udGVudFNpemUg
PSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKIAotICAgIGlmIChpc0NvbnRlbnRFbGlnaWJsZUZvck5v
bkxpbmVCdWlsZGVyTWF4aW11bVdpZHRoKHJvb3QoKSwgbV9pbmxpbmVJdGVtTGlzdCkpCisgICAg
aWYgKGlzQ29udGVudEVsaWdpYmxlRm9yTm9uTGluZUJ1aWxkZXJNYXhpbXVtV2lkdGgocm9vdCgp
LCBpbmxpbmVJdGVtTGlzdCgpKSkKICAgICAgICAgbWF4aW11bUNvbnRlbnRTaXplID0gc2ltcGxp
ZmllZE1heGltdW1XaWR0aChtYXlDYWNoZUxheW91dFJlc3VsdCk7CiAgICAgZWxzZSBpZiAobV9t
YXlVc2VTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQpIHsKLSAgICAgICAgaWYgKG1fbWF4
aW11bUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzICYmIG1heVVzZUNvbnRlbnRXaWR0aEJl
dHdlZW5MaW5lQnJlYWtzQXNNYXhpbXVtU2l6ZShyb290KCksIG1faW5saW5lSXRlbUxpc3QpKSB7
CisgICAgICAgIGlmIChtX21heGltdW1Db250ZW50V2lkdGhCZXR3ZWVuTGluZUJyZWFrcyAmJiBt
YXlVc2VDb250ZW50V2lkdGhCZXR3ZWVuTGluZUJyZWFrc0FzTWF4aW11bVNpemUocm9vdCgpLCBp
bmxpbmVJdGVtTGlzdCgpKSkgewogICAgICAgICAgICAgbWF4aW11bUNvbnRlbnRTaXplID0gKm1f
bWF4aW11bUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzOwogI2lmbmRlZiBOREVCVUcKLSAg
ICAgICAgICAgIGF1dG8gc2ltcGxpZmllZExpbmVCdWlsZGVyID0gVGV4dE9ubHlTaW1wbGVMaW5l
QnVpbGRlciB7IGZvcm1hdHRpbmdDb250ZXh0KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9Owor
ICAgICAgICAgICAgYXV0byBzaW1wbGlmaWVkTGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBpbmxpbmVJdGVtTGlzdCgpIH07
CiAgICAgICAgICAgICBBU1NFUlQoc3RkOjphYnMobWF4aW11bUNvbnRlbnRTaXplIC0gY29tcHV0
ZWRJbnRyaW5zaWNXaWR0aEZvckNvbnN0cmFpbnQoSW50cmluc2ljV2lkdGhNb2RlOjpNYXhpbXVt
LCBzaW1wbGlmaWVkTGluZUJ1aWxkZXIsIE1heUNhY2hlTGF5b3V0UmVzdWx0OjpObykpIDwgMSk7
CiAjZW5kaWYKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gc2ltcGxpZmllZExp
bmVCdWlsZGVyID0gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlciB7IGZvcm1hdHRpbmdDb250ZXh0
KCksIHsgfSwgbV9pbmxpbmVJdGVtTGlzdCB9OworICAgICAgICAgICAgYXV0byBzaW1wbGlmaWVk
TGluZUJ1aWxkZXIgPSBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRl
eHQoKSwgeyB9LCBpbmxpbmVJdGVtTGlzdCgpIH07CiAgICAgICAgICAgICBtYXhpbXVtQ29udGVu
dFNpemUgPSBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJbnRyaW5zaWNXaWR0
aE1vZGU6Ok1heGltdW0sIHNpbXBsaWZpZWRMaW5lQnVpbGRlciwgbWF5Q2FjaGVMYXlvdXRSZXN1
bHQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byBsaW5lQnVpbGRlciA9
IExpbmVCdWlsZGVyIHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgeyB9LCBtX2lubGluZUl0ZW1MaXN0
IH07CisgICAgICAgIGF1dG8gbGluZUJ1aWxkZXIgPSBMaW5lQnVpbGRlciB7IGZvcm1hdHRpbmdD
b250ZXh0KCksIHsgfSwgaW5saW5lSXRlbUxpc3QoKSB9OwogICAgICAgICBtYXhpbXVtQ29udGVu
dFNpemUgPSBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludChJbnRyaW5zaWNXaWR0
aE1vZGU6Ok1heGltdW0sIGxpbmVCdWlsZGVyLCBtYXlDYWNoZUxheW91dFJlc3VsdCk7CiAgICAg
fQogCkBAIC0xMzUsNyArMTM1LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0aEhh
bmRsZXI6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhGb3JDb25zdHJhaW50KEludHIKICAgICBhdXRv
IGhvcml6b250YWxDb25zdHJhaW50cyA9IEhvcml6b250YWxDb25zdHJhaW50cyB7IH07CiAgICAg
aWYgKGludHJpbnNpY1dpZHRoTW9kZSA9PSBJbnRyaW5zaWNXaWR0aE1vZGU6Ok1heGltdW0pCiAg
ICAgICAgIGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGggPSBtYXhJbmxpbmVMYXlv
dXRVbml0KCk7Ci0gICAgYXV0byBsYXlvdXRSYW5nZSA9IElubGluZUl0ZW1SYW5nZSB7IDAgLCBt
X2lubGluZUl0ZW1MaXN0LnNpemUoKSB9OworICAgIGF1dG8gbGF5b3V0UmFuZ2UgPSBJbmxpbmVJ
dGVtUmFuZ2UgeyAwICwgaW5saW5lSXRlbUxpc3QoKS5zaXplKCkgfTsKICAgICBpZiAobGF5b3V0
UmFuZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC0yMzEsNyArMjMxLDcg
QEAgSW5saW5lTGF5b3V0VW5pdCBJbnRyaW5zaWNXaWR0aEhhbmRsZXI6OnNpbXBsaWZpZWRNaW5p
bXVtV2lkdGgoY29uc3QgRWxlbWVudEJveCYKIElubGluZUxheW91dFVuaXQgSW50cmluc2ljV2lk
dGhIYW5kbGVyOjpzaW1wbGlmaWVkTWF4aW11bVdpZHRoKE1heUNhY2hlTGF5b3V0UmVzdWx0IG1h
eUNhY2hlTGF5b3V0UmVzdWx0KQogewogICAgIEFTU0VSVChyb290KCkuZmlyc3RDaGlsZCgpICYm
IHJvb3QoKS5maXJzdENoaWxkKCkgPT0gcm9vdCgpLmxhc3RDaGlsZCgpKTsKLSAgICBhdXRvJiBp
bmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihtX2lubGluZUl0ZW1MaXN0
WzBdKTsKKyAgICBhdXRvJiBpbmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVt
PihpbmxpbmVJdGVtTGlzdCgpWzBdKTsKICAgICBhdXRvJiBzdHlsZSA9IGlubGluZVRleHRJdGVt
LmZpcnN0TGluZVN0eWxlKCk7CiAKICAgICBhdXRvIGNvbnRlbnRMb2dpY2FsV2lkdGggPSBUZXh0
VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0ZW0sIHN0eWxlLmZvbnRDYXNjYWRlKCksIHsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0ludHJpbnNpY1dpZHRoSGFuZGxlci5oCmluZGV4IDJiODk5MTAx
OWUzNi4uMGJmZmM5OWY5NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRyaW5zaWNXaWR0aEhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbnRyaW5zaWNXaWR0
aEhhbmRsZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IklubGluZUNvbnRlbnRDYWNoZS5oIgogI2luY2x1ZGUgIkxpbmVMYXlvdXRSZXN1bHQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsMTIgKzMzLDEwIEBAIG5hbWVzcGFjZSBMYXlvdXQg
ewogCiBjbGFzcyBBYnN0cmFjdExpbmVCdWlsZGVyOwogY2xhc3MgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ7Ci1jbGFzcyBJbmxpbmVDb250ZW50Q2FjaGU7Ci1zdHJ1Y3QgSW50cmluc2ljV2lkdGhD
b25zdHJhaW50czsKIAogY2xhc3MgSW50cmluc2ljV2lkdGhIYW5kbGVyIHsKIHB1YmxpYzoKLSAg
ICBJbnRyaW5zaWNXaWR0aEhhbmRsZXIoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmLCBjb25zdCBJ
bmxpbmVJdGVtTGlzdCYsIGJvb2wgbWF5VXNlU2ltcGxpZmllZFRleHRPbmx5SW5saW5lTGF5b3V0
KTsKKyAgICBJbnRyaW5zaWNXaWR0aEhhbmRsZXIoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmLCBj
b25zdCBJbmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zJik7CiAKICAgICBJbmxpbmVMYXlv
dXRVbml0IG1pbmltdW1Db250ZW50U2l6ZSgpOwogICAgIElubGluZUxheW91dFVuaXQgbWF4aW11
bUNvbnRlbnRTaXplKCk7CkBAIC01NCwxMCArNTMsMTEgQEAgcHJpdmF0ZToKICAgICBjb25zdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAgICBj
b25zdCBJbmxpbmVDb250ZW50Q2FjaGUmIGZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0OwogICAgIGNv
bnN0IEVsZW1lbnRCb3gmIHJvb3QoKSBjb25zdDsKKyAgICBjb25zdCBJbmxpbmVJdGVtTGlzdCYg
aW5saW5lSXRlbUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUl0ZW1zLmNvbnRlbnQoKTsg
fQogCiBwcml2YXRlOgogICAgIElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBtX2lubGluZUZvcm1h
dHRpbmdDb250ZXh0OwotICAgIGNvbnN0IElubGluZUl0ZW1MaXN0JiBtX2lubGluZUl0ZW1MaXN0
OworICAgIGNvbnN0IElubGluZUNvbnRlbnRDYWNoZTo6SW5saW5lSXRlbXMmIG1faW5saW5lSXRl
bXM7CiAgICAgY29uc3QgYm9vbCBtX21heVVzZVNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91
dCB7IGZhbHNlIH07CiAKICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1fbWF4
aW11bUNvbnRlbnRXaWR0aEJldHdlZW5MaW5lQnJlYWtzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxl
TGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAKaW5kZXggY2IwZmZjMzNhMjIw
Li4zZGYzNGE3MzIyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2lt
cGxlTGluZUJ1aWxkZXIuY3BwCkBAIC00NDIsMTMgKzQ0MiwxMyBAQCBJbmxpbmVMYXlvdXRVbml0
IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmF2YWlsYWJsZVdpZHRoKCkgY29uc3QKICAgICBy
ZXR1cm4gKG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCkgKyBMYXlvdXRVbml0OjplcHNpbG9uKCkp
IC0gKCFzdGQ6OmlzbmFuKGNvbnRlbnRMb2dpY2FsUmlnaHQpID8gY29udGVudExvZ2ljYWxSaWdo
dCA6IDAuZik7CiB9CiAKLWJvb2wgVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aXNFbGlnaWJs
ZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChjb25zdCBFbGVtZW50Qm94JiByb290
Qm94LCBjb25zdCBJbmxpbmVDb250ZW50Q2FjaGUmIGlubGluZUNvbnRlbnRDYWNoZSwgY29uc3Qg
UGxhY2VkRmxvYXRzKiBwbGFjZWRGbG9hdHMpCitib29sIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXI6OmlzRWxpZ2libGVGb3JTaW1wbGlmaWVkVGV4dE9ubHlJbmxpbmVMYXlvdXQoY29uc3QgRWxl
bWVudEJveCYgcm9vdEJveCwgY29uc3QgSW5saW5lQ29udGVudENhY2hlOjpJbmxpbmVJdGVtcyYg
aW5saW5lSXRlbXMsIGNvbnN0IFBsYWNlZEZsb2F0cyogcGxhY2VkRmxvYXRzKQogewogICAgIGlm
IChwbGFjZWRGbG9hdHMgJiYgIXBsYWNlZEZsb2F0cy0+aXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKGlubGluZUNvbnRlbnRDYWNoZS5pbmxpbmVJdGVtcygpLmlzRW1w
dHkoKSkKKyAgICBpZiAoaW5saW5lSXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFpbmxpbmVDb250ZW50Q2FjaGUuaW5saW5lSXRlbXMoKS5pc05vbkJpZGlU
ZXh0QW5kRm9yY2VkTGluZUJyZWFrT25seUNvbnRlbnQoKSkKKyAgICBpZiAoIWlubGluZUl0ZW1z
Lmhhc1RleHRBbmRMaW5lQnJlYWtPbmx5Q29udGVudCgpIHx8IGlubGluZUl0ZW1zLmhhc0lubGlu
ZUJveGVzKCkgfHwgaW5saW5lSXRlbXMucmVxdWlyZXNWaXN1YWxSZW9yZGVyaW5nKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8mIHJvb3RTdHlsZSA9IHJvb3RCb3guc3R5bGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaApp
bmRleCAzZmU2NzNhNzIyZmIuLjI3YzRkNTc1MjgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVp
bGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaApAQCAtMjYsMTIgKzI2LDEyIEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkFic3RyYWN0TGluZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJJ
bmxpbmVDb250ZW50Q2FjaGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExh
eW91dCB7CiAKIGNsYXNzIElubGluZUNvbnRlbnRCcmVha2VyOwotY2xhc3MgSW5saW5lQ29udGVu
dENhY2hlOwogc3RydWN0IENhbmRpZGF0ZVRleHRDb250ZW50Owogc3RydWN0IFRleHRPbmx5TGlu
ZUJyZWFrUmVzdWx0OwogCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICBUZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyKElubGluZUZvcm1hdHRpbmdDb250ZXh0JiwgSG9yaXpvbnRhbENvbnN0
cmFpbnRzIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IElubGluZUl0ZW1MaXN0Jik7
CiAgICAgTGluZUxheW91dFJlc3VsdCBsYXlvdXRJbmxpbmVDb250ZW50KGNvbnN0IExpbmVJbnB1
dCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8UHJldmlvdXNMaW5lPiYpIGZpbmFsOwogCi0gICAgc3Rh
dGljIGJvb2wgaXNFbGlnaWJsZUZvclNpbXBsaWZpZWRUZXh0T25seUlubGluZUxheW91dChjb25z
dCBFbGVtZW50Qm94JiByb290LCBjb25zdCBJbmxpbmVDb250ZW50Q2FjaGUmLCBjb25zdCBQbGFj
ZWRGbG9hdHMqID0gbnVsbHB0cik7CisgICAgc3RhdGljIGJvb2wgaXNFbGlnaWJsZUZvclNpbXBs
aWZpZWRUZXh0T25seUlubGluZUxheW91dChjb25zdCBFbGVtZW50Qm94JiByb290LCBjb25zdCBJ
bmxpbmVDb250ZW50Q2FjaGU6OklubGluZUl0ZW1zJiwgY29uc3QgUGxhY2VkRmxvYXRzKiA9IG51
bGxwdHIpOwogCiBwcml2YXRlOgogICAgIElubGluZUl0ZW1Qb3NpdGlvbiBwbGFjZUlubGluZVRl
eHRDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5nZSYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>