<?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>211628</bug_id>
          
          <creation_ts>2020-05-08 08:49:17 -0700</creation_ts>
          <short_desc>[clang-tidy] Run modernize-use-nullptr over WTF</short_desc>
          <delta_ts>2020-05-08 10:44:34 -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>Web Template Framework</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="Don Olmstead">don.olmstead</reporter>
          <assigned_to name="Don Olmstead">don.olmstead</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1650606</commentid>
    <comment_count>0</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-05-08 08:49:17 -0700</bug_when>
    <thetext>..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650609</commentid>
    <comment_count>1</comment_count>
      <attachid>398864</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-05-08 08:56:17 -0700</bug_when>
    <thetext>Created attachment 398864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650619</commentid>
    <comment_count>2</comment_count>
      <attachid>398864</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-05-08 09:11:44 -0700</bug_when>
    <thetext>Comment on attachment 398864
Patch

Not sure if we should be ignoring any changes to dtoa bits since that&apos;s a third party library.

When was the last time those files were updated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650639</commentid>
    <comment_count>3</comment_count>
      <attachid>398864</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-08 09:40:03 -0700</bug_when>
    <thetext>Comment on attachment 398864
Patch

r=me if EWS gets green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650673</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-08 10:31:59 -0700</bug_when>
    <thetext>Committed r261393: &lt;https://trac.webkit.org/changeset/261393&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398864.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650681</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-08 10:44:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/63027126&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398864</attachid>
            <date>2020-05-08 08:56:17 -0700</date>
            <delta_ts>2020-05-08 10:32:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211628.diff</filename>
            <type>text/plain</type>
            <size>52750</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNmMzNzViODNmYzU1Li43NjVjNmExYWU0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTg4IEBACisy
MDIwLTA1LTA4ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CisKKyAgICAg
ICAgW2NsYW5nLXRpZHldIFJ1biBtb2Rlcm5pemUtdXNlLW51bGxwdHIgb3ZlciBXVEYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTYyOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZml4IG9w
dGlvbiBpbiBjbGFuZy10aWR5IHRvIGVuc3VyZSBudWxscHRyIGlzIGJlaW5nIHVzZWQgYWNyb3Nz
IFdURi4KKworICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3dGYvQnVt
cFBvaW50ZXJBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdURjo6QnVtcFBvaW50ZXJQb29sOjpCdW1w
UG9pbnRlclBvb2wpOgorICAgICAgICAoV1RGOjpCdW1wUG9pbnRlclBvb2w6OmNyZWF0ZSk6Cisg
ICAgICAgIChXVEY6OkJ1bXBQb2ludGVyQWxsb2NhdG9yOjpCdW1wUG9pbnRlckFsbG9jYXRvcik6
CisgICAgICAgICogd3RmL0RhdGFMb2cuY3BwOgorICAgICAgICAoV1RGOjpzZXREYXRhRmlsZSk6
CisgICAgICAgICogd3RmL0RhdGVNYXRoLmNwcDoKKyAgICAgICAgKFdURjo6cGFyc2VFUzVEYXRl
UG9ydGlvbik6CisgICAgICAgIChXVEY6OnBhcnNlRVM1VGltZVBvcnRpb24pOgorICAgICAgICAq
IHd0Zi9GYXN0TWFsbG9jLmNwcDoKKyAgICAgICAgKFdURjo6ZmFzdFplcm9lZE1hbGxvYyk6Cisg
ICAgICAgIChXVEY6OmZhc3RTdHJEdXApOgorICAgICAgICAoV1RGOjp0cnlGYXN0WmVyb2VkTWFs
bG9jKToKKyAgICAgICAgKFdURjo6aXNGYXN0TWFsbG9jRW5hYmxlZCk6CisgICAgICAgIChXVEY6
OmZhc3RNYWxsb2NHb29kU2l6ZSk6CisgICAgICAgIChXVEY6OmZhc3RBbGlnbmVkTWFsbG9jKToK
KyAgICAgICAgKFdURjo6dHJ5RmFzdEFsaWduZWRNYWxsb2MpOgorICAgICAgICAoV1RGOjpmYXN0
QWxpZ25lZEZyZWUpOgorICAgICAgICAoV1RGOjp0cnlGYXN0TWFsbG9jKToKKyAgICAgICAgKFdU
Rjo6ZmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZhc3RDYWxsb2MpOgorICAgICAgICAo
V1RGOjpmYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdEZyZWUpOgorICAgICAgICAoV1RG
OjpmYXN0UmVhbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZhc3RSZWFsbG9jKToKKyAgICAgICAg
KFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KToKKyAgICAgICAgKFdURjo6cmVsZWFz
ZUZhc3RNYWxsb2NGcmVlTWVtb3J5Rm9yVGhpc1RocmVhZCk6CisgICAgICAgIChXVEY6OmZhc3RN
YWxsb2NTdGF0aXN0aWNzKToKKyAgICAgICAgKFdURjo6ZmFzdE1hbGxvY1NpemUpOgorICAgICAg
ICAoV1RGOjpmYXN0Q29tbWl0QWxpZ25lZE1lbW9yeSk6CisgICAgICAgIChXVEY6OmZhc3REZWNv
bW1pdEFsaWduZWRNZW1vcnkpOgorICAgICAgICAoV1RGOjpmYXN0RW5hYmxlTWluaU1vZGUpOgor
ICAgICAgICAoV1RGOjpmYXN0RGlzYWJsZVNjYXZlbmdlcik6CisgICAgICAgIChXVEY6OmZhc3RN
YWxsb2NEdW1wTWFsbG9jU3RhdHMpOgorICAgICAgICAoV1RGOjpBdm9pZFJlY29yZGluZ1Njb3Bl
Ojphdm9pZFJlY29yZGluZ0NvdW50KToKKyAgICAgICAgKFdURjo6QXZvaWRSZWNvcmRpbmdTY29w
ZTo6QXZvaWRSZWNvcmRpbmdTY29wZSk6CisgICAgICAgIChXVEY6OkF2b2lkUmVjb3JkaW5nU2Nv
cGU6On5Bdm9pZFJlY29yZGluZ1Njb3BlKToKKyAgICAgICAgKFdURjo6TWFsbG9jQ2FsbFRyYWNr
ZXI6Ok1hbGxvY1NpdGVEYXRhOjpNYWxsb2NTaXRlRGF0YSk6CisgICAgICAgIChXVEY6Ok1hbGxv
Y0NhbGxUcmFja2VyOjpzaW5nbGV0b24pOgorICAgICAgICAoV1RGOjpNYWxsb2NDYWxsVHJhY2tl
cjo6TWFsbG9jQ2FsbFRyYWNrZXIpOgorICAgICAgICAoV1RGOjpNYWxsb2NDYWxsVHJhY2tlcjo6
cmVjb3JkTWFsbG9jKToKKyAgICAgICAgKFdURjo6TWFsbG9jQ2FsbFRyYWNrZXI6OnJlY29yZFJl
YWxsb2MpOgorICAgICAgICAoV1RGOjpNYWxsb2NDYWxsVHJhY2tlcjo6cmVjb3JkRnJlZSk6Cisg
ICAgICAgIChXVEY6Ok1hbGxvY0NhbGxUcmFja2VyOjpkdW1wU3RhdHMpOgorICAgICAgICAqIHd0
Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6aW5saW5lTG9va3VwKToK
KyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6bG9va3VwRm9yV3JpdGluZyk6CisgICAgICAgIChX
VEY6OktleVRyYWl0cz46OmZ1bGxMb29rdXBGb3JXcml0aW5nKToKKyAgICAgICAgKFdURjo6S2V5
VHJhaXRzPjo6YWRkKToKKyAgICAgICAgKiB3dGYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAg
IChXVEY6Ok1ldGFBbGxvY2F0b3I6OmZpbmRBbmRSZW1vdmVGcmVlU3BhY2UpOgorICAgICAgICAq
IHd0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcDoKKyAgICAgICAgKiB3dGYvUmFuZG9tRGV2aWNl
LmNwcDoKKyAgICAgICAgKFdURjo6UmFuZG9tRGV2aWNlOjpjcnlwdG9ncmFwaGljYWxseVJhbmRv
bVZhbHVlcyk6CisgICAgICAgICogd3RmL1Jhd1BvaW50ZXIuaDoKKyAgICAgICAgKFdURjo6UmF3
UG9pbnRlcjo6UmF3UG9pbnRlcik6CisgICAgICAgICogd3RmL1JlZEJsYWNrVHJlZS5oOgorICAg
ICAgICAqIHd0Zi9TSEExLmNwcDoKKyAgICAgICAgKFdURjo6U0hBMTo6aGV4RGlnZXN0KToKKyAg
ICAgICAgKiB3dGYvU2NoZWR1bGVQYWlyLmg6CisgICAgICAgIChXVEY6OlNjaGVkdWxlUGFpcjo6
U2NoZWR1bGVQYWlyKToKKyAgICAgICAgKiB3dGYvU3RhY2tUcmFjZS5jcHA6CisgICAgICAgIChX
VEZHZXRCYWNrdHJhY2UpOgorICAgICAgICAoV1RGOjpTdGFja1RyYWNlOjpkdW1wIGNvbnN0KToK
KyAgICAgICAgKiB3dGYvU3RyaW5nRXh0cmFzLmg6CisgICAgICAgIChzdHJuc3RyKToKKyAgICAg
ICAgKiB3dGYvVmFyaWFudC5oOgorICAgICAgICAqIHd0Zi9WZWN0b3IuaDoKKyAgICAgICAgKFdU
Rjo6VmVjdG9yQnVmZmVyQmFzZTo6ZGVhbGxvY2F0ZUJ1ZmZlcik6CisgICAgICAgIChXVEY6OlZl
Y3RvckJ1ZmZlckJhc2U6OnJlbGVhc2VCdWZmZXIpOgorICAgICAgICAoV1RGOjpWZWN0b3JCdWZm
ZXJCYXNlOjpWZWN0b3JCdWZmZXJCYXNlKToKKyAgICAgICAgKiB3dGYvY2YvQ0ZVUkxFeHRyYXMu
Y3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVDRlVSTEZyb21CdWZmZXIpOgorICAgICAgICAoV1RG
OjpnZXRVUkxCeXRlcyk6CisgICAgICAgICogd3RmL2NmL0NGVVJMRXh0cmFzLmg6CisgICAgICAg
ICogd3RmL2NmL0ZpbGVTeXN0ZW1DRi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW06OnBh
dGhBc1VSTCk6CisgICAgICAgICogd3RmL2R0b2EvZG91YmxlLWNvbnZlcnNpb24uY2M6CisgICAg
ICAgICogd3RmL2R0b2EvdXRpbHMuaDoKKyAgICAgICAgKFdURjo6ZG91YmxlX2NvbnZlcnNpb246
OkJ1ZmZlclJlZmVyZW5jZTo6QnVmZmVyUmVmZXJlbmNlKToKKyAgICAgICAgKiB3dGYvdGV4dC9D
U3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6Q1N0cmluZzo6bXV0YWJsZURhdGEpOgorICAgICAg
ICAqIHd0Zi90ZXh0L0NTdHJpbmcuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWZmZXIu
aDoKKyAgICAgICAgKFdURjo6U3RyaW5nQnVmZmVyOjpyZWxlYXNlKToKKyAgICAgICAgKiB3dGYv
dGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlVW5p
bml0aWFsaXplZEludGVybmFsKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVhbGxvY2F0
ZUludGVybmFsKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChX
VEY6OlN0cmluZ0ltcGw6OmNvbnN0cnVjdEludGVybmFsPExDaGFyPik6CisgICAgICAgIChXVEY6
OlN0cmluZ0ltcGw6OmNvbnN0cnVjdEludGVybmFsPFVDaGFyPik6CisgICAgICAgIChXVEY6OlN0
cmluZ0ltcGw6OmNoYXJhY3RlcnM8TENoYXI+IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5n
SW1wbDo6Y2hhcmFjdGVyczxVQ2hhcj4gY29uc3QpOgorICAgICAgICAoV1RGOjpmaW5kKToKKyAg
ICAgICAgKFdURjo6cmV2ZXJzZUZpbmRMaW5lVGVybWluYXRvcik6CisgICAgICAgIChXVEY6OnJl
dmVyc2VGaW5kKToKKyAgICAgICAgKFdURjo6ZXF1YWxJZ25vcmluZ051bGxpdHkpOgorICAgICAg
ICAoV1RGOjpjb2RlUG9pbnRDb21wYXJlKToKKyAgICAgICAgKFdURjo6aXNTcGFjZU9yTmV3bGlu
ZSk6CisgICAgICAgIChXVEY6Omxlbmd0aE9mTnVsbFRlcm1pbmF0ZWRTdHJpbmcpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdJbXBsU2hhcGU6OlN0cmluZ0ltcGxTaGFwZSk6CisgICAgICAgIChXVEY6
OlN0cmluZ0ltcGw6Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0lt
cGw6OmlzQWxsQVNDSUkgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjppc0FsbExh
dGluMSBjb25zdCk6CisgICAgICAgIChXVEY6OmlzQWxsU3BlY2lhbENoYXJhY3RlcnMpOgorICAg
ICAgICAoV1RGOjppc1NwZWNpYWxDaGFyYWN0ZXIgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJp
bmdJbXBsOjpTdHJpbmdJbXBsKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlOEJp
dElmUG9zc2libGUpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJpbmdT
aGFyaW5nSW1wbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFs
KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZCk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmFkb3B0KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1w
bDo6Y29zdCBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNvc3REdXJpbmdHQyk6
CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnNldElzQXRvbSk6CisgICAgICAgIChXVEY6OlN0
cmluZ0ltcGw6OnNldEhhc2ggY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZWYp
OgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpkZXJlZik6CisgICAgICAgIChXVEY6OlN0cmlu
Z0ltcGw6OmNvcHlDaGFyYWN0ZXJzKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6YXQgY29u
c3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjphbGxvY2F0aW9uU2l6ZSk6CisgICAgICAg
IChXVEY6OlN0cmluZ0ltcGw6Om1heEludGVybmFsTGVuZ3RoKToKKyAgICAgICAgKFdURjo6U3Ry
aW5nSW1wbDo6dGFpbE9mZnNldCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnJlcXVpcmVz
Q29weSBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRhaWxQb2ludGVyIGNvbnN0
KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dGFpbFBvaW50ZXIpOgorICAgICAgICAoV1RG
OjpTdHJpbmdJbXBsOjpzdWJzdHJpbmdCdWZmZXIgY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJp
bmdJbXBsOjpzdWJzdHJpbmdCdWZmZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjphc3Nl
cnRIYXNoSXNDb3JyZWN0IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6U3RhdGlj
U3RyaW5nSW1wbDo6U3RhdGljU3RyaW5nSW1wbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6
OlN0YXRpY1N0cmluZ0ltcGw6Om9wZXJhdG9yIFN0cmluZ0ltcGwmKToKKyAgICAgICAgKFdURjo6
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSk6CisgICAgICAgIChXVEY6OnN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UpOgorICAgICAgICAoV1RGOjplcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZSk6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwOgorICAg
ICAgICAoV1RGOjppbml0aWFsaXplSXRlcmF0b3IpOgorICAgICAgICAoV1RGOjpzZXRDb250ZXh0
QXdhcmVUZXh0Rm9ySXRlcmF0b3IpOgorICAgICAgICAoV1RGOjpvcGVuTGluZUJyZWFrSXRlcmF0
b3IpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6CisgICAgICAgIChX
VEY6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6Z2V0KToKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZT
dHJpbmcuY3BwOgorICAgICAgICAoV1RGOjpjaGFyYWN0ZXJzVG9GbG9hdCk6CisgICAgICAgICog
d3RmL3RleHQvY2YvU3RyaW5nSW1wbENGLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nV3JhcHBl
ckNGQWxsb2NhdG9yOjphbGxvY2F0ZSk6CisgICAgICAgIChXVEY6OlN0cmluZ1dyYXBwZXJDRkFs
bG9jYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlQ0ZTdHJp
bmcpOgorICAgICAgICAqIHd0Zi90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0aW4xLmNwcDoKKyAg
ICAgICAgKFdURjo6dVRleHRMYXRpbjFDbG9uZSk6CisgICAgICAgIChXVEY6Om9wZW5MYXRpbjFD
b250ZXh0QXdhcmVVVGV4dFByb3ZpZGVyKToKKyAgICAgICAgKiB3dGYvdGV4dC9pY3UvVVRleHRQ
cm92aWRlclVURjE2LmNwcDoKKyAgICAgICAgKFdURjo6b3BlblVURjE2Q29udGV4dEF3YXJlVVRl
eHRQcm92aWRlcik6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAg
ICAgKFdURjo6RmlsZVN5c3RlbUltcGw6Om1ha2VBbGxEaXJlY3Rvcmllcyk6CisgICAgICAgIChX
VEY6OkZpbGVTeXN0ZW1JbXBsOjpzdG9yYWdlRGlyZWN0b3J5KToKKyAgICAgICAgKFdURjo6Rmls
ZVN5c3RlbUltcGw6Om9wZW5UZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKFdURjo6RmlsZVN5c3Rl
bUltcGw6Om9wZW5GaWxlKToKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OndyaXRlVG9G
aWxlKToKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnJlYWRGcm9tRmlsZSk6CisgICAg
ICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpkZWxldGVOb25FbXB0eURpcmVjdG9yeSk6CisgICAg
ICAgICogd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OmxvY2FsZUluZm8p
OgorICAgICAgICAqIHd0Zi93aW4vTWFpblRocmVhZFdpbi5jcHA6CisgICAgICAgIChXVEY6Omlu
aXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0pOgorICAgICAgICAqIHd0Zi93aW4vT1NBbGxvY2F0
b3JXaW4uY3BwOgorICAgICAgICAoV1RGOjpPU0FsbG9jYXRvcjo6cmVzZXJ2ZVVuY29tbWl0dGVk
KToKKyAgICAgICAgKFdURjo6T1NBbGxvY2F0b3I6OnJlc2VydmVBbmRDb21taXQpOgorICAgICAg
ICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OnJ1bik6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6Oml0ZXJhdGUpOgorICAgICAgICAoV1RGOjpSdW5Mb29w
OjpSdW5Mb29wKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6Y3ljbGUpOgorICAgICAgICAoV1RG
OjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKiB3dGYvd2luL1RocmVhZGlu
Z1dpbi5jcHA6CisgICAgICAgIChXVEY6OlRocmVhZDo6ZXN0YWJsaXNoSGFuZGxlKToKKwogMjAy
MC0wNS0wOCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAg
IFdURiBoZWFkZXJzIHNob3VsZCBjb21waWxlIGluZGVwZW5kZW50bHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAKaW5kZXggNDA3M2ZkNWJlOWIyLi4zNmM2ZGM5OGFjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3Bw
CkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBXVEZDcmFzaCgpCiAjaWYgQ09NUElMRVIoR0NDX0NP
TVBBVElCTEUpCiAgICAgX19idWlsdGluX3RyYXAoKTsKICNlbHNlCi0gICAgKCh2b2lkKCopKCkp
MCkoKTsKKyAgICAoKHZvaWQoKikoKSludWxscHRyKSgpOwogI2VuZGlmIC8vIENPTVBJTEVSKEdD
Q19DT01QQVRJQkxFKQogI2VuZGlmIC8vIEFTQU5fRU5BQkxFRAogfQpAQCAtNTE2LDcgKzUxNiw3
IEBAIFdURkxvZ0NoYW5uZWwqIFdURkxvZ0NoYW5uZWxCeU5hbWUoV1RGTG9nQ2hhbm5lbCogY2hh
bm5lbHNbXSwgc2l6ZV90IGNvdW50LCBjb25zCiAgICAgICAgICAgICByZXR1cm4gY2hhbm5lbDsK
ICAgICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogc3RhdGlj
IHZvaWQgc2V0U3RhdGVPZkFsbENoYW5uZWxzKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWxzW10sIHNp
emVfdCBjaGFubmVsQ291bnQsIFdURkxvZ0NoYW5uZWxTdGF0ZSBzdGF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0J1bXBQb2ludGVyQWxsb2NhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9C
dW1wUG9pbnRlckFsbG9jYXRvci5oCmluZGV4IDY1NGU2NzdmZTg0MC4uZjlkODU2ZTkyM2QwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CdW1wUG9pbnRlckFsbG9jYXRvci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0J1bXBQb2ludGVyQWxsb2NhdG9yLmgKQEAgLTk5LDggKzk5LDggQEAgcHJp
dmF0ZToKICAgICBCdW1wUG9pbnRlclBvb2woY29uc3QgUGFnZUFsbG9jYXRpb24mIGFsbG9jYXRp
b24pCiAgICAgICAgIDogbV9jdXJyZW50KGFsbG9jYXRpb24uYmFzZSgpKQogICAgICAgICAsIG1f
c3RhcnQoYWxsb2NhdGlvbi5iYXNlKCkpCi0gICAgICAgICwgbV9uZXh0KDApCi0gICAgICAgICwg
bV9wcmV2aW91cygwKQorICAgICAgICAsIG1fbmV4dChudWxscHRyKQorICAgICAgICAsIG1fcHJl
dmlvdXMobnVsbHB0cikKICAgICAgICAgLCBtX2FsbG9jYXRpb24oYWxsb2NhdGlvbikKICAgICB7
CiAgICAgfQpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIEFkZCBzaXpl
IG9mIEJ1bXBQb2ludGVyUG9vbCBvYmplY3QsIGNoZWNrIGZvciBvdmVyZmxvdy4KICAgICAgICAg
bWluaW11bUNhcGFjaXR5ICs9IHNpemVvZihCdW1wUG9pbnRlclBvb2wpOwogICAgICAgICBpZiAo
bWluaW11bUNhcGFjaXR5IDwgc2l6ZW9mKEJ1bXBQb2ludGVyUG9vbCkpCi0gICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIHNpemVfdCBw
b29sU2l6ZSA9IHN0ZDo6bWF4KHN0YXRpY19jYXN0PHNpemVfdD4oTUlOSU1VTV9CVU1QX1BPT0xf
U0laRSksIFdURjo6cGFnZVNpemUoKSk7CiAgICAgICAgIHdoaWxlIChwb29sU2l6ZSA8IG1pbmlt
dW1DYXBhY2l0eSkgewpAQCAtMTE4LDEzICsxMTgsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IC8vIFRoZSBmb2xsb3dpbmcgaWYgY2hlY2sgcmVsaWVzIG9uIE1JTklNVU1fQlVNUF9QT09MX1NJ
WkUgYmVpbmcgYSBwb3dlciBvZiAyIQogICAgICAgICAgICAgQVNTRVJUKCEoTUlOSU1VTV9CVU1Q
X1BPT0xfU0laRSAmIChNSU5JTVVNX0JVTVBfUE9PTF9TSVpFIC0gMSkpKTsKICAgICAgICAgICAg
IGlmICghcG9vbFNpemUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KIAogICAgICAgICBQYWdlQWxsb2NhdGlvbiBh
bGxvY2F0aW9uID0gUGFnZUFsbG9jYXRpb246OmFsbG9jYXRlKHBvb2xTaXplKTsKICAgICAgICAg
aWYgKCEhYWxsb2NhdGlvbikKICAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRpb24pIEJ1
bXBQb2ludGVyUG9vbChhbGxvY2F0aW9uKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAogICAgIHZvaWQgc2hyaW5rKCkKQEAgLTIyMiw3ICsyMjIs
NyBAQCBjbGFzcyBCdW1wUG9pbnRlckFsbG9jYXRvciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgQnVtcFBvaW50ZXJBbGxvY2F0b3IoKQotICAgICAgICA6IG1f
aGVhZCgwKQorICAgICAgICA6IG1faGVhZChudWxscHRyKQogICAgIHsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwIGIvU291cmNlL1dURi93dGYvRGF0YUxv
Zy5jcHAKaW5kZXggY2E3ZmJjMzJhY2VlLi4yYmU0NWM4ZTFmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0RhdGFMb2cuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwCkBA
IC0xNTYsNyArMTU2LDcgQEAgdm9pZCBzZXREYXRhRmlsZShjb25zdCBjaGFyKiBwYXRoKQogICAg
ICAgICBmaWxlID0gbmV3IChzX2ZpbGVEYXRhKSBGaWxlUHJpbnRTdHJlYW0oc3RkZXJyLCBGaWxl
UHJpbnRTdHJlYW06OkJvcnJvdyk7CiAgICAgfQogCi0gICAgc2V0dmJ1ZihmaWxlLT5maWxlKCks
IDAsIF9JT05CRiwgMCk7IC8vIFByZWZlciB1bmJ1ZmZlcmVkIG91dHB1dCwgc28gdGhhdCB3ZSBn
ZXQgYSBmdWxsIGxvZyB1cG9uIGNyYXNoIG9yIGRlYWRsb2NrLgorICAgIHNldHZidWYoZmlsZS0+
ZmlsZSgpLCBudWxscHRyLCBfSU9OQkYsIDApOyAvLyBQcmVmZXIgdW5idWZmZXJlZCBvdXRwdXQs
IHNvIHRoYXQgd2UgZ2V0IGEgZnVsbCBsb2cgdXBvbiBjcmFzaCBvciBkZWFkbG9jay4KIAogICAg
IGlmIChzX2ZpbGUpCiAgICAgICAgIHNfZmlsZS0+Zmx1c2goKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0RhdGVNYXRoLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAppbmRl
eCAxOTk5NzM3MzQxNTUuLjYxMzc2Y2JkOGY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
RGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcApAQCAtNDkwLDcg
KzQ5MCw3IEBAIHN0YXRpYyBjaGFyKiBwYXJzZUVTNURhdGVQb3J0aW9uKGNvbnN0IGNoYXIqIGN1
cnJlbnRQb3NpdGlvbiwgaW50JiB5ZWFyLCBsb25nJiBtCiAgICAgLy8gaW5zdGVhZCBvZiByZXN0
cmljdGluZyB0byA0IGRpZ2l0cyAob3IgNiBkaWdpdHMgd2l0aCBtYW5kYXRvcnkgKy8tKSwKICAg
ICAvLyBpdCBhY2NlcHRzIGFueSBpbnRlZ2VyIHZhbHVlLiBDb25zaWRlciB0aGlzIGFuIGltcGxl
bWVudGF0aW9uIGZhbGxiYWNrLgogICAgIGlmICghcGFyc2VJbnQoY3VycmVudFBvc2l0aW9uLCAm
cG9zdFBhcnNlUG9zaXRpb24sIDEwLCAmeWVhcikpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGZvciBwcmVzZW5jZSBvZiAtTU0gcG9y
dGlvbi4KICAgICBpZiAoKnBvc3RQYXJzZVBvc2l0aW9uICE9ICctJykKQEAgLTQ5OCwxMSArNDk4
LDExIEBAIHN0YXRpYyBjaGFyKiBwYXJzZUVTNURhdGVQb3J0aW9uKGNvbnN0IGNoYXIqIGN1cnJl
bnRQb3NpdGlvbiwgaW50JiB5ZWFyLCBsb25nJiBtCiAgICAgY3VycmVudFBvc2l0aW9uID0gcG9z
dFBhcnNlUG9zaXRpb24gKyAxOwogICAgIAogICAgIGlmICghaXNBU0NJSURpZ2l0KCpjdXJyZW50
UG9zaXRpb24pKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgaWYgKCFwYXJzZUxvbmcoY3VycmVudFBvc2l0aW9uLCAmcG9zdFBhcnNlUG9zaXRpb24sIDEw
LCAmbW9udGgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgaWYgKChwb3N0UGFyc2VQb3NpdGlvbiAtIGN1cnJlbnRQb3NpdGlvbikgIT0gMikKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ2hlY2sgZm9y
IHByZXNlbmNlIG9mIC1ERCBwb3J0aW9uLgogICAgIGlmICgqcG9zdFBhcnNlUG9zaXRpb24gIT0g
Jy0nKQpAQCAtNTEwLDExICs1MTAsMTEgQEAgc3RhdGljIGNoYXIqIHBhcnNlRVM1RGF0ZVBvcnRp
b24oY29uc3QgY2hhciogY3VycmVudFBvc2l0aW9uLCBpbnQmIHllYXIsIGxvbmcmIG0KICAgICBj
dXJyZW50UG9zaXRpb24gPSBwb3N0UGFyc2VQb3NpdGlvbiArIDE7CiAgICAgCiAgICAgaWYgKCFp
c0FTQ0lJRGlnaXQoKmN1cnJlbnRQb3NpdGlvbikpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIXBhcnNlTG9uZyhjdXJyZW50UG9zaXRpb24sICZw
b3N0UGFyc2VQb3NpdGlvbiwgMTAsICZkYXkpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKChwb3N0UGFyc2VQb3NpdGlvbiAtIGN1cnJlbnRQb3Np
dGlvbikgIT0gMikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBwb3N0UGFyc2VQb3NpdGlvbjsKIH0KIApAQCAtNTI3LDE5ICs1MjcsMTkgQEAg
c3RhdGljIGNoYXIqIHBhcnNlRVM1VGltZVBvcnRpb24oY2hhciogY3VycmVudFBvc2l0aW9uLCBs
b25nJiBob3VycywgbG9uZyYgbWludXQKIAogICAgIGNoYXIqIHBvc3RQYXJzZVBvc2l0aW9uOwog
ICAgIGlmICghaXNBU0NJSURpZ2l0KCpjdXJyZW50UG9zaXRpb24pKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFwYXJzZUxvbmcoY3VycmVudFBv
c2l0aW9uLCAmcG9zdFBhcnNlUG9zaXRpb24sIDEwLCAmaG91cnMpKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCpwb3N0UGFyc2VQb3NpdGlvbiAh
PSAnOicgfHwgKHBvc3RQYXJzZVBvc2l0aW9uIC0gY3VycmVudFBvc2l0aW9uKSAhPSAyKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY3VycmVudFBvc2l0
aW9uID0gcG9zdFBhcnNlUG9zaXRpb24gKyAxOwogICAgIAogICAgIGlmICghaXNBU0NJSURpZ2l0
KCpjdXJyZW50UG9zaXRpb24pKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgaWYgKCFwYXJzZUxvbmcoY3VycmVudFBvc2l0aW9uLCAmcG9zdFBhcnNlUG9z
aXRpb24sIDEwLCAmbWludXRlcykpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBpZiAoKHBvc3RQYXJzZVBvc2l0aW9uIC0gY3VycmVudFBvc2l0aW9uKSAh
PSAyKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY3Vy
cmVudFBvc2l0aW9uID0gcG9zdFBhcnNlUG9zaXRpb247CiAKICAgICAvLyBTZWNvbmRzIGFyZSBv
cHRpb25hbC4KQEAgLTU0OCwxMSArNTQ4LDExIEBAIHN0YXRpYyBjaGFyKiBwYXJzZUVTNVRpbWVQ
b3J0aW9uKGNoYXIqIGN1cnJlbnRQb3NpdGlvbiwgbG9uZyYgaG91cnMsIGxvbmcmIG1pbnV0CiAg
ICAgCiAgICAgICAgIGxvbmcgaW50U2Vjb25kczsKICAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQo
KmN1cnJlbnRQb3NpdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgICAgICBpZiAoIXBhcnNlTG9uZyhjdXJyZW50UG9zaXRpb24sICZw
b3N0UGFyc2VQb3NpdGlvbiwgMTAsICZpbnRTZWNvbmRzKSkKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGlmICgocG9zdFBhcnNlUG9z
aXRpb24gLSBjdXJyZW50UG9zaXRpb24pICE9IDIpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBzZWNvbmRzID0gaW50U2Vjb25kczsK
ICAgICAgICAgaWYgKCpwb3N0UGFyc2VQb3NpdGlvbiA9PSAnLicpIHsKICAgICAgICAgICAgIGN1
cnJlbnRQb3NpdGlvbiA9IHBvc3RQYXJzZVBvc2l0aW9uICsgMTsKQEAgLTU2MSwxMiArNTYxLDEy
IEBAIHN0YXRpYyBjaGFyKiBwYXJzZUVTNVRpbWVQb3J0aW9uKGNoYXIqIGN1cnJlbnRQb3NpdGlv
biwgbG9uZyYgaG91cnMsIGxvbmcmIG1pbnV0CiAgICAgICAgICAgICAvLyBhIHJlYXNvbmFibGUg
aW50ZXJwcmV0YXRpb24gZ3VpZGVkIGJ5IHRoZSBnaXZlbiBleGFtcGxlcyBhbmQgUkZDIDMzMzkg
c2F5cyAibm8iLgogICAgICAgICAgICAgLy8gV2UgY2hlY2sgdGhlIG5leHQgY2hhcmFjdGVyIHRv
IGF2b2lkIHJlYWRpbmcgKy8tIHRpbWV6b25lIGhvdXJzIGFmdGVyIGFuIGludmFsaWQgZGVjaW1h
bC4KICAgICAgICAgICAgIGlmICghaXNBU0NJSURpZ2l0KCpjdXJyZW50UG9zaXRpb24pKQotICAg
ICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBXZSBhcmUgbW9yZSBsZW5pZW50IHRoYW4gRVM1
IGJ5IGFjY2VwdGluZyBtb3JlIG9yIGxlc3MgdGhhbiAzIGZyYWN0aW9uIGRpZ2l0cy4KICAgICAg
ICAgICAgIGxvbmcgZnJhY1NlY29uZHM7CiAgICAgICAgICAgICBpZiAoIXBhcnNlTG9uZyhjdXJy
ZW50UG9zaXRpb24sICZwb3N0UGFyc2VQb3NpdGlvbiwgMTAsICZmcmFjU2Vjb25kcykpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGxvbmcgbnVtRnJhY0RpZ2l0cyA9IHBvc3RQYXJzZVBv
c2l0aW9uIC0gY3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgc2Vjb25kcyArPSBmcmFjU2Vj
b25kcyAqIHBvdygxMC4wLCBzdGF0aWNfY2FzdDxkb3VibGU+KC1udW1GcmFjRGlnaXRzKSk7CkBA
IC01OTQsOSArNTk0LDkgQEAgc3RhdGljIGNoYXIqIHBhcnNlRVM1VGltZVBvcnRpb24oY2hhciog
Y3VycmVudFBvc2l0aW9uLCBsb25nJiBob3VycywgbG9uZyYgbWludXQKICAgICBsb25nIHR6TWlu
dXRlcyA9IDA7CiAgICAgCiAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoKmN1cnJlbnRQb3NpdGlvbikp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIXBh
cnNlTG9uZyhjdXJyZW50UG9zaXRpb24sICZwb3N0UGFyc2VQb3NpdGlvbiwgMTAsICZ0ekhvdXJz
KSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICgq
cG9zdFBhcnNlUG9zaXRpb24gIT0gJzonKSB7CiAgICAgICAgIGlmICgocG9zdFBhcnNlUG9zaXRp
b24gLSBjdXJyZW50UG9zaXRpb24pID09IDIpIHsKICAgICAgICAgICAgIC8vICIwMCIgY2FzZS4K
QEAgLTYwNywyNyArNjA3LDI3IEBAIHN0YXRpYyBjaGFyKiBwYXJzZUVTNVRpbWVQb3J0aW9uKGNo
YXIqIGN1cnJlbnRQb3NpdGlvbiwgbG9uZyYgaG91cnMsIGxvbmcmIG1pbnV0CiAgICAgICAgICAg
ICB0ek1pbnV0ZXMgPSB0ekhvdXJzQWJzICUgMTAwOwogICAgICAgICAgICAgdHpIb3Vyc0FicyA9
IHR6SG91cnNBYnMgLyAxMDA7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICAvLyAi
MDA6MDAiIGNhc2UuCiAgICAgICAgIGlmICgocG9zdFBhcnNlUG9zaXRpb24gLSBjdXJyZW50UG9z
aXRpb24pICE9IDIpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICB0ekhvdXJzQWJzID0gbGFicyh0ekhvdXJzKTsKICAgICAgICAgY3Vy
cmVudFBvc2l0aW9uID0gcG9zdFBhcnNlUG9zaXRpb24gKyAxOyAvLyBTa2lwICI6Ii4KICAgICAK
ICAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoKmN1cnJlbnRQb3NpdGlvbikpCi0gICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBpZiAoIXBh
cnNlTG9uZyhjdXJyZW50UG9zaXRpb24sICZwb3N0UGFyc2VQb3NpdGlvbiwgMTAsICZ0ek1pbnV0
ZXMpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgaWYgKChwb3N0UGFyc2VQb3NpdGlvbiAtIGN1cnJlbnRQb3NpdGlvbikgIT0gMikK
LSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogICAgIGN1cnJlbnRQb3NpdGlvbiA9IHBvc3RQYXJzZVBvc2l0aW9uOwogICAgIAogICAgIGlm
ICh0ekhvdXJzQWJzID4gMjQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBpZiAodHpNaW51dGVzIDwgMCB8fCB0ek1pbnV0ZXMgPiA1OSkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAogICAgIHRpbWVab25lU2Vj
b25kcyA9IDYwICogKHR6TWludXRlcyArICg2MCAqIHR6SG91cnNBYnMpKTsKICAgICBpZiAodHpO
ZWdhdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291
cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAKaW5kZXggNGQ3N2I2MGI2MTQxLi5hMDZkNmE2ZGNm
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgVHJ5TWFsbG9jUmV0
dXJuVmFsdWUgdHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplX3QgbikKIHsKICAgICB2b2lkKiByZXN1
bHQ7CiAgICAgaWYgKCF0cnlGYXN0TWFsbG9jKG4pLmdldFZhbHVlKHJlc3VsdCkpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBtZW1zZXQocmVzdWx0LCAw
LCBuKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
SGFzaFRhYmxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAppbmRleCBkMjBkYzFiN2Uw
YzQuLjE0NzkxOGI5OGVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgK
KysrIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKQEAgLTY5NCwxMCArNjk0LDEwIEBAIERF
Q0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICBpZiAoaXNFbXB0eUJ1Y2tldCgqZW50cnkpKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5QnVja2V0KCplbnRyeSkpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoIWlzRGVsZXRlZEJ1
Y2tldCgqZW50cnkpICYmIEhhc2hUcmFuc2xhdG9yOjplcXVhbChFeHRyYWN0b3I6OmV4dHJhY3Qo
KmVudHJ5KSwga2V5KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5OwpAQCAtNzM5
LDcgKzczOSw3IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hU
YWJsZSk7CiAgICAgICAgICsrbV9zdGF0cy0+bnVtQWNjZXNzZXM7CiAjZW5kaWYKIAotICAgICAg
ICBWYWx1ZVR5cGUqIGRlbGV0ZWRFbnRyeSA9IDA7CisgICAgICAgIFZhbHVlVHlwZSogZGVsZXRl
ZEVudHJ5ID0gbnVsbHB0cjsKIAogICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICAgVmFs
dWVUeXBlKiBlbnRyeSA9IHRhYmxlICsgaTsKQEAgLTgwMCw3ICs4MDAsNyBAQCBERUNMQVJFX0FM
TE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAgICArK21fc3Rh
dHMtPm51bUFjY2Vzc2VzOwogI2VuZGlmCiAKLSAgICAgICAgVmFsdWVUeXBlKiBkZWxldGVkRW50
cnkgPSAwOworICAgICAgICBWYWx1ZVR5cGUqIGRlbGV0ZWRFbnRyeSA9IG51bGxwdHI7CiAKICAg
ICAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgICAgIFZhbHVlVHlwZSogZW50cnkgPSB0YWJsZSAr
IGk7CkBAIC05NDcsNyArOTQ3LDcgQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5U
SUZJRVIoSGFzaFRhYmxlKTsKICAgICAgICAgKyttX3N0YXRzLT5udW1BY2Nlc3NlczsKICNlbmRp
ZgogCi0gICAgICAgIFZhbHVlVHlwZSogZGVsZXRlZEVudHJ5ID0gMDsKKyAgICAgICAgVmFsdWVU
eXBlKiBkZWxldGVkRW50cnkgPSBudWxscHRyOwogICAgICAgICBWYWx1ZVR5cGUqIGVudHJ5Owog
ICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICAgZW50cnkgPSB0YWJsZSArIGk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuY3BwCmluZGV4IDNlNjY3MTZjNDQwZi4uYjY3OTA5YjJkZjEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9NZXRhQWxsb2NhdG9yLmNwcApAQCAtMjEzLDcgKzIxMyw3IEBAIE1ldGFBbGxvY2F0b3I6
OkZyZWVTcGFjZVB0ciBNZXRhQWxsb2NhdG9yOjpmaW5kQW5kUmVtb3ZlRnJlZVNwYWNlKHNpemVf
dCBzaXplSW5CCiAgICAgRnJlZVNwYWNlTm9kZSogbm9kZSA9IG1fZnJlZVNwYWNlU2l6ZU1hcC5m
aW5kTGVhc3RHcmVhdGVyVGhhbk9yRXF1YWwoc2l6ZUluQnl0ZXMpOwogICAgIAogICAgIGlmICgh
bm9kZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAog
ICAgIHNpemVfdCBub2RlU2l6ZUluQnl0ZXMgPSBub2RlLT5zaXplSW5CeXRlcygpOwogICAgIEFT
U0VSVChub2RlU2l6ZUluQnl0ZXMgPj0gc2l6ZUluQnl0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxl
bEpvYnNHZW5lcmljLmNwcAppbmRleCBjZDUzYTlhYmQ4Y2QuLjliYzIyNDY2ZTAwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLVZlY3RvcjwgUmVmUHRyPFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVh
ZFByaXZhdGU+ID4qIFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfdGhyZWFkUG9vbCA9IDA7CitWZWN0
b3I8IFJlZlB0cjxQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlPiA+KiBQYXJhbGxl
bEVudmlyb25tZW50OjpzX3RocmVhZFBvb2wgPSBudWxscHRyOwogCiBQYXJhbGxlbEVudmlyb25t
ZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0aW9uLCBz
aXplX3Qgc2l6ZU9mUGFyYW1ldGVyLCBpbnQgcmVxdWVzdGVkSm9iTnVtYmVyKSA6CiAgICAgbV90
aHJlYWRGdW5jdGlvbih0aHJlYWRGdW5jdGlvbiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9SYW5kb21EZXZpY2UuY3BwIGIvU291cmNlL1dURi93dGYvUmFuZG9tRGV2aWNlLmNwcAppbmRl
eCA4OTE2NWYwM2MzNTYuLjkxODg3MjJiOWMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UmFuZG9tRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SYW5kb21EZXZpY2UuY3BwCkBA
IC0xMDgsNyArMTA4LDcgQEAgdm9pZCBSYW5kb21EZXZpY2U6OmNyeXB0b2dyYXBoaWNhbGx5UmFu
ZG9tVmFsdWVzKHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGwKICAgICAvLyBGSVhNRTog
V2UgY2Fubm90IGVuc3VyZSB0aGF0IENyeXB0b2dyYXBoaWMgU2VydmljZSBQcm92aWRlciBjb250
ZXh0IGFuZCBDcnlwdEdlblJhbmRvbSBhcmUgc2FmZSBhY3Jvc3MgdGhyZWFkcy4KICAgICAvLyBJ
ZiBpdCBpcyBzYWZlLCB3ZSBjYW4gYWNxdWlyZSBjb250ZXh0IHBlciBSYW5kb21EZXZpY2UuCiAg
ICAgSENSWVBUUFJPViBoQ3J5cHRQcm92ID0gMDsKLSAgICBpZiAoIUNyeXB0QWNxdWlyZUNvbnRl
eHQoJmhDcnlwdFByb3YsIDAsIE1TX0RFRl9QUk9WLCBQUk9WX1JTQV9GVUxMLCBDUllQVF9WRVJJ
RllDT05URVhUKSkKKyAgICBpZiAoIUNyeXB0QWNxdWlyZUNvbnRleHQoJmhDcnlwdFByb3YsIG51
bGxwdHIsIE1TX0RFRl9QUk9WLCBQUk9WX1JTQV9GVUxMLCBDUllQVF9WRVJJRllDT05URVhUKSkK
ICAgICAgICAgQ1JBU0goKTsKICAgICBpZiAoIUNyeXB0R2VuUmFuZG9tKGhDcnlwdFByb3YsIGxl
bmd0aCwgYnVmZmVyKSkKICAgICAgICAgQ1JBU0goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1Jhd1BvaW50ZXIuaCBiL1NvdXJjZS9XVEYvd3RmL1Jhd1BvaW50ZXIuaAppbmRleCAxODYy
YmNiNmE1ZmEuLmNiNTgwNWY0OWYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmF3UG9p
bnRlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Jhd1BvaW50ZXIuaApAQCAtMzAsNyArMzAsNyBA
QCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFJhd1BvaW50ZXIgewogcHVibGljOgogICAgIFJhd1Bv
aW50ZXIoKQotICAgICAgICA6IG1fdmFsdWUoMCkKKyAgICAgICAgOiBtX3ZhbHVlKG51bGxwdHIp
CiAgICAgewogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZEJsYWNr
VHJlZS5oIGIvU291cmNlL1dURi93dGYvUmVkQmxhY2tUcmVlLmgKaW5kZXggOTFlZTFiYWNlMDNm
Li4yMzY4MGYyNDc3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZEJsYWNrVHJlZS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZEJsYWNrVHJlZS5oCkBAIC05NSw4ICs5NSw4IEBAIHB1
YmxpYzoKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIHJlc2V0KCkKICAgICAgICAgewotICAg
ICAgICAgICAgbV9sZWZ0ID0gMDsKLSAgICAgICAgICAgIG1fcmlnaHQgPSAwOworICAgICAgICAg
ICAgbV9sZWZ0ID0gbnVsbHB0cjsKKyAgICAgICAgICAgIG1fcmlnaHQgPSBudWxscHRyOwogICAg
ICAgICAgICAgbV9wYXJlbnRBbmRSZWQgPSAxOyAvLyBpbml0aWFsaXplIHRvIHJlZAogICAgICAg
ICB9CiAgICAgICAgIApAQCAtMTUzLDcgKzE1Myw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAg
UmVkQmxhY2tUcmVlKCkKLSAgICAgICAgOiBtX3Jvb3QoMCkKKyAgICAgICAgOiBtX3Jvb3QobnVs
bHB0cikKICAgICB7CiAgICAgfQogICAgIApAQCAtMjk2LDcgKzI5Niw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICBOb2RlVHlwZSogZmluZExlYXN0R3JlYXRlclRoYW5PckVxdWFsKGNvbnN0IEtleVR5
cGUmIGtleSkgY29uc3QKICAgICB7Ci0gICAgICAgIE5vZGVUeXBlKiBiZXN0ID0gMDsKKyAgICAg
ICAgTm9kZVR5cGUqIGJlc3QgPSBudWxscHRyOwogICAgICAgICBmb3IgKE5vZGVUeXBlKiBjdXJy
ZW50ID0gbV9yb290OyBjdXJyZW50OykgewogICAgICAgICAgICAgaWYgKGN1cnJlbnQtPmtleSgp
ID09IGtleSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudDsKQEAgLTMxMiw3ICszMTIs
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgTm9kZVR5cGUqIGZpbmRHcmVhdGVzdExlc3NUaGFuT3JF
cXVhbChjb25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0CiAgICAgewotICAgICAgICBOb2RlVHlwZSog
YmVzdCA9IDA7CisgICAgICAgIE5vZGVUeXBlKiBiZXN0ID0gbnVsbHB0cjsKICAgICAgICAgZm9y
IChOb2RlVHlwZSogY3VycmVudCA9IG1fcm9vdDsgY3VycmVudDspIHsKICAgICAgICAgICAgIGlm
IChjdXJyZW50LT5rZXkoKSA9PSBrZXkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7
CkBAIC0zNDksNyArMzQ5LDcgQEAgcHVibGljOgogICAgIE5vZGVUeXBlKiBmaXJzdCgpIGNvbnN0
CiAgICAgewogICAgICAgICBpZiAoIW1fcm9vdCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cmVlTWluaW11bShtX3Jv
b3QpOwogICAgIH0KICAgICAKQEAgLTQxMyw3ICs0MTMsNyBAQCBwcml2YXRlOgogICAgICAgICBB
U1NFUlQoIXotPnBhcmVudCgpKTsKICAgICAgICAgQVNTRVJUKHotPmNvbG9yKCkgPT0gUmVkKTsK
ICAgICAgICAgCi0gICAgICAgIE5vZGVUeXBlKiB5ID0gMDsKKyAgICAgICAgTm9kZVR5cGUqIHkg
PSBudWxscHRyOwogICAgICAgICBOb2RlVHlwZSogeCA9IG1fcm9vdDsKICAgICAgICAgd2hpbGUg
KHgpIHsKICAgICAgICAgICAgIHkgPSB4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU0hB
MS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9TSEExLmNwcAppbmRleCBlN2M2OGY3NmUwNTUuLjJiOWZi
OWEzN2EwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU0hBMS5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvU0hBMS5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIFNIQTE6OnJlc2V0KCkK
IAogQ1N0cmluZyBTSEExOjpoZXhEaWdlc3QoY29uc3QgRGlnZXN0JiBkaWdlc3QpCiB7Ci0gICAg
Y2hhciogc3RhcnQgPSAwOworICAgIGNoYXIqIHN0YXJ0ID0gbnVsbHB0cjsKICAgICBDU3RyaW5n
IHJlc3VsdCA9IENTdHJpbmc6Om5ld1VuaW5pdGlhbGl6ZWQoNDAsIHN0YXJ0KTsKICAgICBjaGFy
KiBidWZmZXIgPSBzdGFydDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhc2hTaXplOyAr
K2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFpci5oIGIvU291cmNl
L1dURi93dGYvU2NoZWR1bGVQYWlyLmgKaW5kZXggZTNlNDNmN2U1OWUyLi40NDczYzVjY2YwMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFpci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1NjaGVkdWxlUGFpci5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IDogbV9ydW5Mb29wKHJ1bkxvb3ApCiAgICAgewogICAgICAgICBpZiAobW9kZSkKLSAgICAgICAg
ICAgIG1fbW9kZSA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVDb3B5KDAsIG1vZGUpKTsKKyAgICAg
ICAgICAgIG1fbW9kZSA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVDb3B5KG51bGxwdHIsIG1vZGUp
KTsKICAgICB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1N0YWNrVHJhY2UuY3BwIGIvU291cmNlL1dURi93dGYvU3RhY2tUcmFjZS5jcHAKaW5kZXgg
OWNmODk0MDNlMzQwLi43YmYwOTg4NzQ3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0
YWNrVHJhY2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0YWNrVHJhY2UuY3BwCkBAIC00OSw3
ICs0OSw3IEBAIHZvaWQgV1RGR2V0QmFja3RyYWNlKHZvaWQqKiBzdGFjaywgaW50KiBzaXplKQog
I2lmIEhBVkUoQkFDS1RSQUNFKQogICAgICpzaXplID0gYmFja3RyYWNlKHN0YWNrLCAqc2l6ZSk7
CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgICpzaXplID0gUnRsQ2FwdHVyZVN0YWNrQmFja1RyYWNl
KDAsICpzaXplLCBzdGFjaywgMCk7CisgICAgKnNpemUgPSBSdGxDYXB0dXJlU3RhY2tCYWNrVHJh
Y2UoMCwgKnNpemUsIHN0YWNrLCBudWxscHRyKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHN0
YWNrKTsKICAgICAqc2l6ZSA9IDA7CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBTdGFja1RyYWNl
OjpkdW1wKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IGNoYXIqIGluZGVudFN0cmluZykgY29uc3QK
ICNpZiBIQVZFKEJBQ0tUUkFDRV9TWU1CT0xTKQogICAgICAgICBtYW5nbGVkTmFtZSA9IHN5bWJv
bHNbaV07CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgICAgICBpZiAoRGJnSGVscGVyOjpTeW1Gcm9t
QWRkcmVzcyhoUHJvYywgcmVpbnRlcnByZXRfY2FzdDxEV09SRDY0PihzdGFja1tpXSksIDAsIHN5
bWJvbEluZm8pKQorICAgICAgICBpZiAoRGJnSGVscGVyOjpTeW1Gcm9tQWRkcmVzcyhoUHJvYywg
cmVpbnRlcnByZXRfY2FzdDxEV09SRDY0PihzdGFja1tpXSksIG51bGxwdHIsIHN5bWJvbEluZm8p
KQogICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBzeW1ib2xJbmZvLT5OYW1lOwogI2VuZGlmCiAg
ICAgICAgIGF1dG8gZGVtYW5nbGVkID0gZGVtYW5nbGUoc3RhY2tbaV0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvU3RyaW5nRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TdHJpbmdFeHRy
YXMuaAppbmRleCBhZjA1ZDJjZDEyOGYuLjE2Y2Y4NGYzYWJiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvU3RyaW5nRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RyaW5nRXh0cmFz
LmgKQEAgLTM5LDcgKzM5LDcgQEAgaW5saW5lIGNoYXIqIHN0cm5zdHIoY29uc3QgY2hhciogYnVm
ZmVyLCBjb25zdCBjaGFyKiB0YXJnZXQsIHNpemVfdCBidWZmZXJMZW5ndGgKICAgICAgICAgaWYg
KCpzdGFydCA9PSAqdGFyZ2V0ICYmIHN0cm5jbXAoc3RhcnQgKyAxLCB0YXJnZXQgKyAxLCB0YXJn
ZXRMZW5ndGggLSAxKSA9PSAwKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8Y2hhcio+
KHN0YXJ0KTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVmFyaWFudC5oIGIvU291cmNlL1dU
Ri93dGYvVmFyaWFudC5oCmluZGV4IDlkYTZlZTk2MzQyOC4uMWE4OTQwNThkOTUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9WYXJpYW50LmgKKysrIGIvU291cmNlL1dURi93dGYvVmFyaWFu
dC5oCkBAIC0xMzA5LDcgKzEzMDksNyBAQCBfX3Rlc3QoX090aGVyICopOwogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgX1R5cGU+IHN0cnVjdCBfX2lzX3N3YXBwYWJsZSB7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIHZhbHVlID0KLSAgICAgICAgc2l6ZW9mKF9fc3dhcF90ZXN0X2RldGFpbDo6X190
ZXN0PF9UeXBlPigwKSkgIT0gMTsKKyAgICAgICAgc2l6ZW9mKF9fc3dhcF90ZXN0X2RldGFpbDo6
X190ZXN0PF9UeXBlPihudWxscHRyKSkgIT0gMTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIC4u
LiBfVHlwZXM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9X
VEYvd3RmL1ZlY3Rvci5oCmluZGV4IDIzMzMzNTA4ODBlYy4uYTU2ZTRhNTY4NDI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3Iu
aApAQCAtMzI4LDcgKzMyOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgCiAgICAgICAgIGlmIChtX2J1ZmZlciA9PSBidWZmZXJUb0RlYWxsb2NhdGUpIHsKLSAgICAg
ICAgICAgIG1fYnVmZmVyID0gMDsKKyAgICAgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKICAg
ICAgICAgICAgIG1fY2FwYWNpdHkgPSAwOwogICAgICAgICB9CiAKQEAgLTM0MywxNCArMzQzLDE0
IEBAIHB1YmxpYzoKICAgICBNYWxsb2NQdHI8VCwgTWFsbG9jPiByZWxlYXNlQnVmZmVyKCkKICAg
ICB7CiAgICAgICAgIFQqIGJ1ZmZlciA9IG1fYnVmZmVyOwotICAgICAgICBtX2J1ZmZlciA9IDA7
CisgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKICAgICAgICAgbV9jYXBhY2l0eSA9IDA7CiAg
ICAgICAgIHJldHVybiBhZG9wdE1hbGxvY1B0cjxULCBNYWxsb2M+KGJ1ZmZlcik7CiAgICAgfQog
CiBwcm90ZWN0ZWQ6CiAgICAgVmVjdG9yQnVmZmVyQmFzZSgpCi0gICAgICAgIDogbV9idWZmZXIo
MCkKKyAgICAgICAgOiBtX2J1ZmZlcihudWxscHRyKQogICAgICAgICAsIG1fY2FwYWNpdHkoMCkK
ICAgICAgICAgLCBtX3NpemUoMCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9j
Zi9DRlVSTEV4dHJhcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9DRlVSTEV4dHJhcy5jcHAKaW5k
ZXggZmEwOGM5Zjg4MzY1Li4xMGZlMzQwNzlmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L2NmL0NGVVJMRXh0cmFzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9DRlVSTEV4dHJhcy5j
cHAKQEAgLTM3LDE1ICszNywxNSBAQCBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNyZWF0ZUNGVVJMRnJv
bUJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSwgQ0ZVUkxSZQogICAgIC8vIChl
LmcgY2FsbHMgdG8gTlNVUkwgLXBhdGgpLiBIb3dldmVyLCB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0
b2xlcmFudCBvZiBpbGxlZ2FsIFVURi04IHNlcXVlbmNlcywgd2hpY2gKICAgICAvLyBjb3VsZCBl
aXRoZXIgYmUgYSBtYWxmb3JtZWQgc3RyaW5nIG9yIGJ5dGVzIGluIGEgZGlmZmVyZW50IGVuY29k
aW5nLCBsaWtlIFNoaWZ0LUpJUywgc28gd2UgZmFsbCBiYWNrCiAgICAgLy8gb250byB1c2luZyBJ
U08gTGF0aW4tMSBpbiB0aG9zZSBjYXNlcy4KLSAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHJlc3Vs
dCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcygwLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IFVJbnQ4Kj4oZGF0YSksIHNpemUsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCwg
YmFzZVVSTCwgdHJ1ZSkpOworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gcmVzdWx0ID0gYWRvcHRD
RihDRlVSTENyZWF0ZUFic29sdXRlVVJMV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgVUludDgqPihkYXRhKSwgc2l6ZSwga0NGU3RyaW5nRW5jb2RpbmdVVEY4LCBiYXNl
VVJMLCB0cnVlKSk7CiAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0Q0Yo
Q0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcygwLCByZWludGVycHJldF9jYXN0PGNvbnN0
IFVJbnQ4Kj4oZGF0YSksIHNpemUsIGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xLCBiYXNlVVJM
LCB0cnVlKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVS
TFdpdGhCeXRlcyhudWxscHRyLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4oZGF0YSks
IHNpemUsIGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xLCBiYXNlVVJMLCB0cnVlKSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZCBnZXRVUkxCeXRlcyhDRlVSTFJlZiB1cmwsIFVSTENo
YXJCdWZmZXImIHJlc3VsdCkKIHsKLSAgICBDRkluZGV4IGJ5dGVzTGVuZ3RoID0gQ0ZVUkxHZXRC
eXRlcyh1cmwsIDAsIDApOworICAgIENGSW5kZXggYnl0ZXNMZW5ndGggPSBDRlVSTEdldEJ5dGVz
KHVybCwgbnVsbHB0ciwgMCk7CiAgICAgcmVzdWx0LnJlc2l6ZShieXRlc0xlbmd0aCk7CiAgICAg
Q0ZJbmRleCBmaW5hbExlbmd0aCA9IENGVVJMR2V0Qnl0ZXModXJsLCByZWludGVycHJldF9jYXN0
PFVJbnQ4Kj4ocmVzdWx0LmRhdGEoKSksIGJ5dGVzTGVuZ3RoKTsKICAgICBBU1NFUlRfVU5VU0VE
KGZpbmFsTGVuZ3RoLCBmaW5hbExlbmd0aCA9PSBieXRlc0xlbmd0aCk7CkBAIC01Myw3ICs1Myw3
IEBAIHZvaWQgZ2V0VVJMQnl0ZXMoQ0ZVUkxSZWYgdXJsLCBVUkxDaGFyQnVmZmVyJiByZXN1bHQp
CiAKIHZvaWQgZ2V0VVJMQnl0ZXMoQ0ZVUkxSZWYgdXJsLCBDU3RyaW5nJiByZXN1bHQpCiB7Ci0g
ICAgQ0ZJbmRleCBieXRlc0xlbmd0aCA9IENGVVJMR2V0Qnl0ZXModXJsLCAwLCAwKTsKKyAgICBD
RkluZGV4IGJ5dGVzTGVuZ3RoID0gQ0ZVUkxHZXRCeXRlcyh1cmwsIG51bGxwdHIsIDApOwogICAg
IGNoYXIqIGJ5dGVzOwogICAgIHJlc3VsdCA9IENTdHJpbmc6Om5ld1VuaW5pdGlhbGl6ZWQoYnl0
ZXNMZW5ndGgsIGJ5dGVzKTsKICAgICBDRkluZGV4IGZpbmFsTGVuZ3RoID0gQ0ZVUkxHZXRCeXRl
cyh1cmwsIHJlaW50ZXJwcmV0X2Nhc3Q8VUludDgqPihieXRlcyksIGJ5dGVzTGVuZ3RoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL0NGVVJMRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0
Zi9jZi9DRlVSTEV4dHJhcy5oCmluZGV4IGU3ZTY1NTQ1MWQwOS4uMWMyNWU0ZTNlOWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9DRlVSTEV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL2NmL0NGVVJMRXh0cmFzLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiBj
bGFzcyBVUkw7CiB0eXBlZGVmIFZlY3RvcjxjaGFyLCA1MTI+IFVSTENoYXJCdWZmZXI7CiAKLVdU
Rl9FWFBPUlRfUFJJVkFURSBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNyZWF0ZUNGVVJMRnJvbUJ1ZmZl
cihjb25zdCBjaGFyKiwgc2l6ZV90LCBDRlVSTFJlZiBiYXNlVVJMID0gMCk7CitXVEZfRVhQT1JU
X1BSSVZBVEUgUmV0YWluUHRyPENGVVJMUmVmPiBjcmVhdGVDRlVSTEZyb21CdWZmZXIoY29uc3Qg
Y2hhciosIHNpemVfdCwgQ0ZVUkxSZWYgYmFzZVVSTCA9IG51bGxwdHIpOwogV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZ2V0VVJMQnl0ZXMoQ0ZVUkxSZWYsIFVSTENoYXJCdWZmZXImKTsKIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGdldFVSTEJ5dGVzKENGVVJMUmVmLCBDU3RyaW5nJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL0ZpbGVTeXN0ZW1DRi5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9jZi9GaWxlU3lzdGVtQ0YuY3BwCmluZGV4IDcxMmQ2NWZjYWQyOS4uZGM2OWZmYmYxNjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9GaWxlU3lzdGVtQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2NmL0ZpbGVTeXN0ZW1DRi5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgUmV0YWlu
UHRyPENGVVJMUmVmPiBGaWxlU3lzdGVtOjpwYXRoQXNVUkwoY29uc3QgU3RyaW5nJiBwYXRoKQog
I2Vsc2UKICAgICBwYXRoU3R5bGUgPSBrQ0ZVUkxQT1NJWFBhdGhTdHlsZTsKICNlbmRpZgotICAg
IHJldHVybiBhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1QYXRoKDAsIHBhdGguY3Jl
YXRlQ0ZTdHJpbmcoKS5nZXQoKSwgcGF0aFN0eWxlLCBGQUxTRSkpOworICAgIHJldHVybiBhZG9w
dENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1QYXRoKG51bGxwdHIsIHBhdGguY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSwgcGF0aFN0eWxlLCBGQUxTRSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2R0b2EvZG91YmxlLWNvbnZlcnNpb24uY2Mg
Yi9Tb3VyY2UvV1RGL3d0Zi9kdG9hL2RvdWJsZS1jb252ZXJzaW9uLmNjCmluZGV4IDljODE3ZGE2
OTJlYy4uMTFjZjZlNmU3ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hL2RvdWJs
ZS1jb252ZXJzaW9uLmNjCisrKyBiL1NvdXJjZS9XVEYvd3RmL2R0b2EvZG91YmxlLWNvbnZlcnNp
b24uY2MKQEAgLTYyLDcgKzYyLDcgQEAgYm9vbCBEb3VibGVUb1N0cmluZ0NvbnZlcnRlcjo6SGFu
ZGxlU3BlY2lhbFZhbHVlcygKICAgICBTdHJpbmdCdWlsZGVyKiByZXN1bHRfYnVpbGRlcikgY29u
c3QgewogICBEb3VibGUgZG91YmxlX2luc3BlY3QodmFsdWUpOwogICBpZiAoZG91YmxlX2luc3Bl
Y3QuSXNJbmZpbml0ZSgpKSB7Ci0gICAgaWYgKGluZmluaXR5X3N5bWJvbF8gPT0gTlVMTCkgcmV0
dXJuIGZhbHNlOworICAgIGlmIChpbmZpbml0eV9zeW1ib2xfID09IG51bGxwdHIpIHJldHVybiBm
YWxzZTsKICAgICBpZiAodmFsdWUgPCAwKSB7CiAgICAgICByZXN1bHRfYnVpbGRlci0+QWRkQ2hh
cmFjdGVyKCctJyk7CiAgICAgfQpAQCAtNzAsNyArNzAsNyBAQCBib29sIERvdWJsZVRvU3RyaW5n
Q29udmVydGVyOjpIYW5kbGVTcGVjaWFsVmFsdWVzKAogICAgIHJldHVybiB0cnVlOwogICB9CiAg
IGlmIChkb3VibGVfaW5zcGVjdC5Jc05hbigpKSB7Ci0gICAgaWYgKG5hbl9zeW1ib2xfID09IE5V
TEwpIHJldHVybiBmYWxzZTsKKyAgICBpZiAobmFuX3N5bWJvbF8gPT0gbnVsbHB0cikgcmV0dXJu
IGZhbHNlOwogICAgIHJlc3VsdF9idWlsZGVyLT5BZGRTdHJpbmcobmFuX3N5bWJvbF8pOwogICAg
IHJldHVybiB0cnVlOwogICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hL3V0aWxz
LmggYi9Tb3VyY2UvV1RGL3d0Zi9kdG9hL3V0aWxzLmgKaW5kZXggM2MxMzA3YWQzNzZhLi45NmQ1
YmQ3YjU1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2R0b2EvdXRpbHMuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9kdG9hL3V0aWxzLmgKQEAgLTE5Miw3ICsxOTIsNyBAQCBpbmxpbmUgaW50
IFN0ckxlbmd0aChjb25zdCBjaGFyKiBzdHJpbmcpIHsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
Y2xhc3MgQnVmZmVyUmVmZXJlbmNlIHsKICBwdWJsaWM6Ci0gIEJ1ZmZlclJlZmVyZW5jZSgpIDog
c3RhcnRfKE5VTEwpLCBsZW5ndGhfKDApIHt9CisgIEJ1ZmZlclJlZmVyZW5jZSgpIDogc3RhcnRf
KG51bGxwdHIpLCBsZW5ndGhfKDApIHt9CiAgIEJ1ZmZlclJlZmVyZW5jZShUKiBkYXRhLCBpbnQg
bGVuKSA6IHN0YXJ0XyhkYXRhKSwgbGVuZ3RoXyhsZW4pIHsKICAgICBBU1NFUlQobGVuID09IDAg
fHwgKGxlbiA+IDAgJiYgZGF0YSAhPSBOVUxMKSk7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQ1N0cmluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0NTdHJpbmcuY3Bw
CmluZGV4IDM2MWYyNjg0OGFlMy4uMmRiYTc3NGNhZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0NTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmluZy5j
cHAKQEAgLTc2LDcgKzc2LDcgQEAgY2hhciogQ1N0cmluZzo6bXV0YWJsZURhdGEoKQogewogICAg
IGNvcHlCdWZmZXJJZk5lZWRlZCgpOwogICAgIGlmICghbV9idWZmZXIpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gbV9idWZmZXItPm11dGFi
bGVEYXRhKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmluZy5o
IGIvU291cmNlL1dURi93dGYvdGV4dC9DU3RyaW5nLmgKaW5kZXggMTE2YjQyM2Y3ZjQ3Li43MTVi
ZWM4MWNiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmluZy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmluZy5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoK
IAogICAgIGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
YnVmZmVyID8gbV9idWZmZXItPmRhdGEoKSA6IDA7CisgICAgICAgIHJldHVybiBtX2J1ZmZlciA/
IG1fYnVmZmVyLT5kYXRhKCkgOiBudWxscHRyOwogICAgIH0KICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgY2hhciogbXV0YWJsZURhdGEoKTsKICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVmZmVyLmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0J1ZmZlci5oCmluZGV4IDYyY2IzOTY5OTBhMi4uZmNmMzkyNDQxYmZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVmZmVyLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgog
ICAgIE1hbGxvY1B0cjxDaGFyVHlwZSwgU3RyaW5nQnVmZmVyTWFsbG9jPiByZWxlYXNlKCkKICAg
ICB7CiAgICAgICAgIENoYXJUeXBlKiBkYXRhID0gbV9kYXRhOwotICAgICAgICBtX2RhdGEgPSAw
OworICAgICAgICBtX2RhdGEgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRNYWxsb2NQ
dHI8Q2hhclR5cGUsIFN0cmluZ0J1ZmZlck1hbGxvYz4oZGF0YSk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCA4NjI4ZjFhM2RiMDIuLjllM2U0Mjk1NjdjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgUmVmPFN0cmlu
Z0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IExDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ24KIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBS
ZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsKHVu
c2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlwZSomIGRhdGEpCiB7CiAgICAgaWYgKCFsZW5ndGgp
IHsKLSAgICAgICAgZGF0YSA9IDA7CisgICAgICAgIGRhdGEgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gKmVtcHR5KCk7CiAgICAgfQogICAgIHJldHVybiBjcmVhdGVVbmluaXRpYWxpemVkSW50
ZXJuYWxOb25FbXB0eShsZW5ndGgsIGRhdGEpOwpAQCAtMjE4LDcgKzIxOCw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBFeHBlY3RlZDxSZWY8U3RyaW5nSW1wbD4s
IFVURjhDb252ZXJzaW9uCiAgICAgQVNTRVJUKG9yaWdpbmFsU3RyaW5nLT5idWZmZXJPd25lcnNo
aXAoKSA9PSBCdWZmZXJJbnRlcm5hbCk7CiAKICAgICBpZiAoIWxlbmd0aCkgewotICAgICAgICBk
YXRhID0gMDsKKyAgICAgICAgZGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBSZWY8U3Ry
aW5nSW1wbD4oKmVtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRl
eCA0OTg1ZDU0OTUyYjguLmEwMDQzNWUyNDMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgK
QEAgLTM5MCwyMyArMzkwLDIzIEBAIHB1YmxpYzoKICAgICBVQ2hhciBvcGVyYXRvcltdKHVuc2ln
bmVkIGkpIGNvbnN0IHsgcmV0dXJuIGF0KGkpOyB9CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFVD
aGFyMzIgY2hhcmFjdGVyU3RhcnRpbmdBdCh1bnNpZ25lZCk7CiAKLSAgICBpbnQgdG9JbnRTdHJp
Y3QoYm9vbCogb2sgPSAwLCBpbnQgYmFzZSA9IDEwKTsKLSAgICB1bnNpZ25lZCB0b1VJbnRTdHJp
Y3QoYm9vbCogb2sgPSAwLCBpbnQgYmFzZSA9IDEwKTsKLSAgICBpbnQ2NF90IHRvSW50NjRTdHJp
Y3QoYm9vbCogb2sgPSAwLCBpbnQgYmFzZSA9IDEwKTsKLSAgICB1aW50NjRfdCB0b1VJbnQ2NFN0
cmljdChib29sKiBvayA9IDAsIGludCBiYXNlID0gMTApOwotICAgIGludHB0cl90IHRvSW50UHRy
U3RyaWN0KGJvb2wqIG9rID0gMCwgaW50IGJhc2UgPSAxMCk7Ci0KLSAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgaW50IHRvSW50KGJvb2wqIG9rID0gMCk7IC8vIGlnbm9yZXMgdHJhaWxpbmcgZ2FyYmFn
ZQotICAgIHVuc2lnbmVkIHRvVUludChib29sKiBvayA9IDApOyAvLyBpZ25vcmVzIHRyYWlsaW5n
IGdhcmJhZ2UKLSAgICBpbnQ2NF90IHRvSW50NjQoYm9vbCogb2sgPSAwKTsgLy8gaWdub3JlcyB0
cmFpbGluZyBnYXJiYWdlCi0gICAgdWludDY0X3QgdG9VSW50NjQoYm9vbCogb2sgPSAwKTsgLy8g
aWdub3JlcyB0cmFpbGluZyBnYXJiYWdlCi0gICAgaW50cHRyX3QgdG9JbnRQdHIoYm9vbCogb2sg
PSAwKTsgLy8gaWdub3JlcyB0cmFpbGluZyBnYXJiYWdlCisgICAgaW50IHRvSW50U3RyaWN0KGJv
b2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCk7CisgICAgdW5zaWduZWQgdG9VSW50U3Ry
aWN0KGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCk7CisgICAgaW50NjRfdCB0b0lu
dDY0U3RyaWN0KGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCk7CisgICAgdWludDY0
X3QgdG9VSW50NjRTdHJpY3QoYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKTsKKyAg
ICBpbnRwdHJfdCB0b0ludFB0clN0cmljdChib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0g
MTApOworCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGludCB0b0ludChib29sKiBvayA9IG51bGxw
dHIpOyAvLyBpZ25vcmVzIHRyYWlsaW5nIGdhcmJhZ2UKKyAgICB1bnNpZ25lZCB0b1VJbnQoYm9v
bCogb2sgPSBudWxscHRyKTsgLy8gaWdub3JlcyB0cmFpbGluZyBnYXJiYWdlCisgICAgaW50NjRf
dCB0b0ludDY0KGJvb2wqIG9rID0gbnVsbHB0cik7IC8vIGlnbm9yZXMgdHJhaWxpbmcgZ2FyYmFn
ZQorICAgIHVpbnQ2NF90IHRvVUludDY0KGJvb2wqIG9rID0gbnVsbHB0cik7IC8vIGlnbm9yZXMg
dHJhaWxpbmcgZ2FyYmFnZQorICAgIGludHB0cl90IHRvSW50UHRyKGJvb2wqIG9rID0gbnVsbHB0
cik7IC8vIGlnbm9yZXMgdHJhaWxpbmcgZ2FyYmFnZQogCiAgICAgLy8gRklYTUU6IExpa2UgdGhl
IHN0cmljdCBmdW5jdGlvbnMgYWJvdmUsIHRoZXNlIGdpdmUgZmFsc2UgZm9yICJvayIgd2hlbiB0
aGVyZSBpcyB0cmFpbGluZyBnYXJiYWdlLgogICAgIC8vIExpa2UgdGhlIG5vbi1zdHJpY3QgZnVu
Y3Rpb25zIGFib3ZlLCB0aGVzZSByZXR1cm4gdGhlIHZhbHVlIHdoZW4gdGhlcmUgaXMgdHJhaWxp
bmcgZ2FyYmFnZS4KICAgICAvLyBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgdGhlc2Ugd2VyZSBtb3Jl
IGNvbnNpc3RlbnQgd2l0aCB0aGUgYWJvdmUgZnVuY3Rpb25zIGluc3RlYWQuCi0gICAgZG91Ymxl
IHRvRG91YmxlKGJvb2wqIG9rID0gMCk7Ci0gICAgZmxvYXQgdG9GbG9hdChib29sKiBvayA9IDAp
OworICAgIGRvdWJsZSB0b0RvdWJsZShib29sKiBvayA9IG51bGxwdHIpOworICAgIGZsb2F0IHRv
RmxvYXQoYm9vbCogb2sgPSBudWxscHRyKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZWY8
U3RyaW5nSW1wbD4gY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgUmVmPFN0cmluZ0ltcGw+IGNvbnZlcnRUb0FTQ0lJVXBwZXJjYXNlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IGIyYTFlNTkxODMwMy4uOTY5
N2RjMzg5MjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApA
QCAtNjQsNyArNjQsNyBAQCBUZXh0QnJlYWtJdGVyYXRvcjo6VGV4dEJyZWFrSXRlcmF0b3IoU3Ry
aW5nVmlldyBzdHJpbmcsIE1vZGUgbW9kZSwgY29uc3QgQXRvbVN0cgogc3RhdGljIFVCcmVha0l0
ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3JUeXBlIHR5cGUsIGNvbnN0
IGNoYXIqIGxvY2FsZSA9IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpKQogewogICAgIFVFcnJv
ckNvZGUgb3BlblN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBVQnJlYWtJdGVyYXRvciogaXRl
cmF0b3IgPSB1YnJrX29wZW4odHlwZSwgbG9jYWxlLCAwLCAwLCAmb3BlblN0YXR1cyk7CisgICAg
VUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yID0gdWJya19vcGVuKHR5cGUsIGxvY2FsZSwgbnVsbHB0
ciwgMCwgJm9wZW5TdGF0dXMpOwogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoVV9TVUNDRVNTKG9w
ZW5TdGF0dXMpLCAiSUNVIGNvdWxkIG5vdCBvcGVuIGEgYnJlYWsgaXRlcmF0b3I6ICVzICglZCki
LCB1X2Vycm9yTmFtZShvcGVuU3RhdHVzKSwgb3BlblN0YXR1cyk7CiAgICAgcmV0dXJuIGl0ZXJh
dG9yOwogfQpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogc2V0Q29u
dGV4dEF3YXJlVGV4dEZvckl0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yJiBpdGVyYXRvciwKICAgICAg
ICAgVVRleHQqIHRleHQgPSBvcGVuVVRGMTZDb250ZXh0QXdhcmVVVGV4dFByb3ZpZGVyKCZ0ZXh0
TG9jYWwsIHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgpLCBwcmlvckNvbnRl
eHQsIHByaW9yQ29udGV4dExlbmd0aCwgJm9wZW5TdGF0dXMpOwogICAgICAgICBpZiAoVV9GQUlM
VVJFKG9wZW5TdGF0dXMpKSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIm9wZW5VVEYxNkNvbnRl
eHRBd2FyZVVUZXh0UHJvdmlkZXIgZmFpbGVkIHdpdGggc3RhdHVzICVkIiwgb3BlblN0YXR1cyk7
Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICB9CiAKICAgICAgICAgVUVycm9yQ29kZSBzZXRUZXh0U3RhdHVzID0gVV9aRVJPX0VSUk9S
OwpAQCAtMTkxLDEyICsxOTEsMTIgQEAgVUJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVy
YXRvcihjb25zdCBBdG9tU3RyaW5nJiBsb2NhbGUpCiB7CiAgICAgYm9vbCBsb2NhbGVJc0VtcHR5
ID0gbG9jYWxlLmlzRW1wdHkoKTsKICAgICBVRXJyb3JDb2RlIG9wZW5TdGF0dXMgPSBVX1pFUk9f
RVJST1I7Ci0gICAgVUJyZWFrSXRlcmF0b3IqIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElO
RSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKKyAgICBVQnJlYWtJdGVy
YXRvciogdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3Vy
cmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
bnVsbHB0ciwgMCwgJm9wZW5TdGF0dXMpOwogICAgIC8vIGxvY2FsZSBjb21lcyBmcm9tIGEgd2Vi
IHBhZ2UgYW5kIGl0IGNhbiBiZSBpbnZhbGlkLCBsZWFkaW5nIElDVQogICAgIC8vIHRvIGZhaWws
IGluIHdoaWNoIGNhc2Ugd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGxvY2FsZS4KICAgICBp
ZiAoIWxvY2FsZUlzRW1wdHkgJiYgVV9GQUlMVVJFKG9wZW5TdGF0dXMpKSB7CiAgICAgICAgIG9w
ZW5TdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVC
UktfTElORSwgY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCksIDAsIDAsICZvcGVuU3RhdHVzKTsK
KyAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBjdXJyZW50VGV4dEJyZWFr
TG9jYWxlSUQoKSwgbnVsbHB0ciwgMCwgJm9wZW5TdGF0dXMpOwogICAgIH0KIAogICAgIGlmIChV
X0ZBSUxVUkUob3BlblN0YXR1cykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuaAppbmRleCA5MzE2NDg4MDg1ZWUuLmEyMDIyZTRhZTY2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMjg1LDcgKzI4NSw3IEBAIHB1YmxpYzoKICAgICBV
QnJlYWtJdGVyYXRvciogZ2V0KHVuc2lnbmVkIHByaW9yQ29udGV4dExlbmd0aCkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChwcmlvckNvbnRleHRMZW5ndGggPD0gcHJpb3JDb250ZXh0Q2FwYWNpdHkp
OwotICAgICAgICBjb25zdCBVQ2hhciogcHJpb3JDb250ZXh0ID0gcHJpb3JDb250ZXh0TGVuZ3Ro
ID8gJm1fcHJpb3JDb250ZXh0W3ByaW9yQ29udGV4dENhcGFjaXR5IC0gcHJpb3JDb250ZXh0TGVu
Z3RoXSA6IDA7CisgICAgICAgIGNvbnN0IFVDaGFyKiBwcmlvckNvbnRleHQgPSBwcmlvckNvbnRl
eHRMZW5ndGggPyAmbV9wcmlvckNvbnRleHRbcHJpb3JDb250ZXh0Q2FwYWNpdHkgLSBwcmlvckNv
bnRleHRMZW5ndGhdIDogbnVsbHB0cjsKICAgICAgICAgaWYgKCFtX2l0ZXJhdG9yKSB7CiAgICAg
ICAgICAgICBtX2l0ZXJhdG9yID0gYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKG1fc3RyaW5nVmll
dywgbV9sb2NhbGUsIHByaW9yQ29udGV4dCwgcHJpb3JDb250ZXh0TGVuZ3RoLCBtX21vZGUpOwog
ICAgICAgICAgICAgbV9jYWNoZWRQcmlvckNvbnRleHQgPSBwcmlvckNvbnRleHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1dURlN0cmluZy5jcHAKaW5kZXggYWZjOTJmNTc3NjY2Li44ZDIyNmEzMThlOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKQEAgLTEwNzMsMTMgKzEwNzMsMTMgQEAgZmxvYXQgY2hh
cmFjdGVyc1RvRmxvYXQoY29uc3QgVUNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9r
KQogZmxvYXQgY2hhcmFjdGVyc1RvRmxvYXQoY29uc3QgTENoYXIqIGRhdGEsIHNpemVfdCBsZW5n
dGgsIHNpemVfdCYgcGFyc2VkTGVuZ3RoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgcmV0
dXJuIG9rIGV2ZW4gd2hlbiB0aGUgc3RyaW5nIGZpdHMgaW50byBhIGRvdWJsZSBidXQgbm90IGEg
ZmxvYXQuCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih0b0RvdWJsZVR5cGU8TENoYXIs
IEFsbG93VHJhaWxpbmdKdW5rPihkYXRhLCBsZW5ndGgsIDAsIHBhcnNlZExlbmd0aCkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odG9Eb3VibGVUeXBlPExDaGFyLCBBbGxvd1RyYWls
aW5nSnVuaz4oZGF0YSwgbGVuZ3RoLCBudWxscHRyLCBwYXJzZWRMZW5ndGgpKTsKIH0KIAogZmxv
YXQgY2hhcmFjdGVyc1RvRmxvYXQoY29uc3QgVUNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIHNp
emVfdCYgcGFyc2VkTGVuZ3RoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgcmV0dXJuIG9r
IGV2ZW4gd2hlbiB0aGUgc3RyaW5nIGZpdHMgaW50byBhIGRvdWJsZSBidXQgbm90IGEgZmxvYXQu
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih0b0RvdWJsZVR5cGU8VUNoYXIsIEFsbG93
VHJhaWxpbmdKdW5rPihkYXRhLCBsZW5ndGgsIDAsIHBhcnNlZExlbmd0aCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxmbG9hdD4odG9Eb3VibGVUeXBlPFVDaGFyLCBBbGxvd1RyYWlsaW5nSnVu
az4oZGF0YSwgbGVuZ3RoLCBudWxscHRyLCBwYXJzZWRMZW5ndGgpKTsKIH0KIAogY29uc3QgU3Ry
aW5nJiBlbXB0eVN0cmluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L2NmL1N0
cmluZ0ltcGxDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAK
aW5kZXggMGQ2NmM2MThkNWZlLi5jNjdjYzNhOTYzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvY2YvU3RyaW5nSW1wbENGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L2Nm
L1N0cmluZ0ltcGxDRi5jcHAKQEAgLTU3LDExICs1NywxMSBAQCBuYW1lc3BhY2UgU3RyaW5nV3Jh
cHBlckNGQWxsb2NhdG9yIHsKIAogICAgIHN0YXRpYyB2b2lkKiBhbGxvY2F0ZShDRkluZGV4IHNp
emUsIENGT3B0aW9uRmxhZ3MsIHZvaWQqKQogICAgIHsKLSAgICAgICAgU3RyaW5nSW1wbCogdW5k
ZXJseWluZ1N0cmluZyA9IDA7CisgICAgICAgIFN0cmluZ0ltcGwqIHVuZGVybHlpbmdTdHJpbmcg
PSBudWxscHRyOwogICAgICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKICAgICAgICAgICAgIHVu
ZGVybHlpbmdTdHJpbmcgPSBjdXJyZW50U3RyaW5nOwogICAgICAgICAgICAgaWYgKHVuZGVybHlp
bmdTdHJpbmcpIHsKLSAgICAgICAgICAgICAgICBjdXJyZW50U3RyaW5nID0gMDsKKyAgICAgICAg
ICAgICAgICBjdXJyZW50U3RyaW5nID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB1bmRlcmx5
aW5nU3RyaW5nLT5yZWYoKTsgLy8gQmFsYW5jZWQgYnkgY2FsbCB0byBkZXJlZiBpbiBkZWFsbG9j
YXRlIGJlbG93LgogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMTMsOCArMTEzLDggQEAg
bmFtZXNwYWNlIFN0cmluZ1dyYXBwZXJDRkFsbG9jYXRvciB7CiAKICAgICBzdGF0aWMgQ0ZBbGxv
Y2F0b3JSZWYgY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIENGQWxsb2NhdG9yQ29udGV4dCBjb250
ZXh0ID0geyAwLCAwLCByZXRhaW4sIHJlbGVhc2UsIGNvcHlEZXNjcmlwdGlvbiwgYWxsb2NhdGUs
IHJlYWxsb2NhdGUsIGRlYWxsb2NhdGUsIHByZWZlcnJlZFNpemUgfTsKLSAgICAgICAgcmV0dXJu
IENGQWxsb2NhdG9yQ3JlYXRlKDAsICZjb250ZXh0KTsKKyAgICAgICAgQ0ZBbGxvY2F0b3JDb250
ZXh0IGNvbnRleHQgPSB7IDAsIG51bGxwdHIsIHJldGFpbiwgcmVsZWFzZSwgY29weURlc2NyaXB0
aW9uLCBhbGxvY2F0ZSwgcmVhbGxvY2F0ZSwgZGVhbGxvY2F0ZSwgcHJlZmVycmVkU2l6ZSB9Owor
ICAgICAgICByZXR1cm4gQ0ZBbGxvY2F0b3JDcmVhdGUobnVsbHB0ciwgJmNvbnRleHQpOwogICAg
IH0KIAogICAgIHN0YXRpYyBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IoKQpAQCAtMTI5LDggKzEy
OSw4IEBAIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gU3RyaW5nSW1wbDo6Y3JlYXRlQ0ZTdHJpbmco
KQogewogICAgIGlmICghbV9sZW5ndGggfHwgIWlzTWFpblRocmVhZCgpKSB7CiAgICAgICAgIGlm
IChpczhCaXQoKSkKLSAgICAgICAgICAgIHJldHVybiBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0
aEJ5dGVzKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPihjaGFyYWN0ZXJzOCgpKSwg
bV9sZW5ndGgsIGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xLCBmYWxzZSkpOwotICAgICAgICBy
ZXR1cm4gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgVW5pQ2hhcio+KGNoYXJhY3RlcnMxNigpKSwgbV9sZW5ndGgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEJ5dGVzKG51bGxwdHIsIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPihjaGFyYWN0ZXJzOCgpKSwgbV9sZW5ndGgsIGtD
RlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xLCBmYWxzZSkpOworICAgICAgICByZXR1cm4gYWRvcHRD
RihDRlN0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgVW5pQ2hhcio+KGNoYXJhY3RlcnMxNigpKSwgbV9sZW5ndGgpKTsKICAgICB9CiAgICAg
Q0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yID0gU3RyaW5nV3JhcHBlckNGQWxsb2NhdG9yOjphbGxv
Y2F0b3IoKTsKIApAQCAtMTQ0LDcgKzE0NCw3IEBAIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gU3Ry
aW5nSW1wbDo6Y3JlYXRlQ0ZTdHJpbmcoKQogICAgIGVsc2UKICAgICAgICAgc3RyaW5nID0gQ0ZT
dHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weShhbGxvY2F0b3IsIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgVW5pQ2hhcio+KGNoYXJhY3RlcnMxNigpKSwgbV9sZW5ndGgsIGtDRkFsbG9jYXRv
ck51bGwpOwogICAgIC8vIENvcmVGb3VuZGF0aW9uIG1pZ2h0IG5vdCBoYXZlIHRvIGFsbG9jYXRl
IGFueXRoaW5nLCB3ZSBjbGVhciBjdXJyZW50U3RyaW5nIGluIGNhc2Ugd2UgZGlkIG5vdCBleGVj
dXRlIGFsbG9jYXRlKCkuCi0gICAgU3RyaW5nV3JhcHBlckNGQWxsb2NhdG9yOjpjdXJyZW50U3Ry
aW5nID0gMDsKKyAgICBTdHJpbmdXcmFwcGVyQ0ZBbGxvY2F0b3I6OmN1cnJlbnRTdHJpbmcgPSBu
dWxscHRyOwogCiAgICAgcmV0dXJuIGFkb3B0Q0Yoc3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGluMS5jcHAKaW5kZXggZGFmODFjNWNhMDlh
Li4wYTY0NmI3ZjM5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvaWN1L1VUZXh0
UHJvdmlkZXJMYXRpbjEuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvaWN1L1VUZXh0UHJv
dmlkZXJMYXRpbjEuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBVVGV4dCogdVRleHRMYXRp
bjFDbG9uZShVVGV4dCogZGVzdGluYXRpb24sIGNvbnN0IFVUZXh0KiBzb3VyY2UsIFVCb29sIGRl
CiAgICAgQVNTRVJUX1VOVVNFRChkZWVwLCAhZGVlcCk7CiAKICAgICBpZiAoVV9GQUlMVVJFKCpz
dGF0dXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBVVGV4dCogcmVzdWx0ID0gdXRleHRfc2V0dXAoZGVzdGluYXRpb24sIHNpemVvZihVQ2hhcikg
KiBVVGV4dFdpdGhCdWZmZXJJbmxpbmVDYXBhY2l0eSwgc3RhdHVzKTsKICAgICBpZiAoVV9GQUlM
VVJFKCpzdGF0dXMpKQpAQCAtMzc3LDE1ICszNzcsMTUgQEAgc3RhdGljIHZvaWQgdVRleHRMYXRp
bjFDb250ZXh0QXdhcmVDbG9zZShVVGV4dCogdGV4dCkKIFVUZXh0KiBvcGVuTGF0aW4xQ29udGV4
dEF3YXJlVVRleHRQcm92aWRlcihVVGV4dFdpdGhCdWZmZXIqIHV0V2l0aEJ1ZmZlciwgY29uc3Qg
TENoYXIqIHN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBVQ2hhciogcHJpb3JDb250ZXh0
LCBpbnQgcHJpb3JDb250ZXh0TGVuZ3RoLCBVRXJyb3JDb2RlKiBzdGF0dXMpCiB7CiAgICAgaWYg
KFVfRkFJTFVSRSgqc3RhdHVzKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGlmICghc3RyaW5nIHx8IGxlbmd0aCA+IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkpIHsKICAgICAgICAgKnN0YXR1
cyA9IFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBVVGV4dCogdGV4dCA9IHV0ZXh0X3NldHVwKCZ1
dFdpdGhCdWZmZXItPnRleHQsIHNpemVvZih1dFdpdGhCdWZmZXItPmJ1ZmZlciksIHN0YXR1cyk7
CiAgICAgaWYgKFVfRkFJTFVSRSgqc3RhdHVzKSkgewogICAgICAgICBBU1NFUlQoIXRleHQpOwot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAg
aW5pdGlhbGl6ZUNvbnRleHRBd2FyZVVUZXh0UHJvdmlkZXIodGV4dCwgJnRleHRMYXRpbjFDb250
ZXh0QXdhcmVGdW5jcywgc3RyaW5nLCBsZW5ndGgsIHByaW9yQ29udGV4dCwgcHJpb3JDb250ZXh0
TGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvaWN1L1VUZXh0UHJvdmlk
ZXJVVEYxNi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyVVRGMTYu
Y3BwCmluZGV4IDc2NGViYTIzNDg5ZS4uNjljOGQwOTFiZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyVVRGMTYuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJVVEYxNi5jcHAKQEAgLTE2NiwxNSArMTY2LDE1IEBA
IHN0YXRpYyB2b2lkIHVUZXh0VVRGMTZDb250ZXh0QXdhcmVDbG9zZShVVGV4dCogdGV4dCkKIFVU
ZXh0KiBvcGVuVVRGMTZDb250ZXh0QXdhcmVVVGV4dFByb3ZpZGVyKFVUZXh0KiB0ZXh0LCBjb25z
dCBVQ2hhciogc3RyaW5nLCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0IFVDaGFyKiBwcmlvckNvbnRl
eHQsIGludCBwcmlvckNvbnRleHRMZW5ndGgsIFVFcnJvckNvZGUqIHN0YXR1cykKIHsKICAgICBp
ZiAoVV9GQUlMVVJFKCpzdGF0dXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgaWYgKCFzdHJpbmcgfHwgbGVuZ3RoID4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSkgewogICAgICAgICAqc3Rh
dHVzID0gVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SOwotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHRleHQgPSB1dGV4dF9zZXR1cCh0ZXh0LCAw
LCBzdGF0dXMpOwogICAgIGlmIChVX0ZBSUxVUkUoKnN0YXR1cykpIHsKICAgICAgICAgQVNTRVJU
KCF0ZXh0KTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAogICAgIGluaXRpYWxpemVDb250ZXh0QXdhcmVVVGV4dFByb3ZpZGVyKHRleHQsICZ0ZXh0
VVRGMTZDb250ZXh0QXdhcmVGdW5jcywgc3RyaW5nLCBsZW5ndGgsIHByaW9yQ29udGV4dCwgcHJp
b3JDb250ZXh0TGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lz
dGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCA3
YjJhMWY4Y2Y5ZDAuLjY1OWRmZDUyNzI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2lu
L0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2lu
LmNwcApAQCAtMjk0LDcgKzI5NCw3IEBAIENTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYgcGF0aCkKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKIHsKICAgICBTdHJpbmcgZnVsbFBhdGggPSBwYXRoOwotICAgIGlmIChTSENyZWF0
ZURpcmVjdG9yeUV4KDAsIGZ1bGxQYXRoLndpZGVDaGFyYWN0ZXJzKCkuZGF0YSgpLCAwKSAhPSBF
UlJPUl9TVUNDRVNTKSB7CisgICAgaWYgKFNIQ3JlYXRlRGlyZWN0b3J5RXgobnVsbHB0ciwgZnVs
bFBhdGgud2lkZUNoYXJhY3RlcnMoKS5kYXRhKCksIG51bGxwdHIpICE9IEVSUk9SX1NVQ0NFU1Mp
IHsKICAgICAgICAgRFdPUkQgZXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKICAgICAgICAgaWYgKGVy
cm9yICE9IEVSUk9SX0ZJTEVfRVhJU1RTICYmIGVycm9yICE9IEVSUk9SX0FMUkVBRFlfRVhJU1RT
KSB7CiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgcGF0aCAlcyIsIHBh
dGguYXNjaWkoKS5kYXRhKCkpOwpAQCAtMzQ4LDcgKzM0OCw3IEBAIHN0YXRpYyBTdHJpbmcgYnVu
ZGxlTmFtZSgpCiBzdGF0aWMgU3RyaW5nIHN0b3JhZ2VEaXJlY3RvcnkoRFdPUkQgcGF0aElkZW50
aWZpZXIpCiB7CiAgICAgVmVjdG9yPFVDaGFyPiBidWZmZXIoTUFYX1BBVEgpOwotICAgIGlmIChG
QUlMRUQoU0hHZXRGb2xkZXJQYXRoVygwLCBwYXRoSWRlbnRpZmllciB8IENTSURMX0ZMQUdfQ1JF
QVRFLCAwLCAwLCB3Y2hhckZyb20oYnVmZmVyLmRhdGEoKSkpKSkKKyAgICBpZiAoRkFJTEVEKFNI
R2V0Rm9sZGVyUGF0aFcobnVsbHB0ciwgcGF0aElkZW50aWZpZXIgfCBDU0lETF9GTEFHX0NSRUFU
RSwgbnVsbHB0ciwgMCwgd2NoYXJGcm9tKGJ1ZmZlci5kYXRhKCkpKSkpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKIAogICAgIGJ1ZmZlci5zaHJpbmsod2NzbGVuKHdjaGFyRnJvbShidWZmZXIu
ZGF0YSgpKSkpOwpAQCAtNDEwLDcgKzQxMCw3IEBAIFN0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShj
b25zdCBTdHJpbmcmLCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKIAogICAgIFN0cmluZyBw
cm9wb3NlZFBhdGggPSBnZW5lcmF0ZVRlbXBvcmFyeVBhdGgoWyZoYW5kbGVdKGNvbnN0IFN0cmlu
ZyYgcHJvcG9zZWRQYXRoKSB7CiAgICAgICAgIC8vIHVzZSBDUkVBVEVfTkVXIHRvIGF2b2lkIG92
ZXJ3cml0aW5nIGFuIGV4aXN0aW5nIGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lCi0gICAgICAgIGhh
bmRsZSA9IDo6Q3JlYXRlRmlsZVcocHJvcG9zZWRQYXRoLndpZGVDaGFyYWN0ZXJzKCkuZGF0YSgp
LCBHRU5FUklDX1JFQUQgfCBHRU5FUklDX1dSSVRFLCAwLCAwLCBDUkVBVEVfTkVXLCBGSUxFX0FU
VFJJQlVURV9OT1JNQUwsIDApOworICAgICAgICBoYW5kbGUgPSA6OkNyZWF0ZUZpbGVXKHByb3Bv
c2VkUGF0aC53aWRlQ2hhcmFjdGVycygpLmRhdGEoKSwgR0VORVJJQ19SRUFEIHwgR0VORVJJQ19X
UklURSwgMCwgbnVsbHB0ciwgQ1JFQVRFX05FVywgRklMRV9BVFRSSUJVVEVfTk9STUFMLCBudWxs
cHRyKTsKIAogICAgICAgICByZXR1cm4gaXNIYW5kbGVWYWxpZChoYW5kbGUpIHx8IEdldExhc3RF
cnJvcigpID09IEVSUk9SX0FMUkVBRFlfRVhJU1RTOwogICAgIH0pOwpAQCAtNDQ2LDcgKzQ0Niw3
IEBAIFBsYXRmb3JtRmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVP
cGVuTW9kZSBtb2RlLCBGaWxlQWNjZXNzUGVyCiAgICAgICAgIGNyZWF0aW9uRGlzcG9zaXRpb24g
PSBDUkVBVEVfTkVXOwogCiAgICAgU3RyaW5nIGRlc3RpbmF0aW9uID0gcGF0aDsKLSAgICByZXR1
cm4gQ3JlYXRlRmlsZShkZXN0aW5hdGlvbi53aWRlQ2hhcmFjdGVycygpLmRhdGEoKSwgZGVzaXJl
ZEFjY2Vzcywgc2hhcmVNb2RlLCAwLCBjcmVhdGlvbkRpc3Bvc2l0aW9uLCBGSUxFX0FUVFJJQlVU
RV9OT1JNQUwsIDApOworICAgIHJldHVybiBDcmVhdGVGaWxlKGRlc3RpbmF0aW9uLndpZGVDaGFy
YWN0ZXJzKCkuZGF0YSgpLCBkZXNpcmVkQWNjZXNzLCBzaGFyZU1vZGUsIG51bGxwdHIsIGNyZWF0
aW9uRGlzcG9zaXRpb24sIEZJTEVfQVRUUklCVVRFX05PUk1BTCwgbnVsbHB0cik7CiB9CiAKIHZv
aWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQpAQCAtNDkxLDcgKzQ5MSw3
IEBAIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBEV09SRCBieXRl
c1dyaXR0ZW47Ci0gICAgYm9vbCBzdWNjZXNzID0gV3JpdGVGaWxlKGhhbmRsZSwgZGF0YSwgbGVu
Z3RoLCAmYnl0ZXNXcml0dGVuLCAwKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBXcml0ZUZpbGUoaGFu
ZGxlLCBkYXRhLCBsZW5ndGgsICZieXRlc1dyaXR0ZW4sIG51bGxwdHIpOwogCiAgICAgaWYgKCFz
dWNjZXNzKQogICAgICAgICByZXR1cm4gLTE7CkBAIC01MDQsNyArNTA0LDcgQEAgaW50IHJlYWRG
cm9tRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3Ro
KQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBEV09SRCBieXRlc1JlYWQ7Ci0gICAgYm9vbCBz
dWNjZXNzID0gOjpSZWFkRmlsZShoYW5kbGUsIGRhdGEsIGxlbmd0aCwgJmJ5dGVzUmVhZCwgMCk7
CisgICAgYm9vbCBzdWNjZXNzID0gOjpSZWFkRmlsZShoYW5kbGUsIGRhdGEsIGxlbmd0aCwgJmJ5
dGVzUmVhZCwgbnVsbHB0cik7CiAKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJldHVybiAt
MTsKQEAgLTYwMiw3ICs2MDIsNyBAQCBib29sIGRlbGV0ZU5vbkVtcHR5RGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgZGlyZWN0b3J5UGF0aCkKICAgICAgICAgTCIiLAogICAgICAgICBGT0ZfTk9DT05G
SVJNQVRJT04gfCBGT0ZfTk9FUlJPUlVJIHwgRk9GX1NJTEVOVCwKICAgICAgICAgZmFsc2UsCi0g
ICAgICAgIDAsCisgICAgICAgIG51bGxwdHIsCiAgICAgICAgIEwiIgogICAgIH07CiAgICAgcmV0
dXJuICFTSEZpbGVPcGVyYXRpb24oJmRlbGV0ZU9wZXJhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL0xhbmd1
YWdlV2luLmNwcAppbmRleCAzMDg3NTk3ZGI2MzAuLjllN2JmZjEwOTc5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93
aW4vTGFuZ3VhZ2VXaW4uY3BwCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyBMb2NrIHBsYXRmb3Jt
TGFuZ3VhZ2VNdXRleDsKIHN0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlw
ZSwgY29uc3QgU3RyaW5nJiBmYWxsYmFjaykKIHsKICAgICBMQU5HSUQgbGFuZ0lEID0gR2V0VXNl
ckRlZmF1bHRVSUxhbmd1YWdlKCk7Ci0gICAgaW50IGxvY2FsZUNoYXJzID0gR2V0TG9jYWxlSW5m
byhsYW5nSUQsIGxvY2FsZVR5cGUsIDAsIDApOworICAgIGludCBsb2NhbGVDaGFycyA9IEdldExv
Y2FsZUluZm8obGFuZ0lELCBsb2NhbGVUeXBlLCBudWxscHRyLCAwKTsKICAgICBpZiAoIWxvY2Fs
ZUNoYXJzKQogICAgICAgICByZXR1cm4gZmFsbGJhY2s7CiAgICAgVUNoYXIqIGxvY2FsZU5hbWVC
dWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKaW5kZXggZGZmOTQ3ZWQ5MmNjLi4w
NzY5NWJiZmIyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2lu
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKQEAgLTYyLDgg
KzYyLDggQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCkKICAgICB3Y2V4Lmxw
c3pDbGFzc05hbWUgID0ga1RocmVhZGluZ1dpbmRvd0NsYXNzTmFtZTsKICAgICBSZWdpc3RlckNs
YXNzVygmd2NleCk7CiAKLSAgICB0aHJlYWRpbmdXaW5kb3dIYW5kbGUgPSBDcmVhdGVXaW5kb3dX
KGtUaHJlYWRpbmdXaW5kb3dDbGFzc05hbWUsIDAsIDAsCi0gICAgICAgIENXX1VTRURFRkFVTFQs
IDAsIENXX1VTRURFRkFVTFQsIDAsIEhXTkRfTUVTU0FHRSwgMCwgMCwgMCk7CisgICAgdGhyZWFk
aW5nV2luZG93SGFuZGxlID0gQ3JlYXRlV2luZG93VyhrVGhyZWFkaW5nV2luZG93Q2xhc3NOYW1l
LCBudWxscHRyLCAwLAorICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAw
LCBIV05EX01FU1NBR0UsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpOwogICAgIHRocmVhZGlu
Z0ZpcmVkTWVzc2FnZSA9IFJlZ2lzdGVyV2luZG93TWVzc2FnZVcoTCJjb20uYXBwbGUuV2ViS2l0
Lk1haW5UaHJlYWRGaXJlZCIpOwogCiAgICAgbWFpblRocmVhZCA9IFRocmVhZDo6Y3VycmVudElE
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vT1NBbGxvY2F0b3JXaW4uY3BwIGIv
U291cmNlL1dURi93dGYvd2luL09TQWxsb2NhdG9yV2luLmNwcAppbmRleCBiMzA1ODEzM2Q1MTYu
LjlkNmMwYWE3NDExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL09TQWxsb2NhdG9y
V2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vT1NBbGxvY2F0b3JXaW4uY3BwCkBAIC00
MCw3ICs0MCw3IEBAIHN0YXRpYyBpbmxpbmUgRFdPUkQgcHJvdGVjdGlvbihib29sIHdyaXRhYmxl
LCBib29sIGV4ZWN1dGFibGUpCiAKIHZvaWQqIE9TQWxsb2NhdG9yOjpyZXNlcnZlVW5jb21taXR0
ZWQoc2l6ZV90IGJ5dGVzLCBVc2FnZSwgYm9vbCB3cml0YWJsZSwgYm9vbCBleGVjdXRhYmxlLCBi
b29sKQogewotICAgIHZvaWQqIHJlc3VsdCA9IFZpcnR1YWxBbGxvYygwLCBieXRlcywgTUVNX1JF
U0VSVkUsIHByb3RlY3Rpb24od3JpdGFibGUsIGV4ZWN1dGFibGUpKTsKKyAgICB2b2lkKiByZXN1
bHQgPSBWaXJ0dWFsQWxsb2MobnVsbHB0ciwgYnl0ZXMsIE1FTV9SRVNFUlZFLCBwcm90ZWN0aW9u
KHdyaXRhYmxlLCBleGVjdXRhYmxlKSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIENSQVNI
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCogT1NBbGxvY2F0
b3I6OnJlc2VydmVVbmNvbW1pdHRlZChzaXplX3QgYnl0ZXMsIFVzYWdlLCBib29sIHdyaXRhYmxl
LCBib29sIGUKIAogdm9pZCogT1NBbGxvY2F0b3I6OnJlc2VydmVBbmRDb21taXQoc2l6ZV90IGJ5
dGVzLCBVc2FnZSwgYm9vbCB3cml0YWJsZSwgYm9vbCBleGVjdXRhYmxlLCBib29sKQogewotICAg
IHZvaWQqIHJlc3VsdCA9IFZpcnR1YWxBbGxvYygwLCBieXRlcywgTUVNX1JFU0VSVkUgfCBNRU1f
Q09NTUlULCBwcm90ZWN0aW9uKHdyaXRhYmxlLCBleGVjdXRhYmxlKSk7CisgICAgdm9pZCogcmVz
dWx0ID0gVmlydHVhbEFsbG9jKG51bGxwdHIsIGJ5dGVzLCBNRU1fUkVTRVJWRSB8IE1FTV9DT01N
SVQsIHByb3RlY3Rpb24od3JpdGFibGUsIGV4ZWN1dGFibGUpKTsKICAgICBpZiAoIXJlc3VsdCkK
ICAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BX
aW4uY3BwCmluZGV4IGUxOGIzN2YwMGRlNy4uZGFlOTU0YTIyNThlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1J1
bkxvb3BXaW4uY3BwCkBAIC02Niw3ICs2Niw3IEBAIExSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhI
V05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKIHZv
aWQgUnVuTG9vcDo6cnVuKCkKIHsKICAgICBNU0cgbWVzc2FnZTsKLSAgICB3aGlsZSAoQk9PTCBy
ZXN1bHQgPSA6OkdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKSB7CisgICAgd2hpbGUgKEJP
T0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCBudWxscHRyLCAwLCAwKSkgewogICAg
ICAgICBpZiAocmVzdWx0ID09IC0xKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIDo6VHJh
bnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7CkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgUnVuTG9vcDo6
cnVuKCkKIHZvaWQgUnVuTG9vcDo6aXRlcmF0ZSgpCiB7CiAgICAgTVNHIG1lc3NhZ2U7Ci0gICAg
d2hpbGUgKDo6UGVla01lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDAsIFBNX1JFTU9WRSkpIHsKKyAg
ICB3aGlsZSAoOjpQZWVrTWVzc2FnZSgmbWVzc2FnZSwgbnVsbHB0ciwgMCwgMCwgUE1fUkVNT1ZF
KSkgewogICAgICAgICA6OlRyYW5zbGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOwogICAgICAgICA6OkRp
c3BhdGNoTWVzc2FnZSgmbWVzc2FnZSk7CiAgICAgfQpAQCAtMTA5LDggKzEwOSw4IEBAIHZvaWQg
UnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKIAogUnVuTG9vcDo6
UnVuTG9vcCgpCiB7Ci0gICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2luZG93
KGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKLSAgICAgICAgQ1dfVVNFREVG
QVVMVCwgMCwgQ1dfVVNFREVGQVVMVCwgMCwgSFdORF9NRVNTQUdFLCAwLCAwLCB0aGlzKTsKKyAg
ICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdl
V2luZG93Q2xhc3NOYW1lLCBudWxscHRyLCAwLAorICAgICAgICBDV19VU0VERUZBVUxULCAwLCBD
V19VU0VERUZBVUxULCAwLCBIV05EX01FU1NBR0UsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMpOwog
ICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKIH0KIApAQCAt
MTMxLDcgKzEzMSw3IEBAIHZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKIFJ1bkxvb3A6OkN5Y2xlUmVz
dWx0IFJ1bkxvb3A6OmN5Y2xlKFJ1bkxvb3BNb2RlKQogewogICAgIE1TRyBtZXNzYWdlOwotICAg
IGlmICghOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAwKSkKKyAgICBpZiAoITo6R2V0TWVz
c2FnZSgmbWVzc2FnZSwgbnVsbHB0ciwgMCwgMCkpCiAgICAgICAgIHJldHVybiBDeWNsZVJlc3Vs
dDo6U3RvcDsKIAogICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7CkBAIC0xODcsNyAr
MTg3LDcgQEAgdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KFNlY29uZHMgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpCiAgICAgbV9pc0FjdGl2ZSA9IHRydWU7CiAgICAgbV9pbnRl
cnZhbCA9IG5leHRGaXJlSW50ZXJ2YWw7CiAgICAgbV9uZXh0RmlyZURhdGUgPSBNb25vdG9uaWNU
aW1lOjpub3coKSArIG1faW50ZXJ2YWw7Ci0gICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3csIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHRoaXMpLCBuZXh0Rmly
ZUludGVydmFsLm1pbGxpc2Vjb25kc0FzPFVJTlQ+KCksIDApOworICAgIDo6U2V0VGltZXIobV9y
dW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pih0
aGlzKSwgbmV4dEZpcmVJbnRlcnZhbC5taWxsaXNlY29uZHNBczxVSU5UPigpLCBudWxscHRyKTsK
IH0KIAogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvd2luL1RocmVhZGluZ1dpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vVGhyZWFk
aW5nV2luLmNwcAppbmRleCBkNjMyZmVkODExMTYuLjc1Y2RiNjc1ZjQ2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvd2luL1RocmVhZGluZ1dpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
d2luL1RocmVhZGluZ1dpbi5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIFRocmVhZDo6ZXN0
YWJsaXNoSGFuZGxlKE5ld1RocmVhZENvbnRleHQqIGRhdGEsIE9wdGlvbmFsPHNpemVfdD4gc3Rh
Y2tTaXplKQogewogICAgIHVuc2lnbmVkIHRocmVhZElkZW50aWZpZXIgPSAwOwogICAgIHVuc2ln
bmVkIGluaXRGbGFnID0gc3RhY2tTaXplID8gU1RBQ0tfU0laRV9QQVJBTV9JU19BX1JFU0VSVkFU
SU9OIDogMDsKLSAgICBIQU5ETEUgdGhyZWFkSGFuZGxlID0gcmVpbnRlcnByZXRfY2FzdDxIQU5E
TEU+KF9iZWdpbnRocmVhZGV4KDAsIHN0YWNrU2l6ZS52YWx1ZU9yKDApLCB3dGZUaHJlYWRFbnRy
eVBvaW50LCBkYXRhLCBpbml0RmxhZywgJnRocmVhZElkZW50aWZpZXIpKTsKKyAgICBIQU5ETEUg
dGhyZWFkSGFuZGxlID0gcmVpbnRlcnByZXRfY2FzdDxIQU5ETEU+KF9iZWdpbnRocmVhZGV4KG51
bGxwdHIsIHN0YWNrU2l6ZS52YWx1ZU9yKDApLCB3dGZUaHJlYWRFbnRyeVBvaW50LCBkYXRhLCBp
bml0RmxhZywgJnRocmVhZElkZW50aWZpZXIpKTsKICAgICBpZiAoIXRocmVhZEhhbmRsZSkgewog
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgdGhyZWFkIGF0IGVudHJ5IHBvaW50
ICVwIHdpdGggZGF0YSAlcDogJWxkIiwgd3RmVGhyZWFkRW50cnlQb2ludCwgZGF0YSwgZXJybm8p
OwogICAgICAgICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>