<?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>219887</bug_id>
          
          <creation_ts>2020-12-15 00:14:37 -0800</creation_ts>
          <short_desc>[Mac] Numerous webgl tests time out with WebM format reader enabled</short_desc>
          <delta_ts>2020-12-15 08:42:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1714687</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-12-15 00:14:37 -0800</bug_when>
    <thetext>[Mac] Numerous webgl tests time out with WebM format reader enabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714690</commentid>
    <comment_count>1</comment_count>
      <attachid>416228</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-12-15 00:31:43 -0800</bug_when>
    <thetext>Created attachment 416228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714691</commentid>
    <comment_count>2</comment_count>
      <attachid>416229</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-12-15 00:43:34 -0800</bug_when>
    <thetext>Created attachment 416229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714692</commentid>
    <comment_count>3</comment_count>
      <attachid>416230</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-12-15 00:47:46 -0800</bug_when>
    <thetext>Created attachment 416230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714739</commentid>
    <comment_count>4</comment_count>
      <attachid>416243</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-12-15 07:28:48 -0800</bug_when>
    <thetext>Created attachment 416243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714766</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-15 08:41:08 -0800</bug_when>
    <thetext>Committed r270841: &lt;https://trac.webkit.org/changeset/270841&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416243.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714767</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-15 08:42:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/72343306&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416228</attachid>
            <date>2020-12-15 00:31:43 -0800</date>
            <delta_ts>2020-12-15 00:43:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219887-20201215003142.patch</filename>
            <type>text/plain</type>
            <size>23961</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBiZmYyZjZmYTc3OGJh
NDc5YjVjYjUyMGQ4ZDEzMTM4NGY5MjEyZi4uMTAzODQyMDMxODcwMjkxMGZmYWY5YTQzMDU1NDRk
MTUyMzgzNjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTEyLTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBOdW1lcm91cyB3ZWJn
bCB0ZXN0cyB0aW1lIG91dCB3aXRoIFdlYk0gZm9ybWF0IHJlYWRlciBlbmFibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk4ODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5oOgorCisgICAgICAgIEFkZGVkIGEgd2F5IHRvIGdldCB0aGUgdHJhY2sgSUQgYXMgYW4g
b3B0aW9uYWwgdWludDY0X3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
b3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxPbk1haW5U
aHJlYWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
OjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6T25DbHVzdGVyQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CisgICAgICAgIEFkZGVkIGEgd2F5IGZvciBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIGNsaWVudHMg
dG8gY3VzdG9taXplIHRoZSB0aHJlYWQgb24gd2hpY2ggY2FsbGJhY2tzCisgICAgICAgIGFyZSBp
bnZva2VkLgorCiAyMDIwLTEyLTE0ICBFbWlsaW8gQ29ib3Mgw4FsdmFyZXogIDxlbWlsaW9AY3Jp
c2FsLmlvPgogCiAgICAgICAgIEltcGxlbWVudCA6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHBzZXVk
by1lbGVtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA1ZTBiOTFjMjk2Y2Q0NTRmOWUwODE0NjgzYzMzZWIzYmYw
NmI2ODA4Li5hZGJkMTUzNGZjYzNmNmU2ZWNlMThlOTRiM2FkNDUyMjgzMzhkOTM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE1ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KKworICAgICAgICBbTWFjXSBOdW1lcm91cyB3ZWJnbCB0ZXN0cyB0aW1lIG91dCB3aXRo
IFdlYk0gZm9ybWF0IHJlYWRlciBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk4ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIHJlbmRlcmluZyBhIHZpZGVvIGZyYW1lIHRvIGNhbnZh
cywgU2FtcGxlQ3Vyc29yIGlzIGludm9rZWQgb24gdGhlIG1haW4gdGhyZWFkIGluCisgICAgICAg
IG9yZGVyIHRvIGZpbmQgYSBzeW5jIGZyYW1lIHRvIHJlbmRlci4gVGhpcyB0cmlnZ2VyZWQgYW4g
QVNTRVJUKCFpc01haW5UaHJlYWQoKSkgaW4gZGVidWcKKyAgICAgICAgYnVpbGRzLCBhbmQgcG9z
c2libHkgYSBkZWFkbG9jayBpZiB0aGUgY3Vyc29yIHBvaW50ZWQgdG8gYSBzYW1wbGUgdGhhdCBo
YWRuJ3QgeWV0IGJlZW4KKyAgICAgICAgcGFyc2VkIChiZWNhdXNlIFNvdXJjZUJ1ZmZlclBhcnNl
ciBjYWxscyB0aGUgJ2RpZFByb3ZpZGVNZWRpYURhdGEnIGNhbGxiYWNrIG9uIHRoZSBtYWluCisg
ICAgICAgIHRocmVhZCkuCisKKyAgICAgICAgUmVzb2x2ZSB0aGlzIGJ5IGhhdmluZyBTb3VyY2VC
dWZmZXJQYXJzZXIgcHJvdmlkZSBwYXJzZWQgc2FtcGxlcyBvbiBhIGJhY2tncm91bmQgcXVldWUu
IFRvCisgICAgICAgIGF2b2lkIGNyZWF0aW5nIEF0b21TdHJpbmdzIG9uIHRoaXMgbm9uLW1haW4g
cXVldWUsIHRlYWNoIFRyYWNrUmVhZGVyIHRvIGFjY2VzcyB0aGUgdHJhY2tJRAorICAgICAgICBh
cyBhIHVpbnQ2NF90IGluc3RlYWQuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZvcm1hdFJlYWRlcjo6
c3RhcnRPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpyZWFkZXJRdWV1ZSk6CisgICAg
ICAgIChXZWJLaXQ6OkZvcm1hdFJlYWRlcjo6cGFyc2VCeXRlU291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6Rm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyk6CisgICAgICAgIChXZWJLaXQ6OkZv
cm1hdFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkZvcm1h
dFJlYWRlcjo6ZmluaXNoUGFyc2luZyk6CisgICAgICAgIChXZWJLaXQ6OkZvcm1hdFJlYWRlcjo6
Y29weVRyYWNrQXJyYXkpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
VHJhY2tSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUJ5dGVSYW5nZTo6
TWVkaWFTYW1wbGVCeXRlUmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjpUcmFja1JlYWRlcik6CisgICAgICAgIChXZWJLaXQ6
OlRyYWNrUmVhZGVyOjphZGRTYW1wbGUpOgorICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6
d2FpdEZvclNhbXBsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjpmaW5p
c2hQYXJzaW5nKToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmZpbmFsaXplKToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmg6CisKIDIw
MjAtMTItMTQgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNd
IEVuYWJsZSBgd2VibV9mb3JtYXRfcmVhZGVyYCBmZWF0dXJlIGZsYWcgYnkgZGVmYXVsdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNl
LmNwcAppbmRleCBlN2MxYWYzMTM4MWYzNzU4Mjk4NTZiMzhmM2I4NmMxNjc1ZTE4M2RmLi5jZTEx
ZmU5OWFhM2FiNzFmMDZjODEwMDZjNTA4YWJiMzYyNmE3NGMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmNwcApAQCAtMzMs
NiArMzMsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2aXJ0dWFsIE9wdGlvbmFsPHVp
bnQ2NF90PiBUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiBzdGF0aWMg
dWludDY0X3Qgc191bmlxdWVJZCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKaW5kZXggMDA0YWY0ZjEwOWVjYjBjYTMzMjU3
MzdkOGYxMmIwZjBmZjY5MDM0Zi4uZjQ0ZWZjYmU1MTJmNDYxNzg1ZjcxNDBlZjI3YzU5MTViYTRj
MzVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQ
cml2YXRlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBBdG9t
U3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgeyByZXR1cm4gZW1wdHlBdG9tKCk7IH0KIAogICAgIHZp
cnR1YWwgaW50IHRyYWNrSW5kZXgoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBP
cHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgTWVkaWFU
aW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCmluZGV4IDVmMjBiY2Y5ZGYx
MDFhY2ExODViMjNjMzE5ZmQyM2JkN2VlMmM5ZDIuLjc3ZDhhMzQ1OGRhMDUxOTkxNmIyZTVhODZk
OWQxZDQ3ZjU2M2FjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmNwcApAQCAtNDQs
MTEgKzQ0LDIwIEBAIEF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6QXVkaW9UcmFja1ByaXZhdGVXZWJN
KHdlYm06OlRyYWNrRW50cnkmJiB0cmFja0VudHJ5KQogCiBBdG9tU3RyaW5nIEF1ZGlvVHJhY2tQ
cml2YXRlV2ViTTo6aWQoKSBjb25zdAogewotICAgIGlmIChtX3RyYWNrSUQuaXNOdWxsKCkpCi0g
ICAgICAgIG1fdHJhY2tJRCA9IG1fdHJhY2sudHJhY2tfdWlkLmlzX3ByZXNlbnQoKSA/IEF0b21T
dHJpbmc6Om51bWJlcihtX3RyYWNrLnRyYWNrX3VpZC52YWx1ZSgpKSA6IGVtcHR5QXRvbSgpOwor
ICAgIGlmIChtX3RyYWNrSUQuaXNOdWxsKCkpIHsKKyAgICAgICAgYXV0byB1aWQgPSB0cmFja1VJ
RCgpOworICAgICAgICBtX3RyYWNrSUQgPSB1aWQgPyBBdG9tU3RyaW5nOjpudW1iZXIoKnVpZCkg
OiBlbXB0eUF0b20oKTsKKyAgICB9CiAgICAgcmV0dXJuIG1fdHJhY2tJRDsKIH0KIAorT3B0aW9u
YWw8dWludDY0X3Q+IEF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQoKSBjb25zdAorewor
ICAgIGlmIChtX3RyYWNrLnRyYWNrX3VpZC5pc19wcmVzZW50KCkpCisgICAgICAgIHJldHVybiBt
X3RyYWNrLnRyYWNrX3VpZC52YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisK
IEF0b21TdHJpbmcgQXVkaW9UcmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNvbnN0CiB7CiAgICAg
aWYgKG1fbGFiZWwuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDlh
OTc4ZGY3OGMzYjU2ZmE0ZTcxYjkwMWRmNmFmN2M5MmUxNjk5MTIuLjEzMWE5ZmUwYWVkYTJhMWZm
NDc4ZjBjN2I5N2I5MzQ0ZGNiNjYwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCkBA
IC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhYmVsKCkgY29uc3QgZmlu
YWw7CiAgICAgQXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZpbmFsOwogICAgIGludCB0cmFj
a0luZGV4KCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8dWludDY0X3Q+IHRyYWNrVUlEKCkg
Y29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgQXVkaW9UcmFja1ByaXZhdGVXZWJNKHdlYm06
OlRyYWNrRW50cnkmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCmluZGV4IDA3
NWY0MjQ0ZWU4NzQyNDk4ZWJhNWY0OWQxODk2M2VjMWRkMTRhZWQuLjEyOWQxYzYzNWFiMmZlM2Vh
NzI0ZWE1Y2VhZThmNGZhZTQ4NTUzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
Y3BwCkBAIC01MzcsOSArNTM3LDE3IEBAIFJlZlB0cjxTb3VyY2VCdWZmZXJQYXJzZXJXZWJNPiBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpjcmVhdGUoY29uc3QgQ29udGVudFR5cGUmCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKK3N0YXRpYyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpDYWxsT25D
bGllbnRUaHJlYWRDYWxsYmFjayBjYWxsT25NYWluVGhyZWFkQ2FsbGJhY2soKQoreworICAgIHJl
dHVybiBbXShGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pIHsKKyAgICAgICAgY2FsbE9uTWFp
blRocmVhZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgfTsKK30KKwogU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTSgpCiAgICAgOiBtX3JlYWRlcihXVEY6Om1h
a2VVbmlxdWVSZWY8U3RyZWFtaW5nVmVjdG9yUmVhZGVyPigpKQogICAgICwgbV9pbml0aWFsaXph
dGlvblNlZ21lbnRJc0hhbmRsZWRTZW1hcGhvcmUoQm94PEJpbmFyeVNlbWFwaG9yZT46OmNyZWF0
ZSgpKQorICAgICwgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhjYWxsT25NYWluVGhyZWFk
Q2FsbGJhY2soKSkKIHsKICAgICBpZiAoaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAg
IG1fcGFyc2VyID0gV1RGOjptYWtlVW5pcXVlV2l0aG91dEZhc3RNYWxsb2NDaGVjazxXZWJtUGFy
c2VyPigpOwpAQCAtNTkzLDcgKzYwMSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6
YXBwZW5kRGF0YShTZWdtZW50JiYgc2VnbWVudCwgQXBwZW5kRmxhZ3MgYXBwZW5kRmxhCiAgICAg
fQogCiAgICAgRVJST1JfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsICJzdGF0dXMuY29k
ZSgiLCBtX3N0YXR1cy5jb2RlLCAiKSIpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29kZSA9IG1fc3RhdHVzLmNvZGVdIHsKKyAg
ICBtX2NhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGNvZGUgPSBtX3N0YXR1cy5jb2RlXSB7CiAgICAgICAgIGlmIChtX2RpZEVu
Y291bnRlckVycm9yRHVyaW5nUGFyc2luZ0NhbGxiYWNrKQogICAgICAgICAgICAgbV9kaWRFbmNv
dW50ZXJFcnJvckR1cmluZ1BhcnNpbmdDYWxsYmFjayhjb2RlKTsKICAgICB9KTsKQEAgLTc3NCw3
ICs3ODIsNyBAQCBTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25DbHVzdGVyQmVnaW4o
Y29uc3QgRWxlbWVudE1ldGFkYXRhJiBtZXRhZGF0YSwgYwogICAgICAgICByZXR1cm4gU3RhdHVz
KFN0YXR1czo6a05vdEVub3VnaE1lbW9yeSk7CiAKICAgICBpZiAobV9pbml0aWFsaXphdGlvblNl
Z21lbnRFbmNvdW50ZXJlZCAmJiBtX2RpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhQ2FsbGJhY2sp
IHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBpbml0aWFsaXphdGlvblNlZ21lbnQgPSBXVEZNb3ZlKCptX2luaXRpYWxpemF0
aW9uU2VnbWVudCldKCkgbXV0YWJsZSB7CisgICAgICAgIG1fY2FsbE9uQ2xpZW50VGhyZWFkQ2Fs
bGJhY2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaW5pdGlhbGl6YXRp
b25TZWdtZW50ID0gV1RGTW92ZSgqbV9pbml0aWFsaXphdGlvblNlZ21lbnQpXSgpIG11dGFibGUg
ewogICAgICAgICAgICAgbV9kaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0YUNhbGxiYWNrKFdURk1v
dmUoaW5pdGlhbGl6YXRpb25TZWdtZW50KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0gewogICAgICAgICAgICAgICAgIG1faW5pdGlhbGl6YXRpb25TZWdtZW50SXNIYW5k
bGVkU2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgICAgIH0pOwpAQCAtOTU0LDcgKzk2Miw3
IEBAIHdlYm06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpPbkZyYW1lKGNvbnN0IEZy
YW1lTWV0YWRhdGEmIG1ldGFkYXRhLCBSZWFkCiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6cHJvdmlkZU1lZGlhRGF0YShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1
ZmZlciwgdWludDY0X3QgdHJhY2tJRCwgT3B0aW9uYWw8c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQp
CiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBzYW1wbGVCdWZmZXIgPSBXVEZNb3ZlKHNhbXBsZUJ1ZmZlciksIHRyYWNrSUQsIGJ5
dGVSYW5nZU9mZnNldF0gKCkgbXV0YWJsZSB7CisgICAgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxs
YmFjayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzYW1wbGVCdWZmZXIg
PSBXVEZNb3ZlKHNhbXBsZUJ1ZmZlciksIHRyYWNrSUQsIGJ5dGVSYW5nZU9mZnNldF0gKCkgbXV0
YWJsZSB7CiAgICAgICAgIGlmICghbV9kaWRQcm92aWRlTWVkaWFEYXRhQ2FsbGJhY2spCiAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTEyMTksNiArMTIyNywxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OnNldE1pbmltdW1BdWRpb1NhbXBsZUR1cmF0aW9uKGZsb2F0IGR1cmF0aW9u
KQogICAgIG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24gPSBkdXJhdGlvbjsKIH0KIAordm9p
ZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhD
YWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVChjYWxs
YmFjayk7CisgICAgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spOworfQorCiBjb25zdCBIYXNoU2V0PFN0cmluZz4mIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06
OnN1cHBvcnRlZFZpZGVvQ29kZWNzKCkKIHsKICAgICBzdGF0aWMgYXV0byBjb2RlY3MgPSBtYWtl
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+Pih7ICJWX1ZQOCIsICJWX1ZQOSIgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VC
dWZmZXJQYXJzZXJXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKaW5kZXggZmMyNGQ4YzczY2FiYjEwY2Y1YjI3ZjFi
ZDIwYWQzNGIyNjZkYzZjMC4uZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJiNWNiMTc5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291
cmNlQnVmZmVyUGFyc2VyV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaApAQCAtODAsNiArODAsOSBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGZsdXNoUGVuZGluZ0F1ZGlvQnVmZmVycygpOwogICAgIHZvaWQgc2V0
TWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24oZmxvYXQpOworICAgIAorICAgIHVzaW5nIENhbGxP
bkNsaWVudFRocmVhZENhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmKT47CisgICAgdm9pZCBzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhDYWxs
T25DbGllbnRUaHJlYWRDYWxsYmFjayYmKTsKIAogICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IFdU
Rjo6TG9nZ2VyJiwgY29uc3Qgdm9pZCogaWRlbnRpZmllcikgZmluYWw7CiAKQEAgLTI2MSw2ICsy
NjQsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24g
eyAyIH07CiAKICAgICBCb3g8QmluYXJ5U2VtYXBob3JlPiBtX2luaXRpYWxpemF0aW9uU2VnbWVu
dElzSGFuZGxlZFNlbWFwaG9yZTsKKyAgICBDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayBtX2Nh
bGxPbkNsaWVudFRocmVhZENhbGxiYWNrOwogCiAgICAgUmVmUHRyPGNvbnN0IFdURjo6TG9nZ2Vy
PiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXIgeyBudWxscHRyIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRl
b1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA2YTM0ZjJlNTgzZmVjYmRhMzRm
NzU3YmIyYjMxOTdmM2VmY2U4MjMwLi5lODhiOWU1NTU1ZDRmYTMxODAzZmQyOWY2OGVhYzk1ZTZm
NzczMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTQ0LDExICs0NCwy
MCBAQCBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpU
cmFja0VudHJ5JiYgdHJhY2tFbnRyeSkKIAogQXRvbVN0cmluZyBWaWRlb1RyYWNrUHJpdmF0ZVdl
Yk06OmlkKCkgY29uc3QKIHsKLSAgICBpZiAobV90cmFja0lELmlzTnVsbCgpKQotICAgICAgICBt
X3RyYWNrSUQgPSBtX3RyYWNrLnRyYWNrX3VpZC5pc19wcmVzZW50KCkgPyBBdG9tU3RyaW5nOjpu
dW1iZXIobV90cmFjay50cmFja191aWQudmFsdWUoKSkgOiBlbXB0eUF0b20oKTsKKyAgICBpZiAo
bV90cmFja0lELmlzTnVsbCgpKSB7CisgICAgICAgIGF1dG8gdWlkID0gdHJhY2tVSUQoKTsKKyAg
ICAgICAgbV90cmFja0lEID0gdWlkID8gQXRvbVN0cmluZzo6bnVtYmVyKCp1aWQpIDogZW1wdHlB
dG9tKCk7CisgICAgfQogICAgIHJldHVybiBtX3RyYWNrSUQ7CiB9CiAKK09wdGlvbmFsPHVpbnQ2
NF90PiBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKK3sKKyAgICBpZiAo
bV90cmFjay50cmFja191aWQuaXNfcHJlc2VudCgpKQorICAgICAgICByZXR1cm4gbV90cmFjay50
cmFja191aWQudmFsdWUoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBBdG9tU3Ry
aW5nIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6bGFiZWwoKSBjb25zdAogewogICAgIGlmIChtX2xh
YmVsLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCAxNzY3YjkxZDk2
ZWZlYWY0OWYzYzc5MGM3MmQ2M2EyZmQ4MTUzYjgxLi4xMjMxY2JlMzU5ZTMwNzNmZGZhNmZiZTBl
NjJlMDUxZjBiMjkxZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAtNDEsNiAr
NDEsNyBAQCBwdWJsaWM6CiAgICAgQXRvbVN0cmluZyBsYWJlbCgpIGNvbnN0IGZpbmFsOwogICAg
IEF0b21TdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBmaW5hbDsKICAgICBpbnQgdHJhY2tJbmRleCgp
IGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB0cmFja1VJRCgpIGNvbnN0IGZp
bmFsOwogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0Vu
dHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNwcAppbmRleCA3OWVkMTAzNDQ4NTlhZmUzM2M4YTM0
NGNhNDZiM2MwZWUzMmUwZjc1Li5lZjQ5ZmNhOTY2MjI1YWMzN2I1ODNlNjQ2N2Q4ZjVkMTkyNGFi
YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvRm9ybWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFG
b3JtYXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQ29udGVudFR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRUcmFj
a1ByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9Tb3VyY2VCdWZmZXJQYXJzZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+
CiAjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KICNp
bmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CkBAIC03MCw3ICs3MCwxMSBAQCBGb3JtYXRSZWFkZXI6
OkZvcm1hdFJlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IpCiAKIHZvaWQgRm9ybWF0UmVhZGVy
OjpzdGFydE9uTWFpblRocmVhZChNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkKIHsK
LSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsK
KyAgICAgICAgcGFyc2VCeXRlU291cmNlKFdURk1vdmUoYnl0ZVNvdXJjZSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBieXRlU291cmNlID0gcmV0YWluUHRyKGJ5dGVTb3VyY2UpXSgp
IG11dGFibGUgewogICAgICAgICBwYXJzZUJ5dGVTb3VyY2UoV1RGTW92ZShieXRlU291cmNlKSk7
CiAgICAgfSk7CkBAIC03OCw3ICs4Miw3IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpzdGFydE9uTWFp
blRocmVhZChNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkKIAogc3RhdGljIFdvcmtR
dWV1ZSYgcmVhZGVyUXVldWUoKQogewotICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1
ZTo6Y3JlYXRlKCJXZWJLaXQgRm9ybWF0UmVhZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpD
b25jdXJyZW50KS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoIldlYktpdDo6Rm9ybWF0UmVhZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpD
b25jdXJyZW50KS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuIHF1ZXVlOwogfQogCkBAIC04Nyw3ICs5
MSw3IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1
Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlU291cmNlCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb250ZW50VHlwZT4gY29udGVudFR5cGUo
InZpZGVvL3dlYm0iX3MpOwotICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2VyOjpj
cmVhdGUoY29udGVudFR5cGUpOworICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6Y3JlYXRlKGNvbnRlbnRUeXBlKTsKICAgICBpZiAoIXBhcnNlcikgewogICAgICAgICBt
X3BhcnNlVHJhY2tzU3RhdHVzID0ga01UUGx1Z2luRm9ybWF0UmVhZGVyRXJyb3JfQWxsb2NhdGlv
bkZhaWx1cmU7CiAgICAgICAgIHJldHVybjsKQEAgLTk2LDEyICsxMDAsOSBAQCB2b2lkIEZvcm1h
dFJlYWRlcjo6cGFyc2VCeXRlU291cmNlKFJldGFpblB0cjxNVFBsdWdpbkJ5dGVTb3VyY2VSZWY+
JiYgYnl0ZVNvdXJjZQogICAgIC8vIFNldCBhIG1pbmltdW0gYXVkaW8gc2FtcGxlIGR1cmF0aW9u
IG9mIDAgc28gdGhlIHBhcnNlciBjcmVhdGVzIGluZGl2aXNpYmxlIHNhbXBsZXMgd2l0aCBieXRl
IHNvdXJjZSByYW5nZXMuCiAgICAgcGFyc2VyLT5zZXRNaW5pbXVtQXVkaW9TYW1wbGVEdXJhdGlv
bigwKTsKIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2spOwot
Ci0gICAgbV9ieXRlU291cmNlID0gV1RGTW92ZShieXRlU291cmNlKTsKLSAgICBtX3BhcnNlVHJh
Y2tzU3RhdHVzID0gV1RGOjpudWxsb3B0OwotICAgIG1fZHVyYXRpb24gPSBNZWRpYVRpbWU6Omlu
dmFsaWRUaW1lKCk7Ci0gICAgbV90cmFja1JlYWRlcnMuY2xlYXIoKTsKKyAgICBwYXJzZXItPnNl
dENhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrKFtdKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlv
bikgeworICAgICAgICBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkuZGlzcGF0Y2goV1RGTW92
ZShmdW5jdGlvbikpOworICAgIH0pOwogCiAgICAgcGFyc2VyLT5zZXREaWRQYXJzZUluaXRpYWxp
emF0aW9uRGF0YUNhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
KFNvdXJjZUJ1ZmZlclBhcnNlcjo6SW5pdGlhbGl6YXRpb25TZWdtZW50JiYgaW5pdGlhbGl6YXRp
b25TZWdtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsKICAgICAgICAgZGlkUGFyc2VUcmFja3MoV1RGTW92ZShpbml0aWFsaXphdGlvblNlZ21lbnQp
LCBub0Vycik7CkBAIC0xMTYsOSArMTE3LDE1IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpwYXJzZUJ5
dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlU291cmNlCiAg
ICAgICAgIGRpZFByb3ZpZGVNZWRpYURhdGEoV1RGTW92ZShtZWRpYVNhbXBsZSksIHRyYWNrSUQs
IG1lZGlhVHlwZSk7CiAgICAgfSk7CiAKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcGFy
c2VUcmFja3NMb2NrKTsKKyAgICBtX2J5dGVTb3VyY2UgPSBXVEZNb3ZlKGJ5dGVTb3VyY2UpOwor
ICAgIG1fcGFyc2VUcmFja3NTdGF0dXMgPSBXVEY6Om51bGxvcHQ7CisgICAgbV9kdXJhdGlvbiA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAgICBtX3RyYWNrUmVhZGVycy5jbGVhcigpOwor
CiAgICAgcmVhZGVyUXVldWUoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBieXRlU291cmNlID0gbV9ieXRlU291cmNlLCBwYXJzZXIgPSBwYXJzZXIucmVs
ZWFzZU5vbk51bGwoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgcGFyc2VyLT5hcHBlbmREYXRhKFdU
Rk1vdmUoYnl0ZVNvdXJjZSkpOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhcnNlciA9IFdURk1vdmUocGFyc2VyKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgVHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1ZSgpLmRpc3BhdGNoKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhcnNlciA9IFdURk1vdmUocGFy
c2VyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGZpbmlzaFBhcnNpbmcoV1RGTW92ZShwYXJz
ZXIpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMjYsNyArMTMzLDcgQEAgdm9pZCBGb3Jt
YXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZShSZXRhaW5QdHI8TVRQbHVnaW5CeXRlU291cmNlUmVm
PiYmIGJ5dGVTb3VyY2UKIAogdm9pZCBGb3JtYXRSZWFkZXI6OmRpZFBhcnNlVHJhY2tzKFNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYmIHNlZ21lbnQsIHVp
bnQ2NF90IGVycm9yQ29kZSkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Bh
cnNlVHJhY2tzTG9jayk7CiAgICAgQVNTRVJUKCFtX3BhcnNlVHJhY2tzU3RhdHVzKTsKQEAgLTE2
Miw3ICsxNjksNyBAQCB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUGFyc2VUcmFja3MoU291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZQogCiB2b2lkIEZvcm1hdFJlYWRl
cjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1wbGU+JiYgbWVkaWFTYW1wbGUsIHVp
bnQ2NF90IHRyYWNrSUQsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2spOwogICAgIGF1dG8gdHJhY2tJbmRleCA9IG1fdHJh
Y2tSZWFkZXJzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgdHJhY2spIHsKQEAgLTE3NSw3ICsxODIs
NyBAQCB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1w
bGU+JiYgbWVkaWFTYW1wbGUsIHVpbnQ2NF90CiAKIHZvaWQgRm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKFJlZjxTb3VyY2VCdWZmZXJQYXJzZXI+JiYgcGFyc2VyKQogewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fcGFyc2VUcmFja3NMb2NrKTsKICAgICBBU1NFUlQobV9wYXJz
ZVRyYWNrc1N0YXR1cy5oYXNWYWx1ZSgpKTsKQEAgLTIwOCw4ICsyMTUsNiBAQCBPU1N0YXR1cyBG
b3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eShDRlN0cmluZ1JlZiBrZXksIENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgdgogCiBPU1N0YXR1cyBGb3JtYXRSZWFkZXI6OmNvcHlUcmFja0FycmF5KENG
QXJyYXlSZWYqIHRyYWNrQXJyYXlDb3B5KQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwotCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tzTG9jayk7CiAgICAg
bV9wYXJzZVRyYWNrc0NvbmRpdGlvbi53YWl0KG1fcGFyc2VUcmFja3NMb2NrLCBbJl0gewogICAg
ICAgICByZXR1cm4gbV9wYXJzZVRyYWNrc1N0YXR1cy5oYXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRl
ci5jcHAKaW5kZXggZWUxNjkyYWVmNWQ4NDgxZTA2Y2I0MmUxZmNkMzdmMTE2NGE5Njg3Yi4uMjk2
MTQyYzVmZTNlZjY4MzEwMzk0ZDBjOTQ4MmMzNTJjMzA2NzllOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIu
Y3BwCkBAIC05Miw2ICs5Miw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5
dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgLCBtX2J5
dGVSYW5nZShzYW1wbGUuYnl0ZVJhbmdlKCkpCiAgICAgLCBtX2J5dGVTb3VyY2UoYnl0ZVNvdXJj
ZSkKIHsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIHBsYXRmb3JtU2Ft
cGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgc3dpdGNoIChwbGF0Zm9ybVNhbXBs
ZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlOgpA
QCAtMTM5LDM2ICsxNDAsNDEgQEAgUmVmUHRyPFRyYWNrUmVhZGVyPiBUcmFja1JlYWRlcjo6Y3Jl
YXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGUKIHsKICAgICBpZiAo
IXRyYWNrKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVy
LCAqdHJhY2ssIGtDTU1lZGlhVHlwZV9WaWRlbykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
KGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIs
IGtDTU1lZGlhVHlwZV9WaWRlbywgKnRyYWNrLT50cmFja1VJRCgpKSk7CiB9CiAKIFJlZlB0cjxU
cmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNv
bnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVyLCBjb25zdCBBdWRpb1RyYWNrUHJpdmF0ZSog
dHJhY2spCiB7CiAgICAgaWYgKCF0cmFjaykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2NhdG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9j
YXRvciksIGZvcm1hdFJlYWRlciwgKnRyYWNrLCBrQ01NZWRpYVR5cGVfQXVkaW8pKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2Nh
dG9yKSwgZm9ybWF0UmVhZGVyLCBrQ01NZWRpYVR5cGVfQXVkaW8sICp0cmFjay0+dHJhY2tVSUQo
KSkpOwogfQogCiBSZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVhZGVyOjpjcmVhdGUoQWxsb2Nh
dG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgY29uc3Qg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2spCiB7CiAgICAgaWYgKCF0cmFjaykKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2NhdG9yKSBU
cmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwgKnRyYWNrLCBrQ01N
ZWRpYVR5cGVfVGV4dCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJh
Y2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9U
ZXh0LCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKK30KKworV29ya1F1ZXVlJiBUcmFja1JlYWRlcjo6
c3RvcmFnZVF1ZXVlKCkKK3sKKyAgICBzdGF0aWMgYXV0byYgcXVldWUgPSBXb3JrUXVldWU6OmNy
ZWF0ZSgiV2ViS2l0OjpUcmFja1JlYWRlciBTdG9yYWdlIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBl
OjpTZXJpYWwpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gcXVldWU7CiB9CiAKLVRyYWNrUmVhZGVy
OjpUcmFja1JlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYg
Zm9ybWF0UmVhZGVyLCBjb25zdCBUcmFja1ByaXZhdGVCYXNlJiB0cmFjaywgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlKQorVHJhY2tSZWFkZXI6OlRyYWNrUmVhZGVyKEFsbG9jYXRvciYmIGFsbG9jYXRv
ciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIENNTWVkaWFUeXBlIG1lZGlhVHlw
ZSwgdWludDY0X3QgdHJhY2tJRCkKICAgICA6IENvcmVNZWRpYVdyYXBwZWQoV1RGTW92ZShhbGxv
Y2F0b3IpKQotICAgICwgbV90cmFja0lEKHRyYWNrLmlkKCkuc3RyaW5nKCkudG9VSW50NjQoKSkK
KyAgICAsIG1fdHJhY2tJRCgqdHJhY2tJRCkKICAgICAsIG1fbWVkaWFUeXBlKG1lZGlhVHlwZSkK
ICAgICAsIG1fZHVyYXRpb24oZm9ybWF0UmVhZGVyLmR1cmF0aW9uKCkpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQobV90cmFja0lEID4gMCk7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiB9CiAKIHZvaWQgVHJhY2tSZWFkZXI6OmFkZFNhbXBsZShSZWY8
TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkK
IHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9jayk7CiAg
ICAgaWYgKCFtX3NhbXBsZVN0b3JhZ2UpCiAgICAgICAgIG1fc2FtcGxlU3RvcmFnZSA9IG1ha2VV
bmlxdWU8U2FtcGxlU3RvcmFnZT4oKTsKQEAgLTE4Nyw3ICsxOTMsNiBAQCB2b2lkIFRyYWNrUmVh
ZGVyOjphZGRTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291
cmNlUmVmIGJ5dAogCiB2b2lkIFRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlKEZ1bmN0aW9uPGJv
b2woU2FtcGxlTWFwJiwgYm9vbCk+JiYgcHJlZGljYXRlKSBjb25zdAogewotICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9y
YWdlTG9jayk7CiAgICAgaWYgKCFtX3NhbXBsZVN0b3JhZ2UpCiAgICAgICAgIG1fc2FtcGxlU3Rv
cmFnZSA9IG1ha2VVbmlxdWU8U2FtcGxlU3RvcmFnZT4oKTsKQEAgLTE5OCw3ICsyMDMsNyBAQCB2
b2lkIFRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlKEZ1bmN0aW9uPGJvb2woU2FtcGxlTWFwJiwg
Ym9vbCk+JiYgcHJlZGljYXRlKSBjbwogCiB2b2lkIFRyYWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5n
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9jayk7
CiAgICAgaWYgKCFtX3NhbXBsZVN0b3JhZ2UpCiAgICAgICAgIG1fc2FtcGxlU3RvcmFnZSA9IG1h
a2VVbmlxdWU8U2FtcGxlU3RvcmFnZT4oKTsKQEAgLTI0Myw3ICsyNDgsNyBAQCBPU1N0YXR1cyBU
cmFja1JlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCB2bwogdm9pZCBUcmFja1JlYWRlcjo6ZmluYWxpemUoKQogewogICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9jayk7Ci0gICAgY2FsbE9uTWFpblRo
cmVhZChbc2FtcGxlU3RvcmFnZSA9IHN0ZDo6ZXhjaGFuZ2UobV9zYW1wbGVTdG9yYWdlLCBudWxs
cHRyKV0geyB9KTsKKyAgICBzdG9yYWdlUXVldWUoKS5kaXNwYXRjaChbc2FtcGxlU3RvcmFnZSA9
IHN0ZDo6ZXhjaGFuZ2UobV9zYW1wbGVTdG9yYWdlLCBudWxscHRyKV0geyB9KTsKICAgICBDb3Jl
TWVkaWFXcmFwcGVkPFRyYWNrUmVhZGVyPjo6ZmluYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIu
aAppbmRleCA3NDVlMTY3YzVkM2Q2ZDc0YTI0OWZjNDJjYWY5ODEyZDdjNDAxYjE0Li43YWIyMWUy
NWMzOGE1Y2RmZmM2NWU4MTFkY2EzMTYzNjBhNDc1MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaApAQCAt
MzMsNiArMzMsMTAgQEAKIAogREVDTEFSRV9DT1JFX01FRElBX1RSQUlUUyhUcmFja1JlYWRlcik7
CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgV29ya1F1ZXVlOworfQorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIEluYmFuZFRleHRUcmFja1By
aXZhdGU7CkBAIC01NSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFRyYWNr
UmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0IFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlKik7CiAgICAgc3RhdGljIFJlZlB0cjxUcmFja1JlYWRl
cj4gY3JlYXRlKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXImLCBjb25zdCBXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlKik7CiAKKyAgICBzdGF0aWMgV1RGOjpXb3JrUXVldWUm
IHN0b3JhZ2VRdWV1ZSgpOworCiAgICAgdWludDY0X3QgdHJhY2tJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhY2tJRDsgfQogICAgIHZvaWQgYWRkU2FtcGxlKFJlZjxXZWJDb3JlOjpNZWRpYVNhbXBs
ZT4mJiwgTVRQbHVnaW5CeXRlU291cmNlUmVmKTsKICAgICB2b2lkIHdhaXRGb3JTYW1wbGUoRnVu
Y3Rpb248Ym9vbChXZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sKT4mJikgY29uc3Q7CkBAIC02Nyw3
ICs3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgQ29yZU1lZGlhV3JhcHBlZDxU
cmFja1JlYWRlcj46OnVud3JhcDsKIAotICAgIFRyYWNrUmVhZGVyKEFsbG9jYXRvciYmLCBjb25z
dCBGb3JtYXRSZWFkZXImLCBjb25zdCBXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlJiwgQ01NZWRp
YVR5cGUpOworICAgIFRyYWNrUmVhZGVyKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXIm
LCBDTU1lZGlhVHlwZSwgdWludDY0X3QpOwogCiAgICAgLy8gQ01CYXNlQ2xhc3MKICAgICBTdHJp
bmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJLaXQ6OlRyYWNr
UmVhZGVyIl9zOyB9CkBAIC04Miw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICBzdHJ1Y3QgU2Ft
cGxlU3RvcmFnZSB7CiAgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKLSAg
ICAgICAgflNhbXBsZVN0b3JhZ2UoKSB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IH0KKyAgICAg
ICAgflNhbXBsZVN0b3JhZ2UoKSB7IEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOyB9CiAgICAgICAg
IFdlYkNvcmU6OlNhbXBsZU1hcCBzYW1wbGVNYXA7CiAgICAgICAgIGJvb2wgaGFzQWxsU2FtcGxl
cyB7IGZhbHNlIH07CiAgICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416229</attachid>
            <date>2020-12-15 00:43:34 -0800</date>
            <delta_ts>2020-12-15 01:00:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219887-20201215004333.patch</filename>
            <type>text/plain</type>
            <size>24539</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwM2U4ZmM2MmE1ZDA3
NmI2MWU3ZjliNDYxMDkzYTA4NTEzYTY1My4uYWRhNGEwNWEwOGNlZWQyNmUzNmUzN2Q0MDk0Y2Ew
MmJiZTlmZTJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTEyLTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBOdW1lcm91cyB3ZWJn
bCB0ZXN0cyB0aW1lIG91dCB3aXRoIFdlYk0gZm9ybWF0IHJlYWRlciBlbmFibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk4ODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5oOgorCisgICAgICAgIEFkZGVkIGEgd2F5IHRvIGdldCB0aGUgdHJhY2sgSUQgYXMgYW4g
b3B0aW9uYWwgdWludDY0X3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
b3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxPbk1haW5U
aHJlYWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
OjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6T25DbHVzdGVyQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CisgICAgICAgIEFkZGVkIGEgd2F5IGZvciBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIGNsaWVudHMg
dG8gY3VzdG9taXplIHRoZSB0aHJlYWQgb24gd2hpY2ggY2FsbGJhY2tzCisgICAgICAgIGFyZSBp
bnZva2VkLgorCiAyMDIwLTEyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5j
b20+CiAKICAgICAgICAgQVg6IGltcGxlbWVudCBwcmVmZXJzLWNvbnRyYXN0OiBtb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDQwNjhmYzllNTRjYTYyM2E0OGNjYmYxZTNiMWZhOTIzMzk5YWQxN2MuLmI1NGY0M2I0
NmMwZTJkZGMzN2FmZjJhZTExNDk2ZTI5NjhjMThhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMjAtMTItMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE51bWVyb3VzIHdlYmdsIHRlc3RzIHRpbWUgb3V0IHdpdGggV2ViTSBmb3JtYXQgcmVh
ZGVyIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTg4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gcmVuZGVyaW5nIGEgdmlkZW8gZnJhbWUgdG8gY2FudmFzLCBTYW1wbGVDdXJzb3Ig
aXMgaW52b2tlZCBvbiB0aGUgbWFpbiB0aHJlYWQgaW4KKyAgICAgICAgb3JkZXIgdG8gZmluZCBh
IHN5bmMgZnJhbWUgdG8gcmVuZGVyLiBUaGlzIHRyaWdnZXJlZCBhbiBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKSBpbiBkZWJ1ZworICAgICAgICBidWlsZHMsIGFuZCBwb3NzaWJseSBhIGRlYWRsb2Nr
IGlmIHRoZSBjdXJzb3IgcG9pbnRlZCB0byBhIHNhbXBsZSB0aGF0IGhhZG4ndCB5ZXQgYmVlbgor
ICAgICAgICBwYXJzZWQgKGJlY2F1c2UgU291cmNlQnVmZmVyUGFyc2VyIGNhbGxzIHRoZSAnZGlk
UHJvdmlkZU1lZGlhRGF0YScgY2FsbGJhY2sgb24gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkKS4K
KworICAgICAgICBSZXNvbHZlIHRoaXMgYnkgaGF2aW5nIFNvdXJjZUJ1ZmZlclBhcnNlciBwcm92
aWRlIHBhcnNlZCBzYW1wbGVzIG9uIGEgYmFja2dyb3VuZCBxdWV1ZS4gVG8KKyAgICAgICAgYXZv
aWQgY3JlYXRpbmcgQXRvbVN0cmluZ3Mgb24gdGhpcyBub24tbWFpbiBxdWV1ZSwgdGVhY2ggVHJh
Y2tSZWFkZXIgdG8gYWNjZXNzIHRoZSB0cmFja0lECisgICAgICAgIGFzIGEgdWludDY0X3QgaW5z
dGVhZC4KKworICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVh
ZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpzdGFydE9uTWFpblRocmVh
ZCk6CisgICAgICAgIChXZWJLaXQ6OnJlYWRlclF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6Rm9y
bWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpGb3JtYXRSZWFk
ZXI6OmRpZFBhcnNlVHJhY2tzKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpkaWRQ
cm92aWRlTWVkaWFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpjb3B5VHJhY2tBcnJheSk6
CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVS
YW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6VHJh
Y2tSZWFkZXI6OlRyYWNrUmVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmFk
ZFNhbXBsZSk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmZpbmlzaFBhcnNpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6ZmluYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaDoKKwogMjAyMC0xMi0xNCAgUGVuZyBM
aXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJvY2Vz
c11bTVNFXSBWUDkgc3RyZWFtIHBsYXliYWNrIGlzIG5vdCBzbW9vdGgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKaW5kZXgg
ZTdjMWFmMzEzODFmMzc1ODI5ODU2YjM4ZjNiODZjMTY3NWUxODNkZi4uY2UxMWZlOTlhYTNhYjcx
ZjA2YzgxMDA2YzUwOGFiYjM2MjZhNzRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKQEAgLTMzLDYgKzMzLDExIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordmlydHVhbCBPcHRpb25hbDx1aW50NjRfdD4gVHJh
Y2tQcml2YXRlQmFzZTo6dHJhY2tVSUQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogc3RhdGljIHVpbnQ2NF90IHNf
dW5pcXVlSWQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IDAwNGFmNGYxMDllY2IwY2EzMzI1NzM3ZDhmMTJiMGYw
ZmY2OTAzNGYuLmY0NGVmY2JlNTEyZjQ2MTc4NWY3MTQwZWYyN2M1OTE1YmE0YzM1ZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNl
LmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQXRvbVN0cmluZyBsYW5n
dWFnZSgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5QXRvbSgpOyB9CiAKICAgICB2aXJ0dWFsIGludCB0
cmFja0luZGV4KCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgT3B0aW9uYWw8dWlu
dDY0X3Q+IHRyYWNrVUlEKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBzdGFydFRp
bWVWYXJpYW5jZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA1ZjIwYmNmOWRmMTAxYWNhMTg1YjIz
YzMxOWZkMjNiZDdlZTJjOWQyLi43N2Q4YTM0NThkYTA1MTk5MTZiMmU1YTg2ZDlkMWQ0N2Y1NjNh
YzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9B
dWRpb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTQ0LDExICs0NCwyMCBA
QCBBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OkF1ZGlvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFj
a0VudHJ5JiYgdHJhY2tFbnRyeSkKIAogQXRvbVN0cmluZyBBdWRpb1RyYWNrUHJpdmF0ZVdlYk06
OmlkKCkgY29uc3QKIHsKLSAgICBpZiAobV90cmFja0lELmlzTnVsbCgpKQotICAgICAgICBtX3Ry
YWNrSUQgPSBtX3RyYWNrLnRyYWNrX3VpZC5pc19wcmVzZW50KCkgPyBBdG9tU3RyaW5nOjpudW1i
ZXIobV90cmFjay50cmFja191aWQudmFsdWUoKSkgOiBlbXB0eUF0b20oKTsKKyAgICBpZiAobV90
cmFja0lELmlzTnVsbCgpKSB7CisgICAgICAgIGF1dG8gdWlkID0gdHJhY2tVSUQoKTsKKyAgICAg
ICAgbV90cmFja0lEID0gdWlkID8gQXRvbVN0cmluZzo6bnVtYmVyKCp1aWQpIDogZW1wdHlBdG9t
KCk7CisgICAgfQogICAgIHJldHVybiBtX3RyYWNrSUQ7CiB9CiAKK09wdGlvbmFsPHVpbnQ2NF90
PiBBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKK3sKKyAgICBpZiAobV90
cmFjay50cmFja191aWQuaXNfcHJlc2VudCgpKQorICAgICAgICByZXR1cm4gbV90cmFjay50cmFj
a191aWQudmFsdWUoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBBdG9tU3RyaW5n
IEF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6bGFiZWwoKSBjb25zdAogewogICAgIGlmIChtX2xhYmVs
LmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCA5YTk3OGRmNzhjM2I1
NmZhNGU3MWI5MDFkZjZhZjdjOTJlMTY5OTEyLi4xMzFhOWZlMGFlZGEyYTFmZjQ3OGYwYzdiOTdi
OTM0NGRjYjY2MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAtNDEsNiArNDEs
NyBAQCBwdWJsaWM6CiAgICAgQXRvbVN0cmluZyBsYWJlbCgpIGNvbnN0IGZpbmFsOwogICAgIEF0
b21TdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBmaW5hbDsKICAgICBpbnQgdHJhY2tJbmRleCgpIGNv
bnN0IGZpbmFsOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB0cmFja1VJRCgpIGNvbnN0IGZpbmFs
OwogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
U291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCA4OWZlMzJmOGVkYmEw
ZTBiYTNiOWNiYzM1ZjFiM2MzYWQ0YTMzNTg2Li5jMDQzYmU1NjkyZjVmZWI2ZTViMGFkZmY0NjYw
ZjFkNTFkZmMyMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApAQCAtNTI5
LDkgKzUyOSwyNCBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwogI2VuZGlmIC8vIEVOQUJMRShW
UDkpIHx8IEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQogfQogCitSZWZQdHI8U291cmNl
QnVmZmVyUGFyc2VyV2ViTT4gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6Y3JlYXRlKGNvbnN0IENv
bnRlbnRUeXBlJiB0eXBlKQoreworICAgIGlmIChpc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUp
ICE9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQpCisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyUGFyc2VyV2ViTSgpKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworc3RhdGljIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OkNhbGxP
bkNsaWVudFRocmVhZENhbGxiYWNrIGNhbGxPbk1haW5UaHJlYWRDYWxsYmFjaygpCit7CisgICAg
cmV0dXJuIFtdKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikgeworICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFdURk1vdmUoZnVuY3Rpb24pKTsKKyAgICB9OworfQorCiBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNKCkKICAgICA6IG1fcmVhZGVyKFdURjo6
bWFrZVVuaXF1ZVJlZjxTdHJlYW1pbmdWZWN0b3JSZWFkZXI+KCkpCiAgICAgLCBtX2luaXRpYWxp
emF0aW9uU2VnbWVudElzSGFuZGxlZFNlbWFwaG9yZShCb3g8QmluYXJ5U2VtYXBob3JlPjo6Y3Jl
YXRlKCkpCisgICAgLCBtX2NhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrKGNhbGxPbk1haW5UaHJl
YWRDYWxsYmFjaygpKQogewogICAgIGlmIChpc1dlYm1QYXJzZXJBdmFpbGFibGUoKSkKICAgICAg
ICAgbV9wYXJzZXIgPSBXVEY6Om1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFdlYm1Q
YXJzZXI+KCk7CkBAIC01ODUsNyArNjAwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
OjphcHBlbmREYXRhKFNlZ21lbnQmJiBzZWdtZW50LCBBcHBlbmRGbGFncyBhcHBlbmRGbGEKICAg
ICB9CiAKICAgICBFUlJPUl9MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgInN0YXR1cy5j
b2RlKCIsIG1fc3RhdHVzLmNvZGUsICIpIik7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb2RlID0gbV9zdGF0dXMuY29kZV0gewor
ICAgIG1fY2FsbE9uQ2xpZW50VGhyZWFkQ2FsbGJhY2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY29kZSA9IG1fc3RhdHVzLmNvZGVdIHsKICAgICAgICAgaWYgKG1fZGlk
RW5jb3VudGVyRXJyb3JEdXJpbmdQYXJzaW5nQ2FsbGJhY2spCiAgICAgICAgICAgICBtX2RpZEVu
Y291bnRlckVycm9yRHVyaW5nUGFyc2luZ0NhbGxiYWNrKGNvZGUpOwogICAgIH0pOwpAQCAtNzY2
LDcgKzc4MSw3IEBAIFN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpPbkNsdXN0ZXJCZWdp
bihjb25zdCBFbGVtZW50TWV0YWRhdGEmIG1ldGFkYXRhLCBjCiAgICAgICAgIHJldHVybiBTdGF0
dXMoU3RhdHVzOjprTm90RW5vdWdoTWVtb3J5KTsKIAogICAgIGlmIChtX2luaXRpYWxpemF0aW9u
U2VnbWVudEVuY291bnRlcmVkICYmIG1fZGlkUGFyc2VJbml0aWFsaXphdGlvbkRhdGFDYWxsYmFj
aykgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGluaXRpYWxpemF0aW9uU2VnbWVudCA9IFdURk1vdmUoKm1faW5pdGlhbGl6
YXRpb25TZWdtZW50KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbV9jYWxsT25DbGllbnRUaHJlYWRD
YWxsYmFjayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpbml0aWFsaXph
dGlvblNlZ21lbnQgPSBXVEZNb3ZlKCptX2luaXRpYWxpemF0aW9uU2VnbWVudCldKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBtX2RpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhQ2FsbGJhY2soV1RG
TW92ZShpbml0aWFsaXphdGlvblNlZ21lbnQpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXSB7CiAgICAgICAgICAgICAgICAgbV9pbml0aWFsaXphdGlvblNlZ21lbnRJc0hh
bmRsZWRTZW1hcGhvcmUtPnNpZ25hbCgpOwogICAgICAgICAgICAgfSk7CkBAIC05NDYsNyArOTYx
LDcgQEAgd2VibTo6U3RhdHVzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uRnJhbWUoY29uc3Qg
RnJhbWVNZXRhZGF0YSYgbWV0YWRhdGEsIFJlYWQKIAogdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjpwcm92aWRlTWVkaWFEYXRhKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxl
QnVmZmVyLCB1aW50NjRfdCB0cmFja0lELCBPcHRpb25hbDxzaXplX3Q+IGJ5dGVSYW5nZU9mZnNl
dCkKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHNhbXBsZUJ1ZmZlciA9IFdURk1vdmUoc2FtcGxlQnVmZmVyKSwgdHJhY2tJRCwg
Ynl0ZVJhbmdlT2Zmc2V0XSAoKSBtdXRhYmxlIHsKKyAgICBtX2NhbGxPbkNsaWVudFRocmVhZENh
bGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNhbXBsZUJ1ZmZl
ciA9IFdURk1vdmUoc2FtcGxlQnVmZmVyKSwgdHJhY2tJRCwgYnl0ZVJhbmdlT2Zmc2V0XSAoKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2RpZFByb3ZpZGVNZWRpYURhdGFDYWxsYmFjaykKICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtMTIxMSw2ICsxMjI2LDEyIEBAIHZvaWQgU291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6c2V0TWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24oZmxvYXQgZHVyYXRp
b24pCiAgICAgbV9taW5pbXVtQXVkaW9TYW1wbGVEdXJhdGlvbiA9IGR1cmF0aW9uOwogfQogCit2
b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldENhbGxPbkNsaWVudFRocmVhZENhbGxiYWNr
KENhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQVNTRVJUKGNh
bGxiYWNrKTsKKyAgICBtX2NhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayk7Cit9CisKIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6c3VwcG9ydGVkVmlkZW9Db2RlY3MoKQogewogICAgIHN0YXRpYyBhdXRvIGNvZGVjcyA9IG1h
a2VOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+KHsgIlZfVlA4IiwgIlZfVlA5IiB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJj
ZUJ1ZmZlclBhcnNlcldlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaAppbmRleCA2NWRlNjU4Y2QzMmZlOWQ3MTg3NThm
NzE1MWQxZDQ3NGQwNDJmMTg2Li5lY2EwM2MyMDRmYTEwMDdlNWMyNTNiNTNhMmZmNGE1MmI1Y2Ix
NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
b3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCkBAIC02MSw2ICs2MSw3IEBAIHB1
YmxpYzoKICAgICBjbGFzcyBTdHJlYW1pbmdWZWN0b3JSZWFkZXI7CiAKICAgICBzdGF0aWMgTWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3Qg
Q29udGVudFR5cGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0+
IGNyZWF0ZShjb25zdCBDb250ZW50VHlwZSYpOwogCiAgICAgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TSgpOwogICAgIH5Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNKCk7CkBAIC03OSw2ICs4MCw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZmx1c2hQZW5kaW5nQXVkaW9CdWZmZXJzKCk7CiAgICAgdm9pZCBz
ZXRNaW5pbXVtQXVkaW9TYW1wbGVEdXJhdGlvbihmbG9hdCk7CisgICAgCisgICAgdXNpbmcgQ2Fs
bE9uQ2xpZW50VGhyZWFkQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYpPjsKKyAgICB2b2lkIHNldENhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrKENh
bGxPbkNsaWVudFRocmVhZENhbGxiYWNrJiYpOwogCiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3Qg
V1RGOjpMb2dnZXImLCBjb25zdCB2b2lkKiBpZGVudGlmaWVyKSBmaW5hbDsKIApAQCAtMjYwLDYg
KzI2NCw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5pbXVtQXVkaW9TYW1wbGVEdXJhdGlv
biB7IDIgfTsKIAogICAgIEJveDxCaW5hcnlTZW1hcGhvcmU+IG1faW5pdGlhbGl6YXRpb25TZWdt
ZW50SXNIYW5kbGVkU2VtYXBob3JlOworICAgIENhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrIG1f
Y2FsbE9uQ2xpZW50VGhyZWFkQ2FsbGJhY2s7CiAKICAgICBSZWZQdHI8Y29uc3QgV1RGOjpMb2dn
ZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1Zp
ZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCmluZGV4IDZhMzRmMmU1ODNmZWNiZGEz
NGY3NTdiYjJiMzE5N2YzZWZjZTgyMzAuLmU4OGI5ZTU1NTVkNGZhMzE4MDNmZDI5ZjY4ZWFjOTVl
NmY3NzMzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcApAQCAtNDQsMTEgKzQ0
LDIwIEBAIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFja1ByaXZhdGVXZWJNKHdlYm06
OlRyYWNrRW50cnkmJiB0cmFja0VudHJ5KQogCiBBdG9tU3RyaW5nIFZpZGVvVHJhY2tQcml2YXRl
V2ViTTo6aWQoKSBjb25zdAogewotICAgIGlmIChtX3RyYWNrSUQuaXNOdWxsKCkpCi0gICAgICAg
IG1fdHJhY2tJRCA9IG1fdHJhY2sudHJhY2tfdWlkLmlzX3ByZXNlbnQoKSA/IEF0b21TdHJpbmc6
Om51bWJlcihtX3RyYWNrLnRyYWNrX3VpZC52YWx1ZSgpKSA6IGVtcHR5QXRvbSgpOworICAgIGlm
IChtX3RyYWNrSUQuaXNOdWxsKCkpIHsKKyAgICAgICAgYXV0byB1aWQgPSB0cmFja1VJRCgpOwor
ICAgICAgICBtX3RyYWNrSUQgPSB1aWQgPyBBdG9tU3RyaW5nOjpudW1iZXIoKnVpZCkgOiBlbXB0
eUF0b20oKTsKKyAgICB9CiAgICAgcmV0dXJuIG1fdHJhY2tJRDsKIH0KIAorT3B0aW9uYWw8dWlu
dDY0X3Q+IFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQoKSBjb25zdAoreworICAgIGlm
IChtX3RyYWNrLnRyYWNrX3VpZC5pc19wcmVzZW50KCkpCisgICAgICAgIHJldHVybiBtX3RyYWNr
LnRyYWNrX3VpZC52YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIEF0b21T
dHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNvbnN0CiB7CiAgICAgaWYgKG1f
bGFiZWwuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDE3NjdiOTFk
OTZlZmVhZjQ5ZjNjNzkwYzcyZDYzYTJmZDgxNTNiODEuLjEyMzFjYmUzNTllMzA3M2ZkZmE2ZmJl
MGU2MmUwNTFmMGIyOTFkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCkBAIC00MSw2
ICs0MSw3IEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhYmVsKCkgY29uc3QgZmluYWw7CiAg
ICAgQXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZpbmFsOwogICAgIGludCB0cmFja0luZGV4
KCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8dWludDY0X3Q+IHRyYWNrVUlEKCkgY29uc3Qg
ZmluYWw7CiAKIHByaXZhdGU6CiAgICAgVmlkZW9UcmFja1ByaXZhdGVXZWJNKHdlYm06OlRyYWNr
RW50cnkmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwCmluZGV4IDY4ZDQwYjkxYTRmYjJhMmFhYTFm
M2MyNzljYzczOWYwOWMyMjZkNWYuLmVmNDlmY2E5NjYyMjVhYzM3YjU4M2U2NDY3ZDhmNWQxOTI0
YWJiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJl
YWRlci9Gb3JtYXRSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db250ZW50VHlwZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGUuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1NvdXJjZUJ1ZmZlclBhcnNlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUu
aD4KICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KQEAgLTcwLDcgKzcwLDExIEBAIEZvcm1hdFJlYWRl
cjo6Rm9ybWF0UmVhZGVyKEFsbG9jYXRvciYmIGFsbG9jYXRvcikKIAogdm9pZCBGb3JtYXRSZWFk
ZXI6OnN0YXJ0T25NYWluVGhyZWFkKE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlKQog
ewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIGlmIChpc01haW5UaHJlYWQoKSkg
eworICAgICAgICBwYXJzZUJ5dGVTb3VyY2UoV1RGTW92ZShieXRlU291cmNlKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGJ5dGVTb3VyY2UgPSByZXRhaW5QdHIoYnl0ZVNvdXJjZSld
KCkgbXV0YWJsZSB7CiAgICAgICAgIHBhcnNlQnl0ZVNvdXJjZShXVEZNb3ZlKGJ5dGVTb3VyY2Up
KTsKICAgICB9KTsKQEAgLTc4LDcgKzgyLDcgQEAgdm9pZCBGb3JtYXRSZWFkZXI6OnN0YXJ0T25N
YWluVGhyZWFkKE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlKQogCiBzdGF0aWMgV29y
a1F1ZXVlJiByZWFkZXJRdWV1ZSgpCiB7Ci0gICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1
ZXVlOjpjcmVhdGUoIldlYktpdCBGb3JtYXRSZWFkZXIgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6
OkNvbmN1cnJlbnQpLmxlYWtSZWYoKTsKKyAgICBzdGF0aWMgYXV0byYgcXVldWUgPSBXb3JrUXVl
dWU6OmNyZWF0ZSgiV2ViS2l0OjpGb3JtYXRSZWFkZXIgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6
OkNvbmN1cnJlbnQpLmxlYWtSZWYoKTsKICAgICByZXR1cm4gcXVldWU7CiB9CiAKQEAgLTg3LDcg
KzkxLDcgQEAgdm9pZCBGb3JtYXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZShSZXRhaW5QdHI8TVRQ
bHVnaW5CeXRlU291cmNlUmVmPiYmIGJ5dGVTb3VyY2UKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENvbnRlbnRUeXBlPiBjb250ZW50VHlw
ZSgidmlkZW8vd2VibSJfcyk7Ci0gICAgYXV0byBwYXJzZXIgPSBTb3VyY2VCdWZmZXJQYXJzZXI6
OmNyZWF0ZShjb250ZW50VHlwZSwgdHJ1ZSk7CisgICAgYXV0byBwYXJzZXIgPSBTb3VyY2VCdWZm
ZXJQYXJzZXJXZWJNOjpjcmVhdGUoY29udGVudFR5cGUpOwogICAgIGlmICghcGFyc2VyKSB7CiAg
ICAgICAgIG1fcGFyc2VUcmFja3NTdGF0dXMgPSBrTVRQbHVnaW5Gb3JtYXRSZWFkZXJFcnJvcl9B
bGxvY2F0aW9uRmFpbHVyZTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTYsMTIgKzEwMCw5IEBAIHZv
aWQgRm9ybWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0ZVNv
dXJjZVJlZj4mJiBieXRlU291cmNlCiAgICAgLy8gU2V0IGEgbWluaW11bSBhdWRpbyBzYW1wbGUg
ZHVyYXRpb24gb2YgMCBzbyB0aGUgcGFyc2VyIGNyZWF0ZXMgaW5kaXZpc2libGUgc2FtcGxlcyB3
aXRoIGJ5dGUgc291cmNlIHJhbmdlcy4KICAgICBwYXJzZXItPnNldE1pbmltdW1BdWRpb1NhbXBs
ZUR1cmF0aW9uKDApOwogCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tz
TG9jayk7Ci0KLSAgICBtX2J5dGVTb3VyY2UgPSBXVEZNb3ZlKGJ5dGVTb3VyY2UpOwotICAgIG1f
cGFyc2VUcmFja3NTdGF0dXMgPSBXVEY6Om51bGxvcHQ7Ci0gICAgbV9kdXJhdGlvbiA9IE1lZGlh
VGltZTo6aW52YWxpZFRpbWUoKTsKLSAgICBtX3RyYWNrUmVhZGVycy5jbGVhcigpOworICAgIHBh
cnNlci0+c2V0Q2FsbE9uQ2xpZW50VGhyZWFkQ2FsbGJhY2soW10oRnVuY3Rpb248dm9pZCgpPiYm
IGZ1bmN0aW9uKSB7CisgICAgICAgIFRyYWNrUmVhZGVyOjpzdG9yYWdlUXVldWUoKS5kaXNwYXRj
aChXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgfSk7CiAKICAgICBwYXJzZXItPnNldERpZFBhcnNl
SW5pdGlhbGl6YXRpb25EYXRhQ2FsbGJhY2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oU291cmNlQnVmZmVyUGFyc2VyOjpJbml0aWFsaXphdGlvblNlZ21lbnQmJiBpbml0
aWFsaXphdGlvblNlZ21lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgewogICAgICAgICBkaWRQYXJzZVRyYWNrcyhXVEZNb3ZlKGluaXRpYWxpemF0aW9u
U2VnbWVudCksIG5vRXJyKTsKQEAgLTExNiw5ICsxMTcsMTUgQEAgdm9pZCBGb3JtYXRSZWFkZXI6
OnBhcnNlQnl0ZVNvdXJjZShSZXRhaW5QdHI8TVRQbHVnaW5CeXRlU291cmNlUmVmPiYmIGJ5dGVT
b3VyY2UKICAgICAgICAgZGlkUHJvdmlkZU1lZGlhRGF0YShXVEZNb3ZlKG1lZGlhU2FtcGxlKSwg
dHJhY2tJRCwgbWVkaWFUeXBlKTsKICAgICB9KTsKIAorICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9wYXJzZVRyYWNrc0xvY2spOworICAgIG1fYnl0ZVNvdXJjZSA9IFdURk1vdmUoYnl0ZVNv
dXJjZSk7CisgICAgbV9wYXJzZVRyYWNrc1N0YXR1cyA9IFdURjo6bnVsbG9wdDsKKyAgICBtX2R1
cmF0aW9uID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworICAgIG1fdHJhY2tSZWFkZXJzLmNs
ZWFyKCk7CisKICAgICByZWFkZXJRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGJ5dGVTb3VyY2UgPSBtX2J5dGVTb3VyY2UsIHBhcnNlciA9IHBh
cnNlci5yZWxlYXNlTm9uTnVsbCgpXSgpIG11dGFibGUgewogICAgICAgICBwYXJzZXItPmFwcGVu
ZERhdGEoV1RGTW92ZShieXRlU291cmNlKSk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFyc2VyID0gV1RGTW92ZShwYXJz
ZXIpXSgpIG11dGFibGUgeworICAgICAgICBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkuZGlz
cGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFyc2VyID0gV1RG
TW92ZShwYXJzZXIpXSgpIG11dGFibGUgewogICAgICAgICAgICAgZmluaXNoUGFyc2luZyhXVEZN
b3ZlKHBhcnNlcikpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEyNiw3ICsxMzMsNyBAQCB2
b2lkIEZvcm1hdFJlYWRlcjo6cGFyc2VCeXRlU291cmNlKFJldGFpblB0cjxNVFBsdWdpbkJ5dGVT
b3VyY2VSZWY+JiYgYnl0ZVNvdXJjZQogCiB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUGFyc2VUcmFj
a3MoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50JiYgc2Vn
bWVudCwgdWludDY0X3QgZXJyb3JDb2RlKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fcGFyc2VUcmFja3NMb2NrKTsKICAgICBBU1NFUlQoIW1fcGFyc2VUcmFja3NTdGF0dXMp
OwpAQCAtMTYyLDcgKzE2OSw3IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lCiAKIHZvaWQgRm9y
bWF0UmVhZGVyOjpkaWRQcm92aWRlTWVkaWFEYXRhKFJlZjxNZWRpYVNhbXBsZT4mJiBtZWRpYVNh
bXBsZSwgdWludDY0X3QgdHJhY2tJRCwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tzTG9jayk7CiAgICAgYXV0byB0cmFja0luZGV4
ID0gbV90cmFja1JlYWRlcnMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiB0cmFjaykgewpAQCAtMTc1
LDcgKzE4Miw3IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpkaWRQcm92aWRlTWVkaWFEYXRhKFJlZjxN
ZWRpYVNhbXBsZT4mJiBtZWRpYVNhbXBsZSwgdWludDY0X3QKIAogdm9pZCBGb3JtYXRSZWFkZXI6
OmZpbmlzaFBhcnNpbmcoUmVmPFNvdXJjZUJ1ZmZlclBhcnNlcj4mJiBwYXJzZXIpCiB7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAog
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2spOwogICAgIEFTU0VS
VChtX3BhcnNlVHJhY2tzU3RhdHVzLmhhc1ZhbHVlKCkpOwpAQCAtMjA4LDggKzIxNSw2IEBAIE9T
U3RhdHVzIEZvcm1hdFJlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCB2CiAKIE9TU3RhdHVzIEZvcm1hdFJlYWRlcjo6Y29weVRyYWNr
QXJyYXkoQ0ZBcnJheVJlZiogdHJhY2tBcnJheUNvcHkpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7Ci0KICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcGFyc2VUcmFja3NMb2Nr
KTsKICAgICBtX3BhcnNlVHJhY2tzQ29uZGl0aW9uLndhaXQobV9wYXJzZVRyYWNrc0xvY2ssIFsm
XSB7CiAgICAgICAgIHJldHVybiBtX3BhcnNlVHJhY2tzU3RhdHVzLmhhc1ZhbHVlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tS
ZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1Ry
YWNrUmVhZGVyLmNwcAppbmRleCBlZTE2OTJhZWY1ZDg0ODFlMDZjYjQyZTFmY2QzN2YxMTY0YTk2
ODdiLi4yOTYxNDJjNWZlM2VmNjgzMTAzOTRkMGM5NDgyYzM1MmMzMDY3OWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFj
a1JlYWRlci5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgTWVkaWFTYW1wbGVCeXRlUmFuZ2U6Ok1lZGlh
U2FtcGxlQnl0ZVJhbmdlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXIKICAg
ICAsIG1fYnl0ZVJhbmdlKHNhbXBsZS5ieXRlUmFuZ2UoKSkKICAgICAsIG1fYnl0ZVNvdXJjZShi
eXRlU291cmNlKQogeworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIGF1dG8gcGxh
dGZvcm1TYW1wbGUgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKTsKICAgICBzd2l0Y2ggKHBsYXRm
b3JtU2FtcGxlLnR5cGUpIHsKICAgICBjYXNlIFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZl
clR5cGU6CkBAIC0xMzksMzYgKzE0MCw0MSBAQCBSZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVh
ZGVyOjpjcmVhdGUoQWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZQogewog
ICAgIGlmICghdHJhY2spCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3Jt
YXRSZWFkZXIsICp0cmFjaywga0NNTWVkaWFUeXBlX1ZpZGVvKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyAoYWxsb2NhdG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1h
dFJlYWRlciwga0NNTWVkaWFUeXBlX1ZpZGVvLCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKIH0KIAog
UmVmUHRyPFRyYWNrUmVhZGVyPiBUcmFja1JlYWRlcjo6Y3JlYXRlKEFsbG9jYXRvciYmIGFsbG9j
YXRvciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIGNvbnN0IEF1ZGlvVHJhY2tQ
cml2YXRlKiB0cmFjaykKIHsKICAgICBpZiAoIXRyYWNrKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1v
dmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCAqdHJhY2ssIGtDTU1lZGlhVHlwZV9BdWRpbykp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92
ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9BdWRpbywgKnRyYWNrLT50
cmFja1VJRCgpKSk7CiB9CiAKIFJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0
ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVy
LCBjb25zdCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFjaykKIHsKICAgICBpZiAoIXRyYWNr
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxv
Y2F0b3IpIFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCAqdHJh
Y2ssIGtDTU1lZGlhVHlwZV9UZXh0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2Nh
dG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwga0NNTWVk
aWFUeXBlX1RleHQsICp0cmFjay0+dHJhY2tVSUQoKSkpOworfQorCitXb3JrUXVldWUmIFRyYWNr
UmVhZGVyOjpzdG9yYWdlUXVldWUoKQoreworICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtR
dWV1ZTo6Y3JlYXRlKCJXZWJLaXQ6OlRyYWNrUmVhZGVyIFN0b3JhZ2UgUXVldWUiLCBXb3JrUXVl
dWU6OlR5cGU6OlNlcmlhbCkubGVha1JlZigpOworICAgIHJldHVybiBxdWV1ZTsKIH0KIAotVHJh
Y2tSZWFkZXI6OlRyYWNrUmVhZGVyKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0
UmVhZGVyJiBmb3JtYXRSZWFkZXIsIGNvbnN0IFRyYWNrUHJpdmF0ZUJhc2UmIHRyYWNrLCBDTU1l
ZGlhVHlwZSBtZWRpYVR5cGUpCitUcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYg
YWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lEKQogICAgIDogQ29yZU1lZGlhV3JhcHBlZChXVEZN
b3ZlKGFsbG9jYXRvcikpCi0gICAgLCBtX3RyYWNrSUQodHJhY2suaWQoKS5zdHJpbmcoKS50b1VJ
bnQ2NCgpKQorICAgICwgbV90cmFja0lEKCp0cmFja0lEKQogICAgICwgbV9tZWRpYVR5cGUobWVk
aWFUeXBlKQogICAgICwgbV9kdXJhdGlvbihmb3JtYXRSZWFkZXIuZHVyYXRpb24oKSkKIHsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIEFTU0VSVChtX3RyYWNrSUQgPiAwKTsKKyAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIH0KIAogdm9pZCBUcmFja1JlYWRlcjo6YWRkU2Ft
cGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRl
U291cmNlKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZVN0b3JhZ2VM
b2NrKTsKICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAgICAgICAgbV9zYW1wbGVTdG9yYWdl
ID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwpAQCAtMTg3LDcgKzE5Myw2IEBAIHZvaWQg
VHJhY2tSZWFkZXI6OmFkZFNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBNVFBsdWdp
bkJ5dGVTb3VyY2VSZWYgYnl0CiAKIHZvaWQgVHJhY2tSZWFkZXI6OndhaXRGb3JTYW1wbGUoRnVu
Y3Rpb248Ym9vbChTYW1wbGVNYXAmLCBib29sKT4mJiBwcmVkaWNhdGUpIGNvbnN0CiB7Ci0gICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Nh
bXBsZVN0b3JhZ2VMb2NrKTsKICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAgICAgICAgbV9z
YW1wbGVTdG9yYWdlID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwpAQCAtMTk4LDcgKzIw
Myw3IEBAIHZvaWQgVHJhY2tSZWFkZXI6OndhaXRGb3JTYW1wbGUoRnVuY3Rpb248Ym9vbChTYW1w
bGVNYXAmLCBib29sKT4mJiBwcmVkaWNhdGUpIGNvCiAKIHZvaWQgVHJhY2tSZWFkZXI6OmZpbmlz
aFBhcnNpbmcoKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZVN0b3Jh
Z2VMb2NrKTsKICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAgICAgICAgbV9zYW1wbGVTdG9y
YWdlID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwpAQCAtMjQzLDcgKzI0OCw3IEBAIE9T
U3RhdHVzIFRyYWNrUmVhZGVyOjpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIHZvCiB2b2lkIFRyYWNrUmVhZGVyOjpmaW5hbGl6ZSgpCiB7CiAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZVN0b3JhZ2VMb2NrKTsKLSAgICBjYWxs
T25NYWluVGhyZWFkKFtzYW1wbGVTdG9yYWdlID0gc3RkOjpleGNoYW5nZShtX3NhbXBsZVN0b3Jh
Z2UsIG51bGxwdHIpXSB7IH0pOworICAgIHN0b3JhZ2VRdWV1ZSgpLmRpc3BhdGNoKFtzYW1wbGVT
dG9yYWdlID0gc3RkOjpleGNoYW5nZShtX3NhbXBsZVN0b3JhZ2UsIG51bGxwdHIpXSB7IH0pOwog
ICAgIENvcmVNZWRpYVdyYXBwZWQ8VHJhY2tSZWFkZXI+OjpmaW5hbGl6ZSgpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tS
ZWFkZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFj
a1JlYWRlci5oCmluZGV4IDc0NWUxNjdjNWQzZDZkNzRhMjQ5ZmM0MmNhZjk4MTJkN2M0MDFiMTQu
LjdhYjIxZTI1YzM4YTVjZGZmYzY1ZTgxMWRjYTMxNjM2MGE0NzUxZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRl
ci5oCkBAIC0zMyw2ICszMywxMCBAQAogCiBERUNMQVJFX0NPUkVfTUVESUFfVFJBSVRTKFRyYWNr
UmVhZGVyKTsKIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBXb3JrUXVldWU7Cit9CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZTsKQEAgLTU1LDYgKzU5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQ
dHI8VHJhY2tSZWFkZXI+IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwg
Y29uc3QgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUqKTsKICAgICBzdGF0aWMgUmVmUHRyPFRy
YWNrUmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUqKTsKIAorICAgIHN0YXRpYyBXVEY6Oldv
cmtRdWV1ZSYgc3RvcmFnZVF1ZXVlKCk7CisKICAgICB1aW50NjRfdCB0cmFja0lEKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFja0lEOyB9CiAgICAgdm9pZCBhZGRTYW1wbGUoUmVmPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlPiYmLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYpOwogICAgIHZvaWQgd2FpdEZvclNh
bXBsZShGdW5jdGlvbjxib29sKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wpPiYmKSBjb25zdDsK
QEAgLTY3LDcgKzczLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBDb3JlTWVkaWFX
cmFwcGVkPFRyYWNrUmVhZGVyPjo6dW53cmFwOwogCi0gICAgVHJhY2tSZWFkZXIoQWxsb2NhdG9y
JiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0IFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2Um
LCBDTU1lZGlhVHlwZSk7CisgICAgVHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1h
dFJlYWRlciYsIENNTWVkaWFUeXBlLCB1aW50NjRfdCk7CiAKICAgICAvLyBDTUJhc2VDbGFzcwog
ICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYktp
dDo6VHJhY2tSZWFkZXIiX3M7IH0KQEAgLTgyLDcgKzg4LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
cnVjdCBTYW1wbGVTdG9yYWdlIHsKICAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NB
VEVEOwotICAgICAgICB+U2FtcGxlU3RvcmFnZSgpIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsg
fQorICAgICAgICB+U2FtcGxlU3RvcmFnZSgpIHsgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7IH0K
ICAgICAgICAgV2ViQ29yZTo6U2FtcGxlTWFwIHNhbXBsZU1hcDsKICAgICAgICAgYm9vbCBoYXNB
bGxTYW1wbGVzIHsgZmFsc2UgfTsKICAgICB9Owo=
</data>
<flag name="commit-queue"
          id="433694"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416230</attachid>
            <date>2020-12-15 00:47:46 -0800</date>
            <delta_ts>2020-12-15 07:28:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219887-20201215004746.patch</filename>
            <type>text/plain</type>
            <size>24531</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwM2U4ZmM2MmE1ZDA3
NmI2MWU3ZjliNDYxMDkzYTA4NTEzYTY1My4uYWRhNGEwNWEwOGNlZWQyNmUzNmUzN2Q0MDk0Y2Ew
MmJiZTlmZTJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTEyLTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBOdW1lcm91cyB3ZWJn
bCB0ZXN0cyB0aW1lIG91dCB3aXRoIFdlYk0gZm9ybWF0IHJlYWRlciBlbmFibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk4ODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5oOgorCisgICAgICAgIEFkZGVkIGEgd2F5IHRvIGdldCB0aGUgdHJhY2sgSUQgYXMgYW4g
b3B0aW9uYWwgdWludDY0X3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
b3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxPbk1haW5U
aHJlYWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
OjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6T25DbHVzdGVyQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CisgICAgICAgIEFkZGVkIGEgd2F5IGZvciBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIGNsaWVudHMg
dG8gY3VzdG9taXplIHRoZSB0aHJlYWQgb24gd2hpY2ggY2FsbGJhY2tzCisgICAgICAgIGFyZSBp
bnZva2VkLgorCiAyMDIwLTEyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5j
b20+CiAKICAgICAgICAgQVg6IGltcGxlbWVudCBwcmVmZXJzLWNvbnRyYXN0OiBtb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDQwNjhmYzllNTRjYTYyM2E0OGNjYmYxZTNiMWZhOTIzMzk5YWQxN2MuLmI1NGY0M2I0
NmMwZTJkZGMzN2FmZjJhZTExNDk2ZTI5NjhjMThhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMjAtMTItMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE51bWVyb3VzIHdlYmdsIHRlc3RzIHRpbWUgb3V0IHdpdGggV2ViTSBmb3JtYXQgcmVh
ZGVyIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTg4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gcmVuZGVyaW5nIGEgdmlkZW8gZnJhbWUgdG8gY2FudmFzLCBTYW1wbGVDdXJzb3Ig
aXMgaW52b2tlZCBvbiB0aGUgbWFpbiB0aHJlYWQgaW4KKyAgICAgICAgb3JkZXIgdG8gZmluZCBh
IHN5bmMgZnJhbWUgdG8gcmVuZGVyLiBUaGlzIHRyaWdnZXJlZCBhbiBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKSBpbiBkZWJ1ZworICAgICAgICBidWlsZHMsIGFuZCBwb3NzaWJseSBhIGRlYWRsb2Nr
IGlmIHRoZSBjdXJzb3IgcG9pbnRlZCB0byBhIHNhbXBsZSB0aGF0IGhhZG4ndCB5ZXQgYmVlbgor
ICAgICAgICBwYXJzZWQgKGJlY2F1c2UgU291cmNlQnVmZmVyUGFyc2VyIGNhbGxzIHRoZSAnZGlk
UHJvdmlkZU1lZGlhRGF0YScgY2FsbGJhY2sgb24gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkKS4K
KworICAgICAgICBSZXNvbHZlIHRoaXMgYnkgaGF2aW5nIFNvdXJjZUJ1ZmZlclBhcnNlciBwcm92
aWRlIHBhcnNlZCBzYW1wbGVzIG9uIGEgYmFja2dyb3VuZCBxdWV1ZS4gVG8KKyAgICAgICAgYXZv
aWQgY3JlYXRpbmcgQXRvbVN0cmluZ3Mgb24gdGhpcyBub24tbWFpbiBxdWV1ZSwgdGVhY2ggVHJh
Y2tSZWFkZXIgdG8gYWNjZXNzIHRoZSB0cmFja0lECisgICAgICAgIGFzIGEgdWludDY0X3QgaW5z
dGVhZC4KKworICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVh
ZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpzdGFydE9uTWFpblRocmVh
ZCk6CisgICAgICAgIChXZWJLaXQ6OnJlYWRlclF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6Rm9y
bWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpGb3JtYXRSZWFk
ZXI6OmRpZFBhcnNlVHJhY2tzKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpkaWRQ
cm92aWRlTWVkaWFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpjb3B5VHJhY2tBcnJheSk6
CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVS
YW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6VHJh
Y2tSZWFkZXI6OlRyYWNrUmVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmFk
ZFNhbXBsZSk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmZpbmlzaFBhcnNpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6ZmluYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaDoKKwogMjAyMC0xMi0xNCAgUGVuZyBM
aXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJvY2Vz
c11bTVNFXSBWUDkgc3RyZWFtIHBsYXliYWNrIGlzIG5vdCBzbW9vdGgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKaW5kZXgg
ZTdjMWFmMzEzODFmMzc1ODI5ODU2YjM4ZjNiODZjMTY3NWUxODNkZi4uNGJkMjJmZTQzMjc4ZWI1
MGRiNGY2OWI0ZWJkYzBmMWVjODA5YTVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKQEAgLTMzLDYgKzMzLDExIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorT3B0aW9uYWw8dWludDY0X3Q+IFRyYWNrUHJpdmF0
ZUJhc2U6OnRyYWNrVUlEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQor
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIHN0YXRpYyB1aW50NjRfdCBzX3VuaXF1ZUlk
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJp
dmF0ZUJhc2UuaAppbmRleCAwMDRhZjRmMTA5ZWNiMGNhMzMyNTczN2Q4ZjEyYjBmMGZmNjkwMzRm
Li5mNDRlZmNiZTUxMmY0NjE3ODVmNzE0MGVmMjdjNTkxNWJhNGMzNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCkBAIC02
Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbGFuZ3VhZ2UoKSBj
b25zdCB7IHJldHVybiBlbXB0eUF0b20oKTsgfQogCiAgICAgdmlydHVhbCBpbnQgdHJhY2tJbmRl
eCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90PiB0
cmFja1VJRCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBNZWRpYVRpbWUgc3RhcnRUaW1lVmFyaWFu
Y2UoKSBjb25zdCB7IHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVkaW9UcmFja1ByaXZh
dGVXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlv
VHJhY2tQcml2YXRlV2ViTS5jcHAKaW5kZXggNWYyMGJjZjlkZjEwMWFjYTE4NWIyM2MzMTlmZDIz
YmQ3ZWUyYzlkMi4uNzdkOGEzNDU4ZGEwNTE5OTE2YjJlNWE4NmQ5ZDFkNDdmNTYzYWMxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVkaW9UcmFj
a1ByaXZhdGVXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCkBAIC00NCwxMSArNDQsMjAgQEAgQXVkaW9U
cmFja1ByaXZhdGVXZWJNOjpBdWRpb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYm
IHRyYWNrRW50cnkpCiAKIEF0b21TdHJpbmcgQXVkaW9UcmFja1ByaXZhdGVXZWJNOjppZCgpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fdHJhY2tJRC5pc051bGwoKSkKLSAgICAgICAgbV90cmFja0lEID0g
bV90cmFjay50cmFja191aWQuaXNfcHJlc2VudCgpID8gQXRvbVN0cmluZzo6bnVtYmVyKG1fdHJh
Y2sudHJhY2tfdWlkLnZhbHVlKCkpIDogZW1wdHlBdG9tKCk7CisgICAgaWYgKG1fdHJhY2tJRC5p
c051bGwoKSkgeworICAgICAgICBhdXRvIHVpZCA9IHRyYWNrVUlEKCk7CisgICAgICAgIG1fdHJh
Y2tJRCA9IHVpZCA/IEF0b21TdHJpbmc6Om51bWJlcigqdWlkKSA6IGVtcHR5QXRvbSgpOworICAg
IH0KICAgICByZXR1cm4gbV90cmFja0lEOwogfQogCitPcHRpb25hbDx1aW50NjRfdD4gQXVkaW9U
cmFja1ByaXZhdGVXZWJNOjp0cmFja1VJRCgpIGNvbnN0Cit7CisgICAgaWYgKG1fdHJhY2sudHJh
Y2tfdWlkLmlzX3ByZXNlbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fdHJhY2sudHJhY2tfdWlkLnZh
bHVlKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwogQXRvbVN0cmluZyBBdWRpb1Ry
YWNrUHJpdmF0ZVdlYk06OmxhYmVsKCkgY29uc3QKIHsKICAgICBpZiAobV9sYWJlbC5pc051bGwo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1
ZGlvVHJhY2tQcml2YXRlV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmgKaW5kZXggOWE5NzhkZjc4YzNiNTZmYTRlNzFi
OTAxZGY2YWY3YzkyZTE2OTkxMi4uMTMxYTlmZTBhZWRhMmExZmY0NzhmMGM3Yjk3YjkzNDRkY2I2
NjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
QXVkaW9UcmFja1ByaXZhdGVXZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVi
bGljOgogICAgIEF0b21TdHJpbmcgbGFiZWwoKSBjb25zdCBmaW5hbDsKICAgICBBdG9tU3RyaW5n
IGxhbmd1YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5h
bDsKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKIAogcHJp
dmF0ZToKICAgICBBdWRpb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggODlmZTMyZjhlZGJhMGUwYmEzYjlj
YmMzNWYxYjNjM2FkNGEzMzU4Ni4uYzA0M2JlNTY5MmY1ZmViNmU1YjBhZGZmNDY2MGYxZDUxZGZj
MjMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
U291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTUyOSw5ICs1Mjks
MjQgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldl
Yk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUoVlA5KSB8fCBF
TkFCTEUoVk9SQklTKSB8fCBFTkFCTEUoT1BVUykKIH0KIAorUmVmUHRyPFNvdXJjZUJ1ZmZlclBh
cnNlcldlYk0+IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmNyZWF0ZShjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSkKK3sKKyAgICBpZiAoaXNDb250ZW50VHlwZVN1cHBvcnRlZCh0eXBlKSAhPSBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKQorICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0oKSk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK3N0YXRpYyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpDYWxsT25DbGllbnRU
aHJlYWRDYWxsYmFjayBjYWxsT25NYWluVGhyZWFkQ2FsbGJhY2soKQoreworICAgIHJldHVybiBb
XShGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgfTsKK30KKwogU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTSgpCiAgICAgOiBtX3JlYWRlcihXVEY6Om1ha2VVbmlx
dWVSZWY8U3RyZWFtaW5nVmVjdG9yUmVhZGVyPigpKQogICAgICwgbV9pbml0aWFsaXphdGlvblNl
Z21lbnRJc0hhbmRsZWRTZW1hcGhvcmUoQm94PEJpbmFyeVNlbWFwaG9yZT46OmNyZWF0ZSgpKQor
ICAgICwgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhjYWxsT25NYWluVGhyZWFkQ2FsbGJh
Y2soKSkKIHsKICAgICBpZiAoaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIG1fcGFy
c2VyID0gV1RGOjptYWtlVW5pcXVlV2l0aG91dEZhc3RNYWxsb2NDaGVjazxXZWJtUGFyc2VyPigp
OwpAQCAtNTg1LDcgKzYwMCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6YXBwZW5k
RGF0YShTZWdtZW50JiYgc2VnbWVudCwgQXBwZW5kRmxhZ3MgYXBwZW5kRmxhCiAgICAgfQogCiAg
ICAgRVJST1JfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsICJzdGF0dXMuY29kZSgiLCBt
X3N0YXR1cy5jb2RlLCAiKSIpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29kZSA9IG1fc3RhdHVzLmNvZGVdIHsKKyAgICBtX2Nh
bGxPbkNsaWVudFRocmVhZENhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvZGUgPSBtX3N0YXR1cy5jb2RlXSB7CiAgICAgICAgIGlmIChtX2RpZEVuY291bnRl
ckVycm9yRHVyaW5nUGFyc2luZ0NhbGxiYWNrKQogICAgICAgICAgICAgbV9kaWRFbmNvdW50ZXJF
cnJvckR1cmluZ1BhcnNpbmdDYWxsYmFjayhjb2RlKTsKICAgICB9KTsKQEAgLTc2Niw3ICs3ODEs
NyBAQCBTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25DbHVzdGVyQmVnaW4oY29uc3Qg
RWxlbWVudE1ldGFkYXRhJiBtZXRhZGF0YSwgYwogICAgICAgICByZXR1cm4gU3RhdHVzKFN0YXR1
czo6a05vdEVub3VnaE1lbW9yeSk7CiAKICAgICBpZiAobV9pbml0aWFsaXphdGlvblNlZ21lbnRF
bmNvdW50ZXJlZCAmJiBtX2RpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhQ2FsbGJhY2spIHsKLSAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBpbml0aWFsaXphdGlvblNlZ21lbnQgPSBXVEZNb3ZlKCptX2luaXRpYWxpemF0aW9uU2Vn
bWVudCldKCkgbXV0YWJsZSB7CisgICAgICAgIG1fY2FsbE9uQ2xpZW50VGhyZWFkQ2FsbGJhY2so
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaW5pdGlhbGl6YXRpb25TZWdt
ZW50ID0gV1RGTW92ZSgqbV9pbml0aWFsaXphdGlvblNlZ21lbnQpXSgpIG11dGFibGUgewogICAg
ICAgICAgICAgbV9kaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0YUNhbGxiYWNrKFdURk1vdmUoaW5p
dGlhbGl6YXRpb25TZWdtZW50KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0gewogICAgICAgICAgICAgICAgIG1faW5pdGlhbGl6YXRpb25TZWdtZW50SXNIYW5kbGVkU2Vt
YXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgICAgIH0pOwpAQCAtOTQ2LDcgKzk2MSw3IEBAIHdl
Ym06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpPbkZyYW1lKGNvbnN0IEZyYW1lTWV0
YWRhdGEmIG1ldGFkYXRhLCBSZWFkCiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6cHJv
dmlkZU1lZGlhRGF0YShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlciwg
dWludDY0X3QgdHJhY2tJRCwgT3B0aW9uYWw8c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQpCiB7Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBzYW1wbGVCdWZmZXIgPSBXVEZNb3ZlKHNhbXBsZUJ1ZmZlciksIHRyYWNrSUQsIGJ5dGVSYW5n
ZU9mZnNldF0gKCkgbXV0YWJsZSB7CisgICAgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzYW1wbGVCdWZmZXIgPSBXVEZN
b3ZlKHNhbXBsZUJ1ZmZlciksIHRyYWNrSUQsIGJ5dGVSYW5nZU9mZnNldF0gKCkgbXV0YWJsZSB7
CiAgICAgICAgIGlmICghbV9kaWRQcm92aWRlTWVkaWFEYXRhQ2FsbGJhY2spCiAgICAgICAgICAg
ICByZXR1cm47CiAKQEAgLTEyMTEsNiArMTIyNiwxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OnNldE1pbmltdW1BdWRpb1NhbXBsZUR1cmF0aW9uKGZsb2F0IGR1cmF0aW9uKQogICAg
IG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24gPSBkdXJhdGlvbjsKIH0KIAordm9pZCBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhDYWxsT25D
bGllbnRUaHJlYWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVChjYWxsYmFjayk7
CisgICAgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwor
fQorCiBjb25zdCBIYXNoU2V0PFN0cmluZz4mIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnN1cHBv
cnRlZFZpZGVvQ29kZWNzKCkKIHsKICAgICBzdGF0aWMgYXV0byBjb2RlY3MgPSBtYWtlTmV2ZXJE
ZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+Pih7ICJWX1ZQOCIsICJWX1ZQOSIgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNLmgKaW5kZXggNjVkZTY1OGNkMzJmZTlkNzE4NzU4ZjcxNTFkMWQ0
NzRkMDQyZjE4Ni4uZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJiNWNiMTc5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAg
ICAgY2xhc3MgU3RyZWFtaW5nVmVjdG9yUmVhZGVyOwogCiAgICAgc3RhdGljIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZSBpc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRU
eXBlJik7CisgICAgc3RhdGljIFJlZlB0cjxTb3VyY2VCdWZmZXJQYXJzZXJXZWJNPiBjcmVhdGUo
Y29uc3QgQ29udGVudFR5cGUmKTsKIAogICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0oKTsKICAg
ICB+U291cmNlQnVmZmVyUGFyc2VyV2ViTSgpOwpAQCAtNzksNiArODAsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGZsdXNoUGVuZGluZ0F1ZGlvQnVmZmVycygpOwogICAgIHZvaWQgc2V0TWluaW11
bUF1ZGlvU2FtcGxlRHVyYXRpb24oZmxvYXQpOworICAgIAorICAgIHVzaW5nIENhbGxPbkNsaWVu
dFRocmVhZENhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmKT47CisgICAgdm9pZCBzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhDYWxsT25DbGll
bnRUaHJlYWRDYWxsYmFjayYmKTsKIAogICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IFdURjo6TG9n
Z2VyJiwgY29uc3Qgdm9pZCogaWRlbnRpZmllcikgZmluYWw7CiAKQEAgLTI2MCw2ICsyNjQsNyBA
QCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24geyAyIH07
CiAKICAgICBCb3g8QmluYXJ5U2VtYXBob3JlPiBtX2luaXRpYWxpemF0aW9uU2VnbWVudElzSGFu
ZGxlZFNlbWFwaG9yZTsKKyAgICBDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayBtX2NhbGxPbkNs
aWVudFRocmVhZENhbGxiYWNrOwogCiAgICAgUmVmUHRyPGNvbnN0IFdURjo6TG9nZ2VyPiBtX2xv
Z2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXIgeyBudWxscHRyIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNr
UHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA2YTM0ZjJlNTgzZmVjYmRhMzRmNzU3YmIy
YjMxOTdmM2VmY2U4MjMwLi5lODhiOWU1NTU1ZDRmYTMxODAzZmQyOWY2OGVhYzk1ZTZmNzczMzU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRl
b1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTQ0LDExICs0NCwyMCBAQCBW
aWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0Vu
dHJ5JiYgdHJhY2tFbnRyeSkKIAogQXRvbVN0cmluZyBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06Omlk
KCkgY29uc3QKIHsKLSAgICBpZiAobV90cmFja0lELmlzTnVsbCgpKQotICAgICAgICBtX3RyYWNr
SUQgPSBtX3RyYWNrLnRyYWNrX3VpZC5pc19wcmVzZW50KCkgPyBBdG9tU3RyaW5nOjpudW1iZXIo
bV90cmFjay50cmFja191aWQudmFsdWUoKSkgOiBlbXB0eUF0b20oKTsKKyAgICBpZiAobV90cmFj
a0lELmlzTnVsbCgpKSB7CisgICAgICAgIGF1dG8gdWlkID0gdHJhY2tVSUQoKTsKKyAgICAgICAg
bV90cmFja0lEID0gdWlkID8gQXRvbVN0cmluZzo6bnVtYmVyKCp1aWQpIDogZW1wdHlBdG9tKCk7
CisgICAgfQogICAgIHJldHVybiBtX3RyYWNrSUQ7CiB9CiAKK09wdGlvbmFsPHVpbnQ2NF90PiBW
aWRlb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKK3sKKyAgICBpZiAobV90cmFj
ay50cmFja191aWQuaXNfcHJlc2VudCgpKQorICAgICAgICByZXR1cm4gbV90cmFjay50cmFja191
aWQudmFsdWUoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBBdG9tU3RyaW5nIFZp
ZGVvVHJhY2tQcml2YXRlV2ViTTo6bGFiZWwoKSBjb25zdAogewogICAgIGlmIChtX2xhYmVsLmlz
TnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCAxNzY3YjkxZDk2ZWZlYWY0
OWYzYzc5MGM3MmQ2M2EyZmQ4MTUzYjgxLi4xMjMxY2JlMzU5ZTMwNzNmZGZhNmZiZTBlNjJlMDUx
ZjBiMjkxZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAtNDEsNiArNDEsNyBA
QCBwdWJsaWM6CiAgICAgQXRvbVN0cmluZyBsYWJlbCgpIGNvbnN0IGZpbmFsOwogICAgIEF0b21T
dHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBmaW5hbDsKICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0
IGZpbmFsOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB0cmFja1VJRCgpIGNvbnN0IGZpbmFsOwog
CiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L0Zvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvRm9ybWF0UmVhZGVyLmNwcAppbmRleCA2OGQ0MGI5MWE0ZmIyYTJhYWExZjNjMjc5Y2M3
MzlmMDljMjI2ZDVmLi5lZjQ5ZmNhOTY2MjI1YWMzN2I1ODNlNjQ2N2Q4ZjVkMTkyNGFiYjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvRm9y
bWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvRm9ybWF0UmVhZGVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvQ29udGVudFR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRUcmFja1ByaXZh
dGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9Tb3VyY2VCdWZmZXJQYXJzZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NvdXJjZUJ1ZmZlclBh
cnNlcldlYk0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CiAjaW5j
bHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KICNpbmNsdWRl
IDx3dGYvV29ya1F1ZXVlLmg+CkBAIC03MCw3ICs3MCwxMSBAQCBGb3JtYXRSZWFkZXI6OkZvcm1h
dFJlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IpCiAKIHZvaWQgRm9ybWF0UmVhZGVyOjpzdGFy
dE9uTWFpblRocmVhZChNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAg
ICAgcGFyc2VCeXRlU291cmNlKFdURk1vdmUoYnl0ZVNvdXJjZSkpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBieXRlU291cmNlID0gcmV0YWluUHRyKGJ5dGVTb3VyY2UpXSgpIG11dGFi
bGUgewogICAgICAgICBwYXJzZUJ5dGVTb3VyY2UoV1RGTW92ZShieXRlU291cmNlKSk7CiAgICAg
fSk7CkBAIC03OCw3ICs4Miw3IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpzdGFydE9uTWFpblRocmVh
ZChNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkKIAogc3RhdGljIFdvcmtRdWV1ZSYg
cmVhZGVyUXVldWUoKQogewotICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJXZWJLaXQgRm9ybWF0UmVhZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50KS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVh
dGUoIldlYktpdDo6Rm9ybWF0UmVhZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50KS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuIHF1ZXVlOwogfQogCkBAIC04Nyw3ICs5MSw3IEBA
IHZvaWQgRm9ybWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0
ZVNvdXJjZVJlZj4mJiBieXRlU291cmNlCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb250ZW50VHlwZT4gY29udGVudFR5cGUoInZpZGVv
L3dlYm0iX3MpOwotICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2VyOjpjcmVhdGUo
Y29udGVudFR5cGUsIHRydWUpOworICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6Y3JlYXRlKGNvbnRlbnRUeXBlKTsKICAgICBpZiAoIXBhcnNlcikgewogICAgICAgICBt
X3BhcnNlVHJhY2tzU3RhdHVzID0ga01UUGx1Z2luRm9ybWF0UmVhZGVyRXJyb3JfQWxsb2NhdGlv
bkZhaWx1cmU7CiAgICAgICAgIHJldHVybjsKQEAgLTk2LDEyICsxMDAsOSBAQCB2b2lkIEZvcm1h
dFJlYWRlcjo6cGFyc2VCeXRlU291cmNlKFJldGFpblB0cjxNVFBsdWdpbkJ5dGVTb3VyY2VSZWY+
JiYgYnl0ZVNvdXJjZQogICAgIC8vIFNldCBhIG1pbmltdW0gYXVkaW8gc2FtcGxlIGR1cmF0aW9u
IG9mIDAgc28gdGhlIHBhcnNlciBjcmVhdGVzIGluZGl2aXNpYmxlIHNhbXBsZXMgd2l0aCBieXRl
IHNvdXJjZSByYW5nZXMuCiAgICAgcGFyc2VyLT5zZXRNaW5pbXVtQXVkaW9TYW1wbGVEdXJhdGlv
bigwKTsKIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2spOwot
Ci0gICAgbV9ieXRlU291cmNlID0gV1RGTW92ZShieXRlU291cmNlKTsKLSAgICBtX3BhcnNlVHJh
Y2tzU3RhdHVzID0gV1RGOjpudWxsb3B0OwotICAgIG1fZHVyYXRpb24gPSBNZWRpYVRpbWU6Omlu
dmFsaWRUaW1lKCk7Ci0gICAgbV90cmFja1JlYWRlcnMuY2xlYXIoKTsKKyAgICBwYXJzZXItPnNl
dENhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrKFtdKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlv
bikgeworICAgICAgICBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkuZGlzcGF0Y2goV1RGTW92
ZShmdW5jdGlvbikpOworICAgIH0pOwogCiAgICAgcGFyc2VyLT5zZXREaWRQYXJzZUluaXRpYWxp
emF0aW9uRGF0YUNhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
KFNvdXJjZUJ1ZmZlclBhcnNlcjo6SW5pdGlhbGl6YXRpb25TZWdtZW50JiYgaW5pdGlhbGl6YXRp
b25TZWdtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsKICAgICAgICAgZGlkUGFyc2VUcmFja3MoV1RGTW92ZShpbml0aWFsaXphdGlvblNlZ21lbnQp
LCBub0Vycik7CkBAIC0xMTYsOSArMTE3LDE1IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpwYXJzZUJ5
dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlU291cmNlCiAg
ICAgICAgIGRpZFByb3ZpZGVNZWRpYURhdGEoV1RGTW92ZShtZWRpYVNhbXBsZSksIHRyYWNrSUQs
IG1lZGlhVHlwZSk7CiAgICAgfSk7CiAKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcGFy
c2VUcmFja3NMb2NrKTsKKyAgICBtX2J5dGVTb3VyY2UgPSBXVEZNb3ZlKGJ5dGVTb3VyY2UpOwor
ICAgIG1fcGFyc2VUcmFja3NTdGF0dXMgPSBXVEY6Om51bGxvcHQ7CisgICAgbV9kdXJhdGlvbiA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAgICBtX3RyYWNrUmVhZGVycy5jbGVhcigpOwor
CiAgICAgcmVhZGVyUXVldWUoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBieXRlU291cmNlID0gbV9ieXRlU291cmNlLCBwYXJzZXIgPSBwYXJzZXIucmVs
ZWFzZU5vbk51bGwoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgcGFyc2VyLT5hcHBlbmREYXRhKFdU
Rk1vdmUoYnl0ZVNvdXJjZSkpOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhcnNlciA9IFdURk1vdmUocGFyc2VyKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgVHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1ZSgpLmRpc3BhdGNoKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhcnNlciA9IFdURk1vdmUocGFy
c2VyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGZpbmlzaFBhcnNpbmcoV1RGTW92ZShwYXJz
ZXIpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMjYsNyArMTMzLDcgQEAgdm9pZCBGb3Jt
YXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZShSZXRhaW5QdHI8TVRQbHVnaW5CeXRlU291cmNlUmVm
PiYmIGJ5dGVTb3VyY2UKIAogdm9pZCBGb3JtYXRSZWFkZXI6OmRpZFBhcnNlVHJhY2tzKFNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYmIHNlZ21lbnQsIHVp
bnQ2NF90IGVycm9yQ29kZSkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Bh
cnNlVHJhY2tzTG9jayk7CiAgICAgQVNTRVJUKCFtX3BhcnNlVHJhY2tzU3RhdHVzKTsKQEAgLTE2
Miw3ICsxNjksNyBAQCB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUGFyc2VUcmFja3MoU291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZQogCiB2b2lkIEZvcm1hdFJlYWRl
cjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1wbGU+JiYgbWVkaWFTYW1wbGUsIHVp
bnQ2NF90IHRyYWNrSUQsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2spOwogICAgIGF1dG8gdHJhY2tJbmRleCA9IG1fdHJh
Y2tSZWFkZXJzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgdHJhY2spIHsKQEAgLTE3NSw3ICsxODIs
NyBAQCB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1w
bGU+JiYgbWVkaWFTYW1wbGUsIHVpbnQ2NF90CiAKIHZvaWQgRm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKFJlZjxTb3VyY2VCdWZmZXJQYXJzZXI+JiYgcGFyc2VyKQogewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fcGFyc2VUcmFja3NMb2NrKTsKICAgICBBU1NFUlQobV9wYXJz
ZVRyYWNrc1N0YXR1cy5oYXNWYWx1ZSgpKTsKQEAgLTIwOCw4ICsyMTUsNiBAQCBPU1N0YXR1cyBG
b3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eShDRlN0cmluZ1JlZiBrZXksIENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgdgogCiBPU1N0YXR1cyBGb3JtYXRSZWFkZXI6OmNvcHlUcmFja0FycmF5KENG
QXJyYXlSZWYqIHRyYWNrQXJyYXlDb3B5KQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwotCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tzTG9jayk7CiAgICAg
bV9wYXJzZVRyYWNrc0NvbmRpdGlvbi53YWl0KG1fcGFyc2VUcmFja3NMb2NrLCBbJl0gewogICAg
ICAgICByZXR1cm4gbV9wYXJzZVRyYWNrc1N0YXR1cy5oYXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRl
ci5jcHAKaW5kZXggZWUxNjkyYWVmNWQ4NDgxZTA2Y2I0MmUxZmNkMzdmMTE2NGE5Njg3Yi4uMjk2
MTQyYzVmZTNlZjY4MzEwMzk0ZDBjOTQ4MmMzNTJjMzA2NzllOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIu
Y3BwCkBAIC05Miw2ICs5Miw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5
dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgLCBtX2J5
dGVSYW5nZShzYW1wbGUuYnl0ZVJhbmdlKCkpCiAgICAgLCBtX2J5dGVTb3VyY2UoYnl0ZVNvdXJj
ZSkKIHsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIHBsYXRmb3JtU2Ft
cGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgc3dpdGNoIChwbGF0Zm9ybVNhbXBs
ZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlOgpA
QCAtMTM5LDM2ICsxNDAsNDEgQEAgUmVmUHRyPFRyYWNrUmVhZGVyPiBUcmFja1JlYWRlcjo6Y3Jl
YXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGUKIHsKICAgICBpZiAo
IXRyYWNrKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVy
LCAqdHJhY2ssIGtDTU1lZGlhVHlwZV9WaWRlbykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
KGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIs
IGtDTU1lZGlhVHlwZV9WaWRlbywgKnRyYWNrLT50cmFja1VJRCgpKSk7CiB9CiAKIFJlZlB0cjxU
cmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNv
bnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVyLCBjb25zdCBBdWRpb1RyYWNrUHJpdmF0ZSog
dHJhY2spCiB7CiAgICAgaWYgKCF0cmFjaykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2NhdG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9j
YXRvciksIGZvcm1hdFJlYWRlciwgKnRyYWNrLCBrQ01NZWRpYVR5cGVfQXVkaW8pKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2Nh
dG9yKSwgZm9ybWF0UmVhZGVyLCBrQ01NZWRpYVR5cGVfQXVkaW8sICp0cmFjay0+dHJhY2tVSUQo
KSkpOwogfQogCiBSZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVhZGVyOjpjcmVhdGUoQWxsb2Nh
dG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgY29uc3Qg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2spCiB7CiAgICAgaWYgKCF0cmFjaykKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2NhdG9yKSBU
cmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwgKnRyYWNrLCBrQ01N
ZWRpYVR5cGVfVGV4dCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJh
Y2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9U
ZXh0LCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKK30KKworV29ya1F1ZXVlJiBUcmFja1JlYWRlcjo6
c3RvcmFnZVF1ZXVlKCkKK3sKKyAgICBzdGF0aWMgYXV0byYgcXVldWUgPSBXb3JrUXVldWU6OmNy
ZWF0ZSgiV2ViS2l0OjpUcmFja1JlYWRlciBTdG9yYWdlIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBl
OjpTZXJpYWwpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gcXVldWU7CiB9CiAKLVRyYWNrUmVhZGVy
OjpUcmFja1JlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYg
Zm9ybWF0UmVhZGVyLCBjb25zdCBUcmFja1ByaXZhdGVCYXNlJiB0cmFjaywgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlKQorVHJhY2tSZWFkZXI6OlRyYWNrUmVhZGVyKEFsbG9jYXRvciYmIGFsbG9jYXRv
ciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIENNTWVkaWFUeXBlIG1lZGlhVHlw
ZSwgdWludDY0X3QgdHJhY2tJRCkKICAgICA6IENvcmVNZWRpYVdyYXBwZWQoV1RGTW92ZShhbGxv
Y2F0b3IpKQotICAgICwgbV90cmFja0lEKHRyYWNrLmlkKCkuc3RyaW5nKCkudG9VSW50NjQoKSkK
KyAgICAsIG1fdHJhY2tJRCgqdHJhY2tJRCkKICAgICAsIG1fbWVkaWFUeXBlKG1lZGlhVHlwZSkK
ICAgICAsIG1fZHVyYXRpb24oZm9ybWF0UmVhZGVyLmR1cmF0aW9uKCkpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQobV90cmFja0lEID4gMCk7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiB9CiAKIHZvaWQgVHJhY2tSZWFkZXI6OmFkZFNhbXBsZShSZWY8
TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkK
IHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9jayk7CiAg
ICAgaWYgKCFtX3NhbXBsZVN0b3JhZ2UpCiAgICAgICAgIG1fc2FtcGxlU3RvcmFnZSA9IG1ha2VV
bmlxdWU8U2FtcGxlU3RvcmFnZT4oKTsKQEAgLTE4Nyw3ICsxOTMsNiBAQCB2b2lkIFRyYWNrUmVh
ZGVyOjphZGRTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgTVRQbHVnaW5CeXRlU291
cmNlUmVmIGJ5dAogCiB2b2lkIFRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlKEZ1bmN0aW9uPGJv
b2woU2FtcGxlTWFwJiwgYm9vbCk+JiYgcHJlZGljYXRlKSBjb25zdAogewotICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9y
YWdlTG9jayk7CiAgICAgaWYgKCFtX3NhbXBsZVN0b3JhZ2UpCiAgICAgICAgIG1fc2FtcGxlU3Rv
cmFnZSA9IG1ha2VVbmlxdWU8U2FtcGxlU3RvcmFnZT4oKTsKQEAgLTE5OCw3ICsyMDMsNyBAQCB2
b2lkIFRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlKEZ1bmN0aW9uPGJvb2woU2FtcGxlTWFwJiwg
Ym9vbCk+JiYgcHJlZGljYXRlKSBjbwogCiB2b2lkIFRyYWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5n
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9jayk7
CiAgICAgaWYgKCFtX3NhbXBsZVN0b3JhZ2UpCiAgICAgICAgIG1fc2FtcGxlU3RvcmFnZSA9IG1h
a2VVbmlxdWU8U2FtcGxlU3RvcmFnZT4oKTsKQEAgLTI0Myw3ICsyNDgsNyBAQCBPU1N0YXR1cyBU
cmFja1JlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yLCB2bwogdm9pZCBUcmFja1JlYWRlcjo6ZmluYWxpemUoKQogewogICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9jayk7Ci0gICAgY2FsbE9uTWFpblRo
cmVhZChbc2FtcGxlU3RvcmFnZSA9IHN0ZDo6ZXhjaGFuZ2UobV9zYW1wbGVTdG9yYWdlLCBudWxs
cHRyKV0geyB9KTsKKyAgICBzdG9yYWdlUXVldWUoKS5kaXNwYXRjaChbc2FtcGxlU3RvcmFnZSA9
IHN0ZDo6ZXhjaGFuZ2UobV9zYW1wbGVTdG9yYWdlLCBudWxscHRyKV0geyB9KTsKICAgICBDb3Jl
TWVkaWFXcmFwcGVkPFRyYWNrUmVhZGVyPjo6ZmluYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIu
aAppbmRleCA3NDVlMTY3YzVkM2Q2ZDc0YTI0OWZjNDJjYWY5ODEyZDdjNDAxYjE0Li43YWIyMWUy
NWMzOGE1Y2RmZmM2NWU4MTFkY2EzMTYzNjBhNDc1MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaApAQCAt
MzMsNiArMzMsMTAgQEAKIAogREVDTEFSRV9DT1JFX01FRElBX1RSQUlUUyhUcmFja1JlYWRlcik7
CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgV29ya1F1ZXVlOworfQorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIEluYmFuZFRleHRUcmFja1By
aXZhdGU7CkBAIC01NSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFRyYWNr
UmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0IFdl
YkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlKik7CiAgICAgc3RhdGljIFJlZlB0cjxUcmFja1JlYWRl
cj4gY3JlYXRlKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXImLCBjb25zdCBXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlKik7CiAKKyAgICBzdGF0aWMgV1RGOjpXb3JrUXVldWUm
IHN0b3JhZ2VRdWV1ZSgpOworCiAgICAgdWludDY0X3QgdHJhY2tJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhY2tJRDsgfQogICAgIHZvaWQgYWRkU2FtcGxlKFJlZjxXZWJDb3JlOjpNZWRpYVNhbXBs
ZT4mJiwgTVRQbHVnaW5CeXRlU291cmNlUmVmKTsKICAgICB2b2lkIHdhaXRGb3JTYW1wbGUoRnVu
Y3Rpb248Ym9vbChXZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sKT4mJikgY29uc3Q7CkBAIC02Nyw3
ICs3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgQ29yZU1lZGlhV3JhcHBlZDxU
cmFja1JlYWRlcj46OnVud3JhcDsKIAotICAgIFRyYWNrUmVhZGVyKEFsbG9jYXRvciYmLCBjb25z
dCBGb3JtYXRSZWFkZXImLCBjb25zdCBXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlJiwgQ01NZWRp
YVR5cGUpOworICAgIFRyYWNrUmVhZGVyKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXIm
LCBDTU1lZGlhVHlwZSwgdWludDY0X3QpOwogCiAgICAgLy8gQ01CYXNlQ2xhc3MKICAgICBTdHJp
bmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJLaXQ6OlRyYWNr
UmVhZGVyIl9zOyB9CkBAIC04Miw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICBzdHJ1Y3QgU2Ft
cGxlU3RvcmFnZSB7CiAgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKLSAg
ICAgICAgflNhbXBsZVN0b3JhZ2UoKSB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IH0KKyAgICAg
ICAgflNhbXBsZVN0b3JhZ2UoKSB7IEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOyB9CiAgICAgICAg
IFdlYkNvcmU6OlNhbXBsZU1hcCBzYW1wbGVNYXA7CiAgICAgICAgIGJvb2wgaGFzQWxsU2FtcGxl
cyB7IGZhbHNlIH07CiAgICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416243</attachid>
            <date>2020-12-15 07:28:48 -0800</date>
            <delta_ts>2020-12-15 08:41:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219887-20201215072847.patch</filename>
            <type>text/plain</type>
            <size>24530</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwM2U4ZmM2MmE1ZDA3
NmI2MWU3ZjliNDYxMDkzYTA4NTEzYTY1My4uYWRhNGEwNWEwOGNlZWQyNmUzNmUzN2Q0MDk0Y2Ew
MmJiZTlmZTJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTEyLTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBOdW1lcm91cyB3ZWJn
bCB0ZXN0cyB0aW1lIG91dCB3aXRoIFdlYk0gZm9ybWF0IHJlYWRlciBlbmFibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk4ODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmlkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dHJhY2tVSUQgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5oOgorCisgICAgICAgIEFkZGVkIGEgd2F5IHRvIGdldCB0aGUgdHJhY2sgSUQgYXMgYW4g
b3B0aW9uYWwgdWludDY0X3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
b3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxPbk1haW5U
aHJlYWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
OjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmFwcGVuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6T25DbHVzdGVyQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CisgICAgICAgIEFkZGVkIGEgd2F5IGZvciBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIGNsaWVudHMg
dG8gY3VzdG9taXplIHRoZSB0aHJlYWQgb24gd2hpY2ggY2FsbGJhY2tzCisgICAgICAgIGFyZSBp
bnZva2VkLgorCiAyMDIwLTEyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5j
b20+CiAKICAgICAgICAgQVg6IGltcGxlbWVudCBwcmVmZXJzLWNvbnRyYXN0OiBtb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDQwNjhmYzllNTRjYTYyM2E0OGNjYmYxZTNiMWZhOTIzMzk5YWQxN2MuLmI1NGY0M2I0
NmMwZTJkZGMzN2FmZjJhZTExNDk2ZTI5NjhjMThhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMjAtMTItMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE51bWVyb3VzIHdlYmdsIHRlc3RzIHRpbWUgb3V0IHdpdGggV2ViTSBmb3JtYXQgcmVh
ZGVyIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTg4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gcmVuZGVyaW5nIGEgdmlkZW8gZnJhbWUgdG8gY2FudmFzLCBTYW1wbGVDdXJzb3Ig
aXMgaW52b2tlZCBvbiB0aGUgbWFpbiB0aHJlYWQgaW4KKyAgICAgICAgb3JkZXIgdG8gZmluZCBh
IHN5bmMgZnJhbWUgdG8gcmVuZGVyLiBUaGlzIHRyaWdnZXJlZCBhbiBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKSBpbiBkZWJ1ZworICAgICAgICBidWlsZHMsIGFuZCBwb3NzaWJseSBhIGRlYWRsb2Nr
IGlmIHRoZSBjdXJzb3IgcG9pbnRlZCB0byBhIHNhbXBsZSB0aGF0IGhhZG4ndCB5ZXQgYmVlbgor
ICAgICAgICBwYXJzZWQgKGJlY2F1c2UgU291cmNlQnVmZmVyUGFyc2VyIGNhbGxzIHRoZSAnZGlk
UHJvdmlkZU1lZGlhRGF0YScgY2FsbGJhY2sgb24gdGhlIG1haW4KKyAgICAgICAgdGhyZWFkKS4K
KworICAgICAgICBSZXNvbHZlIHRoaXMgYnkgaGF2aW5nIFNvdXJjZUJ1ZmZlclBhcnNlciBwcm92
aWRlIHBhcnNlZCBzYW1wbGVzIG9uIGEgYmFja2dyb3VuZCBxdWV1ZS4gVG8KKyAgICAgICAgYXZv
aWQgY3JlYXRpbmcgQXRvbVN0cmluZ3Mgb24gdGhpcyBub24tbWFpbiBxdWV1ZSwgdGVhY2ggVHJh
Y2tSZWFkZXIgdG8gYWNjZXNzIHRoZSB0cmFja0lECisgICAgICAgIGFzIGEgdWludDY0X3QgaW5z
dGVhZC4KKworICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVh
ZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpzdGFydE9uTWFpblRocmVh
ZCk6CisgICAgICAgIChXZWJLaXQ6OnJlYWRlclF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6Rm9y
bWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpGb3JtYXRSZWFk
ZXI6OmRpZFBhcnNlVHJhY2tzKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpkaWRQ
cm92aWRlTWVkaWFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKToKKyAgICAgICAgKFdlYktpdDo6Rm9ybWF0UmVhZGVyOjpjb3B5VHJhY2tBcnJheSk6
CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVS
YW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6VHJh
Y2tSZWFkZXI6OlRyYWNrUmVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmFk
ZFNhbXBsZSk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmZpbmlzaFBhcnNpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6ZmluYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaDoKKwogMjAyMC0xMi0xNCAgUGVuZyBM
aXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJvY2Vz
c11bTVNFXSBWUDkgc3RyZWFtIHBsYXliYWNrIGlzIG5vdCBzbW9vdGgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKaW5kZXgg
ZTdjMWFmMzEzODFmMzc1ODI5ODU2YjM4ZjNiODZjMTY3NWUxODNkZi4uNGJkMjJmZTQzMjc4ZWI1
MGRiNGY2OWI0ZWJkYzBmMWVjODA5YTVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKQEAgLTMzLDYgKzMzLDExIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorT3B0aW9uYWw8dWludDY0X3Q+IFRyYWNrUHJpdmF0
ZUJhc2U6OnRyYWNrVUlEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQor
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIHN0YXRpYyB1aW50NjRfdCBzX3VuaXF1ZUlk
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJp
dmF0ZUJhc2UuaAppbmRleCAwMDRhZjRmMTA5ZWNiMGNhMzMyNTczN2Q4ZjEyYjBmMGZmNjkwMzRm
Li5mNDRlZmNiZTUxMmY0NjE3ODVmNzE0MGVmMjdjNTkxNWJhNGMzNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCkBAIC02
Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbGFuZ3VhZ2UoKSBj
b25zdCB7IHJldHVybiBlbXB0eUF0b20oKTsgfQogCiAgICAgdmlydHVhbCBpbnQgdHJhY2tJbmRl
eCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90PiB0
cmFja1VJRCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBNZWRpYVRpbWUgc3RhcnRUaW1lVmFyaWFu
Y2UoKSBjb25zdCB7IHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVkaW9UcmFja1ByaXZh
dGVXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlv
VHJhY2tQcml2YXRlV2ViTS5jcHAKaW5kZXggNWYyMGJjZjlkZjEwMWFjYTE4NWIyM2MzMTlmZDIz
YmQ3ZWUyYzlkMi4uNzdkOGEzNDU4ZGEwNTE5OTE2YjJlNWE4NmQ5ZDFkNDdmNTYzYWMxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVkaW9UcmFj
a1ByaXZhdGVXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCkBAIC00NCwxMSArNDQsMjAgQEAgQXVkaW9U
cmFja1ByaXZhdGVXZWJNOjpBdWRpb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYm
IHRyYWNrRW50cnkpCiAKIEF0b21TdHJpbmcgQXVkaW9UcmFja1ByaXZhdGVXZWJNOjppZCgpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fdHJhY2tJRC5pc051bGwoKSkKLSAgICAgICAgbV90cmFja0lEID0g
bV90cmFjay50cmFja191aWQuaXNfcHJlc2VudCgpID8gQXRvbVN0cmluZzo6bnVtYmVyKG1fdHJh
Y2sudHJhY2tfdWlkLnZhbHVlKCkpIDogZW1wdHlBdG9tKCk7CisgICAgaWYgKG1fdHJhY2tJRC5p
c051bGwoKSkgeworICAgICAgICBhdXRvIHVpZCA9IHRyYWNrVUlEKCk7CisgICAgICAgIG1fdHJh
Y2tJRCA9IHVpZCA/IEF0b21TdHJpbmc6Om51bWJlcigqdWlkKSA6IGVtcHR5QXRvbSgpOworICAg
IH0KICAgICByZXR1cm4gbV90cmFja0lEOwogfQogCitPcHRpb25hbDx1aW50NjRfdD4gQXVkaW9U
cmFja1ByaXZhdGVXZWJNOjp0cmFja1VJRCgpIGNvbnN0Cit7CisgICAgaWYgKG1fdHJhY2sudHJh
Y2tfdWlkLmlzX3ByZXNlbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fdHJhY2sudHJhY2tfdWlkLnZh
bHVlKCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwogQXRvbVN0cmluZyBBdWRpb1Ry
YWNrUHJpdmF0ZVdlYk06OmxhYmVsKCkgY29uc3QKIHsKICAgICBpZiAobV9sYWJlbC5pc051bGwo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1
ZGlvVHJhY2tQcml2YXRlV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmgKaW5kZXggOWE5NzhkZjc4YzNiNTZmYTRlNzFi
OTAxZGY2YWY3YzkyZTE2OTkxMi4uMTMxYTlmZTBhZWRhMmExZmY0NzhmMGM3Yjk3YjkzNDRkY2I2
NjBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
QXVkaW9UcmFja1ByaXZhdGVXZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVi
bGljOgogICAgIEF0b21TdHJpbmcgbGFiZWwoKSBjb25zdCBmaW5hbDsKICAgICBBdG9tU3RyaW5n
IGxhbmd1YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5h
bDsKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKIAogcHJp
dmF0ZToKICAgICBBdWRpb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggODlmZTMyZjhlZGJhMGUwYmEzYjlj
YmMzNWYxYjNjM2FkNGEzMzU4Ni4uYzA0M2JlNTY5MmY1ZmViNmU1YjBhZGZmNDY2MGYxZDUxZGZj
MjMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
U291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTUyOSw5ICs1Mjks
MjQgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldl
Yk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUoVlA5KSB8fCBF
TkFCTEUoVk9SQklTKSB8fCBFTkFCTEUoT1BVUykKIH0KIAorUmVmUHRyPFNvdXJjZUJ1ZmZlclBh
cnNlcldlYk0+IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmNyZWF0ZShjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSkKK3sKKyAgICBpZiAoaXNDb250ZW50VHlwZVN1cHBvcnRlZCh0eXBlKSAhPSBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKQorICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0oKSk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK3N0YXRpYyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpDYWxsT25DbGllbnRU
aHJlYWRDYWxsYmFjayBjYWxsT25NYWluVGhyZWFkQ2FsbGJhY2soKQoreworICAgIHJldHVybiBb
XShGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgfTsKK30KKwogU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTSgpCiAgICAgOiBtX3JlYWRlcihXVEY6Om1ha2VVbmlx
dWVSZWY8U3RyZWFtaW5nVmVjdG9yUmVhZGVyPigpKQogICAgICwgbV9pbml0aWFsaXphdGlvblNl
Z21lbnRJc0hhbmRsZWRTZW1hcGhvcmUoQm94PEJpbmFyeVNlbWFwaG9yZT46OmNyZWF0ZSgpKQor
ICAgICwgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhjYWxsT25NYWluVGhyZWFkQ2FsbGJh
Y2soKSkKIHsKICAgICBpZiAoaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIG1fcGFy
c2VyID0gV1RGOjptYWtlVW5pcXVlV2l0aG91dEZhc3RNYWxsb2NDaGVjazxXZWJtUGFyc2VyPigp
OwpAQCAtNTg1LDcgKzYwMCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6YXBwZW5k
RGF0YShTZWdtZW50JiYgc2VnbWVudCwgQXBwZW5kRmxhZ3MgYXBwZW5kRmxhCiAgICAgfQogCiAg
ICAgRVJST1JfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsICJzdGF0dXMuY29kZSgiLCBt
X3N0YXR1cy5jb2RlLCAiKSIpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29kZSA9IG1fc3RhdHVzLmNvZGVdIHsKKyAgICBtX2Nh
bGxPbkNsaWVudFRocmVhZENhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvZGUgPSBtX3N0YXR1cy5jb2RlXSB7CiAgICAgICAgIGlmIChtX2RpZEVuY291bnRl
ckVycm9yRHVyaW5nUGFyc2luZ0NhbGxiYWNrKQogICAgICAgICAgICAgbV9kaWRFbmNvdW50ZXJF
cnJvckR1cmluZ1BhcnNpbmdDYWxsYmFjayhjb2RlKTsKICAgICB9KTsKQEAgLTc2Niw3ICs3ODEs
NyBAQCBTdGF0dXMgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6T25DbHVzdGVyQmVnaW4oY29uc3Qg
RWxlbWVudE1ldGFkYXRhJiBtZXRhZGF0YSwgYwogICAgICAgICByZXR1cm4gU3RhdHVzKFN0YXR1
czo6a05vdEVub3VnaE1lbW9yeSk7CiAKICAgICBpZiAobV9pbml0aWFsaXphdGlvblNlZ21lbnRF
bmNvdW50ZXJlZCAmJiBtX2RpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhQ2FsbGJhY2spIHsKLSAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBpbml0aWFsaXphdGlvblNlZ21lbnQgPSBXVEZNb3ZlKCptX2luaXRpYWxpemF0aW9uU2Vn
bWVudCldKCkgbXV0YWJsZSB7CisgICAgICAgIG1fY2FsbE9uQ2xpZW50VGhyZWFkQ2FsbGJhY2so
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaW5pdGlhbGl6YXRpb25TZWdt
ZW50ID0gV1RGTW92ZSgqbV9pbml0aWFsaXphdGlvblNlZ21lbnQpXSgpIG11dGFibGUgewogICAg
ICAgICAgICAgbV9kaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0YUNhbGxiYWNrKFdURk1vdmUoaW5p
dGlhbGl6YXRpb25TZWdtZW50KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0gewogICAgICAgICAgICAgICAgIG1faW5pdGlhbGl6YXRpb25TZWdtZW50SXNIYW5kbGVkU2Vt
YXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgICAgIH0pOwpAQCAtOTQ2LDcgKzk2MSw3IEBAIHdl
Ym06OlN0YXR1cyBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpPbkZyYW1lKGNvbnN0IEZyYW1lTWV0
YWRhdGEmIG1ldGFkYXRhLCBSZWFkCiAKIHZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6cHJv
dmlkZU1lZGlhRGF0YShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlciwg
dWludDY0X3QgdHJhY2tJRCwgT3B0aW9uYWw8c2l6ZV90PiBieXRlUmFuZ2VPZmZzZXQpCiB7Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBzYW1wbGVCdWZmZXIgPSBXVEZNb3ZlKHNhbXBsZUJ1ZmZlciksIHRyYWNrSUQsIGJ5dGVSYW5n
ZU9mZnNldF0gKCkgbXV0YWJsZSB7CisgICAgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzYW1wbGVCdWZmZXIgPSBXVEZN
b3ZlKHNhbXBsZUJ1ZmZlciksIHRyYWNrSUQsIGJ5dGVSYW5nZU9mZnNldF0gKCkgbXV0YWJsZSB7
CiAgICAgICAgIGlmICghbV9kaWRQcm92aWRlTWVkaWFEYXRhQ2FsbGJhY2spCiAgICAgICAgICAg
ICByZXR1cm47CiAKQEAgLTEyMTEsNiArMTIyNiwxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OnNldE1pbmltdW1BdWRpb1NhbXBsZUR1cmF0aW9uKGZsb2F0IGR1cmF0aW9uKQogICAg
IG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24gPSBkdXJhdGlvbjsKIH0KIAordm9pZCBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhDYWxsT25D
bGllbnRUaHJlYWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVChjYWxsYmFjayk7
CisgICAgbV9jYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwor
fQorCiBjb25zdCBIYXNoU2V0PFN0cmluZz4mIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnN1cHBv
cnRlZFZpZGVvQ29kZWNzKCkKIHsKICAgICBzdGF0aWMgYXV0byBjb2RlY3MgPSBtYWtlTmV2ZXJE
ZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+Pih7ICJWX1ZQOCIsICJWX1ZQOSIgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNLmgKaW5kZXggNjVkZTY1OGNkMzJmZTlkNzE4NzU4ZjcxNTFkMWQ0
NzRkMDQyZjE4Ni4uZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJiNWNiMTc5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAg
ICAgY2xhc3MgU3RyZWFtaW5nVmVjdG9yUmVhZGVyOwogCiAgICAgc3RhdGljIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZSBpc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRU
eXBlJik7CisgICAgc3RhdGljIFJlZlB0cjxTb3VyY2VCdWZmZXJQYXJzZXJXZWJNPiBjcmVhdGUo
Y29uc3QgQ29udGVudFR5cGUmKTsKIAogICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0oKTsKICAg
ICB+U291cmNlQnVmZmVyUGFyc2VyV2ViTSgpOwpAQCAtNzksNiArODAsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGZsdXNoUGVuZGluZ0F1ZGlvQnVmZmVycygpOwogICAgIHZvaWQgc2V0TWluaW11
bUF1ZGlvU2FtcGxlRHVyYXRpb24oZmxvYXQpOworICAgIAorICAgIHVzaW5nIENhbGxPbkNsaWVu
dFRocmVhZENhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmKT47CisgICAgdm9pZCBzZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhDYWxsT25DbGll
bnRUaHJlYWRDYWxsYmFjayYmKTsKIAogICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IFdURjo6TG9n
Z2VyJiwgY29uc3Qgdm9pZCogaWRlbnRpZmllcikgZmluYWw7CiAKQEAgLTI2MCw2ICsyNjQsNyBA
QCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24geyAyIH07
CiAKICAgICBCb3g8QmluYXJ5U2VtYXBob3JlPiBtX2luaXRpYWxpemF0aW9uU2VnbWVudElzSGFu
ZGxlZFNlbWFwaG9yZTsKKyAgICBDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayBtX2NhbGxPbkNs
aWVudFRocmVhZENhbGxiYWNrOwogCiAgICAgUmVmUHRyPGNvbnN0IFdURjo6TG9nZ2VyPiBtX2xv
Z2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXIgeyBudWxscHRyIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNr
UHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA2YTM0ZjJlNTgzZmVjYmRhMzRmNzU3YmIy
YjMxOTdmM2VmY2U4MjMwLi5lODhiOWU1NTU1ZDRmYTMxODAzZmQyOWY2OGVhYzk1ZTZmNzczMzU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRl
b1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTQ0LDExICs0NCwyMCBAQCBW
aWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0Vu
dHJ5JiYgdHJhY2tFbnRyeSkKIAogQXRvbVN0cmluZyBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06Omlk
KCkgY29uc3QKIHsKLSAgICBpZiAobV90cmFja0lELmlzTnVsbCgpKQotICAgICAgICBtX3RyYWNr
SUQgPSBtX3RyYWNrLnRyYWNrX3VpZC5pc19wcmVzZW50KCkgPyBBdG9tU3RyaW5nOjpudW1iZXIo
bV90cmFjay50cmFja191aWQudmFsdWUoKSkgOiBlbXB0eUF0b20oKTsKKyAgICBpZiAobV90cmFj
a0lELmlzTnVsbCgpKSB7CisgICAgICAgIGF1dG8gdWlkID0gdHJhY2tVSUQoKTsKKyAgICAgICAg
bV90cmFja0lEID0gdWlkID8gQXRvbVN0cmluZzo6bnVtYmVyKCp1aWQpIDogZW1wdHlBdG9tKCk7
CisgICAgfQogICAgIHJldHVybiBtX3RyYWNrSUQ7CiB9CiAKK09wdGlvbmFsPHVpbnQ2NF90PiBW
aWRlb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKK3sKKyAgICBpZiAobV90cmFj
ay50cmFja191aWQuaXNfcHJlc2VudCgpKQorICAgICAgICByZXR1cm4gbV90cmFjay50cmFja191
aWQudmFsdWUoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBBdG9tU3RyaW5nIFZp
ZGVvVHJhY2tQcml2YXRlV2ViTTo6bGFiZWwoKSBjb25zdAogewogICAgIGlmIChtX2xhYmVsLmlz
TnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCAxNzY3YjkxZDk2ZWZlYWY0
OWYzYzc5MGM3MmQ2M2EyZmQ4MTUzYjgxLi4xMjMxY2JlMzU5ZTMwNzNmZGZhNmZiZTBlNjJlMDUx
ZjBiMjkxZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAtNDEsNiArNDEsNyBA
QCBwdWJsaWM6CiAgICAgQXRvbVN0cmluZyBsYWJlbCgpIGNvbnN0IGZpbmFsOwogICAgIEF0b21T
dHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBmaW5hbDsKICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0
IGZpbmFsOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB0cmFja1VJRCgpIGNvbnN0IGZpbmFsOwog
CiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L0Zvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvRm9ybWF0UmVhZGVyLmNwcAppbmRleCA2OGQ0MGI5MWE0ZmIyYTJhYWExZjNjMjc5Y2M3
MzlmMDljMjI2ZDVmLi5lZjQ5ZmNhOTY2MjI1YWMzN2I1ODNlNjQ2N2Q4ZjVkMTkyNGFiYjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvRm9y
bWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvRm9ybWF0UmVhZGVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvQ29udGVudFR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luYmFuZFRleHRUcmFja1ByaXZh
dGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9Tb3VyY2VCdWZmZXJQYXJzZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NvdXJjZUJ1ZmZlclBh
cnNlcldlYk0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CiAjaW5j
bHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KICNpbmNsdWRl
IDx3dGYvV29ya1F1ZXVlLmg+CkBAIC03MCw3ICs3MCwxMSBAQCBGb3JtYXRSZWFkZXI6OkZvcm1h
dFJlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IpCiAKIHZvaWQgRm9ybWF0UmVhZGVyOjpzdGFy
dE9uTWFpblRocmVhZChNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAg
ICAgcGFyc2VCeXRlU291cmNlKFdURk1vdmUoYnl0ZVNvdXJjZSkpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBieXRlU291cmNlID0gcmV0YWluUHRyKGJ5dGVTb3VyY2UpXSgpIG11dGFi
bGUgewogICAgICAgICBwYXJzZUJ5dGVTb3VyY2UoV1RGTW92ZShieXRlU291cmNlKSk7CiAgICAg
fSk7CkBAIC03OCw3ICs4Miw3IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpzdGFydE9uTWFpblRocmVh
ZChNVFBsdWdpbkJ5dGVTb3VyY2VSZWYgYnl0ZVNvdXJjZSkKIAogc3RhdGljIFdvcmtRdWV1ZSYg
cmVhZGVyUXVldWUoKQogewotICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJXZWJLaXQgRm9ybWF0UmVhZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50KS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVh
dGUoIldlYktpdDo6Rm9ybWF0UmVhZGVyIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50KS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuIHF1ZXVlOwogfQogCkBAIC04Nyw3ICs5MSw3IEBA
IHZvaWQgRm9ybWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0
ZVNvdXJjZVJlZj4mJiBieXRlU291cmNlCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb250ZW50VHlwZT4gY29udGVudFR5cGUoInZpZGVv
L3dlYm0iX3MpOwotICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2VyOjpjcmVhdGUo
Y29udGVudFR5cGUsIHRydWUpOworICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6Y3JlYXRlKGNvbnRlbnRUeXBlKTsKICAgICBpZiAoIXBhcnNlcikgewogICAgICAgICBt
X3BhcnNlVHJhY2tzU3RhdHVzID0ga01UUGx1Z2luRm9ybWF0UmVhZGVyRXJyb3JfQWxsb2NhdGlv
bkZhaWx1cmU7CiAgICAgICAgIHJldHVybjsKQEAgLTk2LDEyICsxMDAsOSBAQCB2b2lkIEZvcm1h
dFJlYWRlcjo6cGFyc2VCeXRlU291cmNlKFJldGFpblB0cjxNVFBsdWdpbkJ5dGVTb3VyY2VSZWY+
JiYgYnl0ZVNvdXJjZQogICAgIC8vIFNldCBhIG1pbmltdW0gYXVkaW8gc2FtcGxlIGR1cmF0aW9u
IG9mIDAgc28gdGhlIHBhcnNlciBjcmVhdGVzIGluZGl2aXNpYmxlIHNhbXBsZXMgd2l0aCBieXRl
IHNvdXJjZSByYW5nZXMuCiAgICAgcGFyc2VyLT5zZXRNaW5pbXVtQXVkaW9TYW1wbGVEdXJhdGlv
bigwKTsKIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2spOwot
Ci0gICAgbV9ieXRlU291cmNlID0gV1RGTW92ZShieXRlU291cmNlKTsKLSAgICBtX3BhcnNlVHJh
Y2tzU3RhdHVzID0gV1RGOjpudWxsb3B0OwotICAgIG1fZHVyYXRpb24gPSBNZWRpYVRpbWU6Omlu
dmFsaWRUaW1lKCk7Ci0gICAgbV90cmFja1JlYWRlcnMuY2xlYXIoKTsKKyAgICBwYXJzZXItPnNl
dENhbGxPbkNsaWVudFRocmVhZENhbGxiYWNrKFtdKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlv
bikgeworICAgICAgICBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkuZGlzcGF0Y2goV1RGTW92
ZShmdW5jdGlvbikpOworICAgIH0pOwogCiAgICAgcGFyc2VyLT5zZXREaWRQYXJzZUluaXRpYWxp
emF0aW9uRGF0YUNhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
KFNvdXJjZUJ1ZmZlclBhcnNlcjo6SW5pdGlhbGl6YXRpb25TZWdtZW50JiYgaW5pdGlhbGl6YXRp
b25TZWdtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsKICAgICAgICAgZGlkUGFyc2VUcmFja3MoV1RGTW92ZShpbml0aWFsaXphdGlvblNlZ21lbnQp
LCBub0Vycik7CkBAIC0xMTYsOSArMTE3LDE1IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpwYXJzZUJ5
dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlU291cmNlCiAg
ICAgICAgIGRpZFByb3ZpZGVNZWRpYURhdGEoV1RGTW92ZShtZWRpYVNhbXBsZSksIHRyYWNrSUQs
IG1lZGlhVHlwZSk7CiAgICAgfSk7CiAKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcGFy
c2VUcmFja3NMb2NrKTsKKyAgICBtX2J5dGVTb3VyY2UgPSBXVEZNb3ZlKGJ5dGVTb3VyY2UpOwor
ICAgIG1fcGFyc2VUcmFja3NTdGF0dXMgPSBXVEY6Om51bGxvcHQ7CisgICAgbV9kdXJhdGlvbiA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAgICBtX3RyYWNrUmVhZGVycy5jbGVhcigpOwor
CiAgICAgcmVhZGVyUXVldWUoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBieXRlU291cmNlID0gbV9ieXRlU291cmNlLCBwYXJzZXIgPSBwYXJzZXIucmVs
ZWFzZU5vbk51bGwoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgcGFyc2VyLT5hcHBlbmREYXRhKFdU
Rk1vdmUoYnl0ZVNvdXJjZSkpOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhcnNlciA9IFdURk1vdmUocGFyc2VyKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgVHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1ZSgpLmRpc3BhdGNoKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhcnNlciA9IFdURk1vdmUocGFy
c2VyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGZpbmlzaFBhcnNpbmcoV1RGTW92ZShwYXJz
ZXIpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMjYsNyArMTMzLDcgQEAgdm9pZCBGb3Jt
YXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZShSZXRhaW5QdHI8TVRQbHVnaW5CeXRlU291cmNlUmVm
PiYmIGJ5dGVTb3VyY2UKIAogdm9pZCBGb3JtYXRSZWFkZXI6OmRpZFBhcnNlVHJhY2tzKFNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYmIHNlZ21lbnQsIHVp
bnQ2NF90IGVycm9yQ29kZSkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Bh
cnNlVHJhY2tzTG9jayk7CiAgICAgQVNTRVJUKCFtX3BhcnNlVHJhY2tzU3RhdHVzKTsKQEAgLTE2
Miw3ICsxNjksNyBAQCB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUGFyc2VUcmFja3MoU291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZQogCiB2b2lkIEZvcm1hdFJlYWRl
cjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1wbGU+JiYgbWVkaWFTYW1wbGUsIHVp
bnQ2NF90IHRyYWNrSUQsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2spOwogICAgIGF1dG8gdHJhY2tJbmRleCA9IG1fdHJh
Y2tSZWFkZXJzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgdHJhY2spIHsKQEAgLTE3NSw3ICsxODIs
NyBAQCB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1w
bGU+JiYgbWVkaWFTYW1wbGUsIHVpbnQ2NF90CiAKIHZvaWQgRm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKFJlZjxTb3VyY2VCdWZmZXJQYXJzZXI+JiYgcGFyc2VyKQogewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fcGFyc2VUcmFja3NMb2NrKTsKICAgICBBU1NFUlQobV9wYXJz
ZVRyYWNrc1N0YXR1cy5oYXNWYWx1ZSgpKTsKQEAgLTIwOCw4ICsyMTUsNiBAQCBPU1N0YXR1cyBG
b3JtYXRSZWFkZXI6OmNvcHlQcm9wZXJ0eShDRlN0cmluZ1JlZiBrZXksIENGQWxsb2NhdG9yUmVm
IGFsbG9jYXRvciwgdgogCiBPU1N0YXR1cyBGb3JtYXRSZWFkZXI6OmNvcHlUcmFja0FycmF5KENG
QXJyYXlSZWYqIHRyYWNrQXJyYXlDb3B5KQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwotCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tzTG9jayk7CiAgICAg
bV9wYXJzZVRyYWNrc0NvbmRpdGlvbi53YWl0KG1fcGFyc2VUcmFja3NMb2NrLCBbJl0gewogICAg
ICAgICByZXR1cm4gbV9wYXJzZVRyYWNrc1N0YXR1cy5oYXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRl
ci5jcHAKaW5kZXggZWUxNjkyYWVmNWQ4NDgxZTA2Y2I0MmUxZmNkMzdmMTE2NGE5Njg3Yi4uYzUw
MDQxNDE4N2U2YTI4NjZmYTI2OGJmMjE1NmNlNzMyMGJjNzNmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIu
Y3BwCkBAIC05Miw2ICs5Miw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5
dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgLCBtX2J5
dGVSYW5nZShzYW1wbGUuYnl0ZVJhbmdlKCkpCiAgICAgLCBtX2J5dGVTb3VyY2UoYnl0ZVNvdXJj
ZSkKIHsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIHBsYXRmb3JtU2Ft
cGxlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgc3dpdGNoIChwbGF0Zm9ybVNhbXBs
ZS50eXBlKSB7CiAgICAgY2FzZSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlOgpA
QCAtMTM5LDM2ICsxNDAsNDEgQEAgUmVmUHRyPFRyYWNrUmVhZGVyPiBUcmFja1JlYWRlcjo6Y3Jl
YXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGUKIHsKICAgICBpZiAo
IXRyYWNrKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVy
LCAqdHJhY2ssIGtDTU1lZGlhVHlwZV9WaWRlbykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
KGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIs
IGtDTU1lZGlhVHlwZV9WaWRlbywgKnRyYWNrLT50cmFja1VJRCgpKSk7CiB9CiAKIFJlZlB0cjxU
cmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNv
bnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVyLCBjb25zdCBBdWRpb1RyYWNrUHJpdmF0ZSog
dHJhY2spCiB7CiAgICAgaWYgKCF0cmFjaykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2NhdG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9j
YXRvciksIGZvcm1hdFJlYWRlciwgKnRyYWNrLCBrQ01NZWRpYVR5cGVfQXVkaW8pKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2Nh
dG9yKSwgZm9ybWF0UmVhZGVyLCBrQ01NZWRpYVR5cGVfQXVkaW8sICp0cmFjay0+dHJhY2tVSUQo
KSkpOwogfQogCiBSZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVhZGVyOjpjcmVhdGUoQWxsb2Nh
dG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgY29uc3Qg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2spCiB7CiAgICAgaWYgKCF0cmFjaykKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2NhdG9yKSBU
cmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwgKnRyYWNrLCBrQ01N
ZWRpYVR5cGVfVGV4dCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJh
Y2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9U
ZXh0LCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKK30KKworV29ya1F1ZXVlJiBUcmFja1JlYWRlcjo6
c3RvcmFnZVF1ZXVlKCkKK3sKKyAgICBzdGF0aWMgYXV0byYgcXVldWUgPSBXb3JrUXVldWU6OmNy
ZWF0ZSgiV2ViS2l0OjpUcmFja1JlYWRlciBTdG9yYWdlIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBl
OjpTZXJpYWwpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gcXVldWU7CiB9CiAKLVRyYWNrUmVhZGVy
OjpUcmFja1JlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYg
Zm9ybWF0UmVhZGVyLCBjb25zdCBUcmFja1ByaXZhdGVCYXNlJiB0cmFjaywgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlKQorVHJhY2tSZWFkZXI6OlRyYWNrUmVhZGVyKEFsbG9jYXRvciYmIGFsbG9jYXRv
ciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIENNTWVkaWFUeXBlIG1lZGlhVHlw
ZSwgdWludDY0X3QgdHJhY2tJRCkKICAgICA6IENvcmVNZWRpYVdyYXBwZWQoV1RGTW92ZShhbGxv
Y2F0b3IpKQotICAgICwgbV90cmFja0lEKHRyYWNrLmlkKCkuc3RyaW5nKCkudG9VSW50NjQoKSkK
KyAgICAsIG1fdHJhY2tJRCh0cmFja0lEKQogICAgICwgbV9tZWRpYVR5cGUobWVkaWFUeXBlKQog
ICAgICwgbV9kdXJhdGlvbihmb3JtYXRSZWFkZXIuZHVyYXRpb24oKSkKIHsKLSAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwotICAgIEFTU0VSVChtX3RyYWNrSUQgPiAwKTsKKyAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKIH0KIAogdm9pZCBUcmFja1JlYWRlcjo6YWRkU2FtcGxlKFJlZjxN
ZWRpYVNhbXBsZT4mJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlKQog
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZVN0b3JhZ2VMb2NrKTsKICAg
ICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAgICAgICAgbV9zYW1wbGVTdG9yYWdlID0gbWFrZVVu
aXF1ZTxTYW1wbGVTdG9yYWdlPigpOwpAQCAtMTg3LDcgKzE5Myw2IEBAIHZvaWQgVHJhY2tSZWFk
ZXI6OmFkZFNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3Vy
Y2VSZWYgYnl0CiAKIHZvaWQgVHJhY2tSZWFkZXI6OndhaXRGb3JTYW1wbGUoRnVuY3Rpb248Ym9v
bChTYW1wbGVNYXAmLCBib29sKT4mJiBwcmVkaWNhdGUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZVN0b3Jh
Z2VMb2NrKTsKICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAgICAgICAgbV9zYW1wbGVTdG9y
YWdlID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwpAQCAtMTk4LDcgKzIwMyw3IEBAIHZv
aWQgVHJhY2tSZWFkZXI6OndhaXRGb3JTYW1wbGUoRnVuY3Rpb248Ym9vbChTYW1wbGVNYXAmLCBi
b29sKT4mJiBwcmVkaWNhdGUpIGNvCiAKIHZvaWQgVHJhY2tSZWFkZXI6OmZpbmlzaFBhcnNpbmco
KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZVN0b3JhZ2VMb2NrKTsK
ICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAgICAgICAgbV9zYW1wbGVTdG9yYWdlID0gbWFr
ZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwpAQCAtMjQzLDcgKzI0OCw3IEBAIE9TU3RhdHVzIFRy
YWNrUmVhZGVyOjpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIHZvCiB2b2lkIFRyYWNrUmVhZGVyOjpmaW5hbGl6ZSgpCiB7CiAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX3NhbXBsZVN0b3JhZ2VMb2NrKTsKLSAgICBjYWxsT25NYWluVGhy
ZWFkKFtzYW1wbGVTdG9yYWdlID0gc3RkOjpleGNoYW5nZShtX3NhbXBsZVN0b3JhZ2UsIG51bGxw
dHIpXSB7IH0pOworICAgIHN0b3JhZ2VRdWV1ZSgpLmRpc3BhdGNoKFtzYW1wbGVTdG9yYWdlID0g
c3RkOjpleGNoYW5nZShtX3NhbXBsZVN0b3JhZ2UsIG51bGxwdHIpXSB7IH0pOwogICAgIENvcmVN
ZWRpYVdyYXBwZWQ8VHJhY2tSZWFkZXI+OjpmaW5hbGl6ZSgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5o
CmluZGV4IDc0NWUxNjdjNWQzZDZkNzRhMjQ5ZmM0MmNhZjk4MTJkN2M0MDFiMTQuLjdhYjIxZTI1
YzM4YTVjZGZmYzY1ZTgxMWRjYTMxNjM2MGE0NzUxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5oCkBAIC0z
Myw2ICszMywxMCBAQAogCiBERUNMQVJFX0NPUkVfTUVESUFfVFJBSVRTKFRyYWNrUmVhZGVyKTsK
IAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBXb3JrUXVldWU7Cit9CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTsKQEAgLTU1LDYgKzU5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tS
ZWFkZXI+IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgY29uc3QgV2Vi
Q29yZTo6QXVkaW9UcmFja1ByaXZhdGUqKTsKICAgICBzdGF0aWMgUmVmUHRyPFRyYWNrUmVhZGVy
PiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0IFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGUqKTsKIAorICAgIHN0YXRpYyBXVEY6OldvcmtRdWV1ZSYg
c3RvcmFnZVF1ZXVlKCk7CisKICAgICB1aW50NjRfdCB0cmFja0lEKCkgY29uc3QgeyByZXR1cm4g
bV90cmFja0lEOyB9CiAgICAgdm9pZCBhZGRTYW1wbGUoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxl
PiYmLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYpOwogICAgIHZvaWQgd2FpdEZvclNhbXBsZShGdW5j
dGlvbjxib29sKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wpPiYmKSBjb25zdDsKQEAgLTY3LDcg
KzczLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBDb3JlTWVkaWFXcmFwcGVkPFRy
YWNrUmVhZGVyPjo6dW53cmFwOwogCi0gICAgVHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYsIGNvbnN0
IEZvcm1hdFJlYWRlciYsIGNvbnN0IFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2UmLCBDTU1lZGlh
VHlwZSk7CisgICAgVHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYs
IENNTWVkaWFUeXBlLCB1aW50NjRfdCk7CiAKICAgICAvLyBDTUJhc2VDbGFzcwogICAgIFN0cmlu
ZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYktpdDo6VHJhY2tS
ZWFkZXIiX3M7IH0KQEAgLTgyLDcgKzg4LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBTYW1w
bGVTdG9yYWdlIHsKICAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwotICAg
ICAgICB+U2FtcGxlU3RvcmFnZSgpIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgfQorICAgICAg
ICB+U2FtcGxlU3RvcmFnZSgpIHsgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7IH0KICAgICAgICAg
V2ViQ29yZTo6U2FtcGxlTWFwIHNhbXBsZU1hcDsKICAgICAgICAgYm9vbCBoYXNBbGxTYW1wbGVz
IHsgZmFsc2UgfTsKICAgICB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>