<?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>163163</bug_id>
          
          <creation_ts>2016-10-07 19:36:29 -0700</creation_ts>
          <short_desc>Rename CryptoAlgorithmParameters to CryptoAlgorithmParametersDeprecated</short_desc>
          <delta_ts>2016-10-10 15:10:00 -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>WebCore Misc.</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>
          
          <blocked>160883</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1237911</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-10-07 19:36:29 -0700</bug_when>
    <thetext>For the current CryptoAlgorithmParameters, it is a subclass of RefCounted&lt;&gt; which is non copyable. However, in order to work with the code generator to generate binding to convert a dictionary type to the corresponding C++ native type, it requires the native type copyable. Given the fact that many places in the old WebkitSubtleCrypto interface requires the CryptoAlgorithmParameters to be RefCounted, it will be hard to get rid of RefCounted&lt;&gt; directly. Therefore, I come out with the idea of renaming it to CryptoAlgorithmParametersDeprecated and have a new CryptoAlgorithmParameters for the new SubtleCrypto interface. BTW, the main reason for doing this is that I really want to use the code generator to generate corresponding binding codes as it will be more readable and easier to maintain. P.S. WebkitSubtleCrypto does the conversion by itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237912</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-10-07 19:37:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/28681544&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237913</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-10-07 19:37:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/28681547&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237918</commentid>
    <comment_count>3</comment_count>
      <attachid>291005</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-10-07 20:16:56 -0700</bug_when>
    <thetext>Created attachment 291005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237919</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-07 20:18:35 -0700</bug_when>
    <thetext>Attachment 291005 did not pass style-queue:


ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:60:  CryptoAlgorithmRSA_OAEP::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:72:  CryptoAlgorithmRSA_OAEP::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:84:  CryptoAlgorithmRSA_OAEP::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:96:  CryptoAlgorithmRSA_OAEP::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:107:  CryptoAlgorithmRSA_OAEP::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:62:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:99:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:38:  CryptoAlgorithmRSA_OAEP::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:59:  CryptoAlgorithmRSA_OAEP::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:59:  CryptoAlgorithmAES_CBC::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:68:  CryptoAlgorithmAES_CBC::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:80:  CryptoAlgorithmAES_CBC::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:92:  CryptoAlgorithmAES_CBC::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:105:  CryptoAlgorithmAES_CBC::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:67:  CryptoAlgorithmAES_KW::encryptForWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:77:  CryptoAlgorithmAES_KW::decryptForUnwrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:87:  CryptoAlgorithmAES_KW::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:100:  CryptoAlgorithmAES_KW::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:60:  CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:72:  CryptoAlgorithmRSASSA_PKCS1_v1_5::sign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:84:  CryptoAlgorithmRSASSA_PKCS1_v1_5::verify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:96:  CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:107:  CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:68:  CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:78:  CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:88:  CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:99:  CryptoAlgorithmRSAES_PKCS1_v1_5::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:38:  transformAES_CBC is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:85:  CryptoAlgorithmAES_CBC::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:90:  CryptoAlgorithmAES_CBC::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 30 in 47 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238497</commentid>
    <comment_count>5</comment_count>
      <attachid>291153</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-10-10 13:35:10 -0700</bug_when>
    <thetext>Created attachment 291153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238500</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-10 13:37:33 -0700</bug_when>
    <thetext>Attachment 291153 did not pass style-queue:


ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:60:  CryptoAlgorithmRSA_OAEP::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:72:  CryptoAlgorithmRSA_OAEP::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:84:  CryptoAlgorithmRSA_OAEP::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:96:  CryptoAlgorithmRSA_OAEP::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:107:  CryptoAlgorithmRSA_OAEP::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:62:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:99:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:38:  CryptoAlgorithmRSA_OAEP::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:59:  CryptoAlgorithmRSA_OAEP::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:38:  transformAES_CBC is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:85:  CryptoAlgorithmAES_CBC::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:90:  CryptoAlgorithmAES_CBC::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:59:  CryptoAlgorithmAES_CBC::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:68:  CryptoAlgorithmAES_CBC::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:80:  CryptoAlgorithmAES_CBC::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:92:  CryptoAlgorithmAES_CBC::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:105:  CryptoAlgorithmAES_CBC::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:67:  CryptoAlgorithmAES_KW::encryptForWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:77:  CryptoAlgorithmAES_KW::decryptForUnwrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:87:  CryptoAlgorithmAES_KW::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:100:  CryptoAlgorithmAES_KW::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:60:  CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:72:  CryptoAlgorithmRSASSA_PKCS1_v1_5::sign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:84:  CryptoAlgorithmRSASSA_PKCS1_v1_5::verify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:96:  CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:107:  CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:68:  CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:78:  CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:88:  CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:99:  CryptoAlgorithmRSAES_PKCS1_v1_5::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:38:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:50:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 32 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238525</commentid>
    <comment_count>7</comment_count>
      <attachid>291159</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-10-10 14:11:30 -0700</bug_when>
    <thetext>Created attachment 291159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238528</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-10 14:14:48 -0700</bug_when>
    <thetext>Attachment 291159 did not pass style-queue:


ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:60:  CryptoAlgorithmRSA_OAEP::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:72:  CryptoAlgorithmRSA_OAEP::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:84:  CryptoAlgorithmRSA_OAEP::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:96:  CryptoAlgorithmRSA_OAEP::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:107:  CryptoAlgorithmRSA_OAEP::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:38:  CryptoAlgorithmAES_CBC::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:50:  CryptoAlgorithmAES_CBC::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:62:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:99:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:38:  CryptoAlgorithmRSA_OAEP::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:50:  CryptoAlgorithmRSA_OAEP::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:38:  CryptoAlgorithmRSA_OAEP::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:59:  CryptoAlgorithmRSA_OAEP::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:38:  transformAES_CBC is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:85:  CryptoAlgorithmAES_CBC::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:90:  CryptoAlgorithmAES_CBC::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:59:  CryptoAlgorithmAES_CBC::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:68:  CryptoAlgorithmAES_CBC::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:80:  CryptoAlgorithmAES_CBC::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:92:  CryptoAlgorithmAES_CBC::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:105:  CryptoAlgorithmAES_CBC::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:67:  CryptoAlgorithmAES_KW::encryptForWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:77:  CryptoAlgorithmAES_KW::decryptForUnwrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:87:  CryptoAlgorithmAES_KW::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:100:  CryptoAlgorithmAES_KW::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:60:  CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:72:  CryptoAlgorithmRSASSA_PKCS1_v1_5::sign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:84:  CryptoAlgorithmRSASSA_PKCS1_v1_5::verify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:96:  CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:107:  CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:68:  CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:78:  CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:88:  CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:99:  CryptoAlgorithmRSAES_PKCS1_v1_5::importKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:38:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:50:  CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 36 in 51 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238538</commentid>
    <comment_count>9</comment_count>
      <attachid>291159</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-10 14:25:02 -0700</bug_when>
    <thetext>Comment on attachment 291159
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=291159&amp;action=review

&gt; Source/WebCore/ChangeLog:7
&gt; +        Reviewed by NOBODY (OOPS!).

Add a line:

&quot;Replace all uses of &apos;CryptoAlgorithmParameters&apos; with &apos;CryptoAlgorithmParametersDeprecated&apos; in preparation for a new CryptoAlgorithmParameters type.&quot;

&gt; Source/WebCore/ChangeLog:15
&gt; +        (WebCore::createAesKeyGenParams):

Get rid of all of these empty function definitions. I think the general &quot;rename&quot; comment above is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238541</commentid>
    <comment_count>10</comment_count>
      <attachid>291159</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-10-10 14:32:56 -0700</bug_when>
    <thetext>Comment on attachment 291159
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=291159&amp;action=review

Thanks Brent for reviewing my patch.

&gt;&gt; Source/WebCore/ChangeLog:7
&gt;&gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; Add a line:
&gt; 
&gt; &quot;Replace all uses of &apos;CryptoAlgorithmParameters&apos; with &apos;CryptoAlgorithmParametersDeprecated&apos; in preparation for a new CryptoAlgorithmParameters type.&quot;

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:15
&gt;&gt; +        (WebCore::createAesKeyGenParams):
&gt; 
&gt; Get rid of all of these empty function definitions. I think the general &quot;rename&quot; comment above is sufficient.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238562</commentid>
    <comment_count>11</comment_count>
      <attachid>291170</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-10-10 15:07:46 -0700</bug_when>
    <thetext>Created attachment 291170
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238563</commentid>
    <comment_count>12</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-10-10 15:10:00 -0700</bug_when>
    <thetext>Committed r207027: &lt;http://trac.webkit.org/changeset/207027&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291005</attachid>
            <date>2016-10-07 20:16:56 -0700</date>
            <delta_ts>2016-10-10 13:35:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163163-20161007201341.patch</filename>
            <type>text/plain</type>
            <size>189361</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE3YjU5MWIyYThkYTdm
MWUwNDMyM2M0ZTdhYzRjNjBjMTM0YjRhNy4uNGY5NzhjZDg4ODc0YTE3ODkzYzkxZTkzYjgxZjQw
YzdiZGE5MmM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxNi0xMC0wNyAgSmll
d2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzIHRvIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNjMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NjgxNTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3JzLiBObyBu
ZXcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25D
bGVhcktleS5jcHA6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBZXNDYmNQYXJhbXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQWVzS2V5R2VuUGFyYW1zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhtYWNQ
YXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSG1hY0tleVBhcmFtcyk6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVSc2FLZXlHZW5QYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlUnNhS2V5UGFyYW1zV2l0aEhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUnNhT2Fl
cFBhcmFtcyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSc2FTc2FQYXJhbXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24pOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JEZXJpdmVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yRXhwb3J0S2V5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0
b0tleVNlcmlhbGl6YXRpb25KV0suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSE1BQ1Bh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhI
YXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVj
b25jaWxlQWxnb3JpdGhtKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlh
bGl6YXRpb25KV0suaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbXBvcnRLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86OmltcG9ydEtleSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1dlYktpdFN1YnRsZUNyeXB0bzo6dW53cmFwS2V5KToKKyAgICAgICAgKiBjcnlwdG8vQ3J5
cHRvQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6ZW5j
cnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG06OmRlY3J5cHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpzaWduKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobTo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobTo6ZGlnZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6Z2VuZXJh
dGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVLZXkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6aW1wb3J0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobTo6ZW5jcnlwdEZvcldyYXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvQWxnb3JpdGhtOjpkZWNyeXB0Rm9yVW53cmFwS2V5KToKKyAgICAgICAgKiBjcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtLmg6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkOjp+Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ6OnBhcmFtZXRlcnNDbGFz
cyk6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29yaXRobU1hdGNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmdlbmVyYXRlS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmltcG9ydEtleSk6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAqIGNy
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmVuY3J5cHRGb3JXcmFwS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6ZGVjcnlwdEZvclVud3JhcEtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmdlbmVyYXRlS2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6aW1wb3J0S2V5KToKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNyeXB0b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6c2lnbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1ITUFDOjp2ZXJpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtSE1BQzo6aW1wb3J0S2V5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81OjplbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmRlY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6aW1wb3J0S2V5KToKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzU6OmtleUFsZ29yaXRobU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnNpZ24pOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnZlcmlmeSk6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmltcG9ydEtleSk6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6a2V5
QWxnb3JpdGhtTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUDo6ZW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FF
UDo6ZGVjcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6
Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6
OmltcG9ydEtleSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEExLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVNIQTE6OmRpZ2VzdCk6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OmRpZ2VzdCk6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0FsZ29yaXRobVNIQTI1Njo6ZGlnZXN0KToKKyAgICAgICAgKiBjcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtU0hBMzg0OjpkaWdlc3QpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTM4NC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTUxMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1T
SEE1MTI6OmRpZ2VzdCk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlv
blJhdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3Ojpy
ZWNvbmNpbGVBbGdvcml0aG0pOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlh
bGl6YXRpb25SYXcuaDoKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19D
QkNNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNmb3JtQUVTX0NCQyk6CisgICAgICAg
IChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KToK
KyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtVmVyaWZ5KToKKyAgICAgICAg
KiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9y
bVNpZ24pOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzU6OnBsYXRmb3JtVmVyaWZ5KToKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJTQV9P
QUVQOjpwbGF0Zm9ybUVuY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGht
UlNBX09BRVA6OnBsYXRmb3JtRGVjcnlwdCk6CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
LmguCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2Vu
UGFyYW1zRGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmguCisgICAgICAgICogY3J5
cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29y
aXRobUhtYWNLZXlQYXJhbXMuaC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9B
bGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oLgorICAgICAg
ICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJl
Y2F0ZWQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Ny
eXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGht
UnNhS2V5UGFyYW1zV2l0aEhhc2guaC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5o
LgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFt
c0RlcHJlY2F0ZWQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oLgorCiAyMDE2LTEwLTA2ICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZHVtbXkgU3VidGxl
Q3J5cHRvIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCmluZGV4IGZjZGE0ZTBmODc4
NjZlYmUzZTg1NWViNzQ2ZTkzNmYxY2NmOTM4NzkuLjlkYTc3ODYxY2QzZGIzZWU0N2E4ZDY0NjQw
ZWRmOTM2NmQzYjlkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAKQEAgLTI5LDcgKzI5LDYg
QEAKICNpbmNsdWRlICJBcnJheVZhbHVlLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1
ZW5jZS5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRF
eGVjU3RhdGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiNDllZWY0OTU0NDdmOTcxOGU0OTk1MjY0ODIxMmMzZjExMTI4YTc5
Li4zY2E1MzQ3ZTQxMjc1NzUxNDFiYjQ1YTY4MzUzNDRkMmQxYWI0OTI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTQ4LDcg
KzU5NDgsNyBAQAogCQlFMTI1RjgzNTE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjgz
MzE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5jcHAgKi87IH07CiAJCUUxMjVGODM2
MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzNDE4MjJGMThBMDBEODRDRDkgLyogQ3J5
cHRvS2V5SE1BQy5oICovOyB9OwogCQlFMTI1RjgzODE4MjJGMUVCMDBEODRDRDkgLyogQ3J5cHRv
QWxnb3JpdGhtSE1BQ01hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTI1RjgzNzE4MjJGMUVCMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1B
Q01hYy5jcHAgKi87IH07Ci0JCUUxMjVGODNBMTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMjVGODM5MTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXMuaCAqLzsgfTsKKwkJRTEyNUY4M0ExODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0Fs
Z29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODM5MTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9B
bGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxMjVGODNEMTgyNDEx
RTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4M0IxODI0MTFFNzAwRDg0Q0Q5IC8q
IEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHAgKi87IH07CiAJCUUxMjVGODNFMTgyNDExRTcwMEQ4
NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODNDMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0
b09wZXJhdGlvbkRhdGEuaCAqLzsgfTsKIAkJRTEyNUY4NDExODI0MjUzQTAwRDg0Q0Q5IC8qIENy
eXB0b0FsZ29yaXRobUFFU19DQkMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTEyNUY4M0YxODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRo
bUFFU19DQkMuY3BwICovOyB9OwpAQCAtNjA0Miw5ICs2MDQyLDkgQEAKIAkJRTE5QUMzRjMxODI0
REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTM4NC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5QUMzRUIxODI0REM3OTAwMzQ5NDI2IC8q
IENyeXB0b0FsZ29yaXRobVNIQTM4NC5oICovOyB9OwogCQlFMTlBQzNGNDE4MjREQzc5MDAzNDk0
MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0VDMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9B
bGdvcml0aG1TSEE1MTIuY3BwICovOyB9OwogCQlFMTlBQzNGNTE4MjREQzc5MDAzNDk0MjYgLyog
Q3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTlBQzNFRDE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGht
U0hBNTEyLmggKi87IH07Ci0JCUUxOUFDM0Y3MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdv
cml0aG1BZXNLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxOUFDM0Y2MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1B
ZXNLZXlHZW5QYXJhbXMuaCAqLzsgfTsKKwkJRTE5QUMzRjcxODI0RTVEMTAwMzQ5NDI2IC8qIENy
eXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0Y2MTgyNEU1RDEwMDM0OTQyNiAv
KiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUx
OUFDM0Y5MTgyNTY2RjcwMDM0OTQyNiAvKiBDcnlwdG9LZXlNYWMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5QUMzRjgxODI1NjZGNzAwMzQ5NDI2
IC8qIENyeXB0b0tleU1hYy5jcHAgKi87IH07Ci0JCUUxOURBMjlDMTgxODlBREQwMDA4OEJDOCAv
KiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRv
QWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oICovOyB9OworCQlFMTlEQTI5QzE4MTg5QUREMDAwODhC
QzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOURBMjlCMTgxODlBREQwMDA4
OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oICovOyB9Owog
CQlFMUExNDcwODExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTE0NzA3MTEx
MDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oICovOyB9OwogCQlFMUEz
MTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUEzMTYyQjEzNEJD
MzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFBMzE2MkUxMzRCQzMyRDAw
N0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTMxNjJDMTM0QkMzMkQwMDdDOUE0RiAv
KiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0gKi87IH07CkBAIC02MDcxLDEyICs2MDcx
LDEyIEBACiAJCUUxQkI4NEFEMTgyMkNBNzQwMDUyNTA0MyAvKiBDcnlwdG9BbGdvcml0aG1SZWdp
c3RyeU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUJCODRBQzE4MjJDQTc0MDA1MjUwNDMgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMu
Y3BwICovOyB9OwogCQlFMUJEMzMxOTE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFCRDMzMTcxODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJT
QVNTQV9QS0NTMV92MV81LmNwcCAqLzsgfTsKIAkJRTFCRDMzMUExODJEOERERDAwQzA1RDlGIC8q
IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxODE4MkQ4REREMDBDMDVEOUYgLyogQ3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCAqLzsgfTsKLQkJRTFCRDMzMUMxODJEOEVF
OTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlG
IC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oICovOyB9OwotCQlFMUJEMzMxRTE4MkQ4
RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxRDE4MkQ4RjQyMDBD
MDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi87IH07CisJCUUxQkQz
MzFDMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNh
dGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJE
MzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVj
YXRlZC5oICovOyB9OworCQlFMUJEMzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRDMzMUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0Fs
Z29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFCRTUxMkQwQ0Y2
QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJFNTEyQjBDRjZDNTEyMDAyRUE5NTkgLyogWFNM
VFVuaWNvZGVTb3J0LmNwcCAqLzsgfTsKIAkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhT
TFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFCRTUxMkMwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oICovOyB9
OwogCQlFMUMyNjZEODE4MzE3QUI0MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzVNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFDMjY2RDYxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81TWFjLmNwcCAqLzsgfTsKLQkJRTFDMjY2REIxODMxOTkzNTAwM0Y4QjMzIC8qIENy
eXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCAqLzsgfTsKKwkJRTFDMjY2REIxODMx
OTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVj
YXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFD
MjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhI
YXNoRGVwcmVjYXRlZC5oICovOyB9OwogCQlFMUMyNjZERTE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5
cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2REMxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzLmNwcCAqLzsgfTsKIAkJRTFDMjY2REYxODMxOUYzMTAwM0Y4QjMzIC8q
IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUMyNjZERDE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHMuaCAqLzsgfTsKIAkJRTFDMzYyRUYwRUFGMkFBOTAwNzQxMEJDIC8q
IEpTV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxQzM2MkVEMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmgg
Ki87IH07CkBAIC02MDkzLDkgKzYwOTMsOSBAQAogCQlFMUM0REU2RTBFQTc1QzY1MDAyM0NDRDYg
LyogQWN0aXZlRE9NT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3Qu
Y3BwICovOyB9OwogCQlFMUM2NTcxMjE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxQzY1NzEwMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnkuY3BwICovOyB9OwogCQlFMUM2NTcxMzE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUM2NTcxMTE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5LmggKi87IH07Ci0JCUUxQzY1NzFGMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9B
bGdvcml0aG1IbWFjUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1h
Y1BhcmFtcy5oICovOyB9OworCQlFMUM2NTcxRjE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY1NzFFMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oICovOyB9OwogCQlFMUM2NTcyNTE4MTZFNjlEMDAy
NTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MjQxODE2RTY5RDAwMjU2Q0REIC8qIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCAqLzsgfTsKLQkJRTFDNjU3MjcxODE2RjlGRTAwMjU2
Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi87IH07CisJCUUxQzY1NzI3MTgxNkY5RkUwMDI1NkNE
RCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MjYxODE2RjlGRTAwMjU2Q0RE
IC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQzhC
RTVEMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dvcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM4QkU1QzBFOEJEMTVBMDA2NENCN0QgLyogSlNX
b3JrZXIuY3BwICovOyB9OwogCQlFMUM5NEFGOTE5MTMwM0YwMDBENUE4OTMgLyogQmxvYlBhcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzk0QUY3
MTkxMzAzRjAwMEQ1QTg5MyAvKiBCbG9iUGFydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxQ0E1Q0JDMEU4Q0RDQUYwMEU4RUY5MCAvKiBKU1dv
cmtlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUNBNUNCQjBFOENEQ0FGMDBFOEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwICovOyB9
OwpAQCAtNjEyNSw3ICs2MTI1LDcgQEAKIAkJRTFGRTEzNzAxODNGRUNGMDAwODkyRjEzIC8qIENy
eXB0b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzZFMTgzRkVDRjAwMDg5MkYxMyAvKiBDcnlwdG9BbGdv
cml0aG1SU0FfT0FFUE1hYy5jcHAgKi87IH07CiAJCUUxRkUxMzc0MTg0MDJBNjcwMDg5MkYxMyAv
KiBDb21tb25DcnlwdG9VdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNzIxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0
b1V0aWxpdGllcy5jcHAgKi87IH07CiAJCUUxRkUxMzc1MTg0MDJBNjcwMDg5MkYxMyAvKiBDb21t
b25DcnlwdG9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRkUxMzczMTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRp
ZXMuaCAqLzsgfTsKLQkJRTFGRTEzNzcxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRkUxMzc2MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVw
UGFyYW1zLmggKi87IH07CisJCUUxRkUxMzc3MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdv
cml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0Fs
Z29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxRkUxMzdBMTg0RDIx
QkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNzgxODREMjFCQjAwODkyRjEzIC8q
IENyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAgKi87IH07CiAJCUUxRkUxMzdCMTg0RDIxQkIwMDg5
MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc5MTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9B
bGdvcml0aG1BRVNfS1cuaCAqLzsgfTsKIAkJRTFGRTEzN0UxODREMjcwMjAwODkyRjEzIC8qIENy
eXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3QzE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXTWFjLmNwcCAqLzsgfTsKQEAgLTEzNTQ3LDcgKzEzNTQ3LDcgQEAKIAkJRTEyNUY4
MzMxODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvS2V5SE1BQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxMjVGODM0MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0tleUhNQUMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEyNUY4MzcxODIyRjFFQjAwRDg0Q0Q5IC8qIENyeXB0
b0FsZ29yaXRobUhNQUNNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUUxMjVGODM5MTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQWVz
Q2JjUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMjVGODM5MTgyNDEw
NDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
c0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEyNUY4M0IxODI0
MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI1RjgzQzE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlw
dG9PcGVyYXRpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3J5
cHRvT3BlcmF0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI1Rjgz
RjE4MjQyNTNBMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNjQ3LDkgKzEzNjQ3LDkgQEAKIAkJRTE5
QUMzRUIxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTM4NC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEEzODQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMzRUMxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0
b0FsZ29yaXRobVNIQTUxMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTlBQzNFRDE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVNIQTUxMi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTlBQzNGNjE4MjRFNUQxMDAzNDk0MjYgLyog
Q3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTlBQzNGNjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3Jp
dGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0Y4MTgyNTY2RjcwMDM0OTQyNiAvKiBDcnlw
dG9LZXlNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRv
S2V5TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTE5REEyOUIxODE4OUFE
RDAwMDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5
cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8q
IENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxQTMxNjJCMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRy
YXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTlNBdHRyaWJ1dGVkU3Ry
aW5nRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQTMxNjJDMTM0QkMz
MkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzY4MywxNCArMTM2ODMsMTQgQEAK
IAkJRTFCQTY3MTYxNzQyQkRFMDAwQzIwMjUxIC8qIGxpYldlYkNvcmVUZXN0U2hpbS5keWxpYiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVk
Lm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYldlYkNvcmVUZXN0
U2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRTFCQTY3
MTkxNzQyQkVGNDAwQzIwMjUxIC8qIFdlYkNvcmVUZXN0U2hpbUxpYnJhcnkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQkI4NEFDMTgyMkNBNzQwMDUyNTA0MyAv
KiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUUxQkQzMzE3MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUUxQkQzMzE4MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMx
RDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUJEMzMxNzE4MkQ4REREMDBD
MDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFn
ZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CisJCUUxQkQzMzE4
MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5n
dWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCUUx
QkQzMzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXBy
ZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
b2JqY3BwOyB9OworCQlFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGht
UnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQkU1MTJCMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5p
Y29kZVNvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNMVFVu
aWNvZGVTb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCRTUxMkMwQ0Y2
QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYU0xUVW5pY29kZVNvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRTFDMjY2RDYxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtl
eVBhcmFtc1dpdGhIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxQzI2NkQ2MTgzMTdBQjQwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRp
bmcgPSAwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLmNwcDsgfTsKKwkJRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERl
cHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMjY2REMxODMxOUYz
MTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMjY2REQxODMxOUYzMTAwM0Y4QjMzIC8q
IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxQzM2MkVEMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV29ya2VyTG9jYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNzA1LDExICsxMzcwNSwxMSBAQAogCQlFMUM0
MTYxNjBGNjU2MzE4MDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzRERTY4MEVBNzVDMUUwMDIz
Q0NENiAvKiBBY3RpdmVET01PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWN0aXZlRE9NT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzRE
RTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZlRE9NT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTFDNjU3MTAxODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMUM2NTcxMDE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7
IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNw
cDsgfTsKIAkJRTFDNjU3MTExODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDNjU3MUUx
ODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5
cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNjU3MjQxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFMUM2NTcyNjE4MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxQzY1NzI2MTgxNkY5RkUwMDI1
NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2Q0ZDMjE3NDZEMjkzMDA3Qjg3
QTEgLyogRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9N
V2luZG93Q29uc3RydWN0b3JzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFn
ZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0gIjxub25lPiI7IH07CiAJCUUxQzhCRTVDMEU4QkQx
NUEwMDY0Q0I3RCAvKiBKU1dvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dvcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzk0
QUY3MTkxMzAzRjAwMEQ1QTg5MyAvKiBCbG9iUGFydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCbG9iUGFydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3
NDEsNyArMTM3NDEsNyBAQAogCQlFMUZFMTM2RTE4M0ZFQ0YwMDA4OTJGMTMgLyogQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVBNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUZFMTM3MjE4NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbW1vbkNyeXB0b1V0
aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzczMTg0MDJB
NjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUUxRkUxMzc2MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0Fs
Z29yaXRobVJzYU9hZXBQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFG
RTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXBy
ZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxRkUxMzc4MTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRTEzNzkxODREMjFCQjAwODky
RjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LVy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFGRTEzN0MxODREMjcwMjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01h
Yy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0
aG1BRVNfS1dNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIxMTUsMTQg
KzIyMTE1LDE0IEBACiAJCUUxQzY1NzE0MTgxNjAxNUYwMDI1NkNERCAvKiBwYXJhbWV0ZXJzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFMTI1RjgzOTE4
MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmggKi8sCi0JCQkJ
RTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFt
cy5oICovLAotCQkJCUUxOURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zLmggKi8sCi0JCQkJRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXMuaCAqLywKLQkJCQlFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYg
LyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi8sCi0JCQkJRTFDMjY2REExODMx
OTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmggKi8s
Ci0JCQkJRTFGRTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQ
YXJhbXMuaCAqLywKLQkJCQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zLmggKi8sCisJCQkJRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENy
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLywKKwkJCQlFMTlBQzNGNjE4
MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRl
ZC5oICovLAorCQkJCUUxOURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oICovLAorCQkJCUUxQzY1NzFFMTgxNkU1MDMwMDI1NkNE
RCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oICovLAorCQkJCUUxQkQz
MzFEMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXBy
ZWNhdGVkLmggKi8sCisJCQkJRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29y
aXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oICovLAorCQkJCUUxRkUxMzc2MTg0
RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5o
ICovLAorCQkJCUUxQkQzMzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXNEZXByZWNhdGVkLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHBhcmFtZXRlcnM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjIyNDMsNyArMjIyNDMsNyBAQAogCQkJCUUx
NzJBRjZCMTgwRjI0QzYwMEZCQURCOSAvKiBDcnlwdG9BbGdvcml0aG0uY3BwICovLAogCQkJCUUx
NzJBRjZDMTgwRjI0QzYwMEZCQURCOSAvKiBDcnlwdG9BbGdvcml0aG0uaCAqLywKIAkJCQlFMUM2
NTcyNDE4MTZFNjlEMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oICovLAot
CQkJCUUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
LmggKi8sCisJCQkJRTFDNjU3MjYxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkLmggKi8sCiAJCQkJRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8q
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQlFMUZGOEY2QjE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLywKIAkJCQlFMTU3QThFMjE4MTcz
QTNBMDA5RjgyMUQgLyogQ3J5cHRvS2V5LmNwcCAqLywKQEAgLTI0MTUxLDIxICsyNDE1MSwyMSBA
QAogCQkJCUUxNzJBRjZFMTgwRjI0QzYwMEZCQURCOSAvKiBDcnlwdG9BbGdvcml0aG0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxMjVGODQyMTgyNDI1M0EwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZFMTM3QjE4NEQyMUJCMDA4OTJGMTMg
LyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTI1RjgzQTE4
MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFMTlBQzNGNzE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVz
S2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMTI1RjgzQTE4MjQxMDQ4MDBEODRD
RDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTE5QUMzRjcxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tl
eUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjVGODMyMTgyMkYx
MUIwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1ITUFDLmggaW4gSGVhZGVycyAqLywKLQkJCQlF
MTlEQTI5QzE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRTFDNjU3MUYxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxOURBMjlDMTgxODlBREQw
MDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTFDNjU3MUYxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRo
bUhtYWNQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUM2NTcyNTE4MTZF
NjlEMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTFDNjU3MjcxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxQzY1NzI3MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFG
RjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMUZFMTM2QjE4M0ZFMUFCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjMzRjBEMTg1QTNFM0IwMDhERkFGNSAv
KiBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmggaW4gSGVhZGVycyAqLywKLQkJCQlF
MUJEMzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1z
LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUMyNjZEQjE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCBpbiBIZWFkZXJzICovLAotCQkJCUUxRkUx
Mzc3MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMUJEMzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFDMjY2
REIxODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
RGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFGRTEzNzcxODREMUUzMzAwODkyRjEz
IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMUJEMzMxQTE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzUuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQkQzMzFDMTgyRDhFRTkwMEMwNUQ5
RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
QkQzMzFDMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXBy
ZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI1RjgyQzE4MjJDRkVDMDBEODRDRDkgLyog
Q3J5cHRvQWxnb3JpdGhtU0hBMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMzRUYxODI0REM3
OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTE5QUMzRjExODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAppbmRleCAwM2M4MDEzZWJhMTE3M2U4Y2VhMTM4
YTA4ZWI2YjBiNDBjMWQ3YzI5Li43NmQ1ZGNkZTA5YTNmOTA1NDc4NjcxMTgyMjk0ZTMzZjdmYzJm
YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKQEAgLTI4LDE1ICsyOCwxNSBAQAogCiAjaWYgRU5B
QkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCIKLSNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
c0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNE
ZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJl
Y2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5o
IgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2guaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFy
YW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmgiCisjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIgorI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCIKICNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgYm9vbCBnZXRIYXNo
QWxnb3JpdGhtKEpTRGljdGlvbmFyeSYgZGljdGlvbmFyeSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllcgogICAgIHJldHVybiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmdldEFsZ29yaXRo
bUlkZW50aWZpZXIoZXhlYywgaGFzaCwgcmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0cjxDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVBZXNDYmNQYXJhbXMoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZD4gY3JlYXRlQWVzQ2JjUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBzdGF0aWMgUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0NiY1BhcmFtcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTVgogICAgIEpTVmFsdWUgaXYgPSBnZXRQcm9wZXJ0eShleGVjLCB2YWx1ZS5nZXRPYmpl
Y3QoKSwgIml2Iik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAK
LSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFy
YW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtQWVz
Q2JjUGFyYW1zRGVwcmVjYXRlZCk7CiAKICAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGl2RGF0YTsK
ICAgICBhdXRvIHN1Y2Nlc3MgPSBjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoZXhlYywg
aXYsIGl2RGF0YSk7CkBAIC0xNTQsNyArMTU0LDcgQEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVBZXNDYmNQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1YK
ICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi1zdGF0aWMgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0tleUdlblBhcmFtcyhFeGVjU3RhdGUmIHN0YXRl
LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZD4gY3JlYXRlQWVzS2V5R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjQsNyArMTY0LDcgQEAgc3RhdGljIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVBZXNLZXlHZW5QYXJhbXMoRXhlY1N0
YXRlJiBzdGF0ZSwKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcyk7Cisg
ICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBh
cmFtc0RlcHJlY2F0ZWQpOwogCiAgICAgSlNWYWx1ZSBsZW5ndGhWYWx1ZSA9IGdldFByb3BlcnR5
KCZzdGF0ZSwgdmFsdWUuZ2V0T2JqZWN0KCksICJsZW5ndGgiKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKQEAgLTE3NCw3ICsxNzQsNyBAQCBzdGF0aWMgUmVmUHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0tleUdlblBhcmFtcyhFeGVjU3Rh
dGUmIHN0YXRlLAogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUm
IHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1Zh
bHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg1LDcgKzE4NSw3IEBAIHN0YXRpYyBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUm
IHN0YXRlLCBKU1ZhCiAgICAgfQogCiAgICAgSlNEaWN0aW9uYXJ5IGpzRGljdGlvbmFyeSgmc3Rh
dGUsIHZhbHVlLmdldE9iamVjdCgpKTsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcg
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigq
bmV3IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkKTsKIAogICAgIGF1dG8gc3Vj
Y2VzcyA9IGdldEhhc2hBbGdvcml0aG0oanNEaWN0aW9uYXJ5LCByZXN1bHQtPmhhc2gsIEhhc2hS
ZXF1aXJlbWVudDo6UmVxdWlyZWQpOwogICAgIEFTU0VSVF9VTlVTRUQoc2NvcGUsIHNjb3BlLmV4
Y2VwdGlvbigpIHx8IHN1Y2Nlc3MpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBSZWZQdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUmIHN0
YXRlLCBKU1ZhCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDYsNyArMjA2LDcgQEAgc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4
ZWNTdGF0ZSYgc3RhdGUsIEoKICAgICB9CiAKICAgICBKU0RpY3Rpb25hcnkganNEaWN0aW9uYXJ5
KCZzdGF0ZSwgdmFsdWUuZ2V0T2JqZWN0KCkpOwotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYo
Km5ldyBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFk
b3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQpOwogCiAg
ICAgYXV0byBzdWNjZXNzID0gZ2V0SGFzaEFsZ29yaXRobShqc0RpY3Rpb25hcnksIHJlc3VsdC0+
aGFzaCwgSGFzaFJlcXVpcmVtZW50OjpSZXF1aXJlZCk7CiAgICAgQVNTRVJUKHNjb3BlLmV4Y2Vw
dGlvbigpIHx8IHN1Y2Nlc3MpOwpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSG1hY0tleVBhcmFtcyhFeGVjU3RhdGUmIHN0
YXRlLCBKCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FLZXlHZW5QYXJhbXMoRXhlY1N0YXRl
JiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYUtleUdlblBhcmFtcyhFeGVjU3RhdGUmIHN0YXRl
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRp
YyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhS2V5R2VuUGFyYW1z
KEV4ZWNTdGF0ZSYgc3RhdGUsCiAgICAgfQogCiAgICAgSlNEaWN0aW9uYXJ5IGpzRGljdGlvbmFy
eSgmc3RhdGUsIHZhbHVlLmdldE9iamVjdCgpKTsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9
IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZCk7
CiAKICAgICBKU1ZhbHVlIG1vZHVsdXNMZW5ndGhWYWx1ZSA9IGdldFByb3BlcnR5KCZzdGF0ZSwg
dmFsdWUuZ2V0T2JqZWN0KCksICJtb2R1bHVzTGVuZ3RoIik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CkBAIC0yNTQsMTMgKzI1NCwxMyBAQCBzdGF0aWMgUmVmUHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYUtleUdlblBhcmFtcyhFeGVjU3Rh
dGUmIHN0YXRlLAogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhS2V5UGFyYW1zV2l0aEhhc2go
RXhlY1N0YXRlJiwgSlNWYWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYUtleVBhcmFtc1dpdGhIYXNoKEV4ZWNTdGF0ZSYsIEpT
VmFsdWUpCiB7CiAgICAgLy8gV2ViQ3J5cHRvIFJTQSBhbGdvcml0aG1zIGN1cnJlbnRseSBkbyBu
b3QgdGFrZSBhbnkgcGFyYW1ldGVycyB0byBpbXBvcnRLZXkuCi0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2gpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRl
ZCk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRl
UnNhT2FlcFBhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgUmVm
UHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVSc2FPYWVwUGFy
YW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3
MSw3ICsyNzEsNyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNy
ZWF0ZVJzYU9hZXBQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKUwogICAgIH0KIAogICAgIEpTRGlj
dGlvbmFyeSBqc0RpY3Rpb25hcnkoZXhlYywgdmFsdWUuZ2V0T2JqZWN0KCkpOwotICAgIGF1dG8g
cmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFt
c0RlcHJlY2F0ZWQpOwogCiAgICAgYXV0byBzdWNjZXNzID0gZ2V0SGFzaEFsZ29yaXRobShqc0Rp
Y3Rpb25hcnksIHJlc3VsdC0+aGFzaCwgSGFzaFJlcXVpcmVtZW50OjpSZXF1aXJlZCk7CiAgICAg
QVNTRVJUKHNjb3BlLmV4Y2VwdGlvbigpIHx8IHN1Y2Nlc3MpOwpAQCAtMjk2LDcgKzI5Niw3IEBA
IHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhT2FlcFBh
cmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0K
IAotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FTc2FQ
YXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYVNzYVBhcmFtcyhFeGVj
U3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzA3LDcgKzMw
Nyw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNh
U3NhUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTCiAgICAgfQogCiAgICAgSlNEaWN0aW9uYXJ5
IGpzRGljdGlvbmFyeSgmc3RhdGUsIHZhbHVlLmdldE9iamVjdCgpKTsKLSAgICBhdXRvIHJlc3Vs
dCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zKTsKKyAgICBhdXRv
IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVj
YXRlZCk7CiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBnZXRIYXNoQWxnb3JpdGhtKGpzRGljdGlvbmFy
eSwgcmVzdWx0LT5oYXNoLCBIYXNoUmVxdWlyZW1lbnQ6OlJlcXVpcmVkKTsKICAgICBBU1NFUlQo
c2NvcGUuZXhjZXB0aW9uKCkgfHwgc3VjY2Vzcyk7CkBAIC0zMTcsMTEgKzMxNywxMSBAQCBzdGF0
aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYVNzYVBhcmFtcyhF
eGVjU3RhdGUmIHN0YXRlLCBKUwogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLVJl
ZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCitSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2gg
KGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNf
UEtDUzFfdjFfNToKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlJTQVNTQV9QS0NTMV92MV81OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBX1BTUzoKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5PVF9TVVBQT1JURURf
RVJSKTsKQEAgLTM0MSw3ICszNDEsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgTk9UX1NVUFBPUlRFRF9FUlIpOwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6CiAg
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpESDoKICAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgpAQCAtMzU5LDExICszNTksMTEgQEAgUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3Jl
YXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0ZvckRlY3J5cHQoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRGVjcnlwdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7
CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81Ogot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BL
Q1MxX3YxXzU6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfUFNTOgog
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgTk9UX1NVUFBPUlRFRF9FUlIpOwpAQCAtMzgz
LDcgKzM4Myw3IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBOT1RfU1VQUE9SVEVEX0VSUik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKICAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkRIOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6U0hBXzE6CkBAIC00MDEsNyArNDAxLDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24o
RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNW
YWx1ZSB2YWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yU2lnbihFeGVj
U3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNDM5LDcgKzQzOSw3IEBAIFJl
ZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGb3JWZXJpZnkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0
aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3Yx
XzU6CkBAIC00NzcsNyArNDc3LDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChFeGVjU3Rh
dGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQor
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEaWdlc3QoRXhlY1N0YXRlKiBleGVj
LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkKIHsKICAgICBz
d2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNToKQEAgLTUwMSw3ICs1MDEsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0
ZXJzRgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoKICAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ6CiAgICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyOgotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6Q09OQ0FUOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6SEtERl9DVFI6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQ
QktERjI6CkBAIC01MTIsNyArNTEyLDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5
KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpT
VmFsdWUgdmFsdWUpCitSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRl
S2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0s
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC01NDksNyArNTQ5
LDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGht
RGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6
OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29y
aXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFf
djFfNToKQEAgLTU4MSw3ICs1ODEsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyhF
eGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1Zh
bHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVCaXRzKEV4ZWNT
dGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUp
CiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC02MTMsNyArNjEzLDcgQEAgUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3Jl
YXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0ZvckltcG9ydEtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGb3JJbXBvcnRLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRo
bSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFf
NToKQEAgLTYyOSwxMSArNjI5LDExIEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfR0NNOgogICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6QUVTX0NGQjoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkFFU19LVzoKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkhNQUM6CiAgICAgICAgIHJldHVybiBjcmVhdGVIbWFjUGFyYW1zKCpleGVjLCB2YWx1
ZSk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpESDoKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsK
ICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgogICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzIyNDoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlNIQV8yNTY6CkBAIC02NDksNyArNjQ5LDcgQEAgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVy
c0ZvckV4cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtLCBKU1ZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JF
eHBvcnRLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29y
aXRobSwgSlNWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTY2Niw3ICs2NjYs
NyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6QUVTX0tXOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1B
QzoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkRIOgotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6CiAgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6U0hBXzI1NjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgKaW5kZXggYjVmYWNkMDVkMWQ0ZDI1
YzRhZTE4YWE2YjRkZmMxNmU5OTdlNGUzNS4uMzhhMzRmZDBlOTgxYjI4Y2RjYzM3ZGViNTY3Yzg5
YzgzNzRmNGJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgKQEAgLTM4LDIyICszOCwyMiBAQCBjbGFzcyBK
U1ZhbHVlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM7CitjbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDsKIAog
Y2xhc3MgSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
Ym9vbCBnZXRBbGdvcml0aG1JZGVudGlmaWVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyJik7CiAKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KEpTQzo6RXhl
Y1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBz
dGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNG
b3JEZWNyeXB0KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlND
OjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IGNyZWF0ZVBhcmFtZXRlcnNGb3JTaWduKEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNGb3JWZXJpZnkoSlNDOjpFeGVjU3RhdGUq
LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBS
ZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2Vz
dChKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1
ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQ
YXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShKU0M6OkV4ZWNTdGF0
ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGVy
aXZlQml0cyhKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBj
cmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoSlNDOjpFeGVj
U3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0
YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBh
cmFtZXRlcnNGb3JFbmNyeXB0KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChKU0M6OkV4ZWNT
dGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3Rh
dGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFy
YW1ldGVyc0ZvclNpZ24oSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
LCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JWZXJpZnkoSlNDOjpFeGVjU3RhdGUq
LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBS
ZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRl
cnNGb3JEaWdlc3QoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBK
U0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtleShKU0M6OkV4ZWNTdGF0
ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1l
dGVyc0ZvckRlcml2ZUtleShKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUJpdHMoSlNDOjpFeGVj
U3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0
YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBh
cmFtZXRlcnNGb3JJbXBvcnRLZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoSlNDOjpF
eGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSy5jcHAKaW5kZXggNGRmM2Q0OTcxYzFkNDQ1YmU0MTBkYTI0NTBi
NzQ4MWJjOTJhNDdjYi4uM2UxYjFlZDBhZmIyNzdkZWFiOGQ1Y2EwOGQyNDdmOWM3NDhhYTg0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tl
eVNlcmlhbGl6YXRpb25KV0suY3BwCkBAIC0yOSw5ICsyOSw5IEBACiAjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIKLSNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1IbWFjUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgot
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmgiCisjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgiCiAjaW5j
bHVkZSAiQ3J5cHRvS2V5LmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAi
Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaCIKQEAgLTE2MiwyMiArMTYyLDIyIEBAIEpTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6fkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSygpCiB7
CiB9CiAKLXN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSE1BQ1Bh
cmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24pCitzdGF0aWMg
UmVmPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVITUFDUGFyYW1l
dGVycyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKIHsKLSAgICBhdXRv
IGhtYWNQYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
KTsKKyAgICBhdXRvIGhtYWNQYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0
aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCk7CiAgICAgaG1hY1BhcmFtZXRlcnMtPmhhc2ggPSBoYXNo
RnVuY3Rpb247CiAgICAgcmV0dXJuIFdURk1vdmUoaG1hY1BhcmFtZXRlcnMpOwogfQogCi1zdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNX
aXRoSGFzaChDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKK3N0YXRpYyBS
ZWY8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJTQUtleVBhcmFt
ZXRlcnNXaXRoSGFzaChDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKIHsK
LSAgICBhdXRvIHJzYUtleVBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRo
bVJzYUtleVBhcmFtc1dpdGhIYXNoKTsKKyAgICBhdXRvIHJzYUtleVBhcmFtZXRlcnMgPSBhZG9w
dFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCk7
CiAgICAgcnNhS2V5UGFyYW1ldGVycy0+aGFzSGFzaCA9IHRydWU7CiAgICAgcnNhS2V5UGFyYW1l
dGVycy0+aGFzaCA9IGhhc2hGdW5jdGlvbjsKICAgICByZXR1cm4gV1RGTW92ZShyc2FLZXlQYXJh
bWV0ZXJzKTsKIH0KIAotT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiBzdWdn
ZXN0ZWRBbGdvcml0aG0sIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMqIHN1Z2dlc3RlZFBhcmFt
ZXRlcnMpIGNvbnN0CitPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBKU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qIHN1Z2dl
c3RlZEFsZ29yaXRobSwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqIHN1Z2dl
c3RlZFBhcmFtZXRlcnMpIGNvbnN0CiB7CiAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OSw3ICsxODksNyBA
QCBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25K
V0s6OnJlY29uY2lsZUFsZ29yaXRobShDcgogCiAgICAgYXV0byYgYWxnb3JpdGhtUmVnaXN0eSA9
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24oKTsKICAgICBSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtPiBhbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IHBhcmFtZXRlcnM7CisgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkPiBwYXJhbWV0ZXJzOwogICAgIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkhTMjU2
IikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpITUFDKTsKICAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZUhN
QUNQYXJhbWV0ZXJzKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTYpOwpAQCAtMjEw
LDI4ICsyMTAsMjggQEAgT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oQ3IKICAgICAgICAgcGFyYW1ldGVy
cyA9IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpTSEFfNTEyKTsKICAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiUlNB
MV81IikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81KTsKLSAgICAgICAgcGFyYW1l
dGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2gp
OworICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FL
ZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0
aG1OYW1lID09ICJSU0EtT0FFUCIpIHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVn
aXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVApOwogICAgICAg
ICBwYXJhbWV0ZXJzID0gY3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV8xKTsKICAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFt
ZSA9PSAiQTEyOENCQyIpIHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5j
cmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyk7Ci0gICAgICAgIHBhcmFt
ZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAg
ICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCk7CiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkExOTJDQkMi
KSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMpOwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRS
ZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcGFyYW1ldGVycyA9
IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAg
IH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMjU2Q0JDIikgewogICAgICAgICBh
bGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfQ0JDKTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICB9IGVsc2UgaWYgKG1f
andrQWxnb3JpdGhtTmFtZSA9PSAiQTEyOEtXIikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdv
cml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1cpOwot
ICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1l
ID09ICJBMTkyS1ciKSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3Jl
YXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVyk7Ci0gICAgICAgIHBhcmFtZXRl
cnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICBw
YXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCk7CiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkEyNTZLVyIpIHsK
ICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6QUVTX0tXKTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpu
ZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBhZG9w
dFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICB9IGVs
c2UgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCAiVW5zdXBwb3J0ZWQg
SldLIGFsZ29yaXRobSAiICsgbV9qd2tBbGdvcml0aG1OYW1lKTsKICAgICAgICAgcmV0dXJuIE51
bGxvcHQ7CkBAIC0yNDcsMTQgKzI0NywxNCBAQCBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWly
PiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRobShDcgogICAg
ICAgICByZXR1cm4gTnVsbG9wdDsKIAogICAgIGlmIChhbGdvcml0aG0tPmlkZW50aWZpZXIoKSA9
PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDKSB7Ci0gICAgICAgIGlmIChkb3duY2Fz
dDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zPigqcGFyYW1ldGVycykuaGFzaCAhPSBkb3duY2Fz
dDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zPigqc3VnZ2VzdGVkUGFyYW1ldGVycykuaGFzaCkK
KyAgICAgICAgaWYgKGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVk
PigqcGFyYW1ldGVycykuaGFzaCAhPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZD4oKnN1Z2dlc3RlZFBhcmFtZXRlcnMpLmhhc2gpCiAgICAgICAgICAgICByZXR1
cm4gTnVsbG9wdDsKICAgICAgICAgcmV0dXJuIENyeXB0b0FsZ29yaXRobVBhaXIgeyBzdWdnZXN0
ZWRBbGdvcml0aG0sIHN1Z2dlc3RlZFBhcmFtZXRlcnMgfTsKICAgICB9CiAgICAgaWYgKGFsZ29y
aXRobS0+aWRlbnRpZmllcigpID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9Q
S0NTMV92MV81CiAgICAgICAgIHx8IGFsZ29yaXRobS0+aWRlbnRpZmllcigpID09IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQKSB7Ci0gICAgICAgIENyeXB0b0FsZ29yaXRobVJz
YUtleVBhcmFtc1dpdGhIYXNoJiByc2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxn
b3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2g+KCpwYXJhbWV0ZXJzKTsKLSAgICAgICAgQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2gmIHN1Z2dlc3RlZFJTQUtleVBhcmFtZXRlcnMg
PSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaD4oKnN1Z2dlc3Rl
ZFBhcmFtZXRlcnMpOworICAgICAgICBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFz
aERlcHJlY2F0ZWQmIHJzYUtleVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1S
c2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQ+KCpwYXJhbWV0ZXJzKTsKKyAgICAgICAgQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkJiBzdWdnZXN0ZWRSU0FL
ZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhh
c2hEZXByZWNhdGVkPigqc3VnZ2VzdGVkUGFyYW1ldGVycyk7CiAgICAgICAgIEFTU0VSVChyc2FL
ZXlQYXJhbWV0ZXJzLmhhc0hhc2gpOwogICAgICAgICBpZiAoc3VnZ2VzdGVkUlNBS2V5UGFyYW1l
dGVycy5oYXNIYXNoKSB7CiAgICAgICAgICAgICBpZiAoc3VnZ2VzdGVkUlNBS2V5UGFyYW1ldGVy
cy5oYXNoICE9IHJzYUtleVBhcmFtZXRlcnMuaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgKaW5kZXggOTY5
ZWUwZDgxOTk3MzVlOThkNDRkOWViM2Y2Mjg5YjI3ZmI1NzljZi4uM2I3MWU5MjU4M2MzOGZjY2M3
ZmEzZDJiMTIxMDI5NzIxNzAxNGRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgKQEAgLTM5LDcgKzM5LDcg
QEAgY2xhc3MgSlNPYmplY3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5OwogY2xhc3MgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHM7CiAKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgc2VyaWFs
aXplKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBDcnlwdG9LZXkmKTsKIAogcHJpdmF0ZToK
LSAgICBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5
cHRvQWxnb3JpdGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyopIGNvbnN0IG92ZXJyaWRl
OworICAgIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJlY29uY2lsZUFsZ29yaXRobShD
cnlwdG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCopIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCByZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNhZ2Um
KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlY29uY2lsZUV4dHJhY3RhYmxlKGJvb2wmKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAppbmRleCBkNGViN2M2Mzc0YjgwMjQ3YjFl
NmUxM2Q2MzNjMjZiYmFhNTY2YTI1Li43ZDgwYTg2MWVkN2M4ZTk0YTBkZjRhZGFlMTJiNzNlZmQx
MDQ2NTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1
YnRsZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eS5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGEuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlTZXJp
YWxpemF0aW9uUmF3LmgiCkBAIC00NTQsNyArNDU0LDcgQEAgSlNWYWx1ZSBKU1dlYktpdFN1YnRs
ZUNyeXB0bzo6Z2VuZXJhdGVLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICByZXR1cm4gcHJvbWlz
ZTsKIH0KIAotc3RhdGljIHZvaWQgaW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tl
eUZvcm1hdCBrZXlGb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YSwgUmVmUHRyPENyeXB0
b0FsZ29yaXRobT4gYWxnb3JpdGhtLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
cGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzLCBD
cnlwdG9BbGdvcml0aG06OktleUNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZv
aWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spCitzdGF0aWMgdm9pZCBpbXBvcnRLZXkoRXhlY1N0
YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9uRGF0
YSBkYXRhLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG0sIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJs
ZSwgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzLCBDcnlwdG9BbGdvcml0aG06OktleUNhbGxiYWNr
IGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2sp
CiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC01MzMsNyArNTMzLDcgQEAgSlNWYWx1ZSBKU1dlYktpdFN1YnRs
ZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogCiAgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtOwotICAg
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzOworICAgIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gcGFyYW1ldGVyczsKICAgICBp
ZiAoIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLmlzTnVsbCgpKSB7CiAgICAgICAgIGFsZ29y
aXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgyKSk7CiAgICAgICAgIEFTU0VSVChzY29wZS5leGNlcHRpb24oKSB8fCBhbGdvcml0
aG0pOwpAQCAtNzUyLDcgKzc1Miw3IEBAIEpTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OnVu
d3JhcEtleShFeGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IAogICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IHVud3JhcHBlZEtleUFsZ29yaXRobTsKLSAg
ICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gdW53cmFwcGVkS2V5QWxnb3JpdGht
UGFyYW1ldGVyczsKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQ+IHVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnM7CiAgICAgaWYgKCFzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCg0KS5pc051bGwoKSkgewogICAgICAgICB1bndyYXBwZWRLZXlBbGdvcml0
aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoNCkpOwogICAgICAgICBBU1NFUlQoc2NvcGUuZXhjZXB0aW9uKCkgfHwgdW53cmFwcGVk
S2V5QWxnb3JpdGhtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9B
bGdvcml0aG0uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
aW5kZXggNDRjYmIwMjllODc3NmQ3NjYwODFkNzdkMGRkNDI2M2NmZTE4NTA2NS4uMTQ0ZTdmZjA3
ZDc3ZmU4Mzg0MGMxMTJmM2IzYTY2N2MyNDQzMjk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L0NyeXB0b0FsZ29yaXRobS5jcHAKQEAgLTQwLDU3ICs0MCw1NyBAQCBDcnlwdG9BbGdvcml0aG06
On5DcnlwdG9BbGdvcml0aG0oKQogewogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6ZW5jcnlw
dChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYm
LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjplbmNyeXB0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5Jiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwog
fQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYs
IFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3Zv
aWQgQ3J5cHRvQWxnb3JpdGhtOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRo
bTo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpzaWduKGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6dmVyaWZ5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
LCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpk
aWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3Rv
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBl
YyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6Z2VuZXJh
dGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wsIENyeXB0b0tleVVz
YWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JL
ZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpk
ZXJpdmVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tl
eSYsIENyeXB0b0FsZ29yaXRobSosIGJvb2wsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRo
bTo6ZGVyaXZlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwg
Y29uc3QgQ3J5cHRvS2V5JiwgQ3J5cHRvQWxnb3JpdGhtKiwgYm9vbCwgQ3J5cHRvS2V5VXNhZ2Us
IEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6ZGVy
aXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5
JiwgdW5zaWduZWQgbG9uZywgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG06OmRlcml2ZUJpdHMoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCB1bnNp
Z25lZCBsb25nLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9B
bGdvcml0aG06OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29u
c3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6
aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG06OmVuY3J5cHRGb3JXcmFwS2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG06OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2sm
JiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBlbmNyeXB0KHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0Fs
Z29yaXRobTo6ZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
OjpkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBkZWNyeXB0KHBh
cmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNh
bGxiYWNrKSwgZWMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0
b0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCmlu
ZGV4IDhiYTgzYjNlMWFlMWQ0MmM0YmFkMDBhYTJlMDc5NzQ3ZTcxYTY0OWIuLjY4Y2MyMzUwMDU4
Y2U0ZGY3M2M0NGUxZTViZTkxOGFkMDRjN2Y4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5
cHRvQWxnb3JpdGhtLmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzOworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ7CiBjbGFzcyBD
cnlwdG9LZXk7CiBjbGFzcyBDcnlwdG9LZXlQYWlyOwogY2xhc3MgQ3J5cHRvS2V5RGF0YTsKQEAg
LTYwLDE5ICs2MCwxOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQo
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik+IFZlY3RvckNhbGxiYWNrOwogICAgIHR5cGVkZWYgc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+IFZvaWRDYWxsYmFjazsKIAotICAgIHZpcnR1YWwgdm9pZCBlbmNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRl
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5Jiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCB2
ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWdlc3QoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBh
aXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyaXZlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmIGJhc2VLZXksIENyeXB0b0FsZ29yaXRobSogZGVy
aXZlZEtleVR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVyaXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwgY29uc3QgQ3J5cHRvS2V5JiBiYXNlS2V5LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgVmVjdG9y
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdmlydHVhbCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tl
eVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVjcnlwdChjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgdmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJl
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBk
aWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRl
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9p
ZCBkZXJpdmVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9LZXkmIGJhc2VLZXksIENyeXB0b0FsZ29yaXRobSogZGVyaXZlZEtleVR5cGUs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVyaXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYs
IGNvbnN0IENyeXB0b0tleSYgYmFzZUtleSwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFZlY3RvckNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgZGlmZmVyZW50
IGZyb20gZW5jcnlwdC9kZWNyeXB0IGJlY2F1c2Ugc29tZSBhbGdvcml0aG1zIG1heSBub3QgZXhw
b3NlIGVuY3J5cHQvZGVjcnlwdC4KLSAgICB2aXJ0dWFsIHZvaWQgZW5jcnlwdEZvcldyYXBLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVjcnlw
dEZvclVud3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5
cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1
YWwgdm9pZCBlbmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
LCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJvdGVjdGVkOgogICAgIENy
eXB0b0FsZ29yaXRobSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MDNlNDZi
NzJiOTM5Y2Y4MmVhNTk5YjZlZWQ3Y2EwMGQ2ZDMyZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNfaAotI2RlZmluZSBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzX2gKLQotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgotCi0j
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyA6IHB1YmxpYyBSZWZDb3VudGVkPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzKTsKLXB1YmxpYzoKLSAgICBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKCkg
eyB9Ci0gICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycygpIHsgfQotCi0gICAg
ZW51bSBjbGFzcyBDbGFzcyB7Ci0gICAgICAgIE5vbmUsCi0gICAgICAgIEFlc0NiY1BhcmFtcywK
LSAgICAgICAgQWVzS2V5R2VuUGFyYW1zLAotICAgICAgICBIbWFjS2V5UGFyYW1zLAotICAgICAg
ICBIbWFjUGFyYW1zLAotICAgICAgICBSc2FLZXlHZW5QYXJhbXMsCi0gICAgICAgIFJzYUtleVBh
cmFtc1dpdGhIYXNoLAotICAgICAgICBSc2FPYWVwUGFyYW1zLAotICAgICAgICBSc2FTc2FQYXJh
bXMKLSAgICB9OwotICAgIHZpcnR1YWwgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3QgeyBy
ZXR1cm4gQ2xhc3M6Ok5vbmU7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Rl
ZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhU
b0NsYXNzTmFtZSkgXAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpDcnlw
dG9BbGdvcml0aG0jI1RvQ2xhc3NOYW1lKSBcCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpIHsgcmV0dXJu
IHBhcmFtZXRlcnMucGFyYW1ldGVyc0NsYXNzKCkgPT0gV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyczo6Q2xhc3M6OlRvQ2xhc3NOYW1lOyB9IFwKLVNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfRU5EKCkKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZDA2MTlkMjY0NDdiODNlMDg2ODdlYzI4ZDRkOTBmZWI1MTJjYWU3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCA6IHB1YmxpYyBSZWZDb3VudGVkPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkPiB7CitwdWJsaWM6CisgICAgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQoKSB7IH0KKyAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCgpIHsgfQorCisgICAgZW51bSBjbGFzcyBDbGFzcyB7CisgICAgICAgIE5vbmUsCisgICAg
ICAgIEFlc0NiY1BhcmFtcywKKyAgICAgICAgQWVzS2V5R2VuUGFyYW1zLAorICAgICAgICBIbWFj
S2V5UGFyYW1zLAorICAgICAgICBIbWFjUGFyYW1zLAorICAgICAgICBSc2FLZXlHZW5QYXJhbXMs
CisgICAgICAgIFJzYUtleVBhcmFtc1dpdGhIYXNoLAorICAgICAgICBSc2FPYWVwUGFyYW1zLAor
ICAgICAgICBSc2FTc2FQYXJhbXMKKyAgICB9OworICAgIHZpcnR1YWwgQ2xhc3MgcGFyYW1ldGVy
c0NsYXNzKCkgY29uc3QgeyByZXR1cm4gQ2xhc3M6Ok5vbmU7IH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdP
UklUSE1fUEFSQU1FVEVSUyhUb0NsYXNzTmFtZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19C
RUdJTihXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG0jI1RvQ2xhc3NOYW1lIyNEZXByZWNhdGVkKSBc
CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzKSB7IHJldHVybiBwYXJhbWV0ZXJzLnBhcmFt
ZXRlcnNDbGFzcygpID09IFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkOjpDbGFzczo6VG9DbGFzc05hbWU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaAppbmRleCBhZDA2NDAyZGQ0NzE2ZDU5OTVk
YTlkZTkyOWNhZjU2MDUzMGE0YzkyLi5iNTEyZDQ5NGNmNmRmOWRjZWQwODMzMTZhNmI5NmRiM2Qy
YjFiNjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5U2VyaWFs
aXphdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlTZXJpYWxpemF0
aW9uLmgKQEAgLTM2LDE0ICszNiwxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
cnlwdG9BbGdvcml0aG07Ci1jbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzOworY2xhc3Mg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXlEYXRh
OwogCiB0eXBlZGVmIHN0ZDo6cGFpcjxjb25zdCB1aW50OF90Kiwgc2l6ZV90PiBDcnlwdG9PcGVy
YXRpb25EYXRhOwogCiBzdHJ1Y3QgQ3J5cHRvQWxnb3JpdGhtUGFpciB7CiAgICAgUmVmUHRyPENy
eXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtOwotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzPiBwYXJhbWV0ZXJzOworICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZD4gcGFyYW1ldGVyczsKIH07CiAKIGNsYXNzIENyeXB0b0tleVNlcmlhbGl6YXRp
b24gewpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q3J5cHRvS2V5U2Vy
aWFsaXphdGlvbigpIHsgfQogCiAgICAgLy8gUmV0dXJucyBmYWxzZSBpZiBzdWdnZXN0ZWQgYWxn
b3JpdGhtIHdhcyBub3QgY29tcGF0aWJsZSB3aXRoIG9uZSBzdG9yZWQgaW4gdGhlIHNlcmlhbGl6
YXRpb24uCi0gICAgdmlydHVhbCBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNvbmNp
bGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyop
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJl
Y29uY2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCopIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNvbmNpbGVV
c2FnZXMoQ3J5cHRvS2V5VXNhZ2UmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29u
Y2lsZUV4dHJhY3RhYmxlKGJvb2wmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCmlu
ZGV4IDA4OTA4NjM2MDY0ZDQ2ZDY4ZTY1ZWJiMDQwYmRkYjJhMzlhYWIwOGMuLjhmNDE5ZGM0NTgz
NjI4YjdiZWRmMzUzNWZkYjcxOGFlNzQ5YzkwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCkBA
IC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bUFlc0tleUdlblBhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
c0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNE
ZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAiQ3J5cHRv
S2V5RGF0YU9jdGV0U2VxdWVuY2UuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC01
Niw3ICs1Niw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQzo6aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAot
Ym9vbCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENy
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYsIGNvbnN0IENyeXB0b0tleSYga2V5KSBjb25zdAor
Ym9vbCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENy
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmIGtl
eSkgY29uc3QKIHsKICAgICBpZiAoa2V5LmFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBzX2lkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY1LDkgKzY1LDkgQEAgYm9vbCBDcnlw
dG9BbGdvcml0aG1BRVNfQ0JDOjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBk
YXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpl
bmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXMmIGFlc0NCQ1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtc0RlcHJlY2F0ZWQmIGFlc0NCQ1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0
aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxn
b3JpdGhtTWF0Y2hlcyhhZXNDQkNQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9U
X1NVUFBPUlRFRF9FUlI7CkBAIC03Nyw5ICs3Nyw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQzo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
CiAgICAgcGxhdGZvcm1FbmNyeXB0KGFlc0NCQ1BhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tl
eUFFUz4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxi
YWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmRlY3J5cHQoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5
JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYg
ZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYgYWVzQ0JDUGFyYW1l
dGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcz4ocGFyYW1ldGVycyk7
CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYgYWVzQ0JD
UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0
ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGFlc0NCQ1Bh
cmFtZXRlcnMsIGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTg5
LDkgKzg5LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybURlY3J5cHQo
YWVzQ0JDUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5QUVTPihrZXkpLCBkYXRhLCBXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQg
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Ug
dXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNf
Q0JDOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBL
ZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0tl
eUdlblBhcmFtcyYgYWVzUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0tl
eUdlblBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zRGVwcmVjYXRlZCYgYWVzUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29y
aXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgUmVmUHRy
PENyeXB0b0tleUFFUz4gcmVzdWx0ID0gQ3J5cHRvS2V5QUVTOjpnZW5lcmF0ZShDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBhZXNQYXJhbWV0ZXJzLmxlbmd0aCwgZXh0cmFjdGFi
bGUsIHVzYWdlcyk7CiAgICAgaWYgKCFyZXN1bHQpIHsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lk
IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmIHBhcmFtZQogICAgIGNhbGxiYWNrKHJlc3VsdC5nZXQoKSwgbnVsbHB0cik7
CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFj
aywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaXM8Q3J5cHRvS2V5RGF0YU9jdGV0
U2VxdWVuY2U+KGtleURhdGEpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmgKaW5kZXggYTYxYmEzYTM5YjliYTRjMGNhMzBmYjc4ZTQ4NmZkYzcyY2Yy
NjUwNC4uNjljZWNjYTNmZGVhZTIzODVjYjk1ZmNhN2FkNDNjMzVmM2EwYTRlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobUFl
c0NiY1BhcmFtc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0
b0FsZ29yaXRobUFFU19DQkMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKQEAgLTQ0
LDE4ICs0NCwxOCBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgZW5jcnlwdChjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGVjcnlwdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2VuZXJhdGVLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGltcG9ydEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2Fn
ZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIENyeXB0b0FsZ29yaXRobUFFU19DQkMoKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9B
bGdvcml0aG1BRVNfQ0JDKCk7CiAKLSAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBD
cnlwdG9LZXkmKSBjb25zdDsKLSAgICB2b2lkIHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9B
bGdvcml0aG1BZXNDYmNQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBwbGF0Zm9ybURlY3J5cHQoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0
Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0
aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsKKyAgICB2b2lkIHBsYXRmb3Jt
RW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxi
YWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgcGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
c0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcAppbmRleCBjMTc3NDQz
NGVjNjcyNzZlZTdlZTczNzQ0NjIyZWJhN2FkNjhlODdmLi5jZWU1N2M1ZTU0NzU3NDYwNjRkMGQ0
ZmRmZTU0NGY2ZGE5MmY4MDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAKQEAgLTI4LDcgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtQWVzS2V5R2VuUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2Vu
UGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgogI2luY2x1ZGUg
IkNyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgpAQCAtNjQsNyArNjQsNyBAQCBib29sIENyeXB0b0FsZ29yaXRobUFFU19LVzo6a2V5QWxnb3Jp
dGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9LZXkmIGtleSkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5
cHRvQWxnb3JpdGhtQUVTX0tXOjplbmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
a2V5QWxnb3JpdGhtTWF0Y2hlcyhrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9F
UlI7CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjplbmNyeXB0
Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwKICAgICBwbGF0Zm9y
bUVuY3J5cHQoZG93bmNhc3Q8Q3J5cHRvS2V5QUVTPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxi
YWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXOjpkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
OjpkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
IGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRj
aGVzKGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTg0LDkgKzg0
LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmRlY3J5cHRGb3JVbndyYXBLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYKICAgICBwbGF0Zm9ybURlY3J5cHQoZG93bmNh
c3Q8Q3J5cHRvS2V5QUVTPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShm
YWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpn
ZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxi
YWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFj
dGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsK
LSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMmIGFlc1BhcmFtZXRlcnMg
PSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXM+KHBhcmFtZXRlcnMpOwor
ICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQmIGFlc1Bh
cmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNh
dGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlBRVM+IHJlc3VsdCA9IENy
eXB0b0tleUFFUzo6Z2VuZXJhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXLCBh
ZXNQYXJhbWV0ZXJzLmxlbmd0aCwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CiAgICAgaWYgKCFyZXN1
bHQpIHsKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmdlbmVy
YXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXQKICAgICBjYWxs
YmFjayhyZXN1bHQuZ2V0KCksIG51bGxwdHIpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFF
U19LVzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBD
cnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1
c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmltcG9ydEtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmIGtl
eURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFj
ayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
aWYgKCFpczxDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZT4oa2V5RGF0YSkpIHsKICAgICAgICAg
ZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKaW5kZXggNTE0M2NiOWM4ODVi
MTA0ZWYzZjQ5ODQxMDQwMGJhODBlYjQzMzUxYi4uNzY1NzZiN2IzNzBiNjMyMDNiZDRkOTE0Mzli
ZmI0Yzc1MjgxYzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKQEAgLTQzLDEwICs0MywxMCBAQCBwdWJs
aWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZvaWQgZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRlY3J5cHRGb3JVbndyYXBLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdlbmVyYXRl
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbXBvcnRL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEm
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBlbmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBW
ZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZW5l
cmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wg
ZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2Fn
ZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUhNQUMuY3BwCmluZGV4IDk2ZDlkYTMxOTVmOTYxNDc4MmMzZmY0NmZiMzc0N2Nj
YjkxMWJmZmYuLjcwNDI3NWY4YjE4MTI4Y2FmNGY1NmE0ZTVkYTY4ODcyNzRiYzIwMDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhN
QUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUhNQUMuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBU
TykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
SG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNlcXVlbmNl
LmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5SE1BQy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKQEAgLTU2LDcgKzU2LDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdv
cml0aG1ITUFDOjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCi1ib29sIENyeXB0b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBr
ZXkpIGNvbnN0Citib29sIENyeXB0b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNv
bnN0IENyeXB0b0tleSYga2V5KSBjb25zdAogewogICAgIGlmIChrZXkuYWxnb3JpdGhtSWRlbnRp
ZmllcigpICE9IHNfaWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjcsOSAr
NjcsOSBAQCBib29sIENyeXB0b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYgcAogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRo
bUhNQUM6OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBh
cmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRo
bUhtYWNQYXJhbXMmIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1h
Y1BhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
c0RlcHJlY2F0ZWQmIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1h
Y1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlBbGdvcml0aG1N
YXRjaGVzKGhtYWNQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6c2lnbihj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zCiAgICAgcGxh
dGZvcm1TaWduKGhtYWNQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlITUFDPihrZXkpLCBk
YXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9
CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBleHBlY3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6
OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1l
dGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4
cGVjdGVkU2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2Fs
bGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBobWFj
UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXM+KHBhcmFtZXRl
cnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBobWFj
UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVk
PihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhobWFjUGFyYW1l
dGVycywga2V5KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtOTEsOSAr
OTEsOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnZlcmlmeShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjbwogICAgIHBsYXRmb3JtVmVyaWZ5KGhtYWNQ
YXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlITUFDPihrZXkpLCBleHBlY3RlZFNpZ25hdHVy
ZSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMp
OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxn
b3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVz
YWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0
aG1IbWFjS2V5UGFyYW1zJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRo
bUhtYWNLZXlQYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUht
YWNLZXlQYXJhbXNEZXByZWNhdGVkJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0Fs
Z29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIFJlZlB0
cjxDcnlwdG9LZXlITUFDPiByZXN1bHQgPSBDcnlwdG9LZXlITUFDOjpnZW5lcmF0ZShobWFjUGFy
YW1ldGVycy5oYXNMZW5ndGggPyBobWFjUGFyYW1ldGVycy5sZW5ndGggOiAwLCBobWFjUGFyYW1l
dGVycy5oYXNoLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKICAgICBpZiAoIXJlc3VsdCkgewpAQCAt
MTA0LDcgKzEwNCw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVyCiAgICAgY2FsbGJhY2socmVz
dWx0LmdldCgpLCBudWxscHRyKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjppbXBv
cnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3Qg
Q3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Ug
dXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25D
b2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwg
S2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIGlmICghaXM8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURhdGEpKSB7
CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9p
ZCBDcnlwdG9BbGdvcml0aG1ITUFDOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYgcGFyYW1ldGVycywKICAgICB9CiAgICAgY29uc3QgQ3J5cHRvS2V5RGF0YU9jdGV0
U2VxdWVuY2UmIGtleURhdGFPY3RldFNlcXVlbmNlID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YU9j
dGV0U2VxdWVuY2U+KGtleURhdGEpOwogCi0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtcyYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
PihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVj
YXRlZCYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBSZWZQdHI8Q3J5cHRvS2V5SE1BQz4gcmVz
dWx0ID0gQ3J5cHRvS2V5SE1BQzo6Y3JlYXRlKGtleURhdGFPY3RldFNlcXVlbmNlLm9jdGV0U2Vx
dWVuY2UoKSwgaG1hY1BhcmFtZXRlcnMuaGFzaCwgZXh0cmFjdGFibGUsIHVzYWdlKTsKICAgICBj
YWxsYmFjaygqcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAppbmRleCAzMTc1NDYwN2IwODQzMmY2ZDY2OWJj
NmVlZGRmM2MxY2E0NzIwYzY1Li41YjY3ZTJkZjAyZWZiOWJhZGJkODk0ODJiZTIxMDIxNzQ5YzZm
Mzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtSE1BQy5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtczsKK2NsYXNzIENyeXB0b0FsZ29y
aXRobUhtYWNQYXJhbXNEZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5SE1BQzsKIAogY2xhc3Mg
Q3J5cHRvQWxnb3JpdGhtSE1BQyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAt
NDQsMTggKzQ0LDE4IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzaWduKGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwg
Qm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktl
eVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpZ24oY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJpZnko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9L
ZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZW5lcmF0ZUtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGltcG9y
dEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtSE1BQygpOwogICAgIHZpcnR1
YWwgfkNyeXB0b0FsZ29yaXRobUhNQUMoKTsKIAotICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hl
cyhjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXkmKSBjb25zdDsKLSAgICB2b2lkIHBsYXRmb3JtU2lnbihjb25zdCBDcnlw
dG9BbGdvcml0aG1IbWFjUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5SE1BQyYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHBsYXRmb3JtVmVyaWZ5KGNvbnN0
IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlITUFDJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiBkYXRhLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXkmKSBjb25zdDsKKyAgICB2b2lkIHBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9B
bGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUhNQUMmLCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBwbGF0Zm9ybVZlcmlm
eShjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0
b0tleUhNQUMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCmluZGV4IGZlZmFhMzVlYjk5YzQxNmZiY2I3MGE0NzI5ZTA2MzMx
ZjhhOTIyYTcuLmRiNWJlNDZlOGVjNjE0ZTJmNjIwNzhlY2U4NjdmNjFiYmFlYzI5YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAK
ICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJz
YUtleUdlblBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dp
dGhIYXNoLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVj
YXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVw
cmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgiCiAjaW5j
bHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtNjUs
NyArNjUsNyBAQCBib29sIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmtleUFsZ29y
aXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6ZW5jcnlwdChjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0Fs
Z29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWtleUFs
Z29yaXRobU1hdGNoZXMoa2V5KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpA
QCAtNzUsNyArNzUsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmVu
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsCiAgICAgcGxhdGZvcm1FbmNy
eXB0KGRvd25jYXN0PENyeXB0b0tleVJTQT4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayks
IFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRo
bVJTQUVTX1BLQ1MxX3YxXzU6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81OjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwg
Y29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGtleSkp
IHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTg1LDkgKzg1LDkgQEAgdm9p
ZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjpkZWNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmLAogICAgIHBsYXRmb3JtRGVjcnlwdChkb3duY2FzdDxDcnlwdG9L
ZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxs
YmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81Ojpn
ZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxi
YWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxi
YWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zJiByc2FQ
YXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zPihwYXJh
bWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNh
dGVkJiByc2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBhdXRvIGtleVBhaXJDYWxsYmFjayA9
IFtjYWxsYmFja10oQ3J5cHRvS2V5UGFpciYgcGFpcikgewogICAgICAgICBjYWxsYmFjayhudWxs
cHRyLCAmcGFpcik7CkBAIC05Niw5ICs5Niw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyCiAg
ICAgQ3J5cHRvS2V5UlNBOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5oYXNoLCByc2FQYXJhbWV0ZXJzLmhhc0hh
c2gsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVycy5wdWJsaWNFeHBv
bmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGTW92ZShrZXlQYWlyQ2FsbGJhY2spLCBXVEZN
b3ZlKGZhaWx1cmVDYWxsYmFjaykpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BL
Q1MxX3YxXzU6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNTo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsK
LSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCYgcnNhUGFyYW1l
dGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoPihwYXJh
bWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERl
cHJlY2F0ZWQmIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQ
YXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogICAgIGNvbnN0IENyeXB0b0tl
eURhdGFSU0FDb21wb25lbnRzJiByc2FDb21wb25lbnRzID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0
YVJTQUNvbXBvbmVudHM+KGtleURhdGEpOwogCiAgICAgUmVmUHRyPENyeXB0b0tleVJTQT4gcmVz
dWx0ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNB
RVNfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5oYXNoLCByc2FQYXJhbWV0ZXJzLmhhc0hhc2gs
IHJzYUNvbXBvbmVudHMsIGV4dHJhY3RhYmxlLCB1c2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FF
U19QS0NTMV92MV81LmgKaW5kZXggZTFkOGUzMzU3NTU0MThlMDZhZjMyMjBiMzA2ZTlmOGU3MGY0
NWFiNC4uOGVhM2I3MzFjZTliMWIyYTVjZWEyZGQ2NzVlMjcxZWRlMTNiZmVmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIHB1YmxpYzoK
IAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
LCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9y
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFp
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlY3J5cHQo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9L
ZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzUuY3BwCmluZGV4IGFiMTU2Y2Y0MzdlMDlkZmZlNjAxNmZhY2NlOTA1MTJkYzczNmRhNTcuLmIz
Zjg2MmViNzZlYTQ0MTA1MmFjMzQ4MzY1YWVjZDRmY2RiMWFkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tl
eURhdGFSU0FDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtNTcsNyArNTcsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjppZGVudGlmaWVyKCkgY29u
c3QKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi1ib29sIENyeXB0b0FsZ29yaXRobVJT
QVNTQV9QS0NTMV92MV81OjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRo
bVJzYVNzYVBhcmFtcyYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXkp
IGNvbnN0Citib29sIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjprZXlBbGdvcml0
aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmIGFs
Z29yaXRobVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5KSBjb25zdAogewogICAgIGlm
IChrZXkuYWxnb3JpdGhtSWRlbnRpZmllcigpICE9IHNfaWRlbnRpZmllcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNjksOSArNjksOSBAQCBib29sIENyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81OjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81
OjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JD
YWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6c2ln
bihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywg
Y29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFy
YW1zJiByc2FTU0FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFy
YW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNE
ZXByZWNhdGVkJiByc2FTU0FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBpZiAoIWtleUFsZ29yaXRo
bU1hdGNoZXMocnNhU1NBUGFyYW1ldGVycywga2V5KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQ
T1JURURfRVJSOwpAQCAtODEsOSArODEsOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81OjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcgogICAg
IHBsYXRmb3JtU2lnbihyc2FTU0FQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtl
eSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVj
KTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6dmVyaWZ5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1S
c2FTc2FQYXJhbXMmIHJzYVNTQVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1S
c2FTc2FQYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNz
YVBhcmFtc0RlcHJlY2F0ZWQmIHJzYVNTQVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5
QWxnb3JpdGhtTWF0Y2hlcyhyc2FTU0FQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0g
Tk9UX1NVUFBPUlRFRF9FUlI7CkBAIC05Myw5ICs5Myw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzU6OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiBwCiAgICAgcGxhdGZvcm1WZXJpZnkocnNhU1NBUGFyYW1ldGVycywgIGRvd25jYXN0PENyeXB0
b0tleVJTQT4oa2V5KSwgc2lnbmF0dXJlLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92
ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5
T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzU6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtl
eU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
R2VuUGFyYW1zJiByc2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5
R2VuUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlH
ZW5QYXJhbXNEZXByZWNhdGVkJiByc2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3Jp
dGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBhdXRvIGtl
eVBhaXJDYWxsYmFjayA9IFtjYWxsYmFja10oQ3J5cHRvS2V5UGFpciYgcGFpcikgewogICAgICAg
ICBjYWxsYmFjayhudWxscHRyLCAmcGFpcik7CkBAIC0xMDQsOSArMTA0LDkgQEAgdm9pZCBDcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGUKICAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5oYXNoLCBy
c2FQYXJhbWV0ZXJzLmhhc0hhc2gsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFy
YW1ldGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGTW92ZShrZXlQ
YWlyQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwogfQogCi12b2lkIENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2
b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0
b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdl
LCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoJiByc2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2g+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRo
bVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCYgcnNhS2V5UGFyYW1ldGVycyA9IGRvd25j
YXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZD4ocGFyYW1l
dGVycyk7CiAgICAgY29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmIHJzYUNvbXBvbmVu
dHMgPSBkb3duY2FzdDxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4oa2V5RGF0YSk7CiAKICAg
ICBSZWZQdHI8Q3J5cHRvS2V5UlNBPiByZXN1bHQgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhS2V5UGFyYW1ldGVy
cy5oYXNoLCByc2FLZXlQYXJhbWV0ZXJzLmhhc0hhc2gsIHJzYUNvbXBvbmVudHMsIGV4dHJhY3Rh
YmxlLCB1c2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAppbmRleCBk
YzJiZmQ2OTVmNTA2ZDU3ZjYxZTRhYjdkMGNhMGM2MzllM2I0NzRhLi5kMDZmNzZiZGJjZTRjMTc4
ZGVjNzIwMzgzZDA3MjFmNWUzYTRhODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81LmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXM7CitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXNEZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0g
ewpAQCAtNDQsMTggKzQ0LDE4IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzaWduKGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB2ZXJpZnkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
ZGF0YSwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBL
ZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFi
bGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpZ24oY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZW5lcmF0ZUtl
eShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFj
dGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNv
bnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUoKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSgp
OwogCi0gICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtcyYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7
Ci0gICAgdm9pZCBwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
JiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3Rv
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZvaWQgcGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3Nh
UGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
c2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAg
Ym9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFt
c0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYpIGNvbnN0
OworICAgIHZvaWQgcGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFt
c0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCmluZGV4IDViMDk5NGQy
NTFhOTQzM2U2ZDk1N2VmNTg0ZTBiNzU1M2ZjMDAxN2IuLjIyNTU5MWM4ODQ3NDU2MmZhYjk3M2Yx
MDcyZjZmY2FjYjJmMjU3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKQEAgLTI4LDkgKzI4
LDkgQEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtUnNhS2V5R2VuUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
UGFyYW1zV2l0aEhhc2guaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1z
LmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5o
IgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRl
ZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJDcnlw
dG9LZXlSU0EuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC01Nyw3ICs1Nyw3IEBA
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmlkZW50
aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLWJvb2wgQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVA6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUnNhT2FlcFBhcmFtcyYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBr
ZXkpIGNvbnN0Citib29sIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjprZXlBbGdvcml0aG1NYXRj
aGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0
aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSkgY29uc3QKIHsKICAgICBpZiAoa2V5
LmFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBzX2lkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTY5LDkgKzY5LDkgQEAgYm9vbCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6a2V5
QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGEKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZW5jcnlwdChjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkm
IGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmIHJzYU9BRVBQYXJh
bWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcz4ocGFyYW1ldGVy
cyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIHJz
YU9BRVBQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0Rl
cHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKHJz
YU9BRVBQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7
CkBAIC04MSw5ICs4MSw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmVuY3J5cHQo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVyCiAgICAgcGxhdGZvcm1F
bmNyeXB0KHJzYU9BRVBQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRh
dGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0K
IAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5
cHRvQWxnb3JpdGhtUlNBX09BRVA6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNv
bnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmIHJzYU9BRVBQYXJhbWV0ZXJzID0gZG93
bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIHJzYU9BRVBQYXJhbWV0
ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQ+KHBh
cmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKHJzYU9BRVBQYXJhbWV0
ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC05Myw5ICs5
Myw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmRlY3J5cHQoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVyCiAgICAgcGxhdGZvcm1EZWNyeXB0KHJzYU9B
RVBQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUo
Y2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlw
dG9BbGdvcml0aG1SU0FfT0FFUDo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNh
Z2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FF
UDo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
IHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5
T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlH
ZW5QYXJhbXMmIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlH
ZW5QYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtc0RlcHJlY2F0ZWQmIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGF1dG8ga2V5
UGFpckNhbGxiYWNrID0gW2NhbGxiYWNrXShDcnlwdG9LZXlQYWlyJiBwYWlyKSB7CiAgICAgICAg
IGNhbGxiYWNrKG51bGxwdHIsICZwYWlyKTsKQEAgLTEwNCw5ICsxMDQsOSBAQCB2b2lkIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiBwYXJhbQogICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQV9PQUVQLCByc2FQYXJhbWV0ZXJzLmhhc2gsIHJzYVBhcmFtZXRl
cnMuaGFzSGFzaCwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJhbWV0ZXJzLnB1
YmxpY0V4cG9uZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBXVEZNb3ZlKGtleVBhaXJDYWxsYmFj
ayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVA6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVA6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2gmIHJzYUtleVBhcmFtZXRlcnMg
PSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaD4ocGFyYW1ldGVy
cyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNh
dGVkJiByc2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFy
YW1zV2l0aEhhc2hEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKICAgICBjb25zdCBDcnlwdG9LZXlE
YXRhUlNBQ29tcG9uZW50cyYgcnNhQ29tcG9uZW50cyA9IGRvd25jYXN0PENyeXB0b0tleURhdGFS
U0FDb21wb25lbnRzPihrZXlEYXRhKTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlSU0E+IHJlc3Vs
dCA9IENyeXB0b0tleVJTQTo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9P
QUVQLCByc2FLZXlQYXJhbWV0ZXJzLmhhc2gsIHJzYUtleVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNh
Q29tcG9uZW50cywgZXh0cmFjdGFibGUsIHVzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCmluZGV4
IDg0MGJlMGIwMzFhZmI2ZDM4ZDgwNmU5NzljYzNjN2VlODU2ZDE1OTcuLjBlYjY5OTY2YTk5YzNk
YTljZDcxMWQ3ODE4ZmQ4NzZhOGEyYzM1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaApAQCAtMzIs
NyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXM7CitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVj
YXRlZDsKIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBX09B
RVAgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKQEAgLTQ0LDE4ICs0NCwxOCBAQCBw
dWJsaWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYs
IFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlP
cktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuY3J5cHQoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
ZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3Qg
Q3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRl
OworICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWly
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJs
ZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQKCk7CiAgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUlNBX09B
RVAoKTsKIAotICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0
aG1Sc2FPYWVwUGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBj
b25zdDsKLSAgICB2b2lkIHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FP
YWVwUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgcGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVJzYU9hZXBQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0
IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsKKyAgICB2b2lkIHBsYXRmb3JtRW5jcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0
b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBW
ZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHAKaW5kZXggNTc4YjY2YmVmY2Y0ZWM1ZDhh
YTdlZTI3MzcwYzViZjExNTc5NTI3Ni4uNzI5Nzk2ZGUzMTRhZjU3ODg4NDM5N2U4MTU2YWQ5N2M3
YWM0NDA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtU0hBMS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1TSEExOjppZGVudGlmaWVyKCkgY29uc3QKICAg
ICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVNIQTE6OmRp
Z2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hB
MTo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvRGlnZXN0PiBkaWdlc3QgPSBDcnlwdG9EaWdlc3Q6OmNyZWF0
ZShDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzEpOwogICAgIGlmICghZGlnZXN0KSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEExLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEExLmgKaW5kZXggODI5MjQzNzRkOTg5OTk3ZjNkMDJhMjU4NGEyMjRmYmY2ZjI4NjZlMy4u
ZjUyNDBiMjNmN2E2YWUxNGZiNjZkYTM3NTZkMDViMWIwYWYyZWE5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaApA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtU0hBMSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
MjI0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTIyNC5jcHAKaW5kZXggMzBkMmIxMzk2Y2NiMjY0MmM5ZjIxZmFkMzMyNGU4NmU2ZDUyMzYx
Zi4uZmE4MGZjNmRjNDVkNjBkNDY3OTgxMGRhYzhmODQ2ZGE0MDA1MmU5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyMjQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5
cHRvQWxnb3JpdGhtU0hBMjI0OjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVu
dGlmaWVyOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVNIQTIyNDo6ZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OmRpZ2VzdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0RpZ2VzdD4gZGlnZXN0ID0gQ3J5cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRvRGln
ZXN0OjpBbGdvcml0aG06OlNIQV8yMjQpOwogICAgIGlmICghZGlnZXN0KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIy
NC5oCmluZGV4IGE0ZjQzMDhiYjEwOGYwYTY0Y2UwYjYzNjQxMWYyZTkzODQ2YzQ4NDYuLmRmZjZk
MjE4ZTY2MjkzODlkNGMxZjJjNjIzNDA5NGQ4NTU1MDQzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEEyMjQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTI1Ni5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEEyNTYuY3BwCmluZGV4IGViMmFkYTJmZmU0NGNhZGQ2ZjNhYWYzZmI1OTAwMTMyYzVkOGQ2
OTEuLjMyNDk5YTk1YjZlM2U3OTQ5Y2M0Mjc0OTBiMTM0NWY1ZjFmMDA5YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMjU2LmNwcApAQCAtNTIsNyArNTIsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENy
eXB0b0FsZ29yaXRobVNIQTI1Njo6aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1TSEEyNTY6OmRpZ2VzdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2OjpkaWdlc3Qo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewogICAgIHN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9EaWdlc3Q+IGRpZ2VzdCA9IENyeXB0b0RpZ2VzdDo6Y3JlYXRlKENyeXB0b0Rp
Z2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2KTsKICAgICBpZiAoIWRpZ2VzdCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
NTYuaAppbmRleCA0MWQwNzc5ZTgyMzZhNjIwZGEwNWFjMDU1ODlmYWVkMTk4NWNiOWIwLi43ZGQ3
NThhNjQ1MTBlOTRhNGFlZThkMTYyZjMzOWIzNjg4YWE2M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaApA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEzODQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMzg0LmNwcAppbmRleCBkN2Q0MTAyNThkYzJlZGMxZThkNmI0MmUxY2ZjNjU4NTFkM2Rl
MGE2Li4zNGVkODdjOTk4ZjEzODZmZTMwZDUzYTVjODk3ZDkwZjllOWY1ZTVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTM4NC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBD
cnlwdG9BbGdvcml0aG1TSEEzODQ6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzX2lk
ZW50aWZpZXI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0OjpkaWdlc3QoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRh
dGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobVNIQTM4NDo6ZGlnZXN0
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvRGlnZXN0PiBkaWdlc3QgPSBDcnlwdG9EaWdlc3Q6OmNyZWF0ZShDcnlwdG9E
aWdlc3Q6OkFsZ29yaXRobTo6U0hBXzM4NCk7CiAgICAgaWYgKCFkaWdlc3QpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
Mzg0LmgKaW5kZXggODMyNzAwMzJiMzIzNDMxYTJiMTY2ODU0ZjA5NmIxMTg3YjQ1YmMwZS4uYjBi
MGQwZTM3YWJmYzQ0OTNhNzIyMGFlNzgyZDBkNTY0MjI1YzRkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgK
QEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZ2VzdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobVNIQTM4NCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBNTEyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTUxMi5jcHAKaW5kZXggMTYxYmY3MzY2NGYwNTRkNjBkZDI4YWIxMjEyOWEwNWU2Zjg2
YWE0MS4uOWRhOTczNmYzODgzYTQwM2Y3ZWVhYmQ2ODY0YjBlZjljYjcxMWE2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEE1MTIuY3BwCkBAIC01Miw3ICs1Miw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
Q3J5cHRvQWxnb3JpdGhtU0hBNTEyOjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVNIQTUxMjo6ZGlnZXN0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBk
YXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1TSEE1MTI6OmRpZ2Vz
dChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0RpZ2VzdD4gZGlnZXN0ID0gQ3J5cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRv
RGlnZXN0OjpBbGdvcml0aG06OlNIQV81MTIpOwogICAgIGlmICghZGlnZXN0KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1
MTIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTUxMi5oCmluZGV4IGYzMTYxODNmNTM2ZDMzNGI4YWIyYTZlZDI2NGY1MGYxOWU5YjFkZDAuLjY0
MDJhMjljZTNlYTA1MDUwMTI0YjYwNGRkZDQzMTkyM2EwMTliNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5o
CkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWdlc3QoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBW
ZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEE1MTIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRp
b25SYXcuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdy5jcHAKaW5kZXggZmYwODczMGRmNGRiY2E1ZjhiMzVjMGFlM2QyYTIxMGNlZWYyMTg2
OS4uNmQzYjhjODQ1ODk5YjVlYmZmMTMwMThlOWFmMmE3YjBlODZlZTFiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJh
dy5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAogI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5o
IgogI2luY2x1ZGUgIkNyeXB0b0tleS5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNl
cXVlbmNlLmgiCiAKQEAgLTQ0LDcgKzQ0LDcgQEAgQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6
fkNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcoKQogewogfQogCi1PcHRpb25hbDxDcnlwdG9BbGdv
cml0aG1QYWlyPiBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3OjpyZWNvbmNpbGVBbGdvcml0aG0o
Q3J5cHRvQWxnb3JpdGhtKiBhbGdvcml0aG0sIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMqIHBh
cmFtZXRlcnMpIGNvbnN0CitPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uUmF3OjpyZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiBhbGdv
cml0aG0sIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKiBwYXJhbWV0ZXJzKSBj
b25zdAogewogICAgIHJldHVybiBDcnlwdG9BbGdvcml0aG1QYWlyIHsgYWxnb3JpdGhtLCBwYXJh
bWV0ZXJzIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlTZXJpYWxpemF0aW9uUmF3LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlTZXJpYWxpemF0aW9uUmF3LmgKaW5kZXggMDhlYWQ4MjZjZTZjMjFmODdiZGZmODJkZDgy
OWMzY2VmN2E4OWExMC4uZWZhM2NkMmMwMWQ5ZjM1YTBlOTBjMmE5OTdjNDE0ODJkNzhlYTUzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlh
bGl6YXRpb25SYXcuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIENy
eXB0b0tleVNlcmlhbGl6YXRpb25SYXcoY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYpOwogCi0g
ICAgT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlQWxnb3JpdGhtKENyeXB0
b0FsZ29yaXRobSosIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMqKSBjb25zdCBvdmVycmlkZTsK
KyAgICBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5
cHRvQWxnb3JpdGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVjb25jaWxlVXNhZ2VzKENyeXB0b0tleVVzYWdlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29u
c3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0
b0FsZ29yaXRobUFFU19DQkNNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAppbmRleCAxNTg2OTA3OTZmMjA0Y2YxODM1NDM3ZGNh
MWI4ZDAzOTU4ZjA0YmMzLi5iMTIzY2VjYjEyM2M1MTRjMzhmMDkwNDRiZTM4MmYxODE3NmI0NzFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFF
U19DQkNNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQ01hYy5jcHAKQEAgLTI4LDE0ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCIKKyNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVk
ZSAiQ3J5cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
PENvbW1vbkNyeXB0by9Db21tb25DcnlwdG8uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgdm9pZCB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlB
RVMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQ3J5cHRvQWxnb3JpdGht
OjpWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaykKK3N0YXRpYyB2b2lkIHRyYW5zZm9ybUFFU19DQkMoQ0NPcGVy
YXRpb24gb3BlcmF0aW9uLCBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNh
dGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgQ3J5cHRvQWxnb3JpdGhtOjpWZWN0b3JDYWxsYmFjayYmIGNhbGxi
YWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKIHsK
ICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihwYXJhbWV0ZXJzLml2KSA9PSBrQ0NCbG9ja1NpemVB
RVMxMjgsICJJbml0aWFsaXphdGlvbiB2ZWN0b3Igc2l6ZSBtdXN0IGJlIHRoZSBzYW1lIGFzIGFs
Z29yaXRobSBibG9jayBzaXplIik7CiAKQEAgLTgyLDEyICs4MiwxMiBAQCBzdGF0aWMgdm9pZCB0
cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtQWVzQ2JjUAogICAgIGNhbGxiYWNrKHJlc3VsdCk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRo
bUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICB0cmFu
c2Zvcm1BRVNfQ0JDKGtDQ0VuY3J5cHQsIHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92ZShj
YWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0Ni
Y1BhcmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29y
aXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQ
YXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICB0
cmFuc2Zvcm1BRVNfQ0JDKGtDQ0RlY3J5cHQsIHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92
ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcAppbmRleCBj
ZjNhNDYwZDU1ZWFmNDY5NTM4M2E4MWFlMWZjMGNjNTQ5NDZkN2U3Li4yOTZhNzhhYjU3ZmQzYjk1
YjkzZGVhYjhhNmY3MjUwOTg2NGM2NzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1h
Y1BhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVk
LmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5SE1BQy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKICNpbmNsdWRlIDxDb21tb25DcnlwdG8vQ29tbW9uSE1BQy5oPgpAQCAtODksNyArODksNyBA
QCBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNhbGN1bGF0ZVNpZ25hdHVyZShDQ0htYWNBbGdvcml0
aG0gYWxnb3JpdGhtLCBjb25zdCBWZWN0bwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQg
Q3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUht
YWNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpw
bGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBh
cmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIENDSG1hY0FsZ29yaXRobSBhbGdvcml0aG07CiAgICAg
aWYgKCFnZXRDb21tb25DcnlwdG9ITUFDQWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaCwgYWxnb3Jp
dGhtKSkgewpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxh
dGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIHBhcmFtZXRlCiAgICAg
Y2FsbGJhY2soc2lnbmF0dXJlKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0
Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXlITUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVj
dGVkU2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBD
cnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1I
bWFjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5SE1BQyYga2V5
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBleHBlY3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBDQ0htYWNBbGdvcml0aG0gYWxnb3Jp
dGhtOwogICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvSE1BQ0FsZ29yaXRobShwYXJhbWV0ZXJzLmhh
c2gsIGFsZ29yaXRobSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKaW5kZXgg
MzlhYzQwMmM1ZjZjMjdmY2ViOTgwOTYwYjFiY2YyYTlkNDI5MTBjYi4uMGFiOGY0MmI4NWZiMTlm
ZjlhNDQ4NTc5NGQxODI3MmNjMDU2MTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1h
Yy5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAogI2lu
Y2x1ZGUgIkNvbW1vbkNyeXB0b1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bVJzYVNzYVBhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0Rl
cHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9EaWdlc3QuaCIKICNpbmNsdWRlICJDcnlwdG9L
ZXlSU0EuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC01OSw3ICs1OSw3IEBAIGlu
bGluZSBib29sIGdldENyeXB0b0RpZ2VzdEFsZ29yaXRobShDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGhhc2hGdW5jdGlvbiwgQ3J5CiAgICAgfQogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJT
QVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3Nh
UGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0
aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0Em
IGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBDQ0RpZ2VzdEFsZ29yaXRobSBkaWdlc3RBbGdvcml0aG07CiAgICAgaWYgKCFn
ZXRDb21tb25DcnlwdG9EaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoLCBkaWdlc3RBbGdv
cml0aG0pKSB7CkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzU6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQCiAgICAg
Y2FsbGJhY2soc2lnbmF0dXJlKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNTo6cGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
JiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29s
Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBs
YXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQm
IHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xD
YWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIENDRGlnZXN0QWxnb3JpdGhtIGRpZ2VzdEFsZ29yaXRobTsK
ICAgICBpZiAoIWdldENvbW1vbkNyeXB0b0RpZ2VzdEFsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gs
IGRpZ2VzdEFsZ29yaXRobSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L21hYy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAKaW5kZXggYWFjZGZhZmE5ZjYzMzYx
Yzk0ZGRmODVjYmNhZmU1MzFhMzAyMTcxNS4uY2YyODFjYTg3NjAyMjRlZDA3YTdlNGEwMGFmZjFm
ZGQ4NTdjNWQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9B
bGdvcml0aG1SU0FfT0FFUE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAKQEAgLTI5LDEzICsyOSwxMyBAQAogI2lmIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgi
Ci0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oIgorI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRv
S2V5UlNBLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRW5jcnlwdChjb25z
dCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRW5jcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywg
Y29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQ0NEaWdlc3RBbGdvcml0aG0gZGlnZXN0QWxn
b3JpdGhtOwogICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRl
cnMuaGFzaCwgZGlnZXN0QWxnb3JpdGhtKSkgewpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtcwogICAgIGNhbGxiYWNrKGNpcGhlclRleHQpOwogfQogCi12b2lkIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENy
eXB0b0FsZ29yaXRobVJTQV9PQUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJT
QSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIENDRGlnZXN0QWxnb3JpdGhtIGRpZ2VzdEFsZ29yaXRobTsKICAgICBpZiAo
IWdldENvbW1vbkNyeXB0b0RpZ2VzdEFsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gsIGRpZ2VzdEFs
Z29yaXRobSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJhNzk4ZjdlNTYyODNiNWE5MzcwYTFjMzAwZGZlNjViYTQ2MjIxM2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNf
aAotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPGFy
cmF5PgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMgewotcHVibGljOgotICAgIC8vIFRoZSBpbml0aWFsaXphdGlv
biB2ZWN0b3IuIE1VU1QgYmUgMTYgYnl0ZXMuCi0gICAgc3RkOjphcnJheTxjaGFyLCAxNj4gaXY7
Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBD
bGFzczo6QWVzQ2JjUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEFlc0NiY1Bh
cmFtcykKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0
b0FsZ29yaXRobUFlc0NiY1BhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXNEZXByZWNhdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGNiNWU5NjQyMTkyODEyNWI5YWM4ZTA2NDBiZTkz
YTFhNzkyNTdiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJh
bWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgPGFycmF5PgorCisjaWYgRU5B
QkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6CisgICAgLy8gVGhlIGluaXRpYWxp
emF0aW9uIHZlY3Rvci4gTVVTVCBiZSAxNiBieXRlcy4KKyAgICBzdGQ6OmFycmF5PGNoYXIsIDE2
PiBpdjsKKworICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIENsYXNzOjpBZXNDYmNQYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoQWVz
Q2JjUGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlH
ZW5QYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29y
aXRobUFlc0tleUdlblBhcmFtcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTRj
NWNmYjYyMmM5OTE5N2ZjNzBhMjcyNThhZTY1ZDQyNzJiMDNiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEs
NDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2Vu
UGFyYW1zX2gKLSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zX2gKLQotI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVf
Q1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUFl
c0tleUdlblBhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsK
LXB1YmxpYzoKLSAgICAvLyBUaGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUga2V5LgotICAgIHVu
c2lnbmVkIGxlbmd0aDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIENsYXNzOjpBZXNLZXlHZW5QYXJhbXM7IH0KLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BB
UkFNRVRFUlMoQWVzS2V5R2VuUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0tl
eUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YTMwNjJkZTMxM2U3NTQ0MWU4YjFhNTEwOTY5Yjc1MTEzZmNmODhjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
LmgiCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkIGZpbmFsIDog
cHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKK3B1YmxpYzoKKyAg
ICAvLyBUaGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUga2V5LgorICAgIHVuc2lnbmVkIGxlbmd0
aDsKKworICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IENsYXNzOjpBZXNLZXlHZW5QYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoQWVz
S2V5R2VuUGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFj
S2V5UGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdv
cml0aG1IbWFjS2V5UGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyMWIx
NWQ4OWQwMzg1YjhlNTYyOTZkOWZjZTdhNWExODdhNmE4YTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFt
c19oCi0jZGVmaW5lIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNfaAotCi0jaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMgZmluYWwgOiBwdWJs
aWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3Jp
dGhtSG1hY0tleVBhcmFtcygpCi0gICAgICAgIDogaGFzTGVuZ3RoKGZhbHNlKQotICAgIHsKLSAg
ICB9Ci0KLSAgICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2UuCi0gICAgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOwotCi0gICAgLy8gVGhlIGxlbmd0aCAoaW4gYnl0ZXMp
IG9mIHRoZSBrZXkgdG8gZ2VuZXJhdGUuIElmIHVuc3BlY2lmaWVkLCB0aGUgcmVjb21tZW5kZWQg
bGVuZ3RoIHdpbGwgYmUgdXNlZCwKLSAgICAvLyB3aGljaCBpcyB0aGUgc2l6ZSBvZiB0aGUgYXNz
b2NpYXRlZCBoYXNoIGZ1bmN0aW9uJ3MgYmxvY2sgc2l6ZS4KLSAgICBib29sIGhhc0xlbmd0aDsK
LSAgICB1bnNpZ25lZCBsZW5ndGg7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6SG1hY0tleVBhcmFtczsgfQotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklU
SE1fUEFSQU1FVEVSUyhIbWFjS2V5UGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9D
UllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFj
S2V5UGFyYW1zRGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTE3
ZmMzMWRkMzZhNjEyMGMzYThmYWVkZjg1MzFlYjlhZGI4MGM4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBh
cmFtc0RlcHJlY2F0ZWQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKKworI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0FsZ29yaXRo
bUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkIHsKK3B1YmxpYzoKKyAgICBDcnlwdG9BbGdvcml0aG1IbWFjS2V5
UGFyYW1zRGVwcmVjYXRlZCgpCisgICAgICAgIDogaGFzTGVuZ3RoKGZhbHNlKQorICAgIHsKKyAg
ICB9CisKKyAgICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2UuCisgICAgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOworCisgICAgLy8gVGhlIGxlbmd0aCAoaW4gYnl0ZXMp
IG9mIHRoZSBrZXkgdG8gZ2VuZXJhdGUuIElmIHVuc3BlY2lmaWVkLCB0aGUgcmVjb21tZW5kZWQg
bGVuZ3RoIHdpbGwgYmUgdXNlZCwKKyAgICAvLyB3aGljaCBpcyB0aGUgc2l6ZSBvZiB0aGUgYXNz
b2NpYXRlZCBoYXNoIGZ1bmN0aW9uJ3MgYmxvY2sgc2l6ZS4KKyAgICBib29sIGhhc0xlbmd0aDsK
KyAgICB1bnNpZ25lZCBsZW5ndGg7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6SG1hY0tleVBhcmFtczsgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklU
SE1fUEFSQU1FVEVSUyhIbWFjS2V5UGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9D
UllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1IbWFjUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVy
cy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUzNzkzYjZmYTVkNzUzZTM1YTg5NjJmNWFlNjg4OGQwZTBlZjdjY2MuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oCisrKyAvZGV2L251bGwKQEAg
LTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtc19oCi0jZGVmaW5lIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNfaAotCi0jaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhlIGlubmVyIGhh
c2ggZnVuY3Rpb24gdG8gdXNlLgotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsK
LQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENs
YXNzOjpIbWFjUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEhtYWNQYXJhbXMp
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJh
bWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRl
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFlNWIxYjNhNjViMjBjZGNiYzQ0YTRjMGE1ZmRmMTc3OTVlNzNlODUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgor
CisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIC8vIFRoZSBp
bm5lciBoYXNoIGZ1bmN0aW9uIHRvIHVzZS4KKyAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGhhc2g7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBDbGFzczo6SG1hY1BhcmFtczsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhIbWFj
UGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjNhNTdj
ZWQzZTNjMzY2M2IzMTEyZDU5OTJhODFjMzIxMmQzOTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zX2gKLSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zX2gKLQotI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
R2VuUGFyYW1zKCkKLSAgICAgICAgOiBoYXNIYXNoKGZhbHNlKQotICAgIHsKLSAgICB9Ci0gICAg
Ly8gVGhlIGxlbmd0aCwgaW4gYml0cywgb2YgdGhlIFJTQSBtb2R1bHVzLgotICAgIHVuc2lnbmVk
IG1vZHVsdXNMZW5ndGg7Ci0gICAgLy8gVGhlIFJTQSBwdWJsaWMgZXhwb25lbnQsIGVuY29kZWQg
YXMgQmlnSW50ZWdlci4KLSAgICBWZWN0b3I8dWludDhfdD4gcHVibGljRXhwb25lbnQ7Ci0gICAg
Ly8gVGhlIGhhc2ggYWxnb3JpdGggaWRlbnRpZmllcgotICAgIGJvb2wgaGFzSGFzaDsKLSAgICBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xh
c3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhS2V5R2VuUGFyYW1zOyB9Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZ
UFRPX0FMR09SSVRITV9QQVJBTUVURVJTKFJzYUtleUdlblBhcmFtcykKLQotI2VuZGlmIC8vIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVk
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGIzM2Y3MzZjZmM0ODQ1ZDMzMGU2YTE1MTU4ZGYwZWM0MzU3YzlhZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaApAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lmIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0Fs
Z29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQoKQorICAgICAgICA6IGhhc0hhc2goZmFsc2UpCisg
ICAgeworICAgIH0KKyAgICAvLyBUaGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUgUlNBIG1vZHVs
dXMuCisgICAgdW5zaWduZWQgbW9kdWx1c0xlbmd0aDsKKyAgICAvLyBUaGUgUlNBIHB1YmxpYyBl
eHBvbmVudCwgZW5jb2RlZCBhcyBCaWdJbnRlZ2VyLgorICAgIFZlY3Rvcjx1aW50OF90PiBwdWJs
aWNFeHBvbmVudDsKKyAgICAvLyBUaGUgaGFzaCBhbGdvcml0aCBpZGVudGlmaWVyCisgICAgYm9v
bCBoYXNIYXNoOworICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKKworICAgIENs
YXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FL
ZXlHZW5QYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoUnNhS2V5R2VuUGFyYW1z
KQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRo
SGFzaC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGht
UnNhS2V5UGFyYW1zV2l0aEhhc2guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGVm
Y2FhMTczNjgwZDZhZmQwNjUzNzNjZGMxYjY5ZDA2OWRkZTRmNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2hfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNX
aXRoSGFzaF9oCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGhpcyBwYXJhbWV0ZXJzIGNsYXNz
IGlzIGN1cnJlbnRseSBub3Qgc3BlY2lmaWVkIGluIFdlYkNyeXB0by4KLS8vIEl0IGlzIG5lY2Vz
c2FyeSB0byBzdXBwb3J0IGltcG9ydCBmcm9tIEpXSywgd2hpY2ggdHJlYXRzIGhhc2ggZnVuY3Rp
b24gYXMgcGFydCBvZiBhbGdvcml0aG0KLS8vIGlkZW50aWZpZXIsIHNvIHdlIG5lZWQgdG8gcmVt
ZW1iZXIgaXQgdG8gY29tcGFyZSB3aXRoIG9uZSBwYXNzZWQgdG8gc2lnbiBvciB2ZXJpZnkgZnVu
Y3Rpb25zLgotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2ggZmluYWwg
OiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2goKQotICAgICAgICA6IGhhc0hhc2goZmFsc2Up
Ci0gICAgewotICAgIH0KLQotICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCi0gICAg
Ym9vbCBoYXNIYXNoOwotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAg
IENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpS
c2FLZXlQYXJhbXNXaXRoSGFzaDsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1T
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhSc2FLZXlQ
YXJhbXNXaXRoSGFzaCkKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlm
IC8vIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoRGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWU5N2M4YjYxNzlkZTZlNGQ3ODY2NzI0MTFkZWI4ZmU5MGJjZWU0OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJz
YUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIu
aCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorCisj
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhp
cyBwYXJhbWV0ZXJzIGNsYXNzIGlzIGN1cnJlbnRseSBub3Qgc3BlY2lmaWVkIGluIFdlYkNyeXB0
by4KKy8vIEl0IGlzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IGltcG9ydCBmcm9tIEpXSywgd2hpY2gg
dHJlYXRzIGhhc2ggZnVuY3Rpb24gYXMgcGFydCBvZiBhbGdvcml0aG0KKy8vIGlkZW50aWZpZXIs
IHNvIHdlIG5lZWQgdG8gcmVtZW1iZXIgaXQgdG8gY29tcGFyZSB3aXRoIG9uZSBwYXNzZWQgdG8g
c2lnbiBvciB2ZXJpZnkgZnVuY3Rpb25zLgorY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFy
YW1zV2l0aEhhc2hEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkIHsKK3B1YmxpYzoKKyAgICBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJh
bXNXaXRoSGFzaERlcHJlY2F0ZWQoKQorICAgICAgICA6IGhhc0hhc2goZmFsc2UpCisgICAgewor
ICAgIH0KKworICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCisgICAgYm9vbCBoYXNI
YXNoOworICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKKworICAgIENsYXNzIHBh
cmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlQYXJh
bXNXaXRoSGFzaDsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhSc2FLZXlQYXJhbXNXaXRo
SGFzaCkKKworI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFt
cy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDJjMzRjZDFhNjZm
ZTI5YmY4OWJlZDYyNTUwY2VkZGRlMjlkYzQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNfaAotI2Rl
ZmluZSBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
LmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMgewotcHVibGljOgotICAgIENyeXB0b0FsZ29yaXRobVJzYU9h
ZXBQYXJhbXMoKQotICAgICAgICA6IGhhc0xhYmVsKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAg
ICAvLyBUaGUgaGFzaCBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgbWVzc2FnZS4KLSAgICBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICAvLyBUaGUgb3B0aW9uYWwgbGFiZWwv
YXBwbGljYXRpb24gZGF0YSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgbWVzc2FnZS4KLSAgICAvLyBG
SVhNRTogSXMgdGhlcmUgYSBkaWZmZXJlbmNlIGJldHdlZW4gYSBtaXNzaW5nIGxhYmVsIGFuZCBh
biBlbXB0eSBvbmU/IFBlcmhhcHMgd2UgZG9uJ3QgbmVlZCB0aGUgaGFzTGFiZWwgbWVtYmVyLgot
ICAgIGJvb2wgaGFzTGFiZWw7Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IGxhYmVsOwotCi0gICAgQ2xh
c3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYU9h
ZXBQYXJhbXM7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoUnNhT2FlcFBhcmFtcykKLQot
I2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFt
ZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXBy
ZWNhdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk4MDU5M2JkYzJhZWRhM2I0MjViYWNlZjYxOTMxNmZlYWYz
ZTgxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw1NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkLmgiCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6Cisg
ICAgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQoKQorICAgICAgICA6IGhh
c0xhYmVsKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICAvLyBUaGUgaGFzaCBmdW5jdGlvbiB0
byBhcHBseSB0byB0aGUgbWVzc2FnZS4KKyAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhh
c2g7CisKKyAgICAvLyBUaGUgb3B0aW9uYWwgbGFiZWwvYXBwbGljYXRpb24gZGF0YSB0byBhc3Nv
Y2lhdGUgd2l0aCB0aGUgbWVzc2FnZS4KKyAgICAvLyBGSVhNRTogSXMgdGhlcmUgYSBkaWZmZXJl
bmNlIGJldHdlZW4gYSBtaXNzaW5nIGxhYmVsIGFuZCBhbiBlbXB0eSBvbmU/IFBlcmhhcHMgd2Ug
ZG9uJ3QgbmVlZCB0aGUgaGFzTGFiZWwgbWVtYmVyLgorICAgIGJvb2wgaGFzTGFiZWw7CisgICAg
VmVjdG9yPHVpbnQ4X3Q+IGxhYmVsOworCisgICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYU9hZXBQYXJhbXM7IH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJ
VEhNX1BBUkFNRVRFUlMoUnNhT2FlcFBhcmFtcykKKworI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVf
Q1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODE4NWY4ZGZiODNhZDliM2Y1Yzg3ZTQyYTIyNDRmZDg2NDdhNGY4Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRo
bVJzYVNzYVBhcmFtc19oCi0jZGVmaW5lIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc19oCi0K
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zIGZp
bmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgewotcHVibGljOgotICAgIC8v
IFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCi0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBoYXNoOwotCi0gICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQ2xhc3M6OlJzYVNzYVBhcmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhS
c2FTc2FQYXJhbXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAv
LyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRl
ZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzOTRhMzc4ZWZmMjU3ZDU5Y2EzMTZi
OGFlMTE1NjMxMTc5ZjQ5OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkLmgiCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNh
dGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsK
K3B1YmxpYzoKKyAgICAvLyBUaGUgaGFzaCBhbGdvcml0aG0gdG8gdXNlLgorICAgIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaGFzaDsKKworICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FTc2FQYXJhbXM7IH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJ
VEhNX1BBUkFNRVRFUlMoUnNhU3NhUGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9D
UllQVE8pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291153</attachid>
            <date>2016-10-10 13:35:10 -0700</date>
            <delta_ts>2016-10-10 14:11:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163163-20161010133149.patch</filename>
            <type>text/plain</type>
            <size>191523</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE3YjU5MWIyYThkYTdm
MWUwNDMyM2M0ZTdhYzRjNjBjMTM0YjRhNy4uMWU5ZWQ1YWIwM2UxNDcxYWY4ODBlMTE0NjY3ZTUz
MzU4ZmMxZGQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NSBAQAorMjAxNi0xMC0wNyAgSmll
d2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzIHRvIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNjMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NjgxNTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3JzLiBObyBu
ZXcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25D
bGVhcktleS5jcHA6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBZXNDYmNQYXJhbXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQWVzS2V5R2VuUGFyYW1zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhtYWNQ
YXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSG1hY0tleVBhcmFtcyk6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVSc2FLZXlHZW5QYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlUnNhS2V5UGFyYW1zV2l0aEhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUnNhT2Fl
cFBhcmFtcyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSc2FTc2FQYXJhbXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24pOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JEZXJpdmVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yRXhwb3J0S2V5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0
b0tleVNlcmlhbGl6YXRpb25KV0suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSE1BQ1Bh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhI
YXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVj
b25jaWxlQWxnb3JpdGhtKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlh
bGl6YXRpb25KV0suaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbXBvcnRLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86OmltcG9ydEtleSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1dlYktpdFN1YnRsZUNyeXB0bzo6dW53cmFwS2V5KToKKyAgICAgICAgKiBjcnlwdG8vQ3J5
cHRvQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6ZW5j
cnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG06OmRlY3J5cHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpzaWduKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobTo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobTo6ZGlnZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6Z2VuZXJh
dGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVLZXkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6aW1wb3J0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobTo6ZW5jcnlwdEZvcldyYXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvQWxnb3JpdGhtOjpkZWNyeXB0Rm9yVW53cmFwS2V5KToKKyAgICAgICAgKiBjcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtLmg6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkOjp+Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ6OnBhcmFtZXRlcnNDbGFz
cyk6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29yaXRobU1hdGNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmdlbmVyYXRlS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmltcG9ydEtleSk6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAqIGNy
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmVuY3J5cHRGb3JXcmFwS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6ZGVjcnlwdEZvclVud3JhcEtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmdlbmVyYXRlS2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6aW1wb3J0S2V5KToKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNyeXB0b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6c2lnbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1ITUFDOjp2ZXJpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtSE1BQzo6aW1wb3J0S2V5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81OjplbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmRlY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6aW1wb3J0S2V5KToKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzU6OmtleUFsZ29yaXRobU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnNpZ24pOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnZlcmlmeSk6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmltcG9ydEtleSk6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6a2V5
QWxnb3JpdGhtTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUDo6ZW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FF
UDo6ZGVjcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6
Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6
OmltcG9ydEtleSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEExLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVNIQTE6OmRpZ2VzdCk6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OmRpZ2VzdCk6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0FsZ29yaXRobVNIQTI1Njo6ZGlnZXN0KToKKyAgICAgICAgKiBjcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtU0hBMzg0OjpkaWdlc3QpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTM4NC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTUxMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1T
SEE1MTI6OmRpZ2VzdCk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlv
blJhdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3Ojpy
ZWNvbmNpbGVBbGdvcml0aG0pOgorICAgICAgICAqIGNyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3Jp
dGhtUlNBU1NBX1BLQ1MxX3YxXzVHbnVUTFMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtU2lnbik6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1WZXJpZnkpOgor
ICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaDoKKyAgICAg
ICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dHJhbnNmb3JtQUVTX0NCQyk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KToKKyAgICAgICAgKiBjcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobUhNQUM6OnBsYXRmb3JtVmVyaWZ5KToKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVNpZ24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtVmVyaWZ5KToK
KyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpwbGF0Zm9ybUVuY3J5cHQp
OgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRGVj
cnlwdCk6CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
UGFyYW1zRGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmguCisgICAgICAgICogY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtQWVzS2V5R2VuUGFyYW1zLmguCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaC4K
KyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVw
cmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtcy5oLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJz
YUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2gu
aC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFy
YW1zRGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFt
ZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oLgorICAgICAgICAqIGNyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtcy5oLgorCiAyMDE2LTEwLTA2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGEgZHVtbXkgU3VidGxlQ3J5cHRvIGludGVyZmFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9u
Q2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1T
ZXNzaW9uQ2xlYXJLZXkuY3BwCmluZGV4IGZjZGE0ZTBmODc4NjZlYmUzZTg1NWViNzQ2ZTkzNmYx
Y2NmOTM4NzkuLjlkYTc3ODYxY2QzZGIzZWU0N2E4ZDY0NjQwZWRmOTM2NmQzYjlkOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNs
ZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NE
TVNlc3Npb25DbGVhcktleS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJBcnJheVZh
bHVlLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgogI2luY2x1ZGUgIkRp
Y3Rpb25hcnkuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNDll
ZWY0OTU0NDdmOTcxOGU0OTk1MjY0ODIxMmMzZjExMTI4YTc5Li4zY2E1MzQ3ZTQxMjc1NzUxNDFi
YjQ1YTY4MzUzNDRkMmQxYWI0OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTQ4LDcgKzU5NDgsNyBAQAogCQlFMTI1Rjgz
NTE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzMzE4MjJGMThBMDBEODRDRDkgLyog
Q3J5cHRvS2V5SE1BQy5jcHAgKi87IH07CiAJCUUxMjVGODM2MTgyMkYxOEEwMEQ4NENEOSAvKiBD
cnlwdG9LZXlITUFDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTI1RjgzNDE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5oICovOyB9Owog
CQlFMTI1RjgzODE4MjJGMUVCMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzNzE4
MjJGMUVCMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgKi87IH07Ci0JCUUx
MjVGODNBMTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODM5MTgy
NDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCAqLzsgfTsKKwkJ
RTEyNUY4M0ExODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0Rl
cHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxMjVGODM5MTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNE
ZXByZWNhdGVkLmggKi87IH07CiAJCUUxMjVGODNEMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0
b09wZXJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEyNUY4M0IxODI0MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0
YS5jcHAgKi87IH07CiAJCUUxMjVGODNFMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJh
dGlvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxMjVGODNDMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCAqLzsg
fTsKIAkJRTEyNUY4NDExODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFFU19DQkMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4
M0YxODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwICovOyB9OwpA
QCAtNjA0Miw5ICs2MDQyLDkgQEAKIAkJRTE5QUMzRjMxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0
b0FsZ29yaXRobVNIQTM4NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE5QUMzRUIxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTM4
NC5oICovOyB9OwogCQlFMTlBQzNGNDE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGht
U0hBNTEyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxOUFDM0VDMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwICov
OyB9OwogCQlFMTlBQzNGNTE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNF
RDE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggKi87IH07Ci0JCUUx
OUFDM0Y3MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0Y2
MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCAqLzsg
fTsKKwkJRTE5QUMzRjcxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdl
blBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxOUFDM0Y2MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNL
ZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxOUFDM0Y5MTgyNTY2RjcwMDM0OTQy
NiAvKiBDcnlwdG9LZXlNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE5QUMzRjgxODI1NjZGNzAwMzQ5NDI2IC8qIENyeXB0b0tleU1hYy5jcHAg
Ki87IH07Ci0JCUUxOURBMjlDMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFj
S2V5UGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFt
cy5oICovOyB9OworCQlFMTlEQTI5QzE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGht
SG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxOURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0
aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oICovOyB9OwogCQlFMUExNDcwODExMTAyQjE1MDBF
RUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTE0NzA3MTExMDJCMTUwMEVFQzBGMyAvKiBDb250
YWluZXJOb2RlQWxnb3JpdGhtcy5oICovOyB9OwogCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYg
LyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUEzMTYyQjEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNB
dHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTFBMzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmli
dXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxQTMxNjJDMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJp
bmdFeHRyYXMubW0gKi87IH07CkBAIC02MDcxLDEyICs2MDcxLDEyIEBACiAJCUUxQkI4NEFEMTgy
MkNBNzQwMDUyNTA0MyAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJCODRBQzE4MjJDQTc0MDA1
MjUwNDMgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMuY3BwICovOyB9OwogCQlFMUJEMzMx
OTE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRDMzMTcx
ODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcCAq
LzsgfTsKIAkJRTFCRDMzMUExODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNT
QV9QS0NTMV92MV81LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUJEMzMxODE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzUuaCAqLzsgfTsKLQkJRTFCRDMzMUMxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0Fs
Z29yaXRobVJzYVNzYVBhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtcy5oICovOyB9OwotCQlFMUJEMzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5R2VuUGFyYW1zLmggKi87IH07CisJCUUxQkQzMzFDMTgyRDhFRTkwMEMwNUQ5RiAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYg
LyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oICovOyB9OworCQlFMUJE
MzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFCRDMzMUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFt
c0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRV
bmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUJFNTEyQjBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCAqLzsg
fTsKIAkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRTUxMkMwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oICovOyB9OwogCQlFMUMyNjZEODE4MzE3QUI0
MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2RDYxODMxN0FC
NDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCAqLzsg
fTsKLQkJRTFDMjY2REIxODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBh
cmFtc1dpdGhIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFy
YW1zV2l0aEhhc2guaCAqLzsgfTsKKwkJRTFDMjY2REIxODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2REExODMxOTkzNTAwM0Y4QjMz
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oICovOyB9
OwogCQlFMUMyNjZERTE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFD
MjY2REMxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcCAq
LzsgfTsKIAkJRTFDMjY2REYxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21w
b25lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUMyNjZERDE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCAq
LzsgfTsKIAkJRTFDMzYyRUYwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzM2MkVEMEVB
RjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggKi87IH07CkBAIC02MDkzLDkgKzYw
OTMsOSBAQAogCQlFMUM0REU2RTBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzRERTZE
MEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuY3BwICovOyB9OwogCQlFMUM2NTcx
MjE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY1NzEwMTgxNUY5
REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwICovOyB9OwogCQlF
MUM2NTcxMzE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcxMTE4
MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmggKi87IH07Ci0J
CUUxQzY1NzFGMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcxRTE4
MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oICovOyB9OworCQlF
MUM2NTcxRjE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJl
Y2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
QzY1NzFFMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVj
YXRlZC5oICovOyB9OwogCQlFMUM2NTcyNTE4MTZFNjlEMDAyNTZDREQgLyogQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFDNjU3MjQxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIuaCAqLzsgfTsKLQkJRTFDNjU3MjcxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
LmggKi87IH07CisJCUUxQzY1NzI3MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFDNjU3MjYxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQzhCRTVEMEU4QkQxNUEwMDY0Q0I3RCAv
KiBKU1dvcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUM4QkU1QzBFOEJEMTVBMDA2NENCN0QgLyogSlNXb3JrZXIuY3BwICovOyB9OwogCQlF
MUM5NEFGOTE5MTMwM0YwMDBENUE4OTMgLyogQmxvYlBhcnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzk0QUY3MTkxMzAzRjAwMEQ1QTg5MyAvKiBC
bG9iUGFydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUxQ0E1Q0JDMEU4Q0RDQUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUNBNUNCQjBFOENEQ0FG
MDBFOEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwICovOyB9OwpAQCAtNjEyNSw3ICs2MTI1LDcg
QEAKIAkJRTFGRTEzNzAxODNGRUNGMDAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQ
TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RkUxMzZFMTgzRkVDRjAwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAg
Ki87IH07CiAJCUUxRkUxMzc0MTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRp
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFG
RTEzNzIxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAgKi87IH07
CiAJCUUxRkUxMzc1MTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzczMTg0
MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMuaCAqLzsgfTsKLQkJRTFGRTEz
NzcxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc2MTg0RDFF
MzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi87IH07CisJCUUx
RkUxMzc3MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVw
cmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFGRTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNE
ZXByZWNhdGVkLmggKi87IH07CiAJCUUxRkUxMzdBMTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9B
bGdvcml0aG1BRVNfS1cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFGRTEzNzgxODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19L
Vy5jcHAgKi87IH07CiAJCUUxRkUxMzdCMTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0
aG1BRVNfS1cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRkUxMzc5MTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCAqLzsg
fTsKIAkJRTFGRTEzN0UxODREMjcwMjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01h
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZF
MTM3QzE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcCAqLzsg
fTsKQEAgLTEzNTQ3LDcgKzEzNTQ3LDcgQEAKIAkJRTEyNUY4MzMxODIyRjE4QTAwRDg0Q0Q5IC8q
IENyeXB0b0tleUhNQUMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3J5cHRvS2V5SE1BQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODM0
MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENyeXB0b0tleUhNQUMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTEyNUY4MzcxODIyRjFFQjAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtSE1B
Q01hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMjVGODM5MTgyNDEwNDgw
MEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMjVGODM5MTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9B
bGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEyNUY4M0IxODI0MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5
cHRvT3BlcmF0aW9uRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTI1RjgzQzE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI1RjgzRjE4MjQyNTNBMDBEODRDRDkgLyog
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEzNjQ3LDkgKzEzNjQ3LDkgQEAKIAkJRTE5QUMzRUIxODI0REM3OTAwMzQ5NDI2
IC8qIENyeXB0b0FsZ29yaXRobVNIQTM4NC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDcnlwdG9BbGdvcml0aG1TSEEzODQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTE5QUMzRUMxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEE1
MTIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTlBQzNFRDE4MjREQzc5MDAz
NDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVNIQTUxMi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlFMTlBQzNGNjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29y
aXRobUFlc0tleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTlB
QzNGNjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0
aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxOUFDM0Y4MTgyNTY2RjcwMDM0OTQyNiAvKiBDcnlwdG9LZXlNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvS2V5TWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTE5REEyOUIxODE4OUFERDAwMDg4QkM4IC8qIENyeXB0b0Fs
Z29yaXRobUhtYWNLZXlQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBh
cmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0
aG1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRhaW5lck5vZGVBbGdv
cml0aG1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQTMxNjJCMTM0QkMzMkQw
MDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQTMxNjJDMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0
dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzY4MywxNCArMTM2ODMsMTQgQEAKIAkJRTFCQTY3MTYxNzQyQkRFMDAw
QzIwMjUxIC8qIGxpYldlYkNvcmVUZXN0U2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1
ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYldlYkNvcmVUZXN0U2hpbS5keWxpYjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRTFCQTY3MTkxNzQyQkVGNDAwQzIwMjUxIC8q
IFdlYkNvcmVUZXN0U2hpbUxpYnJhcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxQkI4NEFDMTgyMkNBNzQwMDUyNTA0MyAvKiBDcnlwdG9BbGdvcml0aG1SZWdp
c3RyeU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9B
bGdvcml0aG1SZWdpc3RyeU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUx
QkQzMzE3MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUx
QkQzMzE4MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMxQjE4
MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyog
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMUJEMzMxNzE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3Jp
dGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBs
aW5lRW5kaW5nID0gMDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlm
aWVyID0geGNvZGUubGFuZy5jcHA7IH07CisJCUUxQkQzMzE4MTgyRDhEREQwMEMwNUQ5RiAvKiBD
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVu
dGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCUUxQkQzMzFCMTgyRDhFRTkwMEMwNUQ5
RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VT
cGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQlFMUJEMzMx
RDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVj
YXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1S
c2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxQkU1MTJCMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNMVFVuaWNvZGVTb3J0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCRTUxMkMwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRV
bmljb2RlU29ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYU0xUVW5pY29k
ZVNvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDMjY2RDYxODMxN0FCNDAw
M0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDMjY2REExODMx
OTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxQzI2NkQ2MTgzMTdB
QjQwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsK
KwkJRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMjY2REMxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tl
eURhdGFSU0FDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFDMjY2REQxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21w
b25lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0tleURhdGFS
U0FDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzM2MkVEMEVB
RjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV29ya2VyTG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEzNzA1LDExICsxMzcwNSwxMSBAQAogCQlFMUM0MTYxNjBGNjU2MzE4MDA5MkQyRkIg
LyogQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxQzRERTY4MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmpl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0aXZlRE9NT2JqZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAv
KiBBY3RpdmVET01PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQWN0aXZlRE9NT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFD
NjU3MTAxODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUM2NTcxMDE4MTVG
OUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBKU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3Bl
Y2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKIAkJRTFDNjU3MTExODE1
RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENy
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
c0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTFDNjU3MjQxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUM2NTcyNjE4MTZGOUZFMDAy
NTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMUM2Q0ZDMjE3NDZEMjkzMDA3Qjg3QTEgLyogRE9NV2luZG93Q29uc3Ry
dWN0b3JzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NV2luZG93Q29uc3RydWN0b3JzLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlm
aWVyID0gIjxub25lPiI7IH07CiAJCUUxQzhCRTVDMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dvcmtl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dvcmtlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzk0QUY3MTkxMzAzRjAwMEQ1QTg5MyAv
KiBCbG9iUGFydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iUGFydC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3NDEsNyArMTM3NDEsNyBAQAogCQlF
MUZFMTM2RTE4M0ZFQ0YwMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNB
X09BRVBNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZFMTM3MjE4NDAy
QTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzczMTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25D
cnlwdG9VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tbW9u
Q3J5cHRvVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkUxMzc2
MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRTEzNzYxODREMUUzMzAwODkyRjEz
IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNh
dGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzc4MTg0RDIxQkIwMDg5
MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFGRTEzNzkxODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRo
bUFFU19LVy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0
aG1BRVNfS1cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRTEzN0MxODREMjcw
MjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIxMTUsMTQgKzIyMTE1LDE0IEBACiAJCUUxQzY1
NzE0MTgxNjAxNUYwMDI1NkNERCAvKiBwYXJhbWV0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFMTI1RjgzOTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmggKi8sCi0JCQkJRTE5QUMzRjYxODI0RTVEMTAwMzQ5
NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oICovLAotCQkJCUUxOURBMjlC
MTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmggKi8sCi0J
CQkJRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMu
aCAqLywKLQkJCQlFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zLmggKi8sCi0JCQkJRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmggKi8sCi0JCQkJRTFGRTEzNzYxODREMUUz
MzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCAqLywKLQkJCQlFMUJE
MzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggKi8s
CisJCQkJRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtc0RlcHJlY2F0ZWQuaCAqLywKKwkJCQlFMTlBQzNGNjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovLAorCQkJCUUxOURBMjlC
MTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRl
ZC5oICovLAorCQkJCUUxQzY1NzFFMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1I
bWFjUGFyYW1zRGVwcmVjYXRlZC5oICovLAorCQkJCUUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi8sCisJCQkJRTFD
MjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhI
YXNoRGVwcmVjYXRlZC5oICovLAorCQkJCUUxRkUxMzc2MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlw
dG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oICovLAorCQkJCUUxQkQzMzFCMTgy
RDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IHBhcmFtZXRlcnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMjIyNDMsNyArMjIyNDMsNyBAQAogCQkJCUUxNzJBRjZCMTgwRjI0QzYwMEZCQURC
OSAvKiBDcnlwdG9BbGdvcml0aG0uY3BwICovLAogCQkJCUUxNzJBRjZDMTgwRjI0QzYwMEZCQURC
OSAvKiBDcnlwdG9BbGdvcml0aG0uaCAqLywKIAkJCQlFMUM2NTcyNDE4MTZFNjlEMDAyNTZDREQg
LyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oICovLAotCQkJCUUxQzY1NzI2MTgxNkY5RkUw
MDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi8sCisJCQkJRTFDNjU3MjYx
ODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgg
Ki8sCiAJCQkJRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmNwcCAqLywKIAkJCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkuaCAqLywKIAkJCQlFMTU3QThFMjE4MTczQTNBMDA5RjgyMUQgLyogQ3J5cHRv
S2V5LmNwcCAqLywKQEAgLTI0MTUxLDIxICsyNDE1MSwyMSBAQAogCQkJCUUxNzJBRjZFMTgwRjI0
QzYwMEZCQURCOSAvKiBDcnlwdG9BbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjVG
ODQyMTgyNDI1M0EwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUZFMTM3QjE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTI1RjgzQTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTlBQzNGNzE4
MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMTI1RjgzQTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGht
QWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE5QUMzRjcxODI0
RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjVGODMyMTgyMkYxMUIwMEQ4NENEOSAvKiBDcnlwdG9B
bGdvcml0aG1ITUFDLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTlEQTI5QzE4MTg5QUREMDAwODhC
QzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTFDNjU3MUYxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCBp
biBIZWFkZXJzICovLAorCQkJCUUxOURBMjlDMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdv
cml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFDNjU3
MUYxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVk
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUM2NTcyNTE4MTZFNjlEMDAyNTZDREQgLyogQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFDNjU3MjcxODE2RjlG
RTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUxQzY1NzI3MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0
IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZFMTM2
QjE4M0ZFMUFCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxMjMzRjBEMTg1QTNFM0IwMDhERkFGNSAvKiBDcnlwdG9BbGdvcml0aG1SU0FF
U19QS0NTMV92MV81LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUJEMzMxRTE4MkQ4RjQyMDBDMDVE
OUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlFMUMyNjZEQjE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1z
V2l0aEhhc2guaCBpbiBIZWFkZXJzICovLAotCQkJCUUxRkUxMzc3MTg0RDFFMzMwMDg5MkYxMyAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUJE
MzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFDMjY2REIxODMxOTkzNTAwM0Y4QjMzIC8q
IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTFGRTEzNzcxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJz
YU9hZXBQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJEMzMxQTE4MkQ4
REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUUxQkQzMzFDMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1S
c2FTc2FQYXJhbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxQkQzMzFDMTgyRDhFRTkwMEMwNUQ5
RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTI1RjgyQzE4MjJDRkVDMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMzRUYxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0Fs
Z29yaXRobVNIQTIyNC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMzRjExODI0REM3OTAwMzQ5
NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5LmNwcAppbmRleCAwM2M4MDEzZWJhMTE3M2U4Y2VhMTM4YTA4ZWI2YjBiNDBjMWQ3YzI5Li43
NmQ1ZGNkZTA5YTNmOTA1NDc4NjcxMTgyMjk0ZTMzZjdmYzJmYWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eS5jcHAKQEAgLTI4LDE1ICsyOCwxNSBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIgor
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtl
eVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJz
YU9hZXBQYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3Nh
UGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRl
ICJKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKQEAg
LTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgYm9vbCBnZXRIYXNoQWxnb3JpdGhtKEpTRGljdGlvbmFy
eSYgZGljdGlvbmFyeSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcgogICAgIHJldHVybiBKU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmdldEFsZ29yaXRobUlkZW50aWZpZXIoZXhlYywgaGFz
aCwgcmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBjcmVhdGVBZXNDYmNQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlQWVz
Q2JjUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTEzNiw3ICsxMzYsNyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IGNyZWF0ZUFlc0NiY1BhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTVgogICAgIEpTVmFsdWUg
aXYgPSBnZXRQcm9wZXJ0eShleGVjLCB2YWx1ZS5nZXRPYmplY3QoKSwgIml2Iik7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGFk
b3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zKTsKKyAgICBhdXRvIHJlc3Vs
dCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCk7
CiAKICAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGl2RGF0YTsKICAgICBhdXRvIHN1Y2Nlc3MgPSBj
cnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoZXhlYywgaXYsIGl2RGF0YSk7CkBAIC0xNTQs
NyArMTU0LDcgQEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVh
dGVBZXNDYmNQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1YKICAgICByZXR1cm4gV1RGTW92ZShy
ZXN1bHQpOwogfQogCi1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNy
ZWF0ZUFlc0tleUdlblBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlQWVz
S2V5R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0m
IHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xNjQsNyArMTY0LDcgQEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzPiBjcmVhdGVBZXNLZXlHZW5QYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcyk7CisgICAgYXV0byByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQpOwogCiAg
ICAgSlNWYWx1ZSBsZW5ndGhWYWx1ZSA9IGdldFByb3BlcnR5KCZzdGF0ZSwgdmFsdWUuZ2V0T2Jq
ZWN0KCksICJsZW5ndGgiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKQEAgLTE3NCw3ICsxNzQsNyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IGNyZWF0ZUFlc0tleUdlblBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLAogICAgIHJldHVy
biBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3Jl
YXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZN
JiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTg1LDcgKzE4NSw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhCiAgICAgfQog
CiAgICAgSlNEaWN0aW9uYXJ5IGpzRGljdGlvbmFyeSgmc3RhdGUsIHZhbHVlLmdldE9iamVjdCgp
KTsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtcyk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUht
YWNQYXJhbXNEZXByZWNhdGVkKTsKIAogICAgIGF1dG8gc3VjY2VzcyA9IGdldEhhc2hBbGdvcml0
aG0oanNEaWN0aW9uYXJ5LCByZXN1bHQtPmhhc2gsIEhhc2hSZXF1aXJlbWVudDo6UmVxdWlyZWQp
OwogICAgIEFTU0VSVF9VTlVTRUQoc2NvcGUsIHNjb3BlLmV4Y2VwdGlvbigpIHx8IHN1Y2Nlc3Mp
OwpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhCiAgICAgcmV0dXJu
IFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBj
cmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMDYsNyArMjA2LDcgQEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEoKICAg
ICB9CiAKICAgICBKU0RpY3Rpb25hcnkganNEaWN0aW9uYXJ5KCZzdGF0ZSwgdmFsdWUuZ2V0T2Jq
ZWN0KCkpOwotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxn
b3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQpOwogCiAgICAgYXV0byBzdWNjZXNzID0gZ2V0
SGFzaEFsZ29yaXRobShqc0RpY3Rpb25hcnksIHJlc3VsdC0+aGFzaCwgSGFzaFJlcXVpcmVtZW50
OjpSZXF1aXJlZCk7CiAgICAgQVNTRVJUKHNjb3BlLmV4Y2VwdGlvbigpIHx8IHN1Y2Nlc3MpOwpA
QCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gY3JlYXRlSG1hY0tleVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKCiAgICAgcmV0dXJuIFdU
Rk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzPiBjcmVhdGVSc2FLZXlHZW5QYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1
ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNy
ZWF0ZVJzYUtleUdlblBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhS2V5R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsCiAg
ICAgfQogCiAgICAgSlNEaWN0aW9uYXJ5IGpzRGljdGlvbmFyeSgmc3RhdGUsIHZhbHVlLmdldE9i
amVjdCgpKTsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGht
UnNhS2V5R2VuUGFyYW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZCk7CiAKICAgICBKU1ZhbHVlIG1vZHVs
dXNMZW5ndGhWYWx1ZSA9IGdldFByb3BlcnR5KCZzdGF0ZSwgdmFsdWUuZ2V0T2JqZWN0KCksICJt
b2R1bHVzTGVuZ3RoIik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
CkBAIC0yNTQsMTMgKzI1NCwxMyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IGNyZWF0ZVJzYUtleUdlblBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLAogICAgIHJldHVy
biBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlUnNhS2V5UGFyYW1zV2l0aEhhc2goRXhlY1N0YXRlJiwgSlNWYWx1ZSkK
K3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0
ZVJzYUtleVBhcmFtc1dpdGhIYXNoKEV4ZWNTdGF0ZSYsIEpTVmFsdWUpCiB7CiAgICAgLy8gV2Vi
Q3J5cHRvIFJTQSBhbGdvcml0aG1zIGN1cnJlbnRseSBkbyBub3QgdGFrZSBhbnkgcGFyYW1ldGVy
cyB0byBpbXBvcnRLZXkuCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGht
UnNhS2V5UGFyYW1zV2l0aEhhc2gpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0Fs
Z29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCk7CiB9CiAKLXN0YXRpYyBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhT2FlcFBhcmFtcyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVSc2FPYWVwUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMg
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYU9hZXBQYXJhbXMoRXhl
Y1N0YXRlKiBleGVjLCBKUwogICAgIH0KIAogICAgIEpTRGljdGlvbmFyeSBqc0RpY3Rpb25hcnko
ZXhlYywgdmFsdWUuZ2V0T2JqZWN0KCkpOwotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5l
dyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0
UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQpOwogCiAgICAg
YXV0byBzdWNjZXNzID0gZ2V0SGFzaEFsZ29yaXRobShqc0RpY3Rpb25hcnksIHJlc3VsdC0+aGFz
aCwgSGFzaFJlcXVpcmVtZW50OjpSZXF1aXJlZCk7CiAgICAgQVNTRVJUKHNjb3BlLmV4Y2VwdGlv
bigpIHx8IHN1Y2Nlc3MpOwpAQCAtMjk2LDcgKzI5Niw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhT2FlcFBhcmFtcyhFeGVjU3RhdGUqIGV4ZWMs
IEpTCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0cjxDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FTc2FQYXJhbXMoRXhlY1N0YXRlJiBzdGF0
ZSwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYVNzYVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBSZWZQdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhU3NhUGFyYW1zKEV4ZWNTdGF0ZSYg
c3RhdGUsIEpTCiAgICAgfQogCiAgICAgSlNEaWN0aW9uYXJ5IGpzRGljdGlvbmFyeSgmc3RhdGUs
IHZhbHVlLmdldE9iamVjdCgpKTsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCk7CiAKICAgICBhdXRvIHN1
Y2Nlc3MgPSBnZXRIYXNoQWxnb3JpdGhtKGpzRGljdGlvbmFyeSwgcmVzdWx0LT5oYXNoLCBIYXNo
UmVxdWlyZW1lbnQ6OlJlcXVpcmVkKTsKICAgICBBU1NFUlQoc2NvcGUuZXhjZXB0aW9uKCkgfHwg
c3VjY2Vzcyk7CkBAIC0zMTcsMTEgKzMxNywxMSBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYVNzYVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKUwog
ICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNG
b3JFbmNyeXB0KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdv
cml0aG0sIEpTVmFsdWUgdmFsdWUpCitSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zv
ckVuY3J5cHQoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29y
aXRobSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
KTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81
OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoKICAgICAgICAg
c2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5PVF9TVVBQT1JURURfRVJSKTsKQEAgLTM0MSw3ICszNDEs
NyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgTk9UX1NVUFBPUlRFRF9FUlIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpESDoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNI
QV8xOgpAQCAtMzU5LDExICszNTksMTEgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQoRXhl
Y1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1
ZSB2YWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChFeGVj
U3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6CiAgICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfUFNTOgogICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgTk9UX1NVUFBPUlRFRF9FUlIpOwpAQCAtMzgzLDcgKzM4Myw3IEBAIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGCiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBOT1RfU1VQUE9S
VEVEX0VSUik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6SE1BQzoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkRIOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6CkBAIC00MDEs
NyArNDAxLDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGht
RGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24oRXhlY1N0YXRlKiBleGVjLCBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKK1JlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yU2lnbihFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHN3aXRj
aCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FF
U19QS0NTMV92MV81OgpAQCAtNDM5LDcgKzQzOSw3IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNG
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JWZXJp
ZnkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwg
SlNWYWx1ZSB2YWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5
KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC00NzcsNyArNDc3LDcg
QEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVm
UHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JEaWdlc3QoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAg
LTUwMSw3ICs1MDEsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OlNIQV8zODQ6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpT
SEFfNTEyOgotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
Q09OQ0FUOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERl9DVFI6CiAg
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQQktERjI6CkBAIC01MTIsNyArNTEy
LDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGht
RGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCitSZWZQdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSogZXhlYywg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC01NDksNyArNTQ5LDcgQEAgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVy
c0ZvckRlcml2ZUtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtLCBKU1ZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JE
ZXJpdmVLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29y
aXRobSwgSlNWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTU4MSw3ICs1ODEs
NyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1S
ZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyhFeGVjU3RhdGUqIGV4ZWMsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6
OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVCaXRzKEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdv
cml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1Mx
X3YxXzU6CkBAIC02MTMsNyArNjEzLDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtleShF
eGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1Zh
bHVlIHZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXko
RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTYyOSwxMSArNjI5LDEx
IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpBRVNfR0NNOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVT
X0NGQjoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6CiAgICAgICAg
IHJldHVybiBjcmVhdGVIbWFjUGFyYW1zKCpleGVjLCB2YWx1ZSk7CiAgICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpESDoKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV8xOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6U0hBXzIyNDoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTY6
CkBAIC02NDksNyArNjQ5LDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShFeGVjU3Rh
dGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQor
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoRXhlY1N0YXRlKiBl
eGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkKIHsKICAg
ICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTY2Niw3ICs2NjYsNyBAQCBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgogICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKICAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkRIOgotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6U0hBXzE6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpTSEFfMjI0OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGht
RGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5LmgKaW5kZXggYjVmYWNkMDVkMWQ0ZDI1YzRhZTE4YWE2YjRkZmMxNmU5OTdl
NGUzNS4uMzhhMzRmZDBlOTgxYjI4Y2RjYzM3ZGViNTY3Yzg5YzgzNzRmNGJmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5LmgKQEAgLTM4LDIyICszOCwyMiBAQCBjbGFzcyBKU1ZhbHVlOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM7CitjbGFzcyBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDsKIAogY2xhc3MgSlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBnZXRBbGdvcml0aG1JZGVu
dGlmaWVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyJik7CiAKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IGNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KEpTQzo6RXhlY1N0
YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0
aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNGb3JT
aWduKEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1Zh
bHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0
ZVBhcmFtZXRlcnNGb3JWZXJpZnkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChKU0M6OkV4ZWNTdGF0ZSosIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVL
ZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFs
dWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRl
UGFyYW1ldGVyc0ZvckRlcml2ZUtleShKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyhKU0M6OkV4ZWNTdGF0
ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9ySW1w
b3J0S2V5KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpK
U1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNy
ZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KEpT
Qzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsK
KyAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBj
cmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24oSlNDOjpF
eGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAg
IHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0
ZVBhcmFtZXRlcnNGb3JWZXJpZnkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JEaWdlc3QoSlNDOjpFeGVj
U3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0
YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBh
cmFtZXRlcnNGb3JHZW5lcmF0ZUtleShKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShKU0M6
OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Cisg
ICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3Jl
YXRlUGFyYW1ldGVyc0ZvckRlcml2ZUJpdHMoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXko
SlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUp
OworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+
IGNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5j
cHAKaW5kZXggNGRmM2Q0OTcxYzFkNDQ1YmU0MTBkYTI0NTBiNzQ4MWJjOTJhNDdjYi4uM2UxYjFl
ZDBhZmIyNzdkZWFiOGQ1Y2EwOGQyNDdmOWM3NDhhYTg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3Bw
CkBAIC0yOSw5ICsyOSw5IEBACiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG0uaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
LmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCIKICNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5LmgiCiAj
aW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UuaCIKQEAgLTE2MiwyMiArMTYyLDIyIEBAIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpX
Szo6fkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSygpCiB7CiB9CiAKLXN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24pCitzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVITUFDUGFyYW1ldGVycyhDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKIHsKLSAgICBhdXRvIGhtYWNQYXJhbWV0ZXJzID0gYWRv
cHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zKTsKKyAgICBhdXRvIGhtYWNQYXJh
bWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRl
ZCk7CiAgICAgaG1hY1BhcmFtZXRlcnMtPmhhc2ggPSBoYXNoRnVuY3Rpb247CiAgICAgcmV0dXJu
IFdURk1vdmUoaG1hY1BhcmFtZXRlcnMpOwogfQogCi1zdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKK3N0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKIHsKLSAgICBhdXRvIHJzYUtleVBhcmFt
ZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
KTsKKyAgICBhdXRvIHJzYUtleVBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29y
aXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCk7CiAgICAgcnNhS2V5UGFyYW1ldGVy
cy0+aGFzSGFzaCA9IHRydWU7CiAgICAgcnNhS2V5UGFyYW1ldGVycy0+aGFzaCA9IGhhc2hGdW5j
dGlvbjsKICAgICByZXR1cm4gV1RGTW92ZShyc2FLZXlQYXJhbWV0ZXJzKTsKIH0KIAotT3B0aW9u
YWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNv
bmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiBzdWdnZXN0ZWRBbGdvcml0aG0sIENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMqIHN1Z2dlc3RlZFBhcmFtZXRlcnMpIGNvbnN0CitPcHRpb25h
bDxDcnlwdG9BbGdvcml0aG1QYWlyPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29u
Y2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qIHN1Z2dlc3RlZEFsZ29yaXRobSwgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqIHN1Z2dlc3RlZFBhcmFtZXRlcnMpIGNvbnN0
CiB7CiAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OSw3ICsxODksNyBAQCBPcHRpb25hbDxDcnlwdG9BbGdv
cml0aG1QYWlyPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRo
bShDcgogCiAgICAgYXV0byYgYWxnb3JpdGhtUmVnaXN0eSA9IENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5OjpzaW5nbGV0b24oKTsKICAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07
Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7CisgICAg
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBwYXJhbWV0ZXJzOwog
ICAgIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkhTMjU2IikgewogICAgICAgICBhbGdvcml0
aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpI
TUFDKTsKICAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZUhNQUNQYXJhbWV0ZXJzKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTYpOwpAQCAtMjEwLDI4ICsyMTAsMjggQEAgT3B0aW9u
YWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNv
bmNpbGVBbGdvcml0aG0oQ3IKICAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQUtleVBhcmFt
ZXRlcnNXaXRoSGFzaChDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyKTsKICAgICB9
IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiUlNBMV81IikgewogICAgICAgICBhbGdv
cml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FFU19QS0NTMV92MV81KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcg
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2gpOworICAgICAgICBwYXJhbWV0ZXJz
ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJl
Y2F0ZWQpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSU0EtT0FFUCIp
IHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVApOwogICAgICAgICBwYXJhbWV0ZXJzID0gY3JlYXRl
UlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8x
KTsKICAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTEyOENCQyIpIHsKICAg
ICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6QUVTX0NCQyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRS
ZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAgfSBlbHNl
IGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkExOTJDQkMiKSB7CiAgICAgICAgIGFsZ29yaXRo
bSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFF
U19DQkMpOwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdv
cml0aG1OYW1lID09ICJBMjU2Q0JDIikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1S
ZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDKTsKLSAgICAg
ICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7
CisgICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkKTsKICAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAi
QTEyOEtXIikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1cpOwotICAgICAgICBwYXJhbWV0ZXJzID0g
YWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcGFyYW1l
dGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQp
OwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMTkyS1ciKSB7CiAgICAg
ICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OkFFU19LVyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYo
Km5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAgfSBlbHNlIGlm
IChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkEyNTZLVyIpIHsKICAgICAgICAgYWxnb3JpdGhtID0g
YWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tX
KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICB9IGVsc2UgewogICAgICAgICB0aHJvd1R5
cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCAiVW5zdXBwb3J0ZWQgSldLIGFsZ29yaXRobSAiICsgbV9q
d2tBbGdvcml0aG1OYW1lKTsKICAgICAgICAgcmV0dXJuIE51bGxvcHQ7CkBAIC0yNDcsMTQgKzI0
NywxNCBAQCBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBKU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRobShDcgogICAgICAgICByZXR1cm4gTnVsbG9wdDsK
IAogICAgIGlmIChhbGdvcml0aG0tPmlkZW50aWZpZXIoKSA9PSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpITUFDKSB7Ci0gICAgICAgIGlmIChkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zPigqcGFyYW1ldGVycykuaGFzaCAhPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zPigqc3VnZ2VzdGVkUGFyYW1ldGVycykuaGFzaCkKKyAgICAgICAgaWYgKGRvd25jYXN0
PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkPigqcGFyYW1ldGVycykuaGFzaCAh
PSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZD4oKnN1Z2dlc3Rl
ZFBhcmFtZXRlcnMpLmhhc2gpCiAgICAgICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICAgICAg
cmV0dXJuIENyeXB0b0FsZ29yaXRobVBhaXIgeyBzdWdnZXN0ZWRBbGdvcml0aG0sIHN1Z2dlc3Rl
ZFBhcmFtZXRlcnMgfTsKICAgICB9CiAgICAgaWYgKGFsZ29yaXRobS0+aWRlbnRpZmllcigpID09
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81CiAgICAgICAgIHx8
IGFsZ29yaXRobS0+aWRlbnRpZmllcigpID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QV9PQUVQKSB7Ci0gICAgICAgIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoJiBy
c2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2g+KCpwYXJhbWV0ZXJzKTsKLSAgICAgICAgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1z
V2l0aEhhc2gmIHN1Z2dlc3RlZFJTQUtleVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaD4oKnN1Z2dlc3RlZFBhcmFtZXRlcnMpOworICAgICAg
ICBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQmIHJzYUtleVBh
cmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERl
cHJlY2F0ZWQ+KCpwYXJhbWV0ZXJzKTsKKyAgICAgICAgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFy
YW1zV2l0aEhhc2hEZXByZWNhdGVkJiBzdWdnZXN0ZWRSU0FLZXlQYXJhbWV0ZXJzID0gZG93bmNh
c3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkPigqc3VnZ2Vz
dGVkUGFyYW1ldGVycyk7CiAgICAgICAgIEFTU0VSVChyc2FLZXlQYXJhbWV0ZXJzLmhhc0hhc2gp
OwogICAgICAgICBpZiAoc3VnZ2VzdGVkUlNBS2V5UGFyYW1ldGVycy5oYXNIYXNoKSB7CiAgICAg
ICAgICAgICBpZiAoc3VnZ2VzdGVkUlNBS2V5UGFyYW1ldGVycy5oYXNoICE9IHJzYUtleVBhcmFt
ZXRlcnMuaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
cnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgKaW5kZXggOTY5ZWUwZDgxOTk3MzVlOThkNDRkOWVi
M2Y2Mjg5YjI3ZmI1NzljZi4uM2I3MWU5MjU4M2MzOGZjY2M3ZmEzZDJiMTIxMDI5NzIxNzAxNGRh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJp
YWxpemF0aW9uSldLLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uSldLLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgSlNPYmplY3Q7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyczsK
K2NsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRv
S2V5OwogY2xhc3MgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM7CiAKQEAgLTUyLDcgKzUyLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBDcnlwdG9LZXkmKTsKIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxDcnlwdG9B
bGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiwgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyopIGNvbnN0IG92ZXJyaWRlOworICAgIE9wdGlvbmFsPENyeXB0
b0FsZ29yaXRobVBhaXI+IHJlY29uY2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qLCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCopIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dm9pZCByZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNhZ2UmKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIHJlY29uY2lsZUV4dHJhY3RhYmxlKGJvb2wmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRv
Q3VzdG9tLmNwcAppbmRleCBkNGViN2M2Mzc0YjgwMjQ3YjFlNmUxM2Q2MzNjMjZiYmFhNTY2YTI1
Li43ZDgwYTg2MWVkN2M4ZTk0YTBkZjRhZGFlMTJiNzNlZmQxMDQ2NTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKICNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQu
aCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgogI2luY2x1ZGUgIkNyeXB0
b0tleURhdGEuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgiCkBAIC00
NTQsNyArNDU0LDcgQEAgSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXko
RXhlY1N0YXRlJiBzdGF0ZSkKICAgICByZXR1cm4gcHJvbWlzZTsKIH0KIAotc3RhdGljIHZvaWQg
aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQsIENy
eXB0b09wZXJhdGlvbkRhdGEgZGF0YSwgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGht
LCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gcGFyYW1ldGVycywgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzLCBDcnlwdG9BbGdvcml0aG06OktleUNh
bGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayBmYWlsdXJlQ2Fs
bGJhY2spCitzdGF0aWMgdm9pZCBpbXBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5
Rm9ybWF0IGtleUZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhLCBSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtPiBhbGdvcml0aG0sIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZD4gcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Uga2V5
VXNhZ2VzLCBDcnlwdG9BbGdvcml0aG06OktleUNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdv
cml0aG06OlZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spCiB7CiAgICAgVk0mIHZtID0gc3Rh
dGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01
MzMsNyArNTMzLDcgQEAgSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4
ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgUmVm
UHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtOwotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzOworICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZD4gcGFyYW1ldGVyczsKICAgICBpZiAoIXN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLmlzTnVsbCgpKSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRo
bUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7CiAgICAgICAg
IEFTU0VSVChzY29wZS5leGNlcHRpb24oKSB8fCBhbGdvcml0aG0pOwpAQCAtNzUyLDcgKzc1Miw3
IEBAIEpTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OnVud3JhcEtleShFeGVjU3RhdGUmIHN0
YXRlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG0+IHVud3JhcHBlZEtleUFsZ29yaXRobTsKLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyczsKKyAgICBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IHVud3JhcHBlZEtleUFsZ29y
aXRobVBhcmFtZXRlcnM7CiAgICAgaWYgKCFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KS5pc051
bGwoKSkgewogICAgICAgICB1bndyYXBwZWRLZXlBbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1G
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoNCkpOwogICAgICAgICBB
U1NFUlQoc2NvcGUuZXhjZXB0aW9uKCkgfHwgdW53cmFwcGVkS2V5QWxnb3JpdGhtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAKaW5kZXggNDRjYmIwMjllODc3NmQ3
NjYwODFkNzdkMGRkNDI2M2NmZTE4NTA2NS4uMTQ0ZTdmZjA3ZDc3ZmU4Mzg0MGMxMTJmM2IzYTY2
N2MyNDQzMjk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29y
aXRobS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
QEAgLTQwLDU3ICs0MCw1NyBAQCBDcnlwdG9BbGdvcml0aG06On5DcnlwdG9BbGdvcml0aG0oKQog
ewogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykK
K3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENyeXB0b0FsZ29y
aXRobTo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5
cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpk
ZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3Qg
Q3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQ
T1JURURfRVJSOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6c2lnbihjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENyeXB0b0Fs
Z29yaXRobTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBD
cnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0Fs
Z29yaXRobTo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGJvb2wsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0Fs
Z29yaXRobTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmLCBib29sLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIENyeXB0b0FsZ29yaXRobSos
IGJvb2wsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6ZGVyaXZlS2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgQ3J5
cHRvQWxnb3JpdGhtKiwgYm9vbCwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURf
RVJSOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6ZGVyaXZlQml0cyhjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgdW5zaWduZWQgbG9uZywgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBD
cnlwdG9BbGdvcml0aG06OmRlcml2ZUJpdHMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCB1bnNpZ25lZCBsb25nLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBO
T1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG06OmltcG9ydEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJv
b2wsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6aW1wb3J0S2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJv
b2wsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBD
cnlwdG9BbGdvcml0aG06OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdv
cml0aG06OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlbmNyeXB0
KHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6ZGVjcnlwdEZvclVu
d3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9y
Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkZWNyeXB0Rm9yVW53cmFwS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVj
dG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBkZWNyeXB0KHBhcmFtZXRlcnMsIGtleSwgZGF0YSwg
V1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCmluZGV4IDhiYTgzYjNlMWFlMWQ0MmM0
YmFkMDBhYTJlMDc5NzQ3ZTcxYTY0OWIuLjY4Y2MyMzUwMDU4Y2U0ZGY3M2M0NGUxZTViZTkxOGFk
MDRjN2Y4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0
aG0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKQEAgLTM5
LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzOworY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXk7CiBjbGFzcyBDcnlw
dG9LZXlQYWlyOwogY2xhc3MgQ3J5cHRvS2V5RGF0YTsKQEAgLTYwLDE5ICs2MCwxOSBAQCBwdWJs
aWM6CiAgICAgdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
Jik+IFZlY3RvckNhbGxiYWNrOwogICAgIHR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IFZv
aWRDYWxsYmFjazsKIAotICAgIHZpcnR1YWwgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2lnbihjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
OwotICAgIHZpcnR1YWwgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0
cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGVyaXZlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlw
dG9LZXkmIGJhc2VLZXksIENyeXB0b0FsZ29yaXRobSogZGVyaXZlZEtleVR5cGUsIGJvb2wgZXh0
cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyaXZl
Qml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiBi
YXNlS2V5LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lk
IGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRv
S2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2lnbihjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5Jiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwg
VmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBkZXJpdmVLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmIGJhc2VL
ZXksIENyeXB0b0FsZ29yaXRobSogZGVyaXZlZEtleVR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyaXZlQml0cyhjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYgYmFz
ZUtleSwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBp
bXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
OwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgZGlmZmVyZW50IGZyb20gZW5jcnlwdC9kZWNyeXB0
IGJlY2F1c2Ugc29tZSBhbGdvcml0aG1zIG1heSBub3QgZXhwb3NlIGVuY3J5cHQvZGVjcnlwdC4K
LSAgICB2aXJ0dWFsIHZvaWQgZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
LCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBlbmNyeXB0Rm9yV3Jh
cEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKTsKIAogcHJvdGVjdGVkOgogICAgIENyeXB0b0FsZ29yaXRobSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MDNlNDZiNzJiOTM5Y2Y4MmVhNTk5YjZlZWQ3
Y2EwMGQ2ZDMyZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaAorKysg
L2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzX2gK
LQotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyA6IHB1YmxpYyBSZWZDb3VudGVkPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHsKLSAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKLXB1Ymxp
YzoKLSAgICBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKCkgeyB9Ci0gICAgdmlydHVhbCB+Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycygpIHsgfQotCi0gICAgZW51bSBjbGFzcyBDbGFzcyB7Ci0g
ICAgICAgIE5vbmUsCi0gICAgICAgIEFlc0NiY1BhcmFtcywKLSAgICAgICAgQWVzS2V5R2VuUGFy
YW1zLAotICAgICAgICBIbWFjS2V5UGFyYW1zLAotICAgICAgICBIbWFjUGFyYW1zLAotICAgICAg
ICBSc2FLZXlHZW5QYXJhbXMsCi0gICAgICAgIFJzYUtleVBhcmFtc1dpdGhIYXNoLAotICAgICAg
ICBSc2FPYWVwUGFyYW1zLAotICAgICAgICBSc2FTc2FQYXJhbXMKLSAgICB9OwotICAgIHZpcnR1
YWwgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3QgeyByZXR1cm4gQ2xhc3M6Ok5vbmU7IH0K
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhUb0NsYXNzTmFtZSkgXAotU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG0jI1RvQ2xhc3NO
YW1lKSBcCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpIHsgcmV0dXJuIHBhcmFtZXRlcnMucGFyYW1ldGVy
c0NsYXNzKCkgPT0gV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyczo6Q2xhc3M6OlRv
Q2xhc3NOYW1lOyB9IFwKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQotI2VuZGlmIC8v
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDA2MTlkMjY0NDdiODNlMDg2
ODdlYzI4ZDRkOTBmZWI1MTJjYWU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNh
c3RzLmg+CisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCA6IHB1YmxpYyBS
ZWZDb3VudGVkPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiB7CitwdWJsaWM6
CisgICAgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQoKSB7IH0KKyAgICB2aXJ0
dWFsIH5DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCgpIHsgfQorCisgICAgZW51
bSBjbGFzcyBDbGFzcyB7CisgICAgICAgIE5vbmUsCisgICAgICAgIEFlc0NiY1BhcmFtcywKKyAg
ICAgICAgQWVzS2V5R2VuUGFyYW1zLAorICAgICAgICBIbWFjS2V5UGFyYW1zLAorICAgICAgICBI
bWFjUGFyYW1zLAorICAgICAgICBSc2FLZXlHZW5QYXJhbXMsCisgICAgICAgIFJzYUtleVBhcmFt
c1dpdGhIYXNoLAorICAgICAgICBSc2FPYWVwUGFyYW1zLAorICAgICAgICBSc2FTc2FQYXJhbXMK
KyAgICB9OworICAgIHZpcnR1YWwgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3QgeyByZXR1
cm4gQ2xhc3M6Ok5vbmU7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmlu
ZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhUb0Ns
YXNzTmFtZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpDcnlwdG9B
bGdvcml0aG0jI1RvQ2xhc3NOYW1lIyNEZXByZWNhdGVkKSBcCisgICAgc3RhdGljIGJvb2wgaXNU
eXBlKGNvbnN0IFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBw
YXJhbWV0ZXJzKSB7IHJldHVybiBwYXJhbWV0ZXJzLnBhcmFtZXRlcnNDbGFzcygpID09IFdlYkNv
cmU6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkOjpDbGFzczo6VG9DbGFzc05h
bWU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCisjZW5kaWYgLy8gRU5BQkxF
KFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVNlcmlh
bGl6YXRpb24uaAppbmRleCBhZDA2NDAyZGQ0NzE2ZDU5OTVkYTlkZTkyOWNhZjU2MDUzMGE0Yzky
Li5iNTEyZDQ5NGNmNmRmOWRjZWQwODMzMTZhNmI5NmRiM2QyYjFiNjcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlTZXJpYWxpemF0aW9uLmgKQEAgLTM2LDE0ICszNiwx
NCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG07Ci1jbGFz
cyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzOworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXlEYXRhOwogCiB0eXBlZGVmIHN0ZDo6cGFp
cjxjb25zdCB1aW50OF90Kiwgc2l6ZV90PiBDcnlwdG9PcGVyYXRpb25EYXRhOwogCiBzdHJ1Y3Qg
Q3J5cHRvQWxnb3JpdGhtUGFpciB7CiAgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3Jp
dGhtOwotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzOwor
ICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gcGFyYW1ldGVy
czsKIH07CiAKIGNsYXNzIENyeXB0b0tleVNlcmlhbGl6YXRpb24gewpAQCAtNTMsNyArNTMsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q3J5cHRvS2V5U2VyaWFsaXphdGlvbigpIHsgfQogCiAg
ICAgLy8gUmV0dXJucyBmYWxzZSBpZiBzdWdnZXN0ZWQgYWxnb3JpdGhtIHdhcyBub3QgY29tcGF0
aWJsZSB3aXRoIG9uZSBzdG9yZWQgaW4gdGhlIHNlcmlhbGl6YXRpb24uCi0gICAgdmlydHVhbCBP
cHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxn
b3JpdGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyopIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJlY29uY2lsZUFsZ29yaXRobShDcnlw
dG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCopIGNvbnN0
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNhZ2Um
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29uY2lsZUV4dHJhY3RhYmxlKGJvb2wm
KSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCmluZGV4IDA4OTA4NjM2MDY0ZDQ2ZDY4
ZTY1ZWJiMDQwYmRkYjJhMzlhYWIwOGMuLjhmNDE5ZGM0NTgzNjI4YjdiZWRmMzUzNWZkYjcxOGFl
NzQ5YzkwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAKICNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0Ni
Y1BhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oIgor
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVk
ZSAiQ3J5cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Uu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC01Niw3ICs1Niw3IEBAIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6aWRlbnRpZmllcigpIGNv
bnN0CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAotYm9vbCBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtcyYsIGNvbnN0IENyeXB0b0tleSYga2V5KSBjb25zdAorYm9vbCBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmIGtleSkgY29uc3QKIHsKICAgICBpZiAo
a2V5LmFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBzX2lkZW50aWZpZXIpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTY1LDkgKzY1LDkgQEAgYm9vbCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpr
ZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmEKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjplbmNyeXB0KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjplbmNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkm
IGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIGFlc0NCQ1BhcmFt
ZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXM+KHBhcmFtZXRlcnMp
OworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmIGFlc0NC
Q1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNh
dGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhhZXNDQkNQ
YXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC03
Nyw5ICs3Nyw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1FbmNyeXB0
KGFlc0NCQ1BhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleUFFUz4oa2V5KSwgZGF0YSwgV1RG
TW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lk
IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29y
aXRobUFFU19DQkM6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0
b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYgYWVzQ0JDUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0
b0FsZ29yaXRobUFlc0NiY1BhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYgYWVzQ0JDUGFyYW1ldGVycyA9IGRvd25jYXN0
PENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAg
ICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGFlc0NCQ1BhcmFtZXRlcnMsIGtleSkpIHsKICAg
ICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTg5LDkgKzg5LDkgQEAgdm9pZCBDcnlw
dG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybURlY3J5cHQoYWVzQ0JDUGFyYW1ldGVycywgZG93
bmNhc3Q8Q3J5cHRvS2V5QUVTPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92
ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJD
YWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpnZW5lcmF0ZUtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgYm9vbCBl
eHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcyYgYWVzUGFyYW1l
dGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcz4ocGFyYW1ldGVy
cyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZCYg
YWVzUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0Rl
cHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgUmVmUHRyPENyeXB0b0tleUFFUz4gcmVzdWx0
ID0gQ3J5cHRvS2V5QUVTOjpnZW5lcmF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNf
Q0JDLCBhZXNQYXJhbWV0ZXJzLmxlbmd0aCwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CiAgICAgaWYg
KCFyZXN1bHQpIHsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19D
QkM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZQog
ICAgIGNhbGxiYWNrKHJlc3VsdC5nZXQoKSwgbnVsbHB0cik7CiB9CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
LCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4
Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjppbXBvcnRLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9L
ZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwg
S2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIGlmICghaXM8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURhdGEpKSB7
CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKaW5kZXgg
YTYxYmEzYTM5YjliYTRjMGNhMzBmYjc4ZTQ4NmZkYzcyY2YyNjUwNC4uNjljZWNjYTNmZGVhZTIz
ODVjYjk1ZmNhN2FkNDNjMzVmM2EwYTRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaApAQCAtMzIsNyAr
MzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobUFl
c0NiY1BhcmFtczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQ7
CiBjbGFzcyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19DQkMgZmlu
YWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwdWJsaWM6
CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3Rv
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBh
aXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuY3J5cHQoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWNyeXB0
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRv
S2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29y
aXRobUFFU19DQkMoKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1BRVNfQ0JDKCk7CiAK
LSAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
UGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsKLSAg
ICB2b2lkIHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMm
LCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9y
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdm9pZCBwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
UGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYs
IFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYpOworICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBD
cnlwdG9LZXkmKSBjb25zdDsKKyAgICB2b2lkIHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9B
bGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgcGxhdGZvcm1EZWNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfS1cuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0tXLmNwcAppbmRleCBjMTc3NDQzNGVjNjcyNzZlZTdlZTczNzQ0NjIy
ZWJhN2FkNjhlODdmLi5jZWU1N2M1ZTU0NzU3NDYwNjRkMGQ0ZmRmZTU0NGY2ZGE5MmY4MDRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfS1cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19LVy5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmgi
CisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgog
I2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNl
cXVlbmNlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtNjQsNyArNjQsNyBAQCBi
b29sIENyeXB0b0FsZ29yaXRobUFFU19LVzo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlw
dG9LZXkmIGtleSkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBDcnlwdG9BbGdv
cml0aG1BRVNfS1c6OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
ZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpl
bmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhr
ZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjplbmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwKICAgICBwbGF0Zm9ybUVuY3J5cHQoZG93bmNhc3Q8Q3J5
cHRvS2V5QUVTPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJl
Q2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpkZWNyeXB0
Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlw
dG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpkZWNyeXB0Rm9yVW53cmFwS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRv
S2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGtleSkpIHsKICAgICAgICAg
ZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTg0LDkgKzg0LDkgQEAgdm9pZCBDcnlwdG9BbGdv
cml0aG1BRVNfS1c6OmRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYKICAgICBwbGF0Zm9ybURlY3J5cHQoZG93bmNhc3Q8Q3J5cHRvS2V5QUVTPihrZXkp
LCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpnZW5lcmF0ZUtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0Fs
Z29yaXRobUFFU19LVzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
IHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNLZXlHZW5QYXJhbXMmIGFlc1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdv
cml0aG1BZXNLZXlHZW5QYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29y
aXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQmIGFlc1BhcmFtZXRlcnMgPSBkb3duY2FzdDxD
cnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAog
ICAgIFJlZlB0cjxDcnlwdG9LZXlBRVM+IHJlc3VsdCA9IENyeXB0b0tleUFFUzo6Z2VuZXJhdGUo
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXLCBhZXNQYXJhbWV0ZXJzLmxlbmd0aCwg
ZXh0cmFjdGFibGUsIHVzYWdlcyk7CiAgICAgaWYgKCFyZXN1bHQpIHsKQEAgLTk3LDcgKzk3LDcg
QEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXQKICAgICBjYWxsYmFjayhyZXN1bHQuZ2V0KCksIG51
bGxwdHIpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6aW1wb3J0S2V5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRh
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9B
bGdvcml0aG1BRVNfS1c6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFi
bGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFpczxDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZT4oa2V5RGF0YSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VS
UjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXLmgKaW5kZXggNTE0M2NiOWM4ODViMTA0ZWYzZjQ5ODQxMDQwMGJhODBl
YjQzMzUxYi4uNzY1NzZiN2IzNzBiNjMyMDNiZDRkOTE0MzliZmI0Yzc1MjgxYzkzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXLmgKQEAgLTQzLDEwICs0MywxMCBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQg
ZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0
IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBW
ZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JL
ZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmNyeXB0Rm9yV3JhcEtl
eShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0
b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tl
eVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGltcG9ydEtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURh
dGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCmlu
ZGV4IDk2ZDlkYTMxOTVmOTYxNDc4MmMzZmY0NmZiMzc0N2NjYjkxMWJmZmYuLjcwNDI3NWY4YjE4
MTI4Y2FmNGY1NmE0ZTVkYTY4ODcyNzRiYzIwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCkBAIC0yOCw4
ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0
ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIgog
I2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmgiCiAjaW5jbHVkZSAiQ3J5cHRv
S2V5SE1BQy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTU2LDcgKzU2LDcgQEAg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1ITUFDOjppZGVudGlmaWVy
KCkgY29uc3QKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi1ib29sIENyeXB0b0FsZ29y
aXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0Citib29sIENyeXB0
b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5KSBj
b25zdAogewogICAgIGlmIChrZXkuYWxnb3JpdGhtSWRlbnRpZmllcigpICE9IHNfaWRlbnRpZmll
cikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjcsOSArNjcsOSBAQCBib29sIENyeXB0b0Fs
Z29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1h
Y1BhcmFtcyYgcAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUhN
QUM6OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29u
c3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3Rv
ckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnNpZ24oY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0
b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFj
ayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQYXJh
bWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcz4ocGFyYW1ldGVycyk7
CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIGhtYWNQYXJh
bWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+KHBh
cmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGhtYWNQYXJhbWV0ZXJz
LCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC03OSw5ICs3OSw5
IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zCiAgICAgcGxhdGZvcm1TaWduKGhtYWNQYXJhbWV0
ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlITUFDPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNr
KSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3Jp
dGhtSE1BQzo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBleHBl
Y3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxi
YWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnZlcmlmeShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5
JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVjdGVkU2lnbmF0dXJlLCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBj
b25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0
PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0
PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAg
IGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhobWFjUGFyYW1ldGVycywga2V5KSkgewogICAgICAg
ICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtOTEsOSArOTEsOSBAQCB2b2lkIENyeXB0b0Fs
Z29yaXRobUhNQUM6OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBjbwogICAgIHBsYXRmb3JtVmVyaWZ5KGhtYWNQYXJhbWV0ZXJzLCBkb3duY2FzdDxD
cnlwdG9LZXlITUFDPihrZXkpLCBleHBlY3RlZFNpZ25hdHVyZSwgZGF0YSwgV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0Fs
Z29yaXRobUhNQUM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5
T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2Fs
bGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zJiBobWFj
UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXM+KHBhcmFt
ZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVk
JiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNE
ZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlITUFDPiByZXN1
bHQgPSBDcnlwdG9LZXlITUFDOjpnZW5lcmF0ZShobWFjUGFyYW1ldGVycy5oYXNMZW5ndGggPyBo
bWFjUGFyYW1ldGVycy5sZW5ndGggOiAwLCBobWFjUGFyYW1ldGVycy5oYXNoLCBleHRyYWN0YWJs
ZSwgdXNhZ2VzKTsKICAgICBpZiAoIXJlc3VsdCkgewpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQg
Q3J5cHRvQWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYgcGFyYW1ldGVyCiAgICAgY2FsbGJhY2socmVzdWx0LmdldCgpLCBudWxscHRyKTsK
IH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0
YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRv
QWxnb3JpdGhtSE1BQzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFj
aywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaXM8Q3J5
cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURhdGEpKSB7CiAgICAgICAgIGVjID0gTk9UX1NV
UFBPUlRFRF9FUlI7CkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFD
OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywK
ICAgICB9CiAgICAgY29uc3QgQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UmIGtleURhdGFPY3Rl
dFNlcXVlbmNlID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURhdGEp
OwogCi0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYgaG1hY1BhcmFtZXRlcnMg
PSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBj
b25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYgaG1hY1BhcmFtZXRlcnMg
PSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVy
cyk7CiAKICAgICBSZWZQdHI8Q3J5cHRvS2V5SE1BQz4gcmVzdWx0ID0gQ3J5cHRvS2V5SE1BQzo6
Y3JlYXRlKGtleURhdGFPY3RldFNlcXVlbmNlLm9jdGV0U2VxdWVuY2UoKSwgaG1hY1BhcmFtZXRl
cnMuaGFzaCwgZXh0cmFjdGFibGUsIHVzYWdlKTsKICAgICBjYWxsYmFjaygqcmVzdWx0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUhNQUMuaAppbmRleCAzMTc1NDYwN2IwODQzMmY2ZDY2OWJjNmVlZGRmM2MxY2E0NzIwYzY1Li41
YjY3ZTJkZjAyZWZiOWJhZGJkODk0ODJiZTIxMDIxNzQ5YzZmMzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCkBA
IC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNh
dGVkOwogY2xhc3MgQ3J5cHRvS2V5SE1BQzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSE1BQyBm
aW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAtNDQsMTggKzQ0LDE4IEBAIHB1Ymxp
YzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgdm9pZCBzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
LCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVy
ZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wg
ZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3Qg
Q3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwg
VmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlP
cktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAg
ICAgQ3J5cHRvQWxnb3JpdGhtSE1BQygpOwogICAgIHZpcnR1YWwgfkNyeXB0b0FsZ29yaXRobUhN
QUMoKTsKIAotICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0
aG1IbWFjUGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25z
dDsKLSAgICB2b2lkIHBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
JiwgY29uc3QgQ3J5cHRvS2V5SE1BQyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICB2b2lkIHBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXMmLCBjb25zdCBDcnlwdG9LZXlITUFDJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
c2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAg
Ym9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNE
ZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsK
KyAgICB2b2lkIHBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVw
cmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUhNQUMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0
aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUhNQUMmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBC
b29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwCmlu
ZGV4IGZlZmFhMzVlYjk5YzQxNmZiY2I3MGE0NzI5ZTA2MzMxZjhhOTIyYTcuLmRiNWJlNDZlOGVj
NjE0ZTJmNjIwNzhlY2U4NjdmNjFiYmFlYzI5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVT
X1BLQ1MxX3YxXzUuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NS
WVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oIgotI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmgiCisjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUg
IkNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtNjUsNyArNjUsNyBAQCBib29sIENyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5
cHRvS2V5JiBrZXkpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNTo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3Yx
XzU6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVj
dG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoa2V5KSkg
ewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtNzUsNyArNzUsNyBAQCB2b2lk
IENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsCiAgICAgcGxhdGZvcm1FbmNyeXB0KGRvd25jYXN0PENyeXB0b0tl
eVJTQT4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxi
YWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmRl
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVj
KQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjpkZWNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXks
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGtleSkpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKQEAgLTg1LDkgKzg1LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FF
U19QS0NTMV92MV81OjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLAog
ICAgIHBsYXRmb3JtRGVjcnlwdChkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9p
ZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0Fs
Z29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zJiByc2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBD
cnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkJiByc2FQYXJhbWV0ZXJzID0g
ZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1l
dGVycyk7CiAKICAgICBhdXRvIGtleVBhaXJDYWxsYmFjayA9IFtjYWxsYmFja10oQ3J5cHRvS2V5
UGFpciYgcGFpcikgewogICAgICAgICBjYWxsYmFjayhudWxscHRyLCAmcGFpcik7CkBAIC05Niw5
ICs5Niw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyCiAgICAgQ3J5cHRvS2V5UlNBOjpnZW5l
cmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNSwgcnNh
UGFyYW1ldGVycy5oYXNoLCByc2FQYXJhbWV0ZXJzLmhhc0hhc2gsIHJzYVBhcmFtZXRlcnMubW9k
dWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVz
YWdlcywgV1RGTW92ZShrZXlQYWlyQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykp
OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmltcG9ydEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwg
S2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6aW1w
b3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBD
cnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQmIHJzYVBhcmFtZXRl
cnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0
ZWQ+KHBhcmFtZXRlcnMpOwogICAgIGNvbnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJiBy
c2FDb21wb25lbnRzID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM+KGtleURh
dGEpOwogCiAgICAgUmVmUHRyPENyeXB0b0tleVJTQT4gcmVzdWx0ID0gQ3J5cHRvS2V5UlNBOjpj
cmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNSwgcnNhUGFy
YW1ldGVycy5oYXNoLCByc2FQYXJhbWV0ZXJzLmhhc0hhc2gsIHJzYUNvbXBvbmVudHMsIGV4dHJh
Y3RhYmxlLCB1c2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKaW5kZXgg
ZTFkOGUzMzU3NTU0MThlMDZhZjMyMjBiMzA2ZTlmOGU3MGY0NWFiNC4uOGVhM2I3MzFjZTliMWIy
YTVjZWEyZGQ2NzVlMjcxZWRlMTNiZmVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzUuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBlbmNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
ZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZv
aWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlw
dG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBW
ZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZW5lcmF0ZUtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGltcG9y
dEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwCmluZGV4IGFiMTU2Y2Y0
MzdlMDlkZmZlNjAxNmZhY2NlOTA1MTJkYzczNmRhNTcuLmIzZjg2MmViNzZlYTQ0MTA1MmFjMzQ4
MzY1YWVjZDRmY2RiMWFkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NS5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0j
aW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1z
V2l0aEhhc2hEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFy
YW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpA
QCAtNTcsNyArNTcsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81OjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVu
dGlmaWVyOwogfQogCi1ib29sIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjprZXlB
bGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYgYWxnb3Jp
dGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0Citib29sIENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81OjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0
b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNv
bnN0IENyeXB0b0tleSYga2V5KSBjb25zdAogewogICAgIGlmIChrZXkuYWxnb3JpdGhtSWRlbnRp
ZmllcigpICE9IHNfaWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjksOSAr
NjksOSBAQCBib29sIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjprZXlBbGdvcml0
aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobQogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzaWduKGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBD
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXks
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zJiByc2FTU0FQYXJhbWV0ZXJz
ID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAg
ICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiByc2FTU0FQYXJh
bWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZD4o
cGFyYW1ldGVycyk7CiAKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMocnNhU1NBUGFyYW1l
dGVycywga2V5KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtODEsOSAr
ODEsOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzaWduKGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcgogICAgIHBsYXRmb3JtU2lnbihyc2FTU0FQ
YXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUoY2Fs
bGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
c2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2sm
JiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMmIHJzYVNTQVBh
cmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXM+KHBhcmFtZXRl
cnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmIHJz
YVNTQVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXBy
ZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhyc2FT
U0FQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBA
IC05Myw5ICs5Myw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnZl
cmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwCiAgICAgcGxhdGZvcm1WZXJp
ZnkocnNhU1NBUGFyYW1ldGVycywgIGRvd25jYXN0PENyeXB0b0tleVJTQT4oa2V5KSwgc2lnbmF0
dXJlLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBl
Yyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmdlbmVyYXRl
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0
cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikK
K3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
CiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zJiByc2FQYXJhbWV0
ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zPihwYXJhbWV0ZXJz
KTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkJiBy
c2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBhdXRvIGtleVBhaXJDYWxsYmFjayA9IFtjYWxs
YmFja10oQ3J5cHRvS2V5UGFpciYgcGFpcikgewogICAgICAgICBjYWxsYmFjayhudWxscHRyLCAm
cGFpcik7CkBAIC0xMDQsOSArMTA0LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGUKICAgICBD
cnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FT
U0FfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5oYXNoLCByc2FQYXJhbWV0ZXJzLmhhc0hhc2gs
IHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVycy5wdWJsaWNFeHBvbmVu
dCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGTW92ZShrZXlQYWlyQ2FsbGJhY2spLCBXVEZNb3Zl
KGZhaWx1cmVDYWxsYmFjaykpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobVJT
QVNTQV9QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewot
ICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoJiByc2FLZXlQYXJh
bWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2g+KHBh
cmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
RGVwcmVjYXRlZCYgcnNhS2V5UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJz
YUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAgICAgY29uc3QgQ3J5
cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmIHJzYUNvbXBvbmVudHMgPSBkb3duY2FzdDxDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50cz4oa2V5RGF0YSk7CiAKICAgICBSZWZQdHI8Q3J5cHRvS2V5UlNB
PiByZXN1bHQgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhS2V5UGFyYW1ldGVycy5oYXNoLCByc2FLZXlQYXJhbWV0
ZXJzLmhhc0hhc2gsIHJzYUNvbXBvbmVudHMsIGV4dHJhY3RhYmxlLCB1c2FnZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAppbmRleCBkYzJiZmQ2OTVmNTA2ZDU3ZjYxZTRh
YjdkMGNhMGM2MzllM2I0NzRhLi5kMDZmNzZiZGJjZTRjMTc4ZGVjNzIwMzgzZDA3MjFmNWUzYTRh
ODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKQEAgLTMyLDcgKzMy
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXM7CitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkOwog
Y2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAtNDQsMTggKzQ0LDE4IEBA
IHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNp
Z25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwg
Y29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBL
ZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBC
b29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
LCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUoKTsKICAgICB2aXJ0dWFs
IH5DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSgpOwogCi0gICAgYm9vbCBrZXlBbGdv
cml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYgYWxnb3JpdGht
UGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7Ci0gICAgdm9pZCBwbGF0Zm9ybVNp
Z24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5UlNB
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgcGxhdGZv
cm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zJiwgY29uc3QgQ3J5cHRv
S2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBrZXlBbGdvcml0aG1NYXRj
aGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRo
bVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYpIGNvbnN0OworICAgIHZvaWQgcGxhdGZvcm1T
aWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
c2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBX09BRVAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVAuY3BwCmluZGV4IDViMDk5NGQyNTFhOTQzM2U2ZDk1N2VmNTg0ZTBi
NzU1M2ZjMDAxN2IuLjIyNTU5MWM4ODQ3NDU2MmZhYjk3M2YxMDcyZjZmY2FjYjJmMjU3MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1z
LmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCIKLSNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCkBAIC01Nyw3ICs1Nyw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJl
dHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLWJvb2wgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6Omtl
eUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYgYWxn
b3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0Citib29sIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQOjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29y
aXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBD
cnlwdG9LZXkmIGtleSkgY29uc3QKIHsKICAgICBpZiAoa2V5LmFsZ29yaXRobUlkZW50aWZpZXIo
KSAhPSBzX2lkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY5LDkgKzY5LDkg
QEAgYm9vbCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25z
dCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBD
cnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3Jp
dGhtUlNBX09BRVA6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0
b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmIHJzYU9BRVBQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5
cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIHJzYU9BRVBQYXJhbWV0ZXJzID0gZG93
bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMp
OwogCiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKHJzYU9BRVBQYXJhbWV0ZXJzLCBrZXkp
KSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC04MSw5ICs4MSw5IEBAIHZv
aWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1ldGVyCiAgICAgcGxhdGZvcm1FbmNyeXB0KHJzYU9BRVBQYXJhbWV0
ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2sp
LCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0
aG1SU0FfT0FFUDo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
ZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6
OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFt
ZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBk
YXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJz
YU9hZXBQYXJhbXMmIHJzYU9BRVBQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtc0RlcHJlY2F0ZWQmIHJzYU9BRVBQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgaWYg
KCFrZXlBbGdvcml0aG1NYXRjaGVzKHJzYU9BRVBQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAg
IGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC05Myw5ICs5Myw5IEBAIHZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVA6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYg
cGFyYW1ldGVyCiAgICAgcGxhdGZvcm1EZWNyeXB0KHJzYU9BRVBQYXJhbWV0ZXJzLCBkb3duY2Fz
dDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZh
aWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6
Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJDYWxs
YmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6Z2VuZXJhdGVLZXkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0
cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikK
IHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMmIHJzYVBhcmFtZXRl
cnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXM+KHBhcmFtZXRlcnMp
OworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQmIHJz
YVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXBy
ZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGF1dG8ga2V5UGFpckNhbGxiYWNrID0gW2NhbGxi
YWNrXShDcnlwdG9LZXlQYWlyJiBwYWlyKSB7CiAgICAgICAgIGNhbGxiYWNrKG51bGxwdHIsICZw
YWlyKTsKQEAgLTEwNCw5ICsxMDQsOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpn
ZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbQogICAgIENy
eXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9P
QUVQLCByc2FQYXJhbWV0ZXJzLmhhc2gsIHJzYVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhUGFyYW1l
dGVycy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0
YWJsZSwgdXNhZ2VzLCBXVEZNb3ZlKGtleVBhaXJDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNh
bGxiYWNrKSk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmltcG9ydEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwg
S2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmltcG9ydEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29u
c3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2gmIHJzYUtleVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaD4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkJiByc2FLZXlQYXJhbWV0ZXJz
ID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVk
PihwYXJhbWV0ZXJzKTsKICAgICBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgcnNh
Q29tcG9uZW50cyA9IGRvd25jYXN0PENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzPihrZXlEYXRh
KTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlSU0E+IHJlc3VsdCA9IENyeXB0b0tleVJTQTo6Y3Jl
YXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQLCByc2FLZXlQYXJhbWV0ZXJz
Lmhhc2gsIHJzYUtleVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhQ29tcG9uZW50cywgZXh0cmFjdGFi
bGUsIHVzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCmluZGV4IDg0MGJlMGIwMzFhZmI2ZDM4ZDgw
NmU5NzljYzNjN2VlODU2ZDE1OTcuLjBlYjY5OTY2YTk5YzNkYTljZDcxMWQ3ODE4ZmQ4NzZhOGEy
YzM1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQV9PQUVQLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXM7CitjbGFz
cyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZDsKIGNsYXNzIENyeXB0b0tl
eVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAgZmluYWwgOiBwdWJsaWMgQ3J5
cHRvQWxnb3JpdGhtIHsKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZv
aWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRv
S2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5
cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29u
c3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2VuZXJhdGVL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtl
eUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQKCk7
CiAgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVAoKTsKIAotICAgIGJvb2wga2V5
QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zJiBhbGdv
cml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsKLSAgICB2b2lkIHBsYXRm
b3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zJiwgY29uc3QgQ3J5
cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZv
aWQgcGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmLCBj
b25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7
CisgICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9h
ZXBQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkm
KSBjb25zdDsKKyAgICB2b2lkIHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHBsYXRmb3JtRGVjcnlwdChjb25z
dCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tl
eVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMS5jcHAKaW5kZXggNTc4YjY2YmVmY2Y0ZWM1ZDhhYTdlZTI3MzcwYzViZjExNTc5NTI3
Ni4uNzI5Nzk2ZGUzMTRhZjU3ODg4NDM5N2U4MTU2YWQ5N2M3YWM0NDA2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
MS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9B
bGdvcml0aG1TSEExOjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVudGlmaWVy
OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVNIQTE6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9y
Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMTo6ZGlnZXN0KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
RGlnZXN0PiBkaWdlc3QgPSBDcnlwdG9EaWdlc3Q6OmNyZWF0ZShDcnlwdG9EaWdlc3Q6OkFsZ29y
aXRobTo6U0hBXzEpOwogICAgIGlmICghZGlnZXN0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKaW5kZXggODI5MjQz
NzRkOTg5OTk3ZjNkMDJhMjU4NGEyMjRmYmY2ZjI4NjZlMy4uZjUyNDBiMjNmN2E2YWUxNGZiNjZk
YTM3NTZkMDViMWIwYWYyZWE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgQ3J5cHRvQWxnb3JpdGhtU0hBMSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHAKaW5kZXggMzBk
MmIxMzk2Y2NiMjY0MmM5ZjIxZmFkMzMyNGU4NmU2ZDUyMzYxZi4uZmE4MGZjNmRjNDVkNjBkNDY3
OTgxMGRhYzhmODQ2ZGE0MDA1MmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCkBAIC01Miw3ICs1
Miw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Ojpp
ZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi12b2lkIENy
eXB0b0FsZ29yaXRobVNIQTIyNDo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQor
dm9pZCBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0RpZ2VzdD4gZGln
ZXN0ID0gQ3J5cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8y
MjQpOwogICAgIGlmICghZGlnZXN0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCmluZGV4IGE0ZjQzMDhiYjEw
OGYwYTY0Y2UwYjYzNjQxMWYyZTkzODQ2YzQ4NDYuLmRmZjZkMjE4ZTY2MjkzODlkNGMxZjJjNjIz
NDA5NGQ4NTU1MDQzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1Ymxp
YzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToK
ICAgICBDcnlwdG9BbGdvcml0aG1TSEEyMjQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuY3BwCmluZGV4IGVi
MmFkYTJmZmU0NGNhZGQ2ZjNhYWYzZmI1OTAwMTMyYzVkOGQ2OTEuLjMyNDk5YTk1YjZlM2U3OTQ5
Y2M0Mjc0OTBiMTM0NWY1ZjFmMDA5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcApAQCAtNTIsNyAr
NTIsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRobVNIQTI1Njo6
aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAotdm9pZCBD
cnlwdG9BbGdvcml0aG1TSEEyNTY6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikK
K3ZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2OjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBW
ZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9EaWdlc3Q+IGRp
Z2VzdCA9IENyeXB0b0RpZ2VzdDo6Y3JlYXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFf
MjU2KTsKICAgICBpZiAoIWRpZ2VzdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAppbmRleCA0MWQwNzc5ZTgy
MzZhNjIwZGEwNWFjMDU1ODlmYWVkMTk4NWNiOWIwLi43ZGQ3NThhNjQ1MTBlOTRhNGFlZThkMTYy
ZjMzOWIzNjg4YWE2M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAppbmRleCBk
N2Q0MTAyNThkYzJlZGMxZThkNmI0MmUxY2ZjNjU4NTFkM2RlMGE2Li4zNGVkODdjOTk4ZjEzODZm
ZTMwZDUzYTVjODk3ZDkwZjllOWY1ZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5jcHAKQEAgLTUyLDcg
KzUyLDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1TSEEzODQ6
OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLXZvaWQg
Q3J5cHRvQWxnb3JpdGhtU0hBMzg0OjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
Cit2b2lkIENyeXB0b0FsZ29yaXRobVNIQTM4NDo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwg
VmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvRGlnZXN0PiBk
aWdlc3QgPSBDcnlwdG9EaWdlc3Q6OmNyZWF0ZShDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hB
XzM4NCk7CiAgICAgaWYgKCFkaWdlc3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKaW5kZXggODMyNzAwMzJi
MzIzNDMxYTJiMTY2ODU0ZjA5NmIxMTg3YjQ1YmMwZS4uYjBiMGQwZTM3YWJmYzQ0OTNhNzIyMGFl
NzgyZDBkNTY0MjI1YzRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVi
bGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRl
OgogICAgIENyeXB0b0FsZ29yaXRobVNIQTM4NCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHAKaW5kZXgg
MTYxYmY3MzY2NGYwNTRkNjBkZDI4YWIxMjEyOWEwNWU2Zjg2YWE0MS4uOWRhOTczNmYzODgzYTQw
M2Y3ZWVhYmQ2ODY0YjBlZjljYjcxMWE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCkBAIC01Miw3
ICs1Miw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtU0hBNTEy
OjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi12b2lk
IENyeXB0b0FsZ29yaXRobVNIQTUxMjo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KQordm9pZCBDcnlwdG9BbGdvcml0aG1TSEE1MTI6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0RpZ2VzdD4g
ZGlnZXN0ID0gQ3J5cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNI
QV81MTIpOwogICAgIGlmICghZGlnZXN0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCmluZGV4IGYzMTYxODNm
NTM2ZDMzNGI4YWIyYTZlZDI2NGY1MGYxOWU5YjFkZDAuLjY0MDJhMjljZTNlYTA1MDUwMTI0YjYw
NGRkZDQzMTkyM2EwMTliNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1
YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJpdmF0
ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEE1MTIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHbnVUTFMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNUdudVRMUy5jcHAKaW5kZXggY2Y1NjY3ZmFmOWQwZDIyMmY1MjhlMDY2N2Q1OWJj
ZTBiNGU3MWFjOS4uNTY4ZDUyYmE0MDM0ZGYwMGI3NDNmYTI3OWM0ZmFkMTdiMTVjNjEzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNUdudVRMUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRs
cy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNUdudVRMUy5jcHAKQEAgLTI4LDE0ICsy
OCwxNCBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQ
YXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxh
dGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYgcGFyYW1ldGVycywg
Y29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81OjpwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVj
YXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtNDcsNyArNDcsNyBAQCB2
b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVNpZ24oY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUAogICAgIFVOVVNFRF9QQVJBTShmYWlsdXJlQ2FsbGJhY2sp
OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVZl
cmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1WZXJpZnkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3Qg
Q3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ss
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJh
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9u
UmF3LmNwcAppbmRleCBmZjA4NzMwZGY0ZGJjYTVmOGIzNWMwYWUzZDJhMjEwY2VlZjIxODY5Li42
ZDNiOGM4NDU4OTliNWViZmYxMzAxOGU5YWYyYTdiMGU4NmVlMWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNw
cApAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCiAj
aW5jbHVkZSAiQ3J5cHRvS2V5LmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVu
Y2UuaCIKIApAQCAtNDQsNyArNDQsNyBAQCBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3Ojp+Q3J5
cHRvS2V5U2VyaWFsaXphdGlvblJhdygpCiB7CiB9CiAKLU9wdGlvbmFsPENyeXB0b0FsZ29yaXRo
bVBhaXI+IENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OnJlY29uY2lsZUFsZ29yaXRobShDcnlw
dG9BbGdvcml0aG0qIGFsZ29yaXRobSwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyogcGFyYW1l
dGVycykgY29uc3QKK09wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IENyeXB0b0tleVNlcmlh
bGl6YXRpb25SYXc6OnJlY29uY2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qIGFsZ29yaXRo
bSwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqIHBhcmFtZXRlcnMpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIENyeXB0b0FsZ29yaXRobVBhaXIgeyBhbGdvcml0aG0sIHBhcmFtZXRl
cnMgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVNlcmlhbGl6YXRpb25SYXcuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVNlcmlhbGl6YXRpb25SYXcuaAppbmRleCAwOGVhZDgyNmNlNmMyMWY4N2JkZmY4MmRkODI5YzNj
ZWY3YTg5YTEwLi5lZmEzY2QyYzAxZDlmMzVhMGU5MGMyYTk5N2M0MTQ4MmQ3OGVhNTM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9u
UmF3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdy5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ3J5cHRv
S2V5U2VyaWFsaXphdGlvblJhdyhjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJik7CiAKLSAgICBP
cHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxn
b3JpdGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyopIGNvbnN0IG92ZXJyaWRlOworICAg
IE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJlY29uY2lsZUFsZ29yaXRobShDcnlwdG9B
bGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCopIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgdm9pZCByZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNhZ2UmKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIHJlY29uY2lsZUV4dHJhY3RhYmxlKGJvb2wmKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQ01hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19DQkNNYWMuY3BwCmluZGV4IDE1ODY5MDc5NmYyMDRjZjE4MzU0MzdkY2ExYjhk
MDM5NThmMDRiYzMuLmIxMjNjZWNiMTIzYzUxNGMzOGYwOTA0NGJlMzgyZjE4MTc2YjQ3MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Q01hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1B
RVNfQ0JDTWFjLmNwcApAQCAtMjgsMTQgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NS
WVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oIgorI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJD
cnlwdG9LZXlBRVMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSA8Q29t
bW9uQ3J5cHRvL0NvbW1vbkNyeXB0by5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyB2b2lkIHRyYW5zZm9ybUFFU19DQkMoQ0NPcGVyYXRpb24gb3BlcmF0aW9uLCBjb25zdCBDcnlw
dG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBDcnlwdG9BbGdvcml0aG06OlZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrKQorc3RhdGljIHZvaWQgdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQm
IHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBkYXRhLCBDcnlwdG9BbGdvcml0aG06OlZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ss
IENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQogewogICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKHBhcmFtZXRlcnMuaXYpID09IGtDQ0Jsb2NrU2l6ZUFFUzEy
OCwgIkluaXRpYWxpemF0aW9uIHZlY3RvciBzaXplIG11c3QgYmUgdGhlIHNhbWUgYXMgYWxnb3Jp
dGhtIGJsb2NrIHNpemUiKTsKIApAQCAtODIsMTIgKzgyLDEyIEBAIHN0YXRpYyB2b2lkIHRyYW5z
Zm9ybUFFU19DQkMoQ0NPcGVyYXRpb24gb3BlcmF0aW9uLCBjb25zdCBDcnlwdG9BbGdvcml0aG1B
ZXNDYmNQCiAgICAgY2FsbGJhY2socmVzdWx0KTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
JiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0Rl
cHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewogICAgIHRyYW5zZm9y
bUFFU19DQkMoa0NDRW5jcnlwdCwgcGFyYW1ldGVycywga2V5LCBkYXRhLCBXVEZNb3ZlKGNhbGxi
YWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFy
YW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
c0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewogICAgIHRyYW5z
Zm9ybUFFU19DQkMoa0NDRGVjcnlwdCwgcGFyYW1ldGVycywga2V5LCBkYXRhLCBXVEZNb3ZlKGNh
bGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCmluZGV4IGNmM2E0
NjBkNTVlYWY0Njk1MzgzYTgxYWUxZmMwY2M1NDk0NmQ3ZTcuLjI5NmE3OGFiNTdmZDNiOTViOTNk
ZWFiOGE2ZjcyNTA5ODY0YzY3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFy
YW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCIK
ICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgPENvbW1vbkNyeXB0by9Db21tb25ITUFDLmg+CkBAIC04OSw3ICs4OSw3IEBAIHN0
YXRpYyBWZWN0b3I8dWludDhfdD4gY2FsY3VsYXRlU2lnbmF0dXJlKENDSG1hY0FsZ29yaXRobSBh
bGdvcml0aG0sIGNvbnN0IFZlY3RvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBDcnlw
dG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5SE1BQyYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRm
b3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1l
dGVycywgY29uc3QgQ3J5cHRvS2V5SE1BQyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgQ0NIbWFjQWxnb3JpdGhtIGFsZ29yaXRobTsKICAgICBpZiAo
IWdldENvbW1vbkNyeXB0b0hNQUNBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoLCBhbGdvcml0aG0p
KSB7CkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9y
bVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYgcGFyYW1ldGUKICAgICBjYWxs
YmFjayhzaWduYXR1cmUpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRmb3Jt
VmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhwZWN0ZWRT
aWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0
b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlITUFDJiBrZXksIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVjdGVkU2lnbmF0dXJlLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIENDSG1hY0FsZ29yaXRobSBhbGdvcml0aG07
CiAgICAgaWYgKCFnZXRDb21tb25DcnlwdG9ITUFDQWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaCwg
YWxnb3JpdGhtKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9Dcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcAppbmRleCAzOWFj
NDAyYzVmNmMyN2ZjZWI5ODA5NjBiMWJjZjJhOWQ0MjkxMGNiLi4wYWI4ZjQyYjg1ZmIxOWZmOWE0
NDg1Nzk0ZDE4MjcyY2MwNTYxNWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNw
cApAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVk
ZSAiQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVj
YXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0RpZ2VzdC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVJT
QS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTU5LDcgKzU5LDcgQEAgaW5saW5l
IGJvb2wgZ2V0Q3J5cHRvRGlnZXN0QWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aGFzaEZ1bmN0aW9uLCBDcnkKICAgICB9CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzU6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJh
bXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIENDRGlnZXN0QWxnb3JpdGhtIGRpZ2VzdEFsZ29yaXRobTsKICAgICBpZiAoIWdldENv
bW1vbkNyeXB0b0RpZ2VzdEFsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gsIGRpZ2VzdEFsZ29yaXRo
bSkpIHsKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNTo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVAKICAgICBjYWxs
YmFjayhzaWduYXR1cmUpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81OjpwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMmIHBh
cmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxs
YmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZv
cm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxi
YWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CiAgICAgQ0NEaWdlc3RBbGdvcml0aG0gZGlnZXN0QWxnb3JpdGhtOwogICAg
IGlmICghZ2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaCwgZGln
ZXN0QWxnb3JpdGhtKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcAppbmRleCBhYWNkZmFmYTlmNjMzNjFjOTRk
ZGY4NWNiY2FmZTUzMWEzMDIxNzE1Li5jZjI4MWNhODc2MDIyNGVkMDdhN2U0YTAwYWZmMWZkZDg1
N2M1ZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29y
aXRobVJTQV9PQUVQTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0
b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcApAQCAtMjksMTMgKzI5LDEzIEBACiAjaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJDb21tb25DcnlwdG9VdGlsaXRpZXMuaCIKLSNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlS
U0EuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJT
QSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
IGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVj
dG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBDQ0RpZ2VzdEFsZ29yaXRobSBkaWdlc3RBbGdvcml0
aG07CiAgICAgaWYgKCFnZXRDb21tb25DcnlwdG9EaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5o
YXNoLCBkaWdlc3RBbGdvcml0aG0pKSB7CkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FP
YWVwUGFyYW1zCiAgICAgY2FsbGJhY2soY2lwaGVyVGV4dCk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FP
YWVwUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBr
ZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgQ0NEaWdlc3RBbGdvcml0aG0gZGlnZXN0QWxnb3JpdGhtOwogICAgIGlmICghZ2V0
Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaCwgZGlnZXN0QWxnb3Jp
dGhtKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMmE3OThmN2U1NjI4M2I1YTkzNzBhMWMzMDBkZmU2NWJhNDYyMjEzYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRo
bUFlc0NiY1BhcmFtc19oCi0jZGVmaW5lIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc19oCi0K
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8YXJyYXk+
Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhlIGluaXRpYWxpemF0aW9uIHZl
Y3Rvci4gTVVTVCBiZSAxNiBieXRlcy4KLSAgICBzdGQ6OmFycmF5PGNoYXIsIDE2PiBpdjsKLQot
ICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNz
OjpBZXNDYmNQYXJhbXM7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoQWVzQ2JjUGFyYW1z
KQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0Rl
cHJlY2F0ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Y2I1ZTk2NDIxOTI4MTI1YjlhYzhlMDY0MGJlOTNhMWE3
OTI1N2I1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSA8YXJyYXk+CisKKyNpZiBFTkFCTEUo
U1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKK3B1YmxpYzoKKyAgICAvLyBUaGUgaW5pdGlhbGl6YXRp
b24gdmVjdG9yLiBNVVNUIGJlIDE2IGJ5dGVzLgorICAgIHN0ZDo6YXJyYXk8Y2hhciwgMTY+IGl2
OworCisgICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Q2xhc3M6OkFlc0NiY1BhcmFtczsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhBZXNDYmNQ
YXJhbXMpCisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0tleUdlblBh
cmFtcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGht
QWVzS2V5R2VuUGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NGM1Y2Zi
NjIyYzk5MTk3ZmM3MGEyNzI1OGFlNjVkNDI3MmIwM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJh
bXNfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNfaAotCi0jaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgewotcHVi
bGljOgotICAgIC8vIFRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBrZXkuCi0gICAgdW5zaWdu
ZWQgbGVuZ3RoOwotCi0gICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gQ2xhc3M6OkFlc0tleUdlblBhcmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1F
VEVSUyhBZXNLZXlHZW5QYXJhbXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykK
LSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2Vu
UGFyYW1zRGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhMzA2
MmRlMzEzZTc1NDQxZThiMWE1MTA5NjliNzUxMTNmY2Y4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5Q
YXJhbXNEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIK
KworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJs
aWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIC8v
IFRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBrZXkuCisgICAgdW5zaWduZWQgbGVuZ3RoOwor
CisgICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xh
c3M6OkFlc0tleUdlblBhcmFtczsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhBZXNLZXlH
ZW5QYXJhbXMpCisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bUhtYWNLZXlQYXJhbXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTIxYjE1ZDg5
ZDAzODViOGU1NjI5NmQ5ZmNlN2E1YTE4N2E2YThhNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zX2gK
LSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc19oCi0KLSNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcyBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoKLSAgICBDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zKCkKLSAgICAgICAgOiBoYXNMZW5ndGgoZmFsc2UpCi0gICAgewotICAgIH0K
LQotICAgIC8vIFRoZSBpbm5lciBoYXNoIGZ1bmN0aW9uIHRvIHVzZS4KLSAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICAvLyBUaGUgbGVuZ3RoIChpbiBieXRlcykgb2Yg
dGhlIGtleSB0byBnZW5lcmF0ZS4gSWYgdW5zcGVjaWZpZWQsIHRoZSByZWNvbW1lbmRlZCBsZW5n
dGggd2lsbCBiZSB1c2VkLAotICAgIC8vIHdoaWNoIGlzIHRoZSBzaXplIG9mIHRoZSBhc3NvY2lh
dGVkIGhhc2ggZnVuY3Rpb24ncyBibG9jayBzaXplLgotICAgIGJvb2wgaGFzTGVuZ3RoOwotICAg
IHVuc2lnbmVkIGxlbmd0aDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpIbWFjS2V5UGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9Q
QVJBTUVURVJTKEhtYWNLZXlQYXJhbXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBU
TykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExMTdmYzMx
ZGQzNmE2MTIwYzNhOGZhZWRmODUzMWViOWFkYjgwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1z
RGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorCisjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSG1h
Y0tleVBhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJh
bXNEZXByZWNhdGVkKCkKKyAgICAgICAgOiBoYXNMZW5ndGgoZmFsc2UpCisgICAgeworICAgIH0K
KworICAgIC8vIFRoZSBpbm5lciBoYXNoIGZ1bmN0aW9uIHRvIHVzZS4KKyAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGhhc2g7CisKKyAgICAvLyBUaGUgbGVuZ3RoIChpbiBieXRlcykgb2Yg
dGhlIGtleSB0byBnZW5lcmF0ZS4gSWYgdW5zcGVjaWZpZWQsIHRoZSByZWNvbW1lbmRlZCBsZW5n
dGggd2lsbCBiZSB1c2VkLAorICAgIC8vIHdoaWNoIGlzIHRoZSBzaXplIG9mIHRoZSBhc3NvY2lh
dGVkIGhhc2ggZnVuY3Rpb24ncyBibG9jayBzaXplLgorICAgIGJvb2wgaGFzTGVuZ3RoOworICAg
IHVuc2lnbmVkIGxlbmd0aDsKKworICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpIbWFjS2V5UGFyYW1zOyB9Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9Q
QVJBTUVURVJTKEhtYWNLZXlQYXJhbXMpCisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBU
TykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Ny
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTM3OTNiNmZhNWQ3NTNlMzVhODk2MmY1YWU2ODg4ZDBlMGVmN2NjYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
X2gKLSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc19oCi0KLSNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoKLSAgICAvLyBUaGUgaW5uZXIgaGFzaCBm
dW5jdGlvbiB0byB1c2UuCi0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOwotCi0g
ICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6
OkhtYWNQYXJhbXM7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoSG1hY1BhcmFtcykKLQot
I2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRo
bUhtYWNQYXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWU1YjFiM2E2NWIyMGNkY2JjNDRhNGMwYTVmZGYxNzc5NWU3M2U4NQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCisKKyNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
cnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6CisgICAgLy8gVGhlIGlubmVy
IGhhc2ggZnVuY3Rpb24gdG8gdXNlLgorICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFz
aDsKKworICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IENsYXNzOjpIbWFjUGFyYW1zOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEhtYWNQYXJh
bXMpCisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFt
cy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2M2E1N2NlZDNl
M2MzNjYzYjMxMTJkNTk5MmE4MWMzMjEyZDM5MmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNf
aAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNfaAotCi0jaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQot
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNz
IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoKLSAgICBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXMoKQotICAgICAgICA6IGhhc0hhc2goZmFsc2UpCi0gICAgewotICAgIH0KLSAgICAvLyBU
aGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUgUlNBIG1vZHVsdXMuCi0gICAgdW5zaWduZWQgbW9k
dWx1c0xlbmd0aDsKLSAgICAvLyBUaGUgUlNBIHB1YmxpYyBleHBvbmVudCwgZW5jb2RlZCBhcyBC
aWdJbnRlZ2VyLgotICAgIFZlY3Rvcjx1aW50OF90PiBwdWJsaWNFeHBvbmVudDsKLSAgICAvLyBU
aGUgaGFzaCBhbGdvcml0aCBpZGVudGlmaWVyCi0gICAgYm9vbCBoYXNIYXNoOwotICAgIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlHZW5QYXJhbXM7IH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9f
QUxHT1JJVEhNX1BBUkFNRVRFUlMoUnNhS2V5R2VuUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxF
KFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1z
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YjMzZjczNmNmYzQ4NDVkMzMwZTZhMTUxNThkZjBlYzQzNTdjOWFmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgRU5BQkxFKFNV
QlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6CisgICAgQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZCgpCisgICAgICAgIDogaGFzSGFzaChmYWxzZSkKKyAgICB7
CisgICAgfQorICAgIC8vIFRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBSU0EgbW9kdWx1cy4K
KyAgICB1bnNpZ25lZCBtb2R1bHVzTGVuZ3RoOworICAgIC8vIFRoZSBSU0EgcHVibGljIGV4cG9u
ZW50LCBlbmNvZGVkIGFzIEJpZ0ludGVnZXIuCisgICAgVmVjdG9yPHVpbnQ4X3Q+IHB1YmxpY0V4
cG9uZW50OworICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRoIGlkZW50aWZpZXIKKyAgICBib29sIGhh
c0hhc2g7CisgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOworCisgICAgQ2xhc3Mg
cGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYUtleUdl
blBhcmFtczsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhSc2FLZXlHZW5QYXJhbXMpCisK
KyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FL
ZXlQYXJhbXNXaXRoSGFzaC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWZjYWEx
NzM2ODBkNmFmZDA2NTM3M2NkYzFiNjlkMDY5ZGRlNGY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQ
YXJhbXNXaXRoSGFzaF9oCi0jZGVmaW5lIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhI
YXNoX2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBU
TykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBUaGlzIHBhcmFtZXRlcnMgY2xhc3MgaXMg
Y3VycmVudGx5IG5vdCBzcGVjaWZpZWQgaW4gV2ViQ3J5cHRvLgotLy8gSXQgaXMgbmVjZXNzYXJ5
IHRvIHN1cHBvcnQgaW1wb3J0IGZyb20gSldLLCB3aGljaCB0cmVhdHMgaGFzaCBmdW5jdGlvbiBh
cyBwYXJ0IG9mIGFsZ29yaXRobQotLy8gaWRlbnRpZmllciwgc28gd2UgbmVlZCB0byByZW1lbWJl
ciBpdCB0byBjb21wYXJlIHdpdGggb25lIHBhc3NlZCB0byBzaWduIG9yIHZlcmlmeSBmdW5jdGlv
bnMuCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCBmaW5hbCA6IHB1
YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoKLSAgICBDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCgpCi0gICAgICAgIDogaGFzSGFzaChmYWxzZSkKLSAg
ICB7Ci0gICAgfQotCi0gICAgLy8gVGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KLSAgICBib29s
IGhhc0hhc2g7Ci0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOwotCi0gICAgQ2xh
c3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYUtl
eVBhcmFtc1dpdGhIYXNoOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKFJzYUtleVBhcmFt
c1dpdGhIYXNoKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8g
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2hEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZTk3YzhiNjE3OWRlNmU0ZDc4NjY3MjQxMWRlYjhmZTkwYmNlZTQ5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCisKKyNpZiBF
TkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIHBh
cmFtZXRlcnMgY2xhc3MgaXMgY3VycmVudGx5IG5vdCBzcGVjaWZpZWQgaW4gV2ViQ3J5cHRvLgor
Ly8gSXQgaXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgaW1wb3J0IGZyb20gSldLLCB3aGljaCB0cmVh
dHMgaGFzaCBmdW5jdGlvbiBhcyBwYXJ0IG9mIGFsZ29yaXRobQorLy8gaWRlbnRpZmllciwgc28g
d2UgbmVlZCB0byByZW1lbWJlciBpdCB0byBjb21wYXJlIHdpdGggb25lIHBhc3NlZCB0byBzaWdu
IG9yIHZlcmlmeSBmdW5jdGlvbnMuCitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNX
aXRoSGFzaERlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dp
dGhIYXNoRGVwcmVjYXRlZCgpCisgICAgICAgIDogaGFzSGFzaChmYWxzZSkKKyAgICB7CisgICAg
fQorCisgICAgLy8gVGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KKyAgICBib29sIGhhc0hhc2g7
CisgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOworCisgICAgQ2xhc3MgcGFyYW1l
dGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYUtleVBhcmFtc1dp
dGhIYXNoOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKFJzYUtleVBhcmFtc1dpdGhIYXNo
KQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVw
UGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkMmMzNGNkMWE2NmZlMjli
Zjg5YmVkNjI1NTBjZWRkZGUyOWRjNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhT2FlcFBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc19oCi0jZGVmaW5l
IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNfaAotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIK
LQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtcygpCi0gICAgICAgIDogaGFzTGFiZWwoZmFsc2UpCi0gICAgewotICAgIH0KLQotICAgIC8v
IFRoZSBoYXNoIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBtZXNzYWdlLgotICAgIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAgIC8vIFRoZSBvcHRpb25hbCBsYWJlbC9hcHBs
aWNhdGlvbiBkYXRhIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBtZXNzYWdlLgotICAgIC8vIEZJWE1F
OiBJcyB0aGVyZSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBhIG1pc3NpbmcgbGFiZWwgYW5kIGFuIGVt
cHR5IG9uZT8gUGVyaGFwcyB3ZSBkb24ndCBuZWVkIHRoZSBoYXNMYWJlbCBtZW1iZXIuCi0gICAg
Ym9vbCBoYXNMYWJlbDsKLSAgICBWZWN0b3I8dWludDhfdD4gbGFiZWw7Ci0KLSAgICBDbGFzcyBw
YXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhT2FlcFBh
cmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhSc2FPYWVwUGFyYW1zKQotCi0jZW5k
aWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVy
cy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0
ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45OTgwNTkzYmRjMmFlZGEzYjQyNWJhY2VmNjE5MzE2ZmVhZjNlODFj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaApAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQu
aCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkIGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKK3B1YmxpYzoKKyAgICBD
cnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCgpCisgICAgICAgIDogaGFzTGFi
ZWwoZmFsc2UpCisgICAgeworICAgIH0KKworICAgIC8vIFRoZSBoYXNoIGZ1bmN0aW9uIHRvIGFw
cGx5IHRvIHRoZSBtZXNzYWdlLgorICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsK
KworICAgIC8vIFRoZSBvcHRpb25hbCBsYWJlbC9hcHBsaWNhdGlvbiBkYXRhIHRvIGFzc29jaWF0
ZSB3aXRoIHRoZSBtZXNzYWdlLgorICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGRpZmZlcmVuY2Ug
YmV0d2VlbiBhIG1pc3NpbmcgbGFiZWwgYW5kIGFuIGVtcHR5IG9uZT8gUGVyaGFwcyB3ZSBkb24n
dCBuZWVkIHRoZSBoYXNMYWJlbCBtZW1iZXIuCisgICAgYm9vbCBoYXNMYWJlbDsKKyAgICBWZWN0
b3I8dWludDhfdD4gbGFiZWw7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhT2FlcFBhcmFtczsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1f
UEFSQU1FVEVSUyhSc2FPYWVwUGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MTg1ZjhkZmI4M2FkOWIzZjVjODdlNDJhMjI0NGZkODY0N2E0ZjgyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zX2gKLSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zX2gKLQotI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMgZmluYWwg
OiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhl
IGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KLSAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhh
c2g7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBDbGFzczo6UnNhU3NhUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKFJzYVNz
YVBhcmFtcykKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENy
eXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQ
YXJhbXNEZXByZWNhdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM5NGEzNzhlZmYyNTdkNTljYTMxNmI4YWUx
MTU2MzExNzlmNDk4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQuaCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQg
ZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgeworcHVi
bGljOgorICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCisgICAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBoYXNoOworCisgICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYVNzYVBhcmFtczsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1f
UEFSQU1FVEVSUyhSc2FTc2FQYXJhbXMpCisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBU
TykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291159</attachid>
            <date>2016-10-10 14:11:30 -0700</date>
            <delta_ts>2016-10-10 14:25:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163163-20161010140809.patch</filename>
            <type>text/plain</type>
            <size>197771</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE3YjU5MWIyYThkYTdm
MWUwNDMyM2M0ZTdhYzRjNjBjMTM0YjRhNy4uNTc0MjE3NWMxMjcxZjQ4YmI4YmQ2YmI2Yjg4Mzcw
N2IxNjdkNjhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBAQAorMjAxNi0xMC0wNyAgSmll
d2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzIHRvIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxNjMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NjgxNTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3JzLiBObyBu
ZXcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25D
bGVhcktleS5jcHA6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBZXNDYmNQYXJhbXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQWVzS2V5R2VuUGFyYW1zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhtYWNQ
YXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSG1hY0tleVBhcmFtcyk6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVSc2FLZXlHZW5QYXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlUnNhS2V5UGFyYW1zV2l0aEhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUnNhT2Fl
cFBhcmFtcyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSc2FTc2FQYXJhbXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24pOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JEZXJpdmVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yRXhwb3J0S2V5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0
b0tleVNlcmlhbGl6YXRpb25KV0suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSE1BQ1Bh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhI
YXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVj
b25jaWxlQWxnb3JpdGhtKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlh
bGl6YXRpb25KV0suaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbXBvcnRLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86OmltcG9ydEtleSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1dlYktpdFN1YnRsZUNyeXB0bzo6dW53cmFwS2V5KToKKyAgICAgICAgKiBjcnlwdG8vQ3J5
cHRvQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6ZW5j
cnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG06OmRlY3J5cHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpzaWduKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobTo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobTo6ZGlnZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6Z2VuZXJh
dGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVLZXkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6aW1wb3J0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobTo6ZW5jcnlwdEZvcldyYXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvQWxnb3JpdGhtOjpkZWNyeXB0Rm9yVW53cmFwS2V5KToKKyAgICAgICAgKiBjcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtLmg6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkOjp+Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ6OnBhcmFtZXRlcnNDbGFz
cyk6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29yaXRobU1hdGNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmdlbmVyYXRlS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmltcG9ydEtleSk6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAqIGNy
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmVuY3J5cHRGb3JXcmFwS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6ZGVjcnlwdEZvclVud3JhcEtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmdlbmVyYXRlS2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6aW1wb3J0S2V5KToKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNyeXB0b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6c2lnbik6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1ITUFDOjp2ZXJpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtSE1BQzo6aW1wb3J0S2V5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81OjplbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmRlY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6aW1wb3J0S2V5KToKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzU6OmtleUFsZ29yaXRobU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnNpZ24pOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnZlcmlmeSk6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmltcG9ydEtleSk6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6a2V5
QWxnb3JpdGhtTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUDo6ZW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FF
UDo6ZGVjcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6
Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6
OmltcG9ydEtleSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEExLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVNIQTE6OmRpZ2VzdCk6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OmRpZ2VzdCk6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0FsZ29yaXRobVNIQTI1Njo6ZGlnZXN0KToKKyAgICAgICAgKiBjcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtU0hBMzg0OjpkaWdlc3QpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTM4NC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTUxMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1T
SEE1MTI6OmRpZ2VzdCk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlv
blJhdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3Ojpy
ZWNvbmNpbGVBbGdvcml0aG0pOgorICAgICAgICAqIGNyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQ0dudVRMUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KToKKyAgICAgICAgKiBjcnlwdG8vZ251dGxzL0Ny
eXB0b0FsZ29yaXRobUhNQUNHbnVUTFMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobUhNQUM6OnBsYXRmb3JtVmVyaWZ5KToKKyAgICAgICAgKiBjcnlwdG8vZ251dGxzL0NyeXB0
b0FsZ29yaXRobVJTQV9PQUVQR251VExTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0Fs
Z29yaXRobVJTQV9PQUVQOjpwbGF0Zm9ybUVuY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRGVjcnlwdCk6CisgICAgICAgICogY3J5cHRv
L2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNUdudVRMUy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1T
aWduKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81
OjpwbGF0Zm9ybVZlcmlmeSk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5oOgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Q01hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cmFuc2Zvcm1BRVNfQ0JDKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQpOgor
ICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9ybVNpZ24pOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1WZXJpZnkpOgorICAgICAgICAq
IGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3Jt
U2lnbik6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NTo6cGxhdGZvcm1WZXJpZnkpOgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVBNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBX09B
RVA6OnBsYXRmb3JtRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1S
U0FfT0FFUDo6cGxhdGZvcm1EZWNyeXB0KToKKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMu
aC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5Q
YXJhbXNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaC4KKyAgICAgICAgKiBjcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtSG1hY0tleVBhcmFtcy5oLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmguCisgICAgICAg
ICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVj
YXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmguCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1S
c2FLZXlQYXJhbXNXaXRoSGFzaC5oLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgu
CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
RGVwcmVjYXRlZC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmguCisKIDIwMTYtMTAtMDYgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBkdW1teSBTdWJ0bGVD
cnlwdG8gaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAKaW5kZXggZmNkYTRlMGY4Nzg2
NmViZTNlODU1ZWI3NDZlOTM2ZjFjY2Y5Mzg3OS4uOWRhNzc4NjFjZDNkYjNlZTQ3YThkNjQ2NDBl
ZGY5MzY2ZDNiOWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcApAQCAtMjksNyArMjksNiBA
QAogI2luY2x1ZGUgIkFycmF5VmFsdWUuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIK
ICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNlcXVl
bmNlLmgiCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4
ZWNTdGF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGI0OWVlZjQ5NTQ0N2Y5NzE4ZTQ5OTUyNjQ4MjEyYzNmMTExMjhhNzku
LjNjYTUzNDdlNDEyNzU3NTE0MWJiNDVhNjgzNTM0NGQyZDFhYjQ5MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5NDgsNyAr
NTk0OCw3IEBACiAJCUUxMjVGODM1MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODMz
MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmNwcCAqLzsgfTsKIAkJRTEyNUY4MzYx
ODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODM0MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlw
dG9LZXlITUFDLmggKi87IH07CiAJCUUxMjVGODM4MTgyMkYxRUIwMEQ4NENEOSAvKiBDcnlwdG9B
bGdvcml0aG1ITUFDTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMjVGODM3MTgyMkYxRUIwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1ITUFD
TWFjLmNwcCAqLzsgfTsKLQkJRTEyNUY4M0ExODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0Ni
Y1BhcmFtcy5oICovOyB9OworCQlFMTI1RjgzQTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0Fs
Z29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTEyNUY4M0QxODI0MTFF
NzAwRDg0Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzQjE4MjQxMUU3MDBEODRDRDkgLyog
SlNDcnlwdG9PcGVyYXRpb25EYXRhLmNwcCAqLzsgfTsKIAkJRTEyNUY4M0UxODI0MTFFNzAwRDg0
Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4M0MxODI0MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5cHRv
T3BlcmF0aW9uRGF0YS5oICovOyB9OwogCQlFMTI1Rjg0MTE4MjQyNTNBMDBEODRDRDkgLyogQ3J5
cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTI1RjgzRjE4MjQyNTNBMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQy5jcHAgKi87IH07CkBAIC02MDQyLDkgKzYwNDIsOSBAQAogCQlFMTlBQzNGMzE4MjRE
Qzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNFQjE4MjREQzc5MDAzNDk0MjYgLyog
Q3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggKi87IH07CiAJCUUxOUFDM0Y0MTgyNERDNzkwMDM0OTQy
NiAvKiBDcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5QUMzRUMxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0Fs
Z29yaXRobVNIQTUxMi5jcHAgKi87IH07CiAJCUUxOUFDM0Y1MTgyNERDNzkwMDM0OTQyNiAvKiBD
cnlwdG9BbGdvcml0aG1TSEE1MTIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxOUFDM0VEMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1T
SEE1MTIuaCAqLzsgfTsKLQkJRTE5QUMzRjcxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29y
aXRobUFlc0tleUdlblBhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFl
c0tleUdlblBhcmFtcy5oICovOyB9OworCQlFMTlBQzNGNzE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2IC8q
IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTE5
QUMzRjkxODI1NjZGNzAwMzQ5NDI2IC8qIENyeXB0b0tleU1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNGODE4MjU2NkY3MDAzNDk0MjYg
LyogQ3J5cHRvS2V5TWFjLmNwcCAqLzsgfTsKLQkJRTE5REEyOUMxODE4OUFERDAwMDg4QkM4IC8q
IENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9B
bGdvcml0aG1IbWFjS2V5UGFyYW1zLmggKi87IH07CisJCUUxOURBMjlDMTgxODlBREQwMDA4OEJD
OCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5REEyOUIxODE4OUFERDAwMDg4
QkM4IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJ
CUUxQTE0NzA4MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFBMTQ3MDcxMTEw
MkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggKi87IH07CiAJCUUxQTMx
NjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTMxNjJCMTM0QkMz
MkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUEzMTYyRTEzNEJDMzJEMDA3
QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFBMzE2MkMxMzRCQzMyRDAwN0M5QTRGIC8q
IFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSAqLzsgfTsKQEAgLTYwNzEsMTIgKzYwNzEs
MTIgQEAKIAkJRTFCQjg0QUQxODIyQ0E3NDAwNTI1MDQzIC8qIENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxQkI4NEFDMTgyMkNBNzQwMDUyNTA0MyAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5j
cHAgKi87IH07CiAJCUUxQkQzMzE5MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUJEMzMxNzE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzUuY3BwICovOyB9OwogCQlFMUJEMzMxQTE4MkQ4REREMDBDMDVEOUYgLyog
Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQzMzE4MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oICovOyB9OwotCQlFMUJEMzMxQzE4MkQ4RUU5
MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYg
LyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggKi87IH07Ci0JCUUxQkQzMzFFMTgyRDhG
NDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQzMzFEMTgyRDhGNDIwMEMw
NUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCAqLzsgfTsKKwkJRTFCRDMz
MUMxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0
ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQz
MzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNh
dGVkLmggKi87IH07CisJCUUxQkQzMzFFMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxn
b3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovOyB9OwogCQlFMUJFNTEyRDBDRjZD
NTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkU1MTJCMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xU
VW5pY29kZVNvcnQuY3BwICovOyB9OwogCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNM
VFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUJFNTEyQzBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggKi87IH07
CiAJCUUxQzI2NkQ4MTgzMTdBQjQwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUMyNjZENjE4MzE3QUI0MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzVNYWMuY3BwICovOyB9OwotCQlFMUMyNjZEQjE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzI2NkRBMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlw
dG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oICovOyB9OworCQlFMUMyNjZEQjE4MzE5
OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNh
dGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUMy
NjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhh
c2hEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQzI2NkRFMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlw
dG9LZXlEYXRhUlNBQ29tcG9uZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUMyNjZEQzE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0
YVJTQUNvbXBvbmVudHMuY3BwICovOyB9OwogCQlFMUMyNjZERjE4MzE5RjMxMDAzRjhCMzMgLyog
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzI2NkREMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlE
YXRhUlNBQ29tcG9uZW50cy5oICovOyB9OwogCQlFMUMzNjJFRjBFQUYyQUE5MDA3NDEwQkMgLyog
SlNXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFDMzYyRUQwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uaCAq
LzsgfTsKQEAgLTYwOTMsOSArNjA5Myw5IEBACiAJCUUxQzRERTZFMEVBNzVDNjUwMDIzQ0NENiAv
KiBBY3RpdmVET01PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5j
cHAgKi87IH07CiAJCUUxQzY1NzEyMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFDNjU3MTAxODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeS5jcHAgKi87IH07CiAJCUUxQzY1NzEzMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxQzY1NzExMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnkuaCAqLzsgfTsKLQkJRTFDNjU3MUYxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxQzY1NzFFMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zLmggKi87IH07CisJCUUxQzY1NzFGMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29y
aXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQzY1NzI1MTgxNkU2OUQwMDI1
NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcyNDE4MTZFNjlEMDAyNTZDREQgLyogQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oICovOyB9OwotCQlFMUM2NTcyNzE4MTZGOUZFMDAyNTZD
REQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MjYxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMuaCAqLzsgfTsKKwkJRTFDNjU3MjcxODE2RjlGRTAwMjU2Q0RE
IC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcyNjE4MTZGOUZFMDAyNTZDREQg
LyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFDOEJF
NUQwRThCRDE1QTAwNjRDQjdEIC8qIEpTV29ya2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzhCRTVDMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dv
cmtlci5jcHAgKi87IH07CiAJCUUxQzk0QUY5MTkxMzAzRjAwMEQ1QTg5MyAvKiBCbG9iUGFydC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDOTRBRjcx
OTEzMDNGMDAwRDVBODkzIC8qIEJsb2JQYXJ0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFDQTVDQkMwRThDRENBRjAwRThFRjkwIC8qIEpTV29y
a2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxQ0E1Q0JCMEU4Q0RDQUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgKi87IH07
CkBAIC02MTI1LDcgKzYxMjUsNyBAQAogCQlFMUZFMTM3MDE4M0ZFQ0YwMDA4OTJGMTMgLyogQ3J5
cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNkUxODNGRUNGMDAwODkyRjEzIC8qIENyeXB0b0FsZ29y
aXRobVJTQV9PQUVQTWFjLmNwcCAqLzsgfTsKIAkJRTFGRTEzNzQxODQwMkE2NzAwODkyRjEzIC8q
IENvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3MjE4NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRv
VXRpbGl0aWVzLmNwcCAqLzsgfTsKIAkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1v
bkNyeXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFGRTEzNzMxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGll
cy5oICovOyB9OwotCQlFMUZFMTM3NzE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFGRTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQ
YXJhbXMuaCAqLzsgfTsKKwkJRTFGRTEzNzcxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29y
aXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxn
b3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFGRTEzN0ExODREMjFC
QjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3ODE4NEQyMUJCMDA4OTJGMTMgLyog
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcCAqLzsgfTsKIAkJRTFGRTEzN0IxODREMjFCQjAwODky
RjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LVy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNzkxODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0Fs
Z29yaXRobUFFU19LVy5oICovOyB9OwogCQlFMUZFMTM3RTE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5
cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0
aG1BRVNfS1dNYWMuY3BwICovOyB9OwpAQCAtMTM1NDcsNyArMTM1NDcsNyBAQAogCQlFMTI1Rjgz
MzE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9LZXlITUFDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTEyNUY4MzQxODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5SE1BQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI1RjgzNzE4MjJGMUVCMDBEODRDRDkgLyogQ3J5cHRv
QWxnb3JpdGhtSE1BQ01hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTEyNUY4MzkxODI0MTA0
ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
RGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI1RjgzQjE4MjQx
MUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODNDMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0
b09wZXJhdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDcnlw
dG9PcGVyYXRpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODNG
MTgyNDI1M0EwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM2NDcsOSArMTM2NDcsOSBAQAogCQlFMTlB
QzNFQjE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVNIQTM4NC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMTlBQzNFQzE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRv
QWxnb3JpdGhtU0hBNTEyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxOUFDM0VEMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEE1MTIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxOUFDM0Y2MTgyNEU1RDEwMDM0OTQyNiAvKiBD
cnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxOUFDM0Y2MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0
aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMzRjgxODI1NjZGNzAwMzQ5NDI2IC8qIENyeXB0
b0tleU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9L
ZXlNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTlEQTI5QjE4MTg5QURE
MDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlw
dG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyog
Q29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTFBMzE2MkIxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJh
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0F0dHJpYnV0ZWRTdHJp
bmdFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFBMzE2MkMxMzRCQzMy
RDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNjgzLDE0ICsxMzY4MywxNCBAQAog
CQlFMUJBNjcxNjE3NDJCREUwMDBDMjAyNTEgLyogbGliV2ViQ29yZVRlc3RTaGltLmR5bGliICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliV2ViQ29yZVRlc3RT
aGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlFMUJBNjcx
OTE3NDJCRUY0MDBDMjAyNTEgLyogV2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGVzdFNoaW1MaWJyYXJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCQjg0QUMxODIyQ0E3NDAwNTI1MDQzIC8q
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTFCRDMzMTcxODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTFCRDMzMTgxODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUUxQkQzMzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQkQzMzFE
MTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxQkQzMzE3MTgyRDhEREQwMEMw
NUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKKwkJRTFCRDMzMTgx
ODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBDcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1
YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJRTFC
RDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJl
Y2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9
IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07CisJCUUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1S
c2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCRTUxMkIwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmlj
b2RlU29ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYU0xUVW5p
Y29kZVNvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJFNTEyQzBDRjZD
NTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFhTTFRVbmljb2RlU29ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFMUMyNjZENjE4MzE3QUI0MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
UGFyYW1zV2l0aEhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTFDMjY2RDYxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9
IHhjb2RlLmxhbmcuY3BwOyB9OworCQlFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVw
cmVjYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUMyNjZEQzE4MzE5RjMx
MDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUMyNjZERDE4MzE5RjMxMDAzRjhCMzMgLyog
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFDMzYyRUQwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXb3JrZXJMb2NhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3MDUsMTEgKzEzNzA1LDExIEBACiAJCUUxQzQx
NjE2MEY2NTYzMTgwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNERFNjgwRUE3NUMxRTAwMjND
Q0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBY3RpdmVET01PYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNERF
NkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY3RpdmVET01PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlFMUM2NTcxMDE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxQzY1NzEwMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3Bw
OyB9OwogCQlFMUM2NTcxMTE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUM2NTcxRTE4
MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxQzY1NzFFMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlw
dG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NTcyNDE4MTZFNjlEMDAyNTZDREQgLyogQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFDNjU3MjYxODE2RjlGRTAwMjU2
Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzZDRkMyMTc0NkQyOTMwMDdCODdB
MSAvKiBET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01X
aW5kb3dDb25zdHJ1Y3RvcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSAiPG5vbmU+IjsgfTsKIAkJRTFDOEJFNUMwRThCRDE1
QTAwNjRDQjdEIC8qIEpTV29ya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTV29ya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDOTRB
RjcxOTEzMDNGMDAwRDVBODkzIC8qIEJsb2JQYXJ0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJsb2JQYXJ0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzc0
MSw3ICsxMzc0MSw3IEBACiAJCUUxRkUxMzZFMTgzRkVDRjAwMDg5MkYxMyAvKiBDcnlwdG9BbGdv
cml0aG1SU0FfT0FFUE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxRkUxMzcyMTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uQ3J5cHRvVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRTEzNzMxODQwMkE2
NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb21tb25DcnlwdG9VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTFGRTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJz
YU9hZXBQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxn
b3JpdGhtUnNhT2FlcFBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZF
MTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJl
Y2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFGRTEzNzgxODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfS1cu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZFMTM3OTE4NEQyMUJCMDA4OTJG
MTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19LVy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUZFMTM3QzE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bUFFU19LV01hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjExNSwxNCAr
MjIxMTUsMTQgQEAKIAkJRTFDNjU3MTQxODE2MDE1RjAwMjU2Q0REIC8qIHBhcmFtZXRlcnMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUUxMjVGODM5MTgy
NDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCAqLywKLQkJCQlF
MTlBQzNGNjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1z
LmggKi8sCi0JCQkJRTE5REEyOUIxODE4OUFERDAwMDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUht
YWNLZXlQYXJhbXMuaCAqLywKLQkJCQlFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRv
QWxnb3JpdGhtSG1hY1BhcmFtcy5oICovLAotCQkJCUUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCAqLywKLQkJCQlFMUMyNjZEQTE4MzE5
OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCAqLywK
LQkJCQlFMUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtcy5oICovLAotCQkJCUUxQkQzMzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0
aG1Sc2FTc2FQYXJhbXMuaCAqLywKKwkJCQlFMTI1RjgzOTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oICovLAorCQkJCUUxOUFDM0Y2MTgy
NEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVk
LmggKi8sCisJCQkJRTE5REEyOUIxODE4OUFERDAwMDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUht
YWNLZXlQYXJhbXNEZXByZWNhdGVkLmggKi8sCisJCQkJRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0RE
IC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggKi8sCisJCQkJRTFCRDMz
MUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJl
Y2F0ZWQuaCAqLywKKwkJCQlFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmggKi8sCisJCQkJRTFGRTEzNzYxODRE
MUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgg
Ki8sCisJCQkJRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNz
YVBhcmFtc0RlcHJlY2F0ZWQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcGFyYW1ldGVyczsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMjI0Myw3ICsyMjI0Myw3IEBACiAJCQkJRTE3
MkFGNkIxODBGMjRDNjAwRkJBREI5IC8qIENyeXB0b0FsZ29yaXRobS5jcHAgKi8sCiAJCQkJRTE3
MkFGNkMxODBGMjRDNjAwRkJBREI5IC8qIENyeXB0b0FsZ29yaXRobS5oICovLAogCQkJCUUxQzY1
NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggKi8sCi0J
CQkJRTFDNjU3MjYxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMu
aCAqLywKKwkJCQlFMUM2NTcyNjE4MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQuaCAqLywKIAkJCQlFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyog
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovLAogCQkJCUUxRkY4RjZCMTgwREI1QkUwMDEz
MjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovLAogCQkJCUUxNTdBOEUyMTgxNzNB
M0EwMDlGODIxRCAvKiBDcnlwdG9LZXkuY3BwICovLApAQCAtMjQxNTEsMjEgKzI0MTUxLDIxIEBA
CiAJCQkJRTE3MkFGNkUxODBGMjRDNjAwRkJBREI5IC8qIENyeXB0b0FsZ29yaXRobS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEyNUY4NDIxODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRkUxMzdCMTg0RDIxQkIwMDg5MkYxMyAv
KiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxMjVGODNBMTgy
NDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUUxOUFDM0Y3MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNL
ZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxMjVGODNBMTgyNDEwNDgwMEQ4NENE
OSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMTlBQzNGNzE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNUY4MzIxODIyRjEx
QjAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUhNQUMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
OURBMjlDMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlFMUM2NTcxRjE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE5REEyOUMxODE4OUFERDAw
MDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUM2NTcxRjE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzY1NzI1MTgxNkU2
OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQlFMUM2NTcyNzE4MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFDNjU3MjcxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZG
OEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxRkUxMzZCMTgzRkUxQUIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1S
U0FfT0FFUC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyMzNGMEQxODVBM0UzQjAwOERGQUY1IC8q
IENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
QkQzMzFFMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMu
aCBpbiBIZWFkZXJzICovLAotCQkJCUUxQzI2NkRCMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9B
bGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFGRTEz
NzcxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUxQkQzMzFFMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUMyNjZE
QjE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hE
ZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUZFMTM3NzE4NEQxRTMzMDA4OTJGMTMg
LyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUxQkQzMzFBMTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFCRDMzMUMxODJEOEVFOTAwQzA1RDlG
IC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFC
RDMzMUMxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJl
Y2F0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjVGODJDMTgyMkNGRUMwMEQ4NENEOSAvKiBD
cnlwdG9BbGdvcml0aG1TSEExLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTlBQzNFRjE4MjREQzc5
MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTlBQzNGMTE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCmluZGV4IDAzYzgwMTNlYmExMTczZThjZWExMzhh
MDhlYjZiMGI0MGMxZDdjMjkuLjc2ZDVkY2RlMDlhM2Y5MDU0Nzg2NzExODIyOTRlMzNmN2ZjMmZh
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcApAQCAtMjgsMTUgKzI4LDE1IEBACiAKICNpZiBFTkFC
TEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
cy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oIgotI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
RGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0Rl
cHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVj
YXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJDcnlwdG9B
bGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FL
ZXlQYXJhbXNXaXRoSGFzaC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJh
bXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaCIKKyNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgiCisjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgogI2luY2x1ZGUgIkpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgpAQCAtMTIzLDcgKzEyMyw3IEBAIHN0YXRpYyBib29sIGdldEhhc2hB
bGdvcml0aG0oSlNEaWN0aW9uYXJ5JiBkaWN0aW9uYXJ5LCBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyCiAgICAgcmV0dXJuIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Z2V0QWxnb3JpdGht
SWRlbnRpZmllcihleGVjLCBoYXNoLCByZXN1bHQpOwogfQogCi1zdGF0aWMgUmVmUHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0NiY1BhcmFtcyhFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkPiBjcmVhdGVBZXNDYmNQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTM2LDcgKzEzNiw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzQ2JjUGFyYW1zKEV4ZWNTdGF0ZSogZXhl
YywgSlNWCiAgICAgSlNWYWx1ZSBpdiA9IGdldFByb3BlcnR5KGV4ZWMsIHZhbHVlLmdldE9iamVj
dCgpLCAiaXYiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAot
ICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXMpOworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXNEZXByZWNhdGVkKTsKIAogICAgIENyeXB0b09wZXJhdGlvbkRhdGEgaXZEYXRhOwog
ICAgIGF1dG8gc3VjY2VzcyA9IGNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZShleGVjLCBp
diwgaXZEYXRhKTsKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0NiY1BhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTVgog
ICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzS2V5R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkPiBjcmVhdGVBZXNLZXlHZW5QYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2NCw3ICsxNjQsNyBAQCBzdGF0aWMgUmVmUHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUFlc0tleUdlblBhcmFtcyhFeGVjU3Rh
dGUmIHN0YXRlLAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRvIHJl
c3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFy
YW1zRGVwcmVjYXRlZCk7CiAKICAgICBKU1ZhbHVlIGxlbmd0aFZhbHVlID0gZ2V0UHJvcGVydHko
JnN0YXRlLCB2YWx1ZS5nZXRPYmplY3QoKSwgImxlbmd0aCIpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIG51bGxwdHIpOwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyBSZWZQdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzS2V5R2VuUGFyYW1zKEV4ZWNTdGF0
ZSYgc3RhdGUsCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjUGFyYW1zKEV4ZWNTdGF0ZSYg
c3RhdGUsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVIbWFjUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODUsNyArMTg1LDcgQEAgc3RhdGljIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjUGFyYW1zKEV4ZWNTdGF0ZSYg
c3RhdGUsIEpTVmEKICAgICB9CiAKICAgICBKU0RpY3Rpb25hcnkganNEaWN0aW9uYXJ5KCZzdGF0
ZSwgdmFsdWUuZ2V0T2JqZWN0KCkpOwotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBD
cnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQpOwogCiAgICAgYXV0byBzdWNj
ZXNzID0gZ2V0SGFzaEFsZ29yaXRobShqc0RpY3Rpb25hcnksIHJlc3VsdC0+aGFzaCwgSGFzaFJl
cXVpcmVtZW50OjpSZXF1aXJlZCk7CiAgICAgQVNTRVJUX1VOVVNFRChzY29wZSwgc2NvcGUuZXhj
ZXB0aW9uKCkgfHwgc3VjY2Vzcyk7CkBAIC0xOTUsNyArMTk1LDcgQEAgc3RhdGljIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjUGFyYW1zKEV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTVmEKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi1zdGF0aWMgUmVmUHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhlY1N0YXRl
JiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwNiw3ICsyMDYsNyBAQCBzdGF0aWMg
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhl
Y1N0YXRlJiBzdGF0ZSwgSgogICAgIH0KIAogICAgIEpTRGljdGlvbmFyeSBqc0RpY3Rpb25hcnko
JnN0YXRlLCB2YWx1ZS5nZXRPYmplY3QoKSk7Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigq
bmV3IENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMpOworICAgIGF1dG8gcmVzdWx0ID0gYWRv
cHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZCk7CiAKICAg
ICBhdXRvIHN1Y2Nlc3MgPSBnZXRIYXNoQWxnb3JpdGhtKGpzRGljdGlvbmFyeSwgcmVzdWx0LT5o
YXNoLCBIYXNoUmVxdWlyZW1lbnQ6OlJlcXVpcmVkKTsKICAgICBBU1NFUlQoc2NvcGUuZXhjZXB0
aW9uKCkgfHwgc3VjY2Vzcyk7CkBAIC0yMTksNyArMjE5LDcgQEAgc3RhdGljIFJlZlB0cjxDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjS2V5UGFyYW1zKEV4ZWNTdGF0ZSYgc3Rh
dGUsIEoKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi1zdGF0aWMgUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYUtleUdlblBhcmFtcyhFeGVjU3RhdGUm
IHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUnNhS2V5R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FLZXlHZW5QYXJhbXMo
RXhlY1N0YXRlJiBzdGF0ZSwKICAgICB9CiAKICAgICBKU0RpY3Rpb25hcnkganNEaWN0aW9uYXJ5
KCZzdGF0ZSwgdmFsdWUuZ2V0T2JqZWN0KCkpOwotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYo
Km5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMpOworICAgIGF1dG8gcmVzdWx0ID0g
YWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkKTsK
IAogICAgIEpTVmFsdWUgbW9kdWx1c0xlbmd0aFZhbHVlID0gZ2V0UHJvcGVydHkoJnN0YXRlLCB2
YWx1ZS5nZXRPYmplY3QoKSwgIm1vZHVsdXNMZW5ndGgiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBudWxscHRyKTsKQEAgLTI1NCwxMyArMjU0LDEzIEBAIHN0YXRpYyBSZWZQdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhS2V5R2VuUGFyYW1zKEV4ZWNTdGF0
ZSYgc3RhdGUsCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FLZXlQYXJhbXNXaXRoSGFzaChF
eGVjU3RhdGUmLCBKU1ZhbHVlKQorc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUnNhS2V5UGFyYW1zV2l0aEhhc2goRXhlY1N0YXRlJiwgSlNW
YWx1ZSkKIHsKICAgICAvLyBXZWJDcnlwdG8gUlNBIGFsZ29yaXRobXMgY3VycmVudGx5IGRvIG5v
dCB0YWtlIGFueSBwYXJhbWV0ZXJzIHRvIGltcG9ydEtleS4KLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVk
KTsKIH0KIAotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVS
c2FPYWVwUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYU9hZXBQYXJh
bXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjcx
LDcgKzI3MSw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3Jl
YXRlUnNhT2FlcFBhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTCiAgICAgfQogCiAgICAgSlNEaWN0
aW9uYXJ5IGpzRGljdGlvbmFyeShleGVjLCB2YWx1ZS5nZXRPYmplY3QoKSk7Ci0gICAgYXV0byBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMpOworICAg
IGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1z
RGVwcmVjYXRlZCk7CiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBnZXRIYXNoQWxnb3JpdGhtKGpzRGlj
dGlvbmFyeSwgcmVzdWx0LT5oYXNoLCBIYXNoUmVxdWlyZW1lbnQ6OlJlcXVpcmVkKTsKICAgICBB
U1NFUlQoc2NvcGUuZXhjZXB0aW9uKCkgfHwgc3VjY2Vzcyk7CkBAIC0yOTYsNyArMjk2LDcgQEAg
c3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FPYWVwUGFy
YW1zKEV4ZWNTdGF0ZSogZXhlYywgSlMKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQog
Ci1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYVNzYVBh
cmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIFJlZlB0cjxDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUnNhU3NhUGFyYW1zKEV4ZWNT
dGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDcsNyArMzA3
LDcgQEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FT
c2FQYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlMKICAgICB9CiAKICAgICBKU0RpY3Rpb25hcnkg
anNEaWN0aW9uYXJ5KCZzdGF0ZSwgdmFsdWUuZ2V0T2JqZWN0KCkpOwotICAgIGF1dG8gcmVzdWx0
ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMpOworICAgIGF1dG8g
cmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNh
dGVkKTsKIAogICAgIGF1dG8gc3VjY2VzcyA9IGdldEhhc2hBbGdvcml0aG0oanNEaWN0aW9uYXJ5
LCByZXN1bHQtPmhhc2gsIEhhc2hSZXF1aXJlbWVudDo6UmVxdWlyZWQpOwogICAgIEFTU0VSVChz
Y29wZS5leGNlcHRpb24oKSB8fCBzdWNjZXNzKTsKQEAgLTMxNywxMSArMzE3LDExIEBAIHN0YXRp
YyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhU3NhUGFyYW1zKEV4
ZWNTdGF0ZSYgc3RhdGUsIEpTCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotUmVm
UHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKK1JlZlB0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5
OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHN3aXRjaCAo
YWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19Q
S0NTMV92MV81OgotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBU1NBX1BLQ1MxX3YxXzU6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FfUFNTOgogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgTk9UX1NVUFBPUlRFRF9F
UlIpOwpAQCAtMzQxLDcgKzM0MSw3IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBOT1RfU1VQUE9SVEVEX0VSUik7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKICAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkRIOgogICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6CkBAIC0zNTksMTEgKzM1OSwxMSBAQCBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRGVjcnlwdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JEZWNyeXB0KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsK
ICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtD
UzFfdjFfNToKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M6CiAg
ICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBOT1RfU1VQUE9SVEVEX0VSUik7CkBAIC0zODMs
NyArMzgzLDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIE5PVF9TVVBQT1JURURfRVJSKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAg
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOgogICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6REg6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpTSEFfMToKQEAgLTQwMSw3ICs0MDEsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yU2lnbihF
eGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1Zh
bHVlIHZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JTaWduKEV4ZWNT
dGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC00MzksNyArNDM5LDcgQEAgUmVm
UHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3Jl
YXRlUGFyYW1ldGVyc0ZvclZlcmlmeShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JWZXJpZnkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRo
bSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFf
NToKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGlnZXN0KEV4ZWNTdGF0
ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCitS
ZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChFeGVjU3RhdGUqIGV4ZWMs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQogewogICAgIHN3
aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpS
U0FFU19QS0NTMV92MV81OgpAQCAtNTAxLDcgKzUwMSw3IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRl
cnNGCiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OgogICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDoKICAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV81MTI6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpDT05DQVQ6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpIS0RGX0NUUjoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlBC
S0RGMjoKQEAgLTUxMiw3ICs1MTIsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXko
RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNW
YWx1ZSB2YWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVL
ZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTU0OSw3ICs1NDks
NyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1S
ZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlS2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCitSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3Jp
dGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92
MV81OgpAQCAtNTgxLDcgKzU4MSw3IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVCaXRzKEV4
ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFs
dWUpCitSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUJpdHMoRXhlY1N0
YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkK
IHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTYxMyw3ICs2MTMsNyBAQCBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9ySW1wb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCitSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0ZvckltcG9ydEtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGht
KSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81
OgpAQCAtNjI5LDExICs2MjksMTEgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ006CiAgICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0tXOgotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6SE1BQzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZUhtYWNQYXJhbXMoKmV4ZWMsIHZhbHVl
KTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkRIOgotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6CiAgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6U0hBXzI1NjoKQEAgLTY0OSw3ICs2NDksNyBAQCBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yRXhwb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBh
bGdvcml0aG0sIEpTVmFsdWUpCitSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4
cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3Jp
dGhtLCBKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNjY2LDcgKzY2Niw3
IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpBRVNfS1c6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFD
OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6REg6Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAg
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKICAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpTSEFfMjU2OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaAppbmRleCBiNWZhY2QwNWQxZDRkMjVj
NGFlMThhYTZiNGRmYzE2ZTk5N2U0ZTM1Li4zOGEzNGZkMGU5ODFiMjhjZGNjMzdkZWI1NjdjODlj
ODM3NGY0YmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaApAQCAtMzgsMjIgKzM4LDIyIEBAIGNsYXNzIEpT
VmFsdWU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkOwogCiBj
bGFzcyBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkgewogcHVibGljOgogICAgIHN0YXRpYyBi
b29sIGdldEFsZ29yaXRobUlkZW50aWZpZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXImKTsKIAotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoSlNDOjpFeGVj
U3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0
YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0Zv
ckRlY3J5cHQoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24oSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShKU0M6OkV4ZWNTdGF0ZSos
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJl
ZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGlnZXN0
KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVl
KTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBh
cmFtZXRlcnNGb3JHZW5lcmF0ZUtleShKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlS2V5KEpTQzo6RXhlY1N0YXRl
KiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMg
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJp
dmVCaXRzKEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpK
U1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNy
ZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShKU0M6OkV4ZWNT
dGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3Rh
dGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFy
YW1ldGVyc0ZvckVuY3J5cHQoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KEpTQzo6RXhlY1N0
YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0
aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJh
bWV0ZXJzRm9yU2lnbihKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIs
IEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShKU0M6OkV4ZWNTdGF0ZSos
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJl
ZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVy
c0ZvckRpZ2VzdChKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpT
Qzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5KEpTQzo6RXhlY1N0YXRl
KiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMg
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0
ZXJzRm9yRGVyaXZlS2V5KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyhKU0M6OkV4ZWNT
dGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3Rh
dGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFy
YW1ldGVyc0ZvckltcG9ydEtleShKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShKU0M6OkV4
ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uSldLLmNwcAppbmRleCA0ZGYzZDQ5NzFjMWQ0NDViZTQxMGRhMjQ1MGI3
NDgxYmM5MmE0N2NiLi4zZTFiMWVkMGFmYjI3N2RlYWI4ZDVjYTA4ZDI0N2Y5Yzc0OGFhODQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbkpXSy5jcHAKQEAgLTI5LDkgKzI5LDkgQEAKICNpZiBFTkFCTEUoU1VCVExF
X0NSWVBUTykKIAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobS5oIgotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFy
YW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCi0j
aW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCIKKyNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCIKICNpbmNs
dWRlICJDcnlwdG9LZXkuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIKICNpbmNsdWRlICJD
cnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgpAQCAtMTYyLDIyICsxNjIsMjIgQEAgSlNDcnlw
dG9LZXlTZXJpYWxpemF0aW9uSldLOjp+SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKCkKIHsK
IH0KIAotc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVITUFDUGFy
YW1ldGVycyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikKK3N0YXRpYyBS
ZWY8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZUhNQUNQYXJhbWV0
ZXJzKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaEZ1bmN0aW9uKQogewotICAgIGF1dG8g
aG1hY1BhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMp
OworICAgIGF1dG8gaG1hY1BhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRo
bUhtYWNQYXJhbXNEZXByZWNhdGVkKTsKICAgICBobWFjUGFyYW1ldGVycy0+aGFzaCA9IGhhc2hG
dW5jdGlvbjsKICAgICByZXR1cm4gV1RGTW92ZShobWFjUGFyYW1ldGVycyk7CiB9CiAKLXN0YXRp
YyBSZWY8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dp
dGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaEZ1bmN0aW9uKQorc3RhdGljIFJl
ZjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUlNBS2V5UGFyYW1l
dGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaEZ1bmN0aW9uKQogewot
ICAgIGF1dG8gcnNhS2V5UGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGht
UnNhS2V5UGFyYW1zV2l0aEhhc2gpOworICAgIGF1dG8gcnNhS2V5UGFyYW1ldGVycyA9IGFkb3B0
UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkKTsK
ICAgICByc2FLZXlQYXJhbWV0ZXJzLT5oYXNIYXNoID0gdHJ1ZTsKICAgICByc2FLZXlQYXJhbWV0
ZXJzLT5oYXNoID0gaGFzaEZ1bmN0aW9uOwogICAgIHJldHVybiBXVEZNb3ZlKHJzYUtleVBhcmFt
ZXRlcnMpOwogfQogCi1PcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBKU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qIHN1Z2dl
c3RlZEFsZ29yaXRobSwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyogc3VnZ2VzdGVkUGFyYW1l
dGVycykgY29uc3QKK09wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IEpTQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvbkpXSzo6cmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSogc3VnZ2Vz
dGVkQWxnb3JpdGhtLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCogc3VnZ2Vz
dGVkUGFyYW1ldGVycykgY29uc3QKIHsKICAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg5LDcgKzE4OSw3IEBA
IE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpX
Szo6cmVjb25jaWxlQWxnb3JpdGhtKENyCiAKICAgICBhdXRvJiBhbGdvcml0aG1SZWdpc3R5ID0g
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnNpbmdsZXRvbigpOwogICAgIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG0+IGFsZ29yaXRobTsKLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gcGFyYW1ldGVyczsKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQ+IHBhcmFtZXRlcnM7CiAgICAgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiSFMyNTYi
KSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkhNQUMpOwogICAgICAgICBwYXJhbWV0ZXJzID0gY3JlYXRlSE1B
Q1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1Nik7CkBAIC0yMTAs
MjggKzIxMCwyOCBAQCBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBKU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUFsZ29yaXRobShDcgogICAgICAgICBwYXJhbWV0ZXJz
ID0gY3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlNIQV81MTIpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSU0Ex
XzUiKSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzUpOwotICAgICAgICBwYXJhbWV0
ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCk7
CisgICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtl
eVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCk7CiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRo
bU5hbWUgPT0gIlJTQS1PQUVQIikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdp
c3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUCk7CiAgICAgICAg
IHBhcmFtZXRlcnMgPSBjcmVhdGVSU0FLZXlQYXJhbWV0ZXJzV2l0aEhhc2goQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6U0hBXzEpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1l
ID09ICJBMTI4Q0JDIikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNy
ZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDKTsKLSAgICAgICAgcGFyYW1l
dGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAg
IHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkKTsKICAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTE5MkNCQyIp
IHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJl
ZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICBwYXJhbWV0ZXJzID0g
YWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAg
fSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkEyNTZDQkMiKSB7CiAgICAgICAgIGFs
Z29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19DQkMpOwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIH0gZWxzZSBpZiAobV9q
d2tBbGdvcml0aG1OYW1lID09ICJBMTI4S1ciKSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGFsZ29y
aXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVyk7Ci0g
ICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMpOworICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUg
PT0gIkExOTJLVyIpIHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVh
dGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXKTsKLSAgICAgICAgcGFyYW1ldGVy
cyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHBh
cmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkKTsKICAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTI1NktXIikgewog
ICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpBRVNfS1cpOwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5l
dyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0
UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2NvcGUsICJVbnN1cHBvcnRlZCBK
V0sgYWxnb3JpdGhtICIgKyBtX2p3a0FsZ29yaXRobU5hbWUpOwogICAgICAgICByZXR1cm4gTnVs
bG9wdDsKQEAgLTI0NywxNCArMjQ3LDE0IEBAIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+
IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25jaWxlQWxnb3JpdGhtKENyCiAgICAg
ICAgIHJldHVybiBOdWxsb3B0OwogCiAgICAgaWYgKGFsZ29yaXRobS0+aWRlbnRpZmllcigpID09
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpIHsKLSAgICAgICAgaWYgKGRvd25jYXN0
PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXM+KCpwYXJhbWV0ZXJzKS5oYXNoICE9IGRvd25jYXN0
PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXM+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJzKS5oYXNoKQor
ICAgICAgICBpZiAoZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+
KCpwYXJhbWV0ZXJzKS5oYXNoICE9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNE
ZXByZWNhdGVkPigqc3VnZ2VzdGVkUGFyYW1ldGVycykuaGFzaCkKICAgICAgICAgICAgIHJldHVy
biBOdWxsb3B0OwogICAgICAgICByZXR1cm4gQ3J5cHRvQWxnb3JpdGhtUGFpciB7IHN1Z2dlc3Rl
ZEFsZ29yaXRobSwgc3VnZ2VzdGVkUGFyYW1ldGVycyB9OwogICAgIH0KICAgICBpZiAoYWxnb3Jp
dGhtLT5pZGVudGlmaWVyKCkgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BL
Q1MxX3YxXzUKICAgICAgICAgfHwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCkgPT0gQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVApIHsKLSAgICAgICAgQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2gmIHJzYUtleVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaD4oKnBhcmFtZXRlcnMpOwotICAgICAgICBDcnlwdG9B
bGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCYgc3VnZ2VzdGVkUlNBS2V5UGFyYW1ldGVycyA9
IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoPigqc3VnZ2VzdGVk
UGFyYW1ldGVycyk7CisgICAgICAgIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
RGVwcmVjYXRlZCYgcnNhS2V5UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJz
YUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZD4oKnBhcmFtZXRlcnMpOworICAgICAgICBDcnlw
dG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQmIHN1Z2dlc3RlZFJTQUtl
eVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFz
aERlcHJlY2F0ZWQ+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJzKTsKICAgICAgICAgQVNTRVJUKHJzYUtl
eVBhcmFtZXRlcnMuaGFzSGFzaCk7CiAgICAgICAgIGlmIChzdWdnZXN0ZWRSU0FLZXlQYXJhbWV0
ZXJzLmhhc0hhc2gpIHsKICAgICAgICAgICAgIGlmIChzdWdnZXN0ZWRSU0FLZXlQYXJhbWV0ZXJz
Lmhhc2ggIT0gcnNhS2V5UGFyYW1ldGVycy5oYXNoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAppbmRleCA5Njll
ZTBkODE5OTczNWU5OGQ0NGQ5ZWIzZjYyODliMjdmYjU3OWNmLi4zYjcxZTkyNTgzYzM4ZmNjYzdm
YTNkMmIxMjEwMjk3MjE3MDE0ZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaApAQCAtMzksNyArMzksNyBA
QCBjbGFzcyBKU09iamVjdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzOworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXk7CiBjbGFzcyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
czsKIApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBzZXJpYWxp
emUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENyeXB0b0tleSYpOwogCiBwcml2YXRlOgot
ICAgIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJlY29uY2lsZUFsZ29yaXRobShDcnlw
dG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlQWxnb3JpdGhtKENy
eXB0b0FsZ29yaXRobSosIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKikgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcmVjb25jaWxlRXh0cmFjdGFibGUoYm9vbCYpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmluZGV4IGQ0ZWI3YzYzNzRiODAyNDdiMWU2
ZTEzZDYzM2MyNmJiYWE1NjZhMjUuLjdkODBhODYxZWQ3YzhlOTRhMGRmNGFkYWUxMmI3M2VmZDEw
NDY1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUo
U1VCVExFX0NSWVBUTykKIAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobS5oIgotI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
LmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YS5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVNlcmlh
bGl6YXRpb25SYXcuaCIKQEAgLTQ1NCw3ICs0NTQsNyBAQCBKU1ZhbHVlIEpTV2ViS2l0U3VidGxl
Q3J5cHRvOjpnZW5lcmF0ZUtleShFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBwcm9taXNl
OwogfQogCi1zdGF0aWMgdm9pZCBpbXBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5
Rm9ybWF0IGtleUZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhLCBSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtPiBhbGdvcml0aG0sIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBw
YXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMsIENy
eXB0b0FsZ29yaXRobTo6S2V5Q2FsbGJhY2sgY2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9p
ZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaykKK3N0YXRpYyB2b2lkIGltcG9ydEtleShFeGVjU3Rh
dGUmIHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0LCBDcnlwdG9PcGVyYXRpb25EYXRh
IGRhdGEsIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGFsZ29yaXRobSwgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMsIENyeXB0b0FsZ29yaXRobTo6S2V5Q2FsbGJhY2sg
Y2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaykK
IHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTUzMyw3ICs1MzMsNyBAQCBKU1ZhbHVlIEpTV2ViS2l0U3VidGxl
Q3J5cHRvOjppbXBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKICAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07Ci0gICAg
UmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7CisgICAgUmVmUHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBwYXJhbWV0ZXJzOwogICAgIGlm
ICghc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikuaXNOdWxsKCkpIHsKICAgICAgICAgYWxnb3Jp
dGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpKTsKICAgICAgICAgQVNTRVJUKHNjb3BlLmV4Y2VwdGlvbigpIHx8IGFsZ29yaXRo
bSk7CkBAIC03NTIsNyArNzUyLDcgQEAgSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6dW53
cmFwS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
CiAgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gdW53cmFwcGVkS2V5QWxnb3JpdGhtOwotICAg
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiB1bndyYXBwZWRLZXlBbGdvcml0aG1Q
YXJhbWV0ZXJzOworICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZD4gdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyczsKICAgICBpZiAoIXN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDQpLmlzTnVsbCgpKSB7CiAgICAgICAgIHVud3JhcHBlZEtleUFsZ29yaXRo
bSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCg0KSk7CiAgICAgICAgIEFTU0VSVChzY29wZS5leGNlcHRpb24oKSB8fCB1bndyYXBwZWRL
ZXlBbGdvcml0aG0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0Fs
Z29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcApp
bmRleCA0NGNiYjAyOWU4Nzc2ZDc2NjA4MWQ3N2QwZGQ0MjYzY2ZlMTg1MDY1Li4xNDRlN2ZmMDdk
NzdmZTgzODQwYzExMmYzYjNhNjY3YzI0NDMyOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtLmNwcApAQCAtNDAsNTcgKzQwLDU3IEBAIENyeXB0b0FsZ29yaXRobTo6
fkNyeXB0b0FsZ29yaXRobSgpCiB7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjplbmNyeXB0
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYs
IEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG06OmVuY3J5cHQoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9
CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwg
VmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBDcnlwdG9BbGdvcml0aG06OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGht
OjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG06OnNpZ24oY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7
CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjp2ZXJpZnkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYs
IEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG06OmRp
Z2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9y
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVj
ID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpnZW5lcmF0
ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCwgQ3J5cHRvS2V5VXNh
Z2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wsIENyeXB0b0tleVVzYWdlLCBLZXlPcktl
eVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG06OmRl
cml2ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5
JiwgQ3J5cHRvQWxnb3JpdGhtKiwgYm9vbCwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
OjpkZXJpdmVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9LZXkmLCBDcnlwdG9BbGdvcml0aG0qLCBib29sLCBDcnlwdG9LZXlVc2FnZSwg
S2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkZXJp
dmVCaXRzKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkm
LCB1bnNpZ25lZCBsb25nLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6ZGVyaXZlQml0cyhjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIHVuc2ln
bmVkIGxvbmcsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENyeXB0b0Fs
Z29yaXRobTo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25z
dCBDcnlwdG9LZXlEYXRhJiwgYm9vbCwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpp
bXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9LZXlEYXRhJiwgYm9vbCwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JU
RURfRVJSOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobTo6ZW5jcnlwdEZvcldyYXBLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5
JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYg
ZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6ZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGVuY3J5cHQocGFyYW1ldGVycywga2V5LCBkYXRhLCBXVEZNb3ZlKGNhbGxi
YWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtOjpkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG06
OmRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGRlY3J5cHQocGFy
YW1ldGVycywga2V5LCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2Fs
bGJhY2spLCBlYyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRv
QWxnb3JpdGhtLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKaW5k
ZXggOGJhODNiM2UxYWUxZDQyYzRiYWQwMGFhMmUwNzk3NDdlNzFhNjQ5Yi4uNjhjYzIzNTAwNThj
ZTRkZjczYzQ0ZTFlNWJlOTE4YWQwNGM3Zjg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Dcnlw
dG9BbGdvcml0aG0uaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5
cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM7CitjbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDsKIGNsYXNzIENy
eXB0b0tleTsKIGNsYXNzIENyeXB0b0tleVBhaXI7CiBjbGFzcyBDcnlwdG9LZXlEYXRhOwpAQCAt
NjAsMTkgKzYwLDE5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChj
b25zdCBWZWN0b3I8dWludDhfdD4mKT4gVmVjdG9yQ2FsbGJhY2s7CiAgICAgdHlwZWRlZiBzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gVm9pZENhbGxiYWNrOwogCi0gICAgdmlydHVhbCB2b2lkIGVuY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVj
cnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5Jiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBz
aWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIHZl
cmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5Jiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZ2VzdChjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3Rv
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFp
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkZXJpdmVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYgYmFzZUtleSwgQ3J5cHRvQWxnb3JpdGhtKiBkZXJp
dmVkS2V5VHlwZSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAg
IHZpcnR1YWwgdm9pZCBkZXJpdmVCaXRzKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
LCBjb25zdCBDcnlwdG9LZXkmIGJhc2VLZXksIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBWZWN0b3JD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBkZWNyeXB0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5Jiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBz
aWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5
cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1
YWwgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
LCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGRp
Z2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lk
IGRlcml2ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNv
bnN0IENyeXB0b0tleSYgYmFzZUtleSwgQ3J5cHRvQWxnb3JpdGhtKiBkZXJpdmVkS2V5VHlwZSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9p
ZCBkZXJpdmVCaXRzKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwg
Y29uc3QgQ3J5cHRvS2V5JiBiYXNlS2V5LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7
CisgICAgdmlydHVhbCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAvLyBUaGVzZSBhcmUgb25seSBkaWZmZXJlbnQg
ZnJvbSBlbmNyeXB0L2RlY3J5cHQgYmVjYXVzZSBzb21lIGFsZ29yaXRobXMgbWF5IG5vdCBleHBv
c2UgZW5jcnlwdC9kZWNyeXB0LgotICAgIHZpcnR1YWwgdm9pZCBlbmNyeXB0Rm9yV3JhcEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkZWNyeXB0
Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlw
dG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVh
bCB2b2lkIGVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYs
IFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ3J5
cHRvQWxnb3JpdGhtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzcwM2U0NmI3
MmI5MzljZjgyZWE1OTliNmVlZDdjYTAwZDZkMzJkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc19oCi0jZGVmaW5lIENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNfaAotCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+Ci0KLSNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIDogcHVibGljIFJlZkNvdW50ZWQ8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMpOwotcHVibGljOgotICAgIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMoKSB7
IH0KLSAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKCkgeyB9Ci0KLSAgICBl
bnVtIGNsYXNzIENsYXNzIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgQWVzQ2JjUGFyYW1zLAot
ICAgICAgICBBZXNLZXlHZW5QYXJhbXMsCi0gICAgICAgIEhtYWNLZXlQYXJhbXMsCi0gICAgICAg
IEhtYWNQYXJhbXMsCi0gICAgICAgIFJzYUtleUdlblBhcmFtcywKLSAgICAgICAgUnNhS2V5UGFy
YW1zV2l0aEhhc2gsCi0gICAgICAgIFJzYU9hZXBQYXJhbXMsCi0gICAgICAgIFJzYVNzYVBhcmFt
cwotICAgIH07Ci0gICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCB7IHJl
dHVybiBDbGFzczo6Tm9uZTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZGVm
aW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKFRv
Q2xhc3NOYW1lKSBcCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobSMjVG9DbGFzc05hbWUpIFwKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3Qg
V2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycykgeyByZXR1cm4g
cGFyYW1ldGVycy5wYXJhbWV0ZXJzQ2xhc3MoKSA9PSBXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzOjpDbGFzczo6VG9DbGFzc05hbWU7IH0gXAotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19FTkQoKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFkMDYxOWQyNjQ0N2I4M2UwODY4N2VjMjhkNGQ5MGZlYjUxMmNhZTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkIDogcHVibGljIFJlZkNvdW50ZWQ8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQ+IHsKK3B1YmxpYzoKKyAgICBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCgpIHsgfQorICAgIHZpcnR1YWwgfkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkKCkgeyB9CisKKyAgICBlbnVtIGNsYXNzIENsYXNzIHsKKyAgICAgICAgTm9uZSwKKyAgICAg
ICAgQWVzQ2JjUGFyYW1zLAorICAgICAgICBBZXNLZXlHZW5QYXJhbXMsCisgICAgICAgIEhtYWNL
ZXlQYXJhbXMsCisgICAgICAgIEhtYWNQYXJhbXMsCisgICAgICAgIFJzYUtleUdlblBhcmFtcywK
KyAgICAgICAgUnNhS2V5UGFyYW1zV2l0aEhhc2gsCisgICAgICAgIFJzYU9hZXBQYXJhbXMsCisg
ICAgICAgIFJzYVNzYVBhcmFtcworICAgIH07CisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJz
Q2xhc3MoKSBjb25zdCB7IHJldHVybiBDbGFzczo6Tm9uZTsgfQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09S
SVRITV9QQVJBTUVURVJTKFRvQ2xhc3NOYW1lKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JF
R0lOKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobSMjVG9DbGFzc05hbWUjI0RlcHJlY2F0ZWQpIFwK
KyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMpIHsgcmV0dXJuIHBhcmFtZXRlcnMucGFyYW1l
dGVyc0NsYXNzKCkgPT0gV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQ6OkNsYXNzOjpUb0NsYXNzTmFtZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgp
CisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlTZXJpYWxpemF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oCmluZGV4IGFkMDY0MDJkZDQ3MTZkNTk5NWRh
OWRlOTI5Y2FmNTYwNTMwYTRjOTIuLmI1MTJkNDk0Y2Y2ZGY5ZGNlZDA4MzMxNmE2Yjk2ZGIzZDJi
MWI2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlTZXJpYWxp
emF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRp
b24uaApAQCAtMzYsMTQgKzM2LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENy
eXB0b0FsZ29yaXRobTsKLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM7CitjbGFzcyBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDsKIGNsYXNzIENyeXB0b0tleURhdGE7
CiAKIHR5cGVkZWYgc3RkOjpwYWlyPGNvbnN0IHVpbnQ4X3QqLCBzaXplX3Q+IENyeXB0b09wZXJh
dGlvbkRhdGE7CiAKIHN0cnVjdCBDcnlwdG9BbGdvcml0aG1QYWlyIHsKICAgICBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IHBhcmFtZXRlcnM7CisgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkPiBwYXJhbWV0ZXJzOwogfTsKIAogY2xhc3MgQ3J5cHRvS2V5U2VyaWFsaXphdGlv
biB7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DcnlwdG9LZXlTZXJp
YWxpemF0aW9uKCkgeyB9CiAKICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHN1Z2dlc3RlZCBhbGdv
cml0aG0gd2FzIG5vdCBjb21wYXRpYmxlIHdpdGggb25lIHN0b3JlZCBpbiB0aGUgc2VyaWFsaXph
dGlvbi4KLSAgICB2aXJ0dWFsIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJlY29uY2ls
ZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKikg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVj
b25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSosIENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkKikgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY29uY2lsZVVz
YWdlcyhDcnlwdG9LZXlVc2FnZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb25j
aWxlRXh0cmFjdGFibGUoYm9vbCYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKaW5k
ZXggMDg5MDg2MzYwNjRkNDZkNjhlNjVlYmIwNDBiZGRiMmEzOWFhYjA4Yy4uOGY0MTlkYzQ1ODM2
MjhiN2JlZGYzNTM1ZmRiNzE4YWU3NDljOTA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKQEAg
LTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
QWVzS2V5R2VuUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
RGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0Rl
cHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIKICNpbmNsdWRlICJDcnlwdG9L
ZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTU2
LDcgKzU2LDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1BRVNf
Q0JDOjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi1i
b29sIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0Citi
b29sIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYga2V5
KSBjb25zdAogewogICAgIGlmIChrZXkuYWxnb3JpdGhtSWRlbnRpZmllcigpICE9IHNfaWRlbnRp
ZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjUsOSArNjUsOSBAQCBib29sIENyeXB0
b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtQWVzQ2JjUGFyYQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRo
bUFFU19DQkM6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRh
dGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmVu
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0Ni
Y1BhcmFtcyYgYWVzQ0JDUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0Ni
Y1BhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFy
YW1zRGVwcmVjYXRlZCYgYWVzQ0JDUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRo
bUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlBbGdv
cml0aG1NYXRjaGVzKGFlc0NCQ1BhcmFtZXRlcnMsIGtleSkpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKQEAgLTc3LDkgKzc3LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNf
Q0JDOjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMK
ICAgICBwbGF0Zm9ybUVuY3J5cHQoYWVzQ0JDUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5
QUVTPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJh
Y2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZGVjcnlwdChjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkm
IGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBr
ZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiBhZXNDQkNQYXJhbWV0
ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zPihwYXJhbWV0ZXJzKTsK
KyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiBhZXNDQkNQ
YXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRl
ZD4ocGFyYW1ldGVycyk7CiAKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoYWVzQ0JDUGFy
YW1ldGVycywga2V5KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtODks
OSArODksOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmRlY3J5cHQoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycwogICAgIHBsYXRmb3JtRGVjcnlwdChh
ZXNDQkNQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleSksIGRhdGEsIFdURk1v
dmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBD
cnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1
c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19D
QkM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtl
eU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zJiBhZXNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNLZXlH
ZW5QYXJhbXNEZXByZWNhdGVkJiBhZXNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3Jp
dGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBSZWZQdHI8
Q3J5cHRvS2V5QUVTPiByZXN1bHQgPSBDcnlwdG9LZXlBRVM6OmdlbmVyYXRlKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19DQkMsIGFlc1BhcmFtZXRlcnMubGVuZ3RoLCBleHRyYWN0YWJs
ZSwgdXNhZ2VzKTsKICAgICBpZiAoIXJlc3VsdCkgewpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQg
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1lCiAgICAgY2FsbGJhY2socmVzdWx0LmdldCgpLCBudWxscHRyKTsK
IH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wg
ZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRo
bUFFU19DQkM6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFpczxDcnlwdG9LZXlEYXRhT2N0ZXRT
ZXF1ZW5jZT4oa2V5RGF0YSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19DQkMuaAppbmRleCBhNjFiYTNhMzliOWJhNGMwY2EzMGZiNzhlNDg2ZmRjNzJjZjI2
NTA0Li42OWNlY2NhM2ZkZWFlMjM4NWNiOTVmY2E3YWQ0M2MzNWYzYTBhNGU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQy5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zOworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQWVz
Q2JjUGFyYW1zRGVwcmVjYXRlZDsKIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAtNDQs
MTggKzQ0LDE4IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkZWNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZW5lcmF0ZUtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW1wb3J0S2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9v
bCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0
IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
LCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQygpOwogICAgIHZpcnR1YWwgfkNyeXB0b0Fs
Z29yaXRobUFFU19DQkMoKTsKIAotICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBD
cnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNvbnN0IENy
eXB0b0tleSYpIGNvbnN0OwotICAgIHZvaWQgcGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobUFlc0NiY1BhcmFtcyYsIGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHBsYXRmb3JtRGVjcnlwdChjb25zdCBD
cnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBrZXlBbGdvcml0aG1NYXRj
aGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRo
bVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYpIGNvbnN0OworICAgIHZvaWQgcGxhdGZvcm1F
bmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9LZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdm9pZCBwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCmluZGV4IGMxNzc0NDM0
ZWM2NzI3NmVlN2VlNzM3NDQ2MjJlYmE3YWQ2OGU4N2YuLmNlZTU3YzVlNTQ3NTc0NjA2NGQwZDRm
ZGZlNTQ0ZjZkYTkyZjgwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcApAQCAtMjgsNyArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1BZXNLZXlHZW5QYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5Q
YXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAi
Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjprZXlBbGdvcml0
aG1NYXRjaGVzKGNvbnN0IENyeXB0b0tleSYga2V5KSBjb25zdAogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6ZW5jcnlwdEZvcldyYXBLZXkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlw
dG9BbGdvcml0aG1BRVNfS1c6OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFr
ZXlBbGdvcml0aG1NYXRjaGVzKGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VS
UjsKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmVuY3J5cHRG
b3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLAogICAgIHBsYXRmb3Jt
RW5jcnlwdChkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJh
Y2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdv
cml0aG1BRVNfS1c6OmRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6
OmRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
ZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNo
ZXMoa2V5KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtODQsOSArODQs
OSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6ZGVjcnlwdEZvclVud3JhcEtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJgogICAgIHBsYXRmb3JtRGVjcnlwdChkb3duY2Fz
dDxDcnlwdG9LZXlBRVM+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZh
aWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6Omdl
bmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpnZW5lcmF0ZUtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0
YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewot
ICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcyYgYWVzUGFyYW1ldGVycyA9
IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcz4ocGFyYW1ldGVycyk7Cisg
ICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZCYgYWVzUGFy
YW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0
ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgUmVmUHRyPENyeXB0b0tleUFFUz4gcmVzdWx0ID0gQ3J5
cHRvS2V5QUVTOjpnZW5lcmF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1csIGFl
c1BhcmFtZXRlcnMubGVuZ3RoLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKICAgICBpZiAoIXJlc3Vs
dCkgewpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6Z2VuZXJh
dGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldAogICAgIGNhbGxi
YWNrKHJlc3VsdC5nZXQoKSwgbnVsbHB0cik7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENy
eXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVz
YWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5
RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBp
ZiAoIWlzPENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihrZXlEYXRhKSkgewogICAgICAgICBl
YyA9IE5PVF9TVVBQT1JURURfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAppbmRleCA1MTQzY2I5Yzg4NWIx
MDRlZjNmNDk4NDEwNDAwYmE4MGViNDMzNTFiLi43NjU3NmI3YjM3MGI2MzIwM2JkNGQ5MTQzOWJm
YjRjNzUyODFjOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaApAQCAtNDMsMTAgKzQzLDEwIEBAIHB1Ymxp
YzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgdm9pZCBlbmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGVjcnlwdEZvclVud3JhcEtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2VuZXJhdGVL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGltcG9ydEtl
eShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVy
YXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBl
eHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
LCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1BRVNfS1co
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUhNQUMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtSE1BQy5jcHAKaW5kZXggOTZkOWRhMzE5NWY5NjE0NzgyYzNmZjQ2ZmIzNzQ3Y2Ni
OTExYmZmZi4uNzA0Mjc1ZjhiMTgxMjhjYWY0ZjU2YTRlNWRhNjg4NzI3NGJjMjAwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1B
Qy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtSE1BQy5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oIgotI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Uu
aCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgpAQCAtNTYsNyArNTYsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29y
aXRobUhNQUM6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9
CiAKLWJvb2wgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBD
cnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtl
eSkgY29uc3QKK2Jvb2wgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhj
b25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29u
c3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0CiB7CiAgICAgaWYgKGtleS5hbGdvcml0aG1JZGVudGlm
aWVyKCkgIT0gc19pZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC02Nyw5ICs2
Nyw5IEBAIGJvb2wgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25z
dCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
SE1BQzo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
IGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtcyYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZCYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBpZiAoIWtleUFsZ29yaXRobU1h
dGNoZXMoaG1hY1BhcmFtZXRlcnMsIGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVE
X0VSUjsKQEAgLTc5LDkgKzc5LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnMKICAgICBwbGF0
Zm9ybVNpZ24oaG1hY1BhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleUhNQUM+KGtleSksIGRh
dGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0K
IAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGV4cGVjdGVkU2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6
dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhw
ZWN0ZWRTaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxs
YmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQ
YXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcz4ocGFyYW1ldGVy
cyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIGhtYWNQ
YXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+
KHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGhtYWNQYXJhbWV0
ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC05MSw5ICs5
MSw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvCiAgICAgcGxhdGZvcm1WZXJpZnkoaG1hY1Bh
cmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleUhNQUM+KGtleSksIGV4cGVjdGVkU2lnbmF0dXJl
LCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdv
cml0aG1ITUFDOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNh
Z2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRo
bUhtYWNLZXlQYXJhbXMmIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGht
SG1hY0tleVBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1h
Y0tleVBhcmFtc0RlcHJlY2F0ZWQmIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxn
b3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgUmVmUHRy
PENyeXB0b0tleUhNQUM+IHJlc3VsdCA9IENyeXB0b0tleUhNQUM6OmdlbmVyYXRlKGhtYWNQYXJh
bWV0ZXJzLmhhc0xlbmd0aCA/IGhtYWNQYXJhbWV0ZXJzLmxlbmd0aCA6IDAsIGhtYWNQYXJhbWV0
ZXJzLmhhc2gsIGV4dHJhY3RhYmxlLCB1c2FnZXMpOwogICAgIGlmICghcmVzdWx0KSB7CkBAIC0x
MDQsNyArMTA0LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpnZW5lcmF0ZUtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXIKICAgICBjYWxsYmFjayhyZXN1
bHQuZ2V0KCksIG51bGxwdHIpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OmltcG9y
dEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBD
cnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1
c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBL
ZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgaWYgKCFpczxDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZT4oa2V5RGF0YSkpIHsK
ICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lk
IENyeXB0b0FsZ29yaXRobUhNQUM6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLAogICAgIH0KICAgICBjb25zdCBDcnlwdG9LZXlEYXRhT2N0ZXRT
ZXF1ZW5jZSYga2V5RGF0YU9jdGV0U2VxdWVuY2UgPSBkb3duY2FzdDxDcnlwdG9LZXlEYXRhT2N0
ZXRTZXF1ZW5jZT4oa2V5RGF0YSk7CiAKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFy
YW1zJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXM+
KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNh
dGVkJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNE
ZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlITUFDPiByZXN1
bHQgPSBDcnlwdG9LZXlITUFDOjpjcmVhdGUoa2V5RGF0YU9jdGV0U2VxdWVuY2Uub2N0ZXRTZXF1
ZW5jZSgpLCBobWFjUGFyYW1ldGVycy5oYXNoLCBleHRyYWN0YWJsZSwgdXNhZ2UpOwogICAgIGNh
bGxiYWNrKCpyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCmluZGV4IDMxNzU0NjA3YjA4NDMyZjZkNjY5YmM2
ZWVkZGYzYzFjYTQ3MjBjNjUuLjViNjdlMmRmMDJlZmI5YmFkYmQ4OTQ4MmJlMjEwMjE3NDljNmYz
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUhNQUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zOworY2xhc3MgQ3J5cHRvQWxnb3Jp
dGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXlITUFDOwogCiBjbGFzcyBD
cnlwdG9BbGdvcml0aG1ITUFDIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CkBAIC00
NCwxOCArNDQsMTggQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNpZ24oY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIHZlcmlmeShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBC
b29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5
UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgc2lnbihjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcmlmeShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tl
eSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgaW1wb3J0
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5
cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1ITUFDKCk7CiAgICAgdmlydHVh
bCB+Q3J5cHRvQWxnb3JpdGhtSE1BQygpOwogCi0gICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVz
KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNv
bnN0IENyeXB0b0tleSYpIGNvbnN0OwotICAgIHZvaWQgcGxhdGZvcm1TaWduKGNvbnN0IENyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlITUFDJiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgcGxhdGZvcm1WZXJpZnkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYsIGNvbnN0IENyeXB0b0tleUhNQUMmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
IGRhdGEsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleSYpIGNvbnN0OworICAgIHZvaWQgcGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5SE1BQyYsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHBsYXRmb3JtVmVyaWZ5
KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRv
S2V5SE1BQyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNS5jcHAKaW5kZXggZmVmYWEzNWViOTljNDE2ZmJjYjcwYTQ3MjllMDYzMzFm
OGE5MjJhNy4uZGI1YmU0NmU4ZWM2MTRlMmY2MjA3OGVjZTg2N2Y2MWJiYWVjMjlhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAog
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2guaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNh
dGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXBy
ZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCIKICNpbmNs
dWRlICJDcnlwdG9LZXlSU0EuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC02NSw3
ICs2NSw3IEBAIGJvb2wgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6a2V5QWxnb3Jp
dGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9LZXkmIGtleSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjplbmNyeXB0KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgha2V5QWxn
b3JpdGhtTWF0Y2hlcyhrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBA
IC03NSw3ICs3NSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6ZW5j
cnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwKICAgICBwbGF0Zm9ybUVuY3J5
cHQoZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwg
V1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNTo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3Yx
XzU6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVj
dG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoa2V5KSkg
ewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtODUsOSArODUsOSBAQCB2b2lk
IENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsCiAgICAgcGxhdGZvcm1EZWNyeXB0KGRvd25jYXN0PENyeXB0b0tl
eVJTQT4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxi
YWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6Omdl
bmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMmIHJzYVBh
cmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXM+KHBhcmFt
ZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0
ZWQmIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJh
bXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGF1dG8ga2V5UGFpckNhbGxiYWNrID0g
W2NhbGxiYWNrXShDcnlwdG9LZXlQYWlyJiBwYWlyKSB7CiAgICAgICAgIGNhbGxiYWNrKG51bGxw
dHIsICZwYWlyKTsKQEAgLTk2LDkgKzk2LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19Q
S0NTMV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXIKICAg
ICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpS
U0FFU19QS0NTMV92MV81LCByc2FQYXJhbWV0ZXJzLmhhc2gsIHJzYVBhcmFtZXRlcnMuaGFzSGFz
aCwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9u
ZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBXVEZNb3ZlKGtleVBhaXJDYWxsYmFjayksIFdURk1v
dmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtD
UzFfdjFfNTo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1S
U0FFU19QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewot
ICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoJiByc2FQYXJhbWV0
ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2g+KHBhcmFt
ZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVw
cmVjYXRlZCYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBh
cmFtc1dpdGhIYXNoRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAgICAgY29uc3QgQ3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHMmIHJzYUNvbXBvbmVudHMgPSBkb3duY2FzdDxDcnlwdG9LZXlEYXRh
UlNBQ29tcG9uZW50cz4oa2V5RGF0YSk7CiAKICAgICBSZWZQdHI8Q3J5cHRvS2V5UlNBPiByZXN1
bHQgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FF
U19QS0NTMV92MV81LCByc2FQYXJhbWV0ZXJzLmhhc2gsIHJzYVBhcmFtZXRlcnMuaGFzSGFzaCwg
cnNhQ29tcG9uZW50cywgZXh0cmFjdGFibGUsIHVzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVT
X1BLQ1MxX3YxXzUuaAppbmRleCBlMWQ4ZTMzNTc1NTQxOGUwNmFmMzIyMGIzMDZlOWY4ZTcwZjQ1
YWI0Li44ZWEzYjczMWNlOWIxYjJhNWNlYTJkZDY3NWUyNzFlZGUxM2JmZWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19Q
S0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCkBAIC00NCwxMCArNDQsMTAgQEAgcHVibGljOgog
CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIGVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYs
IGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWly
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGVjcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tl
eSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0
aG1SU0FFU19QS0NTMV92MV81KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NS5jcHAKaW5kZXggYWIxNTZjZjQzN2UwOWRmZmU2MDE2ZmFjY2U5MDUxMmRjNzM2ZGE1Ny4uYjNm
ODYyZWI3NmVhNDQxMDUyYWMzNDgzNjVhZWNkNGZjZGIxYWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcApAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJh
bXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oIgot
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9B
bGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCkBAIC01Nyw3ICs1Nyw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmlkZW50aWZpZXIoKSBjb25z
dAogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLWJvb2wgQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzU6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UnNhU3NhUGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSkg
Y29uc3QKK2Jvb2wgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmtleUFsZ29yaXRo
bU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgYWxn
b3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0CiB7CiAgICAgaWYg
KGtleS5hbGdvcml0aG1JZGVudGlmaWVyKCkgIT0gc19pZGVudGlmaWVyKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC02OSw5ICs2OSw5IEBAIGJvb2wgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzU6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6
OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3Qg
Q3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNh
bGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzaWdu
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVj
dG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJh
bXMmIHJzYVNTQVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJh
bXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0Rl
cHJlY2F0ZWQmIHJzYVNTQVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxnb3JpdGht
TWF0Y2hlcyhyc2FTU0FQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBP
UlRFRF9FUlI7CkBAIC04MSw5ICs4MSw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzU6OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyCiAgICAg
cGxhdGZvcm1TaWduKHJzYVNTQVBhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleVJTQT4oa2V5
KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMp
OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojp2ZXJpZnkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5
JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81Ojp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
IGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtcyYgcnNhU1NBUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3Nh
UGFyYW1zRGVwcmVjYXRlZCYgcnNhU1NBUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKCFrZXlB
bGdvcml0aG1NYXRjaGVzKHJzYVNTQVBhcmFtZXRlcnMsIGtleSkpIHsKICAgICAgICAgZWMgPSBO
T1RfU1VQUE9SVEVEX0VSUjsKQEAgLTkzLDkgKzkzLDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
IHAKICAgICBwbGF0Zm9ybVZlcmlmeShyc2FTU0FQYXJhbWV0ZXJzLCAgZG93bmNhc3Q8Q3J5cHRv
S2V5UlNBPihrZXkpLCBzaWduYXR1cmUsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3Zl
KGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYg
cGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlP
cktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
IHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5
T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlH
ZW5QYXJhbXMmIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlH
ZW5QYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtc0RlcHJlY2F0ZWQmIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGF1dG8ga2V5
UGFpckNhbGxiYWNrID0gW2NhbGxiYWNrXShDcnlwdG9LZXlQYWlyJiBwYWlyKSB7CiAgICAgICAg
IGNhbGxiYWNrKG51bGxwdHIsICZwYWlyKTsKQEAgLTEwNCw5ICsxMDQsOSBAQCB2b2lkIENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZQogICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81LCByc2FQYXJhbWV0ZXJzLmhhc2gsIHJz
YVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJh
bWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBXVEZNb3ZlKGtleVBh
aXJDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3Zv
aWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmltcG9ydEtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRv
S2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2Us
IEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1z
V2l0aEhhc2gmIHJzYUtleVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FL
ZXlQYXJhbXNXaXRoSGFzaD4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGht
UnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkJiByc2FLZXlQYXJhbWV0ZXJzID0gZG93bmNh
c3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkPihwYXJhbWV0
ZXJzKTsKICAgICBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgcnNhQ29tcG9uZW50
cyA9IGRvd25jYXN0PENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzPihrZXlEYXRhKTsKIAogICAg
IFJlZlB0cjxDcnlwdG9LZXlSU0E+IHJlc3VsdCA9IENyeXB0b0tleVJTQTo6Y3JlYXRlKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81LCByc2FLZXlQYXJhbWV0ZXJz
Lmhhc2gsIHJzYUtleVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhQ29tcG9uZW50cywgZXh0cmFjdGFi
bGUsIHVzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCmluZGV4IGRj
MmJmZDY5NWY1MDZkNTdmNjFlNGFiN2QwY2EwYzYzOWUzYjQ3NGEuLmQwNmY3NmJkYmNlNGMxNzhk
ZWM3MjAzODNkMDcyMWY1ZTNhNGE4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobVJzYVNz
YVBhcmFtc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7
CkBAIC00NCwxOCArNDQsMTggQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNpZ24oY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIHZlcmlmeShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBk
YXRhLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtl
eU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJs
ZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgc2lnbihjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHZl
cmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRyYWN0
YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQg
aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNSgpOwogICAgIHZpcnR1YWwgfkNyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81KCk7
CiAKLSAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsK
LSAgICB2b2lkIHBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMm
LCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9y
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdm9pZCBwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQ
YXJhbXMmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBz
aWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBi
b29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
RGVwcmVjYXRlZCYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7
CisgICAgdm9pZCBwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
LCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKaW5kZXggNWIwOTk0ZDI1
MWE5NDMzZTZkOTU3ZWY1ODRlMGI3NTUzZmMwMDE3Yi4uMjI1NTkxYzg4NDc0NTYyZmFiOTczZjEw
NzJmNmZjYWNiMmYyNTcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcApAQCAtMjgsOSArMjgs
OSBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1Sc2FLZXlHZW5QYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQ
YXJhbXNXaXRoSGFzaC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMu
aCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgi
CisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVk
LmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCIK
ICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkNyeXB0
b0tleVJTQS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTU3LDcgKzU3LDcgQEAg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6aWRlbnRp
ZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAotYm9vbCBDcnlwdG9B
bGdvcml0aG1SU0FfT0FFUDo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0
aG1Sc2FPYWVwUGFyYW1zJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtl
eSkgY29uc3QKK2Jvb2wgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmtleUFsZ29yaXRobU1hdGNo
ZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRo
bVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5KSBjb25zdAogewogICAgIGlmIChrZXku
YWxnb3JpdGhtSWRlbnRpZmllcigpICE9IHNfaWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtNjksOSArNjksOSBAQCBib29sIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjprZXlB
bGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYQogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjplbmNyeXB0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVj
KQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBr
ZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYgcnNhT0FFUFBhcmFt
ZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zPihwYXJhbWV0ZXJz
KTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYgcnNh
T0FFUFBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVw
cmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMocnNh
T0FFUFBhcmFtZXRlcnMsIGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsK
QEAgLTgxLDkgKzgxLDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZW5jcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXIKICAgICBwbGF0Zm9ybUVu
Y3J5cHQocnNhT0FFUFBhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleVJTQT4oa2V5KSwgZGF0
YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQog
Ci12b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlw
dG9BbGdvcml0aG1SU0FfT0FFUDo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYgcnNhT0FFUFBhcmFtZXRlcnMgPSBkb3du
Y2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25z
dCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYgcnNhT0FFUFBhcmFtZXRl
cnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZD4ocGFy
YW1ldGVycyk7CiAKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMocnNhT0FFUFBhcmFtZXRl
cnMsIGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTkzLDkgKzkz
LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZGVjcnlwdChjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXIKICAgICBwbGF0Zm9ybURlY3J5cHQocnNhT0FF
UFBhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleVJTQT4oa2V5KSwgZGF0YSwgV1RGTW92ZShj
YWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2Fn
ZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQ
OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYg
cGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBLZXlP
cktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtcyYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zRGVwcmVjYXRlZCYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgYXV0byBrZXlQ
YWlyQ2FsbGJhY2sgPSBbY2FsbGJhY2tdKENyeXB0b0tleVBhaXImIHBhaXIpIHsKICAgICAgICAg
Y2FsbGJhY2sobnVsbHB0ciwgJnBhaXIpOwpAQCAtMTA0LDkgKzEwNCw5IEBAIHZvaWQgQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVA6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmIHBhcmFtCiAgICAgQ3J5cHRvS2V5UlNBOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6UlNBX09BRVAsIHJzYVBhcmFtZXRlcnMuaGFzaCwgcnNhUGFyYW1ldGVy
cy5oYXNIYXNoLCByc2FQYXJhbWV0ZXJzLm1vZHVsdXNMZW5ndGgsIHJzYVBhcmFtZXRlcnMucHVi
bGljRXhwb25lbnQsIGV4dHJhY3RhYmxlLCB1c2FnZXMsIFdURk1vdmUoa2V5UGFpckNhbGxiYWNr
KSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1S
U0FfT0FFUDo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1S
U0FfT0FFUDo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25z
dCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCYgcnNhS2V5UGFyYW1ldGVycyA9
IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoPihwYXJhbWV0ZXJz
KTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0
ZWQmIHJzYUtleVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJh
bXNXaXRoSGFzaERlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogICAgIGNvbnN0IENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzJiByc2FDb21wb25lbnRzID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHM+KGtleURhdGEpOwogCiAgICAgUmVmUHRyPENyeXB0b0tleVJTQT4gcmVzdWx0
ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09B
RVAsIHJzYUtleVBhcmFtZXRlcnMuaGFzaCwgcnNhS2V5UGFyYW1ldGVycy5oYXNIYXNoLCByc2FD
b21wb25lbnRzLCBleHRyYWN0YWJsZSwgdXNhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKaW5kZXgg
ODQwYmUwYjAzMWFmYjZkMzhkODA2ZTk3OWNjM2M3ZWU4NTZkMTU5Ny4uMGViNjk5NjZhOTljM2Rh
OWNkNzExZDc4MThmZDg3NmE4YTJjMzU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCkBAIC0zMiw3
ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNh
dGVkOwogY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1SU0FfT0FF
UCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAtNDQsMTggKzQ0LDE4IEBAIHB1
YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwg
VmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9y
S2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5jcnlwdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRl
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVAoKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1SU0FfT0FF
UCgpOwogCi0gICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXMmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYpIGNv
bnN0OwotICAgIHZvaWQgcGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9h
ZXBQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJik7Ci0gICAgdm9pZCBwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUnNhT2FlcFBhcmFtcyYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleSYpIGNvbnN0OworICAgIHZvaWQgcGxhdGZvcm1FbmNyeXB0KGNv
bnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRv
S2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNh
dGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAppbmRleCA1NzhiNjZiZWZjZjRlYzVkOGFh
N2VlMjczNzBjNWJmMTE1Nzk1Mjc2Li43Mjk3OTZkZTMxNGFmNTc4ODg0Mzk3ZTgxNTZhZDk3Yzdh
YzQ0MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1TSEExLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcApAQCAtNTIsNyArNTIsNyBAQCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRobVNIQTE6OmlkZW50aWZpZXIoKSBjb25zdAogICAg
IHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMTo6ZGln
ZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1TSEEx
OjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDcnlwdG9EaWdlc3Q+IGRpZ2VzdCA9IENyeXB0b0RpZ2VzdDo6Y3JlYXRl
KENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMSk7CiAgICAgaWYgKCFkaWdlc3QpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTEuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTEuaAppbmRleCA4MjkyNDM3NGQ5ODk5OTdmM2QwMmEyNTg0YTIyNGZiZjZmMjg2NmUzLi5m
NTI0MGIyM2Y3YTZhZTE0ZmI2NmRhMzc1NmQwNWIxYjBhZjJlYTkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEExKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
MjQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMjI0LmNwcAppbmRleCAzMGQyYjEzOTZjY2IyNjQyYzlmMjFmYWQzMzI0ZTg2ZTZkNTIzNjFm
Li5mYTgwZmM2ZGM0NWQ2MGQ0Njc5ODEwZGFjOGY4NDZkYTQwMDUyZTk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTIyNC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlw
dG9BbGdvcml0aG1TSEEyMjQ6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzX2lkZW50
aWZpZXI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMjI0OjpkaWdlc3QoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobVNIQTIyNDo6ZGlnZXN0KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q3J5cHRvRGlnZXN0PiBkaWdlc3QgPSBDcnlwdG9EaWdlc3Q6OmNyZWF0ZShDcnlwdG9EaWdl
c3Q6OkFsZ29yaXRobTo6U0hBXzIyNCk7CiAgICAgaWYgKCFkaWdlc3QpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0
LmgKaW5kZXggYTRmNDMwOGJiMTA4ZjBhNjRjZTBiNjM2NDExZjJlOTM4NDZjNDg0Ni4uZGZmNmQy
MThlNjYyOTM4OWQ0YzFmMmM2MjM0MDk0ZDg1NTUwNDNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKQEAg
LTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZ2VzdChjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3Rv
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxi
YWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobVNIQTIyNCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
MjU2LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTI1Ni5jcHAKaW5kZXggZWIyYWRhMmZmZTQ0Y2FkZDZmM2FhZjNmYjU5MDAxMzJjNWQ4ZDY5
MS4uMzI0OTlhOTViNmUzZTc5NDljYzQyNzQ5MGIxMzQ1ZjVmMWYwMDlhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyNTYuY3BwCkBAIC01Miw3ICs1Miw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2OjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVu
dGlmaWVyOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVNIQTI1Njo6ZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1TSEEyNTY6OmRpZ2VzdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0RpZ2VzdD4gZGlnZXN0ID0gQ3J5cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRvRGln
ZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOwogICAgIGlmICghZGlnZXN0KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1
Ni5oCmluZGV4IDQxZDA3NzllODIzNmE2MjBkYTA1YWMwNTU4OWZhZWQxOTg1Y2I5YjAuLjdkZDc1
OGE2NDUxMGU5NGE0YWVlOGQxNjJmMzM5YjM2ODhhYTYzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEEyNTYoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTM4NC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEEzODQuY3BwCmluZGV4IGQ3ZDQxMDI1OGRjMmVkYzFlOGQ2YjQyZTFjZmM2NTg1MWQzZGUw
YTYuLjM0ZWQ4N2M5OThmMTM4NmZlMzBkNTNhNWM4OTdkOTBmOWU5ZjVlNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMzg0LmNwcApAQCAtNTIsNyArNTIsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENy
eXB0b0FsZ29yaXRobVNIQTM4NDo6aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1TSEEzODQ6OmRpZ2VzdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0OjpkaWdlc3Qo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewogICAgIHN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9EaWdlc3Q+IGRpZ2VzdCA9IENyeXB0b0RpZ2VzdDo6Y3JlYXRlKENyeXB0b0Rp
Z2VzdDo6QWxnb3JpdGhtOjpTSEFfMzg0KTsKICAgICBpZiAoIWRpZ2VzdCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEz
ODQuaAppbmRleCA4MzI3MDAzMmIzMjM0MzFhMmIxNjY4NTRmMDk2YjExODdiNDViYzBlLi5iMGIw
ZDBlMzdhYmZjNDQ5M2E3MjIwYWU3ODJkMGQ1NjQyMjVjNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaApA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEE1MTIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBNTEyLmNwcAppbmRleCAxNjFiZjczNjY0ZjA1NGQ2MGRkMjhhYjEyMTI5YTA1ZTZmODZh
YTQxLi45ZGE5NzM2ZjM4ODNhNDAzZjdlZWFiZDY4NjRiMGVmOWNiNzExYTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTUxMi5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBD
cnlwdG9BbGdvcml0aG1TSEE1MTI6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzX2lk
ZW50aWZpZXI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyOjpkaWdlc3QoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRh
dGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobVNIQTUxMjo6ZGlnZXN0
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvRGlnZXN0PiBkaWdlc3QgPSBDcnlwdG9EaWdlc3Q6OmNyZWF0ZShDcnlwdG9E
aWdlc3Q6OkFsZ29yaXRobTo6U0hBXzUxMik7CiAgICAgaWYgKCFkaWdlc3QpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUx
Mi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
NTEyLmgKaW5kZXggZjMxNjE4M2Y1MzZkMzM0YjhhYjJhNmVkMjY0ZjUwZjE5ZTliMWRkMC4uNjQw
MmEyOWNlM2VhMDUwNTAxMjRiNjA0ZGRkNDMxOTIzYTAxOWI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgK
QEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZ2VzdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobVNIQTUxMigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1BRVNf
Q0JDR251VExTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQ0dudVRMUy5jcHAKaW5kZXggNTQ4YTNlYzFkZDJkMzI2ZjM0Mzg1YzkxYmJjOThk
MzZjZmMxNzZmYi4uMTQ2MDdkYjZmMWQ3MmEyMWE1ZTc2NGUyYjMxNWFiYmI2MzI1OWU1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1BRVNf
Q0JDR251VExTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0Fs
Z29yaXRobUFFU19DQkNHbnVUTFMuY3BwCkBAIC0yOCwxNCArMjgsMTQgQEAKIAogI2lmIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
LmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oIgog
I2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQg
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ss
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lk
IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlB
RVMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2sm
JiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIGVjID0gTk9UX1NVUFBPUlRFRF9F
UlI7CkBAIC00Nyw3ICs0Nyw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZv
cm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYKICAgICBVTlVTRURf
UEFSQU0oZmFpbHVyZUNhbGxiYWNrKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JD
OjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qzo6cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJl
Y2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtSE1BQ0dudVRMUy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobUhNQUNHbnVUTFMuY3Bw
CmluZGV4IGJhOTEzMTE4YjU1MGE2MDcxYWI5NDliN2Q1YTVkMWY4ZjFhOWVjNDguLmE4MzA0NjU3
YjMzZWQwMjRlMzgyZDYxOWFkNjMyYjYwOWIyYjc1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtSE1BQ0dudVRMUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1ITUFDR251VExTLmNwcApA
QCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgPGdudXRscy9nbnV0bHMuaD4KQEAgLTY4
LDcgKzY4LDcgQEAgc3RhdGljIFZlY3Rvcjx1aW50OF90PiBjYWxjdWxhdGVTaWduYXR1cmUoZ251
dGxzX21hY19hbGdvcml0aG1fdCBhbGdvcml0aG0sIGNvbnMKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi12b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9B
bGdvcml0aG1IbWFjUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlITUFDJiBrZXks
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2
b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0
aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5SE1BQyYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIFVOVVNFRF9QQVJBTShmYWlsdXJlQ2FsbGJhY2spOwogICAgIGdudXRsc19tYWNf
YWxnb3JpdGhtX3QgYWxnb3JpdGhtID0gZ2V0R251dGxzRGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRl
cnMuaGFzaCk7CkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxh
dGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIHBhcmFtZXRlCiAgICAg
Y2FsbGJhY2soc2lnbmF0dXJlKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0
Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXlITUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVj
dGVkU2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1WZXJpZnkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENy
eXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhwZWN0ZWRTaWdu
YXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIFVOVVNFRF9QQVJBTShmYWlsdXJlQ2FsbGJhY2spOwogICAgIGdudXRsc19tYWNf
YWxnb3JpdGhtX3QgYWxnb3JpdGhtID0gZ2V0R251dGxzRGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRl
cnMuaGFzaCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81R251VExTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHbnVUTFMuY3BwCmlu
ZGV4IGNmNTY2N2ZhZjlkMGQyMjJmNTI4ZTA2NjdkNTliY2UwYjRlNzFhYzkuLjU2OGQ1MmJhNDAz
NGRmMDBiNzQzZmEyNzljNGZhZDE3YjE1YzYxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHbnVUTFMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzVHbnVUTFMuY3BwCkBAIC0yOCwxNCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmgi
CisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oIgogI2lu
Y2x1ZGUgIkNyeXB0b0tleVJTQS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQ3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQor
dm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1TaWduKGNvbnN0
IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0
b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVAK
ICAgICBVTlVTRURfUEFSQU0oZmFpbHVyZUNhbGxiYWNrKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzU6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBh
cmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBHbnVUTFMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUEdudVRMUy5jcHAKaW5k
ZXggMzAyNGJlYzJiM2JjNWU2ZmQ5NzE1MzZhMzYyYTQ4N2IzODMzYjMxNS4uYWIwNmFjZGQ0NjA0
ZjZlOTBmMTUyN2Q1NjhhYTgyMTA1OWM2MGZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUEdudVRMUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUEdudVRMUy5j
cHAKQEAgLTI4LDE0ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlS
U0EuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQV9P
QUVQOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYg
cGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJT
QV9PQUVQOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFt
c0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTQ3LDcgKzQ3
LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMKICAgICBVTlVTRURfUEFSQU0oZmFpbHVyZUNh
bGxiYWNrKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1EZWNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0
b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1E
ZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCmluZGV4IGZmMDg3MzBk
ZjRkYmNhNWY4YjM1YzBhZTNkMmEyMTBjZWVmMjE4NjkuLjZkM2I4Yzg0NTg5OWI1ZWJmZjEzMDE4
ZTlhZjJhN2IwZTg2ZWUxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAj
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXkuaCIK
ICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgogCkBAIC00NCw3ICs0NCw3
IEBAIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6On5DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3
KCkKIHsKIH0KIAotT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdzo6cmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSogYWxnb3JpdGht
LCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKSBjb25zdAorT3B0aW9uYWw8
Q3J5cHRvQWxnb3JpdGhtUGFpcj4gQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6cmVjb25jaWxl
QWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSogYWxnb3JpdGhtLCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCogcGFyYW1ldGVycykgY29uc3QKIHsKICAgICByZXR1cm4gQ3J5cHRv
QWxnb3JpdGhtUGFpciB7IGFsZ29yaXRobSwgcGFyYW1ldGVycyB9OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oCmlu
ZGV4IDA4ZWFkODI2Y2U2YzIxZjg3YmRmZjgyZGQ4MjljM2NlZjdhODlhMTAuLmVmYTNjZDJjMDFk
OWYzNWEwZTkwYzJhOTk3YzQxNDgyZDc4ZWE1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3KGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmKTsKIAotICAgIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRo
bVBhaXI+IHJlY29uY2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8Q3J5cHRvQWxnb3Jp
dGhtUGFpcj4gcmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSosIENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJl
Y29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
cmVjb25jaWxlRXh0cmFjdGFibGUoYm9vbCYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHAK
aW5kZXggMTU4NjkwNzk2ZjIwNGNmMTgzNTQzN2RjYTFiOGQwMzk1OGYwNGJjMy4uYjEyM2NlY2Ix
MjNjNTE0YzM4ZjA5MDQ0YmUzODJmMTgxNzZiNDcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNNYWMuY3BwCkBAIC0yOCwx
NCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVz
Q2JjUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlIDxDb21tb25DcnlwdG8vQ29tbW9uQ3J5cHRv
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZvaWQgdHJhbnNmb3JtQUVTX0NC
QyhDQ09wZXJhdGlvbiBvcGVyYXRpb24sIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFt
cyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEsIENyeXB0b0FsZ29yaXRobTo6VmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFj
aywgQ3J5cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCitzdGF0
aWMgdm9pZCB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3QgQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5
cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIENyeXB0b0Fs
Z29yaXRobTo6VmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgQ3J5cHRvQWxnb3JpdGhtOjpWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCiB7CiAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yo
cGFyYW1ldGVycy5pdikgPT0ga0NDQmxvY2tTaXplQUVTMTI4LCAiSW5pdGlhbGl6YXRpb24gdmVj
dG9yIHNpemUgbXVzdCBiZSB0aGUgc2FtZSBhcyBhbGdvcml0aG0gYmxvY2sgc2l6ZSIpOwogCkBA
IC04MiwxMiArODIsMTIgQEAgc3RhdGljIHZvaWQgdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJhdGlv
biBvcGVyYXRpb24sIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1AKICAgICBjYWxsYmFjayhy
ZXN1bHQpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlw
dChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENy
eXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JD
YWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywg
Y29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNyeXB0LCBw
YXJhbWV0ZXJzLCBrZXksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVD
YWxsYmFjaykpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVj
cnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0
b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVy
cywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRh
dGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgdHJhbnNmb3JtQUVTX0NCQyhrQ0NEZWNyeXB0
LCBwYXJhbWV0ZXJzLCBrZXksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1
cmVDYWxsYmFjaykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5
cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAKaW5kZXggY2YzYTQ2MGQ1NWVhZjQ2OTUzODNhODFhZTFm
YzBjYzU0OTQ2ZDdlNy4uMjk2YTc4YWI1N2ZkM2I5NWI5M2RlYWI4YTZmNzI1MDk4NjRjNjc0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFD
TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhN
QUNNYWMuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykK
IAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUhN
QUMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSA8Q29tbW9uQ3J5cHRv
L0NvbW1vbkhNQUMuaD4KQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIFZlY3Rvcjx1aW50OF90PiBj
YWxjdWxhdGVTaWduYXR1cmUoQ0NIbWFjQWxnb3JpdGhtIGFsZ29yaXRobSwgY29uc3QgVmVjdG8K
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRm
b3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXlITUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBl
YykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlI
TUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBD
Q0htYWNBbGdvcml0aG0gYWxnb3JpdGhtOwogICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvSE1BQ0Fs
Z29yaXRobShwYXJhbWV0ZXJzLmhhc2gsIGFsZ29yaXRobSkpIHsKQEAgLTEwMiw3ICsxMDIsNyBA
QCB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zJiBwYXJhbWV0ZQogICAgIGNhbGxiYWNrKHNpZ25hdHVyZSk7CiB9CiAK
LXZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5SE1BQyYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBleHBlY3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZv
cm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFt
ZXRlcnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZXhwZWN0ZWRTaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJv
b2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgQ0NIbWFjQWxnb3JpdGhtIGFsZ29yaXRobTsKICAgICBpZiAoIWdldENvbW1vbkNy
eXB0b0hNQUNBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoLCBhbGdvcml0aG0pKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwCmluZGV4IDM5YWM0MDJjNWY2YzI3ZmNlYjk4MDk2MGIx
YmNmMmE5ZDQyOTEwY2IuLjBhYjhmNDJiODVmYjE5ZmY5YTQ0ODU3OTRkMTgyNzJjYzA1NjE1Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAj
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJDb21tb25DcnlwdG9VdGlsaXRp
ZXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaCIKKyNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5
cHRvRGlnZXN0LmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgpAQCAtNTksNyArNTksNyBAQCBpbmxpbmUgYm9vbCBnZXRDcnlwdG9EaWdlc3RB
bGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24sIENyeQogICAg
IH0KIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1T
aWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYgcGFyYW1ldGVycywgY29uc3Qg
Q3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3Rv
ckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojpw
bGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYg
cGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQ0NEaWdlc3RBbGdvcml0
aG0gZGlnZXN0QWxnb3JpdGhtOwogICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3Jp
dGhtKHBhcmFtZXRlcnMuaGFzaCwgZGlnZXN0QWxnb3JpdGhtKSkgewpAQCAtOTYsNyArOTYsNyBA
QCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVNpZ24oY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUAogICAgIGNhbGxiYWNrKHNpZ25hdHVyZSk7CiB9CiAK
LXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtVmVyaWZ5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRv
S2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBDQ0Rp
Z2VzdEFsZ29yaXRobSBkaWdlc3RBbGdvcml0aG07CiAgICAgaWYgKCFnZXRDb21tb25DcnlwdG9E
aWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoLCBkaWdlc3RBbGdvcml0aG0pKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQ
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBX09B
RVBNYWMuY3BwCmluZGV4IGFhY2RmYWZhOWY2MzM2MWM5NGRkZjg1Y2JjYWZlNTMxYTMwMjE3MTUu
LmNmMjgxY2E4NzYwMjI0ZWQwN2E3ZTRhMDBhZmYxZmRkODU3YzVkMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMu
Y3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAogI2lu
Y2x1ZGUgIkNvbW1vbkNyeXB0b1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1z
RGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVJTQS5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIENyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29y
aXRobVJTQV9PQUVQOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2Fl
cFBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIENDRGlnZXN0QWxnb3JpdGhtIGRpZ2VzdEFsZ29yaXRobTsKICAgICBpZiAoIWdldENvbW1v
bkNyeXB0b0RpZ2VzdEFsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gsIGRpZ2VzdEFsZ29yaXRobSkp
IHsKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZv
cm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMKICAgICBjYWxsYmFj
ayhjaXBoZXJUZXh0KTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZv
cm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxh
dGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVk
JiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBDQ0RpZ2VzdEFsZ29y
aXRobSBkaWdlc3RBbGdvcml0aG07CiAgICAgaWYgKCFnZXRDb21tb25DcnlwdG9EaWdlc3RBbGdv
cml0aG0ocGFyYW1ldGVycy5oYXNoLCBkaWdlc3RBbGdvcml0aG0pKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFl
c0NiY1BhcmFtcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTc5OGY3ZTU2Mjgz
YjVhOTM3MGExYzMwMGRmZTY1YmE0NjIyMTNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zX2gKLSNkZWZp
bmUgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxhcnJheT4KLQotI2lmIEVOQUJMRShTVUJUTEVf
Q1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUFl
c0NiY1BhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1
YmxpYzoKLSAgICAvLyBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBNVVNUIGJlIDE2IGJ5dGVz
LgotICAgIHN0ZDo6YXJyYXk8Y2hhciwgMTY+IGl2OwotCi0gICAgQ2xhc3MgcGFyYW1ldGVyc0Ns
YXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OkFlc0NiY1BhcmFtczsgfQotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBU
T19BTEdPUklUSE1fUEFSQU1FVEVSUyhBZXNDYmNQYXJhbXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUo
U1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFt
ZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhjYjVlOTY0MjE5MjgxMjViOWFjOGUwNjQwYmU5M2ExYTc5MjU3YjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXNEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQu
aCIKKyNpbmNsdWRlIDxhcnJheT4KKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJl
Y2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQg
eworcHVibGljOgorICAgIC8vIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IuIE1VU1QgYmUgMTYg
Ynl0ZXMuCisgICAgc3RkOjphcnJheTxjaGFyLCAxNj4gaXY7CisKKyAgICBDbGFzcyBwYXJhbWV0
ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6QWVzQ2JjUGFyYW1zOyB9
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
Q1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEFlc0NiY1BhcmFtcykKKworI2VuZGlmIC8vIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU0YzVjZmI2MjJjOTkxOTdmYzcwYTI3MjU4YWU2
NWQ0MjcyYjAzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlH
ZW5QYXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc19oCi0jZGVmaW5lIENyeXB0b0Fs
Z29yaXRobUFlc0tleUdlblBhcmFtc19oCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMgZmluYWwgOiBwdWJs
aWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhlIGxlbmd0
aCwgaW4gYml0cywgb2YgdGhlIGtleS4KLSAgICB1bnNpZ25lZCBsZW5ndGg7Ci0KLSAgICBDbGFz
cyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6QWVzS2V5
R2VuUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEFlc0tleUdlblBhcmFtcykK
LQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29y
aXRobUFlc0tleUdlblBhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
cGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5Q
YXJhbXNEZXByZWNhdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWEzMDYyZGUzMTNlNzU0NDFlOGIxYTUxMDk2
OWI3NTExM2ZjZjg4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorCisjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQWVz
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6CisgICAgLy8gVGhlIGxlbmd0aCwgaW4gYml0cywg
b2YgdGhlIGtleS4KKyAgICB1bnNpZ25lZCBsZW5ndGg7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJz
Q2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6QWVzS2V5R2VuUGFyYW1zOyB9
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
Q1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEFlc0tleUdlblBhcmFtcykKKworI2VuZGlmIC8v
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjFiMTVkODlkMDM4NWI4ZTU2Mjk2ZDlmY2U3YTVh
MTg3YTZhOGE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0
aG1IbWFjS2V5UGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIu
aCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUo
U1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdv
cml0aG1IbWFjS2V5UGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMgewotcHVibGljOgotICAgIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMoKQotICAgICAg
ICA6IGhhc0xlbmd0aChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgLy8gVGhlIGlubmVyIGhh
c2ggZnVuY3Rpb24gdG8gdXNlLgotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsK
LQotICAgIC8vIFRoZSBsZW5ndGggKGluIGJ5dGVzKSBvZiB0aGUga2V5IHRvIGdlbmVyYXRlLiBJ
ZiB1bnNwZWNpZmllZCwgdGhlIHJlY29tbWVuZGVkIGxlbmd0aCB3aWxsIGJlIHVzZWQsCi0gICAg
Ly8gd2hpY2ggaXMgdGhlIHNpemUgb2YgdGhlIGFzc29jaWF0ZWQgaGFzaCBmdW5jdGlvbidzIGJs
b2NrIHNpemUuCi0gICAgYm9vbCBoYXNMZW5ndGg7Ci0gICAgdW5zaWduZWQgbGVuZ3RoOwotCi0g
ICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6
OkhtYWNLZXlQYXJhbXM7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoSG1hY0tleVBhcmFt
cykKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0Fs
Z29yaXRobUhtYWNLZXlQYXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJh
bXNEZXByZWNhdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTExN2ZjMzFkZDM2YTYxMjBjM2E4ZmFlZGY4NTMx
ZWI5YWRiODBjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJh
bWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmgKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkLmgiCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZCBm
aW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJs
aWM6CisgICAgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQoKQorICAgICAg
ICA6IGhhc0xlbmd0aChmYWxzZSkKKyAgICB7CisgICAgfQorCisgICAgLy8gVGhlIGlubmVyIGhh
c2ggZnVuY3Rpb24gdG8gdXNlLgorICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsK
KworICAgIC8vIFRoZSBsZW5ndGggKGluIGJ5dGVzKSBvZiB0aGUga2V5IHRvIGdlbmVyYXRlLiBJ
ZiB1bnNwZWNpZmllZCwgdGhlIHJlY29tbWVuZGVkIGxlbmd0aCB3aWxsIGJlIHVzZWQsCisgICAg
Ly8gd2hpY2ggaXMgdGhlIHNpemUgb2YgdGhlIGFzc29jaWF0ZWQgaGFzaCBmdW5jdGlvbidzIGJs
b2NrIHNpemUuCisgICAgYm9vbCBoYXNMZW5ndGg7CisgICAgdW5zaWduZWQgbGVuZ3RoOworCisg
ICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6
OkhtYWNLZXlQYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoSG1hY0tleVBhcmFt
cykKKworI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Mzc5M2I2ZmE1ZDc1M2UzNWE4OTYy
ZjVhZTY4ODhkMGUwZWY3Y2NjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bUhtYWNQYXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNfaAotI2RlZmluZSBDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIu
aCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUo
U1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMg
ewotcHVibGljOgotICAgIC8vIFRoZSBpbm5lciBoYXNoIGZ1bmN0aW9uIHRvIHVzZS4KLSAgICBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xh
c3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6SG1hY1BhcmFtczsgfQotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19B
TEdPUklUSE1fUEFSQU1FVEVSUyhIbWFjUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRM
RV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zRGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTViMWIzYTY1
YjIwY2RjYmM0NGE0YzBhNWZkZjE3Nzk1ZTczZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJl
Y2F0ZWQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNQYXJh
bXNEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkIHsKK3B1YmxpYzoKKyAgICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2Uu
CisgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOworCisgICAgQ2xhc3MgcGFyYW1l
dGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OkhtYWNQYXJhbXM7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19D
UllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoSG1hY1BhcmFtcykKKworI2VuZGlmIC8vIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFt
ZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjYzYTU3Y2VkM2UzYzM2NjNiMzExMmQ1OTkyYTgxYzMy
MTJkMzkyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc19oCi0jZGVmaW5lIENyeXB0b0FsZ29y
aXRobVJzYUtleUdlblBhcmFtc19oCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
R2VuUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgewotcHVi
bGljOgotICAgIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcygpCi0gICAgICAgIDogaGFz
SGFzaChmYWxzZSkKLSAgICB7Ci0gICAgfQotICAgIC8vIFRoZSBsZW5ndGgsIGluIGJpdHMsIG9m
IHRoZSBSU0EgbW9kdWx1cy4KLSAgICB1bnNpZ25lZCBtb2R1bHVzTGVuZ3RoOwotICAgIC8vIFRo
ZSBSU0EgcHVibGljIGV4cG9uZW50LCBlbmNvZGVkIGFzIEJpZ0ludGVnZXIuCi0gICAgVmVjdG9y
PHVpbnQ4X3Q+IHB1YmxpY0V4cG9uZW50OwotICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRoIGlkZW50
aWZpZXIKLSAgICBib29sIGhhc0hhc2g7Ci0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBo
YXNoOwotCi0gICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQ2xhc3M6OlJzYUtleUdlblBhcmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhS
c2FLZXlHZW5QYXJhbXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRp
ZiAvLyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1z
RGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMzNmNzM2Y2Zj
NDg0NWQzMzBlNmExNTE1OGRmMGVjNDM1N2M5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNE
ZXByZWNhdGVkLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXBy
ZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
IHsKK3B1YmxpYzoKKyAgICBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVk
KCkKKyAgICAgICAgOiBoYXNIYXNoKGZhbHNlKQorICAgIHsKKyAgICB9CisgICAgLy8gVGhlIGxl
bmd0aCwgaW4gYml0cywgb2YgdGhlIFJTQSBtb2R1bHVzLgorICAgIHVuc2lnbmVkIG1vZHVsdXNM
ZW5ndGg7CisgICAgLy8gVGhlIFJTQSBwdWJsaWMgZXhwb25lbnQsIGVuY29kZWQgYXMgQmlnSW50
ZWdlci4KKyAgICBWZWN0b3I8dWludDhfdD4gcHVibGljRXhwb25lbnQ7CisgICAgLy8gVGhlIGhh
c2ggYWxnb3JpdGggaWRlbnRpZmllcgorICAgIGJvb2wgaGFzSGFzaDsKKyAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGhhc2g7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhS2V5R2VuUGFyYW1zOyB9Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09S
SVRITV9QQVJBTUVURVJTKFJzYUtleUdlblBhcmFtcykKKworI2VuZGlmIC8vIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2guaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZmNhYTE3MzY4MGQ2YWZkMDY1MzczY2RjMWI2
OWQwNjlkZGU0ZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
UGFyYW1zV2l0aEhhc2guaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoX2gKLSNkZWZp
bmUgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hfaAotCi0jaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLS8vIFRoaXMgcGFyYW1ldGVycyBjbGFzcyBpcyBjdXJyZW50bHkgbm90IHNwZWNpZmll
ZCBpbiBXZWJDcnlwdG8uCi0vLyBJdCBpcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBpbXBvcnQgZnJv
bSBKV0ssIHdoaWNoIHRyZWF0cyBoYXNoIGZ1bmN0aW9uIGFzIHBhcnQgb2YgYWxnb3JpdGhtCi0v
LyBpZGVudGlmaWVyLCBzbyB3ZSBuZWVkIHRvIHJlbWVtYmVyIGl0IHRvIGNvbXBhcmUgd2l0aCBv
bmUgcGFzc2VkIHRvIHNpZ24gb3IgdmVyaWZ5IGZ1bmN0aW9ucy4KLWNsYXNzIENyeXB0b0FsZ29y
aXRobVJzYUtleVBhcmFtc1dpdGhIYXNoIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMgewotcHVibGljOgotICAgIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhI
YXNoKCkKLSAgICAgICAgOiBoYXNIYXNoKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICAvLyBU
aGUgaGFzaCBhbGdvcml0aG0gdG8gdXNlLgotICAgIGJvb2wgaGFzSGFzaDsKLSAgICBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhS2V5UGFyYW1zV2l0aEhhc2g7IH0KLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQ
VE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoUnNhS2V5UGFyYW1zV2l0aEhhc2gpCi0KLSNlbmRpZiAv
LyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQ
YXJhbXNXaXRoSGFzaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlOTdjOGI2MTc5ZGU2ZTRkNzg2Njcy
NDExZGViOGZlOTBiY2VlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0
ZWQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgcGFyYW1ldGVycyBjbGFzcyBpcyBjdXJy
ZW50bHkgbm90IHNwZWNpZmllZCBpbiBXZWJDcnlwdG8uCisvLyBJdCBpcyBuZWNlc3NhcnkgdG8g
c3VwcG9ydCBpbXBvcnQgZnJvbSBKV0ssIHdoaWNoIHRyZWF0cyBoYXNoIGZ1bmN0aW9uIGFzIHBh
cnQgb2YgYWxnb3JpdGhtCisvLyBpZGVudGlmaWVyLCBzbyB3ZSBuZWVkIHRvIHJlbWVtYmVyIGl0
IHRvIGNvbXBhcmUgd2l0aCBvbmUgcGFzc2VkIHRvIHNpZ24gb3IgdmVyaWZ5IGZ1bmN0aW9ucy4K
K2NsYXNzIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCBmaW5h
bCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6
CisgICAgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkKCkKKyAg
ICAgICAgOiBoYXNIYXNoKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICAvLyBUaGUgaGFzaCBh
bGdvcml0aG0gdG8gdXNlLgorICAgIGJvb2wgaGFzSGFzaDsKKyAgICBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIGhhc2g7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBDbGFzczo6UnNhS2V5UGFyYW1zV2l0aEhhc2g7IH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJ
VEhNX1BBUkFNRVRFUlMoUnNhS2V5UGFyYW1zV2l0aEhhc2gpCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMGQyYzM0Y2QxYTY2ZmUyOWJmODliZWQ2MjU1MGNlZGRkZTI5ZGM0
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlw
dG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zX2gKLSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtUnNhT2Fl
cFBhcmFtc19oCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1
YmxpYzoKLSAgICBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zKCkKLSAgICAgICAgOiBoYXNM
YWJlbChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgLy8gVGhlIGhhc2ggZnVuY3Rpb24gdG8g
YXBwbHkgdG8gdGhlIG1lc3NhZ2UuCi0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNo
OwotCi0gICAgLy8gVGhlIG9wdGlvbmFsIGxhYmVsL2FwcGxpY2F0aW9uIGRhdGEgdG8gYXNzb2Np
YXRlIHdpdGggdGhlIG1lc3NhZ2UuCi0gICAgLy8gRklYTUU6IElzIHRoZXJlIGEgZGlmZmVyZW5j
ZSBiZXR3ZWVuIGEgbWlzc2luZyBsYWJlbCBhbmQgYW4gZW1wdHkgb25lPyBQZXJoYXBzIHdlIGRv
bid0IG5lZWQgdGhlIGhhc0xhYmVsIG1lbWJlci4KLSAgICBib29sIGhhc0xhYmVsOwotICAgIFZl
Y3Rvcjx1aW50OF90PiBsYWJlbDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FPYWVwUGFyYW1zOyB9Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRI
TV9QQVJBTUVURVJTKFJzYU9hZXBQYXJhbXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NS
WVBUTykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9h
ZXBQYXJhbXNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5ODA1
OTNiZGMyYWVkYTNiNDI1YmFjZWY2MTkzMTZmZWFmM2U4MWMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFy
YW1zRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorCisjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQ
YXJhbXNEZXByZWNhdGVkKCkKKyAgICAgICAgOiBoYXNMYWJlbChmYWxzZSkKKyAgICB7CisgICAg
fQorCisgICAgLy8gVGhlIGhhc2ggZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIG1lc3NhZ2UuCisg
ICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOworCisgICAgLy8gVGhlIG9wdGlvbmFs
IGxhYmVsL2FwcGxpY2F0aW9uIGRhdGEgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG1lc3NhZ2UuCisg
ICAgLy8gRklYTUU6IElzIHRoZXJlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbWlzc2luZyBsYWJl
bCBhbmQgYW4gZW1wdHkgb25lPyBQZXJoYXBzIHdlIGRvbid0IG5lZWQgdGhlIGhhc0xhYmVsIG1l
bWJlci4KKyAgICBib29sIGhhc0xhYmVsOworICAgIFZlY3Rvcjx1aW50OF90PiBsYWJlbDsKKwor
ICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNz
OjpSc2FPYWVwUGFyYW1zOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKFJzYU9hZXBQYXJh
bXMpCisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3Nh
UGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxODVmOGRmYjgzYWQ5YjNm
NWM4N2U0MmEyMjQ0ZmQ4NjQ3YTRmODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhU3NhUGFyYW1zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNfaAotI2RlZmluZSBD
cnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNfaAotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLQot
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNz
IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoKLSAgICAvLyBUaGUgaGFzaCBhbGdvcml0aG0gdG8gdXNl
LgotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAgIENsYXNzIHBhcmFt
ZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FTc2FQYXJhbXM7
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoUnNhU3NhUGFyYW1zKQotCi0jZW5kaWYgLy8g
RU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFy
YW1zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMzk0YTM3OGVmZjI1N2Q1OWNhMzE2YjhhZTExNTYzMTE3OWY0OThiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorCisjaWYg
RU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6CisgICAgLy8gVGhlIGhhc2gg
YWxnb3JpdGhtIHRvIHVzZS4KKyAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7CisK
KyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFz
czo6UnNhU3NhUGFyYW1zOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKFJzYVNzYVBhcmFt
cykKKworI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQo=
</data>
<flag name="review"
          id="314295"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="314301"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291170</attachid>
            <date>2016-10-10 15:07:46 -0700</date>
            <delta_ts>2016-10-10 15:07:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-163163-20161010150424.patch</filename>
            <type>text/plain</type>
            <size>192715</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE3YjU5MWIyYThkYTdm
MWUwNDMyM2M0ZTdhYzRjNjBjMTM0YjRhNy4uY2JiNDU1NmFjMmFlZWIzZTZhMWE2YjM0NWY4MTEz
ZjUxOTdlYjg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTEwLTEwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMgdG8gQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzE2Mwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg2ODE1NDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBSZXBsYWNlIGFsbCB1c2VzIG9mICdDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJyB3aXRoICdDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCcgaW4gcHJlcGFyYXRpb24gZm9yIGEgbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgdHlw
ZS4KKworICAgICAgICBObyBjaGFuZ2VzIG9mIGJlaGF2aW9ycy4gTm8gbmV3IHRlc3RzLgorCisg
ICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOgorICAgICAgICAqIGNyeXB0by9Dcnlw
dG9BbGdvcml0aG0uY3BwOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0aG0uaDoKKyAg
ICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
LmguCisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcDoKKyAgICAgICAgKiBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaDoKKyAgICAgICAgKiBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcDoKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHA6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oOgorICAgICAg
ICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNw
cDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QV9PQUVQLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1S
U0FfT0FFUC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTEuY3BwOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEu
aDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3Bw
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHA6Cisg
ICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2Lmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcDoKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oOgorICAgICAgICAqIGNy
eXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwOgorICAgICAgICAqIGNyeXB0
by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dudVRMUy5jcHA6CisgICAgICAgICogY3J5
cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1ITUFDR251VExTLmNwcDoKKyAgICAgICAgKiBjcnlw
dG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR251VExTLmNwcDoKKyAgICAgICAgKiBj
cnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81R251VExTLmNwcDoK
KyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3Lmg6CisgICAg
ICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcDoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwOgorICAgICAgICAqIGNyeXB0
by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOgorICAgICAgICAq
IGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwOgorICAgICAgICAqIGNy
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmFtcy5oLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5o
LgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJh
bXNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmguCisgICAgICAgICogY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXMuaC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FL
ZXlHZW5QYXJhbXNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaC4KKyAgICAgICAg
KiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERl
cHJlY2F0ZWQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmguCisgICAgICAgICogY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXMuaC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaC4KKwogMjAx
Ni0xMC0wNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBhIGR1bW15IFN1YnRsZUNyeXB0byBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcApp
bmRleCBmY2RhNGUwZjg3ODY2ZWJlM2U4NTVlYjc0NmU5MzZmMWNjZjkzODc5Li45ZGE3Nzg2MWNk
M2RiM2VlNDdhOGQ2NDY0MGVkZjkzNjZkM2I5ZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3Bw
CkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQXJyYXlWYWx1ZS5oIgogI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobS5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiQ3J5cHRv
S2V5RGF0YU9jdGV0U2VxdWVuY2UuaCIKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVk
ZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjQ5ZWVmNDk1NDQ3Zjk3MThlNDk5NTI2
NDgyMTJjM2YxMTEyOGE3OS4uM2NhNTM0N2U0MTI3NTc1MTQxYmI0NWE2ODM1MzQ0ZDJkMWFiNDky
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNTk0OCw3ICs1OTQ4LDcgQEAKIAkJRTEyNUY4MzUxODIyRjE4QTAwRDg0Q0Q5IC8q
IENyeXB0b0tleUhNQUMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEyNUY4MzMxODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuY3BwICov
OyB9OwogCQlFMTI1RjgzNjE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4MzQxODIyRjE4
QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuaCAqLzsgfTsKIAkJRTEyNUY4MzgxODIyRjFFQjAw
RDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4MzcxODIyRjFFQjAwRDg0Q0Q5IC8qIENy
eXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwICovOyB9OwotCQlFMTI1RjgzQTE4MjQxMDQ4MDBEODRD
RDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzOTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmggKi87IH07CisJCUUxMjVGODNBMTgyNDEwNDgwMEQ4
NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzOTE4MjQxMDQ4MDBE
ODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oICovOyB9Owog
CQlFMTI1RjgzRDE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODNCMTgy
NDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwICovOyB9OwogCQlFMTI1
RjgzRTE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzQzE4MjQxMUU3MDBE
ODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmggKi87IH07CiAJCUUxMjVGODQxMTgyNDI1
M0EwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODNGMTgyNDI1M0EwMEQ4NENEOSAv
KiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCAqLzsgfTsKQEAgLTYwNDIsOSArNjA0Miw5IEBA
CiAJCUUxOUFDM0YzMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEzODQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0VCMTgy
NERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEzODQuaCAqLzsgfTsKIAkJRTE5QUMz
RjQxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNFQzE4MjREQzc5MDAz
NDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcCAqLzsgfTsKIAkJRTE5QUMzRjUxODI0
REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTUxMi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5QUMzRUQxODI0REM3OTAwMzQ5NDI2IC8q
IENyeXB0b0FsZ29yaXRobVNIQTUxMi5oICovOyB9OwotCQlFMTlBQzNGNzE4MjRFNUQxMDAzNDk0
MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNGNjE4MjRFNUQxMDAzNDk0MjYgLyog
Q3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmggKi87IH07CisJCUUxOUFDM0Y3MTgyNEU1
RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNGNjE4
MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRl
ZC5oICovOyB9OwogCQlFMTlBQzNGOTE4MjU2NkY3MDAzNDk0MjYgLyogQ3J5cHRvS2V5TWFjLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0Y4
MTgyNTY2RjcwMDM0OTQyNiAvKiBDcnlwdG9LZXlNYWMuY3BwICovOyB9OwotCQlFMTlEQTI5QzE4
MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5REEyOUIxODE4OUFERDAw
MDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCAqLzsgfTsKKwkJRTE5REEy
OUMxODE4OUFERDAwMDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNh
dGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlE
QTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJl
Y2F0ZWQuaCAqLzsgfTsKIAkJRTFBMTQ3MDgxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5v
ZGVBbGdvcml0aG1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMu
aCAqLzsgfTsKIAkJRTFBMzE2MkQxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0
cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFBMzE2MkIxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJh
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUx
QTMxNjJFMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUEzMTYyQzEz
NEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tICovOyB9OwpA
QCAtNjA3MSwxMiArNjA3MSwxMiBAQAogCQlFMUJCODRBRDE4MjJDQTc0MDA1MjUwNDMgLyogQ3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFCQjg0QUMxODIyQ0E3NDAwNTI1MDQzIC8qIENyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5TWFjLmNwcCAqLzsgfTsKIAkJRTFCRDMzMTkxODJEOERERDAwQzA1RDlGIC8q
IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQzMzE3MTgyRDhEREQwMEMwNUQ5RiAvKiBD
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgKi87IH07CiAJCUUxQkQzMzFBMTgy
RDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRDMzMTgxODJEOERE
RDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggKi87IH07Ci0J
CUUxQkQzMzFDMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQzMzFC
MTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaCAqLzsgfTsK
LQkJRTFCRDMzMUUxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFC
RDMzMUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5o
ICovOyB9OworCQlFMUJEMzMxQzE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKKwkJRTFCRDMzMUUxODJEOEY0MjAwQzA1RDlG
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQzMzFEMTgyRDhGNDIwMEMw
NUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi87IH07
CiAJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRTUxMkIwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgKi87IH07CiAJCUUxQkU1MTJFMENGNkM1
MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkU1MTJDMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5p
Y29kZVNvcnQuaCAqLzsgfTsKIAkJRTFDMjY2RDgxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzI2NkQ2MTgzMTdBQjQwMDNGOEIzMyAvKiBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgKi87IH07Ci0JCUUxQzI2NkRCMTgzMTk5
MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2REExODMxOTkz
NTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmggKi87IH07
CisJCUUxQzI2NkRCMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJh
bXNXaXRoSGFzaERlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQzI2NkRBMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1S
c2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFDMjY2REUxODMxOUYz
MTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzI2NkRDMTgzMTlGMzEwMDNGOEIz
MyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5jcHAgKi87IH07CiAJCUUxQzI2NkRGMTgz
MTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2REQxODMxOUYzMTAwM0Y4
QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggKi87IH07CiAJCUUxQzM2MkVGMEVB
RjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUMzNjJFRDBFQUYyQUE5MDA3NDEwQkMgLyogSlNX
b3JrZXJMb2NhdGlvbi5oICovOyB9OwpAQCAtNjA5Myw5ICs2MDkzLDkgQEAKIAkJRTFDNERFNkUw
RUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyog
QWN0aXZlRE9NT2JqZWN0LmNwcCAqLzsgfTsKIAkJRTFDNjU3MTIxODE1RjlERDAwMjU2Q0REIC8q
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcxMDE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCAqLzsgfTsKIAkJRTFDNjU3MTMxODE1RjlERDAwMjU2
Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MTExODE1RjlERDAwMjU2Q0REIC8qIEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oICovOyB9OwotCQlFMUM2NTcxRjE4MTZFNTAzMDAy
NTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENy
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCAqLzsgfTsKKwkJRTFDNjU3MUYxODE2RTUwMzAwMjU2
Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcxRTE4MTZFNTAzMDAyNTZD
REQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFD
NjU3MjUxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY1NzI0MTgxNkU2
OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggKi87IH07Ci0JCUUxQzY1
NzI3MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcyNjE4MTZGOUZF
MDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oICovOyB9OworCQlFMUM2NTcy
NzE4MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY1NzI2
MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5o
ICovOyB9OwogCQlFMUM4QkU1RDBFOEJEMTVBMDA2NENCN0QgLyogSlNXb3JrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDOEJFNUMwRThCRDE1
QTAwNjRDQjdEIC8qIEpTV29ya2VyLmNwcCAqLzsgfTsKIAkJRTFDOTRBRjkxOTEzMDNGMDAwRDVB
ODkzIC8qIEJsb2JQYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUM5NEFGNzE5MTMwM0YwMDBENUE4OTMgLyogQmxvYlBhcnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUNBNUNCQzBFOENEQ0FG
MDBFOEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDQTVDQkIwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2Vy
Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTYxMjUsNyArNjEyNSw3IEBACiAJCUUxRkUxMzcwMTgzRkVD
RjAwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM2RTE4M0ZFQ0YwMDA4OTJG
MTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwICovOyB9OwogCQlFMUZFMTM3NDE4
NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzcyMTg0MDJBNjcwMDg5MkYx
MyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMuY3BwICovOyB9OwogCQlFMUZFMTM3NTE4NDAyQTY3
MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3MzE4NDAyQTY3MDA4OTJGMTMgLyogQ29t
bW9uQ3J5cHRvVXRpbGl0aWVzLmggKi87IH07Ci0JCUUxRkUxMzc3MTg0RDFFMzMwMDg5MkYxMyAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oICovOyB9OworCQlFMUZFMTM3NzE4NEQxRTMzMDA4OTJG
MTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc2MTg0RDFFMzMwMDg5
MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oICovOyB9Owog
CQlFMUZFMTM3QTE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc4MTg0
RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwICovOyB9OwogCQlFMUZF
MTM3QjE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3OTE4NEQyMUJCMDA4
OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggKi87IH07CiAJCUUxRkUxMzdFMTg0RDI3
MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzN0MxODREMjcwMjAwODkyRjEz
IC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAgKi87IH07CkBAIC0xMzU0Nyw3ICsxMzU0
Nyw3IEBACiAJCUUxMjVGODMzMTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0tleUhNQUMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI1RjgzNDE4MjJGMThBMDBEODRDRDkgLyog
Q3J5cHRvS2V5SE1BQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9L
ZXlITUFDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODM3MTgyMkYxRUIw
MEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlFMTI1RjgzOTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENy
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTI1RjgzOTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
RGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxMjVGODNCMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDcnlwdG9PcGVyYXRpb25E
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEyNUY4M0MxODI0MTFFNzAw
RDg0Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0NyeXB0b09wZXJhdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTEyNUY4M0YxODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFFU19D
QkMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzY0Nyw5ICsx
MzY0Nyw5IEBACiAJCUUxOUFDM0VCMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1T
SEEzODQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
U0hBMzg0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0VDMTgyNERDNzkw
MDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMzRUQxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29y
aXRobVNIQTUxMi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdv
cml0aG1TSEE1MTIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTE5QUMzRjYxODI0
RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2
IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTlBQzNGODE4MjU2NkY3
MDAzNDk0MjYgLyogQ3J5cHRvS2V5TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENyeXB0b0tleU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUUxOURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUhtYWNL
ZXlQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5REEyOUIxODE4OUFE
RDAwMDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJh
bXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQTE0NzA3MTEx
MDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUEzMTYyQjEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRy
aWJ1dGVkU3RyaW5nRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Yk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMUEzMTYyQzEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViTlNBdHRyaWJ1
dGVkU3RyaW5nRXh0cmFzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM2ODMs
MTQgKzEzNjgzLDE0IEBACiAJCUUxQkE2NzE2MTc0MkJERTAwMEMyMDI1MSAvKiBsaWJXZWJDb3Jl
VGVzdFNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBsaWJXZWJDb3JlVGVzdFNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCUUxQkE2NzE5MTc0MkJFRjQwMEMyMDI1MSAvKiBXZWJDb3JlVGVzdFNoaW1MaWJy
YXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUZXN0
U2hpbUxpYnJhcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJCODRBQzE4
MjJDQTc0MDA1MjUwNDMgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMxNzE4MkQ4REREMDBDMDVE
OUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMxODE4MkQ4REREMDBDMDVE
OUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENy
eXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTFCRDMzMUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtl
eUdlblBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdv
cml0aG1Sc2FLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFC
RDMzMTcxODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3Bw
OyB9OworCQlFMUJEMzMxODE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
b2JqY3BwOyB9OworCQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGht
UnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVF
bmRpbmcgPSAwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZp
ZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJRTFCRDMzMUQxODJEOEY0MjAwQzA1RDlGIC8q
IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVj
YXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJFNTEyQjBDRjZDNTEyMDAy
RUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhTTFRVbmljb2RlU29ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxQkU1MTJDMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMVFVuaWNvZGVTb3J0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUUxQzI2NkQ2MTgzMTdBQjQwMDNGOEIzMyAvKiBDcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQzI2NkRBMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlw
dG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMUMyNjZENjE4MzE3QUI0MDAzRjhCMzMgLyogQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmlj
YXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CisJCUUxQzI2NkRBMTgzMTk5MzUw
MDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxQzI2NkRDMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9LZXlEYXRhUlNB
Q29tcG9uZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzI2NkREMTgz
MTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUMzNjJFRDBFQUYyQUE5MDA3NDEwQkMgLyogSlNX
b3JrZXJMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtl
ckxvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzcwNSwxMSArMTM3
MDUsMTEgQEAKIAkJRTFDNDE2MTYwRjY1NjMxODAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM0
REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2ZURPTU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjdGl2ZURPTU9iamVjdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQzY1NzEwMTgxNUY5REQwMDI1NkNE
RCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFDNjU3MTAxODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVy
ID0geGNvZGUubGFuZy5jcHA7IH07CiAJCUUxQzY1NzExMTgxNUY5REQwMDI1NkNERCAvKiBKU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUUxQzY1NzFFMTgxNkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFy
YW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUht
YWNQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFDNjU3MUUxODE2RTUw
MzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXBy
ZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzY1NzI0MTgxNkU2OUQw
MDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTFDNjU3MjYxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUM2
NTcyNjE4MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNkNG
QzIxNzQ2RDI5MzAwN0I4N0ExIC8qIERPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBsaW5lRW5kaW5n
ID0gMDsgcGF0aCA9IERPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9ICI8bm9uZT4iOyB9Owog
CQlFMUM4QkU1QzBFOEJEMTVBMDA2NENCN0QgLyogSlNXb3JrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUM5NEFGNzE5MTMwM0YwMDBENUE4OTMgLyogQmxvYlBhcnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlBhcnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEzNzQxLDcgKzEzNzQxLDcgQEAKIAkJRTFGRTEzNkUxODNGRUNGMDAwODky
RjEzIC8qIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRTEzNzIxODQwMkE2NzAwODkyRjEzIC8qIENvbW1v
bkNyeXB0b1V0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb21tb25DcnlwdG9VdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMUZFMTM3MzE4NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1vbkNyeXB0b1V0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyog
Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRkUxMzc2MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUZFMTM3ODE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0
b0FsZ29yaXRobUFFU19LVy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUx
Mzc5MTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9B
bGdvcml0aG1BRVNfS1dNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIyMTE1LDE0ICsyMjExNSwxNCBAQAogCQlFMUM2NTcxNDE4MTYwMTVGMDAyNTZDREQg
LyogcGFyYW1ldGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtcy5oICovLAotCQkJCUUxOUFDM0Y2MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0
aG1BZXNLZXlHZW5QYXJhbXMuaCAqLywKLQkJCQlFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyog
Q3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oICovLAotCQkJCUUxQzY1NzFFMTgxNkU1MDMw
MDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmggKi8sCi0JCQkJRTFCRDMzMUQx
ODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oICovLAot
CQkJCUUxQzI2NkRBMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJh
bXNXaXRoSGFzaC5oICovLAotCQkJCUUxRkUxMzc2MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9B
bGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi8sCi0JCQkJRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlG
IC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oICovLAorCQkJCUUxMjVGODM5MTgyNDEw
NDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggKi8s
CisJCQkJRTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdl
blBhcmFtc0RlcHJlY2F0ZWQuaCAqLywKKwkJCQlFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyog
Q3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCAqLywKKwkJCQlFMUM2NTcx
RTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQu
aCAqLywKKwkJCQlFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovLAorCQkJCUUxQzI2NkRBMTgzMTk5MzUwMDNGOEIz
MyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCAqLywK
KwkJCQlFMUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtc0RlcHJlY2F0ZWQuaCAqLywKKwkJCQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBwYXJhbWV0ZXJzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIyMjQzLDcgKzIy
MjQzLDcgQEAKIAkJCQlFMTcyQUY2QjE4MEYyNEM2MDBGQkFEQjkgLyogQ3J5cHRvQWxnb3JpdGht
LmNwcCAqLywKIAkJCQlFMTcyQUY2QzE4MEYyNEM2MDBGQkFEQjkgLyogQ3J5cHRvQWxnb3JpdGht
LmggKi8sCiAJCQkJRTFDNjU3MjQxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIuaCAqLywKLQkJCQlFMUM2NTcyNjE4MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycy5oICovLAorCQkJCUUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oICovLAogCQkJCUUxRkY4RjZBMTgw
REI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi8sCiAJCQkJRTFG
RjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8sCiAJ
CQkJRTE1N0E4RTIxODE3M0EzQTAwOUY4MjFEIC8qIENyeXB0b0tleS5jcHAgKi8sCkBAIC0yNDE1
MSwyMSArMjQxNTEsMjEgQEAKIAkJCQlFMTcyQUY2RTE4MEYyNEM2MDBGQkFEQjkgLyogQ3J5cHRv
QWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI1Rjg0MjE4MjQyNTNBMDBEODRDRDkg
LyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzN0Ix
ODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LVy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTEyNUY4M0ExODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTE5QUMzRjcxODI0RTVEMTAwMzQ5NDI2IC8qIENy
eXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTEyNUY4
M0ExODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0
ZWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxOUFDM0Y3MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlw
dG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTI1RjgzMjE4MjJGMTFCMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRTE5REEyOUMxODE4OUFERDAwMDg4QkM4IC8qIENyeXB0b0FsZ29yaXRo
bUhtYWNLZXlQYXJhbXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQzY1NzFGMTgxNkU1MDMwMDI1
NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MTlEQTI5QzE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0Rl
cHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxQzY1NzFGMTgxNkU1MDMwMDI1NkNERCAv
KiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTFDNjU3MjUxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUUxQzY1NzI3MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUM2NTcyNzE4MTZGOUZF
MDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1S
ZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNkIxODNGRTFBQjAwODkyRjEzIC8q
IENyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTIzM0YwRDE4
NUEzRTNCMDA4REZBRjUgLyogQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRTFCRDMzMUUxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFDMjY2REIxODMxOTkzNTAw
M0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFMUZFMTM3NzE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFCRDMzMUUxODJEOEY0MjAwQzA1RDlG
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUUxQzI2NkRCMTgzMTk5MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FL
ZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxRkUxMzc3
MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRl
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCRDMzMUExODJEOERERDAwQzA1RDlGIC8qIENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUJEMzMx
QzE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMUJEMzMxQzE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGht
UnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNUY4MkMxODIy
Q0ZFQzAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobVNIQTEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxOUFDM0VGMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEyMjQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxOUFDM0YxMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0
aG1TSEEyNTYuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKaW5kZXggMDNjODAx
M2ViYTExNzNlOGNlYTEzOGEwOGViNmIwYjQwYzFkN2MyOS4uNzZkNWRjZGUwOWEzZjkwNTQ3ODY3
MTE4MjI5NGUzM2Y3ZmMyZmFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCkBAIC0yOCwxNSArMjgs
MTUgQEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2Vu
UGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oIgotI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
QWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUht
YWNLZXlQYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1Bh
cmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgot
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oIgotI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtUnNhT2FlcFBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBh
cmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0
ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJl
Y2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRl
ZC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSlNDcnlwdG9PcGVyYXRpb25E
YXRhLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCkBAIC0xMjMsNyArMTIzLDcgQEAgc3Rh
dGljIGJvb2wgZ2V0SGFzaEFsZ29yaXRobShKU0RpY3Rpb25hcnkmIGRpY3Rpb25hcnksIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIKICAgICByZXR1cm4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpnZXRBbGdvcml0aG1JZGVudGlmaWVyKGV4ZWMsIGhhc2gsIHJlc3VsdCk7CiB9CiAKLXN0
YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzQ2JjUGFyYW1z
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZUFlc0NiY1BhcmFtcyhFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMzYsNyArMTM2LDcgQEAg
c3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVBZXNDYmNQYXJh
bXMoRXhlY1N0YXRlKiBleGVjLCBKU1YKICAgICBKU1ZhbHVlIGl2ID0gZ2V0UHJvcGVydHkoZXhl
YywgdmFsdWUuZ2V0T2JqZWN0KCksICJpdiIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIG51bGxwdHIpOwogCi0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0Fs
Z29yaXRobUFlc0NiY1BhcmFtcyk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENy
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQpOwogCiAgICAgQ3J5cHRvT3BlcmF0
aW9uRGF0YSBpdkRhdGE7CiAgICAgYXV0byBzdWNjZXNzID0gY3J5cHRvT3BlcmF0aW9uRGF0YUZy
b21KU1ZhbHVlKGV4ZWMsIGl2LCBpdkRhdGEpOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBS
ZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzQ2JjUGFyYW1zKEV4ZWNT
dGF0ZSogZXhlYywgSlNWCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVBZXNLZXlHZW5QYXJhbXMo
RXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZUFlc0tleUdlblBhcmFtcyhFeGVjU3Rh
dGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY0LDcgKzE2NCw3
IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzS2V5
R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1BZXNL
ZXlHZW5QYXJhbXMpOworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdv
cml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkKTsKIAogICAgIEpTVmFsdWUgbGVuZ3RoVmFs
dWUgPSBnZXRQcm9wZXJ0eSgmc3RhdGUsIHZhbHVlLmdldE9iamVjdCgpLCAibGVuZ3RoIik7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CkBAIC0xNzQsNyArMTc0LDcg
QEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVBZXNLZXlH
ZW5QYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwog
fQogCi1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNQ
YXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZUhtYWNQYXJhbXMoRXhlY1N0
YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4NSw3ICsxODUs
NyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNQ
YXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYQogICAgIH0KIAogICAgIEpTRGljdGlvbmFyeSBq
c0RpY3Rpb25hcnkoJnN0YXRlLCB2YWx1ZS5nZXRPYmplY3QoKSk7Ci0gICAgYXV0byByZXN1bHQg
PSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMpOworICAgIGF1dG8gcmVz
dWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCk7
CiAKICAgICBhdXRvIHN1Y2Nlc3MgPSBnZXRIYXNoQWxnb3JpdGhtKGpzRGljdGlvbmFyeSwgcmVz
dWx0LT5oYXNoLCBIYXNoUmVxdWlyZW1lbnQ6OlJlcXVpcmVkKTsKICAgICBBU1NFUlRfVU5VU0VE
KHNjb3BlLCBzY29wZS5leGNlcHRpb24oKSB8fCBzdWNjZXNzKTsKQEAgLTE5NSw3ICsxOTUsNyBA
QCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNQYXJh
bXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYQogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9
CiAKLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlSG1hY0tl
eVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlSG1hY0tleVBhcmFtcyhF
eGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjA2LDcg
KzIwNiw3IEBAIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRl
SG1hY0tleVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKCiAgICAgfQogCiAgICAgSlNEaWN0aW9u
YXJ5IGpzRGljdGlvbmFyeSgmc3RhdGUsIHZhbHVlLmdldE9iamVjdCgpKTsKLSAgICBhdXRvIHJl
c3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcyk7CisgICAg
YXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNE
ZXByZWNhdGVkKTsKIAogICAgIGF1dG8gc3VjY2VzcyA9IGdldEhhc2hBbGdvcml0aG0oanNEaWN0
aW9uYXJ5LCByZXN1bHQtPmhhc2gsIEhhc2hSZXF1aXJlbWVudDo6UmVxdWlyZWQpOwogICAgIEFT
U0VSVChzY29wZS5leGNlcHRpb24oKSB8fCBzdWNjZXNzKTsKQEAgLTIxOSw3ICsyMTksNyBAQCBz
dGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNLZXlQYXJh
bXMoRXhlY1N0YXRlJiBzdGF0ZSwgSgogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAK
LXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlUnNhS2V5R2Vu
UGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVSc2FLZXlHZW5QYXJhbXMo
RXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzMCw3
ICsyMzAsNyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0
ZVJzYUtleUdlblBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLAogICAgIH0KIAogICAgIEpTRGljdGlv
bmFyeSBqc0RpY3Rpb25hcnkoJnN0YXRlLCB2YWx1ZS5nZXRPYmplY3QoKSk7Ci0gICAgYXV0byBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyk7Cisg
ICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtc0RlcHJlY2F0ZWQpOwogCiAgICAgSlNWYWx1ZSBtb2R1bHVzTGVuZ3RoVmFsdWUgPSBnZXRQ
cm9wZXJ0eSgmc3RhdGUsIHZhbHVlLmdldE9iamVjdCgpLCAibW9kdWx1c0xlbmd0aCIpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwpAQCAtMjU0LDEzICsyNTQsMTMg
QEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FLZXlH
ZW5QYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwog
fQogCi1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVJzYUtl
eVBhcmFtc1dpdGhIYXNoKEV4ZWNTdGF0ZSYsIEpTVmFsdWUpCitzdGF0aWMgUmVmUHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVSc2FLZXlQYXJhbXNXaXRoSGFz
aChFeGVjU3RhdGUmLCBKU1ZhbHVlKQogewogICAgIC8vIFdlYkNyeXB0byBSU0EgYWxnb3JpdGht
cyBjdXJyZW50bHkgZG8gbm90IHRha2UgYW55IHBhcmFtZXRlcnMgdG8gaW1wb3J0S2V5LgotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNX
aXRoSGFzaERlcHJlY2F0ZWQpOwogfQogCi1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM+IGNyZWF0ZVJzYU9hZXBQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZh
bHVlKQorc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4g
Y3JlYXRlUnNhT2FlcFBhcmFtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yNzEsNyArMjcxLDcgQEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FPYWVwUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywgSlMKICAg
ICB9CiAKICAgICBKU0RpY3Rpb25hcnkganNEaWN0aW9uYXJ5KGV4ZWMsIHZhbHVlLmdldE9iamVj
dCgpKTsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtcyk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29y
aXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkKTsKIAogICAgIGF1dG8gc3VjY2VzcyA9IGdldEhh
c2hBbGdvcml0aG0oanNEaWN0aW9uYXJ5LCByZXN1bHQtPmhhc2gsIEhhc2hSZXF1aXJlbWVudDo6
UmVxdWlyZWQpOwogICAgIEFTU0VSVChzY29wZS5leGNlcHRpb24oKSB8fCBzdWNjZXNzKTsKQEAg
LTI5Niw3ICsyOTYsNyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IGNyZWF0ZVJzYU9hZXBQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKUwogICAgIHJldHVybiBXVEZN
b3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gY3JlYXRlUnNhU3NhUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCitz
dGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVS
c2FTc2FQYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IGNyZWF0ZVJzYVNzYVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKUwogICAgIH0KIAog
ICAgIEpTRGljdGlvbmFyeSBqc0RpY3Rpb25hcnkoJnN0YXRlLCB2YWx1ZS5nZXRPYmplY3QoKSk7
Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYVNzYVBh
cmFtcyk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtc0RlcHJlY2F0ZWQpOwogCiAgICAgYXV0byBzdWNjZXNzID0gZ2V0SGFzaEFsZ29y
aXRobShqc0RpY3Rpb25hcnksIHJlc3VsdC0+aGFzaCwgSGFzaFJlcXVpcmVtZW50OjpSZXF1aXJl
ZCk7CiAgICAgQVNTRVJUKHNjb3BlLmV4Y2VwdGlvbigpIHx8IHN1Y2Nlc3MpOwpAQCAtMzE3LDEx
ICszMTcsMTEgQEAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVh
dGVSc2FTc2FQYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlMKICAgICByZXR1cm4gV1RGTW92ZShy
ZXN1bHQpOwogfQogCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdChFeGVjU3RhdGUq
IGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVl
KQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KEV4ZWNTdGF0ZSog
ZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKICAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M6CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBOT1RfU1VQUE9SVEVEX0VSUik7CkBAIC0zNDEsNyArMzQxLDcgQEAgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0YKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5PVF9TVVBQT1JURURfRVJS
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpBRVNfS1c6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpITUFDOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6REg6CiAg
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKQEAgLTM1OSwxMSArMzU5
LDExIEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCitSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0
Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNB
RVNfUEtDUzFfdjFfNToKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBX1BTUzoKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5PVF9TVVBQT1JU
RURfRVJSKTsKQEAgLTM4Myw3ICszODMsNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAg
ICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgTk9UX1NVUFBPUlRFRF9FUlIpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19L
VzoKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6
CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpESDoKICAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgpAQCAtNDAxLDcgKzQwMSw3IEBAIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGb3JTaWduKEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCitSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1l
dGVyc0ZvclNpZ24oRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFs
Z29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTQz
OSw3ICs0MzksNyBAQCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRgogICAgIHJldHVybiBudWxscHRy
OwogfQogCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KEV4ZWNTdGF0ZSogZXhlYywg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCitSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGht
RGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShFeGVjU3RhdGUqIGV4ZWMsIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FFU19QS0NTMV92MV81OgpAQCAtNDc3LDcgKzQ3Nyw3IEBAIFJlZlB0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNG
b3JEaWdlc3QoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29y
aXRobSwgSlNWYWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGlnZXN0
KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpT
VmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC01MDEsNyArNTAxLDcgQEAgUmVm
UHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlNIQV8yNTY6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0Ogog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUxMjoKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsK
ICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkNPTkNBVDoKICAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhLREZfQ1RSOgogICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6UEJLREYyOgpAQCAtNTEyLDcgKzUxMiw3IEBAIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRl
cnNGb3JHZW5lcmF0ZUtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JHZW5lcmF0ZUtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGht
KSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81
OgpAQCAtNTQ5LDcgKzU0OSw3IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVLZXkoRXhlY1N0
YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkK
K1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlS2V5KEV4ZWNTdGF0ZSog
ZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCiB7CiAg
ICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC01ODEsNyArNTgxLDcgQEAgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0YKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVy
c0ZvckRlcml2ZUJpdHMoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGFsZ29yaXRobSwgSlNWYWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9y
RGVyaXZlQml0cyhFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxn
b3JpdGhtLCBKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNjEzLDcgKzYx
Myw3IEBAIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKK1JlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
c3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC02MjksMTEgKzYyOSwxMSBAQCBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTToKICAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DRkI6CiAgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOgogICAgICAgICByZXR1cm4gY3JlYXRlSG1hY1Bh
cmFtcygqZXhlYywgdmFsdWUpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
REg6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
MToKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ6CiAgICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OgpAQCAtNjQ5LDcgKzY0OSw3IEBA
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6
OmNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkKK1JlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yRXhwb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0p
IHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6
CkBAIC02NjYsNyArNjY2LDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0YKICAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkhNQUM6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpE
SDoKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8x
OgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzIyNDoKICAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTY6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oCmluZGV4
IGI1ZmFjZDA1ZDFkNGQyNWM0YWUxOGFhNmI0ZGZjMTZlOTk3ZTRlMzUuLjM4YTM0ZmQwZTk4MWIy
OGNkY2MzN2RlYjU2N2M4OWM4Mzc0ZjRiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oCkBAIC0zOCwyMiAr
MzgsMjIgQEAgY2xhc3MgSlNWYWx1ZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzOworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQ7CiAKIGNsYXNzIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgZ2V0QWxnb3JpdGhtSWRlbnRpZmllcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciYpOwogCi0gICAgc3Rh
dGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9y
RW5jcnlwdChKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBj
cmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChKU0M6OkV4ZWNTdGF0ZSosIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yU2lnbihKU0M6OkV4ZWNTdGF0ZSos
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJl
ZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5
KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVl
KTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBh
cmFtZXRlcnNGb3JEaWdlc3QoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5KEpTQzo6RXhlY1N0YXRlKiwg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVm
UHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVL
ZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFs
dWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRl
UGFyYW1ldGVyc0ZvckRlcml2ZUJpdHMoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gY3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtleShKU0M6OkV4ZWNTdGF0
ZSosIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRXhw
b3J0S2V5KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpK
U1ZhbHVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdChKU0M6OkV4ZWNTdGF0ZSosIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvckRl
Y3J5cHQoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpT
VmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JTaWduKEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5
KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVl
KTsKKyAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
PiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGlnZXN0KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVL
ZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVLZXkoSlNDOjpFeGVjU3RhdGUqLCBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJp
dmVCaXRzKEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpK
U1ZhbHVlKTsKKyAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5KEpTQzo6RXhlY1N0YXRlKiwgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgUmVmUHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9y
RXhwb3J0S2V5KEpTQzo6RXhlY1N0YXRlKiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlND
OjpKU1ZhbHVlKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwCmluZGV4IDRkZjNkNDk3MWMx
ZDQ0NWJlNDEwZGEyNDUwYjc0ODFiYzkyYTQ3Y2IuLjNlMWIxZWQwYWZiMjc3ZGVhYjhkNWNhMDhk
MjQ3ZjljNzQ4YWE4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcApAQCAtMjksOSArMjksOSBAQAog
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtLmgi
Ci0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRo
SGFzaC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVw
cmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleS5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUFF
Uy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmgiCkBAIC0xNjIsMjIg
KzE2MiwyMiBAQCBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6On5KU0NyeXB0b0tleVNlcmlh
bGl6YXRpb25KV0soKQogewogfQogCi1zdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IGNyZWF0ZUhNQUNQYXJhbWV0ZXJzKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaEZ1
bmN0aW9uKQorc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4g
Y3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rp
b24pCiB7Ci0gICAgYXV0byBobWFjUGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtcyk7CisgICAgYXV0byBobWFjUGFyYW1ldGVycyA9IGFkb3B0UmVmKCpu
ZXcgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQpOwogICAgIGhtYWNQYXJhbWV0
ZXJzLT5oYXNoID0gaGFzaEZ1bmN0aW9uOwogICAgIHJldHVybiBXVEZNb3ZlKGhtYWNQYXJhbWV0
ZXJzKTsKIH0KIAotc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVS
U0FLZXlQYXJhbWV0ZXJzV2l0aEhhc2goQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVu
Y3Rpb24pCitzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBj
cmVhdGVSU0FLZXlQYXJhbWV0ZXJzV2l0aEhhc2goQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBo
YXNoRnVuY3Rpb24pCiB7Ci0gICAgYXV0byByc2FLZXlQYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5l
dyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCk7CisgICAgYXV0byByc2FLZXlQ
YXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRo
SGFzaERlcHJlY2F0ZWQpOwogICAgIHJzYUtleVBhcmFtZXRlcnMtPmhhc0hhc2ggPSB0cnVlOwog
ICAgIHJzYUtleVBhcmFtZXRlcnMtPmhhc2ggPSBoYXNoRnVuY3Rpb247CiAgICAgcmV0dXJuIFdU
Rk1vdmUocnNhS2V5UGFyYW1ldGVycyk7CiB9CiAKLU9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBh
aXI+IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25jaWxlQWxnb3JpdGhtKENyeXB0
b0FsZ29yaXRobSogc3VnZ2VzdGVkQWxnb3JpdGhtLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
KiBzdWdnZXN0ZWRQYXJhbWV0ZXJzKSBjb25zdAorT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFp
cj4gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRv
QWxnb3JpdGhtKiBzdWdnZXN0ZWRBbGdvcml0aG0sIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkKiBzdWdnZXN0ZWRQYXJhbWV0ZXJzKSBjb25zdAogewogICAgIFZNJiB2bSA9IG1f
ZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xODksNyArMTg5LDcgQEAgT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gSlNDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oQ3IKIAogICAgIGF1dG8mIGFs
Z29yaXRobVJlZ2lzdHkgPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2luZ2xldG9uKCk7CiAg
ICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtOwotICAgIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzOworICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gcGFyYW1ldGVyczsKICAgICBpZiAobV9qd2tBbGdvcml0
aG1OYW1lID09ICJIUzI1NiIpIHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0
eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQyk7CiAgICAgICAgIHBhcmFt
ZXRlcnMgPSBjcmVhdGVITUFDUGFyYW1ldGVycyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpT
SEFfMjU2KTsKQEAgLTIxMCwyOCArMjEwLDI4IEBAIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBh
aXI+IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25jaWxlQWxnb3JpdGhtKENyCiAg
ICAgICAgIHBhcmFtZXRlcnMgPSBjcmVhdGVSU0FLZXlQYXJhbWV0ZXJzV2l0aEhhc2goQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUxMik7CiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29y
aXRobU5hbWUgPT0gIlJTQTFfNSIpIHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVn
aXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNSk7
Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJzYUtl
eVBhcmFtc1dpdGhIYXNoKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkKTsKICAgICB9IGVsc2Ug
aWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiUlNBLU9BRVAiKSB7CiAgICAgICAgIGFsZ29yaXRo
bSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QV9PQUVQKTsKICAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRo
SGFzaChDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMSk7CiAgICAgfSBlbHNlIGlmICht
X2p3a0FsZ29yaXRobU5hbWUgPT0gIkExMjhDQkMiKSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGFs
Z29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMp
OwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1O
YW1lID09ICJBMTkyQ0JDIikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5
LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDKTsKLSAgICAgICAgcGFy
YW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAg
ICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkKTsKICAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTI1NkNC
QyIpIHsKICAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9w
dFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICBwYXJhbWV0ZXJz
ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7CiAg
ICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkExMjhLVyIpIHsKICAgICAgICAg
YWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0tXKTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKICAgICB9IGVsc2UgaWYgKG1f
andrQWxnb3JpdGhtTmFtZSA9PSAiQTE5MktXIikgewogICAgICAgICBhbGdvcml0aG0gPSBhbGdv
cml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1cpOwot
ICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwogICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1l
ID09ICJBMjU2S1ciKSB7CiAgICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3Jl
YXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVyk7Ci0gICAgICAgIHBhcmFtZXRl
cnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOworICAgICAgICBw
YXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVjLCBzY29w
ZSwgIlVuc3VwcG9ydGVkIEpXSyBhbGdvcml0aG0gIiArIG1fandrQWxnb3JpdGhtTmFtZSk7CiAg
ICAgICAgIHJldHVybiBOdWxsb3B0OwpAQCAtMjQ3LDE0ICsyNDcsMTQgQEAgT3B0aW9uYWw8Q3J5
cHRvQWxnb3JpdGhtUGFpcj4gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVB
bGdvcml0aG0oQ3IKICAgICAgICAgcmV0dXJuIE51bGxvcHQ7CiAKICAgICBpZiAoYWxnb3JpdGht
LT5pZGVudGlmaWVyKCkgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQykgewotICAg
ICAgICBpZiAoZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcz4oKnBhcmFtZXRlcnMp
Lmhhc2ggIT0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcz4oKnN1Z2dlc3RlZFBh
cmFtZXRlcnMpLmhhc2gpCisgICAgICAgIGlmIChkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zRGVwcmVjYXRlZD4oKnBhcmFtZXRlcnMpLmhhc2ggIT0gZG93bmNhc3Q8Q3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJzKS5oYXNoKQog
ICAgICAgICAgICAgcmV0dXJuIE51bGxvcHQ7CiAgICAgICAgIHJldHVybiBDcnlwdG9BbGdvcml0
aG1QYWlyIHsgc3VnZ2VzdGVkQWxnb3JpdGhtLCBzdWdnZXN0ZWRQYXJhbWV0ZXJzIH07CiAgICAg
fQogICAgIGlmIChhbGdvcml0aG0tPmlkZW50aWZpZXIoKSA9PSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNQogICAgICAgICB8fCBhbGdvcml0aG0tPmlkZW50aWZp
ZXIoKSA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUCkgewotICAgICAgICBD
cnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCYgcnNhS2V5UGFyYW1ldGVycyA9IGRv
d25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoPigqcGFyYW1ldGVycyk7
Ci0gICAgICAgIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoJiBzdWdnZXN0ZWRS
U0FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2g+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJzKTsKKyAgICAgICAgQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkJiByc2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkPigqcGFyYW1ldGVy
cyk7CisgICAgICAgIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRl
ZCYgc3VnZ2VzdGVkUlNBS2V5UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJz
YUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZD4oKnN1Z2dlc3RlZFBhcmFtZXRlcnMpOwogICAg
ICAgICBBU1NFUlQocnNhS2V5UGFyYW1ldGVycy5oYXNIYXNoKTsKICAgICAgICAgaWYgKHN1Z2dl
c3RlZFJTQUtleVBhcmFtZXRlcnMuaGFzSGFzaCkgewogICAgICAgICAgICAgaWYgKHN1Z2dlc3Rl
ZFJTQUtleVBhcmFtZXRlcnMuaGFzaCAhPSByc2FLZXlQYXJhbWV0ZXJzLmhhc2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25K
V0suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlv
bkpXSy5oCmluZGV4IDk2OWVlMGQ4MTk5NzM1ZTk4ZDQ0ZDllYjNmNjI4OWIyN2ZiNTc5Y2YuLjNi
NzFlOTI1ODNjMzhmY2NjN2ZhM2QyYjEyMTAyOTcyMTcwMTRkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5o
CkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEpTT2JqZWN0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM7CitjbGFzcyBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDsKIGNsYXNzIENyeXB0b0tleTsKIGNsYXNzIENyeXB0b0tl
eURhdGFSU0FDb21wb25lbnRzOwogCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgU3RyaW5nIHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ3J5cHRvS2V5
Jik7CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25j
aWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSosIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMq
KSBjb25zdCBvdmVycmlkZTsKKyAgICBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNv
bmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQqKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVjb25jaWxlVXNhZ2Vz
KENyeXB0b0tleVVzYWdlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNvbmNpbGVFeHRy
YWN0YWJsZShib29sJikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAKaW5kZXggZDRl
YjdjNjM3NGI4MDI0N2IxZTZlMTNkNjMzYzI2YmJhYTU2NmEyNS4uN2Q4MGE4NjFlZDdjOGU5NGEw
ZGY0YWRhZTEyYjczZWZkMTA0NjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcApAQCAtMjksNyArMjks
NyBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgorI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhLmgiCiAjaW5jbHVk
ZSAiQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oIgpAQCAtNDU0LDcgKzQ1NCw3IEBAIEpTVmFs
dWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCiAg
ICAgcmV0dXJuIHByb21pc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGltcG9ydEtleShFeGVjU3RhdGUm
IHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0LCBDcnlwdG9PcGVyYXRpb25EYXRhIGRh
dGEsIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGFsZ29yaXRobSwgUmVmUHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVz
YWdlIGtleVVzYWdlcywgQ3J5cHRvQWxnb3JpdGhtOjpLZXlDYWxsYmFjayBjYWxsYmFjaywgQ3J5
cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorc3RhdGljIHZvaWQg
aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQsIENy
eXB0b09wZXJhdGlvbkRhdGEgZGF0YSwgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGht
LCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IHBhcmFtZXRlcnMs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIGtleVVzYWdlcywgQ3J5cHRvQWxnb3Jp
dGhtOjpLZXlDYWxsYmFjayBjYWxsYmFjaywgQ3J5cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sg
ZmFpbHVyZUNhbGxiYWNrKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTMzLDcgKzUzMyw3IEBAIEpTVmFs
dWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmltcG9ydEtleShFeGVjU3RhdGUmIHN0YXRlKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+
IGFsZ29yaXRobTsKLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gcGFyYW1l
dGVyczsKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IHBh
cmFtZXRlcnM7CiAgICAgaWYgKCFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS5pc051bGwoKSkg
ewogICAgICAgICBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwogICAgICAgICBBU1NFUlQoc2NvcGUuZXhjZXB0
aW9uKCkgfHwgYWxnb3JpdGhtKTsKQEAgLTc1Miw3ICs3NTIsNyBAQCBKU1ZhbHVlIEpTV2ViS2l0
U3VidGxlQ3J5cHRvOjp1bndyYXBLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAKICAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiB1bndyYXBwZWRL
ZXlBbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHVud3Jh
cHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnM7CisgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzOwogICAg
IGlmICghc3RhdGUudW5jaGVja2VkQXJndW1lbnQoNCkuaXNOdWxsKCkpIHsKICAgICAgICAgdW53
cmFwcGVkS2V5QWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpKTsKICAgICAgICAgQVNTRVJUKHNjb3BlLmV4Y2VwdGlv
bigpIHx8IHVud3JhcHBlZEtleUFsZ29yaXRobSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Dcnlw
dG9BbGdvcml0aG0uY3BwCmluZGV4IDQ0Y2JiMDI5ZTg3NzZkNzY2MDgxZDc3ZDBkZDQyNjNjZmUx
ODUwNjUuLjE0NGU3ZmYwN2Q3N2ZlODM4NDBjMTEyZjNiM2E2NjdjMjQ0MzI5NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwCkBAIC00MCw1NyArNDAsNTcgQEAg
Q3J5cHRvQWxnb3JpdGhtOjp+Q3J5cHRvQWxnb3JpdGhtKCkKIHsKIH0KIAotdm9pZCBDcnlwdG9B
bGdvcml0aG06OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0
IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRo
bTo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNv
bnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG06OmRlY3J5cHQoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobTo6ZGVjcnlwdChjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9p
ZCBDcnlwdG9BbGdvcml0aG06OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYs
IGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0Fs
Z29yaXRobTo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYs
IGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBO
T1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG06OnZlcmlmeShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdv
cml0aG06OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYs
IGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENy
eXB0b0FsZ29yaXRobTo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG06OmRpZ2VzdChjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlwdG9B
bGdvcml0aG06OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBi
b29sLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG06OmdlbmVyYXRlS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCwgQ3J5cHRv
S2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogfQogCi12b2lkIENy
eXB0b0FsZ29yaXRobTo6ZGVyaXZlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
LCBjb25zdCBDcnlwdG9LZXkmLCBDcnlwdG9BbGdvcml0aG0qLCBib29sLCBDcnlwdG9LZXlVc2Fn
ZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBDcnlwdG9BbGdvcml0aG06OmRlcml2ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIENyeXB0b0FsZ29yaXRobSosIGJvb2ws
IENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiwgRXhjZXB0aW9u
Q29kZSYgZWMpCiB7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAotdm9pZCBDcnlw
dG9BbGdvcml0aG06OmRlcml2ZUJpdHMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYs
IGNvbnN0IENyeXB0b0tleSYsIHVuc2lnbmVkIGxvbmcsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkZXJp
dmVCaXRzKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3Qg
Q3J5cHRvS2V5JiwgdW5zaWduZWQgbG9uZywgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9
CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sLCBDcnlwdG9LZXlVc2FnZSwg
S2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBD
cnlwdG9BbGdvcml0aG06OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sLCBDcnlwdG9LZXlVc2FnZSwg
S2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtOjplbmNy
eXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwg
VmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjplbmNyeXB0Rm9yV3Jh
cEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVy
cywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZW5jcnlwdChwYXJhbWV0ZXJzLCBrZXksIGRh
dGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0K
IAotdm9pZCBDcnlwdG9BbGdvcml0aG06OmRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ss
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lk
IENyeXB0b0FsZ29yaXRobTo6ZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXks
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgZGVjcnlwdChwYXJhbWV0ZXJzLCBrZXksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBX
VEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Dcnlw
dG9BbGdvcml0aG0uaAppbmRleCA4YmE4M2IzZTFhZTFkNDJjNGJhZDAwYWEyZTA3OTc0N2U3MWE2
NDliLi42OGNjMjM1MDA1OGNlNGRmNzNjNDRlMWU1YmU5MThhZDA0YzdmODVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5OwogY2xhc3MgQ3J5cHRvS2V5UGFpcjsKIGNsYXNzIENy
eXB0b0tleURhdGE7CkBAIC02MCwxOSArNjAsMTkgQEAgcHVibGljOgogICAgIHR5cGVkZWYgc3Rk
OjpmdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpPiBWZWN0b3JDYWxsYmFjazsK
ICAgICB0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBWb2lkQ2FsbGJhY2s7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29u
c3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAg
IHZpcnR1YWwgdm9pZCBkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBj
b25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdmlydHVhbCB2b2lkIHNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNv
bnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBj
b25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlV
c2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRlcml2ZUtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiBiYXNlS2V5LCBDcnlw
dG9BbGdvcml0aG0qIGRlcml2ZWRLZXlUeXBlLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlV
c2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRlcml2ZUJpdHMoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYgYmFzZUtleSwgdW5zaWduZWQgbG9u
ZyBsZW5ndGgsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGVuY3J5cHQo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9L
ZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2
b2lkIGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBj
b25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdmlydHVhbCB2b2lkIHNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdmlydHVhbCB2b2lkIHZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1
YWwgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVyaXZlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBiYXNlS2V5LCBDcnlwdG9BbGdvcml0aG0q
IGRlcml2ZWRLZXlUeXBlLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7
CisgICAgdmlydHVhbCB2b2lkIGRlcml2ZUJpdHMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmIGJhc2VLZXksIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIC8vIFRoZXNlIGFy
ZSBvbmx5IGRpZmZlcmVudCBmcm9tIGVuY3J5cHQvZGVjcnlwdCBiZWNhdXNlIHNvbWUgYWxnb3Jp
dGhtcyBtYXkgbm90IGV4cG9zZSBlbmNyeXB0L2RlY3J5cHQuCi0gICAgdmlydHVhbCB2b2lkIGVu
Y3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBD
cnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmly
dHVhbCB2b2lkIGRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGRlY3J5cHRGb3JV
bndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiAKIHBy
b3RlY3RlZDoKICAgICBDcnlwdG9BbGdvcml0aG0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzNzAzZTQ2YjcyYjkzOWNmODJlYTU5OWI2ZWVkN2NhMDBkNmQzMmQwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzX2gK
LSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc19oCi0KLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9U
eXBlQ2FzdHMuaD4KLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgOiBwdWJsaWMgUmVmQ291
bnRlZDxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycygpIHsgfQotICAgIHZpcnR1YWwgfkNyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMoKSB7IH0KLQotICAgIGVudW0gY2xhc3MgQ2xhc3MgewotICAgICAgICBOb25lLAotICAgICAg
ICBBZXNDYmNQYXJhbXMsCi0gICAgICAgIEFlc0tleUdlblBhcmFtcywKLSAgICAgICAgSG1hY0tl
eVBhcmFtcywKLSAgICAgICAgSG1hY1BhcmFtcywKLSAgICAgICAgUnNhS2V5R2VuUGFyYW1zLAot
ICAgICAgICBSc2FLZXlQYXJhbXNXaXRoSGFzaCwKLSAgICAgICAgUnNhT2FlcFBhcmFtcywKLSAg
ICAgICAgUnNhU3NhUGFyYW1zCi0gICAgfTsKLSAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnND
bGFzcygpIGNvbnN0IHsgcmV0dXJuIENsYXNzOjpOb25lOyB9Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJ
VEhNX1BBUkFNRVRFUlMoVG9DbGFzc05hbWUpIFwKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtIyNUb0NsYXNzTmFtZSkgXAotICAgIHN0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKSB7IHJldHVybiBwYXJhbWV0ZXJzLnBhcmFtZXRlcnNDbGFzcygpID09IFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM6OkNsYXNzOjpUb0NsYXNzTmFtZTsgfSBcCi1TUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBU
TykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWQwNjE5ZDI2NDQ3YjgzZTA4Njg3ZWMyOGQ0ZDkwZmViNTEyY2Fl
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgorCisjaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgOiBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4geworcHVibGljOgorICAgIENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkKCkgeyB9CisgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQoKSB7IH0KKworICAgIGVudW0gY2xhc3MgQ2xhc3MgeworICAg
ICAgICBOb25lLAorICAgICAgICBBZXNDYmNQYXJhbXMsCisgICAgICAgIEFlc0tleUdlblBhcmFt
cywKKyAgICAgICAgSG1hY0tleVBhcmFtcywKKyAgICAgICAgSG1hY1BhcmFtcywKKyAgICAgICAg
UnNhS2V5R2VuUGFyYW1zLAorICAgICAgICBSc2FLZXlQYXJhbXNXaXRoSGFzaCwKKyAgICAgICAg
UnNhT2FlcFBhcmFtcywKKyAgICAgICAgUnNhU3NhUGFyYW1zCisgICAgfTsKKyAgICB2aXJ0dWFs
IENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IHsgcmV0dXJuIENsYXNzOjpOb25lOyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoVG9DbGFzc05hbWUpIFwKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtIyNUb0NsYXNzTmFt
ZSMjRGVwcmVjYXRlZCkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycykgeyByZXR1cm4g
cGFyYW1ldGVycy5wYXJhbWV0ZXJzQ2xhc3MoKSA9PSBXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZDo6Q2xhc3M6OlRvQ2xhc3NOYW1lOyB9IFwKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfRU5EKCkKKworI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlTZXJpYWxpemF0aW9uLmgKaW5kZXggYWQw
NjQwMmRkNDcxNmQ1OTk1ZGE5ZGU5MjljYWY1NjA1MzBhNGM5Mi4uYjUxMmQ0OTRjZjZkZjlkY2Vk
MDgzMzE2YTZiOTZkYjNkMmIxYjY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbi5oCkBAIC0zNiwxNCArMzYsMTQgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtOwotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyczsKK2NsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkOwogY2xh
c3MgQ3J5cHRvS2V5RGF0YTsKIAogdHlwZWRlZiBzdGQ6OnBhaXI8Y29uc3QgdWludDhfdCosIHNp
emVfdD4gQ3J5cHRvT3BlcmF0aW9uRGF0YTsKIAogc3RydWN0IENyeXB0b0FsZ29yaXRobVBhaXIg
ewogICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGFsZ29yaXRobTsKLSAgICBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gcGFyYW1ldGVyczsKKyAgICBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IHBhcmFtZXRlcnM7CiB9OwogCiBjbGFzcyBDcnlw
dG9LZXlTZXJpYWxpemF0aW9uIHsKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfkNyeXB0b0tleVNlcmlhbGl6YXRpb24oKSB7IH0KIAogICAgIC8vIFJldHVybnMgZmFsc2Ug
aWYgc3VnZ2VzdGVkIGFsZ29yaXRobSB3YXMgbm90IGNvbXBhdGlibGUgd2l0aCBvbmUgc3RvcmVk
IGluIHRoZSBzZXJpYWxpemF0aW9uLgotICAgIHZpcnR1YWwgT3B0aW9uYWw8Q3J5cHRvQWxnb3Jp
dGhtUGFpcj4gcmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSosIENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxDcnlwdG9B
bGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiwgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFs
IHZvaWQgcmVjb25jaWxlVXNhZ2VzKENyeXB0b0tleVVzYWdlJikgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCByZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29uc3QgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmNwcAppbmRleCAwODkwODYzNjA2NGQ0NmQ2OGU2NWViYjA0MGJkZGIyYTM5YWFi
MDhjLi44ZjQxOWRjNDU4MzYyOGI3YmVkZjM1MzVmZGI3MThhZTc0OWM5MDcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JD
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmNwcApAQCAtMjgsOCArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
QWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgog
I2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgpAQCAtNTYsNyArNTYsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENy
eXB0b0FsZ29yaXRobUFFU19DQkM6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzX2lk
ZW50aWZpZXI7CiB9CiAKLWJvb2wgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6a2V5QWxnb3JpdGht
TWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMmLCBjb25zdCBDcnlwdG9L
ZXkmIGtleSkgY29uc3QKK2Jvb2wgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6a2V5QWxnb3JpdGht
TWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0CiB7CiAgICAgaWYgKGtleS5hbGdvcml0aG1JZGVudGlm
aWVyKCkgIT0gc19pZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC02NSw5ICs2
NSw5IEBAIGJvb2wgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhj
b25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQzo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgY29uc3QgQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiBhZXNDQkNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9B
bGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiBhZXNDQkNQYXJhbWV0ZXJzID0gZG93bmNh
c3Q8Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAK
ICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoYWVzQ0JDUGFyYW1ldGVycywga2V5KSkgewog
ICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtNzcsOSArNzcsOSBAQCB2b2lkIENy
eXB0b0FsZ29yaXRobUFFU19DQkM6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyYgcGFyYW1ldGVycwogICAgIHBsYXRmb3JtRW5jcnlwdChhZXNDQkNQYXJhbWV0ZXJzLCBk
b3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZN
b3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNf
Q0JDOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBW
ZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVj
dG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXMmIGFlc0NCQ1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0Rl
cHJlY2F0ZWQmIGFlc0NCQ1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxnb3JpdGht
TWF0Y2hlcyhhZXNDQkNQYXJhbWV0ZXJzLCBrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBP
UlRFRF9FUlI7CkBAIC04OSw5ICs4OSw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzCiAgICAg
cGxhdGZvcm1EZWNyeXB0KGFlc0NCQ1BhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleUFFUz4o
a2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwg
ZWMpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmdlbmVyYXRlS2V5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5
cHRvQWxnb3JpdGhtQUVTX0NCQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tl
eVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlw
dG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMmIGFlc1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlw
dG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0
b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQmIGFlc1BhcmFtZXRlcnMgPSBkb3du
Y2FzdDxDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJz
KTsKIAogICAgIFJlZlB0cjxDcnlwdG9LZXlBRVM+IHJlc3VsdCA9IENyeXB0b0tleUFFUzo6Z2Vu
ZXJhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywgYWVzUGFyYW1ldGVycy5s
ZW5ndGgsIGV4dHJhY3RhYmxlLCB1c2FnZXMpOwogICAgIGlmICghcmVzdWx0KSB7CkBAIC0xMDIs
NyArMTAyLDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpnZW5lcmF0ZUtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWUKICAgICBjYWxsYmFjayhyZXN1bHQu
Z2V0KCksIG51bGxwdHIpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmltcG9y
dEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0
YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNh
bGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3Zv
aWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9v
bCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWlzPENy
eXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihrZXlEYXRhKSkgewogICAgICAgICBlYyA9IE5PVF9T
VVBQT1JURURfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCmluZGV4IGE2MWJhM2EzOWI5YmE0YzBjYTMw
ZmI3OGU0ODZmZGM3MmNmMjY1MDQuLjY5Y2VjY2EzZmRlYWUyMzg1Y2I5NWZjYTdhZDQzYzM1ZjNh
MGE0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19DQkMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXM7CitjbGFzcyBD
cnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5QUVT
OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDIGZpbmFsIDogcHVibGljIENyeXB0b0Fs
Z29yaXRobSB7CkBAIC00NCwxOCArNDQsMTggQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGVu
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tl
eSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENy
eXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYs
IFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlS2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRyYWN0YWJs
ZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgaW1w
b3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3Qg
Q3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDKCk7CiAgICAg
dmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQygpOwogCi0gICAgYm9vbCBrZXlBbGdvcml0
aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYgYWxnb3JpdGhtUGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7Ci0gICAgdm9pZCBwbGF0Zm9ybUVuY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVT
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgcGxhdGZv
cm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYsIGNvbnN0IENyeXB0
b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29s
IGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVw
cmVjYXRlZCYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7Cisg
ICAgdm9pZCBwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1z
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5j
cHAKaW5kZXggYzE3NzQ0MzRlYzY3Mjc2ZWU3ZWU3Mzc0NDYyMmViYTdhZDY4ZTg3Zi4uY2VlNTdj
NWU1NDc1NzQ2MDY0ZDBkNGZkZmU1NDRmNmRhOTJmODA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3Bw
CkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlB
RVMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTY0LDcgKzY0LDcgQEAgYm9vbCBDcnlwdG9BbGdvcml0aG1B
RVNfS1c6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjplbmNyeXB0
Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRv
S2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6ZW5jcnlwdEZvcldyYXBLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkm
IGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoa2V5KSkgewogICAgICAgICBlYyA9
IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRo
bUFFU19LVzo6ZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsCiAgICAgcGxhdGZvcm1FbmNyeXB0KGRvd25jYXN0PENyeXB0b0tleUFFUz4oa2V5KSwgZGF0
YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQog
Ci12b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6ZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0
b0FsZ29yaXRobUFFU19LVzo6ZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
a2V5QWxnb3JpdGhtTWF0Y2hlcyhrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9F
UlI7CkBAIC04NCw5ICs4NCw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpkZWNyeXB0
Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmCiAgICAgcGxhdGZv
cm1EZWNyeXB0KGRvd25jYXN0PENyeXB0b0tleUFFUz4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0Fs
Z29yaXRobUFFU19LVzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBL
ZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmdlbmVy
YXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0
ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFp
ckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1z
JiBhZXNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1z
PihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNE
ZXByZWNhdGVkJiBhZXNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBSZWZQdHI8Q3J5cHRvS2V5
QUVTPiByZXN1bHQgPSBDcnlwdG9LZXlBRVM6OmdlbmVyYXRlKENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkFFU19LVywgYWVzUGFyYW1ldGVycy5sZW5ndGgsIGV4dHJhY3RhYmxlLCB1c2FnZXMp
OwogICAgIGlmICghcmVzdWx0KSB7CkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBw
YXJhbWV0CiAgICAgY2FsbGJhY2socmVzdWx0LmdldCgpLCBudWxscHRyKTsKIH0KIAotdm9pZCBD
cnlwdG9BbGdvcml0aG1BRVNfS1c6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjppbXBv
cnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1
c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIGlmICghaXM8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURh
dGEpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCmlu
ZGV4IDUxNDNjYjljODg1YjEwNGVmM2Y0OTg0MTA0MDBiYTgwZWI0MzM1MWIuLjc2NTc2YjdiMzcw
YjYzMjAzYmQ0ZDkxNDM5YmZiNGM3NTI4MWM5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCkBAIC00Mywx
MCArNDMsMTAgQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGVuY3J5cHRGb3JXcmFwS2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkZWNyeXB0
Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlw
dG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9v
bCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25z
dCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOworICAgIHZvaWQgZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWNyeXB0Rm9yVW53
cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3Qg
Q3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRl
OworICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWly
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJs
ZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0
b0FsZ29yaXRobUFFU19LVygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAppbmRleCA5NmQ5ZGEzMTk1Zjk2MTQ3
ODJjM2ZmNDZmYjM3NDdjY2I5MTFiZmZmLi43MDQyNzVmOGIxODEyOGNhZjRmNTZhNGU1ZGE2ODg3
Mjc0YmMyMDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1ITUFDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcApAQCAtMjgsOCArMjgsOCBAQAogCiAjaWYgRU5B
QkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFy
YW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIgorI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmgiCisjaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlE
YXRhT2N0ZXRTZXF1ZW5jZS5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUhNQUMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCkBAIC01Niw3ICs1Niw3IEBAIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJu
IHNfaWRlbnRpZmllcjsKIH0KIAotYm9vbCBDcnlwdG9BbGdvcml0aG1ITUFDOjprZXlBbGdvcml0
aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIHBhcmFtZXRlcnMsIGNv
bnN0IENyeXB0b0tleSYga2V5KSBjb25zdAorYm9vbCBDcnlwdG9BbGdvcml0aG1ITUFDOjprZXlB
bGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVk
JiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSkgY29uc3QKIHsKICAgICBpZiAoa2V5
LmFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBzX2lkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTY3LDkgKzY3LDkgQEAgYm9vbCBDcnlwdG9BbGdvcml0aG1ITUFDOjprZXlBbGdv
cml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIHAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBjb25z
dCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENy
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENy
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlm
ICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhobWFjUGFyYW1ldGVycywga2V5KSkgewogICAgICAgICBl
YyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtNzksOSArNzksOSBAQCB2b2lkIENyeXB0b0FsZ29y
aXRobUhNQUM6OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgY29ucwogICAgIHBsYXRmb3JtU2lnbihobWFjUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRv
S2V5SE1BQz4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNh
bGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnZlcmlmeShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkm
IGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhwZWN0ZWRTaWduYXR1cmUsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlw
dG9BbGdvcml0aG1ITUFDOjp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBleHBlY3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtcyYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZCYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAKICAgICBpZiAoIWtleUFsZ29yaXRobU1h
dGNoZXMoaG1hY1BhcmFtZXRlcnMsIGtleSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVE
X0VSUjsKQEAgLTkxLDkgKzkxLDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjp2ZXJpZnko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY28KICAgICBwbGF0
Zm9ybVZlcmlmeShobWFjUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5SE1BQz4oa2V5KSwg
ZXhwZWN0ZWRTaWduYXR1cmUsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1
cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpnZW5lcmF0
ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
Cit2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29u
c3QgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcyYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2Fz
dDxDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBD
cnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZCYgaG1hY1BhcmFtZXRlcnMgPSBk
b3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVy
cyk7CiAKICAgICBSZWZQdHI8Q3J5cHRvS2V5SE1BQz4gcmVzdWx0ID0gQ3J5cHRvS2V5SE1BQzo6
Z2VuZXJhdGUoaG1hY1BhcmFtZXRlcnMuaGFzTGVuZ3RoID8gaG1hY1BhcmFtZXRlcnMubGVuZ3Ro
IDogMCwgaG1hY1BhcmFtZXRlcnMuaGFzaCwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CiAgICAgaWYg
KCFyZXN1bHQpIHsKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6
OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcgog
ICAgIGNhbGxiYWNrKHJlc3VsdC5nZXQoKSwgbnVsbHB0cik7CiB9CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtSE1BQzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OmltcG9y
dEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVy
cywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWlzPENyeXB0b0tleURhdGFPY3RldFNlcXVl
bmNlPihrZXlEYXRhKSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtMTEy
LDcgKzExMiw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6aW1wb3J0S2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsCiAgICAgfQogICAgIGNvbnN0IENy
eXB0b0tleURhdGFPY3RldFNlcXVlbmNlJiBrZXlEYXRhT2N0ZXRTZXF1ZW5jZSA9IGRvd25jYXN0
PENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihrZXlEYXRhKTsKIAotICAgIGNvbnN0IENyeXB0
b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtc0RlcHJlY2F0ZWQmIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgUmVmUHRyPENy
eXB0b0tleUhNQUM+IHJlc3VsdCA9IENyeXB0b0tleUhNQUM6OmNyZWF0ZShrZXlEYXRhT2N0ZXRT
ZXF1ZW5jZS5vY3RldFNlcXVlbmNlKCksIGhtYWNQYXJhbWV0ZXJzLmhhc2gsIGV4dHJhY3RhYmxl
LCB1c2FnZSk7CiAgICAgY2FsbGJhY2soKnJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmgKaW5kZXggMzE3NTQ2
MDdiMDg0MzJmNmQ2NjliYzZlZWRkZjNjMWNhNDcyMGM2NS4uNWI2N2UyZGYwMmVmYjliYWRiZDg5
NDgyYmUyMTAyMTc0OWM2ZjM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXM7Citj
bGFzcyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZDsKIGNsYXNzIENyeXB0b0tl
eUhNQUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUhNQUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtIHsKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQg
c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5Jiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQg
dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdlbmVyYXRlS2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbXBvcnRLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBz
aWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5
cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJl
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQg
Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobUhN
QUMoKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1ITUFDKCk7CiAKLSAgICBib29sIGtl
eUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYgYWxnb3Jp
dGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7Ci0gICAgdm9pZCBwbGF0Zm9y
bVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYsIGNvbnN0IENyeXB0b0tleUhN
QUMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBwbGF0
Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiwgY29uc3QgQ3J5cHRv
S2V5SE1BQyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0
Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYgYWxnb3JpdGht
UGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7CisgICAgdm9pZCBwbGF0Zm9ybVNp
Z24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlw
dG9LZXlITUFDJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgcGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0
ZWQmLCBjb25zdCBDcnlwdG9LZXlITUFDJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2ln
bmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNwcAppbmRleCBmZWZhYTM1ZWI5OWM0MTZm
YmNiNzBhNDcyOWUwNjMzMWY4YTkyMmE3Li5kYjViZTQ2ZThlYzYxNGUyZjYyMDc4ZWNlODY3ZjYx
YmJhZWMyOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNwcApAQCAt
MjgsOCArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtl
eUdlblBhcmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQ
YXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVJTQS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NT
MV92MV81OjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0tleSYga2V5KQogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmVu
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVj
KQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjplbmNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXks
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGtleSkpIHsKICAgICAgICAgZWMgPSBOT1Rf
U1VQUE9SVEVEX0VSUjsKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FF
U19QS0NTMV92MV81OjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLAog
ICAgIHBsYXRmb3JtRW5jcnlwdChkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKIH0KIAotdm9p
ZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjpkZWNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNTo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgha2V5QWxnb3Jp
dGhtTWF0Y2hlcyhrZXkpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CkBAIC04
NSw5ICs4NSw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6ZGVjcnlw
dChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwKICAgICBwbGF0Zm9ybURlY3J5cHQo
ZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RG
TW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBL
ZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzLCBL
ZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtl
eUdlblBhcmFtcyYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtl
eUdlblBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
R2VuUGFyYW1zRGVwcmVjYXRlZCYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29y
aXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAgYXV0byBr
ZXlQYWlyQ2FsbGJhY2sgPSBbY2FsbGJhY2tdKENyeXB0b0tleVBhaXImIHBhaXIpIHsKICAgICAg
ICAgY2FsbGJhY2sobnVsbHB0ciwgJnBhaXIpOwpAQCAtOTYsOSArOTYsOSBAQCB2b2lkIENyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcgogICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzUsIHJzYVBhcmFtZXRlcnMuaGFzaCwgcnNh
UGFyYW1ldGVycy5oYXNIYXNoLCByc2FQYXJhbWV0ZXJzLm1vZHVsdXNMZW5ndGgsIHJzYVBhcmFt
ZXRlcnMucHVibGljRXhwb25lbnQsIGV4dHJhY3RhYmxlLCB1c2FnZXMsIFdURk1vdmUoa2V5UGFp
ckNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKIH0KIAotdm9pZCBDcnlwdG9B
bGdvcml0aG1SU0FFU19QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9v
bCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lk
IENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmltcG9ydEtleShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5
RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtl
eUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2gmIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJh
bXNXaXRoSGFzaD4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5
UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkJiByc2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKICAg
ICBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgcnNhQ29tcG9uZW50cyA9IGRvd25j
YXN0PENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzPihrZXlEYXRhKTsKIAogICAgIFJlZlB0cjxD
cnlwdG9LZXlSU0E+IHJlc3VsdCA9IENyeXB0b0tleVJTQTo6Y3JlYXRlKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzUsIHJzYVBhcmFtZXRlcnMuaGFzaCwgcnNhUGFy
YW1ldGVycy5oYXNIYXNoLCByc2FDb21wb25lbnRzLCBleHRyYWN0YWJsZSwgdXNhZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCmluZGV4IGUxZDhlMzM1NzU1NDE4ZTA2YWYz
MjIwYjMwNmU5ZjhlNzBmNDVhYjQuLjhlYTNiNzMxY2U5YjFiMmE1Y2VhMmRkNjc1ZTI3MWVkZTEz
YmZlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKQEAgLTQ0LDEwICs0
NCwxMCBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVz
YWdlLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGltcG9ydEtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0
cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlw
dG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOworICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5
T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBl
eHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgog
ICAgIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81LmNwcAppbmRleCBhYjE1NmNmNDM3ZTA5ZGZmZTYwMTZmYWNjZTkw
NTEyZGM3MzZkYTU3Li5iM2Y4NjJlYjc2ZWE0NDEwNTJhYzM0ODM2NWFlY2Q0ZmNkYjFhZDdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwCkBAIC0yOCw5ICsyOCw5
IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobVJzYUtleUdlblBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBh
cmFtc1dpdGhIYXNoLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmgi
CisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgor
I2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5o
IgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCIKICNp
bmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkNyeXB0b0tl
eVJTQS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTU3LDcgKzU3LDcgQEAgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6
aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAotYm9vbCBD
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25z
dCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleSYga2V5KSBjb25zdAorYm9vbCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNTo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJh
bXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSkg
Y29uc3QKIHsKICAgICBpZiAoa2V5LmFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBzX2lkZW50aWZp
ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY5LDkgKzY5LDkgQEAgYm9vbCBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlw
dG9BbGdvcml0aG0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNTo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzU6OnNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGNvbnN0IENyeXB0b0Fs
Z29yaXRobVJzYVNzYVBhcmFtcyYgcnNhU1NBUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0Fs
Z29yaXRobVJzYVNzYVBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgcnNhU1NBUGFyYW1ldGVycyA9IGRvd25jYXN0PENy
eXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogCiAgICAg
aWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKHJzYVNTQVBhcmFtZXRlcnMsIGtleSkpIHsKICAgICAg
ICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTgxLDkgKzgxLDkgQEAgdm9pZCBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiBwYXIKICAgICBwbGF0Zm9ybVNpZ24ocnNhU1NBUGFyYW1ldGVycywgZG93bmNhc3Q8
Q3J5cHRvS2V5UlNBPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWls
dXJlQ2FsbGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzU6OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0
dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykK
K3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnZlcmlmeShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRv
S2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zJiByc2FTU0FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8
Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlw
dG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiByc2FTU0FQYXJhbWV0ZXJzID0gZG93
bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7
CiAKICAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMocnNhU1NBUGFyYW1ldGVycywga2V5KSkg
ewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtOTMsOSArOTMsOSBAQCB2b2lk
IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYgcAogICAgIHBsYXRmb3JtVmVyaWZ5KHJzYVNTQVBhcmFtZXRlcnMs
ICBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIHNpZ25hdHVyZSwgZGF0YSwgV1RGTW92ZShj
YWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwogfQogCi12b2lkIENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlV
c2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2UgdXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewotICAgIGNvbnN0IENyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcz4ocGFyYW1ldGVycyk7CisgICAgY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZCYgcnNhUGFyYW1ldGVycyA9IGRvd25j
YXN0PENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMp
OwogCiAgICAgYXV0byBrZXlQYWlyQ2FsbGJhY2sgPSBbY2FsbGJhY2tdKENyeXB0b0tleVBhaXIm
IHBhaXIpIHsKICAgICAgICAgY2FsbGJhY2sobnVsbHB0ciwgJnBhaXIpOwpAQCAtMTA0LDkgKzEw
NCw5IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmdlbmVyYXRlS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlCiAgICAgQ3J5cHRvS2V5UlNBOjpnZW5lcmF0
ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUsIHJzYVBh
cmFtZXRlcnMuaGFzaCwgcnNhUGFyYW1ldGVycy5oYXNIYXNoLCByc2FQYXJhbWV0ZXJzLm1vZHVs
dXNMZW5ndGgsIHJzYVBhcmFtZXRlcnMucHVibGljRXhwb25lbnQsIGV4dHJhY3RhYmxlLCB1c2Fn
ZXMsIFdURk1vdmUoa2V5UGFpckNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsK
IH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6aW1wb3J0S2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBL
ZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6aW1w
b3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaCYgcnNhS2V5UGFyYW1ldGVycyA9IGRvd25jYXN0PENy
eXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoPihwYXJhbWV0ZXJzKTsKKyAgICBjb25z
dCBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQmIHJzYUtleVBh
cmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERl
cHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwogICAgIGNvbnN0IENyeXB0b0tleURhdGFSU0FDb21wb25l
bnRzJiByc2FDb21wb25lbnRzID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM+
KGtleURhdGEpOwogCiAgICAgUmVmUHRyPENyeXB0b0tleVJTQT4gcmVzdWx0ID0gQ3J5cHRvS2V5
UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUs
IHJzYUtleVBhcmFtZXRlcnMuaGFzaCwgcnNhS2V5UGFyYW1ldGVycy5oYXNIYXNoLCByc2FDb21w
b25lbnRzLCBleHRyYWN0YWJsZSwgdXNhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81LmgKaW5kZXggZGMyYmZkNjk1ZjUwNmQ1N2Y2MWU0YWI3ZDBjYTBjNjM5ZTNiNDc0YS4u
ZDA2Zjc2YmRiY2U0YzE3OGRlYzcyMDM4M2QwNzIxZjVlM2E0YTgwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zOworY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZDsKIGNsYXNzIENyeXB0b0tleVJTQTsK
IAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtIHsKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwdWJsaWM6CiAKICAgICBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IHZvaWQgc2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRv
S2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAg
IHZvaWQgdmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlw
dG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdlbmVyYXRl
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbXBvcnRL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEm
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgdmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2ln
bmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81KCk7CiAgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzUoKTsKIAotICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBD
cnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNvbnN0IENy
eXB0b0tleSYpIGNvbnN0OwotICAgIHZvaWQgcGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtcyYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYpOworICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBD
cnlwdG9LZXkmKSBjb25zdDsKKyAgICB2b2lkIHBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgcGxhdGZvcm1WZXJpZnko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0
b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNw
cAppbmRleCA1YjA5OTRkMjUxYTk0MzNlNmQ5NTdlZjU4NGUwYjc1NTNmYzAwMTdiLi4yMjU1OTFj
ODg0NzQ1NjJmYWI5NzNmMTA3MmY2ZmNhY2IyZjI1NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAu
Y3BwCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtUnNhT2FlcFBhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtc0RlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNX
aXRoSGFzaERlcHJlY2F0ZWQuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFy
YW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpA
QCAtNTcsNyArNTcsNyBAQCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQOjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCi1ib29sIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjprZXlBbGdvcml0aG1NYXRjaGVzKGNv
bnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNv
bnN0IENyeXB0b0tleSYga2V5KSBjb25zdAorYm9vbCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6
a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVw
cmVjYXRlZCYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0
CiB7CiAgICAgaWYgKGtleS5hbGdvcml0aG1JZGVudGlmaWVyKCkgIT0gc19pZGVudGlmaWVyKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC02OSw5ICs2OSw5IEBAIGJvb2wgQ3J5cHRvQWxnb3Jp
dGhtUlNBX09BRVA6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09B
RVA6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywg
Y29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjplbmNyeXB0
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVj
dG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFy
YW1zJiByc2FPQUVQUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYU9hZXBQ
YXJhbXM+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJh
bXNEZXByZWNhdGVkJiByc2FPQUVQUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxn
b3JpdGhtTWF0Y2hlcyhyc2FPQUVQUGFyYW1ldGVycywga2V5KSkgewogICAgICAgICBlYyA9IE5P
VF9TVVBQT1JURURfRVJSOwpAQCAtODEsOSArODEsOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJT
QV9PQUVQOjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRl
cgogICAgIHBsYXRmb3JtRW5jcnlwdChyc2FPQUVQUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRv
S2V5UlNBPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2Fs
bGJhY2spLCBlYyk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmRlY3J5cHQo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRv
S2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpkZWNyeXB0KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2sm
JiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zJiByc2FPQUVQ
UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXM+KHBhcmFt
ZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVk
JiByc2FPQUVQUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJh
bXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKIAogICAgIGlmICgha2V5QWxnb3JpdGhtTWF0Y2hl
cyhyc2FPQUVQUGFyYW1ldGVycywga2V5KSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURf
RVJSOwpAQCAtOTMsOSArOTMsOSBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpkZWNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcgogICAgIHBsYXRm
b3JtRGVjcnlwdChyc2FPQUVQUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkp
LCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmdlbmVyYXRlS2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVA6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlV
c2FnZSB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7Ci0gICAgY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zJiByc2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRv
QWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9B
bGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkJiByc2FQYXJhbWV0ZXJzID0gZG93bmNh
c3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7
CiAKICAgICBhdXRvIGtleVBhaXJDYWxsYmFjayA9IFtjYWxsYmFja10oQ3J5cHRvS2V5UGFpciYg
cGFpcikgewogICAgICAgICBjYWxsYmFjayhudWxscHRyLCAmcGFpcik7CkBAIC0xMDQsOSArMTA0
LDkgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW0KICAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRl
UGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUCwgcnNhUGFyYW1ldGVycy5o
YXNoLCByc2FQYXJhbWV0ZXJzLmhhc0hhc2gsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwg
cnNhUGFyYW1ldGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGTW92
ZShrZXlQYWlyQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwogfQogCi12b2lk
IENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9v
bCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lk
IENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleURhdGEmIGtl
eURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlLCBLZXlDYWxsYmFj
ayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmKQogewotICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoJiBy
c2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2g+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoRGVwcmVjYXRlZCYgcnNhS2V5UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0Fs
Z29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7CiAgICAg
Y29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmIHJzYUNvbXBvbmVudHMgPSBkb3duY2Fz
dDxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4oa2V5RGF0YSk7CiAKICAgICBSZWZQdHI8Q3J5
cHRvS2V5UlNBPiByZXN1bHQgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpSU0FfT0FFUCwgcnNhS2V5UGFyYW1ldGVycy5oYXNoLCByc2FLZXlQYXJhbWV0
ZXJzLmhhc0hhc2gsIHJzYUNvbXBvbmVudHMsIGV4dHJhY3RhYmxlLCB1c2FnZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaAppbmRleCA4NDBiZTBiMDMxYWZiNmQzOGQ4MDZlOTc5Y2MzYzdlZTg1NmQxNTk3
Li4wZWI2OTk2NmE5OWMzZGE5Y2Q3MTFkNzgxOGZkODc2YThhMmMzNTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QV9PQUVQLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zOworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CkBAIC00
NCwxOCArNDQsMTggQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGVuY3J5cHQoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRlY3J5cHQoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdlbmVyYXRlS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbXBvcnRLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBW
ZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2UsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUCgpOwogICAgIHZpcnR1YWwgfkNyeXB0
b0FsZ29yaXRobVJTQV9PQUVQKCk7CiAKLSAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29u
c3QgQ3J5cHRvS2V5JikgY29uc3Q7Ci0gICAgdm9pZCBwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHBsYXRmb3JtRGVjcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wga2V5QWxnb3Jp
dGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYg
YWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7CisgICAgdm9pZCBw
bGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0
ZWQmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCBwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNh
T2FlcFBhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCmluZGV4IDU3
OGI2NmJlZmNmNGVjNWQ4YWE3ZWUyNzM3MGM1YmYxMTU3OTUyNzYuLjcyOTc5NmRlMzE0YWY1Nzg4
ODQzOTdlODE1NmFkOTdjN2FjNDQwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCkBAIC01Miw3ICs1Miw3
IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtU0hBMTo6aWRlbnRp
ZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAotdm9pZCBDcnlwdG9B
bGdvcml0aG1TSEExOjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ss
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENy
eXB0b0FsZ29yaXRobVNIQTE6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxi
YWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0RpZ2VzdD4gZGlnZXN0ID0gQ3J5
cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8xKTsKICAgICBp
ZiAoIWRpZ2VzdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCmluZGV4IDgyOTI0Mzc0ZDk4OTk5N2YzZDAyYTI1ODRh
MjI0ZmJmNmYyODY2ZTMuLmY1MjQwYjIzZjdhNmFlMTRmYjY2ZGEzNzU2ZDA1YjFiMGFmMmVhOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEExLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lk
IGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRo
bVNIQTEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTIyNC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCmluZGV4IDMwZDJiMTM5NmNjYjI2NDJjOWYyMWZh
ZDMzMjRlODZlNmQ1MjM2MWYuLmZhODBmYzZkYzQ1ZDYwZDQ2Nzk4MTBkYWM4Zjg0NmRhNDAwNTJl
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTIyNC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcApAQCAtNTIsNyArNTIsNyBAQCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRobVNIQTIyNDo6aWRlbnRpZmllcigpIGNvbnN0CiAg
ICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6
OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3JpdGht
U0hBMjI0OjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxi
YWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQogewog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9EaWdlc3Q+IGRpZ2VzdCA9IENyeXB0b0RpZ2VzdDo6
Y3JlYXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0KTsKICAgICBpZiAoIWRpZ2Vz
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMjI0LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1TSEEyMjQuaAppbmRleCBhNGY0MzA4YmIxMDhmMGE2NGNlMGI2MzY0MTFmMmU5
Mzg0NmM0ODQ2Li5kZmY2ZDIxOGU2NjI5Mzg5ZDRjMWYyYzYyMzQwOTRkODU1NTA0M2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyMjQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1TSEEyMjQuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQg
ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWdlc3QoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGht
U0hBMjI0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEEyNTYuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcAppbmRleCBlYjJhZGEyZmZlNDRjYWRkNmYzYWFm
M2ZiNTkwMDEzMmM1ZDhkNjkxLi4zMjQ5OWE5NWI2ZTNlNzk0OWNjNDI3NDkwYjEzNDVmNWYxZjAw
OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEEyNTYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1TSEEyNTY6OmlkZW50aWZpZXIoKSBjb25zdAog
ICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2
OjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRo
bVNIQTI1Njo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvRGlnZXN0PiBkaWdlc3QgPSBDcnlwdG9EaWdlc3Q6
OmNyZWF0ZShDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7CiAgICAgaWYgKCFkaWdl
c3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTI1Ni5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2LmgKaW5kZXggNDFkMDc3OWU4MjM2YTYyMGRhMDVhYzA1NTg5ZmFl
ZDE5ODVjYjliMC4uN2RkNzU4YTY0NTEwZTk0YTRhZWU4ZDE2MmYzMzliMzY4OGFhNjNlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMjU2LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtU0hBMjU2LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lk
IGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRo
bVNIQTI1NigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5jcHAKaW5kZXggZDdkNDEwMjU4ZGMyZWRjMWU4ZDZi
NDJlMWNmYzY1ODUxZDNkZTBhNi4uMzRlZDg3Yzk5OGYxMzg2ZmUzMGQ1M2E1Yzg5N2Q5MGY5ZTlm
NWU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMzg0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0OjppZGVudGlmaWVyKCkgY29uc3QK
ICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVNIQTM4
NDo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQordm9pZCBDcnlwdG9BbGdvcml0
aG1TSEEzODQ6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCiB7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0RpZ2VzdD4gZGlnZXN0ID0gQ3J5cHRvRGlnZXN0
OjpjcmVhdGUoQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8zODQpOwogICAgIGlmICghZGln
ZXN0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1TSEEzODQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTM4NC5oCmluZGV4IDgzMjcwMDMyYjMyMzQzMWEyYjE2Njg1NGYwOTZi
MTE4N2I0NWJjMGUuLmIwYjBkMGUzN2FiZmM0NDkzYTcyMjBhZTc4MmQwZDU2NDIyNWM0ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTM4NC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTM4NC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9p
ZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZ2VzdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0
aG1TSEEzODQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCmluZGV4IDE2MWJmNzM2NjRmMDU0ZDYwZGQy
OGFiMTIxMjlhMDVlNmY4NmFhNDEuLjlkYTk3MzZmMzg4M2E0MDNmN2VlYWJkNjg2NGIwZWY5Y2I3
MTFhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTUxMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcApAQCAtNTIsNyArNTIsNyBAQCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRobVNIQTUxMjo6aWRlbnRpZmllcigpIGNvbnN0
CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1TSEE1
MTI6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKK3ZvaWQgQ3J5cHRvQWxnb3Jp
dGhtU0hBNTEyOjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKQog
ewogICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9EaWdlc3Q+IGRpZ2VzdCA9IENyeXB0b0RpZ2Vz
dDo6Y3JlYXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfNTEyKTsKICAgICBpZiAoIWRp
Z2VzdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtU0hBNTEyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEE1MTIuaAppbmRleCBmMzE2MTgzZjUzNmQzMzRiOGFiMmE2ZWQyNjRm
NTBmMTllOWIxZGQwLi42NDAyYTI5Y2UzZWEwNTA1MDEyNGI2MDRkZGQ0MzE5MjNhMDE5YjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEE1MTIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEE1MTIuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZv
aWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWdlc3QoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3Jp
dGhtU0hBNTEyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0Ny
eXB0b0FsZ29yaXRobUFFU19DQkNHbnVUTFMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2du
dXRscy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR251VExTLmNwcAppbmRleCA1NDhhM2VjMWRkMmQz
MjZmMzQzODVjOTFiYmM5OGQzNmNmYzE3NmZiLi4xNDYwN2RiNmYxZDcyYTIxYTVlNzY0ZTJiMzE1
YWJiYjYzMjU5ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0Ny
eXB0b0FsZ29yaXRobUFFU19DQkNHbnVUTFMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dudVRMUy5jcHAKQEAgLTI4LDE0ICsyOCwx
NCBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJh
bXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlw
dG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2Fs
bGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1FbmNyeXB0
KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRh
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgZWMg
PSBOT1RfU1VQUE9SVEVEX0VSUjsKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFy
YW1zJgogICAgIFVOVVNFRF9QQVJBTShmYWlsdXJlQ2FsbGJhY2spOwogfQogCi12b2lkIENyeXB0
b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1B
ZXNDYmNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlw
dG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
QWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBr
ZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1I
TUFDR251VExTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ0dudVRMUy5jcHAKaW5kZXggYmE5MTMxMThiNTUwYTYwNzFhYjk0OWI3ZDVhNWQxZjhm
MWE5ZWM0OC4uYTgzMDQ2NTdiMzNlZDAyNGUzODJkNjE5YWQ2MzJiNjA5YjJiNzVjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1ITUFDR251
VExTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRo
bUhNQUNHbnVUTFMuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NS
WVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCIKKyNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0
b0tleUhNQUMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSA8Z251dGxz
L2dudXRscy5oPgpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNhbGN1
bGF0ZVNpZ25hdHVyZShnbnV0bHNfbWFjX2FsZ29yaXRobV90IGFsZ29yaXRobSwgY29ucwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1T
aWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENy
eXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9y
Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKGNv
bnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXlITUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZhaWx1cmVDYWxsYmFjayk7
CiAgICAgZ251dGxzX21hY19hbGdvcml0aG1fdCBhbGdvcml0aG0gPSBnZXRHbnV0bHNEaWdlc3RB
bGdvcml0aG0ocGFyYW1ldGVycy5oYXNoKTsKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBDcnlwdG9B
bGdvcml0aG1ITUFDOjpwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
cyYgcGFyYW1ldGUKICAgICBjYWxsYmFjayhzaWduYXR1cmUpOwogfQogCi12b2lkIENyeXB0b0Fs
Z29yaXRobUhNQUM6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJh
bXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZXhwZWN0ZWRTaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
IGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0
Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5SE1BQyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiBleHBlY3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwg
Qm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZhaWx1cmVDYWxsYmFjayk7
CiAgICAgZ251dGxzX21hY19hbGdvcml0aG1fdCBhbGdvcml0aG0gPSBnZXRHbnV0bHNEaWdlc3RB
bGdvcml0aG0ocGFyYW1ldGVycy5oYXNoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHbnVUTFMuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNUdudVRMUy5jcHAKaW5kZXggY2Y1NjY3ZmFmOWQwZDIyMmY1MjhlMDY2N2Q1OWJjZTBiNGU3
MWFjOS4uNTY4ZDUyYmE0MDM0ZGYwMGI3NDNmYTI3OWM0ZmFkMTdiMTVjNjEzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNUdudVRMUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9Dcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNUdudVRMUy5jcHAKQEAgLTI4LDE0ICsyOCwxNCBA
QAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1Sc2FTc2FQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNE
ZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1T
aWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYgcGFyYW1ldGVycywgY29uc3Qg
Q3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3Rv
ckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojpw
bGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYg
cGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpAQCAtNDcsNyArNDcsNyBAQCB2b2lkIENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhU3NhUAogICAgIFVOVVNFRF9QQVJBTShmYWlsdXJlQ2FsbGJhY2spOwogfQog
Ci12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVZlcmlmeShj
b25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0
b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRv
S2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUEdudVRM
Uy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQV9P
QUVQR251VExTLmNwcAppbmRleCAzMDI0YmVjMmIzYmM1ZTZmZDk3MTUzNmEzNjJhNDg3YjM4MzNi
MzE1Li5hYjA2YWNkZDQ2MDRmNmU5MGYxNTI3ZDU2OGFhODIxMDU5YzYwZmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR251
VExTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQR251VExTLmNwcApAQCAtMjgsMTQgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoU1VC
VExFX0NSWVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCIK
KyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oIgogI2lu
Y2x1ZGUgIkNyeXB0b0tleVJTQS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQ3J5
cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0
aG1Sc2FPYWVwUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQg
Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5
UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBlYyA9IE5PVF9TVVBQT1JURURf
RVJSOwpAQCAtNDcsNyArNDcsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpwbGF0
Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcwogICAgIFVOVVNF
RF9QQVJBTShmYWlsdXJlQ2FsbGJhY2spOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQV9P
QUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYg
cGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29yaXRobVJT
QV9PQUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFt
c0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5j
cHAKaW5kZXggZmYwODczMGRmNGRiY2E1ZjhiMzVjMGFlM2QyYTIxMGNlZWYyMTg2OS4uNmQzYjhj
ODQ1ODk5YjVlYmZmMTMwMThlOWFmMmE3YjBlODZlZTFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAKQEAg
LTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAogI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIK
KyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgogI2luY2x1
ZGUgIkNyeXB0b0tleS5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmgi
CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6fkNyeXB0b0tl
eVNlcmlhbGl6YXRpb25SYXcoKQogewogfQogCi1PcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWly
PiBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3OjpyZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxn
b3JpdGhtKiBhbGdvcml0aG0sIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMqIHBhcmFtZXRlcnMp
IGNvbnN0CitPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBDcnlwdG9LZXlTZXJpYWxpemF0
aW9uUmF3OjpyZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiBhbGdvcml0aG0sIENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKiBwYXJhbWV0ZXJzKSBjb25zdAogewog
ICAgIHJldHVybiBDcnlwdG9BbGdvcml0aG1QYWlyIHsgYWxnb3JpdGhtLCBwYXJhbWV0ZXJzIH07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJp
YWxpemF0aW9uUmF3LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJp
YWxpemF0aW9uUmF3LmgKaW5kZXggMDhlYWQ4MjZjZTZjMjFmODdiZGZmODJkZDgyOWMzY2VmN2E4
OWExMC4uZWZhM2NkMmMwMWQ5ZjM1YTBlOTBjMmE5OTdjNDE0ODJkNzhlYTUzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25S
YXcuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIENyeXB0b0tleVNl
cmlhbGl6YXRpb25SYXcoY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYpOwogCi0gICAgT3B0aW9u
YWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRo
bSosIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMqKSBjb25zdCBvdmVycmlkZTsKKyAgICBPcHRp
b25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3Jp
dGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHZvaWQgcmVjb25jaWxlVXNhZ2VzKENyeXB0b0tleVVzYWdlJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdm9pZCByZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkNNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDTWFjLmNwcAppbmRleCAxNTg2OTA3OTZmMjA0Y2YxODM1NDM3ZGNhMWI4ZDAzOTU4
ZjA0YmMzLi5iMTIzY2VjYjEyM2M1MTRjMzhmMDkwNDRiZTM4MmYxODE3NmI0NzFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNNYWMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Q01hYy5jcHAKQEAgLTI4LDE0ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8p
CiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCIKKyNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRv
S2V5QUVTLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgPENvbW1vbkNy
eXB0by9Db21tb25DcnlwdG8uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdm9p
ZCB0cmFuc2Zvcm1BRVNfQ0JDKENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3QgQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQ3J5cHRvQWxnb3JpdGhtOjpWZWN0b3JD
YWxsYmFjayYmIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaykKK3N0YXRpYyB2b2lkIHRyYW5zZm9ybUFFU19DQkMoQ0NPcGVyYXRpb24gb3Bl
cmF0aW9uLCBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgQ3J5cHRvQWxnb3JpdGhtOjpWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBDcnlw
dG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKIHsKICAgICBzdGF0
aWNfYXNzZXJ0KHNpemVvZihwYXJhbWV0ZXJzLml2KSA9PSBrQ0NCbG9ja1NpemVBRVMxMjgsICJJ
bml0aWFsaXphdGlvbiB2ZWN0b3Igc2l6ZSBtdXN0IGJlIHRoZSBzYW1lIGFzIGFsZ29yaXRobSBi
bG9jayBzaXplIik7CiAKQEAgLTgyLDEyICs4MiwxMiBAQCBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1B
RVNfQ0JDKENDT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
UAogICAgIGNhbGxiYWNrKHJlc3VsdCk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYgcGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6
OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNh
dGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICB0cmFuc2Zvcm1BRVNf
Q0JDKGtDQ0VuY3J5cHQsIHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayks
IFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQzo6cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYg
cGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpCit2b2lkIENyeXB0b0FsZ29yaXRobUFFU19D
QkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXBy
ZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlBRVMmIGtleSwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICB0cmFuc2Zvcm1B
RVNfQ0JDKGtDQ0RlY3J5cHQsIHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92ZShjYWxsYmFj
ayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcAppbmRleCBjZjNhNDYwZDU1
ZWFmNDY5NTM4M2E4MWFlMWZjMGNjNTQ5NDZkN2U3Li4yOTZhNzhhYjU3ZmQzYjk1YjkzZGVhYjhh
NmY3MjUwOTg2NGM2NzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0Ny
eXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5o
IgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5j
bHVkZSAiQ3J5cHRvS2V5SE1BQy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlIDxDb21tb25DcnlwdG8vQ29tbW9uSE1BQy5oPgpAQCAtODksNyArODksNyBAQCBzdGF0aWMg
VmVjdG9yPHVpbnQ4X3Q+IGNhbGN1bGF0ZVNpZ25hdHVyZShDQ0htYWNBbGdvcml0aG0gYWxnb3Jp
dGhtLCBjb25zdCBWZWN0bwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgQ3J5cHRvQWxn
b3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMm
IHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYs
IEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9ybVNp
Z24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIENDSG1hY0FsZ29yaXRobSBhbGdvcml0aG07CiAgICAgaWYgKCFnZXRD
b21tb25DcnlwdG9ITUFDQWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaCwgYWxnb3JpdGhtKSkgewpA
QCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1TaWdu
KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIHBhcmFtZXRlCiAgICAgY2FsbGJhY2so
c2lnbmF0dXJlKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9ybVZlcmlm
eShjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlw
dG9LZXlITUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVjdGVkU2lnbmF0
dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBDcnlwdG9BbGdv
cml0aG1ITUFDOjpwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5SE1BQyYga2V5LCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiBleHBlY3RlZFNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBDQ0htYWNBbGdvcml0aG0gYWxnb3JpdGhtOwogICAg
IGlmICghZ2V0Q29tbW9uQ3J5cHRvSE1BQ0FsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gsIGFsZ29y
aXRobSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21h
Yy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKaW5kZXggMzlhYzQwMmM1
ZjZjMjdmY2ViOTgwOTYwYjFiY2YyYTlkNDI5MTBjYi4uMGFiOGY0MmI4NWZiMTlmZjlhNDQ4NTc5
NGQxODI3MmNjMDU2MTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKQEAg
LTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAogI2luY2x1ZGUgIkNv
bW1vbkNyeXB0b1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBh
cmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQu
aCIKICNpbmNsdWRlICJDcnlwdG9EaWdlc3QuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC01OSw3ICs1OSw3IEBAIGlubGluZSBib29s
IGdldENyeXB0b0RpZ2VzdEFsZ29yaXRobShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hG
dW5jdGlvbiwgQ3J5CiAgICAgfQogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81OjpwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQ
YXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBDQ0RpZ2VzdEFsZ29yaXRobSBkaWdlc3RBbGdvcml0aG07CiAgICAgaWYgKCFnZXRDb21tb25D
cnlwdG9EaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoLCBkaWdlc3RBbGdvcml0aG0pKSB7
CkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6
OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQCiAgICAgY2FsbGJhY2so
c2lnbmF0dXJlKTsKIH0KIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6
cGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
c2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2sm
JiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtVmVy
aWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBz
aWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIENDRGlnZXN0QWxnb3JpdGhtIGRpZ2VzdEFsZ29yaXRobTsKICAgICBpZiAo
IWdldENvbW1vbkNyeXB0b0RpZ2VzdEFsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gsIGRpZ2VzdEFs
Z29yaXRobSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAKaW5kZXggYWFjZGZhZmE5ZjYzMzYxYzk0ZGRmODVj
YmNhZmU1MzFhMzAyMTcxNS4uY2YyODFjYTg3NjAyMjRlZDA3YTdlNGEwMGFmZjFmZGQ4NTdjNWQw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1S
U0FfT0FFUE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdv
cml0aG1SU0FfT0FFUE1hYy5jcHAKQEAgLTI5LDEzICsyOSwxMyBAQAogI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgiCi0jaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZv
aWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9B
bGdvcml0aG1Sc2FPYWVwUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtl
eSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBlYykK
K3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlw
dG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5
cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNh
bGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgQ0NEaWdlc3RBbGdvcml0aG0gZGlnZXN0QWxnb3JpdGhtOwog
ICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaCwg
ZGlnZXN0QWxnb3JpdGhtKSkgewpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtcwogICAgIGNhbGxiYWNrKGNpcGhlclRleHQpOwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtcyYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayYmIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIENyeXB0b0FsZ29y
aXRobVJTQV9PQUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2Fl
cFBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIENDRGlnZXN0QWxnb3JpdGhtIGRpZ2VzdEFsZ29yaXRobTsKICAgICBpZiAoIWdldENvbW1v
bkNyeXB0b0RpZ2VzdEFsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gsIGRpZ2VzdEFsZ29yaXRobSkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUFlc0NiY1BhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDJhNzk4ZjdlNTYyODNiNWE5MzcwYTFjMzAwZGZlNjViYTQ2MjIxM2IuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXNfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNfaAotCi0jaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPGFycmF5PgotCi0j
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
Q3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMgewotcHVibGljOgotICAgIC8vIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3Iu
IE1VU1QgYmUgMTYgYnl0ZXMuCi0gICAgc3RkOjphcnJheTxjaGFyLCAxNj4gaXY7Ci0KLSAgICBD
bGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6QWVz
Q2JjUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEFlc0NiY1BhcmFtcykKLQot
I2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRo
bUFlc0NiY1BhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNh
dGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGNiNWU5NjQyMTkyODEyNWI5YWM4ZTA2NDBiZTkzYTFhNzkyNTdi
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Ny
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZC5oIgorI2luY2x1ZGUgPGFycmF5PgorCisjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRvQWxnb3JpdGht
QWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6CisgICAgLy8gVGhlIGluaXRpYWxpemF0aW9uIHZl
Y3Rvci4gTVVTVCBiZSAxNiBieXRlcy4KKyAgICBzdGQ6OmFycmF5PGNoYXIsIDE2PiBpdjsKKwor
ICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNz
OjpBZXNDYmNQYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoQWVzQ2JjUGFyYW1z
KQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0tl
eUdlblBhcmFtcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTRjNWNmYjYyMmM5
OTE5N2ZjNzBhMjcyNThhZTY1ZDQyNzJiMDNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobUFlc0tleUdlblBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zX2gK
LSNkZWZpbmUgQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zX2gKLQotI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBh
cmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoK
LSAgICAvLyBUaGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUga2V5LgotICAgIHVuc2lnbmVkIGxl
bmd0aDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIENsYXNzOjpBZXNLZXlHZW5QYXJhbXM7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMo
QWVzS2V5R2VuUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5k
aWYgLy8gQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFt
c0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTMwNjJkZTMx
M2U3NTQ0MWU4YjFhNTEwOTY5Yjc1MTEzZmNmODhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1z
RGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCisKKyNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
cnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKK3B1YmxpYzoKKyAgICAvLyBUaGUg
bGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUga2V5LgorICAgIHVuc2lnbmVkIGxlbmd0aDsKKworICAg
IENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpB
ZXNLZXlHZW5QYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoQWVzS2V5R2VuUGFy
YW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1z
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFj
S2V5UGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyMWIxNWQ4OWQwMzg1
YjhlNTYyOTZkOWZjZTdhNWExODdhNmE4YTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc19oCi0jZGVm
aW5lIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNfaAotCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMu
aCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtSG1hY0tl
eVBhcmFtcygpCi0gICAgICAgIDogaGFzTGVuZ3RoKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAg
ICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2UuCi0gICAgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBoYXNoOwotCi0gICAgLy8gVGhlIGxlbmd0aCAoaW4gYnl0ZXMpIG9mIHRoZSBr
ZXkgdG8gZ2VuZXJhdGUuIElmIHVuc3BlY2lmaWVkLCB0aGUgcmVjb21tZW5kZWQgbGVuZ3RoIHdp
bGwgYmUgdXNlZCwKLSAgICAvLyB3aGljaCBpcyB0aGUgc2l6ZSBvZiB0aGUgYXNzb2NpYXRlZCBo
YXNoIGZ1bmN0aW9uJ3MgYmxvY2sgc2l6ZS4KLSAgICBib29sIGhhc0xlbmd0aDsKLSAgICB1bnNp
Z25lZCBsZW5ndGg7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBDbGFzczo6SG1hY0tleVBhcmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1F
VEVSUyhIbWFjS2V5UGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0j
ZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1z
RGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTE3ZmMzMWRkMzZh
NjEyMGMzYThmYWVkZjg1MzFlYjlhZGI4MGM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJl
Y2F0ZWQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXNEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkIHsKK3B1YmxpYzoKKyAgICBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVw
cmVjYXRlZCgpCisgICAgICAgIDogaGFzTGVuZ3RoKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAg
ICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2UuCisgICAgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBoYXNoOworCisgICAgLy8gVGhlIGxlbmd0aCAoaW4gYnl0ZXMpIG9mIHRoZSBr
ZXkgdG8gZ2VuZXJhdGUuIElmIHVuc3BlY2lmaWVkLCB0aGUgcmVjb21tZW5kZWQgbGVuZ3RoIHdp
bGwgYmUgdXNlZCwKKyAgICAvLyB3aGljaCBpcyB0aGUgc2l6ZSBvZiB0aGUgYXNzb2NpYXRlZCBo
YXNoIGZ1bmN0aW9uJ3MgYmxvY2sgc2l6ZS4KKyAgICBib29sIGhhc0xlbmd0aDsKKyAgICB1bnNp
Z25lZCBsZW5ndGg7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBDbGFzczo6SG1hY0tleVBhcmFtczsgfQorfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1F
VEVSUyhIbWFjS2V5UGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1IbWFjUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9B
bGdvcml0aG1IbWFjUGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzNzkz
YjZmYTVkNzUzZTM1YTg5NjJmNWFlNjg4OGQwZTBlZjdjY2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc19oCi0j
ZGVmaW5lIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNfaAotCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMu
aCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhlIGlubmVyIGhhc2ggZnVuY3Rp
b24gdG8gdXNlLgotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAgIENs
YXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpIbWFj
UGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEhtYWNQYXJhbXMpCi0KLSNlbmRp
ZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Ny
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFlNWIxYjNhNjViMjBjZGNiYzQ0YTRjMGE1ZmRmMTc3OTVlNzNlODUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKKyNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorCisjaWYgRU5B
QkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIC8vIFRoZSBpbm5lciBoYXNo
IGZ1bmN0aW9uIHRvIHVzZS4KKyAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7CisK
KyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFz
czo6SG1hY1BhcmFtczsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhIbWFjUGFyYW1zKQor
CisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjNhNTdjZWQzZTNjMzY2
M2IzMTEyZDU5OTJhODFjMzIxMmQzOTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobVJzYUtleUdlblBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zX2gKLSNk
ZWZpbmUgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLSNpZiBF
TkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlw
dG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1z
KCkKLSAgICAgICAgOiBoYXNIYXNoKGZhbHNlKQotICAgIHsKLSAgICB9Ci0gICAgLy8gVGhlIGxl
bmd0aCwgaW4gYml0cywgb2YgdGhlIFJTQSBtb2R1bHVzLgotICAgIHVuc2lnbmVkIG1vZHVsdXNM
ZW5ndGg7Ci0gICAgLy8gVGhlIFJTQSBwdWJsaWMgZXhwb25lbnQsIGVuY29kZWQgYXMgQmlnSW50
ZWdlci4KLSAgICBWZWN0b3I8dWludDhfdD4gcHVibGljRXhwb25lbnQ7Ci0gICAgLy8gVGhlIGhh
c2ggYWxnb3JpdGggaWRlbnRpZmllcgotICAgIGJvb2wgaGFzSGFzaDsKLSAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhS2V5R2VuUGFyYW1zOyB9Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09S
SVRITV9QQVJBTUVURVJTKFJzYUtleUdlblBhcmFtcykKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGIzM2Y3MzZjZmM0ODQ1ZDMzMGU2YTE1MTU4ZGYwZWM0MzU3YzlhZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lmIEVOQUJMRShTVUJUTEVf
Q1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENyeXB0b0FsZ29yaXRobVJz
YUtleUdlblBhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQgeworcHVibGljOgorICAgIENyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtc0RlcHJlY2F0ZWQoKQorICAgICAgICA6IGhhc0hhc2goZmFsc2UpCisgICAgeworICAg
IH0KKyAgICAvLyBUaGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUgUlNBIG1vZHVsdXMuCisgICAg
dW5zaWduZWQgbW9kdWx1c0xlbmd0aDsKKyAgICAvLyBUaGUgUlNBIHB1YmxpYyBleHBvbmVudCwg
ZW5jb2RlZCBhcyBCaWdJbnRlZ2VyLgorICAgIFZlY3Rvcjx1aW50OF90PiBwdWJsaWNFeHBvbmVu
dDsKKyAgICAvLyBUaGUgaGFzaCBhbGdvcml0aCBpZGVudGlmaWVyCisgICAgYm9vbCBoYXNIYXNo
OworICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKKworICAgIENsYXNzIHBhcmFt
ZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlHZW5QYXJh
bXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoUnNhS2V5R2VuUGFyYW1zKQorCisjZW5k
aWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFy
YW1zV2l0aEhhc2guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGVmY2FhMTczNjgw
ZDZhZmQwNjUzNzNjZGMxYjY5ZDA2OWRkZTRmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1z
V2l0aEhhc2hfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaF9o
Ci0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGhpcyBwYXJhbWV0ZXJzIGNsYXNzIGlzIGN1cnJl
bnRseSBub3Qgc3BlY2lmaWVkIGluIFdlYkNyeXB0by4KLS8vIEl0IGlzIG5lY2Vzc2FyeSB0byBz
dXBwb3J0IGltcG9ydCBmcm9tIEpXSywgd2hpY2ggdHJlYXRzIGhhc2ggZnVuY3Rpb24gYXMgcGFy
dCBvZiBhbGdvcml0aG0KLS8vIGlkZW50aWZpZXIsIHNvIHdlIG5lZWQgdG8gcmVtZW1iZXIgaXQg
dG8gY29tcGFyZSB3aXRoIG9uZSBwYXNzZWQgdG8gc2lnbiBvciB2ZXJpZnkgZnVuY3Rpb25zLgot
Y2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2ggZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3JpdGht
UnNhS2V5UGFyYW1zV2l0aEhhc2goKQotICAgICAgICA6IGhhc0hhc2goZmFsc2UpCi0gICAgewot
ICAgIH0KLQotICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCi0gICAgYm9vbCBoYXNI
YXNoOwotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAgIENsYXNzIHBh
cmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlQYXJh
bXNXaXRoSGFzaDsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhSc2FLZXlQYXJhbXNXaXRo
SGFzaCkKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
RGVwcmVjYXRlZC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU5N2M4
YjYxNzlkZTZlNGQ3ODY2NzI0MTFkZWI4ZmU5MGJjZWU0OQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoRGVwcmVjYXRlZC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgorCisjaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhpcyBwYXJhbWV0
ZXJzIGNsYXNzIGlzIGN1cnJlbnRseSBub3Qgc3BlY2lmaWVkIGluIFdlYkNyeXB0by4KKy8vIEl0
IGlzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IGltcG9ydCBmcm9tIEpXSywgd2hpY2ggdHJlYXRzIGhh
c2ggZnVuY3Rpb24gYXMgcGFydCBvZiBhbGdvcml0aG0KKy8vIGlkZW50aWZpZXIsIHNvIHdlIG5l
ZWQgdG8gcmVtZW1iZXIgaXQgdG8gY29tcGFyZSB3aXRoIG9uZSBwYXNzZWQgdG8gc2lnbiBvciB2
ZXJpZnkgZnVuY3Rpb25zLgorY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhh
c2hEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkIHsKK3B1YmxpYzoKKyAgICBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFz
aERlcHJlY2F0ZWQoKQorICAgICAgICA6IGhhc0hhc2goZmFsc2UpCisgICAgeworICAgIH0KKwor
ICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCisgICAgYm9vbCBoYXNIYXNoOworICAg
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKKworICAgIENsYXNzIHBhcmFtZXRlcnND
bGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlQYXJhbXNXaXRoSGFz
aDsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhSc2FLZXlQYXJhbXNXaXRoSGFzaCkKKwor
I2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFt
cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDJjMzRjZDFhNjZmZTI5YmY4OWJl
ZDYyNTUwY2VkZGRlMjlkYzQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bVJzYU9hZXBQYXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNfaAotI2RlZmluZSBDcnlw
dG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCi0KLSNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
cnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMgewotcHVibGljOgotICAgIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMo
KQotICAgICAgICA6IGhhc0xhYmVsKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICAvLyBUaGUg
aGFzaCBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgbWVzc2FnZS4KLSAgICBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICAvLyBUaGUgb3B0aW9uYWwgbGFiZWwvYXBwbGljYXRp
b24gZGF0YSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgbWVzc2FnZS4KLSAgICAvLyBGSVhNRTogSXMg
dGhlcmUgYSBkaWZmZXJlbmNlIGJldHdlZW4gYSBtaXNzaW5nIGxhYmVsIGFuZCBhbiBlbXB0eSBv
bmU/IFBlcmhhcHMgd2UgZG9uJ3QgbmVlZCB0aGUgaGFzTGFiZWwgbWVtYmVyLgotICAgIGJvb2wg
aGFzTGFiZWw7Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IGxhYmVsOwotCi0gICAgQ2xhc3MgcGFyYW1l
dGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYU9hZXBQYXJhbXM7
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlMoUnNhT2FlcFBhcmFtcykKLQotI2VuZGlmIC8v
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQ
YXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTk4MDU5M2JkYzJhZWRhM2I0MjViYWNlZjYxOTMxNmZlYWYzZTgxYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCisK
KyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7CitwdWJsaWM6CisgICAgQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQoKQorICAgICAgICA6IGhhc0xhYmVsKGZh
bHNlKQorICAgIHsKKyAgICB9CisKKyAgICAvLyBUaGUgaGFzaCBmdW5jdGlvbiB0byBhcHBseSB0
byB0aGUgbWVzc2FnZS4KKyAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7CisKKyAg
ICAvLyBUaGUgb3B0aW9uYWwgbGFiZWwvYXBwbGljYXRpb24gZGF0YSB0byBhc3NvY2lhdGUgd2l0
aCB0aGUgbWVzc2FnZS4KKyAgICAvLyBGSVhNRTogSXMgdGhlcmUgYSBkaWZmZXJlbmNlIGJldHdl
ZW4gYSBtaXNzaW5nIGxhYmVsIGFuZCBhbiBlbXB0eSBvbmU/IFBlcmhhcHMgd2UgZG9uJ3QgbmVl
ZCB0aGUgaGFzTGFiZWwgbWVtYmVyLgorICAgIGJvb2wgaGFzTGFiZWw7CisgICAgVmVjdG9yPHVp
bnQ4X3Q+IGxhYmVsOworCisgICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQ2xhc3M6OlJzYU9hZXBQYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFN
RVRFUlMoUnNhT2FlcFBhcmFtcykKKworI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODE4NWY4ZGZiODNhZDliM2Y1Yzg3ZTQyYTIyNDRmZDg2NDdhNGY4Mi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaAorKysgL2Rldi9udWxsCkBAIC0x
LDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENyeXB0b0FsZ29yaXRobVJzYVNzYVBh
cmFtc19oCi0jZGVmaW5lIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc19oCi0KLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zIGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgewotcHVibGljOgotICAgIC8vIFRoZSBoYXNo
IGFsZ29yaXRobSB0byB1c2UuCi0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOwot
Ci0gICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xh
c3M6OlJzYVNzYVBhcmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSUyhSc2FTc2FQYXJh
bXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
RGVwcmVjYXRlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzOTRhMzc4ZWZmMjU3ZDU5Y2EzMTZiOGFlMTE1NjMx
MTc5ZjQ5OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkLmgiCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkIGZpbmFs
IDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKK3B1YmxpYzoK
KyAgICAvLyBUaGUgaGFzaCBhbGdvcml0aG0gdG8gdXNlLgorICAgIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgaGFzaDsKKworICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIENsYXNzOjpSc2FTc2FQYXJhbXM7IH0KK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJVEhNX1BBUkFN
RVRFUlMoUnNhU3NhUGFyYW1zKQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>