<?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>213400</bug_id>
          
          <creation_ts>2020-06-19 12:52:46 -0700</creation_ts>
          <short_desc>Use ASCIILiteral more for SandboxExtension functions</short_desc>
          <delta_ts>2020-06-19 14:32:17 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pvollan</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664466</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 12:52:46 -0700</bug_when>
    <thetext>Use ASCIILiteral more for SandboxExtension functions. Functions like createHandleForMachLookup() / createHandleForIOKitClassExtension() don&apos;t need to take in Strings, ASCIILiteral is enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664470</commentid>
    <comment_count>1</comment_count>
      <attachid>402310</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 12:59:52 -0700</bug_when>
    <thetext>Created attachment 402310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664474</commentid>
    <comment_count>2</comment_count>
      <attachid>402311</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 13:07:27 -0700</bug_when>
    <thetext>Created attachment 402311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664476</commentid>
    <comment_count>3</comment_count>
      <attachid>402312</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 13:11:04 -0700</bug_when>
    <thetext>Created attachment 402312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664497</commentid>
    <comment_count>4</comment_count>
      <attachid>402321</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 13:55:46 -0700</bug_when>
    <thetext>Created attachment 402321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664504</commentid>
    <comment_count>5</comment_count>
      <attachid>402321</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-19 14:03:26 -0700</bug_when>
    <thetext>Comment on attachment 402321
Patch

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664523</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-19 14:31:59 -0700</bug_when>
    <thetext>Committed r263288: &lt;https://trac.webkit.org/changeset/263288&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402321.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664524</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-19 14:32:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64545289&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402310</attachid>
            <date>2020-06-19 12:59:52 -0700</date>
            <delta_ts>2020-06-19 13:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213400-20200619125951.patch</filename>
            <type>text/plain</type>
            <size>29886</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU4MTMyNDhmMWNjMGZiNjFh
NThkZGE4MTc1YTExZDY2ZmIyMDZjZDYuLmNiYTZlMTEzYWJhZDUyZjY2OTk3MTQ1OTE0ZTA3YTMy
ZjM0MDdkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDYtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUg
Zm9yIFNhbmRib3hFeHRlbnNpb24gZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUgZm9yIFNhbmRib3hF
eHRlbnNpb24gZnVuY3Rpb25zLiBGdW5jdGlvbnMgbGlrZSBjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCkgLyBjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKCkKKyAgICAgICAgZG9u
J3QgbmVlZCB0byB0YWtlIGluIFN0cmluZ3MsIEFTQ0lJTGl0ZXJhbCBpcyBlbm91Z2guCisKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlUmVhZE9ubHlIYW5kbGVzRm9yRmlsZXMpOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9u
KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZXNGb3JNYWNoTG9va3VwKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyk6CisgICAg
ICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bWVkaWFSZWxhdGVk
TWFjaFNlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6bm9uQnJvd3NlclNlcnZpY2VzKToKKyAg
ICAgICAgKFdlYktpdDo6ZGlhZ25vc3RpY1NlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6YWd4
Q29tcGlsZXJDbGFzc2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpl
bmFibGVSZW1vdGVJbnNwZWN0b3JJZk5lZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNp
bmdsZXRvbik6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoRGlzcGxheVN0cmluZ0FuZEljb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Z3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMpOgorCiAyMDIwLTA2LTE5ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IE1ha2Ug
aXNvbGF0ZWQgdHJlZSBlbmFibGVtZW50IHN0YXR1cyBkZXBlbmRlbnQgb24gY2xpZW50IHByZWZl
cmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRl
bnNpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNp
b25Db2NvYS5tbQppbmRleCBhYmZmMTIwMGZlODI0MTEwZWYxOGQ4OTBmYmNhMmQ0YzZjNTE1ZjZl
Li41OTViMzJhNzIzMjNhMzZkNDJjOGYxOGI0ODZmOTM5OWQzMzAzOGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCkBAIC0y
ODEsNyArMjgxLDggQEAgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBUeXBlIHR5cGUsIEhhbmRsZSYgaGFuZGwKICAgICByZXR1cm4gY3JlYXRl
SGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9u
KHBhdGgpLCB0eXBlLCBoYW5kbGUpOwogfQogCi1zdGF0aWMgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cmVzb3VyY2VzLCBGdW5jdGlvbjxib29sKGNvbnN0IFN0cmluZyYsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgaGFuZGxlKT4mJiBjcmVhdGVGdW5jdGlvbikKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
Pgorc3RhdGljIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JS
ZXNvdXJjZXMoY29uc3QgVmVjdG9yPFQ+JiByZXNvdXJjZXMsIEZ1bmN0aW9uPGJvb2woY29uc3Qg
VCYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKT4mJiBjcmVhdGVGdW5jdGlvbikK
IHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBoYW5kbGVBcnJheTsKIApAQCAt
Mjk4LDE4ICsyOTksMTggQEAgc3RhdGljIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGNy
ZWF0ZUhhbmRsZXNGb3JSZXNvdXJjZXMoY29uc3QgVmVjdG9yPFN0cmkKICAgICByZXR1cm4gaGFu
ZGxlQXJyYXk7CiB9CiAKLVNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKGNvbnN0IFN0cmluZyYgbG9nTGFi
ZWwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKK1NhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKEFT
Q0lJTGl0ZXJhbCBsb2dMYWJlbCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewotICAg
IHJldHVybiBjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKHBhdGhzLCBbJmxvZ0xhYmVsXSAoY29u
c3QgU3RyaW5nJiBwYXRoLCBIYW5kbGUmIGhhbmRsZSkgeworICAgIHJldHVybiBjcmVhdGVIYW5k
bGVzRm9yUmVzb3VyY2VzKHBhdGhzLCBGdW5jdGlvbjxib29sKGNvbnN0IFN0cmluZyYsIEhhbmRs
ZSYpPihbJmxvZ0xhYmVsXSAoY29uc3QgU3RyaW5nJiBwYXRoLCBIYW5kbGUmIGhhbmRsZSkgewog
ICAgICAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShwYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgaGFuZGxlKSkgewogICAgICAgICAgICAgLy8gVGhp
cyBjYW4gbGVnaXRpbWF0ZWx5IGZhaWwgaWYgYSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZmls
ZSBpcyBkZWxldGVkIGFmdGVyIHRoZSBmaWxlIHdhcyBjaG9zZW4uCiAgICAgICAgICAgICAvLyBX
ZSBhbHNvIGhhdmUgcmVwb3J0cyBvZiBjYXNlcyB3aGVyZSB0aGlzIGxpa2VseSBmYWlscyBmb3Ig
c29tZSB1bmtub3duIHJlYXNvbiwgPHJkYXI6Ly9wcm9ibGVtLzEwMTU2NzEwPi4KLSAgICAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiJXM6IGNvdWxkIG5vdCBjcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lv
biBmb3IgJyVzJ1xuIiwgbG9nTGFiZWwudXRmOCgpLmRhdGEoKSwgcGF0aC51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM6IGNvdWxkIG5vdCBjcmVhdGUgYSBzYW5k
Ym94IGV4dGVuc2lvbiBmb3IgJyVzJ1xuIiwgbG9nTGFiZWwuY2hhcmFjdGVycygpLCBwYXRoLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fSk7CisgICAgfSkpOwogfQogCiBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgaGFuZGxlKQpAQCAtMzUwLDQxICszNTEsNDEgQEAgU3RyaW5nIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgs
IFR5cGUKICAgICByZXR1cm4gU3RyaW5nKHBhdGguZGF0YSgpKTsKIH0KIAotYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
ZXh0ZW5zaW9uQ2xhc3MsIEhhbmRsZSYgaGFuZGxlKQorYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKEFTQ0lJTGl0ZXJhbCBleHRlbnNpb25DbGFz
cywgSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5z
aW9uKTsKIAotICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9u
SW1wbDo6Y3JlYXRlKGV4dGVuc2lvbkNsYXNzLnV0ZjgoKS5kYXRhKCksIFR5cGU6OkdlbmVyaWMp
OworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6
Y3JlYXRlKGV4dGVuc2lvbkNsYXNzLmNoYXJhY3RlcnMoKSwgVHlwZTo6R2VuZXJpYyk7CiAgICAg
aWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygi
Q291bGQgbm90IGNyZWF0ZSBhICclcycgc2FuZGJveCBleHRlbnNpb24iLCBleHRlbnNpb25DbGFz
cy51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRl
IGEgJyVzJyBzYW5kYm94IGV4dGVuc2lvbiIsIGV4dGVuc2lvbkNsYXNzLmNoYXJhY3RlcnMoKSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChjb25z
dCBTdHJpbmcmIHNlcnZpY2UsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIEhh
bmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQorYm9vbCBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKEFTQ0lJTGl0ZXJhbCBzZXJ2aWNlLCBPcHRp
b25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBIYW5kbGUmIGhhbmRsZSwgT3B0aW9uU2V0
PEZsYWdzPiBmbGFncykKIHsKICAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24p
OwogICAgIAotICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9u
SW1wbDo6Y3JlYXRlKHNlcnZpY2UudXRmOCgpLmRhdGEoKSwgVHlwZTo6TWFjaCwgYXVkaXRUb2tl
biwgZmxhZ3MpOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5z
aW9uSW1wbDo6Y3JlYXRlKHNlcnZpY2UuY2hhcmFjdGVycygpLCBUeXBlOjpNYWNoLCBhdWRpdFRv
a2VuLCBmbGFncyk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7Ci0gICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBhICclcycgc2FuZGJveCBleHRlbnNp
b24iLCBzZXJ2aWNlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxk
IG5vdCBjcmVhdGUgYSAnJXMnIHNhbmRib3ggZXh0ZW5zaW9uIiwgc2VydmljZS5jaGFyYWN0ZXJz
KCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVl
OwogfQogCi1TYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVzRm9yTWFjaExvb2t1cChjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VydmljZXMs
IE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIE9wdGlvblNldDxGbGFncz4gZmxh
Z3MpCitTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVzRm9yTWFjaExvb2t1cChjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgc2Vydmlj
ZXMsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIE9wdGlvblNldDxGbGFncz4g
ZmxhZ3MpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNGb3JSZXNvdXJjZXMoc2VydmljZXMs
IFthdWRpdFRva2VuLCBmbGFnc10gKGNvbnN0IFN0cmluZyYgc2VydmljZSwgSGFuZGxlJiBoYW5k
bGUpIHsKKyAgICByZXR1cm4gY3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhzZXJ2aWNlcywgRnVu
Y3Rpb248Ym9vbChjb25zdCBBU0NJSUxpdGVyYWwmLCBIYW5kbGUmKT4oW2F1ZGl0VG9rZW4sIGZs
YWdzXSAoY29uc3QgQVNDSUlMaXRlcmFsJiBzZXJ2aWNlLCBIYW5kbGUmIGhhbmRsZSkgewogICAg
ICAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoc2Vy
dmljZSwgYXVkaXRUb2tlbiwgaGFuZGxlLCBmbGFncykpIHsKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0pOworICAgIH0pKTsKIH0KIAogYm9vbCBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRpdFRva2VuKGNvbnN0IFN0cmluZyYgcGF0
aCwgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuLCBIYW5kbGUmIGhhbmRsZSkKQEAgLTQwMCwyOCAr
NDAxLDI4IEBAIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZEJ5QXVk
aXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lv
bihjb25zdCBTdHJpbmcmIGlvS2l0Q2xhc3MsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0
VG9rZW4sIEhhbmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQorYm9vbCBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKEFTQ0lJTGl0
ZXJhbCBpb0tpdENsYXNzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBIYW5k
bGUmIGhhbmRsZSwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKIHsKICAgICBBU1NFUlQoIWhhbmRs
ZS5tX3NhbmRib3hFeHRlbnNpb24pOwogCi0gICAgaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9
IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoaW9LaXRDbGFzcy51dGY4KCkuZGF0YSgpLCBU
eXBlOjpJT0tpdCwgYXVkaXRUb2tlbik7CisgICAgaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9
IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoaW9LaXRDbGFzcy5jaGFyYWN0ZXJzKCksIFR5
cGU6OklPS2l0LCBhdWRpdFRva2VuKTsKICAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNp
b24pIHsKLSAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIGEgc2FuZGJveCBleHRl
bnNpb24gZm9yICclcyciLCBpb0tpdENsYXNzLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgJyVzJyIsIGlv
S2l0Q2xhc3MuY2hhcmFjdGVycygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1TYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVzRm9ySU9LaXRDbGFzc0V4dGVuc2lvbnMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGlva2l0Q2xhc3NlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVk
aXRUb2tlbiwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKK1NhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5z
aW9ucyhjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgaW9raXRDbGFzc2VzLCBPcHRpb25hbDxh
dWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQogewotICAg
IHJldHVybiBjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKGlva2l0Q2xhc3NlcywgW2F1ZGl0VG9r
ZW4sIGZsYWdzXSAoY29uc3QgU3RyaW5nJiBpb2tpdENsYXNzLCBIYW5kbGUmIGhhbmRsZSkgewor
ICAgIHJldHVybiBjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKGlva2l0Q2xhc3NlcywgRnVuY3Rp
b248Ym9vbChjb25zdCBBU0NJSUxpdGVyYWwmLCBIYW5kbGUmKT4oW2F1ZGl0VG9rZW4sIGZsYWdz
XSAoY29uc3QgQVNDSUlMaXRlcmFsJiBpb2tpdENsYXNzLCBIYW5kbGUmIGhhbmRsZSkgewogICAg
ICAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvcklPS2l0Q2xhc3NFeHRl
bnNpb24oaW9raXRDbGFzcywgYXVkaXRUb2tlbiwgaGFuZGxlLCBmbGFncykpIHsKICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0pOworICAgIH0pKTsKIH0KIAogU2Fu
ZGJveEV4dGVuc2lvbjo6U2FuZGJveEV4dGVuc2lvbihjb25zdCBIYW5kbGUmIGhhbmRsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAppbmRleCBlYjM5NGFlNjE1NjhhYmNl
YmQyMmIzMTc1OWM5MTJjYzBiZGI5NmIwLi5mOTU3MzkxNzQ5MDlkOWVlNmNkODk2M2ExOTk0MjRl
YTBkODJjODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCkBAIC0x
MTEsMTcgKzExMSwxNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIFJlZlB0cjxTYW5kYm94
RXh0ZW5zaW9uPiBjcmVhdGUoSGFuZGxlJiYpOwogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZShjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUsIEhhbmRsZSYpOwotICAgIHN0YXRpYyBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBjcmVhdGVSZWFkT25seUhhbmRsZXNGb3JGaWxlcyhjb25z
dCBTdHJpbmcmIGxvZ0xhYmVsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOworICAgIHN0
YXRpYyBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBjcmVhdGVSZWFkT25seUhhbmRsZXNG
b3JGaWxlcyhBU0NJSUxpdGVyYWwgbG9nTGFiZWwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRo
cyk7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgoY29u
c3QgU3RyaW5nJiBwYXRoLCBUeXBlLCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVI
YW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBIYW5kbGUmKTsg
Ly8gV2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5LgogICAgIHN0YXRpYyBTdHJp
bmcgY3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgVHlw
ZSwgSGFuZGxlJik7Ci0gICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVu
c2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbkNsYXNzLCBIYW5kbGUmKTsKKyAgICBzdGF0aWMg
Ym9vbCBjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKEFTQ0lJTGl0ZXJhbCBleHRlbnNp
b25DbGFzcywgSGFuZGxlJik7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKLSAgICBzdGF0aWMgYm9v
bCBjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKGNvbnN0IFN0cmluZyYgc2VydmljZSwgT3B0aW9u
YWw8YXVkaXRfdG9rZW5fdD4sIEhhbmRsZSYsIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVm
YXVsdCk7Ci0gICAgc3RhdGljIEhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3Vw
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4s
IE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7CisgICAgc3RhdGljIGJvb2wgY3Jl
YXRlSGFuZGxlRm9yTWFjaExvb2t1cChBU0NJSUxpdGVyYWwgc2VydmljZSwgT3B0aW9uYWw8YXVk
aXRfdG9rZW5fdD4sIEhhbmRsZSYsIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7
CisgICAgc3RhdGljIEhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3VwKGNvbnN0
IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4s
IE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7CiAgICAgc3RhdGljIGJvb2wgY3Jl
YXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rv
a2VuX3QsIEhhbmRsZSYpOwotICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvcklPS2l0Q2xh
c3NFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBpb2tpdENsYXNzLCBPcHRpb25hbDxhdWRpdF90b2tl
bl90PiwgSGFuZGxlJiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKLSAgICBz
dGF0aWMgSGFuZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvcklPS2l0Q2xhc3NFeHRlbnNpb25zKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBpb2tpdENsYXNzZXMsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+
LCBPcHRpb25TZXQ8RmxhZ3M+ID0gRmxhZ3M6OkRlZmF1bHQpOworICAgIHN0YXRpYyBib29sIGNy
ZWF0ZUhhbmRsZUZvcklPS2l0Q2xhc3NFeHRlbnNpb24oQVNDSUlMaXRlcmFsIGlva2l0Q2xhc3Ms
IE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+LCBIYW5kbGUmLCBPcHRpb25TZXQ8RmxhZ3M+ID0gRmxh
Z3M6OkRlZmF1bHQpOworICAgIHN0YXRpYyBIYW5kbGVBcnJheSBjcmVhdGVIYW5kbGVzRm9ySU9L
aXRDbGFzc0V4dGVuc2lvbnMoY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGlva2l0Q2xhc3Nl
cywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4sIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVm
YXVsdCk7CiAjZW5kaWYKICAgICB+U2FuZGJveEV4dGVuc2lvbigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCAw
MjFiYWNiN2I5NDA0NjJmYmY1ODIwYmFhNTUzOTVhOWVkNWJiMTQyLi5jN2JmMTFlMzFmY2ZlNDJh
OGZhM2JmYmFhNTIxYzMwMzkxN2U1ODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTIxMiw4MCArMjEyLDgwIEBA
IHN0YXRpYyBib29sIGlzSW50ZXJuYWxJbnN0YWxsKCkKICNlbmRpZgogCiAvLyBGSVhNRSgyMDc3
MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBwcm9jZXNz
IGlzIGNvbXBsZXRlLgotc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZWRpYVJlbGF0ZWRN
YWNoU2VydmljZXMoKQorc3RhdGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBtZWRpYVJl
bGF0ZWRNYWNoU2VydmljZXMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
c3RhdGljIGNvbnN0IGF1dG8gc2VydmljZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPFN0
cmluZz4gewotICAgICAgICAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9uZW50UHJlZnMiLCAi
Y29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIiwKLSAgICAgICAgImNvbS5h
cHBsZS5hdWRpby5BdWRpb1F1ZXVlU2VydmVyIiwgImNvbS5hcHBsZS5hdWRpby50b29sYm94LnJl
cG9ydGluZy5zZXJ2aWNlIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnQueHBjIiwKLSAg
ICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucm91dGVkaXNjb3ZlcmVyLnhwYyIsICJjb20uYXBw
bGUuY29yZW1lZGlhLnJvdXRpbmdjb250ZXh0LnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29y
ZW1lZGlhLnZvbHVtZWNvbnRyb2xsZXIueHBjIiwgImNvbS5hcHBsZS5hY2Nlc3NpYmlsaXR5Lm1l
ZGlhYWNjZXNzaWJpbGl0eWQiLAotICAgICAgICAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMi
LAorICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZl
Y3RvcjxBU0NJSUxpdGVyYWw+IHsKKyAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBv
bmVudFByZWZzIl9zLCAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIl9z
LAorICAgICAgICAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvUXVldWVTZXJ2ZXIiX3MsICJjb20uYXBw
bGUuYXVkaW8udG9vbGJveC5yZXBvcnRpbmcuc2VydmljZSJfcywgImNvbS5hcHBsZS5jb3JlbWVk
aWEuZW5kcG9pbnQueHBjIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5yb3V0ZWRp
c2NvdmVyZXIueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5yb3V0aW5nY29udGV4dC54cGMi
X3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnZvbHVtZWNvbnRyb2xsZXIueHBjIl9z
LCAiY29tLmFwcGxlLmFjY2Vzc2liaWxpdHkubWVkaWFhY2Nlc3NpYmlsaXR5ZCJfcywKKyAgICAg
ICAgImNvbS5hcHBsZS5tZWRpYXJlbW90ZWQueHBjIl9zLAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9TZXNzaW9uIiwgImNvbS5hcHBsZS5N
ZWRpYVBsYXllci5SZW1vdGVQbGF5ZXJTZXJ2aWNlIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3Jl
bWVkaWEuYWRtaW4iLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5hc3NldC54cGMiLCAi
Y29tLmFwcGxlLmNvcmVtZWRpYS5hc3NldGltYWdlZ2VuZXJhdG9yLnhwYyIsCi0gICAgICAgICJj
b20uYXBwbGUuY29yZW1lZGlhLmF1ZGlvZGV2aWNlY2xvY2sueHBjIiwgImNvbS5hcHBsZS5jb3Jl
bWVkaWEuYXVkaW9wcm9jZXNzaW5ndGFwLnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1l
ZGlhLmNhcHR1cmVzZXNzaW9uIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuY2FwdHVyZXNvdXJjZSIs
Ci0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmNvbXByZXNzaW9uc2Vzc2lvbiIsICJjb20u
YXBwbGUuY29yZW1lZGlhLmNwZS54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5j
cGVwcm90ZWN0b3IueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuY3VzdG9tdXJsbG9hZGVyLnhw
YyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmRlY29tcHJlc3Npb25zZXNzaW9uIiwg
ImNvbS5hcHBsZS5jb3JlbWVkaWEuZmlnY29udGVudGtleXNlc3Npb24ueHBjIiwKLSAgICAgICAg
ImNvbS5hcHBsZS5jb3JlbWVkaWEuZmlnY3BlY3J5cHRvciIsICJjb20uYXBwbGUuY29yZW1lZGlh
LmZvcm1hdHJlYWRlci54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5wbGF5ZXIu
eHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEucmVtYWtlciIsCi0gICAgICAgICJjb20uYXBwbGUu
Y29yZW1lZGlhLnJlbW90ZXF1ZXVlIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEucm91dGluZ3Nlc3Np
b25tYW5hZ2VyLnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnNhbXBsZWJ1ZmZl
cmF1ZGlvcmVuZGVyZXIueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuc2FtcGxlYnVmZmVycmVu
ZGVyc3luY2hyb25pemVyLnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnNhbmRi
b3hzZXJ2ZXIueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuc3RzIiwKLSAgICAgICAgImNvbS5h
cHBsZS5jb3JlbWVkaWEuc3lzdGVtY29udHJvbGxlci54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRp
YS52aWRlb3F1ZXVlIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlzdWFsY29udGV4
dC54cGMiLCAiY29tLmFwcGxlLmFpcnBsYXkuYXBzeW5jY29udHJvbGxlci54cGMiLAotICAgICAg
ICAiY29tLmFwcGxlLmF1ZGlvLkFVUmVtb3RlSU9TZXJ2ZXIiCisgICAgICAgICJjb20uYXBwbGUu
YXVkaW8uQXVkaW9TZXNzaW9uIl9zLCAiY29tLmFwcGxlLk1lZGlhUGxheWVyLlJlbW90ZVBsYXll
clNlcnZpY2UiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmFkbWluIl9zLAorICAg
ICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5hc3NldC54cGMiX3MsICJjb20uYXBwbGUuY29yZW1l
ZGlhLmFzc2V0aW1hZ2VnZW5lcmF0b3IueHBjIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5hdWRpb2RldmljZWNsb2NrLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuYXVkaW9w
cm9jZXNzaW5ndGFwLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY2FwdHVy
ZXNlc3Npb24iX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLmNhcHR1cmVzb3VyY2UiX3MsCisgICAg
ICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmNvbXByZXNzaW9uc2Vzc2lvbiJfcywgImNvbS5hcHBs
ZS5jb3JlbWVkaWEuY3BlLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY3Bl
cHJvdGVjdG9yLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuY3VzdG9tdXJsbG9hZGVyLnhw
YyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuZGVjb21wcmVzc2lvbnNlc3Npb24i
X3MsICJjb20uYXBwbGUuY29yZW1lZGlhLmZpZ2NvbnRlbnRrZXlzZXNzaW9uLnhwYyJfcywKKyAg
ICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuZmlnY3BlY3J5cHRvciJfcywgImNvbS5hcHBsZS5j
b3JlbWVkaWEuZm9ybWF0cmVhZGVyLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVk
aWEucGxheWVyLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEucmVtYWtlciJfcywKKyAgICAg
ICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucmVtb3RlcXVldWUiX3MsICJjb20uYXBwbGUuY29yZW1l
ZGlhLnJvdXRpbmdzZXNzaW9ubWFuYWdlci54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29y
ZW1lZGlhLnNhbXBsZWJ1ZmZlcmF1ZGlvcmVuZGVyZXIueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5zYW1wbGVidWZmZXJyZW5kZXJzeW5jaHJvbml6ZXIueHBjIl9zLAorICAgICAgICAiY29t
LmFwcGxlLmNvcmVtZWRpYS5zYW5kYm94c2VydmVyLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVk
aWEuc3RzIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5zeXN0ZW1jb250cm9sbGVy
LnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9xdWV1ZSJfcywKKyAgICAgICAgImNv
bS5hcHBsZS5jb3JlbWVkaWEudmlzdWFsY29udGV4dC54cGMiX3MsICJjb20uYXBwbGUuYWlycGxh
eS5hcHN5bmNjb250cm9sbGVyLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BVVJl
bW90ZUlPU2VydmVyIl9zCiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHN0cmVhbS54
cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHBsYXliYWNrc2Vzc2lvbi54cGMiLAot
ICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHJlbW90ZWNvbnRyb2xzZXNzaW9u
LnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvZGVjb2RlciIsCi0gICAgICAgICJjb20u
YXBwbGUuY29yZW1lZGlhLnZpZGVvZW5jb2RlciIsICJjb20uYXBwbGUuQmx1ZXRvb3RoU2Vydmlj
ZXMiCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50c3RyZWFtLnhwYyJfcywg
ImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRwbGF5YmFja3Nlc3Npb24ueHBjIl9zLAorICAg
ICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHJlbW90ZWNvbnRyb2xzZXNzaW9uLnhw
YyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9kZWNvZGVyIl9zLAorICAgICAgICAiY29t
LmFwcGxlLmNvcmVtZWRpYS52aWRlb2VuY29kZXIiX3MsICJjb20uYXBwbGUuQmx1ZXRvb3RoU2Vy
dmljZXMiX3MKICNlbmRpZgogICAgIH0pOwogICAgIHJldHVybiBzZXJ2aWNlczsKIH0KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4mIG5vbkJy
b3dzZXJTZXJ2aWNlcygpCitzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIG5vbkJy
b3dzZXJTZXJ2aWNlcygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBzdGF0
aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8U3RyaW5n
PiB7Ci0gICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iLAotICAgICAgICAiY29tLmFwcGxlLm1v
YmlsZWFzc2V0ZCIsCi0gICAgICAgICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiwKLSAgICAgICAg
ImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIsCi0gICAgICAgICJjb20uYXBwbGUu
ZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyIKKyAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2
aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CisgICAgICAg
ICJjb20uYXBwbGUubHNkLm9wZW4iX3MsCisgICAgICAgICJjb20uYXBwbGUubW9iaWxlYXNzZXRk
Il9zLAorICAgICAgICAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyJfcywKKyAgICAgICAgImNvbS5h
cHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCJfcywKKyAgICAgICAgImNvbS5hcHBsZS5mcm9u
dGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zCiAgICAgfSk7CiAgICAgcmV0dXJuIHNlcnZpY2Vz
OwogfQogCi1zdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRpYWdub3N0aWNTZXJ2aWNlcygp
CitzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGRpYWdub3N0aWNTZXJ2aWNlcygp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBz
ZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8U3RyaW5nPiB7Ci0gICAgICAgICJj
b20uYXBwbGUuZGlhZ25vc3RpY2QiLAotICAgICAgICAiY29tLmFwcGxlLm9zYW5hbHl0aWNzLm9z
YW5hbHl0aWNzaGVscGVyIgorICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5l
dmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxpdGVyYWw+IHsKKyAgICAgICAgImNvbS5hcHBsZS5k
aWFnbm9zdGljZCJfcywKKyAgICAgICAgImNvbS5hcHBsZS5vc2FuYWx5dGljcy5vc2FuYWx5dGlj
c2hlbHBlciJfcwogICAgIH0pOwogICAgIHJldHVybiBzZXJ2aWNlczsKIH0KIAotc3RhdGljIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBhZ3hDb21waWxlckNsYXNzZXMoKQorc3RhdGljIGNvbnN0IFZl
Y3RvcjxBU0NJSUxpdGVyYWw+JiBhZ3hDb21waWxlckNsYXNzZXMoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gaW9raXRDbGFzc2VzID0gbWFr
ZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxTdHJpbmc+IHsKLSAgICAgICAgIkFHWENvbW1hbmRRdWV1
ZSIsCi0gICAgICAgICJBR1hEZXZpY2UiLAotICAgICAgICAiQUdYU2hhcmVkVXNlckNsaWVudCIs
Ci0gICAgICAgICJJT0FjY2VsQ29udGV4dCIsCi0gICAgICAgICJJT0FjY2VsQ29udGV4dDIiLAot
ICAgICAgICAiSU9BY2NlbERldmljZSIsCi0gICAgICAgICJJT0FjY2VsRGV2aWNlMiIsCi0gICAg
ICAgICJJT0FjY2VsU2hhcmVkVXNlckNsaWVudCIsCi0gICAgICAgICJJT0FjY2VsU2hhcmVkVXNl
ckNsaWVudDIiCi0gICAgICAgICJJT0FjY2VsU3VibWl0dGVyMiIsCisgICAgc3RhdGljIGNvbnN0
IGF1dG8gaW9raXRDbGFzc2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxpdGVy
YWw+IHsKKyAgICAgICAgIkFHWENvbW1hbmRRdWV1ZSJfcywKKyAgICAgICAgIkFHWERldmljZSJf
cywKKyAgICAgICAgIkFHWFNoYXJlZFVzZXJDbGllbnQiX3MsCisgICAgICAgICJJT0FjY2VsQ29u
dGV4dCJfcywKKyAgICAgICAgIklPQWNjZWxDb250ZXh0MiJfcywKKyAgICAgICAgIklPQWNjZWxE
ZXZpY2UiX3MsCisgICAgICAgICJJT0FjY2VsRGV2aWNlMiJfcywKKyAgICAgICAgIklPQWNjZWxT
aGFyZWRVc2VyQ2xpZW50Il9zLAorICAgICAgICAiSU9BY2NlbFNoYXJlZFVzZXJDbGllbnQyIl9z
LAorICAgICAgICAiSU9BY2NlbFN1Ym1pdHRlcjIiX3MsCiAgICAgfSk7CiAgICAgcmV0dXJuIGlv
a2l0Q2xhc3NlczsKIH0KQEAgLTM3NSw3ICszNzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFuZCByZWxhdGVkIHBhcmFtZXRlciB3aGVu
IDxyZGFyOi8vcHJvYmxlbS8yOTQ0ODM2OD4gaXMgZml4ZWQuCiAgICAgaWYgKGlzU2FmYXJpICYm
IG1lZGlhRGV2aWNlc0VuYWJsZWQgJiYgIW1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMo
KS5jYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQoKSAmJiAhbV9kZWZhdWx0UGFnZUdyb3Vw
LT5wcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKLSAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29t
LmFwcGxlLndlYmtpdC5taWNyb3Bob25lIiwgcGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRlbnNp
b25IYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5l
cmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiX3MsIHBhcmFtZXRlcnMu
YXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECkBAIC0zOTEsNyAr
MzkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICNpZiBQTEFURk9STShJT1MpCiAgICAg
aWYgKFdlYkNvcmU6OmRldmljZUhhc0FHWENvbXBpbGVyU2VydmljZSgpKSB7CiAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBjb21waWxlclNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0g
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5h
cHBsZS5BR1hDb21waWxlclNlcnZpY2UiLCBXVEY6Om51bGxvcHQsIGNvbXBpbGVyU2VydmljZUV4
dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5BR1hDb21waWxlclNlcnZpY2UiX3MsIFdURjo6bnVsbG9w
dCwgY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKICAgICAgICAgcGFyYW1ldGVycy5j
b21waWxlclNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGNvbXBpbGVyU2VydmljZUV4
dGVuc2lvbkhhbmRsZSk7CiAgICAgfQogI2VuZGlmCkBAIC00MTAsMzEgKzQxMCwzMSBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmIChbZ2V0TkVG
aWx0ZXJTb3VyY2VDbGFzcygpIGZpbHRlclJlcXVpcmVkXSkgewogICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgaGVscGVySGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVoZWxwZXIiLCBXVEY6Om51bGxv
cHQsIGhlbHBlckhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZWhlbHBlciJfcywgV1RGOjpudWxsb3B0LCBoZWxw
ZXJIYW5kbGUpOwogICAgICAgICBwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlID0g
V1RGTW92ZShoZWxwZXJIYW5kbGUpOwogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
bWFuYWdlckhhbmRsZTsKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPCAxMDE1MDAKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIiLCBXVEY6Om51bGxv
cHQsIG1hbmFnZXJIYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlciJfcywgV1RGOjpudWxs
b3B0LCBtYW5hZ2VySGFuZGxlKTsKICNlbHNlCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRl
bnQtZmlsdGVyIiwgV1RGOjpudWxsb3B0LCBtYW5hZ2VySGFuZGxlKTsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lv
bm1hbmFnZXIuY29udGVudC1maWx0ZXIiX3MsIFdURjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7
CiAjZW5kaWYKICAgICAgICAgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFu
ZGxlID0gV1RGTW92ZShtYW5hZ2VySGFuZGxlKTsKICAgICB9CiAgICAgcGFyYW1ldGVycy5zeXN0
ZW1IYXNCYXR0ZXJ5ID0gc3lzdGVtSGFzQmF0dGVyeSgpOwogCiAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIG1hcERCSGFuZGxlOwotICAgIGlmIChTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubHNkLm1hcGRiIiwgV1RGOjpudWxsb3B0LCBt
YXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6RmxhZ3M6Ok5vUmVwb3J0KSkKKyAgICBpZiAo
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmxz
ZC5tYXBkYiJfcywgV1RGOjpudWxsb3B0LCBtYXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6
RmxhZ3M6Ok5vUmVwb3J0KSkKICAgICAgICAgcGFyYW1ldGVycy5tYXBEQkV4dGVuc2lvbkhhbmRs
ZSA9IFdURk1vdmUobWFwREJIYW5kbGUpOwogI2VuZGlmCiAgICAgCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBpc01hbmFnZWRTZXNzaW9u
XSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlr
aXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiLCBXVEY6
Om51bGxvcHQsIGhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2Vi
Q29udGVudEZpbHRlci5yZW1vdGVVSSJfcywgV1RGOjpudWxsb3B0LCBoYW5kbGUpOwogICAgICAg
ICBwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRs
ZSk7CiAKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGZyb250Ym9hcmRTZXJ2aWNl
RXh0ZW5zaW9uSGFuZGxlOwotICAgICAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMi
LCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAg
ICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5h
cHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBXVEY6Om51bGxvcHQsIGZyb250
Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgICAgIHBhcmFtZXRlcnMuZnJv
bnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGZyb250Ym9hcmRTZXJ2aWNl
RXh0ZW5zaW9uSGFuZGxlKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggYjgyZWIyNmM1
NTkzNWMxNTdkZjM3ODNiYTZlZDIxMDYwMmJhYzdmMi4uODY2MjM4YmFmZThmMDVjMTdhMjNkNmY5
Y2M5OWEyMTAxNGRkOTMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZW5hYmxlUmVtb3RlSW5zcGVjdG9ySWZOZWVkZWQoKQogICAgICAgICBy
ZXR1cm47CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKICAgICBhdXRvIGF1
ZGl0VG9rZW4gPSBjb25uZWN0aW9uKCkgPyBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSA6
IFdURjo6bnVsbG9wdDsKLSAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cCgiY29tLmFwcGxlLndlYmluc3BlY3RvciIsIGF1ZGl0VG9rZW4sIGhhbmRsZSkp
CisgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNv
bS5hcHBsZS53ZWJpbnNwZWN0b3IiX3MsIGF1ZGl0VG9rZW4sIGhhbmRsZSkpCiAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuYWJsZVJlbW90ZVdlYkluc3BlY3RvcihoYW5kbGUp
LCAwKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA3ZDMwNThlYzc0YTRmOTliZTExNmM5MGMzZWY3ZDIyNTcyZmU4
NmVlLi5hNTIzNzRkNzQ2NGQzMzkwN2M1MTM5MWMwODA2MGZjZDA3ODk1MzBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTAyLDEy
ICsxMDIsMTIgQEAgR1BVUHJvY2Vzc1Byb3h5JiBHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbigp
CiAgICAgICAgIGJvb2wgbmVlZHNDYW1lcmFTYW5kYm94RXh0ZW5zaW9uID0gc2hvdWxkQ3JlYXRl
Q2FtZXJhU2FuZGJveEV4dGVuc2lvbigpOwogICAgICAgICBib29sIG5lZWRzTWljcm9waG9uZVNh
bmRib3hFeHRlbnNpb24gPSBzaG91bGRDcmVhdGVNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigp
OwogICAgICAgICBpZiAobmVlZHNDYW1lcmFTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFw
cGxlLndlYmtpdC5jYW1lcmEiLCBwYXJhbWV0ZXJzLmNhbWVyYVNhbmRib3hFeHRlbnNpb25IYW5k
bGUpOworICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJp
Y0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5jYW1lcmEiX3MsIHBhcmFtZXRlcnMuY2FtZXJh
U2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgICAgIGlmIChuZWVkc01pY3JvcGhvbmVTYW5k
Ym94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIiwgcGFyYW1l
dGVycy5taWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUu
d2Via2l0Lm1pY3JvcGhvbmUiX3MsIHBhcmFtZXRlcnMubWljcm9waG9uZVNhbmRib3hFeHRlbnNp
b25IYW5kbGUpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgaWYgKG5lZWRzQ2FtZXJhU2Fu
ZGJveEV4dGVuc2lvbiB8fCBuZWVkc01pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uKQotICAgICAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFw
cGxlLnRjY2QiLCBXVEY6Om51bGxvcHQsIHBhcmFtZXRlcnMudGNjU2FuZGJveEV4dGVuc2lvbkhh
bmRsZSk7CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNo
TG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywgV1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJzLnRjY1Nh
bmRib3hFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCiAjZW5kaWYKICAgICAgICAgcGFyYW1ldGVy
cy5wYXJlbnRQSUQgPSBnZXRDdXJyZW50UHJvY2Vzc0lEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggN2Y4MjllNzFmOTFlYzc3YzZmMjcyMzY1OTZlM2E0YmJkYTZk
OTg3Zi4uMTdiYTU5ZGY1YWQwMTcyZWI4NmVjZDNmMzFiNDU3Y2YyMzU4YTRiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVz
dChVc2VyTWVkaWFQZXJtCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICghbV9oYXNDcmVhdGVkU2FuZGJveEV4
dGVuc2lvbkZvclRDQ0QpIHsKLSAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIiwgbV9wYWdlLnByb2Nlc3MoKS5jb25u
ZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlKTsKKyAgICAgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBt
X3BhZ2UucHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGUpOwog
ICAgICAgICAgICAgbV9oYXNDcmVhdGVkU2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSB0cnVlOwog
ICAgICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDQwOGM5Zjk1YzJlYmU2MTY4YzIyNzRiZDZjNjE4Y2RlNmU3OWNlNjIuLmViMThhNTBj
YWZkM2YzMGJjZDA5NDg2NDY4MmYwOWYxNzA5Y2ZkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjY3Miw5ICs2NjcyLDkgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsV2l0aERpc3BsYXlTdHJpbmdBbmRJY29uKGNv
bnN0IFZlY3QKIAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2Vydmlj
ZXNTYW5kYm94RXh0ZW5zaW9uLCBpY29uU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uOwogI2lmIEhB
VkUoRlJPTlRCT0FSRF9TWVNURU1fQVBQX1NFUlZJQ0VTKQotICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFw
cHNlcnZpY2VzIiwgV1RGOjpudWxsb3B0LCBmcm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0ZW5z
aW9uKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyJfcywgV1RGOjpudWxsb3B0LCBm
cm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uKTsKICNlbmRpZgotICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pY29uc2Vydmlj
ZXMiLCBXVEY6Om51bGxvcHQsIGljb25TZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24pOworICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pY29u
c2VydmljZXMiX3MsIFdURjo6bnVsbG9wdCwgaWNvblNlcnZpY2VzU2FuZGJveEV4dGVuc2lvbik7
CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5l
bFdpdGhEaXNwbGF5U3RyaW5nQW5kSWNvbihmaWxlVVJMcywgZGlzcGxheVN0cmluZywgaWNvbkRh
dGEgPyBpY29uRGF0YS0+ZGF0YVJlZmVyZW5jZSgpIDogSVBDOjpEYXRhUmVmZXJlbmNlKCksIGZy
b250Ym9hcmRTZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24sIGljb25TZXJ2aWNlc1NhbmRib3hFeHRl
bnNpb24pKTsKIApAQCAtNzg1Nyw5ICs3ODU3LDkgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MK
ICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIGlmIChtX3ByZWZlcmVuY2VzLT5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKSAmJiAhbV9w
cm9jZXNzLT5oYXNJc3N1ZWRBdHRhY2htZW50RWxlbWVudFJlbGF0ZWRTYW5kYm94RXh0ZW5zaW9u
cygpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7Ci0gICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5m
cm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiwgV1RGOjpudWxsb3B0LCBoYW5kbGUpOworICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBw
bGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyJfcywgV1RGOjpudWxsb3B0LCBoYW5kbGUp
OwogICAgICAgICBwYXJhbWV0ZXJzLmZyb250Ym9hcmRFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KGhhbmRsZSk7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5pY29uc2VydmljZXMiLCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7Cisg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5h
cHBsZS5pY29uc2VydmljZXMiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKICAgICAgICAgcGFy
YW1ldGVycy5pY29uU2VydmljZXNFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAg
ICAgICAgIG1fcHJvY2Vzcy0+c2V0SGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2Fu
ZGJveEV4dGVuc2lvbnMoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBhZWFlMjlhMWE5NjBkNmI0ZTU0YmEzMzAxNzkwMTBm
ODYyZjYyYzJiLi4xYWFiOGY1OTVkZmUyYjdmYWY0ZTFmZDJmYThiZWU0YjcxNTJhOTExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE2
NDIsOCArMTY0Miw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1Zpc2libGVDaGFuZ2VkKGJvb2wg
aXNWaXNpYmxlKQogdm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2Vz
KCkKIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbW9iaWxlQXNzZXRIYW5kbGUsIG1v
YmlsZUFzc2V0SGFuZGxlVjI7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cCgiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIsIFdURjo6bnVsbG9wdCwgbW9iaWxl
QXNzZXRIYW5kbGUpOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5tb2JpbGVhc3NldGQudjIiLCBXVEY6Om51bGxvcHQsIG1vYmlsZUFz
c2V0SGFuZGxlVjIpOworICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiX3MsIFdURjo6bnVsbG9wdCwgbW9iaWxlQXNz
ZXRIYW5kbGUpOworICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29r
dXAoImNvbS5hcHBsZS5tb2JpbGVhc3NldGQudjIiX3MsIFdURjo6bnVsbG9wdCwgbW9iaWxlQXNz
ZXRIYW5kbGVWMik7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6Okdy
YW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKG1vYmlsZUFzc2V0SGFuZGxlLCBtb2JpbGVBc3NldEhh
bmRsZVYyKSwgMCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402311</attachid>
            <date>2020-06-19 13:07:27 -0700</date>
            <delta_ts>2020-06-19 13:11:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213400-20200619130727.patch</filename>
            <type>text/plain</type>
            <size>30736</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU4MTMyNDhmMWNjMGZiNjFh
NThkZGE4MTc1YTExZDY2ZmIyMDZjZDYuLmNiYTZlMTEzYWJhZDUyZjY2OTk3MTQ1OTE0ZTA3YTMy
ZjM0MDdkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDYtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUg
Zm9yIFNhbmRib3hFeHRlbnNpb24gZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUgZm9yIFNhbmRib3hF
eHRlbnNpb24gZnVuY3Rpb25zLiBGdW5jdGlvbnMgbGlrZSBjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCkgLyBjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKCkKKyAgICAgICAgZG9u
J3QgbmVlZCB0byB0YWtlIGluIFN0cmluZ3MsIEFTQ0lJTGl0ZXJhbCBpcyBlbm91Z2guCisKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlUmVhZE9ubHlIYW5kbGVzRm9yRmlsZXMpOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9u
KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZXNGb3JNYWNoTG9va3VwKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyk6CisgICAg
ICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bWVkaWFSZWxhdGVk
TWFjaFNlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6bm9uQnJvd3NlclNlcnZpY2VzKToKKyAg
ICAgICAgKFdlYktpdDo6ZGlhZ25vc3RpY1NlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6YWd4
Q29tcGlsZXJDbGFzc2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpl
bmFibGVSZW1vdGVJbnNwZWN0b3JJZk5lZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNp
bmdsZXRvbik6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoRGlzcGxheVN0cmluZ0FuZEljb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Z3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMpOgorCiAyMDIwLTA2LTE5ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IE1ha2Ug
aXNvbGF0ZWQgdHJlZSBlbmFibGVtZW50IHN0YXR1cyBkZXBlbmRlbnQgb24gY2xpZW50IHByZWZl
cmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRl
bnNpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNp
b25Db2NvYS5tbQppbmRleCBhYmZmMTIwMGZlODI0MTEwZWYxOGQ4OTBmYmNhMmQ0YzZjNTE1ZjZl
Li41OTViMzJhNzIzMjNhMzZkNDJjOGYxOGI0ODZmOTM5OWQzMzAzOGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCkBAIC0y
ODEsNyArMjgxLDggQEAgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBUeXBlIHR5cGUsIEhhbmRsZSYgaGFuZGwKICAgICByZXR1cm4gY3JlYXRl
SGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9u
KHBhdGgpLCB0eXBlLCBoYW5kbGUpOwogfQogCi1zdGF0aWMgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cmVzb3VyY2VzLCBGdW5jdGlvbjxib29sKGNvbnN0IFN0cmluZyYsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgaGFuZGxlKT4mJiBjcmVhdGVGdW5jdGlvbikKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
Pgorc3RhdGljIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JS
ZXNvdXJjZXMoY29uc3QgVmVjdG9yPFQ+JiByZXNvdXJjZXMsIEZ1bmN0aW9uPGJvb2woY29uc3Qg
VCYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKT4mJiBjcmVhdGVGdW5jdGlvbikK
IHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBoYW5kbGVBcnJheTsKIApAQCAt
Mjk4LDE4ICsyOTksMTggQEAgc3RhdGljIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGNy
ZWF0ZUhhbmRsZXNGb3JSZXNvdXJjZXMoY29uc3QgVmVjdG9yPFN0cmkKICAgICByZXR1cm4gaGFu
ZGxlQXJyYXk7CiB9CiAKLVNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKGNvbnN0IFN0cmluZyYgbG9nTGFi
ZWwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKK1NhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKEFT
Q0lJTGl0ZXJhbCBsb2dMYWJlbCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewotICAg
IHJldHVybiBjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKHBhdGhzLCBbJmxvZ0xhYmVsXSAoY29u
c3QgU3RyaW5nJiBwYXRoLCBIYW5kbGUmIGhhbmRsZSkgeworICAgIHJldHVybiBjcmVhdGVIYW5k
bGVzRm9yUmVzb3VyY2VzKHBhdGhzLCBGdW5jdGlvbjxib29sKGNvbnN0IFN0cmluZyYsIEhhbmRs
ZSYpPihbJmxvZ0xhYmVsXSAoY29uc3QgU3RyaW5nJiBwYXRoLCBIYW5kbGUmIGhhbmRsZSkgewog
ICAgICAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShwYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgaGFuZGxlKSkgewogICAgICAgICAgICAgLy8gVGhp
cyBjYW4gbGVnaXRpbWF0ZWx5IGZhaWwgaWYgYSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZmls
ZSBpcyBkZWxldGVkIGFmdGVyIHRoZSBmaWxlIHdhcyBjaG9zZW4uCiAgICAgICAgICAgICAvLyBX
ZSBhbHNvIGhhdmUgcmVwb3J0cyBvZiBjYXNlcyB3aGVyZSB0aGlzIGxpa2VseSBmYWlscyBmb3Ig
c29tZSB1bmtub3duIHJlYXNvbiwgPHJkYXI6Ly9wcm9ibGVtLzEwMTU2NzEwPi4KLSAgICAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiJXM6IGNvdWxkIG5vdCBjcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lv
biBmb3IgJyVzJ1xuIiwgbG9nTGFiZWwudXRmOCgpLmRhdGEoKSwgcGF0aC51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM6IGNvdWxkIG5vdCBjcmVhdGUgYSBzYW5k
Ym94IGV4dGVuc2lvbiBmb3IgJyVzJ1xuIiwgbG9nTGFiZWwuY2hhcmFjdGVycygpLCBwYXRoLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fSk7CisgICAgfSkpOwogfQogCiBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgaGFuZGxlKQpAQCAtMzUwLDQxICszNTEsNDEgQEAgU3RyaW5nIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgs
IFR5cGUKICAgICByZXR1cm4gU3RyaW5nKHBhdGguZGF0YSgpKTsKIH0KIAotYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
ZXh0ZW5zaW9uQ2xhc3MsIEhhbmRsZSYgaGFuZGxlKQorYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKEFTQ0lJTGl0ZXJhbCBleHRlbnNpb25DbGFz
cywgSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5z
aW9uKTsKIAotICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9u
SW1wbDo6Y3JlYXRlKGV4dGVuc2lvbkNsYXNzLnV0ZjgoKS5kYXRhKCksIFR5cGU6OkdlbmVyaWMp
OworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uSW1wbDo6
Y3JlYXRlKGV4dGVuc2lvbkNsYXNzLmNoYXJhY3RlcnMoKSwgVHlwZTo6R2VuZXJpYyk7CiAgICAg
aWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygi
Q291bGQgbm90IGNyZWF0ZSBhICclcycgc2FuZGJveCBleHRlbnNpb24iLCBleHRlbnNpb25DbGFz
cy51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRl
IGEgJyVzJyBzYW5kYm94IGV4dGVuc2lvbiIsIGV4dGVuc2lvbkNsYXNzLmNoYXJhY3RlcnMoKSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChjb25z
dCBTdHJpbmcmIHNlcnZpY2UsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIEhh
bmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQorYm9vbCBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKEFTQ0lJTGl0ZXJhbCBzZXJ2aWNlLCBPcHRp
b25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBIYW5kbGUmIGhhbmRsZSwgT3B0aW9uU2V0
PEZsYWdzPiBmbGFncykKIHsKICAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24p
OwogICAgIAotICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9u
SW1wbDo6Y3JlYXRlKHNlcnZpY2UudXRmOCgpLmRhdGEoKSwgVHlwZTo6TWFjaCwgYXVkaXRUb2tl
biwgZmxhZ3MpOworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5z
aW9uSW1wbDo6Y3JlYXRlKHNlcnZpY2UuY2hhcmFjdGVycygpLCBUeXBlOjpNYWNoLCBhdWRpdFRv
a2VuLCBmbGFncyk7CiAgICAgaWYgKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKSB7Ci0gICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBhICclcycgc2FuZGJveCBleHRlbnNp
b24iLCBzZXJ2aWNlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxk
IG5vdCBjcmVhdGUgYSAnJXMnIHNhbmRib3ggZXh0ZW5zaW9uIiwgc2VydmljZS5jaGFyYWN0ZXJz
KCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVl
OwogfQogCi1TYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVzRm9yTWFjaExvb2t1cChjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VydmljZXMs
IE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIE9wdGlvblNldDxGbGFncz4gZmxh
Z3MpCitTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVzRm9yTWFjaExvb2t1cChjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgc2Vydmlj
ZXMsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIE9wdGlvblNldDxGbGFncz4g
ZmxhZ3MpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNGb3JSZXNvdXJjZXMoc2VydmljZXMs
IFthdWRpdFRva2VuLCBmbGFnc10gKGNvbnN0IFN0cmluZyYgc2VydmljZSwgSGFuZGxlJiBoYW5k
bGUpIHsKKyAgICByZXR1cm4gY3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhzZXJ2aWNlcywgRnVu
Y3Rpb248Ym9vbChjb25zdCBBU0NJSUxpdGVyYWwmLCBIYW5kbGUmKT4oW2F1ZGl0VG9rZW4sIGZs
YWdzXSAoY29uc3QgQVNDSUlMaXRlcmFsJiBzZXJ2aWNlLCBIYW5kbGUmIGhhbmRsZSkgewogICAg
ICAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoc2Vy
dmljZSwgYXVkaXRUb2tlbiwgaGFuZGxlLCBmbGFncykpIHsKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0pOworICAgIH0pKTsKIH0KIAogYm9vbCBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRpdFRva2VuKGNvbnN0IFN0cmluZyYgcGF0
aCwgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuLCBIYW5kbGUmIGhhbmRsZSkKQEAgLTQwMCwyOCAr
NDAxLDI4IEBAIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZEJ5QXVk
aXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lv
bihjb25zdCBTdHJpbmcmIGlvS2l0Q2xhc3MsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0
VG9rZW4sIEhhbmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQorYm9vbCBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKEFTQ0lJTGl0
ZXJhbCBpb0tpdENsYXNzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBIYW5k
bGUmIGhhbmRsZSwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKIHsKICAgICBBU1NFUlQoIWhhbmRs
ZS5tX3NhbmRib3hFeHRlbnNpb24pOwogCi0gICAgaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9
IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoaW9LaXRDbGFzcy51dGY4KCkuZGF0YSgpLCBU
eXBlOjpJT0tpdCwgYXVkaXRUb2tlbik7CisgICAgaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbiA9
IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoaW9LaXRDbGFzcy5jaGFyYWN0ZXJzKCksIFR5
cGU6OklPS2l0LCBhdWRpdFRva2VuKTsKICAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNp
b24pIHsKLSAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIGEgc2FuZGJveCBleHRl
bnNpb24gZm9yICclcyciLCBpb0tpdENsYXNzLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgJyVzJyIsIGlv
S2l0Q2xhc3MuY2hhcmFjdGVycygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1TYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVzRm9ySU9LaXRDbGFzc0V4dGVuc2lvbnMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGlva2l0Q2xhc3NlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVk
aXRUb2tlbiwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKK1NhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5z
aW9ucyhjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgaW9raXRDbGFzc2VzLCBPcHRpb25hbDxh
dWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQogewotICAg
IHJldHVybiBjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKGlva2l0Q2xhc3NlcywgW2F1ZGl0VG9r
ZW4sIGZsYWdzXSAoY29uc3QgU3RyaW5nJiBpb2tpdENsYXNzLCBIYW5kbGUmIGhhbmRsZSkgewor
ICAgIHJldHVybiBjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKGlva2l0Q2xhc3NlcywgRnVuY3Rp
b248Ym9vbChjb25zdCBBU0NJSUxpdGVyYWwmLCBIYW5kbGUmKT4oW2F1ZGl0VG9rZW4sIGZsYWdz
XSAoY29uc3QgQVNDSUlMaXRlcmFsJiBpb2tpdENsYXNzLCBIYW5kbGUmIGhhbmRsZSkgewogICAg
ICAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvcklPS2l0Q2xhc3NFeHRl
bnNpb24oaW9raXRDbGFzcywgYXVkaXRUb2tlbiwgaGFuZGxlLCBmbGFncykpIHsKICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0pOworICAgIH0pKTsKIH0KIAogU2Fu
ZGJveEV4dGVuc2lvbjo6U2FuZGJveEV4dGVuc2lvbihjb25zdCBIYW5kbGUmIGhhbmRsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAppbmRleCBlYjM5NGFlNjE1NjhhYmNl
YmQyMmIzMTc1OWM5MTJjYzBiZGI5NmIwLi4xMjhlZjcyYWM2MWIwMDI2NmQwYjE2Mzk3ZWFjNTU5
NWUwYTdiNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5z
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCkBAIC0x
MTEsMTcgKzExMSwxNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIFJlZlB0cjxTYW5kYm94
RXh0ZW5zaW9uPiBjcmVhdGUoSGFuZGxlJiYpOwogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZShjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUsIEhhbmRsZSYpOwotICAgIHN0YXRpYyBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBjcmVhdGVSZWFkT25seUhhbmRsZXNGb3JGaWxlcyhjb25z
dCBTdHJpbmcmIGxvZ0xhYmVsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOworICAgIHN0
YXRpYyBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBjcmVhdGVSZWFkT25seUhhbmRsZXNG
b3JGaWxlcyhBU0NJSUxpdGVyYWwgbG9nTGFiZWwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRo
cyk7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgoY29u
c3QgU3RyaW5nJiBwYXRoLCBUeXBlLCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVI
YW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBIYW5kbGUmKTsg
Ly8gV2lsbCBhdHRlbXB0IHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5LgogICAgIHN0YXRpYyBTdHJp
bmcgY3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgVHlw
ZSwgSGFuZGxlJik7Ci0gICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVu
c2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbkNsYXNzLCBIYW5kbGUmKTsKKyAgICBzdGF0aWMg
Ym9vbCBjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKEFTQ0lJTGl0ZXJhbCBleHRlbnNp
b25DbGFzcywgSGFuZGxlJik7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKLSAgICBzdGF0aWMgYm9v
bCBjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKGNvbnN0IFN0cmluZyYgc2VydmljZSwgT3B0aW9u
YWw8YXVkaXRfdG9rZW5fdD4sIEhhbmRsZSYsIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVm
YXVsdCk7Ci0gICAgc3RhdGljIEhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3Vw
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4s
IE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7CisgICAgc3RhdGljIGJvb2wgY3Jl
YXRlSGFuZGxlRm9yTWFjaExvb2t1cChBU0NJSUxpdGVyYWwgc2VydmljZSwgT3B0aW9uYWw8YXVk
aXRfdG9rZW5fdD4sIEhhbmRsZSYsIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7
CisgICAgc3RhdGljIEhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3VwKGNvbnN0
IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4s
IE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7CiAgICAgc3RhdGljIGJvb2wgY3Jl
YXRlSGFuZGxlRm9yUmVhZEJ5QXVkaXRUb2tlbihjb25zdCBTdHJpbmcmIHBhdGgsIGF1ZGl0X3Rv
a2VuX3QsIEhhbmRsZSYpOwotICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvcklPS2l0Q2xh
c3NFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBpb2tpdENsYXNzLCBPcHRpb25hbDxhdWRpdF90b2tl
bl90PiwgSGFuZGxlJiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKLSAgICBz
dGF0aWMgSGFuZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvcklPS2l0Q2xhc3NFeHRlbnNpb25zKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBpb2tpdENsYXNzZXMsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+
LCBPcHRpb25TZXQ8RmxhZ3M+ID0gRmxhZ3M6OkRlZmF1bHQpOworICAgIHN0YXRpYyBib29sIGNy
ZWF0ZUhhbmRsZUZvcklPS2l0Q2xhc3NFeHRlbnNpb24oQVNDSUlMaXRlcmFsIGlva2l0Q2xhc3Ms
IE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+LCBIYW5kbGUmLCBPcHRpb25TZXQ8RmxhZ3M+ID0gRmxh
Z3M6OkRlZmF1bHQpOworICAgIHN0YXRpYyBIYW5kbGVBcnJheSBjcmVhdGVIYW5kbGVzRm9ySU9L
aXRDbGFzc0V4dGVuc2lvbnMoY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGlva2l0Q2xhc3Nl
cywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4sIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVm
YXVsdCk7CiAjZW5kaWYKICAgICB+U2FuZGJveEV4dGVuc2lvbigpOwogCkBAIC0xNjQsNyArMTY0
LDcgQEAgaW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckYKIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKGNvbnN0IFN0cmluZyYsIFR5cGUs
IEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmLCBIYW5kbGUm
KSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgU3RyaW5nIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiAvKnByZWZpeCovLCBUeXBlLCBI
YW5kbGUmKSB7cmV0dXJuIFN0cmluZygpO30KLWlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiAvKmV4dGVuc2lv
bkNsYXNzKi8sIEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KK2lubGluZSBib29sIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oQVNDSUlMaXRlcmFsIC8q
ZXh0ZW5zaW9uQ2xhc3MqLywgSGFuZGxlJikgeyByZXR1cm4gdHJ1ZTsgfQogaW5saW5lIFNhbmRi
b3hFeHRlbnNpb246On5TYW5kYm94RXh0ZW5zaW9uKCkgeyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpyZXZva2UoKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lKCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggMDIxYmFj
YjdiOTQwNDYyZmJmNTgyMGJhYTU1Mzk1YTllZDViYjE0Mi4uYzdiZjExZTMxZmNmZTQyYThmYTNi
ZmJhYTUyMWMzMDM5MTdlNTgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0yMTIsODAgKzIxMiw4MCBAQCBzdGF0
aWMgYm9vbCBpc0ludGVybmFsSW5zdGFsbCgpCiAjZW5kaWYKIAogLy8gRklYTUUoMjA3NzE2KTog
VGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBj
b21wbGV0ZS4KLXN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWVkaWFSZWxhdGVkTWFjaFNl
cnZpY2VzKCkKK3N0YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgbWVkaWFSZWxhdGVk
TWFjaFNlcnZpY2VzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHN0YXRp
YyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxTdHJpbmc+
IHsKLSAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFByZWZzIiwgImNvbS5h
cHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciIsCi0gICAgICAgICJjb20uYXBwbGUu
YXVkaW8uQXVkaW9RdWV1ZVNlcnZlciIsICJjb20uYXBwbGUuYXVkaW8udG9vbGJveC5yZXBvcnRp
bmcuc2VydmljZSIsICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50LnhwYyIsCi0gICAgICAg
ICJjb20uYXBwbGUuY29yZW1lZGlhLnJvdXRlZGlzY292ZXJlci54cGMiLCAiY29tLmFwcGxlLmNv
cmVtZWRpYS5yb3V0aW5nY29udGV4dC54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRp
YS52b2x1bWVjb250cm9sbGVyLnhwYyIsICJjb20uYXBwbGUuYWNjZXNzaWJpbGl0eS5tZWRpYWFj
Y2Vzc2liaWxpdHlkIiwKLSAgICAgICAgImNvbS5hcHBsZS5tZWRpYXJlbW90ZWQueHBjIiwKKyAg
ICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8
QVNDSUlMaXRlcmFsPiB7CisgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRQ
cmVmcyJfcywgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciJfcywKKyAg
ICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb1F1ZXVlU2VydmVyIl9zLCAiY29tLmFwcGxlLmF1
ZGlvLnRvb2xib3gucmVwb3J0aW5nLnNlcnZpY2UiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLmVu
ZHBvaW50LnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucm91dGVkaXNjb3Zl
cmVyLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEucm91dGluZ2NvbnRleHQueHBjIl9zLAor
ICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS52b2x1bWVjb250cm9sbGVyLnhwYyJfcywgImNv
bS5hcHBsZS5hY2Nlc3NpYmlsaXR5Lm1lZGlhYWNjZXNzaWJpbGl0eWQiX3MsCisgICAgICAgICJj
b20uYXBwbGUubWVkaWFyZW1vdGVkLnhwYyJfcywKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgICAgICAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvU2Vzc2lvbiIsICJjb20uYXBwbGUuTWVkaWFQ
bGF5ZXIuUmVtb3RlUGxheWVyU2VydmljZSIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlh
LmFkbWluIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuYXNzZXQueHBjIiwgImNvbS5h
cHBsZS5jb3JlbWVkaWEuYXNzZXRpbWFnZWdlbmVyYXRvci54cGMiLAotICAgICAgICAiY29tLmFw
cGxlLmNvcmVtZWRpYS5hdWRpb2RldmljZWNsb2NrLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlh
LmF1ZGlvcHJvY2Vzc2luZ3RhcC54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5j
YXB0dXJlc2Vzc2lvbiIsICJjb20uYXBwbGUuY29yZW1lZGlhLmNhcHR1cmVzb3VyY2UiLAotICAg
ICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5jb21wcmVzc2lvbnNlc3Npb24iLCAiY29tLmFwcGxl
LmNvcmVtZWRpYS5jcGUueHBjIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY3BlcHJv
dGVjdG9yLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLmN1c3RvbXVybGxvYWRlci54cGMiLAot
ICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5kZWNvbXByZXNzaW9uc2Vzc2lvbiIsICJjb20u
YXBwbGUuY29yZW1lZGlhLmZpZ2NvbnRlbnRrZXlzZXNzaW9uLnhwYyIsCi0gICAgICAgICJjb20u
YXBwbGUuY29yZW1lZGlhLmZpZ2NwZWNyeXB0b3IiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5mb3Jt
YXRyZWFkZXIueHBjIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucGxheWVyLnhwYyIs
ICJjb20uYXBwbGUuY29yZW1lZGlhLnJlbWFrZXIiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5yZW1vdGVxdWV1ZSIsICJjb20uYXBwbGUuY29yZW1lZGlhLnJvdXRpbmdzZXNzaW9ubWFu
YWdlci54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5zYW1wbGVidWZmZXJhdWRp
b3JlbmRlcmVyLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLnNhbXBsZWJ1ZmZlcnJlbmRlcnN5
bmNocm9uaXplci54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5zYW5kYm94c2Vy
dmVyLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLnN0cyIsCi0gICAgICAgICJjb20uYXBwbGUu
Y29yZW1lZGlhLnN5c3RlbWNvbnRyb2xsZXIueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlk
ZW9xdWV1ZSIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnZpc3VhbGNvbnRleHQueHBj
IiwgImNvbS5hcHBsZS5haXJwbGF5LmFwc3luY2NvbnRyb2xsZXIueHBjIiwKLSAgICAgICAgImNv
bS5hcHBsZS5hdWRpby5BVVJlbW90ZUlPU2VydmVyIgorICAgICAgICAiY29tLmFwcGxlLmF1ZGlv
LkF1ZGlvU2Vzc2lvbiJfcywgImNvbS5hcHBsZS5NZWRpYVBsYXllci5SZW1vdGVQbGF5ZXJTZXJ2
aWNlIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5hZG1pbiJfcywKKyAgICAgICAg
ImNvbS5hcHBsZS5jb3JlbWVkaWEuYXNzZXQueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5h
c3NldGltYWdlZ2VuZXJhdG9yLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEu
YXVkaW9kZXZpY2VjbG9jay54cGMiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLmF1ZGlvcHJvY2Vz
c2luZ3RhcC54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmNhcHR1cmVzZXNz
aW9uIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5jYXB0dXJlc291cmNlIl9zLAorICAgICAgICAi
Y29tLmFwcGxlLmNvcmVtZWRpYS5jb21wcmVzc2lvbnNlc3Npb24iX3MsICJjb20uYXBwbGUuY29y
ZW1lZGlhLmNwZS54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmNwZXByb3Rl
Y3Rvci54cGMiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLmN1c3RvbXVybGxvYWRlci54cGMiX3Ms
CisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmRlY29tcHJlc3Npb25zZXNzaW9uIl9zLCAi
Y29tLmFwcGxlLmNvcmVtZWRpYS5maWdjb250ZW50a2V5c2Vzc2lvbi54cGMiX3MsCisgICAgICAg
ICJjb20uYXBwbGUuY29yZW1lZGlhLmZpZ2NwZWNyeXB0b3IiX3MsICJjb20uYXBwbGUuY29yZW1l
ZGlhLmZvcm1hdHJlYWRlci54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnBs
YXllci54cGMiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLnJlbWFrZXIiX3MsCisgICAgICAgICJj
b20uYXBwbGUuY29yZW1lZGlhLnJlbW90ZXF1ZXVlIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5y
b3V0aW5nc2Vzc2lvbm1hbmFnZXIueHBjIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRp
YS5zYW1wbGVidWZmZXJhdWRpb3JlbmRlcmVyLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEu
c2FtcGxlYnVmZmVycmVuZGVyc3luY2hyb25pemVyLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBs
ZS5jb3JlbWVkaWEuc2FuZGJveHNlcnZlci54cGMiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLnN0
cyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuc3lzdGVtY29udHJvbGxlci54cGMi
X3MsICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvcXVldWUiX3MsCisgICAgICAgICJjb20uYXBw
bGUuY29yZW1lZGlhLnZpc3VhbGNvbnRleHQueHBjIl9zLCAiY29tLmFwcGxlLmFpcnBsYXkuYXBz
eW5jY29udHJvbGxlci54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQVVSZW1vdGVJ
T1NlcnZlciJfcwogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRzdHJlYW0ueHBjIiwg
ImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRwbGF5YmFja3Nlc3Npb24ueHBjIiwKLSAgICAg
ICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRyZW1vdGVjb250cm9sc2Vzc2lvbi54cGMi
LCAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb2RlY29kZXIiLAotICAgICAgICAiY29tLmFwcGxl
LmNvcmVtZWRpYS52aWRlb2VuY29kZXIiLCAiY29tLmFwcGxlLkJsdWV0b290aFNlcnZpY2VzIgor
ICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHN0cmVhbS54cGMiX3MsICJjb20u
YXBwbGUuY29yZW1lZGlhLmVuZHBvaW50cGxheWJhY2tzZXNzaW9uLnhwYyJfcywKKyAgICAgICAg
ImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRyZW1vdGVjb250cm9sc2Vzc2lvbi54cGMiX3Ms
ICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvZGVjb2RlciJfcywKKyAgICAgICAgImNvbS5hcHBs
ZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVyIl9zLCAiY29tLmFwcGxlLkJsdWV0b290aFNlcnZpY2Vz
Il9zCiAjZW5kaWYKICAgICB9KTsKICAgICByZXR1cm4gc2VydmljZXM7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBub25Ccm93c2Vy
U2VydmljZXMoKQorc3RhdGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBub25Ccm93c2Vy
U2VydmljZXMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIGNv
bnN0IGF1dG8gc2VydmljZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPFN0cmluZz4gewot
ICAgICAgICAiY29tLmFwcGxlLmxzZC5vcGVuIiwKLSAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVh
c3NldGQiLAotICAgICAgICAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIsCi0gICAgICAgICJjb20u
YXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiLAotICAgICAgICAiY29tLmFwcGxlLmZyb250
Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiCisgICAgc3RhdGljIGNvbnN0IGF1dG8gc2VydmljZXMg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPEFTQ0lJTGl0ZXJhbD4geworICAgICAgICAiY29t
LmFwcGxlLmxzZC5vcGVuIl9zLAorICAgICAgICAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCJfcywK
KyAgICAgICAgImNvbS5hcHBsZS5pY29uc2VydmljZXMiX3MsCisgICAgICAgICJjb20uYXBwbGUu
UG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiX3MsCisgICAgICAgICJjb20uYXBwbGUuZnJvbnRib2Fy
ZC5zeXN0ZW1hcHBzZXJ2aWNlcyJfcwogICAgIH0pOwogICAgIHJldHVybiBzZXJ2aWNlczsKIH0K
IAotc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkaWFnbm9zdGljU2VydmljZXMoKQorc3Rh
dGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBkaWFnbm9zdGljU2VydmljZXMoKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gc2Vydmlj
ZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPFN0cmluZz4gewotICAgICAgICAiY29tLmFw
cGxlLmRpYWdub3N0aWNkIiwKLSAgICAgICAgImNvbS5hcHBsZS5vc2FuYWx5dGljcy5vc2FuYWx5
dGljc2hlbHBlciIKKyAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRl
c3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CisgICAgICAgICJjb20uYXBwbGUuZGlhZ25v
c3RpY2QiX3MsCisgICAgICAgICJjb20uYXBwbGUub3NhbmFseXRpY3Mub3NhbmFseXRpY3NoZWxw
ZXIiX3MKICAgICB9KTsKICAgICByZXR1cm4gc2VydmljZXM7CiB9CiAKLXN0YXRpYyBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYWd4Q29tcGlsZXJDbGFzc2VzKCkKK3N0YXRpYyBjb25zdCBWZWN0b3I8
QVNDSUlMaXRlcmFsPiYgYWd4Q29tcGlsZXJDbGFzc2VzKCkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgIHN0YXRpYyBjb25zdCBhdXRvIGlva2l0Q2xhc3NlcyA9IG1ha2VOZXZl
ckRlc3Ryb3llZChWZWN0b3I8U3RyaW5nPiB7Ci0gICAgICAgICJBR1hDb21tYW5kUXVldWUiLAot
ICAgICAgICAiQUdYRGV2aWNlIiwKLSAgICAgICAgIkFHWFNoYXJlZFVzZXJDbGllbnQiLAotICAg
ICAgICAiSU9BY2NlbENvbnRleHQiLAotICAgICAgICAiSU9BY2NlbENvbnRleHQyIiwKLSAgICAg
ICAgIklPQWNjZWxEZXZpY2UiLAotICAgICAgICAiSU9BY2NlbERldmljZTIiLAotICAgICAgICAi
SU9BY2NlbFNoYXJlZFVzZXJDbGllbnQiLAotICAgICAgICAiSU9BY2NlbFNoYXJlZFVzZXJDbGll
bnQyIgotICAgICAgICAiSU9BY2NlbFN1Ym1pdHRlcjIiLAorICAgIHN0YXRpYyBjb25zdCBhdXRv
IGlva2l0Q2xhc3NlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7
CisgICAgICAgICJBR1hDb21tYW5kUXVldWUiX3MsCisgICAgICAgICJBR1hEZXZpY2UiX3MsCisg
ICAgICAgICJBR1hTaGFyZWRVc2VyQ2xpZW50Il9zLAorICAgICAgICAiSU9BY2NlbENvbnRleHQi
X3MsCisgICAgICAgICJJT0FjY2VsQ29udGV4dDIiX3MsCisgICAgICAgICJJT0FjY2VsRGV2aWNl
Il9zLAorICAgICAgICAiSU9BY2NlbERldmljZTIiX3MsCisgICAgICAgICJJT0FjY2VsU2hhcmVk
VXNlckNsaWVudCJfcywKKyAgICAgICAgIklPQWNjZWxTaGFyZWRVc2VyQ2xpZW50MiJfcywKKyAg
ICAgICAgIklPQWNjZWxTdWJtaXR0ZXIyIl9zLAogICAgIH0pOwogICAgIHJldHVybiBpb2tpdENs
YXNzZXM7CiB9CkBAIC0zNzUsNyArMzc1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKIAog
ICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhbmQgcmVsYXRlZCBwYXJhbWV0ZXIgd2hlbiA8cmRh
cjovL3Byb2JsZW0vMjk0NDgzNjg+IGlzIGZpeGVkLgogICAgIGlmIChpc1NhZmFyaSAmJiBtZWRp
YURldmljZXNFbmFibGVkICYmICFtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuY2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3NFbmFibGVkKCkgJiYgIW1fZGVmYXVsdFBhZ2VHcm91cC0+cHJl
ZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKCkpCi0gICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBs
ZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFu
ZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4
dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBwYXJhbWV0ZXJzLmF1ZGlv
Q2FwdHVyZUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAtMzkxLDcgKzM5MSw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29u
c3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChX
ZWJDb3JlOjpkZXZpY2VIYXNBR1hDb21waWxlclNlcnZpY2UoKSkgewogICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUu
QUdYQ29tcGlsZXJTZXJ2aWNlIiwgV1RGOjpudWxsb3B0LCBjb21waWxlclNlcnZpY2VFeHRlbnNp
b25IYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNo
TG9va3VwKCJjb20uYXBwbGUuQUdYQ29tcGlsZXJTZXJ2aWNlIl9zLCBXVEY6Om51bGxvcHQsIGNv
bXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgICAgIHBhcmFtZXRlcnMuY29tcGls
ZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShjb21waWxlclNlcnZpY2VFeHRlbnNp
b25IYW5kbGUpOwogICAgIH0KICNlbmRpZgpAQCAtNDEwLDMxICs0MTAsMzEgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoW2dldE5FRmlsdGVy
U291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0pIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIGhlbHBlckhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5laGVscGVyIiwgV1RGOjpudWxsb3B0LCBo
ZWxwZXJIYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JN
YWNoTG9va3VwKCJjb20uYXBwbGUubmVoZWxwZXIiX3MsIFdURjo6bnVsbG9wdCwgaGVscGVySGFu
ZGxlKTsKICAgICAgICAgcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoaGVscGVySGFuZGxlKTsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1hbmFn
ZXJIYW5kbGU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDwgMTAxNTAwCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyIiwgV1RGOjpudWxsb3B0LCBt
YW5hZ2VySGFuZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIiX3MsIFdURjo6bnVsbG9wdCwg
bWFuYWdlckhhbmRsZSk7CiAjZWxzZQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZp
bHRlciIsIFdURjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5h
Z2VyLmNvbnRlbnQtZmlsdGVyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5kbGUpOwogI2Vu
ZGlmCiAgICAgICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9
IFdURk1vdmUobWFuYWdlckhhbmRsZSk7CiAgICAgfQogICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFz
QmF0dGVyeSA9IHN5c3RlbUhhc0JhdHRlcnkoKTsKIAogICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBtYXBEQkhhbmRsZTsKLSAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmxzZC5tYXBkYiIsIFdURjo6bnVsbG9wdCwgbWFwREJI
YW5kbGUsIFNhbmRib3hFeHRlbnNpb246OkZsYWdzOjpOb1JlcG9ydCkpCisgICAgaWYgKFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5sc2QubWFw
ZGIiX3MsIFdURjo6bnVsbG9wdCwgbWFwREJIYW5kbGUsIFNhbmRib3hFeHRlbnNpb246OkZsYWdz
OjpOb1JlcG9ydCkpCiAgICAgICAgIHBhcmFtZXRlcnMubWFwREJFeHRlbnNpb25IYW5kbGUgPSBX
VEZNb3ZlKG1hcERCSGFuZGxlKTsKICNlbmRpZgogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBpZiAoW2dldFdlYkZpbHRlckV2YWx1YXRvckNsYXNzKCkgaXNNYW5hZ2VkU2Vzc2lvbl0pIHsK
ICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKLSAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnVpa2l0LnZp
ZXdzZXJ2aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIiwgV1RGOjpudWxs
b3B0LCBoYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JN
YWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRl
bnRGaWx0ZXIucmVtb3RlVUkiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKICAgICAgICAgcGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwog
CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiwgV1RG
OjpudWxsb3B0LCBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSkpCisgICAgICAgIGlm
IChTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUu
ZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyJfcywgV1RGOjpudWxsb3B0LCBmcm9udGJvYXJk
U2VydmljZUV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmZyb250Ym9h
cmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZSk7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI4MmViMjZjNTU5MzVj
MTU3ZGYzNzgzYmE2ZWQyMTA2MDJiYWM3ZjIuLjg2NjIzOGJhZmU4ZjA1YzE3YTIzZDZmOWNjOTlh
MjEwMTRkZDkzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmVuYWJsZVJlbW90ZUluc3BlY3RvcklmTmVlZGVkKCkKICAgICAgICAgcmV0dXJu
OwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7CiAgICAgYXV0byBhdWRpdFRv
a2VuID0gY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6
Om51bGxvcHQ7Ci0gICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiLCBhdWRpdFRva2VuLCBoYW5kbGUpKQorICAg
IGlmIChTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBw
bGUud2ViaW5zcGVjdG9yIl9zLCBhdWRpdFRva2VuLCBoYW5kbGUpKQogICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpFbmFibGVSZW1vdGVXZWJJbnNwZWN0b3IoaGFuZGxlKSwgMCk7
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggN2QzMDU4ZWM3NGE0Zjk5YmUxMTZjOTBjM2VmN2QyMjU3MmZlODZlZS4u
YTUyMzc0ZDc0NjRkMzM5MDdjNTEzOTFjMDgwNjBmY2QwNzg5NTMwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTEwMiwxMiArMTAy
LDEyIEBAIEdQVVByb2Nlc3NQcm94eSYgR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKQogICAg
ICAgICBib29sIG5lZWRzQ2FtZXJhU2FuZGJveEV4dGVuc2lvbiA9IHNob3VsZENyZWF0ZUNhbWVy
YVNhbmRib3hFeHRlbnNpb24oKTsKICAgICAgICAgYm9vbCBuZWVkc01pY3JvcGhvbmVTYW5kYm94
RXh0ZW5zaW9uID0gc2hvdWxkQ3JlYXRlTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24oKTsKICAg
ICAgICAgaWYgKG5lZWRzQ2FtZXJhU2FuZGJveEV4dGVuc2lvbikKLSAgICAgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53
ZWJraXQuY2FtZXJhIiwgcGFyYW1ldGVycy5jYW1lcmFTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsK
KyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRl
bnNpb24oImNvbS5hcHBsZS53ZWJraXQuY2FtZXJhIl9zLCBwYXJhbWV0ZXJzLmNhbWVyYVNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpOwogICAgICAgICBpZiAobmVlZHNNaWNyb3Bob25lU2FuZGJveEV4
dGVuc2lvbikKLSAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdl
bmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRlcnMu
bWljcm9waG9uZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgICAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtp
dC5taWNyb3Bob25lIl9zLCBwYXJhbWV0ZXJzLm1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIGlmIChuZWVkc0NhbWVyYVNhbmRib3hF
eHRlbnNpb24gfHwgbmVlZHNNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbikKLSAgICAgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50
Y2NkIiwgV1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJzLnRjY1NhbmRib3hFeHRlbnNpb25IYW5kbGUp
OworICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cCgiY29tLmFwcGxlLnRjY2QiX3MsIFdURjo6bnVsbG9wdCwgcGFyYW1ldGVycy50Y2NTYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogI2VuZGlmCiAgICAgICAgIHBhcmFtZXRlcnMucGFy
ZW50UElEID0gZ2V0Q3VycmVudFByb2Nlc3NJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCmluZGV4IDdmODI5ZTcxZjkxZWM3N2M2ZjI3MjM2NTk2ZTNhNGJiZGE2ZDk4N2Yu
LjE3YmE1OWRmNWFkMDE3MmViODZlY2QzZjMxYjQ1N2NmMjM1OGE0YjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTI1NSw3ICsyNTUsNyBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNl
ck1lZGlhUGVybQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAoIW1faGFzQ3JlYXRlZFNhbmRib3hFeHRlbnNp
b25Gb3JUQ0NEKSB7Ci0gICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCIsIG1fcGFnZS5wcm9jZXNzKCkuY29ubmVjdGlv
bigpLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZSk7CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywgbV9wYWdl
LnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlKTsKICAgICAg
ICAgICAgIG1faGFzQ3JlYXRlZFNhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gdHJ1ZTsKICAgICAg
ICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCA0MDhjOWY5NWMyZWJlNjE2OGMyMjc0YmQ2YzYxOGNkZTZlNzljZTYyLi5lYjE4YTUwY2FmZDNm
MzBiY2QwOTQ4NjQ2ODJmMDlmMTcwOWNmZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTY2NzIsOSArNjY3Miw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhEaXNwbGF5U3RyaW5nQW5kSWNvbihjb25zdCBW
ZWN0CiAKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZnJvbnRib2FyZFNlcnZpY2VzU2Fu
ZGJveEV4dGVuc2lvbiwgaWNvblNlcnZpY2VzU2FuZGJveEV4dGVuc2lvbjsKICNpZiBIQVZFKEZS
T05UQk9BUkRfU1lTVEVNX0FQUF9TRVJWSUNFUykKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2
aWNlcyIsIFdURjo6bnVsbG9wdCwgZnJvbnRib2FyZFNlcnZpY2VzU2FuZGJveEV4dGVuc2lvbik7
CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFw
cGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MsIFdURjo6bnVsbG9wdCwgZnJvbnRi
b2FyZFNlcnZpY2VzU2FuZGJveEV4dGVuc2lvbik7CiAjZW5kaWYKLSAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiwg
V1RGOjpudWxsb3B0LCBpY29uU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uKTsKKyAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuaWNvbnNlcnZp
Y2VzIl9zLCBXVEY6Om51bGxvcHQsIGljb25TZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24pOwogCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRo
RGlzcGxheVN0cmluZ0FuZEljb24oZmlsZVVSTHMsIGRpc3BsYXlTdHJpbmcsIGljb25EYXRhID8g
aWNvbkRhdGEtPmRhdGFSZWZlcmVuY2UoKSA6IElQQzo6RGF0YVJlZmVyZW5jZSgpLCBmcm9udGJv
YXJkU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uLCBpY29uU2VydmljZXNTYW5kYm94RXh0ZW5zaW9u
KSk7CiAKQEAgLTc4NTcsOSArNzg1Nyw5IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2Vi
UGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBp
ZiAobV9wcmVmZXJlbmNlcy0+YXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCkgJiYgIW1fcHJvY2Vz
cy0+aGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMoKSkg
ewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuZnJvbnRi
b2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyIsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKKyAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmZy
b250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKICAg
ICAgICAgcGFyYW1ldGVycy5mcm9udGJvYXJkRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5k
bGUpOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3Vw
KCJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiwgV1RGOjpudWxsb3B0LCBoYW5kbGUpOworICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUu
aWNvbnNlcnZpY2VzIl9zLCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CiAgICAgICAgIHBhcmFtZXRl
cnMuaWNvblNlcnZpY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwogICAgICAg
ICBtX3Byb2Nlc3MtPnNldEhhc0lzc3VlZEF0dGFjaG1lbnRFbGVtZW50UmVsYXRlZFNhbmRib3hF
eHRlbnNpb25zKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KaW5kZXggYWVhZTI5YTFhOTYwZDZiNGU1NGJhMzMwMTc5MDEwZjg2MmY2
MmMyYi4uMWFhYjhmNTk1ZGZlMmI3ZmFmNGUxZmQyZmE4YmVlNGI3MTUyYTkxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xNjQyLDgg
KzE2NDIsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNWaXNpYmxlQ2hhbmdlZChib29sIGlzVmlz
aWJsZSkKIHZvaWQgV2ViUGFnZVByb3h5OjpncmFudEFjY2Vzc1RvQXNzZXRTZXJ2aWNlcygpCiB7
CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1vYmlsZUFzc2V0SGFuZGxlLCBtb2JpbGVB
c3NldEhhbmRsZVYyOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiLCBXVEY6Om51bGxvcHQsIG1vYmlsZUFzc2V0
SGFuZGxlKTsKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3Vw
KCJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiwgV1RGOjpudWxsb3B0LCBtb2JpbGVBc3NldEhh
bmRsZVYyKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3Vw
KCJjb20uYXBwbGUubW9iaWxlYXNzZXRkIl9zLCBXVEY6Om51bGxvcHQsIG1vYmlsZUFzc2V0SGFu
ZGxlKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIl9zLCBXVEY6Om51bGxvcHQsIG1vYmlsZUFzc2V0SGFu
ZGxlVjIpOwogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHcmFudEFj
Y2Vzc1RvQXNzZXRTZXJ2aWNlcyhtb2JpbGVBc3NldEhhbmRsZSwgbW9iaWxlQXNzZXRIYW5kbGVW
MiksIDApOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402312</attachid>
            <date>2020-06-19 13:11:04 -0700</date>
            <delta_ts>2020-06-19 13:55:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213400-20200619131103.patch</filename>
            <type>text/plain</type>
            <size>32253</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU4MTMyNDhmMWNjMGZiNjFh
NThkZGE4MTc1YTExZDY2ZmIyMDZjZDYuLmNiYTZlMTEzYWJhZDUyZjY2OTk3MTQ1OTE0ZTA3YTMy
ZjM0MDdkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDYtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUg
Zm9yIFNhbmRib3hFeHRlbnNpb24gZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUgZm9yIFNhbmRib3hF
eHRlbnNpb24gZnVuY3Rpb25zLiBGdW5jdGlvbnMgbGlrZSBjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCkgLyBjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKCkKKyAgICAgICAgZG9u
J3QgbmVlZCB0byB0YWtlIGluIFN0cmluZ3MsIEFTQ0lJTGl0ZXJhbCBpcyBlbm91Z2guCisKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlUmVhZE9ubHlIYW5kbGVzRm9yRmlsZXMpOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9u
KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZXNGb3JNYWNoTG9va3VwKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyk6CisgICAg
ICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bWVkaWFSZWxhdGVk
TWFjaFNlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6bm9uQnJvd3NlclNlcnZpY2VzKToKKyAg
ICAgICAgKFdlYktpdDo6ZGlhZ25vc3RpY1NlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6YWd4
Q29tcGlsZXJDbGFzc2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpl
bmFibGVSZW1vdGVJbnNwZWN0b3JJZk5lZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNp
bmdsZXRvbik6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoRGlzcGxheVN0cmluZ0FuZEljb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Z3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMpOgorCiAyMDIwLTA2LTE5ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IE1ha2Ug
aXNvbGF0ZWQgdHJlZSBlbmFibGVtZW50IHN0YXR1cyBkZXBlbmRlbnQgb24gY2xpZW50IHByZWZl
cmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRl
bnNpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNp
b25Db2NvYS5tbQppbmRleCBhYmZmMTIwMGZlODI0MTEwZWYxOGQ4OTBmYmNhMmQ0YzZjNTE1ZjZl
Li42ODk4MjE5MWFiM2I0N2FiY2NiYjJiYzZhOGM0YTNhMDhlNmMzZDBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCkBAIC05
NywxMiArOTcsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVu
c2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQURfV1JJVEUsIHBhdGgsIGV4dGVuc2lvbkZs
YWdzKTsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpNYWNoOgogICAgICAg
ICAgICAgaWYgKCFhdWRpdFRva2VuKQotICAgICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4
dGVuc2lvbl9pc3N1ZV9tYWNoKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIl9zLCBw
YXRoLCBleHRlbnNpb25GbGFncyk7Ci0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNp
b25faXNzdWVfbWFjaF90b19wcm9jZXNzKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNo
Il9zLCBwYXRoLCBleHRlbnNpb25GbGFncywgKmF1ZGl0VG9rZW4pOworICAgICAgICAgICAgICAg
IHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9tYWNoKCJjb20uYXBwbGUud2Via2l0LmV4
dGVuc2lvbi5tYWNoIiwgcGF0aCwgZXh0ZW5zaW9uRmxhZ3MpOworICAgICAgICAgICAgcmV0dXJu
IHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX21hY2hfdG9fcHJvY2VzcygiY29tLmFwcGxlLndlYmtp
dC5leHRlbnNpb24ubWFjaCIsIHBhdGgsIGV4dGVuc2lvbkZsYWdzLCAqYXVkaXRUb2tlbik7CiAg
ICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6SU9LaXQ6CiAgICAgICAgICAgICBp
ZiAoIWF1ZGl0VG9rZW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9u
X2lzc3VlX2lva2l0X3JlZ2lzdHJ5X2VudHJ5X2NsYXNzKCJjb20uYXBwbGUud2Via2l0LmV4dGVu
c2lvbi5pb2tpdCJfcywgcGF0aCwgZXh0ZW5zaW9uRmxhZ3MpOwotICAgICAgICAgICAgcmV0dXJu
IHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2lva2l0X3JlZ2lzdHJ5X2VudHJ5X2NsYXNzX3RvX3By
b2Nlc3MoImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLmlva2l0Il9zLCBwYXRoLCBleHRlbnNp
b25GbGFncywgKmF1ZGl0VG9rZW4pOworICAgICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4
dGVuc2lvbl9pc3N1ZV9pb2tpdF9yZWdpc3RyeV9lbnRyeV9jbGFzcygiY29tLmFwcGxlLndlYmtp
dC5leHRlbnNpb24uaW9raXQiLCBwYXRoLCBleHRlbnNpb25GbGFncyk7CisgICAgICAgICAgICBy
ZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfaW9raXRfcmVnaXN0cnlfZW50cnlfY2xhc3Nf
dG9fcHJvY2VzcygiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24uaW9raXQiLCBwYXRoLCBleHRl
bnNpb25GbGFncywgKmF1ZGl0VG9rZW4pOwogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246
OlR5cGU6OkdlbmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNz
dWVfZ2VuZXJpYyhwYXRoLCBleHRlbnNpb25GbGFncyk7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4
dGVuc2lvbjo6VHlwZTo6UmVhZEJ5UHJvY2VzczoKQEAgLTI4MSw3ICsyODEsOCBAQCBib29sIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUgdHlw
ZSwgSGFuZGxlJiBoYW5kbAogICAgIHJldHVybiBjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5n
UGF0aChyZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNpb24ocGF0aCksIHR5cGUsIGhhbmRsZSk7
CiB9CiAKLXN0YXRpYyBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBjcmVhdGVIYW5kbGVz
Rm9yUmVzb3VyY2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXNvdXJjZXMsIEZ1bmN0aW9uPGJv
b2woY29uc3QgU3RyaW5nJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpPiYmIGNy
ZWF0ZUZ1bmN0aW9uKQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0aWMgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhjb25zdCBWZWN0b3I8
VD4mIHJlc291cmNlcywgRnVuY3Rpb248Ym9vbChjb25zdCBUJiwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiBoYW5kbGUpPiYmIGNyZWF0ZUZ1bmN0aW9uKQogewogICAgIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZUFycmF5IGhhbmRsZUFycmF5OwogCkBAIC0yOTgsMTggKzI5OSwxOCBAQCBzdGF0
aWMgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvclJlc291cmNl
cyhjb25zdCBWZWN0b3I8U3RyaQogICAgIHJldHVybiBoYW5kbGVBcnJheTsKIH0KIAotU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlUmVhZE9ubHlI
YW5kbGVzRm9yRmlsZXMoY29uc3QgU3RyaW5nJiBsb2dMYWJlbCwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhdGhzKQorU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlUmVhZE9ubHlIYW5kbGVzRm9yRmlsZXMoQVNDSUlMaXRlcmFsIGxvZ0xhYmVsLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNG
b3JSZXNvdXJjZXMocGF0aHMsIFsmbG9nTGFiZWxdIChjb25zdCBTdHJpbmcmIHBhdGgsIEhhbmRs
ZSYgaGFuZGxlKSB7CisgICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNGb3JSZXNvdXJjZXMocGF0aHMs
IEZ1bmN0aW9uPGJvb2woY29uc3QgU3RyaW5nJiwgSGFuZGxlJik+KFsmbG9nTGFiZWxdIChjb25z
dCBTdHJpbmcmIHBhdGgsIEhhbmRsZSYgaGFuZGxlKSB7CiAgICAgICAgIGlmICghU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRP
bmx5LCBoYW5kbGUpKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGNhbiBsZWdpdGltYXRlbHkgZmFp
bCBpZiBhIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmaWxlIGlzIGRlbGV0ZWQgYWZ0ZXIgdGhl
IGZpbGUgd2FzIGNob3Nlbi4KICAgICAgICAgICAgIC8vIFdlIGFsc28gaGF2ZSByZXBvcnRzIG9m
IGNhc2VzIHdoZXJlIHRoaXMgbGlrZWx5IGZhaWxzIGZvciBzb21lIHVua25vd24gcmVhc29uLCA8
cmRhcjovL3Byb2JsZW0vMTAxNTY3MTA+LgotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczog
Y291bGQgbm90IGNyZWF0ZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGZvciAnJXMnXG4iLCBsb2dMYWJl
bC51dGY4KCkuZGF0YSgpLCBwYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgV1RGTG9n
QWx3YXlzKCIlczogY291bGQgbm90IGNyZWF0ZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGZvciAnJXMn
XG4iLCBsb2dMYWJlbC5jaGFyYWN0ZXJzKCksIHBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9KTsKKyAgICB9KSk7CiB9CiAKIGJv
b2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNv
bnN0IFN0cmluZyYgcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCkBAIC0z
NTAsNDEgKzM1MSw0MSBAQCBTdHJpbmcgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
VGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgVHlwZQogICAgIHJldHVybiBTdHJp
bmcocGF0aC5kYXRhKCkpOwogfQogCi1ib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25DbGFzcywgSGFuZGxl
JiBoYW5kbGUpCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNF
eHRlbnNpb24oQVNDSUlMaXRlcmFsIGV4dGVuc2lvbkNsYXNzLCBIYW5kbGUmIGhhbmRsZSkKIHsK
ICAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pOwogCi0gICAgaGFuZGxlLm1f
c2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoZXh0ZW5zaW9u
Q2xhc3MudXRmOCgpLmRhdGEoKSwgVHlwZTo6R2VuZXJpYyk7CisgICAgaGFuZGxlLm1fc2FuZGJv
eEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoZXh0ZW5zaW9uQ2xhc3Mu
Y2hhcmFjdGVycygpLCBUeXBlOjpHZW5lcmljKTsKICAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hF
eHRlbnNpb24pIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRlIGEgJyVz
JyBzYW5kYm94IGV4dGVuc2lvbiIsIGV4dGVuc2lvbkNsYXNzLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBjcmVhdGUgYSAnJXMnIHNhbmRib3ggZXh0ZW5z
aW9uIiwgZXh0ZW5zaW9uQ2xhc3MuY2hhcmFjdGVycygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKGNvbnN0IFN0cmluZyYgc2VydmljZSwgT3B0
aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbiwgSGFuZGxlJiBoYW5kbGUsIE9wdGlvblNl
dDxGbGFncz4gZmxhZ3MpCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoQVNDSUlMaXRlcmFsIHNlcnZpY2UsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1
ZGl0VG9rZW4sIEhhbmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQogewogICAg
IEFTU0VSVCghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbik7CiAgICAgCi0gICAgaGFuZGxlLm1f
c2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2VydmljZS51
dGY4KCkuZGF0YSgpLCBUeXBlOjpNYWNoLCBhdWRpdFRva2VuLCBmbGFncyk7CisgICAgaGFuZGxl
Lm1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2Vydmlj
ZS5jaGFyYWN0ZXJzKCksIFR5cGU6Ok1hY2gsIGF1ZGl0VG9rZW4sIGZsYWdzKTsKICAgICBpZiAo
IWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3Vs
ZCBub3QgY3JlYXRlIGEgJyVzJyBzYW5kYm94IGV4dGVuc2lvbiIsIHNlcnZpY2UudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBhICclcycgc2Fu
ZGJveCBleHRlbnNpb24iLCBzZXJ2aWNlLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVNhbmRib3hFeHRlbnNp
b246OkhhbmRsZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9v
a3VwKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5f
dD4gYXVkaXRUb2tlbiwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKK1NhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3Vw
KGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9r
ZW5fdD4gYXVkaXRUb2tlbiwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKIHsKLSAgICByZXR1cm4g
Y3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhzZXJ2aWNlcywgW2F1ZGl0VG9rZW4sIGZsYWdzXSAo
Y29uc3QgU3RyaW5nJiBzZXJ2aWNlLCBIYW5kbGUmIGhhbmRsZSkgeworICAgIHJldHVybiBjcmVh
dGVIYW5kbGVzRm9yUmVzb3VyY2VzKHNlcnZpY2VzLCBGdW5jdGlvbjxib29sKGNvbnN0IEFTQ0lJ
TGl0ZXJhbCYsIEhhbmRsZSYpPihbYXVkaXRUb2tlbiwgZmxhZ3NdIChjb25zdCBBU0NJSUxpdGVy
YWwmIHNlcnZpY2UsIEhhbmRsZSYgaGFuZGxlKSB7CiAgICAgICAgIGlmICghU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlLCBhdWRpdFRva2VuLCBoYW5k
bGUsIGZsYWdzKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fSk7CisgICAgfSkpOwogfQogCiBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRCeUF1ZGl0VG9rZW4oY29uc3QgU3RyaW5nJiBwYXRoLCBhdWRpdF90b2tlbl90IGF1ZGl0
VG9rZW4sIEhhbmRsZSYgaGFuZGxlKQpAQCAtNDAwLDI4ICs0MDEsMjggQEAgYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRpdFRva2VuKGNvbnN0IFN0cmluZyYg
cGF0aCwgYXVkaXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaW9LaXRD
bGFzcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbiwgSGFuZGxlJiBoYW5kbGUs
IE9wdGlvblNldDxGbGFncz4gZmxhZ3MpCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvcklPS2l0Q2xhc3NFeHRlbnNpb24oQVNDSUlMaXRlcmFsIGlvS2l0Q2xhc3MsIE9wdGlv
bmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIEhhbmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8
RmxhZ3M+IGZsYWdzKQogewogICAgIEFTU0VSVCghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbik7
CiAKLSAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6
OmNyZWF0ZShpb0tpdENsYXNzLnV0ZjgoKS5kYXRhKCksIFR5cGU6OklPS2l0LCBhdWRpdFRva2Vu
KTsKKyAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6
OmNyZWF0ZShpb0tpdENsYXNzLmNoYXJhY3RlcnMoKSwgVHlwZTo6SU9LaXQsIGF1ZGl0VG9rZW4p
OwogICAgIGlmICghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbikgewotICAgICAgICBMT0dfRVJS
T1IoIkNvdWxkIG5vdCBjcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgJyVzJyIsIGlvS2l0
Q2xhc3MudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0
ZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGZvciAnJXMnIiwgaW9LaXRDbGFzcy5jaGFyYWN0ZXJzKCkp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LVNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgaW9raXRD
bGFzc2VzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBPcHRpb25TZXQ8Rmxh
Z3M+IGZsYWdzKQorU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlc0ZvcklPS2l0Q2xhc3NFeHRlbnNpb25zKGNvbnN0IFZlY3RvcjxBU0NJ
SUxpdGVyYWw+JiBpb2tpdENsYXNzZXMsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9r
ZW4sIE9wdGlvblNldDxGbGFncz4gZmxhZ3MpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNG
b3JSZXNvdXJjZXMoaW9raXRDbGFzc2VzLCBbYXVkaXRUb2tlbiwgZmxhZ3NdIChjb25zdCBTdHJp
bmcmIGlva2l0Q2xhc3MsIEhhbmRsZSYgaGFuZGxlKSB7CisgICAgcmV0dXJuIGNyZWF0ZUhhbmRs
ZXNGb3JSZXNvdXJjZXMoaW9raXRDbGFzc2VzLCBGdW5jdGlvbjxib29sKGNvbnN0IEFTQ0lJTGl0
ZXJhbCYsIEhhbmRsZSYpPihbYXVkaXRUb2tlbiwgZmxhZ3NdIChjb25zdCBBU0NJSUxpdGVyYWwm
IGlva2l0Q2xhc3MsIEhhbmRsZSYgaGFuZGxlKSB7CiAgICAgICAgIGlmICghU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbihpb2tpdENsYXNzLCBhdWRp
dFRva2VuLCBoYW5kbGUsIGZsYWdzKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfSk7CisgICAgfSkpOwogfQogCiBTYW5kYm94RXh0ZW5zaW9uOjpTYW5kYm94
RXh0ZW5zaW9uKGNvbnN0IEhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJv
eEV4dGVuc2lvbi5oCmluZGV4IGViMzk0YWU2MTU2OGFiY2ViZDIyYjMxNzU5YzkxMmNjMGJkYjk2
YjAuLjEyOGVmNzJhYzYxYjAwMjY2ZDBiMTYzOTdlYWM1NTk1ZTBhN2I3NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKQEAgLTExMSwxNyArMTExLDE3IEBAIHB1Ymxp
YzoKICAgICAKICAgICBzdGF0aWMgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGNyZWF0ZShIYW5k
bGUmJik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlKGNvbnN0IFN0cmluZyYgcGF0aCwg
VHlwZSwgSGFuZGxlJik7Ci0gICAgc3RhdGljIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5
IGNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKGNvbnN0IFN0cmluZyYgbG9nTGFiZWwsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocyk7CisgICAgc3RhdGljIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IGNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKEFTQ0lJTGl0ZXJhbCBs
b2dMYWJlbCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKTsKICAgICBzdGF0aWMgYm9vbCBj
cmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUs
IEhhbmRsZSYpOwogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVj
dG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIEhhbmRsZSYpOyAvLyBXaWxsIGF0dGVtcHQgdG8gY3Jl
YXRlIHRoZSBkaXJlY3RvcnkuCiAgICAgc3RhdGljIFN0cmluZyBjcmVhdGVIYW5kbGVGb3JUZW1w
b3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlLCBIYW5kbGUmKTsKLSAgICBzdGF0
aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0
ZW5zaW9uQ2xhc3MsIEhhbmRsZSYpOworICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvckdl
bmVyaWNFeHRlbnNpb24oQVNDSUlMaXRlcmFsIGV4dGVuc2lvbkNsYXNzLCBIYW5kbGUmKTsKICNp
ZiBIQVZFKEFVRElUX1RPS0VOKQotICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoY29uc3QgU3RyaW5nJiBzZXJ2aWNlLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgSGFu
ZGxlJiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKLSAgICBzdGF0aWMgSGFu
ZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHNlcnZpY2VzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZs
YWdzOjpEZWZhdWx0KTsKKyAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3Vw
KEFTQ0lJTGl0ZXJhbCBzZXJ2aWNlLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgSGFuZGxlJiwg
T3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKKyAgICBzdGF0aWMgSGFuZGxlQXJy
YXkgY3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4m
IHNlcnZpY2VzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZs
YWdzOjpEZWZhdWx0KTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRp
dFRva2VuKGNvbnN0IFN0cmluZyYgcGF0aCwgYXVkaXRfdG9rZW5fdCwgSGFuZGxlJik7Ci0gICAg
c3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbihjb25zdCBTdHJp
bmcmIGlva2l0Q2xhc3MsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+LCBIYW5kbGUmLCBPcHRpb25T
ZXQ8RmxhZ3M+ID0gRmxhZ3M6OkRlZmF1bHQpOwotICAgIHN0YXRpYyBIYW5kbGVBcnJheSBjcmVh
dGVIYW5kbGVzRm9ySU9LaXRDbGFzc0V4dGVuc2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGlv
a2l0Q2xhc3NlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4sIE9wdGlvblNldDxGbGFncz4gPSBG
bGFnczo6RGVmYXVsdCk7CisgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFz
c0V4dGVuc2lvbihBU0NJSUxpdGVyYWwgaW9raXRDbGFzcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5f
dD4sIEhhbmRsZSYsIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7CisgICAgc3Rh
dGljIEhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyhjb25z
dCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgaW9raXRDbGFzc2VzLCBPcHRpb25hbDxhdWRpdF90b2tl
bl90PiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKICNlbmRpZgogICAgIH5T
YW5kYm94RXh0ZW5zaW9uKCk7CiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBpbmxpbmUgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlUmVhZE9ubHlIYW5k
bGVzRm9yRgogaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91
dFJlc29sdmluZ1BhdGgoY29uc3QgU3RyaW5nJiwgVHlwZSwgSGFuZGxlJikgeyByZXR1cm4gdHJ1
ZTsgfQogaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdy
aXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KIGlu
bGluZSBTdHJpbmcgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5Rmls
ZShjb25zdCBTdHJpbmcmIC8qcHJlZml4Ki8sIFR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5n
KCk7fQotaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJp
Y0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIC8qZXh0ZW5zaW9uQ2xhc3MqLywgSGFuZGxlJikgeyBy
ZXR1cm4gdHJ1ZTsgfQoraW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yR2VuZXJpY0V4dGVuc2lvbihBU0NJSUxpdGVyYWwgLypleHRlbnNpb25DbGFzcyovLCBIYW5k
bGUmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6flNhbmRib3hF
eHRlbnNpb24oKSB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OnJldm9rZSgpIHsg
cmV0dXJuIHRydWU7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWUoKSB7
IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCAwMjFiYWNiN2I5NDA0NjJmYmY1ODIwYmFhNTUz
OTVhOWVkNWJiMTQyLi5jN2JmMTFlMzFmY2ZlNDJhOGZhM2JmYmFhNTIxYzMwMzkxN2U1ODBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0KQEAgLTIxMiw4MCArMjEyLDgwIEBAIHN0YXRpYyBib29sIGlzSW50ZXJuYWxJbnN0
YWxsKCkKICNlbmRpZgogCiAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBi
ZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgotc3RhdGljIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBtZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMoKQorc3RhdGljIGNvbnN0
IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBtZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMoKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gc2VydmljZXMg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPFN0cmluZz4gewotICAgICAgICAiY29tLmFwcGxl
LmF1ZGlvLkF1ZGlvQ29tcG9uZW50UHJlZnMiLCAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9u
ZW50UmVnaXN0cmFyIiwKLSAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb1F1ZXVlU2VydmVy
IiwgImNvbS5hcHBsZS5hdWRpby50b29sYm94LnJlcG9ydGluZy5zZXJ2aWNlIiwgImNvbS5hcHBs
ZS5jb3JlbWVkaWEuZW5kcG9pbnQueHBjIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEu
cm91dGVkaXNjb3ZlcmVyLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLnJvdXRpbmdjb250ZXh0
LnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnZvbHVtZWNvbnRyb2xsZXIueHBj
IiwgImNvbS5hcHBsZS5hY2Nlc3NpYmlsaXR5Lm1lZGlhYWNjZXNzaWJpbGl0eWQiLAotICAgICAg
ICAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiLAorICAgIHN0YXRpYyBjb25zdCBhdXRvIHNl
cnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxpdGVyYWw+IHsKKyAgICAg
ICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFByZWZzIl9zLCAiY29tLmFwcGxlLmF1
ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIl9zLAorICAgICAgICAiY29tLmFwcGxlLmF1ZGlv
LkF1ZGlvUXVldWVTZXJ2ZXIiX3MsICJjb20uYXBwbGUuYXVkaW8udG9vbGJveC5yZXBvcnRpbmcu
c2VydmljZSJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnQueHBjIl9zLAorICAgICAg
ICAiY29tLmFwcGxlLmNvcmVtZWRpYS5yb3V0ZWRpc2NvdmVyZXIueHBjIl9zLCAiY29tLmFwcGxl
LmNvcmVtZWRpYS5yb3V0aW5nY29udGV4dC54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29y
ZW1lZGlhLnZvbHVtZWNvbnRyb2xsZXIueHBjIl9zLCAiY29tLmFwcGxlLmFjY2Vzc2liaWxpdHku
bWVkaWFhY2Nlc3NpYmlsaXR5ZCJfcywKKyAgICAgICAgImNvbS5hcHBsZS5tZWRpYXJlbW90ZWQu
eHBjIl9zLAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgICJjb20uYXBwbGUuYXVk
aW8uQXVkaW9TZXNzaW9uIiwgImNvbS5hcHBsZS5NZWRpYVBsYXllci5SZW1vdGVQbGF5ZXJTZXJ2
aWNlIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuYWRtaW4iLAotICAgICAgICAiY29t
LmFwcGxlLmNvcmVtZWRpYS5hc3NldC54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5hc3NldGlt
YWdlZ2VuZXJhdG9yLnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmF1ZGlvZGV2
aWNlY2xvY2sueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuYXVkaW9wcm9jZXNzaW5ndGFwLnhw
YyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmNhcHR1cmVzZXNzaW9uIiwgImNvbS5h
cHBsZS5jb3JlbWVkaWEuY2FwdHVyZXNvdXJjZSIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1l
ZGlhLmNvbXByZXNzaW9uc2Vzc2lvbiIsICJjb20uYXBwbGUuY29yZW1lZGlhLmNwZS54cGMiLAot
ICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5jcGVwcm90ZWN0b3IueHBjIiwgImNvbS5hcHBs
ZS5jb3JlbWVkaWEuY3VzdG9tdXJsbG9hZGVyLnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29y
ZW1lZGlhLmRlY29tcHJlc3Npb25zZXNzaW9uIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuZmlnY29u
dGVudGtleXNlc3Npb24ueHBjIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuZmlnY3Bl
Y3J5cHRvciIsICJjb20uYXBwbGUuY29yZW1lZGlhLmZvcm1hdHJlYWRlci54cGMiLAotICAgICAg
ICAiY29tLmFwcGxlLmNvcmVtZWRpYS5wbGF5ZXIueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEu
cmVtYWtlciIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnJlbW90ZXF1ZXVlIiwgImNv
bS5hcHBsZS5jb3JlbWVkaWEucm91dGluZ3Nlc3Npb25tYW5hZ2VyLnhwYyIsCi0gICAgICAgICJj
b20uYXBwbGUuY29yZW1lZGlhLnNhbXBsZWJ1ZmZlcmF1ZGlvcmVuZGVyZXIueHBjIiwgImNvbS5h
cHBsZS5jb3JlbWVkaWEuc2FtcGxlYnVmZmVycmVuZGVyc3luY2hyb25pemVyLnhwYyIsCi0gICAg
ICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnNhbmRib3hzZXJ2ZXIueHBjIiwgImNvbS5hcHBsZS5j
b3JlbWVkaWEuc3RzIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuc3lzdGVtY29udHJv
bGxlci54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb3F1ZXVlIiwKLSAgICAgICAgImNv
bS5hcHBsZS5jb3JlbWVkaWEudmlzdWFsY29udGV4dC54cGMiLCAiY29tLmFwcGxlLmFpcnBsYXku
YXBzeW5jY29udHJvbGxlci54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmF1ZGlvLkFVUmVtb3Rl
SU9TZXJ2ZXIiCisgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9TZXNzaW9uIl9zLCAiY29t
LmFwcGxlLk1lZGlhUGxheWVyLlJlbW90ZVBsYXllclNlcnZpY2UiX3MsCisgICAgICAgICJjb20u
YXBwbGUuY29yZW1lZGlhLmFkbWluIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5h
c3NldC54cGMiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLmFzc2V0aW1hZ2VnZW5lcmF0b3IueHBj
Il9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5hdWRpb2RldmljZWNsb2NrLnhwYyJf
cywgImNvbS5hcHBsZS5jb3JlbWVkaWEuYXVkaW9wcm9jZXNzaW5ndGFwLnhwYyJfcywKKyAgICAg
ICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY2FwdHVyZXNlc3Npb24iX3MsICJjb20uYXBwbGUuY29y
ZW1lZGlhLmNhcHR1cmVzb3VyY2UiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmNv
bXByZXNzaW9uc2Vzc2lvbiJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuY3BlLnhwYyJfcywKKyAg
ICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY3BlcHJvdGVjdG9yLnhwYyJfcywgImNvbS5hcHBs
ZS5jb3JlbWVkaWEuY3VzdG9tdXJsbG9hZGVyLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5j
b3JlbWVkaWEuZGVjb21wcmVzc2lvbnNlc3Npb24iX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLmZp
Z2NvbnRlbnRrZXlzZXNzaW9uLnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEu
ZmlnY3BlY3J5cHRvciJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuZm9ybWF0cmVhZGVyLnhwYyJf
cywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucGxheWVyLnhwYyJfcywgImNvbS5hcHBs
ZS5jb3JlbWVkaWEucmVtYWtlciJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucmVt
b3RlcXVldWUiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLnJvdXRpbmdzZXNzaW9ubWFuYWdlci54
cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnNhbXBsZWJ1ZmZlcmF1ZGlvcmVu
ZGVyZXIueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5zYW1wbGVidWZmZXJyZW5kZXJzeW5j
aHJvbml6ZXIueHBjIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5zYW5kYm94c2Vy
dmVyLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuc3RzIl9zLAorICAgICAgICAiY29tLmFw
cGxlLmNvcmVtZWRpYS5zeXN0ZW1jb250cm9sbGVyLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVk
aWEudmlkZW9xdWV1ZSJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlzdWFsY29u
dGV4dC54cGMiX3MsICJjb20uYXBwbGUuYWlycGxheS5hcHN5bmNjb250cm9sbGVyLnhwYyJfcywK
KyAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BVVJlbW90ZUlPU2VydmVyIl9zCiAjZW5kaWYKICNp
ZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgICAgICAiY29tLmFw
cGxlLmNvcmVtZWRpYS5lbmRwb2ludHN0cmVhbS54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5l
bmRwb2ludHBsYXliYWNrc2Vzc2lvbi54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRp
YS5lbmRwb2ludHJlbW90ZWNvbnRyb2xzZXNzaW9uLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlh
LnZpZGVvZGVjb2RlciIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvZW5jb2Rl
ciIsICJjb20uYXBwbGUuQmx1ZXRvb3RoU2VydmljZXMiCisgICAgICAgICJjb20uYXBwbGUuY29y
ZW1lZGlhLmVuZHBvaW50c3RyZWFtLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9p
bnRwbGF5YmFja3Nlc3Npb24ueHBjIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5l
bmRwb2ludHJlbW90ZWNvbnRyb2xzZXNzaW9uLnhwYyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEu
dmlkZW9kZWNvZGVyIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb2VuY29k
ZXIiX3MsICJjb20uYXBwbGUuQmx1ZXRvb3RoU2VydmljZXMiX3MKICNlbmRpZgogICAgIH0pOwog
ICAgIHJldHVybiBzZXJ2aWNlczsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0
aWMgY29uc3QgVmVjdG9yPFN0cmluZz4mIG5vbkJyb3dzZXJTZXJ2aWNlcygpCitzdGF0aWMgY29u
c3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIG5vbkJyb3dzZXJTZXJ2aWNlcygpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1h
a2VOZXZlckRlc3Ryb3llZChWZWN0b3I8U3RyaW5nPiB7Ci0gICAgICAgICJjb20uYXBwbGUubHNk
Lm9wZW4iLAotICAgICAgICAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIsCi0gICAgICAgICJjb20u
YXBwbGUuaWNvbnNlcnZpY2VzIiwKLSAgICAgICAgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQu
Y29udHJvbCIsCi0gICAgICAgICJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2aWNl
cyIKKyAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChW
ZWN0b3I8QVNDSUlMaXRlcmFsPiB7CisgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iX3MsCisg
ICAgICAgICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIl9zLAorICAgICAgICAiY29tLmFwcGxlLmlj
b25zZXJ2aWNlcyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJv
bCJfcywKKyAgICAgICAgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9z
CiAgICAgfSk7CiAgICAgcmV0dXJuIHNlcnZpY2VzOwogfQogCi1zdGF0aWMgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRpYWdub3N0aWNTZXJ2aWNlcygpCitzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJ
TGl0ZXJhbD4mIGRpYWdub3N0aWNTZXJ2aWNlcygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3ll
ZChWZWN0b3I8U3RyaW5nPiB7Ci0gICAgICAgICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiLAotICAg
ICAgICAiY29tLmFwcGxlLm9zYW5hbHl0aWNzLm9zYW5hbHl0aWNzaGVscGVyIgorICAgIHN0YXRp
YyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxp
dGVyYWw+IHsKKyAgICAgICAgImNvbS5hcHBsZS5kaWFnbm9zdGljZCJfcywKKyAgICAgICAgImNv
bS5hcHBsZS5vc2FuYWx5dGljcy5vc2FuYWx5dGljc2hlbHBlciJfcwogICAgIH0pOwogICAgIHJl
dHVybiBzZXJ2aWNlczsKIH0KIAotc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhZ3hDb21w
aWxlckNsYXNzZXMoKQorc3RhdGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBhZ3hDb21w
aWxlckNsYXNzZXMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc3RhdGlj
IGNvbnN0IGF1dG8gaW9raXRDbGFzc2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxTdHJp
bmc+IHsKLSAgICAgICAgIkFHWENvbW1hbmRRdWV1ZSIsCi0gICAgICAgICJBR1hEZXZpY2UiLAot
ICAgICAgICAiQUdYU2hhcmVkVXNlckNsaWVudCIsCi0gICAgICAgICJJT0FjY2VsQ29udGV4dCIs
Ci0gICAgICAgICJJT0FjY2VsQ29udGV4dDIiLAotICAgICAgICAiSU9BY2NlbERldmljZSIsCi0g
ICAgICAgICJJT0FjY2VsRGV2aWNlMiIsCi0gICAgICAgICJJT0FjY2VsU2hhcmVkVXNlckNsaWVu
dCIsCi0gICAgICAgICJJT0FjY2VsU2hhcmVkVXNlckNsaWVudDIiCi0gICAgICAgICJJT0FjY2Vs
U3VibWl0dGVyMiIsCisgICAgc3RhdGljIGNvbnN0IGF1dG8gaW9raXRDbGFzc2VzID0gbWFrZU5l
dmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxpdGVyYWw+IHsKKyAgICAgICAgIkFHWENvbW1hbmRR
dWV1ZSJfcywKKyAgICAgICAgIkFHWERldmljZSJfcywKKyAgICAgICAgIkFHWFNoYXJlZFVzZXJD
bGllbnQiX3MsCisgICAgICAgICJJT0FjY2VsQ29udGV4dCJfcywKKyAgICAgICAgIklPQWNjZWxD
b250ZXh0MiJfcywKKyAgICAgICAgIklPQWNjZWxEZXZpY2UiX3MsCisgICAgICAgICJJT0FjY2Vs
RGV2aWNlMiJfcywKKyAgICAgICAgIklPQWNjZWxTaGFyZWRVc2VyQ2xpZW50Il9zLAorICAgICAg
ICAiSU9BY2NlbFNoYXJlZFVzZXJDbGllbnQyIl9zLAorICAgICAgICAiSU9BY2NlbFN1Ym1pdHRl
cjIiX3MsCiAgICAgfSk7CiAgICAgcmV0dXJuIGlva2l0Q2xhc3NlczsKIH0KQEAgLTM3NSw3ICsz
NzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIGFuZCByZWxhdGVkIHBhcmFtZXRlciB3aGVuIDxyZGFyOi8vcHJvYmxlbS8yOTQ0ODM2OD4g
aXMgZml4ZWQuCiAgICAgaWYgKGlzU2FmYXJpICYmIG1lZGlhRGV2aWNlc0VuYWJsZWQgJiYgIW1f
ZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0Vu
YWJsZWQoKSAmJiAhbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRp
b0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIiwg
cGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Vi
a2l0Lm1pY3JvcGhvbmUiX3MsIHBhcmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFuZGxl
KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECkBAIC0zOTEsNyArMzkxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKFdlYkNvcmU6OmRldmljZUhhc0FHWENv
bXBpbGVyU2VydmljZSgpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb21w
aWxlclNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5BR1hDb21waWxlclNlcnZpY2UiLCBX
VEY6Om51bGxvcHQsIGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5BR1hD
b21waWxlclNlcnZpY2UiX3MsIFdURjo6bnVsbG9wdCwgY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9u
SGFuZGxlKTsKICAgICAgICAgcGFyYW1ldGVycy5jb21waWxlclNlcnZpY2VFeHRlbnNpb25IYW5k
bGUgPSBXVEZNb3ZlKGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgfQogI2Vu
ZGlmCkBAIC00MTAsMzEgKzQxMCwzMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGlmIChbZ2V0TkVGaWx0ZXJTb3VyY2VDbGFzcygpIGZpbHRlclJl
cXVpcmVkXSkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGVscGVySGFuZGxl
OwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUubmVoZWxwZXIiLCBXVEY6Om51bGxvcHQsIGhlbHBlckhhbmRsZSk7CisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5u
ZWhlbHBlciJfcywgV1RGOjpudWxsb3B0LCBoZWxwZXJIYW5kbGUpOwogICAgICAgICBwYXJhbWV0
ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoZWxwZXJIYW5kbGUpOwogICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWFuYWdlckhhbmRsZTsKICNpZiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDAKLSAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxl
Lm5lc2Vzc2lvbm1hbmFnZXIiLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5kbGUpOworICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUu
bmVzZXNzaW9ubWFuYWdlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2VySGFuZGxlKTsKICNlbHNl
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNv
bS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIiwgV1RGOjpudWxsb3B0LCBt
YW5hZ2VySGFuZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiX3Ms
IFdURjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CiAjZW5kaWYKICAgICAgICAgcGFyYW1ldGVy
cy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShtYW5hZ2VySGFuZGxl
KTsKICAgICB9CiAgICAgcGFyYW1ldGVycy5zeXN0ZW1IYXNCYXR0ZXJ5ID0gc3lzdGVtSGFzQmF0
dGVyeSgpOwogCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1hcERCSGFuZGxlOwotICAg
IGlmIChTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBw
bGUubHNkLm1hcGRiIiwgV1RGOjpudWxsb3B0LCBtYXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lv
bjo6RmxhZ3M6Ok5vUmVwb3J0KSkKKyAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmxzZC5tYXBkYiJfcywgV1RGOjpudWxsb3B0LCBt
YXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6RmxhZ3M6Ok5vUmVwb3J0KSkKICAgICAgICAg
cGFyYW1ldGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFwREJIYW5kbGUpOwog
I2VuZGlmCiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZh
bHVhdG9yQ2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewogICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldl
YkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiLCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS51
aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSJfcywg
V1RGOjpudWxsb3B0LCBoYW5kbGUpOwogICAgICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgICAgICBp
ZiAoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxl
LmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiLCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRT
ZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNl
cnZpY2VzIl9zLCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxl
KSkKICAgICAgICAgICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5k
bGUgPSBXVEZNb3ZlKGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKICAgICB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW0KaW5kZXggYjgyZWIyNmM1NTkzNWMxNTdkZjM3ODNiYTZlZDIxMDYwMmJh
YzdmMi4uODY2MjM4YmFmZThmMDVjMTdhMjNkNmY5Y2M5OWEyMTAxNGRkOTMxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0KQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZW5hYmxlUmVtb3Rl
SW5zcGVjdG9ySWZOZWVkZWQoKQogICAgICAgICByZXR1cm47CiAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIGhhbmRsZTsKICAgICBhdXRvIGF1ZGl0VG9rZW4gPSBjb25uZWN0aW9uKCkgPyBj
b25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSA6IFdURjo6bnVsbG9wdDsKLSAgICBpZiAoU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLndlYmlu
c3BlY3RvciIsIGF1ZGl0VG9rZW4sIGhhbmRsZSkpCisgICAgaWYgKFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiX3MsIGF1
ZGl0VG9rZW4sIGhhbmRsZSkpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVu
YWJsZVJlbW90ZVdlYkluc3BlY3RvcihoYW5kbGUpLCAwKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA3ZDMwNThl
Yzc0YTRmOTliZTExNmM5MGMzZWY3ZDIyNTcyZmU4NmVlLi5hNTIzNzRkNzQ2NGQzMzkwN2M1MTM5
MWMwODA2MGZjZDA3ODk1MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTAyLDEyICsxMDIsMTIgQEAgR1BVUHJvY2Vzc1Byb3h5
JiBHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpCiAgICAgICAgIGJvb2wgbmVlZHNDYW1lcmFT
YW5kYm94RXh0ZW5zaW9uID0gc2hvdWxkQ3JlYXRlQ2FtZXJhU2FuZGJveEV4dGVuc2lvbigpOwog
ICAgICAgICBib29sIG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24gPSBzaG91bGRDcmVh
dGVNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbigpOwogICAgICAgICBpZiAobmVlZHNDYW1lcmFT
YW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5jYW1lcmEiLCBwYXJhbWV0
ZXJzLmNhbWVyYVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworICAgICAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtp
dC5jYW1lcmEiX3MsIHBhcmFtZXRlcnMuY2FtZXJhU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAg
ICAgICAgIGlmIChuZWVkc01pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFw
cGxlLndlYmtpdC5taWNyb3Bob25lIiwgcGFyYW1ldGVycy5taWNyb3Bob25lU2FuZGJveEV4dGVu
c2lvbkhhbmRsZSk7CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiX3MsIHBhcmFt
ZXRlcnMubWljcm9waG9uZVNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogI2lmIFBMQVRGT1JNKElP
UykKICAgICAgICAgaWYgKG5lZWRzQ2FtZXJhU2FuZGJveEV4dGVuc2lvbiB8fCBuZWVkc01pY3Jv
cGhvbmVTYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2QiLCBXVEY6Om51bGxvcHQsIHBh
cmFtZXRlcnMudGNjU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywg
V1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJzLnRjY1NhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogI2Vu
ZGlmCiAjZW5kaWYKICAgICAgICAgcGFyYW1ldGVycy5wYXJlbnRQSUQgPSBnZXRDdXJyZW50UHJv
Y2Vzc0lEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggN2Y4Mjll
NzFmOTFlYzc3YzZmMjcyMzY1OTZlM2E0YmJkYTZkOTg3Zi4uMTdiYTU5ZGY1YWQwMTcyZWI4NmVj
ZDNmMzFiNDU3Y2YyMzU4YTRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJtCiAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
ICAgIGlmICghbV9oYXNDcmVhdGVkU2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKLSAgICAgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBs
ZS50Y2NkIiwgbV9wYWdlLnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSwg
aGFuZGxlKTsKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX3BhZ2UucHJvY2VzcygpLmNvbm5lY3Rpb24o
KS0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGUpOwogICAgICAgICAgICAgbV9oYXNDcmVhdGVkU2Fu
ZGJveEV4dGVuc2lvbkZvclRDQ0QgPSB0cnVlOwogICAgICAgICB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDQwOGM5Zjk1YzJlYmU2MTY4YzIy
NzRiZDZjNjE4Y2RlNmU3OWNlNjIuLmViMThhNTBjYWZkM2YzMGJjZDA5NDg2NDY4MmYwOWYxNzA5
Y2ZkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjY3
Miw5ICs2NjcyLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUZpbGVzRm9yT3BlblBh
bmVsV2l0aERpc3BsYXlTdHJpbmdBbmRJY29uKGNvbnN0IFZlY3QKIAogICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uLCBpY29uU2Vy
dmljZXNTYW5kYm94RXh0ZW5zaW9uOwogI2lmIEhBVkUoRlJPTlRCT0FSRF9TWVNURU1fQVBQX1NF
UlZJQ0VTKQotICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAo
ImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiwgV1RGOjpudWxsb3B0LCBm
cm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1h
cHBzZXJ2aWNlcyJfcywgV1RGOjpudWxsb3B0LCBmcm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0
ZW5zaW9uKTsKICNlbmRpZgotICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoImNvbS5hcHBsZS5pY29uc2VydmljZXMiLCBXVEY6Om51bGxvcHQsIGljb25TZXJ2
aWNlc1NhbmRib3hFeHRlbnNpb24pOworICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pY29uc2VydmljZXMiX3MsIFdURjo6bnVsbG9wdCwg
aWNvblNlcnZpY2VzU2FuZGJveEV4dGVuc2lvbik7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhEaXNwbGF5U3RyaW5nQW5kSWNvbihm
aWxlVVJMcywgZGlzcGxheVN0cmluZywgaWNvbkRhdGEgPyBpY29uRGF0YS0+ZGF0YVJlZmVyZW5j
ZSgpIDogSVBDOjpEYXRhUmVmZXJlbmNlKCksIGZyb250Ym9hcmRTZXJ2aWNlc1NhbmRib3hFeHRl
bnNpb24sIGljb25TZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24pKTsKIApAQCAtNzg1Nyw5ICs3ODU3
LDkgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFy
YW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3ByZWZlcmVuY2VzLT5hdHRh
Y2htZW50RWxlbWVudEVuYWJsZWQoKSAmJiAhbV9wcm9jZXNzLT5oYXNJc3N1ZWRBdHRhY2htZW50
RWxlbWVudFJlbGF0ZWRTYW5kYm94RXh0ZW5zaW9ucygpKSB7CiAgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGU7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2Vz
IiwgV1RGOjpudWxsb3B0LCBoYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2
aWNlcyJfcywgV1RGOjpudWxsb3B0LCBoYW5kbGUpOwogICAgICAgICBwYXJhbWV0ZXJzLmZyb250
Ym9hcmRFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7Ci0gICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pY29uc2Vydmlj
ZXMiLCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pY29uc2VydmljZXMiX3MsIFdURjo6
bnVsbG9wdCwgaGFuZGxlKTsKICAgICAgICAgcGFyYW1ldGVycy5pY29uU2VydmljZXNFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAgICAgICAgIG1fcHJvY2Vzcy0+c2V0SGFzSXNz
dWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMoKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBh
ZWFlMjlhMWE5NjBkNmI0ZTU0YmEzMzAxNzkwMTBmODYyZjYyYzJiLi4xYWFiOGY1OTVkZmUyYjdm
YWY0ZTFmZDJmYThiZWU0YjcxNTJhOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE2NDIsOCArMTY0Miw4IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojppc1Zpc2libGVDaGFuZ2VkKGJvb2wgaXNWaXNpYmxlKQogdm9pZCBXZWJQYWdlUHJv
eHk6OmdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKCkKIHsKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgbW9iaWxlQXNzZXRIYW5kbGUsIG1vYmlsZUFzc2V0SGFuZGxlVjI7Ci0gICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm1vYmls
ZWFzc2V0ZCIsIFdURjo6bnVsbG9wdCwgbW9iaWxlQXNzZXRIYW5kbGUpOwotICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5tb2JpbGVhc3Nl
dGQudjIiLCBXVEY6Om51bGxvcHQsIG1vYmlsZUFzc2V0SGFuZGxlVjIpOworICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5tb2JpbGVhc3Nl
dGQiX3MsIFdURjo6bnVsbG9wdCwgbW9iaWxlQXNzZXRIYW5kbGUpOworICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5tb2JpbGVhc3NldGQu
djIiX3MsIFdURjo6bnVsbG9wdCwgbW9iaWxlQXNzZXRIYW5kbGVWMik7CiAgICAgcHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKG1v
YmlsZUFzc2V0SGFuZGxlLCBtb2JpbGVBc3NldEhhbmRsZVYyKSwgMCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402321</attachid>
            <date>2020-06-19 13:55:46 -0700</date>
            <delta_ts>2020-06-19 14:32:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213400-20200619135545.patch</filename>
            <type>text/plain</type>
            <size>32816</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU4MTMyNDhmMWNjMGZiNjFh
NThkZGE4MTc1YTExZDY2ZmIyMDZjZDYuLmNiYTZlMTEzYWJhZDUyZjY2OTk3MTQ1OTE0ZTA3YTMy
ZjM0MDdkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDYtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUg
Zm9yIFNhbmRib3hFeHRlbnNpb24gZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQVNDSUlMaXRlcmFsIG1vcmUgZm9yIFNhbmRib3hF
eHRlbnNpb24gZnVuY3Rpb25zLiBGdW5jdGlvbnMgbGlrZSBjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCkgLyBjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKCkKKyAgICAgICAgZG9u
J3QgbmVlZCB0byB0YWtlIGluIFN0cmluZ3MsIEFTQ0lJTGl0ZXJhbCBpcyBlbm91Z2guCisKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlUmVhZE9ubHlIYW5kbGVzRm9yRmlsZXMpOgorICAgICAgICAo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9u
KToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZXNGb3JNYWNoTG9va3VwKToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyk6CisgICAg
ICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bWVkaWFSZWxhdGVk
TWFjaFNlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6bm9uQnJvd3NlclNlcnZpY2VzKToKKyAg
ICAgICAgKFdlYktpdDo6ZGlhZ25vc3RpY1NlcnZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6YWd4
Q29tcGlsZXJDbGFzc2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpl
bmFibGVSZW1vdGVJbnNwZWN0b3JJZk5lZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNp
bmdsZXRvbik6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoRGlzcGxheVN0cmluZ0FuZEljb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Z3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMpOgorCiAyMDIwLTA2LTE5ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IE1ha2Ug
aXNvbGF0ZWQgdHJlZSBlbmFibGVtZW50IHN0YXR1cyBkZXBlbmRlbnQgb24gY2xpZW50IHByZWZl
cmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRl
bnNpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNp
b25Db2NvYS5tbQppbmRleCBhYmZmMTIwMGZlODI0MTEwZWYxOGQ4OTBmYmNhMmQ0YzZjNTE1ZjZl
Li42ODk4MjE5MWFiM2I0N2FiY2NiYjJiYzZhOGM0YTNhMDhlNmMzZDBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCkBAIC05
NywxMiArOTcsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVu
c2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQURfV1JJVEUsIHBhdGgsIGV4dGVuc2lvbkZs
YWdzKTsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpNYWNoOgogICAgICAg
ICAgICAgaWYgKCFhdWRpdFRva2VuKQotICAgICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4
dGVuc2lvbl9pc3N1ZV9tYWNoKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIl9zLCBw
YXRoLCBleHRlbnNpb25GbGFncyk7Ci0gICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNp
b25faXNzdWVfbWFjaF90b19wcm9jZXNzKCJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNo
Il9zLCBwYXRoLCBleHRlbnNpb25GbGFncywgKmF1ZGl0VG9rZW4pOworICAgICAgICAgICAgICAg
IHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9tYWNoKCJjb20uYXBwbGUud2Via2l0LmV4
dGVuc2lvbi5tYWNoIiwgcGF0aCwgZXh0ZW5zaW9uRmxhZ3MpOworICAgICAgICAgICAgcmV0dXJu
IHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX21hY2hfdG9fcHJvY2VzcygiY29tLmFwcGxlLndlYmtp
dC5leHRlbnNpb24ubWFjaCIsIHBhdGgsIGV4dGVuc2lvbkZsYWdzLCAqYXVkaXRUb2tlbik7CiAg
ICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6SU9LaXQ6CiAgICAgICAgICAgICBp
ZiAoIWF1ZGl0VG9rZW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9u
X2lzc3VlX2lva2l0X3JlZ2lzdHJ5X2VudHJ5X2NsYXNzKCJjb20uYXBwbGUud2Via2l0LmV4dGVu
c2lvbi5pb2tpdCJfcywgcGF0aCwgZXh0ZW5zaW9uRmxhZ3MpOwotICAgICAgICAgICAgcmV0dXJu
IHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2lva2l0X3JlZ2lzdHJ5X2VudHJ5X2NsYXNzX3RvX3By
b2Nlc3MoImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLmlva2l0Il9zLCBwYXRoLCBleHRlbnNp
b25GbGFncywgKmF1ZGl0VG9rZW4pOworICAgICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4
dGVuc2lvbl9pc3N1ZV9pb2tpdF9yZWdpc3RyeV9lbnRyeV9jbGFzcygiY29tLmFwcGxlLndlYmtp
dC5leHRlbnNpb24uaW9raXQiLCBwYXRoLCBleHRlbnNpb25GbGFncyk7CisgICAgICAgICAgICBy
ZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfaW9raXRfcmVnaXN0cnlfZW50cnlfY2xhc3Nf
dG9fcHJvY2VzcygiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24uaW9raXQiLCBwYXRoLCBleHRl
bnNpb25GbGFncywgKmF1ZGl0VG9rZW4pOwogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246
OlR5cGU6OkdlbmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNz
dWVfZ2VuZXJpYyhwYXRoLCBleHRlbnNpb25GbGFncyk7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4
dGVuc2lvbjo6VHlwZTo6UmVhZEJ5UHJvY2VzczoKQEAgLTI4MSw3ICsyODEsOCBAQCBib29sIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUgdHlw
ZSwgSGFuZGxlJiBoYW5kbAogICAgIHJldHVybiBjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5n
UGF0aChyZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNpb24ocGF0aCksIHR5cGUsIGhhbmRsZSk7
CiB9CiAKLXN0YXRpYyBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBjcmVhdGVIYW5kbGVz
Rm9yUmVzb3VyY2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXNvdXJjZXMsIEZ1bmN0aW9uPGJv
b2woY29uc3QgU3RyaW5nJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpPiYmIGNy
ZWF0ZUZ1bmN0aW9uKQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdGF0aWMgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhjb25zdCBWZWN0b3I8
VD4mIHJlc291cmNlcywgRnVuY3Rpb248Ym9vbChjb25zdCBUJiwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiBoYW5kbGUpPiYmIGNyZWF0ZUZ1bmN0aW9uKQogewogICAgIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZUFycmF5IGhhbmRsZUFycmF5OwogCkBAIC0yOTgsMTggKzI5OSwxOCBAQCBzdGF0
aWMgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0ZvclJlc291cmNl
cyhjb25zdCBWZWN0b3I8U3RyaQogICAgIHJldHVybiBoYW5kbGVBcnJheTsKIH0KIAotU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlUmVhZE9ubHlI
YW5kbGVzRm9yRmlsZXMoY29uc3QgU3RyaW5nJiBsb2dMYWJlbCwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhdGhzKQorU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlUmVhZE9ubHlIYW5kbGVzRm9yRmlsZXMoQVNDSUlMaXRlcmFsIGxvZ0xhYmVsLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNG
b3JSZXNvdXJjZXMocGF0aHMsIFsmbG9nTGFiZWxdIChjb25zdCBTdHJpbmcmIHBhdGgsIEhhbmRs
ZSYgaGFuZGxlKSB7CisgICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNGb3JSZXNvdXJjZXMocGF0aHMs
IEZ1bmN0aW9uPGJvb2woY29uc3QgU3RyaW5nJiwgSGFuZGxlJik+KFsmbG9nTGFiZWxdIChjb25z
dCBTdHJpbmcmIHBhdGgsIEhhbmRsZSYgaGFuZGxlKSB7CiAgICAgICAgIGlmICghU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRP
bmx5LCBoYW5kbGUpKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGNhbiBsZWdpdGltYXRlbHkgZmFp
bCBpZiBhIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBmaWxlIGlzIGRlbGV0ZWQgYWZ0ZXIgdGhl
IGZpbGUgd2FzIGNob3Nlbi4KICAgICAgICAgICAgIC8vIFdlIGFsc28gaGF2ZSByZXBvcnRzIG9m
IGNhc2VzIHdoZXJlIHRoaXMgbGlrZWx5IGZhaWxzIGZvciBzb21lIHVua25vd24gcmVhc29uLCA8
cmRhcjovL3Byb2JsZW0vMTAxNTY3MTA+LgotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczog
Y291bGQgbm90IGNyZWF0ZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGZvciAnJXMnXG4iLCBsb2dMYWJl
bC51dGY4KCkuZGF0YSgpLCBwYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgV1RGTG9n
QWx3YXlzKCIlczogY291bGQgbm90IGNyZWF0ZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGZvciAnJXMn
XG4iLCBsb2dMYWJlbC5jaGFyYWN0ZXJzKCksIHBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9KTsKKyAgICB9KSk7CiB9CiAKIGJv
b2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNv
bnN0IFN0cmluZyYgcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCkBAIC0z
NTAsNDEgKzM1MSw0MSBAQCBTdHJpbmcgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
VGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgVHlwZQogICAgIHJldHVybiBTdHJp
bmcocGF0aC5kYXRhKCkpOwogfQogCi1ib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25DbGFzcywgSGFuZGxl
JiBoYW5kbGUpCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNF
eHRlbnNpb24oQVNDSUlMaXRlcmFsIGV4dGVuc2lvbkNsYXNzLCBIYW5kbGUmIGhhbmRsZSkKIHsK
ICAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pOwogCi0gICAgaGFuZGxlLm1f
c2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoZXh0ZW5zaW9u
Q2xhc3MudXRmOCgpLmRhdGEoKSwgVHlwZTo6R2VuZXJpYyk7CisgICAgaGFuZGxlLm1fc2FuZGJv
eEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoZXh0ZW5zaW9uQ2xhc3Mu
Y2hhcmFjdGVycygpLCBUeXBlOjpHZW5lcmljKTsKICAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hF
eHRlbnNpb24pIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgY3JlYXRlIGEgJyVz
JyBzYW5kYm94IGV4dGVuc2lvbiIsIGV4dGVuc2lvbkNsYXNzLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBjcmVhdGUgYSAnJXMnIHNhbmRib3ggZXh0ZW5z
aW9uIiwgZXh0ZW5zaW9uQ2xhc3MuY2hhcmFjdGVycygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKGNvbnN0IFN0cmluZyYgc2VydmljZSwgT3B0
aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbiwgSGFuZGxlJiBoYW5kbGUsIE9wdGlvblNl
dDxGbGFncz4gZmxhZ3MpCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoQVNDSUlMaXRlcmFsIHNlcnZpY2UsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1
ZGl0VG9rZW4sIEhhbmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKQogewogICAg
IEFTU0VSVCghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbik7CiAgICAgCi0gICAgaGFuZGxlLm1f
c2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2VydmljZS51
dGY4KCkuZGF0YSgpLCBUeXBlOjpNYWNoLCBhdWRpdFRva2VuLCBmbGFncyk7CisgICAgaGFuZGxl
Lm1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb25JbXBsOjpjcmVhdGUoc2Vydmlj
ZS5jaGFyYWN0ZXJzKCksIFR5cGU6Ok1hY2gsIGF1ZGl0VG9rZW4sIGZsYWdzKTsKICAgICBpZiAo
IWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3Vs
ZCBub3QgY3JlYXRlIGEgJyVzJyBzYW5kYm94IGV4dGVuc2lvbiIsIHNlcnZpY2UudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IGNyZWF0ZSBhICclcycgc2Fu
ZGJveCBleHRlbnNpb24iLCBzZXJ2aWNlLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVNhbmRib3hFeHRlbnNp
b246OkhhbmRsZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9v
a3VwKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5f
dD4gYXVkaXRUb2tlbiwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKK1NhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3Vw
KGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBzZXJ2aWNlcywgT3B0aW9uYWw8YXVkaXRfdG9r
ZW5fdD4gYXVkaXRUb2tlbiwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykKIHsKLSAgICByZXR1cm4g
Y3JlYXRlSGFuZGxlc0ZvclJlc291cmNlcyhzZXJ2aWNlcywgW2F1ZGl0VG9rZW4sIGZsYWdzXSAo
Y29uc3QgU3RyaW5nJiBzZXJ2aWNlLCBIYW5kbGUmIGhhbmRsZSkgeworICAgIHJldHVybiBjcmVh
dGVIYW5kbGVzRm9yUmVzb3VyY2VzKHNlcnZpY2VzLCBGdW5jdGlvbjxib29sKGNvbnN0IEFTQ0lJ
TGl0ZXJhbCYsIEhhbmRsZSYpPihbYXVkaXRUb2tlbiwgZmxhZ3NdIChjb25zdCBBU0NJSUxpdGVy
YWwmIHNlcnZpY2UsIEhhbmRsZSYgaGFuZGxlKSB7CiAgICAgICAgIGlmICghU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlLCBhdWRpdFRva2VuLCBoYW5k
bGUsIGZsYWdzKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fSk7CisgICAgfSkpOwogfQogCiBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRCeUF1ZGl0VG9rZW4oY29uc3QgU3RyaW5nJiBwYXRoLCBhdWRpdF90b2tlbl90IGF1ZGl0
VG9rZW4sIEhhbmRsZSYgaGFuZGxlKQpAQCAtNDAwLDI4ICs0MDEsMjggQEAgYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRpdFRva2VuKGNvbnN0IFN0cmluZyYg
cGF0aCwgYXVkaXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JJT0tpdENsYXNzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaW9LaXRD
bGFzcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbiwgSGFuZGxlJiBoYW5kbGUs
IE9wdGlvblNldDxGbGFncz4gZmxhZ3MpCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvcklPS2l0Q2xhc3NFeHRlbnNpb24oQVNDSUlMaXRlcmFsIGlvS2l0Q2xhc3MsIE9wdGlv
bmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4sIEhhbmRsZSYgaGFuZGxlLCBPcHRpb25TZXQ8
RmxhZ3M+IGZsYWdzKQogewogICAgIEFTU0VSVCghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbik7
CiAKLSAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6
OmNyZWF0ZShpb0tpdENsYXNzLnV0ZjgoKS5kYXRhKCksIFR5cGU6OklPS2l0LCBhdWRpdFRva2Vu
KTsKKyAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbkltcGw6
OmNyZWF0ZShpb0tpdENsYXNzLmNoYXJhY3RlcnMoKSwgVHlwZTo6SU9LaXQsIGF1ZGl0VG9rZW4p
OwogICAgIGlmICghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbikgewotICAgICAgICBMT0dfRVJS
T1IoIkNvdWxkIG5vdCBjcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgJyVzJyIsIGlvS2l0
Q2xhc3MudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0
ZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGZvciAnJXMnIiwgaW9LaXRDbGFzcy5jaGFyYWN0ZXJzKCkp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LVNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgaW9raXRD
bGFzc2VzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBPcHRpb25TZXQ8Rmxh
Z3M+IGZsYWdzKQorU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlc0ZvcklPS2l0Q2xhc3NFeHRlbnNpb25zKGNvbnN0IFZlY3RvcjxBU0NJ
SUxpdGVyYWw+JiBpb2tpdENsYXNzZXMsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9r
ZW4sIE9wdGlvblNldDxGbGFncz4gZmxhZ3MpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUhhbmRsZXNG
b3JSZXNvdXJjZXMoaW9raXRDbGFzc2VzLCBbYXVkaXRUb2tlbiwgZmxhZ3NdIChjb25zdCBTdHJp
bmcmIGlva2l0Q2xhc3MsIEhhbmRsZSYgaGFuZGxlKSB7CisgICAgcmV0dXJuIGNyZWF0ZUhhbmRs
ZXNGb3JSZXNvdXJjZXMoaW9raXRDbGFzc2VzLCBGdW5jdGlvbjxib29sKGNvbnN0IEFTQ0lJTGl0
ZXJhbCYsIEhhbmRsZSYpPihbYXVkaXRUb2tlbiwgZmxhZ3NdIChjb25zdCBBU0NJSUxpdGVyYWwm
IGlva2l0Q2xhc3MsIEhhbmRsZSYgaGFuZGxlKSB7CiAgICAgICAgIGlmICghU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbihpb2tpdENsYXNzLCBhdWRp
dFRva2VuLCBoYW5kbGUsIGZsYWdzKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfSk7CisgICAgfSkpOwogfQogCiBTYW5kYm94RXh0ZW5zaW9uOjpTYW5kYm94
RXh0ZW5zaW9uKGNvbnN0IEhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJv
eEV4dGVuc2lvbi5oCmluZGV4IGViMzk0YWU2MTU2OGFiY2ViZDIyYjMxNzU5YzkxMmNjMGJkYjk2
YjAuLmM2NTE2NjU4ODRkM2QwMzliMjdkYzk5MWUzMDM3M2I4NjhhZGY4MDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKQEAgLTExMSwxNyArMTExLDE3IEBAIHB1Ymxp
YzoKICAgICAKICAgICBzdGF0aWMgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGNyZWF0ZShIYW5k
bGUmJik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlKGNvbnN0IFN0cmluZyYgcGF0aCwg
VHlwZSwgSGFuZGxlJik7Ci0gICAgc3RhdGljIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5
IGNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKGNvbnN0IFN0cmluZyYgbG9nTGFiZWwsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocyk7CisgICAgc3RhdGljIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IGNyZWF0ZVJlYWRPbmx5SGFuZGxlc0ZvckZpbGVzKEFTQ0lJTGl0ZXJhbCBs
b2dMYWJlbCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKTsKICAgICBzdGF0aWMgYm9vbCBj
cmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUs
IEhhbmRsZSYpOwogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVj
dG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIEhhbmRsZSYpOyAvLyBXaWxsIGF0dGVtcHQgdG8gY3Jl
YXRlIHRoZSBkaXJlY3RvcnkuCiAgICAgc3RhdGljIFN0cmluZyBjcmVhdGVIYW5kbGVGb3JUZW1w
b3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlLCBIYW5kbGUmKTsKLSAgICBzdGF0
aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0
ZW5zaW9uQ2xhc3MsIEhhbmRsZSYpOworICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvckdl
bmVyaWNFeHRlbnNpb24oQVNDSUlMaXRlcmFsIGV4dGVuc2lvbkNsYXNzLCBIYW5kbGUmKTsKICNp
ZiBIQVZFKEFVRElUX1RPS0VOKQotICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoY29uc3QgU3RyaW5nJiBzZXJ2aWNlLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgSGFu
ZGxlJiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKLSAgICBzdGF0aWMgSGFu
ZGxlQXJyYXkgY3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHNlcnZpY2VzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZs
YWdzOjpEZWZhdWx0KTsKKyAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3Vw
KEFTQ0lJTGl0ZXJhbCBzZXJ2aWNlLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgSGFuZGxlJiwg
T3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKKyAgICBzdGF0aWMgSGFuZGxlQXJy
YXkgY3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4m
IHNlcnZpY2VzLCBPcHRpb25hbDxhdWRpdF90b2tlbl90PiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZs
YWdzOjpEZWZhdWx0KTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRp
dFRva2VuKGNvbnN0IFN0cmluZyYgcGF0aCwgYXVkaXRfdG9rZW5fdCwgSGFuZGxlJik7Ci0gICAg
c3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFzc0V4dGVuc2lvbihjb25zdCBTdHJp
bmcmIGlva2l0Q2xhc3MsIE9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+LCBIYW5kbGUmLCBPcHRpb25T
ZXQ8RmxhZ3M+ID0gRmxhZ3M6OkRlZmF1bHQpOwotICAgIHN0YXRpYyBIYW5kbGVBcnJheSBjcmVh
dGVIYW5kbGVzRm9ySU9LaXRDbGFzc0V4dGVuc2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGlv
a2l0Q2xhc3NlcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4sIE9wdGlvblNldDxGbGFncz4gPSBG
bGFnczo6RGVmYXVsdCk7CisgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlRm9ySU9LaXRDbGFz
c0V4dGVuc2lvbihBU0NJSUxpdGVyYWwgaW9raXRDbGFzcywgT3B0aW9uYWw8YXVkaXRfdG9rZW5f
dD4sIEhhbmRsZSYsIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6RGVmYXVsdCk7CisgICAgc3Rh
dGljIEhhbmRsZUFycmF5IGNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyhjb25z
dCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgaW9raXRDbGFzc2VzLCBPcHRpb25hbDxhdWRpdF90b2tl
bl90PiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKICNlbmRpZgogICAgIH5T
YW5kYm94RXh0ZW5zaW9uKCk7CiAKQEAgLTE2MCwxMSArMTYwLDExIEBAIGlubGluZSB2b2lkIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Qg
eyB9CiBpbmxpbmUgYXV0byBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYpIC0+IE9wdGlvbmFsPEhhbmRsZUFycmF5PiB7IHJldHVybiB7eyB9fTsgfQog
aW5saW5lIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUo
SGFuZGxlJiYpIHsgcmV0dXJuIG51bGxwdHI7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZShjb25zdCBTdHJpbmcmLCBUeXBlLCBIYW5kbGUmKSB7IHJldHVybiB0
cnVlOyB9Ci1pbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlUmVhZE9ubHlIYW5kbGVzRm9yRmlsZXMoY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mKSB7IHJldHVybiB7IH07IH0KK2lubGluZSBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGVBcnJheSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVSZWFkT25seUhhbmRsZXNGb3JG
aWxlcyhBU0NJSUxpdGVyYWwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgeyByZXR1cm4geyB9OyB9
CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2
aW5nUGF0aChjb25zdCBTdHJpbmcmLCBUeXBlLCBIYW5kbGUmKSB7IHJldHVybiB0cnVlOyB9CiBp
bmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJl
Y3RvcnkoY29uc3QgU3RyaW5nJiwgSGFuZGxlJikgeyByZXR1cm4gdHJ1ZTsgfQogaW5saW5lIFN0
cmluZyBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0
IFN0cmluZyYgLypwcmVmaXgqLywgVHlwZSwgSGFuZGxlJikge3JldHVybiBTdHJpbmcoKTt9Ci1p
bmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5z
aW9uKGNvbnN0IFN0cmluZyYgLypleHRlbnNpb25DbGFzcyovLCBIYW5kbGUmKSB7IHJldHVybiB0
cnVlOyB9CitpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5l
cmljRXh0ZW5zaW9uKEFTQ0lJTGl0ZXJhbCAvKmV4dGVuc2lvbkNsYXNzKi8sIEhhbmRsZSYpIHsg
cmV0dXJuIHRydWU7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjp+U2FuZGJveEV4dGVuc2lv
bigpIHsgfQogaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6cmV2b2tlKCkgeyByZXR1cm4g
dHJ1ZTsgfQogaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZSgpIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCmluZGV4IDAyMWJhY2I3Yjk0MDQ2MmZiZjU4MjBiYWE1NTM5NWE5ZWQ1
YmIxNDIuLmM3YmYxMWUzMWZjZmU0MmE4ZmEzYmZiYWE1MjFjMzAzOTE3ZTU4MGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQpAQCAtMjEyLDgwICsyMTIsODAgQEAgc3RhdGljIGJvb2wgaXNJbnRlcm5hbEluc3RhbGwoKQog
I2VuZGlmCiAKIC8vIEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92
ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCi1zdGF0aWMgY29uc3QgVmVjdG9y
PFN0cmluZz4mIG1lZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcygpCitzdGF0aWMgY29uc3QgVmVjdG9y
PEFTQ0lJTGl0ZXJhbD4mIG1lZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcygpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VO
ZXZlckRlc3Ryb3llZChWZWN0b3I8U3RyaW5nPiB7Ci0gICAgICAgICJjb20uYXBwbGUuYXVkaW8u
QXVkaW9Db21wb25lbnRQcmVmcyIsICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRSZWdp
c3RyYXIiLAotICAgICAgICAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvUXVldWVTZXJ2ZXIiLCAiY29t
LmFwcGxlLmF1ZGlvLnRvb2xib3gucmVwb3J0aW5nLnNlcnZpY2UiLCAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5lbmRwb2ludC54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5yb3V0ZWRp
c2NvdmVyZXIueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEucm91dGluZ2NvbnRleHQueHBjIiwK
LSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEudm9sdW1lY29udHJvbGxlci54cGMiLCAiY29t
LmFwcGxlLmFjY2Vzc2liaWxpdHkubWVkaWFhY2Nlc3NpYmlsaXR5ZCIsCi0gICAgICAgICJjb20u
YXBwbGUubWVkaWFyZW1vdGVkLnhwYyIsCisgICAgc3RhdGljIGNvbnN0IGF1dG8gc2VydmljZXMg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPEFTQ0lJTGl0ZXJhbD4geworICAgICAgICAiY29t
LmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9uZW50UHJlZnMiX3MsICJjb20uYXBwbGUuYXVkaW8uQXVk
aW9Db21wb25lbnRSZWdpc3RyYXIiX3MsCisgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9R
dWV1ZVNlcnZlciJfcywgImNvbS5hcHBsZS5hdWRpby50b29sYm94LnJlcG9ydGluZy5zZXJ2aWNl
Il9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludC54cGMiX3MsCisgICAgICAgICJjb20u
YXBwbGUuY29yZW1lZGlhLnJvdXRlZGlzY292ZXJlci54cGMiX3MsICJjb20uYXBwbGUuY29yZW1l
ZGlhLnJvdXRpbmdjb250ZXh0LnhwYyJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEu
dm9sdW1lY29udHJvbGxlci54cGMiX3MsICJjb20uYXBwbGUuYWNjZXNzaWJpbGl0eS5tZWRpYWFj
Y2Vzc2liaWxpdHlkIl9zLAorICAgICAgICAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiX3Ms
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRp
b1Nlc3Npb24iLCAiY29tLmFwcGxlLk1lZGlhUGxheWVyLlJlbW90ZVBsYXllclNlcnZpY2UiLAot
ICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5hZG1pbiIsCi0gICAgICAgICJjb20uYXBwbGUu
Y29yZW1lZGlhLmFzc2V0LnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLmFzc2V0aW1hZ2VnZW5l
cmF0b3IueHBjIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuYXVkaW9kZXZpY2VjbG9j
ay54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5hdWRpb3Byb2Nlc3Npbmd0YXAueHBjIiwKLSAg
ICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY2FwdHVyZXNlc3Npb24iLCAiY29tLmFwcGxlLmNv
cmVtZWRpYS5jYXB0dXJlc291cmNlIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY29t
cHJlc3Npb25zZXNzaW9uIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuY3BlLnhwYyIsCi0gICAgICAg
ICJjb20uYXBwbGUuY29yZW1lZGlhLmNwZXByb3RlY3Rvci54cGMiLCAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5jdXN0b211cmxsb2FkZXIueHBjIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEu
ZGVjb21wcmVzc2lvbnNlc3Npb24iLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5maWdjb250ZW50a2V5
c2Vzc2lvbi54cGMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5maWdjcGVjcnlwdG9y
IiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuZm9ybWF0cmVhZGVyLnhwYyIsCi0gICAgICAgICJjb20u
YXBwbGUuY29yZW1lZGlhLnBsYXllci54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5yZW1ha2Vy
IiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucmVtb3RlcXVldWUiLCAiY29tLmFwcGxl
LmNvcmVtZWRpYS5yb3V0aW5nc2Vzc2lvbm1hbmFnZXIueHBjIiwKLSAgICAgICAgImNvbS5hcHBs
ZS5jb3JlbWVkaWEuc2FtcGxlYnVmZmVyYXVkaW9yZW5kZXJlci54cGMiLCAiY29tLmFwcGxlLmNv
cmVtZWRpYS5zYW1wbGVidWZmZXJyZW5kZXJzeW5jaHJvbml6ZXIueHBjIiwKLSAgICAgICAgImNv
bS5hcHBsZS5jb3JlbWVkaWEuc2FuZGJveHNlcnZlci54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRp
YS5zdHMiLAotICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5zeXN0ZW1jb250cm9sbGVyLnhw
YyIsICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvcXVldWUiLAotICAgICAgICAiY29tLmFwcGxl
LmNvcmVtZWRpYS52aXN1YWxjb250ZXh0LnhwYyIsICJjb20uYXBwbGUuYWlycGxheS5hcHN5bmNj
b250cm9sbGVyLnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuYXVkaW8uQVVSZW1vdGVJT1NlcnZl
ciIKKyAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb1Nlc3Npb24iX3MsICJjb20uYXBwbGUu
TWVkaWFQbGF5ZXIuUmVtb3RlUGxheWVyU2VydmljZSJfcywKKyAgICAgICAgImNvbS5hcHBsZS5j
b3JlbWVkaWEuYWRtaW4iX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmFzc2V0Lnhw
YyJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuYXNzZXRpbWFnZWdlbmVyYXRvci54cGMiX3MsCisg
ICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmF1ZGlvZGV2aWNlY2xvY2sueHBjIl9zLCAiY29t
LmFwcGxlLmNvcmVtZWRpYS5hdWRpb3Byb2Nlc3Npbmd0YXAueHBjIl9zLAorICAgICAgICAiY29t
LmFwcGxlLmNvcmVtZWRpYS5jYXB0dXJlc2Vzc2lvbiJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEu
Y2FwdHVyZXNvdXJjZSJfcywKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuY29tcHJlc3Np
b25zZXNzaW9uIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5jcGUueHBjIl9zLAorICAgICAgICAi
Y29tLmFwcGxlLmNvcmVtZWRpYS5jcGVwcm90ZWN0b3IueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5jdXN0b211cmxsb2FkZXIueHBjIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRp
YS5kZWNvbXByZXNzaW9uc2Vzc2lvbiJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEuZmlnY29udGVu
dGtleXNlc3Npb24ueHBjIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5maWdjcGVj
cnlwdG9yIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5mb3JtYXRyZWFkZXIueHBjIl9zLAorICAg
ICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5wbGF5ZXIueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5yZW1ha2VyIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS5yZW1vdGVxdWV1
ZSJfcywgImNvbS5hcHBsZS5jb3JlbWVkaWEucm91dGluZ3Nlc3Npb25tYW5hZ2VyLnhwYyJfcywK
KyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuc2FtcGxlYnVmZmVyYXVkaW9yZW5kZXJlci54
cGMiX3MsICJjb20uYXBwbGUuY29yZW1lZGlhLnNhbXBsZWJ1ZmZlcnJlbmRlcnN5bmNocm9uaXpl
ci54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnNhbmRib3hzZXJ2ZXIueHBj
Il9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5zdHMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29y
ZW1lZGlhLnN5c3RlbWNvbnRyb2xsZXIueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRl
b3F1ZXVlIl9zLAorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS52aXN1YWxjb250ZXh0Lnhw
YyJfcywgImNvbS5hcHBsZS5haXJwbGF5LmFwc3luY2NvbnRyb2xsZXIueHBjIl9zLAorICAgICAg
ICAiY29tLmFwcGxlLmF1ZGlvLkFVUmVtb3RlSU9TZXJ2ZXIiX3MKICNlbmRpZgogI2lmIFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgICAgICJjb20uYXBwbGUuY29y
ZW1lZGlhLmVuZHBvaW50c3RyZWFtLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50
cGxheWJhY2tzZXNzaW9uLnhwYyIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBv
aW50cmVtb3RlY29udHJvbHNlc3Npb24ueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9k
ZWNvZGVyIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVyIiwgImNv
bS5hcHBsZS5CbHVldG9vdGhTZXJ2aWNlcyIKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEu
ZW5kcG9pbnRzdHJlYW0ueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHBsYXli
YWNrc2Vzc2lvbi54cGMiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50
cmVtb3RlY29udHJvbHNlc3Npb24ueHBjIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb2Rl
Y29kZXIiX3MsCisgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvZW5jb2RlciJfcywg
ImNvbS5hcHBsZS5CbHVldG9vdGhTZXJ2aWNlcyJfcwogI2VuZGlmCiAgICAgfSk7CiAgICAgcmV0
dXJuIHNlcnZpY2VzOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLXN0YXRpYyBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgbm9uQnJvd3NlclNlcnZpY2VzKCkKK3N0YXRpYyBjb25zdCBWZWN0
b3I8QVNDSUlMaXRlcmFsPiYgbm9uQnJvd3NlclNlcnZpY2VzKCkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwotICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVy
RGVzdHJveWVkKFZlY3RvcjxTdHJpbmc+IHsKLSAgICAgICAgImNvbS5hcHBsZS5sc2Qub3BlbiIs
Ci0gICAgICAgICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiwKLSAgICAgICAgImNvbS5hcHBsZS5p
Y29uc2VydmljZXMiLAotICAgICAgICAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9s
IiwKLSAgICAgICAgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIgorICAg
IHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxB
U0NJSUxpdGVyYWw+IHsKKyAgICAgICAgImNvbS5hcHBsZS5sc2Qub3BlbiJfcywKKyAgICAgICAg
ImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiX3MsCisgICAgICAgICJjb20uYXBwbGUuaWNvbnNlcnZp
Y2VzIl9zLAorICAgICAgICAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIl9zLAor
ICAgICAgICAiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MKICAgICB9
KTsKICAgICByZXR1cm4gc2VydmljZXM7CiB9CiAKLXN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZGlhZ25vc3RpY1NlcnZpY2VzKCkKK3N0YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFs
PiYgZGlhZ25vc3RpY1NlcnZpY2VzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
ICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3Rv
cjxTdHJpbmc+IHsKLSAgICAgICAgImNvbS5hcHBsZS5kaWFnbm9zdGljZCIsCi0gICAgICAgICJj
b20uYXBwbGUub3NhbmFseXRpY3Mub3NhbmFseXRpY3NoZWxwZXIiCisgICAgc3RhdGljIGNvbnN0
IGF1dG8gc2VydmljZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPEFTQ0lJTGl0ZXJhbD4g
eworICAgICAgICAiY29tLmFwcGxlLmRpYWdub3N0aWNkIl9zLAorICAgICAgICAiY29tLmFwcGxl
Lm9zYW5hbHl0aWNzLm9zYW5hbHl0aWNzaGVscGVyIl9zCiAgICAgfSk7CiAgICAgcmV0dXJuIHNl
cnZpY2VzOwogfQogCi1zdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFneENvbXBpbGVyQ2xh
c3NlcygpCitzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGFneENvbXBpbGVyQ2xh
c3NlcygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBzdGF0aWMgY29uc3Qg
YXV0byBpb2tpdENsYXNzZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoVmVjdG9yPFN0cmluZz4gewot
ICAgICAgICAiQUdYQ29tbWFuZFF1ZXVlIiwKLSAgICAgICAgIkFHWERldmljZSIsCi0gICAgICAg
ICJBR1hTaGFyZWRVc2VyQ2xpZW50IiwKLSAgICAgICAgIklPQWNjZWxDb250ZXh0IiwKLSAgICAg
ICAgIklPQWNjZWxDb250ZXh0MiIsCi0gICAgICAgICJJT0FjY2VsRGV2aWNlIiwKLSAgICAgICAg
IklPQWNjZWxEZXZpY2UyIiwKLSAgICAgICAgIklPQWNjZWxTaGFyZWRVc2VyQ2xpZW50IiwKLSAg
ICAgICAgIklPQWNjZWxTaGFyZWRVc2VyQ2xpZW50MiIKLSAgICAgICAgIklPQWNjZWxTdWJtaXR0
ZXIyIiwKKyAgICBzdGF0aWMgY29uc3QgYXV0byBpb2tpdENsYXNzZXMgPSBtYWtlTmV2ZXJEZXN0
cm95ZWQoVmVjdG9yPEFTQ0lJTGl0ZXJhbD4geworICAgICAgICAiQUdYQ29tbWFuZFF1ZXVlIl9z
LAorICAgICAgICAiQUdYRGV2aWNlIl9zLAorICAgICAgICAiQUdYU2hhcmVkVXNlckNsaWVudCJf
cywKKyAgICAgICAgIklPQWNjZWxDb250ZXh0Il9zLAorICAgICAgICAiSU9BY2NlbENvbnRleHQy
Il9zLAorICAgICAgICAiSU9BY2NlbERldmljZSJfcywKKyAgICAgICAgIklPQWNjZWxEZXZpY2Uy
Il9zLAorICAgICAgICAiSU9BY2NlbFNoYXJlZFVzZXJDbGllbnQiX3MsCisgICAgICAgICJJT0Fj
Y2VsU2hhcmVkVXNlckNsaWVudDIiX3MsCisgICAgICAgICJJT0FjY2VsU3VibWl0dGVyMiJfcywK
ICAgICB9KTsKICAgICByZXR1cm4gaW9raXRDbGFzc2VzOwogfQpAQCAtMzc1LDcgKzM3NSw3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3Qg
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYW5k
IHJlbGF0ZWQgcGFyYW1ldGVyIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzI5NDQ4MzY4PiBpcyBmaXhl
ZC4KICAgICBpZiAoaXNTYWZhcmkgJiYgbWVkaWFEZXZpY2VzRW5hYmxlZCAmJiAhbV9kZWZhdWx0
UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCgp
ICYmICFtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQ
cm9jZXNzRW5hYmxlZCgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiLCBwYXJhbWV0
ZXJzLmF1ZGlvQ2FwdHVyZUV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWlj
cm9waG9uZSJfcywgcGFyYW1ldGVycy5hdWRpb0NhcHR1cmVFeHRlbnNpb25IYW5kbGUpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKQEAgLTM5MSw3ICszOTEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcwog
I2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoV2ViQ29yZTo6ZGV2aWNlSGFzQUdYQ29tcGlsZXJT
ZXJ2aWNlKCkpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGNvbXBpbGVyU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLkFHWENvbXBpbGVyU2VydmljZSIsIFdURjo6bnVs
bG9wdCwgY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLkFHWENvbXBpbGVy
U2VydmljZSJfcywgV1RGOjpudWxsb3B0LCBjb21waWxlclNlcnZpY2VFeHRlbnNpb25IYW5kbGUp
OwogICAgICAgICBwYXJhbWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUoY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKICAgICB9CiAjZW5kaWYKQEAg
LTQxMCwzMSArNDEwLDMxIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgaWYgKFtnZXRORUZpbHRlclNvdXJjZUNsYXNzKCkgZmlsdGVyUmVxdWlyZWRd
KSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoZWxwZXJIYW5kbGU7Ci0gICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBs
ZS5uZWhlbHBlciIsIFdURjo6bnVsbG9wdCwgaGVscGVySGFuZGxlKTsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5laGVscGVy
Il9zLCBXVEY6Om51bGxvcHQsIGhlbHBlckhhbmRsZSk7CiAgICAgICAgIHBhcmFtZXRlcnMubmVI
ZWxwZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhlbHBlckhhbmRsZSk7CiAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBtYW5hZ2VySGFuZGxlOwogI2lmIFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMAotICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNz
aW9ubWFuYWdlciIsIFdURjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Np
b25tYW5hZ2VyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5kbGUpOwogI2Vsc2UKLSAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxl
Lm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJI
YW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciJfcywgV1RGOjpu
dWxsb3B0LCBtYW5hZ2VySGFuZGxlKTsKICNlbmRpZgogICAgICAgICBwYXJhbWV0ZXJzLm5lU2Vz
c2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKG1hbmFnZXJIYW5kbGUpOwogICAg
IH0KICAgICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkgPSBzeXN0ZW1IYXNCYXR0ZXJ5KCk7
CiAKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWFwREJIYW5kbGU7Ci0gICAgaWYgKFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5sc2Qu
bWFwZGIiLCBXVEY6Om51bGxvcHQsIG1hcERCSGFuZGxlLCBTYW5kYm94RXh0ZW5zaW9uOjpGbGFn
czo6Tm9SZXBvcnQpKQorICAgIGlmIChTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JN
YWNoTG9va3VwKCJjb20uYXBwbGUubHNkLm1hcGRiIl9zLCBXVEY6Om51bGxvcHQsIG1hcERCSGFu
ZGxlLCBTYW5kYm94RXh0ZW5zaW9uOjpGbGFnczo6Tm9SZXBvcnQpKQogICAgICAgICBwYXJhbWV0
ZXJzLm1hcERCRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShtYXBEQkhhbmRsZSk7CiAjZW5kaWYK
ICAgICAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKFtnZXRXZWJGaWx0ZXJFdmFsdWF0b3JD
bGFzcygpIGlzTWFuYWdlZFNlc3Npb25dKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGU7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVu
dEZpbHRlci5yZW1vdGVVSSIsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnVpa2l0LnZp
ZXdzZXJ2aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIl9zLCBXVEY6Om51
bGxvcHQsIGhhbmRsZSk7CiAgICAgICAgIHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lv
bkhhbmRsZSA9IFdURk1vdmUoaGFuZGxlKTsKIAogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgICAgIGlmIChTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuZnJvbnRi
b2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyIsIFdURjo6bnVsbG9wdCwgZnJvbnRib2FyZFNlcnZpY2VF
eHRlbnNpb25IYW5kbGUpKQorICAgICAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMi
X3MsIFdURjo6bnVsbG9wdCwgZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpKQogICAg
ICAgICAgICAgcGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUoZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOwogICAgIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlD
b2NvYS5tbQppbmRleCBiODJlYjI2YzU1OTM1YzE1N2RmMzc4M2JhNmVkMjEwNjAyYmFjN2YyLi44
NjYyMzhiYWZlOGYwNWMxN2EyM2Q2ZjljYzk5YTIxMDE0ZGQ5MzEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAt
MjAyLDcgKzIwMiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjplbmFibGVSZW1vdGVJbnNwZWN0
b3JJZk5lZWRlZCgpCiAgICAgICAgIHJldHVybjsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlOwogICAgIGF1dG8gYXVkaXRUb2tlbiA9IGNvbm5lY3Rpb24oKSA/IGNvbm5lY3Rp
b24oKS0+Z2V0QXVkaXRUb2tlbigpIDogV1RGOjpudWxsb3B0OwotICAgIGlmIChTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUud2ViaW5zcGVjdG9y
IiwgYXVkaXRUb2tlbiwgaGFuZGxlKSkKKyAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLndlYmluc3BlY3RvciJfcywgYXVkaXRUb2tl
biwgaGFuZGxlKSkKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5hYmxlUmVt
b3RlV2ViSW5zcGVjdG9yKGhhbmRsZSksIDApOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IDdkMzA1OGVjNzRhNGY5
OWJlMTE2YzkwYzNlZjdkMjI1NzJmZTg2ZWUuLmE1MjM3NGQ3NDY0ZDMzOTA3YzUxMzkxYzA4MDYw
ZmNkMDc4OTUzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuY3BwCkBAIC0xMDIsMTIgKzEwMiwxMiBAQCBHUFVQcm9jZXNzUHJveHkmIEdQVVBy
b2Nlc3NQcm94eTo6c2luZ2xldG9uKCkKICAgICAgICAgYm9vbCBuZWVkc0NhbWVyYVNhbmRib3hF
eHRlbnNpb24gPSBzaG91bGRDcmVhdGVDYW1lcmFTYW5kYm94RXh0ZW5zaW9uKCk7CiAgICAgICAg
IGJvb2wgbmVlZHNNaWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbiA9IHNob3VsZENyZWF0ZU1pY3Jv
cGhvbmVTYW5kYm94RXh0ZW5zaW9uKCk7CiAgICAgICAgIGlmIChuZWVkc0NhbWVyYVNhbmRib3hF
eHRlbnNpb24pCi0gICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JH
ZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0LmNhbWVyYSIsIHBhcmFtZXRlcnMuY2Ft
ZXJhU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0LmNhbWVy
YSJfcywgcGFyYW1ldGVycy5jYW1lcmFTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKICAgICAgICAg
aWYgKG5lZWRzTWljcm9waG9uZVNhbmRib3hFeHRlbnNpb24pCi0gICAgICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Vi
a2l0Lm1pY3JvcGhvbmUiLCBwYXJhbWV0ZXJzLm1pY3JvcGhvbmVTYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKTsKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVy
aWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSJfcywgcGFyYW1ldGVycy5t
aWNyb3Bob25lU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAg
ICAgICBpZiAobmVlZHNDYW1lcmFTYW5kYm94RXh0ZW5zaW9uIHx8IG5lZWRzTWljcm9waG9uZVNh
bmRib3hFeHRlbnNpb24pCi0gICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCIsIFdURjo6bnVsbG9wdCwgcGFyYW1ldGVy
cy50Y2NTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBXVEY6Om51
bGxvcHQsIHBhcmFtZXRlcnMudGNjU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKICNl
bmRpZgogICAgICAgICBwYXJhbWV0ZXJzLnBhcmVudFBJRCA9IGdldEN1cnJlbnRQcm9jZXNzSUQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA3ZjgyOWU3MWY5MWVj
NzdjNmYyNzIzNjU5NmUzYTRiYmRhNmQ5ODdmLi4xN2JhNTlkZjVhZDAxNzJlYjg2ZWNkM2YzMWI0
NTdjZjIzNThhNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0y
NTUsNyArMjU1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYg
KCFtX2hhc0NyZWF0ZWRTYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkgewotICAgICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2Qi
LCBtX3BhZ2UucHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGUp
OworICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cCgiY29tLmFwcGxlLnRjY2QiX3MsIG1fcGFnZS5wcm9jZXNzKCkuY29ubmVjdGlvbigpLT5nZXRB
dWRpdFRva2VuKCksIGhhbmRsZSk7CiAgICAgICAgICAgICBtX2hhc0NyZWF0ZWRTYW5kYm94RXh0
ZW5zaW9uRm9yVENDRCA9IHRydWU7CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNDA4YzlmOTVjMmViZTYxNjhjMjI3NGJkNmM2
MThjZGU2ZTc5Y2U2Mi4uZWIxOGE1MGNhZmQzZjMwYmNkMDk0ODY0NjgyZjA5ZjE3MDljZmRkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NjcyLDkgKzY2
NzIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRo
RGlzcGxheVN0cmluZ0FuZEljb24oY29uc3QgVmVjdAogCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGZyb250Ym9hcmRTZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24sIGljb25TZXJ2aWNlc1Nh
bmRib3hFeHRlbnNpb247CiAjaWYgSEFWRShGUk9OVEJPQVJEX1NZU1RFTV9BUFBfU0VSVklDRVMp
Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFw
cGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiLCBXVEY6Om51bGxvcHQsIGZyb250Ym9h
cmRTZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24pOworICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZp
Y2VzIl9zLCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24p
OwogI2VuZGlmCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cCgiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIsIFdURjo6bnVsbG9wdCwgaWNvblNlcnZpY2VzU2Fu
ZGJveEV4dGVuc2lvbik7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLmljb25zZXJ2aWNlcyJfcywgV1RGOjpudWxsb3B0LCBpY29uU2Vy
dmljZXNTYW5kYm94RXh0ZW5zaW9uKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRp
ZENob29zZUZpbGVzRm9yT3BlblBhbmVsV2l0aERpc3BsYXlTdHJpbmdBbmRJY29uKGZpbGVVUkxz
LCBkaXNwbGF5U3RyaW5nLCBpY29uRGF0YSA/IGljb25EYXRhLT5kYXRhUmVmZXJlbmNlKCkgOiBJ
UEM6OkRhdGFSZWZlcmVuY2UoKSwgZnJvbnRib2FyZFNlcnZpY2VzU2FuZGJveEV4dGVuc2lvbiwg
aWNvblNlcnZpY2VzU2FuZGJveEV4dGVuc2lvbikpOwogCkBAIC03ODU3LDkgKzc4NTcsOSBAQCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJz
KFdlYlByb2Nlc3NQcm94eSYgcHJvYwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpICYm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKG1fcHJlZmVyZW5jZXMtPmF0dGFjaG1lbnRF
bGVtZW50RW5hYmxlZCgpICYmICFtX3Byb2Nlc3MtPmhhc0lzc3VlZEF0dGFjaG1lbnRFbGVtZW50
UmVsYXRlZFNhbmRib3hFeHRlbnNpb25zKCkpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cCgiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiLCBXVEY6
Om51bGxvcHQsIGhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9z
LCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CiAgICAgICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZEV4
dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoaGFuZGxlKTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIsIFdU
Rjo6bnVsbG9wdCwgaGFuZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmljb25zZXJ2aWNlcyJfcywgV1RGOjpudWxsb3B0
LCBoYW5kbGUpOwogICAgICAgICBwYXJhbWV0ZXJzLmljb25TZXJ2aWNlc0V4dGVuc2lvbkhhbmRs
ZSA9IFdURk1vdmUoaGFuZGxlKTsKICAgICAgICAgbV9wcm9jZXNzLT5zZXRIYXNJc3N1ZWRBdHRh
Y2htZW50RWxlbWVudFJlbGF0ZWRTYW5kYm94RXh0ZW5zaW9ucygpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGFlYWUyOWEx
YTk2MGQ2YjRlNTRiYTMzMDE3OTAxMGY4NjJmNjJjMmIuLjFhYWI4ZjU5NWRmZTJiN2ZhZjRlMWZk
MmZhOGJlZTRiNzE1MmE5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQpAQCAtMTY0Miw4ICsxNjQyLDggQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmlzVmlzaWJsZUNoYW5nZWQoYm9vbCBpc1Zpc2libGUpCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z3Jh
bnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMoKQogewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBtb2JpbGVBc3NldEhhbmRsZSwgbW9iaWxlQXNzZXRIYW5kbGVWMjsKLSAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubW9iaWxlYXNzZXRk
IiwgV1RGOjpudWxsb3B0LCBtb2JpbGVBc3NldEhhbmRsZSk7Ci0gICAgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZC52MiIs
IFdURjo6bnVsbG9wdCwgbW9iaWxlQXNzZXRIYW5kbGVWMik7CisgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCJfcywg
V1RGOjpudWxsb3B0LCBtb2JpbGVBc3NldEhhbmRsZSk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZC52MiJfcywg
V1RGOjpudWxsb3B0LCBtb2JpbGVBc3NldEhhbmRsZVYyKTsKICAgICBwcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6R3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMobW9iaWxlQXNz
ZXRIYW5kbGUsIG1vYmlsZUFzc2V0SGFuZGxlVjIpLCAwKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>