<?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>231229</bug_id>
          
          <creation_ts>2021-10-05 04:39:10 -0700</creation_ts>
          <short_desc>[LFC][Integration] Split BoxIterator into a base class and LeafBoxIterator</short_desc>
          <delta_ts>2021-10-05 06:55:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</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>1800516</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-05 04:39:10 -0700</bug_when>
    <thetext>Prepare for InlineBoxIterator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800519</commentid>
    <comment_count>1</comment_count>
      <attachid>440199</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-05 04:49:10 -0700</bug_when>
    <thetext>Created attachment 440199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800521</commentid>
    <comment_count>2</comment_count>
      <attachid>440200</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-05 04:50:56 -0700</bug_when>
    <thetext>Created attachment 440200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800539</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-05 06:54:28 -0700</bug_when>
    <thetext>Committed r283547 (242512@main): &lt;https://commits.webkit.org/242512@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440200.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800540</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-05 06:55:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/83884201&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440199</attachid>
            <date>2021-10-05 04:49:10 -0700</date>
            <delta_ts>2021-10-05 04:50:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231229-20211005144908.patch</filename>
            <type>text/plain</type>
            <size>32790</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ1N2M0ZTIwMThjNGEw
YWJlNjg4NzJiZTRmMTEzNTBkMTQ5ZTAyZi4uMDJmMWQyNDU5NzQwZmUyMzk1MjU4MjQ0YzBmMGJi
MzQwMjA5NzExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIxLTEwLTA1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gU3BsaXQgQm94SXRlcmF0b3IgaW50byBhIGJhc2UgY2xhc3MgYW5kIExlYWZCb3hJdGVyYXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGVhZkJv
eEl0ZXJhdG9yIGNvbnRhaW5zIGZ1bmN0aW9uIGZvciB0cmF2ZXJzaW5nIG5vbi1pbmxpbmUgYm94
ZXMuCisgICAgICAgIEJveEl0ZXJhdG9yIGJlY29tZXMgYSBub24taW5zdGFudGlhdGVkIGJhc2Ug
Y2xhc3MuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIElubGlu
ZUJveEl0ZXJhdG9yLgorCisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvc2l0aW9uOjppbmxpbmVSdW5BbmRPZmZzZXQgY29uc3QpOgorICAgICAgICAqIGVk
aXRpbmcvSW5saW5lUnVuQW5kT2Zmc2V0Lmg6CisgICAgICAgICogZWRpdGluZy9SZW5kZXJlZFBv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OlJlbmRlcmVk
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyZWRQb3NpdGlvbjo6cHJldmlvdXNM
ZWFmT25MaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246Om5l
eHRMZWFmT25MaW5lIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24u
aDoKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVVbml0cy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc1RleHRPckxpbmVCcmVha1J1bik6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1RleHRP
ckxpbmVCcmVha1J1bik6CisgICAgICAgIChXZWJDb3JlOjpuZXh0VGV4dE9yTGluZUJyZWFrUnVu
KToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0VGV4dE9yTGluZUJyZWFrUnVuKToKKyAgICAgICAg
KFdlYkNvcmU6OmVuZFRleHRPckxpbmVCcmVha1J1bik6CisgICAgICAgIChXZWJDb3JlOjpsb2dp
Y2FsbHlQcmV2aW91c1J1bik6CisgICAgICAgIChXZWJDb3JlOjpsb2dpY2FsbHlOZXh0UnVuKToK
KyAgICAgICAgKFdlYkNvcmU6OnZpc3VhbFdvcmRQb3NpdGlvbik6CisgICAgICAgICogbGF5b3V0
L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUl0ZXJhdG9yOjpCb3g6Om5leHRPbkxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6OkJveDo6cHJldmlvdXNPbkxpbmUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6OnByZXZpb3VzT25M
aW5lSWdub3JpbmdMaW5lQnJlYWsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxlYWZCb3hJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yOjp0cmF2
ZXJzZVByZXZpb3VzT25MaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
ZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNl
UHJldmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRPbkxpbmVJbkxvZ2ljYWxP
cmRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9y
Ojp0cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OmJveEZvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVy
YXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlUHJldmlvdXNP
bkxpbmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveEl0
ZXJhdG9yOjp0cmF2ZXJzZU5leHRPbkxpbmVJZ25vcmluZ0xpbmVCcmVhayk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlUHJl
dmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZUluTG9naWNh
bE9yZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3hJ
dGVyYXRvcjo6dHJhdmVyc2VQcmV2aW91c09uTGluZUluTG9naWNhbE9yZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guaDoKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvcjo6Qm94SXRlcmF0b3IpOgor
ICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmZpcnN0UnVuIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lOjpsYXN0UnVuIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lOjpsb2dpY2FsU3RhcnRSdW4gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmxvZ2ljYWxFbmRS
dW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmxvZ2lj
YWxTdGFydFJ1bldpdGhOb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJh
dG9yOjpMaW5lOjpsb2dpY2FsRW5kUnVuV2l0aE5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNsb3Nlc3RSdW5Gb3JQb2ludCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y2xvc2VzdFJ1bkZvckxvZ2ljYWxM
ZWZ0UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6Okxp
bmU6OmZpcnN0U2VsZWN0ZWRCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxpbmU6Omxhc3RTZWxlY3RlZEJveCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3Jh
dGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
SXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yKToKKyAgICAgICAgKiBs
YXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94Lmg6CisgICAgICAgICogbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Ym94Rm9yIGNvbnN0KToK
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRy
ZW4pOgorCiAyMDIxLTEwLTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcCBwYXJzaW5nIGNvbnRleHQtc2Vuc2l0aXZlIGNvbG9ycyBpbiBv
dmVycmlkZS1jb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggMWNjM2Y1ZDQyMzdmMmY2
MDZiOGRkMmVmZTllZmE2MTY2YjcyYmY2YS4uNWQwZGI2OWJlYTcwMTIzMzRhZDZhNjIwNzMwZjJm
ZGRlZmMyODI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0xMjEwLDcgKzEyMTAsNyBA
QCBJbmxpbmVSdW5BbmRPZmZzZXQgUG9zaXRpb246OmlubGluZVJ1bkFuZE9mZnNldChBZmZpbml0
eSBhZmZpbml0eSwgVGV4dERpcmVjdGlvbgogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJl
dHVybiB7IHsgfSwgY2FyZXRPZmZzZXQgfTsKIAotICAgIElubGluZUl0ZXJhdG9yOjpCb3hJdGVy
YXRvciBydW47CisgICAgSW5saW5lSXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvciBydW47CiAKICAg
ICBpZiAocmVuZGVyZXItPmlzQlIoKSkgewogICAgICAgICBhdXRvJiBsaW5lQnJlYWtSZW5kZXJl
ciA9IGRvd25jYXN0PFJlbmRlckxpbmVCcmVhaz4oKnJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5saW5lUnVuQW5kT2Zmc2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0lubGluZVJ1bkFuZE9mZnNldC5oCmluZGV4IDk1ZmE2MzQwMDQzNjRjZmRkZDNk
NWI1N2ZiNTI4Y2NmZjRhZjYyYWMuLjc1N2M2ZDU4YzgyYzgxZDVmNDIwZTU5OGFiM2JhYjc2MDIy
NjgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5saW5lUnVuQW5kT2Zm
c2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmxpbmVSdW5BbmRPZmZzZXQuaApA
QCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgSW5saW5lUnVu
QW5kT2Zmc2V0IHsKLSAgICBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgcnVuIHsgfTsKKyAg
ICBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yIHJ1biB7IH07CiAgICAgdW5zaWduZWQg
b2Zmc2V0IHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW5kZXJlZFBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3Np
dGlvbi5jcHAKaW5kZXggZDVjZDBlMmQ3NTZjY2UzYzAwZWMzOTAyMmE0ODQxMTIyZGE2YzFmNi4u
MmQ4M2Y5Y2ZkYzg0Y2EzMzk1NzFjMmI4MWQ4MTBmMDMxYTI2MDkxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCkBAIC02OSw3ICs2OSw3IEBAIFJlbmRl
cmVkUG9zaXRpb246OlJlbmRlcmVkUG9zaXRpb24oKQogewogfQogCi1SZW5kZXJlZFBvc2l0aW9u
OjpSZW5kZXJlZFBvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIElubGluZUl0
ZXJhdG9yOjpCb3hJdGVyYXRvciBydW4sIHVuc2lnbmVkIG9mZnNldCkKK1JlbmRlcmVkUG9zaXRp
b246OlJlbmRlcmVkUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgSW5saW5l
SXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvciBydW4sIHVuc2lnbmVkIG9mZnNldCkKICAgICA6IG1f
cmVuZGVyZXIocmVuZGVyZXIpCiAgICAgLCBtX3J1bihydW4pCiAgICAgLCBtX29mZnNldChvZmZz
ZXQpCkBAIC05NSwxNCArOTUsMTQgQEAgUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlv
bihjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIEFmZmluaXR5IGFmZmluaXR5KQogICAgICAgICBt
X3JlbmRlcmVyID0gcmVuZGVyZXJGcm9tUG9zaXRpb24ocG9zaXRpb24pOwogfQogCi1JbmxpbmVJ
dGVyYXRvcjo6Qm94SXRlcmF0b3IgUmVuZGVyZWRQb3NpdGlvbjo6cHJldmlvdXNMZWFmT25MaW5l
KCkgY29uc3QKK0lubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgUmVuZGVyZWRQb3NpdGlv
bjo6cHJldmlvdXNMZWFmT25MaW5lKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcHJldmlvdXNMZWFm
T25MaW5lKQogICAgICAgICBtX3ByZXZpb3VzTGVhZk9uTGluZSA9IG1fcnVuLT5wcmV2aW91c09u
TGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CiAgICAgcmV0dXJuICptX3ByZXZpb3VzTGVhZk9uTGlu
ZTsKIH0KIAotSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yIFJlbmRlcmVkUG9zaXRpb246Om5l
eHRMZWFmT25MaW5lKCkgY29uc3QKK0lubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgUmVu
ZGVyZWRQb3NpdGlvbjo6bmV4dExlYWZPbkxpbmUoKSBjb25zdAogewogICAgIGlmICghbV9uZXh0
TGVhZk9uTGluZSkKICAgICAgICAgbV9uZXh0TGVhZk9uTGluZSA9IG1fcnVuLT5uZXh0T25MaW5l
SWdub3JpbmdMaW5lQnJlYWsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0
aW9uLmgKaW5kZXggOTA2ZWYwN2NjMWIwMjliMjcyMjViN2U2OGJmOGYzYmM4OTA5MTFhMy4uMjEz
MjIzZDljNTE2NGVjNGE3OTIwYjk1YzdkYjE0MWY2ZGQzYTI3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmgKQEAgLTcyLDIxICs3MiwyMSBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlbmRlcmVkUG9zaXRpb24mKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIGV4cGxpY2l0IFJlbmRlcmVkUG9zaXRpb24oY29u
c3QgUmVuZGVyT2JqZWN0KiwgSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yLCB1bnNpZ25lZCBv
ZmZzZXQpOworICAgIGV4cGxpY2l0IFJlbmRlcmVkUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0
KiwgSW5saW5lSXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvciwgdW5zaWduZWQgb2Zmc2V0KTsKIAot
ICAgIElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBwcmV2aW91c0xlYWZPbkxpbmUoKSBjb25z
dDsKLSAgICBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgbmV4dExlYWZPbkxpbmUoKSBjb25z
dDsKKyAgICBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yIHByZXZpb3VzTGVhZk9uTGlu
ZSgpIGNvbnN0OworICAgIElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgbmV4dExlYWZP
bkxpbmUoKSBjb25zdDsKICAgICBib29sIGF0TGVmdG1vc3RPZmZzZXRJbkJveCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnVuICYmIG1fb2Zmc2V0ID09IG1fcnVuLT5sZWZ0bW9zdENhcmV0T2Zmc2V0KCk7
IH0KICAgICBib29sIGF0UmlnaHRtb3N0T2Zmc2V0SW5Cb3goKSBjb25zdCB7IHJldHVybiBtX3J1
biAmJiBtX29mZnNldCA9PSBtX3J1bi0+cmlnaHRtb3N0Q2FyZXRPZmZzZXQoKTsgfQogICAgIGJv
b2wgYXRMZWZ0Qm91bmRhcnlPZkJpZGlSdW4oU2hvdWxkTWF0Y2hCaWRpTGV2ZWwsIHVuc2lnbmVk
IGNoYXIgYmlkaUxldmVsT2ZSdW4pIGNvbnN0OwogICAgIGJvb2wgYXRSaWdodEJvdW5kYXJ5T2ZC
aWRpUnVuKFNob3VsZE1hdGNoQmlkaUxldmVsLCB1bnNpZ25lZCBjaGFyIGJpZGlMZXZlbE9mUnVu
KSBjb25zdDsKIAogICAgIGNvbnN0IFJlbmRlck9iamVjdCogbV9yZW5kZXJlciB7IG51bGxwdHIg
fTsKLSAgICBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgbV9ydW47CisgICAgSW5saW5lSXRl
cmF0b3I6OkxlYWZCb3hJdGVyYXRvciBtX3J1bjsKICAgICB1bnNpZ25lZCBtX29mZnNldCB7IDAg
fTsKIAotICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0
b3I+IG1fcHJldmlvdXNMZWFmT25MaW5lOwotICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxJbmxp
bmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I+IG1fbmV4dExlYWZPbkxpbmU7CisgICAgbXV0YWJsZSBz
dGQ6Om9wdGlvbmFsPElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3I+IG1fcHJldmlvdXNM
ZWFmT25MaW5lOworICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxJbmxpbmVJdGVyYXRvcjo6TGVh
ZkJveEl0ZXJhdG9yPiBtX25leHRMZWFmT25MaW5lOwogfTsKIAogYm9vbCByZW5kZXJPYmplY3RD
b250YWluc1Bvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFBvc2l0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0cy5jcHAKaW5kZXggN2U5M2YwN2E5YzVjZTJh
NTE2OTNhYTc0MjYzNzA1ZTVkODE4YTdhZi4uOTM4Nzg4ODNjZThkNWY3MDdiNzNiMDJkODc2MDRj
ODVjZWRjZmFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlVW5p
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcApAQCAt
MTI0LDEyICsxMjQsMTIgQEAgc3RhdGljIFBvc2l0aW9uIG5leHRMaW5lQ2FuZGlkYXRlUG9zaXRp
b24oTm9kZSogbm9kZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXMKICAgICByZXR1cm4gUG9z
aXRpb24oKTsKIH0KIAotc3RhdGljIGJvb2wgaXNUZXh0T3JMaW5lQnJlYWtSdW4oSW5saW5lSXRl
cmF0b3I6OkJveEl0ZXJhdG9yIHJ1bikKK3N0YXRpYyBib29sIGlzVGV4dE9yTGluZUJyZWFrUnVu
KElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgcnVuKQogewogICAgIHJldHVybiBydW4g
JiYgKHJ1bi0+aXNUZXh0KCkgfHwgcnVuLT5yZW5kZXJlcigpLmlzQlIoKSk7CiB9CiAKLXN0YXRp
YyBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgcHJldmlvdXNUZXh0T3JMaW5lQnJlYWtSdW4o
SW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yIHJ1bikKK3N0YXRpYyBJbmxpbmVJdGVyYXRvcjo6
TGVhZkJveEl0ZXJhdG9yIHByZXZpb3VzVGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9y
OjpMZWFmQm94SXRlcmF0b3IgcnVuKQogewogICAgIHdoaWxlIChydW4pIHsKICAgICAgICAgcnVu
LnRyYXZlcnNlUHJldmlvdXNPbkxpbmVJbkxvZ2ljYWxPcmRlcigpOwpAQCAtMTM5LDcgKzEzOSw3
IEBAIHN0YXRpYyBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgcHJldmlvdXNUZXh0T3JMaW5l
QnJlYWtSdW4oSW5saW5lSXRlcmF0b3I6OkJvCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotc3RhdGlj
IElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBuZXh0VGV4dE9yTGluZUJyZWFrUnVuKElubGlu
ZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBydW4pCitzdGF0aWMgSW5saW5lSXRlcmF0b3I6OkxlYWZC
b3hJdGVyYXRvciBuZXh0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9yOjpMZWFmQm94
SXRlcmF0b3IgcnVuKQogewogICAgIHdoaWxlIChydW4pIHsKICAgICAgICAgcnVuLnRyYXZlcnNl
TmV4dE9uTGluZUluTG9naWNhbE9yZGVyKCk7CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIElu
bGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBuZXh0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0
ZXJhdG9yOjpCb3hJdGUKICAgICByZXR1cm4geyB9OwogfQogCi1zdGF0aWMgSW5saW5lSXRlcmF0
b3I6OkJveEl0ZXJhdG9yIHN0YXJ0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9yOjpM
aW5lSXRlcmF0b3IgbGluZSkKK3N0YXRpYyBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9y
IHN0YXJ0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3IgbGlu
ZSkKIHsKICAgICBhdXRvIHJ1biA9IGxpbmUtPmxvZ2ljYWxTdGFydFJ1bigpOwogICAgIGlmIChp
c1RleHRPckxpbmVCcmVha1J1bihydW4pKQpAQCAtMTU3LDcgKzE1Nyw3IEBAIHN0YXRpYyBJbmxp
bmVJdGVyYXRvcjo6Qm94SXRlcmF0b3Igc3RhcnRUZXh0T3JMaW5lQnJlYWtSdW4oSW5saW5lSXRl
cmF0b3I6OkxpbmVJCiAgICAgcmV0dXJuIG5leHRUZXh0T3JMaW5lQnJlYWtSdW4ocnVuKTsKIH0K
IAotc3RhdGljIElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBlbmRUZXh0T3JMaW5lQnJlYWtS
dW4oSW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvciBsaW5lKQorc3RhdGljIElubGluZUl0ZXJh
dG9yOjpMZWFmQm94SXRlcmF0b3IgZW5kVGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9y
OjpMaW5lSXRlcmF0b3IgbGluZSkKIHsKICAgICBhdXRvIHJ1biA9IGxpbmUtPmxvZ2ljYWxFbmRS
dW4oKTsKICAgICBpZiAoaXNUZXh0T3JMaW5lQnJlYWtSdW4ocnVuKSkKQEAgLTE2NSw3ICsxNjUs
NyBAQCBzdGF0aWMgSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yIGVuZFRleHRPckxpbmVCcmVh
a1J1bihJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZQogICAgIHJldHVybiBwcmV2aW91c1RleHRPckxp
bmVCcmVha1J1bihydW4pOwogfQogCi1zdGF0aWMgY29uc3QgSW5saW5lSXRlcmF0b3I6OkJveEl0
ZXJhdG9yIGxvZ2ljYWxseVByZXZpb3VzUnVuKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJs
ZVBvc2l0aW9uLCBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3Igc3RhcnRSdW4sIGJvb2wmIHBy
ZXZpb3VzQm94SW5EaWZmZXJlbnRMaW5lKQorc3RhdGljIGNvbnN0IElubGluZUl0ZXJhdG9yOjpM
ZWFmQm94SXRlcmF0b3IgbG9naWNhbGx5UHJldmlvdXNSdW4oY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiB2aXNpYmxlUG9zaXRpb24sIElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3Igc3RhcnRS
dW4sIGJvb2wmIHByZXZpb3VzQm94SW5EaWZmZXJlbnRMaW5lKQogewogICAgIGlmIChhdXRvIHBy
ZXZpb3VzUnVuID0gcHJldmlvdXNUZXh0T3JMaW5lQnJlYWtSdW4oc3RhcnRSdW4pKQogICAgICAg
ICByZXR1cm4gcHJldmlvdXNSdW47CkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGNvbnN0IElu
bGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBsb2dpY2FsbHlQcmV2aW91c1J1bihjb25zdCBWaXNp
YmxlUG9zaXQKIH0KIAogCi1zdGF0aWMgY29uc3QgSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9y
IGxvZ2ljYWxseU5leHRSdW4oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24s
IElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBzdGFydFJ1biwgYm9vbCYgbmV4dEJveEluRGlm
ZmVyZW50TGluZSkKK3N0YXRpYyBjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9y
IGxvZ2ljYWxseU5leHRSdW4oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24s
IElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3Igc3RhcnRSdW4sIGJvb2wmIG5leHRCb3hJ
bkRpZmZlcmVudExpbmUpCiB7CiAgICAgaWYgKGF1dG8gbmV4dFJ1biA9IG5leHRUZXh0T3JMaW5l
QnJlYWtSdW4oc3RhcnRSdW4pKQogICAgICAgICByZXR1cm4gbmV4dFJ1bjsKQEAgLTMxNSw3ICsz
MTUsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc3VhbFdvcmRQb3NpdGlvbihjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHZpc2libGVQb3NpdGlvbgogICAgIHZpc2libGVQb3NpdGlvbi5kZWVw
RXF1aXZhbGVudCgpLmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogCiAgICAgVGV4dERpcmVjdGlvbiBibG9ja0RpcmVjdGlvbiA9IGRpcmVjdGlvbk9m
RW5jbG9zaW5nQmxvY2sodmlzaWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkpOwotICAgIElu
bGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBwcmV2aW91c2x5VmlzaXRlZFJ1bjsKKyAgICBJbmxp
bmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yIHByZXZpb3VzbHlWaXNpdGVkUnVuOwogICAgIFZp
c2libGVQb3NpdGlvbiBjdXJyZW50ID0gdmlzaWJsZVBvc2l0aW9uOwogICAgIHN0ZDo6b3B0aW9u
YWw8VmlzaWJsZVBvc2l0aW9uPiBwcmV2aW91c1Bvc2l0aW9uOwogICAgIFVCcmVha0l0ZXJhdG9y
KiBpdGVyID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guY3BwCmluZGV4IGNmZjM5ZjIyMDQ5ZTQ2NGNjNzQy
NzllNjkwNTA5Y2U5NGZhNjk0NzAuLjkwZTg3ODE4YTQ2YzNkYzhmOWNkYWFhMmQzM2MwNGNkN2Mz
NzM2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9Jbmxp
bmVJdGVyYXRvckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yQm94LmNwcApAQCAtNTgsMjQgKzU4LDI0IEBAIGJvb2wgQm94SXRlcmF0
b3I6OmF0RW5kKCkgY29uc3QKICAgICB9KTsKIH0KIAotQm94SXRlcmF0b3IgQm94OjpuZXh0T25M
aW5lKCkgY29uc3QKK0xlYWZCb3hJdGVyYXRvciBCb3g6Om5leHRPbkxpbmUoKSBjb25zdAogewot
ICAgIHJldHVybiBCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0T25MaW5lKCk7CisgICAg
cmV0dXJuIExlYWZCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0T25MaW5lKCk7CiB9CiAK
LUJveEl0ZXJhdG9yIEJveDo6cHJldmlvdXNPbkxpbmUoKSBjb25zdAorTGVhZkJveEl0ZXJhdG9y
IEJveDo6cHJldmlvdXNPbkxpbmUoKSBjb25zdAogewotICAgIHJldHVybiBCb3hJdGVyYXRvcigq
dGhpcykudHJhdmVyc2VQcmV2aW91c09uTGluZSgpOworICAgIHJldHVybiBMZWFmQm94SXRlcmF0
b3IoKnRoaXMpLnRyYXZlcnNlUHJldmlvdXNPbkxpbmUoKTsKIH0KIAotQm94SXRlcmF0b3IgQm94
OjpuZXh0T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdAorTGVhZkJveEl0ZXJhdG9yIEJv
eDo6bmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQm94
SXRlcmF0b3IoKnRoaXMpLnRyYXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7Cisg
ICAgcmV0dXJuIExlYWZCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0T25MaW5lSWdub3Jp
bmdMaW5lQnJlYWsoKTsKIH0KIAotQm94SXRlcmF0b3IgQm94OjpwcmV2aW91c09uTGluZUlnbm9y
aW5nTGluZUJyZWFrKCkgY29uc3QKK0xlYWZCb3hJdGVyYXRvciBCb3g6OnByZXZpb3VzT25MaW5l
SWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdAogewotICAgIHJldHVybiBCb3hJdGVyYXRvcigqdGhp
cykudHJhdmVyc2VQcmV2aW91c09uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CisgICAgcmV0dXJu
IExlYWZCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VQcmV2aW91c09uTGluZUlnbm9yaW5nTGlu
ZUJyZWFrKCk7CiB9CiAKIExpbmVJdGVyYXRvciBCb3g6OmxpbmUoKSBjb25zdApAQCAtMTA2LDcg
KzEwNiwxNyBAQCBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEJveDo6c2VsZWN0aW9uU3Rh
dGUoKSBjb25zdAogICAgIHJldHVybiByZW5kZXJlcigpLnNlbGVjdGlvblN0YXRlKCk7CiB9CiAK
LUJveEl0ZXJhdG9yJiBCb3hJdGVyYXRvcjo6dHJhdmVyc2VOZXh0T25MaW5lKCkKK0xlYWZCb3hJ
dGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yKEJveDo6UGF0aFZhcmlhbnQmJiBwYXRoVmFyaWFudCkK
KyAgICA6IEJveEl0ZXJhdG9yKFdURk1vdmUocGF0aFZhcmlhbnQpKQoreworfQorCitMZWFmQm94
SXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvcihjb25zdCBCb3gmIHJ1bikKKyAgICA6IEJveEl0ZXJh
dG9yKHJ1bikKK3sKK30KKworTGVhZkJveEl0ZXJhdG9yJiBMZWFmQm94SXRlcmF0b3I6OnRyYXZl
cnNlTmV4dE9uTGluZSgpCiB7CiAgICAgV1RGOjpzd2l0Y2hPbihtX2JveC5tX3BhdGhWYXJpYW50
LCBbXShhdXRvJiBwYXRoKSB7CiAgICAgICAgIHBhdGgudHJhdmVyc2VOZXh0T25MaW5lKCk7CkBA
IC0xMTQsNyArMTI0LDcgQEAgQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRP
bkxpbmUoKQogICAgIHJldHVybiAqdGhpczsKIH0KIAotQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9y
Ojp0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCkKK0xlYWZCb3hJdGVyYXRvciYgTGVhZkJveEl0ZXJh
dG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCkKIHsKICAgICBXVEY6OnN3aXRjaE9uKG1fYm94
Lm1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKICAgICAgICAgcGF0aC50cmF2ZXJzZVBy
ZXZpb3VzT25MaW5lKCk7CkBAIC0xMjIsNyArMTMyLDcgQEAgQm94SXRlcmF0b3ImIEJveEl0ZXJh
dG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLUJv
eEl0ZXJhdG9yJiBCb3hJdGVyYXRvcjo6dHJhdmVyc2VOZXh0T25MaW5lSWdub3JpbmdMaW5lQnJl
YWsoKQorTGVhZkJveEl0ZXJhdG9yJiBMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGlu
ZUlnbm9yaW5nTGluZUJyZWFrKCkKIHsKICAgICBkbyB7CiAgICAgICAgIHRyYXZlcnNlTmV4dE9u
TGluZSgpOwpAQCAtMTMwLDcgKzE0MCw3IEBAIEJveEl0ZXJhdG9yJiBCb3hJdGVyYXRvcjo6dHJh
dmVyc2VOZXh0T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKQogICAgIHJldHVybiAqdGhpczsKIH0K
IAotQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lSWdub3Jp
bmdMaW5lQnJlYWsoKQorTGVhZkJveEl0ZXJhdG9yJiBMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNl
UHJldmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpCiB7CiAgICAgZG8gewogICAgICAgICB0
cmF2ZXJzZVByZXZpb3VzT25MaW5lKCk7CkBAIC0xMzgsNyArMTQ4LDcgQEAgQm94SXRlcmF0b3Im
IEJveEl0ZXJhdG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKQog
ICAgIHJldHVybiAqdGhpczsKIH0KIAotQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJz
ZU5leHRPbkxpbmVJbkxvZ2ljYWxPcmRlcigpCitMZWFmQm94SXRlcmF0b3ImIExlYWZCb3hJdGVy
YXRvcjo6dHJhdmVyc2VOZXh0T25MaW5lSW5Mb2dpY2FsT3JkZXIoKQogewogICAgIFdURjo6c3dp
dGNoT24obV9ib3gubV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewogICAgICAgICBwYXRo
LnRyYXZlcnNlTmV4dE9uTGluZUluTG9naWNhbE9yZGVyKCk7CkBAIC0xNDYsNyArMTU2LDcgQEAg
Qm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRPbkxpbmVJbkxvZ2ljYWxPcmRl
cigpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi1Cb3hJdGVyYXRvciYgQm94SXRlcmF0b3I6OnRy
YXZlcnNlUHJldmlvdXNPbkxpbmVJbkxvZ2ljYWxPcmRlcigpCitMZWFmQm94SXRlcmF0b3ImIExl
YWZCb3hJdGVyYXRvcjo6dHJhdmVyc2VQcmV2aW91c09uTGluZUluTG9naWNhbE9yZGVyKCkKIHsK
ICAgICBXVEY6OnN3aXRjaE9uKG1fYm94Lm1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsK
ICAgICAgICAgcGF0aC50cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIoKTsKQEAg
LTE1NCw3ICsxNjQsNyBAQCBCb3hJdGVyYXRvciYgQm94SXRlcmF0b3I6OnRyYXZlcnNlUHJldmlv
dXNPbkxpbmVJbkxvZ2ljYWxPcmRlcigpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi1Cb3hJdGVy
YXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJiByZW5kZXJlcikKK0xlYWZCb3hJdGVy
YXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJiByZW5kZXJlcikKIHsKICNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKICAgICBpZiAoYXV0byogbGluZUxheW91dCA9
IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb250YWluaW5nKHJlbmRlcmVyKSkKQEAg
LTE2Myw3ICsxNzMsNyBAQCBCb3hJdGVyYXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFr
JiByZW5kZXJlcikKICAgICByZXR1cm4geyBCb3hMZWdhY3lQYXRoKHJlbmRlcmVyLmlubGluZUJv
eFdyYXBwZXIoKSkgfTsKIH0KIAotQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRlckJveCYg
cmVuZGVyZXIpCitMZWFmQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRlckJveCYgcmVuZGVy
ZXIpCiB7CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgaWYgKGF1
dG8qIGxpbmVMYXlvdXQgPSBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y29udGFpbmlu
ZyhyZW5kZXJlcikpCkBAIC0xNzMsNyArMTgzLDcgQEAgQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyZXIpCiB9CiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKLUJveEl0ZXJhdG9yIGJveEZvcihjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6SW5s
aW5lQ29udGVudCYgY29udGVudCwgc2l6ZV90IGJveEluZGV4KQorTGVhZkJveEl0ZXJhdG9yIGJv
eEZvcihjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudCYgY29udGVudCwgc2l6
ZV90IGJveEluZGV4KQogewogICAgIHJldHVybiB7IEJveE1vZGVyblBhdGggeyBjb250ZW50LCBi
b3hJbmRleCB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vSW5saW5lSXRlcmF0b3JCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9JbmxpbmVJdGVyYXRvckJveC5oCmluZGV4IDgyNmE2OGNjZTNlMmMwOTdlM2JjOThmYzkx
Y2E0NzVhMWIzYjU0YTcuLmFmYWU1MjBmMjdlNzY5MDhjYTE2Mjc1MzExZDVjMzM3NWQ3YWRjOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVy
YXRvckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJ
dGVyYXRvckJveC5oCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBJbmxpbmVJdGVyYXRvciB7
CiAKIGNsYXNzIExpbmVJdGVyYXRvcjsKIGNsYXNzIEJveEl0ZXJhdG9yOworY2xhc3MgTGVhZkJv
eEl0ZXJhdG9yOwogY2xhc3MgVGV4dEJveEl0ZXJhdG9yOwogCiBzdHJ1Y3QgRW5kSXRlcmF0b3Ig
eyB9OwpAQCAtOTAsMTUgKzkxLDE2IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbmxpbmVEaXNwbGF5
OjpCb3gqIGlubGluZUJveCgpIGNvbnN0OwogI2VuZGlmCiAKLSAgICBCb3hJdGVyYXRvciBuZXh0
T25MaW5lKCkgY29uc3Q7Ci0gICAgQm94SXRlcmF0b3IgcHJldmlvdXNPbkxpbmUoKSBjb25zdDsK
LSAgICBCb3hJdGVyYXRvciBuZXh0T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdDsKLSAg
ICBCb3hJdGVyYXRvciBwcmV2aW91c09uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkgY29uc3Q7Cisg
ICAgTGVhZkJveEl0ZXJhdG9yIG5leHRPbkxpbmUoKSBjb25zdDsKKyAgICBMZWFmQm94SXRlcmF0
b3IgcHJldmlvdXNPbkxpbmUoKSBjb25zdDsKKyAgICBMZWFmQm94SXRlcmF0b3IgbmV4dE9uTGlu
ZUlnbm9yaW5nTGluZUJyZWFrKCkgY29uc3Q7CisgICAgTGVhZkJveEl0ZXJhdG9yIHByZXZpb3Vz
T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdDsKIAogICAgIExpbmVJdGVyYXRvciBsaW5l
KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgQm94SXRlcmF0b3I7Cisg
ICAgZnJpZW5kIGNsYXNzIExlYWZCb3hJdGVyYXRvcjsKICAgICBmcmllbmQgY2xhc3MgVGV4dEJv
eEl0ZXJhdG9yOwogCiAgICAgLy8gVG8gaGVscCB3aXRoIGRlYnVnZ2luZy4KQEAgLTExMiwxMCAr
MTE0LDYgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBCb3hJdGVyYXRvciB7CiBwdWJsaWM6Ci0gICAg
Qm94SXRlcmF0b3IoKSA6IG1fYm94KEJveExlZ2FjeVBhdGggeyBudWxscHRyLCB7IH0gfSkgeyB9
OwotICAgIEJveEl0ZXJhdG9yKEJveDo6UGF0aFZhcmlhbnQmJik7Ci0gICAgQm94SXRlcmF0b3Io
Y29uc3QgQm94Jik7Ci0KICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1
cm4gIWF0RW5kKCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBCb3hJdGVyYXRvciYp
IGNvbnN0OwpAQCAtMTI5LDIxICsxMjcsMzIgQEAgcHVibGljOgogCiAgICAgYm9vbCBhdEVuZCgp
IGNvbnN0OwogCi0gICAgQm94SXRlcmF0b3ImIHRyYXZlcnNlTmV4dE9uTGluZSgpOwotICAgIEJv
eEl0ZXJhdG9yJiB0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCk7Ci0gICAgQm94SXRlcmF0b3ImIHRy
YXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7Ci0gICAgQm94SXRlcmF0b3ImIHRy
YXZlcnNlUHJldmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpOwotICAgIEJveEl0ZXJhdG9y
JiB0cmF2ZXJzZU5leHRPbkxpbmVJbkxvZ2ljYWxPcmRlcigpOwotICAgIEJveEl0ZXJhdG9yJiB0
cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIoKTsKLQogcHJvdGVjdGVkOgorICAg
IEJveEl0ZXJhdG9yKCkgOiBtX2JveChCb3hMZWdhY3lQYXRoIHsgbnVsbHB0ciwgeyB9IH0pIHsg
fTsKKyAgICBCb3hJdGVyYXRvcihCb3g6OlBhdGhWYXJpYW50JiYpOworICAgIEJveEl0ZXJhdG9y
KGNvbnN0IEJveCYpOworCiAgICAgQm94IG1fYm94OwogfTsKIAotQm94SXRlcmF0b3IgYm94Rm9y
KGNvbnN0IFJlbmRlckxpbmVCcmVhayYpOwotQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRl
ckJveCYpOworY2xhc3MgTGVhZkJveEl0ZXJhdG9yIDogcHVibGljIEJveEl0ZXJhdG9yIHsKK3B1
YmxpYzoKKyAgICBMZWFmQm94SXRlcmF0b3IoKSA9IGRlZmF1bHQ7CisgICAgTGVhZkJveEl0ZXJh
dG9yKEJveDo6UGF0aFZhcmlhbnQmJik7CisgICAgTGVhZkJveEl0ZXJhdG9yKGNvbnN0IEJveCYp
OworCisgICAgTGVhZkJveEl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRPbkxpbmUoKTsKKyAgICBMZWFm
Qm94SXRlcmF0b3ImIHRyYXZlcnNlUHJldmlvdXNPbkxpbmUoKTsKKyAgICBMZWFmQm94SXRlcmF0
b3ImIHRyYXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CisgICAgTGVhZkJveEl0
ZXJhdG9yJiB0cmF2ZXJzZVByZXZpb3VzT25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKTsKKyAgICBM
ZWFmQm94SXRlcmF0b3ImIHRyYXZlcnNlTmV4dE9uTGluZUluTG9naWNhbE9yZGVyKCk7CisgICAg
TGVhZkJveEl0ZXJhdG9yJiB0cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIoKTsK
K307CisKK0xlYWZCb3hJdGVyYXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJik7CitM
ZWFmQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRlckJveCYpOwogI2lmIEVOQUJMRShMQVlP
VVRfRk9STUFUVElOR19DT05URVhUKQotQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IExheW91dElu
dGVncmF0aW9uOjpJbmxpbmVDb250ZW50Jiwgc2l6ZV90IGJveEluZGV4KTsKK0xlYWZCb3hJdGVy
YXRvciBib3hGb3IoY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQmLCBzaXpl
X3QgYm94SW5kZXgpOwogI2VuZGlmCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JJbmxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvcklubGluZUJveC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NmRj
ZmIwYzAxMDkwMDJhMTAzYjUyZWQ3OGE0NGM1MTg3NmMzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JJbmxpbmVCb3gu
aApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJJbmxpbmVJdGVyYXRvckJveC5oIgorI2luY2x1ZGUgIkxlZ2FjeUlubGluZUZsb3dCb3guaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgSW5saW5lSXRlcmF0b3IgeworCitj
bGFzcyBJbmxpbmVCb3hJdGVyYXRvcjsKKworY2xhc3MgSW5saW5lQm94IDogcHVibGljIEJveCB7
CitwdWJsaWM6CisgICAgSW5saW5lQm94KFBhdGhWYXJpYW50JiYpOworCisgICAgY29uc3QgUmVu
ZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8UmVu
ZGVyQm94TW9kZWxPYmplY3Q+KEJveDo6cmVuZGVyZXIoKSk7IH0KKworICAgIC8vIEZJWE1FOiBS
ZW1vdmUuIEZvciBpbnRlcm1lZGlhdGUgcG9ydGluZyBzdGVwcyBvbmx5LgorICAgIGNvbnN0IExl
Z2FjeUlubGluZUZsb3dCb3gqIGxlZ2FjeUlubGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIGRvd25j
YXN0PExlZ2FjeUlubGluZUZsb3dCb3g+KEJveDo6bGVnYWN5SW5saW5lQm94KCkpOyB9CisKKyAg
ICBJbmxpbmVCb3hJdGVyYXRvciBuZXh0SW5saW5lQm94KCkgY29uc3Q7CisgICAgSW5saW5lQm94
SXRlcmF0b3IgcHJldmlvdXNJbmxpbmVCb3goKSBjb25zdDsKKyAgICBJbmxpbmVCb3hJdGVyYXRv
ciBpdGVyYXRvcigpIGNvbnN0OworfTsKKworY2xhc3MgSW5saW5lQm94SXRlcmF0b3IgOiBwdWJs
aWMgQm94SXRlcmF0b3IgeworcHVibGljOgorICAgIElubGluZUJveEl0ZXJhdG9yKCkgeyB9Cisg
ICAgSW5saW5lQm94SXRlcmF0b3IoQm94OjpQYXRoVmFyaWFudCYmKTsKKyAgICBJbmxpbmVCb3hJ
dGVyYXRvcihjb25zdCBCb3gmKTsKKworICAgIGNvbnN0IElubGluZUJveCYgb3BlcmF0b3IqKCkg
Y29uc3QgeyByZXR1cm4gZ2V0KCk7IH0KKyAgICBjb25zdCBJbmxpbmVCb3gqIG9wZXJhdG9yLT4o
KSBjb25zdCB7IHJldHVybiAmZ2V0KCk7IH0KKworICAgIElubGluZUJveEl0ZXJhdG9yJiB0cmF2
ZXJzZU5leHRJbmxpbmVCb3goKTsKKyAgICBJbmxpbmVCb3hJdGVyYXRvciYgdHJhdmVyc2VQcmV2
aW91c0lubGluZUJveCgpOworCitwcml2YXRlOgorICAgIGNvbnN0IElubGluZUJveCYgZ2V0KCkg
Y29uc3QgeyByZXR1cm4gZG93bmNhc3Q8SW5saW5lQm94PihtX2JveCk7IH0KK307CisKK0lubGlu
ZUJveEl0ZXJhdG9yIGlubGluZUJveEZvcihjb25zdCBMZWdhY3lJbmxpbmVGbG93Qm94Jik7Cisj
aWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCitJbmxpbmVCb3hJdGVyYXRvciBp
bmxpbmVCb3hGb3IoY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQmLCBzaXpl
X3QgYm94SW5kZXgpOworI2VuZGlmCisKK2lubGluZSBJbmxpbmVCb3hJdGVyYXRvciBJbmxpbmVC
b3g6Oml0ZXJhdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyAqdGhpcyB9OworfQorCit9Cit9
CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6
OklubGluZUJveCkKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpJbmxpbmVJdGVy
YXRvcjo6Qm94JiBib3gpIHsgcmV0dXJuIGJveC5pc0lubGluZUJveCgpOyB9CitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0VORCgpCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OklubGluZUJveEl0ZXJhdG9yKQorc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciYgYm94KSB7IHJldHVy
biAhYm94IHx8IGJveC0+aXNJbmxpbmVCb3goKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19F
TkQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGlu
ZUl0ZXJhdG9yTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5s
aW5lSXRlcmF0b3JMaW5lLmNwcAppbmRleCA5ZDVhNTM0NmQ2NzI2ODY5Y2U2YjBjYjljMmRhNTVm
MmEyM2FlNjM5Li5mNGViNmE2OGZkM2RiYjgxNTczMjAzZjliNjA3ZjRkMWY0NThhYzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JM
aW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRl
cmF0b3JMaW5lLmNwcApAQCAtMTAxLDM1ICsxMDEsMzUgQEAgTGluZUl0ZXJhdG9yIExpbmU6OnBy
ZXZpb3VzKCkgY29uc3QKICAgICByZXR1cm4gTGluZUl0ZXJhdG9yKCp0aGlzKS50cmF2ZXJzZVBy
ZXZpb3VzKCk7CiB9CiAKLUJveEl0ZXJhdG9yIExpbmU6OmZpcnN0UnVuKCkgY29uc3QKK0xlYWZC
b3hJdGVyYXRvciBMaW5lOjpmaXJzdFJ1bigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdURjo6c3dp
dGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgLT4gQm94SXRlcmF0b3IgeworICAg
IHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIC0+IExl
YWZCb3hJdGVyYXRvciB7CiAgICAgICAgIHJldHVybiB7IHBhdGguZmlyc3RSdW4oKSB9OwogICAg
IH0pOwogfQogCi1Cb3hJdGVyYXRvciBMaW5lOjpsYXN0UnVuKCkgY29uc3QKK0xlYWZCb3hJdGVy
YXRvciBMaW5lOjpsYXN0UnVuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbiht
X3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSAtPiBCb3hJdGVyYXRvciB7CisgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgLT4gTGVhZkJveEl0
ZXJhdG9yIHsKICAgICAgICAgcmV0dXJuIHsgcGF0aC5sYXN0UnVuKCkgfTsKICAgICB9KTsKIH0K
IAotQm94SXRlcmF0b3IgTGluZTo6bG9naWNhbFN0YXJ0UnVuKCkgY29uc3QKK0xlYWZCb3hJdGVy
YXRvciBMaW5lOjpsb2dpY2FsU3RhcnRSdW4oKSBjb25zdAogewotICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIC0+IEJveEl0ZXJhdG9yIHsKKyAg
ICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSAtPiBM
ZWFmQm94SXRlcmF0b3IgewogICAgICAgICByZXR1cm4geyBwYXRoLmxvZ2ljYWxTdGFydFJ1bigp
IH07CiAgICAgfSk7CiB9CiAKLUJveEl0ZXJhdG9yIExpbmU6OmxvZ2ljYWxFbmRSdW4oKSBjb25z
dAorTGVhZkJveEl0ZXJhdG9yIExpbmU6OmxvZ2ljYWxFbmRSdW4oKSBjb25zdAogewotICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIC0+IEJveEl0
ZXJhdG9yIHsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRv
JiBwYXRoKSAtPiBMZWFmQm94SXRlcmF0b3IgewogICAgICAgICByZXR1cm4geyBwYXRoLmxvZ2lj
YWxFbmRSdW4oKSB9OwogICAgIH0pOwogfQogCi1Cb3hJdGVyYXRvciBMaW5lOjpsb2dpY2FsU3Rh
cnRSdW5XaXRoTm9kZSgpIGNvbnN0CitMZWFmQm94SXRlcmF0b3IgTGluZTo6bG9naWNhbFN0YXJ0
UnVuV2l0aE5vZGUoKSBjb25zdAogewogICAgIGZvciAoYXV0byBydW4gPSBsb2dpY2FsU3RhcnRS
dW4oKTsgcnVuOyBydW4udHJhdmVyc2VOZXh0T25MaW5lSW5Mb2dpY2FsT3JkZXIoKSkgewogICAg
ICAgICBpZiAocnVuLT5yZW5kZXJlcigpLm5vZGUoKSkKQEAgLTEzOCw3ICsxMzgsNyBAQCBCb3hJ
dGVyYXRvciBMaW5lOjpsb2dpY2FsU3RhcnRSdW5XaXRoTm9kZSgpIGNvbnN0CiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotQm94SXRlcmF0b3IgTGluZTo6bG9naWNhbEVuZFJ1bldpdGhOb2RlKCkgY29u
c3QKK0xlYWZCb3hJdGVyYXRvciBMaW5lOjpsb2dpY2FsRW5kUnVuV2l0aE5vZGUoKSBjb25zdAog
ewogICAgIGZvciAoYXV0byBydW4gPSBsb2dpY2FsRW5kUnVuKCk7IHJ1bjsgcnVuLnRyYXZlcnNl
UHJldmlvdXNPbkxpbmVJbkxvZ2ljYWxPcmRlcigpKSB7CiAgICAgICAgIGlmIChydW4tPnJlbmRl
cmVyKCkubm9kZSgpKQpAQCAtMTQ3LDEyICsxNDcsMTIgQEAgQm94SXRlcmF0b3IgTGluZTo6bG9n
aWNhbEVuZFJ1bldpdGhOb2RlKCkgY29uc3QKICAgICByZXR1cm4geyB9OwogfQogCi1Cb3hJdGVy
YXRvciBMaW5lOjpjbG9zZXN0UnVuRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250
ZW50cywgYm9vbCBlZGl0YWJsZU9ubHkpIGNvbnN0CitMZWFmQm94SXRlcmF0b3IgTGluZTo6Y2xv
c2VzdFJ1bkZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludEluQ29udGVudHMsIGJvb2wgZWRp
dGFibGVPbmx5KSBjb25zdAogewogICAgIHJldHVybiBjbG9zZXN0UnVuRm9yTG9naWNhbExlZnRQ
b3NpdGlvbihpc0hvcml6b250YWwoKSA/IHBvaW50SW5Db250ZW50cy54KCkgOiBwb2ludEluQ29u
dGVudHMueSgpLCBlZGl0YWJsZU9ubHkpOwogfQogCi1Cb3hJdGVyYXRvciBMaW5lOjpjbG9zZXN0
UnVuRm9yTG9naWNhbExlZnRQb3NpdGlvbihpbnQgbGVmdFBvc2l0aW9uLCBib29sIGVkaXRhYmxl
T25seSkgY29uc3QKK0xlYWZCb3hJdGVyYXRvciBMaW5lOjpjbG9zZXN0UnVuRm9yTG9naWNhbExl
ZnRQb3NpdGlvbihpbnQgbGVmdFBvc2l0aW9uLCBib29sIGVkaXRhYmxlT25seSkgY29uc3QKIHsK
ICAgICBhdXRvIGlzRWRpdGFibGUgPSBbJl0oYXV0byBydW4pIHsKICAgICAgICAgcmV0dXJuIHJ1
biAmJiBydW4tPnJlbmRlcmVyKCkubm9kZSgpICYmIHJ1bi0+cmVuZGVyZXIoKS5ub2RlKCktPmhh
c0VkaXRhYmxlU3R5bGUoKTsKQEAgLTIyOSw3ICsyMjksNyBAQCBSZW5kZXJPYmplY3Q6OkhpZ2hs
aWdodFN0YXRlIExpbmU6OnNlbGVjdGlvblN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGU7
CiB9CiAKLUJveEl0ZXJhdG9yIExpbmU6OmZpcnN0U2VsZWN0ZWRCb3goKSBjb25zdAorTGVhZkJv
eEl0ZXJhdG9yIExpbmU6OmZpcnN0U2VsZWN0ZWRCb3goKSBjb25zdAogewogICAgIGZvciAoYXV0
byBib3ggPSBmaXJzdFJ1bigpOyBib3g7IGJveC50cmF2ZXJzZU5leHRPbkxpbmUoKSkgewogICAg
ICAgICBpZiAoYm94LT5zZWxlY3Rpb25TdGF0ZSgpICE9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0
U3RhdGU6Ok5vbmUpCkBAIC0yMzgsNyArMjM4LDcgQEAgQm94SXRlcmF0b3IgTGluZTo6Zmlyc3RT
ZWxlY3RlZEJveCgpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotQm94SXRlcmF0b3IgTGlu
ZTo6bGFzdFNlbGVjdGVkQm94KCkgY29uc3QKK0xlYWZCb3hJdGVyYXRvciBMaW5lOjpsYXN0U2Vs
ZWN0ZWRCb3goKSBjb25zdAogewogICAgIGZvciAoYXV0byBib3ggPSBsYXN0UnVuKCk7IGJveDsg
Ym94LnRyYXZlcnNlUHJldmlvdXNPbkxpbmUoKSkgewogICAgICAgICBpZiAoYm94LT5zZWxlY3Rp
b25TdGF0ZSgpICE9IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5l
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5l
LmgKaW5kZXggNTJmY2U1Y2I3Yzg2YjBlZmJhY2EyYTQ2YjhhMTk5NjI2ZmI2ODg1MS4uMDYyZjMz
M2FhMDNiZmU3ZjE5ZGJmMWYwODAwMTMzZGY5OTlmNmVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaApAQCAtMzUs
NyArMzUsNyBAQCBuYW1lc3BhY2UgSW5saW5lSXRlcmF0b3IgewogCiBjbGFzcyBMaW5lSXRlcmF0
b3I7CiBjbGFzcyBQYXRoSXRlcmF0b3I7Ci1jbGFzcyBCb3hJdGVyYXRvcjsKK2NsYXNzIExlYWZC
b3hJdGVyYXRvcjsKIAogc3RydWN0IEVuZExpbmVJdGVyYXRvciB7IH07CiAKQEAgLTgxLDIyICs4
MSwyMiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzRmlyc3QoKSBjb25zdDsKIAotICAgIEJveEl0
ZXJhdG9yIGZpcnN0UnVuKCkgY29uc3Q7Ci0gICAgQm94SXRlcmF0b3IgbGFzdFJ1bigpIGNvbnN0
OworICAgIExlYWZCb3hJdGVyYXRvciBmaXJzdFJ1bigpIGNvbnN0OworICAgIExlYWZCb3hJdGVy
YXRvciBsYXN0UnVuKCkgY29uc3Q7CiAKICAgICBMaW5lSXRlcmF0b3IgbmV4dCgpIGNvbnN0Owog
ICAgIExpbmVJdGVyYXRvciBwcmV2aW91cygpIGNvbnN0OwogCi0gICAgQm94SXRlcmF0b3IgY2xv
c2VzdFJ1bkZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludEluQ29udGVudHMsIGJvb2wgZWRp
dGFibGVPbmx5KSBjb25zdDsKLSAgICBCb3hJdGVyYXRvciBjbG9zZXN0UnVuRm9yTG9naWNhbExl
ZnRQb3NpdGlvbihpbnQgcG9zaXRpb24sIGJvb2wgZWRpdGFibGVPbmx5ID0gZmFsc2UpIGNvbnN0
OworICAgIExlYWZCb3hJdGVyYXRvciBjbG9zZXN0UnVuRm9yUG9pbnQoY29uc3QgSW50UG9pbnQm
IHBvaW50SW5Db250ZW50cywgYm9vbCBlZGl0YWJsZU9ubHkpIGNvbnN0OworICAgIExlYWZCb3hJ
dGVyYXRvciBjbG9zZXN0UnVuRm9yTG9naWNhbExlZnRQb3NpdGlvbihpbnQgcG9zaXRpb24sIGJv
b2wgZWRpdGFibGVPbmx5ID0gZmFsc2UpIGNvbnN0OwogCi0gICAgQm94SXRlcmF0b3IgbG9naWNh
bFN0YXJ0UnVuKCkgY29uc3Q7Ci0gICAgQm94SXRlcmF0b3IgbG9naWNhbEVuZFJ1bigpIGNvbnN0
OwotICAgIEJveEl0ZXJhdG9yIGxvZ2ljYWxTdGFydFJ1bldpdGhOb2RlKCkgY29uc3Q7Ci0gICAg
Qm94SXRlcmF0b3IgbG9naWNhbEVuZFJ1bldpdGhOb2RlKCkgY29uc3Q7CisgICAgTGVhZkJveEl0
ZXJhdG9yIGxvZ2ljYWxTdGFydFJ1bigpIGNvbnN0OworICAgIExlYWZCb3hJdGVyYXRvciBsb2dp
Y2FsRW5kUnVuKCkgY29uc3Q7CisgICAgTGVhZkJveEl0ZXJhdG9yIGxvZ2ljYWxTdGFydFJ1bldp
dGhOb2RlKCkgY29uc3Q7CisgICAgTGVhZkJveEl0ZXJhdG9yIGxvZ2ljYWxFbmRSdW5XaXRoTm9k
ZSgpIGNvbnN0OwogICAgIAotICAgIEJveEl0ZXJhdG9yIGZpcnN0U2VsZWN0ZWRCb3goKSBjb25z
dDsKLSAgICBCb3hJdGVyYXRvciBsYXN0U2VsZWN0ZWRCb3goKSBjb25zdDsKKyAgICBMZWFmQm94
SXRlcmF0b3IgZmlyc3RTZWxlY3RlZEJveCgpIGNvbnN0OworICAgIExlYWZCb3hJdGVyYXRvciBs
YXN0U2VsZWN0ZWRCb3goKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlu
ZUl0ZXJhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmNwcAppbmRleCA1OGU5MmY5M2Q0MjMyZmE1YmJm
M2Y1MGYyM2NmZmQzMzc0YTNiODg2Li5iOWEzNDBjZDU0MTc0ODc4YWI3NWM1MzNiMDFhY2I1YTE0
MzljNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5s
aW5lSXRlcmF0b3JUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmNwcApAQCAtNzcsMTIgKzc3LDEyIEBAIGNvbnN0
IEZvbnRDYXNjYWRlJiBUZXh0Qm94Ojpmb250Q2FzY2FkZSgpIGNvbnN0CiB9CiAKIFRleHRCb3hJ
dGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yKEJveDo6UGF0aFZhcmlhbnQmJiBwYXRoVmFyaWFudCkK
LSAgICA6IEJveEl0ZXJhdG9yKFdURk1vdmUocGF0aFZhcmlhbnQpKQorICAgIDogTGVhZkJveEl0
ZXJhdG9yKFdURk1vdmUocGF0aFZhcmlhbnQpKQogewogfQogCiBUZXh0Qm94SXRlcmF0b3I6OlRl
eHRCb3hJdGVyYXRvcihjb25zdCBCb3gmIGJveCkKLSAgICA6IEJveEl0ZXJhdG9yKGJveCkKKyAg
ICA6IExlYWZCb3hJdGVyYXRvcihib3gpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guaAppbmRleCBm
NGU4MDJmOGM4Nzk4YjQ3MDM3YzNkNmRhOWZkY2U0MWU1NWQ5MmRiLi44OWMyOGRmZTRmNDBjYjE2
MTcyMDQ2MGM3NzcwYTg5MmE1ZjJiODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJveC5oCkBAIC02Myw3ICs2
Myw3IEBAIHB1YmxpYzoKICAgICBUZXh0Qm94SXRlcmF0b3IgbmV4dFRleHRCb3hJblRleHRPcmRl
cigpIGNvbnN0OwogfTsKIAotY2xhc3MgVGV4dEJveEl0ZXJhdG9yIDogcHVibGljIEJveEl0ZXJh
dG9yIHsKK2NsYXNzIFRleHRCb3hJdGVyYXRvciA6IHB1YmxpYyBMZWFmQm94SXRlcmF0b3Igewog
cHVibGljOgogICAgIFRleHRCb3hJdGVyYXRvcigpIHsgfQogICAgIFRleHRCb3hJdGVyYXRvcihC
b3g6OlBhdGhWYXJpYW50JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRl
eCA0ODg3YWVkZGMyMTZlOWM1YWNjNjgzZWUzNzA5YTYzZjBkYWEwMDM2Li43ZmEzZjBhYTExYzVm
NDhiOWU3NmZmMjFmOGIwY2NhZDMyNGJjYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5
b3V0LmNwcApAQCAtNDA0LDcgKzQwNCw3IEBAIElubGluZUl0ZXJhdG9yOjpUZXh0Qm94SXRlcmF0
b3IgTGluZUxheW91dDo6dGV4dEJveGVzRm9yKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlCiAgICAg
cmV0dXJuIElubGluZUl0ZXJhdG9yOjp0ZXh0Qm94Rm9yKCptX2lubGluZUNvbnRlbnQsICpmaXJz
dEluZGV4KTsKIH0KIAotSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yIExpbmVMYXlvdXQ6OmJv
eEZvcihjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJFbGVtZW50KSBjb25zdAorSW5saW5lSXRl
cmF0b3I6OkxlYWZCb3hJdGVyYXRvciBMaW5lTGF5b3V0Ojpib3hGb3IoY29uc3QgUmVuZGVyRWxl
bWVudCYgcmVuZGVyRWxlbWVudCkgY29uc3QKIHsKICAgICBpZiAoIW1faW5saW5lQ29udGVudCkK
ICAgICAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAppbmRleCA4
Y2YzYTg0ZTNkMDc4OGJkMmI4ZDJjZjlkYjliMzBmZWQ5ZWFiNGIyLi5mNmViNmEzODQxYTVmNTZh
NTZjZTkwMzNjNTg5MjBkNjFiZjZmNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5o
CkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGhpdFRlc3QoY29uc3QgSGl0VGVz
dFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsKIAogICAgIElu
bGluZUl0ZXJhdG9yOjpUZXh0Qm94SXRlcmF0b3IgdGV4dEJveGVzRm9yKGNvbnN0IFJlbmRlclRl
eHQmKSBjb25zdDsKLSAgICBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0
IFJlbmRlckVsZW1lbnQmKSBjb25zdDsKKyAgICBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJh
dG9yIGJveEZvcihjb25zdCBSZW5kZXJFbGVtZW50JikgY29uc3Q7CiAgICAgSW5saW5lSXRlcmF0
b3I6OkxpbmVJdGVyYXRvciBmaXJzdExpbmUoKSBjb25zdDsKICAgICBJbmxpbmVJdGVyYXRvcjo6
TGluZUl0ZXJhdG9yIGxhc3RMaW5lKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggZDZiNDBkYjhmYjE4ZmYzMGI5Y2UyYTAxZDNj
ODA3ZTAzMmQyOWM0MC4uNDg0ZGRmYzE3NGRmZmI4NjEyMzhjNTlmM2RiMGYwMDJiNWEyZGNmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTM1
NTAsNyArMzU1MCw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9u
Rm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiAgICAgYm9vbCBibG9ja3NB
cmVGbGlwcGVkID0gc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpOwogCiAgICAg
Ly8gbG9vayBmb3IgdGhlIGNsb3Nlc3QgbGluZSBib3ggaW4gdGhlIHJvb3QgYm94IHdoaWNoIGlz
IGF0IHRoZSBwYXNzZWQtaW4geSBjb29yZGluYXRlCi0gICAgSW5saW5lSXRlcmF0b3I6OkJveEl0
ZXJhdG9yIGNsb3Nlc3RSdW47CisgICAgSW5saW5lSXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvciBj
bG9zZXN0UnVuOwogICAgIElubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3IgZmlyc3RMaW5lV2l0
aENoaWxkcmVuOwogICAgIElubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3IgbGFzdExpbmVXaXRo
Q2hpbGRyZW47CiAgICAgZm9yIChhdXRvIGxpbmUgPSBmaXJzdExpbmU7IGxpbmU7IGxpbmUudHJh
dmVyc2VOZXh0KCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440200</attachid>
            <date>2021-10-05 04:50:56 -0700</date>
            <delta_ts>2021-10-05 06:54:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231229-20211005145054.patch</filename>
            <type>text/plain</type>
            <size>29213</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ1N2M0ZTIwMThjNGEw
YWJlNjg4NzJiZTRmMTEzNTBkMTQ5ZTAyZi4uMDJmMWQyNDU5NzQwZmUyMzk1MjU4MjQ0YzBmMGJi
MzQwMjA5NzExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIxLTEwLTA1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gU3BsaXQgQm94SXRlcmF0b3IgaW50byBhIGJhc2UgY2xhc3MgYW5kIExlYWZCb3hJdGVyYXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGVhZkJv
eEl0ZXJhdG9yIGNvbnRhaW5zIGZ1bmN0aW9uIGZvciB0cmF2ZXJzaW5nIG5vbi1pbmxpbmUgYm94
ZXMuCisgICAgICAgIEJveEl0ZXJhdG9yIGJlY29tZXMgYSBub24taW5zdGFudGlhdGVkIGJhc2Ug
Y2xhc3MuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIElubGlu
ZUJveEl0ZXJhdG9yLgorCisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvc2l0aW9uOjppbmxpbmVSdW5BbmRPZmZzZXQgY29uc3QpOgorICAgICAgICAqIGVk
aXRpbmcvSW5saW5lUnVuQW5kT2Zmc2V0Lmg6CisgICAgICAgICogZWRpdGluZy9SZW5kZXJlZFBv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OlJlbmRlcmVk
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyZWRQb3NpdGlvbjo6cHJldmlvdXNM
ZWFmT25MaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246Om5l
eHRMZWFmT25MaW5lIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24u
aDoKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVVbml0cy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc1RleHRPckxpbmVCcmVha1J1bik6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1RleHRP
ckxpbmVCcmVha1J1bik6CisgICAgICAgIChXZWJDb3JlOjpuZXh0VGV4dE9yTGluZUJyZWFrUnVu
KToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0VGV4dE9yTGluZUJyZWFrUnVuKToKKyAgICAgICAg
KFdlYkNvcmU6OmVuZFRleHRPckxpbmVCcmVha1J1bik6CisgICAgICAgIChXZWJDb3JlOjpsb2dp
Y2FsbHlQcmV2aW91c1J1bik6CisgICAgICAgIChXZWJDb3JlOjpsb2dpY2FsbHlOZXh0UnVuKToK
KyAgICAgICAgKFdlYkNvcmU6OnZpc3VhbFdvcmRQb3NpdGlvbik6CisgICAgICAgICogbGF5b3V0
L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUl0ZXJhdG9yOjpCb3g6Om5leHRPbkxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lSXRlcmF0b3I6OkJveDo6cHJldmlvdXNPbkxpbmUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6OnByZXZpb3VzT25M
aW5lSWdub3JpbmdMaW5lQnJlYWsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxlYWZCb3hJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yOjp0cmF2
ZXJzZVByZXZpb3VzT25MaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpM
ZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNl
UHJldmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRPbkxpbmVJbkxvZ2ljYWxP
cmRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9y
Ojp0cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OmJveEZvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVy
YXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlUHJldmlvdXNP
bkxpbmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveEl0
ZXJhdG9yOjp0cmF2ZXJzZU5leHRPbkxpbmVJZ25vcmluZ0xpbmVCcmVhayk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlUHJl
dmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZUluTG9naWNh
bE9yZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3hJ
dGVyYXRvcjo6dHJhdmVyc2VQcmV2aW91c09uTGluZUluTG9naWNhbE9yZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guaDoKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvcjo6Qm94SXRlcmF0b3IpOgor
ICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmZpcnN0UnVuIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lOjpsYXN0UnVuIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpMaW5lOjpsb2dpY2FsU3RhcnRSdW4gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmxvZ2ljYWxFbmRS
dW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmxvZ2lj
YWxTdGFydFJ1bldpdGhOb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJh
dG9yOjpMaW5lOjpsb2dpY2FsRW5kUnVuV2l0aE5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5saW5lSXRlcmF0b3I6OkxpbmU6OmNsb3Nlc3RSdW5Gb3JQb2ludCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6TGluZTo6Y2xvc2VzdFJ1bkZvckxvZ2ljYWxM
ZWZ0UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6Okxp
bmU6OmZpcnN0U2VsZWN0ZWRCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRl
cmF0b3I6OkxpbmU6Omxhc3RTZWxlY3RlZEJveCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3Jh
dGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
SXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yKToKKyAgICAgICAgKiBs
YXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94Lmg6CisgICAgICAgICogbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Ym94Rm9yIGNvbnN0KToK
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRy
ZW4pOgorCiAyMDIxLTEwLTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcCBwYXJzaW5nIGNvbnRleHQtc2Vuc2l0aXZlIGNvbG9ycyBpbiBv
dmVycmlkZS1jb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggMWNjM2Y1ZDQyMzdmMmY2
MDZiOGRkMmVmZTllZmE2MTY2YjcyYmY2YS4uNWQwZGI2OWJlYTcwMTIzMzRhZDZhNjIwNzMwZjJm
ZGRlZmMyODI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0xMjEwLDcgKzEyMTAsNyBA
QCBJbmxpbmVSdW5BbmRPZmZzZXQgUG9zaXRpb246OmlubGluZVJ1bkFuZE9mZnNldChBZmZpbml0
eSBhZmZpbml0eSwgVGV4dERpcmVjdGlvbgogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJl
dHVybiB7IHsgfSwgY2FyZXRPZmZzZXQgfTsKIAotICAgIElubGluZUl0ZXJhdG9yOjpCb3hJdGVy
YXRvciBydW47CisgICAgSW5saW5lSXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvciBydW47CiAKICAg
ICBpZiAocmVuZGVyZXItPmlzQlIoKSkgewogICAgICAgICBhdXRvJiBsaW5lQnJlYWtSZW5kZXJl
ciA9IGRvd25jYXN0PFJlbmRlckxpbmVCcmVhaz4oKnJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5saW5lUnVuQW5kT2Zmc2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0lubGluZVJ1bkFuZE9mZnNldC5oCmluZGV4IDk1ZmE2MzQwMDQzNjRjZmRkZDNk
NWI1N2ZiNTI4Y2NmZjRhZjYyYWMuLjc1N2M2ZDU4YzgyYzgxZDVmNDIwZTU5OGFiM2JhYjc2MDIy
NjgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5saW5lUnVuQW5kT2Zm
c2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmxpbmVSdW5BbmRPZmZzZXQuaApA
QCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgSW5saW5lUnVu
QW5kT2Zmc2V0IHsKLSAgICBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgcnVuIHsgfTsKKyAg
ICBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yIHJ1biB7IH07CiAgICAgdW5zaWduZWQg
b2Zmc2V0IHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW5kZXJlZFBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3Np
dGlvbi5jcHAKaW5kZXggZDVjZDBlMmQ3NTZjY2UzYzAwZWMzOTAyMmE0ODQxMTIyZGE2YzFmNi4u
MmQ4M2Y5Y2ZkYzg0Y2EzMzk1NzFjMmI4MWQ4MTBmMDMxYTI2MDkxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCkBAIC02OSw3ICs2OSw3IEBAIFJlbmRl
cmVkUG9zaXRpb246OlJlbmRlcmVkUG9zaXRpb24oKQogewogfQogCi1SZW5kZXJlZFBvc2l0aW9u
OjpSZW5kZXJlZFBvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIElubGluZUl0
ZXJhdG9yOjpCb3hJdGVyYXRvciBydW4sIHVuc2lnbmVkIG9mZnNldCkKK1JlbmRlcmVkUG9zaXRp
b246OlJlbmRlcmVkUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgSW5saW5l
SXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvciBydW4sIHVuc2lnbmVkIG9mZnNldCkKICAgICA6IG1f
cmVuZGVyZXIocmVuZGVyZXIpCiAgICAgLCBtX3J1bihydW4pCiAgICAgLCBtX29mZnNldChvZmZz
ZXQpCkBAIC05NSwxNCArOTUsMTQgQEAgUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlv
bihjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIEFmZmluaXR5IGFmZmluaXR5KQogICAgICAgICBt
X3JlbmRlcmVyID0gcmVuZGVyZXJGcm9tUG9zaXRpb24ocG9zaXRpb24pOwogfQogCi1JbmxpbmVJ
dGVyYXRvcjo6Qm94SXRlcmF0b3IgUmVuZGVyZWRQb3NpdGlvbjo6cHJldmlvdXNMZWFmT25MaW5l
KCkgY29uc3QKK0lubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgUmVuZGVyZWRQb3NpdGlv
bjo6cHJldmlvdXNMZWFmT25MaW5lKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcHJldmlvdXNMZWFm
T25MaW5lKQogICAgICAgICBtX3ByZXZpb3VzTGVhZk9uTGluZSA9IG1fcnVuLT5wcmV2aW91c09u
TGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CiAgICAgcmV0dXJuICptX3ByZXZpb3VzTGVhZk9uTGlu
ZTsKIH0KIAotSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yIFJlbmRlcmVkUG9zaXRpb246Om5l
eHRMZWFmT25MaW5lKCkgY29uc3QKK0lubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgUmVu
ZGVyZWRQb3NpdGlvbjo6bmV4dExlYWZPbkxpbmUoKSBjb25zdAogewogICAgIGlmICghbV9uZXh0
TGVhZk9uTGluZSkKICAgICAgICAgbV9uZXh0TGVhZk9uTGluZSA9IG1fcnVuLT5uZXh0T25MaW5l
SWdub3JpbmdMaW5lQnJlYWsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0
aW9uLmgKaW5kZXggOTA2ZWYwN2NjMWIwMjliMjcyMjViN2U2OGJmOGYzYmM4OTA5MTFhMy4uMjEz
MjIzZDljNTE2NGVjNGE3OTIwYjk1YzdkYjE0MWY2ZGQzYTI3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmgKQEAgLTcyLDIxICs3MiwyMSBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlbmRlcmVkUG9zaXRpb24mKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIGV4cGxpY2l0IFJlbmRlcmVkUG9zaXRpb24oY29u
c3QgUmVuZGVyT2JqZWN0KiwgSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yLCB1bnNpZ25lZCBv
ZmZzZXQpOworICAgIGV4cGxpY2l0IFJlbmRlcmVkUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0
KiwgSW5saW5lSXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvciwgdW5zaWduZWQgb2Zmc2V0KTsKIAot
ICAgIElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBwcmV2aW91c0xlYWZPbkxpbmUoKSBjb25z
dDsKLSAgICBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgbmV4dExlYWZPbkxpbmUoKSBjb25z
dDsKKyAgICBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yIHByZXZpb3VzTGVhZk9uTGlu
ZSgpIGNvbnN0OworICAgIElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgbmV4dExlYWZP
bkxpbmUoKSBjb25zdDsKICAgICBib29sIGF0TGVmdG1vc3RPZmZzZXRJbkJveCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnVuICYmIG1fb2Zmc2V0ID09IG1fcnVuLT5sZWZ0bW9zdENhcmV0T2Zmc2V0KCk7
IH0KICAgICBib29sIGF0UmlnaHRtb3N0T2Zmc2V0SW5Cb3goKSBjb25zdCB7IHJldHVybiBtX3J1
biAmJiBtX29mZnNldCA9PSBtX3J1bi0+cmlnaHRtb3N0Q2FyZXRPZmZzZXQoKTsgfQogICAgIGJv
b2wgYXRMZWZ0Qm91bmRhcnlPZkJpZGlSdW4oU2hvdWxkTWF0Y2hCaWRpTGV2ZWwsIHVuc2lnbmVk
IGNoYXIgYmlkaUxldmVsT2ZSdW4pIGNvbnN0OwogICAgIGJvb2wgYXRSaWdodEJvdW5kYXJ5T2ZC
aWRpUnVuKFNob3VsZE1hdGNoQmlkaUxldmVsLCB1bnNpZ25lZCBjaGFyIGJpZGlMZXZlbE9mUnVu
KSBjb25zdDsKIAogICAgIGNvbnN0IFJlbmRlck9iamVjdCogbV9yZW5kZXJlciB7IG51bGxwdHIg
fTsKLSAgICBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgbV9ydW47CisgICAgSW5saW5lSXRl
cmF0b3I6OkxlYWZCb3hJdGVyYXRvciBtX3J1bjsKICAgICB1bnNpZ25lZCBtX29mZnNldCB7IDAg
fTsKIAotICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0
b3I+IG1fcHJldmlvdXNMZWFmT25MaW5lOwotICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxJbmxp
bmVJdGVyYXRvcjo6Qm94SXRlcmF0b3I+IG1fbmV4dExlYWZPbkxpbmU7CisgICAgbXV0YWJsZSBz
dGQ6Om9wdGlvbmFsPElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3I+IG1fcHJldmlvdXNM
ZWFmT25MaW5lOworICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxJbmxpbmVJdGVyYXRvcjo6TGVh
ZkJveEl0ZXJhdG9yPiBtX25leHRMZWFmT25MaW5lOwogfTsKIAogYm9vbCByZW5kZXJPYmplY3RD
b250YWluc1Bvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFBvc2l0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0cy5jcHAKaW5kZXggN2U5M2YwN2E5YzVjZTJh
NTE2OTNhYTc0MjYzNzA1ZTVkODE4YTdhZi4uOTM4Nzg4ODNjZThkNWY3MDdiNzNiMDJkODc2MDRj
ODVjZWRjZmFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlVW5p
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcApAQCAt
MTI0LDEyICsxMjQsMTIgQEAgc3RhdGljIFBvc2l0aW9uIG5leHRMaW5lQ2FuZGlkYXRlUG9zaXRp
b24oTm9kZSogbm9kZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXMKICAgICByZXR1cm4gUG9z
aXRpb24oKTsKIH0KIAotc3RhdGljIGJvb2wgaXNUZXh0T3JMaW5lQnJlYWtSdW4oSW5saW5lSXRl
cmF0b3I6OkJveEl0ZXJhdG9yIHJ1bikKK3N0YXRpYyBib29sIGlzVGV4dE9yTGluZUJyZWFrUnVu
KElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3IgcnVuKQogewogICAgIHJldHVybiBydW4g
JiYgKHJ1bi0+aXNUZXh0KCkgfHwgcnVuLT5yZW5kZXJlcigpLmlzQlIoKSk7CiB9CiAKLXN0YXRp
YyBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgcHJldmlvdXNUZXh0T3JMaW5lQnJlYWtSdW4o
SW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yIHJ1bikKK3N0YXRpYyBJbmxpbmVJdGVyYXRvcjo6
TGVhZkJveEl0ZXJhdG9yIHByZXZpb3VzVGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9y
OjpMZWFmQm94SXRlcmF0b3IgcnVuKQogewogICAgIHdoaWxlIChydW4pIHsKICAgICAgICAgcnVu
LnRyYXZlcnNlUHJldmlvdXNPbkxpbmVJbkxvZ2ljYWxPcmRlcigpOwpAQCAtMTM5LDcgKzEzOSw3
IEBAIHN0YXRpYyBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3IgcHJldmlvdXNUZXh0T3JMaW5l
QnJlYWtSdW4oSW5saW5lSXRlcmF0b3I6OkJvCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotc3RhdGlj
IElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBuZXh0VGV4dE9yTGluZUJyZWFrUnVuKElubGlu
ZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBydW4pCitzdGF0aWMgSW5saW5lSXRlcmF0b3I6OkxlYWZC
b3hJdGVyYXRvciBuZXh0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9yOjpMZWFmQm94
SXRlcmF0b3IgcnVuKQogewogICAgIHdoaWxlIChydW4pIHsKICAgICAgICAgcnVuLnRyYXZlcnNl
TmV4dE9uTGluZUluTG9naWNhbE9yZGVyKCk7CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIElu
bGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBuZXh0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0
ZXJhdG9yOjpCb3hJdGUKICAgICByZXR1cm4geyB9OwogfQogCi1zdGF0aWMgSW5saW5lSXRlcmF0
b3I6OkJveEl0ZXJhdG9yIHN0YXJ0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9yOjpM
aW5lSXRlcmF0b3IgbGluZSkKK3N0YXRpYyBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9y
IHN0YXJ0VGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3IgbGlu
ZSkKIHsKICAgICBhdXRvIHJ1biA9IGxpbmUtPmxvZ2ljYWxTdGFydFJ1bigpOwogICAgIGlmIChp
c1RleHRPckxpbmVCcmVha1J1bihydW4pKQpAQCAtMTU3LDcgKzE1Nyw3IEBAIHN0YXRpYyBJbmxp
bmVJdGVyYXRvcjo6Qm94SXRlcmF0b3Igc3RhcnRUZXh0T3JMaW5lQnJlYWtSdW4oSW5saW5lSXRl
cmF0b3I6OkxpbmVJCiAgICAgcmV0dXJuIG5leHRUZXh0T3JMaW5lQnJlYWtSdW4ocnVuKTsKIH0K
IAotc3RhdGljIElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBlbmRUZXh0T3JMaW5lQnJlYWtS
dW4oSW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRvciBsaW5lKQorc3RhdGljIElubGluZUl0ZXJh
dG9yOjpMZWFmQm94SXRlcmF0b3IgZW5kVGV4dE9yTGluZUJyZWFrUnVuKElubGluZUl0ZXJhdG9y
OjpMaW5lSXRlcmF0b3IgbGluZSkKIHsKICAgICBhdXRvIHJ1biA9IGxpbmUtPmxvZ2ljYWxFbmRS
dW4oKTsKICAgICBpZiAoaXNUZXh0T3JMaW5lQnJlYWtSdW4ocnVuKSkKQEAgLTE2NSw3ICsxNjUs
NyBAQCBzdGF0aWMgSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9yIGVuZFRleHRPckxpbmVCcmVh
a1J1bihJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZQogICAgIHJldHVybiBwcmV2aW91c1RleHRPckxp
bmVCcmVha1J1bihydW4pOwogfQogCi1zdGF0aWMgY29uc3QgSW5saW5lSXRlcmF0b3I6OkJveEl0
ZXJhdG9yIGxvZ2ljYWxseVByZXZpb3VzUnVuKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJs
ZVBvc2l0aW9uLCBJbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3Igc3RhcnRSdW4sIGJvb2wmIHBy
ZXZpb3VzQm94SW5EaWZmZXJlbnRMaW5lKQorc3RhdGljIGNvbnN0IElubGluZUl0ZXJhdG9yOjpM
ZWFmQm94SXRlcmF0b3IgbG9naWNhbGx5UHJldmlvdXNSdW4oY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiB2aXNpYmxlUG9zaXRpb24sIElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3Igc3RhcnRS
dW4sIGJvb2wmIHByZXZpb3VzQm94SW5EaWZmZXJlbnRMaW5lKQogewogICAgIGlmIChhdXRvIHBy
ZXZpb3VzUnVuID0gcHJldmlvdXNUZXh0T3JMaW5lQnJlYWtSdW4oc3RhcnRSdW4pKQogICAgICAg
ICByZXR1cm4gcHJldmlvdXNSdW47CkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGNvbnN0IElu
bGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBsb2dpY2FsbHlQcmV2aW91c1J1bihjb25zdCBWaXNp
YmxlUG9zaXQKIH0KIAogCi1zdGF0aWMgY29uc3QgSW5saW5lSXRlcmF0b3I6OkJveEl0ZXJhdG9y
IGxvZ2ljYWxseU5leHRSdW4oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24s
IElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBzdGFydFJ1biwgYm9vbCYgbmV4dEJveEluRGlm
ZmVyZW50TGluZSkKK3N0YXRpYyBjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9y
IGxvZ2ljYWxseU5leHRSdW4oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24s
IElubGluZUl0ZXJhdG9yOjpMZWFmQm94SXRlcmF0b3Igc3RhcnRSdW4sIGJvb2wmIG5leHRCb3hJ
bkRpZmZlcmVudExpbmUpCiB7CiAgICAgaWYgKGF1dG8gbmV4dFJ1biA9IG5leHRUZXh0T3JMaW5l
QnJlYWtSdW4oc3RhcnRSdW4pKQogICAgICAgICByZXR1cm4gbmV4dFJ1bjsKQEAgLTMxNSw3ICsz
MTUsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc3VhbFdvcmRQb3NpdGlvbihjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHZpc2libGVQb3NpdGlvbgogICAgIHZpc2libGVQb3NpdGlvbi5kZWVw
RXF1aXZhbGVudCgpLmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogCiAgICAgVGV4dERpcmVjdGlvbiBibG9ja0RpcmVjdGlvbiA9IGRpcmVjdGlvbk9m
RW5jbG9zaW5nQmxvY2sodmlzaWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkpOwotICAgIElu
bGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRvciBwcmV2aW91c2x5VmlzaXRlZFJ1bjsKKyAgICBJbmxp
bmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yIHByZXZpb3VzbHlWaXNpdGVkUnVuOwogICAgIFZp
c2libGVQb3NpdGlvbiBjdXJyZW50ID0gdmlzaWJsZVBvc2l0aW9uOwogICAgIHN0ZDo6b3B0aW9u
YWw8VmlzaWJsZVBvc2l0aW9uPiBwcmV2aW91c1Bvc2l0aW9uOwogICAgIFVCcmVha0l0ZXJhdG9y
KiBpdGVyID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guY3BwCmluZGV4IGNmZjM5ZjIyMDQ5ZTQ2NGNjNzQy
NzllNjkwNTA5Y2U5NGZhNjk0NzAuLjkwZTg3ODE4YTQ2YzNkYzhmOWNkYWFhMmQzM2MwNGNkN2Mz
NzM2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9Jbmxp
bmVJdGVyYXRvckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yQm94LmNwcApAQCAtNTgsMjQgKzU4LDI0IEBAIGJvb2wgQm94SXRlcmF0
b3I6OmF0RW5kKCkgY29uc3QKICAgICB9KTsKIH0KIAotQm94SXRlcmF0b3IgQm94OjpuZXh0T25M
aW5lKCkgY29uc3QKK0xlYWZCb3hJdGVyYXRvciBCb3g6Om5leHRPbkxpbmUoKSBjb25zdAogewot
ICAgIHJldHVybiBCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0T25MaW5lKCk7CisgICAg
cmV0dXJuIExlYWZCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0T25MaW5lKCk7CiB9CiAK
LUJveEl0ZXJhdG9yIEJveDo6cHJldmlvdXNPbkxpbmUoKSBjb25zdAorTGVhZkJveEl0ZXJhdG9y
IEJveDo6cHJldmlvdXNPbkxpbmUoKSBjb25zdAogewotICAgIHJldHVybiBCb3hJdGVyYXRvcigq
dGhpcykudHJhdmVyc2VQcmV2aW91c09uTGluZSgpOworICAgIHJldHVybiBMZWFmQm94SXRlcmF0
b3IoKnRoaXMpLnRyYXZlcnNlUHJldmlvdXNPbkxpbmUoKTsKIH0KIAotQm94SXRlcmF0b3IgQm94
OjpuZXh0T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdAorTGVhZkJveEl0ZXJhdG9yIEJv
eDo6bmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQm94
SXRlcmF0b3IoKnRoaXMpLnRyYXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7Cisg
ICAgcmV0dXJuIExlYWZCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0T25MaW5lSWdub3Jp
bmdMaW5lQnJlYWsoKTsKIH0KIAotQm94SXRlcmF0b3IgQm94OjpwcmV2aW91c09uTGluZUlnbm9y
aW5nTGluZUJyZWFrKCkgY29uc3QKK0xlYWZCb3hJdGVyYXRvciBCb3g6OnByZXZpb3VzT25MaW5l
SWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdAogewotICAgIHJldHVybiBCb3hJdGVyYXRvcigqdGhp
cykudHJhdmVyc2VQcmV2aW91c09uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CisgICAgcmV0dXJu
IExlYWZCb3hJdGVyYXRvcigqdGhpcykudHJhdmVyc2VQcmV2aW91c09uTGluZUlnbm9yaW5nTGlu
ZUJyZWFrKCk7CiB9CiAKIExpbmVJdGVyYXRvciBCb3g6OmxpbmUoKSBjb25zdApAQCAtMTA2LDcg
KzEwNiwxNyBAQCBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEJveDo6c2VsZWN0aW9uU3Rh
dGUoKSBjb25zdAogICAgIHJldHVybiByZW5kZXJlcigpLnNlbGVjdGlvblN0YXRlKCk7CiB9CiAK
LUJveEl0ZXJhdG9yJiBCb3hJdGVyYXRvcjo6dHJhdmVyc2VOZXh0T25MaW5lKCkKK0xlYWZCb3hJ
dGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yKEJveDo6UGF0aFZhcmlhbnQmJiBwYXRoVmFyaWFudCkK
KyAgICA6IEJveEl0ZXJhdG9yKFdURk1vdmUocGF0aFZhcmlhbnQpKQoreworfQorCitMZWFmQm94
SXRlcmF0b3I6OkxlYWZCb3hJdGVyYXRvcihjb25zdCBCb3gmIHJ1bikKKyAgICA6IEJveEl0ZXJh
dG9yKHJ1bikKK3sKK30KKworTGVhZkJveEl0ZXJhdG9yJiBMZWFmQm94SXRlcmF0b3I6OnRyYXZl
cnNlTmV4dE9uTGluZSgpCiB7CiAgICAgV1RGOjpzd2l0Y2hPbihtX2JveC5tX3BhdGhWYXJpYW50
LCBbXShhdXRvJiBwYXRoKSB7CiAgICAgICAgIHBhdGgudHJhdmVyc2VOZXh0T25MaW5lKCk7CkBA
IC0xMTQsNyArMTI0LDcgQEAgQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRP
bkxpbmUoKQogICAgIHJldHVybiAqdGhpczsKIH0KIAotQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9y
Ojp0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCkKK0xlYWZCb3hJdGVyYXRvciYgTGVhZkJveEl0ZXJh
dG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCkKIHsKICAgICBXVEY6OnN3aXRjaE9uKG1fYm94
Lm1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKICAgICAgICAgcGF0aC50cmF2ZXJzZVBy
ZXZpb3VzT25MaW5lKCk7CkBAIC0xMjIsNyArMTMyLDcgQEAgQm94SXRlcmF0b3ImIEJveEl0ZXJh
dG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLUJv
eEl0ZXJhdG9yJiBCb3hJdGVyYXRvcjo6dHJhdmVyc2VOZXh0T25MaW5lSWdub3JpbmdMaW5lQnJl
YWsoKQorTGVhZkJveEl0ZXJhdG9yJiBMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGlu
ZUlnbm9yaW5nTGluZUJyZWFrKCkKIHsKICAgICBkbyB7CiAgICAgICAgIHRyYXZlcnNlTmV4dE9u
TGluZSgpOwpAQCAtMTMwLDcgKzE0MCw3IEBAIEJveEl0ZXJhdG9yJiBCb3hJdGVyYXRvcjo6dHJh
dmVyc2VOZXh0T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKQogICAgIHJldHVybiAqdGhpczsKIH0K
IAotQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lSWdub3Jp
bmdMaW5lQnJlYWsoKQorTGVhZkJveEl0ZXJhdG9yJiBMZWFmQm94SXRlcmF0b3I6OnRyYXZlcnNl
UHJldmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpCiB7CiAgICAgZG8gewogICAgICAgICB0
cmF2ZXJzZVByZXZpb3VzT25MaW5lKCk7CkBAIC0xMzgsNyArMTQ4LDcgQEAgQm94SXRlcmF0b3Im
IEJveEl0ZXJhdG9yOjp0cmF2ZXJzZVByZXZpb3VzT25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKQog
ICAgIHJldHVybiAqdGhpczsKIH0KIAotQm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJz
ZU5leHRPbkxpbmVJbkxvZ2ljYWxPcmRlcigpCitMZWFmQm94SXRlcmF0b3ImIExlYWZCb3hJdGVy
YXRvcjo6dHJhdmVyc2VOZXh0T25MaW5lSW5Mb2dpY2FsT3JkZXIoKQogewogICAgIFdURjo6c3dp
dGNoT24obV9ib3gubV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewogICAgICAgICBwYXRo
LnRyYXZlcnNlTmV4dE9uTGluZUluTG9naWNhbE9yZGVyKCk7CkBAIC0xNDYsNyArMTU2LDcgQEAg
Qm94SXRlcmF0b3ImIEJveEl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRPbkxpbmVJbkxvZ2ljYWxPcmRl
cigpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi1Cb3hJdGVyYXRvciYgQm94SXRlcmF0b3I6OnRy
YXZlcnNlUHJldmlvdXNPbkxpbmVJbkxvZ2ljYWxPcmRlcigpCitMZWFmQm94SXRlcmF0b3ImIExl
YWZCb3hJdGVyYXRvcjo6dHJhdmVyc2VQcmV2aW91c09uTGluZUluTG9naWNhbE9yZGVyKCkKIHsK
ICAgICBXVEY6OnN3aXRjaE9uKG1fYm94Lm1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsK
ICAgICAgICAgcGF0aC50cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIoKTsKQEAg
LTE1NCw3ICsxNjQsNyBAQCBCb3hJdGVyYXRvciYgQm94SXRlcmF0b3I6OnRyYXZlcnNlUHJldmlv
dXNPbkxpbmVJbkxvZ2ljYWxPcmRlcigpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi1Cb3hJdGVy
YXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJiByZW5kZXJlcikKK0xlYWZCb3hJdGVy
YXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJiByZW5kZXJlcikKIHsKICNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKICAgICBpZiAoYXV0byogbGluZUxheW91dCA9
IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb250YWluaW5nKHJlbmRlcmVyKSkKQEAg
LTE2Myw3ICsxNzMsNyBAQCBCb3hJdGVyYXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFr
JiByZW5kZXJlcikKICAgICByZXR1cm4geyBCb3hMZWdhY3lQYXRoKHJlbmRlcmVyLmlubGluZUJv
eFdyYXBwZXIoKSkgfTsKIH0KIAotQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRlckJveCYg
cmVuZGVyZXIpCitMZWFmQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRlckJveCYgcmVuZGVy
ZXIpCiB7CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgaWYgKGF1
dG8qIGxpbmVMYXlvdXQgPSBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y29udGFpbmlu
ZyhyZW5kZXJlcikpCkBAIC0xNzMsNyArMTgzLDcgQEAgQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyZXIpCiB9CiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKLUJveEl0ZXJhdG9yIGJveEZvcihjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6SW5s
aW5lQ29udGVudCYgY29udGVudCwgc2l6ZV90IGJveEluZGV4KQorTGVhZkJveEl0ZXJhdG9yIGJv
eEZvcihjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudCYgY29udGVudCwgc2l6
ZV90IGJveEluZGV4KQogewogICAgIHJldHVybiB7IEJveE1vZGVyblBhdGggeyBjb250ZW50LCBi
b3hJbmRleCB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vSW5saW5lSXRlcmF0b3JCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9JbmxpbmVJdGVyYXRvckJveC5oCmluZGV4IDgyNmE2OGNjZTNlMmMwOTdlM2JjOThmYzkx
Y2E0NzVhMWIzYjU0YTcuLmFmYWU1MjBmMjdlNzY5MDhjYTE2Mjc1MzExZDVjMzM3NWQ3YWRjOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVy
YXRvckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJ
dGVyYXRvckJveC5oCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBJbmxpbmVJdGVyYXRvciB7
CiAKIGNsYXNzIExpbmVJdGVyYXRvcjsKIGNsYXNzIEJveEl0ZXJhdG9yOworY2xhc3MgTGVhZkJv
eEl0ZXJhdG9yOwogY2xhc3MgVGV4dEJveEl0ZXJhdG9yOwogCiBzdHJ1Y3QgRW5kSXRlcmF0b3Ig
eyB9OwpAQCAtOTAsMTUgKzkxLDE2IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbmxpbmVEaXNwbGF5
OjpCb3gqIGlubGluZUJveCgpIGNvbnN0OwogI2VuZGlmCiAKLSAgICBCb3hJdGVyYXRvciBuZXh0
T25MaW5lKCkgY29uc3Q7Ci0gICAgQm94SXRlcmF0b3IgcHJldmlvdXNPbkxpbmUoKSBjb25zdDsK
LSAgICBCb3hJdGVyYXRvciBuZXh0T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdDsKLSAg
ICBCb3hJdGVyYXRvciBwcmV2aW91c09uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkgY29uc3Q7Cisg
ICAgTGVhZkJveEl0ZXJhdG9yIG5leHRPbkxpbmUoKSBjb25zdDsKKyAgICBMZWFmQm94SXRlcmF0
b3IgcHJldmlvdXNPbkxpbmUoKSBjb25zdDsKKyAgICBMZWFmQm94SXRlcmF0b3IgbmV4dE9uTGlu
ZUlnbm9yaW5nTGluZUJyZWFrKCkgY29uc3Q7CisgICAgTGVhZkJveEl0ZXJhdG9yIHByZXZpb3Vz
T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKSBjb25zdDsKIAogICAgIExpbmVJdGVyYXRvciBsaW5l
KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgQm94SXRlcmF0b3I7Cisg
ICAgZnJpZW5kIGNsYXNzIExlYWZCb3hJdGVyYXRvcjsKICAgICBmcmllbmQgY2xhc3MgVGV4dEJv
eEl0ZXJhdG9yOwogCiAgICAgLy8gVG8gaGVscCB3aXRoIGRlYnVnZ2luZy4KQEAgLTExMiwxMCAr
MTE0LDYgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBCb3hJdGVyYXRvciB7CiBwdWJsaWM6Ci0gICAg
Qm94SXRlcmF0b3IoKSA6IG1fYm94KEJveExlZ2FjeVBhdGggeyBudWxscHRyLCB7IH0gfSkgeyB9
OwotICAgIEJveEl0ZXJhdG9yKEJveDo6UGF0aFZhcmlhbnQmJik7Ci0gICAgQm94SXRlcmF0b3Io
Y29uc3QgQm94Jik7Ci0KICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1
cm4gIWF0RW5kKCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBCb3hJdGVyYXRvciYp
IGNvbnN0OwpAQCAtMTI5LDIxICsxMjcsMzIgQEAgcHVibGljOgogCiAgICAgYm9vbCBhdEVuZCgp
IGNvbnN0OwogCi0gICAgQm94SXRlcmF0b3ImIHRyYXZlcnNlTmV4dE9uTGluZSgpOwotICAgIEJv
eEl0ZXJhdG9yJiB0cmF2ZXJzZVByZXZpb3VzT25MaW5lKCk7Ci0gICAgQm94SXRlcmF0b3ImIHRy
YXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7Ci0gICAgQm94SXRlcmF0b3ImIHRy
YXZlcnNlUHJldmlvdXNPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygpOwotICAgIEJveEl0ZXJhdG9y
JiB0cmF2ZXJzZU5leHRPbkxpbmVJbkxvZ2ljYWxPcmRlcigpOwotICAgIEJveEl0ZXJhdG9yJiB0
cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIoKTsKLQogcHJvdGVjdGVkOgorICAg
IEJveEl0ZXJhdG9yKCkgOiBtX2JveChCb3hMZWdhY3lQYXRoIHsgbnVsbHB0ciwgeyB9IH0pIHsg
fTsKKyAgICBCb3hJdGVyYXRvcihCb3g6OlBhdGhWYXJpYW50JiYpOworICAgIEJveEl0ZXJhdG9y
KGNvbnN0IEJveCYpOworCiAgICAgQm94IG1fYm94OwogfTsKIAotQm94SXRlcmF0b3IgYm94Rm9y
KGNvbnN0IFJlbmRlckxpbmVCcmVhayYpOwotQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRl
ckJveCYpOworY2xhc3MgTGVhZkJveEl0ZXJhdG9yIDogcHVibGljIEJveEl0ZXJhdG9yIHsKK3B1
YmxpYzoKKyAgICBMZWFmQm94SXRlcmF0b3IoKSA9IGRlZmF1bHQ7CisgICAgTGVhZkJveEl0ZXJh
dG9yKEJveDo6UGF0aFZhcmlhbnQmJik7CisgICAgTGVhZkJveEl0ZXJhdG9yKGNvbnN0IEJveCYp
OworCisgICAgTGVhZkJveEl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRPbkxpbmUoKTsKKyAgICBMZWFm
Qm94SXRlcmF0b3ImIHRyYXZlcnNlUHJldmlvdXNPbkxpbmUoKTsKKyAgICBMZWFmQm94SXRlcmF0
b3ImIHRyYXZlcnNlTmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCk7CisgICAgTGVhZkJveEl0
ZXJhdG9yJiB0cmF2ZXJzZVByZXZpb3VzT25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKTsKKyAgICBM
ZWFmQm94SXRlcmF0b3ImIHRyYXZlcnNlTmV4dE9uTGluZUluTG9naWNhbE9yZGVyKCk7CisgICAg
TGVhZkJveEl0ZXJhdG9yJiB0cmF2ZXJzZVByZXZpb3VzT25MaW5lSW5Mb2dpY2FsT3JkZXIoKTsK
K307CisKK0xlYWZCb3hJdGVyYXRvciBib3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJik7CitM
ZWFmQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRlckJveCYpOwogI2lmIEVOQUJMRShMQVlP
VVRfRk9STUFUVElOR19DT05URVhUKQotQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IExheW91dElu
dGVncmF0aW9uOjpJbmxpbmVDb250ZW50Jiwgc2l6ZV90IGJveEluZGV4KTsKK0xlYWZCb3hJdGVy
YXRvciBib3hGb3IoY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQmLCBzaXpl
X3QgYm94SW5kZXgpOwogI2VuZGlmCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuY3BwCmluZGV4IDlkNWE1MzQ2ZDY3MjY4Njlj
ZTZiMGNiOWMyZGE1NWYyYTIzYWU2MzkuLmY0ZWI2YTY4ZmQzZGJiODE1NzMyMDNmOWI2MDdmNGQx
ZjQ1OGFjNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9J
bmxpbmVJdGVyYXRvckxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuY3BwCkBAIC0xMDEsMzUgKzEwMSwzNSBAQCBMaW5lSXRl
cmF0b3IgTGluZTo6cHJldmlvdXMoKSBjb25zdAogICAgIHJldHVybiBMaW5lSXRlcmF0b3IoKnRo
aXMpLnRyYXZlcnNlUHJldmlvdXMoKTsKIH0KIAotQm94SXRlcmF0b3IgTGluZTo6Zmlyc3RSdW4o
KSBjb25zdAorTGVhZkJveEl0ZXJhdG9yIExpbmU6OmZpcnN0UnVuKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSAtPiBCb3hJ
dGVyYXRvciB7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0
byYgcGF0aCkgLT4gTGVhZkJveEl0ZXJhdG9yIHsKICAgICAgICAgcmV0dXJuIHsgcGF0aC5maXJz
dFJ1bigpIH07CiAgICAgfSk7CiB9CiAKLUJveEl0ZXJhdG9yIExpbmU6Omxhc3RSdW4oKSBjb25z
dAorTGVhZkJveEl0ZXJhdG9yIExpbmU6Omxhc3RSdW4oKSBjb25zdAogewotICAgIHJldHVybiBX
VEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIC0+IEJveEl0ZXJhdG9y
IHsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRo
KSAtPiBMZWFmQm94SXRlcmF0b3IgewogICAgICAgICByZXR1cm4geyBwYXRoLmxhc3RSdW4oKSB9
OwogICAgIH0pOwogfQogCi1Cb3hJdGVyYXRvciBMaW5lOjpsb2dpY2FsU3RhcnRSdW4oKSBjb25z
dAorTGVhZkJveEl0ZXJhdG9yIExpbmU6OmxvZ2ljYWxTdGFydFJ1bigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgLT4gQm94
SXRlcmF0b3IgeworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1
dG8mIHBhdGgpIC0+IExlYWZCb3hJdGVyYXRvciB7CiAgICAgICAgIHJldHVybiB7IHBhdGgubG9n
aWNhbFN0YXJ0UnVuKCkgfTsKICAgICB9KTsKIH0KIAotQm94SXRlcmF0b3IgTGluZTo6bG9naWNh
bEVuZFJ1bigpIGNvbnN0CitMZWFmQm94SXRlcmF0b3IgTGluZTo6bG9naWNhbEVuZFJ1bigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYg
cGF0aCkgLT4gQm94SXRlcmF0b3IgeworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZh
cmlhbnQsIFtdKGF1dG8mIHBhdGgpIC0+IExlYWZCb3hJdGVyYXRvciB7CiAgICAgICAgIHJldHVy
biB7IHBhdGgubG9naWNhbEVuZFJ1bigpIH07CiAgICAgfSk7CiB9CiAKLUJveEl0ZXJhdG9yIExp
bmU6OmxvZ2ljYWxTdGFydFJ1bldpdGhOb2RlKCkgY29uc3QKK0xlYWZCb3hJdGVyYXRvciBMaW5l
Ojpsb2dpY2FsU3RhcnRSdW5XaXRoTm9kZSgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvIHJ1biA9
IGxvZ2ljYWxTdGFydFJ1bigpOyBydW47IHJ1bi50cmF2ZXJzZU5leHRPbkxpbmVJbkxvZ2ljYWxP
cmRlcigpKSB7CiAgICAgICAgIGlmIChydW4tPnJlbmRlcmVyKCkubm9kZSgpKQpAQCAtMTM4LDcg
KzEzOCw3IEBAIEJveEl0ZXJhdG9yIExpbmU6OmxvZ2ljYWxTdGFydFJ1bldpdGhOb2RlKCkgY29u
c3QKICAgICByZXR1cm4geyB9OwogfQogCi1Cb3hJdGVyYXRvciBMaW5lOjpsb2dpY2FsRW5kUnVu
V2l0aE5vZGUoKSBjb25zdAorTGVhZkJveEl0ZXJhdG9yIExpbmU6OmxvZ2ljYWxFbmRSdW5XaXRo
Tm9kZSgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvIHJ1biA9IGxvZ2ljYWxFbmRSdW4oKTsgcnVu
OyBydW4udHJhdmVyc2VQcmV2aW91c09uTGluZUluTG9naWNhbE9yZGVyKCkpIHsKICAgICAgICAg
aWYgKHJ1bi0+cmVuZGVyZXIoKS5ub2RlKCkpCkBAIC0xNDcsMTIgKzE0NywxMiBAQCBCb3hJdGVy
YXRvciBMaW5lOjpsb2dpY2FsRW5kUnVuV2l0aE5vZGUoKSBjb25zdAogICAgIHJldHVybiB7IH07
CiB9CiAKLUJveEl0ZXJhdG9yIExpbmU6OmNsb3Nlc3RSdW5Gb3JQb2ludChjb25zdCBJbnRQb2lu
dCYgcG9pbnRJbkNvbnRlbnRzLCBib29sIGVkaXRhYmxlT25seSkgY29uc3QKK0xlYWZCb3hJdGVy
YXRvciBMaW5lOjpjbG9zZXN0UnVuRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250
ZW50cywgYm9vbCBlZGl0YWJsZU9ubHkpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNsb3Nlc3RSdW5G
b3JMb2dpY2FsTGVmdFBvc2l0aW9uKGlzSG9yaXpvbnRhbCgpID8gcG9pbnRJbkNvbnRlbnRzLngo
KSA6IHBvaW50SW5Db250ZW50cy55KCksIGVkaXRhYmxlT25seSk7CiB9CiAKLUJveEl0ZXJhdG9y
IExpbmU6OmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKGludCBsZWZ0UG9zaXRpb24s
IGJvb2wgZWRpdGFibGVPbmx5KSBjb25zdAorTGVhZkJveEl0ZXJhdG9yIExpbmU6OmNsb3Nlc3RS
dW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKGludCBsZWZ0UG9zaXRpb24sIGJvb2wgZWRpdGFibGVP
bmx5KSBjb25zdAogewogICAgIGF1dG8gaXNFZGl0YWJsZSA9IFsmXShhdXRvIHJ1bikgewogICAg
ICAgICByZXR1cm4gcnVuICYmIHJ1bi0+cmVuZGVyZXIoKS5ub2RlKCkgJiYgcnVuLT5yZW5kZXJl
cigpLm5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpOwpAQCAtMjI5LDcgKzIyOSw3IEBAIFJlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgTGluZTo6c2VsZWN0aW9uU3RhdGUoKSBjb25zdAogICAg
IHJldHVybiBzdGF0ZTsKIH0KIAotQm94SXRlcmF0b3IgTGluZTo6Zmlyc3RTZWxlY3RlZEJveCgp
IGNvbnN0CitMZWFmQm94SXRlcmF0b3IgTGluZTo6Zmlyc3RTZWxlY3RlZEJveCgpIGNvbnN0CiB7
CiAgICAgZm9yIChhdXRvIGJveCA9IGZpcnN0UnVuKCk7IGJveDsgYm94LnRyYXZlcnNlTmV4dE9u
TGluZSgpKSB7CiAgICAgICAgIGlmIChib3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2Jq
ZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZSkKQEAgLTIzOCw3ICsyMzgsNyBAQCBCb3hJdGVyYXRv
ciBMaW5lOjpmaXJzdFNlbGVjdGVkQm94KCkgY29uc3QKICAgICByZXR1cm4geyB9OwogfQogCi1C
b3hJdGVyYXRvciBMaW5lOjpsYXN0U2VsZWN0ZWRCb3goKSBjb25zdAorTGVhZkJveEl0ZXJhdG9y
IExpbmU6Omxhc3RTZWxlY3RlZEJveCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvIGJveCA9IGxh
c3RSdW4oKTsgYm94OyBib3gudHJhdmVyc2VQcmV2aW91c09uTGluZSgpKSB7CiAgICAgICAgIGlm
IChib3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6
Tm9uZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9Jbmxp
bmVJdGVyYXRvckxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9Jbmxp
bmVJdGVyYXRvckxpbmUuaAppbmRleCA1MmZjZTVjYjdjODZiMGVmYmFjYTJhNDZiOGExOTk2MjZm
YjY4ODUxLi4wNjJmMzMzYWEwM2JmZTdmMTlkYmYxZjA4MDAxMzNkZjk5OWY2ZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9y
TGluZS5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBJbmxpbmVJdGVyYXRvciB7CiAKIGNs
YXNzIExpbmVJdGVyYXRvcjsKIGNsYXNzIFBhdGhJdGVyYXRvcjsKLWNsYXNzIEJveEl0ZXJhdG9y
OworY2xhc3MgTGVhZkJveEl0ZXJhdG9yOwogCiBzdHJ1Y3QgRW5kTGluZUl0ZXJhdG9yIHsgfTsK
IApAQCAtODEsMjIgKzgxLDIyIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNGaXJzdCgpIGNvbnN0
OwogCi0gICAgQm94SXRlcmF0b3IgZmlyc3RSdW4oKSBjb25zdDsKLSAgICBCb3hJdGVyYXRvciBs
YXN0UnVuKCkgY29uc3Q7CisgICAgTGVhZkJveEl0ZXJhdG9yIGZpcnN0UnVuKCkgY29uc3Q7Cisg
ICAgTGVhZkJveEl0ZXJhdG9yIGxhc3RSdW4oKSBjb25zdDsKIAogICAgIExpbmVJdGVyYXRvciBu
ZXh0KCkgY29uc3Q7CiAgICAgTGluZUl0ZXJhdG9yIHByZXZpb3VzKCkgY29uc3Q7CiAKLSAgICBC
b3hJdGVyYXRvciBjbG9zZXN0UnVuRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250
ZW50cywgYm9vbCBlZGl0YWJsZU9ubHkpIGNvbnN0OwotICAgIEJveEl0ZXJhdG9yIGNsb3Nlc3RS
dW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKGludCBwb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkg
PSBmYWxzZSkgY29uc3Q7CisgICAgTGVhZkJveEl0ZXJhdG9yIGNsb3Nlc3RSdW5Gb3JQb2ludChj
b25zdCBJbnRQb2ludCYgcG9pbnRJbkNvbnRlbnRzLCBib29sIGVkaXRhYmxlT25seSkgY29uc3Q7
CisgICAgTGVhZkJveEl0ZXJhdG9yIGNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKGlu
dCBwb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkgPSBmYWxzZSkgY29uc3Q7CiAKLSAgICBCb3hJ
dGVyYXRvciBsb2dpY2FsU3RhcnRSdW4oKSBjb25zdDsKLSAgICBCb3hJdGVyYXRvciBsb2dpY2Fs
RW5kUnVuKCkgY29uc3Q7Ci0gICAgQm94SXRlcmF0b3IgbG9naWNhbFN0YXJ0UnVuV2l0aE5vZGUo
KSBjb25zdDsKLSAgICBCb3hJdGVyYXRvciBsb2dpY2FsRW5kUnVuV2l0aE5vZGUoKSBjb25zdDsK
KyAgICBMZWFmQm94SXRlcmF0b3IgbG9naWNhbFN0YXJ0UnVuKCkgY29uc3Q7CisgICAgTGVhZkJv
eEl0ZXJhdG9yIGxvZ2ljYWxFbmRSdW4oKSBjb25zdDsKKyAgICBMZWFmQm94SXRlcmF0b3IgbG9n
aWNhbFN0YXJ0UnVuV2l0aE5vZGUoKSBjb25zdDsKKyAgICBMZWFmQm94SXRlcmF0b3IgbG9naWNh
bEVuZFJ1bldpdGhOb2RlKCkgY29uc3Q7CiAgICAgCi0gICAgQm94SXRlcmF0b3IgZmlyc3RTZWxl
Y3RlZEJveCgpIGNvbnN0OwotICAgIEJveEl0ZXJhdG9yIGxhc3RTZWxlY3RlZEJveCgpIGNvbnN0
OworICAgIExlYWZCb3hJdGVyYXRvciBmaXJzdFNlbGVjdGVkQm94KCkgY29uc3Q7CisgICAgTGVh
ZkJveEl0ZXJhdG9yIGxhc3RTZWxlY3RlZEJveCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBMaW5lSXRlcmF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwCmluZGV4IDU4ZTky
ZjkzZDQyMzJmYTViYmYzZjUwZjIzY2ZmZDMzNzRhM2I4ODYuLmI5YTM0MGNkNTQxNzQ4NzhhYjc1
YzUzM2IwMWFjYjVhMTQzOWM1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guY3BwCkBAIC03NywxMiAr
NzcsMTIgQEAgY29uc3QgRm9udENhc2NhZGUmIFRleHRCb3g6OmZvbnRDYXNjYWRlKCkgY29uc3QK
IH0KIAogVGV4dEJveEl0ZXJhdG9yOjpUZXh0Qm94SXRlcmF0b3IoQm94OjpQYXRoVmFyaWFudCYm
IHBhdGhWYXJpYW50KQotICAgIDogQm94SXRlcmF0b3IoV1RGTW92ZShwYXRoVmFyaWFudCkpCisg
ICAgOiBMZWFmQm94SXRlcmF0b3IoV1RGTW92ZShwYXRoVmFyaWFudCkpCiB7CiB9CiAKIFRleHRC
b3hJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yKGNvbnN0IEJveCYgYm94KQotICAgIDogQm94SXRl
cmF0b3IoYm94KQorICAgIDogTGVhZkJveEl0ZXJhdG9yKGJveCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4dEJv
eC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yVGV4
dEJveC5oCmluZGV4IGY0ZTgwMmY4Yzg3OThiNDcwMzdjM2Q2ZGE5ZmRjZTQxZTU1ZDkyZGIuLjg5
YzI4ZGZlNGY0MGNiMTYxNzIwNDYwYzc3NzBhODkyYTVmMmI4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvclRleHRCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JUZXh0Qm94
LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIFRleHRCb3hJdGVyYXRvciBuZXh0VGV4
dEJveEluVGV4dE9yZGVyKCkgY29uc3Q7CiB9OwogCi1jbGFzcyBUZXh0Qm94SXRlcmF0b3IgOiBw
dWJsaWMgQm94SXRlcmF0b3IgeworY2xhc3MgVGV4dEJveEl0ZXJhdG9yIDogcHVibGljIExlYWZC
b3hJdGVyYXRvciB7CiBwdWJsaWM6CiAgICAgVGV4dEJveEl0ZXJhdG9yKCkgeyB9CiAgICAgVGV4
dEJveEl0ZXJhdG9yKEJveDo6UGF0aFZhcmlhbnQmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuY3BwCmluZGV4IDQ4ODdhZWRkYzIxNmU5YzVhY2M2ODNlZTM3MDlhNjNmMGRhYTAwMzYu
LjdmYTNmMGFhMTFjNWY0OGI5ZTc2ZmYyMWY4YjBjY2FkMzI0YmNiN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC00MDQsNyArNDA0LDcgQEAgSW5saW5lSXRlcmF0b3I6
OlRleHRCb3hJdGVyYXRvciBMaW5lTGF5b3V0Ojp0ZXh0Qm94ZXNGb3IoY29uc3QgUmVuZGVyVGV4
dCYgcmVuZGUKICAgICByZXR1cm4gSW5saW5lSXRlcmF0b3I6OnRleHRCb3hGb3IoKm1faW5saW5l
Q29udGVudCwgKmZpcnN0SW5kZXgpOwogfQogCi1JbmxpbmVJdGVyYXRvcjo6Qm94SXRlcmF0b3Ig
TGluZUxheW91dDo6Ym94Rm9yKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlckVsZW1lbnQpIGNv
bnN0CitJbmxpbmVJdGVyYXRvcjo6TGVhZkJveEl0ZXJhdG9yIExpbmVMYXlvdXQ6OmJveEZvcihj
b25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJFbGVtZW50KSBjb25zdAogewogICAgIGlmICghbV9p
bmxpbmVDb250ZW50KQogICAgICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5oCmluZGV4IDhjZjNhODRlM2QwNzg4YmQyYjhkMmNmOWRiOWIzMGZlZDllYWI0YjIuLmY2
ZWI2YTM4NDFhNWY1NmE1NmNlOTAzM2M1ODkyMGQ2MWJmNmY2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25MaW5lTGF5b3V0LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGl0VGVz
dChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9j
YXRpb24mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rp
b24pOwogCiAgICAgSW5saW5lSXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvciB0ZXh0Qm94ZXNGb3Io
Y29uc3QgUmVuZGVyVGV4dCYpIGNvbnN0OwotICAgIElubGluZUl0ZXJhdG9yOjpCb3hJdGVyYXRv
ciBib3hGb3IoY29uc3QgUmVuZGVyRWxlbWVudCYpIGNvbnN0OworICAgIElubGluZUl0ZXJhdG9y
OjpMZWFmQm94SXRlcmF0b3IgYm94Rm9yKGNvbnN0IFJlbmRlckVsZW1lbnQmKSBjb25zdDsKICAg
ICBJbmxpbmVJdGVyYXRvcjo6TGluZUl0ZXJhdG9yIGZpcnN0TGluZSgpIGNvbnN0OwogICAgIElu
bGluZUl0ZXJhdG9yOjpMaW5lSXRlcmF0b3IgbGFzdExpbmUoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCBkNmI0MGRiOGZiMThm
ZjMwYjljZTJhMDFkM2M4MDdlMDMyZDI5YzQwLi40ODRkZGZjMTc0ZGZmYjg2MTIzOGM1OWYzZGIw
ZjAwMmI1YTJkY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcApAQCAtMzU1MCw3ICszNTUwLDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJsb2Nr
Rmxvdzo6cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXQKICAg
ICBib29sIGJsb2Nrc0FyZUZsaXBwZWQgPSBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKCk7CiAKICAgICAvLyBsb29rIGZvciB0aGUgY2xvc2VzdCBsaW5lIGJveCBpbiB0aGUgcm9v
dCBib3ggd2hpY2ggaXMgYXQgdGhlIHBhc3NlZC1pbiB5IGNvb3JkaW5hdGUKLSAgICBJbmxpbmVJ
dGVyYXRvcjo6Qm94SXRlcmF0b3IgY2xvc2VzdFJ1bjsKKyAgICBJbmxpbmVJdGVyYXRvcjo6TGVh
ZkJveEl0ZXJhdG9yIGNsb3Nlc3RSdW47CiAgICAgSW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRv
ciBmaXJzdExpbmVXaXRoQ2hpbGRyZW47CiAgICAgSW5saW5lSXRlcmF0b3I6OkxpbmVJdGVyYXRv
ciBsYXN0TGluZVdpdGhDaGlsZHJlbjsKICAgICBmb3IgKGF1dG8gbGluZSA9IGZpcnN0TGluZTsg
bGluZTsgbGluZS50cmF2ZXJzZU5leHQoKSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>