<?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>210343</bug_id>
          
          <creation_ts>2020-04-10 09:52:03 -0700</creation_ts>
          <short_desc>Add SPI to handle proxy authentication and require secure proxy connections</short_desc>
          <delta_ts>2020-04-10 16:09:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1640229</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-10 09:52:03 -0700</bug_when>
    <thetext>Add SPI to handle proxy authentication and require secure proxy connections</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640232</commentid>
    <comment_count>1</comment_count>
      <attachid>396096</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-10 09:58:06 -0700</bug_when>
    <thetext>Created attachment 396096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640263</commentid>
    <comment_count>2</comment_count>
      <attachid>396103</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-10 11:00:39 -0700</bug_when>
    <thetext>Created attachment 396103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640286</commentid>
    <comment_count>3</comment_count>
      <attachid>396108</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-10 11:36:10 -0700</bug_when>
    <thetext>Created attachment 396108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640404</commentid>
    <comment_count>4</comment_count>
      <attachid>396108</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-04-10 15:46:12 -0700</bug_when>
    <thetext>Comment on attachment 396108
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640406</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-10 16:08:56 -0700</bug_when>
    <thetext>Committed r259910: &lt;https://trac.webkit.org/changeset/259910&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396108.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640408</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-10 16:09:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/61610480&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396096</attachid>
            <date>2020-04-10 09:58:06 -0700</date>
            <delta_ts>2020-04-10 11:00:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210343-20200410095805.patch</filename>
            <type>text/plain</type>
            <size>33503</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjU5NTc3KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA0
LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgQWRkIFNQSSB0byBoYW5kbGUgcHJveHkgYXV0aGVudGljYXRpb24gYW5kIHJlcXVpcmUgc2Vj
dXJlIHByb3h5IGNvbm5lY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTAzNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6CisKIDIwMjAtMDQtMDUg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgdmFsdWUgb2Yg
W0FWUGxheWVyVmlld0NvbnRyb2xsZXIgaXNQaWN0dXJlSW5QaWN0dXJlUG9zc2libGVdIGlzIE5P
IGluIHRoZSBmaXJzdCBhdHRlbXB0IHRvIGVudGVyIFBpUApJbmRleDogU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgJKHJldmlzaW9uIDI1OTU3NykKKysrIFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTMsNyArMTkzLDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNVUkxTZXNz
aW9uQwogQHByb3BlcnR5IChjb3B5KSBOU0RhdGEgKl9zb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9r
ZW5EYXRhOwogQHByb3BlcnR5IChudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKl9zb3VyY2VBcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiBAcHJvcGVydHkgKG51bGxhYmxlLCBjb3B5KSBOU1N0
cmluZyAqX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKLUBwcm9wZXJ0eSBC
T09MIF9zaG91bGRTa2lwUHJlZmVycmVkQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAgTlNfQVZBSUxB
QkxFKDEwXzEwLCA4XzApOworQHByb3BlcnR5IEJPT0wgX3Nob3VsZFNraXBQcmVmZXJyZWRDbGll
bnRDZXJ0aWZpY2F0ZUxvb2t1cDsKK0Bwcm9wZXJ0eSBCT09MIF9wcmV2ZW50c1N5c3RlbUhUVFBQ
cm94eUF1dGhlbnRpY2F0aW9uOworQHByb3BlcnR5IEJPT0wgX3JlcXVpcmVzU2VjdXJlSFRUUFNQ
cm94eUNvbm5lY3Rpb247CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIEBwcm9wZXJ0eSAobnVs
bGFibGUsIGNvcHkpIE5TU3RyaW5nICpfQ1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU5ODQyKQorKysgU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NSBAQAorMjAyMC0wNC0xMCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBTUEkg
dG8gaGFuZGxlIHByb3h5IGF1dGhlbnRpY2F0aW9uIGFuZCByZXF1aXJlIHNlY3VyZSBwcm94eSBj
b25uZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwMzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSSBhbHNvIHVzZSBXS1dlYlZpZXdDb25maWd1cmF0aW9uLmNvbm5lY3Rpb25Qcm94eURpY3Rp
b25hcnkgaW5zdGVhZCBvZiBDRlVSTFJlcXVlc3RTZXRQcm94eVNldHRpbmdzCisgICAgICAgIHRv
IHNldCBwcm94eSBzZXR0aW5ncy4gIFRoZSBlcXVpdmFsZW5jZSBvZiB0aGlzIGJlaGF2aW9yIGlz
IGNvdmVyZWQgYnkgdGhlIEFQSSB0ZXN0LgorCisgICAgICAgIFByb3h5IGF1dGhlbnRpY2F0aW9u
IGFuZCBkaWN0aW9uYXJ5IHNldHRpbmcgYXJlIGNvdmVyZWQgYnkgYW4gQVBJIHRlc3QuCisKKyAg
ICAgICAgU2VjdXJlIHByb3h5IGNvbm5lY3Rpb25zIGFyZSBub3QgY292ZXJlZCBieSBhbiBBUEkg
dGVzdCBiZWNhdXNlIHRoZXkgcmVxdWlyZSBzZWN1cmUgY29ubmVjdGlvbnMKKyAgICAgICAgdGhh
dCBhcmUgdmVyaWZpZWQgYnkgdGhlIHN5c3RlbSB0cnVzdGVkIHJvb3Qgc3RvcmUsIGFuZCBJIGRv
bid0IHdhbnQgdG8gYWRkIGEgdmFsaWQgdHJ1c3RlZAorICAgICAgICBjZXJ0aWZpY2F0ZSBhbmQg
cHJpdmF0ZSBrZXkgdG8gdGhlIHJlcG9zaXRvcnkgYmVjYXVzZSB0aGF0IHdvdWxkIGJlIGEgYnJl
YWNoIG9mIHNlY3VyaXR5LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRS
ZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZSBVUkxTZXNzaW9uOnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Np
b25Db2NvYSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uIHByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb25d
KToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJldmVu
dHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjpdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlv
bl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRSZXF1
aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6cHJldmVudHNTeXN0ZW1I
VFRQUHJveHlBdXRoZW50aWNhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRQcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRp
Y2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UmVxdWlyZXNTZWN1cmVIVFRQ
U1Byb3h5Q29ubmVjdGlvbik6CisKIDIwMjAtMDQtMDkgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9n
YXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQb3BvdmVycyBhcmUgZGlzbWlzc2VkIGltbWVk
aWF0ZWx5IHdoZW4gdGhleSB0cnkgYW5kIGJyaW5nIHVwIHRoZSBrZXlib2FyZC4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTk1NzcpCisrKyBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5jb2RlciA8PCBzdXBwcmVzc2VzQ29ubmVjdGlv
blRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2U7CiAgICAgZW5jb2RlciA8PCBhbGxvd3NTZXJ2ZXJQ
cmVjb25uZWN0OwogICAgIGVuY29kZXIgPDwgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsK
KyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb247CisgICAg
ZW5jb2RlciA8PCBwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uOwogICAgIGVu
Y29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9CiAKQEAgLTI0MCw2
ICsyNDIsMTYgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcgogICAg
IGlmICghaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPGJvb2w+IHJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNv
bm5lY3Rpb247CisgICAgZGVjb2RlciA+PiByZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0
aW9uOworICAgIGlmICghcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbikKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBPcHRpb25hbDxib29sPiBwcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uOworICAgIGRlY29kZXIgPj4gcHJldmVudHNT
eXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKKyAgICBpZiAoIXByZXZlbnRzU3lzdGVtSFRU
UFByb3h5QXV0aGVudGljYXRpb24pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAg
ICBPcHRpb25hbDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycz4gcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnM7CiAgICAgZGVjb2RlciA+PiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVyczsKICAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJz
KQpAQCAtMjg0LDYgKzI5Niw4IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXIKICAgICAgICAgLCBXVEZNb3ZlKCpzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9u
T25TeXN0ZW1DaGFuZ2UpCiAgICAgICAgICwgV1RGTW92ZSgqYWxsb3dzU2VydmVyUHJlY29ubmVj
dCkKICAgICAgICAgLCBXVEZNb3ZlKCppc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKQorICAg
ICAgICAsIFdURk1vdmUoKnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24pCisgICAg
ICAgICwgV1RGTW92ZSgqcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbikKICAg
ICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9
fTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1OTU3
NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsOCBAQCBzdHJ1Y3QgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgCiAgICAgYm9vbCBzdXBwcmVzc2VzQ29ubmVj
dGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgeyBmYWxzZSB9OwogICAgIGJvb2wgYWxsb3dz
U2VydmVyUHJlY29ubmVjdCB7IHRydWUgfTsKICAgICBib29sIGlzSW5BcHBCcm93c2VyUHJpdmFj
eUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29u
bmVjdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhl
bnRpY2F0aW9uIHsgZmFsc2UgfTsKICAgICAKICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EubW0JKHJldmlzaW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTg5LDEzICs4OSwxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5n
CiAKICAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNv
Y29hJj4oKm1fc2Vzc2lvbik7CiAgICAgYXV0byYgYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyID0g
Y29jb2FTZXNzaW9uLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpOwotICAgIGF1dG8qIHByb3h5
Q29uZmlndXJhdGlvbiA9IGNvY29hU2Vzc2lvbi5wcm94eUNvbmZpZ3VyYXRpb24oKTsKICAgICBp
ZiAoc2hvdWxkQ29udGVudFNuaWZmCiAjaWYgVVNFKENGTkVUV09SS19DT05URU5UX0VOQ09ESU5H
X1NOSUZGSU5HX09WRVJSSURFKQogICAgICAgICAmJiBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZgogI2VuZGlmCi0gICAgICAgICYmIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmllci5pc051bGwoKQot
ICAgICAgICAmJiAhcHJveHlDb25maWd1cmF0aW9uKQorICAgICAgICAmJiBib3VuZEludGVyZmFj
ZUlkZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gbXV0YWJs
ZVJlcXVlc3QgPSBhZG9wdE5TKFtuc1JlcXVlc3QgbXV0YWJsZUNvcHldKTsKQEAgLTExMSw5ICsx
MDksNiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nCiAgICAgaWYg
KCFib3VuZEludGVyZmFjZUlkZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIFttdXRhYmxlUmVx
dWVzdCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXI6Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVy
XTsKIAotICAgIGlmIChwcm94eUNvbmZpZ3VyYXRpb24pCi0gICAgICAgIENGVVJMUmVxdWVzdFNl
dFByb3h5U2V0dGluZ3MoW211dGFibGVSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCBwcm94eUNvbmZp
Z3VyYXRpb24pOwotCiAgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3QuYXV0b3JlbGVhc2Uo
KTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgJKHJldmlzaW9uIDI1OTU3NykKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoKICAgICBTZXNzaW9uV3JhcHBlciYg
c2Vzc2lvbldyYXBwZXJGb3JUYXNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bik7CiAgICAgdm9pZCBzZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChib29sIGVuYWJsZWQp
IG92ZXJyaWRlIHsgbV9pc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkID0gZW5hYmxlZDsgfQog
ICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsgfQorICAgIGJvb2wgcHJldmVudHNTeXN0ZW1I
VFRQUHJveHlBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmVudHNTeXN0ZW1I
VFRQUHJveHlBdXRoZW50aWNhdGlvbjsgfQogICAgIAogcHJpdmF0ZToKICAgICB2b2lkIGludmFs
aWRhdGVBbmRDYW5jZWwoKSBvdmVycmlkZTsKQEAgLTE0NCw2ICsxNDUsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgU3RyaW5nIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICAgICBib29sIG1faXNJbkFw
cEJyb3dzZXJQcml2YWN5RW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3ByZXZlbnRzU3lz
dGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24geyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCShyZXZpc2lvbiAyNTk1NzcpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0J
KHdvcmtpbmcgY29weSkKQEAgLTY0Niw3ICs2NDYsNyBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5T
VVJMU2Vzc2lvbiAqKXNlc3NpCiAgICAgCiAgICAgLy8gUHJveHkgYXV0aGVudGljYXRpb24gaXMg
aGFuZGxlZCBieSBDRk5ldHdvcmsgaW50ZXJuYWxseS4gV2UgY2FuIGdldCBoZXJlIGlmIHRoZSB1
c2VyIGNhbmNlbHMKICAgICAvLyBDRk5ldHdvcmsgYXV0aGVudGljYXRpb24gZGlhbG9nLCBhbmQg
d2Ugc2hvdWxkbid0IGFzayB0aGUgY2xpZW50IHRvIGRpc3BsYXkgYW5vdGhlciBvbmUgaW4gdGhh
dCBjYXNlLgotICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLmlzUHJveHkpIHsKKyAg
ICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5pc1Byb3h5ICYmICFzZXNzaW9uQ29jb2Et
PnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24oKSkgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgbmls
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwNzYsNiArMTA3Niw3IEBAIE5ldHdvcmtT
ZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EKICAgICAsIG1fZmFzdFNlcnZlclRydXN0
RXZhbHVhdGlvbkVuYWJsZWQocGFyYW1ldGVycy5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5h
YmxlZCkKICAgICAsIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZShwYXJhbWV0ZXJzLmRhdGFD
b25uZWN0aW9uU2VydmljZVR5cGUpCiAgICAgLCBtX2lzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJs
ZWQocGFyYW1ldGVycy5pc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKQorICAgICwgbV9wcmV2
ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKHBhcmFtZXRlcnMucHJldmVudHNTeXN0
ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbikKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZp
bGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAKQEAgLTExMTgs
NyArMTExOSw5IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EKICAg
ICBjb25maWd1cmF0aW9uLl9hbGxvd3NIVFRQMyA9IHBhcmFtZXRlcnMuaHR0cDNFbmFibGVkOwog
I2VuZGlmCiAKLSAgICBjb25maWd1cmF0aW9uLmNvbm5lY3Rpb25Qcm94eURpY3Rpb25hcnkgPSBw
cm94eURpY3Rpb25hcnkocGFyYW1ldGVycy5odHRwUHJveHksIHBhcmFtZXRlcnMuaHR0cHNQcm94
eSk7CisgICAgY29uZmlndXJhdGlvbi5fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNh
dGlvbiA9IHBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsK
KyAgICBjb25maWd1cmF0aW9uLl9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uID0g
cGFyYW1ldGVycy5yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOworICAgIGNvbmZp
Z3VyYXRpb24uY29ubmVjdGlvblByb3h5RGljdGlvbmFyeSA9IChOU0RpY3Rpb25hcnkgKilwYXJh
bWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbi5nZXQoKSA/OiBwcm94eURpY3Rpb25hcnkocGFyYW1l
dGVycy5odHRwUHJveHksIHBhcmFtZXRlcnMuaHR0cHNQcm94eSk7CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIGlmICghbV9kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlLmlzRW1wdHko
KSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lv
biAyNTk1NzcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuCiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBsZWdhY3lUTFNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFi
bGUsIGNvcHkpIE5TRGljdGlvbmFyeSAqcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRp
Y2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlD
b25uZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIC8vIFRoZXNlIHByb3BlcnRpZXMgb25seSBtYWtlIHNlbnNlIGZvciBwZXJzaXN0
ZW50IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwogLy8gYW4gZXhjZXB0aW9uIGlmIHNldCBm
b3Igbm9uLXBlcnNpc3RlbnQgc3RvcmVzLgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5tbQkocmV2aXNpb24gMjU5NTc3KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTgsNiArNDE4LDI2IEBAIC0gKHZvaWQpc2V0RGF0YUNvbm5lY3Rpb25T
ZXJ2aWNlVHlwZTooTlMKICAgICBfY29uZmlndXJhdGlvbi0+c2V0RGF0YUNvbm5lY3Rpb25TZXJ2
aWNlVHlwZSh0eXBlKTsKIH0KIAorLSAoQk9PTClwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhl
bnRpY2F0aW9uCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5wcmV2ZW50c1N5c3RlbUhU
VFBQcm94eUF1dGhlbnRpY2F0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0UHJldmVudHNTeXN0ZW1I
VFRQUHJveHlBdXRoZW50aWNhdGlvbjooQk9PTClwcmV2ZW50cworeworICAgIF9jb25maWd1cmF0
aW9uLT5zZXRQcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKHByZXZlbnRzKTsK
K30KKworLSAoQk9PTClyZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uCit7CisgICAg
cmV0dXJuIF9jb25maWd1cmF0aW9uLT5yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9u
KCk7Cit9CisKKy0gKHZvaWQpc2V0UmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbjoo
Qk9PTClyZXF1aXJlcworeworICAgIF9jb25maWd1cmF0aW9uLT5zZXRSZXF1aXJlc1NlY3VyZUhU
VFBTUHJveHlDb25uZWN0aW9uKHJlcXVpcmVzKTsKK30KKwogLSAodm9pZClzZXRQcm94eUNvbmZp
Z3VyYXRpb246KE5TRGljdGlvbmFyeSAqKWNvbmZpZ3VyYXRpb24KIHsKICAgICBfY29uZmlndXJh
dGlvbi0+c2V0UHJveHlDb25maWd1cmF0aW9uKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpW2Nv
bmZpZ3VyYXRpb24gY29weV0pOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAJKHJldmlzaW9uIDI1OTU3
NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMxLDYgKzIyMzEsOSBAQCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSA9IG1fY29uZmln
dXJhdGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlKCk7
CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbG93c1NlcnZlclByZWNvbm5lY3QgPSBt
X2NvbmZpZ3VyYXRpb24tPmFsbG93c1NlcnZlclByZWNvbm5lY3QoKTsKICAgICBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgPSBXVEZNb3Zl
KHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbiA9IG1fY29uZmlndXJh
dGlvbi0+cmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbigpOworICAgIG5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uID0g
bV9jb25maWd1cmF0aW9uLT5wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKCk7
CisKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IFdURk1vdmUobmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAkocmV2aXNpb24g
MjU5NTc3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MSw2ICs5MSw4IEBA
IFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gV2Vic2kKICAgICBjb3B5LT5tX3Rl
c3RTcGVlZE11bHRpcGxpZXIgPSB0aGlzLT5tX3Rlc3RTcGVlZE11bHRpcGxpZXI7CiAgICAgY29w
eS0+bV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgPSB0aGlz
LT5tX3N1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZTsKICAgICBj
b3B5LT5tX2FsbG93c1NlcnZlclByZWNvbm5lY3QgPSB0aGlzLT5tX2FsbG93c1NlcnZlclByZWNv
bm5lY3Q7CisgICAgY29weS0+bV9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uID0g
dGhpcy0+bV9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOworICAgIGNvcHktPm1f
cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IHRoaXMtPm1fcHJldmVudHNT
eXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBp
ZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGNvcHktPm1fcHJveHlDb25maWd1cmF0
aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5KG51bGxwdHIsIHRoaXMtPm1fcHJv
eHlDb25maWd1cmF0aW9uLmdldCgpKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1Myw2ICsxNTMsMTIgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dzU2VydmVyUHJl
Y29ubmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzU2VydmVyUHJlY29ubmVjdDsgfQogICAg
IHZvaWQgc2V0QWxsb3dzU2VydmVyUHJlY29ubmVjdChib29sIGFsbG93cykgeyBtX2FsbG93c1Nl
cnZlclByZWNvbm5lY3QgPSBhbGxvd3M7IH0KIAorICAgIGJvb2wgcHJldmVudHNTeXN0ZW1IVFRQ
UHJveHlBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmVudHNTeXN0ZW1IVFRQ
UHJveHlBdXRoZW50aWNhdGlvbjsgfQorICAgIHZvaWQgc2V0UHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbihib29sIHByZXZlbnRzKSB7IG1fcHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbiA9IHByZXZlbnRzOyB9CisKKyAgICBib29sIHJlcXVpcmVzU2VjdXJl
SFRUUFNQcm94eUNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcXVpcmVzU2VjdXJlSFRU
UFNQcm94eUNvbm5lY3Rpb247IH07CisgICAgdm9pZCBzZXRSZXF1aXJlc1NlY3VyZUhUVFBTUHJv
eHlDb25uZWN0aW9uKGJvb2wgcmVxdWlyZXMpIHsgbV9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlD
b25uZWN0aW9uID0gcmVxdWlyZXM7IH0KKwogcHJpdmF0ZToKICAgICBJc1BlcnNpc3RlbnQgbV9p
c1BlcnNpc3RlbnQgeyBJc1BlcnNpc3RlbnQ6Ok5vIH07CiAKQEAgLTE5NCw2ICsyMDAsOCBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV90ZXN0aW5nU2Vzc2lvbkVuYWJsZWQgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0IHsgdHJ1ZSB9OworICAg
IGJvb2wgbV9wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbiB7IGZhbHNlIH07
CiAgICAgdW5zaWduZWQgbV90ZXN0U3BlZWRNdWx0aXBsaWVyIHsgMSB9OwogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25maWd1cmF0
aW9uOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjU5ODc5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMjAtMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIHRvIGhhbmRsZSBwcm94eSBhdXRoZW50
aWNhdGlvbiBhbmQgcmVxdWlyZSBzZWN1cmUgcHJveHkgY29ubmVjdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDM0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UQ1BT
ZXJ2ZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VENQU2VydmVyOjpzdGFydFNlY3Vy
ZUNvbm5lY3Rpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VENQU2VydmVyOjpUQ1BTZXJ2
ZXIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVENQU2VydmVyLmg6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbToKKyAgICAgICAgKC1bUHJveHlE
ZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlh
dGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bUHJveHlEZWxlZ2F0
ZSB3YWl0Rm9yQWxlcnRdKToKKyAgICAgICAgKC1bUHJveHlEZWxlZ2F0ZSB3ZWJWaWV3OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA0LTEwICBBbGljaWEgQm95YSBHYXJj
w61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1RGXSBEYXRhTXV0ZXg6IEFkZCBy
dW5VbmxvY2tlZCgpCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuY3BwCShyZXZpc2lvbiAy
NTk1NzcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzNCw4NyArMTM0LDkwIEBAIFRDUFNlcnZlcjo6VENQU2VydmVyKEZ1bmN0aW9uPHZv
aWQoU29ja2UKIH0KIAogI2lmIEhBVkUoU1NMKQotVENQU2VydmVyOjpUQ1BTZXJ2ZXIoUHJvdG9j
b2wgcHJvdG9jb2wsIEZ1bmN0aW9uPHZvaWQoU1NMKik+JiYgc2VjdXJlQ29ubmVjdGlvbkhhbmRs
ZXIsIE9wdGlvbmFsPHVpbnQxNl90PiBtYXhUTFNWZXJzaW9uKQordm9pZCBUQ1BTZXJ2ZXI6OnN0
YXJ0U2VjdXJlQ29ubmVjdGlvbihTb2NrZXQgc29ja2V0LCBGdW5jdGlvbjx2b2lkKFNTTCopPiYm
IHNlY3VyZUNvbm5lY3Rpb25IYW5kbGVyLCBib29sIHJlcXVlc3RDbGllbnRDZXJ0aWZpY2F0ZSwg
T3B0aW9uYWw8dWludDE2X3Q+IG1heFRMU1ZlcnNpb24pCiB7Ci0gICAgYXV0byBzdGFydFNlY3Vy
ZUNvbm5lY3Rpb24gPSBbc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHNlY3VyZUNv
bm5lY3Rpb25IYW5kbGVyKSwgcHJvdG9jb2wsIG1heFRMU1ZlcnNpb25dIChTb2NrZXQgc29ja2V0
KSB7Ci0gICAgICAgIFNTTF9saWJyYXJ5X2luaXQoKTsKKyAgICBTU0xfbGlicmFyeV9pbml0KCk7
CiAKLSAgICAgICAgc3NsOjp1bmlxdWVfcHRyPFNTTF9DVFg+IGN0eChTU0xfQ1RYX25ldyhUTFNf
d2l0aF9idWZmZXJzX21ldGhvZCgpKSk7CisgICAgc3NsOjp1bmlxdWVfcHRyPFNTTF9DVFg+IGN0
eChTU0xfQ1RYX25ldyhUTFNfd2l0aF9idWZmZXJzX21ldGhvZCgpKSk7CiAKLSAgICAgICAgLy8g
VGhpcyBpcyBhIHRlc3QgY2VydGlmaWNhdGUgZnJvbSBCb3JpbmdTU0wuCi0gICAgICAgIFN0cmlu
ZyBjZXJ0UEVNKAotICAgICAgICAiTUlJQ1dEQ0NBY0dnQXdJQkFnSUpBUHV3VEM2ckVKc01NQTBH
Q1NxR1NJYjNEUUVCQlFVQU1FVXhDekFKQmdOViIKLSAgICAgICAgIkJBWVRBa0ZWTVJNd0VRWURW
UVFJREFwVGIyMWxMVk4wWVhSbE1TRXdId1lEVlFRS0RCaEpiblJsY201bGRDQlgiCi0gICAgICAg
ICJhV1JuYVhSeklGQjBlU0JNZEdRd0hoY05NVFF3TkRJek1qQTFNRFF3V2hjTk1UY3dOREl5TWpB
MU1EUXdXakJGIgotICAgICAgICAiTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNBd0tVMjl0
WlMxVGRHRjBaVEVoTUI4R0ExVUVDZ3dZU1c1MCIKLSAgICAgICAgIlpYSnVaWFFnVjJsa1oybDBj
eUJRZEhrZ1RIUmtNSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0IiCi0gICAgICAg
ICJnUURZSzhpbU11UmkvMDN6MEsxWmkwV252ZkZIdndsWWV5SzlOYTZYSllhVW9JREF0Qjkya1dk
R01kQVFoTGNpIgotICAgICAgICAiSG5BamtYTEk2VzE1T29WM2dBL0VsUloxeFVweFRNaGpQNlB5
WTV3cVQ1cjZ5OEZ4YmlpRktLQW5IbVVjcmdmViIKLSAgICAgICAgIlcyOHRRKzBya0xHTXJ5UnRy
dWtYT2dYQnY3Z2NybVU3RzFqQzJhN1dxbWVJOFFJREFRQUJvMUF3VGpBZEJnTlYiCi0gICAgICAg
ICJIUTRFRmdRVWkzWFZyTXNJdmc0ZlpiZjZWcjVzcDNYYWhhOHdId1lEVlIwakJCZ3dGb0FVaTNY
VnJNc0l2ZzRmIgotICAgICAgICAiWmJmNlZyNXNwM1hhaGE4d0RBWURWUjBUQkFVd0F3RUIvekFO
QmdrcWhraUc5dzBCQVFVRkFBT0JnUUE3NkhodCIKLSAgICAgICAgImxkWTlhdmNUR1N3YndvaXVJ
cXYwalRMMWZIRm56eTNSSE1MRGgrTHB2b2xjNURTclNKSENQNVd1SzBlZUpYaHIiCi0gICAgICAg
ICJUNW9RcEhMOXovY0NETEFLQ0tSYTR1VjBmaEVkT1dCcXlSOXA4eTVqSnR5ZTcydDZDdUZVVjVp
cWNwRjRCSDRmIgotICAgICAgICAiajJWTkh3c1NySndrRDRRVUdsVXRIN3Z3blFteUNGeFpNbVdB
Smc9PSIpOwotICAgICAgICBWZWN0b3I8dWludDhfdD4gY2VydERFUjsKLSAgICAgICAgYmFzZTY0
RGVjb2RlKGNlcnRQRU0sIGNlcnRERVIsIFdURjo6QmFzZTY0RGVjb2RlT3B0aW9uczo6QmFzZTY0
RGVmYXVsdCk7Ci0gICAgICAgIHNzbDo6dW5pcXVlX3B0cjxDUllQVE9fQlVGRkVSPiBjZXJ0KENS
WVBUT19CVUZGRVJfbmV3KGNlcnRERVIuZGF0YSgpLCBjZXJ0REVSLnNpemUoKSwgbnVsbHB0cikp
OwotICAgICAgICBBU1NFUlQoY2VydCk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHRlc3Qga2V5
IGZyb20gQm9yaW5nU1NMLgotICAgICAgICBjaGFyIGtLZXlQRU1bXSA9Ci0gICAgICAgICItLS0t
LUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tXG4iCi0gICAgICAgICJNSUlDWGdJQkFBS0JnUURZ
SzhpbU11UmkvMDN6MEsxWmkwV252ZkZIdndsWWV5SzlOYTZYSllhVW9JREF0QjkyXG4iCi0gICAg
ICAgICJrV2RHTWRBUWhMY2lIbkFqa1hMSTZXMTVPb1YzZ0EvRWxSWjF4VXB4VE1oalA2UHlZNXdx
VDVyNnk4RnhiaWlGXG4iCi0gICAgICAgICJLS0FuSG1VY3JnZlZXMjh0USswcmtMR01yeVJ0cnVr
WE9nWEJ2N2djcm1VN0cxakMyYTdXcW1lSThRSURBUUFCXG4iCi0gICAgICAgICJBb0dCQUlCeTA5
RmQ0RE9xL0lqcDhIZUt1Q01LVEhxVFcxeEdIc2hMUTZqd1ZWMnZXWkluOWFJZ21Ec3ZrakNlXG4i
Ci0gICAgICAgICJpNnNzWnZuYmpWY3d6U29CeWhqTjhaQ2YvaTE1SEVDV0RGRmg2Z3QwUDV6ME1u
Q2h3elptdmF0Vi9GWENUMGorXG4iCi0gICAgICAgICJXbUdOQi9na2VoS2pHWExMY2pUYjZkUllW
SlNDWmhWdU9MTGNiV0lWMTBnZ2dKUUJBa0VBOFM4c0dlNGV6eXlaXG4iCi0gICAgICAgICJtNGU5
cjk1ZzZzNDNrUHF0ajVyZXdUc1V4dCsybjRlVm9kRCtaVWxDVUxXVk5BRkxrWVJUQkNBU2xTcm05
WGhqXG4iCi0gICAgICAgICJRcG1XQUhKVWtRSkJBT1Z6UWRGVWFld0x0ZE9Kb1BDdHBZb1kxemQy
MmVhZThUUUVtcEdPUjExTDZrYnhMUXNrXG4iCi0gICAgICAgICJhTWx5L0RPbk9hYTgydHFBR1Rk
cURFWmdTTm1DZUtLa25tRUNRQXZwblk4R1VPVkF1YkdSNmMrVzkwaUJ1UUxqXG4iCi0gICAgICAg
ICJMdEZwLzlpaGQydy9Qb0R3ckhaYW9VWVZjVDRWU2ZKUW9nL2s3a2pFNE1ZWFlXTDhlRUtnM1dU
V1FORUNRUURrXG4iCi0gICAgICAgICIxMDRXaTkxVW1kMVB6RjBpamQyalhPRVJKVTF3RUtlNlhM
a1lZTkhXUUFlNWw0SjRNV2o5T2R4RlhBeEl1dVIvXG4iCi0gICAgICAgICJ0ZkR3YnFrdGE0eGN1
eDY3Ly9raEFrRUF2dlJYTEhUYWE2VkZ6VGFpaU84U2FGc0hWM2xReVhPdE1yQnBCNWpkXG4iCi0g
ICAgICAgICJtb1pXZ2pIdkIyVzlDa243c0Rxc1BCK1UydHlYMGpvRGRRRXl1aU1FQ0RZOG9RPT1c
biIKLSAgICAgICAgIi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tXG4iOwotCi0gICAgICAg
IHNzbDo6dW5pcXVlX3B0cjxCSU8+IHByaXZhdGVLZXlCSU8oQklPX25ld19tZW1fYnVmKGtLZXlQ
RU0sIHN0cmxlbihrS2V5UEVNKSkpOwotICAgICAgICBzc2w6OnVuaXF1ZV9wdHI8RVZQX1BLRVk+
IHByaXZhdGVLZXkoUEVNX3JlYWRfYmlvX1ByaXZhdGVLZXkocHJpdmF0ZUtleUJJTy5nZXQoKSwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikpOwotICAgICAgICBBU1NFUlQocHJpdmF0ZUtleSk7
Ci0KLSAgICAgICAgU1NMX0NUWF9zZXRfY2hhaW5fYW5kX2tleShjdHguZ2V0KCksIHJlaW50ZXJw
cmV0X2Nhc3Q8Q1JZUFRPX0JVRkZFUiAqY29uc3QgKj4oJmNlcnQpLCAxLCBwcml2YXRlS2V5Lmdl
dCgpLCBudWxscHRyKTsKLQotICAgICAgICBpZiAocHJvdG9jb2wgPT0gUHJvdG9jb2w6OkhUVFBT
V2l0aENsaWVudENlcnRpZmljYXRlUmVxdWVzdCkgewotICAgICAgICAgICAgU1NMX0NUWF9zZXRf
Y3VzdG9tX3ZlcmlmeShjdHguZ2V0KCksIFNTTF9WRVJJRllfUEVFUiB8IFNTTF9WRVJJRllfRkFJ
TF9JRl9OT19QRUVSX0NFUlQsIFtdIChTU0wqIHNzbCwgdWludDhfdCopIC0+IHNzbF92ZXJpZnlf
cmVzdWx0X3QgewotICAgICAgICAgICAgICAgIGF1dG8gY2hhaW4gPSBTU0xfZ2V0MF9wZWVyX2Nl
cnRpZmljYXRlcyhzc2wpOwotICAgICAgICAgICAgICAgIEVYUEVDVF9FUShza19DUllQVE9fQlVG
RkVSX251bShjaGFpbiksIDJ1KTsKLSAgICAgICAgICAgICAgICBhdXRvIGNlcnQgPSBza19DUllQ
VE9fQlVGRkVSX3ZhbHVlKGNoYWluLCAwKTsKLSAgICAgICAgICAgICAgICBhdXRvIGV4cGVjdGVk
Q2VydCA9IHRlc3RDZXJ0aWZpY2F0ZSgpOwotICAgICAgICAgICAgICAgIEVYUEVDVF9FUShDUllQ
VE9fQlVGRkVSX2xlbihjZXJ0KSwgZXhwZWN0ZWRDZXJ0LnNpemUoKSk7Ci0gICAgICAgICAgICAg
ICAgRVhQRUNUX1RSVUUoIW1lbWNtcChDUllQVE9fQlVGRkVSX2RhdGEoY2VydCksIGV4cGVjdGVk
Q2VydC5kYXRhKCksIGV4cGVjdGVkQ2VydC5zaXplKCkpKTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gc3NsX3ZlcmlmeV9vazsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9CisgICAgLy8gVGhp
cyBpcyBhIHRlc3QgY2VydGlmaWNhdGUgZnJvbSBCb3JpbmdTU0wuCisgICAgU3RyaW5nIGNlcnRQ
RU0oCisgICAgIk1JSUNXRENDQWNHZ0F3SUJBZ0lKQVB1d1RDNnJFSnNNTUEwR0NTcUdTSWIzRFFF
QkJRVUFNRVV4Q3pBSkJnTlYiCisgICAgIkJBWVRBa0ZWTVJNd0VRWURWUVFJREFwVGIyMWxMVk4w
WVhSbE1TRXdId1lEVlFRS0RCaEpiblJsY201bGRDQlgiCisgICAgImFXUm5hWFJ6SUZCMGVTQk1k
R1F3SGhjTk1UUXdOREl6TWpBMU1EUXdXaGNOTVRjd05ESXlNakExTURRd1dqQkYiCisgICAgIk1R
c3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQXdLVTI5dFpTMVRkR0YwWlRFaE1COEdBMVVFQ2d3
WVNXNTAiCisgICAgIlpYSnVaWFFnVjJsa1oybDBjeUJRZEhrZ1RIUmtNSUdmTUEwR0NTcUdTSWIz
RFFFQkFRVUFBNEdOQURDQmlRS0IiCisgICAgImdRRFlLOGltTXVSaS8wM3owSzFaaTBXbnZmRkh2
d2xZZXlLOU5hNlhKWWFVb0lEQXRCOTJrV2RHTWRBUWhMY2kiCisgICAgIkhuQWprWExJNlcxNU9v
VjNnQS9FbFJaMXhVcHhUTWhqUDZQeVk1d3FUNXI2eThGeGJpaUZLS0FuSG1VY3JnZlYiCisgICAg
IlcyOHRRKzBya0xHTXJ5UnRydWtYT2dYQnY3Z2NybVU3RzFqQzJhN1dxbWVJOFFJREFRQUJvMUF3
VGpBZEJnTlYiCisgICAgIkhRNEVGZ1FVaTNYVnJNc0l2ZzRmWmJmNlZyNXNwM1hhaGE4d0h3WURW
UjBqQkJnd0ZvQVVpM1hWck1zSXZnNGYiCisgICAgIlpiZjZWcjVzcDNYYWhhOHdEQVlEVlIwVEJB
VXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRVUZBQU9CZ1FBNzZIaHQiCisgICAgImxkWTlhdmNUR1N3
YndvaXVJcXYwalRMMWZIRm56eTNSSE1MRGgrTHB2b2xjNURTclNKSENQNVd1SzBlZUpYaHIiCisg
ICAgIlQ1b1FwSEw5ei9jQ0RMQUtDS1JhNHVWMGZoRWRPV0JxeVI5cDh5NWpKdHllNzJ0NkN1RlVW
NWlxY3BGNEJINGYiCisgICAgImoyVk5Id3NTckp3a0Q0UVVHbFV0SDd2d25RbXlDRnhaTW1XQUpn
PT0iKTsKKyAgICBWZWN0b3I8dWludDhfdD4gY2VydERFUjsKKyAgICBiYXNlNjREZWNvZGUoY2Vy
dFBFTSwgY2VydERFUiwgV1RGOjpCYXNlNjREZWNvZGVPcHRpb25zOjpCYXNlNjREZWZhdWx0KTsK
KyAgICBzc2w6OnVuaXF1ZV9wdHI8Q1JZUFRPX0JVRkZFUj4gY2VydChDUllQVE9fQlVGRkVSX25l
dyhjZXJ0REVSLmRhdGEoKSwgY2VydERFUi5zaXplKCksIG51bGxwdHIpKTsKKyAgICBBU1NFUlQo
Y2VydCk7CisKKyAgICAvLyBUaGlzIGlzIGEgdGVzdCBrZXkgZnJvbSBCb3JpbmdTU0wuCisgICAg
Y2hhciBrS2V5UEVNW10gPQorICAgICItLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tXG4i
CisgICAgIk1JSUNYZ0lCQUFLQmdRRFlLOGltTXVSaS8wM3owSzFaaTBXbnZmRkh2d2xZZXlLOU5h
NlhKWWFVb0lEQXRCOTJcbiIKKyAgICAia1dkR01kQVFoTGNpSG5BamtYTEk2VzE1T29WM2dBL0Vs
UloxeFVweFRNaGpQNlB5WTV3cVQ1cjZ5OEZ4YmlpRlxuIgorICAgICJLS0FuSG1VY3JnZlZXMjh0
USswcmtMR01yeVJ0cnVrWE9nWEJ2N2djcm1VN0cxakMyYTdXcW1lSThRSURBUUFCXG4iCisgICAg
IkFvR0JBSUJ5MDlGZDRET3EvSWpwOEhlS3VDTUtUSHFUVzF4R0hzaExRNmp3VlYydldaSW45YUln
bURzdmtqQ2VcbiIKKyAgICAiaTZzc1p2bmJqVmN3elNvQnloak44WkNmL2kxNUhFQ1dERkZoNmd0
MFA1ejBNbkNod3pabXZhdFYvRlhDVDBqK1xuIgorICAgICJXbUdOQi9na2VoS2pHWExMY2pUYjZk
UllWSlNDWmhWdU9MTGNiV0lWMTBnZ2dKUUJBa0VBOFM4c0dlNGV6eXlaXG4iCisgICAgIm00ZTly
OTVnNnM0M2tQcXRqNXJld1RzVXh0KzJuNGVWb2REK1pVbENVTFdWTkFGTGtZUlRCQ0FTbFNybTlY
aGpcbiIKKyAgICAiUXBtV0FISlVrUUpCQU9WelFkRlVhZXdMdGRPSm9QQ3RwWW9ZMXpkMjJlYWU4
VFFFbXBHT1IxMUw2a2J4TFFza1xuIgorICAgICJhTWx5L0RPbk9hYTgydHFBR1RkcURFWmdTTm1D
ZUtLa25tRUNRQXZwblk4R1VPVkF1YkdSNmMrVzkwaUJ1UUxqXG4iCisgICAgIkx0RnAvOWloZDJ3
L1BvRHdySFphb1VZVmNUNFZTZkpRb2cvazdrakU0TVlYWVdMOGVFS2czV1RXUU5FQ1FRRGtcbiIK
KyAgICAiMTA0V2k5MVVtZDFQekYwaWpkMmpYT0VSSlUxd0VLZTZYTGtZWU5IV1FBZTVsNEo0TVdq
OU9keEZYQXhJdXVSL1xuIgorICAgICJ0ZkR3YnFrdGE0eGN1eDY3Ly9raEFrRUF2dlJYTEhUYWE2
VkZ6VGFpaU84U2FGc0hWM2xReVhPdE1yQnBCNWpkXG4iCisgICAgIm1vWldnakh2QjJXOUNrbjdz
RHFzUEIrVTJ0eVgwam9EZFFFeXVpTUVDRFk4b1E9PVxuIgorICAgICItLS0tLUVORCBSU0EgUFJJ
VkFURSBLRVktLS0tLVxuIjsKKworICAgIHNzbDo6dW5pcXVlX3B0cjxCSU8+IHByaXZhdGVLZXlC
SU8oQklPX25ld19tZW1fYnVmKGtLZXlQRU0sIHN0cmxlbihrS2V5UEVNKSkpOworICAgIHNzbDo6
dW5pcXVlX3B0cjxFVlBfUEtFWT4gcHJpdmF0ZUtleShQRU1fcmVhZF9iaW9fUHJpdmF0ZUtleShw
cml2YXRlS2V5QklPLmdldCgpLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgQVNT
RVJUKHByaXZhdGVLZXkpOworCisgICAgU1NMX0NUWF9zZXRfY2hhaW5fYW5kX2tleShjdHguZ2V0
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q1JZUFRPX0JVRkZFUiAqY29uc3QgKj4oJmNlcnQpLCAxLCBw
cml2YXRlS2V5LmdldCgpLCBudWxscHRyKTsKKworICAgIGlmIChyZXF1ZXN0Q2xpZW50Q2VydGlm
aWNhdGUpIHsKKyAgICAgICAgU1NMX0NUWF9zZXRfY3VzdG9tX3ZlcmlmeShjdHguZ2V0KCksIFNT
TF9WRVJJRllfUEVFUiB8IFNTTF9WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlQsIFtdIChTU0wq
IHNzbCwgdWludDhfdCopIC0+IHNzbF92ZXJpZnlfcmVzdWx0X3QgeworICAgICAgICAgICAgYXV0
byBjaGFpbiA9IFNTTF9nZXQwX3BlZXJfY2VydGlmaWNhdGVzKHNzbCk7CisgICAgICAgICAgICBF
WFBFQ1RfRVEoc2tfQ1JZUFRPX0JVRkZFUl9udW0oY2hhaW4pLCAydSk7CisgICAgICAgICAgICBh
dXRvIGNlcnQgPSBza19DUllQVE9fQlVGRkVSX3ZhbHVlKGNoYWluLCAwKTsKKyAgICAgICAgICAg
IGF1dG8gZXhwZWN0ZWRDZXJ0ID0gdGVzdENlcnRpZmljYXRlKCk7CisgICAgICAgICAgICBFWFBF
Q1RfRVEoQ1JZUFRPX0JVRkZFUl9sZW4oY2VydCksIGV4cGVjdGVkQ2VydC5zaXplKCkpOworICAg
ICAgICAgICAgRVhQRUNUX1RSVUUoIW1lbWNtcChDUllQVE9fQlVGRkVSX2RhdGEoY2VydCksIGV4
cGVjdGVkQ2VydC5kYXRhKCksIGV4cGVjdGVkQ2VydC5zaXplKCkpKTsKKyAgICAgICAgICAgIHJl
dHVybiBzc2xfdmVyaWZ5X29rOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAobWF4VExT
VmVyc2lvbikKKyAgICAgICAgU1NMX0NUWF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24oY3R4LmdldCgp
LCAqbWF4VExTVmVyc2lvbik7CiAKLSAgICAgICAgaWYgKG1heFRMU1ZlcnNpb24pCi0gICAgICAg
ICAgICBTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbihjdHguZ2V0KCksICptYXhUTFNWZXJz
aW9uKTsKKyAgICBzc2w6OnVuaXF1ZV9wdHI8U1NMPiBzc2woU1NMX25ldyhjdHguZ2V0KCkpKTsK
KyAgICBBU1NFUlQoc3NsKTsKKyAgICBTU0xfc2V0X2ZkKHNzbC5nZXQoKSwgc29ja2V0KTsKIAot
ICAgICAgICBzc2w6OnVuaXF1ZV9wdHI8U1NMPiBzc2woU1NMX25ldyhjdHguZ2V0KCkpKTsKLSAg
ICAgICAgQVNTRVJUKHNzbCk7Ci0gICAgICAgIFNTTF9zZXRfZmQoc3NsLmdldCgpLCBzb2NrZXQp
OwotCi0gICAgICAgIGF1dG8gYWNjZXB0UmVzdWx0ID0gU1NMX2FjY2VwdChzc2wuZ2V0KCkpOwot
ICAgICAgICBzZWN1cmVDb25uZWN0aW9uSGFuZGxlcihhY2NlcHRSZXN1bHQgPiAwID8gc3NsLmdl
dCgpIDogbnVsbHB0cik7Ci0gICAgfTsKKyAgICBhdXRvIGFjY2VwdFJlc3VsdCA9IFNTTF9hY2Nl
cHQoc3NsLmdldCgpKTsKKyAgICBzZWN1cmVDb25uZWN0aW9uSGFuZGxlcihhY2NlcHRSZXN1bHQg
PiAwID8gc3NsLmdldCgpIDogbnVsbHB0cik7Cit9OwogCitUQ1BTZXJ2ZXI6OlRDUFNlcnZlcihQ
cm90b2NvbCBwcm90b2NvbCwgRnVuY3Rpb248dm9pZChTU0wqKT4mJiBzZWN1cmVDb25uZWN0aW9u
SGFuZGxlciwgT3B0aW9uYWw8dWludDE2X3Q+IG1heFRMU1ZlcnNpb24pCit7CiAgICAgc3dpdGNo
IChwcm90b2NvbCkgewogICAgIGNhc2UgUHJvdG9jb2w6OkhUVFBTOgogICAgIGNhc2UgUHJvdG9j
b2w6OkhUVFBTV2l0aENsaWVudENlcnRpZmljYXRlUmVxdWVzdDoKLSAgICAgICAgbV9jb25uZWN0
aW9uSGFuZGxlciA9IFdURk1vdmUoc3RhcnRTZWN1cmVDb25uZWN0aW9uKTsKKyAgICAgICAgbV9j
b25uZWN0aW9uSGFuZGxlciA9IFtzZWN1cmVDb25uZWN0aW9uSGFuZGxlciA9IFdURk1vdmUoc2Vj
dXJlQ29ubmVjdGlvbkhhbmRsZXIpLCBwcm90b2NvbCwgbWF4VExTVmVyc2lvbl0gKFNvY2tldCBz
b2NrZXQpIG11dGFibGUgeworICAgICAgICAgICAgc3RhcnRTZWN1cmVDb25uZWN0aW9uKHNvY2tl
dCwgV1RGTW92ZShzZWN1cmVDb25uZWN0aW9uSGFuZGxlciksIHByb3RvY29sID09IFByb3RvY29s
OjpIVFRQU1dpdGhDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3QsIG1heFRMU1ZlcnNpb24pOworICAg
ICAgICB9OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByb3RvY29sOjpIVFRQU1Byb3h5Ogot
ICAgICAgICBtX2Nvbm5lY3Rpb25IYW5kbGVyID0gW3N0YXJ0U2VjdXJlQ29ubmVjdGlvbiA9IFdU
Rk1vdmUoc3RhcnRTZWN1cmVDb25uZWN0aW9uKV0gKFNvY2tldCBzb2NrZXQpIHsKKyAgICAgICAg
bV9jb25uZWN0aW9uSGFuZGxlciA9IFtzZWN1cmVDb25uZWN0aW9uSGFuZGxlciA9IFdURk1vdmUo
c2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIpXSAoU29ja2V0IHNvY2tldCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBjaGFyIHJlYWRCdWZmZXJbMTAwMF07CiAgICAgICAgICAgICBhdXRvIGJ5dGVzUmVh
ZCA9IDo6cmVhZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFkQnVmZmVyKSk7CiAgICAg
ICAgICAgICBFWFBFQ1RfR1QoYnl0ZXNSZWFkLCAwKTsKQEAgLTIyNSw3ICsyMjgsNyBAQCBUQ1BT
ZXJ2ZXI6OlRDUFNlcnZlcihQcm90b2NvbCBwcm90b2NvbCwgCiAgICAgICAgICAgICAiQ29ubmVj
dGlvbjogY2xvc2VcclxuXHJcbiI7CiAgICAgICAgICAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IDo6
d3JpdGUoc29ja2V0LCByZXNwb25zZUhlYWRlciwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7CiAg
ICAgICAgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0ZW4pLCBz
dHJsZW4ocmVzcG9uc2VIZWFkZXIpKTsKLSAgICAgICAgICAgIHN0YXJ0U2VjdXJlQ29ubmVjdGlv
bihzb2NrZXQpOworICAgICAgICAgICAgc3RhcnRTZWN1cmVDb25uZWN0aW9uKHNvY2tldCwgV1RG
TW92ZShzZWN1cmVDb25uZWN0aW9uSGFuZGxlcikpOwogICAgICAgICB9OwogICAgICAgICBicmVh
azsKICAgICB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmgJKHJldmlzaW9uIDI1OTU3NykK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDYgKzU1LDcgQEAgcHVibGljOgogICAgIAogI2lmIEhBVkUoU1NMKQogICAgIHN0YXRpYyB2b2lk
IHJlc3BvbmRXaXRoT0soU1NMKik7CisgICAgc3RhdGljIHZvaWQgc3RhcnRTZWN1cmVDb25uZWN0
aW9uKFNvY2tldCwgRnVuY3Rpb248dm9pZChTU0wqKT4mJiBzZWN1cmVDb25uZWN0aW9uSGFuZGxl
ciwgYm9vbCByZXF1ZXN0Q2xpZW50Q2VydGlmaWNhdGUgPSBmYWxzZSwgT3B0aW9uYWw8dWludDE2
X3Q+IG1heFRMU1ZlcnNpb24gPSBXVEY6Om51bGxvcHQpOwogI2VuZGlmCiAgICAgc3RhdGljIHZv
aWQgcmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0soU29ja2V0KTsKIApJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCShyZXZpc2lvbiAyNTk1
NzcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBIQVZFKFNTTCkKIAorI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAi
VXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
PgpAQCAtMzQsMjMgKzM1LDM0IEBACiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotc3RhdGljIGJv
b2wgcmVjZWl2ZWRBbGVydDsKLQogQGludGVyZmFjZSBQcm94eURlbGVnYXRlIDogTlNPYmplY3Qg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlLCBXS1VJRGVsZWdhdGU+CistIChOU1N0cmluZyAqKXdhaXRG
b3JBbGVydDsKIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIFByb3h5RGVsZWdhdGUKK0BpbXBsZW1l
bnRhdGlvbiBQcm94eURlbGVnYXRlIHsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9hbGVydDsK
K30KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRB
bGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1l
OihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlcgogewotICAgIEVYUEVDVF9UUlVFKFttZXNzYWdlIGlzRXF1YWxUb1N0
cmluZzpAInN1Y2Nlc3MhIl0pOwotICAgIHJlY2VpdmVkQWxlcnQgPSB0cnVlOworICAgIF9hbGVy
dCA9IG1lc3NhZ2U7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorLSAoTlNTdHJpbmcg
Kil3YWl0Rm9yQWxlcnQKK3sKKyAgICB3aGlsZSAoIV9hbGVydCkKKyAgICAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICByZXR1cm4gX2FsZXJ0LmF1dG9yZWxlYXNl
KCk7Cit9CisKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKilj
aGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICogX051bGxhYmxl
IGNyZWRlbnRpYWwpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIo
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwg
Y3JlZGVudGlhbEZvclRydXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3Rd
KTsKKyAgICBpZiAoW2NoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRo
b2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0p
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6Y2hh
bGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOworCisgICAgRVhQRUNUX1dLX1NU
UkVRKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QsIE5TVVJM
QXV0aGVudGljYXRpb25NZXRob2RIVFRQQmFzaWMpOworICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVu
dGlhbCBjcmVkZW50aWFsV2l0aFVzZXI6QCJ0ZXN0dXNlciIgcGFzc3dvcmQ6QCJ0ZXN0cGFzc3dv
cmQiIHBlcnNpc3RlbmNlOk5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZV0pOwogfQogCiBA
ZW5kCkBAIC03Miw3ICs4NCw1NCBAQCBURVNUKFdlYktpdCwgSFRUUFNQcm94eSkKICAgICBbd2Vi
VmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwczovL2V4YW1wbGUuY29tLyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZEFsZXJ0KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW2RlbGVnYXRlIHdhaXRGb3JB
bGVydF0sICJzdWNjZXNzISIpOworfQorCitURVNUKFdlYktpdCwgSFRUUFByb3h5QXV0aGVudGlj
YXRpb24pCit7CisgICAgVENQU2VydmVyIHNlcnZlcihbXSAoaW50IHNvY2tldCkgeworICAgICAg
ICBhdXRvIHJlcXVlc3RTaG91bGRDb250YWluID0gW10gKGNvbnN0IGF1dG8mIHJlcXVlc3QsIGNv
bnN0IGNoYXIqIHN0cikgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3Ryc3RyKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlcXVlc3QuZGF0YSgpKSwgc3RyKSk7CisgICAgICAgIH07
CisKKyAgICAgICAgYXV0byBjb25uZWN0UmVxdWVzdCA9IFRDUFNlcnZlcjo6cmVhZChzb2NrZXQp
OworICAgICAgICByZXF1ZXN0U2hvdWxkQ29udGFpbihjb25uZWN0UmVxdWVzdCwgIkNPTk5FQ1Qg
ZXhhbXBsZS5jb206NDQzIik7CisgICAgICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlMSA9CisgICAg
ICAgICAgICAiSFRUUC8xLjEgNDA3IFByb3h5IEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkXHJcbiIK
KyAgICAgICAgICAgICJQcm94eS1BdXRoZW50aWNhdGU6IEJhc2ljIHJlYWxtPVwidGVzdHJlYWxt
XCJcclxuIgorICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAwXHJcbiIKKyAgICAgICAgICAg
ICJcclxuIjsKKyAgICAgICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlMSwgc3Ry
bGVuKHJlc3BvbnNlMSkpOworCisgICAgICAgIGF1dG8gY29ubmVjdFJlcXVlc3RXaXRoQ3JlZGVu
dGlhbHMgPSBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsKKyAgICAgICAgcmVxdWVzdFNob3VsZENv
bnRhaW4oY29ubmVjdFJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsICJDT05ORUNUIGV4YW1wbGUuY29t
OjQ0MyIpOworICAgICAgICByZXF1ZXN0U2hvdWxkQ29udGFpbihjb25uZWN0UmVxdWVzdFdpdGhD
cmVkZW50aWFscywgIlByb3h5LUF1dGhvcml6YXRpb246IEJhc2ljIGRHVnpkSFZ6WlhJNmRHVnpk
SEJoYzNOM2IzSmsiKTsKKyAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2UyID0KKyAgICAgICAg
ICAgICJIVFRQLzEuMSAyMDAgQ29ubmVjdGlvbiBFc3RhYmxpc2hlZFxyXG4iCisgICAgICAgICAg
ICAiQ29ubmVjdGlvbjogY2xvc2VcclxuIgorICAgICAgICAgICAgIlxyXG4iOworICAgICAgICBU
Q1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwgcmVzcG9uc2UyLCBzdHJsZW4ocmVzcG9uc2UyKSk7CisK
KyAgICAgICAgVENQU2VydmVyOjpzdGFydFNlY3VyZUNvbm5lY3Rpb24oc29ja2V0LCBUQ1BTZXJ2
ZXI6OnJlc3BvbmRXaXRoT0spOworICAgIH0pOworICAgIAorICAgIGF1dG8gc3RvcmVDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7
CisgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRQcm94eUNvbmZpZ3VyYXRpb246QHsKKyAgICAg
ICAgKE5TU3RyaW5nICopa0NGU3RyZWFtUHJvcGVydHlIVFRQU1Byb3h5SG9zdDogQCIxMjcuMC4w
LjEiLAorICAgICAgICAoTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0eUhUVFBTUHJveHlQb3J0
OiBAKHNlcnZlci5wb3J0KCkpCisgICAgfV07CisgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRB
bGxvd3NTZXJ2ZXJQcmVjb25uZWN0Ok5PXTsKKyAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldFBy
ZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb246WUVTXTsKKworICAgIGF1dG8gdmll
d0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwor
ICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOltbW1dLV2Vic2l0ZURh
dGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldIGF1dG9yZWxlYXNlXV07CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25m
aWd1cmF0aW9uOnZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1Byb3h5RGVsZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlv
bkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29t
LyJdXV07CisgICAgRVhQRUNUX1dLX1NUUkVRKFtkZWxlZ2F0ZSB3YWl0Rm9yQWxlcnRdLCAic3Vj
Y2VzcyEiKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396103</attachid>
            <date>2020-04-10 11:00:39 -0700</date>
            <delta_ts>2020-04-10 11:36:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210343-20200410110038.patch</filename>
            <type>text/plain</type>
            <size>39542</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjU5NTc3KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0
LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgQWRkIFNQSSB0byBoYW5kbGUgcHJveHkgYXV0aGVudGljYXRpb24gYW5kIHJlcXVpcmUgc2Vj
dXJlIHByb3h5IGNvbm5lY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTAzNDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxNTQ2Mzk2PiA8
cmRhcjovL3Byb2JsZW0vNjE1NDY1MTk+IGFuZCA8cmRhcjovL3Byb2JsZW0vNjE1NDY2NTg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oOgorCiAyMDIwLTA0LTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CiAKICAgICAgICAgVGhlIHZhbHVlIG9mIFtBVlBsYXllclZpZXdDb250cm9sbGVy
IGlzUGljdHVyZUluUGljdHVyZVBvc3NpYmxlXSBpcyBOTyBpbiB0aGUgZmlyc3QgYXR0ZW1wdCB0
byBlbnRlciBQaVAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCShyZXZpc2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcgKzE5Myw5IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVVJMU2Vzc2lvbkMKIEBwcm9wZXJ0eSAoY29weSkg
TlNEYXRhICpfc291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuRGF0YTsKIEBwcm9wZXJ0eSAobnVs
bGFibGUsIGNvcHkpIE5TU3RyaW5nICpfc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
OwogQHByb3BlcnR5IChudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXI7Ci1AcHJvcGVydHkgQk9PTCBfc2hvdWxkU2tpcFByZWZlcnJl
ZENsaWVudENlcnRpZmljYXRlTG9va3VwIE5TX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK0Bwcm9w
ZXJ0eSBCT09MIF9zaG91bGRTa2lwUHJlZmVycmVkQ2xpZW50Q2VydGlmaWNhdGVMb29rdXA7CitA
cHJvcGVydHkgQk9PTCBfcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKK0Bw
cm9wZXJ0eSBCT09MIF9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBAcHJvcGVydHkgKG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAq
X0NURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1OTg0MikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMjAtMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIHRvIGhhbmRsZSBwcm94eSBhdXRoZW50
aWNhdGlvbiBhbmQgcmVxdWlyZSBzZWN1cmUgcHJveHkgY29ubmVjdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDM0MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjE1NDYzOTY+IDxyZGFyOi8vcHJvYmxlbS82MTU0NjUxOT4gYW5kIDxyZGFy
Oi8vcHJvYmxlbS82MTU0NjY1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJIGFsc28gdXNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uY29ubmVjdGlv
blByb3h5RGljdGlvbmFyeSBpbnN0ZWFkIG9mIENGVVJMUmVxdWVzdFNldFByb3h5U2V0dGluZ3MK
KyAgICAgICAgdG8gc2V0IHByb3h5IHNldHRpbmdzLiAgVGhlIGVxdWl2YWxlbmNlIG9mIHRoaXMg
YmVoYXZpb3IgaXMgY292ZXJlZCBieSB0aGUgQVBJIHRlc3RzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5U25p
ZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgt
W1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6ZGlkUmVjZWl2ZUNoYWxs
ZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAg
ICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHByZXZlbnRzU3lzdGVtSFRU
UFByb3h5QXV0aGVudGljYXRpb25dKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gc2V0UHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjpdKToK
KyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcmVxdWlyZXNTZWN1
cmVIVFRQU1Byb3h5Q29ubmVjdGlvbl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBzZXRSZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29u
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbjo6cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRQcmV2ZW50c1N5
c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb246OnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24g
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
c2V0UmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbik6CisKIDIwMjAtMDQtMDkgIE1l
Z2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQb3BvdmVy
cyBhcmUgZGlzbWlzc2VkIGltbWVkaWF0ZWx5IHdoZW4gdGhleSB0cnkgYW5kIGJyaW5nIHVwIHRo
ZSBrZXlib2FyZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZp
c2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOCBA
QCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5jb2RlciA8
PCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2U7CiAgICAgZW5j
b2RlciA8PCBhbGxvd3NTZXJ2ZXJQcmVjb25uZWN0OwogICAgIGVuY29kZXIgPDwgaXNJbkFwcEJy
b3dzZXJQcml2YWN5RW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzU2VjdXJlSFRUUFNQ
cm94eUNvbm5lY3Rpb247CisgICAgZW5jb2RlciA8PCBwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1
dGhlbnRpY2F0aW9uOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnM7CiB9CiAKQEAgLTI0MCw2ICsyNDIsMTYgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcgogICAgIGlmICghaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCkK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPGJvb2w+IHJlcXVp
cmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb247CisgICAgZGVjb2RlciA+PiByZXF1aXJlc1Nl
Y3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOworICAgIGlmICghcmVxdWlyZXNTZWN1cmVIVFRQU1By
b3h5Q29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBP
cHRpb25hbDxib29sPiBwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uOworICAg
IGRlY29kZXIgPj4gcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKKyAgICBp
ZiAoIXByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24pCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKICAgICBPcHRpb25hbDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycz4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiAgICAgZGVjb2RlciA+
PiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKICAgICBpZiAoIXJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQpAQCAtMjg0LDYgKzI5Niw4IEBAIE9wdGlvbmFsPE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXIKICAgICAgICAgLCBXVEZNb3ZlKCpzdXBwcmVzc2Vz
Q29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UpCiAgICAgICAgICwgV1RGTW92ZSgq
YWxsb3dzU2VydmVyUHJlY29ubmVjdCkKICAgICAgICAgLCBXVEZNb3ZlKCppc0luQXBwQnJvd3Nl
clByaXZhY3lFbmFibGVkKQorICAgICAgICAsIFdURk1vdmUoKnJlcXVpcmVzU2VjdXJlSFRUUFNQ
cm94eUNvbm5lY3Rpb24pCisgICAgICAgICwgV1RGTW92ZSgqcHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbikKICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVycykKICAgICB9fTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgJKHJldmlzaW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtOTEs
NiArOTEsOCBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgCiAgICAg
Ym9vbCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgeyBmYWxz
ZSB9OwogICAgIGJvb2wgYWxsb3dzU2VydmVyUHJlY29ubmVjdCB7IHRydWUgfTsKICAgICBib29s
IGlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWly
ZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBwcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uIHsgZmFsc2UgfTsKICAgICAKICAgICBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVyczsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0JKHJldmlzaW9uIDI1OTU3NykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTg5LDEzICs4OSwxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjphcHBseVNuaWZmaW5nCiAKICAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNf
Y2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAgICAgYXV0byYgYm91bmRJ
bnRlcmZhY2VJZGVudGlmaWVyID0gY29jb2FTZXNzaW9uLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cigpOwotICAgIGF1dG8qIHByb3h5Q29uZmlndXJhdGlvbiA9IGNvY29hU2Vzc2lvbi5wcm94eUNv
bmZpZ3VyYXRpb24oKTsKICAgICBpZiAoc2hvdWxkQ29udGVudFNuaWZmCiAjaWYgVVNFKENGTkVU
V09SS19DT05URU5UX0VOQ09ESU5HX1NOSUZGSU5HX09WRVJSSURFKQogICAgICAgICAmJiBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZgogI2VuZGlmCi0gICAgICAgICYmIGJvdW5kSW50ZXJmYWNl
SWRlbnRpZmllci5pc051bGwoKQotICAgICAgICAmJiAhcHJveHlDb25maWd1cmF0aW9uKQorICAg
ICAgICAmJiBib3VuZEludGVyZmFjZUlkZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGF1dG8gbXV0YWJsZVJlcXVlc3QgPSBhZG9wdE5TKFtuc1JlcXVlc3QgbXV0YWJs
ZUNvcHldKTsKQEAgLTExMSw5ICsxMDksNiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjph
cHBseVNuaWZmaW5nCiAgICAgaWYgKCFib3VuZEludGVyZmFjZUlkZW50aWZpZXIuaXNOdWxsKCkp
CiAgICAgICAgIFttdXRhYmxlUmVxdWVzdCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXI6Ym91
bmRJbnRlcmZhY2VJZGVudGlmaWVyXTsKIAotICAgIGlmIChwcm94eUNvbmZpZ3VyYXRpb24pCi0g
ICAgICAgIENGVVJMUmVxdWVzdFNldFByb3h5U2V0dGluZ3MoW211dGFibGVSZXF1ZXN0IF9DRlVS
TFJlcXVlc3RdLCBwcm94eUNvbmZpZ3VyYXRpb24pOwotCiAgICAgbnNSZXF1ZXN0ID0gbXV0YWJs
ZVJlcXVlc3QuYXV0b3JlbGVhc2UoKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgJKHJldmlz
aW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoK
ICAgICBTZXNzaW9uV3JhcHBlciYgc2Vzc2lvbldyYXBwZXJGb3JUYXNrKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CiAgICAgdm9pZCBzZXRJbkFwcEJyb3dzZXJQcml2YWN5
RW5hYmxlZChib29sIGVuYWJsZWQpIG92ZXJyaWRlIHsgbV9pc0luQXBwQnJvd3NlclByaXZhY3lF
bmFibGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsgfQorICAg
IGJvb2wgcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsgfQogICAgIAogcHJp
dmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKSBvdmVycmlkZTsKQEAgLTE0NCw2
ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9u
RW5hYmxlZCB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlw
ZTsKICAgICBib29sIG1faXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX3ByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24geyBmYWxzZSB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCShy
ZXZpc2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0Niw3ICs2NDYsNyBAQCAt
ICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3NpCiAgICAgCiAgICAgLy8gUHJv
eHkgYXV0aGVudGljYXRpb24gaXMgaGFuZGxlZCBieSBDRk5ldHdvcmsgaW50ZXJuYWxseS4gV2Ug
Y2FuIGdldCBoZXJlIGlmIHRoZSB1c2VyIGNhbmNlbHMKICAgICAvLyBDRk5ldHdvcmsgYXV0aGVu
dGljYXRpb24gZGlhbG9nLCBhbmQgd2Ugc2hvdWxkbid0IGFzayB0aGUgY2xpZW50IHRvIGRpc3Bs
YXkgYW5vdGhlciBvbmUgaW4gdGhhdCBjYXNlLgotICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlv
blNwYWNlLmlzUHJveHkpIHsKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5pc1By
b3h5ICYmICFzZXNzaW9uQ29jb2EtPnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRp
b24oKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlVXNlQ3JlZGVudGlhbCwgbmlsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwNzYs
NiArMTA3Niw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EKICAg
ICAsIG1fZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQocGFyYW1ldGVycy5mYXN0U2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCkKICAgICAsIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNl
VHlwZShwYXJhbWV0ZXJzLmRhdGFDb25uZWN0aW9uU2VydmljZVR5cGUpCiAgICAgLCBtX2lzSW5B
cHBCcm93c2VyUHJpdmFjeUVuYWJsZWQocGFyYW1ldGVycy5pc0luQXBwQnJvd3NlclByaXZhY3lF
bmFibGVkKQorICAgICwgbV9wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKHBh
cmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbikKIHsKICAgICBB
U1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdD
b29raWVzKSk7CiAKQEAgLTExMTgsNyArMTExOSw5IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5l
dHdvcmtTZXNzaW9uQ29jb2EKICAgICBjb25maWd1cmF0aW9uLl9hbGxvd3NIVFRQMyA9IHBhcmFt
ZXRlcnMuaHR0cDNFbmFibGVkOwogI2VuZGlmCiAKLSAgICBjb25maWd1cmF0aW9uLmNvbm5lY3Rp
b25Qcm94eURpY3Rpb25hcnkgPSBwcm94eURpY3Rpb25hcnkocGFyYW1ldGVycy5odHRwUHJveHks
IHBhcmFtZXRlcnMuaHR0cHNQcm94eSk7CisgICAgY29uZmlndXJhdGlvbi5fcHJldmVudHNTeXN0
ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IHBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQ
UHJveHlBdXRoZW50aWNhdGlvbjsKKyAgICBjb25maWd1cmF0aW9uLl9yZXF1aXJlc1NlY3VyZUhU
VFBTUHJveHlDb25uZWN0aW9uID0gcGFyYW1ldGVycy5yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlD
b25uZWN0aW9uOworICAgIGNvbmZpZ3VyYXRpb24uY29ubmVjdGlvblByb3h5RGljdGlvbmFyeSA9
IChOU0RpY3Rpb25hcnkgKilwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbi5nZXQoKSA/OiBw
cm94eURpY3Rpb25hcnkocGFyYW1ldGVycy5odHRwUHJveHksIHBhcmFtZXRlcnMuaHR0cHNQcm94
eSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghbV9kYXRhQ29ubmVjdGlv
blNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNTEsNiArNTEsOCBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBsZWdhY3lUTFNFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TRGljdGlvbmFyeSAqcHJveHlDb25maWd1
cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpkYXRh
Q29ubmVjdGlvblNlcnZpY2VUeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcmV2ZW50c1N5
c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByZXF1
aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRoZXNlIHByb3BlcnRpZXMgb25seSBt
YWtlIHNlbnNlIGZvciBwZXJzaXN0ZW50IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwogLy8g
YW4gZXhjZXB0aW9uIGlmIHNldCBmb3Igbm9uLXBlcnNpc3RlbnQgc3RvcmVzLgpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQkocmV2aXNpb24gMjU5NTc3KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MTgsNiArNDE4LDI2IEBAIC0gKHZv
aWQpc2V0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTooTlMKICAgICBfY29uZmlndXJhdGlvbi0+
c2V0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSh0eXBlKTsKIH0KIAorLSAoQk9PTClwcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0
aW9uLT5wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKCk7Cit9CisKKy0gKHZv
aWQpc2V0UHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjooQk9PTClwcmV2ZW50
cworeworICAgIF9jb25maWd1cmF0aW9uLT5zZXRQcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhl
bnRpY2F0aW9uKHByZXZlbnRzKTsKK30KKworLSAoQk9PTClyZXF1aXJlc1NlY3VyZUhUVFBTUHJv
eHlDb25uZWN0aW9uCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5yZXF1aXJlc1NlY3Vy
ZUhUVFBTUHJveHlDb25uZWN0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0UmVxdWlyZXNTZWN1cmVI
VFRQU1Byb3h5Q29ubmVjdGlvbjooQk9PTClyZXF1aXJlcworeworICAgIF9jb25maWd1cmF0aW9u
LT5zZXRSZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uKHJlcXVpcmVzKTsKK30KKwog
LSAodm9pZClzZXRQcm94eUNvbmZpZ3VyYXRpb246KE5TRGljdGlvbmFyeSAqKWNvbmZpZ3VyYXRp
b24KIHsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0UHJveHlDb25maWd1cmF0aW9uKChfX2JyaWRn
ZSBDRkRpY3Rpb25hcnlSZWYpW2NvbmZpZ3VyYXRpb24gY29weV0pOwpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAJKHJldmlzaW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMxLDYgKzIy
MzEsOSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAgbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5
c3RlbUNoYW5nZSA9IG1fY29uZmlndXJhdGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5h
dGlvbk9uU3lzdGVtQ2hhbmdlKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbG93
c1NlcnZlclByZWNvbm5lY3QgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbG93c1NlcnZlclByZWNvbm5l
Y3QoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMgPSBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKTsK
KyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29u
bmVjdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVj
dGlvbigpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wcmV2ZW50c1N5c3RlbUhUVFBQ
cm94eUF1dGhlbnRpY2F0aW9uID0gbV9jb25maWd1cmF0aW9uLT5wcmV2ZW50c1N5c3RlbUhUVFBQ
cm94eUF1dGhlbnRpY2F0aW9uKCk7CisKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycyA9IFdURk1vdmUobmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmNwcAkocmV2aXNpb24gMjU5NTc3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MSw2ICs5MSw4IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4g
V2Vic2kKICAgICBjb3B5LT5tX3Rlc3RTcGVlZE11bHRpcGxpZXIgPSB0aGlzLT5tX3Rlc3RTcGVl
ZE11bHRpcGxpZXI7CiAgICAgY29weS0+bV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9u
T25TeXN0ZW1DaGFuZ2UgPSB0aGlzLT5tX3N1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25P
blN5c3RlbUNoYW5nZTsKICAgICBjb3B5LT5tX2FsbG93c1NlcnZlclByZWNvbm5lY3QgPSB0aGlz
LT5tX2FsbG93c1NlcnZlclByZWNvbm5lY3Q7CisgICAgY29weS0+bV9yZXF1aXJlc1NlY3VyZUhU
VFBTUHJveHlDb25uZWN0aW9uID0gdGhpcy0+bV9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25u
ZWN0aW9uOworICAgIGNvcHktPm1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlv
biA9IHRoaXMtPm1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGNv
cHktPm1fcHJveHlDb25maWd1cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5
KG51bGxwdHIsIHRoaXMtPm1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1OTU3NykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Myw2ICsxNTMsMTIgQEAgcHVibGljOgogICAg
IGJvb2wgYWxsb3dzU2VydmVyUHJlY29ubmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzU2Vy
dmVyUHJlY29ubmVjdDsgfQogICAgIHZvaWQgc2V0QWxsb3dzU2VydmVyUHJlY29ubmVjdChib29s
IGFsbG93cykgeyBtX2FsbG93c1NlcnZlclByZWNvbm5lY3QgPSBhbGxvd3M7IH0KIAorICAgIGJv
b2wgcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsgfQorICAgIHZvaWQgc2V0
UHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbihib29sIHByZXZlbnRzKSB7IG1f
cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IHByZXZlbnRzOyB9CisKKyAg
ICBib29sIHJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX3JlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb247IH07CisgICAgdm9pZCBzZXRS
ZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uKGJvb2wgcmVxdWlyZXMpIHsgbV9yZXF1
aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uID0gcmVxdWlyZXM7IH0KKwogcHJpdmF0ZToK
ICAgICBJc1BlcnNpc3RlbnQgbV9pc1BlcnNpc3RlbnQgeyBJc1BlcnNpc3RlbnQ6Ok5vIH07CiAK
QEAgLTE5NCw2ICsyMDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV90ZXN0aW5nU2Vzc2lvbkVu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0
aW9uT25TeXN0ZW1DaGFuZ2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhl
bnRpY2F0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5
Q29ubmVjdGlvbiB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV90ZXN0U3BlZWRNdWx0aXBsaWVy
IHsgMSB9OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU5ODc5KQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDQtMTAgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIHRv
IGhhbmRsZSBwcm94eSBhdXRoZW50aWNhdGlvbiBhbmQgcmVxdWlyZSBzZWN1cmUgcHJveHkgY29u
bmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDM0MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjE1NDYzOTY+IDxyZGFyOi8vcHJvYmxl
bS82MTU0NjUxOT4gYW5kIDxyZGFyOi8vcHJvYmxlbS82MTU0NjY1OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVENQU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRDUFNlcnZlcjo6c3RhcnRTZWN1cmVD
b25uZWN0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRDUFNlcnZlcjo6VENQU2VydmVy
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW06CisgICAgICAgICgtW1Byb3h5RGVs
ZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1Byb3h5RGVsZWdhdGUg
d2FpdEZvckFsZXJ0XSk6CisgICAgICAgICgtW1Byb3h5RGVsZWdhdGUgd2ViVmlldzpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNC0xMCAgQWxpY2lhIEJveWEgR2FyY8Ot
YSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gRGF0YU11dGV4OiBBZGQgcnVu
VW5sb2NrZWQoKQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmNwcAkocmV2aXNpb24gMjU5
NTc3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzQsODcgKzEzNCw5MCBAQCBUQ1BTZXJ2ZXI6OlRDUFNlcnZlcihGdW5jdGlvbjx2b2lk
KFNvY2tlCiB9CiAKICNpZiBIQVZFKFNTTCkKLVRDUFNlcnZlcjo6VENQU2VydmVyKFByb3RvY29s
IHByb3RvY29sLCBGdW5jdGlvbjx2b2lkKFNTTCopPiYmIHNlY3VyZUNvbm5lY3Rpb25IYW5kbGVy
LCBPcHRpb25hbDx1aW50MTZfdD4gbWF4VExTVmVyc2lvbikKK3ZvaWQgVENQU2VydmVyOjpzdGFy
dFNlY3VyZUNvbm5lY3Rpb24oU29ja2V0IHNvY2tldCwgRnVuY3Rpb248dm9pZChTU0wqKT4mJiBz
ZWN1cmVDb25uZWN0aW9uSGFuZGxlciwgYm9vbCByZXF1ZXN0Q2xpZW50Q2VydGlmaWNhdGUsIE9w
dGlvbmFsPHVpbnQxNl90PiBtYXhUTFNWZXJzaW9uKQogewotICAgIGF1dG8gc3RhcnRTZWN1cmVD
b25uZWN0aW9uID0gW3NlY3VyZUNvbm5lY3Rpb25IYW5kbGVyID0gV1RGTW92ZShzZWN1cmVDb25u
ZWN0aW9uSGFuZGxlciksIHByb3RvY29sLCBtYXhUTFNWZXJzaW9uXSAoU29ja2V0IHNvY2tldCkg
ewotICAgICAgICBTU0xfbGlicmFyeV9pbml0KCk7CisgICAgU1NMX2xpYnJhcnlfaW5pdCgpOwog
Ci0gICAgICAgIHNzbDo6dW5pcXVlX3B0cjxTU0xfQ1RYPiBjdHgoU1NMX0NUWF9uZXcoVExTX3dp
dGhfYnVmZmVyc19tZXRob2QoKSkpOworICAgIHNzbDo6dW5pcXVlX3B0cjxTU0xfQ1RYPiBjdHgo
U1NMX0NUWF9uZXcoVExTX3dpdGhfYnVmZmVyc19tZXRob2QoKSkpOwogCi0gICAgICAgIC8vIFRo
aXMgaXMgYSB0ZXN0IGNlcnRpZmljYXRlIGZyb20gQm9yaW5nU1NMLgotICAgICAgICBTdHJpbmcg
Y2VydFBFTSgKLSAgICAgICAgIk1JSUNXRENDQWNHZ0F3SUJBZ0lKQVB1d1RDNnJFSnNNTUEwR0NT
cUdTSWIzRFFFQkJRVUFNRVV4Q3pBSkJnTlYiCi0gICAgICAgICJCQVlUQWtGVk1STXdFUVlEVlFR
SURBcFRiMjFsTFZOMFlYUmxNU0V3SHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYIgotICAgICAgICAi
YVdSbmFYUnpJRkIwZVNCTWRHUXdIaGNOTVRRd05ESXpNakExTURRd1doY05NVGN3TkRJeU1qQTFN
RFF3V2pCRiIKLSAgICAgICAgIk1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQXdLVTI5dFpT
MVRkR0YwWlRFaE1COEdBMVVFQ2d3WVNXNTAiCi0gICAgICAgICJaWEp1WlhRZ1YybGtaMmwwY3lC
UWRIa2dUSFJrTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCIgotICAgICAgICAi
Z1FEWUs4aW1NdVJpLzAzejBLMVppMFdudmZGSHZ3bFlleUs5TmE2WEpZYVVvSURBdEI5MmtXZEdN
ZEFRaExjaSIKLSAgICAgICAgIkhuQWprWExJNlcxNU9vVjNnQS9FbFJaMXhVcHhUTWhqUDZQeVk1
d3FUNXI2eThGeGJpaUZLS0FuSG1VY3JnZlYiCi0gICAgICAgICJXMjh0USswcmtMR01yeVJ0cnVr
WE9nWEJ2N2djcm1VN0cxakMyYTdXcW1lSThRSURBUUFCbzFBd1RqQWRCZ05WIgotICAgICAgICAi
SFE0RUZnUVVpM1hWck1zSXZnNGZaYmY2VnI1c3AzWGFoYTh3SHdZRFZSMGpCQmd3Rm9BVWkzWFZy
TXNJdmc0ZiIKLSAgICAgICAgIlpiZjZWcjVzcDNYYWhhOHdEQVlEVlIwVEJBVXdBd0VCL3pBTkJn
a3Foa2lHOXcwQkFRVUZBQU9CZ1FBNzZIaHQiCi0gICAgICAgICJsZFk5YXZjVEdTd2J3b2l1SXF2
MGpUTDFmSEZuenkzUkhNTERoK0xwdm9sYzVEU3JTSkhDUDVXdUswZWVKWGhyIgotICAgICAgICAi
VDVvUXBITDl6L2NDRExBS0NLUmE0dVYwZmhFZE9XQnF5UjlwOHk1akp0eWU3MnQ2Q3VGVVY1aXFj
cEY0Qkg0ZiIKLSAgICAgICAgImoyVk5Id3NTckp3a0Q0UVVHbFV0SDd2d25RbXlDRnhaTW1XQUpn
PT0iKTsKLSAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNlcnRERVI7Ci0gICAgICAgIGJhc2U2NERl
Y29kZShjZXJ0UEVNLCBjZXJ0REVSLCBXVEY6OkJhc2U2NERlY29kZU9wdGlvbnM6OkJhc2U2NERl
ZmF1bHQpOwotICAgICAgICBzc2w6OnVuaXF1ZV9wdHI8Q1JZUFRPX0JVRkZFUj4gY2VydChDUllQ
VE9fQlVGRkVSX25ldyhjZXJ0REVSLmRhdGEoKSwgY2VydERFUi5zaXplKCksIG51bGxwdHIpKTsK
LSAgICAgICAgQVNTRVJUKGNlcnQpOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSB0ZXN0IGtleSBm
cm9tIEJvcmluZ1NTTC4KLSAgICAgICAgY2hhciBrS2V5UEVNW10gPQotICAgICAgICAiLS0tLS1C
RUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuIgotICAgICAgICAiTUlJQ1hnSUJBQUtCZ1FEWUs4
aW1NdVJpLzAzejBLMVppMFdudmZGSHZ3bFlleUs5TmE2WEpZYVVvSURBdEI5MlxuIgotICAgICAg
ICAia1dkR01kQVFoTGNpSG5BamtYTEk2VzE1T29WM2dBL0VsUloxeFVweFRNaGpQNlB5WTV3cVQ1
cjZ5OEZ4YmlpRlxuIgotICAgICAgICAiS0tBbkhtVWNyZ2ZWVzI4dFErMHJrTEdNcnlSdHJ1a1hP
Z1hCdjdnY3JtVTdHMWpDMmE3V3FtZUk4UUlEQVFBQlxuIgotICAgICAgICAiQW9HQkFJQnkwOUZk
NERPcS9JanA4SGVLdUNNS1RIcVRXMXhHSHNoTFE2andWVjJ2V1pJbjlhSWdtRHN2a2pDZVxuIgot
ICAgICAgICAiaTZzc1p2bmJqVmN3elNvQnloak44WkNmL2kxNUhFQ1dERkZoNmd0MFA1ejBNbkNo
d3pabXZhdFYvRlhDVDBqK1xuIgotICAgICAgICAiV21HTkIvZ2tlaEtqR1hMTGNqVGI2ZFJZVkpT
Q1poVnVPTExjYldJVjEwZ2dnSlFCQWtFQThTOHNHZTRlenl5WlxuIgotICAgICAgICAibTRlOXI5
NWc2czQza1BxdGo1cmV3VHNVeHQrMm40ZVZvZEQrWlVsQ1VMV1ZOQUZMa1lSVEJDQVNsU3JtOVho
alxuIgotICAgICAgICAiUXBtV0FISlVrUUpCQU9WelFkRlVhZXdMdGRPSm9QQ3RwWW9ZMXpkMjJl
YWU4VFFFbXBHT1IxMUw2a2J4TFFza1xuIgotICAgICAgICAiYU1seS9ET25PYWE4MnRxQUdUZHFE
RVpnU05tQ2VLS2tubUVDUUF2cG5ZOEdVT1ZBdWJHUjZjK1c5MGlCdVFMalxuIgotICAgICAgICAi
THRGcC85aWhkMncvUG9Ed3JIWmFvVVlWY1Q0VlNmSlFvZy9rN2tqRTRNWVhZV0w4ZUVLZzNXVFdR
TkVDUVFEa1xuIgotICAgICAgICAiMTA0V2k5MVVtZDFQekYwaWpkMmpYT0VSSlUxd0VLZTZYTGtZ
WU5IV1FBZTVsNEo0TVdqOU9keEZYQXhJdXVSL1xuIgotICAgICAgICAidGZEd2Jxa3RhNHhjdXg2
Ny8va2hBa0VBdnZSWExIVGFhNlZGelRhaWlPOFNhRnNIVjNsUXlYT3RNckJwQjVqZFxuIgotICAg
ICAgICAibW9aV2dqSHZCMlc5Q2tuN3NEcXNQQitVMnR5WDBqb0RkUUV5dWlNRUNEWThvUT09XG4i
Ci0gICAgICAgICItLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLVxuIjsKLQotICAgICAgICBz
c2w6OnVuaXF1ZV9wdHI8QklPPiBwcml2YXRlS2V5QklPKEJJT19uZXdfbWVtX2J1ZihrS2V5UEVN
LCBzdHJsZW4oa0tleVBFTSkpKTsKLSAgICAgICAgc3NsOjp1bmlxdWVfcHRyPEVWUF9QS0VZPiBw
cml2YXRlS2V5KFBFTV9yZWFkX2Jpb19Qcml2YXRlS2V5KHByaXZhdGVLZXlCSU8uZ2V0KCksIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpKTsKLSAgICAgICAgQVNTRVJUKHByaXZhdGVLZXkpOwot
Ci0gICAgICAgIFNTTF9DVFhfc2V0X2NoYWluX2FuZF9rZXkoY3R4LmdldCgpLCByZWludGVycHJl
dF9jYXN0PENSWVBUT19CVUZGRVIgKmNvbnN0ICo+KCZjZXJ0KSwgMSwgcHJpdmF0ZUtleS5nZXQo
KSwgbnVsbHB0cik7Ci0KLSAgICAgICAgaWYgKHByb3RvY29sID09IFByb3RvY29sOjpIVFRQU1dp
dGhDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3QpIHsKLSAgICAgICAgICAgIFNTTF9DVFhfc2V0X2N1
c3RvbV92ZXJpZnkoY3R4LmdldCgpLCBTU0xfVkVSSUZZX1BFRVIgfCBTU0xfVkVSSUZZX0ZBSUxf
SUZfTk9fUEVFUl9DRVJULCBbXSAoU1NMKiBzc2wsIHVpbnQ4X3QqKSAtPiBzc2xfdmVyaWZ5X3Jl
c3VsdF90IHsKLSAgICAgICAgICAgICAgICBhdXRvIGNoYWluID0gU1NMX2dldDBfcGVlcl9jZXJ0
aWZpY2F0ZXMoc3NsKTsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoc2tfQ1JZUFRPX0JVRkZF
Ul9udW0oY2hhaW4pLCAydSk7Ci0gICAgICAgICAgICAgICAgYXV0byBjZXJ0ID0gc2tfQ1JZUFRP
X0JVRkZFUl92YWx1ZShjaGFpbiwgMCk7Ci0gICAgICAgICAgICAgICAgYXV0byBleHBlY3RlZENl
cnQgPSB0ZXN0Q2VydGlmaWNhdGUoKTsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoQ1JZUFRP
X0JVRkZFUl9sZW4oY2VydCksIGV4cGVjdGVkQ2VydC5zaXplKCkpOwotICAgICAgICAgICAgICAg
IEVYUEVDVF9UUlVFKCFtZW1jbXAoQ1JZUFRPX0JVRkZFUl9kYXRhKGNlcnQpLCBleHBlY3RlZENl
cnQuZGF0YSgpLCBleHBlY3RlZENlcnQuc2l6ZSgpKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHNzbF92ZXJpZnlfb2s7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAgIC8vIFRoaXMg
aXMgYSB0ZXN0IGNlcnRpZmljYXRlIGZyb20gQm9yaW5nU1NMLgorICAgIFN0cmluZyBjZXJ0UEVN
KAorICAgICJNSUlDV0RDQ0FjR2dBd0lCQWdJSkFQdXdUQzZyRUpzTU1BMEdDU3FHU0liM0RRRUJC
UVVBTUVVeEN6QUpCZ05WIgorICAgICJCQVlUQWtGVk1STXdFUVlEVlFRSURBcFRiMjFsTFZOMFlY
UmxNU0V3SHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYIgorICAgICJhV1JuYVhSeklGQjBlU0JNZEdR
d0hoY05NVFF3TkRJek1qQTFNRFF3V2hjTk1UY3dOREl5TWpBMU1EUXdXakJGIgorICAgICJNUXN3
Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0F3S1UyOXRaUzFUZEdGMFpURWhNQjhHQTFVRUNnd1lT
VzUwIgorICAgICJaWEp1WlhRZ1YybGtaMmwwY3lCUWRIa2dUSFJrTUlHZk1BMEdDU3FHU0liM0RR
RUJBUVVBQTRHTkFEQ0JpUUtCIgorICAgICJnUURZSzhpbU11UmkvMDN6MEsxWmkwV252ZkZIdnds
WWV5SzlOYTZYSllhVW9JREF0Qjkya1dkR01kQVFoTGNpIgorICAgICJIbkFqa1hMSTZXMTVPb1Yz
Z0EvRWxSWjF4VXB4VE1oalA2UHlZNXdxVDVyNnk4RnhiaWlGS0tBbkhtVWNyZ2ZWIgorICAgICJX
Mjh0USswcmtMR01yeVJ0cnVrWE9nWEJ2N2djcm1VN0cxakMyYTdXcW1lSThRSURBUUFCbzFBd1Rq
QWRCZ05WIgorICAgICJIUTRFRmdRVWkzWFZyTXNJdmc0ZlpiZjZWcjVzcDNYYWhhOHdId1lEVlIw
akJCZ3dGb0FVaTNYVnJNc0l2ZzRmIgorICAgICJaYmY2VnI1c3AzWGFoYTh3REFZRFZSMFRCQVV3
QXdFQi96QU5CZ2txaGtpRzl3MEJBUVVGQUFPQmdRQTc2SGh0IgorICAgICJsZFk5YXZjVEdTd2J3
b2l1SXF2MGpUTDFmSEZuenkzUkhNTERoK0xwdm9sYzVEU3JTSkhDUDVXdUswZWVKWGhyIgorICAg
ICJUNW9RcEhMOXovY0NETEFLQ0tSYTR1VjBmaEVkT1dCcXlSOXA4eTVqSnR5ZTcydDZDdUZVVjVp
cWNwRjRCSDRmIgorICAgICJqMlZOSHdzU3JKd2tENFFVR2xVdEg3dnduUW15Q0Z4Wk1tV0FKZz09
Iik7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNlcnRERVI7CisgICAgYmFzZTY0RGVjb2RlKGNlcnRQ
RU0sIGNlcnRERVIsIFdURjo6QmFzZTY0RGVjb2RlT3B0aW9uczo6QmFzZTY0RGVmYXVsdCk7Cisg
ICAgc3NsOjp1bmlxdWVfcHRyPENSWVBUT19CVUZGRVI+IGNlcnQoQ1JZUFRPX0JVRkZFUl9uZXco
Y2VydERFUi5kYXRhKCksIGNlcnRERVIuc2l6ZSgpLCBudWxscHRyKSk7CisgICAgQVNTRVJUKGNl
cnQpOworCisgICAgLy8gVGhpcyBpcyBhIHRlc3Qga2V5IGZyb20gQm9yaW5nU1NMLgorICAgIGNo
YXIga0tleVBFTVtdID0KKyAgICAiLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuIgor
ICAgICJNSUlDWGdJQkFBS0JnUURZSzhpbU11UmkvMDN6MEsxWmkwV252ZkZIdndsWWV5SzlOYTZY
SllhVW9JREF0QjkyXG4iCisgICAgImtXZEdNZEFRaExjaUhuQWprWExJNlcxNU9vVjNnQS9FbFJa
MXhVcHhUTWhqUDZQeVk1d3FUNXI2eThGeGJpaUZcbiIKKyAgICAiS0tBbkhtVWNyZ2ZWVzI4dFEr
MHJrTEdNcnlSdHJ1a1hPZ1hCdjdnY3JtVTdHMWpDMmE3V3FtZUk4UUlEQVFBQlxuIgorICAgICJB
b0dCQUlCeTA5RmQ0RE9xL0lqcDhIZUt1Q01LVEhxVFcxeEdIc2hMUTZqd1ZWMnZXWkluOWFJZ21E
c3ZrakNlXG4iCisgICAgImk2c3Nadm5ialZjd3pTb0J5aGpOOFpDZi9pMTVIRUNXREZGaDZndDBQ
NXowTW5DaHd6Wm12YXRWL0ZYQ1QwaitcbiIKKyAgICAiV21HTkIvZ2tlaEtqR1hMTGNqVGI2ZFJZ
VkpTQ1poVnVPTExjYldJVjEwZ2dnSlFCQWtFQThTOHNHZTRlenl5WlxuIgorICAgICJtNGU5cjk1
ZzZzNDNrUHF0ajVyZXdUc1V4dCsybjRlVm9kRCtaVWxDVUxXVk5BRkxrWVJUQkNBU2xTcm05WGhq
XG4iCisgICAgIlFwbVdBSEpVa1FKQkFPVnpRZEZVYWV3THRkT0pvUEN0cFlvWTF6ZDIyZWFlOFRR
RW1wR09SMTFMNmtieExRc2tcbiIKKyAgICAiYU1seS9ET25PYWE4MnRxQUdUZHFERVpnU05tQ2VL
S2tubUVDUUF2cG5ZOEdVT1ZBdWJHUjZjK1c5MGlCdVFMalxuIgorICAgICJMdEZwLzlpaGQydy9Q
b0R3ckhaYW9VWVZjVDRWU2ZKUW9nL2s3a2pFNE1ZWFlXTDhlRUtnM1dUV1FORUNRUURrXG4iCisg
ICAgIjEwNFdpOTFVbWQxUHpGMGlqZDJqWE9FUkpVMXdFS2U2WExrWVlOSFdRQWU1bDRKNE1XajlP
ZHhGWEF4SXV1Ui9cbiIKKyAgICAidGZEd2Jxa3RhNHhjdXg2Ny8va2hBa0VBdnZSWExIVGFhNlZG
elRhaWlPOFNhRnNIVjNsUXlYT3RNckJwQjVqZFxuIgorICAgICJtb1pXZ2pIdkIyVzlDa243c0Rx
c1BCK1UydHlYMGpvRGRRRXl1aU1FQ0RZOG9RPT1cbiIKKyAgICAiLS0tLS1FTkQgUlNBIFBSSVZB
VEUgS0VZLS0tLS1cbiI7CisKKyAgICBzc2w6OnVuaXF1ZV9wdHI8QklPPiBwcml2YXRlS2V5QklP
KEJJT19uZXdfbWVtX2J1ZihrS2V5UEVNLCBzdHJsZW4oa0tleVBFTSkpKTsKKyAgICBzc2w6OnVu
aXF1ZV9wdHI8RVZQX1BLRVk+IHByaXZhdGVLZXkoUEVNX3JlYWRfYmlvX1ByaXZhdGVLZXkocHJp
dmF0ZUtleUJJTy5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIEFTU0VS
VChwcml2YXRlS2V5KTsKKworICAgIFNTTF9DVFhfc2V0X2NoYWluX2FuZF9rZXkoY3R4LmdldCgp
LCByZWludGVycHJldF9jYXN0PENSWVBUT19CVUZGRVIgKmNvbnN0ICo+KCZjZXJ0KSwgMSwgcHJp
dmF0ZUtleS5nZXQoKSwgbnVsbHB0cik7CisKKyAgICBpZiAocmVxdWVzdENsaWVudENlcnRpZmlj
YXRlKSB7CisgICAgICAgIFNTTF9DVFhfc2V0X2N1c3RvbV92ZXJpZnkoY3R4LmdldCgpLCBTU0xf
VkVSSUZZX1BFRVIgfCBTU0xfVkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJULCBbXSAoU1NMKiBz
c2wsIHVpbnQ4X3QqKSAtPiBzc2xfdmVyaWZ5X3Jlc3VsdF90IHsKKyAgICAgICAgICAgIGF1dG8g
Y2hhaW4gPSBTU0xfZ2V0MF9wZWVyX2NlcnRpZmljYXRlcyhzc2wpOworICAgICAgICAgICAgRVhQ
RUNUX0VRKHNrX0NSWVBUT19CVUZGRVJfbnVtKGNoYWluKSwgMnUpOworICAgICAgICAgICAgYXV0
byBjZXJ0ID0gc2tfQ1JZUFRPX0JVRkZFUl92YWx1ZShjaGFpbiwgMCk7CisgICAgICAgICAgICBh
dXRvIGV4cGVjdGVkQ2VydCA9IHRlc3RDZXJ0aWZpY2F0ZSgpOworICAgICAgICAgICAgRVhQRUNU
X0VRKENSWVBUT19CVUZGRVJfbGVuKGNlcnQpLCBleHBlY3RlZENlcnQuc2l6ZSgpKTsKKyAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKCFtZW1jbXAoQ1JZUFRPX0JVRkZFUl9kYXRhKGNlcnQpLCBleHBl
Y3RlZENlcnQuZGF0YSgpLCBleHBlY3RlZENlcnQuc2l6ZSgpKSk7CisgICAgICAgICAgICByZXR1
cm4gc3NsX3ZlcmlmeV9vazsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKG1heFRMU1Zl
cnNpb24pCisgICAgICAgIFNTTF9DVFhfc2V0X21heF9wcm90b192ZXJzaW9uKGN0eC5nZXQoKSwg
Km1heFRMU1ZlcnNpb24pOwogCi0gICAgICAgIGlmIChtYXhUTFNWZXJzaW9uKQotICAgICAgICAg
ICAgU1NMX0NUWF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24oY3R4LmdldCgpLCAqbWF4VExTVmVyc2lv
bik7CisgICAgc3NsOjp1bmlxdWVfcHRyPFNTTD4gc3NsKFNTTF9uZXcoY3R4LmdldCgpKSk7Cisg
ICAgQVNTRVJUKHNzbCk7CisgICAgU1NMX3NldF9mZChzc2wuZ2V0KCksIHNvY2tldCk7CiAKLSAg
ICAgICAgc3NsOjp1bmlxdWVfcHRyPFNTTD4gc3NsKFNTTF9uZXcoY3R4LmdldCgpKSk7Ci0gICAg
ICAgIEFTU0VSVChzc2wpOwotICAgICAgICBTU0xfc2V0X2ZkKHNzbC5nZXQoKSwgc29ja2V0KTsK
LQotICAgICAgICBhdXRvIGFjY2VwdFJlc3VsdCA9IFNTTF9hY2NlcHQoc3NsLmdldCgpKTsKLSAg
ICAgICAgc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIoYWNjZXB0UmVzdWx0ID4gMCA/IHNzbC5nZXQo
KSA6IG51bGxwdHIpOwotICAgIH07CisgICAgYXV0byBhY2NlcHRSZXN1bHQgPSBTU0xfYWNjZXB0
KHNzbC5nZXQoKSk7CisgICAgc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIoYWNjZXB0UmVzdWx0ID4g
MCA/IHNzbC5nZXQoKSA6IG51bGxwdHIpOworfTsKIAorVENQU2VydmVyOjpUQ1BTZXJ2ZXIoUHJv
dG9jb2wgcHJvdG9jb2wsIEZ1bmN0aW9uPHZvaWQoU1NMKik+JiYgc2VjdXJlQ29ubmVjdGlvbkhh
bmRsZXIsIE9wdGlvbmFsPHVpbnQxNl90PiBtYXhUTFNWZXJzaW9uKQorewogICAgIHN3aXRjaCAo
cHJvdG9jb2wpIHsKICAgICBjYXNlIFByb3RvY29sOjpIVFRQUzoKICAgICBjYXNlIFByb3RvY29s
OjpIVFRQU1dpdGhDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3Q6Ci0gICAgICAgIG1fY29ubmVjdGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKHN0YXJ0U2VjdXJlQ29ubmVjdGlvbik7CisgICAgICAgIG1fY29u
bmVjdGlvbkhhbmRsZXIgPSBbc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHNlY3Vy
ZUNvbm5lY3Rpb25IYW5kbGVyKSwgcHJvdG9jb2wsIG1heFRMU1ZlcnNpb25dIChTb2NrZXQgc29j
a2V0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0YXJ0U2VjdXJlQ29ubmVjdGlvbihzb2NrZXQs
IFdURk1vdmUoc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIpLCBwcm90b2NvbCA9PSBQcm90b2NvbDo6
SFRUUFNXaXRoQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0LCBtYXhUTFNWZXJzaW9uKTsKKyAgICAg
ICAgfTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcm90b2NvbDo6SFRUUFNQcm94eToKLSAg
ICAgICAgbV9jb25uZWN0aW9uSGFuZGxlciA9IFtzdGFydFNlY3VyZUNvbm5lY3Rpb24gPSBXVEZN
b3ZlKHN0YXJ0U2VjdXJlQ29ubmVjdGlvbildIChTb2NrZXQgc29ja2V0KSB7CisgICAgICAgIG1f
Y29ubmVjdGlvbkhhbmRsZXIgPSBbc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHNl
Y3VyZUNvbm5lY3Rpb25IYW5kbGVyKV0gKFNvY2tldCBzb2NrZXQpIG11dGFibGUgewogICAgICAg
ICAgICAgY2hhciByZWFkQnVmZmVyWzEwMDBdOwogICAgICAgICAgICAgYXV0byBieXRlc1JlYWQg
PSA6OnJlYWQoc29ja2V0LCByZWFkQnVmZmVyLCBzaXplb2YocmVhZEJ1ZmZlcikpOwogICAgICAg
ICAgICAgRVhQRUNUX0dUKGJ5dGVzUmVhZCwgMCk7CkBAIC0yMjUsNyArMjI4LDcgQEAgVENQU2Vy
dmVyOjpUQ1BTZXJ2ZXIoUHJvdG9jb2wgcHJvdG9jb2wsIAogICAgICAgICAgICAgIkNvbm5lY3Rp
b246IGNsb3NlXHJcblxyXG4iOwogICAgICAgICAgICAgYXV0byBieXRlc1dyaXR0ZW4gPSA6Ondy
aXRlKHNvY2tldCwgcmVzcG9uc2VIZWFkZXIsIHN0cmxlbihyZXNwb25zZUhlYWRlcikpOwogICAg
ICAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVuKSwgc3Ry
bGVuKHJlc3BvbnNlSGVhZGVyKSk7Ci0gICAgICAgICAgICBzdGFydFNlY3VyZUNvbm5lY3Rpb24o
c29ja2V0KTsKKyAgICAgICAgICAgIHN0YXJ0U2VjdXJlQ29ubmVjdGlvbihzb2NrZXQsIFdURk1v
dmUoc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICAgICAgfTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oCShyZXZpc2lvbiAyNTk1NzcpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2
ICs1NSw3IEBAIHB1YmxpYzoKICAgICAKICNpZiBIQVZFKFNTTCkKICAgICBzdGF0aWMgdm9pZCBy
ZXNwb25kV2l0aE9LKFNTTCopOworICAgIHN0YXRpYyB2b2lkIHN0YXJ0U2VjdXJlQ29ubmVjdGlv
bihTb2NrZXQsIEZ1bmN0aW9uPHZvaWQoU1NMKik+JiYgc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIs
IGJvb2wgcmVxdWVzdENsaWVudENlcnRpZmljYXRlID0gZmFsc2UsIE9wdGlvbmFsPHVpbnQxNl90
PiBtYXhUTFNWZXJzaW9uID0gV1RGOjpudWxsb3B0KTsKICNlbmRpZgogICAgIHN0YXRpYyB2b2lk
IHJlc3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKFNvY2tldCk7CiAKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyNTk1NzcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDQ0
LDYgKzQ0NCw3IEBACiAJCTVDQjQwQjRFMUY0Qjk4RDMwMDdEQzdCOSAvKiBVSURlbGVnYXRlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCNDBCNEQx
RjRCOThCRTAwN0RDN0I5IC8qIFVJRGVsZWdhdGUubW0gKi87IH07CiAJCTVDQjVCM0MyMUZGQzU1
Q0YwMEMyN0JCMCAvKiBGcmFtZUhhbmRsZVNlcmlhbGl6YXRpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I1QjNCRDFGRkM1MTdFMDBDMjdCQjAg
LyogRnJhbWVIYW5kbGVTZXJpYWxpemF0aW9uLm1tICovOyB9OwogCQk1Q0I3QUZEQzIzQzQ1Mjk3
MDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I3QUZEQjIzQzQ1MUU0MDBFNDlDRjMgLyogUmVz
b3VyY2VMb2FkRGVsZWdhdGUubW0gKi87IH07CisJCTVDQkFBN0ZCMjQ0MEVBMDIwMDU2NEE4QiAv
KiBDRk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUNCQUE3RkEyNDQwRUEwMjAwNTY0QThCIC8qIENGTmV0d29yay5mcmFt
ZXdvcmsgKi87IH07CiAJCTVDQ0IxMEUxMjEzNDU3RDMwMEFDNUFGMCAvKiBSZXNwb25zaXZlbmVz
c1RpbWVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNDQjEwRTAyMTM0NTc5RDAwQUM1QUYwIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIubW0gKi87IH07
CiAJCTVDQ0IxMEUyMjEzNDU3RDUwMEFDNUFGMCAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250
RmlyZUVhcmx5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUNDQjEwREQyMTM0NTc5QzAwQUM1QUYwIC8qIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRG
aXJlRWFybHkubW0gKi87IH07CiAJCTVDQ0IxMEUzMjEzNDU3RDgwMEFDNUFGMCAvKiBSZXN0b3Jl
U2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0NCMTBERTIxMzQ1NzlEMDBBQzVBRjAgLyogUmVzdG9y
ZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLm1tICovOyB9OwpAQCAtMjA5NCw2ICsyMDk1
LDcgQEAKIAkJNUNCN0FGREIyM0M0NTFFNDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZERlbGVnYXRl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VMb2Fk
RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQkFBN0YzMjQzMjdG
NkIwMDU2NEE4QiAvKiBUZXN0VUlEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBUZXN0VUlEZWxlZ2F0ZS5oOyBwYXRoID0gY29jb2EvVGVzdFVJRGVsZWdhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQUE3RjQyNDMyN0Y2QjAwNTY0QThCIC8q
IFRlc3RVSURlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gVGVzdFVJRGVsZWdhdGUubW07IHBhdGggPSBjb2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNCQUE3RkEyNDQwRUEwMjAwNTY0QThCIC8qIENG
TmV0d29yay5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7
IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNv
dXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1Q0NCMTBERDIxMzQ1NzlDMDBBQzVBRjAgLyogUmVz
cG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHkubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQ0IxMERFMjEzNDU3OUQwMEFDNUFGMCAv
KiBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmln
YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQ0IxMERGMjEzNDU3OUQw
MEFDNUFGMCAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc5OSw2ICsyODAxLDcgQEAKIAkJ
CWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTVDQkFBN0ZCMjQ0MEVBMDIwMDU2NEE4QiAvKiBD
Rk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJN0EwMTBCQ0IxRDg3N0Mw
NTAwRURFNzJBIC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJ
CQk2MzQ5MTBFMDFFOUQzRkYzMDA4ODAzMDkgLyogQ29yZUxvY2F0aW9uLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovLAogCQkJCUMyMEY4OEE3MjI5NUI5NjcwMEQ2MTBGQSAvKiBDb3JlVGV4dC5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKQEAgLTMzNzUsNiArMzM3OCw3IEBACiAJCTdDODNF
MDI4MUQwQTVDREYwMEZFQkNGMyAvKiBGcmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0JBQTdGQTI0NDBFQTAyMDA1NjRBOEIgLyogQ0ZO
ZXR3b3JrLmZyYW1ld29yayAqLywKIAkJCQk3QTAxMEJDQTFEODc3QzA1MDBFREU3MkEgLyogQ29y
ZUdyYXBoaWNzLmZyYW1ld29yayAqLywKIAkJCQk2MzQ5MTBERjFFOUQzRkYzMDA4ODAzMDkgLyog
Q29yZUxvY2F0aW9uLmZyYW1ld29yayAqLywKIAkJCQlDMjBGODhBNjIyOTVCOTY3MDBENjEwRkEg
LyogQ29yZVRleHQuZnJhbWV3b3JrICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCShyZXZpc2lvbiAyNTk1NzcpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBIQVZFKFNTTCkKIAorI2ltcG9ydCAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKICNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgpAQCAtMzQsMjMgKzM1
LDM0IEBACiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotc3RhdGljIGJvb2wgcmVjZWl2ZWRBbGVy
dDsKLQogQGludGVyZmFjZSBQcm94eURlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlLCBXS1VJRGVsZWdhdGU+CistIChOU1N0cmluZyAqKXdhaXRGb3JBbGVydDsKIEBlbmQK
IAotQGltcGxlbWVudGF0aW9uIFByb3h5RGVsZWdhdGUKK0BpbXBsZW1lbnRhdGlvbiBQcm94eURl
bGVnYXRlIHsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9hbGVydDsKK30KIAogLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1l
c3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cgogewotICAgIEVYUEVDVF9UUlVFKFttZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAInN1Y2Nlc3Mh
Il0pOwotICAgIHJlY2VpdmVkQWxlcnQgPSB0cnVlOworICAgIF9hbGVydCA9IG1lc3NhZ2U7CiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorLSAoTlNTdHJpbmcgKil3YWl0Rm9yQWxlcnQK
K3sKKyAgICB3aGlsZSAoIV9hbGVydCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3Bp
blJ1bkxvb3AoKTsKKyAgICByZXR1cm4gX2FsZXJ0LmF1dG9yZWxlYXNlKCk7Cit9CisKIC0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlv
biBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICogX051bGxhYmxlIGNyZWRlbnRpYWwpKWNv
bXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlhbEZvclRy
dXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3RdKTsKKyAgICBpZiAoW2No
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QgaXNFcXVhbFRvU3Ry
aW5nOk5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0pCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlh
bCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6Y2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZS5zZXJ2ZXJUcnVzdF0pOworCisgICAgRVhQRUNUX1dLX1NUUkVRKGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QsIE5TVVJMQXV0aGVudGljYXRpb25N
ZXRob2RIVFRQQmFzaWMpOworICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Np
b25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFs
V2l0aFVzZXI6QCJ0ZXN0dXNlciIgcGFzc3dvcmQ6QCJ0ZXN0cGFzc3dvcmQiIHBlcnNpc3RlbmNl
Ok5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZV0pOwogfQogCiBAZW5kCkBAIC03Miw3ICs4
NCw5NCBAQCBURVNUKFdlYktpdCwgSFRUUFNQcm94eSkKICAgICBbd2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1w
bGUuY29tLyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0
KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW2RlbGVnYXRlIHdhaXRGb3JBbGVydF0sICJzdWNjZXNz
ISIpOworfQorCitURVNUKFdlYktpdCwgSFRUUFByb3h5QXV0aGVudGljYXRpb24pCit7CisgICAg
VENQU2VydmVyIHNlcnZlcihbXSAoaW50IHNvY2tldCkgeworICAgICAgICBhdXRvIHJlcXVlc3RT
aG91bGRDb250YWluID0gW10gKGNvbnN0IGF1dG8mIHJlcXVlc3QsIGNvbnN0IGNoYXIqIHN0cikg
eworICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3Ryc3RyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KHJlcXVlc3QuZGF0YSgpKSwgc3RyKSk7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0
byBjb25uZWN0UmVxdWVzdCA9IFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOworICAgICAgICByZXF1
ZXN0U2hvdWxkQ29udGFpbihjb25uZWN0UmVxdWVzdCwgIkNPTk5FQ1QgZXhhbXBsZS5jb206NDQz
Iik7CisgICAgICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlMSA9CisgICAgICAgICAgICAiSFRUUC8x
LjEgNDA3IFByb3h5IEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkXHJcbiIKKyAgICAgICAgICAgICJQ
cm94eS1BdXRoZW50aWNhdGU6IEJhc2ljIHJlYWxtPVwidGVzdHJlYWxtXCJcclxuIgorICAgICAg
ICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAwXHJcbiIKKyAgICAgICAgICAgICJcclxuIjsKKyAgICAg
ICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlMSwgc3RybGVuKHJlc3BvbnNlMSkp
OworCisgICAgICAgIGF1dG8gY29ubmVjdFJlcXVlc3RXaXRoQ3JlZGVudGlhbHMgPSBUQ1BTZXJ2
ZXI6OnJlYWQoc29ja2V0KTsKKyAgICAgICAgcmVxdWVzdFNob3VsZENvbnRhaW4oY29ubmVjdFJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMsICJDT05ORUNUIGV4YW1wbGUuY29tOjQ0MyIpOworICAgICAg
ICByZXF1ZXN0U2hvdWxkQ29udGFpbihjb25uZWN0UmVxdWVzdFdpdGhDcmVkZW50aWFscywgIlBy
b3h5LUF1dGhvcml6YXRpb246IEJhc2ljIGRHVnpkSFZ6WlhJNmRHVnpkSEJoYzNOM2IzSmsiKTsK
KyAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2UyID0KKyAgICAgICAgICAgICJIVFRQLzEuMSAy
MDAgQ29ubmVjdGlvbiBFc3RhYmxpc2hlZFxyXG4iCisgICAgICAgICAgICAiQ29ubmVjdGlvbjog
Y2xvc2VcclxuIgorICAgICAgICAgICAgIlxyXG4iOworICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRl
KHNvY2tldCwgcmVzcG9uc2UyLCBzdHJsZW4ocmVzcG9uc2UyKSk7CisKKyAgICAgICAgVENQU2Vy
dmVyOjpzdGFydFNlY3VyZUNvbm5lY3Rpb24oc29ja2V0LCBUQ1BTZXJ2ZXI6OnJlc3BvbmRXaXRo
T0spOworICAgIH0pOworICAgIAorICAgIGF1dG8gc3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgW3N0b3JlQ29u
ZmlndXJhdGlvbiBzZXRQcm94eUNvbmZpZ3VyYXRpb246QHsKKyAgICAgICAgKE5TU3RyaW5nICop
a0NGU3RyZWFtUHJvcGVydHlIVFRQU1Byb3h5SG9zdDogQCIxMjcuMC4wLjEiLAorICAgICAgICAo
TlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0eUhUVFBTUHJveHlQb3J0OiBAKHNlcnZlci5wb3J0
KCkpCisgICAgfV07CisgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRBbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0Ok5PXTsKKyAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldFByZXZlbnRzU3lzdGVtSFRU
UFByb3h5QXV0aGVudGljYXRpb246WUVTXTsKKworICAgIGF1dG8gdmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIFt2aWV3Q29uZmln
dXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOltbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldIGF1dG9yZWxl
YXNlXV07CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOnZpZXdD
b25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Byb3h5
RGVsZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
KworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdXV07CisgICAgRVhQ
RUNUX1dLX1NUUkVRKFtkZWxlZ2F0ZSB3YWl0Rm9yQWxlcnRdLCAic3VjY2VzcyEiKTsKK30KKwor
VEVTVChXZWJLaXQsIFNlY3VyZVByb3h5Q29ubmVjdGlvbikKK3sKKyAgICBzdGQ6OmF0b21pYzxi
b29sPiByZWNlaXZlZFZhbGlkQ2xpZW50SGVsbG8gPSBmYWxzZTsKKyAgICBUQ1BTZXJ2ZXIgc2Vy
dmVyKFsmXSAoaW50IHNvY2tldCkgeworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjbGllbnQg
c2VuZHMgd2hhdCBsb29rcyBsaWtlIHRoZSBiZWdpbm5pbmcgb2YgYSBUTFMgaGFuZHNoYWtlLgor
ICAgICAgICAvLyBXZSBjYW4ndCB0ZXN0IG1vcmUgdGhhbiB0aGlzIGJlY2F1c2UgQ0ZOZXR3b3Jr
IHJlcXVpcmVzIGEgY2VydGlmaWNhdGUgY2hhaW4gc2lnbmVkIGJ5IGEgdHJ1c3RlZCBDQSwKKyAg
ICAgICAgLy8gYW5kIHdlIHdvdWxkbid0IHdhbnQgdG8gaW5jbHVkZSBzdWNoIGEgY2VydGlmaWNh
dGUncyBwcml2YXRlIGtleSBpbiB0aGlzIHJlcG9zaXRvcnkuCisgICAgICAgIGF1dG8gY2xpZW50
SGVsbG9CeXRlcyA9IFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOworCisgICAgICAgIC8vIGh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjQ2I3NlY3Rpb24tNi4yLjEKKyAgICAgICAgZW51
bSBjbGFzcyBDb250ZW50VHlwZSB7IEhhbmRzaGFrZSA9IDIyIH07CisgICAgICAgIEVYUEVDVF9F
UShjbGllbnRIZWxsb0J5dGVzWzBdLCBzdGF0aWNfY2FzdDx1aW50OF90PihDb250ZW50VHlwZTo6
SGFuZHNoYWtlKSk7CisgICAgICAgIHVpbnQxNl90IHRsc1BsYWludGV4dExlbmd0aCA9IGNsaWVu
dEhlbGxvQnl0ZXNbM10gKiAyNTZ1ICsgY2xpZW50SGVsbG9CeXRlc1s0XTsKKyAgICAgICAgdWlu
dDMyX3QgY2xpZW50SGVsbG9CeXRlc0xlbmd0aCA9IGNsaWVudEhlbGxvQnl0ZXNbNl0gKiA2NTUz
NnUgKyBjbGllbnRIZWxsb0J5dGVzWzddICogMjU2dSArIGNsaWVudEhlbGxvQnl0ZXNbOF07Cisg
ICAgICAgIEVYUEVDVF9FUShjbGllbnRIZWxsb0J5dGVzLnNpemUoKSwgdGxzUGxhaW50ZXh0TGVu
Z3RoICsgc2l6ZW9mKENvbnRlbnRUeXBlKSArIDIgKiBzaXplb2YodWludDhfdCkgKyBzaXplb2Yo
dWludDE2X3QpKTsKKyAgICAgICAgCisgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv
aHRtbC9yZmM1MjQ2I3NlY3Rpb24tNy40CisgICAgICAgIGVudW0gY2xhc3MgSGFuZHNoYWtlVHlw
ZSA6IHVpbnQ4X3QgeyBDbGllbnRIZWxsbyA9IDEgfTsKKyAgICAgICAgRVhQRUNUX0VRKGNsaWVu
dEhlbGxvQnl0ZXNbNV0sIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEhhbmRzaGFrZVR5cGU6OkNsaWVu
dEhlbGxvKSk7CisgICAgICAgIEVYUEVDVF9FUSh0bHNQbGFpbnRleHRMZW5ndGgsIGNsaWVudEhl
bGxvQnl0ZXNMZW5ndGggKyBzaXplb2YoSGFuZHNoYWtlVHlwZSkgKyAzKTsKKworICAgICAgICBy
ZWNlaXZlZFZhbGlkQ2xpZW50SGVsbG8gPSB0cnVlOworICAgIH0pOworICAgIAorICAgIGF1dG8g
c3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gbmV3XSk7CisgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRQcm94eUNvbmZpZ3VyYXRp
b246QHsKKyAgICAgICAgKE5TU3RyaW5nICopa0NGU3RyZWFtUHJvcGVydHlIVFRQU1Byb3h5SG9z
dDogQCIxMjcuMC4wLjEiLAorICAgICAgICAoTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0eUhU
VFBTUHJveHlQb3J0OiBAKHNlcnZlci5wb3J0KCkpCisgICAgfV07CisgICAgW3N0b3JlQ29uZmln
dXJhdGlvbiBzZXRBbGxvd3NTZXJ2ZXJQcmVjb25uZWN0Ok5PXTsKKyAgICBbc3RvcmVDb25maWd1
cmF0aW9uIHNldFJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb246WUVTXTsKKworICAg
IGF1dG8gdmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IG5ld10pOworICAgIFt2aWV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOltbW1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZp
Z3VyYXRpb24uZ2V0KCldIGF1dG9yZWxlYXNlXV07CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwg
MTAwKSBjb25maWd1cmF0aW9uOnZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImh0dHBzOi8vZXhhbXBsZS5jb20vIl1dXTsKKyAgICB3aGlsZSAoIXJlY2VpdmVk
VmFsaWRDbGllbnRIZWxsbykKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxv
b3AoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396108</attachid>
            <date>2020-04-10 11:36:10 -0700</date>
            <delta_ts>2020-04-10 16:08:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210343-20200410113610.patch</filename>
            <type>text/plain</type>
            <size>39552</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjU5NTc3KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0
LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgQWRkIFNQSSB0byBoYW5kbGUgcHJveHkgYXV0aGVudGljYXRpb24gYW5kIHJlcXVpcmUgc2Vj
dXJlIHByb3h5IGNvbm5lY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTAzNDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxNTQ2Mzk2PiA8
cmRhcjovL3Byb2JsZW0vNjE1NDY1MTk+IGFuZCA8cmRhcjovL3Byb2JsZW0vNjE1NDY2NTg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oOgorCiAyMDIwLTA0LTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CiAKICAgICAgICAgVGhlIHZhbHVlIG9mIFtBVlBsYXllclZpZXdDb250cm9sbGVy
IGlzUGljdHVyZUluUGljdHVyZVBvc3NpYmxlXSBpcyBOTyBpbiB0aGUgZmlyc3QgYXR0ZW1wdCB0
byBlbnRlciBQaVAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCShyZXZpc2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcgKzE5Myw5IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVVJMU2Vzc2lvbkMKIEBwcm9wZXJ0eSAoY29weSkg
TlNEYXRhICpfc291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuRGF0YTsKIEBwcm9wZXJ0eSAobnVs
bGFibGUsIGNvcHkpIE5TU3RyaW5nICpfc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
OwogQHByb3BlcnR5IChudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXI7Ci1AcHJvcGVydHkgQk9PTCBfc2hvdWxkU2tpcFByZWZlcnJl
ZENsaWVudENlcnRpZmljYXRlTG9va3VwIE5TX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK0Bwcm9w
ZXJ0eSBCT09MIF9zaG91bGRTa2lwUHJlZmVycmVkQ2xpZW50Q2VydGlmaWNhdGVMb29rdXA7CitA
cHJvcGVydHkgQk9PTCBfcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKK0Bw
cm9wZXJ0eSBCT09MIF9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBAcHJvcGVydHkgKG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAq
X0NURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1OTg0MikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMjAtMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIHRvIGhhbmRsZSBwcm94eSBhdXRoZW50
aWNhdGlvbiBhbmQgcmVxdWlyZSBzZWN1cmUgcHJveHkgY29ubmVjdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDM0MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjE1NDYzOTY+IDxyZGFyOi8vcHJvYmxlbS82MTU0NjUxOT4gYW5kIDxyZGFy
Oi8vcHJvYmxlbS82MTU0NjY1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJIGFsc28gdXNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uY29ubmVjdGlv
blByb3h5RGljdGlvbmFyeSBpbnN0ZWFkIG9mIENGVVJMUmVxdWVzdFNldFByb3h5U2V0dGluZ3MK
KyAgICAgICAgdG8gc2V0IHByb3h5IHNldHRpbmdzLiAgVGhlIGVxdWl2YWxlbmNlIG9mIHRoaXMg
YmVoYXZpb3IgaXMgY292ZXJlZCBieSB0aGUgQVBJIHRlc3RzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5U25p
ZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgt
W1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6ZGlkUmVjZWl2ZUNoYWxs
ZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAg
ICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHByZXZlbnRzU3lzdGVtSFRU
UFByb3h5QXV0aGVudGljYXRpb25dKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gc2V0UHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjpdKToK
KyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcmVxdWlyZXNTZWN1
cmVIVFRQU1Byb3h5Q29ubmVjdGlvbl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBzZXRSZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29u
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbjo6cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRQcmV2ZW50c1N5
c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb246OnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24g
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
c2V0UmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbik6CisKIDIwMjAtMDQtMDkgIE1l
Z2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQb3BvdmVy
cyBhcmUgZGlzbWlzc2VkIGltbWVkaWF0ZWx5IHdoZW4gdGhleSB0cnkgYW5kIGJyaW5nIHVwIHRo
ZSBrZXlib2FyZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZp
c2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOCBA
QCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5jb2RlciA8
PCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2U7CiAgICAgZW5j
b2RlciA8PCBhbGxvd3NTZXJ2ZXJQcmVjb25uZWN0OwogICAgIGVuY29kZXIgPDwgaXNJbkFwcEJy
b3dzZXJQcml2YWN5RW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzU2VjdXJlSFRUUFNQ
cm94eUNvbm5lY3Rpb247CisgICAgZW5jb2RlciA8PCBwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1
dGhlbnRpY2F0aW9uOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnM7CiB9CiAKQEAgLTI0MCw2ICsyNDIsMTYgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcgogICAgIGlmICghaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCkK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgIE9wdGlvbmFsPGJvb2w+IHJlcXVp
cmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb247CisgICAgZGVjb2RlciA+PiByZXF1aXJlc1Nl
Y3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOworICAgIGlmICghcmVxdWlyZXNTZWN1cmVIVFRQU1By
b3h5Q29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBP
cHRpb25hbDxib29sPiBwcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uOworICAg
IGRlY29kZXIgPj4gcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKKyAgICBp
ZiAoIXByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24pCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKICAgICBPcHRpb25hbDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycz4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiAgICAgZGVjb2RlciA+
PiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKICAgICBpZiAoIXJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQpAQCAtMjg0LDYgKzI5Niw4IEBAIE9wdGlvbmFsPE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXIKICAgICAgICAgLCBXVEZNb3ZlKCpzdXBwcmVzc2Vz
Q29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UpCiAgICAgICAgICwgV1RGTW92ZSgq
YWxsb3dzU2VydmVyUHJlY29ubmVjdCkKICAgICAgICAgLCBXVEZNb3ZlKCppc0luQXBwQnJvd3Nl
clByaXZhY3lFbmFibGVkKQorICAgICAgICAsIFdURk1vdmUoKnJlcXVpcmVzU2VjdXJlSFRUUFNQ
cm94eUNvbm5lY3Rpb24pCisgICAgICAgICwgV1RGTW92ZSgqcHJldmVudHNTeXN0ZW1IVFRQUHJv
eHlBdXRoZW50aWNhdGlvbikKICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVycykKICAgICB9fTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgJKHJldmlzaW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtOTEs
NiArOTEsOCBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgCiAgICAg
Ym9vbCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgeyBmYWxz
ZSB9OwogICAgIGJvb2wgYWxsb3dzU2VydmVyUHJlY29ubmVjdCB7IHRydWUgfTsKICAgICBib29s
IGlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWly
ZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBwcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uIHsgZmFsc2UgfTsKICAgICAKICAgICBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVyczsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0JKHJldmlzaW9uIDI1OTU3NykKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTg5LDEzICs4OSwxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjphcHBseVNuaWZmaW5nCiAKICAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNf
Y2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAgICAgYXV0byYgYm91bmRJ
bnRlcmZhY2VJZGVudGlmaWVyID0gY29jb2FTZXNzaW9uLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cigpOwotICAgIGF1dG8qIHByb3h5Q29uZmlndXJhdGlvbiA9IGNvY29hU2Vzc2lvbi5wcm94eUNv
bmZpZ3VyYXRpb24oKTsKICAgICBpZiAoc2hvdWxkQ29udGVudFNuaWZmCiAjaWYgVVNFKENGTkVU
V09SS19DT05URU5UX0VOQ09ESU5HX1NOSUZGSU5HX09WRVJSSURFKQogICAgICAgICAmJiBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZgogI2VuZGlmCi0gICAgICAgICYmIGJvdW5kSW50ZXJmYWNl
SWRlbnRpZmllci5pc051bGwoKQotICAgICAgICAmJiAhcHJveHlDb25maWd1cmF0aW9uKQorICAg
ICAgICAmJiBib3VuZEludGVyZmFjZUlkZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGF1dG8gbXV0YWJsZVJlcXVlc3QgPSBhZG9wdE5TKFtuc1JlcXVlc3QgbXV0YWJs
ZUNvcHldKTsKQEAgLTExMSw5ICsxMDksNiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjph
cHBseVNuaWZmaW5nCiAgICAgaWYgKCFib3VuZEludGVyZmFjZUlkZW50aWZpZXIuaXNOdWxsKCkp
CiAgICAgICAgIFttdXRhYmxlUmVxdWVzdCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXI6Ym91
bmRJbnRlcmZhY2VJZGVudGlmaWVyXTsKIAotICAgIGlmIChwcm94eUNvbmZpZ3VyYXRpb24pCi0g
ICAgICAgIENGVVJMUmVxdWVzdFNldFByb3h5U2V0dGluZ3MoW211dGFibGVSZXF1ZXN0IF9DRlVS
TFJlcXVlc3RdLCBwcm94eUNvbmZpZ3VyYXRpb24pOwotCiAgICAgbnNSZXF1ZXN0ID0gbXV0YWJs
ZVJlcXVlc3QuYXV0b3JlbGVhc2UoKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgJKHJldmlz
aW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoK
ICAgICBTZXNzaW9uV3JhcHBlciYgc2Vzc2lvbldyYXBwZXJGb3JUYXNrKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CiAgICAgdm9pZCBzZXRJbkFwcEJyb3dzZXJQcml2YWN5
RW5hYmxlZChib29sIGVuYWJsZWQpIG92ZXJyaWRlIHsgbV9pc0luQXBwQnJvd3NlclByaXZhY3lF
bmFibGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsgfQorICAg
IGJvb2wgcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsgfQogICAgIAogcHJp
dmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKSBvdmVycmlkZTsKQEAgLTE0NCw2
ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9u
RW5hYmxlZCB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlw
ZTsKICAgICBib29sIG1faXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX3ByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24geyBmYWxzZSB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCShy
ZXZpc2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0Niw3ICs2NDYsNyBAQCAt
ICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3NpCiAgICAgCiAgICAgLy8gUHJv
eHkgYXV0aGVudGljYXRpb24gaXMgaGFuZGxlZCBieSBDRk5ldHdvcmsgaW50ZXJuYWxseS4gV2Ug
Y2FuIGdldCBoZXJlIGlmIHRoZSB1c2VyIGNhbmNlbHMKICAgICAvLyBDRk5ldHdvcmsgYXV0aGVu
dGljYXRpb24gZGlhbG9nLCBhbmQgd2Ugc2hvdWxkbid0IGFzayB0aGUgY2xpZW50IHRvIGRpc3Bs
YXkgYW5vdGhlciBvbmUgaW4gdGhhdCBjYXNlLgotICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlv
blNwYWNlLmlzUHJveHkpIHsKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5pc1By
b3h5ICYmICFzZXNzaW9uQ29jb2EtPnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRp
b24oKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlVXNlQ3JlZGVudGlhbCwgbmlsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwNzYs
NiArMTA3Niw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EKICAg
ICAsIG1fZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQocGFyYW1ldGVycy5mYXN0U2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCkKICAgICAsIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNl
VHlwZShwYXJhbWV0ZXJzLmRhdGFDb25uZWN0aW9uU2VydmljZVR5cGUpCiAgICAgLCBtX2lzSW5B
cHBCcm93c2VyUHJpdmFjeUVuYWJsZWQocGFyYW1ldGVycy5pc0luQXBwQnJvd3NlclByaXZhY3lF
bmFibGVkKQorICAgICwgbV9wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKHBh
cmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbikKIHsKICAgICBB
U1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdD
b29raWVzKSk7CiAKQEAgLTExMTgsNyArMTExOSw5IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5l
dHdvcmtTZXNzaW9uQ29jb2EKICAgICBjb25maWd1cmF0aW9uLl9hbGxvd3NIVFRQMyA9IHBhcmFt
ZXRlcnMuaHR0cDNFbmFibGVkOwogI2VuZGlmCiAKLSAgICBjb25maWd1cmF0aW9uLmNvbm5lY3Rp
b25Qcm94eURpY3Rpb25hcnkgPSBwcm94eURpY3Rpb25hcnkocGFyYW1ldGVycy5odHRwUHJveHks
IHBhcmFtZXRlcnMuaHR0cHNQcm94eSk7CisgICAgY29uZmlndXJhdGlvbi5fcHJldmVudHNTeXN0
ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IHBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQ
UHJveHlBdXRoZW50aWNhdGlvbjsKKyAgICBjb25maWd1cmF0aW9uLl9yZXF1aXJlc1NlY3VyZUhU
VFBTUHJveHlDb25uZWN0aW9uID0gcGFyYW1ldGVycy5yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlD
b25uZWN0aW9uOworICAgIGNvbmZpZ3VyYXRpb24uY29ubmVjdGlvblByb3h5RGljdGlvbmFyeSA9
IChOU0RpY3Rpb25hcnkgKilwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbi5nZXQoKSA/OiBw
cm94eURpY3Rpb25hcnkocGFyYW1ldGVycy5odHRwUHJveHksIHBhcmFtZXRlcnMuaHR0cHNQcm94
eSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmICghbV9kYXRhQ29ubmVjdGlv
blNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTk1NzcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNTEsNiArNTEsOCBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBsZWdhY3lUTFNFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TRGljdGlvbmFyeSAqcHJveHlDb25maWd1
cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpkYXRh
Q29ubmVjdGlvblNlcnZpY2VUeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcmV2ZW50c1N5
c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByZXF1
aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRoZXNlIHByb3BlcnRpZXMgb25seSBt
YWtlIHNlbnNlIGZvciBwZXJzaXN0ZW50IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwogLy8g
YW4gZXhjZXB0aW9uIGlmIHNldCBmb3Igbm9uLXBlcnNpc3RlbnQgc3RvcmVzLgpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQkocmV2aXNpb24gMjU5NTc3KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MTgsNiArNDE4LDI2IEBAIC0gKHZv
aWQpc2V0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTooTlMKICAgICBfY29uZmlndXJhdGlvbi0+
c2V0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSh0eXBlKTsKIH0KIAorLSAoQk9PTClwcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0
aW9uLT5wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKCk7Cit9CisKKy0gKHZv
aWQpc2V0UHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjooQk9PTClwcmV2ZW50
cworeworICAgIF9jb25maWd1cmF0aW9uLT5zZXRQcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhl
bnRpY2F0aW9uKHByZXZlbnRzKTsKK30KKworLSAoQk9PTClyZXF1aXJlc1NlY3VyZUhUVFBTUHJv
eHlDb25uZWN0aW9uCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5yZXF1aXJlc1NlY3Vy
ZUhUVFBTUHJveHlDb25uZWN0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0UmVxdWlyZXNTZWN1cmVI
VFRQU1Byb3h5Q29ubmVjdGlvbjooQk9PTClyZXF1aXJlcworeworICAgIF9jb25maWd1cmF0aW9u
LT5zZXRSZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uKHJlcXVpcmVzKTsKK30KKwog
LSAodm9pZClzZXRQcm94eUNvbmZpZ3VyYXRpb246KE5TRGljdGlvbmFyeSAqKWNvbmZpZ3VyYXRp
b24KIHsKICAgICBfY29uZmlndXJhdGlvbi0+c2V0UHJveHlDb25maWd1cmF0aW9uKChfX2JyaWRn
ZSBDRkRpY3Rpb25hcnlSZWYpW2NvbmZpZ3VyYXRpb24gY29weV0pOwpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAJKHJldmlzaW9uIDI1OTU3NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMxLDYgKzIy
MzEsOSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAgbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5
c3RlbUNoYW5nZSA9IG1fY29uZmlndXJhdGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5h
dGlvbk9uU3lzdGVtQ2hhbmdlKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbG93
c1NlcnZlclByZWNvbm5lY3QgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbG93c1NlcnZlclByZWNvbm5l
Y3QoKTsKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMgPSBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKTsK
KyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29u
bmVjdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVj
dGlvbigpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wcmV2ZW50c1N5c3RlbUhUVFBQ
cm94eUF1dGhlbnRpY2F0aW9uID0gbV9jb25maWd1cmF0aW9uLT5wcmV2ZW50c1N5c3RlbUhUVFBQ
cm94eUF1dGhlbnRpY2F0aW9uKCk7CisKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycyA9IFdURk1vdmUobmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmNwcAkocmV2aXNpb24gMjU5NTc3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MSw2ICs5MSw4IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4g
V2Vic2kKICAgICBjb3B5LT5tX3Rlc3RTcGVlZE11bHRpcGxpZXIgPSB0aGlzLT5tX3Rlc3RTcGVl
ZE11bHRpcGxpZXI7CiAgICAgY29weS0+bV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9u
T25TeXN0ZW1DaGFuZ2UgPSB0aGlzLT5tX3N1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25P
blN5c3RlbUNoYW5nZTsKICAgICBjb3B5LT5tX2FsbG93c1NlcnZlclByZWNvbm5lY3QgPSB0aGlz
LT5tX2FsbG93c1NlcnZlclByZWNvbm5lY3Q7CisgICAgY29weS0+bV9yZXF1aXJlc1NlY3VyZUhU
VFBTUHJveHlDb25uZWN0aW9uID0gdGhpcy0+bV9yZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25u
ZWN0aW9uOworICAgIGNvcHktPm1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlv
biA9IHRoaXMtPm1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGNv
cHktPm1fcHJveHlDb25maWd1cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5
KG51bGxwdHIsIHRoaXMtPm1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1OTU3NykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Myw2ICsxNTMsMTIgQEAgcHVibGljOgogICAg
IGJvb2wgYWxsb3dzU2VydmVyUHJlY29ubmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzU2Vy
dmVyUHJlY29ubmVjdDsgfQogICAgIHZvaWQgc2V0QWxsb3dzU2VydmVyUHJlY29ubmVjdChib29s
IGFsbG93cykgeyBtX2FsbG93c1NlcnZlclByZWNvbm5lY3QgPSBhbGxvd3M7IH0KIAorICAgIGJv
b2wgcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsgfQorICAgIHZvaWQgc2V0
UHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbihib29sIHByZXZlbnRzKSB7IG1f
cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IHByZXZlbnRzOyB9CisKKyAg
ICBib29sIHJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX3JlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb247IH07CisgICAgdm9pZCBzZXRS
ZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uKGJvb2wgcmVxdWlyZXMpIHsgbV9yZXF1
aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uID0gcmVxdWlyZXM7IH0KKwogcHJpdmF0ZToK
ICAgICBJc1BlcnNpc3RlbnQgbV9pc1BlcnNpc3RlbnQgeyBJc1BlcnNpc3RlbnQ6Ok5vIH07CiAK
QEAgLTE5NCw2ICsyMDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV90ZXN0aW5nU2Vzc2lvbkVu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0
aW9uT25TeXN0ZW1DaGFuZ2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9wcmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhl
bnRpY2F0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5
Q29ubmVjdGlvbiB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV90ZXN0U3BlZWRNdWx0aXBsaWVy
IHsgMSB9OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU5ODc5KQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDQtMTAgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIHRv
IGhhbmRsZSBwcm94eSBhdXRoZW50aWNhdGlvbiBhbmQgcmVxdWlyZSBzZWN1cmUgcHJveHkgY29u
bmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDM0MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjE1NDYzOTY+IDxyZGFyOi8vcHJvYmxl
bS82MTU0NjUxOT4gYW5kIDxyZGFyOi8vcHJvYmxlbS82MTU0NjY1OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVENQU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRDUFNlcnZlcjo6c3RhcnRTZWN1cmVD
b25uZWN0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRDUFNlcnZlcjo6VENQU2VydmVy
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW06CisgICAgICAgICgtW1Byb3h5RGVs
ZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1Byb3h5RGVsZWdhdGUg
d2FpdEZvckFsZXJ0XSk6CisgICAgICAgICgtW1Byb3h5RGVsZWdhdGUgd2ViVmlldzpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNC0xMCAgQWxpY2lhIEJveWEgR2FyY8Ot
YSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gRGF0YU11dGV4OiBBZGQgcnVu
VW5sb2NrZWQoKQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmNwcAkocmV2aXNpb24gMjU5
NTc3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzQsODcgKzEzNCw5MCBAQCBUQ1BTZXJ2ZXI6OlRDUFNlcnZlcihGdW5jdGlvbjx2b2lk
KFNvY2tlCiB9CiAKICNpZiBIQVZFKFNTTCkKLVRDUFNlcnZlcjo6VENQU2VydmVyKFByb3RvY29s
IHByb3RvY29sLCBGdW5jdGlvbjx2b2lkKFNTTCopPiYmIHNlY3VyZUNvbm5lY3Rpb25IYW5kbGVy
LCBPcHRpb25hbDx1aW50MTZfdD4gbWF4VExTVmVyc2lvbikKK3ZvaWQgVENQU2VydmVyOjpzdGFy
dFNlY3VyZUNvbm5lY3Rpb24oU29ja2V0IHNvY2tldCwgRnVuY3Rpb248dm9pZChTU0wqKT4mJiBz
ZWN1cmVDb25uZWN0aW9uSGFuZGxlciwgYm9vbCByZXF1ZXN0Q2xpZW50Q2VydGlmaWNhdGUsIE9w
dGlvbmFsPHVpbnQxNl90PiBtYXhUTFNWZXJzaW9uKQogewotICAgIGF1dG8gc3RhcnRTZWN1cmVD
b25uZWN0aW9uID0gW3NlY3VyZUNvbm5lY3Rpb25IYW5kbGVyID0gV1RGTW92ZShzZWN1cmVDb25u
ZWN0aW9uSGFuZGxlciksIHByb3RvY29sLCBtYXhUTFNWZXJzaW9uXSAoU29ja2V0IHNvY2tldCkg
ewotICAgICAgICBTU0xfbGlicmFyeV9pbml0KCk7CisgICAgU1NMX2xpYnJhcnlfaW5pdCgpOwog
Ci0gICAgICAgIHNzbDo6dW5pcXVlX3B0cjxTU0xfQ1RYPiBjdHgoU1NMX0NUWF9uZXcoVExTX3dp
dGhfYnVmZmVyc19tZXRob2QoKSkpOworICAgIHNzbDo6dW5pcXVlX3B0cjxTU0xfQ1RYPiBjdHgo
U1NMX0NUWF9uZXcoVExTX3dpdGhfYnVmZmVyc19tZXRob2QoKSkpOwogCi0gICAgICAgIC8vIFRo
aXMgaXMgYSB0ZXN0IGNlcnRpZmljYXRlIGZyb20gQm9yaW5nU1NMLgotICAgICAgICBTdHJpbmcg
Y2VydFBFTSgKLSAgICAgICAgIk1JSUNXRENDQWNHZ0F3SUJBZ0lKQVB1d1RDNnJFSnNNTUEwR0NT
cUdTSWIzRFFFQkJRVUFNRVV4Q3pBSkJnTlYiCi0gICAgICAgICJCQVlUQWtGVk1STXdFUVlEVlFR
SURBcFRiMjFsTFZOMFlYUmxNU0V3SHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYIgotICAgICAgICAi
YVdSbmFYUnpJRkIwZVNCTWRHUXdIaGNOTVRRd05ESXpNakExTURRd1doY05NVGN3TkRJeU1qQTFN
RFF3V2pCRiIKLSAgICAgICAgIk1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQXdLVTI5dFpT
MVRkR0YwWlRFaE1COEdBMVVFQ2d3WVNXNTAiCi0gICAgICAgICJaWEp1WlhRZ1YybGtaMmwwY3lC
UWRIa2dUSFJrTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCIgotICAgICAgICAi
Z1FEWUs4aW1NdVJpLzAzejBLMVppMFdudmZGSHZ3bFlleUs5TmE2WEpZYVVvSURBdEI5MmtXZEdN
ZEFRaExjaSIKLSAgICAgICAgIkhuQWprWExJNlcxNU9vVjNnQS9FbFJaMXhVcHhUTWhqUDZQeVk1
d3FUNXI2eThGeGJpaUZLS0FuSG1VY3JnZlYiCi0gICAgICAgICJXMjh0USswcmtMR01yeVJ0cnVr
WE9nWEJ2N2djcm1VN0cxakMyYTdXcW1lSThRSURBUUFCbzFBd1RqQWRCZ05WIgotICAgICAgICAi
SFE0RUZnUVVpM1hWck1zSXZnNGZaYmY2VnI1c3AzWGFoYTh3SHdZRFZSMGpCQmd3Rm9BVWkzWFZy
TXNJdmc0ZiIKLSAgICAgICAgIlpiZjZWcjVzcDNYYWhhOHdEQVlEVlIwVEJBVXdBd0VCL3pBTkJn
a3Foa2lHOXcwQkFRVUZBQU9CZ1FBNzZIaHQiCi0gICAgICAgICJsZFk5YXZjVEdTd2J3b2l1SXF2
MGpUTDFmSEZuenkzUkhNTERoK0xwdm9sYzVEU3JTSkhDUDVXdUswZWVKWGhyIgotICAgICAgICAi
VDVvUXBITDl6L2NDRExBS0NLUmE0dVYwZmhFZE9XQnF5UjlwOHk1akp0eWU3MnQ2Q3VGVVY1aXFj
cEY0Qkg0ZiIKLSAgICAgICAgImoyVk5Id3NTckp3a0Q0UVVHbFV0SDd2d25RbXlDRnhaTW1XQUpn
PT0iKTsKLSAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNlcnRERVI7Ci0gICAgICAgIGJhc2U2NERl
Y29kZShjZXJ0UEVNLCBjZXJ0REVSLCBXVEY6OkJhc2U2NERlY29kZU9wdGlvbnM6OkJhc2U2NERl
ZmF1bHQpOwotICAgICAgICBzc2w6OnVuaXF1ZV9wdHI8Q1JZUFRPX0JVRkZFUj4gY2VydChDUllQ
VE9fQlVGRkVSX25ldyhjZXJ0REVSLmRhdGEoKSwgY2VydERFUi5zaXplKCksIG51bGxwdHIpKTsK
LSAgICAgICAgQVNTRVJUKGNlcnQpOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSB0ZXN0IGtleSBm
cm9tIEJvcmluZ1NTTC4KLSAgICAgICAgY2hhciBrS2V5UEVNW10gPQotICAgICAgICAiLS0tLS1C
RUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuIgotICAgICAgICAiTUlJQ1hnSUJBQUtCZ1FEWUs4
aW1NdVJpLzAzejBLMVppMFdudmZGSHZ3bFlleUs5TmE2WEpZYVVvSURBdEI5MlxuIgotICAgICAg
ICAia1dkR01kQVFoTGNpSG5BamtYTEk2VzE1T29WM2dBL0VsUloxeFVweFRNaGpQNlB5WTV3cVQ1
cjZ5OEZ4YmlpRlxuIgotICAgICAgICAiS0tBbkhtVWNyZ2ZWVzI4dFErMHJrTEdNcnlSdHJ1a1hP
Z1hCdjdnY3JtVTdHMWpDMmE3V3FtZUk4UUlEQVFBQlxuIgotICAgICAgICAiQW9HQkFJQnkwOUZk
NERPcS9JanA4SGVLdUNNS1RIcVRXMXhHSHNoTFE2andWVjJ2V1pJbjlhSWdtRHN2a2pDZVxuIgot
ICAgICAgICAiaTZzc1p2bmJqVmN3elNvQnloak44WkNmL2kxNUhFQ1dERkZoNmd0MFA1ejBNbkNo
d3pabXZhdFYvRlhDVDBqK1xuIgotICAgICAgICAiV21HTkIvZ2tlaEtqR1hMTGNqVGI2ZFJZVkpT
Q1poVnVPTExjYldJVjEwZ2dnSlFCQWtFQThTOHNHZTRlenl5WlxuIgotICAgICAgICAibTRlOXI5
NWc2czQza1BxdGo1cmV3VHNVeHQrMm40ZVZvZEQrWlVsQ1VMV1ZOQUZMa1lSVEJDQVNsU3JtOVho
alxuIgotICAgICAgICAiUXBtV0FISlVrUUpCQU9WelFkRlVhZXdMdGRPSm9QQ3RwWW9ZMXpkMjJl
YWU4VFFFbXBHT1IxMUw2a2J4TFFza1xuIgotICAgICAgICAiYU1seS9ET25PYWE4MnRxQUdUZHFE
RVpnU05tQ2VLS2tubUVDUUF2cG5ZOEdVT1ZBdWJHUjZjK1c5MGlCdVFMalxuIgotICAgICAgICAi
THRGcC85aWhkMncvUG9Ed3JIWmFvVVlWY1Q0VlNmSlFvZy9rN2tqRTRNWVhZV0w4ZUVLZzNXVFdR
TkVDUVFEa1xuIgotICAgICAgICAiMTA0V2k5MVVtZDFQekYwaWpkMmpYT0VSSlUxd0VLZTZYTGtZ
WU5IV1FBZTVsNEo0TVdqOU9keEZYQXhJdXVSL1xuIgotICAgICAgICAidGZEd2Jxa3RhNHhjdXg2
Ny8va2hBa0VBdnZSWExIVGFhNlZGelRhaWlPOFNhRnNIVjNsUXlYT3RNckJwQjVqZFxuIgotICAg
ICAgICAibW9aV2dqSHZCMlc5Q2tuN3NEcXNQQitVMnR5WDBqb0RkUUV5dWlNRUNEWThvUT09XG4i
Ci0gICAgICAgICItLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLVxuIjsKLQotICAgICAgICBz
c2w6OnVuaXF1ZV9wdHI8QklPPiBwcml2YXRlS2V5QklPKEJJT19uZXdfbWVtX2J1ZihrS2V5UEVN
LCBzdHJsZW4oa0tleVBFTSkpKTsKLSAgICAgICAgc3NsOjp1bmlxdWVfcHRyPEVWUF9QS0VZPiBw
cml2YXRlS2V5KFBFTV9yZWFkX2Jpb19Qcml2YXRlS2V5KHByaXZhdGVLZXlCSU8uZ2V0KCksIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpKTsKLSAgICAgICAgQVNTRVJUKHByaXZhdGVLZXkpOwot
Ci0gICAgICAgIFNTTF9DVFhfc2V0X2NoYWluX2FuZF9rZXkoY3R4LmdldCgpLCByZWludGVycHJl
dF9jYXN0PENSWVBUT19CVUZGRVIgKmNvbnN0ICo+KCZjZXJ0KSwgMSwgcHJpdmF0ZUtleS5nZXQo
KSwgbnVsbHB0cik7Ci0KLSAgICAgICAgaWYgKHByb3RvY29sID09IFByb3RvY29sOjpIVFRQU1dp
dGhDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3QpIHsKLSAgICAgICAgICAgIFNTTF9DVFhfc2V0X2N1
c3RvbV92ZXJpZnkoY3R4LmdldCgpLCBTU0xfVkVSSUZZX1BFRVIgfCBTU0xfVkVSSUZZX0ZBSUxf
SUZfTk9fUEVFUl9DRVJULCBbXSAoU1NMKiBzc2wsIHVpbnQ4X3QqKSAtPiBzc2xfdmVyaWZ5X3Jl
c3VsdF90IHsKLSAgICAgICAgICAgICAgICBhdXRvIGNoYWluID0gU1NMX2dldDBfcGVlcl9jZXJ0
aWZpY2F0ZXMoc3NsKTsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoc2tfQ1JZUFRPX0JVRkZF
Ul9udW0oY2hhaW4pLCAydSk7Ci0gICAgICAgICAgICAgICAgYXV0byBjZXJ0ID0gc2tfQ1JZUFRP
X0JVRkZFUl92YWx1ZShjaGFpbiwgMCk7Ci0gICAgICAgICAgICAgICAgYXV0byBleHBlY3RlZENl
cnQgPSB0ZXN0Q2VydGlmaWNhdGUoKTsKLSAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoQ1JZUFRP
X0JVRkZFUl9sZW4oY2VydCksIGV4cGVjdGVkQ2VydC5zaXplKCkpOwotICAgICAgICAgICAgICAg
IEVYUEVDVF9UUlVFKCFtZW1jbXAoQ1JZUFRPX0JVRkZFUl9kYXRhKGNlcnQpLCBleHBlY3RlZENl
cnQuZGF0YSgpLCBleHBlY3RlZENlcnQuc2l6ZSgpKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHNzbF92ZXJpZnlfb2s7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAgIC8vIFRoaXMg
aXMgYSB0ZXN0IGNlcnRpZmljYXRlIGZyb20gQm9yaW5nU1NMLgorICAgIFN0cmluZyBjZXJ0UEVN
KAorICAgICJNSUlDV0RDQ0FjR2dBd0lCQWdJSkFQdXdUQzZyRUpzTU1BMEdDU3FHU0liM0RRRUJC
UVVBTUVVeEN6QUpCZ05WIgorICAgICJCQVlUQWtGVk1STXdFUVlEVlFRSURBcFRiMjFsTFZOMFlY
UmxNU0V3SHdZRFZRUUtEQmhKYm5SbGNtNWxkQ0JYIgorICAgICJhV1JuYVhSeklGQjBlU0JNZEdR
d0hoY05NVFF3TkRJek1qQTFNRFF3V2hjTk1UY3dOREl5TWpBMU1EUXdXakJGIgorICAgICJNUXN3
Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0F3S1UyOXRaUzFUZEdGMFpURWhNQjhHQTFVRUNnd1lT
VzUwIgorICAgICJaWEp1WlhRZ1YybGtaMmwwY3lCUWRIa2dUSFJrTUlHZk1BMEdDU3FHU0liM0RR
RUJBUVVBQTRHTkFEQ0JpUUtCIgorICAgICJnUURZSzhpbU11UmkvMDN6MEsxWmkwV252ZkZIdnds
WWV5SzlOYTZYSllhVW9JREF0Qjkya1dkR01kQVFoTGNpIgorICAgICJIbkFqa1hMSTZXMTVPb1Yz
Z0EvRWxSWjF4VXB4VE1oalA2UHlZNXdxVDVyNnk4RnhiaWlGS0tBbkhtVWNyZ2ZWIgorICAgICJX
Mjh0USswcmtMR01yeVJ0cnVrWE9nWEJ2N2djcm1VN0cxakMyYTdXcW1lSThRSURBUUFCbzFBd1Rq
QWRCZ05WIgorICAgICJIUTRFRmdRVWkzWFZyTXNJdmc0ZlpiZjZWcjVzcDNYYWhhOHdId1lEVlIw
akJCZ3dGb0FVaTNYVnJNc0l2ZzRmIgorICAgICJaYmY2VnI1c3AzWGFoYTh3REFZRFZSMFRCQVV3
QXdFQi96QU5CZ2txaGtpRzl3MEJBUVVGQUFPQmdRQTc2SGh0IgorICAgICJsZFk5YXZjVEdTd2J3
b2l1SXF2MGpUTDFmSEZuenkzUkhNTERoK0xwdm9sYzVEU3JTSkhDUDVXdUswZWVKWGhyIgorICAg
ICJUNW9RcEhMOXovY0NETEFLQ0tSYTR1VjBmaEVkT1dCcXlSOXA4eTVqSnR5ZTcydDZDdUZVVjVp
cWNwRjRCSDRmIgorICAgICJqMlZOSHdzU3JKd2tENFFVR2xVdEg3dnduUW15Q0Z4Wk1tV0FKZz09
Iik7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNlcnRERVI7CisgICAgYmFzZTY0RGVjb2RlKGNlcnRQ
RU0sIGNlcnRERVIsIFdURjo6QmFzZTY0RGVjb2RlT3B0aW9uczo6QmFzZTY0RGVmYXVsdCk7Cisg
ICAgc3NsOjp1bmlxdWVfcHRyPENSWVBUT19CVUZGRVI+IGNlcnQoQ1JZUFRPX0JVRkZFUl9uZXco
Y2VydERFUi5kYXRhKCksIGNlcnRERVIuc2l6ZSgpLCBudWxscHRyKSk7CisgICAgQVNTRVJUKGNl
cnQpOworCisgICAgLy8gVGhpcyBpcyBhIHRlc3Qga2V5IGZyb20gQm9yaW5nU1NMLgorICAgIGNo
YXIga0tleVBFTVtdID0KKyAgICAiLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuIgor
ICAgICJNSUlDWGdJQkFBS0JnUURZSzhpbU11UmkvMDN6MEsxWmkwV252ZkZIdndsWWV5SzlOYTZY
SllhVW9JREF0QjkyXG4iCisgICAgImtXZEdNZEFRaExjaUhuQWprWExJNlcxNU9vVjNnQS9FbFJa
MXhVcHhUTWhqUDZQeVk1d3FUNXI2eThGeGJpaUZcbiIKKyAgICAiS0tBbkhtVWNyZ2ZWVzI4dFEr
MHJrTEdNcnlSdHJ1a1hPZ1hCdjdnY3JtVTdHMWpDMmE3V3FtZUk4UUlEQVFBQlxuIgorICAgICJB
b0dCQUlCeTA5RmQ0RE9xL0lqcDhIZUt1Q01LVEhxVFcxeEdIc2hMUTZqd1ZWMnZXWkluOWFJZ21E
c3ZrakNlXG4iCisgICAgImk2c3Nadm5ialZjd3pTb0J5aGpOOFpDZi9pMTVIRUNXREZGaDZndDBQ
NXowTW5DaHd6Wm12YXRWL0ZYQ1QwaitcbiIKKyAgICAiV21HTkIvZ2tlaEtqR1hMTGNqVGI2ZFJZ
VkpTQ1poVnVPTExjYldJVjEwZ2dnSlFCQWtFQThTOHNHZTRlenl5WlxuIgorICAgICJtNGU5cjk1
ZzZzNDNrUHF0ajVyZXdUc1V4dCsybjRlVm9kRCtaVWxDVUxXVk5BRkxrWVJUQkNBU2xTcm05WGhq
XG4iCisgICAgIlFwbVdBSEpVa1FKQkFPVnpRZEZVYWV3THRkT0pvUEN0cFlvWTF6ZDIyZWFlOFRR
RW1wR09SMTFMNmtieExRc2tcbiIKKyAgICAiYU1seS9ET25PYWE4MnRxQUdUZHFERVpnU05tQ2VL
S2tubUVDUUF2cG5ZOEdVT1ZBdWJHUjZjK1c5MGlCdVFMalxuIgorICAgICJMdEZwLzlpaGQydy9Q
b0R3ckhaYW9VWVZjVDRWU2ZKUW9nL2s3a2pFNE1ZWFlXTDhlRUtnM1dUV1FORUNRUURrXG4iCisg
ICAgIjEwNFdpOTFVbWQxUHpGMGlqZDJqWE9FUkpVMXdFS2U2WExrWVlOSFdRQWU1bDRKNE1XajlP
ZHhGWEF4SXV1Ui9cbiIKKyAgICAidGZEd2Jxa3RhNHhjdXg2Ny8va2hBa0VBdnZSWExIVGFhNlZG
elRhaWlPOFNhRnNIVjNsUXlYT3RNckJwQjVqZFxuIgorICAgICJtb1pXZ2pIdkIyVzlDa243c0Rx
c1BCK1UydHlYMGpvRGRRRXl1aU1FQ0RZOG9RPT1cbiIKKyAgICAiLS0tLS1FTkQgUlNBIFBSSVZB
VEUgS0VZLS0tLS1cbiI7CisKKyAgICBzc2w6OnVuaXF1ZV9wdHI8QklPPiBwcml2YXRlS2V5QklP
KEJJT19uZXdfbWVtX2J1ZihrS2V5UEVNLCBzdHJsZW4oa0tleVBFTSkpKTsKKyAgICBzc2w6OnVu
aXF1ZV9wdHI8RVZQX1BLRVk+IHByaXZhdGVLZXkoUEVNX3JlYWRfYmlvX1ByaXZhdGVLZXkocHJp
dmF0ZUtleUJJTy5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIEFTU0VS
VChwcml2YXRlS2V5KTsKKworICAgIFNTTF9DVFhfc2V0X2NoYWluX2FuZF9rZXkoY3R4LmdldCgp
LCByZWludGVycHJldF9jYXN0PENSWVBUT19CVUZGRVIgKmNvbnN0ICo+KCZjZXJ0KSwgMSwgcHJp
dmF0ZUtleS5nZXQoKSwgbnVsbHB0cik7CisKKyAgICBpZiAocmVxdWVzdENsaWVudENlcnRpZmlj
YXRlKSB7CisgICAgICAgIFNTTF9DVFhfc2V0X2N1c3RvbV92ZXJpZnkoY3R4LmdldCgpLCBTU0xf
VkVSSUZZX1BFRVIgfCBTU0xfVkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJULCBbXSAoU1NMKiBz
c2wsIHVpbnQ4X3QqKSAtPiBzc2xfdmVyaWZ5X3Jlc3VsdF90IHsKKyAgICAgICAgICAgIGF1dG8g
Y2hhaW4gPSBTU0xfZ2V0MF9wZWVyX2NlcnRpZmljYXRlcyhzc2wpOworICAgICAgICAgICAgRVhQ
RUNUX0VRKHNrX0NSWVBUT19CVUZGRVJfbnVtKGNoYWluKSwgMnUpOworICAgICAgICAgICAgYXV0
byBjZXJ0ID0gc2tfQ1JZUFRPX0JVRkZFUl92YWx1ZShjaGFpbiwgMCk7CisgICAgICAgICAgICBh
dXRvIGV4cGVjdGVkQ2VydCA9IHRlc3RDZXJ0aWZpY2F0ZSgpOworICAgICAgICAgICAgRVhQRUNU
X0VRKENSWVBUT19CVUZGRVJfbGVuKGNlcnQpLCBleHBlY3RlZENlcnQuc2l6ZSgpKTsKKyAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKCFtZW1jbXAoQ1JZUFRPX0JVRkZFUl9kYXRhKGNlcnQpLCBleHBl
Y3RlZENlcnQuZGF0YSgpLCBleHBlY3RlZENlcnQuc2l6ZSgpKSk7CisgICAgICAgICAgICByZXR1
cm4gc3NsX3ZlcmlmeV9vazsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKG1heFRMU1Zl
cnNpb24pCisgICAgICAgIFNTTF9DVFhfc2V0X21heF9wcm90b192ZXJzaW9uKGN0eC5nZXQoKSwg
Km1heFRMU1ZlcnNpb24pOwogCi0gICAgICAgIGlmIChtYXhUTFNWZXJzaW9uKQotICAgICAgICAg
ICAgU1NMX0NUWF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24oY3R4LmdldCgpLCAqbWF4VExTVmVyc2lv
bik7CisgICAgc3NsOjp1bmlxdWVfcHRyPFNTTD4gc3NsKFNTTF9uZXcoY3R4LmdldCgpKSk7Cisg
ICAgQVNTRVJUKHNzbCk7CisgICAgU1NMX3NldF9mZChzc2wuZ2V0KCksIHNvY2tldCk7CiAKLSAg
ICAgICAgc3NsOjp1bmlxdWVfcHRyPFNTTD4gc3NsKFNTTF9uZXcoY3R4LmdldCgpKSk7Ci0gICAg
ICAgIEFTU0VSVChzc2wpOwotICAgICAgICBTU0xfc2V0X2ZkKHNzbC5nZXQoKSwgc29ja2V0KTsK
LQotICAgICAgICBhdXRvIGFjY2VwdFJlc3VsdCA9IFNTTF9hY2NlcHQoc3NsLmdldCgpKTsKLSAg
ICAgICAgc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIoYWNjZXB0UmVzdWx0ID4gMCA/IHNzbC5nZXQo
KSA6IG51bGxwdHIpOwotICAgIH07CisgICAgYXV0byBhY2NlcHRSZXN1bHQgPSBTU0xfYWNjZXB0
KHNzbC5nZXQoKSk7CisgICAgc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIoYWNjZXB0UmVzdWx0ID4g
MCA/IHNzbC5nZXQoKSA6IG51bGxwdHIpOworfTsKIAorVENQU2VydmVyOjpUQ1BTZXJ2ZXIoUHJv
dG9jb2wgcHJvdG9jb2wsIEZ1bmN0aW9uPHZvaWQoU1NMKik+JiYgc2VjdXJlQ29ubmVjdGlvbkhh
bmRsZXIsIE9wdGlvbmFsPHVpbnQxNl90PiBtYXhUTFNWZXJzaW9uKQorewogICAgIHN3aXRjaCAo
cHJvdG9jb2wpIHsKICAgICBjYXNlIFByb3RvY29sOjpIVFRQUzoKICAgICBjYXNlIFByb3RvY29s
OjpIVFRQU1dpdGhDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3Q6Ci0gICAgICAgIG1fY29ubmVjdGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKHN0YXJ0U2VjdXJlQ29ubmVjdGlvbik7CisgICAgICAgIG1fY29u
bmVjdGlvbkhhbmRsZXIgPSBbc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHNlY3Vy
ZUNvbm5lY3Rpb25IYW5kbGVyKSwgcHJvdG9jb2wsIG1heFRMU1ZlcnNpb25dIChTb2NrZXQgc29j
a2V0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0YXJ0U2VjdXJlQ29ubmVjdGlvbihzb2NrZXQs
IFdURk1vdmUoc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIpLCBwcm90b2NvbCA9PSBQcm90b2NvbDo6
SFRUUFNXaXRoQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0LCBtYXhUTFNWZXJzaW9uKTsKKyAgICAg
ICAgfTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcm90b2NvbDo6SFRUUFNQcm94eToKLSAg
ICAgICAgbV9jb25uZWN0aW9uSGFuZGxlciA9IFtzdGFydFNlY3VyZUNvbm5lY3Rpb24gPSBXVEZN
b3ZlKHN0YXJ0U2VjdXJlQ29ubmVjdGlvbildIChTb2NrZXQgc29ja2V0KSB7CisgICAgICAgIG1f
Y29ubmVjdGlvbkhhbmRsZXIgPSBbc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHNl
Y3VyZUNvbm5lY3Rpb25IYW5kbGVyKV0gKFNvY2tldCBzb2NrZXQpIG11dGFibGUgewogICAgICAg
ICAgICAgY2hhciByZWFkQnVmZmVyWzEwMDBdOwogICAgICAgICAgICAgYXV0byBieXRlc1JlYWQg
PSA6OnJlYWQoc29ja2V0LCByZWFkQnVmZmVyLCBzaXplb2YocmVhZEJ1ZmZlcikpOwogICAgICAg
ICAgICAgRVhQRUNUX0dUKGJ5dGVzUmVhZCwgMCk7CkBAIC0yMjUsNyArMjI4LDcgQEAgVENQU2Vy
dmVyOjpUQ1BTZXJ2ZXIoUHJvdG9jb2wgcHJvdG9jb2wsIAogICAgICAgICAgICAgIkNvbm5lY3Rp
b246IGNsb3NlXHJcblxyXG4iOwogICAgICAgICAgICAgYXV0byBieXRlc1dyaXR0ZW4gPSA6Ondy
aXRlKHNvY2tldCwgcmVzcG9uc2VIZWFkZXIsIHN0cmxlbihyZXNwb25zZUhlYWRlcikpOwogICAg
ICAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVuKSwgc3Ry
bGVuKHJlc3BvbnNlSGVhZGVyKSk7Ci0gICAgICAgICAgICBzdGFydFNlY3VyZUNvbm5lY3Rpb24o
c29ja2V0KTsKKyAgICAgICAgICAgIHN0YXJ0U2VjdXJlQ29ubmVjdGlvbihzb2NrZXQsIFdURk1v
dmUoc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICAgICAgfTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oCShyZXZpc2lvbiAyNTk1NzcpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2
ICs1NSw3IEBAIHB1YmxpYzoKICAgICAKICNpZiBIQVZFKFNTTCkKICAgICBzdGF0aWMgdm9pZCBy
ZXNwb25kV2l0aE9LKFNTTCopOworICAgIHN0YXRpYyB2b2lkIHN0YXJ0U2VjdXJlQ29ubmVjdGlv
bihTb2NrZXQsIEZ1bmN0aW9uPHZvaWQoU1NMKik+JiYgc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIs
IGJvb2wgcmVxdWVzdENsaWVudENlcnRpZmljYXRlID0gZmFsc2UsIE9wdGlvbmFsPHVpbnQxNl90
PiBtYXhUTFNWZXJzaW9uID0gV1RGOjpudWxsb3B0KTsKICNlbmRpZgogICAgIHN0YXRpYyB2b2lk
IHJlc3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKFNvY2tldCk7CiAKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyNTk1NzcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDQ0
LDYgKzQ0NCw3IEBACiAJCTVDQjQwQjRFMUY0Qjk4RDMwMDdEQzdCOSAvKiBVSURlbGVnYXRlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCNDBCNEQx
RjRCOThCRTAwN0RDN0I5IC8qIFVJRGVsZWdhdGUubW0gKi87IH07CiAJCTVDQjVCM0MyMUZGQzU1
Q0YwMEMyN0JCMCAvKiBGcmFtZUhhbmRsZVNlcmlhbGl6YXRpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I1QjNCRDFGRkM1MTdFMDBDMjdCQjAg
LyogRnJhbWVIYW5kbGVTZXJpYWxpemF0aW9uLm1tICovOyB9OwogCQk1Q0I3QUZEQzIzQzQ1Mjk3
MDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I3QUZEQjIzQzQ1MUU0MDBFNDlDRjMgLyogUmVz
b3VyY2VMb2FkRGVsZWdhdGUubW0gKi87IH07CisJCTVDQkFBN0ZCMjQ0MEVBMDIwMDU2NEE4QiAv
KiBDRk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUNCQUE3RkEyNDQwRUEwMjAwNTY0QThCIC8qIENGTmV0d29yay5mcmFt
ZXdvcmsgKi87IH07CiAJCTVDQ0IxMEUxMjEzNDU3RDMwMEFDNUFGMCAvKiBSZXNwb25zaXZlbmVz
c1RpbWVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNDQjEwRTAyMTM0NTc5RDAwQUM1QUYwIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIubW0gKi87IH07
CiAJCTVDQ0IxMEUyMjEzNDU3RDUwMEFDNUFGMCAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250
RmlyZUVhcmx5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUNDQjEwREQyMTM0NTc5QzAwQUM1QUYwIC8qIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRG
aXJlRWFybHkubW0gKi87IH07CiAJCTVDQ0IxMEUzMjEzNDU3RDgwMEFDNUFGMCAvKiBSZXN0b3Jl
U2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0NCMTBERTIxMzQ1NzlEMDBBQzVBRjAgLyogUmVzdG9y
ZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLm1tICovOyB9OwpAQCAtMjA5NCw2ICsyMDk1
LDcgQEAKIAkJNUNCN0FGREIyM0M0NTFFNDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9hZERlbGVnYXRl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VMb2Fk
RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQkFBN0YzMjQzMjdG
NkIwMDU2NEE4QiAvKiBUZXN0VUlEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBUZXN0VUlEZWxlZ2F0ZS5oOyBwYXRoID0gY29jb2EvVGVzdFVJRGVsZWdhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQUE3RjQyNDMyN0Y2QjAwNTY0QThCIC8q
IFRlc3RVSURlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gVGVzdFVJRGVsZWdhdGUubW07IHBhdGggPSBjb2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNCQUE3RkEyNDQwRUEwMjAwNTY0QThCIC8qIENG
TmV0d29yay5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7
IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNv
dXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1Q0NCMTBERDIxMzQ1NzlDMDBBQzVBRjAgLyogUmVz
cG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHkubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQ0IxMERFMjEzNDU3OUQwMEFDNUFGMCAv
KiBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmln
YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQ0IxMERGMjEzNDU3OUQw
MEFDNUFGMCAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc5OSw2ICsyODAxLDcgQEAKIAkJ
CWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTVDQkFBN0ZCMjQ0MEVBMDIwMDU2NEE4QiAvKiBD
Rk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJN0EwMTBCQ0IxRDg3N0Mw
NTAwRURFNzJBIC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJ
CQk2MzQ5MTBFMDFFOUQzRkYzMDA4ODAzMDkgLyogQ29yZUxvY2F0aW9uLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovLAogCQkJCUMyMEY4OEE3MjI5NUI5NjcwMEQ2MTBGQSAvKiBDb3JlVGV4dC5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKQEAgLTMzNzUsNiArMzM3OCw3IEBACiAJCTdDODNF
MDI4MUQwQTVDREYwMEZFQkNGMyAvKiBGcmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0JBQTdGQTI0NDBFQTAyMDA1NjRBOEIgLyogQ0ZO
ZXR3b3JrLmZyYW1ld29yayAqLywKIAkJCQk3QTAxMEJDQTFEODc3QzA1MDBFREU3MkEgLyogQ29y
ZUdyYXBoaWNzLmZyYW1ld29yayAqLywKIAkJCQk2MzQ5MTBERjFFOUQzRkYzMDA4ODAzMDkgLyog
Q29yZUxvY2F0aW9uLmZyYW1ld29yayAqLywKIAkJCQlDMjBGODhBNjIyOTVCOTY3MDBENjEwRkEg
LyogQ29yZVRleHQuZnJhbWV3b3JrICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCShyZXZpc2lvbiAyNTk1NzcpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3h5Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBIQVZFKFNTTCkKIAorI2ltcG9ydCAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKICNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgpAQCAtMzQsMjMgKzM1
LDM0IEBACiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotc3RhdGljIGJvb2wgcmVjZWl2ZWRBbGVy
dDsKLQogQGludGVyZmFjZSBQcm94eURlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlLCBXS1VJRGVsZWdhdGU+CistIChOU1N0cmluZyAqKXdhaXRGb3JBbGVydDsKIEBlbmQK
IAotQGltcGxlbWVudGF0aW9uIFByb3h5RGVsZWdhdGUKK0BpbXBsZW1lbnRhdGlvbiBQcm94eURl
bGVnYXRlIHsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9hbGVydDsKK30KIAogLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1l
c3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cgogewotICAgIEVYUEVDVF9UUlVFKFttZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAInN1Y2Nlc3Mh
Il0pOwotICAgIHJlY2VpdmVkQWxlcnQgPSB0cnVlOworICAgIF9hbGVydCA9IG1lc3NhZ2U7CiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorLSAoTlNTdHJpbmcgKil3YWl0Rm9yQWxlcnQK
K3sKKyAgICB3aGlsZSAoIV9hbGVydCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3Bp
blJ1bkxvb3AoKTsKKyAgICByZXR1cm4gX2FsZXJ0LmF1dG9yZWxlYXNlKCk7Cit9CisKIC0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlv
biBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICogX051bGxhYmxlIGNyZWRlbnRpYWwpKWNv
bXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlhbEZvclRy
dXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3RdKTsKKyAgICBpZiAoW2No
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QgaXNFcXVhbFRvU3Ry
aW5nOk5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0pCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlh
bCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6Y2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZS5zZXJ2ZXJUcnVzdF0pOworCisgICAgRVhQRUNUX1dLX1NUUkVRKGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QsIE5TVVJMQXV0aGVudGljYXRpb25N
ZXRob2RIVFRQQmFzaWMpOworICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Np
b25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFs
V2l0aFVzZXI6QCJ0ZXN0dXNlciIgcGFzc3dvcmQ6QCJ0ZXN0cGFzc3dvcmQiIHBlcnNpc3RlbmNl
Ok5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZV0pOwogfQogCiBAZW5kCkBAIC03Miw3ICs4
NCw5NCBAQCBURVNUKFdlYktpdCwgSFRUUFNQcm94eSkKICAgICBbd2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1w
bGUuY29tLyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0
KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW2RlbGVnYXRlIHdhaXRGb3JBbGVydF0sICJzdWNjZXNz
ISIpOworfQorCitURVNUKFdlYktpdCwgSFRUUFByb3h5QXV0aGVudGljYXRpb24pCit7CisgICAg
VENQU2VydmVyIHNlcnZlcihbXSAoaW50IHNvY2tldCkgeworICAgICAgICBhdXRvIHJlcXVlc3RT
aG91bGRDb250YWluID0gW10gKGNvbnN0IGF1dG8mIHJlcXVlc3QsIGNvbnN0IGNoYXIqIHN0cikg
eworICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3Ryc3RyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KHJlcXVlc3QuZGF0YSgpKSwgc3RyKSk7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0
byBjb25uZWN0UmVxdWVzdCA9IFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOworICAgICAgICByZXF1
ZXN0U2hvdWxkQ29udGFpbihjb25uZWN0UmVxdWVzdCwgIkNPTk5FQ1QgZXhhbXBsZS5jb206NDQz
Iik7CisgICAgICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlMSA9CisgICAgICAgICAgICAiSFRUUC8x
LjEgNDA3IFByb3h5IEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkXHJcbiIKKyAgICAgICAgICAgICJQ
cm94eS1BdXRoZW50aWNhdGU6IEJhc2ljIHJlYWxtPVwidGVzdHJlYWxtXCJcclxuIgorICAgICAg
ICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAwXHJcbiIKKyAgICAgICAgICAgICJcclxuIjsKKyAgICAg
ICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlMSwgc3RybGVuKHJlc3BvbnNlMSkp
OworCisgICAgICAgIGF1dG8gY29ubmVjdFJlcXVlc3RXaXRoQ3JlZGVudGlhbHMgPSBUQ1BTZXJ2
ZXI6OnJlYWQoc29ja2V0KTsKKyAgICAgICAgcmVxdWVzdFNob3VsZENvbnRhaW4oY29ubmVjdFJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMsICJDT05ORUNUIGV4YW1wbGUuY29tOjQ0MyIpOworICAgICAg
ICByZXF1ZXN0U2hvdWxkQ29udGFpbihjb25uZWN0UmVxdWVzdFdpdGhDcmVkZW50aWFscywgIlBy
b3h5LUF1dGhvcml6YXRpb246IEJhc2ljIGRHVnpkSFZ6WlhJNmRHVnpkSEJoYzNOM2IzSmsiKTsK
KyAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2UyID0KKyAgICAgICAgICAgICJIVFRQLzEuMSAy
MDAgQ29ubmVjdGlvbiBFc3RhYmxpc2hlZFxyXG4iCisgICAgICAgICAgICAiQ29ubmVjdGlvbjog
Y2xvc2VcclxuIgorICAgICAgICAgICAgIlxyXG4iOworICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRl
KHNvY2tldCwgcmVzcG9uc2UyLCBzdHJsZW4ocmVzcG9uc2UyKSk7CisKKyAgICAgICAgVENQU2Vy
dmVyOjpzdGFydFNlY3VyZUNvbm5lY3Rpb24oc29ja2V0LCBUQ1BTZXJ2ZXI6OnJlc3BvbmRXaXRo
T0spOworICAgIH0pOworICAgIAorICAgIGF1dG8gc3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgW3N0b3JlQ29u
ZmlndXJhdGlvbiBzZXRQcm94eUNvbmZpZ3VyYXRpb246QHsKKyAgICAgICAgKE5TU3RyaW5nICop
a0NGU3RyZWFtUHJvcGVydHlIVFRQU1Byb3h5SG9zdDogQCIxMjcuMC4wLjEiLAorICAgICAgICAo
TlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0eUhUVFBTUHJveHlQb3J0OiBAKHNlcnZlci5wb3J0
KCkpCisgICAgfV07CisgICAgW3N0b3JlQ29uZmlndXJhdGlvbiBzZXRBbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0Ok5PXTsKKyAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldFByZXZlbnRzU3lzdGVtSFRU
UFByb3h5QXV0aGVudGljYXRpb246WUVTXTsKKworICAgIGF1dG8gdmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIFt2aWV3Q29uZmln
dXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOltbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldIGF1dG9yZWxl
YXNlXV07CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOnZpZXdD
b25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Byb3h5
RGVsZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
KworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdXV07CisgICAgRVhQ
RUNUX1dLX1NUUkVRKFtkZWxlZ2F0ZSB3YWl0Rm9yQWxlcnRdLCAic3VjY2VzcyEiKTsKK30KKwor
VEVTVChXZWJLaXQsIFNlY3VyZVByb3h5Q29ubmVjdGlvbikKK3sKKyAgICBzdGQ6OmF0b21pYzxi
b29sPiByZWNlaXZlZFZhbGlkQ2xpZW50SGVsbG8gPSBmYWxzZTsKKyAgICBUQ1BTZXJ2ZXIgc2Vy
dmVyKFsmXSAoaW50IHNvY2tldCkgeworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjbGllbnQg
c2VuZHMgd2hhdCBsb29rcyBsaWtlIHRoZSBiZWdpbm5pbmcgb2YgYSBUTFMgaGFuZHNoYWtlLgor
ICAgICAgICAvLyBXZSBjYW4ndCB0ZXN0IG1vcmUgdGhhbiB0aGlzIGJlY2F1c2UgQ0ZOZXR3b3Jr
IHJlcXVpcmVzIGEgY2VydGlmaWNhdGUgY2hhaW4gc2lnbmVkIGJ5IGEgdHJ1c3RlZCBDQSwKKyAg
ICAgICAgLy8gYW5kIHdlIHdvdWxkbid0IHdhbnQgdG8gaW5jbHVkZSBzdWNoIGEgY2VydGlmaWNh
dGUncyBwcml2YXRlIGtleSBpbiB0aGlzIHJlcG9zaXRvcnkuCisgICAgICAgIGF1dG8gY2xpZW50
SGVsbG9CeXRlcyA9IFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOworCisgICAgICAgIC8vIGh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjQ2I3NlY3Rpb24tNi4yLjEKKyAgICAgICAgZW51
bSBjbGFzcyBDb250ZW50VHlwZSA6IHVpbnQ4X3QgeyBIYW5kc2hha2UgPSAyMiB9OworICAgICAg
ICBFWFBFQ1RfRVEoY2xpZW50SGVsbG9CeXRlc1swXSwgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ29u
dGVudFR5cGU6OkhhbmRzaGFrZSkpOworICAgICAgICB1aW50MTZfdCB0bHNQbGFpbnRleHRMZW5n
dGggPSBjbGllbnRIZWxsb0J5dGVzWzNdICogMjU2dSArIGNsaWVudEhlbGxvQnl0ZXNbNF07Cisg
ICAgICAgIHVpbnQzMl90IGNsaWVudEhlbGxvQnl0ZXNMZW5ndGggPSBjbGllbnRIZWxsb0J5dGVz
WzZdICogNjU1MzZ1ICsgY2xpZW50SGVsbG9CeXRlc1s3XSAqIDI1NnUgKyBjbGllbnRIZWxsb0J5
dGVzWzhdOworICAgICAgICBFWFBFQ1RfRVEoY2xpZW50SGVsbG9CeXRlcy5zaXplKCksIHRsc1Bs
YWludGV4dExlbmd0aCArIHNpemVvZihDb250ZW50VHlwZSkgKyAyICogc2l6ZW9mKHVpbnQ4X3Qp
ICsgc2l6ZW9mKHVpbnQxNl90KSk7CisgICAgICAgIAorICAgICAgICAvLyBodHRwczovL3Rvb2xz
LmlldGYub3JnL2h0bWwvcmZjNTI0NiNzZWN0aW9uLTcuNAorICAgICAgICBlbnVtIGNsYXNzIEhh
bmRzaGFrZVR5cGUgOiB1aW50OF90IHsgQ2xpZW50SGVsbG8gPSAxIH07CisgICAgICAgIEVYUEVD
VF9FUShjbGllbnRIZWxsb0J5dGVzWzVdLCBzdGF0aWNfY2FzdDx1aW50OF90PihIYW5kc2hha2VU
eXBlOjpDbGllbnRIZWxsbykpOworICAgICAgICBFWFBFQ1RfRVEodGxzUGxhaW50ZXh0TGVuZ3Ro
LCBjbGllbnRIZWxsb0J5dGVzTGVuZ3RoICsgc2l6ZW9mKEhhbmRzaGFrZVR5cGUpICsgMyk7CisK
KyAgICAgICAgcmVjZWl2ZWRWYWxpZENsaWVudEhlbGxvID0gdHJ1ZTsKKyAgICB9KTsKKyAgICAK
KyAgICBhdXRvIHN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIG5ld10pOworICAgIFtzdG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJveHlD
b25maWd1cmF0aW9uOkB7CisgICAgICAgIChOU1N0cmluZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRU
UFNQcm94eUhvc3Q6IEAiMTI3LjAuMC4xIiwKKyAgICAgICAgKE5TU3RyaW5nICopa0NGU3RyZWFt
UHJvcGVydHlIVFRQU1Byb3h5UG9ydDogQChzZXJ2ZXIucG9ydCgpKQorICAgIH1dOworICAgIFtz
dG9yZUNvbmZpZ3VyYXRpb24gc2V0QWxsb3dzU2VydmVyUHJlY29ubmVjdDpOT107CisgICAgW3N0
b3JlQ29uZmlndXJhdGlvbiBzZXRSZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOllF
U107CisKKyAgICBhdXRvIHZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBuZXddKTsKKyAgICBbdmlld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFT
dG9yZTpbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246
c3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFzZV1dOworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjp2aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdXV07CisgICAgd2hpbGUg
KCFyZWNlaXZlZFZhbGlkQ2xpZW50SGVsbG8pCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnNwaW5SdW5Mb29wKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>